06931471805599453094172321214581765680755001343602552541206800094933936219696947156058633269964186875420014810205706857336855202357581305570326707516350759619307275708283714351903070386238916734711233501153644979552391204751726815749320651555247341395258829504530070953263666426541042391578149520437404303855008019441706416715186447128399681717845469570262716310645461502572074024816377733896385506952606683411372738737229289564935470257626520988596932019650585547647033067936544325476327449512504060694381471046899465062201677204245245296126879465461931651746813926725041038025462596568691441928716082938031727143677826548775664850856740776484514644399404614226031930967354025744460703080960850474866385231381816767514386674766478908814371419854942315199735488037516586127535291661000710535582498794147295092931138971559982056543928717000721808576102523688921324497138932037843935308877482597017155910708823683627589842589185353024363421436706118923678919237231467232172053401649256872747782344535347648114941864238677677440606956265737960086707625719918473402265146283790488306203306114463007371948900274364396500258093651944304119115060809487930678651588709006052034684297361938412896525565396860221941229242075743217574890977067526871158170511370091589426654785959648906530584602586683829400228330053820740056770530467870018416240441883323279838634900156312188956065055315127219939833203075140842609147900126516824344389357247278820548627155274187724300248979454019618723398086083166481149093066751933931289043164137068139777649817697486890388778999129650361927071088926410523092478391737350122984242049956893599220660220465494151061391878857442455775102068370308666194808964121868077902081815885800016881159730561866761991873952007667192145922367206025395954365416553112951759899400560003665135675690512459268257439464831683326249018038242408242314523061409638057007025513877026817851630690255137032340538021450190153740295099422629957796474271381573638017298739407042421799722669629799393127069357472404933865308797587216996451294464918837711567016785988049818388967841349383140140731664727653276359192335112333893387095132090592721854713289754707978913844454666761927028855334234298993218037691549733402675467588732367783429161918104301160916952655478597328917635455567428638774639871019124317542558883012067792102803412068797591430812833072303008834947057924965910058600123415617574132724659430684354652111350215443415399553818565227502214245664400062761833032064727257219751529082785684213207959886389672771195522188190466039570097747065126195052789322960889314056254334425523920620303439417773579455921259019925591148440242390125542590031295370519220615064345837878730020354144217857580132364516607099143831450049858966885772221486528821694181270488607589722032166631283783291567630749872985746389282693735098407780493950049339987626475507031622161390348452994249172483734061366226383493681116841670569252147513839306384553718626877973288955588716344297562447553923663694888778238901749810273565524050518547730619440524232212559024833082778888890596291197299545744156245124859268311260746797281638090250005655999146128332543581114048482060640824224792403855764762350311003242597091425011146155848306700125831821915347207474111940098355732728261442738213970704779562596705790230338480617134555536855375810657497344479225111965461618278960100685129653954796586637835224736245460935850360506784143911445231457780335917921127955705055554514387888188153519485934467246429498640506265184244753956637833734822075332944813064933603546101017746493267877167198612073968320123596077290246830459403130563776313240108042028543590269450940307400149339507673160285028697303187182399843352574354995608502566089783395564211494807339362607510238183314110047089039501343302974134748405406158775396888381540769801776730369991074924697847843128430364112892028012272563468391623354787727340063958657179819069358127387034335313189050383845616444442927969063837969092441303965600987663584627766076053486974908593811939309251791198855527765356660762439356877194233166642838200744816307865229235659826586275918747520875091447609016973569357231824249919475494431631463392270743244590302482544412490359409900711377326310998077723937579092667787226299567773759125268754691760395501473633737461645076457771598146610758399303043231349496586482284678495247540297968900151098424340816722641053465175318895709341462658913980173123676248874585502699619246678052425882378995907144185753559519019313826275593500184826081076906494067924435885831503526017045009346714087384727895167845415252267023696905468698446072109821774736606547523242089063817688335653308345429052023662173681689021810091859270116416256337109210919193811088408371995494139528087438476593315164645244837143495547071767478644667777773262400599442803883005052063960254487221940100482456835584914116372021650148290488954105485988582139146739280127960783765798030190197895831298445842350551628047138457098367143179598497983384936643051357439778464080283944996492836177201217529719601115189233475664664487214704005952700208247971196291259570791322875250242252752285663130430511219493771542940710492247147978154532985068822892694882234218141773477912289705930385167864412351277321379947051313086561526091767421412897899794277108410495559054929958460312928956410723379347221982629602465778859855649153542526276936457817157687505627695951940614769513362135896621103672390186183449100847056023240885740736498064913350497727229854121559922564905903204165800777130365484448790985802916806772298738484805391437126882845158996289290464953606976491322649729017581046490396601249026809144226696306532240532793180520138990302506701645946145093278991874975058845950892812313146535841156454786288876711792759444189103227033972699410782620949066939193233649528840398410534174131030284298298384597274509689153505229806232440923138110578435654734098675193838607282407897523799065221536828449641519520436143002340641177671720819470742812470616078679139714257561026877325672566518779398869543561247252503824110532837942494962425075385985566130187632566463726695281899182447028336064458337646946313432313914423530118060852644531774177829165319868877107483800215964071937546885362724120722736141210013984094390772718393471792022895741896562095677977039547595272233827891909436958956141581883760856034834063384906401173599284897189611655350881207229167416716902882811061704372980788755174869275740035755306007315351924334950734050193793931810588767452835236416527690371651749224459625244061326021533148024272969622677771345064205355151024831061088767266294511910945817001717135117299890025904644763066359724199051847024911088680124694191549654441175995933753867861532885105055485957519052829926745974805776695003496600239248911757605776389825650559728570971462382136461281575699631424743375953147095068089204461516870319405483113785049768421845778096360358356776814229804015130588032213887006143666466195154562642826797900580907023312944256272924492983069495929158131775714230468246948685772631408192667492977253974375636520310755620276511754740767284532831999750648553715678521340479205266153502615115035640625189174989835252957607118611897031987583795086582124471448554809890971322784110436163215054456189256415686480097687527172793631662356769343050705400960785297576973347816339786503563447596083113058918741088775476498966140767093540099289679033005197129229294655908813155093792311652676248200974255320501351088304034115018668628172784448518320999893113810480114847364338261550474827000102727871555379607626977726233061428597322037017716488013935906731651593131207225660010057306787815875968237327432664863152551632539069522055152460415473672664715829719759100176329246755391947924412596855986918431266716876066114774212493131547577111029905275698849479218285429200771991138110640201310850296702223726371927432520508605883939945814143535946600955513703685151439534425132251623274481769284748335160181431483775772910265977050216375513317616320906962102363852706627337362690153696255073610884241576308151549058618960450223864851723710305700902066826458514960037828134831228854708597775562195752286969914671954540310816696269690296896222715552668123003336549928427924612250395570999614692971694339351544508557516142866963351826393901192551987712707669409200410842997382985072562990345850433584478193617497687963688481517014603841493189458567310955889799384166616697431842151088678182747274771922062439778066084664630977888195315596103595567520455859572036591635522582959536734037782112409893988073073541836213121088375170380368236163604481832644531771086739357751041914220906966917822647476248726919802612861083744865233044185807437406799924659359146430681924558555771836314041797245925837265876930872766629910804504348591495996962501941052691904827629968903003602357636424254397670564582540996414041450994670345387743125702655292199608428211070672039110526250561980914926429443191308362902026158372172207479904166903500594072814160493965365572734122339332806103370037021008211534192227293534916762079885625851679806479158586942391146178726357859291357726649656033071530623284906061534893403415083718713352615870286424651827290435568456552106161725177136625005254799445985467661817786025877803806030984445445231764300573378558790455136113162544138851136958094835849584914934421251105356131748993037427322843117221670118781585253525367038010852035298366282616347129789683306531521000247432193921670599073133403022837905315374833325886025968671733006730262612955255637933976817300485239406795549141449465881533293253950529298238146676292254117063142342669344856493368632531418747139643415905283733805759990776658169381718971757458617472391097384196997646199589679391854451098059585787249716421848244964174409657751106908793193517216376221168703906403811218433433897183542006078817356825697886748930465585244588375921264841779920836375927805215882886594444347071772120467466371740330707609189137396956143477741839440991803548117653335878130833510705646029925695615913401856601359655560624421004911821699526092256929050668007880472190104275769399728857134943322807769849868922798926091978863997413490189574945776099003240778006385645141861828349003795405822520235575551835106442974343192288203124712092616672910059842425584688410737461252455480446810934156766289024463281824281667751184466668387823392709575081432194066411901596540674182811601761878924361886894263257092445908782154769142255960623010878593423021975662573657944763015485513301075928450951148704833843039530904701607204487468436180565560131594900674700028960122816580763957025938567028500857842913017993255346003026897124008215372023295239510561612930218011086117806018705258023174799663311973159164227394841457146006097721028175934997957626572830726924318064900431093352977471930292569559289495918975229282504936734700072201870074852517098129533228990355643489282628242232057765900906768264520455193008656009268487634941672172576245498392407482176816497950651016496723435321271361477358100054703859727717522533474044249181355078831786228920823407840877579510977437116659105850764539512808885418022379717921945595784992041975424078230570210176927234282010614401413727798996550879570794358959247496352560292741940328341730785362188088484884799858368585337653864695945882672064068254838713940288325003451919161457260171375712977479435196876679368319244207888906419429844415672325841374317637258025122604023769343179405756465733037696140228131154458232717946132934232405660541738351556403914350759765683127548780879337234275773964980299053868070184720497233498754739340050533341342018905605212118300171227373591923255203966692629440419692461864806559658635288700740509857416169814414722985619578650467769499339468429459869106118001009042268417154368150887488240992364668208089623232784652772211168408287961422245525960470524628437332840413975391008488717787008112139990501571208280239163476825573196776728313491684598803977575948199678642710110156272292748732594889442671553838722227514802964942565556051884833321343658624931151921363915359415642413254753582033416070833779730918726398256508185286720245988893164249212530407153426697072877570175804894613052403378088812972108852604371672274967332353434642467120451903645790546924095235594038258781454763009236599377894412438658640316333822515478766272608083042113492131163014656656320074508321431381965210841370168986972635800970990044851495896303448419575981412854012310025933759297634281315332791919047911211651153793224396272984317551311793589979853693269565212094191537325792386496150810656167157629833046992088363312424889758525953688090251145094432756591875081992544654411784477740288025906346075632310858426359523457417012715892220587058899637637700201493553990253400623191011562528723490697031663038643406091912041616889152649702438145299217404069064338640559104931198053653342195008311499067586544440545526765576180764743373734064815235781279478780956494237019281071623324416630911647165798208522239041063104215698032582804964253399466616672746040254355480868315362056923400100423986025698467250021124138680228087893332985646757172111567270640693544228725331084446397104974574059697743620202440233273612136610625085166691808445362008089431816852479359277006042538251416630259933877186540095290348691984922362267860461826523305506533662724242441599040006264429245027117749751058800901102369308452550080211544364427280158034662741766977570165341861124949007018306143765679783472419453887027732527900748672865957868021017973871377362988158466334928962783513688345611583327020534023438300223066913124184305891183389197339745779270739534707126617952861559133100593695296878122473471579181576543740246461624335699859076753805517136646893108143543774283925562105977372172810726742898104273804152580081773133784859429235960604583596487232303931417919480615333084075258421225607767479765644924882294350828226147663841867094048278801509469765315263015187266437879038301847531225325420919317880966099568182573525240553808977936943311802588814056976010202324216404096374046464376918304630891475066889343894084702565935263806825509811469960411623414634018408838321947545604618104422960857833092306851490272393723761954136292093920175118228051530692405081825542630944007267416954698029023078900860453460826581214148446478797525613747654053978734198146860216965561755497250023505993275248957407954232317530750092603476619972768070032047533370473467328439804039405716913529858762866701036116715506898942833637141140418216923040188689178737550545168916737470686006980000282449782273663432552805797701120201107883715162750513241064466983899916686377154539622990883951271522926030593920003955823121075102290068158630782863974779164036905708369743129569566940164985010306936406846624101034391769743705076068231298226004325971317084295352276808221024703939416253606037544035026060229112082081025023581821129987736015934782065781276743622627826835724196830736602751972162951889534395917126744281802593685272867478484936755156101581954743960006449859992186273618785817726127631336301327815132881873412871642373064699995041163514096205237165911935270250308690354160085082691930707276856721456533228130168939431818566797033938345851290322041618163125740038906357505769659102091267340545301143049444614104858846561912054552111606392843100583387285194766872975902790920278412314457252155664691604989082199110139757624706042071130634370008155159995551253456920247658332824051856025433417188975510224802014995161645411507938197123181463963702452885601353041672957625871641247056324166759160152642145622488747003540092591100005865867318249233360718312357637050214018122389271887844122136288575168652193703146873591117127044078390618531174915462959689817446390557606621449420329170926217376784883044883211654785912424632159264242645517191882136591919900377208242856696453471768051000099749458163392820899417845951685120001619506777574719957593746204451088185986562215766412598200226570198460052565084324939180046663499825296554670789247803018398097474759584883543366554421452824192750124080998884672818618586164065627792571353909525264631905379913198376247313068947524083131834089163840272767273267098315937965928168271143427380826180019787884600049552677941945098336467275015242943702968036743337553496485766934520879771145765334677566709638315282133033209889522508981407459378944577345158259447515688368522256284007761327503621781030812333068818583391347164473216749381088666691597844715443529110164548463574609091489248612816466537904545591507913147761892139930495393239749330876048423130834623902651461567414703580782553246566486434874911307854563828698991865076045255838092772245367152839530633413563356542310979716459960960007619351564079754200264687866504315750108385392281759274900929804050787604887604628973293899407529218395937228165492494944500019534700761278803198692038093973991194107767525346926500939428975102843414749825151872946421918487665158967372771274297341998019946019438696838255263005087356912247641192393079988022858184940197806297464094954612478287966829561928690339627912574967886785655042109319397366941380547810583011047010435230462764167893031910207359846336243287303993154709590172820488710333204481925112905655964161311788378634299697909994274941351385737158433151895234591262273735109075028134152218302688728907775366751152294121468330309518152884439224524998553016047205803522460998929568993257235646487973064080220024856707292221773724911976210468641629521543244142051646155484468613792478959226650854773002664364187074726857942282935751850073370936752589886275958415717755784139040719310806922047312226677190620165318855393019570054661874711652912138755169988027430015934323446098000676400623843311760284184391128104303937479510931875446903800771950686147901864503363056387831731184990877565044863458724625931590482674513307154046623042446124272439904600215209964195068037794626189992065951873798058407264947939827589080610898665326393664941582799186756935414618363260233108770326987139698120407653859957379413882787345639285609402277258216672336686576695886036246235122928615412051509045380792266925458691896396232072034476855179352351288772388243509337000754944664093389634034755051661406302699453047835611035199340946104642461025824111820379394639578957121668490888559732460031177437969435909771616396216117755188044260634338239018031526955238118867765850725491463280737814169323131469109444413937664846470379004840831805788393454869589311180786268676096704068766305023415418310566608471857543757426265983635139073767185709006978698842294398120281764925956354017847038834654121912245309961274037942967060213091432022068614361477897473674427567693258339857090020844536950201722460980736775091201696482074144206900588581719036435890430564406003653468590067233453880358720372724097476778174618964820860428368910069677322537717172160299780147208048636577509665348544549598262014635961572716389345014441492589540835574327007328970026796851865802043388098019472204460535896808575027859112962945895986707529487554872235838935015908422997545797018527177956789446793534815737471015864869972913691572090259416475756389132512233708259586838313298999281228892760606078478127710891145352839610116212636161688431253109210709186283497912255076635165999593169704977711977406971288722245125223223809106822929666346914169055128202110715779569167560822156369398784196518905798504343303702754344619686372330942805815233930222808443506855274130809379037598213658647503762684939516823532922411168920434261864850031034553080867963692228656723068230485076186919914410898023337277956720903640144511111030957406334462771411114006130763032289021515791529050163165573831884562233671273602181606394491261104358122549777977198552819948058457838182549975440860697587927338329384262981250614639994817940997240072869868911959391225257870072184440647375024269589787634968994668737325254644539065775853861158772880656847118345375383620387665431658137988905944684874821918506088949374057984196397697758541669020632215525498569993267223022378991719308474629769012506235521362020143037786353965565176471344675829919255719245594297291688229469709182867463873589699028144137719175614687807633605125961110780698300110646562951036842856432747789941206331830560483278318983593862225392203325051319573166106001890761068777560972003289184788792886324602050100502472947107029386639065790665331721664866581568304180907432380957997372591340266044170001173309800481801656532570431157559585264484968697456692855622488699269166082801297011863030425262483513410751352363652178650945785612991609416661051714966890885364669359776861153729864297043346740529969080730731031012410906949138486217566504971487929629147037788158479418636138391599929558680238576695438358499888223452855251474025461379953677091160118003500428521205835624919846133706216629740520345908893064335265619301796315447337358685132455552420658489773515377705414906890595317144758808291020972760162679763582265881297574768743948272973073472295900341722835534933406223295440335572217480534164372303312303914525662460414463822313980603570936277030748909447814806259812726660600852040576598763575704942523588220577877438481697764654966634127212325359859422953584726358871074649362162310720670551091217917870173337606999725538299866519411809506541963366569900423316831579690236223357004719205439355118143102510690673847113435182539643250739956649827938539823695270392253633240560636454400396536754654023752912127675128834297624650527049123736449231330491468366351933711489671716143903069388620141628555319979236573403739982745341006116084348143986480531355600867073400094677820677713538708188098474234915604835071323132156216518672721310054869297487121289688148744200281665760132089494266581052340270705595322457860246210919483810572293676012875297839458335769189449872718035229771038155198881787502929673217351642359125510679495035433779385321233191881131115827842684465198334310916259813106696936431203224197027146849072898477051765975203526622673999035963575137427375510746865552648566329655914914093303088600224813068864299771911263573836161764724523362214740167744035379004606155076728757189186461385405765844569893673626224044217793530243194094968601865543618049168142998979245319048888742929602459799582666304031066311284792858357349975623146447911981905534455301453422109051360183725801776395011542922063369931355659504754093696614733533018126531806325669837442322689187155128933888857624296404188468285066684460707820317061530769821241700609020570597087860224373255742303767583906718331472173102673312743372308661773067602002779944664102271866909367960335058525722463731249746154718834215757951277685899236503744540113685872062600600045675159821787064985479631718638577001208345016064960894706455516056408090032735111058882949923154469852050207799769545196753133576090222611948955510161461077962582694838125306326896419521934004606058562455517935405304464918763014906710211032601060972122944655703314211035345754408416255137541324349880087496442926981199483398595673918388214606193498030751162308832567677464114183453254737545166894595789234422791695443238798641404034585676284167208499881599019615188198555483576162770779036422786655090016981756034613230998915742992079850168617153648279665007828054568285142767404327798005422824796677568517602795490285473440909614406060183626558335732750108621758516682660036995478418252710447729934519724385709728538909799752321566494742183039646862443178605501214806009444267599531030981769816858776564995891520919147655553974136271742444157323261394565999653217825550501578184207748197954019970418245406609703349293036362405372920272182010654015686273336166281557077476866324858971011402403947665063275186761144022194800440485160476809368399431821556571398200922835347975797981362881437939012366997701117943538135483174587951709111583638981636550804565138940132531861226003325120003089314873196851310949795529545743875521819428824694552908589452501196485118803396394959197925435854083471960764149704560488945267545623111294524382714100707752795279459602872665964925792784891979439230371934199515506755575715785807271304757854688929781174898987832727530532395987335298966677424008521904226979521118813311162311939797219925371960528139850428051296167209650808495324166830314117446463977354388598995160251351102396256740553976913262012781980058492859474622497319140728456216673117728660099866734617454310020568538753373408598571354057915846451056558503455048398738009438867386283398376340939206245253899371096144255052587545532705208709834104582017981521504150725343033090630941176786478593191593060486785610981325550700544301643605057377507166991399999554701342330307433750248189748311464171136514878253813064536799565117634014105058492581071266136204995507039896244914417274990622507823346637846011388476014039070236324501451608997078314384032689732845677293721197977088190569529605117748177800743516285780618378440201120949349272650336105236528036750969726624322275494968218908364697966303291886674452113569984830449449340642233559895378634729061939351479774609532830766885943318481487472592876091992201811781884059870204390713074497887388686480003514313588507712541646884919085732277409900067589179908449068526632937516029502207449734610557970605498378601742674150280376863352497620963529951455003280320485778882045132491251106037449917843614659584713715074322482859624234151657798094220607838182694587778359531787266124941349228295860765220118870435688924618785432926640524189859445750297876738153322318720412456690411233064108210993698658829435276731733350948345538136644838183302828468379268279328128937995964341704792173251318323526527221450302916920716650382931004807892608000498253210850572624435007476902828695569445374198393215624254192528709430655303249053797206340735477920835171367186269888276464383690558180028953824000186141570687757791588906629999755422005295758961927195502910737896119685072068577416487118099987811400617847512725247804643735037452958635130068706898904026726718536192739246836650767892319269658946571824200404739648364665579002041311820788782320771653595666734521039143246400257688705684435408216119246076971425175192258554768394737484081809339148832429761120209563634043743737807358385272655238403760939541994694226940610988583260001605691015052729589314472399993157484539263982974032871876547374097142429313394872370233514483105649089191745959908456714771214810774195211083694781758733939102504583529108690879069320729113105281387154951629119423660673898063351822018382061019746836624044999147089700860048575002398574725433909823040012442654503857569290820856671338520935479173629073383308764311731893456481047105743233549149238824872486839579867162506749993032016492006010017339949454866157011606663739785672038157047175562920795949655800541382299569174639489896091133531903213380130717313784498233976113012621566533668197050942331496484734048133318717922832737051815557574459793108401063024903443376490992572692731399557472266356886780262908058843491263985972902718336885964086156020113655306299350424665615705813935272106416476947730014855140292980519280935468653080503452582039061536396928318235596126002683863530091556809597739234223533582805800127990492889750372426681741770837704751679273644713164177565119845899051727311838589881868264486207836132941417823515153619441626862893664788824676780712033651909107230261054395132226438259027420774537338953563572595222759704191614994235662159561529868023675764954783635229448918724413020959817757522818806129783641177976808274393531767311248481593624594724276065544133307204695778776635757186904724897244500261692914686803018304398867777500642498054383926521177674619676671358694923129058901900788611165180923261773867932084165394321965765320091174411923475455694592734057202070684127133426514473819961364517100352734962033367263132681031319365808496636875452080634326348780493738084691460504267325651154977422573429976309074431088758218852116316931749654729413236455815101516073058026775085265542105558217675980806196656229097101903746733726529184378029645339672147223590804734059671574019581630581385190088367279473533619976720819725723090849887482270966105004784976227894809128555331832185546923593527202508908182479927264355866386843119105758333259370263921269743273131558278951467131880591482270074386384673941202816183011469282178752132739796709319103537806215992897393763671964124070177422405892050068703355829234570823907074120303760692355741454825677151480241852722489658813686429538076072779514452775624140764639209038590454831572213404926922387020797436456217511302759586559329689899326263784372540537448391076756942328274891797219673606357102460982507217616436296039203584671560116494031774647998011054566916031828366318807987745154491117374992445501678035897773812553235011392822793131590520773457548959008492849235112825462536229912402273008260733670124847197865959404662561504231799773453507399335621586606807136135879684090070676850825368672015534546746938182228289989906581893038533646416781247086318729831350510211922167589240484562050116421063341685021339818668896249510107612167138850968734737614564237795628212868427494744646609617113227655393521320724310904550266673315357634169464941634596216802078171063982473719336084806716281353624299707424606705143629353425657168491477573368251054476694308966457801282871742638510068777365469056938711271012225800252670167679926284732071546983963756707162987765986999125730831255137126052484204368339786558914690812649988092002216755773142869565736308519306423440737430724388341981337044186681954306326706952338749267253629671649625297853512463229064900227808366010119885679832892580820494491047885391699886245363739732243991260667684501313291478113124388022653552869302665214630930269273623359301768964807230917395878572051881152421102314369504553703174244889206553389127121474826086934107863236753865819402263443120440945056194030038353063875265509605092525512958112259126787808217721953058075619858052147454667757161624051621360921244628176169344970562086233610358123451642158671918401824389532977425015205389513183808863638711282377588254271438885666113323863070195959739353559675500996442136054715463627545119630160367342942221518009891947121740490164872157480404759900550485159198170313054024694898313111908060831476417630374075156250962544687962299617231963429854716503384745382971219981905762147379898140728965305166008411877994464032263303831169163488511306673601367749933257958631402051260545513525636964221558545397615577776083083006644917718108683860228552597430954000627062515593213091140433975380560026786234701620130786158903441300089874421525180242545545223807949708122400192016695518817005121487467796928237091315610536517178921212434769736355663424615105521684206671495456561811367952129235058447706804748950441784741527458243096799420779535690962778819937276146442802688609219156006391380905709739208070258949492418885703973572815906079723106352508198546921963928202127480465524846086297366253661816351537086016324927068862261834870999022103485955814052243445400492458279122286438126233011671814638939656261412585234023436656576314638244800566969015266447340901830082100670520290043786579703143365648506547387259739440799880823199015815411238404992990343483734143133004152915338061328516096159648704134546303512922444442996817827016829182680135705841166902914175872386404959156815359196119758772532840889960998828121302650684205661813707483380559399190658576160515203795229096690812332740700645646877090499719873933918234107281034756644598829811635952666553195953319735417431222374173131934570515723260835531129335105543222054882804384844670440506235496050338788341921271981548791076506391482062128330322020670439545077014451715408246102031437861249782125639567678531278032967050818405851113642207391834324887360061870948273424911809432344985371452390173857503612590810835513129174410246950595171561557943353692790248952152222612879131079666234018047692818648450175401419424504551239610337770240444280003553866073786082557661731224809883059005536755154396614587457456606519837675238889799314462672917695448998708593994950601754273364111546399798206149869113262977363206605488185425996177477677646722061941384363652069529330952370683552626120692451757869778918191392433831895999512197729162313823132089423106589369881131649248547095314283688930358929736127775796820125818249822277927686698428270216681605274863576807147134759134859734227419669331456022789914242576358599214027563028182030431724212925930638281674726821637924589797616133184792926885974144931937451119578542882411813989292255740793478353041806893456118345002748862743311282859886870701269340095814110183157669543078228479137822074947865571883314887609313285076470800024194887079118904853880715045258478483549634103375275717210437246202928042473633382765656089034414069803934749811517819695543195286666677405392907449764586832268286469150354011810893884106101738906696907372424630258604431645343215642642602405915857522609051107455406766038898700413362678337012229084586383944978315943539176015721659575034207526314391355999990057387787248481225818767274044777463590971262541938006220289590610569065023442879198804275422839952478081318656823059355546117642087450219519958943856827079378756726032578884949120213370977937158984025317093074479768580467404314724233963697690472001072420161019934937739364005987232864051244630132176704318258312149699066573691860035340404967222645237004322553587097504199566126012268735233044803571000066633123181908685030990017675179212980432828206522858969102571347294996993968121429919366794097378069138194150835774978485775763277459182517012310018880517627778721507637731765881037192317920838425396503748657666332449555857781067099962556133345684726127759762521076812943198666317368460695175159166121889315241261519346358055611441439026139915815688989979572964453537176230407364767261087755275062939404250571194724677096663120648809707676438639787025542097998466559801560292296742221424794502544011759608603270505678137539780055189238943637259658140795193687762290106795181806779993410475174462776708005947893800066108846219961471073071547880195613113442144712355019300412129227480393275041124776177812382768074842701836656209149196192240198513276649837824047297311784791871788470237913617700959470590244608919569345842777658479750059372787825093355311329139385753533521260218394018662821274794062657560576814242242629567475147768348200554599156454304002539465094167514984656398145278544391703870723880319330862569839785738493042889787074521129677704583081810122325349609643731819951531757917966707325730056154393356790976809647671635665109917876385203440967586479783551653583287512124824694018089768781832732844462672357430575436742419380186379708476368014536814865429012096376508268090614579884395381542847674826672631284020193060001912650301137910967263663858762241007627083678515329037502608119381218461737518635012948427447800339233414036173157313566965763513154030619385961132651515401290718572977671520864639532565588578526449997965545489435097300650383979949510795533575317827956302769515395722946583327651351341970847643303755906255651910500569879294036900727253960033504013585316496331039145657721418144972676993608465109554884460921492904049307031337408112757844211855552743124682252971063258588578546347673327099930779363622961658542093266619407538795589328540500436331597631844214320995377862862108646744313518647490817639727558853414291018908627096449264584961850443157630311384171414201934954815713684157855788023859254876517168818324240934541924275893540756806662018720509706134450962857695849405093450412977633327989861942559949259812099136169848565007869099788504817696645195180924403154025622400161018940561493694452425159707199515465336273769627116028066805531513349726815195015121567991146907535139556638676820546908656098519305479488484264833676352234884073988593902706599389207826807469195930266311913184444110591709827269618669253187078365816899528857103321302615385595636389545305266870748155068144759681479348919483685249662281810758499706838031120379394086253607773403938703407094958684209924042416696968146268842843752297310870445404706609668343077784224941511957862313319465154018640343103177879365367185416591729435643156058965656250469727355048672719545935534446014365189377626817183922800830760997383553075391627846025085089238879291399587212840737654832859491033332449636493498356690217224257943226733279603478856161235554486411081888484769333337392422845647466119417260862440280895606341873410049636520475354784793280528929756855664584715796647939407696339125185330277501038696616929477933152278320074302657160690428854712280987704352767611578536136679545980115394354324140379943208510073664764614045783005792608997558277376526642627031937664590907648008502170089485957567372534098068869107249650488938709125389958512423974570474202608951648705060932242964499511824936353716733190525520198629568196536852480302738678963996156059759062164354958971634028867307720696965185391942641558153610834405138322769867443930139930550106716763754261720406651680360793690361768738071929467447710791231760063785474006520393431779413525628849308144533883708300356678931415574860975060313393719526471644284897750240374199811706845858865502495226869632148457065746488631362393317657740757211823929409444196455258612868013554703163274303672494940538513878010738910221630935708962564257777582393353093274639415361665771910874007413922529357397538365397173172888329645829167071931405071518715785388910610998926541640407343134286425770393498062143718799782018139436254873394889397686978164919633801179404940167826319129800328629371387685568283558737874192441384244708856512075513466001315723233943419855067364294813542365766145405607232701085431732071312640227420129679991182825425793525021431478840772402806662290072732131983668312575365032607204078608179537819223086124172467437533807930312451164765736204510322479143144653681796923943697936588879284571990460300078826102921159389315600151173243189477023605631452795154501002930715341450077362689508965455469638191288665824484072778764035339067201209419517961989556467728110142826069709937807465285353684695518559545193677710282683179059409022575411497441868429261878392215748932682706499923105735669639445760884753353226949435984464441175504613330861988486301632234872943167199927321955284111227034518952911796128204294316108408285926899968951616754849521704068469778367959283601746302125382245711281044694563602993161348577091734577540457556948754819125464994971838139169762867029947557077705892620370141599498214703686977455555668266019890175758747291527267602300723672358970808558768748806963773550187730986904836728909735463323791751295331829768629738108481300178315216217509705662000691582496898086917466163628702304123038550579524820583712214029731941363581837975665560974980035586653233896105572017433415949954817380471543748950605080925276478020527623050579078230661759756934728077002684851366645874494587815059376747653943177550383826839463297038789574151405012581626578918378155516517559159604420958535262099690355661423863372818854632639500236019230523048990786669212398963282937432680834713766604999031197802473700672016500658532853513872374366300873765741506911341515707975921571678938415355931757832169937941840712585591810552404309365912724857245445191501307721032185081403569412419346442979948877594403242309655966501219246152366659676002902985435462267919029691742703844683741814947221289596275868594439976533722062073234980794460080773419822093607231676197300609669089274576486306554008711210383528075355875009398002333836919104390606913198814215035005950055525133036532498527166737361349435241641940144132271690044330967293930609067738311369322868443875880728462291244776485780192472323500131469752072793467347817128358119755210575423286262068049612908098824751133904988438896218470977326262883745142975837309245972889102204489693810166437976971006467710702750761761622439702364054632163162656698088403600193375945431119369405786322610523489170843469843467067392258902133904862290471129696236400454768590300778480954707318887748380763423200200489992871805412913894865472913727829634882051989826976796739528082965066069545169691879935073603351488247604595250338881243271200759301580175270339059920169321180717395646692223089946658783377167168529053283171734525994794287327438249387675073729252521430552421992839231321250810941793602860035171408257934400054310042990406286346866281076602384582745156987518287467681460388754153091721114500882921977107549001969058714082874604554366961576864730782783822699041937139858511108281023700840905743203288748846481597429493704218797492361881896028972138122347842100737196226355558116010541741880034512544798189363029915959855541466493316136297087237548873170294327105232302839289476417219847503039012724940680275764427081950786176389126108816347608004129107796804854014144774457660339213631378875035928927639843716059604522381010665332493852830953764175390942228882337860884257934524533925395513308442500642514449752658387338476269479047695447090051438065356596677711705664255360218742024916697931738193106285692287760575621191957845864153351673532892523114715383871783225799790147716186384448289155384361242438811561911156059951123967097599096420367132721700146274575201963905015616092489660980882623788538517577939007686529236046803211423229812608146753733434056960811062139460690993072636783157425376286013578063824720956034263338956265685173794040707821347708119439268810997342894126043286741665459583762708360202626191994763819246987477605581940982026811145340874491387059488083216164287295766257991742628809357742415761731277584557787931708457581030014705098335766618104819966005589540277642050951009660699611789680607529909611890581156925408557548376980438148368546191744313279652302321075259739762800168303876096307350549431562812439672166217559123748087275183634865909683018459556854432383258921729996396746429084188618971971193010856812617360378940725466412841894628016791440244145057922678969645920339167671847779550331070143695317669705600995878124649601395179430495012575985066132924943889833004711531146309390864599199555479129793438577953836762340356457725706690220339853815983072667513934110874899275746125368617065373473735846816909048236981563411707970323016893201511859252413227243043712972216606223315041684713481195557586439927744276369942955285278544330385693176414429839386643397119895975324218129972885525900183692538042617872168022407111583468260157853538143964338651436750228064436443230936033566866809516148497499998227337715291661651118390147847768876249809141202768268383316953738403362589763076158871287449955828700413422386703049608805829411164496889740154487145371055829767516615280195232805015734149302276874601057824989262918230624889651590987248891583270380299588029974010333086636840744160600028925745353523661689267532284577004911111185973589502637094686447351618666322651348420357178136555443875356140006909857135007906810188247272260467458434220685861752715198982877285064661229846284090074170229015483076095376825465750784747164456196761355132303370601814594769669760557366042460173030319446770898102355398141385467101563025199495945110231051810430744512701305925803241088944863755751380042715709116948629992148360475331240184795570108437369343940446236586291536655473271030936958248949703668261833501179749458359857273800674279200688348429796758947646885786470637592403918938925494013260389250275066681812015661815102642780755668766911416957922846810234277435248124391583036121821868968452736374956043507954846717750340052182624161888883358029944344188648472814789838133466333116766992160362675906878942351632537501955011591538683079406319583799531842191021193894884107673980370382509046569656620628433474899570616654488367344345148445243631587567984946576079443098826928604537229039111332462180676397657441114157378235268595424597846114791473364968390611007390424654547072972374482030097995690316718920143966474699354045775739574803816453676153697754488196947848532514436910634557458654117937183492553884526026553839558712464994247588700385288903014871346263973904938338093867049859023666192641265720008951433175207453795536782376281033712859320082244857773163846012511258859089780311178992161308266374000420658659222430724248128560418812268345599701389718556425957472750945391095288738339088777104015164769283900871344914937766921990201036871800726112984041013533922571815420711150232048949979725336756771518378043047421234289090261269501170845481911317368079949091159827624957359793601382451950431111215529646998506728530592928089615171000451519353137388877315048869262024395514422794404699617396504038728282580132379218389700867322338428084962536634520429614127724772036365152214767208192603058390886607535691014488631268372794045947430595569713510604796799977224421877923962968998118961835983693242561009326085988754612836335876846583600053980380721250028741549405965837798188966482569887393324533068404978782433631230966882266637230095153714812429334299249684692589923450499184785947369048180920145347501320391098020654108998312759030519769182256203557709899275105504774311120961637636392122605303162727048996970657057491893598364410481749769656713780139830652289948872399651897703820498036136961413211083883071024412235194581392396952971402000723190160761430989214158136756117043041402346783224035706717448441364307011076257698534893579955544269811151176510043184081783737187843909029135055212800856768952444428197141283176076150672509718024459651996740944010509457140054758287603309855264143927520614049446744755196156751524250190424671247328910873353607652223457602794808235770018127863173385830992983637011699905437504735274339063840251012766984388617577886686753758977220748152242691031321289418354695317546659355276185659689482254880873909481468127591102776733314663323656831056172921991770178883901977016653576272624888260616448612338430910230949389761884871699794844051779536619502549187041110282501229620939852487838200573549473134558413792325090678390775244357554250279617300211646400585597234520554963528398688583407119615274806804605807992643841311916610102055977951158392737421398224037577441239894026430621090916394210565611164718969183842949917799419756474147994365142048971722401095826316378259045383371507205213654392788030006388792055561344427612884378033770215302488782203050095819088606865572530845003327770165163312880885510934810425949597883044665989850587054846085983837695255781122855430541921899044155424917522788568341562497175002262762876467947296175798654773903918191649471732121035932869296837014097637153218104062612379158208696222563406839130051438116226135571625023012649931517752431334682137126656015697588623475068328842157130475415741445163827413400978385668960940387172419130114759367034615689948591561920530472432780932970455187420732881254298875453291745052233649702354234506760991089622463132271610506385387904785193725141594623859951885888035246318909419156908536267404250958281411887938389709893306642915572789383730574347320815818062546844708747702735833423427510505788495373012930526881175467795641270863981525516030151305798017411637258040497583839019159203499445651277559897444197332457639667646576959431247933913100561497835753036441903452875129781255578020755105646162078510280964232046741322626781333754698012444905967945333892821397691874746786350478339038173839106084979164664383763842126194472200840101774434055837901480676448319437300815195093538982006320405880118093938341558905430615949998102543580865272747154811687235014667628264007491641564039248169402589366320077546616538099091931872058534124650410493451022846666998733461718873218996906346635344026043094673429973012798489651276422772918435152622319332684200995994386757175658608535950252916442568811983780674079059464254167551655984334933063975603814508956894360737081615428549496691038012440320477046263889764817479887222040609902982021978683094582018622606543225348836247335509077835406002340858034233780520016913763029199143470088693793947650944251045076557080657178614539654397179472573610700092179109281100823811806175408339359097593054216160509625340340358614691761634327164333508643757884763335526419904008237158641565532933214952995410528616645508526715852585938208790342056806481587094177341763720086754003698286136006534114994696869635432687841497800759784660323244439073032900493892772788098788828400346424495237637611179304713271373039248564469016485190561172883737920384237503783732198498357315942365649717093078288221821815863621355552139024787104491767406239135695792756492603547155430196528775868489348563494927246686869988662152050052320356934828843007018284848422496003221743157649471147782380793159494752033168209586895394394983680347038849495898428707832404294384885442971928227321251476209120787708075083147586464272082839628807817323080734570756263853362947742180031065434831996198199662226786362215977274914779091948557162221715511483661701093187802359472194923206715394112269180973781877930357535028072498842973233847799426471582440451875172789245022596395984743495229203394963359493747031394359111874323190948967692452121854696438094591749958284938011282530956527999222289203101313714188944362909812281860355906777183788471816190557363172618580678629645353716387204217818782869980726119189246867402039369751792174416007742569554542016941742354550239714090291966109960196024473425141638264628826595923742739555303925786818627682873999401046496363255680031313382689681084861696342064439594930163843711732246014905453030222956974800555789871852186733094215321794686808717429535858292758241456131623400017833847872527285842858914327301644429165184182075724840576392879696976223416248089886267194166328927033822491403763445013465976826013870523481490297467866826384099175760067715283295602445875939986625436098050082459555669614403817321390683072420035985708837508624669517235135303763819516245106524031396798272696808727787861818341674393326583756068197328086000069089453812769066153942740816490390571395338654366903928276235850084893192011849263072529906606806502963634504172237360147984027370509076849859294742517291166233614213988359472358433587812448349273604114382006333945496914452476563288364753222356314001102786394818018416775421362848050724130646975484594153901515932278206992157159870265279936327185940221602859687161980794813913448427690850817417407372842472358383593204180681444488231551611777241424379848423248914514276444154079511098490242188465780496379488787848871754791896228472604046238066031418984127425776388320433423000208494034087571575753472359262016233974953559822177010826875219456169462005823594155609426974192435794092032284656194767215881140102187007560286883444121350789744961732319832650678010199274713998711984090383194672114046987627257857796087345300115907406189996129265303039244896636054295293019430380795856208748767329428129796569891967337789527166150593789552864556057829476388853905111611147580728286899463776929296404603363563924954563952460815968074478541802792428072958162473334446139593898585775013129358179772432324735287013275929527654731938632399290518605518777275749141308571187493306862229940313698580590174364511641854462878457541614466680528124561078692815065505652687479154011397617378976330045607102874085546474449265064962845386742847924576999393918746515971058470232624346877350994885534067731819666722102736934972313498643676394003271584517559758906284694286803483188971032786182750872931846070452958778037944378032539206923842939589620711079168515489265410168275426583325812644329567607683338539646542957252511735484681238295961892206255949412989451690500827289412715402815812950933185671040033901353263459896491954258252790256179949594168210374242708352869988692268424272186649336415060559249755911407960724575164435921194897577514088886752728192658689216094619943935547790829216418967257145696989591056214972666386722086298003793581253525870591894449452135476594565718188670093194342988536508698189706033004248680814219439139798061387184412879360845839213328858609202498361749152372561888057045633638841802677526695964468888537615550996698817852344407706810798826218515059363279093025159361130835607158418840274349914159469755898019903381822251359461422134251745382663328433735435949056854164048776521359075760397366828563507501219707846893308574791498628773791525005141367321332340715557847771719591411203636765669690319600303370881325821907563564686417898489964445600219060399681850722321397302600223273731490974454830020635340126792460023223823458988442356000226483665098448171509784913673563464578835447813233040357023732856354851144105893118268711817602876765102186214202229753686166814499193319445402226752638406358921708583221243060594837338307315008129895704894009866766871015037849598881353178630375537338038818607211395017277274775251293411818708575729717726605655710188319983062561719222608385275254986667896566299925116796380310942735428887039425021878482777913607095001156062636687042334300848490397900334189707602831519281779859783807533656817650487102871876177032583526394386126788256692634322060968187233600207067951622323833864872128890951042794193509883453441358613894424752119309072183553390056954911727120316398017506813352597330553851987828448542166043444274170907005312754917877877236327139777445447004399144776614175851720173882820357692125274380151772332604150174431755939468176685781462260835056402731855723254554005032272565817742389800337440872062137395072423957029871564249675830503284424975341163042050521905427111940889200732563774232079194610913916749131549182509059931410034862273685638346885111982686810268464379861642314097457647792569330935351118783336257986793909501013677703342136892029527119997751467108704523306091346324507546503650595812235924726401226972489082810807741263125397496654362775460980292177595719381647409497597888811548095102173641881940994093620806190803682052703648667697131883666733748816717487019913247205702297290077795307598217100820764849776715066348773799543381264644087514824766251679524517313370777129703893077653094221296753718641424612904777051681940518854236528195515442845154244298773727452994560587988696779249884206182318228398427833949570684853802829109827681775119565748842723904323856418465213648802807264461008602117927250743364544542110027692093041552710484302367943923313744509787689038317949059699170096950458448135099638868156299305444886259072237356746888436350235369039189981586667585605573136907147543906450790545592936175707795269166287733410629308435275839592070982537335579029961561724527975332473730231251693083551843507979316469371857684480902752657837470178580470573363450313860985434557859417772745171592711283033735679099525870217155368300579897028770106977884677840537204626497956311924167620856310253203899122978205535819098559239006693466296164444625347395844775136724541864464868584949762510193092074112119056487202022090599939874443413244434618116046411774616553450320313823293792482248132584492887044641890790559498351775314545478927240741550878710904232097300825952799525109865659629329644022680925927743669481594886069669625174175802882925844537125645507509327055946346852433239981489118180271365689881967236535460691906821197011663149968663313532465606425212411700956033715040306304412689330113876591972841467275156924699598818891800420691679159647165022727515622133020851096493794352172872100061382484856991032191044301843388600992700912108238829959191510136955519453172277251164971621246226930583788865762282110577735975810965741257787145809570478817602578170517319963605215140099759894237697113469709984258191873795559340333518265491533795007563777393880595131083734379391304097892330881512124073589098010741262431811508653119796774382815227513537602597175674880587062635154647701396970289999276138744276362305553586008582609140468499674545941563489483384224918126555372547074159185428022124545082134956621566360528405006368499236728025286153213961694208256268063349203011715590862183178025304322202037154184663953615621859100234924110351864805213926068492955912335152356671984689993106860389471168678818087063948703656584813320998399076714691185007706141371652451811082928380363208378409840594109809294381961873965009117010645564717012588394095974222097174254640955437015099426088807880289577040397501044197207949896448701774814712364303233515023294476523139928141211088567276977913588715577796734301658892468164946060142924583101494217215993122487308035979510473992908575927543255813023674442022307375457034972065411692823581517782764148988795051959672190140812735180852168290032062081886405761828662328272891458511485243792119128827061473686984246011475214470839110730474348985999425316821581405608013691261866311291303173312724877082651201342714219303728295442911730692056872872631019657253033928633842412133302440838422978014062846823511107504138695768625039711661061282606412516154835493082593054283804631557349261441999483383039155108137307164481557225202422202131510384586301354386173947808151608797331622034017615710876992217579013617096386423162577071957945942741285234129068197579522622727689717837507272096684820232104204178139315987908371827603870351648956036181637716051396936234504577383597692035373410921746438201894690575132904349361857684092649030239651303621347971316340250134904268815419387229562974831811495479624154070851913195875828070947503138604283199884478209733446410134924828169609336929349046065398205025607853905124316391953605802703659290130064384452107849968484986631226596346597581530802212363341465481577459763562587960725508635147170185575524522552396842481683449980279791629472257811126920741090931057862222776855182808878520873648335843161262882647576739395470696852342298581920227246389843499460283495794767646456272092425798014725193466806723582970689129013081151265005053814899027009627912097629292475195171238777104519164532641815658124895631135219412815979154057215403302103576491293503328011066793876435004205886796175235895939255346064719791372687524482126191822431502424480131689450882201440377991098846886593706076211886167599788220000758186425037133678578348488527383234420520712691214310617225300921921449194118217518853016367129844190563910274134711119150035872881914406821008244384164702104882866084640156996824649937821957751352614578650366544430465046414272873516395065901819215848006672917084403818458345745218203211961793027265535076049729085417288544730552924812347720290305462855410070516181602084199978191578165962386425504479679863080167212335016536501338304560209079285393155468210836537459251183577960618624458656902699449797734969855698200539277494316481455891558974932467495641575650821378138894194483056350037655939239822732404092552547805383915536050311937669288126510599437564194527188995576950020945620836738392267768639068764561045798769322301738756484900172103549886126441779686739368011967502927604140597325661741282567522570543397268682239254970822101386898473618902836261159251980223237079113541345107593216478475712122662959810902661464503384364796859577939138545014660792786780147076348068605747574499419951367177211976218983158569934290291676502183444712472711432175397011612741946782026776135857345711970868600204117303690524535615487194984313398455312713348074802815873201572599154662286547303944388834722058426423295944348782486987005758054032595110100094150208608824072355916495350761619028304036681588237580289406763544269691945683046610935578994611308736845352380593446371289730838190672708852429586800314027947023969592607958855132295491065726920346249391234250691395129330199556509985009006948849866165468836379422220882366843022822559382874123713392355026593563649242627109743506281050447540513523135198320633412104989480446908844993510402778916122078535131339065434898780803513070695704223476935038702490145784841115638182771515151628230397177475018030981673649783575652935171038302197301769496393917464010612682308306420992165918485366477526241958102163835387936656875593320476278169094657078212259783869612369050654511545147155344753998380724901209496166143969371027981900317941693041783610479161649407393468200169306669479787831286644515068499562384503849168059414103917479993342437430892896723238329101824833937469338216781792396010899520016800589075368299588418005683335052662697827795696610476155771203436706201827778631501539914796286887531604774138537902984146149712035412692864547994359866619885477574874669058553166659504216608091518607942363956831469530199556557321530648746404847415240084517597772533837388788749637401914481629047862079136545289347702704624413646526748616039295445237807279941491816809568780810395043223176168709852910655193984591310054127079798137193636457258713810960511924874889313358717385501951449725102857241993780742148099671372238491278322611771359722117917574162793797086261961508880544792537927790092184734553500039264838982228619962929858696009032121296635212208502391370497190029988715547872376216521882217676886585903589639692005702328522605664947310111697170558980861824971269449603519029168872262242503293345949210781792785159558578128485770283106986810475108125999970575186128224772624964744878542193212780399994982150859896880026248640759165054428244148348209200934721807212839200927878793947879526397695221019207194894806795558276679324027013813735468372058061482810849084681498045372843565559356551833563569386906173514232609166830239948144580333233543282423502176638807682719862390105000942175514501827188805962782757975733301178310468501726232373988475437659018756926881585996327796953821582881969255571288425461914204615066531842178084964255025440829050455735362459557797630478467582497774609041067481373488624002284130661872801981193802211194438405933887736781972757972850947879409845998330712722130146896219262480397244880169263969463918830011278178660577518543084403699081471272664367129010062722563901871948416829987328554345305804040466623358985188409375972891930401344548674628154785742542790890914809228542916625369918144621649177211069854920812653196267197775901862189500154700827920994865732046625140078133173368600053361386993100144415518085603934692717604094604545539427763911712588399460758250916144050429348300611809058942820399704627324923298321102379491382717841681175231855557863540966175643475780153610063692376762815930191383334157281255034109575249778411038334568335520812239468517575494922255261996763680480630151498319701332343908911202595113951643705547911067455068163761889075050699143243722832019002854735122545126949421237589701947717308745630521090163214542154968482127555198527206020643861554621964837139131266543118733405179035206143362472673187535258396111388938703342233719807437589620466363948749214182696050138973125828928416209339897775983371941020083285643415996113231126236550313831616719007818817641420849030348496125737722613967248283756090637483509923482287103294296372770260311671813120221064009459628050050082629612851297407302747235149416674722849847514861388866147449936452416159898639714305874498542473473698439264284974611244053042188233430237487839589283918086906772655782443763067495957011750393148929891539312826258861539282457727503238783500833122639689789182715488964290796956923491115304446817181679436580271941880022845470018535814732301614952281150783423226666577149617490649567621123193901651163046235553458210128757809119851959714922344797658389405485335461701801574850637219484233543037951113224429307710252718365463873172943438058480293358800735937109057814345186043403718645141148422467010555982988350672642704443912165491109739950842819550605542663604329539880831363964147133791912821824261379269543660480538657381902739355280512476546062451740194353282101019781066517831351265776103247943244040237064265826227956855136698798787002874455416716217450796244021535429269707841176131275256075260475330932382176625715898546516363946163635325015105707148192989245475023896688559901001187627458939118480980795671657069558298744629428463098136440234916014205258130579511402850363442846427418193913213109316767392035264199542165950136274770869326097622875302242101768726914263528400137154237738702023404600116865932860977128459495570966272173071424668238417395146542555936630744030853332579190441000574604071041884943637034991663313564613017539596592832694377173560353896140000357020738311169742632697886340724861130548289678825185837116013192012612955973281250477239842829751308412476296022247385872857784666396462596383984129444147100377162030369380378683003409802955763787265032002550953577285993436091851294864157495515838465408797210519979304264439091082351370645809053848870860967718631930042484308778031934869242693647369362431021856136844769638171653961993052527840470529603084713626444778270570516790833650330713741943580057684278279002720896122494168852729066101762580581310559849475776797254938006666226423260046060518297712314836118594948627032190824368599307052607616444929867905183128783546152949692996245505146145141696059027101610364708364244115047758255561470219144897069992838681659842666610150120192979095148051170632786141104761962554955662857344498873786312989156862240217782920543224529125379331004984418116173270464777164065944912438782988327848771385846553931550152798642536521423591308135708586523373613139142085880635382024300829256141404863325619262031075331013994211114338368438124791698360168123069169529531087008587187934017485664762690585401137731951787909672198197795676193245433897953602505915913595574524737090669881730267609713314486139998155510936651566571725545899978636994629609635176353494604652177737834520373907141915995249741720886148876759289057082084590121064914292564548954297524336630175462196726002086049249728585024996683832682748596639886902316298208169750363559846133767119661503236882832663348082307032357868748454173003747017999745718249256333036873117996299090223130566158447691334419892695894203413066089541059666097957938259042463321999903295033648779479613535441955341996420451145082595706447995539731059981476752955585355844943119386717488670735541551550815047115248137324930128230674671882498834570342836070685422158372339962122870130840826610600868105524597707046110135549433897939113409370463958709188880081431058421451137702822841224581758821561567508121994163394329473788803058545671759505215121973404258818377751596920210512614864307537515431931718134921433297284570374612282784583478321223828697522905311528810575257915666236359581959427578874669013675975903762926457512989035205477197576034201741624058006867289438217781244528571647627566506071799918199473538463461118819616386961159228504689538118655472075208122121067949340977215913899090245225896940201384001817046618473059165537746906926963718986552038625384107590804446467210044978865004852763146713803219405002454056146910349633965528032096447276446619793154278001942255647560022214251139074846472871869311110232308737635306413112774400917080445044222089301768351143194245183647311827903276916799990794204105077842790336602603661571548228170665010126935277394510940372946437393164069446230163308254743610946526933080127524288150563894174059133298859900178848193684357604510692649240316154207240635417778051422799696279306691559703073914499375246213151415952540089377053349534361251425898693260716701502994841199054414042203505107005790721657942650766718850929210755870470186061431985251691361039243019221779523693843945566251319938250845101180076109832604296667608190885646488017613861322144678843959298612931202211884962677331007451058064123097700734648649093401501561248525471476898980164455827055771480752690203965848875962607998716840417167977350706015372518924134164959343500828402500680156630772780307864195766527544023683475753978095070758943455336958420050806192281008819142939830268491788498762557715856163028943534817487233370395795217830759294485755883915294120655609894085330500940094977912415785803563601400459311617729186506959134015724545509398956007897171608911820789418498159493886096541668824357707868617030056577117268153026783880367884784640580672626358852071839736507811708120377370396440503241523782977153768429681234486650135701232961653438930079084664926011994471979675423790185632469370705199709507379547148394241454006073565685605650764978622765192616384104515199609362062887997611569755779320157831816278641578663349734964421501051425934205322668286627798026114231369020594075800288981158594634129976981888907080884869685571807842204851116430771419918457482701885409238213053757001642712143472205895877827229026976812765016055421397070763069860232769455946996154948274367811401424311456320569880631880784650786675485628241722759962284836627685556169836024838725761538435174468960970011746928886358408882272410502590188498783241610663631062947837580847840883190645827599564519549987739042965869436822440146527206048164095130266240775855169092124705275109991676807932112250252553812962398680460662976045047603820167689743929153487664366656985738880590492465277117542242508869973329152554878207824267272453812835850711148727171070187311414710860024883428583512915145290281131795826763514431488177384393249802472685524570714922081239269451621986874828313522871701001517444095801619182103811201363560125079789105956457909750926497725570643281809629696881660330120230595893867819709211772148614323663548918759814998546588921830100807303534459934666470837836241888716244952015333886089444977997288763518479562092231062635851851242687532323349476421489318799804182567234121044910566093864161848916342033873739044285380890028121957750718514212075417290363435690302279539427668139914315646672150470494809718378245622250612158631283402862992220909876565049716561053610650995654539673258369953033553761303633702483397220168015502946495226988494360962143441310447187688340257987882102439062778214897479720346768181393423580505051180161297591643310746097038525513970748996484895732807614872566484397633003459256975870452754710107128718230788456269204405045136455575027056949119544416767235613818323370436498536661231177769861278075321163606655703948412744334183381644330147376006734619864961300235376669705731502522469235683621377998556455320604903878143012486335233333380269363467422942825391259966018842669015464747919667873332103323959475375406448992331962126817126715902284950894459877803262233463691160843379901922490117912638805678240731512018132796110494042241458669014592601466502613062777484862638265883868325555343811324052915938188169075397443572580902063447119364658246607088680922407829165570581762148991970914814364275766398783131781673261094582855416671670159014631442945552194983364972775912166237079461511197931178417442818360351762966051269354247759144008261777831271358877036488326842576741056498495712605044551712860770202551295648843079946493209781784730628430597289912762280518001643102499377719629177548382309700457565752624043622730919143508799170607477458085530786556351352937915998201323007494673025557321446929828911042396418173284859995847841242541051519080867622473269418084835027750015290880213662138114003996664499758117906157666804880292169341103091957483568793973824026110966486397218551363037117061327564268262334043660949511060595452852887170745760077541196568038405732775136687535052522399781982838585054651946542275589502315430191351772347515140466004278235359755541258974801546621497459654588778605575492884253868054559836982197672992162579121111130801184328170657851858124427180714838160518023167429441295959293835005582027425140597555475671950311209636810544715046889517981543183163190217129643432211513954506037978197212904366251915321806561225065993245932153177099223731668032642708920815538374125379558011651281177356372284143944290665539931333286853849696096747218901964803204197381404593189079990148394108021106869678658250433196431156225526400739797441329337702824903840553385712541785533400998049195147121208697856013968991440599444910137183595831970130229583240407752631233279169299673126426635376164576806025017117502699755742978956939692981372611976273373934741820341134405057401145080831117122428644183970701222314152813920993246248158694206695530903032503030792998591814923225160288620985724464073678989263342715079815322650286375605364731723621745300922802145041272671370823056421944204429232468796135370018518694379512489329963396290289447142732677224239028307931469586123503087709359136649326810403944825626977757009985158538401198474425034045076638320460666067032038736570171598654759982742448971324201586032549546432265510043403886162636353375103840151818500160786829364175204912013995620747171817275231607392460525411456797295097323208659607449618244147243152921249002167133186947715954223633504934769873050145992614924368276716862610538470771055879817194368251522244316054254260152310762123552396605690137305936116880663247766269853240465271600628138569314341893371283463294569348686826044197092336030392396803392569942411258160537309228461671542168050988959450435034063528230039794326896029287356183048356498821160969392394002481305190696160459373247190888561332691853648649798810685820455557227412321469778045352438349117037222885409511929063132533858956836175760406913815460596392206466163265355891077281649431683215830740337796328242166241579513847886149311934846327848857561048185474945995781360104443485038101627376761942483801550553415144232250453448646391317820556407282268797350871766151126208759970024157835405372796950844630098098305028062625235720150552994786374170353031834066384550401478287127951109854953254546876763855027877741910881436736866436546006391396035828857739599547694016599033094601585164474929149882324905563420140687574000749285356681839595258220208517090307800486067411580891077663000086111516917142864772661538526607719406917875143151790773209952900099613793012220536954997667487905926043060572818021384452124099401767750549467628757524020435481158345519289525317202338529759457290258804623409541445492877715732092650144815113970727735255513905097257262711219390708065541499957418156868809759500479677588851240910220839375694872147972290600095582339306669096178678649475844239935006343794125019672925835642520479259543985288207419979258483224115013481544077776689335926960558770350813107735211675211905108926175599693587966102739434292816843017911049585455398503282687531694048217064279609593428889980393234575862748241088899896660058466259972948816092986003626338359141581522557171157190879881977080663816859982287659358770669790562898930147458459416248469285362408062790693265939628970964940883189176012123760361817154698473170174631872474615353797428034675335430405833353631350371054501180486031556298289769902516294935179477029534913299371494250303224051364657597807485244692048443330995856186522282146468676783382651346347452748034668136799925390874428291456265145938729999916152506008760424134776284995804818163854363645395855769299952112738212350297208921630030295908657160055873258313252030009818603812900543662343971835758238404413520124460360733444715209088809340754733513854295502436116210413164788340310694586925753295446410771426288573204460506409008172245025400321328233549281488939340499602161113188292396457460304529534838876613740778041156254462700057864103463578498689242919693115914100313937356488295707456128100970162465985614537074572933560363603097507299948337330512141075147949974108801728355065561864432299542996403901459092712302351372320092070385665408708863877928016520268071235951228306475698418617610179104188538458349374438077520213720791012177479537120916226688424239614623587793440556582038325131877092843291666711945728620330074272657217426537904372925530083953972296050510080899958261449761044895989091337424875985786841966593446148816629910899308498178219019563727280945814940345961674957497986417870782628509773005699248108707763927567500875500643842292292123428227150262887352334028340787627669744726298102513394581277693541204940295109981340405206928241326187353705808674221637268140514928458231444234581296148592296951079088394206752238112864125802005184462845304700522832561783649953055977519262870248062695298933506715360487750210137632361700591023311022159074210886517154932062622404115498345904982396263773811781755508374028643070169972663623047349144514973108737082463528732537421127118726178485752642387534320262333878097427578377036962262078975328387775005653367182893436943468409724944546337852885356296707930337558360925055824458027386222405457013809714327688823659746117783883533626523566922790027697337744237299373133103572808485504017931589619976625368761522213501022157774271689983425723701417759003120481298549370042394424463891268631345873600432040066510304046738139537060202364969221823168132753672561084680951259034421825566412703732164860065375152189295965558390768787245373490032010638858778576399002443246523461372883347518150305714441016924529719751015754892977566458590936625323089151913493818715450350425421077916984353390072127154039558656788586081465725704131165503049495580419340166626088298325137089121204751586573202828353860803091960419601491202790659239218976424263057551633498865091438071839261513511703896611747669404002081424625072378965122911409256241063370305288173508715257204976837303217736143986073284273607893005773836927324575327757879787492406674164498752206749960773973004161258403984934056540937936970546034930561307195249722453977390345239577752670346024207860399561013225847456286125734069977789887043005119737794571175576409479405513354710634235919566464611724400535942024599549677217984549193872773525694002059314831228070464090800913738794401850309918301760812749450756484342938110636961870141104807533729462341344256412462167242706408062244405768205420384923747685336090133637825375290206547325473143310207895156401497606272797007631112769140161164012821903431068711702374015562131249916751910993673760967131843053684874710801971197822537238089008916157226354816918732689779458693530655277451148768190066315162800583333482289662004666252079487838562177046983396140740845938982224502485638462530934891756124953485265804489370472442421665989790729836505572534565270406417872445488613430234367936790662992296767918049490506894666451359537247397699333821949659841231363122481558721874937161720100707715678324197236106079136811180342330578638653836694906203741918869315683406011306761409835773801131487450649284956672051467407768009757916023207420665584792390588141224333452010484211394368095842782288568643711750440096095566667819811686742222203230858574612993016039565566222276543703020424227236930898261903544241256627605678595143303566531895025377530568503558254255019631166586629762116262219684873620422796911615911815327137588128107623420331072824259462151492402875015647390728565950292872140281150469348557431455317175066728992189941540028297612418811765535551820825573761005819889636834283427724351973934950886717542242628792313283939086393198542145431252192403943201369484437370552795409703789732226397349723341274621237448772123285108844472004140777582103938939217729456428591597665431331326217223237243303102697665264538218365555351808126175556981064294057181311142779864729717615352276070240595015943972195401863345857957568578503448527785919731902168419469216373834324538933465526707242828292022538453798763639320713089993142241633051883533498034741414542972823933865416873637121924586553871092990764019011474999506509981797821015482532738263044099610656377935555947990127005048222219661623060980459850411938133503987314711218325027945706387850715732485973875938270960636803059153913186800931980492437929771823464751732543422313718814207936353280395390605483885507149897847209048758721275705561662643928973049914526836641510393358965783257485595949178711785115338691213560207784458504721326650872405724859705935064410790084019861464071201676212807601035674852592800804413039181020727526342946772008963791311678588919658566541468069807995380208240692686581840293369431600939659545026825660045208773444771365473097077774263618046343478757085450494084314982738199041411481045818799187316859131222514319116466027299537360677883193137930162051725052781156014270990985969601262405654143462445079550004205142687910613426763451048444622093185177292033557274245393119902721749643506022850789009225978709996585671454538038468542801427979670890545181415850542594498994882125815722344438053629355815547394089569537006862221716503554903628654660855328797114591546951620396602345187163933216488552021793591859896840490630947170954148769378036895196206822471079592637823931688135854766503348624342505703503529106851850034242600725196550099161001218221913974543886605079822900749324335363437335412576261377847149999136052262738558298529760658006153693446872860827180430999599956113223955769081331106028064188899002313019651894105933296277749654326675415987183260739345841275905644810139867004726753623793193253140452679413622479005707799172482655134194330637261744294618882668509076882268654954979949606353013382548346482770009417985308993326741620181039868098657932045364513805669837421303345413525395165341223150252344996531970119738505312333730119056222562011807019520350977828779808304711480015644247358844737091531646631101546592925086340690672743449101762414618372033185473364490968307236663532153612689442952681473309692172679628663546985833510173265215112742722330340279661655534014495538098081382952890278590668378666775950044028887138848935334550984206795637029424779572177630651247645855916885760594552933937617816396622425883044165803558511250385289438182285613398251761059560578354086124440764590222387205570072590242076913438308747228195148555333867846349958718127360904762322529134355095230232165011094149291284719284570396074764543233719959637446734948105098782568435511284132269860760414865185141494635805084123341251862423451885128379899274144006547338654515513457621300477588608671522949434597340167067815662693731195342341955591451040719007797640371715137997989078872869112061113958366005452356681277412227488350722318994808751617017228896207419451680758970266646693510995271717886492613955386245000583360117402358610592443165550431446928534020738159525964317669086772344912118655107039111502097535594679062552223050099127430320448185556174129383315439037945044200175363380014381350616019594214041092582293718165500895032005003458740188235098525386186958604708065311899889370393356787766047396027405504333389078461078887602831779063533561457351651361346021881513572979475318650317823158707869314985152341869211585135490844741545193010718644848258805443941405675936099949207204092348675095940221112693467941297308343063084715893156375392751054851882837630217614554970181955322001606222329954039471147431531374273231861351668890009104270488233668371750599852181279628865857026265153160335714707546661354620723447136155060277341826979655691489452845355580458510976237976860219585357953841854975017419118388733165832627120238965920206941256908312719106742986984801904814018247877591908958880481134064471857020181196145656305234513559128721600821036386497598688456750580204495976645786573281024728715114552486043639025471215169226563895849024258060016538007542483216857167248336015746849718146802398068088041327457566967769665778497051923173343402743846235444485514077476022466076759979796542785505106042384619597914943769330524494856526930750670766915050583162559808568879904514852978179415203566708413616160784364554869150439722909526688475104179713771324486509955139634526371482921893109338444555748180037008430998005885461382344843630939290019090368187709047349854838253916923698364432105386168897369605625895052783086336858188714383492086351524059455471793262227180010576186131904226246580844647195455268545076999787376972285422847002646521316308259812918393042213838837432851085132071422183784503479089825501579087222944499684933366841787195579797246511358190454641555746488327069955468550057470064523022756322449537640891163193074441326459514005779424641963031833174480089315865213953342795223866808520977767681190899884791177144712271108381747861805970241656549166484073714518405231135333465229076392212794506025978625683630444939075014359456942838786247921898614247660965869435316660525253060597024382487348673501734258195278605652687875214800956058928496456554617786761146631450531260449797636916632707448267268919969332386717642627541225846753166688287087156668461469180274290001639276334518325668169123036355632545793286693954820410533163835349471685552445389791274853068384113337577667539245941428710463731114521651724733384187876949936425813183403756448436780543168274369900623263758947025765284378115618082257265403213202145504555280974743834928023922973275226520649609190823000137848354501732388976504947907233487602002431037787277840000580513938890669068258507611018433150922826118319506432135286289941780348604009785750047051969103037418675144089579226615967634886986831787682002970560773207833381681675727044785749817719664991943992237553130891546868029140807217111296112446085289550544999309880822571325582870869640540786622844966700116892413631100110206594384187539398725086022449798990844996459458593350162254636076444347962432658306203117021996226819532206555931106160111208589372495509866055108915665286156395069961327267155911329950147565492060663449823836925999789498108278604494659076415774841490244628787328345441744061487752017430642259426137232989881221504156303135056112723765436567641648045303486131935112421327405705147414593202298738931566940320162958132862731277614106145363951687552531789621659451165283398843408812662031406573214569580428615235145258101110607728826235910992630836687978990174804187355469882224802814351997335568270064531012290263218396508178361313987501954300722665916106494830808796171742336114627248571485942560012312951152770529398226268108919339679582899062809300834828340266572047245799801812273048249423852768161182360507375408578749906200601739568226117165417585095351223851417704694016876251710574904194013171832249419020512551383579916353587345845936462646523264517155433647544514397331189239199520320866211800297919942008761028786167557679064284567848517506273487872194798181717805644456816956074629966762501627242366920083985413630655053146631626631757779741674976019556919132021279069264377972127938987825993412456533952329423902644699985656892022453945271118108399272752265200460885564255435144218896013340795697987017889367988930060826640379512630297741199085268404172929743778691164296701972002501015379210190371124303552989482306896423010475669626137763623946333478564969811099695113795723936370194535741477745703446187424257488393878292164930323653002573930317195798229151238051427272941150806871759879042797291118305799669290863295996213555644844593452850536044005526768153604089137210641295057115871704667227051813727960350401035086075946793744769479553154656290713961996039465335623715459746552755710425676251380510160486523272275887687053904192049092536510933700390715597956423066287002924679318922327580238779594213984732682863427138034509915454670451695290550751433688549171345408377600458272235923832248227344550126294608108769035385693323273493398080414530642763569179985694465892097389129046627545509456059516346614872108539592152875148687125153199546943923147836419097293527025194214788904805762243088444162993407825491560841014374300910085292309187565178857726457840998257908148962437229801904778016422158958114940710581272121821554108906171040024450763549325759666283125843506632186945321677313668233079268882018407034872929801723847328085083759713614656188069800446311073774016882890398967926485429128696693643482361112951759242497063001452933716835121354788070426198548781347093658142620830836946957391442210573994248547520047405300550471116199974180015770520073062562552296226250419988231699881948761213108373362088747433776497536724656996548476923134633948415493132555386987918749106944957663125505261500015359128724002625160694242941519036292000096208168572427868092979457185856400462852254664981061527219547095949312197540106166212990112151918090374818133581651871395532488900557200369580906511023266731308653628009430736768129915115674938186288204512202220882082226426620592465635371519621931772212346162110005165185799496182416585307376637727870964820675765458971283607702590030666747468380383231707789251097204719609183446383657237534528858653017126753659767097974677505155402730900368214404479751909854731792402616296475059466743454710081083445912628428224180950073860204847351642052303869754686150881352881100985983299897088343063050038016203136180702372256171856194205957194193925280963958160426566303718015172204225171444526587106327095298518465173033710147400721784797552915200436473910525183378742585977803861167602351199826905584661050089389990677409494082998945374619950331028682277364447996687662485745503787386131680528088520369334029714640305109502555005157296811480794140445534708489495809195720789445611962524890565918694945187454008913751553868925251163909133578062246898135210944515800420434155799129116693587856699571159515326989120791081461871073563150632372248111473248903132118024071161809205478949571047128496392325591419114172294063005352618495677076172558010569072669290068283809121612743337455711895054470304783423475035655301510214911950149992905564937614149976747590485950632250021362606523865631577868054723700331822530846692397478887899411534212816262596696277717428520968950172698614730943395930605716339939860852168063224187430360921212413705332370306862802850992321172633228691609576142824151625785119251061255181525982956961920534978138483009705988924136807720604182220865346230990479081630567292377023371041887539380338089063038774719246649655808493317936396369728359748013611379821093601270496735497317665631802185668604388962959600278528240326142383434586443788447045808735144761728960754822102135242428341214655445550051167291706363469850865920953755030830246719988067237547599152963026053578472974562061814101882687828882049160672686625296232973764396110057926134735128108050183759106055920262482806120221999993171622601474707426429545301008053348634660393862091320759764492546508674252835866021550805066542242312456934794943756706286900357282432638207528500620681801544622404851345630774185023049174410038993290832105834057656704821779847688587896958175689706968243615449019774394597501820364849012449585844717738671995434187308182454715984753061875312375241588381811272059269648521653705886451654837003654478041165006408002637949986650211870197736239594308737436766268262299888816744238958594620529556630150019947312292603341442166507666316071368837641918267200381783481373661275316194543449713241795637891917567516169892866992358404422583308082500059612109407609910802451236209163795050814659321164439515407280721044499174450772713300905767542317194474800505872996450604945502285888647467424111383610669309805870717626232576414128243598307910749362023173125745699706620225244312869102862080408725682496113032591376377434290676617504869911373046188695738464957353653151668196288862170583748752742781910964552481754508935217909193459126803291702212416602811211882590782814252930822091852216511402955672040562077925618299684751379959468461642991768336080556740499914985249838088340358617284416307844132046217727033180351573146321580458293834096088575601616917100865929925101539759305829258565052431657381617939247371270126725462161875506257541433798255002849848461319917582165508183685231752593164900801676024480823193728570319605436389012185736613640280208565656196005150656837619065059359302944371467828446377967842576536258222013668229312107377463953832192203223953009644007477443418264117374597368070668356162890971355373700146096438164486210019970316911342656605803383096546757049626683883769475318632189122115638476882187132795649116194437900199433097980657298028504969619550025338338307929840076202638967599890736956190048430241966631438021549161162031094902926908191892308636206046477750050835859554516259181935732365156139880467364597424872037197068908529948616087715712065572440429100528063887312116863107773099316569475670989940713443927762782866561766562891690800450390241672437129422001432455694601793492650205632165230027871285197424756438896459579201019762426422029435019610144327480842028618480350502252861233808250326632570514004376339810235416653568582687411787035706313113954007725234078883210403922655072227116773238356034830927191668317808594711269849094282341283045937383755593326069403067186681426930505823026618182295695484783826118854922358064328817650437004758211330780587560217982472057025343886566746164563944021392505293123070220499250778655537086992649441496786169837188776600427954074797420636934272317176537683108152485786317284787712781773661426926655683508891803640653979239951800908910886619330549013238104165503358524278506511993641925793440755296567444127683684150001344219467272857628328856764212007454286545759259757423454691863374053323082957034909197898067385174803131756413361630987183609204328147995891049240982606223549258388080402131612092151370533457632610577808597615598757547196588843222984434345728975063014594451642273938694814000989121822034953966619058356553530370411668850609215263182209052355094169135589915316711682736790467692449771260640070656590411129828075784571738163081573443670108941435205973994632921229258334918226734819791129424242419381164147044302418378481223130884580025116616379529571603661827807249920026050328230584123672581240258141340833189794195812864278154951851007456614316136164989979882143211925132447563493074273664235669563650588560883937882352270158175209737683838371739760105207501040947891018381270418872942279406571677558248121769686158524494063154752898004769244165379661565910021581357899258929114719739909043055340226986270115205966117102952398607397143592206194944859709545752433406882761806151568293706127417929402833406871282838340646788492494184119220624803213006376968870690948083083094410515969331482360792742014099138359234269729934830313396462222065666456044571770871750047024971166855348128225736464348360687895707420933749153985757965255499926155565833259072893084142147482950580398587086876485662517591942027280075265114401834051260241255862114698866292237638958049704855963770386468965665528980400578481413514835607540776899786591394222718975949556143589391821128293433448074258457208525011937977011884127034494809272814755086824984933544434221484684667575280519727352141208609448516303332051398566263580264595568015624855364969872423317699946375425866101459671521496148870233999541727389826601399284350690659799467292004843385799015817538982298183274543989719152852802210852972348005258799519372432451648502093481280679477188795690934049207222844405480323789270723571711132795485221530563837007330298547701706342801706556465838279881308467940617313737772516538053843324351994847202379470757716430004235008934485262918987401810061001522130044009585164141177195232543137754414285750437537187367768439345671816681431786743174476701137412756532903888372377563784380404958917822283237940588362973824762985095481711364912656106953072001250625148209901867653545972193951326120090579421950365537108495422077104690024068678019731605816938855947887841073175239493357619779900047581662810005377071106386927648219091119628692107027715879712237119248496989289496185058257214996086144384419190532497122556822283014458730756698653327676184525468521741509735724118784380394265213154751871537804095483298520457988260615089675194382014508375319607663440683937704885147057173963451475562800309501455423520888155743977421646085724611617357042455660781581231995927512828063033754971438780453302729623882464925017867903298069259070752772811163358663472606148918503019834599661211764086318654711328671583407829739412505766069036748061026829361844880331511007064165181328182477961845866893704672305171965103208389859642630532160188950871654551391026448454797433296493529347574364776818550335513063321804531055284974717123130212484797656919900398691323160251446197184583648455978870488444821480723176165695314658124754058490735951915569519001868955164878212825510043812661434222272099505956557537596778733859587229637272029341397338860950504590427038269947697629718347557923249811625802770742668772050210592393045952456200338080818274779997419950267480008708929766851244916977002674991288310017165850625260787953025327947928526860041353917498944400113058945748077861922538784766014792068909303944951043905421610764181028426047463266892392256207289094892106203782756363908711862566368076114393615571048357123222073339145084639650935541494546545516480096103270014674453390492868324198757977770608058865455798252203609746083537637616269652271978992327688554106282826885322419749506707022456252952440141455600994711289858589157203891392386417446207368340972702354771820582805354984052909781716680387928218881255345281050815264200139020042641121500998887134423325348291187426362018576895881096677900593798080790966764916037917120358581175034492751373511454516320258264566085365665794546709234224156142919212772052434485734249429805822692913225553882531014604709165643467268458862698932840881322786549136563374225671726023744337475491060736264326695885030759313720806561783768877066187839823206927885301980527202621577333709787667969225528702982580424411963306911584660901094492361620873502296568810837815981648302287989347326875617219801733393689942646788176617608220083789767268254930420561950914650202523533396148726117179316455302484666370681941587082524305583995599758393800966295495579711532502470249697783967082616675817121670583107815169690509256415048754011233477002258878473437556086176218789824535129786680859607810012683089137305319907858622499286778290040421685451236525338331140668615573480570270290339453213748952834855037121975707598226415238241182491417358050071309490929619733877718783787725600448368716723672014460318990646866335623553066253943135675718369488441005155395377359871937850135340105854910579795036079747281893646769822892716825692796033598019983302033626823185110788137483525581360769386634021283221285273906057854789304117981860845593454949478639795984791480582884215809432191891142415225329551648507336431302845495214580612851530892128050044284242226445123797502095791887789753360282911382633596724042826504343399081936364224195523697398643820626162098992747828905789828476512930518459699802905318864177448374586842369314451978290458234593004150551782056442107473017961601941516488630715961212684204741919915140036556292672247031357426136824029758629416405786094250959316061828938721660077567204216041730956643825126929786412506170195277356480575344728332042423940640710575994115642388311414142954689338606964514614539767923973532345812245100166267547455077863308561614438070509417837134927807628262471873288111554246999472001021505764070501067005039947906411207133247253065550798708160671726663431913521995781830855114092847602966606536052377956850281822809184864865707728871184248022815375229758308590343332348417324927481828207115994889285327403517349259903262031604509764654990901892229595211214507059978360598603697454316696936099893733319713988515272390119397719834739535019914531519247727124860628135654093666629616031549620818746873360191029873756996005362359639966148079419248923464261109430606727683263265968709240414668878645856161259330209891955433349859324498332424922505064260032598609895844716706966735446201352512846519117122451640388271641155022610655597331855401212298463542208494093221173443134447690849470812112116662750669203734243066119980536861097517539127928338324418089853010471303283763242537226005317662942779842850804798557519417899144373601793318636208129637022306477800976714558127011985003969401954665901739529360690169466811396386640517139411474772850965372847501553544995911907936469318829561535679208834115304411720840962804867790946759040890666041178606357179968418953407243509741795251912149271836290980016926214493999489253366166303493342893183508882878174275362209267543852772561099544435634766799625707362965895890145573590998375543607005643970498541633171086409615634302115500991464552977916687245778756881952712051579167155587011972692843556824907932598280389304227511876807385429842805752515155354062076285053842115485019969066310130555380291084357100596465507095485684194628358563463619746441425657950522167457336628065923980485938940163996826952857548943646430684801753561962359202205469487696859273790198201839254629180531019346222127860780179157540666359549175173280498364473667988395454781446278986033881281411123061395052770402456652859908296861869244423234231043927019649697367059857009837035876040743174972633305554017652470975218713628224467857105678286036116036635491169432569603600903399773488130271914797170532184613117382877144254742284023491075285093417018738573478929528422888056303399580105361873462821339650664661980786737883471647474070452525369988922746883640783408185164407790498977686429351728079621949784434282822197334689612873294575728510988250153508343688202385665956669834932715085089981315100893840604598055289225007175871435247577227319800048266253047232943074485549434731287040927340109286323675832525424415262941634449139003746324114816651061263981271866061496181794639167832629289168632634429136464908442789120941085436572208871794833777231467742678095074985070541788773417573983947989919567533812298741683397466273881217351955539217412898538138486757419107370748515838886633213939499256340114030103489083936897790611506132236180528343569459798830362203882484101040949648651549385552843109097002420078345287868468696869606344754344864169566313088352168038526288462954385407062032257985442221503000810122972908836010264087454125471529305656835037230689281702956245071185278700192208211725766430406761823535334237376422268643015093772646673291349260857110382091329867788409368851269075004937688761075374564794412027787624220168189922914688401208352916257470318569859634697580107335174002573334831912713802499954243763434049048577111262820678941327774902558939389032269283862602458438151258555578812401836881540952937851193761767026930066781098143220205967248090683635281169923748374326043575876355765793113099686959136819890145753544920516889751141802190737389014295212301298785997277635817737540045377867069768983976826482929385568459242891941447659985181751343215513129775546273319066737874627783050600996493427857413628756381411345257534450532360952020001478995193872613417326682863508885773870348786082067151693146910577241339220427098751793814666482567258033886844622598403528574867141267235894250993964289528378388755746971289264262849127962955355181420837803329148871264584342708239477961761929919280372144752946404477878429126480446660164687744357594757928219529084954935424751651688105270774895029670584360612191608853573079924900743524765840666055783377201076117375698601995562551419274990559277902037543088378066414050286470189744753003124801847652038946654048744233582766612000806550229603656131151794151833666498976188803856844939227712116587101676591909735553744545055661000658756294387504145434016310217231792301973531037061095027252355620132159169201305969864521091528936484105499058022150110828747794566594889903231325253540308473649382712668409377642238673970954096810809094049690945166365396374167954094782533432144820111188856296445018951909556716918573411207561378450037540473630993251332795073213947494170121845597052611726720852392202287282674722556921830045414439180370210668446292316595448543611417545586672543297095323396667551882857238331139768536032823891607878209568694162465075397830670547506674827326416272070888239589835997493652620401019007955982944598354437616053609414513481235358449377416389094715064773794959876184430009833932450520125687017140418903100263350428486047226647947634535292051868421664296750919566568096080553664862614908351821170318981416459452192923029638063921397613183090053077948453192034565715558672573674488877511382337282613200996045366882060717193604416043331170129513279655805006636673729935276173643809683962918825497295938865141086558765147765940691379465228210152390048675516036470748138850263466558199227735759331624126433405348838177569862414767556531356818955797283844059641565533246615201353986859141501362129191436341546576491021434245279767913025772178943482170842181127732563330567784529099976319234289605619402320819761912815419661567830255961483685677264033907723522613246901532821186313906558294034603884721279760787755207590154508904016948668016454816620873805249436644721517436933646322949187701267554489585369036252764410646550614852229400208059010584203177741263829033826847361105800599420582294226637115100252733193685879247489138678878893098485776639378417530706823916906304144399925598958943414459066293775892253160378171202719736128233664610336668754981584118158391462990039379141162660586313163837323901427330758813585228231777209178320649015741922208277666963728800864963010382554324655319189235823631295881929352845243487619112003089227070883435857474940066334765119259481064197647872964003646341111424574237366909626862289470724475245726278936264092002596700543722731994400194430947414703590990407817964895392830843233389497151819905520447563177175155145595181975711720310149938677209133573530577772703327759546839609517374542351825372795173201042697637094568918196099251829422010507245263373057936437535336611373314373256360751041296552600157182723312213776002833535303233525762834229612639875514869386397185303171210939132957528959894362488170951869410274693503727000374545878914048863886862549749688199424494151196952325380466819181577550811864947952925762480972878485482282251847020188206184533757123238297973741193703799606393973107768733731838358237879302772761014920527929181096916546322839525113101606485163958985559557334000294136047529049302480598514695018677815704003489948605246036688399929519830119959019991295837676682216679611013279734367019149169510688872254287388122031718853405236373345644177489523061215504484854595550055621127820320586145676106162186324631994154270952330697864098519170082954526159851100077888560987065757562242805853943255322058890915370703709825916707983753851361127692707000707310159951840550517088392311609888451451860042955574744727231477354456209827660817509882629167972429086195582243741214902575008585638260955047702310782989606562321358680867761595255879295523168144512858849806058767047597405571632715726566593296914551799008087130260810461248385232401618678239426054364901712867614087569672236777372903419774779115184479718155983520479137335112949394120750318531999210543601481548190630582370591833883676390315625292807076753429511954601836969164371934954678475439355054602578486667735282480725535559630951774172845875209371785486109102291520344614040080325646018463144589913050349548790201506739177856493417520306666030353835120991194314086474444415040503187198421950665570023331515818786322181064065680592965044906599603371181933968000776237170172834128344579952453913130839718468375455136802725394775580133752486592056512783110977739701882610506790057236338935041642832056253883946865938311696736548244374809854910161172096167300146830853505709381352710549132036447539498629997831204840301696444367767424318521316775146693747951858232714443352063631401762320833141480009137131622461257905341260523364549308684026696033831980333076624500107807793136176845235218476184048137777397885977587661209118785596823449269822591106999854718531638414065525430815199095453034161277857397665144238783340476750513378445749959414961606752998264524412244852578729731790487434914518630850254743445434352609571947627731748087403736660300247370516479890640800468803939418546335339283979339586857792410271701218244684524844469186849024060356281943666213279793419368180059152271443625946760730415961935610672792777931720006154434820466685957902817326818914553478723711203151716031964346046152984934652814590014072694251079244523122237922311666959837802432628572006589782359852293073519134968497932334277259250532813083157886697518522174564366239234591612568617944850600398723052123708402934084356887280169703081254282286394583418004956626722180356787051241662482695878141908140024128397739548511455455891265186085493100668348354016471189881984593860060719736698355418271225791671479904102230512942874691798699977805837253897206092340677037541665073941359044499488357680372867311794482874944476021407440260389574656988706443823954099139266935130438475697841906779010865966791623162202955347247631252182089928608126754425691988745718274533858758963143532652747154665591834242389118015559013434562763143979589314054722398909979942901248970265887793491478460235284875532283529128714567675328874400482349789631142852885607642051245512677327877697459541472079210840086143272401660716665940028172946551869871851210811728240344204919481554753332839941694143408945551403156561406789471100488208685073243638889839184293833991347051367210285286092554032456619512616094829958487663700118668349443147586644761618206144830094838457986300008073167170178369252578577945256351872226886375898648199537353066269526794870257213906341437089979801882679035545114807812864083678390645002483643858742369455472329176547817999469773035863918172213303930229209148727943886148303846356627054285184632325857881650551899166607703142353730982016188223612672597199029189373084378784812454804950987405995803994818492899856585111583078046239977805885614767070068553900030183437843066027895708756518630157052628233469284662410443382581854136135308201301939266153147079918809789961941025125539763707140293931121479080380858834486536690872152486176044274397426821209210934990120563318746258390388326416403044377796180774163618674977768232710589944538791101177024185986999266702206488832785463285602902969570640868907277795208242824594749479503369914458245806574849671638764599966484132106700742894957387684780827297876421208407028651957092534338692314311683402908053809143873187830721951106991654070356077395960855995751953687838368773094405507426402115224312119479858688426491215802897847624000128945353406380727930885019747417348069112917199240368024402416362166206418152629639597351681251918902348231533224479294881420710157376296216142871439013080992061082790767958329467456596299469337976156417123581827648528186147991361921312993343473160273542960009664216964574623648729524892758853652252638930182814253770757878598374226930961774911101327907483770379981077025733484003676101584352498626739635183358082352740931542078260742066544744314557340957956975270992131407218979426201533337075870403291589104424659209066396850690015240923910877448255500377724512410723604863778670595342903117705101433349822118194812674996775107455676323549779553666966962223941276155327889706370845176793672389960088766605254648741821723085267315519987662806242518643991052709932209133138751681882361788590404282730646214723515807975102910231296611982594216671306915313203462379403557987926992850908687709005263375383782814480152349167824136755256695248976905162726237183694420371434303164213476406399671455201304565426097729926471556522650086785317008142645345869206105159468847453603183642932457678906238383513484255866790249835572932145416960782126071041140377258424198964662355013928789144979147099346440823219142327209987010107595102652077367205994697866446932034282660964513373292936033519440255033026429600675789657487385113416387156523173469455399760573609107136238578339525304070952284724894736975679876203661258787216109228389467352211433224989805771336010124183424245072765506862950411359367697686110400356120771604350352174724678747983255299371005901536008435706538019798808438759601839324133060693340528318122618525132447434996376240230264368754550505842432481303506912573423779594008488349379459597082782161994267578797138975245858965186989151554091228190639104450694645041679875753500885313421147307132549964495469589361213211880833199595300667621179120910425023467194691039209611004029054597521280324380080881500281549207414314350790851097713716056602449761696952582541666911082049503039295763146778536741849077762404736996900635271482332668590849761459506326517121161772408308462754585419712749729221602017493491303059084610334602320641594192103248948218333879122179282757690203163360278025649874786878672873198617741389955630836249230048160405456504200088702935954356014919344710952574444440388357449916439147885285005296166469018595620519611577474322211200788628941002204718081121833899870957053825807985010770180256928235490015952267019903411834273179377682017324573282846045194188668822062385677825299925923784236832590623500382285813144538673985715160748820408746892491432157020987978271442347151749616291746288905266408998310185227179158276305849150445740384066065511106983303956828775980237721787346911308601259693393793393862983218086204632278796856895311883874004720592089289369824706919700294007709600529236951108080912518181836791949893308818251697009142607385527659919840500923696482237984251346139380940328706362208446012883217459577557307294515811518595414491312105693658171157567123906610628679941165505183358503712707177267012648682264155227869827853644095247433179091254074856451220919866401127470850251312566187420574253947563039416759876353464839648180563897637262452430084227111436691745040420974861689166365918290939193597464078848577882503610265274373384568600134364196123175258493971169193895414615089432106890838846888557295066822549935950103481505809203498494784014292742346924845163053032941267119276738124936951425494334883460538224163180497901960857802968623116881044981312927746116997911126904346382760379086663419408303558103570053500256794021254024762319112973719075657367041808317079185845948789969882172272608353973466564254065716533125186353358856405285238367014806250814711280920151027947179184898595121123237156836536149044888015220293888190055866608047782420725743478720943000149940993703278821645404071759714040525029151933632226557602838366704004376055282405573042059621585070213631218757818694676626054104267733724950059961649759335958414313521918668104215245116298059320879893813389938066163851182440865576513506678024644331339024516487163954738660244686786595879382052740958159394976826049446519949886202817265778893000006638625830666986733338105583716114606517503889924803973801397490304003125275968603319983352404997485741522382313319532284390423193427103907089864949505728175288764196565067601165332754313359494614941079525613870424343778979330860870868853245990502605250933091192240864893557697123242700689106781553808040394009116410987008583428704913034697619281355099371651941423831900781804761503953920678918217424356952525096961023135691574900295010952184996207461592690789802757983270743132782797112732882467603219393637704090939181374121950755702072392017245868033252763823754037303142400434056043391164482660566569475638600762515163416501752825020198863998442593079695173057353764131949207123586240214333590869334315820051007953258943588277004115305144258827978724117620762335025916171223553435294480264326771898804942081647124578910432447734042174328028089455240677530988514393195583628869372288252269715234673646763021461061681158991861100298724561986287765105142989750058490052873437349604403724646454961872043100881137699262497800554403102598531014421081998107591816797677463696169224320733965967528509738682028751015773867427300319437940722212001201537213363577715400522300393025104027959426522578280488242069752260118580191586950794484782908485408508076640290583351223931379868915179262663264400567938288616386175683106702016405669018654761433086216145570247478093404049828190316661349765407305493701839734325431190626055159105230176621235033620841889515496371954114787765245510239001940745050001786437043848738743301929707952220444824925438547776283187210766486670000712559427985360539748696318201424425698338578004234464867225497902246489082361842462476112277482313373472092995912835426883477244271622161533212309155772456160527931580161581239736753746792055656633336822166019913859155071184634133038517625028112832790347497055338151328803143911340326764019611640510437477424992363228297135732471200329289344028799120832011053156061210771861209382122987056144568486576207219914343767118792663222965622204093161981017429749524188011607433104096089915368886523096450770698499061057969701154274442632909724601831462525907722817177230400175819015441216846407079196547753127989027343007832767203579227687721566585147337772864635034214362010962823307439925173937589917908348604100636907457013105541987199277916012882847059676416986347214354297093684663644996998984110044960649391797683391871258790121286097069087256424695471856367191728494962382865223401640324078206833705933978526594778618579088067781773401278039751587770018325010580823681101392778097861423242218988776425832903471945966529851885290623775689223805950218566736705392943212543526692492665290283270399455845708674845841983716726609661911474927665398553435048265515717623104435914061282035020887468706768495793951814093653108507318677343872941246668078419733581795605187078080782813111968850570454103097667530442526513446230877023464852954762906605301756064902745252327284652182932128964150069404754905252830808496494283918368076231404824267400665626696930512292108917132348790159071105314388622323466391933196889278490219893630371308007811562143545541721520883235711805843521908819372919750147677150721749866712992994746003301233814048633111510196777881480154849505210861837406832170071554180754694155537894577838622238389149454277425807208808314536394883686145149383004082855047709920312672579524258710701250730248182314263457125201570987484674337699068049145987232590833430011061031991642650953548801989051956730195685134040795263240791591348456524081911726605009075024050144791717433944326290625927660968714360030928713107569566961258900499240187715468330917296489420929566353116243156361608432412285996044014659350327730100056039866851237951076336391509915425435549841802042911351501894689742553873031109408148843084500281713332036859558870282462542473885673787881815300545343316328833996023115791978954072356551997148599393201196284066059312442067310286226881305033739348493591698094760426727563092139547707535555878923036792380261845985059710757596174728772607020827471209860673695208438992485957619859568965362464941330046451354113535556514333037244809169333506479652958021241269721568757254221155906336024142058354822055835315974880460024426718484362721897344103569249784010492518346753614604661299758792352226130234699479890893003166873432141549373822353251112213996884390358963973351621782731835288811324608620190355320007009998023545313623769850782622104392792912127249009254573571922979281677184960757453783791151220485086768388979413596478926610388471133312274248990166549175827391926960218835536403592940777844266460227328010573186916756820705942883638058885355108877497247840143714985538381737250622384926940012418321016518258216040659699552175627807133388313835521553813956580076263080403057156271342210741636875930955642926508271518305464007535546482198460124183330957559237459349894439728647800376706689899334252577460087868345723423805027681708639430350438854876341845221898320865286020138448532363716593770146080902360368863202270863421512376545142999178991274619017703381226124238386282463751985454594160634355896690282084766995591217199178436304512091993714735223183237599775374405302402271471114458891875405210705965219717405810507378142930683516525642173477638440918863442661183077186344414810806878092862485167919932428198171605528849740182398370394476145486862721186694469579147102574719807516181988256042448298562792620041092172036283280947523046976750296170446606917736888720590266948587640986126788250303482024934275529426564774476730596888675112464739980831103274968316845098707606637613074992265639482907502914085706584812788497741456073072161732221242610734528730306734256830200202444396455782175750181596880525575865146225002748809904407165998305717253789559912745926115157562075165332543162928740414611382856669993426323088314060742279750616927994785732832487881992780351378727423852848152311408978710735512666303904671357171720022588062249564122798909833990296808858982766314303031965726469361781120641078600099990056018375589218640724173954728455048232134630480410794031599367970688041708217071330872284524185705968849657506166556527825358366769842220471077874735371283456282046205744664070830448878680098851784738341475345502902944135781863599933110922259679790638695381347515167291318368971882469407003844943144312434946545397063436805870131768539089546230640208792480840040107533923901178246104447300516048575164514073431717681240234083464175380041959353418017456966979575067019284519068068218087123775772655858908658005976316800119521694501691146622411566743149983688860037783144398228883723623482082462640958033554315309817352725531340986445298118275399730637785710921782920686621694478685086004614136946125446386485426637649232268118203496425030845601625749894777059671398208828365899411241417601117070034469016621711525782237301293716228623940812737705054062547494524962164866943079167313224164172520128790169970884023142876002229680637378194360507186563602813515272477764706623004411860142753341929160507316460266799882540625848234575482096164419454988577005558102100270078301882361618545574496331804527956859842377513967263965672345223551115130198558765436576456358525831382517286275235140128941189984371927966635422699168120377492774320221588599937345713879064218882357698568578923009018128171345731684125498679447698573462201177817162011215059037727119095737122184695766372919727550735382629039048622923405027225447776031295137966763717722214735945807304312524360940979388431607650075487276986829011738825893003533253710404792265674144968973394328161296010488884789760571217453817928943674983079229228262325007609636287164345092331941579362657925404001661195511374631502828235060561130289390434098004298948195571612263940213729642959263491510943091561891147485259615687226272140906641250482101515592459550761428254920343397870411611849603005985297771903971138734215624081863911987952232616495710592213679315759230512774279665730470351144463540051764809827324172743544538460538554812750437950295545052246296935039978344040907152884828345345894374512678685453673005179750987230325476005709752252065085475372105899089238659633378393768576739544234580976187757814368653281259306571798078078306662218910321704074132560612560353955438162668832028867003538525681181429159682884377336074848581458133014820501165429064273258626920627576983507684464062747615691968275979198734922048810529656953411401763373854149602658784298123415135689995349721285648181455459261025190465842447313070901368300186365807491310659129247225152627704579556053390482569321370719740796541197800439984966675465584062347999907555184789790397695633235757394340821362265916324444687792765170547703147661593140586697667234413381518443286924700076603523766088777359533274515550003773624577265266494126930958021714213715185742596463710739394470280772436900597092796454603045620421104637716027223238413970471791761690129276309034385115511207900206668170986600627115622963010446304340893536893390925013228135909496880045692707708403569226193526093357423794661710814294011387711483563664937298357212057444740813042454146075033646445654450105732812682371869501981909039791528562874256679947480758162747749623997683879255669117424225676158761049341196391978343509189305012619361769399775967932213181486678365227811017521291890026877686600067020972669222330854313790899152141481945399238573905856344795223217941790930404920165681960312626386252665015113677509931788357216210733213006614669666979851703332494534060427941388833034723364234436906322894276924087289902776755172276179931711431168065515470561761751095569436150153649356397354672595656598965788491818583184169487916622498419788292535006133445353231961027455241203371676298748768431889917562035975209771126851482413295986969380029756878988525614704462996880989770152308585143242469426569431120008133271955014033876655798933257503592794496085750235812438576102792199360672077215392657424627784620735069300437236863019737673192093270752889348415750931066357450992833716013786992713890773287007375620659746115902099449984499095192760158439681390510677340944862388323434514627868876280307635512389023999864412620953120215181987489110826152757035546402388880949995598396308481999484823759952518577313012347414779249072483958583335361160989803037733613893485011740667748786035303131515770923829931651731017405263203995100637022051531486943385799933354220306937539903098682964025251643578404924549029059141909494521034497946309910724144857259185910507796784123782859525843740206914596913342570689699853029601186352267727848662952646783922259319030318248779754180589032598554938233714638307352160967134202742186537932547798904377725184862069162385466967237962569378174654333795416722170552628749002426973819964013177219662392191634675933527052819104677333335084890797386420514193736588087491676457107523889835711401104918846924593878548717930920202875027120485421315112743241181717613764829315557325113887392939612425446287009787834543562129015703138392868192566213719355232882869342292112043787857839974559060613780196955236933803514635327742106598700516357283249059472652341782915379099034115749192758833735571263062339250909156312617693591074717409361266407380374860897650805561549828378637943884565148784026216683316671175877060068654299057408944490213117881199906403171127848619876117873474207217622640754238089537688692530798608669839369274759112098437119721910133648352039221679712681105550833075086325566949076429885606888509405602716957114724438399971452592943550671907109209705460279376809853639158852327716305846334927553117414033915685591541729150497517583103519748753712895629323268456684345568419992344488832710756898004102309076792191567179482222123347096432399422946719381048737566161025748286363827544345742982162867108806705362806864853775501737010270237470126870642958563766605141417844645698551347225457650144574044282089627858809813160003498908974644659673254159089665655387043930817791776075939379456323422364137104921294610399298253771887786992093591799483271746048853074853491191971909496790785490319105091958278245074064974917426727087796172523396264629301082750978859807728068549061555144457927628019636534893078384610216651668111713328135139968641733838796366070744331609943882663057367874771274579245034550709765950439351587027488815913981291872667469143304919389067343633752202869639531835665817809808448584955211038061986312585528134443751104976977009204823241809006708387991031017048931440695723426870750954757721016838485255846335400100197872787996446304501401355068431203016467044261931955389669177570235545291114104278719829725341095032618305822056418164409526702660385931215372821543462423316648596139804577527654546094542883819175131931687890175018105467025926000408262707921882084485863559769517507395677868580946600326405232593553841990557839775489259437872500704019941249010647921703814071647243611633100619554209749191584269637197452840140290496091802756200656610748651008122571713096006550845873186775491803524653468262981933878933908539008154461500396297757426968712376432703752093824509112693827932783506072415045693505863364607196996443462267734987179820410441466373694962612914502628120108423200521072552724116444544980078216040223732036412216038578287309228100959003938468742360119950836536279332253814110134844256918780188518987631062234688582968007039711272321396147298567073701337766794410443827575641112520775234665730656651474978557622895528187538630088478001616345506818611033901950978134983888249668758620721754559292157133638902440338303407913769476115879740002552882665211407935471982351348346935907048875190051801838196446767717066980483280084585920960734544020521431465489997421834203540111657068123705092351450846504653753795588489428821325030029003688851793802858642812980284125263784120539560497079503846703714425398960392358596646813448516711498869799090742266672881489479626524834019121675301754622901038974896314328398911133244033093219070643619795075357585872877849677394031991576453973874311547654286484617731972568247838933182437624295528329881403497689850999734486042799436892388339652764348405284843940161310162519245328563424134951131077390895915088574585850486544602420874098611480459669292977186296131016336758733192098921975545942900972919368479320666123793198255097881991538519813806615533355130237537178042384042402152507263192199410850922182160692753672626747609001510361269221963514493497583141120041637882476900674696094078852946247470629188811593445553624858363761815198186041729153263367546659003244771904515932619357746906368949072639138716152751149035609721885097841764656492778873965104199198843147094081401251054971557619504938209180527923888089525661837812047907122505544020193558175926220927920217550054918300316514127078174721618094339544422186919152124036926025443443782743431824547069620393245457045490167245898375494396656546043986359559159061213024957730098957927206207913619084258412424587294161993568917955804724876981307470942319600259848984727414229894534956568151695839941275693738071121274824368021141834259853451102422767351228922797413651043648056810433157821283680666213029375908751054529953626086968693786014748737818754696480013837068174474783875966974061343357198383524150019215764397927023246268089128745391338392534828957037397524277911196170406227571595867557605939489682896944689931825378609696948753856644854272850705532786262937320580459744391086863457451632917363289686491314218580063592231420290433946168567938046632293064998287227292191553745158356341840061839585177107084601128980611091560942360624777710403288386257526009535711069108998106992164442118366794461055254304447989295316062281699053928953066298817619748928830278137023799319580849798900570968833843969727593198687597671209179709326170649721510721315813624191114148160810852860599869199168236341049909181871772354947087197507874292687391765297757316003027111329174973046840552845850664414218149981405010385605562035058475950807202751112598115866420828218984617269444953080978097030383070346788412049389127547162757698548268595750060618284261667300766385340426788305946459892284458772572332879905770179753348181302191251789242790294632155990040558808901635417224902771030327841874664474047104254447559036798535228372267219791575600829189117536856791577197326508768078438028419558087738631118048958361853175747756311037187194758485661918108481743358972693027323637511151356369260077075415561350005109503514777966085966360034577256538507884836435284124467281989829711720783101885740237179943912301759712274430846470499622095388674495392183759766965233127832120584049180506752966153455176935329129817290972611594350782098861069048584359919507960850283792295729926166427615585314579183172160239833169194206770753147030854745676875527671412113944121832239117016507179513540991041612190952840996411994548476091378923446682028748330220146876479536061182654089415837763593777100645180128049284466630912272371922982832479596395363684938125495455375231255818740126332584159120774513142390312401470008861302403984492859752831098785853242489300203259247206888520781531722050382386783761649222734951531919251672461950727719970466902060268430987847927395968224984966802169793473327995565248524983460516492350906063425079191359945076250610663261394376699307722200318065645402318028367220325889732359626394489328577138395380686034481964798651481223550543361110176807074512134483415093848789860161899227427158671975143404037304976213002814066478782989031147927569241754491527734707684338887993796347544950219363765937191753642052156236008077761388407339810638923095295282677161401993546013214062700650421243518100660454164229543452484125197054699012348442582038866833110108614640488429357776236436143867353338756014407611745003339308928940966804329761437749806999224898844684127977802576885028056123692315028274989585597032660165767956288930846011610302643392220891983967300882574620129426921694354956082341961147366676101921197773713552665198580501531401935106129389656357729422461494869069082892677457791181265139982664183524105885265338161855144513650044008527414726986428100294981086355787082309909354286352844848310957862508272067094897686166389190090846184063811924961868691709401665567560475262263862910347135709325403978938961144607619511546145964826116714110723291614817303404426370570386525918579836720165490482508505234027676628886233735424871708553736696285670824737322208560805269765704911810100780788343360204459004338326258822945996522144201632152291773678527339922217720877157148178282236698752163795532349586493413432062300949611009260741162925793741170274609244281751090811982070095386913870174842945182544781910147387099987099864129996264152158328534567682849278030433510574675402761270007058951803765767235929760026220284812276039894370328645712982665443919107566624080726007451363021537576444575284215796859508559419342093064371470892278308601590121358587415251635729158414395645041865112102654794815643140392069793246303396829944961144318127455721703025928739946594518079247602043505513416666170869363268474778209814388523939063293190886078884877945079598786066098408735850634551131569190872378375265082720477064193680212680095276688539849409799010585210317127324947912357763080193423091196940843087084436681109512099342114045995983765667717250419258497080847444511489234791786401343714595392248360421585690576873877303477932308597486262214050480156547543870375983560699806544364094305786389293457018316656671360074891232442920161970085467549767639315627711440012124618314042234896666632420916212174785546523733868207816088656072088218083039567756440278541755819989543609395091373962517081543509007119673369665104209406378455474740303995449604020128533272763169544663358901946225685568830668559102751429551834447726706807338747478509896563160971093921774016378678345961479339057960360177121375366802252131786191037754158797125167239202221481436824588833479678059911391151250046496458717878860655520601566917571551901596299761526474242479269655366304543604021877068708992789140705757392381260485615639556312174769237086009566566822755329455926161851181297906400600932330144578877666213191394036065387592959636229298992366701922819101232326442307069312796691095808144131343515340769565738852661581331899790180657651303551862312078940092038455880343323905559120016815286024150773362630183883995664683783844953254085044565900809653043328199706441560355371721666523603797741773892860506594575933872891477503738448693162506078631779209626470240417206835867151990976732564822661436034986455088690833099187848660531992133648058444680182679139371258837761891174494867988439441168238266242528963220338526688551200979917110208035856129020822455581312645076870355657530997705833734610399168294384479214375614215442454864756508583213819479366250545769889734035972046749145000613487743052132928379247907121642159627899937843693695224479260378855834818630323984044261215429928181810361699191742465358362258718620931255601538223490666586301047060909776766058871382443256424773988314763182194852213382443029510278687421727334286263377658476322895693694559942810552549993717224608929763709663841157123760346727230689860204433679189755300426073978677779018256496764998123067324059657821081518048462666612299597220081207541350232513951509112434318097547706813703550261384834170777999096531708686974664112941221923282966820997776816554666623707835068250398791632677720852236151108395771148008944530682099406759908687490995476447479281845340416559170893079498733417473289285700749413653737124797363197466016267989632844592651882570838695997341360450316871675548729609332489206420186401327656526193468926394837693792298671820763183778995251064729228971618825966517076192245404712190614838291414889185847545474874216916565152357997054026460513585140814803869487172854861153698264690848779383892276368904737391509951912184914195141746450202548302714161361506198672105643015298386247443467131898407493865748764348604080949500657390997933250501080582828286358552302576275546077468171861763090025422369972616476182257355901460485656900511885763060203772452860649823356865498340691282794776342534239730686885099439294073589160852941567105668754264945808857363307225993478423230994249326060121692073634603307330798387646547157184455242557686749019445934285772930153631262029130210155486180731907089687102562653216680486382006268611577038628704862758339365288532632567272246045523918292836477755963025122178898209748744276936650729361380774817900537221850491631823949474092549765368955225694114077881257523403758110193413961590290007982592095063091564814652428576010779658333073724790644174930954877955205068808309242430628662673319113868408933860318445657319766037803260413104549006436628201869186839319231481115193734543354385858038768131846981427410067284741336493111986057953482585902532319301361401840373597245002433625291617792599838355782686531954831808772309562173998220391087943810150988360761891371094934990321117063306827875203530424124514108726965101392832642236188541691181091743067100763063969811017858425793847259301750668740041213904923447172176083420762359698786911243996680861892698786890024145937084675126297585103535294252640419324139864151616676590153465359780178901576958274549454432565194290718904875157985374548720122970246034824035850942549700598285562330446028204490261771194380742372804685771679411982905051379008491883266330910999633972004401544125714233023860973313439891739406291895614833268040181865338550673791570855733114285484639120147203780846627056196476014167451381952748038304422293185132824325804118087752793045541170223859030009585786318702018228639660649255799102326049738292068158122992469244384840150953691541301026131022532816419099801653998060181427483831245916035841605344951755966538644398475115631425014929236740291650340684097845431778756730791741435878006523603722252423029327988753637016673255016090972090815643072121983472268066836797749925880948174207792295065885525057551867304265337626908416462264330969928279043800835457217388018872263958169679068542609511885022299577716977379553085289690100698618679389846506201491512874537278554461698303355799475136167595079222650443753106398774079225279698945101243191590487803155179375434638830618112138918512196764329011744122591352958203927258849453916244634026923294364133562255987768816176906146895066712412890430952789691692866051404886281109757857839802924219696866927964106400688844534788295831794012916758431064536205992509060403950999426435805830750705606382734206008023812554224038430947999338575967036328962631263993460359062945569085218485193868279118964780768414664643838375004650078020054082810467689436694302188258318495596125991199033171819090160961512554581347723846023322566387461840644695044227644996535405401533645999357509415043123246542896327807530418365928705868532444332192276313900708032736668382462891629265793813619865663474651589558499030041663436152984427560590500653897770310788684134986568380428363685301345482926974270348889436038231814142110944137261569980900764719955448431370508886769279472324584256963773028678726586989799629667581457514345924693340829084678366366095209435561329261865918141453104979407036242352270049293678167945910072869281947170598834318967051400825215515372828243720889950044612235790863602906074595914028032188641019472130014837363994678713660185567297978626409426241890355751700385058853752491130578131859569909803887385711864796850287883979010292219225788659543050308719208187229084524890422451603055949169445164660854403755644647177513133971723733551978588906131906779598802252686837222915473313945788878535044992920979067182757962315764557964579162382360006513560136508943911308782018370563288870554979811688298662367821108046251724081670218986268967455217351173696301190208430667303467658924926475594032248994637336467670378362143208873158082212034287359552522164481525281628362865099661908992215814326417390737801063766744324862644510319263789005650910024823885159511497997994149623864369502126073597469551905764347680507414893290978661589295965253572349315916671025346173088608180777422187523691658078443678578786134735054115047645431883238093395526546552719431228071919789086828048922657419303423313343076115829289262108763623004946486010265425169359395484427741522229946187431594005306065986358243565301599142548935014012166808211984094185498342652976440776006581929642380573766698755354975710046473424205433195418878584302285990154268913516493710362480307101630684764792273751862830051491343452251192271767821323254655555989669810407829583898463761204450652498673232256967579984761353126603200790942795381700086395525565171064721029047965745935953459372664871499812297440916994167772515240002007020040321411271994907642896121074657944741336543010800815075103391294692312425342346406963796090166908402499814506112137663189852763918668917138242431157905757882530588736494527223426416334195421556187177928859084725535859572632112891881478941862732300267694774244514264826051892097490446507021028110643804937240837414276449956682853297809056382212518013135464294267196610567730713671691151002469130356555445347218338092213311785324954221874858938074450728995805886144857634141990397711845714790424321762900964505526194467818585374604632129230252688545911614525731712382273169455438893505517874618789912409275035927091001186795084756987084144254415057887206811552245876187439100983328900650592987092931057360131302026615980137962987433493106189983120556722904922964179637009111341029242427261860795059165498784246310967334873507012483432643820969785985145483644469976187701489026061056299758999266442962444142560081716613299001712147824794409340059815462940008813030331779906099860964096724023951490642281125140605680946705121650014427640413250489784086201975530024208953709503944420262670045310601329742676288662066142490202579465089222723902740467278402226876110173135075713571498709745295769274477638949756868083138382482073132225535936940734699205560410509039273007772495803115096070470522622723878348577063805707990986315325202224007654081043525387068856118006995299921803514518501432464556840831055293462956617671329296427225833379100909853343942387606855892730399834640966581506412020103518514149892661898976270628969348779609130475806405971731505286788623875619236982773779299852136926677592425370117795682634687896697885616641306869728359422986244122670966144951711670136401855912043664981937300086364430736432690316872959208818873810662306994096516780831118542805234957927298444286733694111515166750226123881486731380877988149065142937296236757680973743767308006588370443157727631156696396000655215671997987022595476618468931711127955828813530026933209642536010022944827004519911740236099045363939351706402073224202671837110245950535510656606546809230759521041350606574909211224524497665014242888072891826578821437689142052673969144024693850639377897184490078942984293101596431764490360761358784169953086902751110201229405081360887490758350213077974369424059537229370185492052757707007514737237428936704317088747742963099800668103545121425851805023836065015482820970592887714318937347276192085934115528214003459519534622965495407299808118728174442826241166275389732148805703157221270556017566992002567768559321098052048253496772133042074536608107800478172373620899716017126340254939991218915853620895655153014457251622443562415941891951431899904578276263651651070274881683975264305652920619182327256576265998290719076398090739430588386989819058190840953589577934073569212251525898071967409680379031436885104230509992872491958830357239473283798318050681949593583229309691313556007759154936537253383554924425757883025495663646831337634702315201600992287682970478133859454706639315468789825214272361373397996106841918586473739822128484299904079608097277442461423510720539285794178432557718121905395387509754645292433232321023862250504343948209454393337672584379621366258946768877014789803842433978467397611172000321389968004813917904553750455113894421905404693890633419231584750973651929463498330217101609302154523356634236821380368624070448241057722709309842624451061034582711626266698935760795778691276006616531609202968959883470928941093715521830390509103342557922461889567138153113697770918374533701800938314005156612545259114094687724117922939616543912009545212115957268697446197145427225206351669726655276121938193921967846831960452957698402476793162261035832130823423113714442094477933852160902804623252936141762770900490965308967318062566558627275469136400239612800245670017384874178156769909103918108833823980815692559782483268301072171969694923927846920187504526157914027500759310654079489207314389488004649045793592697954378006475009764913045540511366650599108491310612418345484151095706815411099182259268997883481837427983569311861987026304116720015623758856011532908457528885141415869340294548609386005640641846190571736319579517019112716473629596990074752065635934748673322686769514725540797996954024127517198614225367169191262064528408613323925440617030532675390811192590371870117423021022169317918866730960440929891270449207707183861162810674139268231058618110577946164865791965377408836135803634264584444992892447353838242521040619314216149507594320606025357004906664144420690326938426723189965344798181119722780659380683935864640928199848699106102308977985885246854802412837973331776497722214267172052304218276056142999509352955752115281470016366019231141160893783947045604741407285790582707027196380818759000548612866218461312761533347669875950011410602658384288190426466403092141115210725442413928154843662580827467768709870309585610345924169156294642136166271699170349963973578318474771957966751440978693457613417202116743357968132402782472623674344888035865183087868008141562206391432862684579721347877775570799196082891154985038629006473684785060361342258598474565662684273469045650679712156760746486661085642591568563116976017592893085517054848294775309538941279587310425474972633095489243828735895989615381555219990084641110490594397504275970250085587574226356061734174657823530060945441527761910606893611119263477362687843029298325612516855059597866123008520935935059034431942074641308036493086911526744590184971388276189335357654124615015039442481194587565391769960160942419586192209435862130315360059740431016234148822477756115732909495951248773940512618904729226785015226859776151772763867024893528962463431442676181474167971288877546355201584028689950495820758728307690205653987186355628495266364742633694445137566775455333904706771221256802469790556798452407278521705880554798753606388315249202512170293594942471810481789524573915529981242797220475011026296593048165249496936153546137709163233160086907614805622783983770526097709438362848765389598656491622949851569404466510967787316262325422875119967748496837443103051529003581138708361809124090711759023288496378518861483371717723749740162691464250897455690639986414247711416589065335768340775034592299554192489216296858635896467696265938028920818710014523366487307325892485542964884346940780523474139573119765496385742713851269492473004402878646717633903992307639187923953801918511197055150214500931360145356172036685412241957146358006179250001525932107085201531200691452919052221422578089964405178899102754125237730730383136974960859974063806858016513814692296335956059084738741844697946942014927730276465497689276281149045122776056023812134930988505067569748909759151934378614902764038761800740561323389931912836183777207764065387592033840919066807229911080497258805762036038563194255311368529918083629693102990395475218926265763554479416101299231766731916793585094696375423097937856437603665291631955930594007156239197551847131614959924155339538304222059766779682130249477193997886565000117482792262938689996729045863972505673630025067198125725323264319520198273877085220276073452087799156964237887352400572978063704233252246731184406772078277388918482691548214557496293297337463058221969302118758415024382125082033672013315019194151037023312990065481880956932447933723057022830177644863544819643102743954391322058302003385650364098819493281856699282582730806700937350713460968711593139718575703680531442338248996168331580807475655177272780417584773369831014885538630873722808807345018115719471223154783228036991003699691649551707688018545659167824038654790684316677311239058690574241230665984029201342435790431823722307570325232767474516749001629061136794461904622409730741489201450009578765291343593843096086394632163590813345392406832691976161963727582468005401405272358439614914791594359988349652314349866943714428115648121284772296940058610656744911106944280566743140694992454801888755968636615125681383350149464860998047782211291745936238991518649652833105153750667537362483533471008824902413604138641619405871307034632763559122459502511032094437817009038314763830853228840753604647716444951049613891269345490370202105991170251784187764626151701881093822679543049089758885321898902841626455266666483070631920317920902241468940620837623103643111847470711659342223993289909240772173936450528687743313615802719719886911121208691445952629328789655493421152582748158970262047986359544723339728652373655415201731649875749414297953549287062116954907140772478788348155722296329652528288097789268602658608099694054639065535932411282394790492373895526372205602234625969604203731518817537373927469770172076353209477955475356965278247863572513308539384070598381019044228444598058059194313765217343427029579414769609308813350164570065395235105771423863581633814583596168650174065042013636352093258578793875399287529283331709566699916040177703199542882706214669663670284952465138244358378767717920410633928841896767354794398745558953784667091955590107186641843428271822248241390737844983811601255778582455584285670558089412863917886899786303990771866490797039894230357340627558537812739320565149044773891223643711075018856913883462344409348221465832421150685845686972931672069303305901274875836420445337764296422240442758685404860465776450710725510888739186038460381849247195545989801723982533070634317091357343945772185359486226556370429796267354845109940329125531300706917566442407111704481499716807143309574737234190579186558907854284084289940792417534513192103638313075137318309307819241266575509870768170252431041014989197620219183205351810870348231738113849179746962327709792365742415519541009814294592685004580615057934428962834750374315493272266074132030654074104061795427410143987917055992295632855777186689108307125706924396725149443537331895962862799542277419054383392007937927144207063273250267386672164886000961355784092148870512657520573188071908610505547676321145925040929529464028959532152617105339423121320479079678019270426450822524283639264149188652907170296662264120766037835330620897691334078414204294437746454634683721236742975150541194735508542119609548308717205308159125447623888934023674103389816299570609559467185562067784189597810518865793253646424712759437982761050122911636476931178870503615527563985858059446574310097174356646496736840021446424890381533551116849474895263151384108806791487224785584206218315804624554585642475107798007711850737369754954205557631399935469165947450997879676237186768290061146104989956507581033556568474076308343389740592859995660201938275320119679249350516747753563999094619152063773801409705961143739735001986714461287118984844364889007606526920992082608843863421316838483673301657729136459492621636327491945605965479468669516396389002812773065825761825658400974766034255451298410833103176989227639044222992831070560240646381077173286751420076388734183615548281845281744589901242912558204002240243782857780336301826982786399124969556722852198477989034323121883592104424848499927708834997350584265072463878934579042724402007883999199193506832709729443640362315807484259704056079417339041053396389702966354565082437368365786781653381409032896307955931286348581542289045108589614712363153569528137265987812440699189625316116586909585230892213139627934911649218840608169173260195114306440217075760927084902112856354191502212065631212327415872681672788828593034824100902054519761210403931916389227330594882922268926306493696684343943342101458964263715029036139184458674302854670492343737690723064848726726371808119442910107760470991938628265596600051801620140595037259374265383158372409732618243204060097887334714396064974860332175532238773309862030494650465713964463667095958101907176971314368766951818338724585093702271701984512550999011603227689119018253979779063864691194175455481619199792234363448303383369108721827338410393759073153904883755683122729641069263162909820204827945829081934164293271569590577859467550573970473738477299423838742706673442661998209580320387164417740443354241640747897778782820068881546312559385470300341684712013818272820993452369244776200833856654300294881283353974108953932629772690892145812654925932556830960321632178866961418411425897171157398131350592845686672604428593427915053277430534649283177577688435848939098821033639952446078732001860166717677453519481493028420925129838991199408122207385789424405695733432568024261341086000397102151166253775003802639061049539494840456254423570039091814215317613532050393042991530663487943559316372237924080655154106818021071655867784853080402989279902922031416476227802434672985775342982134268341892177253320534062846531501221719216954004744317458842709815869680882708495111059269904442541828177596871973488912086185583176295045919909437968969723795369611259908187997614941273308917142385155664538546610218834429248542401512132316931944704884737490352116107853656290236817405345442400516576215018986126094075038400755686394426051730981282601777676042197054909498093463209973387061662118933732245229843360182758249030642974234744914653877281634296738910881380014393467410741036416076574634586425547324284362770909607571166631377846619551262288696944878491871238812497066223184029574051044783543731571565419638589541527166432981385055216452988997121250006349984018070772436218568325864845870656477311620498308798024824456578605703548570478625916044688277313389732310931623125636585029168457628883626960696924981478719371541171712208836833873784879513528310163968043478959002924790829700593017323031839566444545622322197656929458873307552625260610184383261881428628864021847000917483854835077811342921586494629073894084776213978148591431493556863144500686735869480704726027359406598238946901240741842985398229846809449830012683182795896821124617279411937909852971267336516064576748932048853801391922332656996993558213922638837893568700297390116955425031627454698536210351055473748582605692507390278542430645913519252393221023660180775399840473637734674111298054870949766789948267299025577755138362908553646120185031219733046678368185419165713449466227644276713310030222561357770786513834093155107098664525251374596339817485818005994224412262164321817194190484368511754798523858717075019015548651685663790562104774423536000975006656890900691791197844585332511860804471924668444583725009763638139700593836709393679302845234976406596534246567768613724965746326152845572913178929722130415351154974543449248121817045960847598924020969263483582551981048016206068006523541385281528463787086837724307988688929800413070638294641542007272679120879288910946598740998628983520141917828197828002285824437848515412406899218366461103846716829386880260735094210496086579387516645094548627125706886478969425210974669887433647337745641548802258917478480036375327924872094417158982971252557088456108702790039490498581764923699061113883762654522145184680618334642604977239418574312766363709523501559802520546914404960513280032972520772749246729104042144535126081201994567928308799077929708279999070005303658649805137364061221733591927842886154977050169796580434465138538555631893040891256181422831223017088822633450472475912888452337600453130008652012876548118744835509027505848579118249357544143098034834891669227305351546449598891493495023567778622309757894404292351030278633605562397462170929220768383152626908964856015403479362791129093752283183500836970399012039921682351124046751949865346586180902230230274893879355118860691155267007308238549742108627113210300004689809443951954071595275589723798042202053043429460990414016294772173014963512149900726068334281473482790080931841730522440819331534191746249792176921131219078209421764012812959778867059500132057283629264151553858108494072777234042652130112327388492261156622464724065898661717247555332528204536569277320353144369052400034223481203338910459530514147284701313479397902421348523261660661334299974122741510371141310802044861737147374933984691203211769761410840225289895980921618517306779392613153232358709050128608899939047906758252292981875087362454099574131503863306433386144810280760185355330974596140429820129693054883098389772657948878657100513108240140615343601014106836341838979845899520638468589275488545791947347864489928100292150024047515617981243310015378819602625889959426903097811785836563810333870735956911346771612912180439085466739029717214011770323675837789669017989771669637400739731304598460918719459973094492792920825175071059909594151697056217880238038947645123049146120588249600121619708025411183431661687909487141270639837518430331012052448271485561802554963123340984926015274088056207406776882983333450953451887471501024976809149227752723772920045937129637597546373684254548037552988315609597272850568633469453177897432322010717679365021781069058305884409465008924542011442274435682814716371453440757329977496456167352099149519261333212723265061288347034644016367490114460550406010158786393982697288969532342493614565746609812319657354448388928193404696398263127235277030793087904565242026968093839566795758550685432815298328073812159807793312382218396773642975218427207957475993193659890910500578838009768692496660181204334625449969713314503048645304920150476431783245553547447579099654728835757221381710278350381888493646251705962168730571003003593170122204694505478234647851882887875437908053454967938478046008051718780256661476251723785501833725576974634951438664064592048826410021359636157318388941856478019615605102824343923884479021758053305918996449410231523644846297167949931093926783470248402980591361575063859370840185764664357150459582863648493567872033042829388394113348262482785990974841964035028358946709907176716899329858698819005199971538830879692685472269617299774572713809125427734759754970332338326291455423514961930209672730196894907041890581747359188870872877853034557050742201969069273566590402280264162655396718978204773140893215900140713253124353970363860583183940619505936122784253646339327522168505577907287125727438345512376244424817025945025940762852467363663879609002576392412393456373111417942301836245911663818666040176423427456665887539380267718604864572616025939153717701263957648836387094317665436166038901772153677305238593427258751030659547547293766664263899548464868014727457778003373654230152420423361302476160817797284484020626070749213838300989662489690106620680643686183957813697317831493087157395214443021195827880482216243490829724521804338888829607888313327330085782098193266630191461559906260102094249834884221874799785534001402996910566275296654450757980167696330823097148291672459712284351739185729227488916502783858995757546176244970306876073708746728851289284303730296550306606232099654750786589493791275026310310142122165942085542714323758417351153744902385012084844899408318621834995975912766968100596988377720207878493648210254450264634295125627512723993857763334578266541985600732484151991220381844585475900274406319700533829300123629766762572574290017785165918860732603343878799358850972717782028960946767615575204784098334331181914975194692871134247467777529596421901258127261020316709842527570309444574704170056726601096071692001767420636571708786368776974268735326076857113894286028709894669943784882935847092468024957848977114223180053149983887215580428485917271769374163037800640216009741509805341467940093884726945074986613134182608392999307436315865005592509181041603718282747989247236530529964566908424572809716927335455648195589767160516072636801702871008326465164989031408449997299963005824680254519719366800151836498483037639212386574842442052383517199958466034720497687839463356105546751417647123262997896343655945367603404206961508811790354221021566045725814618029848516092773394150940362235508435182195005569752352089958212059519929806729816356153503273986567804116282601101889438142250251500195649218209434776667604873950752172045068679035440863278762776219763897961461355415752297554890221280686132354728623953677813823770559964727802049807951292678501965064302438892850992595081568357230537823070558381774372671940807024678634573950321719334381158316625485599669519026898179439746951208431670321943566987610729381958007128315739913300815638905917137748234416903122842373988323831361911710288535512422602539397996073457656703540413951511580128825784100761681443754848815979409442129742813667958789702470280187978785675098235882091920400232760140321024408063654980568873258231543302354721379255846877584821619257884554857302795059147615035942250317684627169398564011493392191276625971866902255615621911327743733469901971262587567171564720231350342560280540602548847815752568692993016190906473742453425687747776629823145573637218362733643430829297023426459422575547551382840341540265928348631440688292269342660432825262086505560042648393159711129295671734181487401807541094572071029310709993204355417643464631372113227188000120286670532812569585856938145631216804838749676080926184090248703223833661452732288764281550183760506046297048678460792760964297966419403642826568955843548477710413240277817754879147266847925774417934757903095874232008012814954041087347187089650711798233759221872045486968084820023364681748670987632196863533182541782109290162872269525130107953062625922678697442324661174145948083556578384163189410287833302261490220660165379312286998392355850421288139140596416877181873179419696381303627249327087353436600505333250610411177922253434021898904537360119527294505331699375387549101848874441644487471702609007865334316477825998498236809412788435636138891972711120987446011633758229691722597190124566290688974042573998090719965516346921101473126459458456672211427712009964878044802572020069065064527453472788414346259206503317378382179684310418100021875309692879055601087036027828635021529853042882946598317836165180932297001138007306443611429528770494750558115686749987959485901325425230213748133084386768211368431033659710835048029392307296550771891227076493705596881362947814925507882206395257088429028662366965187625993520983754665241362513417094191732241414506250481566692248582917167338900154592726260670647344374943055279268789374745626631746398777796918989442440755693596742861146592984320454738671443390221292581550813459071766526712109554280478212913536394969065349870109093758987266141757827626702890371788297019904604717648025889205829551130169559975904411017567773551567324940555664034497435921390127025861392885726926261990682607911346592357639230589005333418259221818786801071034640986621673902238472286516777864339541252068682470271466758680599212124339371337283219593283968351113772097177730551131244339432586390039053859477907486050387389090739700034144530358845201843222450757728379991883243086044929288674979042466471606545708038175834617740108878928162146219992124517674801282445436549758354166967790573237148392363617706613068205613162666417549711416058762947034651544873065212574955000466404719453518341055328315258035684616639660623756782674452403294657916724933408043480463441016661544031430737512199404004589451755102622450703207439972356494288603705864545920298903200656500809169824976911005923416761321839718005824882392258605355591978194375081975293820559644460522404417910732911661069959175932413060357253153506229362987760355676769637005980487478870689506128441805192243690836181515569334773661911258010946893075380318924926765195954567193263575129577321244294154223954949517939250609077845729977780018898777069829206242940513396095919981890647862563255681063107960025133188542251155820615175528952007296574726242567415909068509447542018814968709475175650468496819222848841527178543262551637829294018284355104245586234117435372367305150060468378100930845942573072488567150509577057961020238466191520607956876648026973603203963786029421120167950860741507567169588111721303688278077629428136622439739214480796954247045824044644272895149171473400911956167025707662736142484624515694087082577940450374889671236336586595184426378311560419562254791832780130310317679672349909779965098151522312497319180133990661330471343084636518814219740657047371450172936938384130165019968102085560664548573377545507081515640658185239104911199233941603523025888121634067550922060263890149535426359535241246796849975270400481908467103693618678966976288761652196915869855809995356092041767732836276725397768332456516770380382678003915054561366001536698363045558702059637054858881302390602478535052123785429972920170871130567356466096701255380748565200988988740742837083559856973089454417526272579335059980696202260351589918652037634818678738492195499320692485544649136041649725000890550731016982463413357192237945787802624513243769303015568133541342803778021427782181900138112225770534681116212735013880268073109774870574566591954932586134370012972350673514120474214677651221490508796471511588244820167983616257527914962140390190869982288877342545766794188108108693994772178552049670633570541207703509701791789450388109827781028553178038969274398085969697118946619155786858492062891484054246445034135445059820197527891522469702406110695588712579284484836529652230592910271579341314210245841697304988826446355156500297158576626325371614430280158631153897798891002185931195850079967556408497594252057118243265450621678821662104320425971926497048463082718309095476782224920376858368796369839843422400501341485199133416445107745968756746771686765527798114081685694461104353788950953537221279009858213071740431597649775256685346065383719552419073249614398302259570198939229537922039186515763861173324273147114516540254636854852447426180193783211530674011899812635500098324863769577871527403435858041657942615728588818997671343243262848059015293234370729506742701389216329505797859626046632121212168597287789473891537938333152333294295895296446507249113746576393143967878023359022703416020827122426075380145950618708933745735626836109403474837842817184897357860925363743685766626381649150062307356510421082830294178083599572120142783678502789637579972806250588497308323991814241245634523824529544630477442436895313543191615788583768914361610947319644748798029184809742572039408005858431560881156566038914989736796996228849460629781839079992840084690935937443998931099299038844661736194932768048570605244848439158131456966231980671842500599269646451305724539711549676379435049325223276979932207714603093971221263614350895380715969595499779717618068962669283280575334141979617915047185863759616158500781707166553401758361325713471176909635265192096434880188817928796052789600382817958163360814633212989561597788776480404548365698851250615697271915473531729607115045223092220619151191411206885546955074574041227601450065372054239480171455344081325792061566744283828725259435095118890191315155886661956728360658794472152152382929238611745924253886934746675481940738919857837876046861778008503516381131823044789604063468947445243052203150623656543212219869860983585549706649115777492300232560670796255820626417312539643374921577390564360387302576531355266050398861549545688471393640424384624101589932903331380565398983246865161682336062514708881845037610554419841398664248844134674265872510836833582052960438116808577341517699228513978037786471715667118771652085263511178148357293685491677330653996409575708298501376369756128244829402619057570478657890936627628846348394317050635049785890854693933414008691003693240841436243750006397770782007527218671235888292940244721679608704043399368414040966878125638561143524407334327567816947625198770847528154641399828346675768805014198919945348871738377530966763755760211765657482669785193421753160803874165477805599014694450552935998325912599112656182815474469357341500790013526392316043383765533097710431127328819091047855723308571924035775537447519998094726478890232052419986422703892184667544370113569456144362174121530756805495608224097884345801206580092696203333261661571434249605166042471033586895913253934624473580171890689013881810613970139149212251704604926574577710620562540870666340842498603607542238611558467197743147716194645517211693385851409316078844677543982494368910994244519799524014509586357758543874046576932520090789923471339780690019514963128027304459265761284054305325511645300555031504398002751600244498873290235995647806950977209739705374352605065085686889342599036549651335886645333230038518021168607755399574121320739490092108339077246075056000218575453528215339116914368774173552795998374038995680108727324977728052609295537243436657579048262810119263637234780047588383354250045385863796655669352141103416211151309587622275424872484131278410260628165455949652287861481360347181790481444044479180270937812299064649230936103522602682120011900520233295320405403428751248167775346408610856627932094682236283157188989972498664381037421851351615830292272907292305010016140017183067438804362682097901380181962401479093760820083073421566208725578944966715422997846113505565758234131732407935841787750723623243044517292567447163196304480439294584197758195418900453874701539234132019193475130217940307145337220260721338601535224237252255759894504942035068504770085056895291169289766021267581865060448302602391885920500064915936934523087389735996876091582327405483394941658491293470907271119292492826436584812451290908007820720615790844282712674467451118893388520907121041458375124336168155671671803964249903568841424891506664994680217109366225205261482584696288714983609317842048848830240249929308897062178696872778133339060795279143919445602799442156538896291431826062269800212877208200162485728135455557617258837078078426220304135524966757096272054718664146841057509063565402786729280453399157466839128319374147968752232203774133257321918876947340523337482543131325656185564066108408062621946246837644004337751244233144180789085687179945982463553019556421234704461155091828207397877470895848715513378442653291744116261292513409089983495748329274728191138685970217941115116841576721624607028611412601806193542740703306696113147727499460293863514440151815965377085942932361380677309928916659330365052197515717780344994210514783645845007238367489081781568673456853578800352525188356208612503740800010971633788262284911429243586079664253201883552441912344987349730989348370938055207382512458323529446693407969712789259109230336079621323746118421508377397163076246193193580388784886827963462687011199292477804203620865960308702120098223035363082918793445051959847393570432587267488744377449757678923138485012665357330824831654616896766158262002435729101117133842948477739090309462979993651793832335142498881482133393495210561809547212403987064890628094250693553009359810644590506739171937783992520528801557222211608931593111307141622210538508690836862876505423618997149521338897767201541231526998108698786791384706308490824843955492432774634486532721973425254580598445151977398507905231153366804948154587328883587073922897724751554853043039697668956743441130002329034226589811423153578873139780144235120798133769061020128705212019077085704782905669040978210365920871699447595215832686602755084225679364927766959916702468999005849672710661225463570630306068408335200962366378049081351590145355517527406660734277998686786798472136896380664166931782823310590569981375274960517080833165741835635323347824959376972423141883796975290600368724624060039980152152036298018373366088557913343744193811041823455254806246830643916970159484320025343913439446515423217809384288459859802607896383681276994596513806909500937848575052580570899057671544772572424726181831603627985743629694077280205532263401029935621107686492621911830933399982541250010746783612048562067487073972103306007651917937224168719056535044618643807075560264066308678016662024345023753236132651516620290931433883518333892153037344202821862457276117671345129743805197618196448554069908937306128965825361711135494107656497855652111543421612232839681474807761658966172680359766026539009552353107568731560316057763760493770181937400446762949991434366682029498130140361094396608476887065908449660721124176709766335063817125333419959492595974386252628791911968248522464102276361832858658854272652512265818931825180886474065199680233401991470654328175366444055987851663674416431746945961522077594252660835469673637135945046936180209112045574548180276079226326508297213417445286988663969980411359066050189233505908587360003989943735054243625706336803302377447606979825261618994035014243067738694347517762100905451181262585944459260137866635439499572157280866903634243553627151543200876179017738933880637189983600612092037743101152844564311727901487468347588092365319335641784189009218941625413522145750330493818406371015096887419950982523493134213715007502472957983885812840321577799364405579083406707218030690401963251726776070637233078030265878721346945690911822475723788800412209665725584173555280706520038196990734738539553168659519462687661285740155726219656395821486311159600862121589689379392723538783701081375981469841291941420501349685352941255907561583755652397425681785361076192143158460613764287508883561195432681866377034283660108368424969044737905396318964785798533624237313335186981787981786867244017531067141376492365993463506842107193434408286693524250245735538672572892902409914491139812963189160385960154204118847725069981858993715786969104417567622870902017921358935176898766678834880574426090281842657266385507619201009463531986098530987921555027789516489146840612543032681007661362559201577410667924918662059040382293005319952270446178460408026741092416012812771606513717812771368096335050756392783040857476038880597578163516124522885978109933424974063751833101789898818770042646106218115952354231073662572977036174127959661416138315689444827557290543606509917578886358035694420662034406835905642294751341563161330528720674978838009705863797176649567278475428844418434943992489625063111414027570552408440770537157534008816691423925889020670908486181875925339707358949891624066593327499216756211895037053715091115611769149113994308662021867988999023105193236471655634512659618193472902909956580385491699129776861077038019173813888859254174865840292749027841680133277701539698473241236048026592788060855973414416120153170575102158715500451655861281038870062875704978653300143525376488115951206813697725542410888344199779773993066521822972092644409462036359755952792797651426793461271832295103580175728244119821503585765329388693217445307582713904437369483023841952736811247516067446248887829581250278906466256061651036219527724714925190812306218243053998150324902305105192486848342824702374896024195520510569563352682019616930353284102681089396719042032990094918928375726774123163360250444293333106627276982271361082423707641435927073136995241413688384769185760594211688987760142561273391447200487161869232537557503220980109812338773333701970667628013913816998197732347575906159249449958771413192989033776815616558728052235387810929985892220219996673940042915777924325947480500691827387126603723854660731034624826833798637339760658371723859561533474709409756230033931212382716578550883422240827893750779268236876826167946405504807205871569983743012327770257256740752766593417887216048093909328848496516529247991421967935827555826243448541471798116402484928118647909600768110590445400042297202690662317360366187901315896819884622897156929803499371455966754234888505639066794021828892510955632453723178128774552708887543912818939222861974019677033415045858760279971486331786468109342937251693556831033170946322844201352870700318720013016380831273354220104467932473241395742474388445158755590798543538825312427441098526395611820200328975837999301495989227299263616526654024840280188706800919574778475482299803270369444751539952612840756630039568897832580082323217865405148339967384843476371784318957393688052595344480036317647850265501844100199585025943327935470515338565256640151690796182657565414309993335178365694515400631595346327769844049323020823839903681117563819019470886805633567320242495925952486970790329451667761499389487176006728968790930373090022866713722734714311798772188892323496702497077408154575556507849020418757243602549076775207424040137278591414300494318847225090081242986966999025047519515267109571173323831348065300484225238019733305283155129742104856662370109668148484662360331913920972501347053489035087383555644424635978658358545078440472446755354777391617690682553305314744526169568843473323031160994738727065430164397599116756794444877643713021672457771509605196799844819557607916567782016198163939057315214678900639781357706188631997936577180192894617594230717904131506864584866646827991220662620586366201707388656655610832298536018823054731085856721805283852214717011768996149505537598415699794309787145371298506702436741319727712899314804106634178239821404976249940724321925599968167802479835123992819206058489059590838616236694746718359125013108943630115833791057933949869008756274837073770751446188110165879719899044790898573690278230106094878193826551783161126387081756552227065969861373997304098217043053197127714716498530622985888247663791597421845835534722779274588536005540853171080425186853990167585243433434739518248675471440658398153280828026198118672803672038768478455370192601089277104626911646059616011224050773600871512875536849638452338832628628464560654310919518370866117140295004165651572195818500937466192616728673237188789455067179297892719872256874803032264156454736762267549178263829129903044321832935146816964018854737779301186965221205672076949737297682932921819950336531187342902154151168588066443417917567046313125358656714732569994059822488055383796823465940127844938132796604829839967389655693459399285639216160519020286451800559474897890091637078807231666482294107541863963154561842170874562554241566414148736115606086609295602764372471235087371130303242524796326866687361183071771938660211329748395309969804918556415010056852174659686364552944030804216631056405463744350927516292516213230794793900316921342560888498215690950312211469361767174609796964346975653191140410861686014382109554163972389457133161338540969270396090615899860276365319374080824932901178983737169118854988777966499486522285148883093231619207050643237080171933876410874532674337595311168531237647230605429640844202150919432824067609091341933679815450830232956036240741245221775735727906491452514380056606427654225817476041836112806558495862600211315375593187274999746799349875855473765392118264974053144611545044882602671035986070030926179716860472886981519197573883185382986140111667915053920395716698876015618039634661009601797035777018906163992402328339174397102805400384806144932448516898361667009211969089105721122271250337110942469103450831511015508857810184489069042023314184416946689209289428680167081444998004678243976667101977707457537380404955111645267544970307753260788212835967253414767578947723857654209837999846324786452683531250759036975074607898036206598764771959100879187238372214973524803566822657385651923854412616021772220035951549456049522355554161137162001474431376701883951054699205082520287190971074796378334640817934282871114486361011119879363108961654990227383703166901451018988278960312568676002461941272105189422392445661633486411928482503883265224532283255161896468516871146792401653502239711898500017400123464178964130174975959844172183238288993632403128690523049291352547820767808981880920757245185348761170837097804917208700546088734998877410255191072742491864590261007973820657988113078809953273241794375864750338157048777808368338539113242852319993276238052096568088350859710551341094405950664259231973039646337064539783699007337196665343770488193644039587068861366861582932553653588213885423470371495770469665116288838813089285484434347860586714244977891950269913803656614727116550709256759588539420436263667610545337771831105463143383398338687653131716058799130835871225173718759536237215768873402831807797169663193756970709319691478152186694955381943691968758514277014447140242030729842755026413141617966743579811577043862560781913684634783805811809549728978858150420235003822157477680481415292739508557446091193048777195792723357167865919892825797402510216171376291589479856360389838662999586777034794741131621175454525270630757982387990981314924927965945953466427393355664516809624934869727748168201511629564973149237128823112251218815614220022475122419062183956475733923897585909133005267579805087260956800444051186629286657842227212835125288339553430501587679748689457127868058685232578041352438167992464492575455378667462090172839758219171423847103356532141939656866613866467688688968919074194307259078621389348358625431099844693664451489774487755075869943262704912735725764927524999845702245336303880802107585228623066142011835556933136424141295871505175122887095406658952865841484296084233632739994366645693626405674517870055931831276333754297100286315425855847632544850118178162489982256667561469195165222845321615098444935144619563502942326571402052457008873402118232406577147001551831170550717667202114499017253451853099131715925153876551338542400033324973113439104373824049239890869787868203662211347331906521783621968228091378614487012866060597295470491085628915260176777390227227239065929055432748894851621856690046161743229049209466800549722224076227221817845246537870624760043156693717742685851358078400142218076280034313510179293198818007566425666136647173283697450060038689075910285955087093806794038996166970850547351324159870862244585598525296086350374864729469719441670548178362665923694534906431646679049065604733709821384600585562411366168047459338947542360411563960268562786916516511313941515180498993032516327964615443612525375344895479981936798372694384915299992208589491198200044753772928002323639407170915621775734629375850756135488944139443066157903665697255025225103341764010588191464335746690922460738366799838362443626420339189795654340039112595099419765753359601977495977121460565214690826343319949300807304811024119969159550893614153029663623940011625022722018886777271514964074026532439715462318890325254029254517771027719405334591800051505010990587020945909929048231078087794178973750290730808547712183478332653616350735303525157345691133485952920763007485404474440594066391685161085613997896634090038405159696342900303781971579326406418078034875454925153192411007599494150831330719701317528402455426533694552481962452843853224766108575078232390419138179730228585819155466302834914924292044624162048974678217162485430451075796466507277733456585102917773301998725231188526594165478993094640276377856866280438648822450884372934348542188000252601450590043771054760041247869493591986913255334546797237786293469826566016042570832276225742942755215030463042403015722978586884783617434166691367242043393003513044177429268561558417448624803092682083557675760204832341831315340238889929294469971434986276496034391138951297988272143840753625907528073006399236144555565501743447265543513187373289911659831301786130831498903289985815801925806178085709593751410780508517510223437540936746887778675415918623861729759482064384902043861674728487179632892549559299324205728779386445675896817547014483852725271551513735698247652379958716229687574861980401620170185353528534506113318270529193156444542738293359102338508319926104265088751920975240101870890848982536319215027396912603168043048480765094822895756080098373377253083937674652461154908937323766771974564562276074805362539823726753882950681430526652604862264717799473827767741930683237170058856960363057316278419884825440012012393699990675604004623955670545400103565808690272744858392486421738655731600395015899160112657775318118008327633058507686695756609711187407262993872668256468569913750380194934418321388053705902390270677014756748676538700558153920408966808016477320737665949111214319388829380909592271453880814505671763680707238858886992856411889678795098710221208199249405973443380867524219950163229085555996959517785518166510392174328452197616095206407312024789158180794725554301024955063993147067249326003570375047578295417383848917565664248665582048203542693101729978658617680274680191274065056663245610965635452276254146430139663834285591289985924237338683747010566954538730524225598715751179015862225621120726814368415180452404801425015312812038873642843887957238045414368218185131512805738191204449699721329353910610320262478104119181516461501361548798965877441959136879901672818544337076498028034448382336125466467646073651134998003648641921580783290199398093482225437931514709547326063624122282633608413278441996108715983261282150623476053519234279311221045927605006667892327579608250531636563103810769873789398400063514091565188234090170968148320046991197850379697963012704316267036184997530664570397032474556582652565007181435961472340984870378065567306752340304833249285925680333747685366075094044284643143205366027499629685064695569927228739902439776208224150349610496982874649241989439200912301876068063781383298569009404427526597964640896362704060512511073110698005175530106022890755665189811427374972923340298718071104844492752305795730316702315113956302985697755192745739081653067326232832450655325939236989653098746781993532992051071878283520241096118842631152213270032151697250911204447625638806410110483800512739615496298386667351844264096520126014821408430984985332473214524461001352066015502985714032345858354901839587500087546004403815538514153532846284107099193334188809987582821004761371177984209622868327462953114523003430132763214597724804564711576745895851628529283545275025226175782058529030158889799509444993702289466875523993519867735596325882608476513585729815149046969654490955995038372009991330332551808473618402607443233813790313683513114666121755792507957035630339863345887078164896472792755157924876222662435439834355344753787173355575232612463898737447221593683565405047756029373764161140046470062115780859406685885464900527286745723909367311554234569919568424784221560601938328823327516024593862027833181116246903012232850478562862039708186436020668302690858447041885051458978633528448362979338769061522144059413688925975365241740223478423369567916310207338471050838753041697247053861427340259815162513978158060485211255873544652943033872520245270107053298917887319396671467863305865263913626657752479292886984017633602883910543170487824803558674514141740149175133971478808009054724111835078176122602210024698825075343825330484098515523919547136853336323483854880235029389729021061430692700795309621786347935490932376740237997000641484678010917975415535405471169957909282074319061751886562095593931633322021711608859752665655076489385758324880041671804544961638981358413529122805762797400051510021221250076498761663279205668904992386936375133271584755352365560049009853251513765466124192567950083244014036279501511251135948670071777662524084911182813482187478351395335293664298553719758937044032908734180626681085565449824996473965207140623727190247844991086500996067056838792880655256171896095037489267220310630368817155683797200989508867245001412648092545241307066841189323810165543881112898564881311612564272976082606053353625483343408422612487868660859255903698160178392259994873692606687753577116817876336931067708920362163954556910630831985954625440194525286433804923121954390598968869005544630769876833620894775730898303970949225914756954176532118092003229518379029935369021750413504264073065848798669961111640536905679244820937849911821730712804422593545936222575047803756188534666290961457052475631410020373066701536465336025036394574724117978413598513030282758056474937196049382163810414917307532365220680957884535244065889025522662829984136965662086946550383514398888421123200867134090785218854480426022282722540367998072286212756306298997711457072976701504548932270583486649782465580492829301061576420994895460000753458872543286370371560601345738174199458467016000605586329067811970099191788864079696515572536164700201913849523864925483715251531655348395726479020375041047496778174173924987973409399060653291983205914538993134397330395541653194658779330583831752251482337769125344370099346994343299991534957001573327400180741595674862722429198837380055781182004896778453346816565761679826055575279187388873036246443658007609652837797887146961290170855500822034614616421718587457059275420593540145110054912789844462999517428089390971377263908913783566017490450423556599322894613936043837365893684250757954850654721718071197680527404436483889821425375732849376586369877941959379200474297171555570623639413912315605836413720770878367984003459575723709706014847361725813750961639419323949119522379330487092145219276848716191991955731481320979884518676499004290622435657810251335561855204622233012009974853086261525253307361913269094131503128684875194885902145324203731185179959671876915990245642799816283996277986773575482531267156942043907338353300050562491646963243229799894772143523960902758569285174192951510700288195949242597741199371064446448875386743308323914914784574226830671053079346394617351842013038390872774803067464880489604805773987285148155033589179203169724285264645270236311831763780171635967202882691578517507076708716069989066649568292589858540697234279238621967981293179003418347529972904412575723480360642064631880683069352010748952648024278031496399169895805179054859173961485720575223895751479516362308774665021514779166088841034476637874695409693414706291297296525157880236993018766735722069300051894303494244574888690742538313326446455003731682653852950419390784925477210732997583272371215498685808289328150254135658505238321142690184541399346969237912766459748050427838114627018550565180187529739462839874539307133699523491337402719493969196476090225735589435102445892366346274185382749661650906216743642001455090879571188993811680299388489638861252765962112802308641544285929861174897848443603206389756911211788790359835803827209623889753427362862216487042209883657919082856460215099020738920993916286262354159440507688321382161054542572898239437860483966181854752499242735642347939084922861063148128627567070183283603804693240412605407548482051213501711012620275444895338441790276378836557518532168917818859653704509641385570801418141594181598412273080113304010850386351450187565099881998737118350540129360422764775287917089336938017288182922990490896091067625332418563989596965293077262967986383435922692452719486746317695683366562355812773523091424267031821683719998723731756540378087435235567847772296169688277799629285274684246567014225956422623070905664740791139155894229986175998327300766878952630014108585800405413840483254196925917215384816680648424498095159843114168129359642059169115875004593491806755032575954665375040827958073413866580848024249711882006822097265682479112952497055313308404076121916016604229592124918307390222226978475606914941107365499531392175336803464282431219631448159349934016448213644635282550352216780545604076980066788641179104351500990917312590281806488731046588000366109572406381115463748938602485504042481938611749493660544103711690470145112895639343036454399358320232825400998277942339938330986853835176819477340841484021376320180747105761243701594714155089184441033140046725588077957837087404764320165884689620952659485985451517670958803207313134391345531945954574772926985317486400300935627341161291021865763129129823804043569860458280513202427493835588701526515914127297351318068822156908489356564611986624055948458668795770338879615654367248759127891374778541616891039195754978752160095283890332072441520518090400290293219961258754721932628695356682587284161617287616967120661637047281182198002866453027376300953397732443365726392127391177284325103958369213289365156925091735498898431310985590549196290965335914029462007178072340190707338452422326644181275390946111433568447484653351507195775887824954764437664834946718453697291902450577021721986934594070945314007415680462877885084525681090655290179089684972171732943118809752705831590442628944161477680620764480061419117275665725378414932262572769199193874674591702086731892557915934053874000398102570912288106062606731893974621807008529063547961613433553517392805356333734759907568493565195130445193633882099678727715565922638462477468134148678300095833690232004780940321119731595869327146047875813325914485960888046742296725290039947328451487639932148378321822515524465017073627661559764244112242773630698293967207802649516366235947592079124082402720259970805665839708600377088667108367373591930619685206395473396019555425229928667948765514730660040677463564350746408744747534312801561845628499829692890959037065354865406897045940235038151818849362067534965014396095230296143093511681485004001054936090960174938575017778088726382928558917370476203769280832726708945005880682239229105415719565525436754547085814575964660754134468578082740572031958795810462092103565396696758087718195344253095359398241442227779686002444314849440598615201544529372111778795902134120396303083101193337315182641552391664674224823128299471515790520479366212506595554683696491987939928591125222226996230875703959437023259861434298749314358944879919804885517169757241208069009106154202403553479593406670415763749109925894626843236802348421417438658895345304670330680368412474660945851576580917347967238815042889205563749383578396426267969485213518385298808840741449287674113609794262625960835420724342727758562717189116528035682655198354405967120045775248254896799668406910902898988284891914881529933304919956613749015318971610955840342300559684292794912602289946384360671399579165698230082746948412021758533754509248230856474749256304367776978650974273565359497196546323569222172040548957734319080628553275321513552543022652482067650677431176437145934089434600058403884911107860656791459864294338364849910247357242491404098403454469101612182806073705703800260892213341859595391999532708112783442889242200257160694201402156149513111396637739098042542101422412699692782995997913748319418134569789476797933435589241824544732230172167058607697146906901071675854831552698092180044060651770648311133717374678410969575348768916859185552871203397329524021476239023384900948300278356358969201496209858732589209561377867148841553508229210333790561868621744687717615814465691102800579501943936050827986362382498113097704261439564991715140171776868297561894211469077733951713580185060923022911052669591656953555167180716852261531233051565983933655110805912913753186754409691212382331114242727911495810387725583483730757943326367854922476417120679311131082959939905373707216815835083986580899242306799608746811200022917261844741401925481797833508128401622150259816670173357445191719005886254255593357375868494610723697926335983159031716459828032794013276734844462834211404431150484279219283354554632635917259568514304143078993982099711786833855616827416009547817498333989312312610065113583884953076125238786102349991746650197149213450097234312945109128612046565671791090596900171814088404143847643600119561807220321122467139425401928713586144158521411181161055671828921468079070706518735730184878172380102506328744828644199985321037144544735846458043242546899813440676875816621975559557224154704907290571605831260054007261537311991692249295190119482754656537539860101570180219890253650465252942318515936123492284490830321541507792381374448815609012207169157805894247876229764555511133068651047718483436448076741786717257128226637259316851817743730838537450647092366450530885410186796524936321935629130863992487615833576724280746958977073493635283950944862539012506513892106780257450837158823386251720165977403874455471131512752808482591946774273330106473943443537033576310786851864638486005536621596576488396299273483647453935354526684265359720339958834382145158298575543403408497318882312258733091082328730548754174992493846437278263562049851807640322188978067298063795919051444603270870196340861345338895536725835379957534999408796531130295523820759335406305996880433887445765110310814516185554048602407595703710568624497864195378579176755479122252474460793796473749594950837034512055604901143944040310420980169843165694175188779608416797701235607764141561097876796193663543313160380597917631802370659609070533558616441813965705960784731867560557362929989557600859635576744126938750770790947328783024446810919055603339249238558099251485405493006761017270999806396723094271269987344926078520930650500044896302043832973594548191896254021409811229202398223208490591848963157237358299017817455667965459149830951333261935470195785023367151234469052032850973316601004341940246081694750802233125520786480244751151027748446126301284028309860801402368893276509003235226243728882356284794694506211462139523772063487791009245405123828419424323364671170625289708642254711785862306635374507058236292027441679325097403891864747810995214769132372945508600079264345533170437100417201087577655276301364965218476857289131522393890938764256330213235566745991885891651091744825777022442243086932333849883992144473515189782202593897999013691713716016030898510814559827651695994642035431442276958925485642466351461245210374149562758609312722219679547931215375069287463369819943774805290955790536193095131754698406565969707227275730159418969677506400845233484659408841626590534405123709889100286370470838072163705609682679383603961511354390610918720520720865108556124075394441972654907005489009362312334067006694232812178803817117679469643550817344363853357545128845255580371032987739018896182489831884386775102346202474605346883699438818942211202394407704317128609419797923689594063202872507920013930053988516230287302640680359628319488198105054678218338400453017236486674545119101333892030789364355758090657757531166601068723472268439451182802957829405320098982913908455569835036292823217194758210467580293911829585453468014792945630227079163335606037865119369300875169857495117504918696484245498625781121286202261220223739942275168568629954530511715023197295256706566598973104673772534179884638541154550447886679644106007783734690124763344686189654585459927286865611838343871746657276231882538776723512019350884735599971907083162233899424222320479526659237471717988807069714926002426504572977513949855925773509550478064502689025110025045160354751929401021847409584927368791131096763851327540411089737359202837141338788865019771460744689293753217862402231955892107111479169252593524114177304914843038079326004355150322636897523901637637484296802502135116693842361159954873771558784771513716892928104297108138775354348380663983157453653092077208225438833575019947089516852047590607420311770179763461770626115069102148966962098226278488379660957662863752929921717610554012308173605663133873544718366420841354388944318705910647878691770334841210301377807392986997755877830192375268324077464041146877481415930885261672509145345777178419183860783352329908792619000169804977655774787621026471363469729987489647741872230561724587388330575361335908606799000754024049995174671762819430934405072547570808022060177395970625336638941996993642322776665984990233051528743533017933439109868532699234393322450122195104696944020676583915453327394941954959043912022824219292682778064336184163802945677260714059293625066115998650576883111840537653142931838902129754370880185105409315373406693662971285590843981188825070877183219635881415219605750574955652654261564295977557632096415594239525332687515864365248658891106468507772805146289083739568551608636663364811558431343125693612376569936209642133987518924718947992500549728396972313683994839527136601670519586996047901972069332591042297504470715850192989739747046754865976810263963854059322851448349283134219803023238733864339215088592248087096971726172987463581348284671358818026282000818660501671951357654141809867159259979964800575592795189562851434048486214951193974381670488472935054841552948473599826163892723042970024897390036414363144547646124248581193307378268614030665167334309355049841951162630929608148876401396750463004632182188320846639292879240898319413331772380501751711985151686853332715160575715650105410928863201428201134891213512098327892656853157260514293708636523175960539808612439066627529878570289997647133122451459415358345557645110468721562469278169879136734025494634158023956593956213519990033499541619517271606135422926864530533218063849789399860676807244135949782126284550283725709191654714614215808633005224167643492700785018594973765430838757377589322689951571025084616429969016532529675234418397008249423756604237825103710114271152378707031935074177664370422477651311047256607361277440460933333954849868309867857849435938892132945518381956225833008037103304876736689118639383921768101698784262994018689698422471981681956528908250428198140527423973274121484988844355163992711074110236836429872963661650944512083968568531187609986373023687612716014382523747206495282135070251302655971597027882649166587938162165628902900864112749530694221117568706825499437050684275055109248762583981691771347389990852037687020551497163569217360447406527779980461911811086484517726814201467012400312215978398062885338823467885522232093924477669157324882431145333886384651704932741115168204813941135857095607073635991397300296626289673591949096651091078956455965942857617992619110383265197928026797644742445747041103912232331614053549913706863021403725982281231978116564646551498765161102161630224275097198239924562731075249863502875718150034327884589417963794021114620562551489032654355607310062008839553088869059595481129673132470492538940297987381590162653069437942951148688537573501452346742402548815338514583659555102831564479899341555221390312730182352277635397936413223494113700471954172864341432261137481533476254223747451951417030006327521691091626196095489105032198568180682383956008102780712195959795338755658254915030498696232843734422793565532431172069929138560340756712355177188444462907790141091962269348761252377605503711731409517430194454212613224151332385323392561720636579871162498602982463741654987948075404857887629960482883975284729409254839076786781079430419502134532751211139809925560418508359568283438511824808871504687914647017763169455715674587827944229541096769630434716252905926569863366102051199890388893136503172255369937027337996648175306029193449648684318217448548648265685434886211947475232159525453751935655848289095625491083997522137721369959813207574084486294740036947193126709245779803967721905536488139947810725636748618452729282786127826098583895442356468364303889212565090596836761108010731656836002443700404139378647950332633918477861615356952956222210326298061693672484504711392769163005658455867220063217092285620039132644436030894071528391222669599047271004528053994733956259745948442061085792003850080034590167576274576249146511786599498244267828619187202769434714025852232212296913884985906599537869970564696894836354168242969192144122500582656329229140914347755598041341937401024641221571190024140167053673650083470100924950526492353873185388350687626413657209709319148821459964916868464781221928657417303473336682755525180980207326441228465044594020141618261370563183563250240586178266424764439874993930916793265081721588306834699769154063461849179223780362803008398102919251517034856874425155403479617332040384588913349611725920337623666095541833121101902814909067604329221046553996746488485247329794011540350842055855706717348195295366539688316829373687664922915735381625650677680773952958337032911683937303944959499225610090482345652396543211572304738027339452610479240266666961843261146097781971787268933824008202114797824349500587044603977142766206103949527325103626232733763347679871689121155652960074047219683563689736479731842899179911490607050891315200726143669479629225323340834129784725980433656871362066947735553960282635964714078480020205074360692131569631663545200333742715303632475818629021327394539030920637004238218156403122708791766222480070259143774778643037761395443600643205116340776307781182779771526546033817996350951497305852746567538092949991007368165306633839864096025167710527548318974162720815776704406434714058147337724290035153185754606335745360122108660884326001187416212093455106694282314492845053841502115446308684182504662596519105845849283586482965319301490031213284833320259739892695263987844037641074717091156289575818492726237005804168230890300937064957437809199542028520357688753932407284821263192383406593812432216269323734690394694107193694635494240088823911767866078923580255822386890698866992448839730260544237790947971071689075608856900245954561117086463858037527402071482062359755478634696897057036692494661720991822200474659541820626387977666175578816471649848906253777321093204788018557386803762857610579217076245127984884668649166863022601859489799455256665144895611179371315856246362259133238748223113856972116933669979425301569643256509152968453835062605455394175819696519497221990066342323337645949227945864536241875880157911292157679840463720007616556161331247132275907671505288912264870251986286748496900262859326778728416122475176574444037339703771521644734129181689573899095191219950655713639748171489372540712606450358056697905611005273041057981719116793170421608051709455273360476000030052871786395491896492746358334148675178811637632806438729867070622296099689853139787205551766128097567503974814832286782644594318970034076545588823374912156721300374384186530408655602252781281688126344542867157144120154659347235848106647643841596034829257791419428465153207039440071936989028843637645473897013901841410232659046884670090946328264110315212633877161566581313252422324269743732464949745547118842552526230327335036905082641789041057394486279765997721029371411225556565035297482244590901594583245116665765797073817233367662577292131216879646943763765347576258892012236410635610409765316612566911794974653718386923510173399525736146690101922253996225497918830641976609864415521861003060297439978678243046540407978376592835784396786056546603748941084690153951751589790664390414050580764212562078205255611266440104096933722905893249532361321082935781452575302157572688730652549595325421232017387876737136145863026750991855622248472701513998406843900562788262102964930737623973199008406914148699227832455657119606205476270431752973669618342575866129957758266564832770623493338089859197258355493569348083612661104437961266322069224704074097660492837301573143595171232990697824746586140723963713404391519987161785755889589251136691911336441713410385280439840370932353553798818708372592295512645823285427360071215609207261393471783052284994705390234636693245423466192277414555616646956415896949252975419465845895539289957441061563671613235672451268416734435490836169595119277680948488124625852570946518143199090714194836043536072399606505470944256782581570027073564048160483439684802550104970831741065602680730667448815557055650832359316546116865120610280724553467721917531486326648224280317257989725605346861619687484403711213463752216773306649644551446930588966905261307005626755167678793239565120031636697120074630643818421162921322688763950668943392029591765116170684140175871527440479303694839285518948468208623567793014649171755375915626791371724716708327051284626332337841403097548580884535249250884160747095528335682202253378117857611894754623751651324914943034582386242984910401278436500842806323373784680918348925402266410859074509473837526861427891086696765845096640841004480646539684056648487098046065644051289283044621969085144036990534323692969857528432990237214881053573016159057299113764841094337943143652752664001833341130025235394010090132721625841103190351293871611934724702761333425269765356777309790138681217273636429383760468026607341524750410263628210730225102547804323259787107300850831743187930529657808744398866099285732685035440196999925700037791528131486098274224175078907068428236600999018769192410263968162394039450053972549828229239873347620814893118722892666027114369251009247009691070888380825201630887595006456789122012228092087181575449613168035912810822263525196515556902870976164893363479261344566550479918138187335874539428327888562689077279935492689422913151104734262989286763128832451551112706783658150555533744288444759822793268100833763719571306624352640867329270016554399840134204535390425685903050281090483988203927716832453948144071643331641955649023437147179361051586918603972622488982347211379700596837089304900374705448946346774099567148442041256971569935751136797208440742587497588750591449073185098109866477384630340353893204261052490346714822108818435236901513561538110526674210988519141489107871517188310773904257136550928469608575620974211740616454755532178432319634799330435414077522410230902729294142084048079127744204411244480526035765765575828313884078497072724624835205519053576566507260574764234649880918260017316116152748097584553643978509904196155634561019402913027887894401510548880582045382726963478135457142221056500893879582533218541826308061461058369488581012897824536134833286626402618903151874721777717433463490950863285291198638491345569072224519280579337941700807363797561787807394348710447659443764230004617929738461514102858716569571144401560643239410745014229508021609076518052639871258243661614797086174106903183694651789111713749350741733652336285013648559261926781905169724977802779639152509252938706390913980521723384527616340756604703543987895371934645582398119870020870871531014489681556635400495602951490609895610740678885409269725933339203459693549323791594212755141664220612816748506942663225908494695202493186580983184208747001941413203889101488660059492034773599070274627054563813834113856302008698704708237500660100602429096103063121734038615946942656745791238293031518320521150120800376069944476229214222121683699500719120617805554696576412161919049791870870937102694292189852844250689445099938261143450023368789890818415100789380936153767959190906244304135463795210198275101105686186170535273933547456922489254126251366889710223530718733195606352256904625738503775659926125741414589360621697515587674505891247211501357964324167007524531585180786499159913435037738745903630990322526509570542303230727450526574957766766282907942110099918796653521870994742426547203121816635804788689662415720763608511597410063068306799619895739952394624375873302702088035866970544190059267650120370986847128763794298256023780685163230555746180827699339470047892065804794246434271727944943097678328779204662801104793669056530660169067582461554222045921271480066843300856650608344967873530929667543136454150308595451270067794440274932069372778537629039228825626668036798803404601669424462454438077537852562027779623746968219647659482238009159328336843825105901674542929008552777232832958006181629023942544531036932220931255729997850752755315068982659907544674700527835770964184761762550945658537587175282209858937967287714241605937188731338797655835135335416325649027340149719093876780984301758333026529360355742866495673405938954587509543533616664846882987419621905502623753527074626919788410463984491263929440865012859988275144345068247146787699302220629448158193179741261683975819069777217997650753433148317983736806551681942668806177196400097649708416600860324407386276410647044212881715035735428823597842245205113482270140011194292034055224962852937352997230431975991103350186105505630693045794284323530375533822699433553256732544277221639265641685644963237400701288283566121078538157575831544192219730501666484079840790358280582503399673967695725548093593163625450158586037874740134625521742256809931649988655473201465861529318683062495157089801564252468802090002517088540481767618982869121098070368824761382977207004851657044739431160980705477211096078517920635131970876320397776043385222165067230474057563200359330786425850325653604205435232145571578399667900069945349905386943693784349639278050363574127346169828855294712521646374214996582073857006608045179633945209187745660502987122161766149667409236281176308485584967306741935697371444732806917990421943217176827156157681880574700389361197407610772238441201519400922368643710779373392071661426907241638007652320170001749236874242190929320048842732461890510099184727431968568761542590907082496942189314033629983089317900420278680067994924291983524436392079636698639742315849186278227154803068204373330999875371502554959474933341625488866471197619180277542027887478706828684889478236155122789728278074934946697708207686905379250928269480391078209534142360543638887291246563056468889746709210745883190488710804754429235379988942064289023305094864374744619831570844040473716026378003839210460584200998642297818542405812912347826465987528628519512591686603649830862591705431757857674532048928108911788108542693067108652551071633245772158125668299161725034759325542946512542240231289049496856371314837404781074170772460800160689859711429240762861413989008870215293190607152692721441455809004298665303478918823654397641372035603081772646085226400457763775917634896396749298855970310091520427801312456026240115032891438454670499539371742877330273073486379208348326298922195196736042724289911957714962077907610965356998445443842747727841424570142977610775235864096498435380507454566653159175020778796263589368387148960139530261479243297483963370440079246191701661931049864157251375172296329447428897550250717419450129495443196245891140494561501359170797225534194131505074192914474483290520893462569662233753236558146467612744691802471664210492256306716024263042089730308986797539983925284059901973252404890889920148308312484175285159343443748078243858210018221434240408931180933071609573429509397930313179907813110046952318773499063040347415285808182147672274128243163969298494282696737052550973487300559268889975035348698940962071948981992348043991860860781363583027610057704155348127731556513935852851037638988425145379043953100404609029693068741768570357631489134874694253307199809350105660032168840044410668152014773562430548701522278412472930255628829756498142120983797525865560619928629492389409624697289764859489092753061577802858339330880548634073474472749372881421046480961737099011018221099565949196077211607406650860339674433685825367265438102612607250319918176006836369278753874175626669387592789913777522543869990595250159502300457586647453982226699503970516895756797908614438126571504627117291596227672315299799164164506435236645982335069949890152050730259163037931505029125512500715972715981623681393536656959027940295911928591332955592820483363279365407867383055457106339675877004854656986054909214965809059771653802644617384308965920777206822063837536146713654458127152399572311247446080356530404594968940123486733919259499353833984049316561578841042114367244480702488692873488992656227641548094618704631441744860995698090583491545604007182064284022720214086790327567084326330744021221572254750771161843548875705948068369701332578252377189895789503839054028467785769886122775849607011332307268993059729337942156518780477240677698648349625056351487623009528210627453982458121366589392682760308687894557892701744168912703535882548628641064885239310419414506772074020713847658748004671175835941924850468890574179204679260919885461462703918716555168753424914124299526329365175686335436548200082794419380615085119983663788134249951490851847247282749364771344729595800540036815552739475965711058041947345860050475778531503898694100786173463174126295133559204973938418150116626959127657857866794363785091619603266811080366132999341465923511004660763488707824006537348682825194062949673032194071773041869184105367388669908221929364637524316896897590529981199156947986142134389390701036053171832060977091051874830924263888481017673019288691911235172093741442995209759108384305347301280669500018927668321221590933067136128494988316337949329385567044030630266094193656585861992461624875233663760915098654100040897799145132124178423398596179662802458640198201833712366248373099534144317576328079220879899909742855335939894581460827534377004372992256436327035514877027121649307447598152628280693812523802804981914865825211417528768373759891886823053848390475877748425574718665616608979851344036082730889734031229522258254147162991019289084346331186789077381783315863443042586952306515367442646904327578837246217782259131850737196273318229343090607598378339147547779261878743012115177062519872572813397923121390994649613262905506384492135405446995587632656956973475277679109592252832816299249056809921913908831182884939309565263354199835255775367217525467741970118974191670369811959178574982791525058399502591225854649566271455022769942514499339738635028098033832760794202452883806486604123390531251128231433848184187227964845296155806203384754367553589146227320809183894392405368582718339838379184453070454389413130977672905435810106619583894747503063537905035476202342070309220355172838501033846367272810173707315386019861182729689961200049766130297379132856322279232820225985078899816985082445809570600990887068539980090528241229386522184407270959073099232693753745370328316516101979741092098704717609945561716292868638041471660057141376026426535038120740931062598585578030264474024063295859532338008787622234731993562848283233549116745732288239135192267342065700329788952925681864129489188621302299609400522576569916866136029186984541429552678241903149008113297029717725452218537743903343933016014624091681566863630145134094436170803881581932002694271641060687917824433623603368433482204072796389028739307903389643109172021306724153776549306250633816316892068575401361760606768694781276959002404797692768571788362501668503600626063016403038938080966376267690718533358755680528592359666027476731989924893185564562111311475529507390493372892523877236695326558648671329939903914434552580282478775347695832546364183800879285606298828319042630686273491360645838987137392307554234547807345145314128289656940080433029604851299850588043672798552459667689498844563527933756892314269448570838528746549500496919782640801059093951793769175417665980248438915291035921609217138600713086874744845461516438993636340872561208641977889318580342492497581148629226400852074715489677716065780694858304703642389483064527127759669381767644544806175478832792063975132889189497845035169559132255615685309950714111279326770228423435381319210733432774821836695367757824968205967790864052856302867746813553079848252975764745743051710927429689349973296196363326569298978984399291251581267916359106408321917450867543415715226219003658628005959907649968376010069099403726689493849409598103934389150467894606490706022725472396363576198719588851655488900299298797776908635956726670180149134216992995458993658780147392557779884374087338022881911747391704134999307764022726297262140974186175860900665855751474502161433677347385388441655766535677503911320638188050928951971655393094506432570855029529190504785343136206712323848885209737939816128421196277609413372919239750541886000528741307445477256071696945668578534086466833317483128423350915085788526878699909942216699358840202161571484018299475965753590143706186898994696280697067659798259402693005134603253681190024204562763516462143081540850388954459765802951090801897262963816915522020372883404032356641792419865642634771936874606561904299313024425454641864855978549697029482067623548589652688219220249172432694739056962599902736024926747150631491000267253630161410811165941044805916750280194928786609312826553234940714157935476783033113783841054532213025852223200039124147999439044624300326519223798069192141975800746850286843530795505227128790948775315690730397171371748341917828001346892536916356850963123186396418935575727025689491752605819568250508631104786800818151132673704808942034913388083611856125387034344130707601144350675651957310860558928376384511306936478277753326586472015011138349121818440231657090333882031877807484731101629265669017704529145723577715849539649045730205856886461946087276012937513497179259359947601332102154277674433606693146550361144973712462842921730121154305874294251089618484707877632981190006464172426463877337369466296439742978581966142784927431491546798837453960488773330091903173996716495492276250560729808605161667527072573148427883346144151072662005408615369791768017089156356704471311497096961381932784097394469050731975563116606973490255804726098627763522508767582910033143386774692176407538389648138771341065006691572205240930406714802649502377406042343084667268414111284137153608586489431508080981270149426763527844851150180572994587026966089678925688225151069140435077602243855188673050723060325476592065431664508285849703658598170786134451544753426669352270920998169484366985945166172037914087936756377128444547832839413251516762175166454642576722732019230156135189559092859100463060510653459046984094241519029362901937983916902953842560865998689788617436608159721897732703798143671283357812011127477456223735240676598202814850721032420808605587799547339377854954140576182163677525774774351396167326174978930252723120522590060758146858667112243736356626974393694326855334110709826197496939240777261681949859384956853396867991846974802394638377480899342224775037526266395764374859662755012407630819054164707088780070027713505045034124272537451653301938501194379974076849542388387408241220560755135644395656514906152229202232156351703656666828848930181446019717725595670727112327143828612840498171795916048850644453767046208593450807441591984089856371737280729061964803186919265737597800722150359813046293682292700281444195269194039115446568901658805674192063282400158447830140140730985833022173471222468164740273260979459161085437802556677769530091965335191831859052216097303436748737054867427910161926269233283979351221090682667154977803186937476917185797300768255141509023103601848025301241777360084011179218271380924626367263944971756591108132304112677093843826899100939116121494237260710730002344182367546841737083955828570150554421483759207022196171587943954538390570854699309994265036766709294508231911815626060395020754353304252959966421411883403978789985809079005274968853928697026312033262054491846285869866680587025070919897038488009164703267372373117593365715360698331501516281429585225875656908880768952797293516400895824982047978198638793920091294793351089150116935885174867455491976544198947360492131428318804006732021348852077264730360152117371003793028240234162246981468147205974302845929127030191628730720154391179546478559293368632632107409456401194509950698613720878284005452951099309912996479858445354224051932894685390201383362313837370896213816438781767294684883757310299820368496258490598732089520547416800677593507769880914873610862642096723989904868476756028034318162913995772469237248061430155648420499390867620359396329738620482505398706844198511066318740369503616930648489331130510603634428893238270392347775786890199911479189976861625021364203384045962295861857296215677583511317391810417887407270955630900850689798581761676459495011758250215677519664958084746762553200693575030842527125680273990712166300990156033666386184075658431504394878686367107137579168169016990156176500309888533175435006034359318107236657962160343127699097358782259047474310937082814250960590999026407579084166921623994670758807199534979943063179960567772303385715227963194815464195021276206743139264753499104775489353767721616029906948200091091926391144596012369369222576616828425718962000101834912906953652334620639505392179177106311690076121895760743968194323867652753693515919984139051802347983901443002784399960843149175487148132762446522749365727921044509313941794047978197415956985798682415586063463241154273345466641134847667702677854481221869238394713892634988351150837094089123622999393082060012063651978967877186598469478504349498995595872238765214035940190702774675952051948759031308698672969968629547307295357380216156541257228313558294715399016200179655981399116619867174836049432185248416339195913238681881979676968625677778421750128954362053088635836358807716413089625671655210907228728382569536701469370539659182005426207387194994126316900466514078947169336985053557128617807829832958778603510588272662301035626062776527620799129604903855649412200530418976813010102611840283944095973666469358280913487465340963508791009869631706077217355772177561145090824097114615638888528043754798382628346358811495364588350842186133663701702822202055361760356294249591905341654084522693092312624448371617767397194782258662932083554003074458994787961500510502163812908115393281719754461990492972751947362534128455725863391212555629963456409527782752658421276722254505657926791120892756212615882412542892483022112612491799748289234842925933263419146328526409081760658570005736905465092431596584873735226308252386097605966007613058572176111689918888534254730182283379597718977729592547034014784992560663104411596759884972377455505504633857652045514815752192866431292284363053716242626657702609654376880069907114804793349262828243596778402495592939403578556465804357076057783805583062700044412218583695686772659967774837418670485339911577569142518522216252958659973508817526189919800708678498509738018373883609209402623341212636021492486741388276339570405676634217024874879117029523969732076763668342652605771831793850744523821087784663324479359552188778293907285720726048269535375190095470401374744614186282767360446689858819578230227279536593623367100877974163712858079345317065398267771556440819000917921586854476703637738627198602453063089353511288358915428898081062481406809694028538066787305817127530737109635537352374181090355668138527021380251890791566800025368906760039643302178760644791144656267689939530982457189543486748938667972778826605430580236425250551188096509126915234294380032112160069073156967027398452938912687412147917421890265759366263722328509933668345006243721123158008456282822477506120195519727548205432867578401288045711473175773037261957606656182763993814206755392847671706876860000997718976027239908659698456873582200471612989453180402919199939155004731888525998011957919800908304224753260638695792102925927791203502204856491019384177082737394187957516143314381704418643623563766250231250684466739118297780134735870560588808243458164109782809981949820742728210192345705091455180446266792529137964833475931214707467220479713363843699760550813253743160230749610929414664441689341745040631938885108735763572961032647792332472747833913789524780400260887049811611254605957608479855594619675812138481210615810993389076781663700436300735793621855500672798699397295703289768907596876724294719129070292541576384839963607131141833127869938194895059434103025339288208629639278982295938307974916694126127635989121243401037628591181449201751043307835173519796047475739810912278055915817033331613924417011384212304349530893817828809097426532699087014627700302558249634131919066711929522244532188932474252756811414169353422173645886392968516204596099805941326572017442852499721561323314740384448248366180070160934145625883631350796285890996427924426259690710801558483936879370400608877415854326336809240038047685631228930478549235918108235506707216013687332148846301955452275901427750634183206342897904430535155020370296687873721979144379291363003545614599011416954257241619283166051118189524573374950271157146704773186054468630421380917463344845432752114321518299250773180505282958901431028314561002024372257423905521519063795384453887913186541836673968960543028360281473702103511902735678768618272625418935302163607574656285795405645113958316699811816540004390109442521264068792554413386088368672048128747999114270825876477100948773357817962051111000193609255260902457597909420910330327412613613393761037310472733678526231954618678760121031069657459563325984365870075566888702791360791928046972434097531640732286554789459402326842313273672674021135864196573169932761543089719646269169657566576845365262473527600319487610177445332352532630298388173318838589139555752808240491205928503884439397439275355232379504276654671670832444246977686879429610059724425221475649816531061790595208246261461439229947615140025016925461252280271036739113579264944617154145552928747599565207584528058190459017743661322484256833390639498461178568438592965545537266949197625919226988164976667266093798310771924787497345715441014110580421467884543157868967042914169639394540762873980669323462019241906147600727217902614948573613215334879653301493211053110280463993130270039359517825848194740592977603946166821903519333394922002293431657710734200680803395334423631495754804746689780088546063872627565567978949887078067309740916882953351499315194923334360596593577724373754469448854973433739842037341717074747133733549895519822768864262255209913594202134321206463928201089531125356855639436531793448368221526856277353092368324152848776800759440362405318807260754009600625952601649909183101018468124503371171494761317111164159889565493571780969717675606969751122392461692171410825502898608152022509358038000395040692135305121964485976496937166357434319944559134921675332874888117692272402658543888330584259161185720901863289177479295644980105863221114199894748520719269725818961908839357449480204518979685020299934753665991920099134783132553867585185935424641525336568302118572624262144760965557499802053994607292177974199749789667761010770888028161041816571780451937644979368798892248847482930595462077691694195088840128137915500964665235604479332848142936530276973142339478430908393358541743452604889156414136166618947440776137335808530101107378988416365246411913263035332284853915872366066311464202898946957043532199110146600221792377748691554893684847659121290695102426806785507333896804407491156180619046952059808288831670277013143030075593915112891923296833290010823331502527689325852181051386024232558440496300858347729812415728572169117758537984409399331288432321209666992346436416622462719658105224889313060986460779317294278306004840356945153911317634889777505713599681644844427750257108857222623053672662999730068086544660149266268925657944172223068823507056702050703287040050753570190561311260430394134680768957535630865695838014614187906103818516141405894756595456607875935502991402392278449323996442001301350404100810432346082050254431289349997901568599457371108564442855624802619735734736085958524117986329773170157688436808362527321773191587822930069574844195991462964176319010063183609238469440747566257007389546633519452713917221337697068713766235951333253900805072364017675221533478277306891759537533539818340042447225955203076857896865914892279394521189385173141377245761351203061670171972721363355354913955887075814131563283355226291707630082873726357875756929222319886023787832814467618067631278684346450792588234948786125268568553211916807841411819705935840595862430593812069114030436341197153989921930926205407610566851932842161328453509724432886505272780323043028678084540290978158109558936740112972094403385504836550831518423546497691766362262823151053828365447110069983898871782018739204007410202704683864034177384188652508156688429513790839588756149604912485957351464013298172867476098677759557339383777214744105639077508253233817376619100665160904028762562982701119236924712551925646046379832977325239390139956734444921258633332647429640340800745461012692497396111989479081752811492337002393491724239638824849631308582253380118826052925939988662283202202195445819651393119736505761569440816225945305703866063584136319518909314014059943395704288376937622954230881626353226287923074603285645860925023299921916328336430833813210222221161772140328413959095971170297702716600233700650465620910828655656508445068907098202948922684052760571873881691080334809321773837585649420243376414213189279217052381934477766054883817511024710742546308280415108426376311731695484590269594290126522969984227069886760381608823803133225572427426133092281546309317804796281105006850318622237277476611664849741881559909615751985653274533715723423159862717400575619364369632823032435906032095567510347604728012734205399802267915429809787116798950831463939558295300793376501350592322790423711712625168826853530314398342367776923544034472955994886920058399156375130138937171446354718182503133460727483230240186529754462265683311426205396752928415714578793461187647106197576088470367692876757928792080040607787293239781819408641759534336749237965419117710753537561625492441347063870024601850665674876895806385308092563422115109145350840362261955951769698358947101080081898607704926643853302417346068520814947155981545485651678029899756631909177710747063890480432448378063411995320821970646970446935916920563371308347346160277535346283723035430640101403563498832850060055462570732180887969307552798928897380379007050417435915552490935791139771083174118658436972041740972960767478496363157138542824952924323539924102876752870616554024298808388793926647779429332572233040116986740345085477170197635841218354336320918992781088886974088636510481406841538786485359296044688959384304238352499161699484235484480008447793951081721762137843144873586200966636606978182550988268920184675846456688363665869180301006162720298848710246511945987451853882440674025461391286197471671164764983701280185608100064746774510555750191150024550484872324548674898914190775171219618748444392855305523222791294550870322666124287555999330300245515321825813971819511726596596503711179261912506711410097864012969317032435805815843644624221037320577002234413055941983660791872502584681826417750113491227170018350047201486354413359172516778454691130714999959136054448678836621727987428491034510432704076621507800795822928505977041513239516157283496390080636855606858379167777572836507783884893135387440972882986722620583070762673510523365172449435778442482282988095775780894229622451438214602105121217349740482112294765688640419641119339796222596730308605484086240949507413599892774927964370183155604979680828459739107170124732119383855212372527310635158675284254547912275397267868845615144149639883650553609923697326063933151341263454597686973543795007935627675950245931067918691234500562647070939571496778669417760545798019979231735185991050073011083809968147882348872123814266101920323493916990398509723857657949368584043887813511760568539856224712191201937181699557306010931534919824155342880243891346580280271262458611764512297861015357101476393563441184621919575576512626946818596898336142949545180319696419879282459499382064666334579701348007312931426685158324818939185018083652909572073569534262924057005287969849500162622767557083974457839460855258410431016421614698567293691835425453950366055377448775662602800689766467632343787193169299274306594471910699578260145858682476274656492613588574843464021323378208001492847780920147292543226688796480724962400151392300739340006893877283325562373661310079358220033765622368943893229852975786744582181588605942594300321342583746565906876730011391674264773815705050753150461300910402069296871483688150016371376784605356214445463030571073261121181489361157489864162084834355912079713929817311515600529482640255322280189799247412650151706657927995450193815761070270751118986990157884918591248091733180030439153179851521922773526551988207369245570654454388832499739454264801686583989878646872718650859495866047700507147670471471887188116828115530568830551815704106635776590179555491887313862449523522666423645231802465310645303856848307684271684247022634918067517051408410631235448438975944235472617849518024048414763873339550989106177453074073040371386094786919818384014347406338271625181633394295192479327673146660658936689121827089619353398129298083511705624254203022733224739589038579889515802473567501211108404903295100771394196286490769529568528926029823205107235236074481555413952926012021851684813374707829048629782685823423711414008406539413065147140842604678119195909815089123900389315432389309201114273696644735990242054675835246125521048766276275418237357903126859251808378203401493524459723932071407063542357836560856357357102827010930319300219410113254729493280639587130588926940193282402845626149071127560848399173468180050325235985098101636452271341773000204368783921356213756086219110511340689873625246034410377154956075819404206330456881284164025563880654453226483770192971167658062049387820895583392659175055707955810159487287830520862854942274752609716818104964755075697712393045952231506125340145445690519365629449854523795722914828572136574477737354398008189248416674904260990430924954264415010402035185720654978093495440093312525608236881919236872736692545507252280728460637161028156229655235571184567333500985597462020194724623575121210240919133419668030960594464238743225478554874754613281223896866251215442532163811286074044403331440586028904013751299712491803424843832847992976484302414053177843589664950501009274787665893291053952508549894419317234970418828870332519262938086114632962035814090724713086200560061811888926842139606888087903920803393500756036823793649218911161744408092988872445367945765369530370093021707682949658609416208446633182542607020248610452569845156669379536543045378923789094881938659295104126235601590995931559778138929363417693037100804748615852268946536617035917461063533640687828815244341305923417281803198650831937190094434076281460071844586680349548410767277859942604382333251002619415184644407321654117812461706062264158460110938607319386092772743240105759358909486330758168015787031528413034459174982385541018420855096462949702498614672229930266820799533397467767122536567730641759652720832841769614870487583286514253613346656941086466991596226608240715139941480313005368774388225293242166490240914873116882166307285754400507393101820387947863572605473930695801788765593793681052431677091437444667932139909047847036460766218775823787294248439956037856403854508714355642768948786959789588106261777316844976611649297721624378578347211801818495849685087130512294549063852709711828857192826418387339597335604163929495688740674079185342074915965156284646833932352620797657257222182097175405547003206685346511786743159534158353769652979282796236872517594735192337969106264910487615035735211720163993475959410533254527668265302568422409672299604205116894768266720941222984241319821218473490639906013668901451701533160412652400492376824841936964024071262635871092514301332503228881980129394927084112003644722710346016194670783729783298076054870930971238851934401464400274578580962550030929327887875837970754450344966637292499266425860729549769439946123141562843730809560189214588175879500832077582236668648291777774227259971722240722647193724075870085235659046116960141597583099436478419435233612325912143076507212259693901062507252999029047671613435035595174581518217283478212332103741554152746337844172253240369951592403691154008410039807743456459230037393547336016945460087228089538768710074765322494725848582644447864460280356853409804983264073337311198344616390284206510637624360304188258982391284117778549491256459614578964792616853199094484402216705410137647432403077645794203937509864089348940612387572811959461708867786613472497842552738575320046232466043393597002718045856417985544036775934641031307635854669552977372690392727949098771346865326759904973196651079253146240607138687571622048586119504628905212254384126217719852343532547230298143473133011553916241191589147497571715721247640149360250885004901967072875090253113426424865358164065975407734907181583609148935928647700921597465132607017441730162356438692012775340545324072124698594934111042038615385022086257241485220112972508335326600179334021175207081060550786337123109376515507583985464508048202992783386660098931611164980291640155662513975186553937838521060715226166323829527484813502464970137060967968868106394715045544398929635774748808587971449634636057344894274117498194054539137860373697048858974554425652829125375253053423120674750916133401234581836310075195454450564995234427732579963942169186908805057055455674287092155601957525695268074934088033673101636992246911996019788297375776670900637547297990286988836581640799257277975487216409040416665895749031551306877425423423685828364056336863015032922670922557182425387100881247611408972275556536112625369634283512477955961915100613051798830686191183789871279492881958132402776567305241928326380714701837198605761056776373180602752103969725635094658833981707089959042826295836192564886926790580735497372254771753864657989056413839337656998124394906124110237107063501165662483260044230680594430407480402124370234423595177914283547536423547641199549556987592813862115725892318591412493742042902047063919316844729294186896784546478688796524049499849922616960260984302127664838766296603444851132940120493539218614247414676379285955495240040218375022145293036172032123654480512717427335844869985931736557441026585796069109753357403767048773891916372210576419949086274871723636118261148650870982725208448574150860965245637510891460450984454662389367145858464509554618427236907277220820698032363482369532301914817479571984451929642196307336420303964095826506125664409497777142787289328369147268671740154650297971022387544507442108409983662179304653513356405082998066936681782080989920967489575760015809366086505212349609581287680592950792172200413654413707462194951115336565224556063084359136333353311344852795877170386100041853913500868465146001345009519817669780949489424005191014901523275552549511429310312169797605684303703414447774097160837216813369279156144451178366959311294280952439294115148026729730181442135163140043953835269434671794347242132958277239023665229897239876748526851359105302659291026597133685407077959844716743100105552726530412040664495416318739200537613497636782442694005903755098177294419392393499194673610459350435865125556166946055330467619030824978358021170944572216833119343277917127183100094824966091728466138516500125802487640905363562156739192314345942639212691407063421880434838440000683393800097926832122663759572549776204908224675017168914972908977713730098822191858243889624237337812297772118373960064666890325480523884807151753956727646564144465739850310125399601447071012757110503617230963309864866668802538286838698624139238829935720628486042602922648472209091866185576341109005735700578915393291572771374898691194890203599440224795860266561967384984754322329216902596157114707152665582058952397389579184956415153289704464356940605055070549535073909699734378875650351930733900726235019814507612590894711038588875143096455107327962453460414407066826871840886061755391442055186762938084584492886472898926930802340929191936279826654933646932956692675418679374283798293718302461965924830614518260426747918274977188819659719231339970567090241296742263298246018495778216885942737936210447461385704775993744049535983566388588576045836261474603632564900473360735237536969581726126793818251738935784219581985141348087142827089755266463237502221834182890355391609448095758345813376730397013410522008308323579004614004151447163879039663787558823173786036710970619958942253004674708829704510903148685371127740782851510597326908339858213967471897709215978156576725297470306603614897229156021546900498310428994913070275508363730230300338696573423658546022903563356455527315270279164710393556085822996083943901037718894339385049635565423275443394361749041053528981259814486865525147614093448333410758885998816630702103644617494251477834811590192024212397432505535193558483866754739071003227439980157141657531843618304188820592818189657398243031862140667064724481093481533270916171446197768710213215488184510027547865034452894568575917207671571840633228855840966342579998745599316726398332926949687648581640780878000180475771428025612464682203657388794736912779394325143467845908985861508126831228940828428907215898466225345981280998453418525129542571694215036178341212486552209231935102271663362081932810480227514589057843469585757112400348896650193694589187475984665501769616063954964390799051553120270335370985701570690176765616531705059621036148586504306170067370269427263622401041269978552509527732108513929009579834990500662172619516273668195635315985633362344084626644532883996026484560435552254431539774479706987975588132385256435194955402188770505052235724218179912306685810135558972878630418239080209049890846105251788004166367653027580572539064507535215407927922483266542688602497653335903695377354405819351204796499142862137025832803247138799544012406208352681908534034403594759819816825622339295050968642078403832536475009131525699937210625085053717626079783353500001088666119012667990170512755903653547174671652107333881665554319495374539752825645779762460347871565416882822242856794637291009891179134377836762532847714737936868837132501813380735544161248821233095171521720512454340624802483391263579145750591287993300974292747359038087793232776645569329227077141651396107390579820458977636063591732297300128574974527114478568482848837606587393860172526011696887886872498853856764079368031385501996686103304266689839798736502799657893234473762878337070431494148089244898642071256352650746488802152122570222923599754843386353998031069879796176006922982487755391136975520191365279592523305275054080980694622093334603764081731108365500917088725528425327280797748382440625766375309653005147790760599697536215164379174766574441314342108262273521314328407014744928099825459720402889968775091406852793585743589813768081040080069605771566225577069276150446551564900165872602583877594801577074039879621751329985951895469046893614741227957360538109776454593418636701296559927282819261920836293507916552307907003780585712632710564336000330721845516042745926641913687051946951766155529858744649270685144252897001617890429471749692819176488744338652272967743711359668259917833440400519658219405925698844806889090759983858253652689003704853682956493735358767481226275917515901723649931167609662961937069706257908665960672893432244597784217830916223190441723560039670038490216309505449845271515206226817784798880420932328824310620151853784306564918567007520324256976292026832609644960769179765180741277603814694074844919722813419846504673169734766086690405374310851691043932759842447249296459157705093100626464429284414342393118526827575017352912684107296889430810084911964634461389469456021013330486549822665924124367968757419191251943728990773280954981520478786487522231147733038860845347814363895799661825685435234212057745200528252113366347502593341295048214277575355996933405816122598237757271979836895933056099213875634502879495024964965055690162352804399051940434310329714542254147508041034750180404100589150845454026879581736785144154841559011162121988822926458741682243832268348442445953750045420282029858247024025287197394613390270854538350279994991288536747475676532233207590649800098924377715246203866148860736972848093800066326979632539143699029840123998483165550264356568952467910549999165432289970810079368100105461253643021677569618538774937044231583485745232582685170800698832063678023166550630912870798855286429010458241297913923456879694983687573661900179234617631660937787800613584456130076844015767293714814151577983728625600047442054917862782387649671842131847930780062876096386126871014838988657356384137052571446975260292541558177699540059601058154700850134691557845784446380859705946241341526015084086315517374037335740296474380111558530526331477534825082010458565546043921670146099954819149709119525960229730279794536537805686773244248925189494413479432907020848460175704277773227344081587605085982692121443745727176035025411906098124761938638559203461420887170163113798431723247306698197730373464685202999397673270072655128127845216727776303956400678650109695408008208693834548195253983062580830584319084380172167114274579016224982825530575129390099774392811989967270144383857476435666323672176519232963547681210751990053751087703998067390918426429546016232330930420792598750182806543617366581015197889057764044847138109493526276816860953414946790741288954814067517575445144982991876342721663830720473428837817460179632232572004460524716205797691513579268493353871797663376945744969654636674195757254086200683301961746133503920885300167136548412353100016941729448542001702701946479909678239863994837068650443713052780687858244326984234124122287963038318993087060609646024773914796556820136392755266913208695702483561623387332295610744732753771870881903231749969214242719332008554332432917967158271318087810657872155714511135746715845742181087475968230726256527839277407265896270893056225646290078976478094161121974787853685272866791688933502008994713382377873545579926259476338646570592697649650360543896743007452146235202445122480013730698300439509279310354572428197849252218597372466765656341761924299553073133291319998488187469039625875644231438540828059180574937401863586674168263155747419547255596990836115182436106168655312981241603393609498655256455207922334582350008168568940785873575974727269122857926050348393564620165668553738913397943558854952538209421455815968269975051377468553178493966617950381337150757846707097735248688838163965904975238745204115918439937173497345671576508626120399231144211141319328346301818864414879756293279241283221167386828853101067643763406805432498550314621606834648848996380801641954659940303331886096138963642642041816590188305404199858965264432817468850349748428828766349957053587258190966980171682330941339676314703970558311531701980782163722570117145286165524438267760571905043658037935868838800089259247658457758953770678230822927848486835145686576517933962059639468155791396921947041252054447975529539039055902572900744521695606902666890963809512613779986366963765531166526750752380198578875095855506549029072818387346164398286795024296195138726887134570278750088237717862273013659610534777861025901114299979369328770095959231895395246605585056680503199328465762409652406940806458771834004637418925515088745838569278786665292253432166763776577353855044956930801405297989470780096327778003304037050533459812928546457076452487903482539266150156101848409083840701173243242675273021742470845379834521355421716546964383409884027384223194387552361489502940297554639136505803488330403019821021240030450255310690344836051055940234575325787072744625921818964082336635158539088523939823907255895905938860048184189674538772454015849304075142519513767961646013088688504051090425415115498246104070268280881684638270025830465977459748586929259390305982008238563811618981815570205105439007337141109798274189725411720503198843897315145628366915902461916669560186047016733420981935400854349713156747501271042546079334929204373416172591625342752858207568327588056991359453685500734132376669171039665020274767502653719569978033935961255237812034943129622198444157301228649693640142397607231145077875705509347960904927081875667418336774931003767196157663166033352628961160677546883919538604554742947542393940424759790260442407631561580303754230750847461837699795666956672672862247344611193275289593165886097384517746985762946548250804759398971102263330590620424706874031748007562519714709380831390674057711828561360692043205394685682713458618686967483107080774953154193095012663172683192033095620605419239344826568565632968594527462796528156120024926215451866497834448436576885178388189012117279360435954058200299789174028218314871101902217161936639007331958647393876142034971067371271781626928786285386067072059114027949417175133821520674480049251562126663421727275786730419696899409041883733814485831451606254816693774433592818291499067492723756947514197638622623013665694083023090755592969480204981161160091525999867940322925736634209881553468302152991609348089402353550899467400369772913843067929472693384590816326534765501003885035389594322915013839682791546626830426647812974460718321436344179582206691971697065227185661324311698558474161081476137722530528521719775055178170886345880461687747104932822153691393718980046442315519133928299992084290586516775485829493145604018040372464493260108886797605948803003155488298038143344111927268200938931922585425144727986637812804261368347051218052115857100031159304958786355993764939869993777976435493340915100258797875646453144338613594696783508649004887432584997789856507381407148754203440241809706332542590443904857576548892162927115811297304075041848636235052678674643999527767394125301331475829320337866146737332466639010565196419488875576886410640085460779198580569988028398948824928815220756071943913243355274136704844429888999110715540811520176383827559587039132828638705987471311363422677418046907321837903995349487963901228064471891761355811823648929495697442960662132162240393669747215378047858257344327683733034579080632211125038555224559645741474120867268115974737488214473756932171779900930688535117027105453541828379824145755271860838962946776340481054000971999971873270919255514032505234497605457834262578538079704961211805851732772357258155520547646189421820240534455774073236174978103161712788544925679766505095962803576971714778150591177582592326347216599987462769965024657146314639827380987871907420524792503435607404275482481652355610370749377680843330098928263896478224306129769122580692585145148756894932638722824997119202760575806783466652176034580206070619153085779573087320686346929635195285394564933461078222090330506539006695883939687244569435995942534415564173655391895335694022451058991029574649298591397812532877366293778755761685532734295101533841747282577513787925833475482089270379011521874459537724318764954480422789323426229558122379169215016521009184397707138006097680079540895665085178991693792057747203390692933450672406316578700063862513014244712057617240324416606605543838552727012006689768530021620145486631785397970668320882377947424171416242211346537140986182630527252181238216911635161797172259396613201364821798267084610708231771801519855687343972180025941941476244729387713909454867358228870829154138879018617126143105978580346026832368526638585663076836329596293416732912024670989946901610045319721511972095033710969677451108795654035991374298137663893330137133868791843783609157967051986779335143557667347761328510310104339615927794741122786361164939196029885808044306688635497871058247989943499477404166880725790108009932583959352656054026413855084712549002739145308371513649254847466232302734885414636569325272218778939791149044143480067585173491402378812111463530029119417031268909389245369956414773229378240961681751773371650661124544829492792377610052282740909959011159654281940980566503992980730597035516625917311999654032074751962256082542478902592089799891582141765294598681870243387311425437561186077568280799489585475200064854722601230246399347568965772871956611993636754598206590033315157735584697082242644431964503714672317829395798765198997409638535960967187876346622478114779503099641464348550502901767487732621551892004152556059975064651174184739577640239754397327815612906326278104708548332263314287934610524188715133053771872071071033695631277869904010237988582109386546548201482763509348927025405940822458087580968147494671739451472302891632348747292385350267959091818488249089607863919750865390782762023509977295207611620245659233062631351417123223339404664285928403708220321779396492475291326814665258514932966691496186970692558109165939749266628072717035338265110067372072525653752080394615743515372505383419436806943609341243796062751649256378457061775949110632055494125507445783063877379004001951584769564059976021844606793335385048887526419791191059616207778245371437767516597524596386308547357292782114883284635911168901701810574734913395506065069352068894010893895058438558014025416223470294221314285277675610815971557484963871126556619006412477695850962481082448470065927233591508188906209500126648188962871038727452248043927265384714885871365341538584429780509961595712216469261247606969881177132605845386825298827936850247901444556929691378992188378188140546465802008562852485181625854833002724622483054968663111052439490271086273904850421136278420913421755238529127189021366077973061985616383991889732539277071195336549242390715612303634680447784661680931082239499890789774229508556650529951138775774246676510888438132881581522954721856463957628707930100689913057210848125256693829491103851570044505678473029606718990531026863075217129339103124464798706931137355812626128911245329799621785379614786284018561668280912201607899324562093214688320133971707353209577589707272757142075618686157169382200461992303062690045156178315675309861633581553406778568954654194327671296925540538689329109995892417635182778122483277516747363950054479153797585382578628067061630316140721099161584348778590247789915776744931714375555187216135201152489667027763081245293768291661335864436659900829738900465049047345035206263783663575589699221852270925843569133351519760369853179028899242535490866499275259565849079593602745629174807107398351305072042298938620859170729521199903020893363059294138254629739381548264927189828298040034284563083254274650115546497060647694014529205333683177972798207841579475087257800778146550000486459129108852689594865759052163176335728738485537290256666268121165663405574276164936507640339364356152274342422030402863564147652541115792148152866003725439404433586097380685336487228471773640473665380517508288148998302876102134751811603835827901028703573826686048005429540127166226404204452230132441463576968454757513806858203777161511571606739130718470727256235968653880978337962751759890050595917889600079487316080378277070821908918914273158622452823442437316502602710609296686101388855761752190667304409287190227373283101197213665190959520904631269870190081374198649631342400034969375343279857696780804132362827879691985884968608857485730628571582897549907757455601871882100364969683035324507482346796504610657084236125181404416838768700049921134981750967338104611019624075964011686146780323934692631911072195346199130037928327038633991598366256711539416422066503982989359366741416426607727731799982793527601062369120321318128589264793679465018524889722060719780225930172665023663695643080751298115124579532413363440261143838430186410030080195051291416677724012328805239377943679234025117367155851200907920432575423594418594089457514512902274719876153327552655149489319179497419806110801360438729054816784914347976996782236474259641006580208383347510902841442470137389082216391509366767032502799572602045710076808198397710433221558544188068127537418372536008571576624455384691111592856933799410756188945080451966962204546816321182380844509545187484751801197125817411937158529150400711989742542534899898570341774045847120041933873864271952321441557742185928585262308366493468697157258307908540945006753158239020907364018524754725004624565262530665471317332936279886119418381630948777685772815392348252845866978256841060212027467722922275348425739133198279451034618998783335057335371833541543096910454053899884618063362484702006411593789542677268939752961734332824568254028453142762895068521306673493026315305633800897853496769129421490690447660492838073811481184935213137954575813156215720565373719333536272676461990570429739298464377508585712288516475361766716742975430255525894935183340114332175257169737478373886294297347692010155985968525656291716216596648610329225542807734021437178537776883888479845845807756619083084804877157419369100844348861665183289592187871719502065672592862256374020721891442759375141849536916083800593656826919378706756779855411280070574028499754587534564298491080594168334950514358622932754792371393247685577531919497621918482823769364707640008091915150376312229021492165714776686879264100011797655623211078734546068706815531910956307547910575139352789832282515462272533972312910003449623889314120188700535654274917090616759519872569413634167940003868096215340748925597069121462798840944736806467322731454382202941698828871003969019346446461379112925556738919198131334321139868083379201433023124318666590790610040550187442173662291793969462318864644162619728142095406687540868079966572383972628866260426113766151689359781079193003952792095329454136637287627129162185534704059639904157397622872600713601308914970729985402287053762585110946742406732363314272584641861618275929016106626995232033113019690053245103662286913004781650926420902635919336197795133875108964245272106384478909236906206698318233556712765070022049870597798671879458021632595778434552695737610335206005450391023291909017714776526974778854474256996093925285308992170217909286784822148471855333361552083401324185547252382802454415631908559461749465325003292953005838713543127530327762733994820211832585287298026049314385119206022284119716298205110771294533462215969621486744998215044530678162682917941036114993189285607707038461448538060692841878055830917589265776587748970786163310476309140957206870948886922514300271670540938360346941693512790290603110944597202026584108094185541557081075755622209469858856479675125155860038982128607324702840885627603243303674278006301175120337321205707780195846929605854527027331583479620345280539435965719956690113551342980537208559903247046818353086804246528423420347897413148143647349229140377925503790402813157861116977511788318922366133003173540731261536678277589547980846551732846285425897952812389556852762531980588778567802107687400495761923829206359608872434721513073211151479219008821318861518635585596013087985414573365102539072136248170729213599445411889520978713393021085301353000502136777887166277804635786439117731740111650016813870617403492787538079681936351575273624286543302524605493294398820278987241313495278649250015240161579819531800341026235773290622065146190883666912995852688825485495143899441999947585376038872536103845416169808740547822889178305409380569629113857971029329509550463778070338884673240292517791053780657526808913986094017710656280768854871163675444397792792513613745476415763670833199160276278073107790366788221848912212886763572328501805641707305367299422034506532125682513689892407957828318771852879102675991161441644928971660813831720014836751849692004571980819767961145231796490352828879988196841930316333528261042955479331542655031553497955333264132134781422965668898757950218806885964562846849365194262999511077415583917801240210897584415894235682625015504935122249653954468643473219719286404955522873330252637970265171316382857459592831602377294203805239531926547299165079668215479830881949251967065715218056330875318439521705868849124801222782670911572092200832024216007073504758643156627287289566688784200692584563758607620189066202027703045930016242363045538394099913862008145011106596315570577493543065502510944497019537921388627844766798986889588882763508728327859031969247890701939955878218680092105438873983061251211155931124647597570750360576159228915330649462526646077543619870188806840701185513083693014864516838855929258196264319282059691836211472107939079609515467064413115011971824558128479598811992300478609683395341950720935022002501876772005577210881899537659246502605060616572926438715438638642304521148890547035456002226805888996147372455001171358746392907493894024680921183368319858311216535587346013418124561239145565526165459297436352159440264054593687427327167423652338386780137353383269432904084731808258192176605198064479779282752567662546019434953645778654775271052988604826345569898488747491550168458909018561578509795125038479694783281540957337168456757665368241665324706270190388129824054077118061467583983004595769679113502845394283486081905652894893037485680339760660972673487004646356552578764608096890895865125602919943415854528876047840175648221432941286675050941795029123812724565684423897177174826019615557876283272706654654003378095504524232227666131324254694430328164111643343622366293048035050788519809238668289283326544915154668041074012722368146386034763318556725486798611969111113492702086983067631394807224295849921503941411664184581940990673350652268325356829521118012041190457204205728989541780093634771397766074811718160264584316849209374094880357432759788990922221442820218909572480399563281223886168281485229217927503372137284229630179091664647527804377251544010382072024647599207382865530711120227990788397438101334515871471972657639609727308442250481039524943929054407520917682634280808558752907852393428817449882598691172441037786231696934955561631479776292279545976065685808879745770369233395431215854008388577758146394394904873028878701583378404484097959779967718276150113566440695861965699745691204999440276800697536727729109013528293383803272431458347695576367797952896868796081452129624496616439829069864485454722219029171830708199351236562196667095330988592631540251085705604087450824550916034815612265850320515922066669052469981973741738014086193755036166409361155808510238687966847024818130769004351319066099168767798969133691787616952523242243590762130199051506193023756728631021773134170460102798666562322003382614060382310956228826348202885091110399099873969589874589972093691971711676774041784652969372039686297127796083167827887802573155597584108756212535661751037276995183564137951436780509576861707302985506383836714034536310233709686365430672329028379500354194290185556727252290990234862140783822482683018099982511671166315729007174534847350202878545938688082124750202767404524022304891351342624019818286896968379992214598834696569480590393913136531247312249606946769826338556083940227698513408256981038519377856302171977333252438870203430931801121138150577263863038670944436129776240019040115518186082540767641323532820823973297874608045311570538088324852084640734880856624667652466976680858559459640998679958775934067689172165767811551107594637818095906656444306881744684627129087185819725679883440739037525962061611347009733798581262732360067418194575579751167296405638437343409226415041071375030922915869400009540153506951100405628675699452165981130548710092679563850181094047153933734746007530393920132835107910099165434819072177014734284399920879505892594256802736647684608410123755038877890894302611844308358149826344497721647961701780828703710600823729955483035976691263645897193819010653778205733876997758713781377461092731515844865718547622492792062174650662918616418537629430114060433622143745047766221198696108374888811421626743304085910430174183934182978113521697579495519341286771434481736937031864881525141896480880500843150023625929381233313903633936227699783816428547652373986553012875261656571368215250609746744577428683666140418467457255541123856919835303539531849828967334543613434562874540959234512346784561046489954972385529472613381965233251001836955955398835342223090744548113785108188392736789939003864612955784323958642985996492827419966314939286065354810301506086123600346441996636048557202974589664505438310724841422395433322645681388130805007158902465617580385920543758450651284416682397783334679646903977138896558919422550228131344113416824283899170802628449012169017466611949844582080807730114824651528669015117911899655914142719571590743382012634778812021886277593456031756521947033898178693096426515508380329947201069450990994409485513749192452157446424029401880692714128378996734697987325424330155990691627330395499632973204715565979876098349479350878549396010421785918573806449877516417657776728617395015123810134345164156835797251236654114110453320342793899767028125860840536485595921317929376528275907235455715815313914524584758372754116526912983790196333680090103045660624590223956625941153148481698289377529169614674908042897832017906199602125195825479767522507729214939486320746776776248825526469792628539997543982752613607196367581947964906941959589864544719665812241853456045967607293809376879040690334801247797576960373889625453023862134145683801770308213931193843373496177246546707155247357141128983876019281462088134929233134538540411408168539497641521323888599158809704040680756546485220556768133438224571157094195105203895853179147223987458210538260987240077913377833412831776825263924778111862752362958167502985703778447687807470199461746426896471960100502648559770954138825755125249430058703090932746725971400595465274112598336524198424015163498464631455949367107327971240726986956183912861343698094284240952535637115869192976368257107747575169825463519364416262925763493179895577959705167019324137957909558062774097507843037165926867682528523356557373761954481679880497903459906565782971153421337008102891793951640504069156306633153037650208999352196120085105524231558967053613011104918709295016174876005839378802753429492742663493704231106424423307256328322718418333783901578228558411163956351371829367179007183847741161482190086640734103315143410827064282057482056876123089935126192971983921232935138877594871533816129337125228145407819293152642611043733762126201439821681221098031808948396677012612253016322417290310503530784158549067457566285982083199485349914257646146497544473579255657397152696973618085565408705751989779711136843817503039433772063807937702900691931123016649046587708206073514730129330661471741364732554787064363684831501280781923963854795740521838943245398357675819231826033765750633760643783394824466084819646956540324132421948861329248732022255961507302906002499787379233500971140699855293045207810871619105705769653240332406128377673256656596126031272042890397060020191178343937228299462520157966190838202551774285580959570096464560091234290628638672464026818108375281338857850467931488604198862770771363318311747785581726714237508775215220001707214039508094629832736489925920263670959021604774765453262923105484666196267422282644692624164940635709853980670647231760819765245594716376868218618249727211668739025083053182131503268717084914587403737118877627756341029785076766836115665547398222698448155533379290677498221022570994288072816612882659534772444134189591161495274118729526434429572292296696958025235863306444730055403258316895726238282746421095512795771191957515280903464618263901199340237583579379722575433849466687018713229271656322689721828542429565265091439974130222106049753319961826600628798264004028307856621663770091684558150746148088826004151686523455400929417688847674345268290398776751638402503331714872961820379953766666342873229848092402307251101984580063604144498203461214245172156405792195398319994163405242088931464388177814502447461656554948141836453873347191851271542302208436161776595578030867041199806366797526798376857292847423115217468918090042138389140671228864610349486262074908813842959949920795966740511376509420117048868237834387437677699931991599701714395647054933751069570213539818488472308971012477010402370872490670979060066474301645996884343247454397714789531659700865806860165669924068723573749441196047452846696308935392690942898105874397926460465701098330590476896062356789863629481792797814905306473716866580033412987393385353712031348165526488294020876106764679196975999374671279200409850695679963576949709724298773047535491600253243961956042155332378765889075943275299966836480293858329071855131498721098942295509961538581506166194940216225861470461361387170432667776767383872474249233032467616906597478210361932623509161763383196715161563953738309062234707073511754622271568337316994592686552493191573251159995281668413923637253212416492310139794730291916071028163234491771542008968917106041412012692009846956644037476836090491578201469123118465236065674560159429527622345268283685348332857666204060115275160603952986043971510622767203535731831725208988209037647395651557596382169747752362797536029322849360062087993557190373528633225515454265707859744873244217078761076901028434242676448147858101180203717541175981740357575380396961272779884227091273632036685701831755796787068986348018213732626321267464457793463992716240934000217050066297633862263077859867092554794450971836426531986843417618815540532037554940665168283495447159507059497188397772004897479825730094981333485252703879635912215613860592508306398283938239201182818400364155095353961703101587851689473996067613982882859521401115153775340342838328180455090477461818708049535577124335158199313057145836607778617894661069726085191474477254281957489645145090631213079584526320148839169116937594043208690827069697273091398884467011907824323952149483955336242748061567624209721151903179950297269379891587220767932911400660062321385500602459322752801833634177710034552944943626769429716607058205552009837108328297949604517588324721824038609119979261467641148424348634025165418269723273454467430869375293710220005595741613316946253644948063629188823254689773256089238695759880045543699854334488858047679077770845637130219431569184329568566595442043996022461588422991700883753613401709802960339132587862311589276134551088079125968925503713415107924404848675404410487611438865140241198200002677209881852245284302672194754363182808946565155448858235104610840528521409231439189007907927205349085717180565560501361264036492967440686101639288951607902461092331830802416133709872978687396048610448319533007087093627535296122223719088312266858994434110085266689213683365102472025777118488103047353542676211603270030413373490921095448064149128339642558556286565714621872225947106274235914890792425281893918647714101467349212359559093065129373756883097541025343946260631392711918129956198965194143899104149131290335293391886664297692605341585699199022449330085541827739172813110744736862706501994575015925518994868298490113927353013733608527212325766780054659548352042774972713661409391468793843628391387723297810651868841401076666927862513779382880154390184303791963572673407781870489916868158494870864566488507767933681770367443963743559404276234062597569802302404501897156988160232668396553273820968762024486792238011140279039494722781368103970131225885611527501329408654312915050492914410219759576249311949528261376285321564594773966810632057302703397927636275222838540327346019768358766962514373668717471590846517297521864592500913631605582127831044914824499514795775861330252971153710554154693316186009576371940519414107081621149329585266566289768116950135266538105727860294165122018437103983200214440387124828097738785282666375102794663586223229743227892561189831297086790038669968531384670403386991158439768301548562403979661262332500926516519899024448817587853806514062719498529663819546657950160958553126743892057921303613427643227158817198284156758417961779364632380442286661334667873121292729213055544901289999901001856830538970975941569094196309805476039932968093879150736167043776277240189004064334382394201278234586886203511390062980934373845303405589384312871957335236854985084609628373446344981302300861879643960758161073998191590281212993702759289273180195273718692402741733513556681983980150485599493672432082317223407500421394541740603792228158273072073657710005942069342132195295525098678708454081819680469136939815026471168299972489017577949916448416144287931532415615814793132379972836068421925303200430087524794259155268931991015554875171748332456570065528272695927992533110187960271910193855880083913271258590919504880857563350452441032264636501187084589399644499464830268392171972168028444946219738828922585833180587939739189407325248413623893747587197740588523243542071488533618714533929278273485550556861271930494486443008257825746507012125293896498992076259644978431532997109293028296572868425315049402034157746284396556052346492629252081511930847481016759833553998357611580744071751210969844788395082160785003005558348548432079395163781424776291227367055752719038607085153971689718622629613937096234085494680898581727155896760578179395658062378830206549162410855997234558722355815880355461572121888586200326654889088779772953442268437027282793606308693666282250085161603900889507003903489130360081634591824023687030434598686692201837526537970815827318793520352897219557908213126772791282961506603520002745275132318712603287649504634457922633204118979586328279227065444149527109849397926187312970962225766064589322362034692570552968704530102723916942575912284113692969080526669526363662334571430057037962093097289333545604339320368212700301358945731077707318907089994774985812636477666393475141194959916640652454136515343417705202987839847667713712256659070010955925288146561504245337662258447727712984415835514873478163020993345754796837958625637116569395972859046064982126444837402826888449643678551216320752367665796332206700282326168713894180654738589090013750453598179396469986173954991599993494357975777156265469065739295679755828502134759304994269938864653231690921077390784380412414962480363417747882785100585353934518599224712526927058281611110097919830779373974094018223064901391415915624177127774430244056713704077715905637699687610786400356035552025931043112669469798009652919436183732050484045650650074652864341500372789306398188342868981048915145667852519962155170937034470863858480226125631433440029624169140616330307966733649379343286422520973055963573881502352570065509359058100833481569524292961684948492428242328626363132671043145007616250711267506324073416428571246168405733248880043215559804852115383713696921363304659693582125678798290824636467800309374573981640966045196408197320053318613566107190043469143079461528621113413851396103315879206622820971619327197223013940587360537231029715095176312004951476822778511702699508953797967325958139839607104127981053120755439490389905966034625079129444526746415255282476514511633804325213654727891982314091046091379366716611963403041274182364531160805982893292810483448112923889039213138142028653428014329851183319723977546483711873950901061353041012917846464561603380579147013568607929315525687928151320522190401519297244314342633071615761619705730089455212647821836352605292681355171872094022152860891785370810296445980280543934488220494230787178049036118911166743726373033392060973973742338273382747642858130655658211644485772361518379192437386499906789838160547877052596955147850433165295538767563474526733664262167737307054971538044829005968907912200207290252236682858073391052502263833447552188133337531550294114206264784205320741953630083800684412968152345255764322069634522591754248331730742946570551912755177356588124848113051713919328241280701358530501057369820857159023645239836972151666077065559590592711874025326234664690333201516265826314153854855626522466396987194608744611195453452525689888970383022201715364400153027459135804877831926029568403928005431184419374670923057892434079632577820380983928823607798012006155224454529505977401180815728196020456516022160668233210556570302148258699838555077061297718301885420405309939140713024135422316087938280373810144573285417496453709085797143727774758671588225009077907194166020842422144467281491010519255900452556118725708255872402984872210102067289335833569150000041670050857324584642621268284350256272782524329746928446729288637496125317662024355897799621244687851937149899702236206167502690732542172747057193059736013684799821343017549825640880810360106800412918496526439142912376943545824697715276518330695013028374027035466435253092358728571022012232343907469659241738131014028522212943433322658903340494796823314615299354384137450265127206433492482116170853446246031603004871179934601941182333574868851780870187866602592681812313694958358348589174830784085794803314384406632769493237714341038845837181627302055720953071565259849463116307024856211716250814209187688223071968910806308545993681571194744700138538241438615786297789023403008261965453232209878505013366588395530988022326926303709726427258475619621079950427929980206224949226011918898111831832458671446936289607973133933498401589736977953261373480763671078563395581436111029442912666032181058667865129843366832620110018603015705321486756345284169694410624952219419059076679180815520075001984826703769418572107785109860413502967617098895170502051717868651094937732023803439222259810808949611394369899759261527752877846202957902412907510125656442167603505155422007372323324178646307717459469176056689473552069833527863966367025784492935966832791890349046630756368879071269482337577754769078545339711528909109081640107172295277935136835813498520859016028137112600285915035638047484854836257792792952238216380639135878947747467357490777337735336826576561065974776542346117026316998331883336431737986942127046396789256495520527204965913287699435678500242376897429664301600764413526952888864907205432193257185003012763773666235750372531923110165327819958967749192457866389789843807163931147322285563409992881981785556621075770467132157055317173198065985442516826047891188344785611497593916735501190280387855234028529421956721845388023230777596631396451955781445448394700052353910798956481458628976402088317152457939634611709897971714014621779960245637119395614784914897792611602217723320235498134821315323886879930614264609224150247517252121498771317294849340898380203640377668366218622632780839176610385310237918150887309145458132680389061255305435979728777657210540983139955997124115106135053731183925505695917349058457045491473994528197030469544660035776023508126080760877458578022647683598252320409691132479236540663992325568894437808199508606086329383965857229283015418888433385182815679924364474172570263613352759870226387067431341749579771903946267314294879694468187260988731764247818566333365981883001166129033051273253864824087127906786100084262655047498250763912891270928579033512978972333987477405023450190771753434137001785909738614094117880083158364185466513854720623976749163375099657470314327070165788996505464966682540133797041951108149177486681157224505340852647448046472131485443360559686042922016816275609591247939574060819340684531331594101987950143983171947846367112462005742361093760300557826999614917635291297206934290547007042894068122783592583707798575590281423821653171596901786714785177650899891557885663174531574611260968449461807278092569116611753899389139444660083196790198234272995434892197118032966963632129126201860748225870051563517126847480563267574011499651546367725134761998119696661594227132476607752434517535805361913767822334732674096102555465473695271982387719390680912913546149413074774429634064064884086007286245093060608318031206228756100376079030461438271976269121517810072812260792612925540356692646328393680632465316451890192465320481552469158773261997931123533437055221849248204382516469518664770769448552256430526716289667878371525221470055129871131812015380733002258312145261798775961866308078654440870111760871703325627343555700031916292473134774001573416989755970093926054229174643940517003944284785882561200442297251662075069369725732944725647449870135314550571003043266912693738156653372648918569445020191858168497615819964558631877237144227243299909431834643421815537548756154879171893464705031666171603660471314036874922914506758335481152945482957693424548173997010471854474010944106261174003948283689708858937450053014170062471256589971265428694478491450765096861533640708376924390626253006496194436860158094411092342674892774418164312155765220532395604017897402965724166329480212963397719967214732002326082883959773924508390681780367864915509726921145582762179333387911836534643606902543310634768973233572615138235550264764555261186199489461526875147555656993773839057657128531799021875549453228778561169991638938807505746947581369328911138472809385813436658393138500757646017711224971143000132315270685018800520993395303511489161759041958228749243470139803744705633802808533302181952110654061568723732282015857750613827974653219265609557469367761530626522463565873700310839743708525355093524431108741197920076402403144921265006085206320851529387553770108078488143674910133220760616730509771610225658121845976468952286734523305621376482727403560601830210797431078751612143762664241629948655981639516542588713513894716641431400650605198318002197618343329829695842389654773110049434563950592277973946112788240327039100323445043113007668654830072182029028154569559869134807128505352404418844273865891715723198565892533325843947792815109243423429581806094184328544515147703661779501628404669976742358731527802340823955938203658451367947827734909490851594694104616632305306128101009560574817415654158764119019519937004958041450169004239559095016416197986952320051061891639817450972933658396214403176465454814345796136813646010133035011546607059464664644975667316213404512863804117046487022524782977877305535909265010670293758929398489791543624455524429271819146948511797415894410247758780586517421580951307484965097552355577679014323579468390842051426647492240438810173860949042641851980138903415555358670047949168361658288871306781096211726403797237936370710407281694911286707838355192966093995131337157027124133065903236705491686667106889971396175135782162747907328944202067049507776923145681718683322031083645559836598125882588029309782215946199694027434136434981042613181112330661126911097876473478009109492103085219657869341089006369598193097293942069717539460219106531238047023032507045836757797061293011737501526217399246088887365024759485115410552902015605140396682196207075178220968487869934003108817656715566000798980865332444826847957438495740673323602371009113707441394056288161073510066665229253483775311844216134518245066643880839772932147968790688596862042898583854970193930765694309150929650991412256090562600068724088735488505714521342337914976391381979906366551350699904010751931978336084369847648933855747187559562931579758860464714567965477177829148469862137266780965353139564857203579727450018222803301945836354359672893874330208056322345958103186599845843413841095607660304027077814535282497435179878503001582098206279493251869488413103831247562543180498310162822498837973161891881530191099871390536145708516697608192642779578181727446805651272941122424797585624353365461214744633155565830959601156456746966113642086049223081658070846753521124854636184461147266725956251035886776443588666984379835270069770003011421258353468096609461123405063287078668472753659690921116550403662084107189751405473638720933126717972515019047034611880324660057100277570101037661408190816260728310309120947977612266573440517209431113210958897522287356254388464487492400010519511068971742593190563736537795948788914411867901296702646289126115444615039635393881990053694332518791710459008802686449359207188634572298229032419217615129209709264922769420413166322118579506849803239345047946862109727992625636369583855629622297826384463488155725982404651675562290597098929713155494022379300691176475701957453859601490803977432842567030164078116132153297501586141064303296190574288011177835459177571942928322286254204725003119185670705389655828169911967052214766134870664335217185371753335733192609930499118776146047070209842608370019816780243094880709254999102295276577509600578700979182537452424838439166278127841248733136109663713027236539541763544439110558048037016152445577402228709027939905201715082111114021807290590323370271575898052801805878165686626826780337702997695011948585322539722941152672022761213779249951793784034189533833014471573130902696513546622448764405978807522325744308342490281729441620290159728215756849863322465366685893884251622321944986777878061154174821661303823484898995541711955210162862605651795807321190498636329511668950534101526735852530878178972109709326673784606836673245567460920571286494641569670811554769068468304776637933323056616330833402409659426524407330829422036723187101219837899610505325497452399307551789043812322016023441560311028921010618968462448966118272896079716852393773782249571077424930087682391329142883404750998234657248049058432312443173532693071847177592994040295778800253667566956310521415440330189610152172862482472501211834966403778491839386741763214145642733671169222246593284300857488582636405769346096758711292278242986489550177114212992030750593048778475311641082042250549162321422912814333390143464813532323890449515510475474038181029320193581510653721930507905075210573350802325278265421880739145995026952538354462616663506513916715837143702351157203920291854145488283929610942391306004329402320922461315947538922170527877952402801400915389766215697555959205793381893922270541541203045030697797900706275494079433502374607144930715889550415626829136484046134063418630881577301382005497790338986633742992053016887221973416290695273931070612431144628812740341583493694203761806394660314990020013704549061604892144872661635527607390838034551248684941123358573017670565619109700635699512365331840049795190782408782222592462975747361047533525741432350052651199091917550935940263159642695394942380522033988741305244717524287286322938108882407311648119992579014919502633479233927701386020635417347253236937056147688758256047566001801813933418115212498262368059850074961137611676005226855754339180877614683280232326610530668909274737217767146581022927970399060047915308342443456434325704729702956452750420310924015932088214154593854029079705879112123587480269381670143704811737591259738148389942242389998617951754179717501623830826301116313051666425958166036583738211938743107458921915078791780307226450912024264927284251816221779010978234239499035011054930131622807990931333292922548374484045339973652744739312901350572628160902351815121471260558793562327989034052990449953159475633544236914781012606296227045544076495743009205893139479199704139893307810313168029288231173999098927453600198279712048729228366212133044599762472676077862300398026141958833954380331783594633693025679592090776578770213996086019751216687037424303265367085815896117901361859193072736804530543528080107792950632816936388036597194308769129564628436988048483317904644277901224219326566034418551293211347244622271570389891017067997087299869330432237304318598339662137326432367817201994592198133181494549898131619011246096258252545324243833632405331502652681992088855457369578159871669301557808649830059960313587240134218256288574987745534820130189808170448092997281814745795646611490889392527692512467366164952348643379254450988164573788398520180399964852268889819328142947216278079512679940662397789281071321473614850774947731834423975108596991414270397557112403407221686563957643948545768286418283304484420852363247499294567030990431899380789758678515759903028497985035028147105398655850300922611060230914437572214527990677831477968639685822765753103249448364495681990491023907995532895437287028035228108302996120919779030224238055629261822227776020847986511073218241367683908780317881197366821103151761212795411510052290067035113315388380483105929525352775980913105073620112868455588605737934864332255303918479484920889790751953552352894958648818912767611171061603312397240900768776210479256813835190596056453199970007633638719828664919071992847492938573864263979803735948082097066220549083607050958275372905618263338183491680470304139443253954062427684574225540433337459087149583355913462071022761556833529724828930020726453824720364994290929386831609098216421193340901399613928576633493359252982270810283390084666032205512979506356313850497201453553079073136269989926135095231084197610103506247943035739476690000154591688298269110606403395362660937864771374233680242825359007902767359210837928250849212888960426097525346571253850106742787527908424377940109052637084242488147955836135097002748619217084811747167077229600840936798446151944135567828274343347969119136145538319543714911418164467015381108986457406394141638009554970306048645234109956944109794649385248172555937961929669945486304484359517545692150277073683281820624587200230721708058629704042032595464782130415668197779731727411368316574447965110288860939831532395287905774560716509969415137269503157023997205492648741970435821729036169992791485008356324377378755105299736848957605152178525165229099334698100354170524170459113500081294530061805608673613348175834767300988115489262290095735526350743050991739779576614181286515722996594058746957785970547052465558991758134485446036690350438603258816683981875376174792234264657114211097301069462737255042181112415314434884838345238207833287727318553920303415680650569642976558327944942078115677218906628970560392474815462431981581418292409671866717466712468410088066590621172148470643294505160675213133979755657789285147867034877683966572012409988513075661149676940765417279782673604731959177764906461057964758736931872350785695541307139368435540720492595390943956249246546185715445389178716140948759535496514131665534318245593562527549891262710019598993160193956981744471386149012929315687256904673999885623961967267012662044971504704960954269200200942000119007149512879016018893622330872895355613705423509602265401457926008342552591802773182765507911131534202697793024009094583475225007371583811477377371068336926370295945381653940760388485822616819502678444813277098389831145196458470773559121598084313288814257475653387274701411028786625054411712871915610518990170615802473319125425171715698280444979204941970843446689925173875228980162249092208456443260580761488992616277632022326257810764716544552259046636341441417361342445200783215647412302119577009562062349660551219277016513180410248390165958052590462330062518449391827112358524197285274425427336944815291920702984890865850185318564109839761600498708842850589616461623354134343809572761004327602339824442733363374149890109138906413255683989241746418119223093290095241295947248838271061560121205245276512981540589443832366299765664425974638176579468968723154487774032752628415014149889488429431912185769163864499466384124443952557523675159558798458873810146198142460132708968618894363371078934082459589214459073038247981919824370966360304348952651011087490084522501510956011875206221282544722800055666714386711026101130961827546849304142961888427642326629655249856017586688040219123656536957667881216927532947405761423673889129347240383176067188396818734883312769580011882815457088024170120685056396696417245819329164315160095569610931906138062703876580061069462453174037991088420050713656577694898593616047666080028031647968929455779702996988189571440105158814753301576410894729186667805760252445384790413974763297930965468190695297630047872874282813643745040685839870308418997764876025008985421354764129609354220238967834585867765176922207418852408160663664612570259059404381156736702157066427037682714222188427166982175771723149007007938996725316442144253328750944508378160595621608459120114627089098968307015116248228654106421826350088512095327222910469584051691197466640451155608309693489986683804397223918790100763558690759446616897801012159900418448008417915370225792121964805173480463965152008093516202682476401771636890073803124405671951512730038660982084928187549189625777559533635511931826741476995964869702675668870484910073737098339748308565141248770725092295975688310131586820846276846594007362524512080451828424061790221114428960687916568089876842516527747161591594828845013133398737968558252539877063684394409935146069645948350312416391580042390733102128802741553550758634170422108144962299118611200546380487478217799234651627285026134128561423013044139744184679450972496044339996765903804331835288690958449881898385892280051424594589036715470130562766621887554032216053632842848860411245140509325006254376148601593417399029313265474436317638265418264077227304219782001578108337393783796582325399977110839489858543250260078885454234157433104996862778966961314284289138639230772075015892596777219292736365674237677172032552556731634280798093445921523856317264432732966074783708912531472396745819371160129608643972002150463700483150276756586175918157637978296786909275149259336604253660580389374277959740461166632572430982404976877871018668315035480734606571323025428669165728403192602915112579828351818478229136712708800197657658481899697459128789605977470441349130614986498689865150768362842423987435537435762589330525485597604742330447575038396115923609990962883086524153068444840340646678690737729211047072106677980849962942525919027035409357876094405016522069366119194358145358927324221577945653799068477124579104993421295010134150186091728234350486748026666288032991721596752408889332043666098284467662037325256225897765819058149512083029025896852300654494392313971990410121320937182225932676456088563941776241327945552740953656287382504784250317325884229842026316868266582709651173017032036405048833413310749584745447054789342602092893564306987890048962435636902035056042392461301111854304118793776460304828934578432452268990698344305352328820865164059146310826653339511450693940599109788067531831229875087792382260928283489216191326122412515831483271233904471005462817944167824662914286983381229427159394031030928038397953590222374992690618324653125030209173076946038147257686477623151795645767141769363310314883944809027316599625185359208500142263573523433824713847822639330675109603408714355523868069589469580114105438067069256049405262051499088387888994242610405404596176345659248892241233510918826659831580622104357069998460453953854694258582986384849802580559187399644164549785969736364503058816416128881323133284243045663166146421615848869559696002450690185012117089594284084949170011403856108300038160331715658868926888446439984767261484927651063951579045557122634025463162172463316697249080776971766480451940634469228077084980676894451823643686547646041350223322240198454277131521767092948680711654057542735288607298290212376328983760829909215143834632403453928226414258142079786765859721147033586921205780593473408714799899641205348571533846619381959349283903212840908323009422966784558674836206195245146929213071019216714180442215992513186205516053559991873895793591131669593344045009803407341759177018797386510186078665200564247349318313729908466694825597964976905636959376111039626037951237967074578498955644335248640939947043425886661040102227529636703894042716203301482693712000805217868837866897210035197512006759009625912438826384891975067720807325806249101981433268365891607588196735879875847255306015606593042641847741248719570808947174311446794587294063570218988503340624707427508289357775574600483538192839612548874568914216491545950695291309256308255024837010401269056526274576423022518316742831337081251776324122316353332936232633521259941197599148270566860483826356652568786039838743468794554944974595861845957462075806540827599409936528688058383764591263583945462640698994641148884907893371548355033279489374990613980039118448280813504709080294832148510619120863376450033601661442902657539502819875205720643482623751656987951058175742891747627782903579466437204317891928984846743864559613190544735945912771497378784671492177825995158483877668491992824982066276829022878448245129546593362690359177885267126747926414434479658822073418683839747285015730344477719079701595401450129220787424418082836308290908172384442209802482246236302422690993522252214477043894510018266360720300864376408054098011016513450662647914988001879989823806382143283500365962199638611486255060749091702088083866885600874224671741952028324312497787431233155025139020406151840022657167176325816437492547276841389422477996880170662653925787902823187458415235069108608184108237265403290810315725659060101386851721317010624710013848173595918511037250750015217781589292025094355586029033279158722345458201921414817807351210245904096018786122708761557404067322133957879756285653183846389121597127608708772694177395223799399950301575769312002246893598444168586055189016023493459573196693467156966596459431724093289746063040920049619818173067222994836185664112493325280132234551185115536942889670971415120502134624359159150568434793218086075526499181917527542537243183942866877770827522499076460331666107025639351097541470872598049487334435825341749505874522262419398050935299623903029191961679089582519778428126622251909097504548459429601170816623509091948687892350135457885333400037280478506481796795292292186551443036501183265685442030031911451962939988245347129593508626004289934616138645070584693333170635154286029208430440913440394073441805735984265460371799267252561361710021469465867995108142830416222839251134237090018081308454725435378848019184317213738883654129928907871911777509692711799377217816689561752171466667532734628364314835544203392975916621243034610815787151899746566893522105112285308618181697724738747320867064799846779120792922977418740971193720530273410531462006796963931240895998916096309734693581226805291787161045438162409967824008830883820212994187312541911852414618512580600809345726973169121399922064869693175667867652345604635939830984986936971151231322832708403504558602388768299385159929340821617858496292977080677834387492322345518349854371586499874695042225759984851689228758045913767369791741052428671013593355981654933013644606451395958295861170139058507910960901939740109024337587042365574897212104198399248784380457817284564646583754857766609736651772524685012078092795659165415886798071178869703151546066836601763202554428059203535039203931946945815760668953766786149896525251801408588333512821535350383571158757586961030061623513584579129215737022075093821313247875245911696621030291786312926355753178824498221591405394584576124610826236422593503305639802529710871852453600492283503988315101390117999547738212810432326307479656615675631853577688268506408816785433708131390379822674823572483154761205883722475444557934712172527315699769271801609830381210260257452595363957230709531206208233002127311788179713573776876720613064334629928936936694087680923934882899673110034176149073030058622572986063831083247110265113903403711138249212245506643607700350651749483438958919875363026504667186374379547227464081020535743315146075115200685084893269625604197581228175502337548585035406695949565741438881131782633300434505352476374706322882570058273072704697257368319712719969325678691735886188539805569030854771538238434671068117386430330220743346026116605320733105732373237784976472942692288588204111800686686262191873122140607337928098144132564089651737778653444814955316870042443562885335787489975904452602362356095392430398519687132182364060479422780597089127096099504012783432989914160570449246984811691428781610481856126953873122743320309469867661989697904557405500968233832615902161411950134538870479320892773825861293970365073833236905669136467428346569771495166388606793919534697947756491827270052884657295812360117983854185582997032847521782536278968642092942436182855413319080637522460536162854664822943355079366471380078724983295448484075104140671249000402289162348545808774627475241924866705921843630764092921723034493203003896775141585761758942270136767449829181464694465421059601299505953302281013150683662600804284795866143946617027499654216692203103804051193580383473705778508662992464800044530181443191082906892417419582184332748084360179307344338662853423343489061537601080529657319670217395789438062354507242525591733315266522314412208974061042032309014912623209974716861961468658085665132994616998796890358250981677369696605474626072519101922907367204954597855167297756680435037910996561432153757766536269913350770536904815857108247808913509278897235838955091472895886904143815685535600814785347153151431211410498581778648508015458892319161862896056666113056881048106866946893273927290530237422514236498130809365544752046735941435196798261384990919660759577255177370274278514745539029917636162947518576333318883797951868254746578117925207539004143317016888831354966444368906506463655135380108147443441849784129167288472156367948335807619980401302149059958712685549806667466169741421095764015817914867518311653478077395482999758030305228500367721628412639608659581560230568313789390643074735912734976098310547946478107764067437244541383125692328715964930245510745323928097472478267793095764150145310741111788317474756185250096789221868112185152905101120397958630059073101493618463718972874515979172871733589576625146114371309043642429541124579178183035299777126148792908432653806949125573053882293764451544680021431175471576303952945048408233324671310809921352508896896905644399715640738724699059394462319389668620214997897224054997396022380389497707222278790098758571928745575232671240152765075358099311824521644449408725683093444318607368590590617781251968195621212275851735087582612092886388331179335434425544298383533196942685341107261195685450633998794568896003447556135583622671079896198421517976570558183664549192625823181010125911035346734843111350497318066746131797899722674161671298025802900422028069306148635767732948741141001059356014109693781943648916358654958448980657518615368513544815468151223308536928165701537277115234194994143392747832599751133870376543918462861915017981824674598290011396340708414878170434798314156520166752343102644874103562761726039416720372887636402608941329971745014490142960711207884632919142756636768121085245187182664012817421606877135090621277493503786029868964141154140797767907628677072855685355823376378172487367949969200329745278453837058342145349748988471701644131969692973557962191081472481552218604382210240158206314050259990587650946995746908247475131584212972999855858175228085874521411569585704016006354617068925114049540174515171701257426509877946039609663579617410601402762908190772940951305563174919235517015340193446982271885398874123692565347769402408581905669042865209161439261407048115583677619627441196374648645627513332435469652372202595172210237437317238360151320284371790378971951964934245783120712592666659068252066239078968468407313833941804226752953994127186479247789034837948630573516845815702381339842781232221893090442975551314652181010577436565965052835231886669553931710206088443016664549953726948825886600718290635634776405683213675593311178083084839836579646675925679111645593820901219063749623198208329726702265402246294018786602927006058117414091801924118908653548564523256879768730288545231776932036450398201371721950999798467040448104277482557633157364086401311290020381536294930095739653544888214118433198589513888128203198269083313619841318094626741209412083442042445143467820383770347580511524115097207949664092781690082139365840741870102345105452953419284245697028118355972535436750995034040895340908841151113334006568012962133645419638026095050461295122780695754124243056053210921879828227565720791535372451045953069963347777282540971101260730300639679926083172494972215836290637735086340643178539883384522352456335093676749539466282433248970730877594067939770557851192425001277731558801921541483845716952584357883437492461661216031494273047433158593659879917121849180642278712222376229749277345246017040078842161223883695745969087789923344841873483331680686701278873738396343763627393309581005318429157259840383907241312208112810090863719386569051477441991676882140786875020533235444141847877457172908119683636440750994648169314588766634940928099650081668083232249489151835804763967757598278531238012064075326533472781301841612456296122319104354408188388283447571850820759328924297704645524031706034272762915346601200934188431055412210876076069899721170506139412767781534318293512583687214838385661790659161199514196083754889292544616401458907337650913888898613541414584817370060417822184375338053178770035340052604422974572236390831757423496303803033659466755787337436380599362188077039985201302983907193856650279137465457794774351005797463430338733697670188878872447288727397694710396830901574314522630248858163122422385248206454313980014194532848524104974165346345649558597149167052148229809907693322214789709055353630098685415191239446909627153942122313393293640587982260986443382572455291739160907958249257652173982678815055614403017062683128284805367235004523475901461268814775557074301685933322538811868656042359624864026668400786115289802281459584789321445740955535790484854601164726804779608117232720496037874181842851267716093110465250608499090973265968625768662777631372597695089305756689757274576113356283448034893960734408839357276207381546059272405093114669097213862849647557098562732254000982417640828254467027875001021039744197423680728705500532770116387148488721107910458791426929946368782602845581729242224277986566038534912521813302892543694905501217088704485843541632513350333203608444944373909837023747432513771964094823876640802347990788759606096730697726595640466629448895984229367562221686449818783760209622001227850145702762042418281025367079386721897984525621361366848343205731451806729485619794935161709894674814949616890485896424865577770163863119392859986402361080154662774027505856401904354646405179259497128961841866653036973494994787492527799056499551664700606142998357591288679431114755729255786759717757338176555866935877166455939677033795008303907631095226326422633702163814336380979627798514613142460395786860356590145949152711056522474396953557582638298971089348938274675561055764201838289012763774282195365176875246125521925792574809590327097240973278196081197214267517019815913522686102799032261065325658247678410747072670361317891436260217999680020066788681560479246335907629530226514042290690663166707136420641776042085714275408724846495360128166050652349849168036942988225784570412765421923300874063097111603296722952810394015936479175281659412675475450784353703832733996832121089963857236149252315538749776821336978640114919750094328036016595841088444411241589303616825378093481820039437877499141008604562977656669729582487361772088043626654904201563675930343615760484358353864849831697788760215968651880465820290829515534680387554075587098432317662035184573423994951388573985116385540342260075279319097152344439377576057284201950725766015229665057906279467089049609547873246194886726744698303357330471774425032559210462312328078113868364866606333492401049297036628575823631821190668989273032977519570563676335666900461536068547558053223082169610390171860822704750275430523516980890868129315166512522085664094993054501894618798313704660534760990840373496796560587320092992091068878574764759206669440858212273639460831146510312521715852474209341269345519369308956163010735399409758759609625066791425786749332476438453242883795588776927383647279740287816768927549576966087933494076938484690252806225522434719240295186974991834023888701724950908780150693573678797295910720119956450053203449622616703703102576038707277295861746597166229622678519431540343945375068204176193285980663424539467335516904556851702080992863175799294217871282444768203603888449971723916258525057554719714539956165145006733614466272886783607944893692620913156542099215197015865464636410438449234779771918833298391907881410518872956907078388232929605263151186081032519902727367528209392632361284584821730933366564629317438332049154428068523696868285719851142332127493451941225671019488101554207074996007913715347206408977607496822845014654924601748323077002133724201038783012652192955031981204261363624943454977752039482378676513126673468266917433196027097819192236912343812436860659123800382905025912852953693019467403395368479579595031578580949993055070179038886944832113370916981178458907941876573754011523043422024996811330073797964782901162253769995317304242253602451928502868408455728271776586088631116526961005146992021607932091856655749357855110262677685584083365740002205939751106909694446755087759007696166225508451675228101959909466035915126111183767458796045319309025368993887283000135062420310727671116408630531823855247244463772157480693477656635398451601509199691080882938648621500927075389073955033460059180561277884534535757316261047396970940582283566317834618767037457585876451194537490721866485563637985118177840015967484187641653267392635684447458857453652638750628426166765820366177692317508146925497529801909181843406782582077636953345880124260945312789082318697990064485950876585672372859243089214284599208719442225109658465258387735006774889724055968803343884525195816941786764341330333817330080521825428509322621493114002304199403508721812489856066950560392475746848565215119903851406131579091795962269417862998394138912324722281464383863316520341117002530273601854864656450527677832488215404720652426052482853063080906077583371187289151443750926161551880260109401533096641832052035774188622511332049132553896452352229391156960968581333065877740614694230314192164302776940064696635761546128792362457061972746977392937380040617506793529247508642298376434121160133383588895708701155990809194331055527556435213935102425664104827213432495247488756681742546239743824768982297966411730223388154312636032553934485047980683015131920817554711638863285242718287784767802622151500091685543840036581165252307365630201592526740225786587617481162784484874816564994201384012032039186600273527187259123988275431464714544574932825746618047959300443958457476384854514428398982034748070476500476891420314053208212993816701410676927636672760013770120420170208571879261466635961697423540886251953697877786645050908531791939415892649060832020467243406321824739222534519580665464743547384955869428170922528420775754135742135318504962966737787749290610849726519171467260961505334243237825062041285194598366639512996376147914186714532169451233163871534433061908520953427122257351638249436778556475430461824464387817444977390122531913106177267750082605186829760319015840417654958173488818831033814377385278484084453297923879818568207976202281982757006756048316797076773592027760100057553214096272784416688705259493343912975480343298021478196900708093484707147720296385960847065371390238089759650905975436396767278522420714960905273903437592542538068335335489630811240245449581435610201756886059141816922191911841954881322346457361089715696422198170632629370798612806941036937666105295908918632080303119669368844548126172519827672341323280011696518483024406633625017383109278673282213392415020252594764658126299672465456848246273931555844889110651023733290802968706859867737149097461693917525541544837421989028566814855882689511581948544904777686581636591486747592081970777244800082415405927258674667728588610613602602090384373104327407203123433558136333946388738777253712426297567219292472695926681691414402783839312344676762040469435619537092668073357631588211226134664623822088640287003665146334566936060209932257432432123965414624219864808560254146129893852391861625287154952603938558275469676462716253012818818249800090226148735177678887533390211962340854626822130043697123150010800327750378507454342757762400865826263174860654625790115847557943230213400709252599286964446502470553969579309687724414748257363597260384195782174724816942134390662953533028575249420304336460838661039807268712032766041579903350335766245573803997371245471515179578496347013395731574399935718630844553944504511892943728294416783209427492543182530832542291051899310330634813868758749433857906347922684936521506880295166563892647279058389596944974329567885402576232990737247005754740406122530398509353878011175041183416393776133655181633986660446610801420018535719434729513346757610683439196115745009116365585899483134474245873368830146735528726575126805502141296457861138606675792469365193034419772775132651641725479996955170874862680151033121916550102028784972231529334549478500820175761920885588084065601609102896699624026104407032125232200459935648770565996354039286356921776042043604002322868984282169697946963042082339052691075660208378693244135994053059520707114115005290372829086747879626036129537190470439529292397660649374753752367612048691718532456940291869408372024013839826945389408009309957691306626661776591732858948576967637596172922017940204276282275128435950985381226514996005955338144611119685967079283089569174000624177076283637311141761584215470273136133754025654944351115644599926375790887569281227855977869366581630545460902035003637498952525483376420215550201466435955826253941024454771788789329796541530105348005172988100106556207669505905375444683829989179822916020609628576390964028118428116037524135416894359011174698963242788780337529164021897365625160088790774207295059577422684757023871547243669852626285109504624115944715250903406456640437002991512874345476436724777540664286034346408449524295170517494272300661334258788738223800192138873199762419797936424097147013032109511194253107721103839224300416215149790480463416642702868053400615475188714926530661847791673616775106607481005618895075316486203170870772607525993391834012213245787945276846600779972676917363099096452300122172806353166599094318324447873639918673884274559982308608852974015165341370986660506349650054158943827057638267053835737758271690274118591114666571284683339525135889291697970358630920367458720504187249200706103758620016667978258047839861134430306068717079302857714257153736866465764772843499451903368501996321983689954677441477942888143468130825092134990710754002386436197211508698649928308948511311748818465833145561869525972909962651082570949015892211260148116375035320495953054600251336779108595264200210056205941598286241411003164486285655291576176277170426011609411714720178133526864305195667971675562400777242672100115403270203110496990094086494751668268279382238860328768845108485465404449589287100684612624689378266661995432612706871172430082413194901123030580862972649348627033611128393153729053846520662760040028205433096780197937214318262649867195541062709626567222933849776084446329897602149558212204341037954601026603464760019825771041161324272625250731385091486014976478474422009537920534239030978161815677929923539857267557363089285715465660273640207556698449868500809559310346681832058774953585518931548272170074456651373942614316217794756387277685309487656039180445213035793842219868787014081509381611929887794366241539317807694808885539043759386267403579407989609967901617647698107782544438421821346549476803188142428255309303482963021335471590464793209769426227711316152911156072867871970345148318316008603288376017155115973731975202517239895083105121261910557580959366756976962763779379916648141556146053472421519300319216162055484089608392044984681862091728805747908739228484002032277834630142287241379414846610476062892154332880362884969290452147970497649794580239393765294740574735018273149812638357439155039802796298098230752547823225062555529504585565041468159705742228072278136930228061065813080237008840044073121027742214812138898802652367939860726553200418235317261788948664426353860969949951519224552920900647245448402813281237471468914329245153585348743784332376297269239781840411477334376181350486571825644462111609217985438394902413765921508965132545235283518077689499135177335679733542372930974048726463233353968732163953183120223566920820424455916936446015787551852450336974389387347352978541187394518466060077881977384671896103527265003217484954702282741069184000642393204133665575612161567987458258144983391156275073837969306271732409405006450935162860385319370735101686603006661162696648222670079026959494547241979622914916791802070940448185079097270615262449701039088899130964771779857699342161672182849840759072955920961415879793934864345680988029401644409502987908968516662032615487837281444121804505766015120657589912573404006983558220995604625641788566439246595589558712470052369879065246132357344383262143986450879512627624544842400268398204268988040393292595255346975198213791182505586051120592521025342430774384743277956761348853819556797391306896234657849141215728389984119801125210036906750133801205449600757235723022260253463327378468700372623387433654610281431849161173757043836843856840799223330101933977140334461033146503611287391597910338298099291954092340448208919652177529629128420134227068614062474294290406965272500917956580728004757954838031900438426261910351293906124116101864576949824314020549884837590409592448581289950829604536883041522634705587435263413871893802261335570672857011964436897282529196376943069157417288331547107589889847745505356566248636517620247981939787929577265413459827228351453714319933900583657559861010988988628517461216065401740892183099682895513922385576711160516616782013222303452196289489725332672910892300947346673501071852944064445619027267561221010126103084831058684324318261578969929657134263670488520384838362821697982081528852438711455587987315533783145869450080623446830357405470895291918595796424940345260210525473433133749413468513486274719907701589205357649485149052467540984652377784094893366992370095596490631887011136198809639022730069926771467434047048353849199873756511376974643667874306214521957136303955643014391251966887793382713336131091975565846704270944041189437162083106872022721266012054328551934927888759918044193932902908304159333147206357956124360775961118409199661611375524464596564343821149678270399652721047045963385437310059886564930150777667420911629525376279366210352600570110893791992673478036851362158945757176781010041450123986670916380593578095424994223968613644252099462320998184564103592308209587613043024975842390978023394951075328272779641334168629742598670224386965051654672864957573141293932855200688300999789741813402405713238409348580540185444246395826066139516643817769498774402081927786320334271540190159269672417817468837055703185166087525636689672934027365213553959292726962493455388298423021548526425497051027512926216969884935531253364787985893499204846423938843055635153106834827966036196630274570092207273491252294489918616227039261250100395740923893627158281936778463659358622350169286782600205266118585476923907720573535265662725253436082374636064276603953369673443359669202668357402047988878963183296884368012470340410334165699179910684959647338617439824269540725133651411732928522314875529547299050024251349326714277249664572190667997408572412335148095995108024359260270668888696052955391358083315619750393976525998014754157275859475365634054670029407310002335716585716160434967966203174945614916998697348708827653989658080118239938692710315448764671204678653958485514003498831940146506329031488682740382639538084988747984280077422315660007252887860491363927618767212456256979574051426732089445585408483351194531297683384782217586325981384015590757670514561742726792273734811676988620423682782588884915099813151043289050994577816561899372778813712671045865332594462284542752561253662032100710360423752370850071010465454092745167046941404933297374675633660565755924084371423923686702787038408271518943811012566524913898330828079047035909885571099944451819562572524807793417331473489440929461204629171559891753812283959386529507776577096411619321425971114944437475186815397453448373780658643271591671336778216759186581979722063466253498321902559958917138745749400531235032554097038738294128780800170926336152229622684944930829668561639435982248894832284947066586165814380018752105023918259760591148903093383877349687793636628803059958610399262853826674848960045272848916671891190915868443242695473872968031385861918252549354685326731872908197698632200429949446474565997780617645962714961701097922379883988080886983763970129041760048780805520029163383646388190167658757852660638024760852950163635161901931471002722231263056031455130609199709416141703467664904119280232156663212272162548224669189478244194922276810051583119656820110591439814593950014084932893012399222953217873104009724196793810364999084585889767390134537551015568330890115367856084881945755747887106045271435624313544291769326821602869937767514674361262402080895341075751447306113074535190607887073027628254452726688641980238629860731948837030155353910708488240462882494445047087995045257975496361038463649324268839678134888801826362958754353569063953227526200004787417034832193374138574858333881418350133965913056463588722894747042600639742924781984644612317063332127693225651761801828632711896537759862848457270136960916583553135187592338925255757916059303065203536177647891366128445034344833070283977652429493662505191057689557789774634289790686663153339460712728241698102765052726330948989926674181634721734550312480305505767175086356481514227931246213948872227400990897249018099537256352944720674454232269051130731204845929184009535724856471377072541535471113920977090217934774123500935496720195397903089218647896725718479572845279040066352544877804185039641628266939764172767249954513389386165037994579403932361342620371994627233175781351329126726959046134243234064594985016569697427863484873250868236533036051140007101268281772153718554364813911485318951465637977842691847157866093904274347745554630510220416785675637528543694407300338526564218304838227000005911280556111576178613691567118166161910294430696582436907796584843939764059540190607816557759039776256964876441691220781227600253026820149502167322850443327482026249568104372540301042911349715892114837460201500566717831024791020689011845758984077363144515122802134334716923412673488968612126262047164630461565557494335225397639261466637776647897481562153239062365452054270970381096200237393053747349762397855617590576198639943157492440137055773801242950967807034541189951746694225965832822670646604834226333378895420607125842143832797279006124862473041969320296267900377623137424454412939457980070668212296389940785438050857830406355998423807810037615850289340802864945448938063445902151961559560033059496934942192819346965929396492580794208645572821803946604274069774560223094977474302984338388305231770498873752377240823186472313317711257747423249558302752141300710924158986093233396386597916746572439483769795601987360686916137545777608398745062825217775358604889678262619380883003125936856225876780893539924891214440396986275538136856413904787402715638707494140504895026020252883107811500780004198990622411175758624081211509893862370466734033562797796828843406414868346502880432731503475539341486975296624981319478980668902136087668787706500538960551992925969912741461131926952310116287412683550504876045919545268256423743976220112412256950054391671678240780601045711702660159797251873764307808048943206064368235002922466223362578840271541389856673956535661413969115827590425742809523867145256794951773643358960472184600585494903931076316224026374164140632618934024922711516924136314488905777214597794186579246161380651369633448123171820928375634617798682286402288205961796061972596886685596881645772195963779662043603092479282078036885358490045418311462366697113710155562214651020588384757213602757440178131323821936292195215613197112593138706926574061807433808143002304583148016205387981983434089694735436113277389864381512667209482794425764752693265451481217893066685708944352592310033365049851043589959177689400523788758964223543590310834292093323420484877469729726468826377122521311350185318239820683893350742208321564952005224025361177116639500596724050862107370546192876438579617766166644075993907666414137315713022134333731696858581376898816640634419903171474878950363215050049392706262886695815946641750602847385443732450874259518659608160607609744895182935472243743004414067350979954158068559078912967387099390075684560950753876998271156497895488010011857869686150673164377864703337032119894233735157453245835860594712289052986010952296623560899151156481257148699307006650558797890461423943097077036908455899294116793608394413417692506602574525698961545085043934771690546105538806793859731001576795272909781485025304828588267811655476358741535518753269738230179435310762103972329742755739768702074423979263355377149151113059776522456637947860693966438859258856200696530276273800382274242773915075682974733540909359569687253718455538466536667655301193811244026054586214232068772983195122201500774032922952986913456941343648987223649573678287020095348825450569067571649028290448454427022827151617646001082392865889771618364097979154993761765093877983274112277009303594247763752049773119223455710365016506615108007014962265587344567381339976509744145813835133520100009504959290110683313032016061076426049085820703761580430210468653116875195906357904174159425047264820241299963591616299540338612927122699986755980669727578435552507885401083667515063636487373451149311807088546573331531668233367193191278108638043384930257342031834905997276311979923915822451096508412963859271796882120697610158845219876144137426633402577005214329302713808070717950622517854199836434123379055114469358168427404416976586573372602185807191840173601437928786932574371923899265945019450170076056027811482647056662366632178109321169888302296171305993164130786191498659388984220440047706644792857761897383324472941864740510583828788461379275302082074402585514542560733134708316044806442521016539237980183565349268645284630302209230858795478944979857019186211379316658057567478386882993637178761607647283202396858003128164871722733958828637030812480985977422957146665393824185933539373576706364318472598253728847592898350388303570722549164795929521829706622956833394856734882526680266909909955421580320976302385511281515692768481446491663006304490290198285728510273347911138658459392259181029325382769370066932444417814629832259174830163747016230318920399167904348870535342249428860651766503070014797232037222613227750491314495471962445292107547582897907435013202222852073646876974778425992321216119984943135006312049824715828856756605822030530913995862339131350216332897444060570074932225095510127259205959632747081729007595280990031256822080864472688085400712027676252694325804501939718564939920116884770029338630919338364036891543732385410287988862360808857334416025032651663395410066959231392004844076986038928968538433014202086010779635721592934664994166264277599681383992745973908627590898871010571622241353632047168797369099090721210881034901337200236491870405718598576282811367275565140431498430460604449850099020886963860630836777002448227681356020462870873058429730815355709311330504884953088971968976237162378236839521887381374772744643207005153179179451381143240356342229822852806456498539222517209087950444665150498533068079800417720089871162226525630147188798110915639977075604434649782971613774226563216307371167845727979993148699599859069226909170322536264708258379430447771123917057231240866616861738362181754309261722961700393923758392135438446407372043607016353904941417632616729493969125453204900120103812881761023609330930091154240113258190834122495466377261838865996120001085217216677898029385330163262649631571179666863383816086982083504649108736956301492641218548733133820344022769785864385913946214885115643773282946602748782394476381727947727622867714612356178226310083969538179828448934232480592281834201732368825603506176844385693614967238248381207913751425327472097592973632655455815666613981852516593651447840669287435299175435608002300270803783958051011029195997903457139491517629942450011266470755788387132279160160700816675903103630928302503123693965393066177003161346282577459652316517426434360223613935241131288527495991447363204294944760828585773095076820369642711891374428021519696069936508473134863969373112582519923820633705660686322770648357185343102493786378758831125705687641331841855833066784622901899739103224537862521474443802919026383260510483962764983520473248946012854499252904301133378834718610264161576679913459445011950855456687179047105200825236216757469221462941565693707722503618967370803366106657852681666158480199721103736908179208465300684578630916268548992447665278107722634790738820260428384881574629292155229531868251139217841618624681866402120581865259124937503104480875279817826732396726985880148494672502246268286598932813692581937759675000499260836031724860303861664146185485400350712520010723277132457471641907571634683372052541385262566806705929607800194987687395588198456909519954777417933906558904683490621751727533387216650140391578038323250606703720357091741267249000019290043433446760067761902607751025392299237003122800450649091034345267567154822334093113734565355785674385880602928342896980625990816898444849934197287823028801170143331578376666881678834790330569845228087278558570195710244638138709504670798520880704196102214326918526915384122636123674600642653174008749509241188805488823814858672430389756144810779516478598277059645034947381395798290954278619788758559761820884092489837165926660183477153460655658355613004659690433641381872488332672196075291971387876912552041052004942451439105923971495992570674048281506689254796203701011267671724085215446131426918615706063793921734706351623866686917130450710454023655791796579782791031934849402345364324707504458579218417598016980376111057271394750502987093116981957291065144210908739443483497003890783316302587548664080131336035147250321177162096592075776239785232282208003137790146767696418130491358561361953481012955866260580283606730956023705740925302366308312982182302335975123465273083982825195174603959908993865181860171597914019019868879618276141191091441761529470638833586756397618513524607110402754112089889612827664065224069022615117930240972362869921371524714784225066423971585166026896512647161937089417497498522601528600366847709856072737945647634446416070932571003415406070710842011358862742655585545199726913445747796034014665866213829893501112133896917089728999831724583690836900091319882874375315668286116902782808885639096880272002793974038061417945275386068738782130601979497286709376787018679648155866886925486779622941341415248720198691548977209200291176436114568324193672647088107853529033244020324304865097935077866668000021764892559454772473334154633514665868614887281993928945778051806058905431799905971029393471057207782563596150444179724551236935293151868934431414492598514019565527127938465156102354072723961505804922657204926579502028867159414580635781656071168365281617355473218922862743819005152641075270147253584893007137298774022815940293281809086476561943525223608040414602012694649813595600040450866529561237618944537891021787422579871302632206979581996564672895611570840655314837370190339143023971631235391270718799590547534790960845150854403049899158360823663005308630031341337818536240116525030332026037993460051979253780295106319812361192647561940679172450461721392867164087499423539278491244304555367119723581654107103741723170775393172640225064873965728001592521348242976244959656409560741149500984726593943202856043468506123929137703388268063675358227366037777741352852695754726151027113912542337574014824429132422572796822445999982432443646189089216477446731456765079392319596173614625232060676492590527069847572193114607316336903225478207603714318296604555944951137792497324024579014153529266507077828478965252099967042298514858420159972709945902327355774795287084960597895523483180051025734227799563489273409596264115476866853094672602342774964821989650152466152387117894694109601919602975869095149297817955176138669003711594724533091469117954551277200644371532942575936427687137905965709621912792974280578379760273570289929987320296303149460807892776734490018259967368311321879358151497173760736578516397848227323943742898879630601484790896805566792063405661918025144668370735927769936570399771983396965340865780023690273555841633097656356477082479297510519167685675632537017367331527396034497037196838729741485864435170937863559061703788364316164384745317549995014512054720389995720637882963316959483885538280310628409591740010594940856177378256770118772459204516693425050331482871863636472723521843636981156228784499655336157906984638040921398205499247966080386727275152754730934399471561196695013048676663941044710125082246432805627440597252152656691823424414326661005330101785598065336405885033860050096240466171225982383259336942228870888237850315158797001572111890755350107007085005587857796334257149667652353228895285682373152316862000633743960315658954401764304218450671742492670828640565628281996254804911077186286916659304980748556606894657883898951018236100892273131030451344658842413636416307825704361738019195076729318916954571128908392489581906171202970865534678394944334391104677259255951582694618609026742500271142424385783054301169611719597914659779624943203672593651877970135609416238264605583872108392357178151919543257916373127882344436815386516278308046936395207612418952662094844215509015519263307083740473034193006683188200021141952515026375219620231822533039912117391559142799853639461127093146457463197511438651996399537318341515322234541880342763515572403369324821228903131549558317652272575637344780816618034481315534861816413847371418312757078300152231145110664486485049672798468962787255146701935082133805029787471625608482318997526269725413996415042402124939217899389590635619132402257442318081777223183200175720418067806038130129443785639956843882549570408477140796771371986656411640784231602788491932024894267183973964557517968199788237306724053217378823498003999383738882232272703904406110693081082196746861579093055192800758517356409337139282254461439371551496890371089455983280866869941702210662272838291829702778429148995490065529338699820202145560538217419060880963139792210622374131437976154016987908843662892944135946805329849099472335698724940814974242157482655401800541601137566325301757082817546802385963549539649881333920153830054759746933822075910123893132073026561636574281029073874159339400687369305134702661457037323450496350616047475219708482033774800015504987435377229171320449127946977854498788574108924161450618571852813631609036888298516476780765357602002494727029001028428122878807648762432387635583936377078057197136802992523944544625134337416902304596926637287652638259613444313897777632003476853789458383337977895204409692290975421501718968741917491702767000966083191524732494143052029194423969868318056137992300492900381206816443102725730038435662227219618407805142761622289838089229851123952168544678732247483450660715995913894839818093196840590306316336956766110074273495857657050457912816982604554376595765673925073252069753450267900712624337592449358727061551592511121712970250922027343090126739959311854335401266815235755164843887710305831481090324249945656371732604597786729863059932651118135378699210431841055218846391283825470135369577413362261857283394096309548918127383269272079137895683977305570136762223721009950880788311381318129138235050735069979272577760816661077466491162168177084275525679242056672602670891198798523284882089267909471651357658076075805476817508005143837570693570335652335220440302945828467882072375715673349384173933892835143221885961829542925581814679556376716869354721479905795346150676110430098268305806420245949754100770218006686270128480515478039352196726850824300800726537268793945426299343976730770181114873651062118416509403780005629858858622707867509889280975835686835156756997554238211606604860351954009215452822247915523058348204239384478778557980590291934795627705909474992713507961277507571083401177763518465404832284808340122711713758641172844462148707770355563313879916590388649393672273475086729536681579263727057869718369502093407176740069307828393727238451204584754429776115782463674720888989832143884388347282693957151431308126375227514155692460118747075634804717611420432700248324188969744634561304938962531889315271789568633738845478707306617071383503137269915842604753829045358458208073328638850464902849521798714009246840485683830975267949049557039992085019553892909569948984466359178958032285596607836539184638826860552816449869005623282834813231066519680439684054368646469388387559778008578075642512272829154450081690380486204260182592137638480613692942221870896442173320981546681493628952378270019431170755265811677099442065074968761572635483757244008924615710039972757193181363471719690774753177500457245838161406003698659508914126628121815548195515463076916560517815797611161932125395250335562475711831045357376417378707300292227632559933407845618259200161536225780021266745606123744293036188105450962305629203823917364457009366866900158706738633790351627092021719101860157651140616087039251678641089488723053808261650030819129473773533298663618151421561623673698142916120639965197021993112215501182997140129382330870284806480677073959386594689228853420207106861101292823311476536719977583235494668313763127781841042240751232948075746005299299886696810820979531717402288329200073747960566823578538662310162714600399532311658307564882795614097363461958622460805129811724569535309183718157874905892353665718980023984317253397310948271594525563722241724829827033922353333197052686581409876678788432189920053707539656288986929986018836616019682628245537037848773646337836606858935200971674302386269524491503146744138430290530152663302217035318436468586586598034926020899525510076161233662891604546709219971993506347661446194166589591370265336894151259043826394568471743022569201842115852193374271054177808950897802138431730028544241396476940161200364858300963632535453842658623627451400992203662906657966251133906309685821698533048907073290738870293019107630807980233643882365863654493414279051677730405155421843230264312794601424324534123384692165609077702495886347581723985074777342511594680979094415408148879422158404641632951797529319724906642608173994988669035389930578617779094704183764679861117342749920256721255256556908348139461051877549614748262507956888068840935227200252060072572081263597333549052905186970789168488506614072376627592555599514482997200395277175408067638337447757349991327191145356286164005639407595184453413295428118417332917038922132890652053597724533332164247260131885312036843300284861230254009040556648270649965966705560837449542399419582959547935097104847741865818087797078306937917345523589524604333155111060298218392643357095693695513001136376374996252759172619000357062799380105032080885844480326557354305561589442828960893750073625044610150178333883494835558416688798107977898571429989639340259515720269723204664983343974362571007466715462502327768510279310518751425965443491352505548967767214397617665894015805940369664065241177869084823285519538618402940636314230540550909491003138206157950041125533563815725304409069900084827844419959716799786553824422488390143093519386512104839862207293923457439104281997883601100349110810943333975005713398039003629943000377800982332803079508147541264402425463901508441608115614986585628540965837114292914959646561955948893733021517638239823735541985519498171320557725296000899230306797193191213322021095957580451432800988908996396853527004251739022783891632686279207056505676168699553819211358006830341218972358325379857896694752879636789781477475423438689168421576713363584482846004630023906947852348023287452275117909219590780842292129849681210981777229726517890637126216812965545793095615035564963699802359372582114650313952388671842371018977375384876024931181589983985349450175278308629023564789389183259449005312856241620585158553037782603922950979082133772720787869290017317738052764969396759135892483241699756561421487451926601544771354364683451916540822660655076583851189260083142465508991959210995073424822025697191673352120827176370507993331651505907568611576671761937218398723868386174942522092364347774312272614969599222485977296431633993161539463941934414635227907259824388033129079153881726920319918140482555568299169936765842978018434340940674876885838630472688770319693093205437869109626375209828200503616113500367303780183665370153546812428801727750671029074931588617386233374552759476732841430785516121770924865778155289261408629493526211369351162489106745455159573264078120055150220096833837087686292895797132206458683041045715857910383255830149228144829270703048633160404005566271286165207368112067794471693926784744112255721211340971162988332472789250223781221317921585135817157340232184470761070445637923132429979334251909876719672731299381284559622650969955682801356018046201585936315764854504393994536931241445801338272074271779929262944501517533504709159831432253409730390231832563140539901695676659952270703549313367581944958882927509550828503772493221006809523932007259310438838497543950429520495509199459446018659687927412778716400490342043041132718794882616093479228845909587884015989278094523152008105667277377638018603072584519667133725767383236078806372822915498449041555152994773298759205364616308333543386159229895282725145657297096678143568115794880827242922747566621470379106980652726447744337232584855695211288678715313417265728617224556811878967389882472190074863693623595523861983087489003654524912857360176274911755522956501837352940663719219478712678024766582722115879987619498126056895370722301650181413830694511966296980996856299466880995176731063892224288061902598356184129783315474725961849764910920906100713155400309124413686404360958867677137803335872639420792152176987856850442224142279855940344041333619749323212973037884273794671657450534522919585776385358948719933460745581357334637736192992865297761510747174398635318433028314745707784477026376587593942036366377356278847879452953190231618806070763040976111933617470826920410738199520500615918015435253377102727695077235231073586191075556912543646865805322419816405172036889702330528030002405021603488983128569468116737598175029291235225065397257840630335070715053372729530891011328312698895990808569324321760888015406450370224612913817984183770682687032701861058602793773328163084394095076532369023566760288449262653115928769974075228194542720021815359837852857961048762176640283458539243847062170322836513432652788205802920099948911262761136659837100685272987766043700875091012171849671962304543842048101987314408701689282146471747423443907728061613289151962883405443421073891080840284117165823757924285459479122656500415340661540250646696385818460442859641577605155440879900518340573672691330927414906478714647717030957461600998779369699686811741891987472221328282749097363358244454057743681745893350745642175750461815327264784532610209555469577428326540798589421439819317514365359220715602602437088140614617373932487593666291372651818206716010814456621495373489481203131279914133786188390532643491809800811957964061872361177500592675836606625036252673182879832242414672139762051901797549435338599128668011303345190158517270292452650825689860350214247394949338369851518413114940669822948137829758997611712592710154338665652009782735273157716317932873362012592366680902819898801707352011594788161445692051127836381992309652104541607660868686175594083641968649663369060239366685844651018699166003817521906646489678298271523094730327027411220821255689249935887111770790827955910724672882562621064410382378416866402964699666653877398247475176815588222721433454057337837694615162664821638211270887586396552588372276500363956839992563840252991567975264497916355717988832633275124625379634635006453616739990675372541092537760857411279080886568868207033173909092262932229630566695146960278236690292603334826864723846320622156696980674010155736669219152633388566112602707314818292551615335097802253616975823653120949090622518356236341336874500121104483067195958004390262442616989866806103531088760599643549792563111205743469339471584562017965715183084379048585126392796693213686295580766820685338062939105868585013728600972449865789728981105192671728112930104945784869982550363102972332530847884518878890110324993865484894460192801932456174360849303718666164340718230946600535041602341954364259452768419496302992305694814659953960979229822694744689125191819701636520001621844566661811488909087057466855793042043654531058277268900428776090211789996787080957056446537666649162587174696887964885180167701096666121520628734415672377335712746754757914636644784425724178644969299203747781114029087624986687607043121842988969957577035449883144495270404966402090918572777053964454012942738172248645570701058059724775422606063872327732173189105149391314180799517283265112603224556243328763575931802528544625939015985124077164204115748405683213053962015434178250794665867402909457290891440591511903612744519905425797238085153109315447363596693543576597748779074931005682564029002495348862439969649246952553743382322109201305660466105143836812495554817169332207652376159638881473958278852547082028774779422152925511923125686882640864262636876893650729558360396833611592253685644977153527743240713826329925902851283017938912570692028042955211345620768777183265902242739244245337578884728672077847631242311242563664885814796727336566028643524084727789123286428562362164904370402094382157426150369931969182509619511037506999399379601196647686321932827335329689779026984676209619655849279741980982442508956048011058175114565901061419385103455325672038576495852832479706152397595346101197068163704829378079955088341421490907752052741987125418981731224542827569228056746131531786348392243135441687062394062954965385647172622838764850258447500906999228599685975988922096043538824508000911967308109931818235078061029310871223050358246747225322810895819456516015982023360030432549272545897204294304913246748272719849688840042361738041732923270381556066243350707434126590620675449923551724222730037887462257452841710613406554843066287213628576550047135457250885396552416103255724050473067690912853514755336971994383043676099573076890507157727275316002548535995135234391496987711700223514743796027391389904602327017602254067599236507399744065196708100840878950605590732412083779907951441472036196746591378404414316280771536631378052764880188414180751681242927980233071117079857756897128342171605965843002749727579945751890263841472919966129981149690572996748368760496201924016693997055591950684066992531473292512471247411314634911900423395571941434577410012545752478097046364123195736923054576159097991840378193816532657434746835048149711994122277643228599099737359726137058819933354621917491382550115259036051056032131137176991585512224354297851686314821571617830349913223659548145243421681883015897848203190230137265569577519990806673748713446276710131730883384510341635719042628701255869056535319366379780444215265945280686700512488721999658267746746808188105126615059119599648426176761341650812224029252022835471478805820884880711919068734541877648877959757018660536022645612434580300226138362677098841330952494649791924015836630962879803252275517698622075577140696114421105086253412372172433371126075867712049987038541437811662020076795519160996830768587024904632187184726450699223731785941016359963208477679746177351890985709939339759019989438174581779016736769946991354859570714248161004067205065135485908408959041210336589879547338261220844545067874165025816369823565017991414249551285769764701550692741467103173505294489813342654061421760666908961367359055324821263505399320351682825844642027229298802208909141901259276442017646546324937408824651671242695387897509535814790019341342166072583663317606069029385690083068255467175200277968969594845436640754911486026369560826557474598900731825399887514949081576184798278767779373349414088212046601078186772607635474646066891584556997632048672433404363281672934115938407645705525454374762286581898945878014858017889127322825012109022764343012556755132861359594238622095146786621403691228433590432081381437417087341691966440080035241978778343622750548657946036561283876594176564308393858070040218191976534086390485108015098740746976576480495816793132292823958580184950682307435122106248616849421941662148512432715301304484868446210305466322956701595832242529495199244332327702078699357585881623719015810664448547833091223064430778962848556216069711409737083771280294978172841849512891713536142606765390633447219543479984146817635911000415848414406046606468609153186030303289831114616885331945665542119884038931511023446651933591926655485850400351251254971507350242985509981889875477718815653844250615241914359273956256902259591365177906138566351293390688631942927479197766350922249858525109705173950556856551793689590543614498576721596997971985784392912727513627113755241568186336217842278289788064045825389137486658880316394172966392572025789479908173255717681224641737060267962754621784407001426646734684350503747396537534967135812851124036892085257568778232255942066110730574915808163937242831740148024579438514998018776131719610674108593789232159439043471613440499773437790577040116302870671925587175558388791789440470139869736395767209496244774019945322480444826563829995987500676562687333868560173523132475449085741111160967420415930515433690614296993751258293035629010084717328495006018496529452934964573570610744230508396169098499928651435821454570347052210494866785003505334097811350897425295226138862346265565456246693472140537286105797604580502256360729914874509799217756674463607607693587755559891117658577989955790962889967262890318556603987623679897432755436652975338278463698661869493611912197392618955631261011239711242777643178831001979363783467408089461571592030117632242849241801159445404352297408730965719770399015719127968766133047708675756101808255703345736938517545217547691459573634256495234877154645179542077366273042126505468830734269609269987771681733747406560299747098856606900651904958339443748362539835642419633160024006459909137156437796121791958576859194961609097882908028766869276642928877306188202681757019362736310962804440329932491798815541609286920104378483585479267229006719021592114355971340743008241173796231942044674889281831011218920355963214267088072948196135648939644804786248548404742613414789697654653023694274348550107349223273775404529120691197245044521647570995546488254053909630287603484434184483745268743938649221913286787273424291653028308038207112083251130166858956388742393192492070020088298996847926936536814615838650542841372144050817385772590890951718483142196595636052103339760280392538392882282703339319613238403349776636844855395064184595088610384328796668364770086691426744601621555120611703651097276373089840588777552761553586362349661090296659053550738886163291658279711155365005267459586641506012910859588067705672647207764325828854235719061460729783875497026430007674922404548093646658273431456545996463635061960006562314658360592561105340569137520120616375688679986490165005947037107826948282395120808920813376205905081812848382650377838072431847675069731645146564240867864458900538925256469050186833163070516915537835786295887069938442766294260824573750468021996223295686325978362685391193628421807963856091879421069665160262737182430467284082909424727135440236934734018005196336307251586880484599751824906063172731834154710024899162683892949452405424414624457002053122368898355774607078881860152007520749866728203926899390346937490358735958249231576139256623558155161996505985246287885394518676797149859664801323740598910260817976334378038584392379169707377073977460060135363861014888588274515475028622861411054366448565590221985314844871162319193063020933171715530891782721850845563979586036361885304047216555329685465347633571754370499450578774636272235982129075717713330783179421128547289459458499028859906752261427706968423606415083480275007912138574434889151349629529257791230829483709641344869365054963333691452447335748275725990102425064000117354516439026643019868097615703612938951489637457412412811291246768724793292542093985959751816690821623761479018719019473263415210177799461231683365654324661437717694361377938652663211178314578782738185461310695169642370353639794682997844757748590176864635442574998986128906403873939763695590572834949117892263717511848344443577121728126335039841080349741429862921436505622820023663842702135850258528671409064078956392355270469131758168921081313404886489722119214709094212199518129147974944614073917820936574527547560271458521503322892418538966421733408036968710498572727813050614454095803376824727082701906703692958026854075776648020492773696696820498615930574632260452156995845207999070775419630426866011061428352995281633670430473417313560566207304918721487874563903721511806264321072848969386155905826460170333342110083464347268988860949921815644997632572399978406522703993573766825810196474846286172951298022159780310446923954977004352863243918650218795991288117071189607383248914615392989519060395461739693602860439639327598234668967310567978789016116590831063966513216967115525471467748919413708557094596634632463136976284925874725440715578251170959260691927762626592102998016319928217679214280720068761694672981379525746537751991671039109378361930925322615878243184822578138537851163976417336090560296127652397625067081556711270990926596712166886161645731356414454837226424209484438627071144123613845402521204726725327134006623729091201258005862299481948565711764007764441885731669539438221641171319146427849425104912237308529347065350389761223930660385288310664723017519101659208896677777915434046160248580081110177445345805045371036500001518471148054548517290998443111736174044634849815592707521722839744899982697709246779985742872253564120775392099325782440591143796731835937109425624765323612444227123354080293885755770652309976804070134067846000646183192057424855474238330046599631066593322617399792798882570814043859409762859784108927065368708032361825720236975990944870605990394021779279746458794139296062825156324595896494197145238026519938076867195106476519049400017361635311631012999570413048627707980130214208889372920291196646704933755643278276391795515838832374842848156871368086964180753772224564579309507311924683104036896702320239261082702929495920425299072103314812587478834934803197978230880292971714980790174574976791428935773621412502906597532216100864938902131501271545260640172601341370228467576446208169749389211670080094112675183437884804679651795288138983587651795618018864925742924641415388998839147171940510171675232200457421989724867231890772498673203515692287348199641460744793452821688528245854763353903047552056436097069054213424591220329933572571675183295506982192496713226971289067763656575230807670521862721399286801991935198589250356179851984084166849795077835447603144973824082223820258706908875987339629996185874450777301256120129084201059633842651289224302806064691302587186122007050057808878795894927870403241164034438156987501861525176152191863454453968565106407154209790565118070098330806425848321033426550587619291194169024347854292474431232755499081086091913446629580248975392063113783083239847847553521123572849167301724416245033258627446985737170130684829372865773019699668393182638486233812063602651247013064184667023042442898718602036355597080932936284447775462371236180723275903619873362758905947344918224886405298599391513061879451544711306934108342198907498453533698320153041189469895972169812600307126949543690299627569257457431044698492254590869653309142139146043039071808422861356309197456766765183907584547842161414600214269821442606964820734448567331441506025491648439643315621932177367749568402294122368434603050582779370075049807844175923976958371702380075777644627830007719662793512817330992691752117200617393056435153843384483404778765493570099545794831236476857095646825666017342023024663622335263758240733454661171988029202079730951070249432278831088750621364052522509926126049194037353806303575482857186368411753225720063397016455492230772171102271959721341596495957427294974062395247452017759803819010721449587175929188825512823885499912480412616893751779506028613217229942364007190635718576343466435626920694272421343177065957102392429241573560168020474616586749520455801285964240125258099643350522303491601907343994055093213150886351160476353554539915507564519192487958398177576322842335690811561072870253559354039241474851196507448465503945653370312257596347114697883526916777465016212603787969104205802714382694200152680329395554658906259535597863205703559207428447156384666395732477947537317629505748983650677001099807184768411925830119054296584632984751871166727282470284041701838399532754771334626914719725715301988176779885397421496049432941916343793002926079646282034104187833925956740929545409466250910182662892784958369755270566367315860270673198246039438486195214246614005427806536051218068074030293831154120136502564823029705786086287411886740855166681901464479708781909647239104747434909849939223487145068324737342746825220973355129716963923377156634714778606973242713031068538235119632832672992113882683924794998651597774455845826585436202089973807282739253016674659641347953195624790532719418831214022471377411165636873834575605225582516838251182757657499424278032717259716866866144690549012527654885633596739873819647760912431560877948475027807640063724514264805771589980649152680053781218163099023246840293692571120154965988801067246737613503050177100973500742229036552148348468737831805313229977173577706130627681563191253506571364712165872312316279932698436720907433165551105672591418256166317771177131335163484202670037867902647080305375808515527558799287391776091111126508125561877458809857098021550727383790771874129164897489947181677598043454893195089654851878057284136524300471444621635168968739305769380548631661845840624096389107801479021257381235264496224831161930393718591755803917840085852045313199097978759023875211759182237273904109321011902166728492186958608363123282448057584427627626446110373671745798152475629642270357913927266723236276238190389665836211642105001543666328425578944841890302170817897741938720641287555758586640363902095134746746845785145082963897780930226992532798411947263881919636425658118841827912893600698914498918461597703129775894867032141764490558458837045241792688106289992831916286710346876977057055917443939193312329432482738627097940937066231626632590275238324854662115058067440374034986769612837910886792855179835820831314291660544437113414659362594921077906111307880529834750296097021022659431613152158417538897158916196771142217424290166192666556636792781991022247984557543052019402042658048440385353239937159808489954559372676595295018247909786198164650476192944107939275740818401502247366745552504963649156842147028675043373939834281779642657347667928321466447618591280394821371438141795081540532086222647092508007304675445589189812570276088496917485452348207871320119318255861021770732226020150262718708459503928882570325919025312462758921637639977678592173347372193749394230067496805483454847350476207949403481204986224874967577263141941048392245440605313393244574530771113778597996496607829686915877856009729704357397534053697884908740648633892513316849620786721601986263514263762756091438130091632370706665689398775375662814219906651586672970965717762058894321731480158250876782460087804397996627594187728589641929859350008579587385923780339346315389328417948628757996656555751470963734586477988499101288951678888284100858631242244281196759501451439817863979238906104150983093373906527720445584315457623879470625618744975672999958556860598057350163466528898476793600673340223474081901446934272468394343192157463537034818380735686356369490764953327997208337688320007393744142441154084517147623130792438523247687253533114775083145129887374777151937154021888398735483624669864021429459480033830519747964971916189695957455089490537599704710533577123997204436552303170496822173602229399987307027164805390414127053483149721772255540242161279265949547404899270898147232103601041914519564653722484258513372899635745350449759516476828005744351361585822764259868109212644790001215116305996851114928017132311892688259105408793124352697903571969852098873925357043214245807955916958688863114732891869085064072271404204724302602970827105856772213721231618911160881163302487863230695268373546860850740007876632878660808696944631859090010054617864625260276969577166802441192910187597838216370104226033623143850615932529717450924088835740486428214847652192595141635267061360086690595278405711619224538769284521214350896023224371373596319759215092890314251247242258766007190342587726346758178900997727697618676772547410169002552695514533927736002958376259212913774778657792876914841866050342062984908763911307641846423434324356324643198309755322330957097590130029473247666888637018559495363480698570289488012308274287342653766889318421007503965875386095975335223233490974368488224279620066880035827623269093449200196273753844198041902974802323737125931789430469544796696152157863509097509982519137518035190773091278136017507510702613115601301379552953128121859448534630073442898655995961693390726731443815907224357109516502350943966956948627259458874867307161115750066913946213268683641994213583826110172029584005885923491591564088332450170318200057619131820169789327632226646086455534114371938705135554337810742516190093976222860234208449410034775764047378323473583925182226645155495911909671955204853091750477450849305200804589307555632333970144238153826112794695945533271482239325107169096168889032277269150291670571166812832150625004145999233939228945420208458781668307596921592006167949047392989085269717171383189524550107094155750361459570042113363609106925968953472067550984237765976104029559831090343483507821854049877253830034478567687577518607736592844608568336420343830863457007902086406869254412330690829467213713264225155574712423002592818304025744556017066466001530546394570357741883021525893558691253520728208263342795694450252598260695767387774596498437842007338950849714178624660912308564778615993008449324305010677631820214863213153182672973565290017785734130256051615424454535801664341784094720125136129122475919244646462448784388562607902944953118531472944768893219167400836232431719846405516426969450726668383234196158480768531522623738965311139444576040531331425088755844350255265341828801921565634179664114497349833392547910783203635336130155203059306869148612521417708712189556340014890688566058786989449809014791235609185628463591308796912246298114206005242014572822980419807884326594362121992597558042779398138106920513207904060043711462515076583951355213197764212708892730827787817965171191822959860179743035165751335077138766887338219771050679400008332059594200881096706402897864123986996707170001068462585565408936171402350158737169152932134786603196325400841888568899869078621327879407080331585317976617714250370310048985617009704407924141638184388688638778076848205404631498376093733040916089258060198080985205481183303803874658002518083048838334266140845361557039587896531723086194266482668719204065908436701006209290785624178460265002763955928479346907007115571277887232343170517271038725377604736397120649178960984343547755743289365487558271410725560504664804684095882537513821624247024346676973339455483778384075557899857830287808601022875204694004855570275970359839275535517576206055709623574929970610881881012862417972288863979341439221597057654875285673504342527926404146258257827447462402885520909118314032806016177030431665466224018501945264176356246614159730896926079005260011722622386159012545027444179338648136236945935866559183503506718509355115404766160517567492367828995436786660080338992558942649716884694944376596970965899447857370507658864205359936863520374127093773151031713718622687752235042000643161726200246776592716806558090843245467938729990665034703787357767792217594915516401274085130628515064222164614111883761304928914321112258074788722650439692351569151255262408816723392253439804346734659091462602342254850001235454748419549720655280908126987502350981225346005268168717892304311503886770810619617559693948607390919681807219746175371447282612094749700008541663602967378843306358945659633429743750400737746677948149182920388276915222154342009057380751721048721386712641780020021095183784167874373889673193271229161194767313847942235726425888053160937886305955115368633973320527155802929817978208117502587348929489691778150053609736225214510105286076004471974562298344707846246297663672042975009075736792208046569765314728264256284780473007925966880997996268874620591030701939756012155435533623175129195012903657933212238830822809229245173354842542514008375184024269936795185421277533625039413595759720320916466750389559561188876687271871092271463057539899559351933021725149395638927327453130542278774347334779111678944180587501633244056229207967560604414401383491910542689590924982462929076191958944978328875259282615092938346521092411712126011193648337180128401943789639294140642906803671869102545636445818108683321626717407521718237944631775683151763817619271889146763868368235296261526867479312795934280396732582241947780777502188792446692442836444825426050274606018860106610599003734039931014438612907902178744092505275425474521708043221255467178086104589627484763174144135470879468797175438648000212974430741991476354009245128630093823134400002780699487598498487832621999073677776788918679292039417785057164978960550572793935648846387894816051272605605180167808199558083624930729949871425857977620454605927122485160420476095457828649743249837565830963566756933818634760956360227265568841730495343789829587962615469257372578389012731550058645306255040823197778492367101330289039694815684202918989943734423419798913334140750417255640369765091224144207331451613979074246188311317842688063394953892005306557967294776275517522987670881507692444274605754136939339464516781544102190110146406503983228631559203018482031107766110157369500620338635936210128169864096739389760906073185839910736795152039239375760146980876930972955519558509816100540985569991968220083620738422132795821228693934846409209019827356568853203112117989375459411909139880416895786243141095091410937813994323745601200739949460358531128469844791964321728140059503898558237507505495277527889637661185802357777697627757530702054527972158003789784775446783824235298512903309510995399676353495347923458007845848395217640766102235295293454515997993061029732214821149798315174364265042223692154791315489999848168256603568303048085558256724547685168245172516652054332061980028238332329760560241844486225361561902284887209896289822591966795786912084829484350605055971597944158123028234087398809279554183042564117970408985367393201835993760963697822850230362534797992817121067081911563159792164323757129779458847685755768570427567286898211753570909772347012956440519055209925465314724522854082492448260853174607018509921773093332281833518401421863590139083259128410333542286507263210684953161460274008055046557479583607257361540940856431712792798530162050065287335677599155104331623916921754637826981432444984658828399686593204695977842904841283557702696824716982712210379608909240296049646471307888227233976686587618365823586031350286640513298404288083220883717165605664968802829943378458939375332332186820303740356341679783763534499297190138103271278308294830483957706942159884034183337060194806880624552606041515944153829601743112807765097218140885108897196147853689092621537750468390371688188252000568735591882409416188073056694763954049398518354977992981010617817772652603665945999050324974192139856969449722507662385872224053159147092513761323604667209904655469820033371000076661528585631224687121701765482425930018295020076631062264635443479959755100141397747309560935293944263571206797030047944808101137426786273222493886799029618054934688759996849681513488994369229013280655270827823817796572138037564088688211711009969021819356695737235413622989220336492527607392383005248290702353183763482237400295347783727252488810691346731492964522517292607168568798523729885098406396194280841475349737379206899423279021412844015836699336075225297063170718229314198421848921847874586281896427891433013840113945530282930810210018644875705128932155330130097326685787303509141859490661545684472345240601043598808381326569623792630557609822573101903045629110869367310934849214108081714598824433740632593138686937175506317897028465759154175981473124565880747273141369576352648441531288137523216169322063598734683727942742071206907674504201835886120602545344670405397855539495659659081884778117086138664143546774312906396021998314565429533957077874316312411448390028842981399743162665766859289773835932073180813822600011294239401559557018031743951482980574336518233923269024965374221270821921037902309710949272068018186309999666814543856527127421109316121677968054675394306552113139178208182850449667354521180198855413621480023321858545220494609473526702843437798278510861790283758850307452354975053768692939532554096523240397284786384102110308230786343081391778880578659938660017228165111383794648413588469333360515127041803880022198673647424250535673750160392912914048828582501293719741033033201072473369799172130821878914795358028610892946977231290209238709708291827255551824124151271861293484067415412559969356408780867524628803145247834713644681634934399032297486101338249964304832730598667304178865774693605476187223804734731472859086501149995614887850974102937099193208633990256357470528817549740188500259576966964275336500479366360551667505805438250599391305533532801010018500013605252276541077341910442552531011787577428630439133032200380319752180330269283298650293974529473037313063151124471830130748026852672274937969988530037174825370728757366630268268544218816599954725640359128405199127465790302281803863467329301369206078347611122422771391711267610730784207180186544356573147896209108254485945826257167740694330359460384183541663250097036795446633399284574623066127113222716962164852251492408717362789749353222563218746945442163748194953161112927622738849815607566661671140039364020086558279516125531615054797616155041410178930653254991759853861498246399186177961715786202537516498636314337440517809714406709245048411740794202976001475008508296502822247066821764628519461072006371092610343685091104734901074850284368900086505602487987039369969769690511522333346977859824683473536764883250924752094333719880307126118675055277053573475618003961740527770753972876512159378179663133246015972279805948084999787748965494055156566307684553578741982818291007113212659721842618686957829156496457541248597576668203585230204600355471958366780823683635014740430343077818819038506583715633783702277053795318117815963939501671489330155728307614908835781590509945004174551194809685961527383454095044715682986564829894701447645881276879656567389924080506178139058497028863946738570134131690523059032878602681884148294669174492975653680033760025070958975521596215072675537077161586285120605353924177475453588987826571490822772210812235156607231740384449114086307920990013302447187050006539751012550462338387499412518251657572917010606430351477807089314851353159934071726205501346369085365630579036177364330896477299149353174438227158954488839504763139994882343146606820882411050818502581854385452510537573009040712335353754980362641615886446761140415847597184526304677877794162173937748975548728790286038806089389657486094354208610674293184646293322183767786890540429469708096317097204754401162703191110618570187981373107109386856688874897132830490778995144096062305405513452845278970564403708100340568168563911996598539942630621983235991172647331096662068727407865900553178303735154085928935070441092084831763442757875309338864157034140322431622811355105180592954387166034245462123750400785122564721085969279680745745688139848818061694171663327453787677733791222527108131322822962332212982712362669784456159519213221131467387157979383059018185023924162604450922269024840593790295030986330953864841150148907417033680763079373941847015018864063067574684258879619970408306308262130301099756684341237710246036136164230685898047830413765888835800949385625434678233948862195074571444615065063712336441458821994909251603239291772379968197934851454888041065051469262436808204355049687476855863899413907330987233165775824803481736236634323741627117554113250778089965077356240407540792761800182606641814562468040295487571530158406177883636065034905931862504754225718544530205600243586976338337591918466229240262751949810428776599191614471847359805639207777669509754007607794515639552979265372829915927381581849627224902260206861572296516752311255893855033898255425119025384699550403153832395946560978573712202128675679619494812966295352269545786483163618221877464699266846264993525791629031986960798534640514857866454402719888270250215068996276730677650120517132020168195526175481913470600087531951665988800792469735236866726508337283242911724965064237302561199149756884991731705512631681329860611936240687861643862933442230754162541261817162504472226399647914685655475812133890578463833878210861952638263139015708660457832633207279583010063214635566610822566213365337899026245347896955884920978701903447516782533686947302522671019809133191079334526070391869586531616566972118368981651525915275004487693271631178680132335057167955383122856858062788589869060776896681545033375368038910456914821733123203783169232763033157921623729713719045435873700314822113071049859107901431189577336833927150777621271354775344227673228140557057047209662929482453587474810723779267893752455847576084695101574433391807028315851109321668985919640043004935513657248910029494661899531524860005146809423641836854526676740005565015589984128526951438460959216960851717221367478891488979075648372271342100912040878111296945876298438104338514885883353113668027954151889962155794326764469779551512380269473352572843856591378461338049278792730237887090644473592547360004633866320065349620944638561451051626277434762273864034284247461108323391137119617294410122443083342675512345760617657900088665448553486024969063348720427439533670382494322104635082649895777736717086502575625593298742477825140342264817456955896760780935841929885143281608104645322692811710933343399177268298449084725135610628802413001635709893886637784256926047043366192162871370126474285796967108703783591055881910461652475195587331485311568879674114876796852591793949650316313017265660451414446250090943888854242333795305260463363936147200939175707203761677607287213714829555515215944310211820607874112904166417284822964393234578865215916518761841907054552400485601987382566820237445258051584243239254545291772465231555382238761482937250551376260307604091684707934650342696329808538033380857732739537404258331302885053362437035567136533726216267679706357517578378971655055652551459467770397737624537858208457789966497217144129870720576890075715239006735647831160619693328659858503545868453761401540011754998114668952742825145119987384907630107930011180697339656838607428054214273535214249445529939941591279369645496003740413359432785499481500791586364449318700836326215418961315867909685498004370420784991736557635327490789671416330534532363279196299903765658291861547934442587642400870169422604234260501975633029738031966005497505109843854550755173927298665275491648178632251347840044695664713441049772078528949463206693302870974581625394456433147393452040091026679617477568324835900176525642370828401620677340977886536307742253689909596496815976692142773488839973054514506909464415821069969413910593344528551880767165499641324103277558540557236899116179858201017795798965273290407698560122860212198389113646377193639456728956184258634356963549778257997544713371954993230618452287305904331872753310307081035722992189034813019987453476754704210673117963270150637764835920131918941728939920957028281857964183832134917974571314886768477120693515237234868617700208020606249045478581657105750073707895855515933401153907568492330280021471543164792144731842966344275184400219439202820332447196853346410483942551302514854832201371320903404329483930200211344268099064106131097035506675013590112280095885499221151178635757319486916214482000070774963323678894231428167301786016497387390135149082420630996467526374842674045264691371185431705540974663239838812217806218495636970455771345002914997526161276319353847584284118283618589785393097489454407734224688473230745148781398561263675126367067971160410342668152681210378386562775011253242370093047233409084350749035642031176318773214338892921925726036935165020846055578452289293982652183860070458388139882144527194622522310592391663061120139666530013499174266537279713767785940067170685936353804238782724671300801770233582288432339702060813444968904033876610300091359958430780674084496732102183650668333838359478367875673533947137143310977683532835092361319165772681763931137317612853366144972331423346675328080686415386389080707939847224361323954240803637430364599320693925252824259629243509666673778629027742234913812397547527353338655063099287561311463503524716790012815316138228372086596062841686517088900654027269988980318528430950786553041914417175822777177366039009275692475971880771140571749886570060084227480059626168088522733905086632926284978537337213419525856883813043353377951482004990676569072445224459594865990770320817970264973129714306452270293478049132930504867676071929803121435209291739304727813477244769972322302365457749949898301647415236924599341563942966943162081246384548282890538994297736199109784622740293219384984577303485731315442106488363264378235574383791406179206917170681475782811164783378403238943506679520849869844020088973587838213835327025415107222152106171901265278492811225773729857271353992248268362399744022610627908814194374081114381777285972327372265061905250522489771042748391756481116834223658928043021284979529008136438008976117937051914486161814293701981912047324875418484268296557672428374283229923709814550409832577642551441098837516672986942252622558368219358906449449482153665414317195043033870647897993504464601862869981231608778340138628823127067478053241765536395534408685443194820830122088696188445949172318408906881694653267542642739467748176145033187906313418742047412771181334265458395195805544129637525300594287461202634163928723753513907391374810178721351293619595521746520407651453094544067862687559602190660865756886038875856607334446365984027063526540239424106437943052059504266424495533105818639514144442963920215144258439531287343977482443696340402112993839868421354851660818367968533483720690673484171133878591793722901766725179701212408813651859266529615646762643022311396933976532615342961564513675519698570366384798543009136103677866676222109293007435596206678501948964328602375474134443500103287523205010125893686770548209953257471533540923102782948541405218851701774627828685724765867597290000255286041726195581928639983568129248637400527536394387379825526418886236976683260916905862224858489596240692432288456323568960029671281338793365454192947297273843092319177466406207768203348149387621966983093074479209772022372849003800663370672645685672404018548513152220126370289482272942159097755330806364002023821940417071928018715589000492349255277357279536344527549334785328147517186117869416454012068274059553921662866496229643670241880757373522540872664870369266120355866675346971788470851078910269538944374339483037455222859405060168433371553712537119451340672661974500186893746984906256180759312113390338157580135042602834445496694944197344562571590366986504659617619064760728928866735397884438662567319453437246412388150245949699431669582243525588319284262098945325579506991012986229794605708253684922349156015052472059634919123732203361335398749435960660035838664945468660888496878599383974723453015272673822942715940182994804424026043222965181417900939418160443517544092494184584508887712489151613871977802474407841729202680145887666821241433940365892721041647291692948629337771912149592873508236541911001784904950716869867541324619456030414976025091900282299562100748496260729764593457406791003872457056886378970197268401977506781777579070174947768975957622208652255584807128696626009685607692488783834387491588981285089518314506447499530822322792224316399775915080269997221919219575899501599102562522198325500349630073065939266570804471957031551388116237742887895487420092672269056216263094836373961458132397433634535586992765387655823730930858031864143013112175407201936942962224555218416167132885199644945315472238815371205301105704438806326945925759292192809796329050580223489527611735509429239736240485387728335654903268443003407193377813452009016499710519575326524829626154589787921694027878953823531560027469574357347059413725631524140458364027640537564393952085558979899364309629860982435257409683875463754464693804775950665588980380376439933918927743970344040755695302404854857896301303623779747308925909511297385819556778962235221288531528364267483954020944684648505169394494167973884256993571012631974306322232401263732865322712433277414368486255835218252341479443669673038255216282899023612097508372904501011765441358176146857733352913622968319795776908199435552495485372406881460835039823201862229153595671526287871923425000251850117090067912444440581498768820075568627659000245149828729937433859258803969706492972320177484339040244562485988318696863263740254794106870748660479397359938414359854299352183615370133007515003320536039025543879614870245996269527224331072533212471625520284987068973071165121957717343754432190340351699591167639908689096024407020633819661429064099914686328355771457907392659911006701531955090537490325516263502130303802045569380988231648119453875675506139780412571074399223728481911203592911134997996391164340767841093718118481101939522784003240006930519340875489754834468889682581077494785746849500445440692970470486952672784634351084590188166778360654017980579699225571719289942317264405694176810655218385077720103684602475228036950965651872472021764961331724064738506452470821082406771887843087084061151259493029122199960373019374677986355363794802220285559740764336062970478623990755868304272373330007955922864138749575496853163901419541530775454727022716809164773728838962975829679925968092642594701415914571596797552122905286427969348219221563263985489303014964634987471405196319666262178974871185451282550299077489292064320882998147889150627426397912276552873326361021407171878812730039891516346455804939953011283638895893279073119562248671013749468929642452193789021903915779462875239762820159406853996898950833925563783651044019821125150027194459150872740968993477992863505246762942607063882520629495017376508653311775468246973817879974935001740667414879731676095839845566670487319833199639652098235859870543107653831757313021109576517103705145300535836313002910911930713559273592757758856283826906816188574970276593281873266182126872186924155858225493070724837688918330945226341075489385319670034730383802719072055102759165479432941293221370965066651187679630711598562602103904104208810836259342311022582103315607946560122401073446154157162974381489856359557540885723099877403475372439276854822854083584157169708663590992965036560908718971325731558297405887121724748518549525507229807342691332557498045113383802664594322665968941161049284471012076123173709376165366918432925938273042591962159058585289381904666065460460585547506217243547722769299454546548964073659099963227026619202313518190933180744918657333363995232496459647751088993556890304073568793942943961937066706710147779624535887464965293280514494312938749045897212540828691835483881466984678900713742528497929181943420859935274536746133699665284089403026634429639211145104046473096933785094185700660466811560561478248945985289678830323780964861905616259309213523672862082611805959688883983653426031235858777770685851493536251995749576031981301547799639990267442323996476588261307464327140052750188093728702720490670435215507294132690989910434208361897579868277444865812214567761195130073420354641070229040944503427196708018334754705921963448396628541429060340969460597625386223463840455963215096635679695489820887393392811377546572393839617432518174426927157760146648923840341751547973147896002545589384962084299432539931588243552871546021239710844704608174376357537882355888624549467432901287580663080022070730511082178345675925658309249045144087180413370639425476773982122844147220056104001473410944942961636043786061818231637442543654537857878347650360622182466907801752066375708782548430185475318417843263152311446177465517904440325229280666930910305930818123132147115957973809179257587610736991657522384911270006305174120293382966827228991012605077138240886640388358772657570860533061262931695293005373420875117621312582319805233668593843585667597840171548219667374915364214325520201926372760305582343083176130134387840820531415886648121394917522201728399499523214346631876799559462103436279787816541003258583553903622934750125844330242680455309345618312242976486286202864769656499130156145944738837840626911164987872879162997307735897869706469840343080492091429218116364346389791576956630221296483541045968745941972658089568270208777332927946096717991414828408150881498546585948477588086766392404017973994760881280481499023665870559401145237599835405561566392361572203634845745858773097287869301256570330129708248212094177052782185834130489287909316863401227762221075377140493734159551043438849391980039736419571904749507246424950914499483904748957389003220421743286432714921531064583106231226769008686804678305181262516220091030172853674362777012458146400460247225985576824123797092547752616935325901480331553909526002974271310230908343061285304122431378437695387576452413061619851839109922690431233360853581121095095233997561209647865839523657144717911501407010751331784417808596395702957424626859727505480553770876241246184654943600702863067861515034370062652764406805162437658042380165173764914357749327475950345619686133601667592052562051437629537067446925863483085991046432799066771098373147395913932896118080406422548834182905306217940766716926187329098496330807453993774840363642229795029164989615516027040571478774961025921626206547861759777559570066487700946422202339298023813114475920713599386419275798654213016666404344518167939870620906815588266415970230967547992748025291664487479316642089820367519910258364606338791300423045733594940276608408420347207945776866097549107633247049837218571729540831186074765401491656835354356306674871925165240573410519559991022859713057046081761042423411250511332682384868863335072372308549670708507685798567238845836173797636984379291097633522505492603651113059114120281437592950590489033075882225418882793181467025672428396297341654903502287953773099262378276713443927323291524173389941595049301643872272107000009972900986619710700112151118646782026711164068946784657417833893131428761413616113190958782568675638218514961432124933478818273518608391238132912595288413668426612988257614756930071218091195993322581162441858422744886132408873671549405527094063155446662443696299697419567811704993465209632960439519062021110864839382491583170851695808970073962916941674075058537116801029391716760550253340851341039793472553394409468692791839338485563354743220992453090538930394155799199321894548406617375275064866612358499584552316301074304466613920856593394157697161621450384583379309298372726631751008381989152656992037131829403144210091041957019732933176868852442841327405398601406284666898480429427213553981218055718208081006871675829880116565547559168003743235246087298336123496314275320337153542270356671665220218635386017194250667090146494530423284897375609832570645684370428267741706043109119859613380746703510718585802734933057096636746727771170706609203824362619033454847670534687385225575382693407052644218386334057272816323762556551082174918438947924451669031635533990995344194979171704263400746692003305461719376444404724594454868895399315634536236113060068183842386571868512960083257533290328020108768216687800294195408550828268941879716801341277100251161291310876268230136736646024803503668135421310542880045401825186995337577141189560839275805360180688462746081594475844827563960042922889113889154655915034977503247416861421016382620685187042923898459044819006970342443389561450877167241504303178510520223490099488657616402173334018693414293365299286641504648383795892689849695311016973822205469629159206726871460714223211587952209725488541119208064096739849350832240841066146915196103302795945566760792016754589572607374707228358656094578019008915527960451714676825827271470107175979474353015545763126486455441855524231230870547744919526237370906412994091013480059128737684477575504965478768584146081089537564100466460950037959937001586177256405488158113397861703776454032524317860975248600532625944909962853689914786374544074198868330331502933746895161727658726424688649955179177260468540298385538172106059102068257638190028857387689341867598453179404421064469106250584451744662981146661014124273869250531096787020767028636886015878025636226521416158617013034563643448138644067662005758051691960682597317984250638887173843847799259890444646554381129257594811778467203651584556031185615921678830663717464178769150317243834462008158813997180925132446805886228240781170099034396843346177389371266089680146433544197662263601012584810859917534637074820320681877128065034871317575747046666280038584216933191370635273902592735431100834593071776924543490460974320047518072156280054831905141520049049883832120318761649966228306725570254940686393195134731949996338400555954887972774079724224311412912333158618449268138058835764832913358805651579648689676189291591502854583810581164784610408696185445863388466349818217092291524489245208275865141673457299241006434706519912604031528147056780756114792054047650791199188913303151922128144315494163842372028311823045123793409430698062063108370950840552901912020236886149744889736716061613897557483835135064657142261458606817419434109875830029389368688824559762930822441639795221177260544719349911368989191569413999279298386542857814747445229895679379766780733532536031964866634542405535156930081346136986967341330365761297361232368425845365955407371292123822570505488400358611974983525832526831037110919014394194174509143927962853613438063727370701311004021571377317541255349301943826392338230159327426088091781216384961806008462651678404487059078237523030023819650483472490548219557392777789071648176250949099466628425799279136595424918750109829381998066820384178177275961222163353188610720445180171096482656136344012166545644881612216471367287453102205725530370795089021366138548889726576794785647157348245020227338006556582106181867545713400423838277491941366126243019202562380267549742294907474536220698510068821622367608257570353789686971886622156504720180189471009726949974514010566811257365077974873484001632507520690640670434923331523344930111763882350248138720637905917112530299065080196314153071862610801326595172587211146225978816898592004364038294214756816084543031218698263874060494641848337809713727050158315781136502418863143358028948966372116432447003533161359518343442047141371337421135041571184999098133109469008238016764107938889232155364042346677946659333786097585817491307076559554168222983894866815357451537970649184042586692694528328702806096098018585121867897839437121601484896648245772317872979221866505805019874047040935049496039842632476691579409983951059241650659301678897759662107574230016384207525148680376402365026687639922169431394706156781940287110646551896590308682697056795631264708841600066099219697331892007197134740417498055450154351631308174837342428191115120514487772756174261604068118460752280966321991653035110826600118961935312553820560696605976152249706470199683744505506583987595691227283779511991988966924774865565990982015877725872640230201066081221029972640662337080461164580950536570636814106503778358404848665112906056298565716694187429536842356312698784585446021254240456573855128866776693145308392988782682741377954384209708111515271589694349999339472073379233461119717931171144537106064878493926218488599714926521143351607152765257749588236535899034798702842529482599251658901500192835758497180108100276714937323222528883033075548864702339583258631093764473582821139313958930259174213369457537908208503428385277087404123368219631436192659809992049965800889805334646195901946000859585569733877362216468183035744721042616439006267753953112869084164858014302266944638429967100890021836092736098596978672317052587865809541027696959579983693396187568854237295554138058171242126570757772147078149117008182766379759356021786434281107707668916140971233334012956861109446397353232976958048507227462853908564036646077548273917408136534343040201434501026956686039172545587082128276100513928098280492805703871175893430645097112882904546684176719535456788542103242147517512451965739825523647548770369039191624283619932761559930709665639462102799636153089891397930376890428513620037459694526204812136065180414778896845544628824453014077295144881565726759432533948191278456349788504202631168139511179990009418824459490278587429562542501850876884454436013638056270418389682575159294045568818773822875985153716658070636778337428728096457880212798240699033427033641213616842940031934110688623110421949263133338818439940233273287350069832464785467124433037844771797692563108489621086012730573967327005540929007609407350131110343212057869565282357215765491699947321315233913007220196692220681749680454183589826266126275084388237974188202718385275117601501421963421202681167984188018456762956535275767651541448805308234858772837722200360684602596127078926083123549625381970775618088456588950417819388291062742311621197344864477407608429876219760942037889328973901616364130234929766580005867178313263832100627225880896365112660726762335877444955526766835521416838455208756868854867360781960978767633280370535410172180080210224756938113249611530149883924556088256274039520169960785082116506783799444717368145592354450801225504796474629192823927084991880202526755923516118959958946305589301241033675699139962286573019745729493019664979308961223084343462811825740681750762010684507290711087802466150355884589046059737847493286854300804931798063628682746394551669209778632047369999122448013844233751182230184549498781285430554515087303824341131136813279235045519737594248058445395288496098328725401280073323418834484708296685962143952492812830806466193224820249502050948468694064289422111941013653016946405164132005274751609001106519900839776251371307984311534325711710917776687509523415979492991182670805519861730398880927762271314226886672746781364915509249914821735665686869628438698891176210483955836754909101913536702433136660686379070783289540876032867324650380861792069677066577720544292116580024427368455134903714716126899566115127406620813889138148665114537718508517326319321178919217287691244768127859280605007464117499306940066211989774319556243376634121463882246838230428891150980009443388912366326325915705586509925418035911898826678681723931713768101785214807257617730094340332819861539667316883284349635815221396515941612282005383600879256966707123833679555145406097489990447858590017122189985244852892722699655868026256830373743428096821352549416040357476025548812541591459064766843468835869707515987973206662250060549002374745976336446068724664653054410034876803338143761352745605168129197626704830519252182609033280765466144933983247456419918438026029262582056595027207409804469998461834683491927779726149783528908851813676411277744560748408541345653201416024637324627287076041646897434727707955311922323322623653013769602790667594984292464274427533429701457157932538104578587818231521858814161602341058859731461545480948837974770598870194629353618123052540569063287134955881026660274246482954281861776763269632997681716171824796717926841834651221074941945778752244964736512553730539985588353501391094331563186947859964589221642415198571618709815442721052090882558988326143002938154813133667515830194529155148799866319261990285217905251069136944357310894622296222421750191745647853389088009942363444615970493622302839298629130649078870355531795097748287583661524929755039563534884446915963454180805790395707764243968022981656546009122839022256239368902104835621687266955704013528383531232603554184283617437194212596314335849839231450122068685574111944935520543929034540619213954404716467073011774471412710058085585462939630363493273545841622751953478035960339360057567470732022502126354698703214252439356552471218597271926899383664944149582849717886877048571275531067726291391688172137586137344732159354714885600599357202644910884719533944465075660857393873874383518574364136212506151977011942005106451163146484076234640325491637965170571531458403636614741988714225838199492949635411444602656130648043080035547240757463976641991313124217117662961317459211164901035716775403627784691030180136749809577325489930666309099779199534064530574574320883014029340559701666379739006050942194480112272166543290283625234948616795106044320778335643453229592618859303395711920663055763597857195957354845564177157690563893574887291072792643227317101872472829468561506741050096324134864581053746570061703264561720502402086101605510526799867903802767461290110650041520920868775395896766818438451860526683242597540301763615730143272948652160949414257012844420689815428553138553268840566920047071174958604557672885742534883121420511732387697236574814872405373707072030618296795695991689152539458440463738849929734547162647867593140407035343908353512258574732312189678753157643130296368332183507723575828843541856787049887384895887388730334214019026051802595208104998619969656508900791199994335081708948743506823506584561532265767129704227987278607423907951482804911384499507330002335469280369460694725793367791746092371668950164739725985358779152239262970494031343726203284466750877930738107373512414451947430274146755382831784515495029295487895470998697207741678840795805289061795228383690296325720228329226363151954632701720992187248776006382259088760615416066993617384698231617212010059499748866031565650980860606739209160242354171099960067551195606924902334115008898126862360017415326488211392021653951047675570977633821809539054802261158357029554349250435453825306190889084603352518570139183296810321588933074833953962784431049479820785464741914812305220052743006319170252709425803925830692935861105189148343876265279847180604963199010057757873215839478232653639527004767964667251144423919029240764061005974126881568072122080758189201209547410679449764004453236212321061357517949805689046222157497858561263488775916439396955683050390172461650232443307905246624338827321479260958407582376168816617446545528170195096487723384284535311589484347071333889930181863855468890259437628888491414080600486848621107108003408345362786197273644112310436075284446581882363946591538312021503252919542812310301942507703506241604504430241777634805559935899215913950663367624839698874775094997783889862874047566811965979923057675979384993938442846366793918794796286544059061423308739223421007567819024762800445705037043791078571744610273978709472747839921707860186200526816650112705336602497547615016606122741724744298339537425424998459897283655777772250527547876490201448412696675193201255068268666870009907692732455896418087235350307694695679097855591848928242564981023716504157700371950601199597321709586816210381828221972086837513117598476564701292939509687389912814975929306571208205064545965807819487106720024531218843277899301527750747260464461717825039749341420419942034868558456542493378228189189663805211673003122526929691764690648256302023539704084060834221319380252379990657853229092687285066732453126664814739178673713547050404648565707715199099507722729869684139282545220031737838114109879922799336771898942589571001404933418940521507843643033975684243532345371307685556679537906560201513633432053211084437592527971235413843712059389662484225133655539538547746272398468142601624217260062922294603912667741365805195156121703562619847160105205454891601796656216013296371385263612545590237568365898327736671732733527447438644549996088140881270132201952224285269222587428948582616247090907238807197690129713992929979738581964881021118715839923824595229411381484900205733079415027224008877799638839337897407848348176981212421916558479228984798428069083929117377250372771589878552518234008111860474918387599129846202253919088374604345863116388849089404148087345129234236545876708946921326257964819809651317414873532918924877759552013171778264119991421411702711066555442505391335482615079433194550068842615169726450566978915497052871666867419784166720477589559599258905196006142700666061975109933779597098666851329138001412783100659389356630809476857047810711452320380781915083926577167518726186413453041137605383420897260416813435238436334550441151607582711424663395621255882489835624484082324663587206687010246271541284245712066524628035344246939363353184067639145919734414846102352996132154015971187342930428992553181760582418478293791130543303121917901626382156653820353690938886713656729948117761698246556073543399069247970453593730215438236724769140094727012031093687714115361507444899104125254659051400611342807182118870211249809798164000676316684659725626111444969632989952513555344845662446022403673744066386406214656553020132653635503088352863483302326024958017016380849540146622978875313195045994210557872545008754001821946980461565922498879973317599366289826936833579244964906104271454526041695596883454553179802751760232703801326256074508265530859061829645317136345624551869903784710555219413940031150874553498548326490696287669621540305539440163218115103681712246669090532975166089289710707212275795312153226981960148750335431774211638338967922823343706424955240645052706457701292452626770996908227741028611667740750514518295272528122319216843228128553550083441422964952158715220317443561058284961639473526831824223279431346587529752617653834825351024930349513539360052585436760703430825019705016632940271398176827924454689125199832308139869207326315077835503147959730512553260157414084448506231463161356134407446943420136973387260011068337480498913918342723758275423052721595278809972832268153858983990412528491474645755592711499176281449395131793278866869361597455463578287546658150476792322050324528714517440477351306380158301560765870296821209170165612708622557360112571120691198386752983791125945201098864192204417996860943768738599455731121076705273158685119008903111043112471160558381709603671300738394533591652375816684313572434340362648288827233183145569654314786076920857813398692883614042938731980521611352943592641566570558306306988579301511767816712930565426452681154971910269046528979030355567925250878089790069764349381675861237004244001758752149749385051263989826552351544998495862214717381034689418527333954241824781688241106907032008571599808947905651544581525264294267147648769660492904647525017494782968261023504933431999154829717879879980648853127258592959712517641933958541903973148161716100461287463259852890883505951418609806558868108256666586076306872847135278076342570887391872855512201609766711009676017591472927183205752485951623084832281344616639275072517576038829349940493925127873684625994897952935187784935710710728092497247709134062665460750965900505708673115031935911681504055104824324040817769279126688170919194942065629379792622457660016842563889233757646635438252253885046331405305487060109783379890180893938418759308109736211088953209356105755732697205170940689582372157373504894896491714174027602224604664969985726294629905867310365245979528548075169007591680128644731992904809801205520995352477994176206200732663634601958052158819846920338215940705782310335939731730346677058895333979510095968548705427238757112740185635818599610686628448989523894758764141234362109867380359512882381395750666389173005805776786557757201801363503978464457799823495641321397221054197259280854702315221317257116615309402390169202161167511261660364560375757517257657336038721783293898392857782985548632055395742780787367732350491687619132457591807346719633695274084402861479034225585607928755869907083112980429276242832488898222305641084176453779024684144049849977662338911730836891904871721851669470545065746484042514313994051650994346536128506998791257801634626056770092500537718712943012614404645060936185689318833407100355272868390376748060045456308879094011221508228245749939500017046554736133756670462786657941215897557323841198514260947830601837439011973871323849939768043418066183599276072919664666795738997759326654055613456175666371590576530218068077981314548549730189975433644739062771556843942083840129579458853084418803908960837971965839010754224853956697110952071741789788204071025321334375591927551420776160764753823813294013479812113292423176591093516680222441774793800661027226456739906924075449365485736641889782744485370484815566369741068430035667248926150933553416902595631274451769104882338077698622512257593998117052174680266162774420276468790113875447037867000471981919713913219634544754987290621797943181738072187603136070522311976887554787626037667404428777016516886487556992504291614289220608079959577373688983967740777005315724983224581553267665105515379346242148081161542199566972630903468561054621588823804650459043230269463497539916364728591167052310880006925962340314396567406529866902653183981348282228658407593595190548619740556774648530554812471861499550654643486545823098307468757464373506011318754533256557493932055035588176280956530894746081746410391617824466376980106542553688835017402911887437838473937453739409022954520228181896240891693802492152400417183818989874553574268693877777808076546425414545620606490046468064563746694648118067787484272900572806792815722761694362132577657816732517793149342058886432302933814126921384131491789998755946954355951410413790376822799355709655066037112165607772086535597068385223190703495814898562362773020017051819705747064687587048006336308856894232710269419207751074595466844485565032857755153510056202751665499619699425353920102465317186776287084947181441164971531941812751492969107857532557631319994974197780727787571856497944587090250357964002347347467579401106382550062419273251274219259850532041062165907799152250480100467754174366507426590871918308161659351843274620599581194713942986293354531919976192781766565225392553719920020996031054723718086463183347850620893537376722405443958267181105652922844920785929041986112770058066094020191234316053633792021585269746814123109599971011004187520302124725235114077722147871095789708559227289192057461183791976107920555126375434914046662731503546656878795865849410415713822180410937144062948710077902566642657451762616843665219941253364726594453523832803853753926634854464053749920407543439169825438349879122538431359322286775771236886474974945383166844974315264802872738394868589263702514879656100081406017115487459384188444910806377421120997415320041594011461036355193605194271570376679872410059694924931018973624685680450481505576028247075381443697622227291386027867157434286001159610272525620328529871647129556970640668872368758292625596207744804950092472126242715497723857441633869590407149937058565872776995772856328365097827505928736734949347338644338875775847864312323009138643215473495943044015890776830138582745925686898733764091235696072946257796953122206729370056054521346160473165235777069623185206766580645428618038649447634888868735398990574192244114979564916755013139934092361994963204250500844979120485539671143287063948450687054365254124040052736449648658673065861681884151629132844157332248209372803271026841494253982985951386395986724796318897794003028413011554046077096525349505377031220572472882028655658757202000279582622104642342958972533736440860489034000701630786088023268863322489570787681101915918698372726177103942464183373856337800346797337770182508812840628914286356535980625191126509460882606553170475329999586300728716947637005771402367087786584627873666579157322699488316502297597612651081665803776629254586515547759905646630126460060940688813333425051846637548866891499720745765852748211479549651843487468569426175175774870731637772466156505134865302905207412361329420049062415098427717831731676226838754725750629325810318739972918600409892375067315758834918063857796152648078673668970165942054829296132018047391971905444609591009986899149058566656569086996227630337639454214513698274974181126696421691110118198672021743048967614934001460799064215808508151163373956532876425748132758210213471950469091093202677255105032253541686101813233684556645169334028696837858353540725007071319987741029213682699513246790522306776204294747879894133897752696480493735461604169379017066184574233362227535912040548822442602778577004434245377284755677275400638000196433319807275790318723472984889789286494951306051299327986097120564051461370850761193705720135479567019765862278824190749467785040860068318574488051365203832761176430546866287062107825631975767536126540122413449387855559909899502316556816900192137030384964252736665655075331538157783245660853703457250801137342333309984004012045263882979050055452980658583873415829498315440996231807936388476838668390242046873937043828513156054186030847800776037216604684189603022876343877174721774076736104522425908450334011062690913779296870802231812831505490736034560457727482523703875883131334711737722981355148743239484983313980420022481176691115152747078368585770026222109195706795060947122013915947587471152235753783897419069153408832387361528560367705913611842217400840803056713134829754407409320018481728258336068656367624899855094346643580513454438634118183763706288301887144579098433339259319759313004599522862865200693412976329848326516356208433568717206498551881240732731118338140600792885192884671831874096166748235987648132888134597207368983327470144948378648351619301234555543404926930189052075869933268115886735783211360533479638990789743991347522249850349497402780312555077034554088284229072220093810482443114090264986687847346656721057666389438076070876411002345896609051227188702641594791912623781356948414147739248942984411451065942968478632494026602007333771334698417142908764051475043525319880263768440589823813122609898175204831602730127463371131344970205779051372482711822714789568955945169721472677829928229865675835249033640474769090964820859895149755746906698709503698604601340958285148977509534693502091419503377497089624314012165184227426963165570827243160522569006401923330961619548722458638221008294429737892137100199984898326875688245574665326226322404110152209003191734231542773489096543668689847293780825609789806432462363463266277867929599478128873097098085036198615732492414649737235147850092567214249308777603383362191060084131890790435446437927863677408469154160820307972584328427563000858233715331316771475574937154523062550089980232714981889101116900984888565678077042951772364019402495858695908983761835093789333370847941876672637336802310801112543347928389457487556178650542928002771257850031462869129860680731016830572867711586638701270769834312696797370877462739097530567522482819342426659275602891633172008998764317229012290271571938984831851478443445798440555509652028065275735782023317100323094509940005523073768293435541917087075173701492159377260471372834789122483509368214677704420992257261160250782375843002663751362893718221114191687567901618209471790843468144668833468168882666975021007846074295825342657343043789347682088583649988306739975582800841186131025406263301078061686276852621467186980052995691923119092877465390216238850347890128939502439815120440472244664378097436068121057362258581756650657220817587757832243783267926052633393574090377648270337001454775246026113600284967339220455447764555837449870598586181827256224609394821796146917402635652555128756708402424474570398867086005314500078398845781652610535068289835961546199262668593922599803256523894894889185909280180827083333375652431281880871368338459856016662069497848183271262692687455108434573720874489489349153409041506321989107467957305475446911616505704461442279701499552651990669089149781328083592861565167448831629240585511626094696392417906015888715555609078976557023404049784055604446372249387207111010283504773901509968464096686315413636350984173201718883346014169411694211835175491175267267814941643157537904821436445583370471120126253483530363897117451402828033897996773868601633800152114706415447728788343128640436063325317102328320984783037076344844559394800135149699289198532663961033758668294551693292637167179104932075440708218341281657654325100727348495959352804208949541724280195780052928609652648890966448982934247647642185333282237311555299571382158336718702836312049807399584864990088183547200098663030457722885666548019932732158585555834475231285982067623207285150404947853843709086675478301055071860459322678057132583715573976233694918201608938248660744111992478180360416493631899008843453809117933673977658873105249119005439295307128752262721862880108649802131979954809562295564886639677809708812237659465151607023145983247228569166761964662847626859315890424093386203117249634058425139152288605496263107353498068681393872467414898374647918503301015302450050250812284314258952941281779456106523312689807509625140509301269281038554028978787095243621572933535088709604881901929168995127630313257703264005881477309258551191233727084372839980276338155810087613019764013409165325219498317117072676904256486506581217636322902218131153137372031730095898574253507424327566473291508693995624930565861788114653453520409063018999846306660760342934765141744245062589518071860355552149190879164376634575061115719186905831480917660191918435420818717078011069530571045845813622098823924260497455949729066646970843582399377760064702004413836255647565064945064354285971925757796614766690639631051011859781575927627351541112775573985931791807871394911383689913451466205386096322801184521319677281237400045265664541968932588743879178877620296623642330702506140132926993838694459253275296503823197903546570872437609339505087310233491192975350805229824825804814426905974446849513841945134635671821862052867821494881706894455591505838363333038589547682710708070781054884580996072326557180727441794537882057519790389288489485323886144057419702456099647175523503866971784536572133997090460434713026278186699075517040325225411649311925794702623385499502450754932006745276191344742899600277025202122737577687988422560384845269340149531459644205740412549274623449436186389288000819335949493743862848817466752284194524817250091381825759322677706369589643533914542667631584904782794508924109722469901220434061701613563195974966785049815691676401678089377174067034676031632059777797840405580450314043469141424784846423216649419677731446869463637040576973940950239561763040322074308933951809187513949592105979891829403984186141173764489509917833267883158931233141465501130950168962298158691777236893914465783204981532227026223765111949220617691630261009979366869410501884949474834790729426913865770812871337625431289736666026618223777236883316781792995377495467982862796985393865399932327206964710895262256703190566674325070892237237840111303861890071875104487640954189313411516814859205908201178239858960270293858750136927723304220281893746116716641668840729728172474475366826964072975290801840581342824736370231136799126252848267497067518628761900315676132722143431016197062114326308131064313250409572789879593376822117366789865786697861725897611780250226976187110079844163187277932894417869188196077057747010945878356384665198243556725737908341517163982449478223552457048993186810999821130506964532694545063709492674907795434153581831262614169207360911993417254491689942033176128318009760772734839270504448483485611391697350351191567025237166529185347422674080301132194440343920964483204418347683422983121604802540630463838266524372788493667248046895385227990647175433537665198373077299471332458253413412706440531196440797391009563130344761042413016898649121355351108934889089769610416163734248500466775262329858885276661019331380641711196781780373314877177947594258571364278916655514958222435815167800980743849884714235400660411608047328572742504951295910103299614526670667966475397034584669195583821124528949987668813697769953932327451565211244542996829885198818589836039678722671284919330509004781767916606473469161321139587329088272593477219353530817420958353523661970462405588958525325754825140739243576633521821296780324113223635805028890431477393236048536666406115751383014759362050625819102125328726566113326652234503238276367540051319555820561163575365106340019204249413360415420852621052590801876335140596472732806015157472447101170450058750727838891740109074921440395820929728286671959437531720850844025451099239861590260554745905148983991123127081963950750361652821799772494865983491967215685952987036157078304235647147365294484738348351862897997191872897049387700206103305210986996162254741834211509426084023861359829600629096675401026768316300142149156580678446909474664513728584894417637967897827139278093140275919549747020187288639017136221379360929383195899465941996967998349316998820833056707307629674132038036249939459188977257262050501416284589212270325238973985928972378757886625093187716806118629063541031642175124270277814452720224164024828532297555507233552029770897598942937311188792130980248765786097310609145457709431119411756428178387183580045792867796303604551419756829718472088603474397699460479597495815236507039201839678233611194458654181698029400140481462771618091627521756707370155229763419728409416559486231900401593785911145445558043809914369508811475122069370697715257465931796023183139841381341035668209823718405938608929429205656739639936836935411985942891534385119398975889707677910676407913605312735405444004378606410085745570946230496257497107008975473536816451846685307414080398901504472053454042664800879683655219715386293051565161099806568315546440886378106461860005050495048327593940846211218780697506409993066872484119987063656470053918409652411047681105705044018729673531035452243521715912167187036533196837240132095553286524347438476199338997519997540115093323568794903012631037861999444515990935284161542281289590142982059270669605476036623295739590452806992103334805845822718314176962384002888122788575409120736687848133966551828709309236725183981225040500548126955302331677067176334110603142054220438119049998358492927306922181242427965157565769116961074909192515735668972606073431055929538153811131140697079458098693474949380354007472044165382667560827849548019798933592045273571761188456616244802358762234041113794688091470198377387512222689219060478244390426937020555432626003933685711516300486886199087179332641782091145934612517201212559852592055448531702714352166130957141646442234819369143169141811014500031890073420245612118876362385476618194542185544590781007788688300257577621957378961408126082864132967044776173989484973326460768865068827462724496345524956587171716208947668245438133146432818708696300257021640257794020934138481120864126021186751112402023686642319925379546490498692933199847532127658348332088855723638760392232921308866875854329854997474807014069465295609638100030694744904259582797269378101777173237920922647995210255190802118949581233685018982645576668285839764158506790380015811258763247178870043899827076837750201010910321149224278949860582535621075846675420591167080280015237912449905104402588106509071172425773176944362211523612699931858434764643188658197884922188348825922153838940989034726447024398557461443203490695128507943411834481256629621195062142726726787267970941810782147692312188799669985843467276013514041369557299676129230470369648593448336690624617772263193833852664235765632987213853946694132200771080227058356310534405847825526233699529244707320206251192550117026436520483433969786820936045502536188669616045204384137196557481369889346020605435473483036375766732854925989123477596813221340462219609997044741301126899581174133239332115458387671740774996992698853291287122667031501382633796826781496003906332676258475248982265913476278352696428935157466736590220058902522177415214717171337027681395852998918794441878018569615662186188570145231995059756228348995419225064758218370570026518457596064731874568162743147352616173076353114111077141467952631857160957249294350211558926606462606780916545784740789651024121651173307305913151086468537699979106787042775175330170139686378315153045969438841603257463017523354089909379138430765371944995432479974445890074241473971593631667441338897188677155692340390628808960221360833382553860615434189100600335878441345042047442413575819548777019825343215943919017440683416994259839558236234556662612400921941766106532807442679813712243747649331701696512422859260308858234729835689283674819250872669280913374503502774757001855459229032966034683476022849219184535573810581536045020606312794139755001805357393566805333231666737719608536925106058081527196399536194872060447239608370892832992015833471386883125870221810768844321903577758614300140326256376247699974826930486570237272210048930712053399767869380380494840119995955402194868040725946503831963974485899963198903908340163801142963029946770033776954996860969212276021230344422260816995524116805450938337177754173839674594786901762398162719715238598157916961931666123796612330866643898249224756128358381283147667441874227941209868423716249019803569116725057597816435084441797817998519685453494189957831435977067782456950734370485255200617178562531919270529723609589244722818941919571674710665641947097959782079777916118223356396034855534430295979890491828204663812319927571583959766173160155289749919337267206471121419777615783170458142063123808072254286280254412806527941820086898921710689741410415818854186934927638084727076452676093464212791023518533236071125330071625244278312775518942110232598274917530216097038419857117459793460793197001279235670410141145262544663521141958197580894647321944756018329078076767958166358505093702641788185273981104331585604698584043423606435121832000782863277797046763825343492792297633553721993202758752558449511562602598677293802884208908354170914970735123029238990552690019086779877147131394667359413159637200024783195066765361181889882139061405885264968139080949026351924463999669957915667228527753869358287870082901682938151172597630908217008869303051603634711376085658666854225412330291614747774762327846325690593859671009162532855447120223631146586490252349809407678852942697710609638435527576968855470333468460500557834817837164469329717469738112056131482815073136327449721508513808333156529163757590597747416923069246908578101518415414075440996512182770870602186884814960432470986600001886039415693102626260345146739144584317947421267551540033351155385065689773863661511015757939806816922951743899216606127959918806308729068149692892046198045943287681428918928174914163009139645088890206460775654794450693410405938655726061939768651708877467353123459888299914991364563919350961537087776726899638718110715875808321619556864861025382530869457729950111505633057745394561674359565889181309864322082421574918155703208613469973059727005477967168491399434973827030135730299226688261941742061057352587239446646115225292342831394695142387708812767941251261788866730392008289207239524471399089157731338210810167590681606468189421368445445018683594330375458449131077787690345545591474016125244741746526009504915999264595459934212358759081342747816151789879332344304379912775008383262424800947662783344171926907375412528522170424807060437109482300283206275895144321036558824272466837195833563904841416279300693598055305865784318326703916275378432778107822112615831244668480607633289961093857066380989261872039190433051863691225244629193369454403268169990352063444641643855770217689815857675833391375867243943072146351658492085386558129826519175387109764835229628863150234197758207218555831670772465038122281080720559970722680205924812546995315934615103042096808471899869721634197133938899859463077888689616556763691056575962770405518604946629170110502698020639502691407638750334612150344878555211297993663187960530926833506584213471836221310461147428688712469636575881493086289416306158683050097344018300669587078810785845993772129084873133245849253796512340658407110602573157317637207359450685767918617127000454360037007015161329611843776649887921749347615814254808847519749719524268668406287724343063654125555325475946572262258668366209025990675026178730452659110381581049336205784577578959735448073098248231972841173939016625349792825765073713006106479123111989794091519444634041906413563811919826736438120729279590323397433027215299481404216832221861141386875168510689548001744518204433129828938429771321064543295965645245739206479297378005357807674043771295992800602877915458822245023358896696801725809572959525375861947878004665688375646124071184349274630331802237401991460688630186127132516649187426162758521054512656496199072994619178642677992703510791290169237695148784497675588867824410281879064172796856792043829255418852232066928580441155263781659457581490893112178583822018746697627747446959558331865889676865338391206406168482519734868547424830110882979976116093339782303255500254928284168298008598454173691092084783901259559940318864785459728556990112447041290527731816880989393594277611973906956051866087298133504480210544649865054230084903143315934154313007809536112912591738961962707203999253565524126722040412885974983520368676865927339980249146279326606477722140067431402416219386370866915143721611449984867242749015815512235963238561130273407360283612465007680995597861854370565618634230994698439851563624575184457939929426205461821188836566171959239052676575328314282680057451658774900567365577901026448151499133064329488871471454829377218767386055911447986925218977415627127900992863916250461907640277324230758350041737896832217866598291817547583503380092589496741241439910356998716710441507114212605911292910783450642228096023982547789657977489221898340854136247137740734667379471020975285621697209337230460916402149274522981278047716939191641091881639658187300321240558442739257282775252871201852114813413833621443827702806161139323963454566435715742447798895710827997765533409941482034226395321911012429484818698881193457373453164295100249858692762629240678365306854679912888107889628567700182272384531347711508633910509585394148613416237034740616425850694824735043896348921733103374181454054841576437847566074506929356336551693732513095001567774776234845684223658855257439404458452469557129594712774530229389618493050998010265135638534791264037069897617431023565472515180136963610540289592619207926256307838417564155400900131078551033866213142164587845554247542201989939416254261462978344577821110297252186037664090210888500146134368809951258924593403046663486576633717837763070549239196796963030334337715210643086673448765746306354223598778010782701758194310417695902724438925248925466883237166689336308934041711551627290797889177041799982243292704865057689807086731334368516308592884164059059250745759345086234475985106494639321597947323267920883125343901654306997946895772254294625668628212522605153781035034176663543268557869189529132435848560355813824766616548652036181468601688426837521050550041320562793497526591089991563020248528389646609439144746394762189253431723281028289547513662279744179202241194036893558179421818510220708602803297241492756070545315092591718424872578398699923102620795325562487279818479976047948065561726223793061779302358589571629844039784090406045185848862882729925677247429434160085115663113500578711577423501279168577732454926756776985847083321847544902713149061296127271279193350940899874211075547195326088156720662347993907866012205238019561678472380166348746976017843871554834459532793688561895127104353462926514255732271639889521519831695659683354715883569129188337489342951467255770867209436348592762677867612332376969682558640066078199248012957205828715603417238252549321839019449243198659334709171002664507784783566733796346414342013217581407433415956562956334109498240255605110171046181120424461771588841369145305390707352939865728050354347492619405284595464626232176136426783469727692725977194992299094486258205928457645535819947650670665492937331983922383565015555874776583258144523464076079575673139475820867145692725591178244668154267306884566152831547018098154030489537096324139182162343081689531650377902022520031868868111883307732586880772557868702348263882909480098019988163029494173863431888100105589812270240672956169460793434742518367343326516439682439984585084135965374431982659496635707979080976411562452407123746732316001998756779535702514399324181416428340708701697152962089139650330494194062813398981270828655034015071905638765867885271414425769286084434950215738262974824200726683399434377903737098460606898386531022440073224440951907454016785064251671370443733360661893967199676407604034378183850027237212823405017080687932992403377647489484509097777034834430410897428358950765129347007251042421624162534770293508951585315225867802619646105864065989739362955383093964545828065542783404617009379319475787687275216629574152240803540457855009469405671874111200121748758850176538165555691654292659399523613777540413203073913659936052244164202521336357537028115867261469040379560060340071191062047504579412192440666942811469388248948459616050286351302066824934174355221548545543507508546797668425694399874036221073259348559010207050450154710096426254143939844328260959665039831627604063559616375978701425828928712142243865675252714607585296171248108672754482081153042094303592926112847208436984954340783507442148080210102879148270434399100578353908894535518349584590900511882169976250231225749150086184975396695694544385592292036275131600702338912702820765818393482637509013850522310112072197962287021555246998932454205199793781353006160222320520336318902273382416407770994116463732421288551126058661120594345498460205474184970348370452939197482227254204009991807770804479815952959145463143955768505042907241181066762728178934989618542684128105883305036178646669174771468943528295646910056280498988005141625939564095939361587394357437417900966713877415565852052708434430175718068545222029147794042136606111922447512923986342545681451455398294731282100587009667667620671476933165761065122148311004348955455312439758330778772456788039542083705397094744384235219651522462409313805748668483453435905104582171303134539822553895509475490507436471036168398655746402924726493264623705497720662768998511539736457692593386587050039729903805144989771775672616909619147492953263216368317111337154114511826408495108231937697049456617714063908082418651464600798797114402552908466320914189762990496951170149036379398596139280236007756647905973832649093066295833445797878008767000035496060132734272101724299183542148465231716789719896806107397221476478931218662512218555763979244456856800737620265807087774403197861529134882340127641999475704005466824437949274648441860444302905982030828534943254374390685875760008899805898328743984577024486676804809313808511060066036758990560275016628651871179668234676972732375386911219207340233078016984298587077821972130302648951429584012721890177348508356504651603336866391819799992653198426198590162328916884480193586535852711798422701111798770766544891342621852307957689079289812188432607806846887477672058770384255215549218224113370395906670007374167609447161414702710993543169745743145709793877023866734572345615663449549285723761555859933306219318307301652209253668360172832531183287660677271196801802543406345045206263370333199232020967549694747477562487522613907081740075356313336439563485264149561501914039272993367274678005758952206153730846491181693866506562597115093876840019704374313008202868108236609482091579023791387774280331073787612038739335360773019768344304768318585050698271163718455049042145749757979058041086476374430008341855964965682484704749558724363996504295323474729301811210473617423236329547043249656765236691263447175634791990046305027883689087803454834865631165919860578751251376961492765336461582910272971930720317462559294278452515686267225891931086375696973790900247171899935631764771333181161133154016283498739173147920049304647760362878413306734097924015958346924796964847031180372121508364960836883308864148898418117743524582365048109384082715776038173021390126633660720718124499105252674079944319771428840670905181073797630264647812126748441036526052266510466027744207515976071360263698968319924602747374957108586670533714343900994690947151641633604590585987829587156378557038091685175458508847588126149819363125362920887088412919641771109025233586863471595169558709354755225530865876011751437604431576789763427463008456430219616388740429555217483354351354269897348687061126149180925178395956430472581207184364617851786388859684787807922319631239659858813441751927748680232658009345370784128109941487322943890951272791923611856819970183678259442900821921397480570258211203748188737250039228364118975961691289044132335655440744452684887706975873227453680928857431760773990699129990549634456320055224478710711472836322789880776143096846225494095497821460633829399207199174361036905439427123314929110153182705984603017942594686644108573971925885206760349907526619383184806245661609967635187599262885745508769623628040821344036051258433794199685247914294955860385840348000034294588566299209887813260015494242472308105316990038081799767823896673732206291738282272225673790301131368003952022872590815009961847375189630221847033386197409372679470319520571369101789306039129210118888660674328933355738441748253325328819863853018073417708846303911987985955089366533038713323787658535084035127082210094604000996904673651753174706554627964697232000296265068379886338181619764770349685865809997645689311277857071117357923851421770200796946443932259050793514190334486124269812171707311171007236805129025569703613617778798947585742273856388070122941384208655266197334860977938781839716459598440487683790835903954579778603508969170362149993075445106326123821414651903413250198430191205983831705805357168268089530545709087084328722261253734245104293764055661122762698142598098927391440944740151435412396603270551578073682281051687184004574847741318149933100391427557847356250781647800811115987324141494708706139812686602503148205716317165145241860292562599959422468627627049522683376866550723726249550974714281648506798701503305566335182213307004290225397841584925410575511727810210760051564493107108722998843245145187751949550013512816543021420030506340224719517170627493035725745636159481434315356936203865271987102855583162850133693120481140615133671837570797866221024905882177093297085352945569508369129856762994414326202416956957990304040598579774163891785110602827309060323608708318372566574627926511842374260864804187736114080049220017667365696260543087609930547647455662131938183132742992720489573685838764014890581728957874652476794745869331637959147137074606357685586699663574560436698638978969097542068001726965869247803438060763898510806807359708579956987996245384205961576455180357458916159060878188341941073748297994802416613831760103212203490072687286644448909050595869419366781060347328789873295261842058896977152677587339606507764013892093476245194436569106746867784766138974092949930654738626670458131558137199019515474231276439153130299045332257719811207526032937713090076513166312701856865439671126131327465547812076973801156286303043763585047906912632792981021746886820046495197983730144120175663361483977878785236504907660912410730709767097742170134633167677656182700026211031031416025198595156021345919244895798717101371443077505257714667029953497238576639129977530823632511987632465319077071200219579975422922746846236430887863577692391377955677359939529477160185298913705242711377640062069967591062506484463265477555315967781981222863206281530623671930625661761490396670389206882209653499380106623103885502759725637129929780453662237058342367080310999664474106018609580826645289875683708131286423582862308853404881943389177155846099112456202263879213987230470408936508365000898626622217637786791880421971490468756765086881387487267730976940008582343521718774242953530773750246886279530173423666899578817053394204636477617282518015543400201372179481122787165172354287369661677469681291926946697417252730244651045686893523056639176531009664742918412084058632510757336492857239300469380840060320761447683684867192075449416960956373291319624199820387748325287726638148888566598837305569699186462062869321304564090687747183744665013116090068747815918573001623527681349937013336366297934916109766583212186456039507346751386460171711202828234061404222239818903557337205068979819894389826370523990182096137571395260931609514572110945427192863176907857111644283056596520966685777705248894715334102008993978528026577156658941666512297458034972736844761087972302510310776315906974883051247119072269143833132983036934230618185961688592374504372234980053368918789500534530989316616685719687958929891194910073644871982963152705112215233824772967325300109141591238950267759016670999194522534824535131728421504021581609115180216618541283767508286078522497246891788702189367042160131081497104656305198447563237546793186079146566054006213204051703339799707652000147878889127130490679177795125213293140257093296541421248159793916198147767605512383705424007791661193379227428121959576856696551087337957086537391546042722110271609227256885479779661402393575013671868317980045259392794627461406148668495771573150513822663546264147498930552987342176771487034741335930113984396309697511316799539024244520916721087015701131927738887444038663630999516376722617334300281444505667415553030977903672943401399749033118922966150866189167104950126370621392804923842379223390088546956343395631054054261214102026619818110439044756536486393032154520853902243683398130103759679352690313834700557630225484867042332292653968315223468894038048023900991377271980958158077860330466482629038326841902474612967453162463882672643475243137595185647453885956481911075248582495345474099780138865961476747903871882253867930118370102142745418681184159260609861986502258539575789537107506725771213576918035402198826316660675325248724277685320772587243046295996198752729804440328765925075557705751043702839839924279057610504571293075901957867293716723385119918917684448647138363024849072670601089917550429377349241949364668865948679856505185439626664544299160979079953579119790526206810346193824763884263379822783169660097199933994145328071173864883396622339561607749766982121474989660554820222409943684931970735797200896800260097408489773382928598219860946223015133483908016713734723848773069200909597663554589470763601542991399245358477200143852818326916154258639985644933856080341020457483888701344976767454784627103720456182858463366411405821971192556779901784435987270764226211645345295445894847795093653378143506078792208955608778765887793654529240663620499275565680348327726491775438319376971242665830224720670645355083947653379728926514160508754129279800901416335101109756887219047556868034458697032840281425594765573383810759377258185697359158648085166063514541856643149492393654449930639803044133183334004530700649780523576020702688059766928976754312528519830549929810946145923306572055958912642037495681382671426843284404221700543139706941659049515725617407256339440284376855390177286313334720739326227561745067968102724775749023202501759839246383572197129856812891862830672252950052232845754830289710338552243105326456844090585789624851772753523112557296181292750140391010423011101755805447893172906738865619680461739964113623863418058914574178096576007563730589082109918052788710416554543153350144958588578183850122748557910098578989053342708311403081409813721855719667119189729267605406652277502806099170986136796760335784366245851964433236624486313559048341236420772313925032796931127255381907467324192690636783526280645247225042448062998452598664362849478389605453264320728951853177656249167930721113623058023101009232586147722041005676907536846230642478761615485888305343950151864037842842215856869323650056631659069045925132783531498332038413337654365053419256556067666961761766537816493356770286089668030429905376273596092219128329410855552989602296041098835666821458808423845239561249191159427129882197915688539210165482084363545150132286201319078350180686682371445566034427452053831672344576070706891430461644517254157173479229783201867733383510983800704822937051872373706797358588610109430776238850898583378602869687597637087415062284210539601552138139593624531081858513652144284998207286496103960567344961507384572712582280101146574860693213144323958608208427017795084453217937829911105235191880951845150569728324876907960810614293964684343564287087375356426953752957662096383488157383819037873716626828219489136741171607425086491192149570667752313753173492535344325587947296739554910043349148553886374402581335711392686057717531882607249764499738723535662942917044241366898798482282241903548077270312977495710460579342086862859105259421193307713054032375640859934515530308199334660135945055265408695684346991193633781397351968544354832583481878327053923168762364492674449523115999083571423761573614103147147968815084400079486699153459420468803683292178365706762147286043787109065761436726494217039054302987644134357824031989602710366861835306810085714246937743318597773431916684966966885552637159580939808022236969111449616213828300268585011018304516625638500730950986091526844534449455116023646633574549023851618884096996769539661302426766530694180887501697195108988200052620513733075146691940290623159739145705400597702470918018497192521411314046266072341492134935059664922728226658282333248242081949736457190510638065006974391887964128078096966949582439351165948625755331102879993177183156946545179213354005687699709801455035604233690129608528253303189998177563086830616165716218275514110340666819358989268576394781452102997841087989639653644721521615700982111739756967727790821575726958708839136501921575526614994829912214095092737045642025981921735934526235384076206024760869470015143485125486927414957566676180302836915097355052375361264347117969690288073572177026461317153221388945971198236869191032795091842502718117302539411258013915539622171375131762274500282439551962321611624837284493319289986247626842479907688313550716942470895826289979801534868521201257135766713264278284472007343124423988305099619919144667710128092919213189200753847641957321500191396807442445051621992212633239204712805995557167970362704105595587504542350320982728745903634956814645300020754465282028049759144105119167032122121867011666939853720005350177245854313815264665428688321893157348063950200901265855439025574293847186308205359205587989281273677049808531370588842020779708260168984558035355202915231528308199007456016813488914182628868483384606923375816798994638827359004760856150402115502094697438851367794500861094901720563887502901633374035704559019232589661036745581216803063853923506055725041068552667589542398544762409754013745401313539417432372453153773798675385368038020189323389126750128950828903273336777235266446220620475096165053736987176453236490531207197094520818589447040453726816727998409371587793303209244873831995115738244976096752817270143953532949240757562877113723775578733814150807942024107243196022056693810394215554253738117962507620123361600468195693686108049539087290482250759060720473407148859357625478458368797679785794844336683755676712231405461483987940962302444888606682154283984114572832513409174287345812751591722661007503030482065633313358691029740643568113182773128834940018648976500673357882194055649157956653690649677683872789426728801532343371681556106865677004318464026743286940717057520115785901988070319278256759249249681530592257787441656692567882573434657489531168674498185294161995240320841867382993635332689949577907965998891033932373859267559029032436558527448001528605591047681905244888444987794333488224771890023813508586890024143108276647816352103751957614449290021320655372990712314261300164438937017222352000602826468417381779874016459686347210590719942563562364391072694291913901120102809571720051652638377921405408499056290792396372222469044395846288770894769894147718511842797672343130320332886260032921290084347552447804663726186254059538436794474822365853055019105680673978256332580985708277828530505327048495830723474475792603090275919531370966645443662298535739226968897485434363813440552728428337041089883322056926832108609116048307572463339042131843578892265763265280483697456787942925458090231508813689799831745048646442637667486036162935076201590252512998247902498018346788451925002589891429628826384485888379241444270496840747920355130906847746281108398880129819747753434814060071073970167622702348876694166889940090807578826575592207458069003952349497151617044286411414549809893794463977605572447693987048756139967406528791732008147544387961983101842561247846287698089957467511850972600855731468450419074225401641678839266309635654929230272016367881111834933645768915115728240042414114950156717248532771492566391163121099219555881814807731104246263111152680693810021331062188857243415525421187126947138421208608222670508062365438169549098521257976884143522602066044260085608742770371226405528423470588435127882169631863862204243514980000282655942952646188627418309327256698271097693246124670806811954017836127354455029924216587632380238246242109692469094244917980554772472267353547026589198628784904004354851630292532055800730997301432989216400048806195541862343262268890860808486137509707262953408813472539022387396141417723145826160143941839178971969755359747076513887827345540186065237975556883939805253025874572666041009759697909096651307158155497390248694026653414862529211078770488372952699268043771399697112277480535167419291286772967120330875776795381628457958891801197172204782811023077956960174119543168523920142469938027536355911180672521688741483697850154661043209756042510336112087475284966718893779656644946080330473322263580749998575653564781305071753647608186242833000696174457864522492914323732780194278153360982707903091237628872735946191774371377942939255514026524271723280632878787130815673663536510000888364533146669489973345439684709444558931866127606959516461241661757495769990127645710271929598709426173847978621229522471085341244588838742924043111875721208609567003779548006458732143928342477921895316258776508832642104952476853727601728753378185589120686812669801995251264393858905826171953646256247064116386797797462239509324089889952726269336591387514314491951664001990384899582085570412620122916702660815516079133292593669204114973569036892171968019380358009554020393223618920302115821676180306738469026803183700603761153066253912322204041305691822475288447658760669685065589088065414617149521641789402118489364933890057697793077536211407979408224193133249570778536821564378045587088311064037847181897734105550518343721385777923300395518042082682623962259080813547450253930294430320753030075320171530890465869855339329516012626714812999793512092889705776161480140633112359527998767988150249434093061861359968161773741603279515520056167372412879718640183075098945260657275344735012084581071448341641034546458026326658565570653467075912567093084550850895329832452256956971926496542433754433425987996573311382023476595977478912954721294431468518319356797729222785195316313792430573626005352626154979183686131345849493437532055530638745495548152219803390956041269169328118336454913736830623963811903780494778035587486816159656687440973687431475353979595285243366204012058640844834568248123410075320499690271056693288477517438557674480123069143377145569208329713961482115568436261700531781523376739637639269257917758363090503133042283065337443373608335043610657756940113561042627896476493468913764419737741334119257688693540630816631371901304592494930912349242065676775054322263248342940893205574402077179899084308361838107333590857363558230543000220976891255420673297060118323491714040784333096201153302095914739748067108385519625665633533749853817449702048782786181730475217374317936355956633868105353731764537368389796916998484872438640575984407219742103481930046177777217730575498655080516023901887408195263689692710343333699937958870321432306656430189931294072348449413359175753214364308171898509782166725599097125366722727597741250332294430137987686773694343116264724280188768351303591494148064581846059928278926378038579387921645677356415185803224367747335128697052037823345006373204809831503147105007776657586445533948149061308851634410167023927428806511193744449351804377305121601201595863749823996259412982832423444603168808282771781445203072101623010856256759646413008568563501833643924562472170647074444078862425091427737050470254733664414236503526799418500736885472743338908121033737184806533885415247593045014738440803772858183728025097321890919916815604757077874208286473384917624742301731889068195358117098629465196039717073210737716755188886196568435430963895157895900158655765146935085932080911393279513198891858249284460061014432559459112324131106628727220837037415209206720729807835204500213585424474990993420331641875806319502178100875139443609552675130991599005755624108932750707972915806973017720143464257378236304656258661529613561523153379954304541126799275720363506931982053775574313046423884775463644011465279015322627268950512846607186335443136065224933355565943251091940286752773172098919255746857555798449640481316531101866139013937424035620781065429005044681157927256436915248854705476596917180055244882735204625395696838494829845221189010323359614448890509140812951293362482360073053837067747071916662878464757364724215666820662854201900586763929168148074007235463571821769367609065781773036315994010272351971511711843181878853470961500787727880873695164904794478744316946376684348055598831447863926768814113412558665201182796593328850331675066506373404094689962408499908819968008463285599679929715744924524879895245377207996298958216800495746368046927893731969383074345893261806675486652868033845115234408276712933155569458025292198017030520204252093902557998509617122298973578002213597389590308303329579887495571845758838772956247615177473188438234939785240056421771522073408906128911379128781252777058010819448609728344081521868997910775003469636618267966670024570245224371731466395316131292869955629318591254133162775136576148097038659108701612518050635799253309268789114770989047605492285392810041308767447305209293746936862213804864353470774514940003070059082519648214742256214274482101303002710170276310753065283143523073006335790103929692649217461396713194891948974381483006711543307795311877693909868707678320689085713660030643472944419826480565011307774461933859853753220967399788002161917836363632602668810881619749497106595472998634915240686488328943713712439337007714864748503533249234100805614875156518635324224572288517625684047507371799681686470128573148533788844909841148921626538871337266010114945814707490004205783221247391819493025308032541687015513868366752185295063988027009697132450895048862480906248899792570059838008755329655093500790116415692565913980020951153393464302685750300525168569581853070342448287386015918146745765111827091271849782184627889224544758538450396655346782525501487985499560390546743495979659338041230579969172084920692641663449281828747790652270489737495672785241822374317586106480644870312505509148404147932684647283620440014664964585100230069328833312609775875936267167188734367985828807844221008165038784891603588705836689351179654473369961231144165734035393058940285654730468372434111015056188255540677658099247619706753826188873204870715357375300412621422058739921309838424493544257080182326146241433532078663412288486963503977870648790643290876618499761416743048699064345849336188999943075723882182716692383885415410977157262135512053610008361899037466355711826773582553303700300957200372707409631506259168726941489481422326785121342736535249510717871563957750020177272175595559691518392921314509740318121720372941645342488849950195570395263115815190559021328835050673492781400270503011367372146090229677874404411730365169115549303991937361481823272013922850603027819676368572506108266575879431928495968527083182757159940623319403371105991339782735362628267399641166869548003219901567712666527460380568522559556942095875353149468320533743850625488217240678041690810810769405200948718932435351697145987413440849704478587144636766757198917343329830874405608585133736036566916762117811917921910927989435376094127644980623639189401541357228495345074878337531503783804958649194107981744758387853364036915506337345801846581630499772770985453278198627661446393153369236917357891485220512380031285507318214679742471033420484182202570837773556878881033814014848715801008647049022525842620268826784269874321175611276053802999030227041275879533939495837555475979647120624086423429022570651334908756313863432832806772863769147692723965175321900689286097138864365624271325028708894525891983844749831038712349150619472193741942602336404115576829742476104934875066537227303832633453798792757919475770756115715134093303309418288458924049668493912899084977742440657288177086571670096847532117770195744710955136758686791249712575510461967035536918900270995817977938325101766521683195975328476065401730532720064884472990767916062573742376019928617192801134542549449763418314383792844273399718159097572300236995210015231844879755766990561689846170721575325008997377164433779786505603883117444753549372126696499598580597400366324398538534138538746140710780929202697688984352554607534206641289757543941703914377690464994566691688772739708914408137060744857733458917782192761607607552746426816870875653786470633457189105022119152437924174052367552717801687297181873854676456078379114963687006904483950609721562076676908153209834040739109018721566271775245827912315296207972116231175765271525654680062226344274772864606121665677753477230851958094433122361267554077392713019200196721185304276077131900460117286976568034588907705434194503353850221343348982578997081391074219261079531349896222050818995471258093482410379921578369859072008516209525088929122562924003967927994200826610077177243549090934941822481664368554816910533274380275476970907694060048766733262149672434612759361650858569696026311646123052510006831524712409931518244565172558993979099455367638716078520808417573364908816936554387541482359570333930089505288878245825673786094580608430344780545339673672245740827310797231744441268528139031328511484155987999397504387971156769860227628981790753350383892814404175132116835780933147110760118516172779934115319015919674969963108477426994910876268731139806838413737960469634441584518144089944760720656432780589588672937310312565154326223448718855692768857638351253572115762615432661502110168507108817645899230036652158554649769800243851766578213970418787818345957163379506098825311667465525882384845844725259362021054527214369031995511178243625948001076965925498671636558082473777613108195995476747882283931503947175807377247124382345245149945439768759652018563834364614466916014316344655675042697648434095098898205992198156092141443065927785261433493069274980911971224453542893289249752450648800334571167553252188383777836805872718675831578819532985250305780052712220238773684446512342550339120192551670557406834689340426107330215888991888301624691765980662688781011599850928143698378019793818996550035106448452179887353131744114575316201763895988200051110165179293494672447102582800608950596814903617535322565186230071541516756260332890192040176896231813438130284870413186153921629385177571978717314392414173581961119318680357864070251021826054714616582413641753802578841081912195445328635920758096410036027270173953877522073860758429623742748937835420780537778278314763301210004726929152435841500802205019763757880564833646782044263380374811487317188923906022099132526747916755148798941035517756859375102274572080122420097322884585835560783704490172213009741661856866846742074084366558323617459374376098824332906115977188839064143757936007211387465952823748706527520261408139810994688510237547064504168106817800431027682611892591319224966186832584788930116064124707726288084838798308767754565014000272698188569780974444966345743518668362270765648824539727408637607524917254095240023879953894470088537285245105280728408078291491218966388109761627995501497589703663837272146725109401154596035792627690757923584940209489153822141361428652766401256935672472226459302416777386915293987852514541342036996725462339765139808257823523872765388418908696746451169180496800050468081067393205120501169472100543200835497864721904848432939831394890133757594765454127186432543478870829376009969017990603946064725546081903984582351184758213945455337114128934687280092416108896802335322350265213989706983441521387832624476466706702417941742532451700111588512584236011035132002952353332233660315766460836205031444639247977981245865986676006478460423600851700700620360886357851358694073122337867287263295442069912601737488771375395095911252424696590083598172979712589622355228063839934093593757440761495848857763965371747099620929145160749989629232287371214590466962479844951646144101611835162318457256809746355563859915257161857432002877571289647072055111564025919992704877838567570315060294634628407010887922835557403887389113310407501908035047503900483641012596618462270070921798764873367081578241904433431363490973500648780752212298534441851829503902860496287519233099894907652289284092944158729928295646769499890906805232836988404986430405178918563847373874813249299048965924998808160127341124282866344304975744855417520420409000240383230450025488572816064970330917748113408870227062708340815771065875911134646470435636420304183024138131005914107800743981625641927320699713003150257127183625216736951071731823519771903352994695790425369818674891608226017965677409973613788867615520701822776308552719395031227694501582483061484109744074733033970129407571810615836054800833089121143141238266676927199584362804080292395995968712640559148675772347111748041337710110845692952979763546899290275731424978393391051635298297092852714702277536022149724057144629814822102520718709988130320112321633282391821676819473898701951839143229727436615185434233913025541980905121306280483362057794521442780374790322822478844066644793963283083934772748168013078796665656687266463050986540932094745739229280099998301643108409420886299657567988573672303714613204666150964969678026939728555543888105420607829121700007179020995391507631115242792667369840742141376758807864067250438614135366342609118509955176503521573393474605529926774094407404544028291590600641085576647903774179996695325060860188217453800481389423186129174470207499466208719075300987572817758941455780829052391257740826873530718839956014619225285673913908382574894736661167482871291235096202906572636687551341846473030085747527474931023667392959669643537052004347566439516959997322124656235331986214785990586489901606939660364064191040013409724230152080833174178805136473444487090606938108813669819616189714903738875358676401327949275294745782129906047148281433990254423418102008198190253706942833258195180812196353496616557156826600618094206878129859755230557381995626694163474655300899228750848981324876526309471775427546742977048474240745080879433722035247046757291514348178666814731325404954390500904761463411335088466485998913622668562596797722685636390707773253336032531126267662116130196571072946547333804909328104822462349327020058713208790074427603646535800604576639641645125757037290198229553878811969173229204609770006073128578637010613211099700931332681161182282388219482312501372496565477585706800631093829590968024309567397416897433496806325813570715375125358416087021241944774685762764671957828980289796269470632619412077714840321781534236005771490776571101639329056680876808472346542152054900131145711762995786076660973966797883069110464294488460175836331956436914834061369783898971001376515415677621593970947857274272040940476115385497330523036505371277954836334498759619126823263913192855008482842307812899317199634165287281256079801616234846660953028704446301893943099683823225087231500032375033409337706790083348003507747216942229744743873239012639122074169579587812832748426399877595698038787782948829652520905616397754262393902527884786462295639222983856502205180159797554941010714093278562412052279053286597169071952939322013546410003402946927395436243667555426048197541176066104566345208134125424205413350493789727815475278848934218336026204097935197773011083935540813202297754889028016278276977077222193574252679483746310700432670919484043675060074645513392246416229441112363683976626902771574051308977007418782212013878734407953626980430306903087369069735634671480495297823426014488764876712903067310087422756491673098943909890018893153292988690879484091335306425836934840047202880719289254264366784081110316482591229541921258541167932569729984171763610842992620614028796161659655809975728556603084243406290617805968911180419387591500352288037706206817866994411554389719744424452131696780534726769205733294378633533795171371224775416128868050376944569270952623537079636917113130580745340582883973256206392275636879778504425284003821200474144253104847823809790146678550263705021957173574656419695688767516357292027860392852989749739004492964900809110945565789305432333900281576527161922103482907844926504470620537301726185222695660937675856698638622022620011378427930480421284723762499870634131805597639418752644005003753836367933459492829801997970361184991009349046480146505087553611616848271257609442014007680462866278167542606899753256458351188547694939538283485610227750346205333067689304572786723898579276045756753225665471113617010080287474681839856276066605885702174477063561954389025549582363418011433974506467950334054950576662495147127240201832718704718086186214435081200727087090993921594806938070161331606630094041379199290160116620221420333801265456848427070392953125581231465511238789768776682692513749584617637056366747387765751684653660503050155709194409064351486644178406952099239273215745303778667278699014928278130959745735836482967214681064631442714833414179689339240855343797704442303439969594061078840423553358573358334406812802337024064069460176200401884345060531845609602807218642916040049043100833528726232460885777653189997742461635701713890212556644708949391616444076894378505068222337563024747801505724586096584804073262813265825583265048438348691154228175545052204250036521608874524987289631148069945742066728717549346734432204308077846726508895237415740629348385954579227022088436322104280498066651158184723452074818895420706702432993135659331140858168423885066360054008126529627467110887379994842204341506309843789763853456925979484626424576207898730779641718935271997993173350043143825987557981567764089963337450840919877891520636882201736657986809241153672554868268383048440105530741462630722610811855847587108230490434213215399013354758573859172532637194924904615086518697628619735198375465742326890009873328272441450944395585302790131964753559132214542795934497746260505376757205814080874169698241214028727466302521500230315707246831845497124520303158777327076671366406712145423458206396159115258264403822803989725794428965318124946855730274964941048727791478024599874295614983802542929570138082679453411496022766673434659363529801350371008345774089232596364528666161287975174021483758182866557767128826726807489887182772606609784287233258626103444065873282180083699293369642931895396881963662393990946716023050319906417369641402248927714868923680089519832868997107901536588255152001299409908620739960804759979195259963984880452862415253550318660743553475129204087447140065358094048638076669988098072960488443175868173067168083112773365499873607022488012281002674294013266002849130654929633462758297792577453447931973269495060305466169285612985570825517664037262383865218535001598907525016728304814600391910436879430775190802251151891243169194803180684696873466082419225330913098696746593470109672100107957067329905692886800490686301395634633818050482668549661816160076272621508828310801400916508457299522987101862242035041681357031377941877791475324771165300566047990289759333724003412620434943785813352586416583981470743128761660234346772522970350525916745948232612159626570075738066233109005283481977643688709223821967097657354205570384155043907361488163226194221523797875173044332258039610368643888174122086744361328525550824307811852479930055967260732340167367550354656754194301237603996450632340640863380127107997421933654847801965560745288121366195416350315846978387259578066518696890470867003654015431509399470101499584792544873103787294796801208546236761310707883152915519178089265197896134489824740050999861229986332909316974550187329879192632534512145576692539398614810150990534094134727547502283912488776304733289516395755777680337870238506230679326836291537282722934818049727754804838369945441905794763745937501432777867234238506966678113708072480872227849839057029143688710004574083503346218269408736020478415571623930704066432687246849886549023901610667846694943723024717781243726835262574654271884338905442095570591998304204482840379103085652934614324890031182578332174013845777705155030807657945206680624148164516472123100176904747852776817331042342733134750875653664530889188477565166733872327501739269624046331642947515135010441941831193048174945483776221767833788514416364160895873499526241870393405128728172954973357679814574619028449836295609488179389655834530539980823921593345805199997019991950008037076486137513480774833263997746777271572525584566353005569008871385082577169874029214030222929747508434471630773891202884723116558967310056998166894960793650168033820630503956400221854779138950754457221816911767121203303600429659559363596825643794348226883417145044952994119227450957652463667078960686747792700794172637532384828779112571864681073938992331040558020576294937100851036252218183884979857124984809752407082756856093144411763835368448958035469679843296345215468004380320578676491574088264380757684141054057462062795312944386987163914218556330443461942453753767733955420656750914767547531934834797072898408286873706679481965970232279762241735600095721609612579935233903620463610324375093927129205434415156207741169308526941411538107787740321443434444719445369980264595554711243331583298318618668152683931463065709318382564346511942078343870642079687858910264565872607328105601603103890268910131436548104589288117568004816271199057916423765415263571583577369822633862902861633858750675443974101754962201393272689167119583438257655623199268304702563142703754644401987047623725624735082977172665149212593208707077226241984199223838612795461236979491412533170594223216302079470692759370817731764323845514260556824405108672527110307603894295293770691541645722005644433874500845997016181796292608464756899749610555479148152301483453128954435815599557268552565943730861184399955741663586650035834115752273157169738803951110383730243514710870899650054078323266918818103991708915523652190215351908347735563700659306821134975693090965863345603173799590848933801538753955413605714966795463920979735168031519985744251959730353200936349285086935686729490007247304383657189451826281198559410589637311169292006217691890137308756380861481370292738529313363434330185315067741392076859711598613116675001919343360630774036710987252902814805066337103494936680051639295804316456083730591304461886954339182503206836519670730504013557649170343628280409592673937989100686891950720003897788504266471922591784197114974164947940672665245737712530680671878913802127130433919279706957830691701447601295380160368160223737079054062674504491912955185774229457228369238579810811529087773772817940057171792652957901081760284360954048245359613292508596779763147702698755497296830384470517358866667290674780671050219567433695974863356146493876296196636070555797700948074714708355814595267303277609560691262262491485349423066858031598701179808628445836443727680815747331592393362752205589942693430047724696265159782565812433768275280210409663451114845952363608858660237470965814816064410408352460501245439038409496745385961805719619127109839274088606034542929720049228281301131071600231325889266149629627182326055177458395908576710308471050508292358803297239656081922984709073660211392528322444551991748963674573588334273465027051600597402529153883559528763210781336425262462404152557241934567553337806879422393089340649440094154733598574350112308901866267299150316802021294693011155442431210402525311024458262047923526668172726645436759861750621609141754275933347301507671904882511212945183929872944463956432119170474447332663750998933873356974041460644217828330121958556188472530114741780628832586513521987836026658172785031527009481841660130762926611063066045366357102199717444629593631584120502554649968276758400299618126465098098070283650798787128394410308191181908413696505090558258448748517231265925702575629593619660194400042053144787073230634930407999932763558095168483168061600393938160114213976711687866368881836671344394640290370564348598622932745664886279084587896485520741650801809998945074407063228283379535820502696940624580426937420079626104214870060600646049886159950805440633749988488255069906821637825415645000054646586445271905020724668886417499776934155019369110798795569233439220959992777317502297310742625298305264019792521175889882489016161469965184423565823904890017429927064707204567350398381161396923106415284377579482032332225948045142993089182053164275581894364518304993543227309339575519007161948254342706761702431109647032503045551589122718000917167283145226835241946846806445552584881729206502779325871148838292734223494913492586446178115832525526329968314552934206973615929460185696838963635422666314331767598988696903045097405422546419914595319303646106250321951972372241759293660446402782614077640452888136681619557215807761581393414026303287822880885922106583616236323909059237813649380910198969934365947517595567944907879754392910860569770797171166039723433605714154298462691503629287957946807235292852885546560332616485442774521322635301007490972435575308790445850430354561162859562118575053387783877118118640034571726090661287371455102105605798140359068379736114009684507302086957576080213542848270611268703986109711514468370226055835536767603202707665800724131536683512951766660311091518593332318426355841366840918411983215780192451793858275762132199035685150942558264025673339252481266677505569998405834169901230954875339204646231940701870297758904661360145548869709163780080027389467079632079291552759373744022321984430613341402813054245632273800844589006315512774340559418931434169359668342488141720451543356317010003646283900047762035245830640658179396744220860216220543201393477932902028164630175013798650801657699266401666351497424071641383708236686659671339862015983110501237597518989886260988361185028302963043469699595219377155865476253510473013772146358270532006198855126726315611695324495564736766596173378285751783093909408390925203200242662280859186557668686170633922412475737813246175944263071617625415769662198281607375314616110831698422858197896054146585490095067475082059716106270158308654228266154624551278900712502901712873629021889050118725848470753279502259366926227853469720605686819931932443701574741049847956625761403925836734906813423044271053128207834026722051665265305415190658426978551315222254518284886035630489377958320078761331838940647210330728526666317137028076989519866168117340516483829997293027281779594285306173614960800931908187523153828869291567254968018664161296709393330141013221332173074287432153679327876959643163199843892741330256985016730569284177772257327231586531099143512624061985046533578677845383990551197957025470242901313336660254492007810361892361378974062831156254316885502800821157563226670845573443739493328748288269181398058438256909702194425719730558290080926446539738563056656762572892902549718051387157153817790578571376148801678351340704962547959793008108995850507245092669017805580804835604762469218489048921451673647169095373875852629629357649861390046699176571007731042136930199896652266520753370595623042562957937440065513596178883096114773176352269009418226707965672525012711361855034192363542369184719329644720635499720241017575609997410228245036468681141743130814466704378477475299854529531925520717046676461090650050109068845612317348902282053844470288657341024022882194204350671049617433892282807984468642663813774509763676746571872957134680241252346853875878500683242680526687325304222832816954514642970715586675528279116990499757862536159298161797265441026457005111848774883886564616300139734145321136219858907115778206921199904014532954205843379602158220908271912182371821720056902093622554311717372378518662579707160168993935749865777746865728366732991632206022649066857213072169579489551166862909662452578706480118329650625339612646310773839253514026835254167824878628811107597882140120860433122184004165302041795148731976093298078642360702643056100110311578711974144197417063535309554574990076575421824932053968000421181523815202635775954152607044100811004564139926515162268124921581031905502638706767474778142879830615032785734836069670873459700638748688008283192991356209589623757654698103217082112480580399048084939756997970163128616435751577283409773561453697568232207647356156971521437655727600589182395845183455497298398285340242196347540140779413266917638922004038649050249470818805790783818296160572921506674095707032261635213219524331657252475715488626021321087580732670674117385577633622142781745812990693521914691862450958203027549170176302071739762013510019940445083025260239330847810224273431698134273251774744910505099710924659512648332610906503055993507920467042147304308982340256643104268810726580729193510501493246505949952371479504983909996233848810032282264106598367723037746931941604609159930608878600797496927533522969940219160640685706846776085093152951009898785654865580974981432627097994213583942754946514189806535002119709030154057385528932560600171277390779963105475410826174864646613359884881647508740892000009234549530371122297686196381355673580017190814288292838203545884637815860777251102349536505728879490532533381343180898267516145443936168540627709504896487033123885939246916773295622114163242114816824461330155408803607620120238852959620512070436786854255146039244764801852042217236991500518328555366496286093866996584475011431315646415286091078391329431640612834662072582175534273307983001921476061014436564454681596271362113228234589797493379520393154997372145671081152210538220704009246265494930959010167304806128445523172217668643513414252631836831476746103182966750405791669934831377426246104484767841069441514187637440417303196977208580729273249133825102772789988798413869961668049729901867372539126337261264750799719152968877786139798553340875787202370757629028879745433788013269504296780344528195604370691507948684132962181979757078965157402381217172692702299876187769031551864871267341595802208027913620703574072949798762948851759942758890815887182382976255994905161529911819399998360858383685673585066598717386739484812531703105162030756020441619158841314830849854204959032833320922574448373150741048872638131152867538777960176171672648039315142937307376120895691402366136396452108630057991766782836593589555945805028977586884321072982360581415191385167561262106735316539618117939617435738224613408892573557298322879409207401439452231802427906541644348159865810249821695974267982837791206994637449751538149961591404809855093722230316189101985550609599971749436809855250048786914286763521943092615761484729598870218121472938826999139830365419347230059691630541551108974615151847007910400896619830458287735501909514175661627777245331668442939513542408495847602044910666765775796151696405988029560114804121080449621457003147592927951597628949689945190926850243740990794535987289663973625124451880764842463884108972152029883973311615838038571051622496865229100555600021557908020316256164755884418130757511144301192300422074585928657194771233527830848387156684095823189105194866913686817500693197345810327818857913806298487406087961994347793135652640789912431638351943654480464689495423006778822477847745018143783909389839915805149374062181231793915932120670590013381130368998556332404878364077348662828440203091421569941604274314299520160127014637108394194861140867920550675891607858050111847859859489118162242987426209343484977154377637397277406403505926391790076678793947657440975909302266728341992753513760208501647307817451109199117152590118690325814855550187939556537082374598251521093089330169408923997003337905803151280382834039595451816425733523304760854079265289872912552596359684219443528929466154659258298346044003002512394998429206158918683321242471235312255630170698147170103013907824896866355442004590248286241727436233751037091355920073671385660715993248349646133466558434398880133313028731929853170718867323484687005107603656439734063520242837849247501656896295786719195221423862412391250467107421941477987433413752606630858001999262972251058224019034323055241460815675134798776489187614590345066241040340262830510160248226980144910580637945166596549018741264462786423134961561541583887180660180223075910196525718074163949422374170747462094794216639617026916215547052883518235679776669345476011216228894544159590490107183848828849424767038192479838014282325419448509495997145759193287605987414962742551083425877271114685519267256337223741044722902442424034390967778314122298303414741194962475053766175810889010898149961209388725279000291164628797507866805708083952421819169076988774691970064473208492571019180896416247397288319845826140811330087492767924830992391037460343381771751353776995962344850890515453660833470855079474953109793812860319800523507934325936176252981348905562135603804346734572944213148992266120264678786222476806854851481787990173987406708387784966725108785778650345723198656444326252270469646392313512992116839310802309042147273910606433960694764415618835402477594414511614283467829555310253398731013128126949798795713751836991817026432352268600435338395961266757811201893645072772292924155614416421293042108612306930730712070723541674927862742370295693379286768616832190769488666917715260539236622998408742375306643855540065014842518612632700648812519374410890375209528664920984273336252038140254324310448629978759844021054881980360079018849424567888379535862554228013436858300497418930689435629426864153002540137036196870061538353061216507811406067351707145181305306947308456824065045025256573369583060909992034902639242715251769783691723430625783395618636888917158452958068550053100913603916501640661009549557854373730323035168722163945099064453447104886809574204676336935360644099921146218272347815117748462602482740994666322202423292617683984670088780699654643885077559002286877491782265700059020355850539561159102058650454632884064758364036779494543701813706645911361411357189759431216548736711580510766564259165641381466085932228454493240263072846993081470002405100953936483078700880546244142074259360005451479094693328792624224629443546649259787113192465550032383707082160148679459423485289524636135221877433632359958548566827717765288884013235391803499640624565560349572428921450299189929899305593372300825833004213251260982294840538835469598388312027724164021989372644623902455565179105056312403704019264248297065317427458833371857467156796004946880510871647239253082516966563628688319442707615961374462583555353360791962408912223067668941800441072581671938069442839204515129050535870772803598803295823622308618686707864957862012887119877269556570278636339923497896028800047713031952531877122547502425908584676862877866705514583624583121309791944450949138598179333757317471175665052106165424768821078061946222279215738255769641459296120964834854984879967847377592096709378708623045237805664452669042826296110057677834050747999462710604182966867454130525131696825469142106815412179010073918064804863066582496826982765918107830990449038260594079926538503619359230006190459594729227201894767609533499230335428972132688559744820034751497045316238870442077287188264222880297096107456316397903785047616563272598191770669019700248738138179403055174834240450152469734647214984851598372039722347718501740165801660706136316779955608283202133677852970757867853727338246148030489859337160585989116593500084181944617998704012513103566215523537999962816591023979365001300778736175796213217144898708034234094321581115422846067723836799976739553327048204473606408011099371583058252920322796352346950834277925319943491620202951133497757482907204259576518319246181442747752552279608697296637186219380199403890838413263580027039396064977557591631989630169712486008391545819018793446665418146540714172349408858899985949770503890619448956861119773824933935807200720638972392038447555370406174054808911024957393423906409071191427482891101681919270265326125646946873606988827438056467269094020943333087561268511907345222970666638709597891277815151635547492664019385066765528386014191531184337816516362427042657344947507995746238599621368525643341239405004574501090343125713946015819612401213551963189352430858587679333081310980180772423890396196140819090121332435564522841289485718258987501532129979503567153774904900428936822192279598667143145713326222653848928676305986431056588883726792835290162124860008816991504763414876728511096933064390764555763267701390416487569612162447985243980686239320958062454980314189723102135405496404652424150884749688546516089018503321649706090042747923253891822956285789948760845944934140332611299454692119879231365452220269495408884270132654286775699971881885421275923676110911279018787129154255862279120273052685160531307638599405246360073969034608948700656076149781981073992173328168888206859585056862972417958109760173384087057579891805763826173575256237350746145895768283917516058124975989379710888850495244954856450349485450625617657075679580504811080042022542863790178062296374873741754966468164605886586935360587073964295669264760878424830472177385038200125414799744505149459657207207185016478457981389032769065881612705422902830585622579109816210346471235121600783231809149075088508335442522793420638848724077483842017625524192365516608202692855495601681735876685742457487885915468518478874193258160119412875813534152722046841426347585378563808175657725647007843178774856708671710069650987747834998773387988533998286981257393796131972287483961043629245236299460233301724742024125715523550206957826036392546732069759222335585821943602388665457693709885531390764848278904911213185665780781449121504940827772083477245290292175783666350766723098036666516489349214740667743901635971217752382842833919463153277560872092001909591870244731273970383576023119654057361305852138377070110998542782005602365160818873861174183047188709713540476254723507033747956041129409228790456913270050348954025679147926454914137386641147873370998072096135463931786098521920546693025232169883425294515032551047117570109836096615481541275951488669190358259037474708294070268536757282042161428439561479339681156456530619940340307127568329159494027799820056218345306695940792346377704636791635218062486042495703055230287878265680033066340610725222416362109087901480555800002349719964704728266439639756150154833140656620595069631950233229763305638052698314698025404541697446354742287755880040456526147374899590911025124568236405678001398463532918083337441974882724273424120308604506019822179741842699902731850323109382208565118556650980539960539602486866762434714603918634517177768449345565109636068753589762608535942319266052009856609529995139888746765603736334975340677865783476910583721825586666219862296374512294912119210199229460378887602793282321688952886246649767534696163002512756568267655226460231301430218105481347775279595284093393097480658078269721404701634987233387530732829697405388390008554913114198679896251711546181081462697062207410683758759364743325441667242324858618126149269119600740851415293322955684530934756558654479013788157133933630618213403084922759277556128792813920324232571690195164770363497913733830609581402315301426930506508379555230168799670186381662243591656636694507186256164273097012906404951761544255809330287241622705472783284345806163352728436082964670867468375332277778252077764320887970080480128491155108538710313437751610865369111705746426550380631242813074959738130480986377980627126589190895522320645444586333062345241108898824487633245714171061056475976633497350850959986055606598107783003153732448046622282985501134615726596446110641885076726596041966815705847297200623924141747583874725211532282080111958833257417001508387001959802474842076947056602919726325140639261069527892242630514369884593724724423979465580760697145513418517031178992818041005238329506699026604817100721236705096347216308536005323270122953203992306012562092631969832921246280705265150893938734688368642996709705179140490896244021897530514475598455394140394081455529418753281763057979384811014839164986891151924227075721536433599766298736595059189025175264004021644375456963976734604971384305504169173604316310002199489200509413814270555916671247950053681401797875551354011389164411519708910333102784301625754052405800004912122101125901540077347072384110792309903800590752833572363873339323919492618500297478594185087854578554776217606025763741345100637179680184970397532445834858865275792749088402208578577483045754134386354436658548051148468348884259567464476482173162220722267431047950365071351909713408574205769535724491604936863543386848592735658375660100770499886332892407708961062505129805385197998307526806472746192011663656109701203848177530272171333037203170263788219728682641952450972406904429728737502088162115474512145850185081855561702477225584061713267869181860146375829391854896665683468866898242869248888173035398365002986102462343806777805467090687391327921071593889126236923572411614352497179447880200781155731936757183749463508925846985031901986123006312125081630967611374560681680711128745307961774174678708589909009218679439887446910933426475893460572871166107223780927785599866105397282037663036119812098740428407319351739503952242856310828856868572506080459018640459094425988233286998115122103727921003411652017105521652486599245435215874200736982377312511969054139227085943085551664994054051575295294174915211142192445821146301770128274599882947799707282460842163279030683709408397132370349118212314041742143959839327580218695998843195837807538143592035033824189325455048348045413578522085991867041817058065577008493134383702123464037043343924258094477121508712155313257019795392786186127154715397814490414334216179514913754537083595283909888703017912360328983328314969952894496702532823357138777720079857320751910706247740571431767743216387914274471056228137454380129840510917065858887979471087809999857664808205510894688251590655318132563133119449860100581682168391883943972576717399792942764433107222232177074301532712004549505338450083915615918053284765140351117313256898919657373787650414967990492105853253612535250641598735452383040545786401829076793536951956187990687307780475938658202280294479516947440153181853098352535524663109468541697638825189446062429821112153801202004542790225659526143970884638673734687495592891109113308285274487934281514440003104573358429561971462800177997931037047488689661893466233879653809140590633165597941397446716236333157649558990446355795927433903471107735845806075621231768341505648852896160401757478729718005803567397589291023822451839627930550331321835651373107538183956909198767962996749777083256828476307390467598293860385887547530803890826614226654193328410156788651440752898221805840036018687185745277702387209475860930327404072423236370703872961279608580160464170265162416935812610131968753641352296778318474907527506093726576051466478051316228715161263667426609942419888349228697729523662051368673790610752109902568652714669023269092131120712999539778998886155093695758671244191174073600777455474717313135232139714274588521676091949909187093595438180414908674126935199988443103813789505662113253794956405150995970292805375862685660082381532968863826286229879831235408277961988047953023577803989174359301580086533539228479748212027814524077371959433703489893734909732048889349987398477927139289270599262106894051590100728433249769930889163041756973540359135563101563844332363190563011119458341822567468818691203042717316572352782945351015859039006976590383941038114544728231997082830395170641235209960492102549064080779407625033920699140564797149530128874314926467656522980518478046373131750674875241401375479759506994117865502409413621723094353544794783815896088690381686291687894146336236170288512524514088164558811033028812197856660375219920372610764644766075169500469839927850913345745681633340849915257113266734064501531151520040987436273733996526262228988459038933818531767426332640300214571537819120244993077825322356507241275407269563563391105639251113432159444509670178130441768818650527226950902750393432486920332436266489138656185004700563810717374943135986456614229742738773125855541961928535617915036286691756516463480454322767905090137019539915276923257903817502672556175047758134747301067516210188524762989837240272440385484312825805998446763313291442882161958409248326850921992662021149219442361034747306559956295913099252181155428899139103798982739197059542979744889711207657242199567235899713189289348198380444847277786985144512294495542577915175078633610404952272161424547291148166903413063898087434755585071206335880708682403027164449488387715702131800871778454302785263020375077717484838285298541712861266624557934448944360007498212987976587564965314160791410965156246598289430176971766956155442767768311054182491019901987091969914043596999706235614001225972475191698275573001579403080040192570154004145526767340820342415773070352638478760627067311119537233535265511501998530644000385779558026816596078757858173121745300791050261760393928581788250670861921561020114956276697020650034648891521504345460823803877848975212720073405096240358406538367388472084790362617446709916287830532759938307115838048520978855111906660445796078086629531597630692105636623635430630510136587718939206232335144193422843546557941790560661380722413753657148254849156833985485231585978958785770376202085893938806476140087419502019771384567535715169614026741732697932069746800107341518704668730092458351148716079398157120280575240657634930791248672870412734069501156154596195045938808088395439479820767901141319943132577594818419916060122953919119193013757380527599867693221467625157519948585550335235346379062588760827992919503346952177079764682281358565508139739007616664742345953349361310962960880460044464478632210284130519501351901446216054745373361545485860177968258521997528391892419923707785644497378323204164609738411270751425203693054502473537392336722543058707893261327356934566365598304947729310510072193653097758829951766122945166971741772125649263910987957654182303747419235463990885057878396609770936798745672022504797553421438149472773832677511759616722455508859892941847005320920739895075135723203939530129391844623725895101060742151812666194862607467249762380519487699223021105674984101171930659656968010395479035483930749620832596678970523911388352053908995072216091171068444938876480257722187672546011580022054971079788010666225790602810220589061890375124758306972817674211295801560735102238689975446862296192238337023911595115565628216778795574617981460839559293716030009084832718053200818379796621441062749210232351899647284470491638726678799978973775433219788598686480646128493453026838292676249894950265249942688177768910618470361956343730551316714419705025656030970611292655458272197917815490486493767974553361136481100156487481552006668448678403222672466246844969449082532164599482527859214363764483949146733996957134194701864424292124760209467577173835260241712151036766236129862269966224799411073930764416702321131385690575369444278056821388817935961457118089025705126504164709474159022099477837287137682691814649172215831774408970399131428718409842322463219152220568903862659654328281461511283473913935669571212075369946420451469057235816611745174197119281742581227245141273280589379350084561928853863853707213442188372233427243226156404993631416152631919269076534506928732531118596327406087827430898739335639021896772281221532723145464941703211829140803567527908521810266670277625572276330438908971501121196639317082695711435614739557835569612674544616396434011318300552789629411642661144506269183958552255032496534627113283826810340066864557308424713319069720482921246189820867312599095044655450069887365818656993131554923988782983404460214909828970116063335277680682783111214260309262639839745072875482246775531624297781985266205155458325266555262766415214616794541111428397678469933397565337044358223489641666089004901806366341357647406964089254150270948849671658952160418800063135234687126170563248593740590398631137058013420664859431620717825084801717809561359731804361783281853194405196565887936665647601759957619038524580339760992667824062472241330735191184154199721753467447049723783688031794542857878425216457716908578773653244133327621446307484182997873947446672063928637493653634839510887386996731804461094994192324320409917006967225699217806247468266461051962687149648688953937686557398555478298470436538623072836694397616544175986564368896222049814311332566212210246346308167708642967191277100221914708985089186791644500571247474573302363030330127374415060669413856887655794589913585018334957512489386033912422074657493055685258543351000182837711555890387285534659743543472189260589524833578586854235903018199765322829488002254204082584215082948147134297691850671954046408086215039859196490882996357496621940214650162755061857567893149573475300536405984801771325278955466737491367370863653355569004918705683167572242276340548901339076430957036366402028269354216205911075272281699035094110349094257175719834809339562393050796179508327621577588451384352528418861410146927491036716482872055362622942232565656401501728165394625235494803125592951231571545569986177888514177340370924417808812260183319658140541258264273719242611619741746540364934036856342294038745606643446501237189789678189385012273272785918455562610593205539166531827674026363658069970443276959508070398673800668386787250727815886186569853289100364204732942715161905642799676809595116247591982359152814806202299224729497601278492334311612539590175571515691765236551370173065590830719743599147151363060313752018382458671746798806882018013049690196999280563928521205082726468836488716629388829285292243333461352243765898977538453596253725313870894947225393954654823148198863114594426053804988356651029077300859097287220901154856364004245699572524285523878176549036087889057944225319254274914846429981095736677343633422604531796341581460788083626332568450305474620811997286791243579475774456170751908562694127436217501011284513603617440407214070608462968237136716617122544586360932457238277933091338835858362313451051502911902281595075322131221471540148452690568187084114833238723295391671398059308638230846987799374517508114505565641394602514326674318951642209121711142253053882696646401995590288003633969708823029030358990783723829561093596551886772078369736855841770438404329573260681473183187471982415642847463832680022876514833191927037664395007148766912079333898753088120213844035599757777952032018254316228359287644035279098734862350394416385429638166521115818228983160806303919737913370739737758761748960734914177499434376003904658238903515246051738455609932243803396685129489014101015807641272806970795496838750155468337253973777203230357910476914121554313989576013621581270609820241103732061847362010439495423442143412310464595136887583930155620367088545265692467765959110018865676074994711125360043624749247705308607673281437344791435738717691631363052523348566516367793781091775522406979977089285760552700972951750525233260693550048599481113105138889116046240254065245332410817202244547137284843331144079892047342401794719042254804007389618504985381699178238719402335360570834521991938490871287635084756120927063827935282818473129315000348889878894411596526711706002821492491360802122703662952185124708471926447896711098077554522371745086520772206043181733118637675530033828835602056719154779509135321095772111853656251914367172024298636416704435985192935411410407515620641477058035990800577581555620588051103352163146991566567642518040843373339252672504236693518225767134857517273296386899322461826333706105341210416304201268480872981375760480251039098569135176646810509470053729187048661447205641362212286668623297452745964904560367379236430731923540260357093375187057225313948511798519511000542923267150022591430971916526359660239369438073878949998379871923614032488387471654693587494149439781208672365318485792570473584527869784435445842192682402687855175346099424923970948784813477832323474827265109307201929495582988477616883199487408060613546063990270473357156894853318205311046698963378225152213306480770803664226696649286614566815799232051509553552565320387847652246394410798843607451197668416745145118308464300618832850212755836393098017857607360315586058857930566924754414916601249947263471471388295898724305202801616260403540860668479939593120058250907133296883846335583990263664420878889988583019573417790087941492135621457991936589471715550288245020655479216268495987490213306642868781689141465274983688090209242462629132279085815155774326873844098176569874697796969371334150419900143818662848498761016507686863958003353228652404823152933443686919101704454340781724467673408531319862609536172333421848422431208851355280687028892901445101336900681374985354581579224647309480793870324350225687365628058469569588898663736938168877148234229515555946200026282934785800148692086000255575862546912473442955320256238935222356365719180230444102360266726465520175877662458465084067113577649040843711160520158115335938574138363981813599633376840036733696656103863671377658194154990471609243560764252970818754065743069442217406759953471879962379691742543975764506798733176654089035555155380873912000855776997746450873042714243057677638034140033669578478331154890865844456151356203456429201222903519932247203182877306381169410456427025180377428775835038923814657813359606737458366569738207507661812478524786198729229881753035466570014023678097622463852999374176162024469120718704917691632273699481957353042855552731109939843404154766749548124344879270651232122885148646901500810183891945659189657609356584543354379956343147141001535853391251028623522804410957729818075208512270137550941216220408003894956797554361830498705214854530645100739573759397243431023797692933387956717468083223563570388325658778005843148179050494747938986522330952926658857356867861764191523284848156473767581332537021741672961007550551757420523858438053451675098517703332247877866811486486012904724422420454618729646335602124402396014521249182335285129896347306766929175821592914267185063352957337552747283956105817494709786706627559889826814175520001298396349748829577377242497375899476165216924544074592824900602389449295430445956030614783206046420151963543569521538247313298552163452270806051312813526982310479406072832035764048524940170011173424302289460081673156378893657370135903352806195745040643833614586577035440800969654515309254033129020568151390939502362127272749627782134526297337032114548773149529283538994117201226078131845194361314271180759893873432209785506204202590954419585703039284712040068848643147511248934324740551279134198214122780240024949992746811278568353622602620982971684023918639786926392378488672307691906907040055438542147583847416084204864813490367816359372916001632693047445639749013225155091965481999748742785862327268726216181322938928726676974287927262620997869424401868993339247649066573927782385173390107126358507483979936243184121451714261145269350531654784700239736138400346796203676547854960990192883312990764484089377398671806106661998327917977735744946146005899928751349926216518457021810655067711243411273840317607518332818517332473219269944663733843190559062286882387922991503934191972105567600930818267424056032102017511517553745767872822405939795814715874862983400599054247641873487575152891083651192983319935038592584825000681922818372399067715431404994932523453661802476869723135953335322791309917229890140912187276832145307148047194060721826196362089935424425458188682479382948764317971135459294245274398482630971425633447586505296973675081567048893800648805820022606317686773399905004214844997947483605764251488915560741593575183779688556435464978528540346397048868314835212200679712502701421602210586038788244952113422296909674261100704471905275224933148812384811946181581082132778242847292887257218365797330927548574660335768789693364966665116282774288965784518272665133949712741793960577482517521063326637649432663350351823520297103886356470519504234882654028061389126006660873702387335925914102758665379494630463816161923962514299481154825834446047081128530640089740167213986930521711940112860091346722394400391045628080593191964275899836586292883716634574410615209003443529933777091500099762168000348320586523303391256299966305573071200068727668308453721795379053201591464664961988558631345865580194548206275211137168291698618316800759358454377105419805758826069138182563432400268281256179726622555928874036284730349939001904998827010284216792720025370301009440788489966491333095097391213415676832435527274114094463056063194624973027860965167500873560272587057257005297596309941592893964482232867518705644951619897983121764349093486361201766223966528586466338054657947472885076728281644570511355473900541929138227822358478580748351538863471468236795896562825861367670141921096767826129610357329263243748819562450620190613616253563696141673477042644791593168378576891888266389269332488963094795395426280961323422635493883525989531882324308061401127451770584395188421564139594295448547158801799590469134474266731541509678125544039843535109825295493894223530320740296305741415550705097914821916671038905450715014728472995969190327620101728515000111463005471264282048100624133164977572417171690574539559316209148103449175595255248256724633820120865573528683859721147853821756166832492762396111162376031344379015801835206944181983726433338107510768733916870874243238238373788470445951692836292765807318322005204113981488819015245462562541591196767627131399890317906411080152580974967574932297751101431960116315631490457107550777095861534408757536978292574675259853514421534335404940449922901015156306273650947467630117603403329310866767859846469498574853249260923198211900795294373070146110665096226511359246664747671152806982569506987666876060502521723617903395146956793400779195045806751107834788603465424832660281174701175131920843306657937015079830055718799464353228945068489903318801914450335795052803145102819206040953339047605447116939599492075508728849051423627293549974261650914384807705770171748569297850808033599723143647923668492034358256749920249723561069247828084001049437390248938759196246472690491847554980086285878055223039041662270348707513066645943230046771351595593617401252564123560183111758497575368209953695354156985715502097173442930704071941501333419017803376118915009420209955663385892930333105546452688646701912029094281288812598981764700466273141485700401379863170708215939732600623041969558950018490313165187847342267455140799999848611602030825572962926935016904532152670734390153073873302155737400869967345943419375440300840348665790836377697036471164084021434809318898353936603393605975359581600943783006607023290220556132801832483044284765287103841342238831408275076103910677252475337295979399505281364483653685515117602305786243613291653555618441808557350210101832253868248073625334137164499696710618637398223990511671352013246598580245124523003740584470713732995488601605882684998195078145924314652726723489189670415448176688343916864571494664048837915919056470942677245489915549538744959481688052063008757343180984333641981974178174938915518823157682850854847071043996856286940875674575615951474502809916353035012831365248045405374375717867168853490994741357805116120433340323742618438493252464383697081215591006307293097421676233740232867845051205392224653009350767067408431742564814766349868323623524839329534868087672869348295428433070382474221362935143777522561721328045840766990868025209665450547828982515147571519711628105319922603991178966590551135173286489848085997698190528331232983627071933703198472943297306703535819745521811949773444876438983642168759886428689927275637609623513080153114822571890352598562763832016171486987895489106655064511895612219193353679017606714426251175591228227118058661584025700106238925320866231778657424173177323509119205533578944578432880793733669692519701474166628151190894818312273604488906028930331502788807984333067600809868351495814535571446952002441090033349493924204999329438968793956036323073628160897554336903646908769204619280501143560753440821472542264372922789804099065811883634977727838781466149337878678767042635488742822725164539762801419052879235952558212100811426935844839775656763943186986334795460236529703866334281493686969058515087637587992587546115760013063914171829647082021274938464207462704059461216398844343506290716621512873357650287786957378962687461107179274616702272835918186665798631041733318883447676118519793886619872239861744896461176634125608330399147044937273566009945679652327170192758837064896192101447806944132377457868923461152339689341414207836876623763071603771559120156117928074745500905249496078314677185283698540283011750618216941612047945438184067407105332432530039298015362346084771307790073388388616324272334091643663093247439310503368925470278740075066396967868824418361963377114520744137981783830565822787933405961662299394950282075618467730613740447423907258965613850314685096474183570635619545050507075295440576127330313241888337510266218704309320652035518852429930075129970883982390562729589664422898136170168165240221332669760642286700073423224519969942854342298703553943809997996754902263578528216787143279964319662108583084092989079670413191579211325201654617596021367689751315362577663609915025093258339490677146704019031914507236810698311557436838786013997530160346531841988273755874626621834714247107829406458153765602605174018748256445883381898611034552112858153911411474806228769611109203898143196391612698994071852363592403927262418119797157148430865207272115879787133743944646751551120357656264457783216774315381939594419296940669736363849122456964639149509653932866841755511810163748305847363395504981859638318068810577670982326287135146979860448012412245567445464739665475911899835484914573040664133871856188468990962836592535900709786491634095443784007201456524604569782381984983752441852993100964939493397243602320676733109476711581616621665221404548170016455635175373864170846769195642689817365582516224232940387905504189645254626085214707373893115818925500019804333419629283487526680178071845368042027006664481190787263512695980532940157435872689558645198724311459091848243035083781540348381934208278574285099814115896920054231277615790839050935468312677249080442421150460409258614386736394610091366654616812950052615386463352076722584058401434608603244470791461714772874852746600317919147175840401156983350769155430372137224733798077561339165961228251027024899750049185303189354188147785890294975342086681838672802699734288653191876858387345484757655553801186602935328135833064195186316335655046839133975364824365910339772968382200773537756126570486866414197375962031254785965108558063202139950471165081776877750008473630677377743157336057006017589893531396343058520876362812986203450166625511942883788943519247271664670725223755719628228010402995001706419116598093538610923455919025343844562090836483624281492959420411011467576427372635384166596677900887190104333616042894995075412555350440379856176476188401942087316317091598365860071982161122389649068060976834807852117834219495815710258153644425420833602756732113949780140166056752034761334632510115303538312052546474702046493555894123168626712499880647525936857291670431192069250982730635085000205468287427434037026442917850590646597341498652279832730557838144580275642637809447020755168606805612307657281580738889783805699395819482468351267872486792116049712359777486155191015337865208468110107794701137633860335561756591882302446006376167750557765293629146029937491167521005954894994544358578357467753463957947573900903325022756656404804615275901801806164760532363187697744834587375167223603531417170821951851044634592974300725754591766827411854806770390435267051584403114123656219838838354468329681072145017506599303719078915545179710572404297182889705270408898239202223370274846993317226431235714803160430949450406743068569738548756500248813159670520099454760573402372005504680300152054368720051595523584349785178043322134925456723040602846797320826710099022867778026693835245774226541738691080441625177759952926676676208363776240454104891858449269962181250057303150694248454412898266560687233041822983729287810581566168420294876524314379320060172365712965031048632290887726145775673434685077885492856672964876729981961092674313695185477899403361283275985503149288036082387318962837146177430211277206659237765183002173049810770315502204336021047568421817137215666155811480718428051046139638385249082743828047126998092714910362057153525640166975010369553924891173864815355335752957274389914381120627086803849857654764412820433824958293618340593646373268843751987065061992449975717555603577364996099023434335835915077289945440026698457669618272606617406734171957941447832709464922233678327133550046929167286435936431119483718824914090041795388491191253998628984523511419216335865918130401126378923693653497412607780578044904875558770446408426404204188468252458918996983624717595572648935444513243805558775577022420656310909681564338693917830058275633559081352101845574419627344279978560011899843065153866534406491585078172602089205333676283881388927517885113833584819771141510932102008146608025907350657931877157172823846120193168288622234089664345942073022851056797204081801368163387951371028729481847111796757702294338337808409644986628695783778907775221888131719375088877505685444646600722722274992075571879905337933801422902346795374985748474343816243588403286147635739483403262359999088639313000740713811853761664358896272517093014451699238413565862053821826414907611990684097964572193009036231999390830733129155044298871898470878127425340066129924261531203126320028303117989402813291215429554505408008571934024560689214260768864916113941856514524864708250453106561384235135683462423191498570733130784969545481464303174153729961812084616192347447508545644896534526488072430666615444475793956506871126402930195068272677710875465687522411998482463531293430345451973643188790124475288039456150644201330363937810116761992667637204433692163379518427432590062209401323618499515555128748101262277485314402520937173857059744396358984274294382845421275416054985282718022840817407658651478423559068941256660056016048623599676554677627531520164950055237400668719143422519076758715198950025780404914711572381824880857462444087184582367166138037146321356870841367515498833533710728723877486646377054237200138364180248117875490395100755306188381528406915353307554741651309728519747768395650425738684551613629920961550431114678316075486856199015869491946406359049786188870243717527030814780901300877168764478657367493631263296456666293179352241551697770509208755013190692067897014950474567452716591874656756063889927933149436477502193710273354820409183896757305411693796785506667897798230845247962962095658577430104718983924807857647993070235979339163526591492289379827372870628165627983313955786855479961282317243944827931899445301487140935469479050741439964648773508087589577039147660407917116602246930938034018796747469294023371964618402017966485739429233895172889992290019082312947879976077136759426613726100986896002963041580922999332076709701008404351805125539411748126063593598139965934038885584528798496768063928046317570881749706917908779735910135436755416524159822687530813906013377918262844242317672903743909886156242646061756571532771593369335074729849473671517471483874190138040813247571523245967640975816991698846388560448909208928336728210057916903431905845568591211776021112968998762667824804199098844411009857400781137779576081427043239413178043471236529615815283370006491700870427893180236575428625449453171332371247781020561205362667395479308100178628540023628403761610720619151546040300477484064892872240543163268208417485670942778713738576390105430077708414815962413107994929845694805179095518238591958724080100439121737968819713602527154329843100785876306931385875290413390633704945924720810316216209835587641017868118777919259911198973994601279193700016374508046474166315361844831896097405153396238903156048293768011666802625706605794428692836964649500995714065351367314432623463121315684122675082213746311199223281678287268538488722972738662012137988695046189739942426796090330131524622329886963607527782703869936238496526075479946337717548237374322525440371093735808400139858475995461269740388231426089409437722368425210934499317328341458030459584029487623689184281582379035661352895693596881362868488642335471240765786857092092585920745177565430302072440687259338367904386835815357462281970053258530483424020486225514245789601845692804962694082301983847943909327490126080114590188863149992491717615911665652265302573355643594649433662593493417730406266866528016648323749900337547994319147877448784766035009329601495264852578526597305370755539834639493953652756798937552263643360175160370916180159108436646992187848067204810269975913194839690007949263581855257399392866811685423393497106446137364010706635571458073030444391261408295331760465624392278717794461912695051953682577164948963286738154350814784903864582237146932814717199176211805253873100536361864208116019835218653385064818798544095021093854549841806718246735739799543386284407950691584031709728625755502715166617010843075708110900226755027493591333293721974447364728375196990964779224426078364294152861093043179038080773604845622639557924385314911482431543697472334710928023480875962591479270058770281745088551478062358826574589492626807605747148012592240008791217564283020000023614753557750378756999515723629986970167657661727186852231234919688880803660076545721792370636316629880004123093788559603389898405612687008401606916337470885578181165371452656558300130292811244119076884310745522813379930790561128715318477514973609039849114708327764921178000235933076197892494182482028362313528645467203215029677290138090048617391205558149746477793566428666273629474625737745295934712995156261845756698934064888042251351901623215682016059878278908397359081422891047482749573819316131687795405687412177177184942680516082903642559202856415254117671639090770874724334425643916111414686140705230852769069722257592832213492203062779668747690855373860313672919094217229127487800046504742694743886333023010331947736174863332245702650857976330556118651912602761089064607517865623381608266574217316864651862148865309658382618303940071368549814988118943908889097290638757113391454247600286206385735942261112378742008484685557276988447385935464542622374495441073115795871145348443400146473039170710833474395308714034436676253710267283522491381255353101337450106703342266073456312624768605532608212777809910999127213420099271829769431395609655090653682986870871363641597692988941715052153295951175667828662792384133241210554633156587089368201501475673238802107332949846158431859771589023665462672462036132054433975241998071231427514571547394945422415040930525984453005806404235439290424532958431480252517551188303190928143753332468176865925780315966047393411988154636584204742052966165924356537820356990475180236258796427384993921288053645267601300225265690191465065947632653514247385513973787661280749499511724694191745630935464492761313436501312029753030204665266011815316382828339426138294000913302422892950328594948870258966562005054245073495819970350583921720488184099077386113496203488478180144696285361586215965571907006539874867955931395209713497893581156828755739801816669517380359209044258251783867340281092388425994028204063169282581249106412223552549001003846140670789230101055938455116728029274265559446884843755269266233172566679068195259553033174622394757351901982830920332151156948363033667517256915231108239070935863009420642801833191537160824107200794357023551210434789976191370196305817787128242036400981619644744767983501608311660266612708560650263839519236211609995115885153149316371286461741238603940061094130029480787061785324483185076318790702649373807887321773581491656960978005907432042046278604360377774665362993174995500377501315892820916856104054713240951636744893564241621662763246896050302311134348961417000838238478872298237355615680433670348442981428818667924236066567073681340283138408526237196288456050741357859033207021357237844424179280825119071723741552906693310778347241254528423401872527739627665742084435854155424075868810036477854672213362038859471320782045034108612710759636285477420161647190502344391148596521360456606383808091854723304566271266215569141641734966938694227144068883484266244333696957246171093882597707115551169416140855782645788124250821196442714965018928332365595728750919240583402081231624740355477647294886985774289713137374542381190766324014531747747894705847718706201255845760410486450738386862176417090932311979557623611478624750990589768049257328367640796160640509895228116421251611098548662232592192721035484827006045608687998846890626767118215319780761827150818542541101648189717349020596132255536921824926940037229634835222538367157043048650666792200057361240023925121235750082221815721425057481331112146184120843566226025867690095667985033298901663790305133107427101903914348875172512602969570586229772048382470526297288518120914851542398454033900681972716401127799982851060701335769343715490423922912830575037232013472164116062062364122487751561369407933841297861461978929283971130677145528522733447910993741294383443168046925625938618957038740653326364192436550490292157611451863782471777727307234139796271515998584231179403331186091430411036633281375075060664597465840924716613279113743880875525969806432509828406592223356507550593994895736050431439826859578167137430193080835763656783395470294989406843335862959408648700716087145219939682098318727283594551815025433943047518968889420714844023489318932529083037275252090273723859954845094399817354323273015341128169067688268573156256678170479215435687399464733972705363360370442244988670563222661536210118975012150989181778070953771575628142382383771910534073154743140405368337309458661085997197963439328393643675964625876653997802996179427601731355744795200077417074609919881851247856266065701552400825262584247024275964128769348310673805646200156420062574768035720495288205938963126244584809638576692510121255283251946017261158636263514324824616458807518402797258293829159063983545040228083873914127101595927841444675939544330884904551144498149301406741644388551877812632227508623952055342260091017164006912168802266797467465164140917213588275225495857280239619127956702344107960755463833854738033619008040067772725648823454515974874314582059300241121489903801515958100887197933631405217692209735256820967599929330884663584536988724653665609848248540291140588020033137314754270893771039745983799400743128905651407118159524529469770813612944701731853658535059673446656842157525735236086391581294258484131813138241167432134581267328820922472632996897094288216581546808339211956836913122232844877281715711094087560169677294468107444214286473557718591074734827967679723338051377435413669933267324692975715674413606603424832211873706180447432907855780840572840054533653346576912994751107423776080555746260122105751520462822628439702689196056951046004177806927298161264013499811057714904163286675694706805158004054292729385544582502961214103728968872484438824065393102471351576263978218285510831265381991222782271210907536935929143889938347812116424027096628178295717282703037236089924212732763913913229789074375653495374402174563779216512749350410513657616041649178769165941834421891401682233471649881452634329796774354234645888466868335544740050158202685750427491958844190925260960897434061786469482783676801669026165147960147365114792721191735755300268843681325799117905172930818124779508684145581067438926166015983274073357854963337692039974054405204693844479512905581761131045703631565413714193534435271756701501998986171659441719025432896308906591712652559217245648804255482512968640142165639327831858089281528877224624557287476418980578756960193091503702102503942517551582883594351737512713062083579436918873382966124043708426743408512777640765358260965890985046763776081621862110642476614740121503591755215322764487842211173669279703166385890436383765829119304999266222616407652748917151246823106510729050609500546118315335031681717513021652663514956854008106367968557428583341733725314849304083065955868838532599695161545213778561500736540891798706102754929792100594907354800594182189490979517988832851124415546072723798359235475106511499738774252027030415904800143189644227457000833108970451440112120865844125429702772569743223942461246781189974215333115351496453317240929824415693929597468935436506127582234568919740317639180186064534713041540960462907656880770687060973680783653448876747098393548429281531585860520704975359857771578542156894292355981913880126950371891204904538674448228352684259703527833520574441136806992546223447592680841857788497031805146782532714082854903747008224685836194695816206198206500449092434314969118955685072541932514499551427110461374451399455418921306349521942565719095980937192202259162197760946474561525920329537460089170570361912848288935065733973787691008181172305683780154226681955720321198521329920401240755579480996623966355419652326208614621673786403852308229830459536954581730851665261033279918651043757631713968552830832372074457968833956462594560124103323938348335481273948674389625400573348369530859930901287929341002598861076623084481216842583748753317474718704923214216118014022838478289504712007700858036297167011977623913922430839416551341491205185605246906165619687517948059614261633019918322681415660648803775881305393703274501332348614062083714706635016822932027349554600340299514229295582108622816773573630105717706932545069723768453884165465336850211634768109158434915428323650375813390589356345115239068348634435115370937697334874984135024088524794991803857343013565504960038862184632289371050009358780593784491468675140979401549114198948391771042005684269806392986284407614084542375510563665796653840830160242757244180787853630348581071625574136950293057136182460512895638922357758261770922594843583486547706963810652030387635496970548217575999597905478994143998309237897649490646600804135298273053850903466917098663481593775805182129262928042910130083183436751296011733837186460519381634015630905689694057189301167338145252992236214234984371484604602720487019791410690271447966934935231901150975491243090900294825992214432504284802461782457805413637599613300041064254611784973948060014750877672144634387202101385980335430603964452389629564565435566409434390962294934454754111482953417227479076092659121254054983107388475114021559905035014305867157947812368254253062587974911333319614009432766848789141691965194492814171202301465594170787536571289825422302479025119621084700701134241010371086197848716365977397062776189109437397697065491808411809482029338090667011159754023350764803300121306780014987969378463921107085621889641217781822188984127115237020856584262062791948470709640745699711651960515519653919884980225663200960625719620958273353461976268544381791738021667938983668312426207800573519336407462524356811674217549999729641738242891275023312054024762243918037009025629955623489425561273476564224719228642670529250526473216627260596035646047502871311014957142029625898687119105895152217785760828462168079541522168654517714994961142043474557004881835170126800307351067023520034349167083619755993533866931760956542149166831796641600433885917648281658939450922309454327846040829421436976172457343948163906386138489118917134479898187344753910724842628097637610113740063317775276260211916232261602501249289510870715033224447184610114852333296957718677108330371778181091756570400989815307221339429397233484773562528036294452058366462424584588548500798850923687224378805235905078706551450310694912581925141360076604190703948532420997462484260087830790858134878917227764614731074430319221266422882822166793403716773997509508481372111668243116819747498737414102973669278639333866207893508309190545628475056800115979232988455074637526675702454615149663576851661750777009378174803641588037534045676490473209865415197207952304424607384809389237106895141501827223132932156140019974452856849710006716584912887751480410089996046509144344148401607012623456234379001863018243155847854740826339912460270871414522064241359759208399036842798627023746863650910857525334280366830822054421812322379703589489888015303758536683951923765208460752209689437180245859810461013135342361534716280276949572594121185606047360229406084947680963044287711537795831040765762686414144308970460560802386261617260116515876159228436264122441018285593041603732028855351540462723758528177587473672069939993828290766528242250392195755208123834525731506665677079130559081226394998258944002360786154360258146058176505616686239930033039686633821458064504341523066579006877422096094398821184494840419078446439970083821721729491059118269145175701642398608343461715264938494335979817324372548045281522944489020681251219788842514688154191913168559802731087105040595316190302841181340059030949828011282989419466128126356154047710332804292318154528240722551972658678325824241589831737998489142279210463399552799283359224515494457007795288092644055615417161617166086198834916012876982214203943001523653336214060793216622857199668368223014160459938000829949561809136290572098146770694776331847558216267928804466441619629577166274876583587706486049356208319640297986593896075720348365847036190086967078125906166658270767072034646335374798869505182012562186228891485404384428637931705758346304538649623443877149970653667275413172010381020984895448011647757042251156633516855124860305370839419614836718371369082812562535322297959729302625433777562811177667632758365336941722959648529008508342144040737610042332418879745934164402345110786736354525109089255067088186320184470300913959710947266374055233050214622835995622832651159975407543109810760674709095563640732441217142016032400656235051834649952845652173735235282447789781290469924169271115922089234574963269760090408937547019048211182475223400142038080600448850271088850512197228251061336175421340082038301511947561946743605274796938146244695676473733718386677299346103899539158589745260867911103902597811363185551211105767427194141241278325991866782786620813186890371372210375929215909333761379589449104121646069663488093218493747632251945244965730859953947017983498043898221463202508913116803389675253438277696157348895033954983086451147507873614220500243567968427359019559908949353090444621833567071451325268686091011780722928075062152529324158463862487889398428191080930641637376652327320248402843671472581374170350244948858259447891256858734502818108109859743637458905508808772529645940495083578538205645262419024695862784271746414377197542564194976746238639130785381381759690317407556970046972069019015874450827047291415880892581643629555228251147340251513589814532555591322113411700890848234895337145318061150513160140936537954183193148969298226070968069028995052639289372045654880516308741582528364067189467361197988490661165789137891519303412080812891060421332545239205768503916951532155597701147683666543062718504061848079036652797273524964964834007228665463642481574580276236457508083511539913053880077709302572536884023360331205488683938764566610518522557468932453338957249564531850650729547011604789958463378509492596006768080288550146818880423886571419809964799264503925848779373917298768710517714045361439864539085193852327054586196603113904935702018725259522731316752872403106767299760655043512392663414324461154347788885836374121864169734462827837015284325723136785569178564226102108755929973779649369051931259572059781045348794112513131207589164699914036096358626081233225204737612305929565842904132358206951609896739679009291522702976048395150279845367781906658656817488338501361922814156286028610668396963953311060506346984927353512226092060078389122448305433952164177762092849862459598533625874264164102988831732656659366930471682799196008642686588105644577396492731229070483292105515300081704779699857612434545198465890398841277326730002517104216037634027750108293481734907228089851049473558993698359215785045544620035586959538037696278370961083272897929210543538666145771036961171947188951331338726147796685714029449700040736534675798058513443039323183308581561209959508165567056860969183664429165258434883812212787238912010871181333317960202365868008234921412908260864913410866947220681339748371099163240924337211213596579085176036186169075858112014400399872633344805843008648194573885966034189665287801509946004599547812104323451022541201339707642458324986901136428919199403041894985203946345100697894308397421614382992611875676713223263442442402396647313286917216019289741752714678775322650473576562096514655548015302374654306724485956015870146198575307359677359408015655216906042145630120515377553346423374269588216455235451251291679473122558001300924396296474949739254612420162559191499835361387564401510176509960558421120567368143298258517012250435399851066260207415930817501344462677193495027673440945453017282136363210502035431017293991847407373668137983448873421584393076118715654794515131554295013216545304718002005875330714157925380667058497203721002741307589504585842298079116007428389974381359626865172177575564984840054303009532407078008639316914251642980158269200070998878049372928771236683537467236587784359319954455952819764561231153829552236708387749028629952339515281018862253501630128321972280429364556768849047770229747104060831829855529511820799222913994999756393678512513036836242802452082651381505221751330848311349556267109412983365946490559808417171272845359265578910864089790785264658286496159948972882794089447506928676433206384367554587469856184115950345063911532279487961640252782218221200606671235288692765580848701952159871333158340630286922887375392727032777990773409166127215750077942928810996504843759519509859771498094627018295981119719511733439757213535966660916175494509864442938357512394816972799936728806497159608417475731014092751853713077838793442403269755759867897590599571920522721508816832809591342918374868512108971058910505279386581228370561826671600976542170700103965796322539854646721957411738073454085260722060337300933346987961381048381034112832169418783509190155471906882567252728362114795619119894758013277714214175085871762317507665758892378532420255372738388577240582356327522322950941077880147005465155138320584537311698311576148047823115929141322753191720276821752260621276657839615605878170152695383747400603124021127366242622583155297871130350572741318752797798405195964370960861319426471366858592400698819329533378400656947064814123699278114398238462812958456646221902238981474819444154033967433137185805860584696116171919761593441804966196461174695064329916499161331997881299909165370703399143737596508695648973319318378968937135975697568203190335699063774859422185119824735811554630427598294016899968899052546363585889166919480851313286565837155765789771447697641850134601977363179803931755773775299840144549940451365327547640164336741842691313879447838780539221602830435044295130815925531236338029403901634968099873315501285470357648092217177117174316441862539776496420155999412341053613850762809592174672683237524216044360101589337403961980835578412358528125481848649090387487134388857041474983629707141087726696352743411415647779514954172404079348929063728279537982200378489641342243480317074823039568600216610790371556838864170622031781927513310074232193352310286876884302444392943364302152787863401297844094042204766885938217711393712692696062310495414781568645658386989414091078346101185253616206418761226911230595824781266850892577662244294154528394224342912027003747945243726863443605301578959153746625331879097196928915620047649011077983111167850917031392420740363009095017916373539490242784348086242415997174618284319916900029937946445005930726593201129452449308976326698944933548353343618993282080131068686384224692120357084588272581154743647818905938781173681879071167754344164614424142623424546205425855290492310739009391223650380640918276745442753723833538041558984716231724680298067959085674433321914702076521397194129619594894543910676135060123248635289771590380901356530042308091251723814088742676793380207045060007522794344549631427741499136840221415402403539774638891152326234753059705739313677995660982511714324874584576599333686626690538340534624008516374649119176545284417586609677293177935573767090433154571884666051292688707511370476621959687580195930039296687253489051061018191500853603089401221818748953831399707050983184510040527940111696690243718090509709856333224685154780807634034654085051003914947382554399671377353451986753175229332307021904920550943410136089977726071215536042447733437883631205888236594827335545097686692251874404126418549551949016193751074040521662869800825051205888089751404645596076442042799233530133882048273997752087512198384655828775916125249284585746327600208045770946260636038933729047566460300661962380736430240558686693774429448686915462986876501019231501124330948974311774965238076694368948103208443938189774231760861229191841528578266869295942579905601846774864233996053045772483431727793020781646880489292224656264557831895361431537037143558554706679958267479157407865457945000528918729109258369713910674036383831573698941391685279336356010870436665905043056194909219100586677589459891336475186037660068875399739220194361548524575957672574652083034027264469270845316525012196201551472487104104764702565901973069686210563562876145765865200838703626515677073182053998003955150532684368564249104360392533430743721009991435410573331562718734760221665531738113921352640707268412393310496235589065980714026084941255159944719291485176651683344458566261103963032901147184833296918566854883977951593095455219103692553403415434622107627606936601642145894596751074218670778909654242491568717714636125701395687053927108406058775082304217260939572471517408239838075035533461908096354315025835515161318092605078443682646956563132820728494877591043434618677847411889973381251707384897624068012109462830263397920163500942917546663325755062393767628977689225855459540755304510469953754324904936625104055705831964631200472570229605561897900440761190990366189501964263058622722487509820862023728480545728222581750585240931189060989318879038570290569159232922380798722909843495596253764394468379809893360721931839300627905454376242184794838070685063451634756864016824115566734796278365423744488604805597855263672418820702031339092233592396886607851402252833456255487953030157034798045477311909701474696062082964240326795899130072826652170464196135637188414534324526672021048435204966397363032374380706855357532102076972856736208469405595243768796361478145170501439210369387795392554761437214341644359231812636354037444067476380613532244952272379498371686378438194998214287544502629134772401570649765817275707774031105237723829655318079172152401210841895702091253600841939095760239430002623906089513729767290655700185844833678906934380349965379135869569875591380513380791065862748567452967935011986259836741582690854938496853652821444569679694556342905376626345914493452529119227229568693452799631841490646187916683579506485772485116819744114083712724339718987051652219601101446028043190265460933086770155151566657190968008157136514343565499241869716915486712199755497131190346854956367138055661954889850745403748306383104132013977465304793639626101480817347717549529440789748838953865553728846595402286111890560887803549454451762621122718858069341757913379343421729314729957178934403730658970126458308693132644005753902650344186280506944770963531504566288312483798373472093002922828565163946909855021527121428608362198435221809382416541118175783236564105496410684967755096348470426674265117283839730413295969748338319148397908154303931534225329427065796526868434832839066163720149602458123259178196866960580163896881087201194126277739329551964654546890007903558266223049165858872403593279015321340382629761403113099671878898183403016456494440667960936527466059612725290827345070811928897028370569220070101402501869684120342464432284300642422920091919748064627431207057392192550620135088163134918195747019764788790268412575145583433212930409908543478764756288479225949772253887801297967969439847955252402962399670326755074816475699922614602314276602592634635578768624350904415208311038653354586104575355123102829480845986258444207143669656144353430496084463189169053381461937532767145603323065013811531453400836343277586751314158472199694413351362349535633314447164652822397741194634217838822891257488945179133739453503421649887563957107535476303236493044888701402625913063116923085630421861587152659404978148663354722939374163437445922144990934522445166634923472102283897830142759601831044079963805732160782349807464475587027777422264018694035540345908729319085886272172217701163239224373719512815032002173261453056622390870890096457999564288213598187102551925018157017110060950736574995929370319436326929059326481047377545118295891153410915868505830771309339086577369731015930272038544141821239958875788235277820964977935288270750726602844201338179419771634170131476410743254697485970847990762578869416750821787241092933531447060646933678563241277853788242563040675805781760672624711446151986398108574752417041642763765973874662394518490705140179816323967165151596775951510081218583185202721292144275519193743244418856480623755827743025077976558418868909648878187837132579243093485866304187559248117002766856581263830846991167556637033752738903107879405862031568078606939833183267072232977752240770588945386995381047275895123871597361980363678186210947113284767869462972263118930186949344532516519165826872635764401964680460813880506599215243130962786253273644438954715617839829846946642833285273122131634618109956561504882734666001082230653887894186776107440920962269010747533665822319233241073051578793392932747037476098256403994453296144063829819147387825116821836347783572600881940263232224009378926176075660324507415986039703836149435342508318353025370816090638719527919309885255876128210450828951349706700768611983008373628849231294692411505993485521961491183939202533200102361931986982732657454778452495321036173239756939392920967606303478583501013555383781484550477144278316438449680594541552494478201623899272577464421323261726519765002849914370172280708596162085315771822877971820680028120133640185135571828338133210707492380970505277122664207612609535098165506261350371522054146612601974571179389043620137544815376665289603309406380183263437459756449439026369477134347310510529340083774753636617164034279835659355264989253506731332306437913239918713933939674760832086603806026949270256707655005547392787325869694910948954715932145994152164966441471339967993396382370171842029329694167530239886508878658606853058786750229462355759912847904364061634375579012136739400088992361407738981650268060388358939319942141580899697775363449323371134865138855684990724761089617575206642990577126993712251698342615920438479919161882908621525134545634447354497067071459270777124307638887342882437889736753568040535158386472665578935605957431186137469360954127006189520789017497028946410146268816434176907268653849062433828997862044529034772564083978017096206237251919808477536145944631142354739200041924253118747269765462937737989852046948311460999149199363646325750325879034047538937177071489594656042450594704776840834627054234214399462971634426183841465861333348097072975921676724157521178787158718097139663918357254394542830938125435837219239984646343090454251453147193779512713256628837729330515757328338739542139588154858926305677688828132751888183839224075568799468838987831651722842624451014646299175030780870863200572176237916654356706620141048999482872962877539835926562443974162639306994497010849825167837759240895936835439972125182210710064808722488368382598674795240903700677743380181034011332646268167593116826187478536384594386606982261730197714904484994948032685313325002813379230840560773463373726773260517427074062603883573330654401961423650958428349606401498091500739432285007337201004461609708062030110518319483205772089215131712718191539589612502594294151472597437273377297016487669004927421494921871403206927451634328466426356804192156798353307787214341089980468945958490077535678232462128787969178578460948207929804920444688762956705562732600331503483802185791723294160714608448871128796583893923179488345335423451123070027732093929552709447546842896509072114159849826042709310784398326153957524951035299236423920501151049249304313631171936040149746126980024772687076093805801780147392075074746002121246076057547680224724705115590652975761170232438696810311834011311839468676607290832124554693015965174340153277472048785461395508929694630137197064631240538426556905860379268130501954925411772574081212655626518580014117708478365836125205127061756214370157718032827864584310875375249494949037820983700254497596034070999042967004852821500067414747828338945574066117659444642670773382912352536098615903942377543027031337996982364168130116223131589884787102564848716501043118945285408934917759269321524264618504489863665545532433050867135457582899313370997584644913024547875943509696642571863698545304704437294666533614171304375338803115793944064966093289365661806660906563342894380179514199756356031236789203562839278782148863982316445369202818550319908592199153790692685371174499786902539643244345028088013641135946164959738183919031595278205644776314007118515067323966143370096265056526352619201260218333037328622357072192024755251732497698630963567950717925466321821926910169787775847307377695110745091444646592362220001708003257915239960098963959729451713010128151909101309614880505089995060459037561667984501600404243657425581979376293968121276619199679075656107074519121185621562924775004974581314014937656962127615596468168790957382481453917036615181308175856312309717016733140430392203873468280400854829635678104261205144446234876124957673609362295782129121351143111708963634531482050805876118649776690486155420656272460459224747655565143106304087459512882154868127143952340884304765491792139860411434301919296699705083528950648520492731346899460836898870158968170558390449656219876674572686777602884523340644417172702890830379743162624835968881136179239781859083649923530408572401977538894027682374446718780083818352147255219062735633017120924912870060123156395946765049102821277299644517645328753338650157967284562446806267674294889610740303078646228405953082321195475903667053458784193445505506686649991686515981985118695263023489811224379459089201841166932608271084913493209337780869819026314338614192123041542302172079025293577367486573018666464633399916553909343807331323601274264191279076362053891219436914224296622044670048661080356204287662007607176267828943940814285238215415522691277701840226355158594225201691840027240638515709469621969355594669524858303937343872462225611951890397970969078721542116143758308442409863970069063436098357564689267351129146278942224125730222675736759588750627246425833671616294383933140192571766039799954672648023131548101097544991536520823153893273650856559246846025402518012573170797556809824826898888163984809198833431329562588995297675335422552784333014368872537791929289151103362237538528497024464093680876879365776728202152206813634411927357056915959344367726868711365812113723774964445027263580248909141290070894450816994874797805165579132502638783540557420807324108157874419839236713123910185689525151789593577154764729130984930052990044221004848847361641374517840084907324402384643499887216360397484407729310956439269160249020757063860159444979807541410916122262657733631302963510399331782881038961185856192718497146878260190470837104088623675760696578735264052689527818239542900230428439199039008748084334371643277609361870802163144785509016604110859885723543163461198344304348694933102848040278559358404536112089470912159203663770134163459242284879215949018999898366505663991032821877440661056761008868103950497179100664290159411418601379950719271641701750933699385416956134809099596805650032415269519499730150175952304657011487633656848201373491433077582888408034409190165635875109296603760814877908166956252939987119476836386653225456247517722501488936478086146112904018965853523760911147469443415918823127439740775555228413127011297045869218976157806007968762456727352824178910727039606171077716645541939474528887450516090696795007152270317961933860253453787446535706421946441734542714876142371782658831536314869646123943379574651664342782680025484986680376619259492826557898009894111893547939704758570972373314932468205832242396402108869122149761213974107796633785277511343348392322836186310945689406598594061407078887615435114045151061104577501841810254523746336644308192068489668962569231206603251494954722813431481230394857690444283424416106385611164232159467531596170754851580018459582644687613218511647785900659115114151668055772805290197599226709312922104342249331318472890883882109888277267962809886594681753560006393820449390329729181782263244220588523637723816150260159742703264145288694147813835512440401304592614289219927113455857970317382456113344736111297360222027871589573632936595092024431390168583410342549560200931261725301217305239454003169470919815879802725877050724431257622374537470395603405569183017525899355355101375347819378957227401495755343224159527166585750268475319101821633513944762959972325160944881646834776311967033752297641085310558606065279354948391160696580468028288870295383930846414737271851230833641370712862818203487784827494360081506608945773513935180641015805196377047579658644398113198283766471043004062357211238309970306123664374521492820275408800770423614210128969815202045846766424462362018950054765925299489558959225091723363793162511058955817971312509156763262892954094741363622919218228619358717673624606333438948587208194823667698723990874646983914159148919166151270860097596288743123560286276746624256670340865015734827804380512562474276333054090276791184998953418032453863130664268604137541354869289063911487515048721237122398233356247699971822402918547053870092965805855821176420658707613347783985928797869819646171943138029533191204122340336027471527841111035403218625219263375192245255403828552544712169399122508919702418618648629583476503123774234208233027762278459892796817414566707983658888910798864959879560053182421515428754784086337443207516809452308893005608043160749593305272712494217185966773499014075587693332827535411726369552922008200044514168373598888799397419021005353300533533920933724872688623590052084510624388425612339310077692454271646450555665171696597017632090650180458059729469251877536591243192173810130245278308088405284325165754514771594736546268898138939635784374809712558778209917087720884915888905408282467356150123880773622570868366687065637437457387566742611344916871917012051547321308129736025853174491122813210488911825931406365420471948992824935268695635412544573661016684202661268718750524178292750730492373682022602932849178250048953733870301707126248502346754008835361069868424259486898520095194423028554183554167951778317316766721216230308333712000429811909823719702404432371058051927322186744799565333080859478025943752989692049947496406511739539304563177306728434117687685498380344304475121282130258461714756620298911993696020610857444300258918448299487961783817756076039551015301300904919631125163566180442910404989432794866305594015448211580342902053783024612018262408500722266121633902736189520795906901034633770771014719262298684533800046196136656317158873090224695741871017431949188673970830982819792652377949792440863082166610910200059495516161031495335072449625154805241048340882863515542523533598915665730397095963264577380186053406436882145479140410059526807119886652514199473294466223448455863704355465597420240374621383999106678078382856939473271383746888419152772278032742952061200599471943112061833950660575900965677410571417716906346067858797460403033725103525272155270513440000045386144966706880156787180389933823152560386662786720996044530923771665352954219846386576031502818696674488158241521688297859553555351728962729645095108417219006320954498461161041932004968282863102987906521711818105351544040783800310922638965481398984292846899378374845238590172734784117305195119923371694560622310226778339589455478852951310892571788181178374889471883045830861217350266558162604600404953079987772576812812345293958960178353449662579680144607896658345473097491330071342275557736185268080946232140081586846413205640953910788106473495927863835090983682096121525327793497979983480288653805920952223789420704782803962949066114956478299762391938383353464020324706857284209987777425729140329576768999718036724267303921921499101196132904024093543639402571738761132229227239210468793716297534515924302493506546748428585996993952593868209329694029636623642247513723910880543408582679364902958400443317741075866110079112820366078605102126720806274388080751876816254491698270805636546097885852086599902089970825316355644127094931097469386483485956443336496193113788110025220391810087256676575840912600398459899776171910156746936303627938814669431320434538422878666011350343501393531585639525905209169964538528200155369346362306813244436182468022536773620498952253189379253351066763898290915123204676623924078413643313987020922312515565018135281811968989161733377762136083118583799526246790174885276879847631055998809779121820800772739196814979963197724885549909596580316551662651834466989908936674278225326291898785373507023522922796626536387606154231445000656857216867838316287614864732471706411499962375771456034070801824515945882290163704587757618716158733316383944601859531141838441581434524719756637794568074259209810274634507494079185533423450811711324755543398574975642345105826968272642204229376392866475423171216603007018209675395424085097205526215978625603107569123701190911321465702251188946236057895271096234328406499845707151899089222218065076973879267907526609881362628441292380953787229198452226195215884358159971961975876014181019051516973773157077256389362280402574683872099134198038775854866371393127626646555143028489317907121840092039970493854959833954250486368017862034282346176611057958092086885373658928168477478486222264414271556827717812183152814879441672509562054205272301358985341856231036329602515033019405848721911822364760242479733135429391167101149436502400809321219618590343247125163070039669548223641402800492418880777118158111517211844651063370537751690028407566012167913775143725786937631839348471501014671924861239758751239391263448480224165292177657781345900276186842184317808025584648461593211079846277665343125327188019519282243601668049858173603118914423254974989380106595458546028856750743681855223532047084922085645605289050551118459448043060393949628802574268310346923544084869725019762216656549749978202659691692597984471472507957425851599634982902834202948735449802339461727773277379228770709155611371613529522333041995632858215573464714944106392708952748664307388181921765176154440753479785641088675036016694615705335378668207505171001527475189513005838957928993836723011736523126153882074779061322816824211255540856983725387945296833683830102172860565113897334197391705838850498316622209385644198312749659591844571117396121859205806614797067679296603093946047748821460739322977702447774406093721849537696510538791962224969069779546054697827026480187786571543539048628752882364290788096009857238941071544376673627547729954800795336043612023639808782848405134843609011434384338612450328678761873539059672224575014767349772945505127220798508073354117094330890615476135464893072995830828284618224756170130775103900031023387606323596728381556387202269377402785747509146521899967441622124671636223264389064390778331867097843815822379588189965359894653818688375142091988571575598138402934556539463651861634338352257755610651101841882244539712994413657261445868770278396690086550747311185637054777126164083675695881141220669891616959767405056858301689224525287479905600899592632438855218112212658549713636300344934508807876920879479566629881283515111244805225872031635316222294203581975564989490688681284795077857693688480862784910208012062925837897951164598452639679060444715119092484072485969720332229007565470234003698298011404056421805629228708987451283757233779795890459366866827092566857521842419200200808414120904307973091386897353350194770690349928026075916821391739425505941610392507154774646563855501785208169099185924516028122225974553963065757783992255004172801413719748426133481802259315870935353047251747885262609830807151154755110980128125475252692775059368829811648697350241434287551060331124013934850048623565541216971758093137851504836071412290524200168012771067998080151527566849682138209469373805272584430637016452948259914313454864619114577999285329030506970697230878621045824449201401847961519303521932974610104162346103534661925533632872385564920381435308339872587400862755567364213200819508313048269773117245305639706555074419822457436245027526499024195982937612244213153228232851215698407606775569740390200941018522308213214801745766954303431915291569704454511163657925306127712265818784992548350538880408591843795881418040191070730853673405778491679522661810087173078382184126013324363718040993796010905425500812100322236332032984514651494695876520908083555311954521093028513150677835823527401488281054684131279932062226223492960929008515624489267016191755160705733205465362851397820761134417909029629282464901612824143428323832498454203336955509866400364352446395370757941576482780738362292150869286533228604825343850534460811647963539605408531427063227389283730503765042566251200146378547873130774128016931302388931602080821926016649589802160606293037970892521200605750855341477134666632766299336872645209537500202104615844732230479843481998391426399105464616040695904255826819147395205226153593732672483726722772504667742986066078682009878022576747003638543803254152827443127970489651957712612995154501857400741054885871648684255061338113124283533345264150842628021984071780420229876133651374093755066647931223103853643544445961449900994963499516233709065759822631578707030198276414601260761319791544022431135492100648283115916085864084871474705811134596909985671738003569887985510141208990258828883162270317290229488135859918229190770151199517032863875700621520183724048295558882575521075065583501885945270030014946004068959602965686609432618705538336225376555361546476883839808414814560625102101738739554646753569416236837049371111646508363892014448059144056766626724354521531681799046077752718832161513421275122106207093715391824497002900022122398090173052309835773430545010498905245255441903839095060810022271262883340122869776154310490678364307158887158175194837264647003794143564014739301213102905840560733633515245821147843755653843591491200888528355199392232391974470951863905201696953466843037937975513592395491685373809448811327209354366988745761875604294006515768646362965194347300097425736305948772102465081653202828221093497766317982105361102430145393890443037091854730657083357950643869848753701868520815060274393747636881907635495998471235389420074785076107626405103937993657998982658605026534547491634969116006501923246126308355302219832920504862868513828363256741864665201549661949320417869806917521003151443235673733568877858548865697593938974503034029456030458803612029576553019887307995559544483404003310711296594718328292388930591051542313999022266411078289983236544622515095701519292974769138873333702103073461469700848841892398098263434740322944992621365640151488142666101145714773881664654323369892126678499798079430947259846290179334790847471797046061555067530027877358323319545657175332168735285565169120899554038116875927276207152620156604658981301312272707607020349083746788417701622662387872212173608827127246085786768317202900126515943598384935267828569267954843670218148474049939885838621478755071573226343294787014065396019679290163620387984333714276326040301386001999215212944331719704018063167021101813784898720195741093813685696519746193370851972476004454879295431258661769673751368135922687484640889304001596800926413676615168353443890995567672130896612721199977931209443057667301991896597779537970658272071983233448401066558910514206201377031293162953231261283909992807666090548465138066612948182730372694155885051454517054795017096596681291265139198582515584374891532151998798093902653004892366910609864434378922346398645624316300776155855191626044659741397114749328133512250706639396613376962927849449120703782594616892230236084577623428126081945542422323641391907062835155107522909030030737309522186456925003085382764022826374487799309385291439574775745607016463806397500549518068673664965487315088329924967871060107452015988330337470321420159632848981964900582737477280213055980441106570550009450949086038967402872508282661815276494496601276791853906261267666465846731789321725469560768165128064377022972289176600237013061049381221698631954306003171006665604283373725267564480925282909974781221225740637728620369323202791121887681758595549967973265002398845707490460485234483173745673295615573398703696566765693868054122546696070257434804624040519609091271111043620092238006918370421380146794824024081017270917720078525052265268284801557875329279981054561583085587062797029124140588232026859845968207111172676438484441648545507820426179757270179127777051161896291780736054858859622791205711236515043773362298107331746032515913209791629028530226035633003828685669139864699663091078338388618908442362169264293145276260037269949780306914930607201482013876803172543621523766234222994659042041271218669578848706160999922462715747727323125275498013436673337796102879818041438213565623903911661340980961103691095667366370577683426096332936868445208375114208182676491579773220872740643858115857994666415116149084712841251487175369815829202497271930142491313217060138094746203535296479755628744602406985956300754626927022254686769648381047195341409125939124306537611273003921083727435557703983524662706687534706033864000533309255602378919555547786520536575620148469521893384991308495858379185763457227447318192477209943166595634383521574101395009258897594599688769844946115260622453083290653746242314826215596549064201336210504491673520063773941541245202808184223365939337752176162484444643790435592677755840833321347561216572591829786458673147575542448848915192866975493302464939904549891713640931778106355864344683781200887917784393380922626318255691909536908508380350301103435855307759533431601983051952012468083647430084579923949396422519899249454962988573566269383243699590372274883588423391360242092633836722738969738714504042177726209935678169245203535441828497441965549286952528561236324680455724969960696407738219283185468726361018412749610726785391184662425037884461978233904349308722183582793540794870071774712149853346990523876547152660328895952485518864909880070463235210017535419386597721769682852867541365016194385968679955538139317820430764172912089952100324242898775943537309797459372859507401627031593182843547629394083064446013910201781593008987075222518388075930095198552333878251695269036149856964281415104903173765382990425419049666261371117313862018028819355597430682934786937225389462570007356100432963612228142330957989393572365276606464506483499245923895194741595874372275861759290470519050565104911135189451381689598234099510323064243491161057949632965713925546236588099688969127985198599491174051001009239885067438320222859551045113539014335372812545808883829261654560285290324878315356635046023565619981904440462440468027576077725371424018649576083416415212490502905254252481000166299845537802638944649468802334531553161462528097899684252338114913266286288397877078527769915540961795910797505753813170201786339735917732751959371776921403368004379881758111403666813726005225516828131321862829517433497300933083076953714632449597893867134641256325011029042688311628635184298712233713411384242721422667013265686914849208296757228419132371512356438895796715882824397236454131201054765567792845619971964983267326323355461714763275972978592151677475418934244412461371497789945785604398880486306807587951339713909928553963936435452846403524458994564712601267305266697613482834076153869348815641125750002951215021390231274255922283701335781875556767027066467602288727966115979473171067636862007214218802091400129646211817329919304112279900294538111491040503251447947814682035723513819598101585471141363662408342369206016430661320756642042051789885853371033756978179319674460148886020559741758870821802453242572949959199700791252046118898559383459968619160250791645659639702925420502419325957397186818703485362583370232575146890571488501434928548884441391149625754222489732994759587421525348060506982664614623592325274552011387458619044743650431581392613809316125232304634119973743795942935114696359868790681072082268906575703490204348968817596498920354652179310322826735984029204035036538149482315043685704159392955279493489466555764517023444608753152522396453234368869596167683139356837063380599709110830815485005210177598084850847143240515560705531092189926976120116339844048989162589299719093897221255285325445174972215350664895511872180115999510350048313212372351323564543375185824511715726008928761011952936849444692442657389361748080112761498411778136736330109867039415128114727877157907017282631651009006362482438675368901093389109809151482387815809924083645008694124381104626531406090154330400802133350969525862377754172407058550877544578625978193696644077440667224624290266542087739280636537072109817439436297722255261057505024230862109695562292776337829804464994361064624330910393676342647770242635046172805628779080714241861986658191504368829363665032106036200577056513499304642863628618264903882040677586155840376684245294057440591953757516101826635068104435133736614590705383605326354169435706914566466932964169288327425597384732282156076881909788603166040773950909937448637247787771230469432496201928569931369375771250148300060454507136146153832193580834812026999984476294057269197737684172051692003081383750948478021900051575553185741810928348746667666058158112786651028644295339320122534343126441009019254125157635367510345356554128701450222839592138434127114663702630670063271301994225263212804166127255375651470828448032594185858478662039241949363879191868552536859737203158447983013543820573950064669269711875083223460636698872595748246101566047290412942812147446154706514313346816276670052578538927225502259581335076560490266153155416752391424710290414712949089647885067024701974288768885137278559843749929101449622056088944723549595347301340008652858534603949440572288794697469503628606535556997818700896483226046247113609309668885916732605105800307866051332877284493365621308229455516004717610496641644355173475037129027974622124633212897674070420843623505026484892316196627117903691114050177705817752571487442365177444507649852411136656145717646518058677867327852691310780214549600322775746833897051088384233442783664002833477506532982167089134924502752710692711303005846500918461901582122013424794066509546389514724166135434446396391579629434299898168213975507883418056900065959576104994967105132483732169202334214057736862566639778638904305168597256439893789253021631333379165230361700983519214140442075903413764984427746190940297625539866787111642470807829681244789375949779259850398204061546496225166957722450105887047525845353513630612192621262415648159735656136318925665400105908794680110256002346778655401575939960419753688706618406838004014575131366689753432055127959067956637593882594730878771266196336701424135538531991467339137378592934087567289457568969038775791530359292916667609072745501633779847789516639504619253851396966165244751408129407373234262594437420350393225136526833560259997304329569425933985781717114662885560067137216053767205303505198874141481856001620267488212571193936990552322628039800946715825320508449734902393126210533400390188644272693638953446141429329513156509135007066084622371780962025318194343816163649680694799934671319019055070725134943379002138709023632497176756590174658916601070419370971818630055863106195652693353650169899380974400711590502879121880165247517029025967668970226469716198239665676675827033896149036580424142387267922130791060500054814060514793460499452909154330651895658669997896701488214700747333605850190396669917428809355515864590094913552843498418986349939611940893770264739376161679776673053790604986149203117963881227223776716357910957744836714312795126146360503669688990038599311999788035456908345602202111146448589303773417920090226129779836938755085910438515479735613789127816854038528948836499455965925112172980139374407369638259497483367594984333555543411554397558565213444684846471127517810529750607045651908579620749087648000724344198309358127879767684789600242197194541040985840545952344302182968643487871969425360827891948905554158142974270986947192206767111712974949840281470067276700733219272776186449387430701340364325107841001376377787817871247454654790438019315878376016939105368622334405409153548571276795101878743756770213483560509218454177988342084456646602789305618155609778124903171050508071127767487825739654102895198417572219740750371149596072910586438461564712832148373713102724615834058115565470747107590255220992239079546135961295067174141391065922614873453337502311616421636622071495835360197764167090141814620386351141788538239529629895725400723881831328702359873177799469865000968725075753659752482467439122776174571612665094337039637731127285848396474662368934611644031571360417503408355455797612902686183640197846894021524047680274769522389857279688612791029626216913464610993042075460602211398021712617628746502672750519233507650316789535182309366536736235438106430041088279479121649457922074204786768626602408454511093014210973107229635452220924451732528720476423225564787178320197485124029027111385434579111504068087667052732036297415110642905776712232241180423782144184803808886383732563532544446280962629072897621954471144415596388500081908059533411115553241662093026741350108679690027895095097537239724735717219779256069678916258465939670558259257014145423221182209764920433981074324331963473544495857560227960041320979447433163290503392528354866526113088017405506360830798680659186464328981730910699814425112105224569358314833949655967595510399577861762529709620334424739164668485206433605524534862011113911181047453235046097432772271676249182452995474889981699805065080372238623155918016625885595596783441038554567326185356422615031592678337653606964183631920872448449243747626173406869113564405010486123245579299883214910680745511924805642278135557367892863557754247711753569573250445934296566292127911892044205492271397712871372430147833521536359404080312037802874764007024843850411261051708754336056025166143910889208022985001151134535086520114427553170388200602953162286294662099794259157025428984441063941373069778483871245866234063432178321770579677778007372826939559743097805947736437300710762041067396315949878405134014820755162532454495601740705228673309794078224680639171512704162820041717408929005267933549475808323943370395533859488252542392232743370604077522790235001619371164119745187234065368260395111069624197171291328700219106217459150441859865100404330084159613241472256097900847542360189162164233959338581932625118985207183603309198203800409461414478809151678645839629087988957946619819196813270413391390256733523613639459947368175454236309531004037612102271439466518353788401832421918121320632159108644130431285337482657835634571441205752958798109916598048652652587313489441774184361621330127887006326989046213248101346645647761195185574525730776164891570810453882647015689871296685784761935210108963172329756714644829208228071818366277912028328872531516496580880660193494453762575208571110030022828501266022755941724709083821554009188194427572473530141796465246406342320868023191574718619445777982487935907284037890218766454932529572684894516172608644042865352658195055007446993232894947054992973736464371642582803233095708947283849800082118712199567708905985829699873806703906089087118821349009879409784878377524414796490197672406441502815957316587699289426695684711587848156590850625006417860596260052515688275391994930987170900680208934546014895541287861743469399015163603286337553227964200041561093919996077568782046289791512592798820020358982224732847096112997952923094063357286170387934799082136632595725659449765258670767975259089333174140112322382412610907321763107832291812527482268598921367789760775691185471147588350358799126514471304663698723965060984310544848578837134422541177383140809275560731905246491299960847296797094512555751223830217157643496192139133543912424337980786491713250441814655145224592099430597778276677282309193683316271899775579920692739682840751560337735191650402317940843721609197924345775265871920980221158179909530346596496733051576162860979194270740919390991845578704008223418935731850494102627522433450717405280701083536899719124954301822022859237905390114533508399907524127477021527910715715430654591251908212713680207077648255372533347748266808489068360027018947355443194290809872710900169639299176080033749930156482618534183858409295068870009745225536916568648561130622653588866773059222999693509398867001722752116849408076117336489188478666977478326052422653184666094993281425054699896048958254317772977742644356244449307067065397814474343374800722940701272452064772735784301332368315307891558837753017050421338411304522147969972936889079383871382589491219593113204136607751630788778210440988497747871063406836897814839291611985769806368884363798100649555471910679022790749646960115070804280331605069732655099208036272863811230448298957304900749398184060966963401649900204455193012132145689061006670424024640146622472067862478593458226982415864791844743658177844006984904106425409152840819854808327317161685275814512442508797179734265947972111053441684856034879961741362131085296789401672457543637214685800882604950790756580339413765813164274606454348735659781181960628422420449825142127485109876098175184714956602461141729377683200171829352818584623091337074328505959496324894679620643491872011501302663228430733703075887326041059156714742599169213538327982260705857582522437943609670815407714175843285612785508451405677397555367716654725356687292524036690539909975122493375763364221831707965597886858199261795163457410721284723514226648907421748153978562839675099330267435664447460353998958255895632782250930772041453182475629896987022073087875381920997661269110933645893900476279385210350214391722565658223266359140075851584169984333981140169560855549131758443798348083397999789523551792825653004588768269572290065071417988292497906392026760255035218574365906435062810677712026177905766602285037182810866776091459727604205391630674369780733429191382259203847391097257734973681906937307158938908101287089495787907169739953215136569207260987404461080739033672463412587000223403554762174661775675858784187557502985815203249811161745901429401133505963363506325529129563975161135135524334276144468661268244508259632405284351640785407520351990772008939658436088079503306173884219302919431131176174718194723343807983189066467897613198947259247802175036619768406011139778071019671523394006974139314392018084509995013853791934557440642694112771906948708667452561903284635657471633379250597116569201706125633599295298860357506509816492461629833425144891068628606422634406371706659527132523927917234424419083336831106049514435433866058177798880121384987033214319922012272171085503625385717355910501817815894550784319396124976373046225680509872996234787325718433026573449148126101225807332637000065446423606183632884431602763117314901964297252741249853695217923615254998594342430780358111981592501539750323117235840867238612616076188328782477277092588151000648491237350719068239779134891945856317449164785966748442931426320719985044346232477654794834130194562070918156858151934098463179656050866139288125346373795886733637078765623355812873805586048574091283861485638809442384201974773202008899016401894351129228935030097583449463246345626889512616298151482500312955173074265618231156958415943442279251413666881731166040964356820820221070864421332223240450318002478223608719341391695909827245200622236568891213561730663143352003590793277337231222717881715624115051610181530430378619551496158877264188954216523002988453364721468591776732963380142062033304203032222434124061484582470429315421251405593386043054210170594891019159757523962433665594866275745620664038236144310454172958092192065088921715367099706928898410425138821227124889405635892198813181648592556713795208906622058525121902228496308525490732989528899041714334225065277066707682032491405020464590726239549256778277187522668278054207719546978747254979380001483560324920360167896247569760303322184278365811320536615864554332872988527266007401302833827483341080078236467056377600868135104481572316375256786568519613667249408107776893769991668720419790993668450764659479547772415567284005553931719113570955274537694783789740839790115874034531259013364543172024120733637633822057164377097586460120399930672531581091018990474452632035452135933344122727768919590580651854675304023931402138150982270953776811469842949112685693466112940339600885102592278091743989464790244600850640420604964073261694275657063002133897181811694908813072885844253306410106923199671171604608291723549161112375420706811716250658830154878581213512857842624629661367352548342168918972522775618080350367817017382413639341887095469338922638271768754636102111057159263200697364521281659506926686536394786408312535863984084482285897328489153373636505867434946844588121150187103137300452836714811356994732775068129927492754472470703578972983430824569851402351034340966270358501757299143736015968876708426462893738655394411237461769898030875874904888647040015898137453679312086468165404720004371470119275078062866957595023808301445566876169595633086426098477658924390766556241419633506096593304896846322204148506230473356356276656588488918274218492938945624692861349008410524875224991208487241420015178183344599826993591431330015211707464198757151124732030574198100662641670596530015236545855934277259309514477437083085206039241794184039451695094832575333270546375135105941434462763540878504488814786716991016302554041232095489957907549004458862214734732199650822769280367160341825953241179244076620865086936847449000244584809024056661050378982510372718261963781646065696131589922313289846451897772417459764000748483556337094087611879226179288233757102491988209403988620915052931287314829739723293506711620319361730787897756026110319031837777560028389886954765386336351182229445994806504713182256622264007891059471285676173490739116467320321528830690266304314329888073092925214444616045369425940396201120655643586005358652490796666420334950009037113694433062376601624697864977168477650577687452494657916205075910833321436644261618255886222047360233534368608072600910436862227848534844649981830161247408849766481844624030838225561575405957141913175209182797684240273495196593731549222311809411620814650760170506351623487406849251370320803540669502992455484101462778469499090798884230664528656729571424141999497507523923501117120847757708342583658930755853293160081112967024589957020084659053376588158774603033120784138639453636819420170542351092712715352985554285571758844233241902955273929619719041416378619022388964091325561116114352374974079947955278492162285512106152161027062164642224891443444123370868158920819096059625775298820908586468349728826335424200413812158526745260432929141803659709081395115186844905500755528043426075765334886674505142821223096485296299493488206569080958480269177996193421043565834864516186780790181683809094678663105321581173551199292208680055506800672565036421566407962372227233824010182638569577301476835851267617236919078830423119677968749078443081687515830422832726759683551177371377988793953152962590522782197095196998926355962637145406379208887347147272731120381964445831765678299676633257453341518761855624711722076359718218495877852453515215797668197183386766789552176308554331360053242874422829601318036434298806991889693036019548757422902943154128179616359830813614168306346587445410955450204249201585679493001751986770607439777384839871640945303750146012909317774000242020693544819902544527692267465856709275556274041308866182952953937427948708267452750655297398750027066462052593908354355849337436358634578615943537516302168367519156598451210632348953873946636756860644252158750280208994187409738961457307898077276702419216543071205173633266678438475498674737603651516643364927249041072844281434581785202307785699687657016215939201952986473615226059926627149939869787663342548689602679969531307516455295210269107157468378652523108795448469808339860242695331208135273454318026473268418557664603818233696818147983511384913129859184709198144207857755131420457024272912563205730009190727247988627860455722851883209858321030302918256313682960907715049223693215521826260847965671671031511085273381353506622602841718527796658013704058302446461206904499886900593035462876565707096292411946210275460771738140226692430312783312446349314219734062981191375150425682936941299867969980487912451887813636650477700667781650166288058601840777006059611920607677720670607861902531937282632055580168957168539217883244095822597201534250652971909044655074714817525239072587177423813738379316519601408716228169143949748954013451461770537940186169632384390580941848578656774232434705071237188326581063182959198398224049225209201939324934419906069918509758205388568312371887149617229274393066324270775015183713947744534703053645833184553279287021828533443222350653250468619265191016295558618333116123612222894710579922741748563914243062805088283175938698232359218984846888249388219725567064483380796081344429488931750699080056098185532768115610755326174314293902124853301896807120784739639701775638503418453968067632681755521664561835271582494757969325623838898350308812482610384202165627947690966678768330957199422466987134268955039139810253686272141695228202137377834455017089692066600207363251199298859858675866273134709789520180445300093844867839245965389357755890385851885688023301217189593177619112539477893630289027527038645741409868854876034902312361888855836241081980755564152148312543163125661441063817520029673984694214352004803513914821828196292501315470000288358030561836940093518747232857618081813945896693003976318972908520316391650752655762387660732136775067882026359532004337759135151960055596951373879667656314305520969689375038632131230223426036112662520503227293121254441849445545947502246773806314644801801889415551886187863852664405445455958956802155851541653886030057712009094231411512067228329602477749053447955800638153941898984882699472602507357013857097424681037543138505010664610730449837578574585913822013644940442882347794924860599644398148636560667522759615853313703654641608796717417794965914267320101192252353830359999487442098745741438412022274002789483782447724029292510744969441462657590011405748945283774330468906110370665688662502942432742334760029835894790981461853592757993699901902818716452565552808947500141307154292006472706997142449790788402465424491319812704281444871571414783255168101174726643619323783379271141528770640988194879371748831772682567021973732087970321222189912135367248270712082012098082396064432762570905426345901037269987513015511518849095770534671091146352922007048775035518314636942973513208728620265869215154507158914636369353617621096346505308344055940121951609989823184516581115677805113575215346902085641484253034675389862132065463910346258486058762884794590080948685400966896395265994775044094186340844546224067027681977515174308051514299385078817624178681420103247813438846471895081052392783880220522995412004965406062372366967982207525442477675347872072082626649334377143149171469322789304387951821827480569269351899089280791128287528444791674413171945838256570754422869496619728497746679437281006544500921353234711265781675904980540531445768817497878401463011863346710967823138096307076719846072564489794451687179225636946511517411474535173878537669018722229946251185877985395886949499215082230628396844721787900107633850296233759712264104552126013686344312780870577826636307944991234712896773720162987124082994750851103858694036161712053825887658588836895761593368789308165084508115921259252056813059192887247661393136061114246081806040979412555953694746104661755533698515019097598503956671563255928413604886947463232752673924148383017910138465456576961972822685031907224733486976475723538987519593785997989196227177214073353253555450900668647698268028586445389262060590222687571657003601924721355622988690124654479071554275229533159117874808961541769538825321703823952424531250713379362514992259910761531979127980684342178434489709164362752455706759314921002925051212889779406187409500344889527898171934652449988937831853548610806351401363292011883589636090714126043147875276112477411605488982437693515194364125865051507787856778732244295723715759761629030684900630300273903571339006948113805552202004560605598590802578019434005777731150518041788003759434478312616303888739535635926583246004818763608221646894615876564032115514313645740812379814816942834103226036530133057881061313839486309398731888788296894114414229097653413376180542925185665098061973085245254490517563220264627087095739098989245983786334521820352301829997197971649841059872738232000730513360584979316312402240390019036298734460188556004850854668593718488385603838230395226585840017352032959260160601201856125122189657342206777864212666027788295068490608087135538910882096022185528188921784604082430718740160007229257466806265702572776518077121635156593757884189856470060370578477361920501781790533384030903695458478504913966320952228203903465711474853604801192389912821219957378321013159712974049513314323061303516843180029359324799392130708664447587410541591058917517261590996875336236067514350670182038582249840140386881331339271278849031222192143109931476161664852141635225382301444255418204074900374228565604779741244218340017865386672031320223880962713871218797912589112191178232711392299259156799798359731280258396277611095135675121868092454633525841667819892642781733670710518529690832105713367041093790680486771716605715412859107105399875581346456802017615581382290494811641554294846333863954312339461387529845629889607505786927258133765762841964958600753829300580186920666801437063414364343582792505073268810204903286985467508261000265006920050390580561340584877021210360563776522381579273998620311645510219002608704353662760793538306243217930252525512403735804863895329391831858388325225428950448470793075790011000138259997472612930548558420631796354773376236568534763611241622200298393765162083461977284789697893246647294278775054173319831897361711175283566389198955857877000332222348745557138563515356305618388264382488236244927369308512826246501933502019247697423282372204765764753899727256227362921577433670976589503030074600386256595456560342659588525628091429849209020592222008524482817719031449737295358712096401214697965290105643745602673923608812326401064367453023949237627983769041322434901623056000263478838178252538716689967853725837611465668548777792767554092067944167000058751089131648715128327109089862192506426765503136296835578580630531335723864031630849657878887582404595899642264701643576907744410840375563897970428309232903835816394371646980148851614191159089442064007997321451787976843827502573721560701906590795736820316729085054209217336884806896231853887863279640483516744642991036827580702306502850935751046733692163294771649762741855909647259071651253320081493915139405793505657924018789721230953307939154296818946438419728737039745139039407263547485484478541432237997661029767880852347867168865181465531510186500061669285228903633285983067139908176502474849439609006315179509384870188986701013619712351438700133334539284907850264840371098512135894939353345961662050687695027423525227753620584075512157008249997773539087949965151528112448466769566534150401574661058022806114289971959785001170981129103946387723478308955818172242053272748507866587623972601655230067752090631369817316279471985249240114707986857201639707758658040118843269697768978505082976091020037440054946475579251168863938898294556802746663076334235957612155827467696768925282280798304958622163576209757073479058836623848209492718486142339794058784353610240320718915527054409945808090994501943428099123993854995116595203851558534973471321633725504260678346903994390209642029535966784502674574686265922457810645260512435567876428921215473865355783353241600642613245173648245922774016746150618544830397507269650819627639023553888824318794382884976883782036084439151988545849052768236597212691275862289066788236150296088284433188595079992140538144144758021930755070385052294589472163028046324200786020741203051844474720613640482055729788434766472292817712848300595244381846626204776432652841964423674306743952674221466775695717989496837156397084670924406721760634951649052522845189281824280459805763034132185627659188252224641462887111830963037409628594672065850370731018863169621528691797310409056937839375739240463714316411752714214142521026603593301760050792721162748127948252904121936614843228296341328654942276778328845657949101039071076086990904995270390870440307778159473891316996398505726887333702920563534328422213575157270188556184177468482883782278593474326167066062383931361196769789443464019373730507882978932846035551995482016770870077891682197058351627762131704527823963985295441846562656564019993506690608714149403069711368454739505457799588358971903827154778705090392121923681963439507632940460895338014998190714181162514081762421222688572324611662906909877898024117758246959027236909178891462452480147441007530408105367875803948116043195766012207188562686980028112124659258309057080741322664186736721116780342492960633833539409646378487767359815739732172231736549445118008760079683820972200393370966206265424837073170878303176453830094325032718647708703965108806947469284927370893795585079306613585260447004336911424936591500847578451946297186124331523272615464426783617037840282088519260612715404077578242103292426754279625587835739247798213182683561294031645505335568332283950182965107171205858507870553926254957601793819101920951229030864282692941254912717337915816777979279395795017377169237663656768262171904871062315722974238934761236352111359667246156027947527829996350465561410787891151130806666038312816325676683277056783979822045181797634567635942250806049141634008551009371867732955687133563529249753370193807107399147251785902860667239147731869026117678741757374512075880103861161565110745797483500084611520543998024468916918293578162140228150637972059742166378081427476573657118677626737042707463000948152855590708451161252194118709122950377702787662079442715652949787368890402445185073772507120598780283242367193350175657073484548314160116999132740188984451032642406562663019308921574556675265521828835399254816834073094532402214279165325606095252824625330540652618394487646345114254128167824183843982826354951887207962541410476385602436738739569636368217704738924051303410496012101738402514863100166259573602840841808546672455964261714495311477040088608416338531066816723479849391401853300263995565462122424556559656081099439602201976798085981312577196372339481784546747607747292229649335629546565837776241424700631243479741933155630833396114262670801362345813268047315536540416794311144486122342489394967712822876104385805997918551602443143769191366215655669517992004410643014623845630904241620905125157768567942908378207008911832771671644549844378094833847788724948110175995502062424906372201227986925820505966787226384408017016251853023525237202715301509782186175660236312811605051940592737263106351728147908961294691533746458908831039938244317265828249725570416907369764728689993739140443152567128180764777923598044959357166896802164320556515021200194559467859467402899059995845283904135306595951848593589443402095501460623779043826517811869016819640863350174884890187197680646265314843067591316805966323793598129776133870796466005261528718762312560426923897135642737144789340813424558211322433953037719484057991048181341197996454761428558851325137062372686914187437843849558245514911229386163313663642391643734197915918196779262681295685962734810700906241128077550579985389591541617769444500078073658838914697970803608776288087814564577920458710414279441240713623553680432012518670772271887902039826427370126351295308258676631115359950347343048020027324016805655710056119246678628803324090602092234808909462958075680134490631926342520837927118128515772491240336126865339516457422851300282087607828046377919486520984817015496916732688264074031276396260901199599753672457547264389787637194853371045746204333427516082855928918642538561714456331855791230400079897552503255431598545763185702906786203464307592331828287300675352192018464145489459996539995788874757946981798404498153803227797928545609615297854361142590437123223262565261869384221249341902444066584211427483182442154070392122901676862913724288182640896066231696153769885431577865875686489401232760091212907429695832243032742299543712793032479156457117715450946981149938728517525707049633793554470379122365822722375070638206699942077388653779544133817155882399463176445627234587130611384848087123437574441382803827216124722961233581890112150306501011385654890324761906034674352931929949149754885050324506128775329928317415461375731118266147177192656472299240931651926431088318574413042952725138656393738115307580428552036953673889699797723601435119138402837355847317745809486294830832513311240204577642036363432448325893829025169617255799222497427450867397437137621951905639638080812513443363254046496477715926633200576688377405985554698950226058250585731375610829016638326163390015973322661659120825959260137841351556270258013326371422769987995027322107238581793147980025821513820990655459766493287338432364240947342098169805578450520714387476024515370037069910651667976555953488056020597050233463216418613547771282732946016751002983873228877617219951464532472936349153056975049052883487759547460378154092925122802897540998008360695136497649146020576232249009370178645277503732974987928263077748124666354181064967881293456213574576766669690435077024672964914592447929585581055405984139304201054776773600292107448774362184556959634740527389491576305367744874606037813983612011042229722001195607722136254252316575172611974915390226454280440270231847032055466519332694612831321722762791940040992222312317263828893318232939504691828235369179645532327083681597187925688427909734920993124597981530432501720676001913030653714557478298815220400669117835490935090550485229097965241180016287730647733701952063319447541983536629486838438285832633153358533368389783348330723021691506037149565740727421302624544613711752227723830000959472352879706352356722708898303153108429679881990381254706644229523831001155597046537032328563767956368727637843981350418862553547185991440734318177694203173739671240341941133431262111803717959142929628792323629351875710089488798030866935183221483242030600110239402429473902438450430727416924061568204011126839444340271489996803892732185387367896553326250824139392808505792059485788615151960689447880185251572202858552416321476211914043305142758437309793505354471084141742443419039735951795360099999104961564322311812939311681297551577246769644265403490550732275351646085928421852395865311445639069091898339760264561324910312122045174915938971936947555794560077710127736536665905872397532484167885887694398098027059739104073013269036469785277503653336694886739130299176895489112070743222325595903642236893483984962476856814750647816024015996385588175682678395939764128062027742926227979876602138983293472038008819178486449742613093753476076832704770141033497495474232373844296768616371271068210892665124547114373719701850325222318964854430517081965370756142943791948715981055240694071708005140596589772795358957873318572711379352221394200074429198172735167127748578928989189087685912299664842279939024785413486437524481028388325206744874418946633514044378181627393906329225180292110931416730784330012307538656294613605044601864889086970396806242156549396325463177885102939494852048469403166475576790487744772664270178886199302563282993111794794243816169691750170336897059526202789779248517263326181169457332601680811173162489054779475326898021804595343902699674937159986185589155006044687158430615843289295946849863631670593643955597510928250448501186455518417905746691062162601929291540207176296642804210100647493829589801786258028234978638048220335903702072530899100457230064836865320731570227114470032256283655242835144666346719622259874276628145109163240681520817636731069912052138793504726196368837906232508009817461853091687589373995901978271567331042867649878089814458645919186931517329911120650760415564987024024852206357717572268319696712220523675830647143132798446980396506162465867664320592960299392259683197541733381321067307997788054287485782283442518404436649038519419249298779348049313492105205187064124882266993461553002426999398628874820333013315414415762482677789526801875434936989917369493858718669493649440657835835254733367756292362258531668306965860520864043978919942197184347394027199470934049980031599153306388531059531979428495629454825858710867703637977903767437547779602690824154904810849670732884992102304054514766307608153526382635485602199037039903796405229291453041651456723466447253656979503718267630898077916213375303528725866753013335675437555075902986012169249218092981471932763398997927596962204855859261590761611357941799187171884110991751021793246444919292723096542179170639636017760452983620980463994958850040766526765345655266822316463535896947144529387270501571307421492805489486979226700982150885834982380204104831714400659827167472346036684373951195894674995010139549131248262016508941965162563072031740832614665140116005777670865808644472300158469025867877448885989125057013842371909501406768991892179692425301125722757569990059049631981107699720941733680636491707835054055834540479284466380094043083598492593693058418492143961330390436348098756747409897470479474428398326199158426453221494307364752817530218008064602652142945077765636115656170242779285112111640381447588728799336128410058868997655455738340338588914378989638126332276512693232850011970750371413300225059760814443031572154399180154535812360642112844782554697613364757944008679471332413028398312005022424491405226439876978667986695725578394511231796731811611251195950559927527337390737429424346048789909361156753979702068626722078558133303645112025079036488111687449528524472557860407894141685946522628411081488725506091046768162376066457320365544888906861673153437318855198041971228275701604294622385035519366845480259639382047641613891292442052022528173775219828489992840620727908481334302415403047084959779860322540142613106737803249081609574684025672060462316484695194671863745384382354301286152709098793329710560599535520340301152123093997090583229900755667955536546992095001688814153738847071627101954367611239632341039244062449905951254439156094236494367163585574041668042564840273341783400743854982021797832751417992727226857270624741009785378085228486979732232723436433714879968340765378048035791074628203556511331262245122123692547446731990439631845831248146049244772212231824478770204597799505878251109360397767417472973671382169789740686890787706672813433922228923079043566638641171642705403264243677817295123620230269594143196468865644833210520144829504846440532500423616473339468364916474036411698229718322689598951264386493303857303685993500156438568598543277299199309836663368300510899207494490488370511117804584581364128311758875388813772334963436447173584891605624752380147952629916322202669102252818676049499552214075763381322772561392140038139730346348694323564196390772004345552633581874208207156287824049822983595936191434442167771585239439738894624445222662922481572465654792548090769846803002510685846815814313521579360113148485272601045936807643177628245458714083293855610348946169959242966112622176800823026584138059531924898188321821748621003674489739097825170982591912826593639880876547506736770820281892098327345515136103697228977363999782189938199669937454361434576356119564899479619160405966347584587135326214984963006419318337142722669560290231624304122048800515584972240663233700452752068731864104963678048936332589831698641775306044874765774945033972501139248334283485273542334816585983787250672807063454876413376190576603729620406949290905578000202101581240001680809848635423287853118018505525041142749695974712491946207303879205950580119958283091997113636389346774939778800424794830940116190741967585581003757661941860947380483308141576829612995619407427992707115025206222955248093559076947822137375827512865660871099447125850045149805509549056523395125069103612324925863532286098762550900224463760922972277006470086077286395143316058801029322665015720457336056135512989457554762343044440325152888344574740658137210876945792269149403289800672779541765384904056219998446139683815701137000316707932138242315551204862469247594754326059310362726865490220768712314156039182933700821779330014713718558033151807223460302137597980112470501622526801033872626459166530795855683655456892586802164100100500382338700593606202285054864485373526998432862717078931020494956822140211568927315339688957223408814444959648298208719522453751939381846184217718219090524450747663712817991519807637367393349871316412770415436237841871260727908159731112256915622222925185076888628762442341546400088755419675944299417394120653247864576977847249824258957587654936171320771145605939446374349232521408288181273852323491800904884036673141852594608467646936817353236168804743238104745883017143685022485067811666175472028960074384826186132015653874606136147215478880682694316813011760009996884743721544639192312412813952923947153774804611360524419553817821532156933467217791922088756143593638838593992932406983777157645176400161747065624059824421246398353219848448240391066520055247229764927874110307136943325348561703011425926745336835970795113109217561380431445458077547931802878786813483972832659702735525390956676406415997419931203616052132628866370936255863821984183483907238500506636080605753874590181045387882387784068278379009884015817213256655380559525856241700698624334861860428774853828037350800489052994392381905627184430267700975397074685234993220038754612980589868735624084587210018752832357055459647859537287274338114986835043006006611909820686437067298975935449849755345700691469156132601144120384025829514880851452598896322838531134803379547129582232421644242788874414959310734104885183802158235260035279731654404472694405373462338607093116111674054720305693079856907672460722225510833866247285430161693172465108953517810265791581013284323448770106549870079890159024135725499893618034673249048859333268346707601944241117863474047218124954754533839225585168614715245351635093275720038292060313040496945920653604164521142509363523117948614875995913983992215483553057165494291921567037795108265568020229634478415871783268832403786185289313893130334946959310146460550565681081456204009584321206010201310335332378387770845811475403637182765196861058181046238454161423684988583705611364595822795429527085593185714507114683385506625747608648005545954195116428872138115361045054890129758141834586295846098018955884738178554225342848931700424151871730526284990349744689510191704348619037751133930643555592091034666544449620690887292492176225862257231045416261157651391773371232005137829736483839898439518295427433749981373246642158781160895085511585049828804838604941637780752037176966389704057560183925042857538279820162608525632067698695599119552826759074141011744369451269949505942813511159399914086328247656630426456134349121630708798287237080544214424239930459173925172535795660631621991199307130430064084061821175902293324888223374733478849945632105740852392161513871573883377689188580069549447894716930569310811807471812119646131231712788945431155157850848147887584198823658300752908674347809811759795224779870093177413305654139874315710406546599311868750456101507296144796522415154964046103052565615524659511184994909767000740446839226826034625720012059750536281412529292846544730711961981396266810117019900914894554849035776710049427052082838777896980470382633945038832035182046385738071751030285050778681880881770473090575117116985519852752785248368032262298602563574970208179878562842269817698626137241495367324096073876908802866268946575496106805802301643351134591038739896300910582938387673241381967054022055929811081355537080501451985501489976044751567276431271643099612894806587307196723618060273728673649371284529875947960393484113878468499269620787856460505597608858341233527680760518967830360078276990192824599916241942898310403908595396246441671035929089520823004113988876073841971661625292549023742907177669373068918193406928665483580891595934946697502850732483475973894350730196385650365451692274877577415761802899294474906473303255348537759363333808635473978965927848974912721591355107728311151193306704401440492281436014356193350370016744627203800779423571764714482990752802636023753733726057991257560910597149498054098901395939068015998391883181769857328719853034091228939318680371040436539733121650977158481150944098010219008438635540886453579618186312373938469004346667706188238545098103821805749405188657070804882621451869911838233885601472903976704648588210424102144594023794692453040021117063574221761752490831542046331966518830900850610079039426590690317360970342617895168238464226504781958877184577240853025391984182514093818044444413732197995871975712504065747476480749984743615927869648741116309883734964738032857140991049517893347253115997230801209822384953279633999074559577281101358866540654614169994258830760589836187115346406804111458352105686541455621725063126355741926457193877432919098026136137365637286027389969347779782918947303799227016963772768680047223248761024137827584286787982700160629906038547231565107398169362468841053686846502288161853863009356212550885636433551125765586272709663730146431140611553559700086926296335113081662459585139060893839518569210307283211155816108407225709624616606034378745206415924150901992288018317759173257381751653474446661327992856010125333273884534951244833853138998436684548161276754083660541948260522699939996659277042837278753566219655912671141611454162472719450531486068923098874998297085528669145090770786376312949256591933596896192257633547289716734112274863265269520810566497410781264728885956290311939289694585981744021515666326884729140191500249073906956406478166513613421319939518305777733844323359270263243976309846062971840502828907633911982367411841545932616708361472380062091113574047635591127791119250886706241759876838659629333257260182279492595060944908230038612363237262819366783356712025513155043752119814593585458410346086129384157945478378603111373386061384240371704793104071514047365941235694042220421594828105674385879019814960098157902602774011658944928880702504909484290502835057449867208776224020472071728997378675210848860145871427294814740590813291576556725100582399800229871028341266789074715324089042808265056474347692866618312746045805399725727733546262189928103085973307973657800619473090562009565866520200333243653637356164384728123434004613508466798512591838594940137236261344225951528755264759879522136491710740196261066878050432037708007330925119530433177899022386569778046735244712563837233542075990823886631130302523768970999264891766964606075963412950674433138443663717089343659160227436185351732433798089263817331592999930683226471021466235244292364834151753632583163066157839443711834251225209882776704393501144343739518330340119457159162771703871949207481627514265869488493252819804786361981385897413348499999805479098113667512599116002756326860150064904593825712905807129015363268125962630914535701772693591305549473737457756415188403481748132591390553790523199641920856992310787894129086284209713480902968568795840548322094235416849295223372706583579610557810465812985412835798790451039655843853194955388473549357570107198517429897830126403468484093525935094298299003305591557974653806809389680957714234361496215346413656929385921459210036560231635386153747244922003919714734161152915994595048384061436193399001261653898153343075889898136467592071638804498638414890556303900348937285313102128746694183825595019174131966562030948210460243571077897562673768876502841561194951001380652746466136946526760162866586982917625034785038330508556362160117944727235783216366605606672259912339281805351170551920713550431694306745035173121475027828513060735180921927592566489674469917702679253658523576439768193227915631992475194183188547974531890960355976718313515466230608569594090538682880580977272576934614832228301705448081747945334200599974682381606912686316177758587008371244043250174378995155521473471135802010578234637506408168543139170917653075451594770929604670038558201909509848910642670030137675734942973135487744650717887376042085071737186904234520304745940660305495546303290869798182929071661724261569383805389477859124672951624853019825451067295440607276453225094537270300711849676614340706537524772851944012613605465821763010459357989406115587912315980258041225937074246139980444773600074508592026887436974164882398075631351322482938847374248640884694758740455902176950981377420015858961191854976037771518370494473618908126014642063404520071937945045910121072449233817766727242516313615727133658802181230106975002182217140385634744249834098092415310760000573750015894084223140575092767202626648915002476329716943767781561636247788632984479983663103956384581512691469806490851842639285977325716744074980969840039642618255751085270587546637717054150955909931208337132520864412893192634246386534912470993111154795868963400426833311140981610921173232051967369831067329715159406716625659266260600098278364743971967028129107060873917134215613038434580002086896601185303503277971777014698194860357541049140186833984335891280959584882614228323583526927283304026776128423680955677722961637263065805432141749041260085058462965538360050887958657021131059327617556853388297522317903027720902982994676432153233556159158346559490111798484970015118001119653150027992582780905484752482235583465714057586637916218841459998086982018635231948279221605027151069882919746234845136840363081407173122231711367452546596898839581230026137385187017108680304553103807735683518473137855315994155031994808802623585767987335404862729828107679044072939207532014759848468509871321170808505239480108085582875780338081329600291217955850772826718011666126336395443959891469738987031958730496841581357927463517833497030254501490133351335022659067978906492157924590551867023872072678248794006277251231491033203769693888068859164191893481012190090619732797032275776256681030504493521851764018263014973129805319048631294374551714844508660100966633317092933849217843088563304078805340224573150208561002162870406399260900352544816002798263659390910165577628544144521201331172546767943968365439692327246112637786745857090604261671961088372827058513048877788465103399696869822602256331665503488938586158553722508778391176403644327141433050304485846150606058667078813083630069687981655569873520786779373960974942185913164300611241146716032123929800225870263871947503357263999104616686875551635047665884487003255058786346600745071501146713599883133156904759439850566414981944813078479268826281446842473791942614817739031944644204762030496779076415804439618612847739806284189244285113029813583667424196662805196905416204256704194502725204623752318749025138853989464788367383587001335760619954591101738183054191696313290631730008300475319432990799784073261771589820082169336081868889727592138131808148396408007260146243611112292559018351919979742266927625179172945389085463207606315414066890855116453197195400929525087600246418531513245846726376866302186172154385272218896393312900284750007027394608046414150092551294421277585743467252090738767364156666164612843904586746309336028707152473901158573478080953525794120128330833656809899679097593748258700972885321437799038517083677197761366704206070362472159960016592641616244747413145122475471548771668026049854157578416574207189694979356280862236652416522588918198091565205959481065653302585779061490649041301192399978427073366473569489464086311559980211102963986549046376682798596187868335153651504016741314419045283661440685794172800298079144949817126326830010244453101623185759670580433859996206083938413816233662673093894796521136536627312969607700059607700456101250386199441872662389978456402500066792965377415437493158855449754536352291630639746473163277557856246094666281577170303886430578785803430648354654934290891840363852970188486432532217016076445920080187519086078338738600085432056418424205450153527084514192693218745107346566044686240857331308632592967751325711543720502029791906404671390750495078798665640262322042646985892681340474857072299605004182447602290765953130489391986711231445499276637196171683866758931077737488461686693458963657105542942635629285506916238750833536299310572161474455445400412498138561419789589765577656650888110191604550660960345981825276953874223016798637571470473526516402988832014587200630833832334040514703077234865919751252414469974539445778264396816439356741684691386550806069779516580746540357736857391301593334590569002380658175048832249200414807521048230631341382175904594553304568363197689874537993654546305393876380790605283662563389974830967735096543162924399499728158761895955617188953207348004131776256100092773704134162236480286468050296629374961665389166615205194226726972382329006277544719996664524581847119969881044405452027129685695310621530763269204808124213834878624371500103525995011773008981239824238276068975261368336007458675724206856788015508780435609473691051404822248367993249793033578174945354814758344746277311221241914297908270253312878292723226755489753803503275063851014507389742016010498762784952310644736768471808508703640025484831189211430974477368626771652359450825488247162001904829381341938180039221091823048901650260122202848587470947743520292897923696265233284574524862982794805352098507587413212893491327893227362536525859732421549287386822113203381782655264726094075078501161683688541757309205883400758507223126021512801236197200691794653701287085871935180160654012084068056694081951343509350202423039959948562874435309962273635191117332184401978026429196300983886643360186989635766095774624099093591710589221754256832808298003744810788434531546842365648818155738592413579501155144052341162135750016339137043422093327402016826646919037100957025360235915136911882679631187962101147135945782915366141007231520125532239767906990237827823729363852923447002960495058887444423274699149787740441971262048578667767531262945548061718024579625075311998685577293753587681389247482420763979264511486854751573405176762572367412098442145934155690162482721168094766186830783607272283545224400474450686811173691305276692416716553592142974841115007480159039145198866374482234874297462277083914647607104687314838136192109909416569656106785549380513290983975184360783215114465924069835079530707531535626749069897918274771385667329436779149412075668947653938093234644212088665217730755983601251132213538538740065708081434025657691042666781164874595813248097682128959526073977779650955814863262807045910604176746593373325885540172965298135759200339726429409847324703267361771662350234592863080128383939486758015996689039630770618061102457254007845272956221441385306865017984059892126720394388555277357171386110431027200917460003119827158314181930696821115775050672392555215127270942168994534062724046370468014726092290184842468103705199160858814661425975738146424132869790971106190653243138068772319698162330539672134439412671374161224768513492514206847049877396360482164999918543928191451251180516948081699732705385694197462135622644076377171436516239884178851065129545904731088760727391399766935022665361722097547068582469765303532273219227162181810635783959332391479100618660674099170838608504062985772621565263705462308346401078359597138732581330837549486827839976223048829552342756844412236434827800458245947977654477530178702123848251273080358269730655338273096922135946176325352057194577868041998218864050170345758219029197288195069290379752775245695905627668358702245349839739268041412141944112042523863397818701744447309457381707661660082487012529228394296963599910585885968753594276959666373153393936094757278515809850277473475972469879077970358990130399549749605685125103776411439334479079017158833326831412937948620747249842664541666613147089208081469442344414838976121104087440921742204056605790501180684996913562004579738668481919164039003280677643359686181775015747455583963274199477724354770015895130635896894740178466772909205607123772514436313979964277915569215739141281722380001274140794574323155727999030094662345205557218589381433964129749349554441311455900345391952663627919402589563198270524755642545911934389272085699686778654401404800893861629713153543059174044269184841908002639282084745745850974545436350071274145274738374752174539901054641134525174646949247191440631663810376338609624062192842824988533740817273289577629506477989249052293782156814288381252031944833379477026048261454718807158303136149805759708256828011243851690174786495078852771030473959218441784144448203878335230541219885562277482430246517807551955345747556899132307869635738051961794886341039935834819114163901900674545777383510841043620386398179838305454048277428797650240164327528711581453739110358422529975411130771402449080648815267532121911182319118392984993004651619056201594829552369417908928680003877320461845883169009888732130194846329152998540856998939487516354466430886079311303465686897321694503746243076186414200998486404928623930505610701945223348400128227932422095325348598750167437609163059656177458529622785929853635130821010045010895649563713673264295183282488277728191143975436772319937833035173085475632561214534355035800963507016968112624579276209590896782504365814275417898600795446256487630146011299877787279436762067388988405090515563911197277909802560957639844262903155773748946677087151728122607810165626755424887138882790725999636841721845167201599516229363689967525600710913709165638146092924754198851226514876821656626295821801698693668606860803844490439835255005834091989833673032421178258160881637708103205005221283023703055406886684379164669078265587429328403922748994637120368367648685999290003489556939620648466545452879501369587836883050895016789528495177215599919833589069281588520385247337697245344563586674253601337193619382128777831940141435664442526740828002918483225790701999901997325774461191242299394488376773003951487189231649748626665838737481492926153756473923756057775973280120416863796603470127264315702224119298592265303627995891439243796143266056122846894369160684538166303519843547053765036154166311592275714069406699801802585398453903745828427027845665965789184134738837586690294792296785552540056272426537444516130743328141461957465471603883888549697339521849261179386165429303671247285353856278455058772233240313180253266944510959619263004455783256721552660304718513315867064897549955452236019923926636334633621412465168974612934145109513425645100112023633710265840090049792165142125151296427969558408433190893464502477201082551141790166767409139466573892280149865615953418446282551765732353730872493074813181250544617135926348010914788294852437551743064877632364807470590947023911029992165615769793943359987216268294485078745932659062150695136885752369572670679246305555706437339235150274695172573441100413433117955285707350730869261977426706790348811937973344720227915726390734604823560529110322412825796700607612798427231685146137918263191427092377304547722780794855181289805786281408147963949125261560079538743753495592981079115980292772316022273828055713092464646772629971345209276316598100718922841268577758689574826134281119985047221684863705337541624179795577776169161863531460751466877481041803119039462711161781215913273614448638513657453318260288937415912063480391958422839907387004953545429513332714571917348266405561977043437965498615891594393009261123901881657862503342769723967046897491189827213956046369843162183663183819292663074539004193350872622645422546446683593598970693629288976607312025547185657432068544040175620692484504322998310612168276905715731545689707153317046174553680522556621162052588158042392735606956510479134413443517676764962130896106364547581215896135354363690364156092564970694980865237537350879304307336120858049589024918219129986561015369201587787694839408561605983983941333755952156353339954144877481087256955240243225873153059249617203582507054651476903236668305608388419530343442456368919665424661668989629616820138891907511566507533343180038012839432545661869068465438901063639803152703446224501163031707503771875604374107833479805626286506192042245819883647756107404203594129541458910195553763302729220182365313504407396222614358126818294445469802177162068917474421485460132878686979129588587568205755156070916523795209308749144585032817288354702390231467110305971792311661274933983851777626340281671302017544254070799830249480198124549825951568708828198482379443031766685780480295569352701957640262943138244716276176189385664614622250353839539361831895383357811467848075561769130641581331036416755499208445132104691132986215557846383070909927449259225259979532448500248317489081933635486550969213082051211801461596523424670864010935710915751487737414203397169882807000752901037376310143032980974073740084822121867623659301114502633413048052031203930486260993808762933199521340560891163997374395451902759813595845978263770226945394004968356708012769248936544131757966896232395714682526255553469300800227115712562241180183180200498846223781051057778454147563995393229754325170980648262911514917884492304326223133190132201569746866221307178234938070883066737917446666482501790053260902253907194446671421555268224783039374360984019666366271496638332804768868886645366382151230274918611681384078525479380929720464442222483463377447429987808349861316916435479597495076057452209297924452894458713284665568034748393872694481408651729522677690373349031489515213830732879168299236643485381508670020764865201430007818304491569952075685251216834714813657444765335690667792392641421940003888376691107225686880614139803582272186754974403943833673005332450828148258675823445692675469590677397399263952470416976534415079712127136880507257720410207403720163038082613125854467972207456223476113920469125998316100157143952460401833303891468759513173578527026940758803732811438731903005474805510579388949169954824490353729404054738155489807210982033994908704386906384446060615943113037397938549971486877876363889211731229528040194843916760239408918610838172835963698144928007392803939408110243914075193781443993884772418472335033477536058186785884126339152418886502664572763137495443398929624610914953664315439934111895909739784581249622802735003671568518712367986752119942427818182836473710659040603588056697479718791714434337791191725291152525982874192393068650037023147823457934203996742636311394543346341956873600285992711507081440056668355126605310904102327319093872669746726181607822487377899607147369634149134178710839722937779669384933878558073861543332612297843682624521039875945061891631428883235959680814208352132414127707349000636451629618243840691129322079243313047173176387368313146681281418864341893675969372451476804052300901486101880477099011180627209583738981863658209752904213262304668170645899846391007953385213501936154157517239342865255186204288149368147876818832191207621096920091744769712103106475334452356984272799257212228304572195359130287390902600515928959683936173170818110374529720407835322932750837670715855028740692141278680743300382452096764290985840883819165191177905806320093276504406186948629880540770294850348041616893127234569455896922583149713539604373586735327240602343704119629714417635102486479001333192309137896822452399379898222506072442568744213109989925147486223889554902442544727423339322715890993176189389357017797279990220538906969494125889639861537029070489184567534235746742652056291812536046644575369103035545378074988114542775609385930992047815370025839283553135287664956474097146807853300668113854869037604504592813095131051078728755628565692714522949993043671224896625935343220400977385875366295538743773646003599849695414594687394411202526450732728001040522397554982109292037988172277854220130995991589799036672655994564965565161167579554409533683578208088563665580459397998417986689954800535763139004210170685598041642297354728765796312773251247689324258569932866684309113378725858921565574765097846338310351942872771251076051181443150049495132530363770588236692094139952971962403296976383881275486248559090634661280555843424566965176815627346196503338655800481102214208583651702190335986312439332426478546294922216046085005215059065139995925846138145391090118239680777136397081214256300172889910217611929161512898926203722498041588004415383179663397936150527080675909598693176557425457354610424287707637761243173515096079840657461898788471974757048008484690084241559180411493340814544935483368798619454378540229372626080861176374456522169088585565935032122563613488333133621988214507099846255391455238721491658282310563041339606809556440774067477636544033550801573811026691057578610572984108144784303205740899543381864407696640941289649754467195901184066614858087949894375447417859234966559287456845121385815328037888583602904903415125330348642372072421484415975444178526826407430087185483777854788723838497092359041786565399656522599140118549957551967676227506470088608496656865436216471452548743352366717275180364082530922886077336550079530747792384069421507819550075968902288323068215980329105520284728732493156919557886220563905928574378744379108379572085917926013214935315345333290188002867219392508585152372164110935052286198334956768483948412163385864006685547513927342830333286852954369166438904579749194118922036700744554976084246000381368732677300666421714961051482184362305102976464833577673159769345212173140982230109099602475134052659593861565274200477325243579658380127865888837852892449471661803764414552091661977198804413029451135640143822935945426907130028991362596340165724487892675833890943924343949614247781143876089186696756752343526517965242242344101074383947385504615473617386181360879675490975573100629373364985926831992537645447938003300474151417092756747707547204155533669474410322829009859097169524194753937272426138955180599336491800692397312117059316395142125668379233298173342871568589073468292099162526208183246462961490356935206943088613070293969926338346386868349418866272426676387466229158395866934863758820070583287449985206567667903135457400553786985364486683741299757970255908265489433239336710974720272996648924252800155261370627949901934185841058267577459526025054977665345015609362178165234367067009593661437795558600318094559227605051461866666217312060778613822802351435162092915520173288685220184047054883124199737856825597348538229175645735158115793983999025573782426836150554113872879630487882284888017869197256940418908760095487665078575507721789788888923384912732062886178608287731791539687269695563699463661655252228973901867445220732344169653064476824579222541739741393021235742681633496647905041988749587790631040073866184763518811655651750882628659606055843420427533316907208951809269851072820714433964162253313656233084037411308030925293271493847410332538198488765990771108402011465205146932552763444971640903089979775747686086316008883042967847187906402163248226008162907321955505522346402864776095897945839294358749375150110402689836218718130255859088865780390133884042490786513330489471911695901893311276694644844023423577358055940261240651125432074526035753588669039117032024547067791317173378673095076062093843603069959959911291732275533787020266857551952844319344009413332339569820743299618213031028059193639163737777433309436069558092586724237384424083148809885741626086319490741333747475155713745714281611809126481799203039153177213730022255402078593458582948614051787377065507028741479146310234855167851163674556295176644162846199395316129166088206715345085103746174584100263561363916188041436433995611865181682187228204054098765601011533663812880290325038282671737036033320774470190651286649847235225615499113450131681054596424999128712452998962764056557311013797306900190348460391183429136802599794114722535319389580390871172185038341882517149552531824915578170378645502154026040966371082562074901821350516795801007467637878171217941804625729831776107947584773372084702901584449439724046300252003878845654751623184124355239377138259752758189725178411562069126400282438879650639349367490606153207619673475130913180972768215099680646904295866010042502909258620908684001789773755852928944327087722323170258376697596920238264251012917420301278145810119392380393880373132606503937549803713812496533676063364865526831943424718186068141868276826484088119019137231660636533865042068158373386972599012598115945946363739573715638689455964554604900407126359113183458355882375137657710022004811122247441750049786280338187337585956496176108424173017612944559492553643106225202603441742721924095641079565859365595390555394723805174812102809062020461929892538226233178262174759414052203769290776640296411371202768487650375134731131365059114090486002151053554768002425151909520389252619974624127663230100151355035849484045085384909572229692677870186336346954669089222886596446172818550614390266943901280912763170697867462382306523237622813628453512755002716841153182180337001809798439426574302899372695054773300011557802809362974280516065930022552596078461593047060424642342704820588465267916808903314992765775239984099754854254933880534847668519428555177021586543452206814338763069373844657636005613386807908091944628770618495199703002680583846814973110827940700895993356320306281526214963358032956549064729844640060570292749168116601327948031395556830435680611869041507400762303811119516946552858861539871903936287834125080023662864646654706706607298371573223001314508111214574664332879525155430092984477508727154673993955316060152054582012489723701112002378947954277083246854834418923352382909584488681450694496645939395312435503949121260928969614886206862329264283376998377531998656345129503071005772443848995895270033108601015929476343776700085667925277478255595974038709262750869700053962425925820936310968287824412459826076599195764765432400764711890535677688041716221951584196717680326206930700674112124439099313044734776440230777279657060492482964536378590479470052565964762646472839520078540826773143581702987759021363901853697218638538533682378175051987726956692169481520384075318282225318153828895897292702587661803975638168299974327864717851834265707678967130701761795434749600754643047375394584637482940888659495136031708720042395719559320450989275890765534351790314301618016702384809893050187896279404989540502927301240999885998618337384980019353927572484258587227231881741336568068255019061988253679513545532444261030083926797281655630761581820141919585451021921911578546042085353305389866973122452045324355738031077256629277859501771899916277803208031914809008094028433520517504776566975024418318938691489719736860186379788651238084185122936784805736069596448506740030553413749073145726067917461804129473829582269919108967682487259446061449837241795115219990150684830452413356755339451485171892926424844098232591668383811191517833925803634788682407463718926136434096994331759718687550663035164290444583238478356874737858850795726537461371674256304211485650486346392002552398890044428155208667266097434051418211357164568394915169928793882941664693649394668414578750908636560583086860524523744130112698760271749688694168416047644521497602009360015863166756406797289777054811030908507196685317506259346552613201422836831718086421787641771158210076907645612703768227630318498148134232567768436940975322810628980246651666620885517455121915608736225679938948728428956810467832567339010560781434578516810466590649318998036731351749580999229076918210170758976201645773423326546522097245477401578952239886939530096382965104354380451392540623372655795495659165583096754341006174507678521266278344599752330298997281504480453166109673541818307083067767333261912562493135532727812980266455218492697777844381371064730615381011753505018316562762526600393948128329663660907850168143335296645902752929904464223564512205093941201356548623487968933574094514687767594483991053770547245103122823883997954826408993192894873991984156152582064283845147993303630744744349362747652374142497112410963574905264403361768799683790620251996062667830799792402373327012130828808666592795241969357045375443201443512282132432422105439518244113196347814394008664949662172126920102535044902759346241127056836358204207535135385078552059777389302544929010841664833564577361296645585998000743216067010309795902585257273983576171820118113853340749158740215256742749616922707709097800639013612867101658610775334483359437539757305580322282338878145822671899106498439555921629548760736252656245150462814094036793268056561623022123633098585549198260948804762314442294751390153687913645904123525810992416260338099472362591896783351365641444555793837921345534703129601368413027253036614001739424891373209512445422988845398551008718118530571491587208473973413743457133842081798173548227594980024711390582634124882698294685564557927150803949595664398920015336788282887165791684278116954876382502715549816334321998312420056387552458324268537565540180626402114335757503686513326222615393917282434542655127165970781837468516634053024498500663771998688355781737702439377291121635630058998120742755114520628663603927651754531934085383878167071314681953114985733758271901554316061404895461205217180120513001619509901090061977868810707998745818946377529340564329986289482499686059072754119283111180195401931267019447634158283510002297864871219491217365213590568517071453942150058769609115144979221095103996457576514015412323531822692535217152804690531544592334902937678172960351839491810043178328686491330505295290211334691163872972009137969627366364030821479694071163127490962831094672315979882543609317545944315650074243666189718815816115068249690090985110958804816635555261531435626614656221150255536881918244408739452826995832827809792231481436837026597472605850664190073891793227205633992009172849912849324469442199616528243752957210256424679623383554190548010626584255077312342647450204951649377410705216865881013344285779950494367168942941425195079058100115138257881775830541666009756686258288367059635783422476759402426445557137690014198980105353593582535447867934831570234524444306521312067996470030052451435681347454284427007426387343678218081899512587559219987033108985417947635523544904532880788671911622162089808889347544570709468396166836579113109708123377099710143861721751447169828869661022898116631743684479665448095803642857610804049167809073976616634668255420230018340835960624312897396900668444572019237903256381245899370983073219522414889337212395988897235072610701499465742082283215666676173056459008652716232146881897142567755696268710061380957850070878475362344960269151686993179810114412648426560179251698527960905834026974406475018540733555280398680848129017699201332292015524988457531064213146150420152145390229907327052095425514340324697726433618163763933303796818666488077207976738021204590352103201165689338797828760945893758210327626939851700064024975339865571109059881494193746363850426286849719448587798425284782706288361602170699670403621845670252090972322442025593966824418035272815749286401371796677279013130713401409122410432940728401643847063477997773718180976030229049139722353614854926385896069626999164935819114943531089450429605937194604086017038039365025760758669869038036470224074083457241146023394675297828781338353870742823879185097747048989876563025876145698445051837160634537561597399690050372641055851040349027611227442514817175126201245780693345584149869836379289502787624762184172032549125143985253757215163865457155160879937374841991880320653187821947742452254566143686787781512841222744122650955677396875849203327790119656288189811887465655979127805099759099032209357990842120063598068372727623420152866463363251975225047293988033979632100762619772010387081790238100337105037779635147597126152274626676399660342285970708150395906626676626012601583738774374650568341736468494937961966795632474920900436200101859365308122840070323474010401420172489594040963828380194801683264318967705132996620878969608343697903991998910730167604330243220656910006401139864276946768366451769962059572425658925495989010312828163957923402430759968833062998999028802899107535757249101356604727522993803421314318142637076474640640008306242461904870625284111692096275915053848623509686384646287753700786993250016561353999537514500561132259200890112193035810516758470629212043102309716075685291519929028680076639243308942988273180238937244449375351424103649076167221155475809697675802238967507300351747526476105013200711279922624586596326491873962519975588936038669193723849114860065069184728939184512680969361164789505223750538349335889897234253396191089504928465407699332308412415373813717226523062398719880433989480329148971327501525805096828427729147037606337284248919322162026448008213709530115468924197583435923251239520287066062364211809906888049650501367882931169446808982098307085999733865546428091050344750700690868816021568701209269978591972613030696852811747216477778765020124065880311390378661967126356087411518857251017464922434755168716853617404921687998359711182679322828654463508821322602600483391561191899103825587359553124275772965631643494481254666921060279665235793977526800131036713752755773590121838730863334625543433385792761958147367744939090050452040393528095078958161041685788878962059253283720980895671226324316373840235565108885603856694538932115360927062683722149668341990861202415251816354266688783298603023079077356908589776647318248176714381039307290246897290079890829711912239864730349273210499655737678176116534571717529699343800282750866926524458626615450405203889267649865073134705252241939658446386455190056923640283612506977021843579739162391728313412844477713844336169846086145203783302488972196185937422449221802060329038265206934876604268591678995133846292196217899518535813942183028683467437248100495231086789110789967087431864635177160704540798206430514037489036709025948352448003535661947727829718794759508662867243242073589738810692834795908359972888025265851273801998563434445815734500976460724684247505775571596361559597463718389904390377178249008462118243945550652935509617716220894762026393983765881462650076690535389643176825976568081886593261037658800057062365586578174455710906060432492209978290999957954534402954512899159881805171386321716496474761752388765927643686718995262937301729434080854441153740090975230693458416718999977011926986448454630783610205800606852202376016487205229674785261174213711757294438972240498639050900716785966461856365963463408308131098666304343667012404323785317277825013542472687105752218569394857201422446189212997507850310967903297524344982530395022485475908676504116843676017659062572018144251360511579790156950840196376473856729456188694917270781093002077382372829249069191285184717712295970682065409631451489617826893242403434994663918233916112304091937949585451426634952937018063801757911494697928140860010829721449572335331067225708634816257579857182341241427228438742144362073190246191242335253067420283866880596303784424590942004153201210764295172975695643987828600673933205888254996028399187162168298846453283006019527836625982212524113849504802066455252530386217706409752851194706663961607604726813008439018138010516917715794137153790186349554770206903058506002520324514458072474370166227945781843603826476624381666225352891769307558006112679756343239112823603982510639031676519391265021689220049926361906738839034495792497404886694401914608900117427746270238784975833681605794615401977148748391509928231404066238586680860208785285894887357837482749766771300007668807399597538678821450181131425312560374359636814851087778507941456758294487183992199167283748530875206446249182658146138201195796229968201470535017465094160614215146736941859101192992240724134646801422751244592377612796019873677388364124609041101924767701954695174824656565754445062753904876288152986822588218017663072777098563093735855934984695387211159430583399381100955657979726690374440253566106785388155808243220747491093603902970087927578794206650226696466549846910464185176327577798912557968316239534601289892340133577338728720875118642269510904486663580188461922417638106348167207269391014212577541178670104859964065775259484116175672004553434568976178370912352243334986076461359637845128856011771467253500670056672791871877370549420080098713486570032972599176733650200792377797603426132329358599792021182278163080285860674626122267940229600464892843511325156982663480986293502836720628548672278319344188741141643526142920506990844559893218080782186272806602016360793890807168008819518328479398758342553226012796567910928577987613327404884643892042469667186479611272277632575334637500817561145298694729152460630989625958068143812499258361242535067747888659742665461386131664616891610640995172455711545188647741710735026066890879077320869964337250046049124079595150999338526535290226474982270365378562166372521258974064596223190329654724665554694152077392593687924197157320933569316739810872643493669304552947889350756710495546317206961357909510280335603815192472230349905175258327068304801050355600032284896022359933309255297041604446588393991747356378958591698535314206140589387616717430250878108042605063570360548819756213790154789191733152200733678912662678050180297471291334184922506306565648981285609851172727748282467469324477836720017250242522249321943610212434795789552839594375275802169932969117946180806401698770116121819707185492250678001632992218814808291264876920071039287077071690405020950083405110825198957049467546379625641790472446822022414600797056703512500375553824299900671831045893398858443113332339531886419456676618963110519338889462564036434883859183613443673285661577869747900336255000895102591570890422182306083017363695780091641680714856849125623108557088457798495128169166322475670945937349927981202791607187360132313111744439435267551870529110498151454399528843361932224378758946436437830420236616702840392871909211308723802608423470249538615794842380984430649051391322400392969206420409754836458171688648446718022183253688034680511761228872720887395213476073348242955713485604154502651514569383673600785899873743441508288507356446955732554799841338772952144367937798687350757778752878411119441884721767292915860028178243130087743075048530937905461288815451117045240740419136471847841646825593863469397053324273652121314579634724266131872902787994889640419752202845449245501172661856912124132064929986901945276111667944984056338218544910348664145759967636656010296013829521226358769904303455395679653062305675814255696198296883415602297141874578757664787546165593599306545605291652135781015785220480923514892169044432988149567450753474801133074093510595695445326296728746707897626055928097349391496831243733095076836056387649268603769011528529638994331665039021984532923903500313985500270898217647576680933246969133765748750346453417124789883791748793977990012895118935501928935252976236435659247346667883819038089011622435114035668573315704625751851546647141106100613088347980777381123499915834559720801342901741773916448248131926770898500676950260999844154389349019912936864084902139507108706615510551268478832321724429506772644481163532457060168741384455240022633135679827790789908111930446183770436512931158996340015405864862816332539413634006547490195951170733621503884477011337015634640305935168643278027149303334446330564788306464080952974402607397875304761176987272745299977415139408919852716140391405101134372160918341592377262297610660841483233133849925088279628287113159476695840795522656754856926199105131012336096264941485818204066242523262328865632346260503448550179972756461948518779031860831138510670011011713965729019622841350931186752700737846741653456565181969483291168317957286129558444938165972639701963595031065571230575587684844696705208826227099505744946684176542068233929807379597403941177036812406295884369708791269001720902028938487992456561437596061714323788956645556643388914374200444669813868442886480844018305671561618497465807713917968914450137268198107590662304815403522275057119958637215401842263128303276389432199234704073320153079777440773883401714525344905898135623316948258721460411285817533008629574358146771840097430465057709452854349265884168461599155247734243477035475727619069192360243240762982946544481686142687071434891479451509121447922851284419259493327211863605644730374608597040939801339113280393009667697614277003875019072337582920126056137575930993627052260314638609791516030455561492570088409086885507343125876063607217355263364497863340049885330520297014441438182975619626935431863578593690149327530544059760436335529855736812122209427642311316872081967377971137998998279776531818896324335623535302425405225515456192409374443339907366249335700666905354353458358245775095832298858360449393958407765273978062805377190105374705325710508225253952602425752214995782071466894946166454284570418170518425864645107945579277379964286435764072337317047575471151109066045556241123878280110095540018264558974671201345307964497395716248403769293017653946589489038280053998798459461581483677337469047788036059073572374582817056682186369516495989553587114959517371240883540728505765258575251941226239292945862281020899691562857036648471538084514147575002583173448085261478900375070167149667629146746523896980834817712688782792507219601931045371121201239130681120596517486441115102165843715878897035554948823048334467475533531435019299993967661654272291263731241118301876529694349537459091928502664374330033072092652526469805610989967931673041405053749286474131810307875694414583331166857299801247647601805721342997014002676153501161163137319069178050182057124637998687596207959639727488316693628632192662068878968139091029962646483625560852807157365043993657481716164817031901989061629610083747406219799916006434839745066938314048928131773165591540243194960346985791637805550093395700574021772708844147530679203468339901469041041855186367325875409451504855011326171456126212920728830203731560079680285426859046511425994874519480052947002704326357555039380302880967302804503405571139559501816064272883872054988289627185263686361884435374185717228815189669163791337557963050386823027511955469985970457501550253517062910530498597366175813662457265612087334347731045195248291296385241104661495664802823494212601471500521710588329027638307407891108209152495327221061888516414177526175615567142435806807809297153879304578562411390156774601188150617870651223233388720435950107999513026397796581458697824009963604013689898795646014157221509347498504201040536833212767655303219208524829063713672519110366426207078036711707304200234873968197172093133775359978841446280484272620056546843189240455767109639734520506505184644069515584010934565405466378847557061014150658127461361023594270844032278229245379938711698962205032633170431283486208453913165347351623901459592439908564839446271364483857600721416682105174979668332840678988672176949798393516169611939527126712947257476102406776286908904073255654863966682207208523912992416524431690840773358487861150533716750931443122365119102781966641166875312506656852893916924470815801107629579177030639874983209053938749622744976536709511328088309307230960839926922051037673485943098006021635289707036046451949714976215754831121715387880629339450085995976261331053898467428802307431315945204117249169441412244081396944103156901784862769802733587903529869312015249208446062054200773793883080090960742618323169330640941287243808106927292845197594373871430919528460815008275503353369421593307225469008315043339034296117919825663977634090622939192930067496164362797222122367939735803421811675244472276702931964646745549444555958433053650850810352595353938263188573732232974321594666680605891321171977623241896437630076957399428481627313820455082798969291041837482591689929760618480211067285571532511677609173802255421182614298407164013465641942859798758851094946254328328083528782662070637413265857954586021902752910218164074821846231233350850445838586878116213063375856065756240556133278252318759703330633683304506727190368396399394547709940237068680783516482712113470654214317186034084807295842151508532869714636724542713125491994407289815801700138241214365308893008587452294581643449112007354131689057629065967292833364431875732567779403983765720620261485806189111468951475862489088679148889217302615656141815260698906966928379406938163791908124863283562071384055163286245493801064827985633179633035365456141644982454206734748756454092996328129631878293435382226666391737509753322643858056102710437873217232944389861171926466358706287300642989344005991005349396563885563404512400502194436837723207727120885550692242149758469760662990083954315214366397604206152139967479135863048023324561662782462330578910122504035523024623432241321384503451794798328044868276647428066595279649085905659574110648359230376883799592748682223733428693951051946739278866197285385378975419395446687445432307185384040277721900786572698415033771811100532362984689388748353087785072619673084057543313576057496774065371051900752528743165492360814402757069913429623392319185509138598925297947144219442283204940784480036765399683566376422103787563591884079907905617362970206632751962061396687963017014489075848673152128043347374812903079056109181146813698042452740762359964957997161924047240521289139346738060374906311284945296872634504444754954984936944169688775255754270653050180704513109142851890395914038241547580988457356025715723963537571178471962225806321411489150847783161244669636425746531616688059686389490041151970532018342061506548469566870479926389058204658753317938041678351448662133390576414507450445738017930012189170891111331374319786920403319584931466643586688596441256679771899389003459614772264567776324450157322801212974150400168945797365494527743394710465699487760247049085417882233525747080728079976643941139092021380921916524823143188832088171737074596015053659017051729948303798331841019720605864737495867791966998703491085561234240926040742515915355843198501907032443114525932857309817331802009589993863625046598768329610372503833876587110892764905229672841055414945283710173771604535112418366886998355793279186238652130698504561947509492083762087714395320854576484577246806208610658918656806383887518104260762186320804964581900051127063642726884109971476540359593197660663807283223511695392217779800628211929281485988991039952256975481601345616890042829282937789116315198833360607317898464863698965351800490016275337568508014900635697355076325396456538162461704184562046797686579105310294838603739519500837472192054937972789701113224043145667624435448934904682282555031532032707525434363588842507535801428308022788438841918896253602350233178754774599535403918655378158889281440856936089663652889586128442095170598156504579719841923955849362411200974822782352046854522435837110880925547700553893410521656400526285582517587448549773407312992086611082712158818825610371503828047442568496435985867522858611744790720413645114305170453833958685025987138143948538192769202203747260855961816414658533075502060560000994213956650600764666135568191057453708764369111176805736745384856103425998279126300577027247157142591961112432930838678615943770462707361362199841408582044454776350057421770778130084774348630657351602984613297342467908266495880649933734492260789903832688118492089295742929140871272223895768546604736543519573320688730676020963262449603641136877265066861994522786946958287879155675494276845015301407847059094440762141449320509970281755787578905607680340503972193238239367022320357872333986062048413264228515259264174891005338738594680537211473155479742971696011321979171798618814362524978690490847471178467971384823328126456915506256432041296768835652719050843497522820773027839131797604282472803425058445602962305500644120736935023486736088983207970633941814741244328518624217067957884746939947557481885547543970809220058276565277073617114593241861186036310257032039572565011134834843834608929925775618091244845988885363128702944234320384288948548350458534409477957522386015250904840453804840263788507703602631875782552135720191131231732984539776931836943569095264538698493539978876144996111676298709977689252743169390883928016587502079309556648124578513273450562218404152420768718658467918252749645346848983522414023597744836559571934497006926580548095640050011397548273372000918920735419338997748847310460485356274055385582751013597673222252581534303477984655969386151083150946844897990505456953931121268355295874877613049495720592924730711344025736241597888167077909684406308588668798854580089318406818386290175494183393899813000047408710334645243939615274250381299757079000412058825575282210082131044723642967510640929658309020775013968789938840127572383065645397613779585895188346637724392334751117200475152145559998450101263372094014196838264662651158929584283139630038236789804080226732082546891484553025885947241849080443834170728372146307413403072146792567320132261015969227541339877972425448624961553647044979427953602615871069697684144499175483038428438537646464502076908380345341952592056447413086513389190118533129585365412321822565655470184662470415067563414393359709116167823356129706922410015788107395539499981955121374598540264743335318308237973139284491628689315983824755155813014029505212375379431113287279248173504276392826585728314074821292231182970763659089167212447280269519752356518392329987092176118289424554185460936404012744746090278619088266860886482919973278184584788143946760189034832795104341828078394882084965077344721878671306360631784659710618409949327015431733361064070060541597311290355764896229229961788115425657067100645125017328329240104963015744264008275330613609151936809608161433333466647291631118437365727577905098969399777998713387332221029211091740805671651367009951275112812606441335395733882628088168304304722887860142259004915342326079357871056427358592837647623773909339078188432919431243351638818201850590652936498037187746248727497168483223844264310830105760687687405885949796337733259122749254672537141061134796867607045701858393873230496811348578667882225042494476078786956404395454347632760049129736949739406392870119919070824580174433891564477048972059423396071736502320983538926455036069302591077444248685841359313153432592437487758126984849706774508281398945251471585437444376094581919978510807496632226706136724188463646059155678424238119347745456203179874551834332312485195348061507656134567626445260861008042919084352965620562170350710546944174569098607244668502573441144600367235486357250303133555043429254217954214532031517849089329329764147036971603453595023339158328395251983363032600095011389080952908928774234708137499217224938451691989969945903881639090061606203710379076467174127436351368799665263814075383999846802630549065589485659177674505846259872011451637280227833128189427688353582429384432517399160927878127581778132601070493850267593648266755197917390494510427518439408031687301136242566641415966753600130206094634085921639628753648428336289379791353011109410235313642052171700987752624159412929747179818355737641015694005857051574839485587346924681180534222223597532646741174979827965713214679118564541338843294430863886114661863720549561047879755662833314525832245182736613933207638293021684653165853353103171699769325389303020015204388428604349302952179174401819491759953478563843897128932658958684710057582139326147411387455667278787761227920822097507587602690175225721602940912132668243024519438702847184847915732541776401700377968194654338975047338033459370373781886253212662226762495815236227627768929814477300248412285087730295037935280274177325566789332246777301984572078623763087244756129713557722436524266805666696159966156295824380270871058105780226437727376443479798544159296859807496424155885296012329075092424119881089656654964029434909469355574414484981216393096054456175703637391126078944348545869451621271298658398803903106419619834215205376287875260640094801895645860698733933109077930310750243733201080648547136131079518438899565911173767086093107099129032768149512019034228405834831521653686982779045760544984980389065765029785037690523580465768431307729960570544214225187874135173559949859747610211139264213499907322750992414876677627730544155684313742562703223348352588355056843652635745204315461829904543320019075964646487719508964326176124962843196091187234670693136753842364226643512811050684392266126720717878028849160654500013776268098462757187125948610873991817996741612951208390976233641615385721424372903175810437644500238295649082840925464960608041246730979932776285980776265114591671048852851109517746137083573590778894725932874754890949734027681089094626329465661673431354494077540589609683298911921719900909096492145207587686722952429150831258448595605676384625713583232076702337438982524951235288197422174890689436650871315464832944764643073083840856877714015104774603880612223433171172532758482715043251475151031806788645225979035953345067072791102835254700942019738992312798554067402272518192957236580092689128224424397428031488969254104915809432631546302744574676164371990961235858537853780873693725326530678448048681920787231920443739209301262632908952096484048897040516655757900068127577857037046609987120636163165084916266378517286819492874151686237893816252770604625660677882630967985832407097757966483648929619830269911189344092296877155884954767030656752692759384015615821444744858088044264487388485220315549754428592652983866874361920172959554195851187840559821032805205173813565847944647089492529265289535364849229130946980453523119695168876748443737430160926904722201160168845602681932260745631533933871805624051025041341599923281380570214849656429229032310305505156421190915304614458135025783876506406756449053898476362954326679565514591931108986775654501260630407146268758315103862131436382945185076551086105697061026351240988687327231291343216243392690350126713831986239516371692749888758991405893664354506627516550322811456446986112416981589316779818523227465440085513189147707650105153126293292885512812165177466720079460843909759005973190053189927168505751881752097101383760339066057213845179144348051471109913697781298661764511821900010315458514804455135129432978095363259878505170632356545468005194978399363507871175181555697530280361835759594926148296029668773560483085614953705977402881052187185559197583006029386376817674677264713539268397196135758097103716477922524675376987798420493812822981324463466686991165446666750121844381037899487049128853937889438097938246058617165592859765031701757452661314887588689862631176856636788526187525986194228054005606260026136144712816820675665640419129659599528786175844556692102963605075692099907323292367912731344446021273501801147223546156812498883797180219204598995457698673393335586367093270774144793033102630020589785943035287259015535502915420179143319534838189518030820968107729590853774778219491481480227980301370660841238739788474623492063833945892964138064419826935985714339694409674955050298504724187998868710936814375363099804231395527090070158379128853402325817447224013919236689098092593896637412993976925278953988735919441136114340896466044710662992580576365508077203142254169080519907771480591891252208817273130429898521218904488925558543141532313595390581047710343511978432518622603815035390189030925660497898339333910418183148403179919633175481658447883804345269387188531505613770554239191664134632299500479103361676340440783811018869937828989345450523647403123235168858824042687740762463924200324241532104008810432217935227618313810311212494163026203881336130233593896799865989193530748931845333601664563293931902397516906773276276608349805532061276256205675963871981907648777776020711937293564086359106404632533026041020230952258094755660378017529035500585758581979317307748558706436326650878764950652836372047789104205205714744319802120005986472530665110673296736804306375757767426094023788995362945015721506878375664484447476333934495476158944985628924773744612417628087366984502381896427726764434058789512363750196717680088277643161803209583261516680658738105835737640241769107594622776681050100374448580520128373497960161905525901621456844532466301309240425400738824685568949066263055557873917169698616963711752007235441568524963833215814838442978983427375129320172021455340836930206323461314679205033448925452863058254948800773094515947875708951107156440798651388640533801821385070847773233978053389476369991939237587103581212782452290692030606354015441552905582950899134598135171075065305915941525525797372672187175160279542801360795774516880191758903001873781551266342697881981264638981379975382439644941747848453883284192662524100846465678319392439365174473042748964350524635108745775777465581828532284416326835832414568951918204995647229340636941606276333583097815356235193374940174653971680941018010727153792969445086757699900957802316680494342069424995485300632022517333721530697850524277858004465860105031796833605570915319813856476528226851346865066724780214792925519849800488223794168430471554904745633146612529868706969530593284096710079727238110282627999211748981363658580937242882748438190149984962856013580659811783040244916561903448588294656011019959037511625067819232028858254787868208113021532567414458100966294433922108390044802680887510894166409335039178256814980855799953064547439893978754539502765350011991213119863657738687406203087070580967311865756866867347827989169742985056486140327080388243820855793730668348322975130695717451770269695552861261669999099083732538704101391122287420707819895683872729259665059391031298802569817507316888734652446845358829699900895508664075257457364873471909404625870786500396415679756095209537559403185259633096632756823444304293183910992483298321270676022393493716037078914194319914466613815191325081149920470736944449301240526514964689753680540000435491695080701431576055589316372220075568267924685263157382110522963068718405548824368565050973610286669855659946404857903258801731320313366968781169656083473065423827299731088165502774124860945563664174400118798839190226602908740991441460017258967564600644085407994486659635257568004555371057459859351531752065169404718405330038732539743074121466569793101559018746047220402049259365908231530403884277749492046756889531118503919042183937583619606570180496930750841603902915835911214413545390783280810313660515060346541028485136699192802662900951231665520747034006340372165030994575409330796439629624814192254321118423924393434938542128629986488235110244017604980023403963082739142135800429390530386386885863828848788121383601998081316788331671547847723408687655342381363355002895947687439274710565217105139420372446424355291509311812145781143424693314260166853981497244656884153741140337781873705161900984305122302962531013806376007589177092368127407046591123198856508378403605726626285363755215521449893433620710974646080660954684694140204348523750634625974067464321289255881253657807432399066018375965620841631226591410313259946863127599288548661029347074356642865644610423907243193808823522214257300456916681412283786588307206202832397304801542007347555657946576094804980917974134981536754315016204667684160455337118343529102400208133421306016455772176120445238263681625168752590297409127479887105272652640666911952833263782807428179048756505880821370572798599133531874462257335835442313245645812134142063480756262838084382079487630580594467591072795992925521218964107139946611727607317910383439933084289410475165128187332787008634503155918197280743081576033559906804793224775385884761405231893178752968834679179823381213354123319394324987331995754966223437238229226216633684947075105963452758333807899443340109244363657088792112900485238555625612028495895120115120589329155563384543275201696540821168621307148643220239673010109124074850912547810805785863213902761750583612986143309335644221094221434053697019129305903646206096031927243973855223326144662801263846600510127054216535293815296343237090461368809922954256071857551630794254142302591964904687074312902512155357717470520580557246701980282541732465265792493874005186663722673695001882959156140956579170452741604225981891548606346911756958660241947956244945836640335101052697581184761411990158545138103677163848687243199439376870411143841725908012244773708219219563588918628434258257478104924339068247891959018286932068450680275122526737557856946446378551131272211943149323086745015465383823589600835409950486896051636446966324943375149855056400940380240528720446390549287128050884646165347731178229221444712901251031831512677941613542534441200137563745383407012327755772540010123878007079890125375238912604310676895212100294533514548622395499431553494233581303393325560712871138021789900600841956851608212298508876267510108438274537621670608185698960066958842198463302064550050236244455519313550824260143679607859310035085939557360035596320932377863175262381780984662699619513865839812054161663999162569162626277065787903157221583759810544984824608915886041336194323539203673990201109723487719127737543822218007531783511389878925659260113839334314634313902488596231704674209484002231566462959440836416153507702896281449720541424110091939597968353588467487659012056588521114352731277209248569280395555126445690872630895369924047941358020458361195533551242664622519284147049816881881788850662792901735599847691301407429706874355412566742456282889253249114573437411763939970010302969012006867188364579652824646907730866575070227609447061751628038324559305376503860808472329637382107220260245391952015647819929364526718110517041192115098553962744989017086696007413788397081328895219071973462148766321202072056499348099560923969188990799485748227438943423411457539535456501538440216816574346456040679538419412781500498406487923575920373591555668631832890775065242870763764447754860305537969696569495108105668425584655798439959669297669966798547715709317327296559453977929479519326600533331190791433582454062728522630833541086065377142237363705285862324117359024475978386066333697976494060835370552608674282943116231618294010874372544406646187712317529595508636993834156316221160201377277770847372198756289771975529708349832755115564060755887098173008095162793896051741408524945499365632762838596590843469999146063137655399383083647261292110420485191005625908263769815762145327470993410997898217784985466396829374579277957556270994228928772271063216854156664174793058195694150756757863757367877574150749882077159208203030005382933313567950101120622728710090990256418964718301195034056687210757724445305992321902156971730639100446153810004074890019080935340513831458295839296485904972014854412182274588996904326162787240116508290266933098233096460169250802574376056784229545568372511936083148386985968694697976299263565589796407919405756839427489615349847070687414316108920847387493440596649391956518372301261865487501924170559156918076154679769404754147280268231241860590029371037126702627687416978008444153846970947537860640121111796379194375677783972302487145967007162730961931991904262455495454727323903014334816955394099535445890131282651827297474184182271880506769021934125766233010569247333493990356505189949238299017787113971216109407506156932702779815590247187357993981083636059803078814596180123061207824770031685243651858995386819768871462135631410738587492691591701931449797023520031759014200193279444307383381499395069389101044130338038978509532538619197177906001909067198784699704221071537758053117454784542294006759288888302821462160720076862915942491878721943676093710774125459525669931349874280919786997494954034149655577983142384368115849422141483276093014764590999935186086309683439237549508716984235246549026092687518817518392007932809971585412504707859099154451336577846201505130041225321180857334096699196632828797812739648558753073512565807916948310886772693722601896176956312309906808602049791903060514341413670197339670397316956980812073789028665977574637116710176376471186576030650190010935092137356512727232281017116521867496865149459965473500975814831990289901613958084769672352617813433392760261945585383559522890035850750099141468732274431246236917235051092559615285796804475479709775251422786990766939546679939228116984614430325731432525312654559487217709012517229821711966404594489855933521619033470541776688332714301969763805171311078304316180696930717287520157028080220307890816637940770525981526589609931070701564314712603894574020510242890564269221176650438440707178057039544376466386999206966813348086371759486196648062192893386345223087844223902461244643702163507574102659307138417424145410619880877420378364948635431133651454841482145202805933875202078519946921996788950685755114009103755573087224923097629562578542124820171132822559061272396878758364003629623425715389769373797324202123597168823074339512449930925469250621544399340690038267367028054209587368261356575676543931190846982087050768032721845885433058628966768992368032009676916425909377977015708814984370206085491336959425314000940328218601013159531753907793969402857749582288366986314164245977230770317513033752414541833955449865757331299197922565969089112419634114234551777316656789551895390178386188679401874854271117670591846455568456706287616709150995107863762064925302106893529855151725524425857798328792324239785016062773482094941173477838120911562296472852323565586692853083034167405320451751409910298426473311326076486042532060125017416522724135397605439196123288670487156268205281621174374434888546360735449232804262476320317635438612663906883960880908930161495289282265567862194485664825346550437224201537364286973620160803972613610264080887115914593329567520685267419647933641292713632942185158052930092506142383768299661543202992110063327023599939923843672894456312570358383416682540689060253605185685492048679543817529778343804419986967750799303436613650066790128279371902764295781948834150626188486755643672609751567173079260827161684213996076707481554532487044332270086735921525636874741561735677290239115936029293344122245736191823008019648905605834207078420931491191695691949587798368887518362765257106038747508300872159509267477613523500214330331006454994859503633932211812455416611573547653785765230547521594338266123848664832944524474524322588466313427811211398629006518448689781310037071811592379117938099718941392481101983725529796327906370586172697691112064719252383468627415159887882569906405225129774834018103573278508394222111108779180920338271916588674144198438938079737246362367201967183313287861371227686069407626413274078288064557084124827539201910348663805305740858065218890963017435912630549974822395935287603963398524126807689742060061720791124531874140032377586730130172858306314421006288677705754823344531987353948829629727420818504075899584901717913419715872195023866083077870049409639468959387746684072778448105660788618051051012102111139938347107856516884276954685331147888473060732018095174522933601390000205255353233448855184483218670593540040409970050160111069409028732102088015363715669400339874420210959152733381433699370679378556139396197033416177258310591125241724978942999471765323478413752468599537575097648070639139841276492493234011091451000041935769615963025439811983238007649099001302061336955471719324009321786929649046970876570470927574048813137646520979023884251967689932133423897908760145684055280517109203230797079778650003748506233386730750158102099711256018421321692031080867538549331032985110109573532282898488030097682435349497565442403658971520053338765046606535303549245441495352156602392991886778061040821131763291413890216517891375040202582845470639001547974456742946279359625832117380542150418388946648431929818607468886709236831244756462374724625840074950091344468374848651359626718598451702239719999319466107075539026189166094732259678680620102563725356696012755550104463311528726954735541371853963500283552339815505067230525606889781666149014629399164524544737857597654407556397781821156442140349547002349939607268542647868578085419318932712328988775179548462722064400241731686239386313871451417909972889653441687918252103611928119097747080483336681555296509553047632369016813368118513377983803265956654198043512247205135740062764723738436900462621426283827617529876833266997415195133545610479766573291736943903401678527449231962537197105000715767009137997080907327082174514650625906946205823204875582600835914735521489095135603618025441722723450319599200474997546650814442801117452321418571273834285716365318368279452128404563446022497257460369780556043642587864980722518080879367513099290184254410019808467957933139218550994903553122517678835067382946285610674337975131554863823654439578549190563169620055623979604485361852259437169916984474493739001287532111529796158841512411828881693313197970531090445619611566638610771155004674015145079866847363704935095387120285512375178260880858583448353980352669326255225210656008177169007378164943814554929939680282615186809258547663370068755277231302600856509573667866186546532332213771032142003023567251888586060393076455397547611380472306278273740860135824748868204430145067440775337639526393965274058468317946385346195522558242109081885814584723203751000034694777687560374200755754968745427362340333874882587943966672676116222679633738951383548482083128871190361931146013774396307097565581753967251453236240164541311364057724302677044609524744415697810611696004208292526481343869967360377947857258017129948825938649593581877827288465201981435497420707612644995187430703956626676348833729087532644682406263168209757373240921540165930929595009321683931540457323748257058715000750078279753395398261119516824374836992082822902261611674328113293061497088814765056576536422256846158347008839822295345154062592605448368827285861695846905470748038384171184796449777165108645453972788298904829078624779446455028748815306369533056189250335587330929110143478273176113065830455219935682077019342916737608533520796603136683230361922231893936719416503142296786887142539366607873235827833484887231256756345011497724930589187293917830372429439296491161758609467233903246587721994393665100983870159622381828275397596928549690839342522666718873070140604538226483814732108492905057264090815300912476755185555504211688140126832765696356650594008133869816607293147684021131854569237840716937553315358846770916272766757417282685529675181217108963440465395918069686731480029330210250901059390558285770244169564512703524542290398253649895948616729257716723899728961885391265822891333373679288594789856662454862084949152549619978441977843838077773313495574864244039352613832439138346570650979813461053120597807001844938882250004016907853722100515351833445530849495015172513182392602500933255456264273353850378793981467954356106286914745076506174671869960041416369079297384903959515115947906191650371247791549605584377347489762263076382887545377331072660491025004220540315115040611688654396241561576153076934820555674500819374807845318699368341987997888549253673548348726599715265871730196077708061111249185041323513949767851702932908514016003491481635449094567417526923486865455145689706532223323239469334364323905705233554939487635657074887733774393023715899352763019181356898361730462986468991814670852075697935739598504410674627423772102425695889456416322831035986288018619839033761181004481384763948559956330649180563699810637799448419178974985809187124588616947076141606090582254172044092139218198133819586471466146145609251403996332393054346270371652479523994913803784281017959654414152586749480648040319567856243924918413556031190174029081175854830100957886372102238194873025187341438332234095219223512577079905132768937239267467869344962235629492699834273689568972600385461940650842406887114797109401283858375182584930876060047681915132102214502694852431595355593988022702256770065844508926216082558375916035673180502827807111649060562790849259625257004072998065269099959391010738445225361621694408508579669483523133954235775011615356196987201947889941498943259265151786763102297201046962382138878277269273318182558012830659398906240888039170073161383082358773891757855336536125839624339133536390574449626828449303140272368969998506745060872987610283505373548926723923377482126259018251607401027875451827837126100649373939193233785501827881758754611132345842605860073422876638699253638270344139835931763703058730348805722063041872665337723895911880097245836977226934908468964794690322134877953756749527821732621489787630696825770192515016317714314552340698635612652063387081103486586657697227527503341678931789831327781949744645705423136937055665010383000571671548092944989618329726176878015279780660626409989363785092083657285932337451618857891520605827683879853715461977249582076004744710709421374528204468653437536568524499605267727413222736220499008953960664031168005169427174839800442469344188177272718005903414572334966505957842756430645251164767868149655501790274457149305170358379986035371879890550970873765810165467488753668841588306941551097386914760122499542071800719608082556319314816488156819192896272118899604334988241827141657436034855039546723751749952386095122039802002479810598546028800224734446597263727771657231481800092817689073644363692905378384642975012744992828288878274400049347283298440835811506220360954988185384666446620909305130037343199051606777440259485211970137120611157878911535211030944052214533828889996213942630872223597140269627353814087481674282653046759892645988878927300483185349774453208541424081331652383357274028345085337761934293996812577606613573057058303638046404124072500406077225945628130298233424368630241196471690599940304072814485672222213445750576167584210130394050731390281866556686721780864157467400548050303636531248064142520764784715210658228632532456710019056088354163076995060619751463492418715739229056537045189692482921455278833026161885741840437979559667525356371764905691381755328323829888724738719962358421971899288872747631108285080480231162903076142258616260106928271802490638579734147839492867234152482466733148356263723719057187577570298129573879751547371677755947713820987337100700288890816380888909005839655040452190217472959849210493927948626495133619694887772738082524278979499781835576608147020447874959000968574710865094257938731718775461228469584323674868646449275970210556314072371975085851380253904357287410763709722488551550769674329864411612554259199016514496800292990193803031705005726452784287469077516329400583328578392372781845882499791793152554566042433608366816095311557465685865329527669144306267929900296214967351308207388145539168880744683436860031271600133687370881583320373521834264792530367161251849250094722733521152810030315147573300384475881835935656648528344001831489527258453359003562175973781468399043335397664994235200017650075413894642635092966793182171525295582475489742465210057311358200501486326671041625777743763625009769892205035357739420964472501123018596959088010615871700338178018938713387107989415776156758111200586368541985526301918671842142768093438004354972603190173244658757989519279086002900170201842748789764363903710427232344879841706906115054163283700471903511585435920861080466522181218377408661513987149625725289312382007058781434854720857624915013887309378486455347476792048311853615031556223907079503912534844832223236013693256197441714047738611213937185428830669125102189715555529579864634159202119957340627976027060173709538757386169706781465408806404270579182080292807612097904760011342373806783488087240232987969335860364408687332082440473313177708993593142611524708834776536342510977325719658188602669093972694217449383653336539141445415528415678055309395862162457941938881767384518501100771946710525264034494570553910265790876122576831360093352065571880695686420100199861760261148667092569816625460847320811727321199651827180142640563143989023290827029366678105995322409320236002798266290748602396527846745658624937349770394294581977057648184884934798263837697178397800614782492903667410236356380519848886083359286270272201557557611699953876614582578011475642644328825227143840026093335710556126936764908139590768825858899003876557362102698595029102289954670166143882751150964752846392928968009305972502547420618012130470761531697288975173124366628391984648566543743246422857825670584835473753958221652685815742232585920738310481660111574374441897389480707095672086694723976793426106364368297173144155492890837297383743764456738208033775976998711173197933632100788537480350653299285345564354730847731329532292182484431318534136400363943190516682234282833905616159858769530398960031281794305421713123611113207218055144919216333347217941578068113467522232087660422935295611550923233907400182579664744376611146611224825505052968267473815187876140043799908015695610553067388792818601302687686634710130138103306831604342971154547677949290560319644880182013149019336121699014654600559167043562031420124109590339023442964234632333795034086091934869579232363085454031754929324919309144990700144479405347012601839878727407111801602027474843526079354724078344856615682333987645460523167383826263140165883332289896142916023876103915536925012918836418890828680058617443312414343310064837381434886511147888650639960411205858920343923848929178185186969472661479516801684200987961862753056780882444146996022008128415431357937709969546959645080464804413269625915684106489119024629613255632028375813588710909939248029565457230463877267401591808885009314085056865342261173362394878360720374689851895237442765377046184872050157377524981423403600586995549115278877164233053924971123584634934295559762108005645876762277073209296439159074368220953851953261159932789673096364015498235289390027240089198726412542682840388110692932461347188488509464393410985778876827216477990618014489629842111528611835723621830124485290336752557228224120970687401186351845858746031271812295986942402130131072401148289326641729756042228397216834739750654731820200498816671082328775818490930082442076508122233691345238799232953819797279786320354079127322594282005442790950847280302722514089457911866099762810226581213750932206550618578503467192374030110594766257554443376205604725575865657682448933904506546799903904655082859470153027527122511607379032908926415805169011030813963292061076197429697723838207815576748568540751988024439107598649539549757793791262886697010924520845187121622720988579780110768082244684964876402199626640174696686894349750177404765805400041251377339973425707028527761567645612415741905749985983819260972317122217017366207376826343720886480218525320081680503604337699995130643540347252025282154967955778539399840821094379401740644376652872379172749271335409247511513718728297045706046879282608938269047743071655733616788948726062975767623038757155844154988090469559409344042271351894036946055115130642070285503490332080416214696562659849714341156522053060343630988716730386101235568097052073069275507304659047488539167050628986988687798989746748779182356769552326395065396323012658292837862476408726542037939806939561176365298342191768746505391966411863203907406370897334605879252979735258457746812463496920598264463646560937500702970397390006304156775698149444500828321264253188721766068628320234103702169322930064475381974502070312611161467887766583976426995626881069089888249514235760405275028941156944740975354498028298194979434408738182178627790529435507076989951086111963587874710319678781998099561213108956432485694620460656074089952036504727089553025095226454479494731858305862909397223935871486892227080955505001599650402267705703460580337170175303433989126286143997564020861741044424053334107087325792441259955250793163780291704638769939618991102134797909718495176849887992751105122428989732023838763329027706846711939140678075584549611134225137883166991417137424906291703869502907355094018731776770607667521895562212238414952908139704502719749504396131082570941735883696183476067229114583409018261326617789392623534653779345043085285581164944777901539325877372496464825234210948879974532642364362246902919312407087677158237310072340787367337131631549711259622146821662056525183626840250266499332188358152794885556831104543059090253279640403991883825543460517142605311371728858608304203583301941458419327866895522462412327804238670984829934256790873824486900427610654812916938535651836734445277101597793417963019341287477223630014499612163253437359135698007694603176256086278732266996179562025832037746013361024430139642309377734777891822726367259674227010835975627627731327805947721875200829480949420855683986042702805278582865526826561948977498086288740532183541637574592654419640318833511827617241912767244041376020422312099843235419211681541191240877805761643820255909650796504503834799623580529674863936991282990648584756283431030626754564309294953181544895221919867509545597612048831723762891741460952821530044013844833925690348865262237788340435202763230181513529938622920640694443709014137128988275455150223123745706889420202590936025557404758097860999518615901523837834842670365561752918670609725749461568464330216678655543616762549645260910078905460508231486495505691743059378537145474157015315252584399608873559957545016895757204547301876576929846247598899462427839610399715991113681939384240258225058208501509686537934295996297937977140393371566104681342094991540791401272981098165032145195743976684496205751584747346742684976787981923353818841995530925709926323186593026298260135563051508991219337317279327925829343991750927241071045694868569830413365199737993280562284514034124436307968867933363159182091782138368843350454072215249352149909142258684890730286646056076100369731812266521771831716769703175032154659459401400621143364002027657896899670291242568984580905768937427895140179394932412351445256902220425110344766557324788905926833181712440182880523814669474611440627391443233940931150170609174401006454293712575081975916195924357985753158452637411899872737302897992166647052419723653966014985223449129927979816416534633276078618928841205620081577364166057512622481287338799132862986905890696766939617967859938177333895533348442836488585564808666899972379042685534317814118698474212539942778971852988615610548088826114917576724294742064814722107502824543358313328503179693210524881065530735878650266742219515983288825437646996811181362119181382282462253266656646587409508208973545976056241171164746207106834084985400665011134377824333828686265215424172152159850691845377094837403017012581899453987568414248639077805500237204621717628748182552380321863800462484083470959315555257222853030227309419684807036991670232284613394191922119564853512387725987879902707953322220825277927174407500192176879372359594893188614418198157724375622052800472057912386840617621293730206813662851477676705853164303869675195381946765986853015252136795175582194273205520616255539420403285918435939501695312657097903430698602818979623688252561293493050396809421745344097358929099694074398333493216280486403175728070365398090897499815921223939537172043147246436207463194093738013812152394441732456586018800970416264135950497671147900239051623991699490363053199752898259560076159269002744822290320464119861294775560045141021887860835116063034056928309126777698367559067979764793868972934901376923877829418290136187025001242059670361411772060968158329877411281025932329681149988058680114889084979689948778791517794117654193268353729553322349058000867090671432835345526465221325768565773092193716252522253828966510142868512394597780974511122151464351754936369618987084239833198699821720640732657347863387416210433319079000510771672370354518777834517021920643119142286731176994202413756217234977194108810355742496104745703984172363510235188331916909283341107440382786843640798299467663810741914750672055184955540543393011422105842037362987233259653808986448398383435515603122836823868833880772517686615228514137939243238651428365937137390398485358158463113727836740996526301083520167896059734991027292165522917932639301139236361044955196912687709835765788125930602011187702107934320430063250375335891993593643583334031459930151680343401133617125139165537075877569956196318489214352609287499992783575747746487700294845886974224577932365672502054988398970833512349678172679564469740664127839893622678758231834329752188326698396321317127729520100340294967391311609970379329838653615511861146091186271023361637312549997489971271196823485750960550041829487621571544985883179726875181119989403039294167003919818024477085239357189468381799556895066017109981659118380366842381402163956616772035658786733883909029461104645222168122763416646073294221975891902881706288594558846739893996640033177565145292192428731562745322970459615653757382436448840851979018572119174167470091491039573364646957040225182807335532964905484193595248600169329832639849670936618978766267582659764469353738746882907775437345856979320336062333303710085220792331800400865216348788567005192940044304953418847155598199006564586559736593677366574520904643462176282363177739325016108134602839811175560493372529572131667716810773775923463331593265635396372179423650630663927664349891540845431110884616735095454624843099278241450000389896657872058031063245601848038343876219339077421877920264174102773568907317179199553976622811182312451647593872667721634386727980018467444739517766579356142515669457767099528197438139560513013854878892773047552985329914511151980391014920222859636230375712232427126961191986561821797194246643304474686192527207082192087872380289146750112481550531156823493007921197143980743092846768033079985607008551049779564371748207886834111356001723734639543907681273874631665186217348309315086756835552051042158345141384706829717293491774573762245842774647528892467229637594082359869116377780415370784614162983089730270591993537274550418877339635127551294203136086299120346173038615668162587196437073717926990844224489154768479220336060902307782090321686096847381120134210699821145343530525075659830764507595888210880924545174416671732469409816528323512082404732592393696738777013441863360932076805437654449279639035071256997960892515730053725390943905019697832487558152629283276727135840329454772555221317666168375611698914504236940054663694615255711760696122223276644957659285786193936210923712195506304761056913536535651874363875236258625389145655134446214852893505896243151273389907785548861706036676983292111529987431884131103917060055807343144512611587136326860567465278320580634445881467412875950425707339889548627550228598864765839320530504129556454426591012560221529310487786821956371893844556482685535522089821934079060569316204483505736225893975059548979215302357153998301194269855034955066831750055257105421288932539721529577832191116989596379175078507046117446452478693649901353352671222737021894427957174148668163921968648635803867187022308719639953429121298629804781369988643166038587144077398229842639682758768384670172942506395485702598036162697616527226391951483166947902143094306408910175472646659583227208197161926035086160494251618599536086949084309640903745668714707990864807302142805785982203401743951673803378938870907754627484475924247945009811559802723527718772459882376212279997089617007042847422518049233746720840129712965470132648087517094458483233875018229873800547839998855380990658195577340890862715064812297445299061742566378944819442968284887631023479353816678116774750532472462846227272037252888053118721597751561164666370039500857692998808718285604997916884791610747077859872564301370254409245007058562051642939887920812271556273322910482587159591862454888689369515974326048128282380649224810769770099659060964288229662047144876930974730288015748155971579591129549212676830872964593644868321142042224430227416209134185702611210088294981552746814841313407857944295568713007743487304685329044285948479555750375399847107125286089410898964224856727094132848612154752940617227095306481809506715591673940783086048456704055457321208084929757671014743819622571789017368655860025429816238137453203431192885112773628368607905815398136477226229292849391960409931001055561323485931736059193570334869938858160931022535067636392174131859565184816340102631070446991101345600098012884874752050500275118858704686213344123888505270381538149494929863656593871485600922491138914490732516131775527665489442680845106457562515116787020996625881222395560215726543516687080198452474460464260615093606895979680137015456634769874101035935015069534735062902091328795517163808281350264088365521459898500928777029821282166821552879955790623004817366360576820001211625117875975845930976836548179641720457274206600583715549869530259856792841362927599876339005650815940635224134237819323299191007870063449693786458486887591905193639974841203765562399038161367748448306898969415673307533902193939458252714737985809818357020066322022218599338182750385567100571056669729953612734110829074934465884779059858645043476970952554023427247908973517088918223849275633182332441661439016398277493784305410590384970075995885596241353947220564145514097302472468098307422356400662702579775971228828936338187477454447682111760761582655411989247525527314724086150128439851399206536887342989244212677215788161527621167797180547617136080677986226878911805514727465284112897986239578202281539364957473004552905658184677192887893109905853108264537128968106418171020049175304872035815770304747926269792613758894310012766017562818946635296277211871027119369725778770399120059409236091293398843263674353770173371598061138979694328015615500910978015036460726260761202889126802343190761131825523534563404309245342338636610421608458899202583791439755009974234561317763264011679708406334328990508924577765103034281328867157478881199247826842537014018195324820161533920650857417215673385567024365187402851620402433180936015540969686488109509499702549421614080032272932358453454773584376728673922178037304205453485995413715783038392178481969655539424259203106398563900310103996626917282110358189957355513193886035634185458744533743312196047224432189984022721901440597942838108468854197680513361252676655302095429461802933822489890266965327964605683525309727081170757859584749236137714272353244792442196916616945470546028640227435404644523519323910193901058586471854736243305201609400611802713376736023877973967764383489917349463881159546995239259196557471302404884530576466479616333966860474770980985043748549785958837330928465687980221574245106259041549103777084723452865289025865660839529219267032887127513655924336276166420941238707433817711216403483725460951436426207816395877662289831389668090206686027038894083593168389808820455644686864625146961307435637164533039299386654500993373767213459718706312075984627501020939476598848074373715286008684419870861354221623080694021931483717349193859024817605958820987363425611986955301580091285595364190914425733453459461871030472585078348177811819498611890473585510224889287190143565117521589980110574963133559291594536661558542293472960680485454519936537597107121706247273329114148870308038603529528237699246556800103737489167829953669690755388914345002668931942333899595315270069598461173293416896883108593908640840170908095324934012330315916243746427459955625068878915220816114612773492379963232548467141954814437751495228867290391354416571302693163570426499592338637571663183268028952345427429271068807266515095495996181418824236916552034109777776669684280770877081743030090569495681826676818524163849170433817046076581472967041990334394823676228533897913196403829827399043165603066693317573198366465691781527449356786288253282935923058505226458167494649788642431535691979041521090666593589610673194753794384947079015837828022918581185267512462683598988351578017195691764552079000804242139650085130440832402063833083509246818184883760764751437432772370071836656365392410582505520353876668175831662946312452303462176428381916429639267111976563830623195600772379169174653397310359377125069094878543072979480962102465022572674660136595803518805979396816238520954324088705141048870868798315950305736988488903991326383941698935876360008612108274362587633070002331252997266412773939566786422907976593381039925980395948745448486767287477508592093394868128364245659857547276891940268030866339218362438958333429990836717435402586274326364821588788417350757147245235122309552002145540688432177824226912300824135725981513057727789780813749421289516341270133055531733756049094206401493830798881998051875116545549305264536753161117705561066581127133565603290696714527881512276607241353549279338157662354012391634724206002075874105996563065479570245341302555011060236215977794384554625791754506204219777321898270231528250021979082058535062050688338810668267491582930893976637053016925805788863106801493513868511933079861421321958378048995775207823462662935923980803395428042706706849905757710092158982625913079253658086310125933474651555518354070695792967975500724368849690039917261265850379827674713484381916574115571636482160797007680298350546246130287201326380016811650053910376311627302444798147648018971899166024157223729898454591060305926291716080897072529104636707624346493415859804198396691387407069722169864196290852703988185950509886252474458135953445003274312070658437868375677079047622238849490468113224598241682056027260228723490616325914332884053573687216414377387197401921053314997928862027387950892098922467842985584389509585937274348931306035220561725121529500525736450454397895160433713550157306243105748777116868673221018427298299879936174272902756115524759941209008866599901411524524633633594142520294242521005444799127034074747385339500350610591123848080828104240900955949178001739607559998119498364703135640024277837922957955159057605446769149524524653185428602298398227053739917328974066029170141480182954986907517750599012435542224458094316128058040201849357069872468820761922187928285137931104409144411159231203339481569285992024950254429283512172770250498403766852971745927333097606552421649203872815222607151094977113913205537348811383461231320889527086542978750790588725533966834129531848898612080667932405657358787722852617526079360090946183866027945204654882269666788192281625307597557908877699521296272002789083531106016306499334620626649378049590246695933405321969541289571390096223215380542039558171764210055917029192752503041297471985413280073834057921273927411704881446837940888104499862935668431680346144353233235230496271791796786350182048771814113974241604834309452239247788670967036865586007894498656644699376447362770796808401283609433971111595272395214009969111747144574821043650849630396832517091615769472552058056210731999814970528065934613059554812066146878289560199788666471777544224947956085896995120473211627935935925948635905758272892955997337803299006590925360402146599928819065384739964991591957026003660522661023794411327302853030544152687295865756229135447357224755490903708397363133678032741663696687432672575913134281860692815129158706604647950127365120326701533430095641774187059373403524915352633920914536146127118033841513544953755662388189223449752289988349918029394927492078039415986987366575509119006278090847085975858527376877670596372529681952756106923272093266179733407569169533583411483565158766597401587079915197801836815154610545566027958702121000555321447325953847957206542722931264623460124115730779094840098762353430508808818650435703201630194039534941918934096137492871576267213502848942462073249371525680286907277811329758249679393850395293702358569251229358543546885726070083283996139903609959977579995525540961846198769436814148367258667505110031031707372120239266018948792486153716231964927253605471964925372865269243583703159423008240320902733852752401519636604150747810141538202592018845920049567793292753062224220602111231528325521186368405195523669951782411462276279327581552723773414654482079393845404847364801094402356936926911569032089054287609666409537507439885469329064024199749113494205929074081446923477198477568764047901213677874474071961136462502467151050878883837916254334328539330509704785397783546055937446304193692735706277491732322585451548144185702189411689070322844311921916962490200811854524939729833477232886515058445464858921604672244962875755125018991673122720918235590218752402241694368572339567988641066802346352730491258590058686368088139882844280920013776524324796881320780089031847793133915338382032513722299068970427561519727076599233228747508967697956419812656796627414930951610688290172301229014421022166758124769640927472853463693352267221212205197261817406412029637729893460153286826649195026317268721623559703524120029210033216428182043684384250846052555361443258276376750448353562567163382813893593032524599873016812157463929499886204519680349403392222755023930522471780378623625664069686404861784796718460927185343074772900916211908299566584944588448536001854969096489666944932933866773250311173723807316102013475663310931794653187603997287149911341677681621476432846322994352524371174924719617338722107090658505052877633781981896679351663278424320634850092950800743471766731167417212955238422403457887491581249329981869972036703491723554687659366858185677167942752773610423969847018826230785920393322491526809340189115738033496619719529602949975722849067147333831905817891558902973545822234757217301763732365495730127369134213077591179536961450718711971526753137260202804744194194133840071424218346321989646899220691781242682614243940703385916349599899035166893131789265603693372958011464277154312652864156904406176108704727851285719285881833346116300928026772643260377071114518935944065917284059933884220330553915863775357278351950173064657478803560131121545441105417472159348320065282278815812107024556958833907461690227612003624442904248916948069144731217003996378942339162105229023232970357436030138076469902407561076542388662544964970856890431537040608999835227483881964849689660925004026852975404479423959455088013914504308299109247936575309121292968945705236572675655679808259240145553808238402199881356490395490727305362365650049741989821729619552668541243309533951512452867450675702276330883743642807538419625578450839834746220434887028868852735064142594558558330915689580611903057722554968327057042749978025879665812582403768647756514747249715282831670823413571131001040782911275209577634553633375221695984433794092817083536977717872783968989305077826313100311773255378566153270341709412698570882930705886725704970146328229229926912970446610386848618534609182930722048698050772739286560373363957593820852884958207185526003466623721836746024362166515923375143411149703655200550514447837837936553356083482787795951950731284270487616938622198704901263415455864888409725835975080000439004721742648616834533245188963498260003179870959036703662802530279653526450614624099383831687036492684068332219607093139193337207167363219264466380376388798239006882730988843538417870278917473117064971746649165719211017172706420750550444813299968353895241060306139844014860546281378922987796575620480951218637661342446753893343076608285846165433798440608126080957347822987529506977240318557892763376681248382056018572459096194526016689074411657393237142682061301831468257662864304430240415092899188421364367523769844590013014896751382535651462203965697066044774604110467538955201649346912512646412218469133266603462274427170182421676312286683975002296094845290761861510875200343354850949506014999190953282383658932358529515230758513214006749696998127233458517603642588801336168846864494461623972269521742645592944124648604029263709358692392400263405695032648987902137713630737755077912658303941383664076116270347012885160877672437730471619319197700987476853982447002148855126909588594514758926546099855049187017961934114897291066916759630608512016739147795820470142870643412478122749831051520074265036140196816547575021616586932913291437216571933414363197320228833567104041924056612606938336234530329209611447428858027050116002210468712220402262978709144039797349654432071696632008123395439884578164848009533531967201612830977540648602581398566849750190550691749098918158132082402199256990984052589188021096275454498980997740257896813432295712113503119045398419976283430187132368957098656463233303709835603022926351729404458135625487508627233697769436371201225253443401618535239452834583815735760924348590659676736906144478754372112445757762767630960163217182909339996133455442576982265385682702239390020091802204917197138451733242542004334703942086124341606975781318566220097634741071937808055290929354011322466395002762903274233216594699230187554748163060505709321364752008341696671571913032083117322828006441297419842028304785222417547545236333456941144028340988259270164833848612820795953578600935918613210327190991476477360321180696044934774886042716335557175499468559320997952141731565708575374349964932309814786978286391575791537834388912292121084648096014582700849419364843077869327220055814999633429384463834081011700112421499551098899928192101899105631499187364537083300513105987506402498588850703640888214034948609718770025025300572450720472836368663928827213010696290256595839549711940354502141540611942818058819977533350812114564537205527837179762918399443233750033944833611814067707024373558336029275058184030511100275488109842159735464704737374225147586709576797450365098985043225888119223823176795461487641639061428227947183700366309826101048083910832102090096723269907006432633521947931140584191672821770097724980859311084620348252787983719798544217021665130537636210715639148332046306498449184433252989241735658182094594092956833748729741724573537444705419009491352802378419412014238984158990626736799272268294732586317475240285424050732891557424856536836503835405100224197337343579859545013566806474703927404311915479780896261152237964908478995306329371317237304002819187025857143063514471415417771514853800212221142445774053347911903266239696595241143422703007545948621827487780721473135838063945588577103548645750502852369583083994500293469649224872432099630375501558796158188660291186876899896948741663235914894631698179901082048059874213884352348343853954326107507036269546694967431414065903269905499519216354400575062874558087440960620061107436464887875655750255109865123911326902896510436184621536069239475807637252591992438183152054076089932957674518697730716674734148847721649764681272593646675061392972231787374847424524300804035698735257042225386462084295469578535699589776789964832040867899663246268321063258108226249519581923491572968443276632616141274968092532205312124839096539630586329568465684137038208151919795138102845458129771292889694115241094713234655025850070148875736464209239595914237365959250082392714273675217654508536194627587976106898291978771224745962377146951136499573206710021641647024328259407534812037498927119101913326120050555263532431940060883152688075935776607008028298090026135329400706586734466412210714653233957187063996860297335324296991337349617453548945663301755766609699041266282112136479638921218557140195765523428216275242335401347149691520469213997987398925150169706351705072360625047140404694261558239006580031814686166454497870790532494041042667252794842242746313734911422188634907389579675448159269903812712522573478883984843075775303306865697827070811687528218427831868543629389831431364058750287734359536097198339358797344066382827980956059949275039389803168432011925095152769567993660310434957968959014473283988913535735807405968269307015096801049743070075097310071729494331899100303510686713790804972049663227250495677635358370148564865540859634941692802594398078984119236538577950433799873610055835861355865949166303201362587398983876286199937125245083061713062576251164962781726468766624528774334676883455712429819973982819171279277475288585118043222570858218684572710637723022467121483376704139078512576685092587034541744238473183728184908637189407933589589304019751139570124738281946090759141918137969528439015639958345431233924843895954776433158195713195838641452260388824414290471147705569257757902916170227854072326779023471378141556405418892118887904879363382562842409626677583851986051751429784588836585815134892811273551703092378955051560697791447869790209571382947117718367816772765634789062966397319449410557785930540003799140240503822139285138530983248490066181000210653401321900466094431373592839610226771609718450216468711707167914951587556699344263969555568364064806937906521448457521074511335315874468867348864405663373113531270718088457122260704642256228310686370807446399111141648111208826610464643895821415588240729076041451331612739764913166219772609192893713353974433516101472720934516730545849693647821572870819055504289663773365345892829076372117119670294862517709253940458515197146784768996716338618935307121459155325822781526038885041841375324334940836413749568948186560824282203958808163131192286707018328853958450923884555236334281134256453470069952240705030716835535850888516149608883448089574256085743204753903300577619649448006127982054553021565403108979936255413903108700427553030078010020647939189861980754025597544132175948337150668829151338281364554180992511538732415912079058889235764498741626679576116962716275132570572327093072960889085755921815560651164236427472345927054419151568657971186101530819973920402584126603026121095527019181774980138060870217821672979811903648982030507131729237027865977666025681289461236883829529407045447812434311156083990932397251504213832212376216747315260911879927050826371550095128266105226971527170804833242483212966783423042027995714861009517216591993561308993310853500922761232909547995548829209682269664234029469892381945438219985974452175419097946199019306321861390454558756464167188869339502748994149174627957153842280174283323754740237745553251237433418544109962555435488984599816741132433197036893219913918728548527233122792532152743242063360817357724778711083729044273546033190266826908270494350386010334976578783667533640363479897251312465162326087299315511690590465428649931664690562302119061392012573148638314020873542575853360346406667489520125940270677518049770825056772150975239101024913478687080414279557580014550998187018590263897160595817323727248108905866371554654531773216827421483901317896247045590232328995883207647658942224351876640820589652586388528610395101835988774921305221619552782101091410534675562968896440363648879465856355068045016675207114471635050528882486117066248790520844562837756044304929602398421488362476561101405133579371946688959643800869828451363567368861353584831287491329556748717358646946801348568509631137883994887472787028297416045418401865165917194810319118848117457033243143856341573587943893164035409015513418435235662439757249083181653315798682933195367013683220798700358139149017512913310637645063465801082867844414438811104813512255938608774945939090468139770821227499321848523752398697799443537248923091958179722778076410916082562978471144752346175903404787441277278430879003680061627702365440255239484819720408908791810444286116834160112196269141007968044068798778107926762782215761691297646627148430091546983658921514317215656363032462661067353107183214223876624157644491732607342157971433799114010759651038385543643376374939944124757175565469702889336495538893499202991293200793808663357654629764398270693470453007787964385012071595818540937607370569197158368438607681972190429009163179502007946979552589065598253096973213896883703871186293504713594480083116294617007830777504672915654837204449707771861704767226754660067148884139831039225323120366394795403359497466795401340233958897385476023764811475074966308252499708125103455714402021520202184950306038380744716589822808947991470610016982309504252357148505139883985557635952725347267947948644265695389409596909631340236292362574111440495668653885821596559034277042589654359274054982121906366638380668484191759817287428388052940106893680970773180910375084940744254906834633086620393199484373386026284216493588784313356964220932840404354734696011138965076952022160033636849860168370050530337428911959599380959236118082765265740154411721153913801189846755345809991068844259607554464652610622096351565519518111278603607424131250896693182507859686708128055232833898714811160385652395694016085332947085752537309936643753801066554726004972854525185297044321509767851316784946238299422112654477470188042707349126888567260654110739382614840450352964421019817436318564892948335909032979047152475889412865720885415906964606111581025772703533720219818304545742048902038027475856403739701792347630453519851320483903601270499343638890146648239436778198872960471316969466357516801244813629130472206011820132180063977078295410333932369809896142751249965273920857638859516935667508071961715078617578863166121974319893166210309505534578347655642679915002538667042721716927181113221606006533653034229381319000603633995863037635030514183077262258771541212576540921059190099450965467091191106569899081658445286707124822781780595196905528425505631656016427848596543928211491718975139852327556489761520645254149937195975203509982688933324929498546826213008965116620224890380591162730043506042999244539510082211428600491338506741114972529518058143181606545587801840505936055857919675363701633133267825504719339962064424783810695081137757007478469637659303120798862743930081302894278929760723071142332868615582245048419693805881509177473873639228386193014704686217305032341682846699652268348330519855352808045887820665231519653433679668844885658021798993761949351778188787934643175853829496068883681599752079090225489189935840160606490776151661616843693819707231237381864032886599193977650743226308030739314420664430803869583173045095156262682456211964259435983420342914517504965613615671938847196017028906377341197267809990879278778420377030269811237892947540664617670520753823967472391146952106416705785686988693555111570391212558794096774499247084023328143300004749102642322295179371546118793826905300754826737542203904417269624112115928035889715852821419430543891544134870784955119433803745568362692889306653929417208357599508157565838878560174541947055403750749130710915750030005844847454636109108904766320241004020692623063767159806957487631341743630732930547240324598709349575575366802482671574762416573463406765805560280595801791429545914811170744773048476351463164416355260976459606213597418034151126887330829820863484627504235716302986979806278617617457334280006216400278872984827715031618273922781318713315255007553239185818421390641289158600515297865389524237845591051430904956136779846648261963539752084093865418849164772679179951798614751888182828408965370218839917035279951546305166445564349140127665038891079198658683009646312242425569397306081709564904545939358059450188737629603338979657351737702526689325199437043339171565860851155093638159205401620339524289067767714856796449405856818602100081432033144475806318178265689384446858145417592896767488103825818930159546777531428411059486284322770948618508295350786844854729479354909542071469085119783817125167463193243762980515876392370269014170824914833262681781949167130412088943720055974278610725448697946445896252481751117691498214721153626988880349939898370719776866996990075016058016697556727716791529565828426788689161661942626755057797369231676297460413203500424707547032487821788916584245077686323791930667042130671845960090370315908181301707883404180551536094101847965497699179965537951178650752595861313435383151962321775663452719642165630201778576888349533621050714734857225347912109511523109321720200439761536117085520745864689971560306641032919887336898644580995033837896232269209130117394957268198956212156921116321633075749639184410278055519570275654178243730079048389482037579203000009627911147852065697421231058949248074633330360645469297217107768746057788934411104107555577961357629734961242695368625118114869802230800181521397391285019845477301868447761251385247592863575736846752317313733459329239386479418653368560970368729776365754691340469641218774119537219028203247475677327255123434876230422436684645138182268792488968181063784946477276431531364075610184400477321562415898425196548767742104530906096394337110487587667061426766591028012482799734102770672489049195934198039544090169550149058684840401772674641556598610172936637110421403819231724563507775091223999263807560573296286260987169125733687382567312142559362477386431466203667063876960751757502720552924430924062200335483560892471245529739614033728868788605916693193636238869964229905446063383012179997595649210834334689616322446926373772086421017283426551546984368432386744381772722062978846485652481061170624613711697847924939596751612250459102600733184319799793633721968146515045584734746525658266549898813924471885689015932359656432162824662649538644086432056083440444406084815864581254156795250041259145303314518201386041412393687360637644883988342678750825276877766133780395393338951425305852523478763882733689888870592845213673762517427593019354497233767378380319312950431135739966503458920927431125819897812632231983622273485694265856875046006509754718233162650560897502221022091706230395256566026794274110003723206607314362284247541001181728356732611143877380102464735817768035219984790365102764102511478200533658661502813594509207193194184413933252938417091280954097198956925560760079881066028310667331967258987857249526492972418196114925662585464201623622519497897551039883389134319637961365940697271526509565176745855428715418361734873992361575107185620803437090224133773343511825562777014380469998564533804238702796222564878084727344144933522772881437002787427653782264045819425506379049144441131497864023464025405783144170966066955263295718319819168454143698793581610293285953430966427851699326348902645135030080792419315520555589262191791671913414299909204205415217468708843933446116024147066221767738877287833764814146957559943291777375985254688028180407700647442418097431768410634537066659605069901286328695132837645787718437431848873013375307140795045885688714449671389023338536649788525019072046942298151311396103636351565783841724387637575222269718373926248870818053952439475972628190364903567337675831135548260090225259701230255346314338313621228702463917904357236313384984435457927314713332876498455017936785778024238588577210087165240555045538245681793115549587480778668711708660490438584051268110475553019646005704448385725029903600303677831807002168077040119587944145476049051102950986972039565022467502555270173665650518655985495568084168733241747075481568609526293916843954579460137735958784509715098161024186998456629933695349548725468074104315751865927821278113480345050742521400152585056004503559053175751907270744222399540195307042465955957379564586816309857170199784315651859304919211410937494711860232027502527027293719711391296002038316605408173106872849004580915870580597559411274484744823784624037593541660360910684355494111015011901856064191367223184736029938112148454720449545537968731461460639677481242872040586706041975544760899105111848695278919125670157741630132565855104397498647734281170461720479602938732850136487349965844542816824127066686459207905091738278663606415539464672120444866156574533890798901258529051017429472079512096941756155302908670893478142635843507566157707196137968656451890687936100636683858920671070421125666670370553009597524120651756225725931291315763066878383508285676131760147024656099735231430662129448581272773883350964245568780824586798590221569809399217175541696257171437187712739498271666545770494236837252543635067311821064001513970174625746848957674610906037582208067898611926492193291549859426394890889338984084010160975217393537858827452742861392803310842793888550157532016641766804965156489183565284769720902984548942189179788671424063990585600422919009976572960278035239881323808568595809925204926411708406363298057196302301737722248231786229297912994711084934472898227864164175925548570114001969255373309311521311350234851903292183684697707390286226058484372291904651539369304217997259909263034225085448588428132170380689217619185575328652297630338942760734819447666666766190933023363385120606699216065355612721300857258726615116999871017483871303109423301555444535448941532148119491710204355279231283022798216008344251318744854591782792575262275354321707517065930026854466814842006132198252033675641870759989425097265245485516312896556087797060445934888683129323234285121555251950794118390803579553947326073423857815924576561460065530513178382975939662526905706071223543752157156217030215907863191258747441004251199129392935817253431224696619949214369304295705017175984269199932525353209752562812046772184190351739998086773579333776383030291152169142419201868723023288631997741809342608353072183343903584158308016300068302090246082891130803944403989377668341129599598858852412282123004775459792688463601668190229189198179336152546367680354679939347727057555557538004190150357592598814788118966828532756774369731992511746868136769453449349523509181406577596759385633809839547245096078213331664851183583589598014419392115770654675284271082868572127633630495146742701329005335641660351109889511867692687735756571680750419110066017096895463480636401305510272735053204719390577114196354878685384372226340870190980491615103734325711695105955593578010562035611373111222953315202535505958089839029687487967929381432779797785034278027166619590821226726615227807880626646555575814126152285803391730825636145658284825438263773681418380053176149631686003053819144976595444427208975565864957140444143549505250350871636896491292822563498736779792426473017867901359697616713138234558776958891011357826589551719480593967344904666569437860458927680572643091813427857692565388900624054234335709836290141568810601366733088976473339074230018379163715716730960002522543977737787470365248845562449811449561819411773460267233912270281785636339048064196006191305348605034159964877136391253849193715896860193462063965619388514931247511053428426418398640036634071325206623772468736201730359128590303655059285738069849887536236608093569708308496829744553124910259342145648158645159947990851808423273369082915654231203260606500935472674771337899037834744460451913763244915151591534486198699915097372285395750908624090911113263214779132612082105010791249895176310273488029835727642368698788840373469948172452365944921370505229218420791173514122529189764503643102489330212730024749973999081092960618275903748776911336256216774688963650776803475485315713996013971400916249225984380754860251295432707937030831359780208497279125702232659537508833000603770169560781433915341040869781932908597210741616364640588474918913558398177476327903423415308101021559549267656968749342335668873401386285450404231956959429098643307022496567034156877452397317215469766049778874581151753585515628273609014348159232795249385572867635610514016755957615560436460324310569099620293888221782048102409535287763301982098177941396677892166390419849170463184580108251224490521101962987269498014636835473971150077053020153076695258135940317252194012646339749928683091787798532121397778625178257559001893241715258814673546122065687393808702434364648315647694430966745307229402512003036443247458653008491121543399263454074690232173263001138571374476526302939911677911297257852364099984922155827166645878204005527012686608211911293722197451250434385640933433026229677772707222201319776587596290287810163035601040931021082392306580248903662448219387251635992452824920409978160090590413225189954099926638316101045743343404063575407196331505640025653799254815211476001940668814975919304906335154035539068115578606979866434666366114263038972484029637948098542896966056350146678978305563903051897366033890929866991730831701988615620369571821687617637639099088984887905376525279359720693177732847607106469669940234140469765250495866159937780651665181489564862935495816314578494922277273285258462765855275417204882522987582298991590788722308188772025659598078655924914964181515705068494536218049407448722630357889250735726216192151149008621885853481680460095896610611537823310586556321719215015680817948759843078951561127127495894830932442204565991477732022529322506786794839321003742036620411108607616229410990918185994626309429243587433887765822173345248343356166609398432850004855166571057088166280399314873013983799411762904842972077278901470255928805040110244809835795826951211963293042500184345088173127706709258489708655216463039170317126797023013430475725388241744573064081035045368501181445383458554991401536264445313665120940619124425468736443918155963568719352573600459556760327363292699005647209137861888673296522205987340455899483017191552887313212869172668053418406739954828875627160682498638703285467691220718919510064529197962827137773649496591996606023689196721302118062570947561206083392365736677055643890649648642620496975653613650952928594578759866617027842683258281952187189875998816855219486755973609824706571514435920716700596824541383151090113873395550956798496720790012330433506337635498924758189276912692568310418868973675235474917826751256690167793547882515919952673209832315851636949504584027817142257160100829737850953185321375412836105060243268660022353875475189884665027753942422500683609761443356480152970029326011663923180464418582581024656834053220165302146609744353893886158315978289964987221725235261845822812165964536015070892885691866471203239720489877535797391452488382615795213808712028661975010843096736921674691419039160814923924606443241745504921077112192073685362349810825187353404853326665415888087869201854651170694620428131508816274004984755779092468735384647466026146485295413036960799279708180332805320856456855191594770514782760856669416618150127990549345190647916169066266629500734829312385686093427839120160226976749539285541373126498593176405991429500695892408303829665162878205783378855708323489400768899429298161382918246534329998898747995079706178371485891442575420254290638158873358904412443630350073293547032743206228010812303909830669532107609963762072124721881190916881839668348823896939469004533304088285897766480122696760424663288249527125167051836297281804361331157438177321722818851421901279242281189970303581836439733566160443490485822283959547565279965167156509371729120836913012958523383613722460764266429649123837563966962224062195925435757273359819408231784986631770721724626338523939480739910029776666940141183812585958367456007525928661481574706608632722955959138445373506025518588882176730726519922167177035742444771928568563709277348398046544567591581451422716900152820730990828747463408992527301020731375446504084834489229431496804082967440191745351288043769359147651612632510037958035139847927203035806729887566953471505504233077214305059511026721397274808654301729530887909838408874393230089686787185986222868455965804463266519158407517908298169302457387792610137994215947658448370717694387587648483547103958777424279237069921255625984254236409837739863716697133985315674452130953170947018163371780749295319885839098574800608343800829815976961855783246820927785986909752257852408759547997154533039356390941451944744204381764569206416076857419363850359814690370941043364335891414484265953683544051134237723638636674023461778859887628383666409209069184823313218888496311535009750376302180605659374229033381502069900508964008799863543424975175665029111993003629496404140647098523627644824634888019881665713714418948841777135713530478070491026687121701936733194886571084228776911421295576698335459061327882043683594130172705807727148345600732590905691783649992944413626005484266558453453997906387364874093898164070229536147398879104688086590421795783434706757676717142938297072908443856477394384476537398702252589974608730377514053713367921953024736315352794179912216371754649860916559948583651805530615072899419967656374747865576445820064331749443604569360827785644691007703694654123070171186290083928574524579825344141020968787867082214868164404862772938621165593799934730052826844663305585920190827033860489207700590024002996909004969107783621811934719431867295826695743561405696516001811573327496051712159306224301170892477494328554890449360706400326558079634699794537898758089721783391836413062146468858040215172049601792126117043582791486982852121591315057532894934235477554631824568572261320678518855256394646725482395148372600853010184510268351150279882696119554080078435451127890194045929057555939772441005425574976296186379286170600531853304972602540206072847501210300824354703807564786448008775788568750837492246123069614638842695123839478743076930200300841282597313860063618952679353400429952497093332890168081501690903403304685788528294578491693263434170665118471716282532919354262752460769086754327978710103992030680397831621867147061394705827187642670296608401618064356559680501149373205460910722612009848108147587722101273298466764092861102636339018750971141160178524644623305581628198510258779389914598794640104894851853034915757194069087050706101449163893492208799378143931606863703415732790836162773924784144602390001106276735567711425542415495169688653778684798297282688281937525484488891229754969969238816374754505821285895616070926578893152423444131691980327934377237546839994373487915794001948407907390685245913083677384408137875060999278882079245236715672988978644569418371430584756792637357591540182252183727300606365352683548215941190966764123097900351913223342820284628311290109155497428900730837299455979533443485564543716244368648539067736507541477246008289061033387454369278504545865252410051176637518523415491568988169198274695577655189786126796690925171041316106624187353002545769762132136473169762059952893488156777510837134596063324774875768883062182234021409524416913608904857008516494258027738172837292864118761338562595642935590483704141538889346633795635202779531558698370087682817842647065316807779847914640960345537858456225423584975231781867266128092350744312389050632459981589715482020181241373522241709133119822736320767202402707198161197504135522818241285484629429864830071575315563125851756167371938411458122380465779838800147717794483055877241294753425245480280370528471515475932246670872565800670098034746241191759696369288649821140059460962215422632272335873606865744027008990334820981825694462959047348116511371243501996089623586462375382936466535186428850364041716331328630530004224255896671596039340441742547708625780066821967377239538269117411832904737305452155787826358899811403510193599508694744917776762294078062739434946091736494427205588406918649039932813217069748938431090834714285235232225843084913794300644223566887613294050854250446294450918967732460826064658094130059274278651221947673304747016809600325550218333521501521670820364672416004095210842145490177223875374330170149805774335483204631974797579968101413353348317155608750731833517652062442600166917662210485804642224169681952277650525556612566094099378759823200383559824630526820960422147533915726014346107713497339707683450687527266521718608034822742476273795689299007470660415871922015866407916266198831905170098652600017908921662335308424290350631367325345485010730724059032582196711555358775598238728059754510255801461534081732004250535808322569135307772444473892486116114928399278842056051196551370306545222367951626344041075248823228553604614117233307692359226456262161397699822618504635768817987374441446745452879661841108693126655758638034006762906497159373483930663842601092403259154447564352037620199909772183128412277168830775878217125487165910645085404080289645538961360174786975746797307645122176142234588233998920339105668042361500812942939129406480549486502488739443373450569557611029522462325990306875756097925695376835564478901095915515716337513262012423630488207679637191129926970287564134843688423918314863550903009415431848915918144507564178844906449141713710736063329993244040587283057136318919788937733108805288985598128486038273875172639885125005612853489845426770103435464113751998199131136148051608399273651139124650157781501639107509892056878246001043961125362358283179007058094633477607577605790338364307831326281720840578370251269396161018398615532208522143879057542136402865338093416289644241723113511511247394950036675330520409287007180303437851113145483633466208651051653995358418354287307220173202457076315861723745276636549791762647659193918259777348592928810746310118859545878024204125876358345965399920626025057098475439305606067193758297662386673892184135386957662194957124114554052285126441113513624585468469164566700351160766278438014905699167226875086357790581739031893113253580546509391646145030577133354175895522947072105330955288954705031427114563563106841246446166834140370368799120728542515718200971608221343693668174347548432092409742829342144982354532616790424786368099722194637633785119951376334876547512879496289228581796147748874355489584878686396992791237651689735012386812403672489208713553759465068447241643042820011072800965107242011608679036216619531060224645039971238427359290049488301029087111971750681901975605640950143751178702513268595860112745632426587972675754983462829796177078847877079132517463416535609543072876496729936845847662305503895345215724057494896254924666495165739849059854248573517140560961786253578548875392562024851342055730040942489736624806406514856253759412178758522089377851797974721707884096973880742664673153910458709300353190103507290503026348021921400634425362175113974883466863481258997174511372254236956874301815319159937046223104639503064329825340385417831081683290821613807930157402518066930256977923417625166885639840960651512200258422526140658565940630629740743068009379009610113202266754426226085283179382691329878488469955913115551916016955488686373420551139063868735155375882834395781236820450904029634813821179178934060960185348270797891536560827363889709909592881469029253942982512773470700912870096033212137138019519750954306262308388038714720848546044086888552828265810959914707694734239012585641697294579538312260368357161200310433751479918157464445399686261635530683917607950242777056006963402638986618903710045524332352736383327077193610246488249205061998553623410202022925932801844927922896781933576854436782268104063660089831775510545768665612901709129928114148054654100724794883585862242888597502379519581599379359876473925222622684833685938536525286832978724689028087713099480739440130310528938025727270952730035240431593953358747153977517590270001619318728689368491726070935479308356440819279389183802688260120053208420742730903756205087392502917202794719727884690368263334682931913081708966982245180229803570575000364709317171593649703514412178641478563445641225081912805435437203741528450815218377288906470996912703063475936075411223507336202020251248364614003804994995694164175358811970317821923538436039467903099404636429292662270521410798252552025412569669351054140233542045419871498210832404043772097884460448473895902043132212701696737755389342776422373845542041595009339961231490751520880906952246644354726150112701962985872124117683799450186129395632391682623299526514290577358848549896507870346417260048385000754108555759284161323804258611394817915319302370976710204552120108224363790909236033957692256386941187712628614274789132445378014899882592022488610101448352096411014512698066898676766197083988581945897942421493248862060261859729067907765869674193780599494530147087667889428293541489093579376555529797681999183330824722353983840400650075905948902731111199860492690492740299898975863532904195428013093248750767967033198561017274975621244020983555068604025837540954676817785242662642746882903211087293236492678198521355324791581111528229953195467371827370990436156613481119607103256149225484358568276757993341410097142800789777879188381163227487054025966060859398564720780335182157698722615490330188116979291629993678627734223910072396401556229476159305291970189008174214857123076012783931059447070664490832041098757889429668463977078012784577099121626050712291111527906910025319796526910541126189176486009288217711557030678072495911739297289740582824565872491223030658363340318913567389919486109371243486460366052163839567781236797811239412747273004516659783422152712101452206306385945813116492114824991219079858936883209883660410897251216249081009437143988781359980182363848554969491235742935037589308640358961550558066885388020145942996421824758692079957272697494263244713880011272570081849804792781683701271588644755144422596480853883818437909824631028938225332265665080368020841040510301198148859921463898530959435848665928967819296053977278073730138949638048697976915131585866741679745336860680625772110269046680395027081140332603605800790578391755408040178914180389783477267377657898944329331975150745868736586421600679325446645968596622700724227250284002039404682936413215253392191115254380929956454390549541527607670225407992288024989411287924850992688350436371347680955794347665003432942831460724215301074760599762651761196200407451748999397883674776483494737004021733656280880299647513483700598779437086574200891572278724601575802087553845557336467265913419729110477910345214658888351175495724090931345935819571512333184522939908383464394519647661416862320202411282724079081392576287249238354529049937966042534040029001125253626727367696913911049867576201500456247589964413720808878080398103420102349521158112549987836088423959974168320538516916680630109124685693599025030915815039165353160771420095822508392255436754510774172493433787470257647644923564255577837720210250411547106821962010541480923755957407634016150067095542201548799812016819038050719368174039281723909699292551596933035785016348638986424882771404638609357808730877423266979296571334640408636493158296260329289271612517470688694626685359512727066293969341385488424473410031517568246558514182449656129183455465147329715007443397175767809529078827993345271522461689184799437508670196157711876988935691540921272559702905963704459824332779323916995748546295233502804890231881661662951602971657229516422024362352762993151469964595411161896566673865444388294223518618209571575914747612469448712312508272634568698010806348570273558748337565557094652439238294045959369488194792534742629303312150611378926956612813619148365254370464497399598659428057868555608708814933602775031924523780655830529538052243499934069848794566457264449290996970966360941578270420067486798190538192662708779729536811200645607928878336176449742475267861439475400557478687191252629836359919358972523086627924281026360499441616301290881937790583677337310480518911587628004606377533233603449997178347217111920716875684698105121504773851590345821664521703997682455992239761595162619164396803196583432763414636455777343970216196500071234712188938124742454684688552902568764256419007536299503758219631599608415330234959265715962809633563410369938063165089029463909912889745598744479615518946560332136495129961609109988981146446869034885030388824901522380510181486697713645551467448134358107731292532573465029026696924287503895371089257559510173334991565870471535183064046983006850240308106174285372951793004805732777383999843577212450395922185474146991560950630815294248012770690063536921536465830307627294419905218935592793191908987444365590851529072479273176399266625282186221789045010545009668180576636957977265167332484572454184043065294247111472233505755660713732529997338646934445961193714019534507140248746975723432709501061114474658555788264491503191134182134598427252815535745620677147870133674871058068567113818957198318962083497099613622955203008923923373236042460811694292569006259639689595472581141683907103248490840155263306447389364661860599957554698368800915899247237231620285873407541747442947499301510874412591537453942688517800863050907100536946379178697171524707651981971253977030879763024910113854159976947000759627081815431835103149703094202205109621788836634244843483335690426519038380926755238138612595583193053505107483635315269190627356818303256933502668527450898263842837133672473276460586853684824525430817742342557928932612641171094917920277078139499303047409471827018236357656096228840264619382828102768375566997368318596437687170850933901499353159284974503932113197870149505842504405222253208857249340960671380170801042245981906056763505278735301926714994953660603980692818564547151858455946045335219283579072886069983467133980514267451178021925924500747452927577810580990719521690294117581648731261143191410802595848417151807100671216732398227913719804764649803031612642172842756150387599880278604092853778429612264569315620881443274825748513642148709061440043533628747147200121181669204578517015444443647529916626184760576402493153682971215313130600513089233785214637885166363902721763417509512530809384164189453262978044517742307897840255389406956690128177277047402942200116752995317639990720416267450835381125214330438527472406334797227311214406074464578775918357666420095390029261227861547149669556727409608060496040536078613879529823807842099267176249882156585710251286399742358718536984128138448107567173037429762309360852371615421492160735406135966890013777583632370499371122554679478872309155858270038999392140189066664057315178662216732691483097856094215350397125652930329726328789068368872871354737480121304581212645319796870831257186404456627406174851940087819685742666368345242201379838821592179849977252670078358763942080359908734612481849373086704707309648126476307869661424847261240658763743002570944061025009530249654118717171335883509120247321453538931774152285552998135477054480464936463304104662067201746632521740918270467304759576683065898911660532343309944867732621906639457307618538490650804341368079464174849445676386151632014542182269531791655886560963527596978533759876003961823553107635697048012269446497914455452093836109491674754981116069130519090953467352894219181127659166368072192811100615599647857760481809797406581470739892542442363387678096542973052844524660315354826454667953614013587019535417290078583749815735424880901326321150546963905611330954514505608555017711509517528743852966265118992490756610541218821717917258287067913184076135274151332727303657676395992973430176242594805449289774705126976691444564575228752182932679986092668883930791323936922088592515742809746796210519113866597036473851185728149334722108534452020569513480701699730430677826127037352170156043924543117778246571144978630597442655872503416802383154428261169982798738098762873420355652910894554156659922689817143133524103928693969431511648111421338559013267420858704819276852381480970184809773526584573226692253675329169569911512834546043164494733695264005414911542676679688794344103222892455029719925113527496401422313937486451607651590966804703527256012352876950966138718097817875757590046116497643470925574444585607963632080090136517329185939186657621693417138587254479409999644772152782977599545127989478083645399123773373065195405541753133132575573268643338731194783186487376107369250526828056064543958117485023283631709535190176219467143336192300160015253447903904252225281592253652408999040360664110267537609095884675828215190155404838132395063350329995434443731504890155915125952431856168804162864272030796170466095564285874504960469038843910427308394994912523521853983547983016005075682229860300155595530976243931111558586054674545716623411944171424659026973787605631727526104634532138563493774904592319974863891125360166623834437964363063195422971444342827963736628876649530262341152115917141054376500673760951956710665842193988969486635578489834251097111934683879812138579473940547747215549781810294409016695670000817133428737017643990470182255683969450530112354987698741510585975353472937176409233010082370084230248932795044477402587845047357933440263880808995003049776843268415004231511089674836145590125714879399664047194955639155768406348399276129464793735761178145952105923454136180311745482116211085576346912549677935326085195616602249498941349675449961373089996083335647907528436998490305003065586714291797141225505280265071718827216531323749459022388308430788840412530207076941142996045925766696642703572433481067126710445337437793426093832317808002187381856650224584902767968950631339923627495227139616286736791256671573986588246956190178455604125248820641458096125768190099496058056048011541192292689691366054646277594995581554451537030893478241498289979947611826964286417137955556400818321042987236570866925451710655919986817355849800690793829896733059530810403016071270340487237978716521363446392073769736485688617868616533843048581037843071852329344576019570620470188014723452656197292129505295027622074047116086896093299247942585111232705547311960827916743317566436680596638738791355532907400939791848195039323360815893001434190147026980596262709589880943915626440550738194661397298673186571378445822105731009497473261991607235032221054358098551237837925379954880329763991121113033703026179276754531331476445409033058201512081269288176579113554698259026011118537882103252567940059870758408685502860053236247597464289923640513024923857529493424355540396021679607209422529032911324827110356822196534178134745094244785413449046955705756476770821494430136521182414531413481539544308024713602675261448472223215414568903641793677461499206171105037639307291194489123118715147764700729835152727145356483603723145341147996389137859094339754738082728479087361632332092188854706685699688849574839193858857025212655684933223800522241840507254931813226314661987547942896126552843992455513290235942350812062814576777756641479209976587622029441789125655230787129810812275376567582624483766927784824843344517928254687207897228819515892276656111603941765516770776032714843277076981249704698123112295452765885669993992565227437196126666772939629721015722189917090237796544779840516143747937201275695340557868890492658709445436851692548904381558266493892666482000417936125445599947090919675468148523623375870559089701813280174416010912456734868713834882400115004485317488467191887650079337548277052252526001831913062231732525837381429571657698819107044519211691339499859989057430213160372069427283259654409833393565287378362135115271103918937879081515862403438048818968112654085306756215942997015467001101741141853209366745058179084538823217427269352547795552169337025638555606560634679825047909959283942542063141742055049773813604191640553791171638788796080410625000911227293591214599940613260915231337290820738767125091524749211267614960109475094227358957871949212404595470989134953597120305767511455665639410880989317607705956030972284491208009693118772020550187971211714585709750983741625015213136992539100747715862502371556842616033909628430489908539259531126481595145073700726063381358412728714203996586697165937091145354792281774805286568929666229630758739255896618678215868100933419629786657154854842972081480303549643458808385382328082295107316305146799262176304569024215361883631890657652619051772115944892333568513490816528466107420805953042051567812423557265755135074883943532702412406327757544477030092156596335065133051384007247123763804436534064623655967089919985517833924913316901754195977835261556710522672416148874502560081392549854309055349591360504165005248319259110357159151091961531737597235326508715199050908117930255038499775615865747958388387247440141383556314090816459919265430570269298592236839092945456294601188439371557967962899690453872115747475428098448956921599969987968888928187838534165037656919087216850441989459959392113389675197721160695541937402288493005222601366063292982785170635010884315380612133949026540913439386333972603265159840893755340680815949256516963060064638775915184620480379519196735512238512280528735328346478317801811414705208382182914910250508272955929712110828094979686007545362511879289755467920762027522823372798913907812706740382946838497097628409744767658096541482308481490596602815305497670141995701017613701360887529902851625735998192658863502223678819540853274560850403677792363389011433012150094686111561228072121302195464553272057720402660094705914115986233219476239898797947892283888600022701999653948407567338170956712997713986374277488932565524627578103670784935931178273060280087005594202308587625763308868955936851428483657543588649857962835745776373960913538057127812655849750835400151521966319773142493051326409632920280477231432269855384452076770531186005732497572402478552883993451779624022381206790396076803140454200335145166311984207627515499549669147370864532244666893229099898972139152701454170833734905578135758364262541824043115385149378035196545549729046069819323951001223956651637441813588491110856613202937257987368891325460116138466000775257243115551887135406262034608181662716153862886005416745192394535030680068507471115290898230175289999523048148940901376203047655860371240906123554839024916854226178562561828855696731430231161879606432412385144450649778285166924193528157159176149624747703922344401275483959004813559512864428505406168825482282094854629847901977990623226486293573383071474081741209812138745476834126634548358568827432979393029339987497032410354564080971871037727334253509316922373455562457020113029693205408538819806654127662560469703944530801291434093551139620507562895104805587442023106866929325704007342697319140156996218008578219639316038891043970161239035499702028926733265981655307473751487152272171089461910096535430311554270159294930996490143917910536430390960102216436821296420122900023082832944033302637773092738807327570154868614632322883977342467208400389947960169042774969908005835025145604622852222070744137242769729413218575918415642922000384370391590323572071969360774063516204050270240602140405241146275053693797418213473694643690870274322963580121153940118612939616471537377516128109462411026339180952368140541661146435401684170694600110728028292904401639449954906882570111572956828530127627720372297534741206774057550878204766252269507104588644374625502490310896247172642941641425795893119314665140890734056428105438231127906283461498378739195964374371874820484030675783750728612549015691717722518901145606474039344446631927383274504945645184439406167382697758186986412885728677731680637877390444188657730923107894185571166871658909573235797925925971413689989480813739240505822597091623524880160130677880153472928647636344826138706648828986247137712275420727812118605799160765275722494963036648011813661030485562644571380183368637429619949419032581735970443873532634178995867405936679832805186373621961688119423195925030290571252155681289025559648719439230812759817595886253035061570699987370709599721299095835089171150598785616342704807716793641953753609426012610759617433853704101863071575645045873585987864255582556103245975495878905491645551857731837733280297294386881331563299430235513756159497436620963117198834124685636599817875118001532805026245144487186100301757251785340940114395250498195022612911542346956307262886674996425128898193374124562014777157890144449887106429482391137548426562050698259472435111986964648231889116983858008294191743874947640843866911746208513538551576863124902353839879238003919484067543329628536167325585325127959725500540318540057123570939364201259555311389362012662940503622394685447798663013340360297754509978373742485756774244732557250732693244189439481960257519412543786235536403855781432284350251714116267484774184413706656357936588427142386475632270474434532310042965996030327187988682022547841293825902666328485266002099317298087340197104941765342562083026926524789684489034856105371416653633086005256872200154061091101327151770527212679390317904919626936883849743900055691082480361311095300438855142225373691645883461774659534594164803408052156421840257833758824635989578185289081156659744110290369763748114709944774653828155800445253582069902441302860642553689869949957277766133794539991321762073627198305350839323307310515213900669814606566200724070874931092102539594049108769334336061801388140433370561784847341387040040865878678207885701415812626612812960799914210676152256623952536949625700604302867325885865848014165408213743846891661049721667744550460347195626971335784960493241179071578132730980839422332592247800897157288800675111986628531658147919426224224030506817445128723958162965275971929280525089635416978980170201694202746980953848100028532495259800530417407914872784520542548092979708763437628016756419228059506823074681134085430501895274925497242932584603414875360528576649663981877081210781021347884010061184037533269749370769901316109884490052155211423905664362484146695147970729702619349518756191023228974809103200621920268857151108657051073122630950115074326381864618740743830721793546518687519122062577333085112008672738849061894055786164381262068676895329963471593547096092208790982836799597436103331878837918972290078608722579983058406462192417312813340376416079455729502014673079484902579518160439884589784760097166298878368787999342304958579535365263605324805283361916536259727115281990320762802573887543534280675973648873727224729717879910528708304794810864595053336650634299688933434249129381194021398484484378169802489077156294790204872337258273370483981661669376202709658246253491736904942110618615045298097885149373724857040098345435725659267542319465255762866739408419072240047901217969849900602152347324421740361194330334024891923610104576012815396734043676089517100329677403676677275636155572709856319047872553465071635551446817058525970916537721119095879460451472344639368418302926343259739859222135906824920174843233171936728982108916747847408813058052796778733511271035865968084724894914758251967497224662315653613276526791341882613516228121715648641279868935159473996620550377120578965050080768002599198586497180182725832294879575307587126473922533980132420531222334052539868351300493333539149679330671724267008871400737755675096800951146280804658941289940239540174818617147612426826454212693108408789131499620646748200450520592192489965502132823128740661573088019601041214165846974587772614123716126852155983197798283722323436178418052963715766622587122098925886451438011382005760306551393148388843473825910638313429387609529362895029215482070675461293371568792409936507603203509879057228912424399411768648914796477684956120146126708491268077656544062239462251014062473607916697770136996965030443873213408334656888366494175156435087712578394191098671047362157367212073789780087253150679414357404602725475678082105609345919040477344454701361051506112401641676437191106074753688052000697258798493436421853590322451527148490354136625983549518820132446690272023572666878097717417867717878006125505640801180418794584839892597769389768446867818260895564423793969564126781754634128568005793117849531034335099592372882481607918545470218650155013610591009456478710865798567976854726824172435641679656602284768616348870887909385942424680547115522697070750982691349671592689921890993645939590997797321982028539256833111710786283999034606987401845856514612828180507623520289693294650916724019532775374020383690346270501148023909606810822154028604342593733478680888675680896885264566663800945748466189033510080276741659566242720363956828435950945882582910099320259386357237243564455206162532595173483702667989892352119945769303739590142187452976398815630158334236230215386017874206495835285346677872745963884052059390046365770903150819130658423843535864076229472089061792502786297187873304081869326946464090947947682765756725328163022413096846384578861766540090768424801568751210338754793499198938564162650005687101508362476551582935688544758292391553141110607485143058904206083441464412146617940641901955440755631471696658288516995033187779807615227333688222285104954646083025417778890053477928048639289432110644011763029684195423320125400563549530916314038658109221441088721016613636054258085075886488026903727707102843587376834954920619266008772611707900868665652009550413165452772782985789838362315705598230730458097986380349049619100855959886121682218233082608638180458546870548583405268193777592169898838839347859401457081172671632580911226819965201546009328311395866098322080991441785278589209956214028121356898198892398283623183226127401978896590893674236371049385977250466048269852612682221525562430645300267713268152086067727566242775022546866341437290616114126614936927946085016691293923818525917460980324267622807635778453844806608017986445870097996765338022876149499401085574911550236492485293359828005868868588190838692631349515098474843173767367907175766681482628973038103633910468249439184417199441719940139617764551602397029655462975696153995590068219083443491434240926857044065114863556097556597593085705767754461536778187235281811487501340296830668683876961556787963918714668237943274887245084081134842836018390939275807713040564171893571939258390153499390041546597889130978780719934494591728703988253873335996998212642889227420471069769267312050974352345734499923283503733163973947691327216029722396172659438623438120353593587102037904028314034305964130765789890556779582361965649426645696529763897244322268784657103547080470367063666476744187580641016636754284870537710103429367565240346458664098573153572267957927049600111649980714247507752791229942120441699923932014627014353673147721671481126293054881250405952837062467827829352864801780045060170662124005445379512262040677731958945527836937389632276739507712717345806666302886114699142252304472722827239253878560766706782007246889540742069262259341504595706554046917239082932567803943019363910790658251836122016286966057948705293316217743818782834021851848637473309800124407188722421472384345227518213247985296004134628121041675643504105182570325539754566753217042332407364434260807702389943055818486277378510055939235626492894202489441182304861391178172920945848839679623382768154345044199709721244303288724737469917439086794860631343058309149091051166625818536712900720106258661014732772159897505295313307111797630213560344552658787484987504322481546900184969362920787362664935271904088510663056833413600959124740568316551446589385573065205836902804327343190454040415147201571642314116743122537193338769630938937224183808049641133276445816312689340886467773804569412406152501380410470712515051728743096710576338446918554243275209794560047372100438977680584931579520438330366741827662622922984371954139321907775167186624399614050920772159962667427833045359787325227256615920515455420497144507208569081215664658343164653144829270205661125613752315857862935371929100335940383199563106388122244742195478799873266266229636185794675129827034250694794091822372833511194487387458211020574287880549738805886108578923615891269689287156255467203508877292486789655247015400396661587964215303896911238727796504072741764106002090785852040025673293628142231315629016150336013088794025324797660947652308492985190810430774698032035274184335189688281942307639499953761060797009015746844618290889594234789380020797289924890186640770287868338950042024898690096447341901127316855075394641732567606801540840122868410159988265234820467287619272133069534236087183020708481419945243174315761747574578898809159897144703691207958322276055457238442507567762172243059495954566271875344607275954991771887147930878342031644779069921459358180184747873610904879077168311432485828306047618913032992571738035786865611819581194388540411658546691360208786836229269260065987291307219730104585631020040550730754191540150413070136200851814766156509918466934560133299334030194249320445963602829380928927122520745313226486087188834682726444119636618932237506556118848607856670555571359946321290728782203452267595806080479697022741262829116564719374115022000171816605573807588079081825451219037798406115487335538968715775222140573095090804676093432575261312449892061476794861303983938548917586377561627006324417028664297110580106490968209437994266903766706276939372640964401527875017670358355970943307679735731814970109250699828539052173148693016062835861405202797224423796158259334932850202836806257726097817636057471594481154084157624439552286103707679859356556485953277497495274932810352000758776168183613451894281997166241376870068290047295900244677372274999777759110624526866711764070470076008748271422140066536761939071761492028970584944872620965251519022652741247758934432003743021520816460549017386357778388099925406149733212605825804692446977997601293568169896843850808445061772593936785044134250329012389869143756215630053677931345500326171655271491979991915736260754303283684756892352687171126496003044305364824386593137907091397017753383749044871864159099936484407677119129338797125330019180364272350172950179194952373603275273889350831582614941479795124526358643603692447840471635360797415016090076876743132905544117753326755049148958045847679418961526090588181867639495423921117211739725755198408195459923670222984007484699962156353280660162317929863338124370592328373971633855716108280833889074465476892062922378997311677487897019712296421964595110582148428397225361065039341751339357989731593654960706873229993297550802596550298177432284891450413334779237935658622332889673491331025463217633746250823188636005770623035711908171336497612874401662478815421788808680574381408488855931861956236857145194594726283239885245573560807910546640356757464038885994683090019253788815858758612888231446798272956078675038059225898849158186438387207587349968160657407997480982049479118075928606130278894494915399166918189184830046055689608839530941353832585061850291749727589477157598378657686100720024927898820430097276677939186332666976862214096104354250337323533179029637094224551775142433248628548446600257587739849587579571812403478090777406000358722253016736151121233799898136316519702593590744319424051775911142338614569994739181712068906574910113034149408496566005515157068140228639527331856127303724105590728593423159209394640733182257117103097863569384588085792470625353876667855194592276984928271097571452643204290525696505913593732667253402762590398539687337923165793281525361238447230322694989308573414966420270342104112852121162113960436728038391736305741079654085534691151902147455252744246135246055514464531414006894728924283538360417582186296735306309286554586952497200385229938353010772458854152556289943843764359446260765410862638789432487651730317462070196479875901478122650284441734419867292629397097221877635529971402701242590697978698152422109787601234300591653830194929062038146429337311081622771626635155296259512920796606201545908274421730947229451041701981722864894352603605083322207873589164102100624981911550200128993880575533129590113083598989354481741864730417564998636957599422592140159883742143748587353386524546077064223398652001279783671659135859355192788670687800538347153535115479751515494360921943866672489182288360153955485132777544452724689717551141796664901408038114364133377046043812464705607557310625138881330999001337074921645417676423912711314271426215302353806623316819995823198905745222081279206614329106653475190000379703076786118301659935636818658633902937373272698132567439936306197253611016891607373402693476150300498360537281831859345569557896998315634039102094956407036388402285893712622107711881213634006002820294509257341211775983394470593389994482612180845670389705308666770325935606093128981079381091029911068024255525988229209342976390745224448883830603080234947733737276228851363188098855265188365951227554063804870689166507617282183032636929486414294806515124962879903633969806957723212896976445688547135831030417034253284647394469143678667329066217382459976146088713621637337816415523284386501833838284746701794202114638154130422420748935626555927713789524667170341903959712105537521293839904561790839950654526984980903374700481186196057072585336810761483469611321924528091150142403384614544860734193593193623321109597506086231812803070464272134612562415938275752116482603391101044168385539818433902663918224291071570130921476353434843878816081741006698540377880006830674345357206960749292211930984038653327746048546101129515488961121187770266267716098948253679222899679108090030235401619832609416177645877312829345423956684544167200683378674341280238060130243873086436690280050342230720150306100496525227391586441578024194114387662998080151203131737158473382682918019259108793757899528740964315307097042019278785302921061071184294226403546509248229884059742749698383037335564521924922270273973646343052904851889702205711009787704028188411873126417900618065511907227987184890705006106666876350305159862495836610606451975607364632964141677909466680206240432674450323217914216705672994254504435030920980285059846337760868432575482577427965891667659559011392171686596930311695943188607427047838163070410312107755750030519054930573875168394674997999069213694616729335714475707521007208064072781418555494524612318015912632891946888605073242318974116817485369443642721256400674624499497696142721889902381603211269461235923153327956444180285128300030938158950961011562483500900404184598812863588130188514301569987074689484436538906891869355106445287433463976233139854430206418720701235935167834127841213878503876453168185533882548049375384042028706639202923908412567619298665170418004617098157275910601908064037268019781053202336278215672996732505746069979205251937388726972772622969441759096985784576189365621001846874258628082302197403279510315889432257609836054271400619956882098615527404883490422106536116942240190851325014373332824663902094943479622456356315100956300512066127673853835063780617350176210417354956605445953543813037546442557602720075583500790035293325738163730292404828602233597144779456624020641671099928481936389607653881608116804842006997672701181376652983345972746624126085046237343831935039104043537281418673200751350354581489871812279462450093391470855864684803045784440657503970322511587143361002483688163429706504487663365445767311359027911818760656153665237786005239266479565921150147632946583190439482867949023171270066126904870357513556284735790143426649361941770891384844199941996510380497361293733749051872353978228405515371847430204002314580011574183464201066732489732790839548299700208110356753073563885138471514143284558819957575213390070610870518380162893975872598188464430896390034274133225368563887811662295554457582166259716708896764181363501027906575800368002016952811631241438831673735861682232138249619920420836995021360950742911634798627737005945567624112900632701665433821135751376820184195071584449527467260201103114093591339643590583999237992596186693799843787072956767876759265448073844807249529651954131040455380812551978196450569084803864431145463825531450576694085158060304475901483148144190427627804840046410079868969627676956636783273348707570066480639861149006065776194584304792579635507979561713602169695081667038050703075234280818098692574105441016857444855250065257766745099458911937339065706428288863015795846562351191609132341781799187663827267259845365265084139492997628891910491330213990868753729229967670036511082482859902883157081198424848873871248401904654361027002159918344779938249132726794779929619640525289860775657926112097033010849955095019436972257654092425008414015144556892913288129336987337895211986021768584592074332677856497850165894666983767532286802001953625823873109707193037538630556348430591311894553355977265702439716288523292423319348227541356434498611365055209319534025051062949491524560765011189798697379662180140186027763481383592804268290478783307601524121742772259437708647206739111335311839527390164581509469392863216640588312807208155185323714496586926435516072974264264187307058511685180927923481712920316891682492082278596897030620570475323283671002440159630753012536856556881994827443504524116970326622590601723267408388861624956119600978771191623973810251513249596039104305189155403134154525501612175781337797988223766732838090067385693630485358419957972901829355986436450387003537947667866713192319460487028707443268911491977126915199361174552689132994287469476859075645237821280166763038703015816294081194293693124317347057550634361502875465579219598463210424552688219876822072988677119446674236229363263036381568136084545981279304195869809187234257455011204955030926115896995547483613439536839025838160123633741529110616559237594334882888425799123310439424295546591122917481064506169911622651678400281480030707918528334451115683109621305921870534685402542833231054888293938324835244994524056764174048601415361251526908503860296988246348060243947471709726057194901565633121536864818074638305554823865760483304664953667281185560318066316588062772263636680937540963570694325141433714587688270459382308959446672504506542741529391521468753737854669878142951586477264169470757240619370253690254168061765153840203349856940271819383826641418788554028178307091835861100093597483507541211795916973699081332417672458273943791354298524358660314867416129440788728278847753486429460923065179775410918931130919616262861252895573087664645565857378672187804984239399152840174377268910544396982745199927729544833361310774964588457349670930877923456308181458227083368910869161923431066595984749072409081386082090888736529571392546211628624963079531698832153049171389285189958170180127632278300304188440487354163841160317530718726626440062944949175387016695830767728385185025817583986444801977220445418945931503399146075186416009367046210269959442290583765411240197321408209789530278310635905255195659305842228777713391847684638060889816872185211372044797577794948656142010909416602827394333056071864330630280184819988821936918764684858266881305723733678305674982035746752407961873321019050565019781211542433493750889382104635604936207366310675244984954063196609993330896081778581899126127986302323178262059140578976126065753846703848657220226037765242854387980318638224754289042292198519284710890079569162128963544032381475293194171237416568008002312587518441062937864204011218741663243887263855958732035486147408024771315530807396681693952422925147813546631510967783204143704577364861113094203331830522827513405430517057940518307693847515475130555326472973686767355559053221266243438534858622375345526906938501390279380145802594720430819737458157642384349439600944925164226658306085684631258187428337721306975342644450110451241976276479030489779482161833287774028903404595261108703459027027173308874735829616321949611384280893233693837712141258930165194805879531914450198356982139729110007115728023470901234542958141655441913152147055256304554886002105740682734637102060449183479143441794497559939203633611525855422817678082587283426598254633530704142275779000729677941035853481535068081967544468253733702841879972184635058034698727985271562314671206997286624166595066813757511865440969098746390763033251436499714340756460126324336446781511231713338593712009577546089420085060491252548794575417291693890523403051439961680772313792766183900200947482167876895766106819071737781529396272617540859182889416576589131408172215434593962895483538365430744872951034524604982721792461777280153666665247113721504867498391016287133627240128668867174283106353664263902163969071493077061444914262838122612410074075504307301026966643424160771143664036374919512425223955408254010753089480848373439792680824159029588552763510698624303979257908824586468889115259148212816569077583043764677459154143375707529673429750776942577431281328240221512527241801513348757554188960668383919133003155123510896676440723181105138035543797030161670502287107074582155006960827702681458095193367292221763278614895287764680921155517297236759705378110025965134798604643022076221151785541679676095577183065344120981383172173969388825273939302592845377704394601351627105274631213689969413261778301090270736323287140115979796935035621729216747504300300558953916581353683673741095257570829937923210544953189706630188686972726095521104136361735355280748456686017818706709464494359826484790967476090517316759389308314065169532650428721083533783507691117021688760809837221733941983247483073126786978307202578789448403950049437171737359726347737646838554157566527667764489019265038839360988733430629694140711155298757384813080363375859214223981529757081493893723295434599965608875943129048274566225991679438751819452297057551246215967049610923644267962531569784909602912306671359218204238410696951340879389622386353857132522189107388033665648641002195266216096407114301344858594506956070091128848037497323061063994196707131725816848747173902961466375246430420891560368808912015503386804262906021313599159045576519328998273419028850538472215300967176780662603704854490950837900623544130899537518600748902725554665752697516126724558454932487449383101723673636332235580609614762007285925025822603136165932869062142828562757365772233235519075716693007322214915450421494531542225275361603370781504905913551408182517056107281813397279406584985554479482718008495574855835092637959315055766026549495344215710106186904595570284604750122852937243567949820655528900911488145525278004134546109187289489908744887512026501546212806754732118469939615118936757525680707920580504061998923387091420594152586711582614169305464135537636925373364994893462863730336633026501598966516150359033523106052965462111754817991421824576361251993957102696534528400836468594770074962455693654860263458476311585958978801652972193703366436571170288178943769575295089422121878116449495854490447497728480747766516270089387621799505105736866334048634108181818459949478369092584900432110006574538513082171564080039256729639376369414175336020280860788767877566589193043459895694777901869849384708966913158378510353861603283486277089520792036922712290317653439700446701414913019589505799356988201092574183094742953471397103946009216272617250102503389112270266176194999493264353774959859932994700413797955475453089130053378781741576279627352536419281081070378168919945270513454690935716000978604404841579584794655537026517192706648254285817281701973707581783392470296300195487117073138652854422753617743057945843782195464135617202865342229327351205041050130923660139278273274634837169547173044809440525475907140086230963050750861285048673658844716779881772644828100515464327648477280149422891062162295844989126173937702338612600025607219725171324100207547208196564763724590196628516682971424722842718412422559325944474826120575207341964788398869442574723646121129905987429160991506773124886913833119821662888179501359227687855023700269949039653560680336727080064198756276610180318330252805816539648137396370015082959000097833989337488006664965326013835418144349749665112703567079429105686826815934374243468420966032508325402985726633347419406620496918140504594390493300001091111316913386841512977230520507430838698474730764129989203096190617936680107627702525356900053143946551643470925881021752994178910576938556413106557179199962749974584352960570948912471325108741101204895135697773649383294903908246257859485515038149091788832251438812899530423029030695608170926178838729699197216917076338277334975323821645591214304456266479657743615317389087667281000813271974161621391774804348390201081681634206651996888254951603491213899527861581135672094052076633392406557764401774264713272316008118342464360302063216662986007796061221249764479212175115020885274938441878270350792597558009783405085513068715349027592828436485506904173719803242003405328721222694140538364089036750056160236485795752874714240172649112096646526942128664816781086899265799252726268870425360396725227427398112609703364929632825978773790000593405409743838806306575381549610203049429296981561790616227085280874646494367221011455347413860476311144660006462122867770631052794752595669099300176406263971708951241189875671875017260137770187692081401077677005692327094203886522081451274189204989163501545861699494408592323578001248899535132214731122422099483293533259121000971536808482531792431864538229442897901804048977755058954197023736769672319997887330172037385901089354633480738027150172958478653404359142589969274104217964522464018951612983130135571362619514957333121239501797314038663092930920215540756843190685661187654200330133469821118475131564030501199992948582616809248047762562501253393741009844143210203382561369059826820125796624824185605368698286605322988572563102784844418972036008160813209251038105664163683657441001374215487221599640778564162910724470428593592788170318570760754234587108605294022720804355133760055946927004931319958959717577926079978473522251318654581325980705352141010680149103007434972295258413603812815083780505165444772419571123185988626408485746223846078442735989376900695979579484090276253417608300594033735835846439184396653900944136029960535389288257765875954334464488520330920168207616540606097459043708372560264312532960464161191585083268134870427595997490780229564426637506482483592617552635303954020602404560031339123796119686837418976247356082532986209329829800345920308818165398228920753635454034909305983847585203043388887198548002167212159689767195835286442737670634110657013448610042300533168477615602321883232879257435853834584819910202616728267527223104655073827529899534596566676534912595897638327573464845224936402787078036222783809368172192863326947729267503334774638899267532762950411738042520742992591444472177803996298594007879406271551050628333161807624929657381737593490001370587480440830415581948871492502846049183028226592552683146248380331852201247541634468725284716017579403233657543851358563546564787458099165792541315071011023777339038116115465442697964012143247884601562543427656315798664956552193629432238342207548346273943302089723468537130767103362329454582844610471596623869957591954890781965487831409001082449029821697343074185064892223784785942205873186730603553162298221078002508752354596170366385421468430835710697279663148529023367330850001561458959125225377652597584501384029253803856020645086278349417883431817788097810162237446176037197680730745628896346313713330935265579098782738156405004833896114673896075681310574148972502053117541488397183422777844768863210325355914419952662193784296050984272919301830305067172299287519717717355253964136063125687681669593416846169067289524480762567936362873466437529218165513431101729398498206448597835082951114611622988734154452674734382456401568090046446894577291919741439181004189954826989902410497195033422171116588671556392669582288912840714799836746984028342258986466886222748575295639727780800329369693931584861338943370974250996956530650528301269355218780335594796595771466722765206843216071556824424599809370240007640543836854144633998030800788559302847964052720311181735806924534234666077218613105364156425343936414403343724014136823693081662993576554497909672384064681098919638331953469238007287246829818890007261015416573288327285400034115008117356679554126976566066378059440127533531838473479178700817663180684091334863168869257420299717435969736359905344224878151652650633675017362381506961542575041766153945539944367013377380547353700361677516798513163251500192266152286667094078587581697663174979579813083012052287671213386078884077388280628355775546447463974593290133425126273247780937147247465720624818297365563552666484842624764428914937120808749132664019144795575363353856105512759604488070062396013253833176872598127585414956551891976747103029362666179191076329428154757047796617405826554379181254012746298385211485499632241394101970570449985361606569649697726480297493291401648081591455877515442708955705371974142085580154539021654045346075171879587476795982720478505967854624286172897190210137084938467619277513506459745977784729491876794715586390387867487423239107392379199247567509406453704981188043717017200177882218856860951475100220162535117346219478888664414996529332478920328181653216157116148395747009584418631759929024719944285915203143461474083684896656048474488538040349535988058423141194783775667084512667124083102005813859971809712977975980013053008948435867344381389805920003195014636980610723400653583858464470594645500360602109233406403723487948361599210868386818341283037060971746497958247822911804863705002221961138864398334510450168005178642058537564769481897381829220749469176104845752955380809565414576775358335704091210326145891616598021866368565427098171345249814572686625401190118924939472226914383146939836158217768842544126404364995696786468699205564360701248320698585286521570721542233430545824481400150226526968574415033499959953831161755332265217687101378626718440542536708334260908224187809613315144487187568805550102248691702250429639709246823052291295752816730640659824500484466280227262986883385468282127355395102263837741268720089493684847644246567122460632378462726760542921850144669946754165275140419112703192066628870971388913436282600851753556013476813137189594189546023562069534369392965417970444382974387315504540727360396017464364934017992417022341535058788362668987288447330417422511050276083581165021406630313345099645227967470837234061882447650868409028970556044679856538235316575900265020140782496929549557527180424278208341709668384835627505105593972226131045198265871836075903872671711377999126923582794678976509295029261187854844030687632573378480365822189215702881592889383972732046127300701799576055260562993590710950171479920147354240948166243648609671893649054249574818914048510440479024442149359563898158633706879236708644346946947460922579720141785438883734865830859795472646081695162709404905275436772698674937009179190164787527677807043497095728923477776377014305996419444619938914258285478285906500315894459748997144955426289685950303244692476509537018722694618704759102037581241030505325167860135675150621864860410427322197793282292039691859981928607501742915736633314179108387089140491935338407534755485095188952290975800766997182065195758545845480351542649398336171151399999597539098832095400158871168912457460152581406487504691863066419806666437166200690086119899897874335415780380303853910822407583813374859767764209649627368202293735713944248377745036712813162691596470463936327622334293360477972106754568521178647117137637721794927800978980845588639867107331176508073352496814713892087323932693256693408727002193164127103030283546875686264393880632705020693363707301895530370033266255506848346725122199839063736693636971800524803529894791019644528433210660417046726813894918906986020661426251969557372965280481615943475509080019653112363114099691731718769230232900076796954342875662053305745601433964473859873963745393188542849266620295052867635688499836094341231071925240234584114426043730341182114242450552320554952395388057804160899155366991305232601542591705291246124837348747668095213883874537791904482957904045566091235831873374996732542249581416313481067937358547113558584270667711886214997614299511084866839927281529220664163289391028751452175129497155441209303602703514066435284979150767276641255964872866126436792805151806556728029455437254493021087324853335260564587232537483391754114444514014004418476725407643808747228678550579316195749119174313336941651421018460710532034595226916923830686597613686758273417782648457972962249942898947564368173481839833101211640319877653999926452449217267386467692312989199592197143860822187859451104207779572012959888156347526021177895736368011567414691699184616553810469143621735445436419880265599186800445895935750170144521530848439962483152413513158684369736188592061883377849456377083629097509027995637976323432311604575967535660922793696512629301156320846868983702958157519583073037726715623473143873253348499838302722650911896098819292821189938523287788628936881178176562684065260169677301366686268231854819289515262560613379122784616173934366459918929795999099446911435501389600295192916768452203820717229961375924623831927962126167947828977415846149024112891828041885668058046492981749840760395020781305425263569168655878730311604315420432211965012409964864331473572891929850097567158700096889220702477224699749732905691278853199230298000605447257630050301758152885560853267750096446174987880870594164052644149349255108014132675801284266970361531528335510499459857900548409612623743171138871919399758864871358825725379800452896656979792533685350358429255647310218533688251876228723678880374547828235187093105677059503273887493438478871924171297963896396492446851851665142022467641383265386687303584679041128632454721242017067690490202232690654149404182628896154504304599398614738132368148663940529984937540435038019607356104312798907568264755252790830157043184764887965764589994091518860632335490432396846211620756198365610584138121358488030229928406362126101253332085092043991560206850254714450409921876396361974991019218964905875895543946831197194366536604358749149242943792103354439665631944041681375381312185512750939285219846981233499802799140025252002544747160515416788693411483584066148484074153280694390635340450879488554934726021859062042267451792385692736674817339920235314096465715728868282936817175460759547324270898357362676063050789831268210484009482430857275458915017244783472903657462219853742113581865490978380677346070861803025863793538601341455965562458168928577485217571760831834069278412983797315351167067720748169191710645242292984951046892005774736308276006680234732805110084764422266677975888528065753775405508308100881268108214102899093589735077374306513483003710388512850841379769173795967322846434960144913288048475728025523875241122122909384627728692655072995046435045193135093972113618466832871864526686505499684533008622352413919026802577386595601006777989693406108036847848634455224393712303908766363648061837076503024962776122922505716898883163506838606265553287202986260153200844266159646782273158110338991614314611572602459500725633277024863912914933403307319687506091612451986482614561920001985338874058815215577427211365710284921695234738542855840790234813587797620046205929945123589352471457495862560853204183418053579963525982939330987210114161070507439636765959427297715460848084796327207124530561582747222679780879407665138686166095177667744504462876264679728127623624973713796006990157885091299745727169857138630970005305909507206354209133054687647410341088688683612189514135040721484967246180562562787694168108718235963490111446969056539412030926443548474424797912340650223568881111138719541677213928134698990740355749907849674839780586840505012719616842584069875412538221516340638607789214022288065176307382219198831682673442607288222894304607142834219827332669025940006296854593490467462899945064211952949763843469270501307918923000278500840767107350060581177848188240152475012838254312030545692629351497242431870021268018715342814090037136309829170317467726296668538220941338453555982417850090448594364670361677062143155618443198288084246810079681319330162315785844759499368023398496917383725533966895143500825235365737131081380603610724841613820243671756329397615534952388039773627051118367334776733857163837666332482885171584231175665536838952550147512637763956388729586849239831157883315469982474299831564230786255757550230678533225215669152297391461163273941026000676012717012049467002377143458186197070310289464161454046962299714635157746164851269318712782945636744468170980348131176294720491381654148264358224538985978666260270401625327979821178995378806930991005927119466327466331735835664533139677499013259253566228615328177131592037657141362257734293144435186584920963891389610337957570301420523043431914795161960275632504015896674487595303844489556662640682638369160609615586875013926177730236628136474169097482996502748563073653968580661603828748995905199201787697196720730512076415279764910045445263861639633435498056771500215105450690036305607720130069910662243020196923727302978435773236941347578584646843898677513096070707843605579298719696090376290991328850312993608837970641279939689334966122274612933028589009241131608866343443585940901884407516485441410894581142031148923540220056692783946225828522738735228867567471378485596775435732340098907426898461621407508628696078615810056591651040009808210135648244770750509316791384797642694343684995988934940088476642275275237240200463163475136159972863945983030478141568528808352894987520805215870886710599577385992487968120786178184445032414754974627786309919404033584652542428973900045888046628811997270593413548378937874977442136577615075519595753123883451905219432491006863763811529289212337268089873470781886303845209838273520833147829817855283559644455032570018275647751522969259512640404882536715272866233215135444473670038225218787919782656167171630227110884206097952539724990324492569594243654584241615604676440662901191394355650498658193458058785045889213969609487881400682916758320638941153269370387590152697543297083029607806341775082707485701233987125423285748205183860985289084355059332109268265773796653011190803788549993077182775745423131062765404341907159708180459941047257846290124267772912612349120296509366851706574922048708754303218398002540168121217028714992810176443864881009683787491604995215534293034335849055795536225641093658677550064899577596172523871567598475325901065980956990336297882562719222426651334404769901607105003851929032543056742095785656599175459711447097499974151566784434246240786622777149753999523473533376860297231814290492109662670777991126809330823481753550906141422655737412092789001149215676451367667659569847536548395762823580450857817551565378203315032714405372641165764433583770549417966276019842650993391726465430553158123513385364331885259793022442131832030630226647984893820476994813596770015898844068145655617317768596430524548780937006787679380662914300601772935753203140334816657408295633202187692857468417332023702078602855989218285033179701932284756129225009273301633106716430858730510028806805766366000002490416645189699258603794145943570898870862992244924581060882756985878098219143500603732146884884298401708589014064063621296771911360952227672542956227959060031022687830815739217278766101208284725139941978217864779927079918899910599870771893514809599458682543804074116116003591277384589327250980605473761659943982719850299900376792518977048440454024940135825641593138966908558451123063599531184289425619610076531267082259038410816210234192726291307247605678052645779035614557291035171158958586553879766921549730670120299910094266528745581650872915170706880300864997197881194648648038364898503421473616546542395023215387986668063079255369455442054362370440201822965859648603650490244878912805131050129269102418322465400802053540498779632587656417582283251840581886322101563858463308064522414127049804365852127736798294323804309800481980356894091297952503806175010658247334493586242027368556478246730150733581895391290461181089731180289397634125755076016743927647647951690114038482855838141591793058143106839494962439263421467546958667135953034838594346073246371109868354602327324148711332135977008030931597969754447639052532517267381080411236015821644154259867968316627845702348461753486773148797436646312513408526267183357559710278077881804674571858586108098810214564750799675755151510700374177920836024141541329404093933566155810912809005293084380506921976154260351256441017642402780574933214477128306179969925966542313194414954318610105030519797624430499169773572455808409378700565039229008540263991831753783538747025194123084281096561007676375929797567774734482884900409122678266289589507823819413930971929928197088170482377597505462137339775167061916179512709857805754003884606443070292113593430746042916784726230324747041620262857149060276975647746492060327974255102373341041434896959661578561194402933480234044001946938463924957919681702748264190009840136276723326118743201560481492281495251203218688688057739073304477189330162788606685079620456052229304136911389500077256820041583616461112092065564466505723926487925118598287093969248875903439215936436157909363281541531727798619546274394440296700890430159602948321752050395567984126438545950604324695826203584032754666600687793486860541806438881843230791894255663509925913787886742169209320532157168401134938802693578528688598280500381491915771615698120065002466348489618266196871338630650494218941262215467060112770242089292895157860708143453052119021160764081785811494658585404462073926266183356665538435021010476346087847971736538682316845480911295755718083553794433292094316887168010487042352530374876696096808822881054139740614073593079085022787567431464999581656797284912944687641808059966295031973390699866674208660031428104389873372928703505616326382427461027237933611218783614018111664864565936591095920818425527265480889776430379307616116753747558346865450066299595693752122501430720162723817305911465830608145480700677607519322899639396018480021159045106810547073144524765761338513954097342026129834762136096232076166446064019267749852117607154138427841166379722824601959641705940641523514250783763530032612457062561352551947844208903118871111056438807608268520862234617807291562034659407308469286078193605870517440157234808463956652051719105655928868312448871667621402151916842040536301988689274882606824039784048362218851004638745935891471671864150794105476782411601858571064911183429248665794758264640817640780771810923742901974177273064929583029673543508022798963254920729708003701720531479821855469058796280979895999355342713103287360618092455573740883440406670199096742056740720582737485020415816019465984889402352160028716032080033244092740826054941628047164837376971161689339479799650244689913818631614143703995825975615458858601982822986648066315432908241612800518334773438767563635080551790051676292918098115387393856439449044437278196058822948844957449496252355064749401506601758363746769054513268628517620268169182653534598313459138455757414570920119776224758406075156299041320423268644984384141388524362018982069737096489216381756126181578821208448277964302461523736982695924142398230515364305885138340947005445446055086716958689961294963288314042790671078614023116454406902079465099523866969382907618706984790840669924530943731876530485851662680839792185934704545675076546134424176589597611310611745537250179398598896330290971212246395407720768909321882701127313114711507163735677854074024675082971991640152097254432860850660187010727001641044019681025177617377123993728593739464282775482406832048155674786631468181467068743061321798140162042534866848629049332705405392609811582857600130824326936381437212617620413740703022148609375564319194950065384745323897413447498860424784438769915306111530884346719397210980651069719837432445366768827182934132528001033829095958054387766492617170382016005153969153072818625470937427959924463999109896464974807583279871807365566993168467463467938454020351552567779545194915290515371032502497468227601229184470542001063275449773575760213127551943801310998223761326741141315194195662539080410640674921506023807344567282139908107958345505548141484198917445583246318029680067099077410905341428254889038737624220436835800525372715286658846617238382439761423066266854192104130186521453393389373284843687297457864228547604672714771066921680501542241757381082030229034652144842076593972696251703005243795917115998667451654804899009592619659333579945887477986160517727201268067913070997211385500166689729393952948877860150868652399490683024489807502230722584103466329921690906908435229704130068670584015248151044162070791690151228547312245298764473418497469321112751076747055813965604379775302942134711455518406030736387228726763036399818763019245093772069719778091889562904920059512607738597184725095714851358478547403560828014747010843188084908946436684488212716026468551252623838324845127827354011078605132474735243665122556794893331320573536261671725349289877517671926818263321165382970277861376719480823841456007010221869465394281032550453484443536257842250838234115636644256149870096742917738437007444720954483686201373908725556874835372982994682536221351312313243327427875159805526553202123319046663182053406944489400581981946486120285466271332890182293181827496427270666668898471238395872846858014274062491087109141833682454146185808519344475897891555965007900764029811929110849357516649546734750707628488267528739545710094949693960010312762530550333674185325076427440778112558430215257199591540001783814703419859175072348701897798725967649700758450587194687733428262958018782423446315387422574398625479937826308389171722892085490263627708669557833377269746920576014854778685315037694383653743396727724189167564216626152704328375571932069323295304675950742351252758434832090240142395448827025353316885750931871421175636297656153118716430647030545727727669881693710274273889922707947518996803834832914813003308972352984415688251997589980697796077302554772717767201145574734690580111488243222110168286394275236720779081008613051138357854463797990341096515307157261180198516884909895242986702809993451903431897919505594704042534430283907406959717720566831983569530708142852221438672480792055646687744295974134914679228453002944747047721729259667235284978761779249029448057134239754492857727311462370093662933463556234404428031645334535054049529348324280901946311171312607953961686466924720464037149382946320901147667498905873798545087008511508510014740210555948504761605117383991009516168084163673827013285475201755703054351215615799240587055217107074708706031952769223919785311116099930188080144102317642887273102969023718188943058175017913470552072484288007127153878298847821258793055451638869483320426314515421954688006892716493691691107625650146588207689029481678876073541369135449492011055201569469187231356636467042195592394142966888879537093381650693191528488503017409271788519108373835864610326968638895165804428580722102110794581422212981350782316523545563424343777312126825445501065564355624600577448584590219291123441177613506200272656277597618801587667965930242246888645530420485937137346897299480842748968661327152043954387009168000967742550998376710428740007649109402296673933720497407897757864190618032543795990507459210920964656511763309158782381309459198287913209704763159737093038876600243144986999186967436270353284771772323796165206495652660987839185162497860376970317137644975294852264855961307006836357498938205103097397603957708063270826285254803245850809830747741998321032958190905716668545670931914678298279724593063791104759827515955610658130001165290246171478799632761705897737344662976302905343568583945309861306973548874779034980154951966666316522902076850494295062706459366376175967027575406719322331270039563850192843043408895615137676079091817622338299518082092039654032754686047170698309436192852732907912764575465781442142825573117151191399705694421428859284300207766830112845758712283652494608235547195528328663208520635536098108535188491431748973093435795137186309639299349795792821479857485199255312760207390069374477160123911630298902266341103541982957056262293590712149310231232361404650457118196994030872126136767436669788771341101801135339836747870861350463398965163125989596195703231622535529867332300962776518619476803218667797554479165410184329248498867732216024276107798682352938306053077505785054317549990527399852977140732811627755921383004348382372846741526231930855946679140176586767407472039602119685698571851819640561967586042731972713332995027095575756576009613466160840118704012523019802412432572505913102620753412642448362062914875692718624717464259298939289370947711721175676760072248994832514480195744348204492218183240598107266798665975748345931915109276994097319463042261588616881410016118302825784272074377316927159463810872638582472210975059761334488602220875601078707792279778051737474403084627984745433856609657983763185279070569295297221179957419875373666391095761524176353697506914726591191224630701141585525905606769622490783661451372294494991099857215004639049093932637349801420205204799777884422908854647258061940647799045922046139544416234164305593307758651765229203118850407049052702746586487696608041773907279915905255412726151826836507722332884584957305963190826665832247115866709639968190497073844098533958842375904470565342266011770792172353207160616736490010835219145604319215236293158990399293775673605026653165629323104964494810115128141293199144854913898326144054177188519729806292034489780133502356373043331049174066283966953159325466784808154294873431335338250695554661911212118743641363623535625737476685872459731871147003429720792573181322093840958776319154774035364875466592484129732779437921074439353974317032906293424895773217085630564221543074424620769032673780541022450962686109820030146872310670571604804158140102042351044698474389626806332378331041877019151781675432721608319970083476951565113722323464877708393373328750019111654041832523282610168781058732704577900975756038675563882846967682873240147120143268171655765403406632526844845680450951040243352506705430975183235730577939106843420670531242681378281227793469312368884223466807953946909044372849922742581098819025296533233186744685022785306074187662128555471314268513284452038696764345239143685691623204979033339426675576881789355177093502938318835325978879766388756103820868227318776673117489679899477717309151557555103603528918244194380258630315477546576232927950468707147191277023339096355097786450622023262669303931574623723033236434611124676247750626610714593621502735463946941213376894275204663170826326258362694850416723832162424636761059086501426900723361905626471258761052896280549976462918476990878786398882104617921066163492432189018976942874252496876750229508366127237737044977806785923815008130688010526804916106893287082326698009218899064525926474868556034662701392002241064030390254025450088934775521374186112066457706920648549971925353140349424638102832713193370175309247002000615937729810969056629680712310813052087821640802959605649682012036177981623433679480328071627262244167582511218265824913150187207361524507472330180981078198951121045948492179702985525421122795779521989149248808083637289280317407942880404429997441978340626071711352930800212394993170504262902834653281096207041254579208634065264075641380188490206077722568727220179379949688752366832652016634325584853151856302323896331807460294666456501392522317716212289949072916755996479904279564139212138782893375246414397485810939182571370332826554040586894488013505241829939498849261914595290516432024187171916244864251908494003048864525738960292939398252525936280623316291211104065539110162064503423626001892700415924232395658380155953834585922476453651011640851832871304201398254529324135109169237520585604400109391738514776450409640467894968654132841425278235981268960919640468777998277932068638437808082463920758577423241930572648552264049583415612704647919028704521217737252327164191515260896350099116504333412170152107199507633550774863899944217794092310069400689120934710755793692642636696675809796290087609036414363977507255383551801922466457659556686235311870202930066745504122817757703760112715242307694184986432257026564614926021437582233080153649395021247832822822778052697723246851597368742314897603845940646074196787429509021205439562982429766922235363012800489292036157909585641054825227209209961912005375675172083420065186666882657782309524952136408886522528858041804997872232034388353364070092993673614269759518887905786898584796900419362617103879279819883662178512971227287135150743405214306383445065566457428121936650876661350990173163372132983890795722819119496878553583400010081382288568670325773339982872254301943640266541653589572525271957743516773360818250801940930877460160077280294072924894430818192496804287423862385292931111744662797357820579999670474958907994815227838357401285532128183863021450677338948750105590746624779616662522849377497422362147331987444156830993912586383217455109678453405131879923593403230328194237573261690315048591371558466012038061533633911406400006293079976478930681224880884640742609226721225790856267314110613306598893844073029814831122936293925477118531661915253645583084926135311901929446038710885552577679285365005476560903901021632022648468397455903833049806928638011812220109852870113333185734445408919608364785909486263789299484590548735040760443823388900174724830132618693403079965271210431702782173209904504389662671733735390285817443974166661674663909991867137773785291744089636128022629539258743716729421427620169309641861951943565897977799430412403131277508821068615115715437496734496727856119571842549696187483599828005874505010285118751279817523230877895497789500347205596545741476504669159727285779640719676744106910338928961084421856921516703710187197326094261978764789936963141523889536855074240333121956649105294378401319970112630689645315889242600089643824430266060095675297364598485676241012658361830394779669268128570888906130534576928073713371256694346544938803089331287876330751296302784080947727188655983746505872462545282934336307471852820255746059307739699877101104109400822897201144611609660586052513593194096054104920416295532427619997134288991659277443242424747640304192511657054140520543174812468581222172176342368514710857659690255919375534778492422138633797190705899251739527883002756323991912908940446418786894692291606510423452568964658093375849737292739369470799070629425557212134078844009318661860688376577380465873032883755144758527193195459488987018285750762320583754572621375585789646652076750503868183385079057537923349803162302005172528138967104306286973475498599653792862271178531707856662609240478998671038628646299178297896644203080162325975154513470667273349683719034651414179314755096599686551250337584781923441523121774615134881569901897797883738757951773602481126414863537002224046067159225221113047486235384794307428990825121153352837775514842779687333048723221768514423337892765557415579185246388329110693440687625294130744637993823673467507076583977137446260381538689913556214614565458934106105036187559272682592625409602524037402922289766225977669132835249538864287627214299354797807923778141800638425344764918071735557871073621150939610149460174052667444992496143386729835344413500365234126370067416975620092101549258491174278792095344844718460739148349061884680590567739426751767655167749316671128285370303878071468828886971494163954743018392916104568004098859432005247035585879388679408080394336684900934972835205702709737472763462064151600174045540699048962194897201142564681154128382492746948696144506481071419000467152220307056417356795761312550736317818764466459786412001029023297946285983526666095646713186545663772130789741634607345873218591359700077841760679078392566452702828612642858294286105274969361533182996844468107226141438743175645096751250873704101509318282446758773252754079572056256085566113908171899212609454583333004508161426097519742182602090603282361163998506529524741441611590273908492057816690929822477154351166997167918297844705267971383741793737736804012081129450633431663109477050487953150342651019208783894742885975819692850278537238511669146506877728435877784150738376088395577492910629216613021664472768631242504092030036839706284855530449142118299680169758371219407041476903195537571487484138046089555555368201474416990679870176463872400524610161190428608344136231464378427399873606457775060023791181112404866299211573811246227285637819067330455107164266488201825919847669393789866349068016792399306775118070206634722794336599476234346505683088754435673548950241492484342749575220592849755608477508012650952149444711781417089820501088208467474262856701230836552303859503156460818142611527701937964418097438860326081032111625786668312575276695590703678903794241625382435350588624539844360678686658248108050917153756176648487396001934597432039604894042810463379455580876927580773917929810068961712731258433811182319233679464952320557191674620932441955303993642341296562528369011791542459193759087617989065676561305960780605954037477024350397180850498714257673769189977136702815018663560790007725584984136200662903237615874861976094723547931857895246706799063452551401552216405268504024414552076775817110554421800776537109179445619150141115123445817077625993384887298069516002142404394042614832068404092820959638166655061963936968822648854391941788605840592362861723412610600333849441943239384866989777927943174041903738567312282760438775196346281092367373068755213268897764224176242778428489208198443437988855327895604032516950610932355050590930654984155092626700858928259378080622194635517622193395656762638464490285772494556177106079890734722551635073872785766081949938679205596878239609216859363835078976628880190807909141431073786370871009033653135597135952192952017564859073750803355366188316378793875958964058735792740985935393867072654566458444437913196628023216173220801740940462528962827264965839374524606328407906634058183285043429419517639632067003670017521786825200115848720510664184126809588072971493439421619140300082249544846515621909804933920512264451866680463072479092854460605515425111388770742583601357176096689330367791402839812862857754567212105471342379853292778717913578014372034997965106301579267140508866003230807510527415295690068521667394527600943005540386539894856779839772702300366422362201566436622602464608052931584003068752913001501270545894139677225730817160477775006049907387395114375022438682750997859417469760619527720877255189895800866768929919264922032723229733481393678760849127143301517655463047103280495527537836011896651269442143399686095092802020169429349775030564479894860666894685481833993093778561247573533722648600960778656896412947532183869275472464777891141985371114533460570236390061495938956675279069388935631970554579788874676071518420757157650419284835057059112178816560293976161631438610302906719159212204514578471421738878507248610426852493887107492925481536034423420264505355374463317948160531201007028371762067579024918585788208729510861984188779828118817217170036044509112936866488513219414368367326452522620041386787053161310498724304824982800674004935957140259910566791582107311071152661961828026463224066779090929309378430336517629492265709844356299905986974074714799684114958545165469475195053495989781899670619429123130067506370593156208276679512557171505410496341353187880041360780300533380484708886960697696473001477385369247014980399938317680535302818603070727205093887841397919425992526927312649698998416683472071604494485465146937678540979820184570852045264219083813543251519138788838490488213245406236812265365660227667345537506895348410450310665056686724596516466159541373806811909371787329972643932936449941435365228684677071202994318329623981473321789251495499151761336333556960891853872047937614008994828763394053556345139177618646842638959304959083036343145768863318420677958694481589780840537905241455374902452479650743033654165017096236873050093813821924920688992715840262249861921769947375900350868075699939181078206066754619629283460213899711715696797126644135370349294102222930537787833337240982288986393148871210351345172074745686410680916654577902115074721765910401014041398876415152024540341407723479628829376461119571983816820981325083180858224093095427078918870194215597852331693539966955356934316840244363206903366723629451299764633878698345514445202699089104195902947381172670255920208459941918823198860212245226248327755610024814971989452112332581988599081731996289757204212545052514008912759006725837120802404708355767488860971086115571638451097450687633932502213735252770075152340953215034860789428403510376267833014014101711734342436749265352532961813903040523538755411738557508528458957213048210987061989509224985091895782942134974143682025451070938498762894499787689993396507748766455863343050757670677142112982140218847987256057739348620601502070353078157307614646956259446899766234711737082326277013889002676272389528914746140733142967113628486425315569864266501989798653438744664689464651947976890477779948054970951110364365088878874721271180835623050975514452301207113732542917074743519462867551775985859280469972108430067735978388906268115745602702196663224436394773803908857319263324197555078133495263271073304379840630184389835818543700586091515021513542034783265140527270176820364373893422854476548840757562580156890518371002690565958811741852414464990072021737847665783115867904018133699919789387177605396865305228976146396498559219555053852150208525481729293994099217506046524919118095888301366910100153200592063574562334483813946540795858112916089719123032112719416136547564710698325646368405424701626822074601161616800808121942957623793396641096524776319093708683447031665313281327923471336090810249529097167967199889142136894653719170846697223280294258219719122038443846815592632019261058818932207199586843222355859077994788358039940637696380010593353300284428779959686833336469613660384982611283440894183290423228172246771428669195124072777961433185862300563214416012962192649425804693928823771543845866540447121545194426276443539572353313717380434498264905516932836331154319093760145620024233520818330612145706437403787868022901778599144398800269410604735393034288796732534410147048013694156796396084335855016227739379906525102835959501834360253424531630808099970909074671681444805576739250843003381770352861421499359032479865153942926486975711278054028153300482185758419611807533345234978731783187290428892485880854397291882375535159344822961266964393024325559699764405585625874675171738726781149272239174657437371765873247199642180049946937536959861010998109961494801422413456466730267779591027100345699704109938478369628783725115674056485636961026391939734185851262410263813703900367808056941708306751140290776048621403905117059248271227758696483785222567913629051200611122737788696610178610060683770041149045700676019810382957416013105766199716924846370109323529953600825709021491355521644006344996524661484113513130671505043174833838024781180816312978412182884703035917753642393463330647037079641781162170904872670251980778797356573366763324562839039160559821394244782660275919515996887727391718949922194684051731348550547612806912636209563082886665822259623849600663048786573716948010220688754283728196758285881881281272023479021839000064784727494123909677794960944419856015068707770120278567807534203828986357792402160554780460248514111629645601619754132251170345307201888030147098633227376355659540813734412502619817534079226914517948150322882240851958585935192832207301030021781048870213048237448636802554064829247892353549419276761092704658912209640391200574971376396993838495922697819803622630203747493578347607577295032958765839522275470476989560237025126369093454917343484181150174796852542944240177580293341458611381053013106909781459412599174049937986063364834327463016688263815304132908455443597209999925117765285875148693154568955255500195282203329800057411041699287417517630944523559893060858314355350538494403943994851211914924739370516300708167954501502845389933400535897430067603516367505873850952588643830850236501499400836791021061358681096328610415915043935230681527983991483285768596385430727798208530797613432493359789221206572390040760927935950379717065395498440170604086079011208105995598807259782505959728103233771770536709460105468699678128710306777266615388976960228264686154433378568804517566336309782140223371372421207440888097311380762214955900508941651202388219675836279104701540568761138476885006830134104091092851418210270057060953821836246108286461131296441998287464067196829447561617814205431332921859205639944622173814318307391996971138416278026610118953228204801649123611352928371941398167225123273852562757709873836427157535052376463753812886557138991133180117079456925490392560291708413746149886756620946808251480835970639363127841395999873273226506786292453234857894340058309030543276247541425447152418542760454817786331369849083809771433048926917541677570021292190626319536425665441868139139963052798748916070697317270648115488835593657414882366787788923214491342250928641827608702088673802437561615719863991665283035536490422050806045531268883329383913349882383127931660892766269200692442427151247233232679582777319613240722151213257396748368001373082174478458197216228110158373576787280516417159224981709096518694279991289553150680580510118917930691194938355750803073415561978673375136145399387092436246208520956052304011601053798937116769911310168649413369781557658032225791621044125788698277409028490622198476169462611267078664384908186904849359123419202861766664798201895272704999296436385699010987930967860418473562330662924666939742242103108319254907955254972458267505536070202415802455758254357791799798781798643816869389377092093365872741190944015733486668078695461106785804238885406595624708549334564541561521091496048030871477399741017284228642214102851069909309696195717503276074406553990926693008028163404086995405099519283174520226573648287347914612691432983333791649280270734451927129852252324697886913150007967335652101497546358971116292161822256163506939294658690888216538191645446259207383921564863494982809546744347666930192369133064827652192733967498505816287177426045132408483392907930807113111896729647543239223234242796305185880932364374552156944329776985461223862319642194091850366529520865850432646716618556292203646868325461498366527354225150734515004366385819957777881218619030464311445553360038376595084110707907986357283853249175843907597274207110543204700273034515075873762154583176202589029007099835821819912795523020528950848438166025662818958676028459986577993968909201566529142839473293950395809680688416329523728860281010219057803472096234100970749254226804825683150301901165635931833084765188681314840473973791175353773099671765159702515740183085392648799431299011370961281231384514515635506067848209216620753494936428624892917397588982959781063924536123813371571566935015310182764482469563645419256796110307122589541257689062391786693844968282144452665577245499341710300588617453103447524681087310141788784740960253058858585210628505356742457014742786335968809820882386578073231520337527233492380604036232918221109726539980801813750748411086203785929255575317538139057501124929333242737126468829173574443665137635227415619434033423200743435548641637242148696468330190407299416862308269435543847140341225512933259082156001293706388018401190261104788256895768169825829341092181051112577866904914098088630022282611439420570025161546215401436193077877391786019603855890184316474706066102038013139697611201683940197188764749004413975170280839476526077993974782065011416697189185918973761000092688440215672309448026805376972851709553352610450780838136223472047051635819979208639243688756746062149277336867859905990482039610917350764519252660439211224560725606774488082162921051195210370288826815150937354948425713130701471504746030647644716969983711345218844136362903734687814529718160792266593344235932250210323358751727542213853880937683894039400724214753415424116455584348820335179278821462735816306326689887911313880410699928382016964987985892432020504712859816030055803748605032494529455282046050628609447040774314922839029501903199002879513309145328576963548151168002102282180463470273300406714631558675022592744153877823218054403221898756421245515258180243236513071691385656706761424526448592863837006430678960845169795511249924943042152252442734251056748639115639014072725938726636708916940307777768191186365209368947832433862531854947355608330951910625700600591981050530398077060640784726034047577991719569882152983428884834612999634213646594503551978636185843677549725276135163186783353016707299931516251646656156621344444233858654764502403794146492117215705048144540413899829470895595342573260214391979148477238842687420318159167422666974217527837937291890072799276198887477509496802844780515505339279011856279812811070334728729308750414273679877973112703490447138251536022141509343131691222972343323999158898347077911476116755089569228271177777018723587475812150195777522366489711419970314016056302381081455265773054997770422298739044764624244441919907345982128375001168994721493295122728033421340255286164095099189968004331991562116128854436310465356293744882728235723806826857141556503807034957819497161993779182994352228308763561494547588157485016031769349802892938443451638590095949090181514829458338558416167083205147042316215478950513568075684810459833784625485719866696302640353744212467737063772578705814687002293338526175597162547162925846846424480972077890192927605657631802694160645035639716951620214161745067534938824223963464694626513732384997045791012441135086258170298620439839614815891203842396926654181801540533577724692229761179114898178576213920782866880334927060109931118753082879274444457969839425958624041669327142651377987634472921584238256312517697983620018869169236395151916008646697910777896841665019714346200208028162584013512936772084216546593813067251363442223942540648552977834620554492738444862400090803374004638364304009486944352161393356794424889735592999931043877447417419482624609637157238047215172246117199972589919794267522989643584095585615678063985682706725628318882265902062377075601345684450778713000671328991632534784127011074526021993650453109144012895052295914615153642572251274680127809807481666489326219887229092695985773728891933585977431614452088246442180586146731767533746160250904143059481963843214395968607756282232417874048347726864824113347374778120787691376562265862669447183725021368445974931364810005492903187270564009642560909547856133585669158187534681081406373570271785587469543222450949688513788366590170280309023676857183410465764092746223743057402973439959497941483057282536003717679211464012250526028379169070338935185245412102625888899543744601772845395191079227168532103966279391948460194492234609982978347250214346985430630898041047472678065948201480751183216944506944605229873154121958995278980059395577623936285550298662393556354966975951201030155440052692156928985847071922283033624434177435268369057493722981950396749008596702026593427200380472858123268075117783933350433768300392629599932113468174494483721457094769134240512809682468605942414167652034041579566816511613772486391279616697240518487200581622992264031215805865790666643473861651861512509194401030355859644905705666029730934579079463902728430531885252242977935109298912863365968295679389326056844735538508036687452594617836325681755344833103224892559643115537152396421345955760120636531389831114944378933256924619346377934230865866667563796591954680279933865131123500443762695730529720095212241301925488807174055614324287039012560258343477853840451627154126689250289807336869572187700535545509236649010804998346097935550105994339408314518202988802464480237982781137001390021857102728702053273520607105760896663098129042443287381081584472927810616502014128445896787295499897783964242696066080417560205025411393797097440617838874398076628591047278183678943220306821818726146460143039444404013430114659580492124296218682942893089257754287374119732848258743178072126840100332752275920057320339173058297534848992322987823853672663717796227160891914073259191392931409806267312210561231359011533313365338959751512589320011409319668589924811999600088129187550163767259886013114116039621596140707350119883765129022549456640799667770453051607165943515798340427083716911780222342367534637324164994004493417559806240224697831649081459849417100913902284717646878620612821104205930781705217923449465872845726783759999761391423316412554385733668771799775714558075120642831644562334188522688054455856216147414378643633800740281150132035764839452841899717495275209842404245144782768957477017461466598076260017673926211367112383418290329859722724942889742424226034613487970006687601723458655009415493659912235415670428135744609694188045019578926032969848184536237517542124819063940861353250814062456586057357029855153221068063721644597630782461072683184294208790084923382043596285441279212432143802991553327674565123379296868368811580761801953527544480837015416550434368086189474368796472548887653893107144158024722982229975239014914236428933273789638952477169227517543317472782367683532698893673091285841508630960274096985015814005832684549349688421282252502320252355522929775219669243873046842773367613903700511021752705583602706929574645707557647058655508796141492330712607313680298047679750264158856991350714752501292298239024585605791366440097009145148800820941130228105439167398517215521455852912591851333807210217793428344076223485640836011950197549500547437673586624597315003511834139784440287221883912785497492470765079501156881768979559728722906185002592595068423718749519096062789240879193045407387306186420028424123890087606721558985299045602181134434515779910873019728107508120556652202053299877894040838942848921350377807611214401181853779074344095761064160337050366057737640015060103052053915708182060772112724326425987639106340051739424260376867345859104695291485175698297871522586571851164625516326947252754581248550896739593958448595376830938198012233033401118683795676063458476589493083612086425275697128211048873116620335394111978128422746950131778302199990217242543380232276756150321067416504982879875121987130985082574109029948085388647867517806418155962703412758986699803725131875071114275597361388734717020941024433840185024521532950419477064580692586602640383524767487648362554152778624388947059350445969248166160705516300545588303804124541647544357964189427893917981221910473567600951914125897444728922441121258345088048080623800264247984314388461224921651775385728458119623208661324157480152037302260818882535042180163075286879041636218401067291086832896749816037547799787360536796887681082435762750181182259057760940950098527720074641188383714011128850115851031760503060823886369905586697328594079011324669476925728451238215956713867063066574090008477698696996439646453945075830437400129999581534067455803452692436255360880844420629174681238150178242542492047753406522665299388902175261236793613474771788927379654828771462260700602337632724841044292128664578146325137053497777623809343955547285256084129289759999391405376465686020496838629997567802501035287711958128435597604277741408277224882978454347250116519867572868603398057410220972282245502635922192568188317237292585894988405231957107549732225132010105357483598455454219931886693726303038871160321808303805339532075210122727269566721656206894993006971221322941994063481795022866701277466162771829595516135175139863981114307032732000072238844595051390232082087859702650215147180525987795589869033993762070663352115216615583640987615498544784222902506733629670901063974427952972879601305066116325031957668870040114622808286205790312852784840247851018948609837417379435652504499550384433912400066887769111433648648419522372528866271894356254633103463261542906272963689190319373900161882209958996476454858372912336655279293751848701598652201211701612636774219197602820570083199033524740379525195142326486907999314216286454579479763377800673556469182533761140118273299265208152849367350089686757106645566182217003421816782403705084735724432115100851879145797156848608707327584384833169775527473423397793919330767819967921867380329383684470811361088616658714424465804968881035773416579620483977475589132016685877955636825763863710392069564121856553610937064673192149920259811987390885128138985718858119658983642302152286622013823166399973366482748607281398566668354140293559731155787989507136084471293973606860965217786175019639170019208228962270201565966715624029599689106145199378459934652079444207138922333644239230107805501892944383427588314003908943487650397440606631875453756585409201917487723015719146351702749180173463279870306696707052066018024327613816347824939356524637940786890931067495098035452234776460640324792728196660484541737681765930422938469942316555167207711303660180914704336808940843756385132262227917295065650637783786362937715721630368402924318286928606125394673377241552650609539893065676795931844953068874951496204066206889402360990462768173274633865294280062997180397411152173883314414957166783196518491866874459508682010651316227766939456720990290544027081003730365391847079293065781529999096750430565970237633384707223883564249306429820266899118679890781153570400332346689884790512481052069266814451584330972573513689055311207475309030805471361683404026509617735045974482490606088103743499550737076791063739479889568465566322302141260858795514343389833790795288455688765998211741832634518050875097467439609573756841176579444359189457546456679346812046686288884601805413300090674733101654414837582681465602626290301500180043054896436301326656558082578353492442852622483106449384666509276554065422427546901504614826298125542774476016092763407127947065429089040214727161611097326504054421678833382465427755881407787675522237982566186122958326539114887666598546957214054109154330643889649033916889481519906250318209121018840661364188375622819374656381990054404428088061071226940652506115596060949573632194381286414379398022754532610230919519059587655299596062334926097567331683752947933224690825558095908867957686788578576105621595189767130372223135948496088566140614378524317847648820390873233955955446672755948087410732103644270991051635273923763785204482107735199065723066235746919766979677080310696537185108510770094703799282139095032490319948561603627468565512970444974461694241262870931233755319658809294469814127158429932526792585526028668423523827080210571830471538456593387986287521521131130055357874281172920987988153312367541030268157457656384761578017385613528512698511537693576126733633381718358853680580081578672803343921553145199698400057216160907228717912410910226054172612004815404422973540617846981349402722312615851029985273266138428823219791579319730637142181652840679936982366653453262086411448003572649289732661817460443291429151368380551687512654096407111821134473874530149677559310545763259181561223723342551430520617521166507588667743730528347270814187686922573018992785878685296846152043766650286907162813704488768305057014197908878558003621739323973670887329946965677703377459270840686629588166611823534586760191640725018853727835005332480922689014007721447693001034490672104149720453431978276897937955915971306493251675626512106802356681857846115435667181816041088976405395513636417094802581636073816860253812519775842896144502692751560069184357131820920030262807190287115176825196310195278441539993466915307061932622995710582538509131737638949686763528111544208917501822045556606652167933052454210184651893840269485129783590095946062779085780695148025634951407348665170828044239040970496779921052289253569361188667072787727136835777536871417022453311214216488664143310323764052148811667875788574943757187925626674675375482102770030734917909653745098211257195344913491107547239629319549691303136797731884707289863200523761496316622961239769847985232316101128995502533456799849615576424676727291149629287833898107811031392513998742090150521011810121282104320173982601232078645208990746878444726105702922310581494420552637058733821123055342478245339179302798075583859168334525579086189497843790157394319489673215163067508320237642825119485015328928272669810609869478078597942471644448968629119437883030939185927677286830342343037733205982950036768391663166799363788869173662715496712347515586895343131192493634791414877393792107525665321239999776246311867615084704939729027402894549382045647857381079429484368992460976590070620906250864173633238976889173358300822838802322101159783094691961440426316849866246713307577757348653766770318465827641361712526219584213428756112171497611953580977406351340633393943121164012478200971792329604483175747308686287933834220937902663585636444674505113871522506055172577246531221398757160437683000410978340072795360789610064599552832928913260844714757704516668678411254908884889022154142930944433527688740759815694347640884151042142579533675614073411891499507116652432485887862930346016552737836129210457636640051231564291853697692325715077431106446655199057905284721482278815477542044332735314351781287971797499159233453922255438467023684133573269075067739136741990021462444380046306688511226178752365737385955011057024002717794405476780800479014364769673169939176298849901961017878483940783236058612659480000574801980216880742075633809887139665135482120875517952087524799371329653148635549090303751247150301159185803326101837035985669875650676504593124223657647024360488550057778616465220479018511710771883092505472601822457332193471298406632054297930263512602045108036964147934412398582960457671099225177352145200064620648148694368682006850096968937352018867574815309280852384896988242247996291848740918692635613090060752257832494841693412079368962998795987107294078597400334884504393323071084507025942044379812355395689368970020839007747186949803254750314355866268557591547521782577873003169973784976272696918221205393158329314994536854195543047070672392082401459094594262569623739055283824037130653323732218442329661518015982291964897669295571610196854839091352624497876933757558293380740135484322779353522382643334726694270943852666492595854125530211725191499407471703950646846547869454068220036345034375865131545259296222320830352979932486807340557405642228284539719769925362569853949864174692827205941488640241238219169388883870349574859498524074260447228769034596866877850226088686951822988612552348646565077258546148941571898185952440579278224337625503118886900301301861348968179413027772444283720015208504981362844768945007123938633539104212829079614008653764400360478102551984549638527570178851181857001324275670157676281212992822876609244148586950441901429684485928613460910685566194147039463387137844802565878619294385483672541258513169704324352321578679592701469974833635124768350842856812683767607930547772255942916789760157972930408356831516695038202431440129936050768902094522957452995226829790668377857968414313619667253952488712127076831283457745769249730260778712448758650749221186362443677581527003579356830062362482711238965138810821418630238615929180041292886243722383885527857209230097028588388000237247143013096318703094505721053952929266297661151878086290684878802227810467576015788636282984668829717705215984014823238175117236734343927414564142002806387018825634800709088473982076812338407880446521115266201490682280352267679550752287421531084141991916202389133355341613348092589518461763414075530566060137345664579599448194587471494311848789805372017025199485174069966179668863356685739629192017941779973433701715350589051531925900951621224105050630565883565053460293139245253046255356627038080151603074966469185365900755008863317465560915014179183260549381940263495096075057340973653339481656995279970212591942666597873013596571262865853813923711975805017774761543387973255165698467111834149679346256607596711254903414628242948075255997130859598285572631695271860041940523124975301489170335119574110125937425403468235027419898497526321792636340330384212702998326329820100392344942288065672048508998072376363871265465798640424809637375969932481116531682344192516080161549551701205968326702726546712314290973843913960031619469811107513818120528405219605529797106344960439692880011418306343202125012058186967205850409098372759029394730310121506312673336646785605437207367751454650014315163783670265999782443258070771032278852165603055147819298174662926314096073111640527950768728409554642236133076967392111569276604105531473118802509950578435243422797932163398757824977872133585868795446157341704740427995554511085502904377681528748546788510540643545240182945325848494171496749137142758723280637524844239304715255680665299112714727341193350179710015577406599173609699096374498769877597287739693109006873229849915395819519830541382873874687956826585154541745701155964047485529708785184079515711296241075496517056232449613599285024251762039761154906256747375896872070643241740808308246453580679589715925694388442552254672660356656542807686097757501205518282099836885542626070534209546432918174646577463072616736029908015155087559403166542504290589898218548526011037752508239436975957664153483347579696623210977062091891068989531704234471372934394299250102282625983664324235691143546933849297554593256820844520930713490463653820936392284658604274883614605327654410539395802760685325417579348234230492730968149357954938000205071261033366815949776605802764820916186080741121543424945996889898874128570321573817260776488202300148172937279973520200460431948407836541054501429957602529161013213387988507472054721151630411657283366391364642963201409374996475529037012452090303381301031925852216658199287905788774283213984942854692289428015089181786945301135115438601821965527667848753215660901455209324513841690798525178674393677393101396696466339812054639913768010142703894960066070273161756502350079646801079126053648354820108794733317924526217585015865250598000316422095077985260959502909314397386376745481141458512429798466327060433949484049235603457741588225559901442976840277978526286945764741993815248802126075859347775809547055456377882821222680815625792373547480269430876928451796292014912486485722265554847827497243612571395986151461139318606868808604224040173951324375979625744500252528671817646863017140802924282396465863495429324273576951946749354077869572675004622942299875666486345859020937979328395424380670172261248330706996916335819040162193421983411775000406881770598492608144998154680152140259483289811032370309465186997815818903383482997767750850611243628955256838949235188483660697227819748357957336631089012953476622781521130492521750718075521961002340784015948861949810963021264597495063273673144515931187499585972098316467744881494532347109146200205812458601356253855576867344806407664055715573180734069773322613699082140638373882429163557763944436102194990587897198190166234670589207411878456053219985557513468648510584377347399111995283109325973993776548614793632633047909940326405866825644402512655918619961042231594529637331064346576429722630290263540524723222006761475088619851073872794861793897972297673267526033456606841320463429274480782443390988920207890161162633690134857709866664508965614674686221566131883120340028643200619982274780825606574262356308825805003510502046878993008991708080553515198777326405278711608127067828062359535607520123677651487649296388174163485468688713641332185455751779372155068264755579655610661494257629865083102159600379784932927327848609595659265009256514539148593675903720625787536390034798759465483057971862648068008543797367836114293145810453569848369644133294350718396928037311799016044731942353896981076953605977391291057680859612571116381452575401121183209510611008643017513020086326481016490136452247977874599778217819862598455441572864867136113722584541415465917378661149841700726868473011989440694252861109804388494353740021667541358335949137178664344899488486444361996955223672593552076527510628576495684107307981931560149043071825975473407481950488352811134627927669318196068633436263438594205297700275448405586950106736590236951661229664314096398978466051515648612003710572051390459179912395548148846763472183401811183909491254365866985410811670702640453042583913554237958321731277893731853216730503952218478124238901407573670045200944713861875155209326389176064412663109188039520862174971222581259050531955628997225209443680073367297957303263659998527061369921272914377389732093008337394953469358183576664527217813615366388324025356640091856343575923623101511970334075428531737284096373638669444635259937026985170791509277124200823383426127567044123843311957101813790434667747920037855080878534981725497158059550162365251486146290826094174021001564305610131988046162723545523043203357245749300013371111375428058420093347746965803255825568819360412895111520752134808404723217809435819025610733398188918218679660988482812843468764068524320516828103023736253761907364750839682542492990117524952109669782111288955311950306884726985424568044978386240341793330821085939870958804311171146429182066803238257694346496318692785107464303977370019849014301984088538744749632693276777400256673260160383213393497224251112509912288448507239255797043568431449345685816667697910297712560508226510648911845863257434577106642329703182823625069141928216968739703709126220072756034777892762029452245995706739985200122919649394086087575262257872884472408642809682458160977821151535239780888161571915501235628351694502539980684780082023627481625595684933747339175246801306864436063472815155140160719145096194071408636668230248541813492272376432225486220181079523613705865429075831881767706031412897478784055870373244789029160044282075603602808137178532089793255503760182104722463106902435618679004875199542717747857099050098994960269658700677148795934763204867402285928944215499542867717780045579140845749375717073797667167026463884325243495395719124010438899672651952741097315559296770612482675003542123111180468122138439033512421167668134368807135655748378331261299754049507800827562927079684188784135903297842821147582405392985431130608258255892707909443523567098820612057263321051800812422364519269272478469095253614468485008167083895838062523605697595537505932187159166910362823726749028332486669342534791651112759682070931484362676773575395324420140834338834752243095254560316971125119514377187142878842572557134398442836332264949704822224001982825054861055930410815080690793069368055639773592097973633310402601904262692459685896752027348955540367267816107641598833667141140386479717928443228628764699637226481912808823005784007494241145315399433739596792086798263746914587781779711884877577922873159996330211299389306986506409069814171963063648188536823426661492979292410645807269735883326549353196527150223450537127424814091567597108282384491742110275009739531515154852151031679112473205273660798377501735456516173371965776661898915524774553289159485110335967407378576605301559188181910469725781803090739786083508444173247406918895042989246066909451527033241169662587803395255601039085726213549355639409171085688925623255073854232715211565546028446487315023380939886761910400995967586420905698387258269408089766436309257580855998234037326418956721962342991250500654753129227204159451614351469939014544916241901983757207355728331142368808798044877194177447275588293107614104816199333290950691739920285540456318754864666789381479483723744669916269930669502700102776311177256121914840342598053020768709697212241030014374153901771853789879967013769183331823571748431617980368215152313001910339936810355447976149703413093925861306524437138044478720102851111433722328230188250141584206314958997110388176990537547322534970410839363698239849326082391972249399112302334302746561506590594089813711816991962986585140872563998196335829316311842762832818531816825993301569438998530266319530055034653099898205506062806675714193083531081981986088598972093919442145865104472225230176447166351615907829338353328640039803932781137091615143041936426404161323453201495406849289380985981924089569017220820353607271020217222610098987226097695822765779044602677223653104977824381381729445855918416161060466220716237191654983041398848272556004021300029290946966435374623449510006569469387916278151702710797783543206572445679801295204075818374343995694531937931715345833043806657546939094499946259261701919689136475871305161899988719175982175727895115182264795868214216598338906115926872062247140252314676972725927831697870023216647516124102201959150862766870951434567618011649611242644766194311183661463638334791598112512980598124763260111447775904875264722249536580042554275911561849909810340696015834596295834794652818330204137224242028750740173572631266348789561835298430355869293858914485621355903082057040682218089908189998583676660014093836433035996789724195809312860917674097104330794555394871178628745638854103766927101061319935433607303170697373484101575634562825560372153451848787660753852047546738870453344767824305761110957840024054673082529446582616564719682332838706177172411733156684182311936019682651728075568835356397111487408669453601009732046992271654537582692829567967269297976321485065899126618431815183247889988302788466633205810670999680189719680055728914161854755748249870304053594851158787286686868816691857871634248273105138117037417014489348219647983132912021366518721082467172773064585611634483579033878417689748055327268732864109698426715991053119188802131671286841196762445133609792399699908337797950973482715723292071425850899494475579558232646589725695174624700755975352884870344707430710564640361479510755291138243948861786407090053636669258867263393341524480142350892965017261322709735138077319834749985230154508639983514599487305895231093543165666005559634472582786670247634664301915907029600720538533077467476775771389314005854672691144727724623067835294075050134620371762693816758608030803611220783613923451501233838935645164438692479760870118931310220487336000187647379121801150103094601196865387528381770273442535179777826980554439078749251207169761830711067701076619429915442475566833643067611625827343781313996975849167076214551357063249906781232457894999751992467512471620955952490113014331880933058482505533029396256816409452142106542633316822078846131636823670833786145810546459524190736564103078022666476847095101363474546986825173497511047596368149818870629323851470748062997022425429873960226788860635521445372691537558715908651292579744575274510716925862911966763248299485704079202936087975616777106053519920681660794300563500921310763720133730557965636772980933730266772373628445558576368576493229896555984698779534567183227692422613404087390023166549335679851895396101385420931092359464831408460168205108779727727245570736708191805804941528738075937053488062992950418886816688552118518018072445283151008117874220468872063719298740822543790569947844671335317149629874817625815424945967117283934591473734040117856373324301025575105033125951655078810600606185565907862668508369686030544349430147354739653011217466294812710954688735589886642174425062181707961757661720063994372531175654033892148581401108646150554811405860430159948617236693010981683611332478483174581249419261678300660130455921041250898060681688330623275453328880480811581937033730141691275468724808788320296967273165742314548583274284075585962695081956048972662508457690439639542231351221437733647782804551257120763322168694043954676302836990022470568934402275482547272467308761231293181061151141884630500361786772697649504012063621287802401584903730707303298242754008367689851309632789404406110102170436748990423386535643690467384020534543115515409685040416901258606563475518494251685610628688745459453979029860011507650647088313279406766132947515157136457610088179033395012159927151288860094413889390478684678338697939811506897836917997684948340363935358251326695793102916447664495087123152997757452975048900939347791081570925591550425051017884731346465421894264950519550070667033838920039469384924328342149666495082385625762201840975795724028013598847206286454833636678200704988796390621651232850284522512194762073521434800500272025832655541028616277049964423488242726558822085456334459447995268551867588164161877279139169330701716660684636226145811808123575461723065740875074786311579554935309813202712838549936924650226759037456095660703104657351287469123183958394365608042379440691861048854842254272729426938505728450811774577209025188900628645850291359536857001806090501913596405012340943353945184298346855044941634689010999275286940106792362158053441972512976030245436834105535512432804056600195043943340050509882289128539297044165191663055441249159373940927955462944153136762364533214276188864877138640368691454312257781413426207199387655938205876963015361791996020090808249817584440312958971490286638547574256276141647489901590138921958820908060632679648782106844829984197199769376581068276342738397444675404356563331750102301567190156705552364471403377690903228289975735692844441533035502179899267706405701456010388589723193119161468632727203160789996908167039732208767384461689910971360653942274515772988251436124137324598811007889833200945328315897037646733075088511978876697152677843134039167092812656081574793001802898964062961792504995982368925260112062204660985678659702758678164559583001153801373097794928716246735536612695336544803713685675950554208316186111541486553742973838339246215364461815606217454260621472554316866136722078593282053917461871439053325639435623415013268050353600202839698305081662093306536532034466152609956089838089079445742454464595810202293532430164952155962142185804263815954902352269258767001937041026372084097365590340265930995183372368246946521368758694112003409204261905048096042537185313425511487234786769063454210104162286350096700369604066047470330957793201474163157624049254016716924096975835753903885237692999229722572415597473932926068063212343784950862361994592177755501965769094482451346492133974995716907564721180562510448385697839404982498328119546476311763840445288643053689531612410082779184866531432589738354340981571030959001266750806165575500437320355011546228110315161493066506970013216983987870463993905644797277853105435847051944198784720351631515920389222764224282438974759574724088397692511892777629414225697817665732851649999076854794105152614312436798027618724285179813364810563925415015914640453749604361947909355829275838144037816291938704586385040536516937792156494673480469279583447324765384904593302922562905800899825124216706618188684750735560001261441810744933969783802008996556381503121690985164730466391636685146835727194848961797728883585759906417742943284300403852064962545739357308028644893489778486858233736488920918620359714864056916297791733279214086808263446876833659335188755070661895703745798387463966021144369102816931398303456540937897380242088838871621297266549483948497180415330403867725351416059019446039557949744569571574451520329613924906573638094330380300641333730712157831798067271736006827072814892777223825763747097574032385530458824168480853110685277527412387767850229023378733946930986953198965134184033197398087798795428765864582298232317792343122525728634992294110568950562388834280082036766482528425717945770170718858696432533667821209475569874445073340121900166893326853029686210403584668390244897014758087093055542042257998853984708639032933670115206863571904284825103191455792844048385750715815831118537716354553725600266826479905212192823600433177345608455261701621712108488793865128410081798744332864351290363631655365969711880260726982846916494739077815544065478792478123794424395078255998068603288728500171455485403807061012295229820371888244490957986507770802682068409061463146235936566289276617178958870091934884647812191206218000234576910926972180669453961730432192315059201159326625782683514492294437233321473987456908603665264756339058636772343962127710561671981357650236388924722424227281840968910963435002878830205171871666468208985212760209037751986054861182846509931255170194542035195331630767495888291447450174486714474979589831287922872568812011013267681425060700610323777235596186776380838153353941972031727530700233878155546537118159393609169026297473791149089168143604230403521820680083006418384676844578975986887545020327980537526577037014133287213631700508641992484871781546684021013643804794802863608402847854590253124217224884804269064431517909113947858710476280597355990777076392867759358259968710385571609437545133164337954756335339644768364417369562536700682652166804889233722745559427855454113705713885647104478057891428171167444306677164681244797743808755506760993647431283655882518486674187876473292426748094252264096780306705031498587272774551369212637178531393255845420533538207625139993635465035896211941080464820012607255807795396792092524285768988517389473448949271724464010160597206048321703556649281661785379623729068598093927863574423955316793691990950679075481097227027510017259659987226089266699779513424620606275118892605680249932981147170456268889681500365271699627915612625304363678280511712072438128929898191943273933027835412582018232302235067978157849684542798871267861757841317425836577642459331055207109111872100007473633624045764741680236464755255923812080640390156734571148173266537428628681905894983177019216734956017609636182743349865888851058250646961508287023679479313438238829102225299769083562163408320222773959729240576547640771120252114290762197344923455360019212064784011254269376777136709260698927360612410584351664737503721878531747636019146592826920887635070291431474371382168585132958791264886617416929355687440263460537297141232799172798620038753059475881719013720201933793677106422149856319595271724705435824306184892691905656559066149697562989227561693354958155868821449524649335606571105555257066300599930913531481533573356862094956335695836801977947795947252488386269611637303776622801159128789185545829982443379893041067686301210135469661900089605800860454011422146622938625039157380247929899667433313336117275129420031923010718831513952984366653563900868434225767121806152642679948745857100001395983314418783336290371700769256566059716335383417112252931764202572313990748034776485586564747303455940389024953934963851970498977797557176420831964289821897857893428295593786796545030356940638963648641580016295485008044423781109735393322807993437903969261049765158102161347799814835920181567032358383529349088489442416387245561511008297109142565551595911144632149163377954988020522211216488301499707526332138546486565873300605240019123522195567416753142402163137176600370126375383995661846978599029647786529919940124769786055040584725641330647354916984506357489651586917512579407944372636218778901368376653486964860899519812670909301207347130662119110925497198478095179619539881627108556571873891095538240071055423451807456651958687151940532381132869761485062083625699728751939047119552696280798131075237637516871220692603656411204103801357770306106150880430754762955946908697057876808249236326293487717314207149075259586156680504556872525050914086394386127941876055831686193964407572756238829548151958090052775171825734570145563129719854117645634989792947329052740431794981440206586115170573877982267109286507172876298585714743921006124707795038673174589733618598577678495393144886744635404516818186263003685177109940068966029194830033283315655065740708742294425959030601819989916455079520924779233031631355376692148129110063588336034713598768308129221621105632835835721364035918739611522943488996613934482089514177941241907589033894312699681506051115724109367910626848261522149148489896736923508974100779126988133896194308223479039037391689944814882682451638968169320950721886371893986678490646379286629709233799818957520589521305229680225780086751847446432960778365840667308224708368522793047660082938042382295530795964639116197011836511935313120627955241544156499815894700632960812748438025592504753501314408537082785064621093007814545026069817452615319980473612721228060282740722200321665011339546795655520503360184851415094100937202643367951990662900803832161052120504192377743961948983000507645885923503719277053562843561611152747517718556290267623086651773166870072438616950790667727600184309688238697284562558501411232395606073061940831830244790063556126003740101747520859273201083598072910952304000910364624394840100516106408049977132677026084893091216265111083056820978385528167847359187601722257717391462755855001305850636253066655903252609210509951381890504215378062376309079998575482697229146988495004402904729500053785877258144503925179367896857226215487210962414055903157005815195885232276660869047050150965359313913106477904460764486563745220567038638502888119953427584049152993306367247155374431851809726156280391214728237887299167670145319632957488824608623882265561088242305068568476392086986014563070866136215305026799549887846770406200538964637451660827705945740155993730560566821713752503533858882878055881462049744791672664304506879508010124503760791531117354596652645458487575832844494423247015785648539574545905998015129480925617338533981560394622227397671442232423261475973696994464693934926539571122319912670669867135116604749477431741852295104018578884173898964526243623322700162410294976012259890328482027353308376391641542432589642986224859868467417881438210085038353112808365692320635111768105153985690214190502273554988794754768469119077771910261738219088314320750726154940113560467538338446817657007721489959590332580810132905922859592046683055111617259264123283251382027136810020312545170150735296989248537698733580929882361706933392003623197787091939210533463431456064637459657992392647033212067165274328435969051659226320409438005421354644005501825720351297708781310140634248850465752903277927184003911931887700138964944187357706971860952582730964104538780714754227700927573738116047177612078075733957876772033091151046973115626471877815873844695089578504211694078024745378532159810041704847809191993657965236874743443937679551849339385324886927047190358742382591772522742525739226073956738649008003424791373363755474545715501801598641860553605658707974609834183604725469705901881141981546297486491015589424708638789224023765607769566408838905299858312903727310239610712916487174335316269502855200118222417214337951651731502066493983760629737417365399460280928157099665766391075524482752493941272270719255086521462909691096413063448148391162459129974803515972996530007659483023409536178601243454803496754459942908530493722831438391826703033920789376302336483387474431550627909779401802170350325329289339488338733227264551167452016334793951802318859662024019827753179340928697770923163277895833864800357817718308930843550945181516211904206282693435918985970528912868866704446938763547681685050007524446126540932457966594949961411642610003254416007341057206217138735405788040705311845634003401439991507469191559020699172128698959079243784689316215918407750587633915194419102236331145462372134366043303622221873585810459054714012606822504530168769348332208253708634960662879838029127276244485957869068724891784565234308886403291703360290539503536481364911607009517996824579531016310059928806323568157186234254380781113739858302349228880319800012936154993947522314354876561134564810261453349696579478729687899328989746584200327218224460997626405416250458941563271746697018644051721428906034107991721622945117608141328083735878885976842062139760842960714017280309031504184141586766413455917017452801053323506214205874127332630483527548419462257628602814618196242514287896555794936150165528787012291031173361444717714356437477944198909111313858979998497814380654654567642179131334166882240772579688148804193222479082004216458504340836829323583971434481292647427924758537705947870741047252965873795184975321443487552002131846372296714941793715022360771445016900635118547904623706719050455025112723710118635740595835167949999676794451459966098510887318667038387949866072670824650530666201311882034069966951917926258335639147911349315990199183654284907679073180810561157786889061218380348626091478300802795223439178221248061762702996036743090351771463215297693311173848404598637791512483951807098386250992258975040780137993031592334119301725602266421118464434684183806703360596977290873574492133675101122684854808542578421076518805230947844108695639219986418266238067494322497097501587997105346080752909160314196032372961684026393213066416434948095894547538925699527767312949909400067891393324718354529381055557667667716138919272028546320316540439566292656667229568328800133963083245658897975190964187486965979609865897622907646053663007231682009035719029938488246589996096900158192410653872248919969565348317536994788058893762347713722086379087068352925429119662436538047482118564559515529555184578128879154952046046261413600869394160945756200981547441233577870237401736622041140181066725022912847177435870366690331469987853859290163140456563368739237179383817573636929188315863700645916272064302168223985500033936737834861726998215270231289959870383666394815120805573988766252939288531173176447911969674712431276527797068320094673639316477616382692059764694904609459221018806483993284828800266268176965139726934587635722278022196493319801451639916221177436063532662479089083098518186546491426397128622276939185021750284462003007673811814434797691832042293687553627783939882715991495779584364665137688833179767679443348355587227068278908569178759742297249237739064170016404727771792023659649037720745110976770526187164275376190505038390437919098464643444562868033091753082014314081372546943489308868127299428020326703725401256873004089211187984824784846143216429942355001777346933725881861816128004187958565136337027516137597955404635497838903238317391293209787611094171920381102834799281366760548252560239827560948947484431813603081466978354659381167429314677624671835205692746980045329868340529169268434506101581053687253160043442342709754241917669517250579098572753303932815673938721875972721192643176958637988155534578864540401821997417048992946900534408018984370697878543758232012977287416581930653092399191370246804022041785812525838916226715121997985008150111370248329250511226337221086729925783240672858933779649297640930347313301451227725590825924435961835228827522342061652093893496771456668194193480896204766872820354281053302380151798267270871921474281840357410843999391341956766330517321125270621466150799670646976613049025439527887784277420302412412185089960266516830505545956101490799832934424751985655011075097779922023413733461598029808654214723842645858427241664859686394769586562606055078013408994972820750987366354224349177062838489825360407004540267157235145460060785222539160894508606302873127274630358607491860277557007737823936513809465002837986747372743694178399883895501653028239438003023424857330779370531967239269265111096816611828391039635844902498147589613471765915226410870591011452483970970139765645288522013417441492713881330666859216861146369148597440204142905547396804925621280401758080282802640614571808353838913457244599316555509221030644434403267875474913686949050407813151726295947281507086994106568772117590389016405247441557222775026953078871187814926180404391151824766208349032343872689483952936350545400826661115038182491320235823483753663543718330586049326015492253811665858685763215862621328479358409043282301466615353296494461399497881450078777353525396960288281660914916661447722307880187143238476062478504662934475499296019944459563915913633630620613719700780326904231844402636382703607388945419414949258062878631324171942921542421692872715886420111888538847359659609615500442947536646912670360258091266003385403812080188842265275239613220308054026415997400735122492770059861709508906934209649820518149421851321060962318010367803110647389598454377021211322727942135016186599839987075998201969477183861185780651546658118951323575153747628434818339528797884728717370249128074733135097929445208364861955321751195503858433804587651158879452171281945823219438106585134934241065686014143056461480421989144905947734135661385072987711766096177754895660836238408066976367455925070957083969454785313386691303538966124261814013333756091199796368698742142525607861040568528779755480959350652456312238217301684680624181058029942451548872528282457394825553916928473724955854151527423095170836940911191071157521186793497833623246700549618733933101516243708992658863489757917635090553242606106475755659741930975728357555850723144982174203127959035578773949707122386493140340424651253433698331429700221420328044064910325859931455249559462550624251047156116181540845845639922440024506517991532098069862236001887586806407812768757698099117742279040500006359737570318066035257247093787033014699588628167690458334019514816602227770970081739288993340772320631560091257496870483645460175585835323571019261337475492519935824392906731180727868992244075337431705216614515916352919752239065932227758648929710995448622813035303070190246441354557089036648560226883211372010796512387166491332814819860850430439721203055542914367026093580010225885132999928552375114552807663086143214035880192878826383755767756021324334753674366525761333974886649226114385185587076625724468978083483125272200539320882257013370137416649564200664776781035291066596469975792823058367006250997832550783485308702622801544064389829206508288253926733960149121257957160318808111653942003068628367824667814484534014824720867574728799134391800262800740434515132306869187942278106830974577438976534042387159688981196053087774049652111179436489271286398320729178999859846215980636997109891864712076200910758307367606383079611418453294409813018500791590315531249121725522595221256363031568441799832439914425666237803215620157684394144655074508297611840302206030477945089147711080866977940440621415052456297576525883858044475423091193028201557032737172333772353097647918120032525910683935156996593957109927715165131325866824660572381885024230631935605227170265890377046792054439569292029946717656620578474662572197487093011508393035458792463812479449840061103229138799259566131609877991578732085432851419408683733970703305752564677207081313485683934436590323758738401264169812771247276671931558817600458745695652898926718718843586501638670482387955178526163132187877753809193818358784184885842403330251147765692920946488355484916104043186513828633463190843406434876680606256414745410268517955743703889014987653775976940559830298079005282467086486101567223905554097626780716692470810286482961674273502760704219967602993370246768154384787398082298220829350058742367977320924803021942788065344898731860449545153773828958762463058353951436740470732541405299613671640672030325551710082257059878546927511573151818274168733253052680500102586172587648286622576127634038859385412497898525007076291423562468182831165870881441006922453080262577973322674475294147425359364018835446506232792419258463468240397489498816685860210311916231799041651016290081324669281420865756351725708698844191665303458297606077711063791011458728370397554268298970746530405121539801446274152720350985699609832352803656233186563058846102654573248898987365463565994245731546220523953634703918337954977918027368100650920154235795148513090878927090615264758618243696832925060760608806563764573497130680197449962010281759261399747818886771603470954367190970478750372164851022990229729485316407526244213895365331709583062823726105645534121132042378640722801590513660222139622739038301870902084526469546639384373217374265640835095603725559570810833918146640214471107729733416143179834060443935503726318345665565177449651775328148227297260296938137069459491158309309439477700262091364575256931817027769529528414969849124463995919128360052472333791318342588051239887054293477664134174950185373221165545773060787901881613495448128963653519342564006921293105999518318496736682925163161799710975393778062718947954450331433794071398439099298467733253773171697572336624871179104888223364619467697624746355244982179616296268959140439990304536904380427765380882557911316483634543024218782339667935578767906673114166677482312701682736098100341739985703937437868333946750422379182934427572667636486794471711040774345834809851396998503120065076873901344612632742321092295935287484794932042085570972639034726366666467355796715674721700612000768344753860586566956183175770888618621345705507637578472624987160070375469446091998434119880575720056434629428458237794207045401910695354483382045889768379099421450214591373130153092273912052751252440673321514973151711095876120548574297142387591540524637076688130561001785153786371753841934929448671464978783064977654818581781847500755943509525148325800734985197627551510827711870092359665972026679709530529491167496548841333211543785457430294734647265889416634243869056156788429218034277016446852182357975196707387345505842944026661573305793545787395205872203515606230679082201704514475916267176324210017310083609931902076965033230908363053962526739319365834922545808308945367611652798492322930734172838335641063092927281812919677414625490192644020832353013243666515808914219099165071124777696637063824087232787191958008265876802612946726306438824429664394235847160282947094994849884636285923005993531139343743348692117811038592721245802639532298407380108522010803220617388251939499359925252200058962814571103864022074942516976957193901406996873404345922454460449620724817196018642887318672435826312237706752444003432838076963915935696797965176249827959384288524431424157690997588123133117387138171941312387203330392637603213590395190289376224223131526647933068436216317696412279013190757428151751317331185193337666924914545871787763102928724068318184353906775490741891256549018995344927198016740078694741429637069714071644623234182544588144576786261385872879210565024449879867910674309025679491180532525754083513432708679110186345744981062402986288353961058310654027811130652238470702575826395705156905499331897942624542516453931798312406194013653416394186966189778871706402354024761763030698362566008737104995113091616107814794478608164898493209052726920493045926331266741440339823377453382801267823610272322020990802459563948098760979656717693994232504144329703001833963272617303607062824315303922937643655472749172665922790071671282538296823921095511202420098496160122783701772013554783402804449443308898991554101584635581354401221635119407933241738511002726578497643260738089098521942936657618858333506246242241362599063547036303000018807511587956733587815346052480979073135891121273674856987807702170999917803548954199333752376910032577613111668874334201879816548326828223899424747086269834045991254563931923598465919545893678028623437280342806957252955156701019195949301017117489193079070134570987416073433852404910959169281087939548459173187064723273174778795264947508773914669066938851039612996812541464392987953530362973567876846871966639388974569721927248167737154283572866048590715764900144130136683513143476049911654518453349039530335316190956339746245304216438143665567614140141096152121141278940986040565784879473407767480925011017412395323574233016388885102827551693491338760267110897914229148639867602275304821609460210314343707171980706109847079254121195104988084078480437204861945155856083798081242043042291891345721994923411014686096660694753657290078817534899337819023350704966691212113018735977906187369822274383417265019058695063091837618839691140255665091740663939005968685342978602081688560603279475216031028580280703756840848332404527461004371745236490381615956145767731805811177120002607805225293344283258895258036373001992658567404476219766967892757957511632708904541934856608443525438059937314248929041456944890962424439160720454759646217590830201200752279302149059062105392590463682999991338237264985334712096601180643257307162617882654997014803753304509982380641976257389280767230573080251686821266343156328725871197399410593124120462175885726756949653093970903616784635802782556000481839785125609430960344281861257655282327835538200362628679848510391642665609171766948614122746453996843039211413791801317338530804954675899205794555279234742523465503173550404045968980809087580721580758972537590765387917476352178486677692367634811016785811377014170377759924642858919612328615333987005189977410771438349962844938366883532379408740269430751323473226381733376957368847559395535944255280364725989336360394900945355273890808618175041072808149172061518013424808303835016347857508228029144692818432191025552750176095034383752624104094140208396546649525933514102624893722454778574455719476120744042513790326118270345711572610172354988451633563115631252339841897434116748695869890854920289269661230429738045953836857553430408507104219125163432488379492470067921249063973145239628497339876850681679024024045431263551630802380033017237820769563720308010893308797258432090314243360944973968489433312508789644541910537570095756589425053059469504461145089475902293584293422553369199598747393560530753386872164078590038764841368781534281321588444055534459732442675423957682800479967724181313904326080061728136436462530458849328227893079532049056918331030428841694470555132631570292341132323115504280658971907800480479903845600747370538912173651510517290940771757252673524066244718634251422388264451467512477725009893736826525110017574724005398832581855385596466886844696497547769944393744234144140532412431807116394354427331198858916075606561892313330929088259298124761554918930083733994517634045311458724333448288877383029655782572890625745886817624138099603374865042146856621570798180156456933122881696073364452029328135073599329706309723167466197938526254322961799429785187778521438837663046505804717371188964843117463869820742858924790657769732710180241547210345303059108888599134903991088955346651967304538793004621880849684452229877319597947248571328303197509532822111259800432060135544234995391270426904594418667247476316930114524870738279489498813179319527392416971870922041605118381791230119072261743861640833288175275546040012557852071673361259298732600575151676785473190189893612637643720262236107763908246259388988145222696264368272128118123035289941390422183987570287035330058639441670944080046217587810613500716037807441492959245670107400106028182220755373650407201174563789277327835645740908502493535710300138023825562442193282040676757204321427082606804288456769083021102378243438049098591686709062286609822892927501640372229934786178757336561605452246982164227687273492469161704098916883606519603205726998653744086933556430774415375022875461615969107974167490844245514480506123877357760781282971967216567380077830709381020662954504820564617675441488809708511181910551746322539513655564487349346099022270386975176113982901517952465646264402640413334372289116182965659945211013307447808775136018209303892292325937952635896308741083578281538160238700183258603098074154117754442760831910302233566458916259559084512924677739376029174918827971108951143965965228367723316481555079256369340892236635844234378522231098931090175673748845354804705489619044361468805583087701313242594523737624355451015762645272711245915387723339799664479077716440849300935622153444037797009093253268781211125029261302060475195376602555811140977574276791455872784582460764844565852096521649537134859707886083234248869137867828245784237075846255153703883909454782009835372409097790233419951338327463151047701513881758576604042244887633507244120547982382242545984525983022820223408161066307394131836256296597163708686937138460194452047627804843540487731476380281948423772144008983306313757428242202794758117244985825850307761964857810460678421507748394837458769136951781755222772874383924696361850398372475246213056666127012188916126292632910292206353057492809137769377809632509462873871737671732006129636712877332983684125083850154610280975814615110758201127497712862486059247915414832513675730961700722420614693990407824928600628225348205014480998931249237503492383905978936384236398212118019840352852571311016531953721946976335971861645425665593379553179884982727279064201180284978028365753691031625699432501935468258543118376550726861815774959879960546067854648262286674514170009132548238705748761060058894548007182706079456741979789459376552365350763069422699717875975785186142256475732019658826690859197183743295402788752770477217270158299647964559471575787643947884755730790675328767136689959630724994569583098562009719835393066492822919056026991823227791741438841051178387534887005120936801493826872928579700956483411821945332763712860645091473113614027990329780199450251053942129435989145224421347588311112884100302529455808499361242024098751837124285429269486957442170190433592489760444120074811458544808716201260607537654640472421750898731902318796618962833831702009710349017202067708627228918117810455553177862591524806462636233734161068322881596523954923752297461424270187105348409868473134211947147387572237713635684278240455574585531012777420633240721732738237742642337364519611760079978454083096255263712631550177675895349734647339226837600400450783678228801993836204794578790997490069165555831989572267125676404278065552574962670164081567948743441167742326436769315104309910679128937455989153537081501277694952624701677528914299761732379133906602308098863019903090604314116513506033010446063834037162525023803813591964545229369941062259521647586088429135694538335665651154303990033018349429199972207847003386960126749611221371555888293476770910574687169435143061099638375632024571257522587379796428274206216761325101138334826367426495910999436625450836147441401125033587354286999356499344543327139065960937127708969059420435019059844939354199853099716092967441284898175451056342240191237337572317921766962717353631458200741717317847922912737837264266273798438660161233052904553708780162062594017709741623859943661887939096060120224650164239830498751184215741708895134855776103632978890624829320634297653418363113738345174211870081866034946767342582315507379721791427271279641513409272004436408414795529676775318454092446513230861213424794824845831840289478875899503928864479086394567910031041123561000258387946212385544821976059820691069679531230723601053075471942810713749612813127284435499978570844874952025571765404406640264126015375075642942796221283048519665536278632542056558306019983089895950188393114687462090520893557233702416236023520489811559985312579028583506904736385032372945058662783352835260252326988008405183418237514091681020665085471741205577919654044867929842556313589610116711023280506213620371712070467626380198181525530289491932461669227482489799679463973953816058605775066671325618409233488743056182710782257267185438093149985974153814950933906454057524044695254231848881904701101764120712151884947822924140364949054916541494647962279840155766122821929905812176201280579628379136148058257357612293031932790809567496792225079704216087022810907354178910533876693319833327604964946688045854622197734009005686569007683640382118358541830048526643181390810333426776857139497542280868706056790944471925859630586755843599809374096573803001800158617193209262705174395585167134437236740224646251185386499501061421927752335741766321074098809333223389823431507103159238984506147801055967178921798676569691572072894830478071500135696961273158976662423178910953806650829447549600879673728981292740702784092650016888271891557694388415538179786997952679423101684012852711862305660020653724346574420943451501721887294267301842611536986810829384933739478536505305484099983848581801490405680892836825731364532283938200222664416182046373279780247359335366540079473630362042748759245363251454716678154956732260568382639495726426593032232189319127208969329164439527559345739580345237711709974270683402883802248119569436944426323110538138252459065455502603408349177749503473032281871509067684724591745758116972313632905272050815721697595931857478751416475288723283062241821447311942109041526506623081248208794583167464011172608150759925615640343978440771729116928983729560708221915460982624213855318646093569929382486989699721479019765210461345869728295280667974692378788149343533764408796133199331911214937474391349825814298535938822581667973058660902760640059233372107321443477954175457891485249827327428633530985245065392482463538890754199415320403772029994775643380196935667164414714108933254045179781119587917262960806253449523772652739544534265308795896454996830508846475391169669133070454352551390305702164722676436849143818535228090652954456923691658443375066665292062792975732819205265370598135552294776238927898938999048500365709137591115027137705462547749159174354694184308316335009021800656164507139062458256919303556647723974228206643572443662094775259208494455700132555160830385481772082045769836330590168338966733299044221699853058283448573939065949529382219053322985984804480270523441011008574882950011823475912054930704090838446427665398601126728462008284310880188138537092756549551280381823744813192073247767430095474277230837105006038011254830218629298335603305724763740684237202924808995918891298152422209433170949348550462256263614068912715661806135407056978057032078865742193820186124858569935710174213775883444896933243777613612776923461977330091554465683005806076027162155117005259804420712370128244169458174141573830433245760548254945057152735341459845549147640708992048633397639522913605542029126574511100177824911898913279770127805277952598470997492776224219836117304321855803648300475833777841734966118080966538459184446482052708495139493665818534128145965603639120335188860332172776730276174771007724202219754691085422482932093298820005398524420753343617260273739928023892642229832642860865752428134819679109140444532161262674836283889443190102219019970621230989925856922328574030309528535250657322982239199305131153805214384813051680752809463518388012847798851064568909915999888752721770612650059967028145530654158536871725947588855710164368204029335647297773948182999134718043839009411370370687042037817221896915715850206451348433630382418792802430158147305456554464743249249288046357760267686492787818610039461694645443079707334624584768228311872948137230649581511041597499930152401936026674720872443810868243355911579332525389546322669804122286519475439896526010545060120795189826543361333146317309620725448172075920938482121872871428113336755423983416596933323060299288463221765559153275734449605089838042614673952017386259052420300989990625429773273925536547567684678201051731965034007278894293789241881234151862199805897442260574493199974353113437698327285621436400328331028541324748032164832635477989393356060310818936061534387714424504906658419323766768741656433740321616500374385802391139020158127595704439738837853306532634077828226305360555219435447410538085667977011105011118011751505219993136822627940759069177213779977743555932399359335302761833822814305704204951477098697205760182131918970044987585397960982213265370521390780200710030148218842442282723798796992963967356580250032617906693716318019616959746237915281968533142828642859615231288530277886866036714253393716005762202439760592325329980220613182752256183938087019254685459801159024776705312361351528908612221276627259631527553534897088181693301089140476374314893220359388248485991966727622704719528981989090351697606922949547138347207316332984017765467702038387481544012527209477225483827036965746893117390924256257682372920195964515516953501074717817033926713533016940493463719839796247351261164627651268224019380050712801160166107885549214552144914130600353900353848501817128077092949346647667023781849276901991713079753887170458672929148599667695290395627428701304075197225146732964989805268529597864393141975119616805064163730403805482579819107842954699524969349865507889148961586721933127490690997390618793435630165699421908287812502164776514722459500806091120653525826875311499858382529149041994769114495640475687227825798856513126362358611524021738146984878835646146606195687679317900005233758179338061776675075358603764553380084378675846780827369132034962049041478645632091969244954513813423645966021409163991538126087844205133450601672493214080695684309545233128042355370130059703567263699466437953303787831127527961386546157070255996915824162407683453951394920716342909134371014280115011101716907785726575797735031312465590123069414530888461352519867006802454928177092322699031416926470192800475255336338460089103414440868933167410930128539927165335428775030733416176832591176737381746921679179050490407980310451944886368166121563286605279050628232249038189627260075786056142920247845535055747735237421175273355113058237118956026785792672938805739998454542877612145274412956289114939142958824424146579292851385917228727930184119765492201192803011447458145515945686508287503794268330836342605395554895129923105372927019282064035330156340624541190458757638129705947234388453211410343409130510419027145878420156555953157935360646358346564045241366089438711370852490450515253112982400915273109424988419783972278999821686861443369142332974000916011835132707970167050623873466176204730448421087414113973192938166079017127178670935527527611008896181529189802166802859711417304679733641267617592232645066889633763956106909047285143631249239492745172580051642918606425468225267320950868648478829014955717190226795208812788906954194964572054352527911453473273774615561010155732912314988592935728263237358580552113879140571816681415152229716222420540527711069752694884935567097537352007976585459670441202553774808950927569836259654604412849753081206058959374369329100485323065458605304478278233965755773259312326321914051465809864533523973439810122433140541821167021488829862020801664945886216145634885812926623445782508686576463976683698415791033855687699726589075651459641584220390606827359560285683360758384696166865475614666377350980683598823947386604746551741398476229339484864557194296469742284222423521972176771865711748501485765499185801468995089847559148104304188642816910322184680350929898418918989302570512671885095223353566064902765511554676281599111649246799530322391677060487233964055333401495316523236789580102181873723854177483981842859613216002241653413169387554388307036791624078421506161008500512639517837312762077600282690820427475251660877653073853824317258511048529931214839403619088503839486747697411038338085907650149150023495164522001072329950563334014357987244435713390127982309041637211447546776687609009324397247448318331795305660066402938167182590544726686384343967838354003277872248903626694196177829389217753191975591626350071751068063275930349750705708718021234382605970073536483369836567460010160516003184914199703024260228745706516739022305254213765701641938851019982618205008607236205162912066302861096362378603907994467617328628359442238635413479253102550102853944938699355555944278684608009567920983749788754682616860254128818060866007317086498422342115952885870194934243093991308003827586608596488975762681476475536263053151420598365931362653946917163840569322324029371339963148906432494310322598838215699419602314099614880773145913261322504913336010655329292296404022181166120580431587344247632300996592211213079168874895543314143723741563841297568828943997807578588078880047486858722564849388372916112914435725021928867401411287322397114367510746894405504333256148377097238304723405027921104627899689501903364824495992715098382738399052664793909194607020937047326808085361288935375192076184666585140732066113983278813434490727459786975898993921403107708791032508826174438305395455915049307858413978070724812924166204200998466160415693730443163040931955092422191235655399511956987164198953869491904095382613413659747566923949119785783392334025658986033025526934597454515546422951808540204176483685539624384178209751463221097809904539794761116954929561086166982513347821401261330327647878409421046560312216922238429359872978374301155024876511295757180293960813764420495332618320114704592432949557194869284268673411173991678696871692639383447491016097936491137568471731081503786114428829197632655225170735283746223566903140452476624454799389309288653534801765781294257952002846905207312816827946740454357855921453805178931357751713776606182435381549422089524789634204145546832077449729506135192864087853590944173470797611264208089086028135846928789324625475697983311257712830314370638397094970178028178862462242468643731341184697697422477220643823725269600541462686829834897349013506771316902358404267887963718126018187522267325849076957542253888695522446829818423214728159847090021347513061372728816128267667488104855803903916075425108583621165538728411348268318375352083636501777259221769826170928880458840790651969915986823118893909747433956816539655072340850134273625255206186853632997172327380479319013062646124281078500208704054131466286654176070344687821486359057391408571451361828635784227332792159277663086843159530601886966219334026612593870028698996561109911242978133979950575470199288628209713450640111869135290028691660032500970691355240470178378390996493382873697756180545884584717285882905747627212926499758935265950230400493708037611903214836690273169360381880366794293655385672477639371596532132072577663185132909053524469743832934794595452497675345779922592459666493231954533714938257909257194215314762923763083709173758218944957331590124036640437579545411513933969462201766144018341474154774627004217265776832019599531507503847713498937259244580900033425811729052294883590979680195198611362826434659495555296593513754744594551054259147064019054095937104671745874425225443294879736133699975645886211564588492343874971632207879168030206746000980093976242014813672579268875850096256424605267866080156458069099276427122118137219283392161265672510839550846910138768129317135141896889781819271202117017851279406716898419503598664791109123176016588523577661205727633521079011598471057604110592671171161819091025256515131419978388821727838749559286907742150657064719167750721893400329453635920647524225660879952552303996500713910582393556674804462314804561431545815762449956688390162390135956247302109503952487627279040583723574237067308549645222179550832597785437475975337134491070810908379600966773708276083606271792234039844932273001174235277722121844117791173293959925958884021519366660029216765019143025392059624012136176975621804711780466508171497988012313495114785468456309963254853036069546009334743029741245004419038880237905280954419904381204539059872402879065876850768472056986841981241819116656015345171215333721416026097284138132943690499325470565438710462202232426174290841617911333192989995641125441765346100326976897762468297698303434919335246292218390778928531413303445632495152154556020032013320707849644770966330023465848674363219234170883426056263851008099879774205006417596470432185686145144219360122649284797097473729708080542669324650124593061518424430701289655461502375126033902368503347072500188402705384360206293091590061494133286924093474541265181034037995223537920103563856018069276396739544573434815549964937580567518424512756291563018838154728772175341108634597666900658458548512448298691630117273847211694257243928542117473923653534414343258327736119758689391118694382714129603459534401804693809763951950433122489656491489438762614963977942962208282713739250685920447926177365993293304254720626633844052316069438136072567481560066433992565317395053787852220690047499330324761267233427232380087150179856752688040726982747173892928258969181072463923414888643766552402030542304353909571022633957140194456889508948767036810542108401796830393528482561136887475147410073261290677512648842315874936161620651115328091006323220110843090133099928699274174867137972422220975542939471417300713160934826409883290382503914957776188371175074755713584062020713153358410331967046973814824368049364257681304901219113535799865932186254227710295385628482578219743899374756811048870788781132646221203153900169807797614384814488416003308962908754955092148152121875638632820056190720294834093169631021219327539385534174932147525963020091903557728642052674773385431137157543085881704355626467171002867759339267220258868906364476045148017722414794318198145677686981093977212500723515203069155648500845175282224318754975489550599703217419368306631459386620726962980354658973480543098623321885227361987839586193393027363975046086344208257003276232943967777308594991096556349488075280881093445659511986966434000433331878626598980291569318430490003315617762336857583467480658696607287331694536042371343807665007006372028798518922152689398886487844791268967435468648439945338034168055059132712378667455022636184294021851452340431995462734632500440261930384303562959369465186781768425681400289717022201234731922908933717114049625591966630250522257667323637936976542247965520054491978586785609055092964827334887446998589292887266146110578966904675648606328645623821815801888782126556785886274339312355708463323635356349152134019184967869081858878191911177868188702215124629180023993988026758775354167864938652934711268038133651844915478300132413135503333719733647882913079135817799916829103374327234773532706469782554428833250378579628426261329882261944838748925532490679417933409208909694967372337710047164524478141764469527173398086713169422971723680756741221853837984052465641059364603099329586752138077955427496842744352936609489280564332438281911910945701568416596589832451540032410446172660791385039352743997114753220519930817903798266597577546692855488768558197761723513709110637661106883481210797914245278633947902715262230526356663682466304534053810536634130890400667230626632303344251613478588688557672833705988871518711582421097082506575169782708945514381740541863492682312848022443427479882147687641133883430472278588245722450569043881315742064968418757967192219287923808424209120307333451575294049654454628948759275246002132203234292301159678461614380611483805626641062170600749341073294789434852983727926514780955359477900457335482237574561532670318176750048908816125839609764677265656592273286894753001857729404483998091959764155264438388184300771690224438863122317972264375519926433655143128770095938972036744500708957343335873235931237760107242513925644676839783232656012149827306929009186363903105542371297326142696774418202626484123056966824412167774746600833763930849126279486025907616026336144471204878401593377694590573395949377282015269273929306653797223656221837717721491015801474956314215868729228347227221177807014217252983004218683322725154919741207054678909335167434897872653007794934533442593578855217482358390254747006109705152656693337833233076740937710869789430003054231261263047658234061354737801974799159945287274878083688926979602825426032078413733833806967551558421404733914964637387897650493058818884101960718426969128452478525129473978173264802411847722029139457056061927835259887569950775684325283751122059364578276768656795772933953598167396857554630907154390378237973083816240782047595781467099561268870765120492070323564967867252339111787637438080783915001536554505961272643608206080862773022196239976464454725137541662306535997608811330292519197153907704370355487309050137629387174137169533936866018941475381013261018193024893024814409244881648449604705026126747419561756856438870723493822517341980159695540814826214016248455231088212561458289421358015926866769722851255748303754228633726768527532328836164337077979562124057477762008624402283810313152790520576469869769122817042947074253087124150745931684186227742438465596646469076758085168310754109354214975594268627270319611849800829486052675462686328206610723161404442399032692676292787268360066070364142617844733231432230948840212865918524194331310317591279271025519948141423954477193528810027466764321691314977554416697835163588893666476619410729055831126692851293613105269227414152426124141208581613828165299815615280653841184401116848296242593600914062528201223936935834783198821337937725103981679416596126242266174709858672278882374950021524693626275974295191129541024900788472149093502157620121471495958774119136410683890441877745313105583410251178100426409037409321958426924727868167103871755752237457347883843262559204704083331604168000679963225100587358758794345806182211349947667719093349442731964038059675202681413763190292405454492366332961057103071442150977428789852071449685374673086021230077408137127659556729460237835860533685176663082480691665929136731418730253111960345586568991657647185181780337603825348606215832616312838246048051963308604463301814055081023167446320067139752596163039223992629812727414610313412875983429231567287261507803111576262481435751547738857383827585569829154968892992230040329584639514716678207577978907531269012218491091475605744025546943934432780754823262973409491672041839685523563826009816126808909792612130414860844435360382547283998430724322610294069063486516832802781030350270525518378594306763223844740250118063055779616050169625622851960516481791686548636144503208446696015880403418578729609548806532179581341887070020224791242176739331823531447697884510002132028705174996872923118822150272972684506095675561944845690737282704618926714070418954991669285514262999947412581257983160176276401381688810487503639368422459028178053869379948331357237370925670756911127344001592735454106686704208897702929163568409487454441036258579397021790028702830237485412787407696104568335880270070515998244702096643070200054538254608972619395284233825612387273633156544811691847569307694443559992340871724233238828746677647246028459441006912329312227245185081202454885493707351212127619194860661930418034035444763162617044228180968850685892256588691859833071190648097482335507323911102352856134575426506124078782407546174829988445071346403204679141793161758898262709670902360343531830642664101898004883957725803041156743238708232940895595617175456403525198345075045821860950119538687700840946807090403980199417009726300277742533734521043009610028838774904913731943814335658597436634325971091086076415546307136875556698494619066807984888114069214975524037316391199149110241926153095612830319050053705267922117293193494120342724146300936593799394064180316402328700453807679400182352696405638381435229222427711330948017191529346568766868367290325729849382827772285297413178513405238487773332564232421013629185508207854989104696028873795232351273666798626745485718162966023906737250220793222524188313077891045411140217172110682964339005331833530051229716089379972603440725067203394691784141937834417964221561870380975292027199973424335440511313325679998041367107779845360134320241990395601634653442921444675384973652128664828123649915280789389407169653704173356687077248572424326553483398609834210611034066144093655053096000898172520788313532884525833800706724761621127412551005581959837221669297938729940602848208819720553114118014175751282458902652393741785312097754949734522857265892095223827577892858528338885218300504979760540238774861917604420793034183603631409190649015597026379868622276097391847460853135751796260978364804575751124264117179306313066969351043497440972394782435538810297224384025572480803167249737525210398863674808013976415039078517123255119603271373065505784153328301453848088130838000198746313492682861785305027222636946638473959547930937144889221585104625524990814453531011433817813867256893841233490482934737644372806259129196988265251064455916273160157816435411461970684999066814529327974419358409209936224792456736551932450020304560347331291443810921599126904592925946986105199661812961074582888589907695627364158040356800029481802391359362635137602689025068105632389702958152745591473790136358470325347317421339473418639648917582316917155781154937152044982997420396039655370937326300182125104297754915447529993057814263526795619881330820215245573903373999906406192397562723227791521724311779861992970967802193679997884734693192851399169033581166457284790763217003575373163589801865343310222928295443188525537218714965968796700488192894155947337490132301462961969256685088211240479935561799874449278479326574264999326609103643635295795838991137991374043481492846667217849345766086876190757976805711676636049762929438361802494406667803846013970664599686782346906957127387346018448403197322484779650890880118771411761710575527155655922413256126782722204894313272402091738955222239185994865300954141950063065474772481113364597886395892335497013736058042637315083631392702757318965882556903365617061248827016230174870822602047365846604289258032861046377121054385800684009650881575727242289933754700941716258060081926382759320438808818491510571427645369309695352192603897903171720450311880790096139384461592972097210393278764368077205599456866733474971860446672554854251159154804669751783870515605147117537076614703401994704202449670445176680041534785830337586729921967082931639811692729265379082780243349452257834817270897602661320075659735655275479240113168481273017705479318237056454010207654425934149371418042564881920660572829266490801237690805816211961091208824870640645446860993055897292796609474094692467821548773218180965818639472662692238345958248719561384924737937642542710774396519277595447048140991143215262960042903597445805004401784076475930991602583009224539610477369962127321604656858690879391403597211155786835250494387446764323256188273250198365523997830828622901955354875997221723397384001685849412597122896862087555136023887443218280837515663766031143477127910128549353571855528815818916022683586116335009520742925124857915328955454342894507111805719341633293009781352478475558774496562912076569260205466641505751579380492850434499315187668922351885396635698366923411862309555390658436559230782367585397119815927509493282783299915795147082776788708269090494279965756025672057768720765341242905473223947311647013186062820704096180690056566958382072486761209831557445995039548101711545526392689532168803014490750263398092393723490334390668696763268802326964885339507828802219402299939530943014172893278170890086153867233853954973692871431437587161609331837475065880781821063493378245329753880011074164479814746669235891801569414475159861431264260149603676335546641208334400930470788868071968767431139098255952351262607759517266264036838205014541810023379620394838567102576835895870998340494163082311854456299495189603695474627251332480850829629753992717871228816708747133967723200665271985282142091693136622444493814966493713131155703502193273251047962504111786250402418289216620904672566404244308017242459095915371907015233607947475367497014747876188393401413149031249226924655277794543495507294186352378280637574475639180318751883525581731012804537391771846745920289806109472970036385193926744145039170683414020882712105056581217473184434361655685385937861918707811910209808939621154149108259774496356748642763500282524019170145998611902079630467044806459511112176892746444070683215149206134225840909893023954510100025002071943610816978290349863622984671845966107638292371241016845601553374968991449082199036525094434933243538986527399652120962084465068008218428727252578240162555774737213155254623672632408409361681567331538295114394906778028351361145966060202170655177839958222815829642006957969894670485242258398586829798908029466624750551061926514445276867610883530557678243007396714390079729024189017136648463727267288150784824177987162491084020223570982550573843999789196425652934884581432662111746732863488658859250025570264598205461118473852902044082187688043555840380191573829843304364253379868197619518333321411048079698233592045414235475264097794736788765244454327003270618363620638185366575327663481500628273140287892699693836371544671797850466820328271512277913120610582927471057472272773634543332040267154756537617323736378663201955603878506335702677106447838158724088218961261252548169370625449753319886569518015066320355406092631445814090602115892972250993333505878714310221853110651290016200844866277248889543514126415221791288173203238663691972085731220369997851273681924220482964598586375957639440771663910512065614423062542925282374019841122644700184545774980545090544645921819518385114722597928997295013615509755954655230346522015400582392701287145865733825935001934125057120880020362070038028380786821427324792321975784768630253659149025838961539850494057473728843632918542645546459370733318314195567555819502863893664666270827998113362022619265749461596559869839772001837635971206001780123937405470564318783983289008647234002687227084013178596433662733188384749031925764587638022277060085421386434691921734939140237414627523163977877713902370067523204387160493069179567542112155209818429703844980994608367387905456347578902013262204850680728524827203743294795279097075825249090988249933727616098774841968982358095779432769834663767562251966568853378933971377791056700883110627982728694661349602876859360650785346453984459761227324875364237351826148493999766360704113603487934691436173458966893376427290947476561209921021945060471475243562785252972366349266929415875273669001666024558744901994085431804194343519814549244287289656462072837031083320429268492389219805790533069371967570752218542787774436432576249445588089759684854878133590578153038511901918335023441037012072506845642513169761675517596177282718394221626650292551627296399128316106327975720956956636012089518799858389093606333980104246429718542151410556407927841739388634820427031872583281455959928701806844047364035088463006151021004294613474050932893377549866705653761674069945962882264610676363808384883435821378204356042344344780677815795793784351332306549988697643972297617927396217153715038590883932050986892615572849603535823132558486100491074035013563279967132116214739893334499594942007262331920717016739204733669203589528569770172956706178510027912252869724431861174019983627489038255542738462054704420334310816345525453723684300246478979638440291045138992304239343354981474485035412848399040105750322562865894758952462347687364184092267051242643721318531428897902693232730053589459455803526715594337552099550495231656498222767802751270313772199770051697170665489384637486096243239660281233301121295769037955819641788998070480303200474289438562549619049965941065076951437292778340353707888806058991955150344616023711103130185406837822142816132924077704369181691789579869878377807416021341109725934278515366764222310843270257742968523068432382802791108442020843551551572394011854222355127459735976916033156087807189858961933970844026915780436676510888931870135608983266736235930202514352953059993624481168246513391426023881779325198167398285649691392412791222112141228792351036501481507976966690507475250416893330193619618630153922657743012306408126574798122048718445362530196714598208709722812860750512951716844940147848786339040362133259507204196511769484877736243415552561389102051208707027492486492523671561943345901941185970366773973771106464531238879632361844651053952361942515624801096779102881750868728299216201944278225244383101670029951353999284807520429843465690147003327604771630396604503848351106604350000319080492933226419540655266262321079481766920913350088120682390625671229561132764394689533054646053045638868819033623090257826582505417856156161652065751375186188564316271970643489421048093250943411931743592799444350375210828660731865941353889294641366455145588531677613802308947771100219337356595076783256645799545249095331967080155544323176100778689638822374404452111613789889529662797032204209106947355085029609607906590354955997220432098350543059473986024331288435406427607969049692750063951649109093764450685007044010559945142371333474846516940588592114542426139136753893908712418123353400009650579152033405960092019918004182804048848981141842177336490123542464943969085996914665971826594902092785080620923230661237673385406972073560045745036542091685021046702536245852873089072709348521825623893856454675383159521574960201250060949048969841552601541083962034419388180015169361356192926519920815912873696945062194031112156084103206663675507654992410030100770631992625196823839095898227334956753366491484545168559953311459121826984292393414818932904824144507074937533209047994022425096649362761273825284205283628359943581193082587336416409848642768333908783480863904119942848073757005210041825316117280133522931449738611803272846283163429983904959702584441077332613800962635071321076933270805082729752277260159781957320422570158176914149391665786921361309865226143257331460788126729558601106591803753167105394231712357436757559594118517355420530183773571594710841069771107775270560659673349315737907280080156173332641747335387245370075200577888941358705028871581683291426924028960062245373147835224466181040843381269313357749960363556567605761198716428232051476517379261819124072631183925209106401257108592224705734222981639028544768511591167243439969905711405522143150817786829934241718497508689309852668457455859335697606345836143237615075749163152778781471876282297843342703450358354564690481014239603688764748635953025278561629313735809081390990393114304984855947072192785361672225925640107948007814209630464019448706475089141756832033428346150764000811395148534772428377152787573242545693661079773200561784988872600530611423550157321227194920848564614577749855837423513658485296150906017260545661327693087713279876062144952002284883691154092427828014321739172912496215637036833122625085197208870982541263704567188716822459746378919082385005916174077388638053088748346710467690913910033833148959243369593810327810099648171354565431748441338630915804123043439463515250359350505789868675348809038170848192560091495641189240744106983182324081088316418206226392110418120987539630490876611520248689587140365840437937469906111595107268397516590614902469299214241757661681873591908631311867341365135257578132261272352889145752025711890577527211760581311784546745303033470078504811809969509405086738339173121292134943239761797201555761257783001523803492442872351154661752690603066097001439121874308129112316833742089114272344465623758936037503322055787872123985325876205053567153642507140182037110123998698350323985493766137098241931099804250835568383414805341469087933521231995991352554391174836243832410855635278770373244985824574951067043016958149699456907439008924380136836778645190077060599773236006184327555471298405575921604712483687678864408892550940600047667682724971722604128767752845724074538208939873901770826749264710296551924503342792181659103823978538689129233628149863737467683880729922774724470086086040464056987995558188900384341749522850446329829998108168500065664089958589719238285345353982424200179220777965940932703656860730484128704199838396457322274136024021517194313966395150403289314901154065446559947541489485493914776777730412877363486844127796941693036263545407058437704898851396229021691175773032666516821352518361695665595940098794271086391629440568981454943011384284381242811078388995274343017982345584522783188541094753931676483024474205817021504813552180159653244542697855560864606181824543731409315523671650278528373175393274959466401061707360947223004036080607581789746055282241137844045048841006967312607142029281371766330613751051063809322740483271131516896146364514971235668104461511074707264152888740591516922031813106393514234990135799825510851755916104579460211918164422564734991527592805758441237916802665712954799149247202544988113096751611592039474504449476865787968284393413867720213524101307593856076093958173799986275290830438492869956057309104403783150400497221871701765478887498113348616792594702739531914086410250425433620904846913581183723968930577024692054278355055202705514040425496688128512000591816072978734890863431574739312288993888837013526093727775499249303244712200629845784204958691289833846058255028352780360499456526775444721756949099809806666062423190056733060071308925366421788031655791281051792528546691151234883444282785802737785736472316962420189613739207546957450447114076155851765303427528498032850748374664788436862245607118049365129971614659097489708056823373039334055895506692655582467879677848778212702201881630181362354837398462018679501378925587813661138878676474626714229961217042002013126625111152195477652267770931822602772033070553502519942324273286765779657736876481238529695274629257727932496296138906383375154165802027978525151122314510813473869054884236847439549357399692463908203908603586499888861498945601045071472924955919301867567395494354514685375096330907925409126393913725022755122221741538519610852488886464305932884854530095866664519898479435452366487686934617786868256938450542395252962522790620690217741952055422447436555364653249673622495267188933961247511614416180475423959598854351215699184372382144702935904975021377538426671541914533326395578553424196789134718944023094158840445535380259609868444880771117990578782648354926900547127911515206962939686195702649226800775337712727103085504314835909450385168855289575415033201828878025791998867023483289025539958083888513693650064855044518442444773938358525053682475712020540172741795685871711641998193441078456703671189655155586718543651807121251773713450699253154039102375920172170851695214674083484402965646895062761905244190485034632102961376649272687905422627161980684172203587595655178755788097235965855419599315131541598784790166085204194256048634222388327215289959122575512480108575015476777061588033405675916427727026111553585941872828107361734019255357855442689939119095963360726530056126902909029346325761750978286207771105808338587830455754528659826703059790879798245316410247245438672799107128738921552584692984333658432590387928290509139961269369881872150513701917801317427022742638215857611701759743008528634698711829559228725621808509369477306411072769280708941510842403194839808485515413345774890441206174615652651049097314567331075906277900809553976051059359924549562517143686577712967729186378777501512677471601099942607665164930358366622008146351683491537764107704850625415109962388107704727899456413041027021166132539629937132843568146105488451640383227532273714581078577501795575963341292983199821793128248782151931602295244661673520086735598323368540906116382330599594541819413793925912612416712567700550729300288348331854744649448496737911961036001005520712144198538990438287319518539485655875766041484415877849153643315279489596983087229156990978566966003155384069622377422345888785570247478284242926791216530160635182440823623226930476061415705294040681554997881681528753620138540568780730762445955714318080999978033439098310067379205314993604862438863404971966917541096228433048456193040203000055525296819515737895791718028501712790322974901792996062982606759941926197096118348784271359554033329364375935616889345105122946022506384103147023030066833545561899379563160678558878778670774386680404016392272196075278110576159794862268652420225818118019729788652531346336378940186888802340455206671626392926187837755348138992825766966452878119130186905466778963586401146524110515716740028388969875209185353885161425674192591346838899914828545553577814118627768954594750149673933089786493508445256870762384402554023049826063078181569605249832868076769500796233674424657293678119471768538266877385431197065386086450430733124401950246970009360943069038931430665713772024642416729510556453237299013539891250297666584295546836385161813861143473675637909770438728971479774569559438654983048841645956147339032144486585854986279167824485301219610834921006120439676280020462722109128385759205840047331743597597555970998999553255113720100073923815107725348574243248681867305828747706291963421974214903666734061711478925624264762577639239614258628122662596370248596047177734743595851228195459589495724373898345327253237385769774277474252495754451696975315408305953223073463932211318447852499743428912740250731184294063084048439983288070056114822915923531694909286039156809052201444935194086901678036969974037720989786596321342852753889668366073569230587008331179612140623970680717784406731820691987659008015654769453990791580203447575011374982849749424523115874743143951257590239725538794902913890629772516291240093857838004770697763470916121182881165907296226316316104643356097296184946851687917503437624069048958125633693883941838369330993682635554964582165868764328341124174035296804610968353746605285055707365955103610610833190576377491878959273700404950358949635908719469993296140744967076115316138451180187258089408437349998343114075898614940070729515854269712388942718188288952582596514415340729435467727617171553218277063111720529194052292066517405945620048997333899737779601796550353748539368984904703704093191184252788759818211811340881102636533097174793879362403604300615969240875161555822916202162302847461375568123893274037986452510357439271552321774077337027776498288446618475089297415268235646349463051608430315151390999165945402983927817031539994667661431724910627760975555401371490290287194932630737823260861518692634079739854942027871998965937972931696054696236688838438750273611210753067383195460330180518855594594317074547599323538539524545445312836859315212521951018258832036475314307913111775126089199615995789073197633730724640822602628197702336429099672558940256895375653843096220062120094833282700397299722359655455171131373948972964286733120262406082321321808688676134362322632841574956108536479590946401762404035087413737294609280469763579954594280378626456149064644946518810610204385486077017318642218069979227380420897232221589705643859231119033653510382724460301511747014660735673408665630191654195500742960306809401099700950934547163809774784759388867673477261544028515012584851149612572365710048095349448030924185099045772115560781491841513141480611320962404734010031069149688544236670143832718984723215642883724106403005405430386973518521948872518466199245657041518512229049846457653265258515588097917777253546801202512313300701264046671049364259680723233722026513757737302034479720781530934517966754699969306456897679869780573467441674282853726128278869108575842300869648736932914723856934054544437544378555353804618471603149346570329021486238709845475994804000439952095803446393431684435491309174853559560933226531217241427859407957231115525458666242035342921273944484039313225776257064626622487700892821480808283732848192745947273791944672801678343431664669846756295589604235315429789316093130095932085215099492919603896257038443921469391754671184542668428251543802466162109037818266281258745706502738742121498838699567707772324307322834446648462018566228004739256762539799374254295303736597677685186450222426180612807529901408272223498609294941087493106518570871751174049006929294273169409492546131336380540123205360748951242768828980065338795833126616417250658609001758039743651073959688095895149833491284815649180861374605350918706031516844726986775996528004932093521896242614782309408116835309065457867398001504277170431715323296941893536895308645133216031813088099284768405243610235468909670401515571988401774937054801038248045560553039223508630313438591961797507723750131519787820321507824492174743969097768288711894410015681230141460378939831034506093333646792211415286346938573520144666651845544573276174693813300017191805717384742810540607377382351532135247578937908893511428560385267162110339568291814664458278526559628041580034469180662272624310709534976129955621098297993107157260485656423455102032455472289783841519531772997570615145137855650819239580633883556629382347600626624319824683000024285656749826036838952310967680891012187341119259891193503684257621740305261741383089025571112496658944826165514993349085597890083447668090971421303532685639136206156161630081407217824916957765765583717946686075629373341436749220173714804106644143843131009235451303432851230958380431455644880133839649756675985616851216240231456968627356606766964581586145293261428633563674115296380094886927820024037085950775205057106428925985291253308792650258845309573392222913614107480645220157290784325729704472267834381505725248488261647740927622785099613759893010654189792238896295260233008397657269137276245435885722633084979336754479748778466913812022882201483330362451013115691679771776558476276220473594296363196288037782554848627205650998050139716091985294405613652581588761780077899966389411039051622789962356030683664599260631106813517423896668477271381204737274114442176256308115564343076414463176516003988674904101655752119776812644077667562063656757145159327397894306361630492346459165151196203826374635476003641422259917629573585430850885803796784986906225227010677511082020103888732310623002329554441268890278461019467069272039831315537647873298429331341694506715685218431944763288226350335091552166256699624422878147546562449696579706483506144270168748232127859737954329464822583201297927970758501486013239765735597302511616975930887476572786011775163939172336809290851858928309917539442113275462925443405800472997936024442339668091622061599994983518366459928489443184548502173635889924741938943561323934364224236221866313623920638616980858966126374755095607382698146347594497215483434768195655706159047363818293977384499210401645658883217540487368143494895639202244612312252957474768124425249206531251453407674723928990798378024456023095304298008081518655246286145536194938555414677121994358835714900696304727776742482020137639297511649084462881657944233634456676250909832614139925372308282368614594140414249188813032327773205141835613512426163933775251040090562613568917220128763484319964484908221145244568521105540523094921272981317534816853788685188491890674018996172065046813509803020352037319604745715948537365682156366823646453365938126010390710193877926128486069248918695473547571516747461922082695632102366580055525624361350407385459223046880145814225655902785191830364103404622496505929904496254032449511492079970934117355213590999319398426840645058129437240317120587796198493342132239979921735133629489809419879348737151951096079395027388840060861194453722660572078443030347480414888642234258295981451508554511821296199738660012148314554794258371805563841099105410547468496024191050802021057809454543993987266296212156159979402139390084366340406329577040012743297273760897884631956594536843550985817334945848779022889571987935892493219973102266958408665319595563262699153849002016899959965350245803368351885022606404611121727568107257717043532206749836347564063453539143989599021604911529152500334891078588376113760833569085629374874610458319399177022990625267541729129932407529633560356252133605141426656896512084485339980901544970728167020309170263933090782494592795539991563393355764040871157277335662333855336641925464665777153501779022781807508764757859200378367936452413864875802898411104194077414397728353018437583936302768738265042942163032899266718533721122897751851020275007366483993156532260767677400431474389176055841853988168841735327847683450089363960790971810058716367452772709857789676721704544554005289530646695031246074821036390671678102097489843978885460196050133009034717740319387937069008672049058550453240239471079635980620685146450574269065779843322174401526314520258212908916586142607055555096429280243254412304362685610633325035952112865111476797430768076042972782830813478830566376140603144775315711094171936266075013137915616512187054216312705593589073659428709095558653213552209207211292816836502313529933475161669341438450637321628147580579309469924606099448056121937130403197644876754965414114468064262496829929201394539757461357127573039402552492052612253669790413389114430919310472704215789343129353386321133154849726968922705892042940343679120815882730610262911527658849974623119227345040321091366086583051556974634956772514494300944393274593744312248702551168735970171321121777717192824702117994168960798621253625469294169948396472474868066809652178739169931674862576577944630712373853618158071024807796047865148321810159053813415657511238465053056460294770952399422280703971795078310971954812482294018481858374295442141410328369006290490372086519911698248479956151215175931871678993343706032893356836850365960246076423631704214106747191562470091157396249784814630336176669189203966203487616814433895658311450367458872096765592795982226003482535909494858824176844394924040155306651233563071287643111079238716172410216990338866038819047598589038834245327965640103639815224999379094511218882914702789010240267259497135873524891465747350817336722120647910485967981125611762232005453261724113647434196388777291919069575963666330847810813681623072004402502514159782018349791864669734504483517704011645697207575130586830755059977344663193115451406598811263282790313533764825597706774319865003001751657565756319918722575440985142485190695148092795620662188891585050124506958506078224049153525974487052038233928795871237332727309551516820519935381572528790944040277693081313413492283261299182258105233976586713881997150329111512918467229311067173126548672108739428514691814705257477202153861046643102292684500655669722387398550760496735895021376914481137076373027310059201786203203429356292832002059853849280260686092384645801018580388975188697467357887716544885881924856561571618329766838600794521488037451799269209821516698798372868802796544458581433671455321634266662160660050308690876577530596877543477783845141382057844014942063638062156057814375901282589888820135474440624741854053672573925556849407760529473936384160323570990539722397798576211681915972078885582392896895761534206906858621035453967661955751812716378436000333340442405775235179021546749683100815214649021595340304751734470051528652981500180324944198340275047571523859513454566503537386701643423686796308497674614357441691674830727161885993321134123508812151255775539213246723879075246956187596120415282588783472245641144284386612848052326608663582576576347922723954755773183388831610803147605805086876482066535859850301791891125291508012306427521793882869116030634887832453464880021950745279381544934426175983369697438736565375247735839907449835553742363733640841574668315218641942520821536949080557515097066607888929880844280125178412829574545931241364110421974129368365350878239190841782462342903732455275892011419774203403815771260855432529184131142386827667519451110741635614907597943768892595378547990356398303505323865535744702787602861312342455857104350068800648057010349547565216901942812168584170369392047600878430300569949432065097666329847885086356643769187266090264938362871260280260724200302823361178105902511880289720927234459488049956743286001636212007199323733382963842205250963855600452623262665517708413657538007626562278437710330987139179833137809536099689644515283162906093823831369905027765178974945029063356315056549894175518916966593465996769313599752440773156844001736789042736483714078666889109001994141668078067972786222972618192829267501398412521089415887184998643154603553702271270863557561083058943222657160307682984704957453769776991614923187196787565138275776416886643005561093091977121983317756946326136257405698243977953287779643089356916000987531930515158489566217690576224257020852159071755817615602296149305368907981938967385372866686856765867829637162245582493238338082598998756461923855338439458322304747804666791129770715644083993059619457593045085115123687033405001191049699381975844730451768799585010407816688473667353833411202974237671732569142411702395652612354463060082880877969822240653390921513200709654043254958790702593243973217036603517428410104305365295565309968932123302670337041263368849681311485469657234636922672950504272095347475864065805557569693768823139033303038589277133664293033694816931507510808097196027108044277114441562058449811679824243309547887469835069338367255085782421923682054209963165647524322245925075696702792071872708915953946635883597370235936304533911754388995956200093427120128238936779155275294917128472280670026993509885797795346452847611702112697984025325833795519471963134161563168766953946413373025755133463960266928058828841506322740886716889802089707050195262053334013878195185399916214296148781833258036163807222657079187395822713201837828571638422657353274194675468870563216445702178373780361847007404951750017368908568808081707185382754253166670253539873650632566870065156208339409471380142662683723577484559635475295618378349962769857457755761748336217568754867928177424133471525638455260544143689332670961738532034950930327092480883491351685109219775909911819465327566680660091375964387530307450562902630711301024957915450106400850788353209760002874729198785974578939319041392877069901343288465461389545724944567644064044703501510168896676837674480802577267961102914129896957724890793588013818908212678620392436589735981474842626970019492659937162250826836703173216664632929353778848065597552217626476981028918468924588685219257758126989689261230950231496463281235275073467698220998377272249787631061969346850008339428488268847988052020841444465036264885630189643634589506065571059736693035871674018051735372514826930793102308854163732491668187960500345356975805461701677468451283393014367737475907899590904852345010718972746624174555616932411775118567509399008143599527478118080867018501797833813713222656933642882931616194739741000328353608505230516002400349902758138758615153887941098893830788187545604807053791343189795135672724565583254385394742467259669156270565644056598394069303028822685699141669500609815508497584096102003737028319716145833307875741765645974637785707429209158651517515578595120817098992563362324848348471311395472824297815248763301762509553736071226007983612957264818193330381518778281275152797500953030793562425045957605371665380393330527978411887412305205581291374665492168375591961348031513905444293643004305471517162928524658028219590983052383212266459145075948718426720116290462716267983511880875289283354315783835550594414205893017277811847283488555800621633169613635678475609895590833518322695447903034338680514955828141329962664344022260505113139379435705251806807824464073233465669570397915555906020476334538700138326523561894861978816782132388626766856559641351043531412058468618977070718355113870064253571202347168456526862839143603369518967537478272200154313862546193111858676545603068340288932565475566024514893489383580215003132110675210495412201440068217188193718294682949556114383099498086214844741118806340517809653305222440422597130811937039565725961881044556158516159154709709882361812798733851566129642097151154635571243858232406832456133132633679216341740807160456277844851897848051015934462131433394138403890022779772665370803215629046842449623118470879400330299999056096953279607957214136616803695797529319688636605362844480250620240649611454992188561438596913854571407702697190161671003513679973321760587208003770286435167624105014513157320177715816923000295692638696642158113244703890474898585087453078008855241525810541699406835979214331365293607651626018246027255158456794965117678840580209561845150697454764721111750747903310225233640484297019081259281086594183759434680271613955063386442665946762255167965087194406087318757467245455854578302720262227010625449678565532619023963041447690126720767574403516387559985473303233562929437935202941611867161575108055028725836585412882735498267129615233101698249152163875762767534528048730672266437411554545399965780219803444273044599330731842201701084287054339971016734618314691779985739153989184421351530291354983566618971529337346417989832754619982848706039048880300592799653566260824718302767614932749969513410839589483803588717231279098619106017830870809321262547758758746167532749784193764075825620163620349564757179579936806097114056946446129210408342384126508316476157784605738096176387342052803754531133492157919052152964794641689212530436019381814830710550918872747505958873480958869745333609855515911079925123171442938598444794464187828228717094283021205134256672226294835279523400185546609407353133959678710010024999271750413944087691944922480816417495668250747752043333538209725068009642463382412821936141810771434735165776988726288222096800719034955292299365454989759656896883819273211647346872219747957324898744834467235813359788911012844829476341452431298756581319985704744180750308011370064138227369093322402055611995353897017007908569192549774560645486901713191327690653749168650325313596242939449923881638057581682702346467420290888861748921047413478153546224164498216215669117319987867699813104766302368094256237506905878376637873434947062079408253949918129128171841819457372230273335769295348895499684930079998047750139993737603102824814885301674765671510985501045508197217270163770625251874487328022365562420155249354037328863098530713308637361682137017841040133501111690905790998124642417912277978787232269778848999320971990461799101723281212331348718957021386270100367511163667205154772010985580495771846227759609655272895462373965277648010730331221004600253789553200465293648851720047177260731977591062040606942511997748052456346973815134865527661666853455874090547877714563131327530988506818902574409871974747605293070477581118713479861252018911542756163668641516467807129549122395124700987563395194296537794444355992341461261423456137883229748826853172960290924863960860431554944189714414168011382567026055849294304823436704053966661890993911152150459003368244621098816302361723679182969828302488901973524068057010554048071042285932948279446101778689923894404940483943488492936685250893711948764403413156458879740149774322213150611228961622150756727179473121506590256696380260496918334308208274704043307742623479947525646444271646768155055375934529836515563545176544974647583064566299794572393719159464170193379261479854497951938270122460491945920701056288138734443907376571936552008755548881199054626526386548867786820035436742723773634888004017889610308188526005584292095073082991436751542156896343452409597346139226326331454054860140977803476098175303571626434091673458090014638272085498582794007607685969590220071771284804289083528603057670401920233741321482128416598335307967176543588983768049434951691041074851106305146259326302498754077593513053096695512638749069417802821379173929601548421389949283270584431972887054434616807382189414109571713801539917105268607269791628700307000162980418609300383306547506421617645290199744931489784822691862802739123818501732029173646568028921620557210300363557504321934776972613681093013352728202709263196025970905299560212921833739394432209383154234286652739320732667509653877558130960701172887632914946301370092505331082223445060844756535109430894196037264612892816870185169374956041245533912830758771304305174904684312384794267591740169506246685568164329793022981734480263120746777945168441160426590331589080544848343646702239747857832034009321466974281368324194502841524400279544569478885174360132102882460432486450709821036794587990524950266476008781981119969488832103669526518588728817577596907614883149905938123963006000526296485412766670690334337946347959610120049486966974819512157527790060320471443695354233772806331152013770467367061474705235096183957188154193710165863500220219439091621370613818940993593077174707083509303700603467787670687513817917533024722175277151022129843392149191442815226493791991139511280699668975001134951616804348196169663684681451225489750205482073552214022016019438071283100622756687583763143125842219440258007796805926489577890374053440687602445457416830876512223029960697887434965352697572925929572248097769890088314636930772611211477640821110817173432076431183204761268788562108595253080758471543316510127613947048116270189544672362602575923431042699234822091560543135801493949108528650642263985543070561476870061287068274490168227782235455420175708482275312460561319183539744228658619708982752050609304856873670067305669458926801283950866744831884897518454237061148301457588013955701475291964569074013551955734603028365669080358301211162690164937082052744229209341833494604119256986231233111588901613428264272515376273653518269232767278568392184958182369453524290170234135470388867621968996559964385966688728978854086910515505616995586582954525686507626531574204821000233359772172279110061118496196176354286494010705576045294252713597131663744051239062782456591369728746473537323690153464605584266129973763295395557405860084804559855534387397122664631118296453477262181179808144665183788928917720108637956427681965314956320061351684963226916632591643375080588791632993489873827588177499682398691590098211548089741894873661842438515059093860365937894451101814662259957846179377074920036212685034495230009417068019854183076224581276798317192358944825956863412279722005017859098627939622299204656601983654566380998619167034877713678544654150117472193615139302153910686661307441293405866699031376315637244364225754072732394860549500970689191251458653830197519992614316528616907821929095853559183496238398502169380723168439134282559851429504922268423040442359394761533854444164222254188546302063900479926327775238715348864085568194351161567500579806751349922867480542389246623878855912255597055215519141290475633290083245970221310349627371131695298531150980949188853175727906431896540602854650828179113147090016157248109870444465708319495979240056662648480971306398259378075947891881770344388032201723546537077541140260415390630998679397191224793938715768778250034526960704556584521519800977766459544737076978336942747470288376117985425669056778300939366862734251397450119117564081274340482595949587053183179227955248219197831152202954371389199938456750483699959817264445086648633200007345212667500436856940699470557042660880005479488298732915667021777933120207409529874415680422848018583944598279080540055795467517028927890294923347888708841847919201088553471389156830125007163743539160819372244228094492898133735142514803038198652373457484168543439092274370553506584350446514301411406896587855797098484295306336569870954643015995841516815451657456820605696421787051429816440251917656902875828528206713487856607075020681971837018332551637784474451119149813755528051524938449436797393947013179346873105165032905830523801210269732642844096054420102269567922934464054153511071640388421606351540497205621724600351659112075133642388574871980989449735160419738338651675056163580644586647420667028607280726477869239334896227842479422786868689999789532038381748523727011952724017614549131757924813600398545296913308162471747574019257604822262457979270035854912573116692942189666462259063740025244505719103331026630560043297514623923595038635025409512146021814102367600043621388447657802062898812796446937708741147957198388973159324526423643011451238055258137809668598633970523967489586350108277765563423711762469290613575281560995367561857599067529120398930126751268726514391126058815628257021759648190000983852071174510778111400197262725969777886324293088583628584265587337033330327160149170625055613429293502583627233258872847501200176928879462478537968886842381825061571795425004990438344923977349002182803293487747198728896560810734415095862829327195558035671176768382990713961525819346065460617074270802325955022512190677968009042466996792036149698944086012628321640443202016110306715051661972151663407772938451491045560035967139845609404871008775959127214051675684305513176019888457636108345440985809636124533821634496582703132225331197763058052543809287763128204657418236224167721507521713458150527211312539672276412176680545514624009861294414297547983284370936769487264964995522115648162340757301611826675591670342560386785550148638290978922499176703722714666616448830367903227388272070606247925086333359278275645563967786345574738140603647188042059461295640504720571237134904671896025705804474389782836330320385153462174124792830769812049468901709654976664004818890243750645363003833717470919694321653375064473177015395292982080219362115647421065786174294270127992706351403015043677129163109614869600721807502979171399126903154794697158595448437328528705485374694853167622868765759301068974998261038362703548223409514445292446830341396882912165261179963236863786325865890721889314091612049599803081983580984126742393153585059083292455170814153651682147665973176158661395972300258130184572007819032421579010475903789583169948626994277185060313682768842031551551565838500803572586348674929449631937803541593728006457130967089317845188349159799259580035302548776472111479358535594692891327309185668044999412123734624115373325513342479154865509810548205747433979655405236705680411581115660417279686481194085446094789736692920480244994474713228859651180928957079109068260652881676576563615375625483326804294066794121367246201525580833654062084510685978716903707859814329288960835267128675103861998701286125728816257395926703418472818398527132800290472679965803902407304158544223151079579704920333883364180430942218410686055500350153484109138160221644343972331958292833240106710683147475036213212118278254305489678885340001356502236700801937078571889624148565796165357546627599812208035019236990307564234059526935180958835599359137686056232268982900312220934430614931259518645222919104270223932061951799079685873108779692186218841569335955053307569242217062487146465927542684757740113091997694544292580018307973839625459693683911732343164121883746737681267306685102465824137328819357467190311945896857571449701193482654352807923674225604237751039822776257440405283433314646058110931467890147826929469512464328130908317232797576444449903525247547173695813740504431392654105372851376032209197787753512032308511540989682487760638612956892417395174187530841280157754424792813330671788133588682059926010852608050625567778505580867530475072313330953604207980256402370354003315680493639760534710923296109980346517881136376735730870193904059944398345934697200563103732114364830715813271100712632835210970534422679816845925364806205995985447968195396697279378228745165558899781995000316051017319003820273664194316711957837013462360578767634100922470307958405725668626986459632019893680772407164795615604157691787133425370136325138289959088353797488117227863003601414691515977287597197199765510273807818837355615934566126561712355126391829551198153440446282324312521995657360094176553471024986417868350005944998093576538948061579495143065437687344691201891432026265002155883825498651393334985148043492313396748180918422524489604747505748813767222446198170067747108404296240314565354504117790551012417545828945695629528650776246413422011664033788749199972453794725886878407220546979538761097769537386107134281906127963549610747983056894781661438020365051218369583649757022847810237986902233476668058602752069335180392458372137491038015517470145225587438403925113689469338633886791415105574123260434262869993100700350579702763862449023836104327798363827603698148482177063184942403687322114456514282902817828168557197738976164800857641991234373475210104527885126225581198507604173754105237682713690617933026901690934003456152036139536141303570025232330660139967605562723574728553790823611656765376035359507427954119257227549454121213599452436848484538909993584224364265611147041653105748535597979136833029523852668040344755989769156076592374516434348876695549064699636025303154847326820237895424679084037180645532092311064285198986901569256771889430941698511541858339408486656761604615200849652293867095957874144927910721865353429590942632160697789800523563740762506945040833429433947313877388926846066947087522034914573012699406778341017907023352741945440963450825193627827226824113829154446213838248178692624469029300418112553438685180913100219654149508993738989531504556701556840816934758293358876064418884369591730860002544224966619162307375465413015528974529629046668620314129968599963341905930050785345056158829284385591163546525017172683993787320328700111040907866033755388907481266690206877062489933055686444954400730255484851661551092640796461172952893761510736562006350839892810958896632500166138455971025593765794665682877328077619485072888507620503342524020923180382186890916989877285866741522278987803250872648756708610206856224185709305639786624058608278178238439359276199477396749449255246365857378523800649423863625801209837422106031645044009292069404958914754923893047688597759368621840790964510894027204289695146055443497229542213508810426864467728896485263356430555345151687202564790346672933882473007573230543800474665184395918079290626870223764630592842665704791152020190899793606833160677278908756356280806364568487749898384773949297911104305330158966894948684098935073428033427963907057864458284773991134716842292053266901454147915504758529405815065853976285017854800956271710982717011183958286101020344722476090045222025188918535279550550990651849762301026953271370075608911525487095004845535196867483848282429325488059422792482836460784060266623813971852921547682970451889638775118288990191732854975038765853573834291767364163803852674052986758130441467737807342625470915135349064484202866489103752784176405114531611835771168136936165797384687167803397800662054518575848287154065315643217975986308292727198846076621643111670588512804076274473134547477348033086787521272443405213987121021205725028308409699311438177770199120192788416967034508022137647994509112683109635623444845804093262706342826459223807168631317346704120866021750453269391658307060579265597794292125910356610180471700288589796859440346686877428603715104732769794349368503753992568148455888185922123171476431104070876456782280636463259782670347595000609062351280849449037112382865821187570923920022007745663840273782291708850311098717789391921332361340843027943452542777514974364132080835825855912315350874413173517729794928886550049837982455544895580987148712423982599062730039629002690833130329184005951719219310991037076855689288910281751954565502110510496943574109981957602798319424154428807581964435612674377254692970468981374202694935142354907247278248564881512282508614166302215989972485161788336642467806599244450032465114041336774970594609683042355027815850010142359786027486217791682245809415884456983867017817515966716494928192866008376564958568024737142654895780297767473876161927237410310644780919257513618344750302001095038897675683464207803970672212812904955314175756716416144003822040335725732526351200151353821976141713584467265191032394609445964007584357824481580431160006013318278439184085492913039699542266303092830008084531184777364265020935900549888489597488903317762627258776728629430167989044648319881886702783053337781241053584214699360860270594769802985944949645497583922479128185366682054514674135182616188722844348584233342623914971418420489959795418215199210967310773296451909127252455046097478822337982925440448400390315899149259058832702774693324032992167449881740739956616001025946544403647958205851336950636262377347235096237031488857843433572019459510327693400810180943525925316140204234607393911732366567222936065163368599573740562968896627155185867827801548429159119853410941225171766480276900388470670779566396587468602084984524497764321576564399477878154279513860913185293826263474562675799346597781546507278331868126248675556399934627838485051438265982980423090255919751811157443412689209327899717214883170482706097609201648215004573743080892502482457474280128856699014973980728572092909671441436015574912702885618627536614310907987993994379040200850549829160818624680857293290481823532491775604656047702894657951734371853298808401795342612750940485321064908704713119616812288515747626777834587769498491829494890995280015082483377480882222077536467833276645616039522856160668252335044522626510947436753089218812781115648009213273211438519703457128393118503907608950502338940234418282653947970890317877969505770793886395378848219636513600734820737841321276722210636113207787791628264988837301875900657493525770897954258662386783516111138676171693024749974754528331019640409212556719295686915841420414559205545015991242618187210467166166790582471847200414626585657500037313863813380402225470715269686583013659290192399017160769902222109497557133878584885380449243893084785912941335358237330288290856590246753784024346302169868650629553275708183794306623987806999977874057904704091669346148711916898337449227757538243611642178566128052897352755676502407456447309459675142694365798363757813416787812440198131217385382414134451699664621580604082832427802476763634322669132611423458246170834197815100688370280740581225948636058946791145560836238891886729593261822016470071579725619979395956139112025747779884651519465367341884847230183241954395947495654890575369953786283347934464982102196233812985238503507909561762387024915542883709335264388894564630928702547868220020191648075721156837870224622181461078286485806731330367378536394893089058041248355226323290455367096156411648285762543711933893403595353449341649890875110744550042194179233831040861670259950952659802446827847885637193031473492302539388062252432839030715671018711274827776642679760952005839728915304998567535863375641011524549038843151689335330215214897705401297447074166845446355936941983141729106531005745555508330228532385390507092036834962486243400197191396474416557630031493551989847495069933841174380913546603956008090282258588184344192669139962964402184673932466295327298197980517136627535294975978243177150907687437792657381264380389696421460240799401514045338942974904645992836254898933382627539958297482061978311878092082990016910568111933846818513409992451518843277571181725492087576322234767046241292842805177937873670348803652487695812954232270305653461676228747535790211465785622464014081686275011329172062810333744346950837534380749214515614921367170760833940708842808984568622228898501853872704443010263862726223398209471178209604667197741513778878913463363696895521276976379238891098949518573508465352927422238052939886670154980524794760500003686894898975646271671395684825896249100028605764961658340561649701998503383798793021382483710229487406622598296676024954658678740574459639015645201275800043198024491574654722441162487211651873234971157079301559001844705534127787507789586468074675580326933137138670547618762191529191314258399921988775154417354111893717905615281051805651928711671937702495471667704626868208431937440772562085160467499645844669698894902007650816521367838469452090584785184761157455342365305532306428527384672568535180129889523003487745854993452337304237669077512041856305535373759285712932578786210434691318857366766743032864180058393803461297993561932472829976978025262216581698955232823995048793251367552350259885514256497416193353099662193651294916528667651763454788716075651521953136369596376007626244091373100556460849626953479682488198489243436469506912143497213830374432609888666550380622981826917459216103315979099892833954869971554686304575825474677722434584470540385857093810271282852889909996189646890818042655755513377415310486280189172690590689387585703752398376093956184394484524448445841205737198455831917040177340507395048931755199851971708509398405842129316767657319904552450500761292097198483648296273246488470487504554899532988960677466576735707187425045045373531797990168639861252215045513812145377414237236940902883589234391858474347045470475637037703643770811293217880595483402731888076603050614629243495590331445255757754514130641458411995655986826490926473664963473487661687668959959593788646495772963010488453010315085327979547520468187665669868305100990108595107183940626995362730057433507046794521326277588552041146272222114481510869744164937005897663028677944459433766271752511831389768473475600825940849404539045506652699495761628143221810675284415005148983449650967512324350631687255282125517568037246896446214629285769506391281972587746127598995655746047384804048906151520908453939428230571400633568852516602965616825333985643771170214222425186173708936007038450052252151235971325101816870077724790271252411365094812648741301190443220006612569016052685072469153033972290420147136648473285565803111570886325911877360339434312501687017672387817986904694200589067161413742374836475611835444853005359634270385207806642017737550941776248547417698628769033656739567052711714995521945522242627295732465339373938965461426338173255460317890381777378778208183502062037649672551840199512770143592430726592472310481831571793950310888539178793444636185386080985467742752602956427150594178811748508444733165921286407654412446131980218425710618191983826564335365318006237895422475899894843569685267075924224096404586250160047860564791493960110744102630445210229427840526034858179202235685797519706286620840813219853284221519365073453937614669873017895577044467906536774198245507773025217320288440761831314165715617451798316315167044476118630838796308363925074115116534071254910931848328323582344658204817143014444063210441562328620382272221293942241231704706935964819479161878406932953244795370706071121981807807856210020390069390520989190449060855626664968335777253248824033428633334606229230354055333862381014993712799386621902884949858351621091351472845529882669388329595074838991986870317192052119218771642188169764274493204836226657044128405972706427437902681778163272360942174237747001946339910491279309355530121190554456321172265613326661694701265891351629590343276105809388586404652022915772920537505962705941927501205105984632577397061372754604688070346507017681310189737575654927618562183374191499429146498022201978000431892382041518696062744512524171995354967422009641888224724155234714029376942386628026453210292895844562064850819572737860996727499503642493566470405826238161386241989387929750760923833810256120028309790343406268262814517542138314902694266918829313379501142240926300315496142695148345997121111608852217715653663308923589951201296982060422952897432505562444803322201661916005512460421045680985847715338661418585403273929588712905218144616805734124118391173358508562938464175944628920696749791980524002378126336147904086374221216410550951705579673948356432922377474254638352288061496954431156527244586533050089726453333812752683875067762864056255038598192724916107013321596272512700389677738816182157288226622239798175392612249463424573824547041698212072456916509892799938188886900937733022809081073675510586001057879212644494501694666583741912994062801017077498657948684091216958697562886618002885920852053565569373731307704055676932948964858851129177383205337968008814850332661111722589729967456758237781692349175839908560633392417627868404857351691692702101159211565060273087697784102361078307538118410332888951796543364562318307681443324505124100360549113220454849388843102158647949600551640763406809080616542683247824221948535314496636631808380076590144872200055613618782380774337543880474007448340645680508826247841796778117030550077514095855336560813077527244923657612433271682413839072741409356013664623739924860962126369770457835566819824988794293162792906745250262008326607859473950026281301575810832107192539225133632508575870488333137632091693898355955052683068268875348099762142551603826674461824613901990322152588895941342869986820233907905800536208707809848714729020660150317451520660630104552950700057458130606366000829034410862613162133533102333414030722589652135426025199055674387382077912164913134330891300749155879027844073454738022697799010782937960651615865374188575841206363471963030304336660254650165697843546050446945243395795710367996137050414610532364391528264272390705044810935928722637793269419977643240794091795530003180285736141301281284983866290240634591986058657244446166629429446088065327825989708347406269381456124761154634333505147290337393938551010976587896814848024489527306747563822275689755188954408670646360494839130188590622007061003948989528384567376967161685114283361414895129732081010367659853690218879257066825125853255682217742712401251893522361095081409412681677164555716645591693776438826675944579321225149266591656421350933267717000580480385402236361632276342556556017745931347467434547105488283913542783055992414922409824406726154030078519085150465980940250681249007365153915736100932046824298077086736114430979071281755587536199852850797228443849324166848973168530738182692101820396317811212382924737020492925594269363827668834379291486567785699317078245702414935448847038914202064827441228469926359873428696571184080297727582493567912118520105873998433229940505993861293951425250361859424698828525126148629986855297423144636738213047389870860920388303679888573254763545111286724803164110191972817284950272190108126751103404121179233476617834016243643950241825123671283450269477850390368114267607652976234116182377868193714726925544688205222032088281295884579284055134180525566549891876787331381067949102436295418680265225548397350121694266736211128993047857727209328785808720922975418955218827008753179007394129755138494443513094414190868447529537973815406421484508592887082260026254525779928950343231559071388227937698091022886251201218225652395246729427494158213773583521593598992909092828455155051282862261811644117329428412634303991631267628620485872668699618705282044168831823248502154946154424815802203757929650041952667642041129566970898005027113991775846424850333519262234115866538409603531019020521812157545659155564323136887928326894624966661614284594751719227813924963978993334376960931601257150835139281799232846601490594214020086632467703601253959668615106120381351692609765133331319795794827155510437773155519158569426841725859371331874512802952557146066180745074069452016486025872623764293954107202973638274533080921540345650821037573698745513627015622072660084733480662611575893183423677181724759173673389034522672691085438515444862906384839342013996313458935016303376666419606577410204190276600228007517401240021570041518193735585328422144347888528381482465258778266270068944504601442610809272967361976585437865591695980488326466870963285801020969495688615429244649619512437610437014641513370317543893414376610394661161090417222511576530056802499235325045385784463666416795114921879683358758119062936118766725200662395156263760900048078818380308918953400749983654216139302392003452020820504046144032650042402279013339221070415161721458983655671434654930389185642777089714864792551994732588549713812893872146536525031140453218861071173113203451150967176060340163730771055231327274818797905854616815035521548379693505589703011031462759554702043015874142194130196079703741805881505331364201869846003031595507595014712332285152886369258442765277422836857900707423788941223830978120349615721029222168123549196468754264708829986736823056456016662779058764149703693416334314707430394791453694151897155706439559136290997282804945568873443445293260127516566173882656381343270813199029328466008448002958720078311294661341865353087690400852261137357172838104076237600364399819001863449983416915615893356984319387425504780056484038213923156662651581680190619174741932195893969627049981979838763521094532710113226138830537098681019372813886711874419044360354757160021702956989707606105691100043878345180211643698240861677618576626896606816415159333522495328927689061101173263863305723070953174567199086245510401463039783677250643127365182909529589665442303060323090171834428690918493131059333770054083606249885950703390660922246009647117494084412082721661892579167937056590408563518825555600175962506656106489064866936741172713292109857402177874480026070099063903550029725145615757073949729342859663560789856030791463016733758099690828045553050329678643121944078230577419270205141015029507040921360834524700504760742717445202619487344829264236573055069285635082961605094193121883415797316350414735960797410209201246796666141090144370638131376082573120460570741267596751251418291217222603213775707176736450801361207788728087544467285446677246964842060660969009675082596315616775719178489110963081751110652346959809477705303511935972865181096621395583077017042427930796215419852132847373089557645719463989419491752323899737399398265941129597630458771319324753358231783035881234602589696254132619830037790533869352436137540532236073207681545146898468084652808048316375949894655240132609331638094202168735860104518682717083203917635851339195744200857199227118975125120600356167378241608477741123570920535608160498335025403963043266149037908272753121334085182108086095910032089310558415322695114046406660915318105905472077333873394234754770083936095756810712720674327758692917848964324947026287671196149001234978956374110747185379808008387943726951307542340452283947483214319789774045718187165081384779562867641061178657372272494589577427678840623980263340666326423175169564799405252592334351620217619345206415497793920084632109328223089574075800302712581491566102410097869866823616769638940196562808481607298138488931008449243043986304307781820865581980240997171181300143681698139271248830990490044147712000546199911008558224770507043191892883718318908004656876556180902543479041403703343608795365359576354065874661425040084972063797012278918785687827475856347615922624434718802921861278229055413521457024981896298571872606526587579818446862248961557309243971153692226941416436041797978363130540711905021047022658530328019882590152338476430768344597079657843454027784989732837060416091510104338410864098353826088105737673886225943441113949115391306205309618471260711705166933225987148542748763512036396207082961811746134161656776697226065684692296506655128980442676339190978536936019327168549170245463743218503745745949428254538683928427193830900448200570015269177835372188975988363105584438879054026355593087811246914548260826215616781688849786383148645810055877690736664582814234116317195238522532180069759357382512797546768403723491967220442655823003267507380946944484056730857923963742592808156340587362208466321901421200221511583836331456649651316629851585537809995594343046122149903550198759710325399322587366159739775816314844085571912623426837295414011156094880620797582776917964889007929746201984227190196917630843100608338622836801088843738889921048125525605971334046291787193287221657762762336741904467099916741896308904587830267164322377804493633421773490904281693455904897474606920447795180037370025214443602413150299666244478730831380028982136250938920839357471402377132175980689370121221725904931894268457575902600192039742445476840011473384753739019183052503603293639665606215004429990006332700552439088652233418044456602377478673696297525784469083651470153912076705561476737165356012541925731554524111542588349183259238903026665517081499209345318767291403367803390393915568770598802714406015455391253258536666762818390263819350717764399529825425405820622850311049072344680744120322358350923352836249623019462396080924491822346969730706716859219848903566421714531241566018605249435804690327935371487529501555786734393575069324617955842912464494251698696516750828817918654408295313221181662309077833827873314719453425070913389862661893993468569774488918431652768159575767411107762991428706954441819120319539048288871402314365795597962777984701759514017461073100844346835510254948744144235487117461812755795055008829348994768187653072776368904527739317446719470546476244054824589658277889775888902910937451725082220683573764836183518812578798449732990815909189419542293640695145677877517631284437158837000221321071147384898310387182268629719177722647877321239932920226399020752674297752211965859179195758741590815031732756165023756296654164662138342384254623710761760462115138148228210995028531623724526031196827141152102078176305985562375295371768761448177415025373093646637112114571831540042890282584339149665691240890612280750927781608189557227469220288865501016799436627771674411380072163483913358416263714277387015065228181033485001928550835134034948338143573152374043229069859647479109586131898447761043249674875210136851837434336215548658840950437953341063683968665333707390396023046022518487728173511218509959467382879157108211690606229485240460641303150436802744162465032629628797486601601607932625116324758797509685925166077266725837912003713786315932313843109129121521491281420296337298351772053113510567027206465395360505897048660220670065897787544101011137016951279463001148358276233824081478498792216821544645363851519271726097928509559574970815744091559038527578362858952114560623694083432341803571842424149227052677824122443363008598503441685079252508557251210962645253627951509274421675912055084652260421123438909335302543651953149331348954886068240641971847830855694988260757441969853446365211291325343660735953259148323140652632364656869936710517598237895529060019698190365136570051945111099939843045173004275525658265686208849225880637910442715141155184076600316951690770269091139075573444561191746935792552904509625381674556803160798309201153249055059062512373386879616303629900750785191378564470116367160393275311906609602016843230590856808402767381318648558723287773347619450149817612222892914014329208774724486668666153777776134460046364686745022656517019325118641273013345835800185102612960301680073723159902623730897194793435720567005576039457482509648313614744412327374932372137168105206843952804890479920372986703742554826315859262472806735824047552071365044837427123347248811617815218721637013260405024057008477215266150422305936725239656821729493676451203830324706212218781318750102671223631900326325592705711820240515506392223354466331596416223413403112813392913033574519347881927240975107516082972349224834942316489955519280905657146744762567541746995031384033295445925940696800693207370427438511339039004491016379733160837985467987050808291809955192195657232369801709934178656423212948791672029697999117840208348773640245619484525395033241272027087147761703101177314458979412532776517562029203002718652455005948679560495751275558262207157944640236253673217516812070856280952595654797877586798137871737038109858471468936790730610266257199293080291514490090423659339439472263769478580662712563231633744396937131059473818595245168825206840720692043975019392112834581866982193101552665262061646578758932424427952348680224862370004899797058043031194732935258874071458876283383569339698470876652015530041443852704711337942906649463667313764122298509542230446406078093964486284113077770342624674874579278410069050564598009502399548716530608302584882882195356338368084540218549303188489445556798532605981076628527869612904639489470443454878455097488838366088292058130733616248332429646660867002703012806967370359546928826108797084671319428230158099804797906309881645200607261669316776279645768880482223121162547829724160479399883281819667135013327762490486061550503765928417455976715555860378536121335988422984329017600287841768594205792866795383665405179030048182108151170230442016079143765480342584058806550093997201815397383273837737767384413640300784172971522079396773605748767047888888047098451298509501173393175406526297887218203358779247061863362781124688049631684911274450251341076466310316159941575410440487291894692740000004006074588097807497125464924228124245433309286109540031359113050844006977488124123520095007649849973131354477346952864226723745184358925086399596991779972291019507298190996174436866778074957365161872091160882854298051078732534432646759445192078645144127304752032436872186274214522653686212528399765059404021299099892091107026661934146587159903870254721746708802629720772909849765139530090754492893075502829404611766928768502129414018425454074715592923123107626965640671476855926816952443345615616293150231380531886808846090555953132728978915898324495051939370356500297304049660906330437469574911598382154807284738046824095478531737405515729992623300520381607230797643111274124099147058662824583858129202614169646158282349317943475009724211444323470569418784818126474038397681437166705855592385227972636137888921871103246493682640239630946771950229569439170354167206210625990822312826145723506149082296005244797406968944447482958424043025089497138788484666912985705368521029674343349256214504474857291328825830577089502977018998513683154883454303553255327655653239744576802455753254497252144707696597501858065174809331603354361206382069855899638794610015667267438971592599465657705983170290885475806750422275749874647108051448754817152185032102052701597734261430189990322474757255462067887544736587827092163098758450832964958047166542023009979994406810776616632397397327497676611595714129486068817124834099587443683058248340727918804595524541714059476302597609811762459380754470638342001009112714402030551049771013781632868170636023431369094219630412761766775347370593612287752871202864652723377224370764219767835736823178387246556232013813084409619662679833624014360561537994772432277873620927167141773407587705868367524411107958745296202011298766877103357659267121219018913067264072229140646757161483381469547446318992519974588657553260672364468921201255292113852471831494171806080147524369187855184968148111789911297664378602778587667631387738277596275914179359139777399157453095177730000328833535051626234050651682101352505735386929821261759480871206835338515730908747261053986904086434846823312865857450335050937005580613933789222652235753882944389435898701255908284493693724439016690818183217577715700621243370511488622328219971038521630289248924906170201858239886375474103893246870147166996962323535618066281375846624867155144139477152160019867787933891201461503727508720213584077263586657022791215862613291107139278665643670528726928399740145065389215582762161181961917776112723840845281674366942280478897970348748475929243676395027900844685101885052529975773396498401164833285958929971825971117227588256721240407038276914765845604259036342262879263558599593862863893063410315597883012209141074520081122652847528679350866500738274998680220893489487757879776879432385560818929272953947460915492739919570124881039030608969712281928277168508295065424532877469273686426734055966697859195872290183281423376208597700302723108973281878792252109528708448850493167928257695522342464270168532967675916606690775858418453780633333698822668723987565715987725724259523190757826307048991097250895151368654389400971733613880915737484979511424775906532612645454796005715798622493925930639828076400520435459073421855929897729972060343968311487488498321575360014857305823266656191107853573870394303541427333918054180944515817874146588240154317107819761287703256848357838117178829178573877229463253557441635806706938575058343239297227229770754405551319648917455212254749223262465486852622334082981920598671033685356908122348361987810973073039379744882164691730019201616969365281381862637361026155338771173905768022542960928435873716227647480626765141080843274282696430544927680724709742688904230781831513800124021562710227861797060194891609234250252467083877595158177710429240152559023406107763354001488763096017139556451829699430372216512964212488958978094397405550963183383112938616708196807609275057683359796618045224273664695635229857807070800138587231023083837766724261408069634495228441220008346723463707742631777827448522860046812062931550300890027958483292659654562391986857038950276598587862106705636999759039292259625471413646619400412382286646573780202713748055432192902276421748997341317471871430154233688541921438288277410935753159920449885123244913832232260782367067383781604121132624689745378905149390200414925285551112132366693018193213411530274171814510241127067139579708941974695686120502915331700127146036251149308392593186347525028010369581875274355479252661562445389204619972416413653053340173693008030490513349605454345646823537992617287315553486161215553540535371815733448265811908224537103373163995640717030206054806278291830357034357503365201384542359563565394055892177630860603555781994699306427385238337738773172045224576497260507146891454575400186748253693702466878712153750672724644186128523632750825491069576721834729631226284652009884757654804240237921398155626571237349017330480307738148149503659321748127979229192764861874144783890092780563337241645589896758663424536856891892773189581238617671838961629292860017782059316266639718891814718409539397273108055989082112711974037079136992976862143426038155453753243746269667144490175512657004758584065204019516288325653935030790720900945223025476617849332620873124622156880161678122201262049711117314279045721287154650753291525740670740753243631618278405347554319523688147178728218069065127750654201538518045000706375549581231009300940131208436499006489669735727724700073230566661100470395253946218975157343166662273714555558073272889314671816119179285112896204670889844709902181029799200140781827056417242594849155699507997258291874497019158196575715238971069536395834188801983358786629840937282688096528283657117905906484150758916565913085798922097046836350046713476733742189598771729652337874455925263123835842601250118719875379672469197664550448838171591706536332527230381320951212824467226203865318200996602404132197991873108483569114136873476708573308322202251380868588464384171846173804285868737774973087725508011987301845249825933347399227459686011651724387340669252404932851371365850258149894859615886795520350595636508662786394978784401837045964242446855819329087742353024264039148397737725972375763853182184608298854276791368931875305750448257142689666390076370644683507464239970954358075992648805872829457004047200265147523285123836532921919547824354995133742364879097559888117319468124370968640694821478366783756625543372597717942169309166555640635401521706283635273321825553349135100371349097462003483952778189425059700457053085926034507936559148567395364928810066631749453776895145142219943029147657904746634868710482543582976811407091548459821048059909040856646444815758380876752174202851352437261950014395130285653583940317057955091050248466772571250692792911499375399019659527962042676896986333996106390727192806340317238010857196120748111497986136907500943980926377611675376800891009849149883220187285799492466628486643692229142498336124587586436702558829362468940062978355661971041182827453487419409567443396503543664468140592337122237153113256429509701349457072828709834216617005458194943929869463117362829821073575078002070298947268811280227777855228580129015002714508933211222047928089775735925957332285486426163294409917351028632245725488930350420331710514259344212522926098309404336872487292985522755567391954162650527400577449844162248804202855345178881497694505418742759317421648628083170104274961594053427697764159008307391992874135569365764901591367214192947561184938420393043978844255876682209154480272278750733679740741478000570372114891555566961965821210815922120524512413082727380851753270497080069991465472593986890696974930329043880652569742346356990151226141562456904507016806816072642844886850879570068342744280969655532089225661870517567817599934191100745946874771791956060135876519582038517149522478480115803915795171265302857937758990451243972510245451427221474010452830443449019638220874543330394203258899170982137087199271468743053853047349483451978535672646849537154553706638493678457721319355233777195046176276051127757089004772775777502318775160078173061985509093997425397214267739215748141301803550056276859177322152021318570433777321841185127104370241460133125584793828750197836745446091752709698143342949040757775511134457985889909432934141309777771045695933856208207155816089319964560127547573641114781403291166567610966597165837366529861607508761008054477414557615118431533083262175316164478171997991595530628000035481709833239796580899396656972906184798603115170961350418019249338104620575191020115853356865181322483362219690429815848425783149536975430114563307665557815048356802014798577015080521444058723385154831423112090421823633501045506857181960548708088687838691082761661856705141097552365651755059236531788355719631237202360802063279813558396369664015957307102889816890817184359591591745766970293575650144037481016211050048259705645352797787289000320017776877289783306757789760339502909327806972112950159342824518361040944576526928116638635367375505445269702927519588434332581361271749500005211305633967512187776825067393665713107017644725815888829221799933518437711613135293308414471027237306737434206431613359353850488813977021295382204101496759620543663444136129333814809334887305123869441768812186518013994480157677648344485801823258866121146018689182614721323331104378198701134646772400355503574690758971027506064149688533850436308830538447894759948281035858396590773565395964150037037495545312201575535440488457384158267055966435993366726866467887379539221184329529627956885397566981900936107080605785026189619340765802176022576477037344797911817176137165879773347319370771805410418242482790928093988934541717482279243525098976874900769191090543492529119554792991373592635430515649550294075706574504817728016291219801960136356770883534958916780387382093734027005125826876295488293742886355849428148773490280450787069587921480633713549571711152364966919575251800458992761487324305253709166029717840568195168425316847295685979709201230106268193790817296544925606331906467547164883814456945303934903864682219531939775187003684105788956659800176740439061777216367976400191372413720561032829845808135992000001307204253947152355717699907472936663972701688985184851980061963944137803102160483255976099077213865203941780341985409503787094484381285317234135741565595334017412847730619747452386098207183597726737569004192896097531543973419362847237053552984872967443992229711447470767885831210286307246137356837175101743282687233463653588892449519866396537870847806785413721209291783538366568942189045151413683790131597933267041260703319211577736810878544387415419994274723721502662023216062810702505142880468881726045267462281321682674190823340079039345670396347217508991849542810436993937802356959216506418634659129705247191425999195238439233503057498339316055159578901213823575237063340985329220879200386846734534804107061491968091567045904806825480213372076071019447605624500728302609118307073533479287112150109154018677287878865968876394822217010903770134780245928605982007493099057350066209513242267692194487914235459832620136825388105596047816242917513651347565684150445384049093951853540946864035292003121843499431354278903833070213508503851549469530611878044281609581933480933653007849819279534847238579212270516845055043962159408277463776199391727897555814412779236970239571984978685791965836481169281553144745267979921523571008182902730167599178953126137786937521449036995871525783905276314568597513962329921490378323302670178412825379308060527093835382808691896550225949475114996694080840753396439117799794887993066502260201553464275750388141755244713578249660616592386452981334504707263286800057823181220984212030979169657721689269268767895249889284203846860508060350449328876220129646060187430597088021645328717030648339839123313795984348630828525121585898569157127873191959541711728693812721652348288574770446637587157085125312397364405769043290634816186027207670859191226752228777210332924920159901539922040911271722530633786915296508172884002510871089517553892141418424578162293868619112106915895390033021289017361432575285089107633872851440823692679850176671588729222474390133988880564816101289492086179733254672797954621115891562968212951066020557841958862881670564612270442169922676508576459118387627914377504890301263490729939363591244868029879304665011357833474933419218354486097117770397060003228277384443741255049833793132849226440378243883982010597476382754882426174893954588333591448163056379065067073279601899867226759497105711950091414394305486665723605360350699603208587340078202014493472147062652186657534810589351029923369460655840064892541073806798274095661598562120074408711779922874290647553327088479061083261971354644707886105795061611899710644769352267613729290886075129669944893927992713770101070997367163198710682708285726808838744116532447786222038777845415859511947563896704670276051814087205178758466820474612948881185557562613023763260600003150163335360746364153767379945515173604759897739578784444707018679120418859413917532812232545533742073314029272095941464689251845635706962678040701306139783085033952908319808825801020892760653331748152531942817688828954247168134007690741314411912637830276237899543451432068803663055583655054042906444906542405907123868239159229829694558347841631892776345078404260696226372508039255448209820740901438088967296550043395203029350302143192765946439852776355797359771466710767075050283198608415353375456072495455214555497948251349300897075209089985257212879945302285038962011336570906168563455719526220534355759032486862469658900051790771556930199168769241185205186185938752539158691861134523400463361464952759762855988455182511968356487764260628668335053848767132238591376861212489824588505430650831065813175441551924172974233002835604885723479955312978027341235212121648859294391822889463438469566179191937472776398380155638544275823992013717300204429488684507298745397263375581543979346660503155407978902455042295979244133365788389785959010292983065508524387130047366210607048858509478393876600217714037945557561946895554701783989434915879580432945220682450153815279855214671397585640557244499911971920277825178502208191952162895151899217196763775283684872541387850636193430926440358788793305569399470694904397590741919578649949134844395671044942909403204660589769688497240210989758690122365950080241602560189212754132597974267460565593652135011977973337885430367803188084467538700073729045841246287992519282337801117164447619625522508276289789322841422419919707280617127096240078015626805822577139587090017506099306886221408096123384719790163483782177407499420151347503195036662793451500062554674412968759658449059475334038220752370073866841632520710458697317074298994634487006390658138750335163942049514051642513541119765681612465180432514582667744205521072218364619859232350697562492260813780856178276593184981843772877565257829399472641737676831485341591083626887518500026103582314378960403397779718306695488448061841260096452086550438875918044899436283944075491567718030181488121958245079999679042727586953682348512808037249636728443416884880273189915246735087143175992121611418144957027292447087613921629998043572375979002716954755269326728360055185646231521985531186697340176065006374155445962630523198525961898009070523112564970194134324602710392280492747481360397122139423791046539425310634053209025268900728073698375992162627061382513999291571038718905341248954443895801821425309740533283510793029077722159480006465610880932892937537785112563725611631910089162038345003628775415372435995678955597644006397636342928765136740054498102380525419828551932718726717019877075662029356844320033614759294375810923061213895900009983375742973035685243506284194174132649679871476089811575029969816049790337255152810844797216649652586371111696653795686090569238619607416859815690985653832104403801144559322152467714836232388292819726541500162133053560325403216850063099642473648794219927849796827631493810716013138917045310296407352262700647994122996563065280789192264581376620358442209004435003605658728549529877151710454741179465716611310187728946075769251703483761878133855959496445486853109066079956696823602108967865266053788112984449891749464214646336206096105289887449757544541889462359771118388053716845226641450247946858041840219101230100736708870566047017239751502644564572612959226598880039108442207194168242042464964116449406026009407387565353584714619624453669875907803961299293733968739358123294168061736592815215043479819605977340226417999136823026445458023528449451705452427397328250608368431879270081670303207753796341748625543380689849018293440688898076036018584859190349962986173627308691349686724561114298149690510488996351378157144441436369036180884791111175366698826855744255770754795834260495616058066509826999144558491008299195464718116875726738117595459506193594505436111300029716338943521965841011969019657573952461873789534672580575118723879450998527793358298198078673707098241842736512865566762514494806303644646506810344091240605079098646626295393878749020491466427917236350551563040911373122506393608588206506835257025632704214194810178946198723899473584462138330450093228643119092576217494360466489584830939162999283013466362193163584105879408214550089565147630974298845140212664790798209265130526495534540523046424213054038201629507238112475007953987878935827350156217369902143524108403509379219514765857245002372895037198044355118951320069503808838364523027931880552419071674059922330799318968707291022670116997952900572511763011409581802398161088132880727580213819614579765710219780198340115643569544243741429308827588796230120256364325595556249028654021412682255629399514392949129049608118157338971777337571372160229281289382139693665939250278244646016472916117529934960743574086730140629739464002982562628666251002358940433930462809807150819997795423907157665924996527771009873952887695469597442569346008808499829255975620116465084804396453500041377831068053434773778638445948451087984450955317071284501370897233431045785257621528916883397564410401274739904127610293456891046149801766514675557938204825680904120428281174539685458891302469229411356238944708718230335781145541571995528908396859261285397969493891191331315569993296500315816328179506577447913306633646678103930644483339333091934904279932930432726586412215545123310401628980815108064747187736114545870037795612394978321523971509332023883344725839012496994056636156828944209570410953308439599316744686681062342460560510995737280474827002493559599292496916439707603981452418435087453487885216748350042598413436629256594505892573970564533157425851535870641086858416662273318694238473272126776871061234387875805638576877421269129656030847855815409639345980258065644025756722341329356958524294641523112018209570137589169179014018196018422846996607025735523415231272459457081210299065544724051074595433467308617387060700232775816791360594666664982045735021517392235120525609670669650048095968935738671135708568054189471046546854233456565940146583240918492685288028028286449047472402276484235185756063140649038862484736592032557203864801394366431187527779556348598818363639466417430265430651697344467891928784557643119646997447055016566385329053818438743959232911910817933650827992541216810533496104873466374142845407732690596290795341390867199252681814296668981599294596032899115706034844950166806972573896971236523736450117295159677541615779032072290882251708401573188669966588687653827915269736282530779556028123559946686955290012102737287293114522053519716026999646745045341537918614745030405157730248347586129031691038872916389011081416217886988173411391196955838112791655774200411119472605259145713755944289708206896579575142787081624340253866571560559646239718255595337037372860747066067636743866430529913216399957954917070155289218904479399024406209784105158004876342325904732291290263911225828461080924982374798483156668648153320150995332804747859943744303487149278331354683759767976997869661334715882732845060696989761957678133819674186471116016905644038103078556760354326085821666742962395290084115090666732059651177044017009985420006988371345602269398866599063660031530612997518317341271758567409099345534366719328808558419155249718918332040434210482189748866443345671749629612586007777629492802148072624906722308905162270797447324393395689688711498751269703989099010228710160259059109377831510864367033239887638631519378644815002425323081485478269286614893687066475409199716522790849013284148768583553169909234452249361855048918865652473906497364174127659650634612910865866575031364265522955688501038661029161342636246394450580600608138407061408278851967491790825736072868754508924965288099846526444628894398111711103378067401763448910821242928277299339555410186704676932614175961979055242088081646653936160288311986601010873567167395430715138625803033267722072062701229296144337418101171355653387818126660392565327240719547013508931411712619418899213534056623587332536394841928176140353375149158293385549630917997140669151707416646158317753927273980446354693921383187671293925937457125964698526332956147534305898531573879850748322361640959503476394669179338156398386519961190063517084975906418854652171106868628953325389254815684636467209193977591987989249258243372898360234969278512262427101492325134014565528464846179156794463805027729067610530283010932434450131330045130948161471586911842140635915243616468506481964236233302251340755119920680317336705397629160005598910147227306401355674580264419947769070735027499981765958319510030032290053759405758511922086174401029820046369750058574015537411291931082300587465126557833496214483545550872688328061723025100361110715528408944180365035635278814974774665090546094310070529543646350416377925868960033380830910301614684116040981042394682092072066384380840765339026102641424953489457639767933711223452097958693810123061208221229770199673491642525752272863844321108428043636061641378516400483188471534751352755882576327375371212372754544092666174288497129466158265062463804515800307016779435233714933385570075432260775290758107782214048732450309132092179407123013352609191223711223485047826058112872499096365670508086395413193936515938568713548222328330060405552371145155900691872991675284999935566054268435489385931944761379970676616202652343712336340955013518587115538413483740418970632062463027253163543807056999049072543940473075008107027621286061352720590150379869563288088673373134585504532040540557070498534845026531393869301884366778143054283433143309936353506644839990313960623333850685606239650655476381049105310563500927416355087162042998788802272227543944784027026844351582668685789357185300173498797802342981840551953757205763681834333121762631147156612852367005512310961209919088878824032189688162852344940217777136211365299509487703899229285102112216806673623123714959437835559430665177756209928543798792137268790900035944203556052118178647746447276886890672305794338220693544767305647123703804600545364876341014002146841578363676784025023357466023376790774265276109682613682409441429253548151326326414312669636165432286009278573980437153261954241164594214465415924899369666328748998738209120319434494781098586636611105116487560113534224943155010065742242500636529804812869922446717615607712309798913675559182137471340626599331616643965459952963677038963177167447962613250265328737867054034559069798546182066664744290795399851200529541622619953836667946959666525831638449093016246634814829126704179794285918974167828965079494266597532388823032435421724787157208996249559136543649389180716926578843115956703791573048010844378484412986452678742724647156845022064371812845287865084941905210553584366755263819081878772198772268258640882246833175696031362217994185857430804829450616874705248972449819530088838436119014402969647327567913136331829689120912637621140992216353688968498832656391425508183296412862141589740254949469385768781837352516841250871738032909550547757757919240831098187682962308999512596157733693553242431839066404017715051440629287988456603440851501374269733537396319242895942427234397883153692149621064733759887482328157709477591252998143349925899000246614286865948774032083546768633496548838697635981724188357066097112124233629177249023865564266670982725128247272133312173033753647821762395775882565171495222998002960171599065455390857229517498790359873396625707010672618059549183015315634461524105638994996107478190418378496313003294322094159175364747406620519374491388282706535568105463379127084772306751392818717838065286362264931120187872814707243176113947599186246010072064800682042844779249590922110738162355563281431577591856458230611760168230490503326075116159441802458788262001903786150086642995220850228989501242128480875985576542845538914590438025365464969572082994263012821291744513045891702799909625099593899488593408419561509779991625199246589787889013677490268072687111530857561957322995823135117633762209265874178146719067309629210315526018134029238833352036148063133691840306946124493091239978898379620223679216351456025820184423215396055686512306048333377286062452018654928091623906819273697319470253750033574812162811660010793423767966734429574550141976052183894802524263963980955280783153331667938236540477475492836908242155009133127433867621059370929884885537826301955304368629656689967198952936945800166934918672211535164978938949760557851378722970822815499226172182804093530738067841323250797215062357220702907355155681117795980215177848216311644906277397902541964316225167182331996959391800376021357770615196799384087473325283873156818835560315756848503898473669155772688907063080243919524536112433747690749663222308132647652401207400600655808479626349947696123132178135129419488287244159284360537666536248152124229556237718780659606732517445224625386920620239005991038607137469423130953222301785186529430457940387279352206710027240899216944412854880229987156425412438480779114943622597189009085408324688487132234140365438379342591236043763051121344689574011778661925376588468672338876583559250447067590093636521408500304949050902412427604487377272668250125186740162866029708348246051798402786758987682577746819831772112258414192798357210025928321044275332820408812111317012275978781553739384571042464221910327496054102420113981290046539773888974276975688101293525006989326187438160784476325361410149703506470808916353955754171894525276747433903452258751520192809344360627341101961052229944413717914833005980835298082076995404808657485879448566180994166511376044056568876046583217474143534462395915379721069883207425426993364912660953933875367075834004356068986496240180643980049170968938237605591983711420425481234206094865055256054617128679983238410977575977840084032257734852804276250782326491953024158861472734791190871021338901984248276698167287018105522003149937618527250864967533481815717797729665164527413573825207177507302083673014949629651479525937835322240912142190441225197964906690914057360041446895460623845842745504582064869053450924047890511386157980731404963606089920136305162519586042152612463471755497316629014739305205365833624866317181175931979882734029523583942993102262179450544566153396925092789894283710605774246413755477952358810629987779985762030507157832664681295594800798125904928406402284209023442823247677600911956150111401548858789920608039158603109001773914458148228727558536359130040574639743133393084774160192302609821703239834885990528336334569003759738942006429973116185513189495434867254335509142447416441738861303727699702541975949658265175179563143401120761390840769277168465873600073163111125549693291538691323624208653925314870889174225792358704056151504974231271170833534188180026085427790966164502650522627975390969765457512280592275294410164711004681668737777946369179507389581477661503233168944862858864820448553102945646981100204572895939975146514799414955426530008220275278966715785328369074100782169604451748389819480746985359161386453889957340685822651862886654745369562097585964632525956011705953935915889589747962524205737920297803654340235178349560739199252302252316444929959958614175818426359254099670835055485263272945922238384583110091870877550945005961711623918758559205782791502567647750287579480315390598874150771273595534221523242218685980918014579799959814899777280174666110153383935836002135756873414840898306651054821318164329219852849866039566834791666807380431838163654461644546175769069555287036723159995901513767880303213138108085701196390435810875193277746891720910276953717326893967787614693421749364721543653081798126332839040587539275079917234773402570570608872978448861461362611934055043320115470047607199284356984312190493828527751420570574638134888756908213044064407487237987003773599645796757686628135475663683660336413120373260219183278816045872583694804701381405678293798623139239684187505221679073267456237157074176578184312653135534218039481311110504087199583358930350203535241885401495044138041781673246501976778041698972096393690446482487334924419956237102826504472796038393140660010205693694378128334975605860159501664550592590605750420140579218140416239493801183014227348184123408353973779651780681060452145880575245858042580314017815212021818224450769245663667020018373538780833630437221661807562375107324940735830377289993733563938722694541410252248869300967890182612695271179939235730872645986445790327014921649020310187219343842471208736560774300427042625330292889883404775207602904140618729239495377373217081679481636139738746340272826505774900689657138172445997091782989332769413152480948133447924768170218056449213417376700249878823747965378051013703130909631211967265764293095336060594954188852697741121648967814812104881261115956102799144716815444330819356252189732847817925952573033464771483557697268533260403753886929971543632914745519822441745629711372189061429650502545956895132811503428619358084295403676480939327924685473542636415396365973965764789647692573852180413189625042702192640740978955125708973945095610013362860338757711863669927849635410423373343138744664738604019125052191796758186303691088090381307263788907913869944550229888448794095773382305504047409874606941153975061983229637985211393509708328384270816639177035930671938178211752346089612837736875801941665661967503642810882619661636760423467498634461051349424509237831319007458497093333791201263857135273056132903051074558985741506914072122550393095031713250169549064752493537016266725672751418352306529585732343169683216245206351275791589560645367755150762257463539868267550214910771580887967237081162426790995464367403460444059004521412773494612276222671033011008607144646580131899236179485042439803061029702508749090743889333658409273121147224756925985835616866898383337341774407457641014625508504247235403539297266786381247603096558847895356101182723670139091098475695582955272602134588544420224207499170107416574674987192464021249272721664848854146748074286749286188338884422857898923338349152922950978276988907837109945473639637139806979537729410964331684488907880517267507004667185165598639659116121209441159407361809525315940589875275789570702743010618534632949803458081980899288856346316219122970869013146289775701723422485642926980733830247381632397585011796658905644892490934340043006835326959749178818062180560358574870163837603059611686283437103786937360985023018348248138727407087265008108265677740782125912223619302609526849341980029581906988432946685905101244862168690351870729988755047803817702118523759135814400341418941643252443499948500834655425767707615973915357022935205036030077378478038860627498433837901580964491409068647386352442050200366325627618183616306622279786204478719548507695970317294346214898099785564863343527018936938409946097822850433488735338674876414894894862091533538060477540089219086795538039461395217826405197090529881327651914935639418176347949516903631471155694960645456083025225528166256651582550071523162202806686950098944297768100941932522864170105028231468883925618464023166453004774776345160025180478876438670897599833407509022982867917476001263388305551489667651351046859294201267490623538175165320881288389017017647390726966135770911387341418139345243596894246068211469527119168086635674211536158410346107370265891485037089454330681534828439292224507506527725774593364586725619967753249610921648349091124820901986958585987142372283820233520350644265533557477781775150557409058110668072260814908124703691142441527172115064298990487495944613660897780846102306595946044892723776856728329673345401056290395425302009460528465918690966958453055647667986024020938140574748219372251161399908587519899455486280589402647024638191817589217366710624379841355343028850026101507781694632982781378885235315184930728804565602786839244751595430348704897617817516316940242741526174171297787241294480448179757683764946943540988442582138718736746079088561074346735760120546466914852246366071920298437280174532128052914468094160079772121889358932040177235783817574682256107971617874235415064626592609399656486425425652088050897774853222117834944370970990637201536575829138542113156659747852848644778998609395197934607431719342918202414892824428078045818108639748841356365675441963374122247464165391694818622544260443672651632213801333201212319201680820179449393231102439660826163333063361889655315216572545990992558117676075390845861274708723646576657248707041179143200927292172330928801079393646224889604712158290120350313682807368812854144730549757969883504461509357893328325020481309733471074183433886967249512828102164816031663789360333738494621783457080321757061519799785264782019631537588611135106385245404596803092734917781579586212855710014690662871598677638508218301013076897359388512742626058744820731071108252427785904892113501508248991343008534026543079961000994468885336905409242268356744799719209238771886173403138592718092265743040508234066585501241662743781544997492391013944021610736233777080098081227378798682216277636816364795514231128740006141089133578588294869542192308192162555409333355469680248703353502431582008881175759152585647941858761219730504728181162477820507243808612931874369322725926780287858326131669286630441643524981250328232314487837920954382128247135889035395980362350546783030509253193716015877723929667277807730289588243551456317714124451165334487471255654952408918513512793748362257629581497100305098649868052562027849028513435276153747720231342473470564663743382392201481889755457312577273906877803531595988851443653304991857752483092342507824845981230960379951649127017876254069290310089710188323223470495972627103496166708526338779123350614668034935612991410880044084439909711916667465405578772579113990743024066815796008065298036180560257257720501294827804643777401796735491075463271568184627873069205288637399359332565236476970590652319998083461186779854707583637726854582802251388989156514299522533340575750303382075026689908556511944341328218933836654804500666973542736648415672684555819420038687156639461446577982412952784962048494419483945098953253790137583270313318302035391933016167288427102771134900772967120165315544233720462655606441795536791875457438825898506317360795945603426762413218279098458563066003695522679441830019471309623554333298524033056006229459339882328236539093842718350191236569857478527059247040860190415310995365857588966627850062065032766376637804175540455317172304485599624495849077641410770791254936938383751991374492308630732443031189017943178277672609038185862331275276404761720953182748992510535565683525150317910529795054412503532182988689155392134224799339862287305481182685391225918455772082816674467112030752959844100666525381563249463067597892125868877409211270356028034171796995277816080981494472718942754338513488989721353309644651344610740064989863232060852106382166901118075103750349487699801426110454413667344306097568425614345349565265244772326615344523450089976601603941923709527026141200498848845958894354168533897626366835819101059784314665078579556159894081936543859922603904900070575801506916943982421465440464346112047809506050525507022792855263661705936605265468910079569302747273451424339842307336276215944300714583819296303315311949243840677341534113705979448218603461787040446721408233256605558506573810709636522649308657310786696177685398158255515138052219856957935305065108643644228612084319334316192533101741712569731523681471030344386626747878300131034861069503049291849635618049732190326576013351278562289059933700032904419796235074170965313670816745427846447369896857259990878960431802977889670902692306005217216671371225886521005494359581563956703617312813511177490054486659153714914808804038822127823699298734849386200315897270874153028133714991412469124148898027892191445997164729407030395139017862281198627821846504167195556938618532107282720567040774609385084118730597246352594912758113294994376937143418068413227320829647098403746853661998198637614949762884241273436788576703485789031277275699225548110100943451063675907117165031522665590154056554365962563485753918527041660065979883403148065474722129568598202436954963221471699718585467236149309598904329407956476330566699318450446193655945224343807296445868407684323242657403065280562872567803172181439342316398610404293171560135017011773291978570696450209111431799570003183044235467781730781493482846838277932708197608498760069968441323952727354314916105181223934187101258868876357082960156188084389723920274832963324247344493611830963093631515912573743942870073010847364928955147143646802713462096901342781172388834517273865538628521768260657576315652426379116894318241812446860453034073123519133622826182003991694777364537011660056860294663776600802481936587605516209948796333078547574210934511071981919078426265853147964430691407481069153004977814078989487122191754777164882605574247227644827102348448320780100979034117843841847134247135848951138307621626135961796517917966304299619786306292471009698352686793025155213055186285151341110360147227238557233648424395320547679457786533185447665223195055973394855165225275072723706005972830167175850615585451367250995553066236819250807794525213840175986336811283744699307194716710997700519600054113430278563722254038468112731538186414327538179038991207066119118625998519840019289553970758323325746467187403856819053559431257019006415273300246452475805074209003631707371847487933845635981749307538453046658061476460493112098268808553182768722984635799615386390106261667545580500789346141676633318523723838804633768503554177052140072379820197386097343203619827171729232927163025884378709947667861080640374073901608916730156377141087235436442828080670154741142736068325805844012862181736650072694767373102662872661914855315996469575855771847628419108865806395926256468733059234452763683549110472500124653046816409082553598315910564410087259245148741102828759374849778386078567051867135129694077083850271958491180128822150421593282086498625671926197086672503672932160073392126178941621269934498004337765473990745081372489916774864545689959948657145917417052637598892721032995043663762170817776538478880706324979608194935934450917937488588818917314003340009243662253312664647835314196281123182791530560857956850805131384030312624650442750667569132762841043472779506167918766609067841364769889819973256579165332539825800758807315393405094218183442470083436907293199498475135176040122575013630171046224141272908376963471828210755611862578267000834878355525392225369100915967907524830621461256799665268854394120249323507901709414429386411228301508059098341562603259958699037648732263555255025943286409409421765537865635865168991136040043846929197887219215176530628367196908405400226588271003752871252149903849448280840649293784473924553893491407931127509014245915230313708009659972336629998798004577067913413565158833551987432538083774382417508235986908767389340825137505460309554139132718405480220441338253860187499354998616747734400823860765826397332133090247663335672237547194327066368550563283593608313897477874418380153906808836541524639231728152711662533746337606239488850097601415979016303170736072318678554460786441389574936205620925972233715267890484319230354480410662260843533923784941974234684036893210046819749344674378217466820681941812617969640625870976172808893268790276394487365431925741064579382457621896786016859154075456653377418027532409271638384650313192012601196463491679914950967471715900425303832559379437419017797868283148484173401300843919389873157802716967877511042179403461554789895097373628293714604519212580765201660689759953172002041057192989526201886952942507262791604199632111628896310182841675662573178007731584496393981369598801700806928834314177798205864775913926079849555579006100443711988760872775646795569861783102730760877137045134404270718438725361952516137701679838751491831322276247125400939025923208048489383709352066207513353624386870791422072242771527240055603144984648516180590598814014787669750687853980005439574995788311447136312113938882942085366924391513882698553396349320529397072481855502321186362868678280975921300871465668566468084001344011474951771512669748239267236653908955622702041726093867348077608746798782122071824977765681282393368300399409682800933818293227203339806218763908238485205789002501979978008335851975309233561343688508594465422755376078722998488409164302084649806066064637553728022216471518600199257593205127135632790865681454582567037286662016455752363171889178256538218618257261911312151606509549707611210986348225159993257736577691387308960220943487721472403214244050044469567456229313703007383005045881774329914064858039538299169862109933367070818970005657543768834283351763724790388843948285629324413942782725407671355630179866538827489554886974669453535733339213992788587579782448987125981254600101928017337152432339028575923926810902199912671426927378960591206200874281736963966406496347883176400771230418840479420141121835109026589894754890349958710533124168057920930617153789544403985267903221787067724782697543090760472118610495413632056177633236457258586667751255682897600153410295417929970623903905502421136400438155714893424451858782690122410244258489244382946081789591691707494766297910721992027009708792518966407039204249308553280358649206369551959296816740846812547763875565809557263452138816325605430585766652411181066623731326639605945588686033695066552433981216206573133112139565536026697682655857932391798860049862333917129576407117026461292336231883271177709076062936401503342485635663131056889632935297888136553653072292973653067639584112306742671329589387663173146036497794543064677517494298905629885687552297248639846459133928934192360466677041589592523482994794588104890743906726088274208858761306992363048837813311132506937401779623898369345624070044339193392142588183379171936847900304253944622938794549446496351917732953521911189769594778424771355250134244099721485694002063276053550219617609619788595201055841196758318123255762848708619924562306672763333789874147897447324274294133857779157233573486999105805859524360062066499464961451498893717295974966463586805192596769948234077876461838213496320889951636957293923989701244425122228027965837886908788466608734903554669093484921941131030384509938955221936946731286813070736957538042804672184903935501890875056393802095026060627209590170101324652519966630742114614883087098596467730517469675462657721547616163056303267118639328630309473527506277894162831586037349770452308929805655415104230798453019117375911783737880653601863268693049437843730916830086958614096755185496585027364714077780327292427673328551766497082644117570828639136046998465420924926487726016113376731928586760164426110853048890946700066228007995157694344107866911712395329287176297980096601687181602659221324524317006696599340227775282701959849184849627442492001329850837694306164971368455318174889569740835109346546347401273708316012635172410179815758480797656346528061725248056349937115199245357776095963392865198580841259461848691790348310484695168580989173076044011872922571542727828278617394702634925438532948095446989357592265524399365557469090254506006051101867390255068132935240715174300094837035782003673940754126415062055250042551107379463128354125977000539799004261407196715906999652547921571978484633399522745362631172255331225875047898989804066261314472039029377082860606612665023880245632621226975910733729603340916076051186807290199032992433533795549929771894289518582619057231894006050646550512366830347341473965516879576140802576750098923405350290521896482980257512737562868708472489827138262445278711986029372293768189168196645501512837256932847036819792627478392789616031093141107628454371944605830537440829209103914555639161086812996501855318258269777421846611290608485135668318374053874650315874805564876993489161583583824691498042503889652032986216867840218357659220981087628872369178319081682452872163268122998130303645198875093135894013987481513699696549695528443506343737245082359695162820660972557905563482622330834432324735177783418459711380549185880596662672764901127923640670058340776499237041796540789271683895761494641566062618566556067792699258124311648408400513491700088480409705402243992663813448676978991674942517925749944826006959603742254624854386905142880494033179834670621913284238858522692524116487088646609701255858459205906855253092411805936990654866889460288157989753115290554472949886318318466591109109392448646898622490206590290777642212906759277462717823806866929627082845196995339611625526893340698935313226658893292454010362331063800528021673952615242083605344529557166549713214434601100217382365852634278033619408875730287182768780788484720873739169540128754017299984878521021862082554489633217044115435097851834870350181230077406202492535637828866055929847593133661565697182035283429050106232483661362687411411351161143079950317124753581673770455244602847893627575802580634694417585193732323712758674201279382641837386797139732383203482909415670212525475772966275952743229682513040695429324853103807284456339561827086726736001328144033121160002683405092626425889561547959989387078446608732407366863304577139837611523535169495420479117560693372456212628240250631421947461856915503654133607969914788177302772872781174396558769334948286939341096633075557141577615077905608018841971426771109403376232074098466605542892525736182695467347134576593318439558835799132336916574244390450320795466446137230934204823175215857515228807707820513959154987508682000571947647590528646265621599497613704264889146571771464044850562183097871616061934690482454245138666493838288498087254278138048986344107304527156894211321571321307758546537111725987073179037234782927978733366657952886813596997507703816921753767490824857496581553874790188411114815153405681149827252774616305421075416381632200614961837517289494607266132232271190615147171456699522249692535878927594496478686730971426311081156445583459649612640486708719424495670229563835874689956858630990217665716923625310860720179498586432395523373260238493148104971302459482326093201683894298578189958972115351309937932319946428201857578552581137945281835921874231950065817126644117621927868889000848182660262669701965553539040381665980760075852425488173334290221023483820564597044294699646975805632702354316537650608643343408548232152302287041736123945726583414568101668263082741402293485746744707630774498226548291900844153459213186117504500257570109329479535927519630177821672260027040954834910453336019772904251209909289481003238732702789558806868641225080078742579720506699778714256928650409275670968197539180910073516090513725609498588281025942067688680736204755428339543743377783960320351001475628450208062265466154197617830855861193293332089639974082233350167999809578317718040807323432306631304553352827103640175101729530584369015690141626741452496004818992979554438475388237202546270809678363965375782999709234304238896625346578952550023447665203125718244424561418836679282575890379933520495894719610532121084700032523974656009076558990928867180261232194629776707235473300611786131041933009010914456541812255276167448188347339911992837617927259040518779895536328336206163654504577988875826383914947346827669045607513953209861546521298960425839612480228045272294053599564776515394562230615378766628409773863749261120739393978009754053449578533177956955427272322925164370919201260462817394869080809465172434085911202295169959868546237029839459133023621662509064785316744355897102873456476606831484379188515254387687760702818309193679495308116716831322458489596203776263710775030008321474899158793029534214812022200410520165380876334511345725958497081829629779287204026464584753880371520860818478900292038045401543831190383620663430924671223781964578762483545247936389105706809493794871189349681641695060854823350649333401000469826502151390312376508685865141196001105938672751419865508292099314618937780680381028384322039064059689883307112164550889693562757630446397812732931437240886961333998994472642087677512291612047763439460197358592093445294169337963625695934334936663778870057014067189551142425081723168669580267573208658053876252105039515129316117320951118120264831996346217704447745759320825668743019592081696146793471516166097565872538054491299623904536650843707762625890700426501993242734028955547875336974948653565790853760403045599416635971081623553538775509903557822203989936433551780233150325851338969436256827917570138102852417886425965332823009188246593741038200459729071945523971246984338312442652491841309892725284710896644789909157513890721345773719891153375463540592986161257713595455556360491345632721642321026408248443887346322291862935241669188164814830924436168504277002506342167752704072969557155623578886678274080866550539814154478975641300155727663448279972620810816913775668724088707595525437235801133006156599741183429414240670501535205959091465015651882919061866121131325773882326628043504100375903150877518255381109473103505655169147632636366700651988977229567391410888052367873924531903038005406474779155070745220134044256162958796073914853516830775425410462258991116365550161869736672449165914619699724848641112070818937705919289956401555524734929073467173039670252625215847085264099507752450792089711660813597604401788549381611704469290998535106576648699757923425235998616231306460408376497518830049592697632810915632123667273811707569545169380782911665967828579630872960399888229362328221949626191230853250275928482537870227069397772272926892177715290310348903563115810487928806166110062643412191690930428172419479564614503922715587951264826622763470185374673535938755116568883729893767816696497095430078503394745950581476204625729661174213104533923692034807668460828582002852041306241732428294556829928638876086548163509506932469861401802769986149997724005405761238338618152602753511890480497053608986203911907056480293388978273304252130893893806610172337181208515374127977903995116343610034682438572036591831493389760098295917743427830446516722869142826747251903636405771773869482489034312475198180257285211522652175272905476050960427693427590776663359806552107794813300724321021037768416979876469259217612521469445095975887649786419310045268624212321695454464196454439503633336298051030606697614100797104057598879570726370336730371965035314279987300610454801853203803408402352519786534262839026747186256084072407253596709131306149880063286723965219923023929025792420205148186111156287106394455840875650850029045977014167355188355728071919461018858955653344933452604948748134525646571106542071181982487293050933486482006936332909872044548463560466035474046685966364049284273165760904538580225171263361439721777274213581263095099962668809873029017747250118326786688201195397115810543581138156813351442044231658351429704182939544549561575891374366694419684060973614687036080644383953334445185654188053311398967675355453883599421695482373668286352670104139027746747860906193455460929763341920441943183543570517645117484086661502906671158408600725156360515668132079562660397502297666134542422249157060616350468568760808694895793566417410273503011091035535065595671318287611196622706343543871136989648462470147856329480920095239851230773164908432771663265972746942523127127505749765461482886205698025409198247170817937775931037135943313577976468122299776635819463500947339762939932611271238418877023070793128234666869324210983125387667207811450829161633933367850417391204201612562678933121648470355457599359790577565240443786209278969694253330253760937681591557009230948049317407664368958094785284767315877909418069787001445010401758906895695965254822945786280499143152374532281986693550400015664550915883813597068535110448034120756887512122750853773308992119633012301258846109708880993649075129355653568274135100141618518239200838778830056148276636494398037608163213003772443476078970061861232342218859295314134457767524897223720734108306690361675516755981954389638520651371237613628537331260279039531442951817527083825044918365785425716062351367844049907573226475867908024644837205710464531377856130367764080573824314844834505801381308726068979613452287385477838842263473461001081956679879785741843437958101081158962056391999640735441829614653204710162635642996521500915794371528359072051814190897288327838687622571583121644219029628254007100854957965526415134902775013445492255425671994673052429787958714022387051149656145063767260351768987590799431890271190459438159241263012505049855309739087582157320033698487810055855702798707618308534586846334071774310322281265137173238643114608187928259236330168911210778304475740589209470013923933643173173547985430334640726090863587210287791556383469006054276160673707019671728948214611740208899716806004966787689390393308334620416692674771781131309596205249834172096929038937636131522961600048315701475543933839615581945879331167192991707519685705110563616829865322318290635523834079988126246453798823941767395146154444508491789624294842411070369517776358742821654376429438650931864544822430232435401677824903935838962112603107183522970069568107137784372759093045338848014401022274125692448743921996478929066460852620049425156792177321130313346687352221295175697358592116451490701932288983216898718202563267543093394035432022748442975641179354564567994074919211754866139871284827461706204120689933559082436663420957101080043838405773030446147856303214343502850242420592732243077398851752026986779860255164731985335824197812668929305188372169485404633095104630253415295603764113357125019427297678351919257405258904970298262503234057829265076536949839881137996704434974412236918777208132221627231003734920422075018094335696346534710396774812379468669357428414075053626493334040587107103644251801200300255859654396597496060507044382019419134613071562073352979970194469119765142987092687662899511260582061425032152845788493056132952492564074040578832786582941999995040037919189341728714109019577191116975228790537673121814282374104339617090458059638236734212027122836563890142907015846285610699547268538519265565533478532193175141909898951278807653593391852941277105158648152885505653615792496833427364043381612016353564862799869182332328381967540125242753539264065667581324523960891334672169415613592432113871128017863564800977952613737670744482585965226784769965515389586891599486622433637648749866231859310125530987506501622346662637573708186779744621736590329664475916056956914867564972207960303723204811196269583885776333580878114953824488635339154531552630438687390084220038377840737022510146664644634833773724811730935095749635119055479712881690834404177534159335513278843737485104299377171022075105782581879527705358926141180995070902000795248355503045310617673526110882639638984534132962865612474307974420141697215996275921550292511730529043738472538140799440076833154668309551808592122144408196984887898556016131939936907038406938628436495727393253477894481753586690488605698084227371210750248613168122123576767642499919829537561730975457365008495491030058905773625190827427904607916823146604709126533551998254800975752323242551216334892463768662032872272099414446637588234918151046920477044813144926390226479343650606417794843890308549019529385464193222652537330117392705812532379969087116319476634845661252305189400739254685089662327439888976707592333205435741309983399368524824571845667597703081136815118283818980918721254520978859396807354694544390411181650195481174552566567039195516375643791669227477615349477455509891397200859044893934610600681966693805367837815883071132916930131738408787794469103418272046388565550401702076288181642928033220513012962570917029503210626687791149980182598430433530368518072478916655160654834206927993305456381598988934036672497996881482947233196374912138585114224112437683900896039718885409216153546454909237975723654560381888155177097265465966292565430980164239024776121026840153831390163940881016895143280963515364260015566028340527098489273874456859670908839844524687598416311854055916157735693585586064421066946319933476972551684976299725714149654709630537674289161387008924446376879856593158982571894373733865115760315071563214732774805846396554931093163651124777134915834643563671515591545557084732457131847042364310352205042246446638584149275457973308467286568598564595616778822522412634751604833885339905795937396963673849729137376982451914334763162391936178151670907418284738525729205999956334618685426467812213256875295809786931234945729581968724405259585548531873937618693045884263174311379383316564416826196600233340548857397669122953590244312070516002688973399594075337532382696122908611046991576694148452013385750681374387939890767626180067210182981361082097570457009196926905881541630882908089768648227412085514038752497337422028493321354059897502389339696855359786708491126668835833206321886680554287932197846427188316551841153577519740659631010157864295229245940393596171526503226997795827545963478277513093082250546684354173938268984355529863966456864578374289219564777621738740270863427519028133047651509232591537399889206041628739904490094584624029205100180161033238132156988496115454515092638492837842079833668470634694578411381775143174566210753404836287126841026067622238170037396039058317016054894475917725023091602366433562562175425543279812287670418304192739913121431880582256744985971314211146350442297001738386209897810924080719202557195286680501595939849534436220056094537768664113822783002852100117556556324077067989197672716035247721390864242494858981472892778223426869030914148207420982932158789429753298594438692288389212853926352168420553161640664073960554137347379895116559656311819461128462766074473752230322936082555362665925381770198846630369481605646401756103817334594496497199235397326117058727521353236844412640760173001377753831435204407541561071400943857544663097450533440304669847091207430634701205872274948446912471926946377032416077918783390356771087094064242127925657324692377700124116904970273445531012760285605935878962595934215574367983944223418363848217093871112678981740663888706965966419810635282587740151308766573499565649135946529730419982087660720493388396229447493886200512538439954785808019408513855740027626966827252548728199195132343765681587174561109077250404692191159915299686044805151908543296470549364958464116035323125071421045910938609992315197582981568415327674034361668664341235607803946637038880940955691823741415119773715569057193683156568802306736778579159245994934984202617639979348530876389226679308459573233901947885730895111037937420066107291390407474097324222590377604684884170256283099191937643204497626300208798536776642755484692220906855624569251730317563649071749160569774046112786990001734366891148630963360776717600771329969859311930229285517128051839208978355920938893630317937157519314515389485338196523539235557204448342656446472855250020906963201274808398700434272548401490306438011144642715665776582099137749861186035775349708144173628411488107614674376737870972627893649457866869559867290908200601821786763078647520112396973200938949508895518235124574105762699442838047385801722704486885128054277782408352326825177176494828751476369066317786368682943462922467735484251939099459002871986165242741362739284592023038589360224168060308973335032629021527146940808180957474157684584973488694193474072334896505613869703130635404019065641444908219746450420859368407276804307704858444399034700581309290668760519995109183068157727319668367300609876948069751059705404737701806266318130169239500484452652066097040693941255831808441467208006517449294434837541354448689781755306007934885290095078880072791369581343768405409931952856843909789744210002266197097100615574581817451044747379115821007781616968451290106462369543202174850505545832059010946769490383288142776060869264417924200617108518537631992565115454315786056392652445643330700722327820814199697187217799859901347922030917309734469758314244291051355840804030427313346336495044730644123923855451517286647043019977579276982468513938363855802700908972110415791789970490492350230962666699895110029747451866735742074452591428928044564057534406889112853123013549336153051972536011751121526152327017343692241012789845101239381439718766690881869177567129710066011636181215318546932840813271240805219394567868675375219935394210607244872218476002777959228877878099088658618751756026339355255196420042963366745973695437312904019439241078116638555372700158953040480312587200139469711956749725966784499194409974041314411376678474942886879814778710424553036679479330314106000123910235977004547085952818740490703491796439370650636757189597519767106168438784884148409099648388379279284233897446252874292708647193076501566308126154026623598072132701303503360535639930174132935120691902298249498198916859756925657572742256836683512688929190160684690316671902601414182073074838520417919515610489098932930755115672989929106248115291700427192855857523674687292219466204119374856482458117023896447290800915910171922482443208405543490991195191865205436829826799401222154793727546282198436855895108364595481946387400359482590672189513339599090639029488661444180947508150890504142381560736888625284793011840818866400581274793395805597520417539736557798859006881468437897837344248973843377705577061428900922224645132027773428729462675089417005642547926637675208795692239205670002648580340100531612980482868205584271649220492988335007514481892360599699318482876020345102818071201722720922409479327247722755269517891237429978252863869838489569006856415055102093771842902890274006934621271284579508399762376630463280385117203486686176854429169150237360797695621446547140318671512765439881914724675836075775681126550408842990293913122997753193963205025416641865157780721592147432223125035671340298948492567336700395103998140018875046501523338393997471829266018953628546502264420847297757286268467129841433098947947081359872847744859134234924009377433779650650846972989615755385424067510785324661977690548281717476698635207905356568507027402281276780703044253424303723577329978551964335960259927646670068796235371501689385472019113768719159508084366355132360784328215514608505030112035591825482654064760899671587085820876628728442462124915340955781001322633916846430679775480371357496246231122105081022081054947551178728604071577050109349920718098617446363581079311980035292814064960048010442292926761899866685293945358516834040950289388940866734696642026344099252734541558398841702576273392751622614688169870265590342840082988452260655214881689495271400006314070966325977807104616118471216458320991172768493200047627583299982528184972531187538533348505285068045782574738786112651405133521287990685481875170112432149281435635199963214219371226977608254864838171304754807471690480987554901510050731612360419778047554332209488511638443883819910298772366001085453910924741894477743281068718932639059186245439063252673728930791433195527029022592905023432476541393104883076496912205016573823988784141490777169379438156214843808283947671579349046885589467693811390710281431057464903031959800772964330781429669663565605953020365464481336097166712858612825461369048129293861620474132005671134347899578378282691837771395335630517257647976264965410825621482782138802201048570761666502512071301711687051028788176454206847591472434176792197388165242871346350889465647784442541818865262477412450022804845228050918540065348503416228100098767937881270252987976494066767442801036877327062512566191485875037571361140049301828755714295564291975624238769541927288298298827455341908475410345302934947533013102060634971468087552037061395374433378981117912675932361721062415519013272630389585093347558997790195933966334798066917055459768030679603282593867443884587372893240422685177804352572214675402759570728101011898346135829962442745208534896562801651224023078128342161387810668964945375133529927917251848684222353652156360222032212099088515469933175887604420840051486614199621283596296183142433850566613069709062852471975112428787692940008042477479441369654392979625590601980404231081677648579869144139312978632371957889673356794553572360833230451210310775460020915385143611103309108150488742739817565425570986297728826959584654420171763787463700890398724807480478787593581444769153724925165725484903728484041964855828142804969174089427710654200069531653440840460106528393123619042461908125992442822284802586368093042454402787249703242829733603308541059707827584674698052406928711172937362675543183587804086232452916736502961185337396958429415190348776379581436335515062409225936421447044477466580440694119250273274466801444273686343956566820407821624916247796934551980297950243996428369243265643893807287519855607487159812589905617500363164577905900997894393202513597180019844217283689879668701287328585842324913776092339803146478739704259016587907480505338132652270087313114045611945774917668629035966513339040906249598936761308236508326365417720256287568133787595726054349750835312194305002683577122459683320777404539326832837577487929764891007063022467898230778438483787467416891270399503245654565080691145678884828720621929754025365853114699054968739686283886082436597499593760930250317581471377901353341612874065796213701859283017944912257281224359613904590784511033249615879772946088391027100743066382730250620815458503795058676031988878810996131598503600690257759418107872658282574925195326479624798918037974946246383163862652314935008396924327320732356485999979692289356076871890073388944446915006140456885373184487183889608792959788338856271644246954063351739629555099703442689473505751115916978380894134206314374708282494657293210342380708089199672070440838096764341961180967247810726240139545252216169524850720506137349947632830485453759077618859749709666900277402605246177704231478552828794709789347648949508711015147118637525301671771384591300073513000527323654073177899278536022322328355781614522484254062724788192833723675695966309840705551009944959389256285012957411548938541870671305956791363049017664758815574560407741919984938908964087338861272759344345104344640644803352795376163663184678851156139239570103551543705436574509114292337002971403080849967214188508789652647197723471337878031658010452199427093894953042353081162299302515655848742297769712852188180507360936241033725907386356850532631851711820352154441334360096467589612537700005683471107801893443981925462473821330880219891876877756089775793737906184613610703505514262687079737144452289029693370395085549785009347273314991141492479239465407325407160604622704770091820466696782562104114580833607933203437554377044943825276891367793464409327559583435659361914361737870889210858192377256323576709960700109787272428901646686572217730098564056996030149369786219159660971319709170174760568840568286153052007229316794801217319934677118771926705441772791721054032685630189656808606683914408036087719843676258181073383797059609752031849757634230451039676498332354274131804056240885118780811537597274704448328373442774873393743101080531782683057967198946285045900729238283218931655876104933336187462716391763890629595549583258700703538170827113760673478048311419041977684902454808867093601005085298370533827208896088328767467399832976066425136616795353088466635971989013529409552251247024698238767993037379072723445052684678353670841541377881231468533129314823076868043779364274704451357707121931074715029365561672309539761894225683313088682459671803295469043240696030968773629677534387583935547292901291881028618278422055603146770935803228694220650132954979535218296593008002485793041810203939251502247305697742312969128119228122987610391320919595306373616210102040888723316756224376734945472282758542412302080402252998133716916275992874475223053645215059766616246205825204820392806977814657674771112814566242064992810483072331463371409439472362058956115281972284831457535572249859740916395049506760413862690645824156425402070514426363693523658844975867240343790885070067845888142594350723330965135425935076759673451285060328570729977358448429804867284356467222194414500289253534005268792927169310798212705834046750407114566934144954295437045467237365732765585650028963637393321274863135499913289004404540974540222726573163935034526365176876722938160021413512487663915689181911909537394371724425029949800152691963465405760077716635640416413566497366331880763490550188908321816052892568307755707394720778670077092000036948961178878648778401926503329895344018768796911277690893679443209190359523044604960940830940660950776222034397299776237772388983674295091509757442744865335447905358569797444394531557818218958583835492547587274339338736789401914733284915022881620981609922935210153488188132531044108730199549994428555331134986843354376064795602310423217435333460070052616374123927591374328803872906426387564278378319856477201802514497723189231024327288644072959534956670925392146042959235755747267734161641266897637633834294273303049324800309706322323029901487900586467669179767535728296174573441754911165279278145405799880928988233241857895550031165440477096498702873907850397662706950979958253049404710166522978200218143849189132830722516129538700926134494685123397626251783326782493371180385116550775209958010450439045583387391380989138607441256021977050360646746751407889632157269093683719057587731235967602319995779671151430264366692872993299581972653818600707998149565269244464221887631670966740786250457189198113586744005937660283748916752540078649355749779767203167440775630022485183155428369255896321329207231724399547639376998483315913368239514487603770068046599345888570631147706455633306746465306349869212723550097409736178462930470593434157899262304961392438151864908472622854111144603714923764677759242805655447422886883913886192542818519497178747187765096376444788839017323499883427800511864440560783506759342713436272079150690786722272048234250159100036208159464740446543405169438384769021978328388387014310226666074932215474102233490951599947253926053408240680982053370614000097692919389398136977161707879592317089291720360561094842550981558037488202758758585759204144171904068546971324064475425363260672449227474626693232542123009210131204473048638851674669459322588350452099445373334523363420267528662060687592057238086560610470834301795670484213771841292026004396948098664188688509237999897540031507654097606199785880405650903352729318258174166356496083887065215549835768400828969079819620968581538762983887038989842109876837006503477471789081899217999589243057763422441621311524806862861888157852164212206235794462898533669568213563141775333706328035791807308402064500881442109831775917172692177515162569793082726875155778827484069207337271470458331776477467321215837735071873566457385062887966130640504914932388499864318718206703835425672587798437769554565117210318317641825588077576623057859842726700566210134953584348212926762137413239841353495845605858316542228301759640829233322318254384260634156641969254337673720466610946207816617087944588121437838801578368950230240503638308232866584133656825718785600371780274805502314065665562836353819945383980074039756050253536285684349045932702157673448402025292835706774109460940350886160105879053145242934544968873128042275622059301953791084086118859665236044134992238900263673492410596426107178426727924957539520040034051058733034549953375451186096562323430868281487978147503275394212937648916717538354774725916242329059141792951675258063219646002107294099682925074773584274633924727234707766273927680636629751947893350995867498682613135478160044050586298256255924935170070461885429112852427187283985504745976484030350408824289000563813867127948688863975243342685290678896033981033695498978333802425195509925212020164263981858289507149520522699377510729289023513452860217760586747422141580156722591443616605753066209166135949650469222107298990770482193417145405261400004911213931671328437589927455188371517766118382895623647255039458728275832617400533418018560267817179322284673272497370578371474804310066239352696860574717026486946768311445710666324380690900120395025157057751875744100997267333402524759966516085059228287774576274889497022929047832831058334053592479942574691467349855894679147329534426914018447249685855939457201694979389711445824876249158057619103893266313147364459497888369541109777472851423307937143022511562274317868329984066006711455493317707795367882403631952417774428217651902091726115844678320561753308295806246818355307699149795179938141931428790918392278096361473576804651581246133962655803646499437795416790904564627056132126839237209807735407984241887717820905186798594761095240671986577306213741688626897276413772160975177999584392389384461777562969196897251147115726404803436599552608951800588759193045241816897107170191024447537502436102710104932269107171723237624649267853707339255812372471474666035452577709242069488158847353566152287403355865683556351711304299237099598927170496906915326410260555312945608628259344924910646625547408623548526515191772368513376306804267727154805754564660636525929739513071382037417578158266518661013797901347311673594085308232773792675590283931121168648961151151437123752957375682267274576099739912899526816147314298915522959261420001685067642294393485315499154435441508615106785881711430631702881057589701867437210137568861586932840774732765919327636598326373930854648663432914894551062101512647682112694790903021103924330215135183497396176157368054175240554717213421895060865554550618230171498421371586324355620979395818676436339095732502121887397877673341049104746562016656183780423538706862802577415391882767991057841752300008473363239854464644384864453774440248543269196331270452987602369172184349785682539245156006103044616164454337179604057896195920188490129477762574372955265195526300886445060098923763339064592209942951608783276756985354028709020312409767864606513595464383307264395054429687713215537846994970072181658444996021259956658878524189467650923783599109658001543024807244054618411665676427246052338466631507225992237726620002952891825486274319228709761236538609226022348164800562355467790872712321333395341451086441802412917805396120578288426449637620699165405399440667153363699988313692130706514679798635522526178298980370765071524122686143193044596487117875171007520076508722108950894233787390078282703525902496449645155153378292671253451515090347985545631223576513671286731051381431752705058166370710518085385372008284552005053481501683236478561384033672173888818728595175146450018821780137850349554312862263210830015315340923778800309333707105046004830348055955390175856165777478669751716110246418910930211080013639088290479948640298770712944133818083502269416558482607099177091958732660550115873632783483084685799089337775361978352865298552801657455733341563713098714406117169387453126079911791639573010492510195243327486001174067252501242605968934147885231551417430148625427326841737426958424322952843083350867262496087027370603656197010459210657132801345789712014037362685109869285206337567956866914839923337553634303240319114429666207707005419381929069719671411917692304384013158317295568245275460201715947345482266377536091398335158099088435070849408125187212628132653481601066159914603122356473721552576850002677208650418082474411976163649496585938340630838214756986083378874144235016845908696227501709379321663948963517178287788749360250387289124007283419870285765043108893699464664065852387309177049940971463114050540294604532746840204240443537233482431767466782315811021604244315471724749094999065625950667262948661508410211702473155438834046817836053303871125362638806794301173178424382186374796983720940607781258120857444059416848098924311971726354759883154407553518124762778093393257199587368337544319644286603528785114959811936603202556557880452127368380517303924847915833993776539362954225485089074356948854029734731942215107975445845316451109371944515769980172006546584102295514907022809299293683077250378183310291432433781442721007991956928780689332335846129584058263648724559777297090367791122819074656936544805993833988661491886161347295822933594875182229437810110035325414048641976165320806106499724757864697759758942826157859849308890766352700930807955234208249889271666293358551863199319655239657604762176675867424372179722338726065656784756547541724452238222842047042506125592145684922657065885725319835714486235552475883601954073459145631210396706456762124521862384687381287815253800790659797256740836449823401728706800629610276864703758956272397038650903799980407920359196149037834093343955921465969055317850769929903331574181894413791575860203083373071260495341281576674612333142948060918968540126932248715907480775079906154804524144165685332718089763363751680960677006246066680763291771035347009380768773233218216300219324631403297213481400385662225193407919074252063032044774062688692127345480822759054857608898722978559151049718464599870200952840848617298812573502007277805034957059194725500901949755403064890692012640805759947415005759784533152280764109308278182523298782209232974887526475458763211246073142652533515765069024395352790148779798664899501062995948394364625432703338775974194360293144279555225701518690904035107330187627110638977725696318213836255787502656687256422442699297462044475584235783284108854727178522573275108835905861120497650594721159003245144201313436288256364819637211666590695098684540363123334751620456304728741387881379896521280569398794975762394449672150370948175418259739502674831216604981872374446676895155664418075529524262835542531969549582723886462108993973901008040231545229576568742647243655266732367937408795752990262949731426070029973297112691508855324908246754618233702347294215561609076959937785781224072641774768957155914142068856604205320217479018001865871577090965523088589270679952574232150354576057065272769337640721071641311636148613074709910395412876597683878676392128941405691341929724826983621563640866025685175042720039259329441906392265578745881012810311695194030316180921775582749970955592522309905074119455133863505943436548230856117889342472782196442511476116562505902448469861678729239056459327549654754895945634566750936210267115894616174305211156239922932594840689685699183610073396849600989857156253470661953277908140505537714501943634051480854522778320183986700752941084802479270894465035489099264241150601835536771187808708799953480206560453383712418338636161844324515841701962257668921437437514508166026029221500481586894815965573734051086981504875229219187622392927970256060737219185351359426339908404047487481914959211378802744756740772500031417823836476593199268265154996713841469706517495053597017702517030843377375458334126957752751398248326259835894081311891432345326774312059628928351990607961126617701726055634831693484837202040845599519631535856691173849047162226167218900463112416994483793167560658951955718565105012539630116711751852884289910469071270998503889790633414401359749133672813198142508285927328270162535028836121186576877346530323567281369051013600439243972942796141326160524087851987158505231705479294962111214616574407370050796367906272792907918976714440317345067983165593190116699485206050584266237201195361533574817528972073710757426769030389800720819909045578141425924903972721928703951733176962876976547926655715319201719492576375488591863630846681660256008942858808895299384172989195949666279163898923864690689152232379456801490353119976177698934523479564943301806778085676612295112908054174235401304691091874158700663466777291196025217592486376081013472265336575035281862279306888520758869628464720243765314325326191322352548495008370275876584318408999332230273319657755208825180565852202995793705637827934439277290513254158936383015583122673048917166335160360599303349156164207487537055042067001771450600451107713291890053771441494869464132546007946045732977585346682012740991332895819026309825706291498997091809234377272282623733825014648716964568210803603719074205647281656309591053063303875489068065646023946115661192464144581811912675365857848384737010482683396400118857912909032490556419438688322234498110176326372019614103850187580582679571918749458935002066480114801300471972509799746470190178619972862565367187814957261628491313953666325914046787175852026905040101354696326236353772536044791308598160923958344372898013752416392227654122602930820942291443588787575124764668129665183959458967115720332688786568200709010562348744247870042886470837641432817620838699879334209653580970225738040835917778062828899970361439049126672861369805937118491180089609041588325264364665728328143869093136407009403977212571437639204958167272251109831662983786208392431395156263559675083939101961774158939850425855086907338765907268673230792500282258803763958517556389310845178951164732353501503108765216785139157436174123097463965141232356309866034518859539909050603714491161272972607694837408770222246979937047919008253456530231137479810943126798062476291902849557980522338471527102963795289190561416994803092263239069397139296018868401313008369924805830260511915701902708643925672430257570383556687089653710500044961672851950421390438360649387953046069113094071479116261685977241164409029619091863220429030029159055993942159902722889292759255545527608470009701624050845407698606637981508822830185699112137985280226766083644679334306304891081029906495946405630383681223828847119157046430550743535222825336299133681439827133647697139046987841181731843099096687955826148605812126319881805527324529590719046238661669565875627322328965838836386703629105136751857409536798624475337670020660188944487304336300331885492955686608889694581042186927049358391995835181336575983302901923169208367448547630770284226222993786829104774239292530600762579774894299362711535486920572014151717587955277794331656627175194434709977914159814311455228502119359139880858577146676187831931929525737410345467062385445724325275112719198456833415171015382083963056757453048137441776020319064967028169542760314791324974265362549314815058962483220855476521006864393073099154762737492704580210180458617920263751324749915933999915158892906524036012085696296669385752049626867855906623011292565337433178528662681720385044703574704660008924753244588502659814033681822843324166961539264710325429609188810544608287430534249903628412864830110114479298828728933264670108887772915692848376429491986314817658259785989136593304821052317975960742198099783880383512631716676883931591162742593218050995596499448720195404283845344106952872442643643065224647365265520404733019776755868029827297539250929693213466260877246653847590223510320908292403313103441430318790877057615402943105562749471032637582562641185344549882397174693259309586744406164246969075319391936587149665057203352782631370474911567114085571024058595272266727347673688584365997219470301752411275446787489831659848525739377781104360241362443944148463844071064068500317394556508552420953178489671608318378599262347153318219725245318444779722047296784060602961832784937441890222990745625802443534452580753113667425546929212714327099662442306362104900839832173497803920715386949124172447471687688828376473982837895802233380926887198765986325997383638084207714209579629141408366762784360558048307532988870574281205381586578865601441603724799084220583286259001051883913444629442527824463862913452019767303918117738119611650950183964036390130991470452141764851073070815551926563926869058840593540464556793471802134905926732160626192559242651391369067680661442642115861300345017825420055128912406095946384628136115559776916949141531392432560979438349367623862524218393238204832910696392240621057239949829361737453524870030167431141705335407895031914177632248155313401526136185976055350881442835041857409928590767338746345794585756913497611091567043242035260377661906322073703686629833906738489634901129539846575359938625046987193456602156220839823542270271211625425587265392294775415887060266200287126188574467626852484333130258501065742670163641587197812173027665099127690188593292336056606714790000479337186209488289661361803451758448519268986424346892840306670298057847876871586310295615706262847293128805150439935218671142078772914585643967474552856635641091565046472390651335430229636233651504702520884612461628013073073632420859255370735963040617784054533250817971625490014012118400738570768373436942036169054461529529202831193313473460372999092439258401390057472668997504418850490104498261294494273450706955899505661029269625584162220471287489564479639925387147538552273569962337466695997959389240695206110134177433598881121831412554671369757457801199637154935000991147265305577984009635884654328282017453837231144633818327280447630086271656546026247518658270640928551232481708597722518763588931979947113990661350094444901143681049949843757682444492703895869962510148614229120807149515548489126835721925861443094443513505173599234489790154695344801651576767705588974160623718996017535548954934627316428014109865196149666186723018346217412355222597671559269820633090714582668050617198565458208751501724479712538049950226946232398989767791547841272412224733996914782246953298637061962906713098035779351592558652880728446637489939888281139430269305654855055872277331897111085666752840081862988011086021735644020805467959470313093069126495938896000165470387803839974765474658403006385003557034071903753734082864909474785889585175127625650995207330145140863960552509610664232369565831716403950018237054056575702227957534304652370394406932482375057223444997808416136149297296640415969380843859080197956663453649581356527504501104379136975500951769741941457586666950754721848360872720388328707038329022160889996528345972145982283288674032046138730927274336846958994702363819263619049607131458713208117276390231878432527093396003927881937869383450770143283108053992428843714528326707929208164702841847941841606816136456532462895364967104095232443629811843878590421295647493321643702115082433279335793292064969913232066210584627574653802317093235073282299522154059522907074134012466954102306043933436616007712317088700128121921230682588871369807056718774683085258621665760973358971720227527968499782797080432912325153706908148631348227157246511337036361514778721631816063769009412595303860820691805997326442034931197729603625861897840451469009172545635037656881104817361571533564043378325544013606771179582161979063285884155993518576101735871728011098686553640322770946283364289689883443591809995228796677026014342046691212507732106114209219153816406454738375112481400042741991279927732832922314664316419183262035683727171647383032708298458844138329938122760451744083586848522011185176806741975554263832153687702978435937942981580814665719413758136289564518991349716895234411852750040612438443799136964939590710200275184527552241058912851229178612516494874332129296710771672754002346312295625422343304621584099027971507049470447231359165870437061922350889261809618031129454319463951421975682642759402323312179521092954685725286533172289522641921730505131227182926106718030630243154008726963569802702389146923040560968925396144055848500787653625606668978866425121347364109570256213758054002429540592570290145388994426709794488678967440438892137657795031700026371564962730767957837661830019542741529212120935792563611856367943876206965210376213326279082383661434800597754987936848439781026851887014401440744226705993702375432503611809630544739244728957352630263517289243613700690928365391770818186923327538383862381895419348604964281705618908085517597449750734706680809249371931993317645675904030567092059055618080397590749598359010115652026494805907989133182733967965399153199837674372036710981525218495225891745479308036301046347212572411492258347899284018085127772688627190774601283669298174630150551610821817347984899723297937741132428613683161145161892131653654475503129074181785926046508323347033786776918830399756899942861815508322584898581574509563181016400968233135903385768516018813158571604090675424497237410123091785132169617376914407946507444523909855262456287861652570728626362772274176174602345327123291514495134690234821840403014547071294009571487323738164535524636908872525736734855953007624180618819699424696475610990603347235558952309786919241987219465378235083496292321275638128702811024652573370740933869219184322209186841407177781400401904910652260201158919232112933878187659974997293119265764711477106956472458025056255386739182681152001861689642109591717188716293907015974584934748941682275290755478635060674575446093070564085844244958749126413285038749179803314060087311078626849894538622020564312236385948322763171470028355222033616567240485448145000206889925467845229965559182972393906531407659174652595449831505075895102100681939646205683074714013200550722997276842866471827444374104233683626788926730040400697346373835832847442880165881214176263033960030995045387934794086119286389000361086150572347839674953776039045496642216128130257580426169603520199764781718966775839789439467325410656404370425316798880629094429779209954132024575439777243116177599097301060447246801220094996719737063335993256422294667289366736355406163226942322987565564600630610352107651366068757078681466868931548835423206342041914574988953224054877530005344825001124513031671018053645959708150140692816795946737507368912064074746092611281363015941649635136241012447045111922425744513821844234565192047553442369469737372250134456407164541326627793620134933442273709887242143965108219693612080611759628057360519260637992705200123310946712376244451592547955143583023642116873508441908250450353620131946876738622339810027702438290310419030105678040116793057706458618783399622780484663573807017081595030758837136613720170790217993564644396278976761187010093514064176918687754772591132448831196599192412516168928554225444253882374201789244247610350382807413790306828139027186601776553483842960796289677013659260810002630278441834927067283901185994615943458561043793345019567374580824869682258743259441205751558563113318393697408057500308912954739726013552416146687824871133930233160558814453925291154307128777751923196137825917758609259940029811278822318818701147373375137398006802219260340898113899267685478438309525630804780418770477429735610594927997652141565682318583570455271429481983272000644987361983806088523385404287315228735470187670335407536555421457661707648141834803915302957510217392429206094595388053073522476272496856445652494479420200914518790390762827963014778175764763445991530474041471589922316382495743410077177090148085091975190508512236307764829690164791512946409806097382639867552523324275697803919913193596097270142196294739766734202315330957280699138712975041399858086821136653694151322232214061098849428465578879006710982166825081460209105201262491896034109839439980823370059490738644637777478522844379763864210135614932281099903406766033309059890835764838131517444337397395011898589492069029501171780407201778994021767524358102284403155755599960912550544218607683426254991327665594406172858029611627589641100811242345707318468193083796858165311069401332459202334125630745908384230332784857672258127328871389598801666523716872242498115668112713930669769188727094398789426086150171875329425011102371085290264200459958017397854168385793546487465737316939302877119936893473375602798011430280706725608291335869949415419803931981704720123009646711322684043475351167200630411146001009297388610445136332309031707910183673154826975543798500286618548148547687926578260384492381041043787350925471223542024181464199231434222085358443185585624159199303294598367833458791397158127822926568040749660952017219730865053463458848839903802901553195445517235781513635802350758011286591040606764630426110366847810283937833945610368343790138440600723797952194925974466757456474701318796952710638169589874113311313978641292466449461477141176048616527765902330226768396920562519022707528271607928083132533979141776481405134246535426164889639309067556332883496481195453768699889432185986535489224473214664522784002031884858742873501969140721635042959214036892588472525746943764094699880259679414227226161847567126785695969229910455821982123503377935224131436417380421553007691807740419263899591519843585333612529418398049293020746375128943238101940662908580538798789665682866309889253198957738816138769629083218447584849022023156957617431306635954391501655740093065372864156070956205383266731688221135589541843756502206184210929283427993902148460697703068068968969527554113607862996529768054944800290135712843884411061674068195777866239188791776246569524990057405612504057432959531377146280118066214559578388009379298708429471029699324936534582355184844324469421371944910249782544024850422389095838468817414170258014578970901497775380886309967261948099203473300378728218485733062804499036439341306356699206713688952593726482900369754251239621969959924297179352974520925967365577320415809586661824505875557017207043336336701831226564847826894044572693768089051934903754509717839415667737815305098139996173280578652029582177006094473545319926442714131003696394288339157552469107586376473576301021947589729670893260977602991354879560742559966131856969945559338290521285234494657403166535804763629848696330215148769636892958419439821999333888960799133778412263633118239190878272332651156339405650587850283339896772007354971696736344237531269943198457574614629425686174366352053417173285448718973283717103986574752798064386247981696528568888620702300531161565256228760677721152030311745256880897604176300338322001627251866829443377107598140820104233059255932550787839112570538201196084011392913498582175617048489865717292634174395198435805679686298990697813201104288806418512229503805307377969773989377183534551096630240158407306434499188029272254349306847730480099760588553016738350941142886077665673535997550083638057367385832933359008810383320782264208223903432212245864495289507942974600096557497362319720311282878763350140903899105548005353929387423519646310555512284317302768511581965257770652493806310837777156081990312279791248503097941466139909098053025260299213170316303027899192486858088513380214327165986498276195569499178529332332508347768707439465505789980710908183311737374525853889398266809327143480634983121298710266516074162514420160704762416332994164525954070763780439651566485844830953743306146584761135360660867512847274244090906656195563570404940444163083464521573096596555307539705131945532480976178317161049388902037493370443636355677284602678552403143085075555987925714856946039867661714865186572774435398055967109511087940648424963733212547736099794108066687207044649081878084781574081150542659702017083286058445182679485916902990270667757557424344504689474122683383723707294257340321675876382257557041579009923278927492006988101803297207193729407455089942260324326356289300231920833197830447010283993494177719707579612098924893330453599749834934892052396396846800435333438269367904897285076903035233864077114225084830862376841809216315750899756777062911041250600383073984433776576072860456826808435960380103037921597056028845368310933080756279217422818879710924593090565896299674222241988053653501571605500752140796871539568729305237284816238971627953654633987215571058906434481380026993000471863934642691080574787214925649284389383212487493041564382856250687479392832957207816609154603236971750005352349363254339463183136078937121851660115315057222814247597419094793878981666573349567252579370836456841860464092120817961903168989221781007238651237524391509756844273325624043365501823072767601211680895521582228330165503601753323004710640074185438333132380062408755706103115871860485229659695537442882387793259003437652867040198323753025288127510763045182234740273703877502249825529161987865132983568145584170876463923097628161068809635599451135938630496450923465650280677296064618374484315372674776225668951617871135875994293069865514279571001554014382025402393079052840827563283036109543195837917421160398761641050280579571890971673786437585651248886730300722066158033359491639055004058444785027379719039865865232957543147418178769554277370960050149079215584373060548076223069435939395985163220979645092339530694752816962834358796958584190706410845014905560085056811826091530760521934533911836361085854289771010218226593450806499884730233910345582665500132384252567934895366601643032705975211208734845603709474021731338366910970199969837542291734144005052308073659184091501418204886672322203541168518277703656932731392081639835015725845491546297162816832790244522361611693534987917392096002379633504914841489772567152463646142815440463915456572651221428967787217000367869571027795184947836335640144941073873415911827069257222563371142034245014568667162681828064924771198961992090138271118272284954590011833942928078995196407313130244675920364211470205810277165726332152385827753561116276019655902636662396650899872467235623364439265349091532779339508879125028733547189990832897747110900368581750939202359634943121072325347531252282058888370290517805070525807068295786476786733209196124474384777752556222738741905757273887389319581315996813972589195378931851077552074190162057053089815096980142834227317788834323904051017973154537258577977112851157605809708322468885045385036434641181520030856171753439924368705844652141159900896485150177505300581015290533687028100821181789774114169857963050729690183390347279343783749161613434197331888965036303757539098927236026944309784215948448416574378027942078425417613701123516751157085667339959595867782491632852786421314476237447063417423015159771421741576255926143666009249251000396148948811915900518789385207406092887117964211236125575264868589263619590913085982531070292500790746917690575514028254222095190430159277841724873491401124677186238293969245210706625139741081543670735234051470191554337000511264233587667476408806984388560408289624037006594756296196430946497556575319647077766008530888885193292116938097412016308535289882229241260250385291576539565711739962185829228713814071092696520470251329573852685652669302947909965621695463584363768257625103427359797669998363289709346559596284672339370632843010248289911452698576718220455677799299856045212854243293726670870483385798624893980263436765401283248915400774177271665400102870008040349442759151994689450876940725326926772459726384169907978578660045431307338399813072844104870707839715517277249896411768750768830431036178714344779352683046002284054448965081260522512084831918602015568344153087332772580777017817243308019829847479176148948290815134045706985989443936414273411128199765993658085952076521812566897613417335599633538352240778455479315945084225549649327471892974884548643128657393307032577249130243797245185575477466461987151219109291507783075810276288816891307649447773352761136355629834800401953428426983200678316964726990411046678873545970980996273873768580610221637180528934894469232222814345551777131116537265257821696186556404892677215765915165958793839460485161279953149652605173656475827404131531753254354282365893697164799301069274651033183097618233902225358467212953614098128182207153085804031623294772097863697248737085435315284952516010462970637666500255351434365313096110333623502878432424352179912492097941182292136556307728438573184469416767072071934123612056905649195881008223263973414593512726795023636281787676616201116181599344733990470216436826902443913458913112849850649509314896078178564911272394598526496080138848919634436671751973481010970388863593512098271785367067627474871133550247966470045213882501621238962119599558523410672242159338720659580795610670328367980707778499427956637058737679253878788007360092606234999457829628556743381906741729207947790194660252669856778810984262978219931447920628968870739242748042515960444945004169650235557346284867095025596934890451276276659133246639019945826948292313466837229608210903552266136749970371294875219572401139192407353204082619130020285733270196082783485710297319056659483947065572872809092801061451970360671063376558449693712879079807126773128028267575236521065756834948852185762693226517397512550606136279354289748393901847796231808111417881694720362173865155123846861015676217288765072845747962191467338000499074093028781273947786997613492074769634045536784621599134384353363613340826147116309871406411131659868847254404642005081681591374027826446993332461903026042153185844541520173585453155874359450201801231503067350906820045459751008843435479822877656341439684002637569367811228459348204123771190621181739229131045702814870213864791860259537004070199910664319256253326157389352822664004583514641414218067691332195092269357852655165516874077547328364547712249070774705905761580498196243420682984432603793698601387419728076137737418618069223436050271018446102527819181382022386519997130045952276229269792233286201975291716746076424207524878521343876915244242840121649641314524195748625921076769085511361457000756128190342967934591210369175889052661629345824771494452751437069587943013922459068580648819045518623784520417761637223307696883625416433951514445756680374399910301941415095559371691719651283890368823563593917241931594073538877607099107169659970362046920636240804668815623574169252584078717917911696404390343171701251093081878827041215458796827837278383737868498141295421024770610232284345405390593794311834759657450500971986889954136540057060275907671131476131917788815390434012302801229582810173093527669141146282042582937215948931467034913173642322704708003356878874170911784054532123762515887048412290771392102116036482815658904406472320993838102817602398389621194055466731077592311275993703022265777679532918906175892802413271819352341370872106233834976091951091053480070271577204361748274758426400433976506563660022566172423999712689709599296985444288121801491329210670215916033172284459400074216995197889631885540310500200585444674694901477080995665972375385081284904179936751886414327297095096721312041396108084382229765841631284107390858629374699175771845238529304483649821782639221715745917830070498763846436413755028043971804213465101716878088228857257540169897328010267446410672788471177597053159490560681306483996389048848619760484001228841522616777171746709390208299214271637485478088194431971857486971701647800031438472908867797355619361206270459393748215654835087478961587483709545701681606859529115333673595168499150196420301039532101067114954883458502728853914951936242251155823471344652816673227812515338336080026952733965271758335682166083170847995201481327814588441376000280258776168922164090914472388183358620310300480132155183038317362755365485402402729114421491819212796791780477148172289257159709612783168648832368871499917093654731808469312389407174366101119319633341448038092113473026913623401619921577625673356770264419516425563075433662322819674878377048756975813617881828949142322494811299875126035364410753246890417729004991072887994680526226177144870212605110795787024925395539178284722136216179947098332729023801964134989533325134440462559386880883749385502588914404245283265133806450145105954559290313683126836571048222105535642257985872067023616009418103934313652840096379750436690736959403909283124706508324261475071588645452999699591531645752928546530831124144175391536655021462479299940359020679889146462397842647820919709671133099229502597377369864868830762084105885169021725463168733094657996148441075623778965509194682561730962017850312392325453514818774675409343807966873676538811243253471283397266205535868176937133222775298407049856452174853303180927063166893415692987238805034304050257884041819745747477377282627492513393493864352881506199949842507255450383514192411229732785830448993025169111693203358341033099860771400878292464208974257263294237935432551889002084593020804478340791962218462259362806868663315271966430814328342751037184015484401712337992637222326339116978835116533049364992995561863642898849405428745820346625709816990742329044662414710308354703039763497521791083124591491908676174092488593472216793835524714324285658152991996153505578544627072009362593364751409432579275943471180477146903834092460736064179075365643217170006897689669578721289803645834890603649997451253356752174673761953744907676788589236058902059482555618597358861566333024120757722507719679873208366360758489335842399596108672680743200206239162334062003984879924934978976685143680904200252144982261748773416613796543800038009790489537748602722037234974846369719970735353332075069124875912787730112141013785329751890066187326696999528681234043445119665459857783963676213459020594221623504831329047545891353478365937403993869902336704042833036667049830174621462189496922955656137863115996131645720299694600377992219397866333655793595920887675217905243173059473870232396231051878172625529726094440491500551324527273620367913160336413496601681901848122956847624350553643798718425089884753196417356006288158028686699133803522711989857068467795633675642005420023740129538016764538239674523662422235312347197964033995561398861792503059329830852630758672375515833206891546755651890862057879956670283681038114254852866188755787585644102318309608659558491875326953600377477771222079148554508026398986766079021666712472478183056334562832301537053590801960296300360089546320843938827227866872829434758332862181073667538292450102660672141730729372584128894706285866030817468217285519870359838230911082240915721730226669379284968389373802966807485200082706545531174911155986236325455919713285937916252840581471663530307189343649938943450316902118086096349197334563794552241939228493605764447539348335062931497129261413165064807422240734137800916209617746614131700601130077869231768890968580720954585606328481363888335510725171769598751923706128324145694654058534514830613152350292263212971387841511204658213270185453713496143379884506590435986109951088660330994851200136389658217885090719375458091912826821473657749013672174164853161946603624502404839014778225590635527774068150714396149248648966442009566213421249199457876679545690967676626492096698582510176235884670161528087909296721242589214068681313691257974717959174844093027213570105282934229384276403983024863948470777221785659581824979072812051660506013537524638101559179280890621479041105286584145754427017942873608780921640998451421790988639783258493350920988996984334928791059010227855798529655485051633969320223693195063105549743151044836201324736570182781800859519856984920660591146620536873510437897996767014105484104736845612692162243800357971889340210576771629998063294253384416958739157094408150033501512375907471925538713475250375931111641325102279412672668788185151331081692592880780657239365867168071855541934767292294766667418173705168347603970935697103684404222816108537002566576933166793258521080064661948624653686402030440239693540681746088342902693346998835645658495202247341660664473437171869779659840475264936936056763288508815558293430557202300702550020270554435930563849019798538315002629091778523122095859543457795035519585142990114074249955784126985696964088596844789398767101123019030625757122382522253339071726518984736913268723330068518913718384980379328291099936145217910781711570875403873256769857461717340062925313222502854169897059595434531654022450838501108903860317566337296423034867959946927009468858041821203617070194725709568614822357211225383475178883243771502918376346669747175567265861026861007840521506985165241069362127098489876278693477300854293299658961609154419192340629763896794314165519172985522485344161351098971446278184755200143059224035238234278071574590595682299069786311983215431793689893224721973488847311808903876760527177294982337390712310834526841051596047465039894594560234461510937251591819917240812036667752415585704725529888265985002165752569626414991818877649968628584791167193777762688789349739730855209936032582520950877939058387004737712997552725906789978837338956344017682418337662392868450274689918720149396158317178976715193194636221463037956224362453590264814412969389838729479716943759313916226814618015936128197676660765662478721107019970912861641185341200219758919506447002562369962279929128266765290389450703773801746656895764362826951117766518208997846163404863636888009018103699346270878513333098495618431926439445738319081871886282917218690765472653930560354981976884102508893584454550633046857135164092474510596099497247753973473988530090221640610722606703970073714187606611582181388713283809576931760977512652350500920250337500617718487224188047395885914662166050592735958798011602717081934230167264059512097177553046637753271185911652936111918262626550934423597855065749258252170567317260346303070487678503437339185109586582284646530531596122964693528786212084339078066005453905662799955558307015539488269146205759466613529649034654979309634153716946368306105399271774829818768121689529778619842722257059311651263927015670882254027441185896322946316751916547930754327598732261014877122427340033795330252062733069720419024717950816930715269595986738589629287946985707242981526252604478032819251999801283113877460857933241121116756527271824668358167029821758163839620924377789208517529105671138505797586036063825849767259994074137332564174531411000423012383680143308542699368161017020540076698441976696602882378856827834581085299913770982157753999184837351764931041706255579042514287563863612314973813570894732505799464720089930556371580739134104438810905848180066020814529586781544654858643433238362374295161613257862651243710855399038184578302980384117099919535250801938437593152584606539910125172594708253670023173208205655427170483488796045183063455997704766915302856539129561805336686239044021426465834940053782461729264848945778667935441624098606109937590936190726928123743317996284385836593055872001271340889308761551561917670240190798446142493767281852602083711247645642111098970145229621663646121647271995369427164859554311239285094123691554898100866740682777328418831734676897611368164516191282390322760787925780358220933797837020854002984628415520463598627438036407950403389595633475529516708757291368795095985144867738441650127407506636896765975205582173091550649640206071172308049062566344554491435541697242624509930077600725112247827878949461850424947731872488668479916684712461460913228013594799929754673063626860079157908180972077009149813320564401324707974414712940654836731261774691490022880296634224937271829717794282561296629558541703496057264645461388406013572343621048856283037728835733208763738239036607763092339996137461943239467040246423129292429711624936235385889747626097747121686909526873026006440557339304031642506575547628438444841782916676077044275591327394145130005974184773763098264121915873090765810396521333115155314513314201446474863032139044102359743774441892227854760804138785158794491331948139770094180465275053065752539766075105130139188922651223734056862903255809446963786991617668778433915605320506478837665252545489102134311269038124011369846034692856763149455326107106975396167466948706731134066040945912468148599698191150102645107745468124030011706162782312261736430407236769552364234451689840108030133040296802394362813682448959757542287160575958284305502132957654617674738869811424556962941974631793604319130286033297748240832419332406437144303626950610063611261874923120899089000903912797017761864805142930065098575320089388781534293053501770739539811999980144961211924621243508003825184602054586520942406780059438956971939197596055512476907301335721794535247220730952000113944355759384699922579025622181388113630293677396205473685803183296858594752835799599778209357919375423989393463267526894568140539346902285231554115475995488293784146627496442220573515837171469133336455444915387512565775773345509124380075223483853399159335082446387004472361297050010785762107602686668614144618209769189106298830439949967595879279391304803329294639733524788769602529060780369658475678095249060303552821920698472766771381342767695497576606355639440541984736011277813440444729269194171405571696348538547099025343977235421132749599610550098725364872324661015965719147479774885275588363587323582424761568141281154280585475316284123025170049004280567184739364914695327232147385108071003029055109189119246508913637419665918155787386730316659327030068051482994908342153486809818834280612141145553689486125139888594157210594013891991282085598241826935451996506296746504254772950605877811289075266600899514408596862278232119401453232015830295992960634277629668331861289383630516444462089015599925876901313190713918792034164553864499948982151344744057696677696387450935525788749128663435082615686065746837883538722750853108601397787027317797847263742315207938034181395377644427454765322195470654688045801292986808114460000022126461717939991169623438594662385317007477464611414547812266066329217379881238329699827722609253515312302037107188341063360558756091934677877583858382737721630101941805485901237356964309545952996568159449766269152258630277493097991794055660487220472938141471247957773499625361055274278596640861531363482039843150167961470930497192831308035525037330618917997838190972640692610854732228404088291585566298103938935871030676441111886359330107234567926855234898566969822505729700435508206954506014309915196534422482141461799431904843776947564098591931882922397044633569755971123330971088284010516753750181893105027096802465731975928946162561001316381627591125854542297354408501515653172829158071894388549693268613682659802508265282702270261417300182372333542728650635231898891092543946892778324490995468206430044147994290191806338023717442136893474863842219341419638443062920139540905266369757996571141742379137905228145499948490249513552933294502514141456282546960952212006785606871133587030438084102076694766040362049722806784138046500904262913251964753585881289342796358084902498035120184472435961653427589549064099621019125291221328950966655596366223568029210084280598212836995285290987423700311842128291962028927482543690565697327781854685795904696061163936746076496811170218861482124412593373585354649148236148144874817808574238178185462010136065583477647279762611341802970950354695773538361123146950116707743607345089639058509364522810114618161025788630615653508222283292684614026831966381858927615199082657026409034221417796023445996962989792925798639234086840922792583611013581378677301248719183028500477356607302112726094107472715902285606924799411483283369970875609191246109762382641753180483122682351897255993522538937005096476571940768763700723990683976840485826615846327600411901256845029995665340869408463578856722968400254742121240892037869198699493645082788111145441101170814566385335503834963221958336191265797159150538480374511467291920276966113687087446456208401547640590614701923397681936502833723260652080020289830940892288574770453245978869780467922661088591671761524328361309455616434112955034309240238260544204777366836312213642069090608514506333277855112471577634421434433036698650300922067407755393412377331035706097729967132805303286810920882466651171371735261010877596860298877823687971193354010017283669207481952949518431039695101590384671536800566404281750709036020065856128865663024558015619034379382492622764705862706309964870796461943490548037717561732170133227702963617727524422247591429853302092233417601523739686750414224612074469059847136455772448121860112009523279981712283324734141861469301911570229753357117671994924531170278442852751158478218474825610267717481194042134198039175901381878805363746957801299197418741183632361563861058123433501317313361277473563962195824924512816441636697689887399007673845803773810270510712551731840850942687997136773938179569190442881249429305547943143216687223448665536756710662102855492072829943651162143507921078979794151092924270778282933280750029656768680283050709267795744588518091878712107621253544447314515349547018326486474967054577359406951131168921873785575039143007322824132158008968080713752290953442706814489592037327290384784283671773687022095144932056913380007088215066960517899684778712094486939078251607837839538786334300826646807344505369739582418045002703519698953934123872803865087209664185613217174637472490871182380854779705099911923193395894325707322984381057507284997350689252111458698591734781123367607504384321270389051769256540908456679842031806608372775057952335747493476092036873459624233512646168858203591104845149782643843744952385792044148177983267121712551181583773454897577614136877455786967029928185773839068600568753185385768025862445591742142668807277054525985503538496281693401905937842977748365241105357011325908876047185896834550879506867950043089394251861017911063111078254383886637132336198337848164223025584661929078993479624372551355288256487411003281829401015168908376823620385081747651173363017482968228178073211011534922302600078744658187540157698223074235987819283662156225420954819665357621016657450895259746200330477330106878620087785177444361892527987168125931959092766882794140395437449567346531460632317791994434440174357045584861789163898541594945948239491336734708974367148791802896938735009402143574206103872581311142206040458058237979223274142557828336379146483041782152873430000185492461233657549506200597812352355758980945572154512885327015450898362716451546530296310283914090814104786619839781438226203255947431270481354915009664936544657604446202268521421871337160668801941267131639953557382625253200155989008495348724131442997830667779299067820503052550217019065539458859466609011060040128456269660511739463063387229007009020335487478171161338754262564547803256230031267976913471408210509311747305643695992792803186736777027474191400533709141834164149700314796067302730012846953184695256358994923995803060795328626606835177519752031616162942098527091851349552475652602796718080952986642120831332176387005555768540452397465103442159535361227021221040426381420557211876693775906537594975222662266862378895452032646789786240929332407374347681295657826197221092125562697174132039454830169003745981461675783792917491218779200103519295745449970341823342450034598874818401673937422618354112059685807503875938033251811242258670834328977482142886498556151668041887699212513540945530979846399472074593134439645894782970874715417556820239357491486716211107035360092373869997926301102968516629394598033508455476857877478168517741760088109642865798353378897803322432269878271375885725836800810238667805962397779042362352845273615912914512550329085424114910645951837534541019129872408118793924833065373088455818489916369363599885553135805356571930720604725301870178181312947740753699542052159070406507638145899690264153738806727707460853074292004459778543660425432909542692577424927624887050265006688684239455530600271390043671168840520088094632882950906851181265851378283627501332535840972647172828703478908333110726990525140810112383255974362412146084821215349530275762867260730378022369858461091574055373517277283857353735235422630775891292895072040701603696665792396730485484236064919893187969255630754481210381589909590212023286773424987065889087056316494618363269998133894362166388165388755309854045351338551710282971375711088908856578047805853413290398387894630336226729810739188233024912384488461521563532376520667427119075952580954789592219260721294205467492278613713009217520610071433505587437643072629603800032381441934526196282073994484467989301647262211404046200267976447665099399380404132313478021495873436740264001639578500535201647774462198394145546286798010205350535582190856282912003226246411751408750655704970544988612832333878418987844397824959929525174897922427566122807161053441117605765193305718052198359118274438992799291962039422473829433012580583846513343572580973182527328852536215100200403577944104632162554498035339877927246346956629282011981131988755701884524535326607654050496888548066974346650267413930446544793518994590465071403257998539310037339556763150633085958408999113585543195665046784886566999887255541897808579095204062369242194940322325388386562811738701655290344700444548415320641818205332293275334732926703270816465478691625657813798723117781087669744188887260530367934609311805726373539815334223701418997408132160367048710082384114781518408811523160790554346254006046045483828422683532577382601275500754006708571425914962952278135480744932760629305259839640521072576549006178571161585147612012146097865298119337827484187353725695361081576575736370954256617654770862211290547287929470494037739052808272387606006358509236678313238086576686684481396326581366750656415633997906688898326547406544403742574995063509463975609664036524503941989622184415492775282305035044878236238871423490239591134809032545874095433299015513337781195432450823236917728342499566313411162554476136148051467493959580012010559275833263774285171945674407792355947765357355871314329278334328187830119228929195010596521639586910318946006949864735663145850041864157650681600190295240689812287223073666731446603337864895228476050685438203273515852247940175131845365478628203822074295758740372936705740330342476801595142517581662708496271074757566487158499693587563431542909507274111904421327443079578247953624107122654563375182487320791974220861074491051571236141250503489056244332726597262812050378935756455673820149549916536834291879316369075820487001779762160625276106399856235405356161396414594261205296506767480085873672109492919465412524639770078809770620788495335883942580933497703877418421116505355999011330079748700475896579843922220689780502083720626720169538850304268022741037215493420999678149658191452933311306178745745065339239100539156685983370368899983089121356690520978372592260015306610994810903891636303542703117810757090862714886784558271030976125988066772862580124631236641244824705347525591420762417243443777439401684110803008016516364683218648728939824448451703878297852958497674461200005593579129722191433682351569043434893609428562594001327354400216509882593891343451370294780172884163653843211509891318555424712609834368377880581178020314044267747349275787909922993703208348269094392961556246862967832721245047893819971037673478512118780069721394172735532658282877888928651910951547919294154783290450843847003813358059084539026251886664089978224442806310355168902726198252041825075633025967660337728830836874624110104733961370400532575345313511357019879757902942787127195705842824680815723822227013808377925963835760469870730802934722230706506750468695453906542513032454628097697188934663253890708578057871843799124223178935067311999653441034192160497108518910669524572256333214602995593298595261188031206321698561993251188229642319544851619711976827204103918619122948541729933463553703102641799085514720165949782783518783178216619448362959594723565803495479219145582165156538545752975273175429146936856695620902070041073850347928953186244434891631981476260273229081930020536954372611922675769038501939863199148839329765605722744928613201456311125622527597499955158447018397754215798890238467272697326535292257495122103381868446314489275061892552462841005757537961217281512796881347461036023747029725816054435907389667807467903046728306104019660733411137254917982530008249553015612313803341068071574030390369928373487322624689227567097105276771694357132373453803115286392421213987682064260980328608866322921118739246222445848803875812436420084570988967817709608897187798585028646839541871093764837030620837514217745761402857905432974979420457354847667940133763982543058805043061757453466841449380482435937825177840981947400473780746970940804915587971775331616792710358245316368292828567933383985135779013665990765597200267492463659372475877258982074290536853301328893290368666746904439517175245704917700814778938589181285291610263331045980475434816039371384859545341261439433065560443992757983164757790284068499799320758082130745900272372477261625375978591197894268108979760934243878756853736691087688165941680292039522510041852944606053085691127269576836891894444220114957722493184779473017229435924748615601863821481964104608643480007760731037392684857816999280240995906717935537141982530394466340661714014152917460120206445370509315694412597398132227256756591780827363472517495853829285355975580749708834640646800781596642932090713964195121452728099206507111128145113671543430717829043143705291689636390455196985136736444712818777852815116307533603069054226208515756414716433932681375642842953618878647129381059278379109100860366674281985700950830281483645735063804135759219158444158474544473874718680690891812437347958965606546830617429338565569505968888007404718902861566331904644532600754121494707320675732988128710637147743804468252624587979918380886156524091729028663636770290773537607887188705089337936343773560299439610320949906395679322816102425667916154755746254624520637504049491620368838637034649995583506207595783136576639225144510318504364040759455076484535209465890124246446988384582486286779724386375327630034998930779969190905464966261695043010052905354654653608780147878897221570377588147268624870395809731385716767409619093977251302275846249584987261586416567770031873619948353328040624591631139673269964566509765969562411416196352330703625230945386154311023706685940769112560169055231580879140617920289255467408076470034031107639714750442331758752657373585736229142902352178256982565322966669269297883918258977895104462071082032318105139448419480214026668094323092537347113723667358841111968860212189738479883494744980167178346141694827214937260076250631936655331269975638082978255095937696963758793735328744588732631674027027869700381937876107106402511072996148797565515298537784085406460307273320755149912982822181617829600570097705913590851824259140206562189346764702851140420648012502351400259857482783254979818788540881802437619723894000807208303196233050853276666084001907698340651002492875162060883454173337380222018059764644464520839145666316192403895699232686861798259995081966452717237218559303025744767596228272493843128879926028015468637307869190543313981636025090051854176850231491441373627996729874964062023764704066327775470347845453039967014739411056835497259525912969002367902721974001652489280031873581734838400624933423583724470958076280167517532086687956380719920958668915282188606610344282159485212280319962566437207790896087779663640612942980523233899677586358142752402451587605359430976163819717342513388839490347225373463918646579856754747964357862651483824110060740420374483126765395305786528137648448494005428964329279951031892255793704403045240327262527628443341479691320759172650904556403059759888262651836012369469422572679530227132469555702155814923520990568861236574984741326983687060041615964926902411269391393229101855489800958824652548464752910766191473948974770597674480625141946112537543888543988029598377942910059037823835992762011706013428557362892685008905693448147101216712110340722249634052790227439272263260961789751051190864310290555828196959817978335748027882074412207182933212477940508236786028180597156187041604556835585012545171188812666411013755473853813507675526299201687043369474589554834832382370795694968873742037400797271689306619975203191622887951495420205439641742065390704628964191096741208783429803527860569950240672289154542366989309151795362537021065087455563906737439454857734197653577684930626522589227534441404973541999893411669232936737053068816945581721763981966515469164811259101903286910178329808942448468556785424278868833042867165190668791164650166474094981405836656353423762664708935925893535022889535093304913232613099828983208728149478375622956410113155100415083583250129758275067055438568031753237614413656426203523489064951645929768374882166436313722387260053840245609135580979615640490418725685565695194184406189028252586659021177182098520615729055666324542861657094341394154972734807030925987986307888148665238176750001240479180669537813591721146554120732302536669337518788181467898183735889572306839180589681332532769509460772286654212878117908093642236193253267818074008081757196967143475619126767052836202547873023688662247153565138454500520082989695198681044629863984605893052610232896976108298137876956773979611066567383571165370052449411544673031858880962056742559117324932214595178117755686460749392775540547113590269496383228561668949145838777732662336042374595892393450389921635717943093525946960954083811136845955272990077316654888144010208748644371335833057701583198467204489155300085863386147357062403036051889483879606148049363010009487516619574041010711633030693628809736392464476319272866512178103719281281949041460323158632365338581426865440599778854077949333095319197389001988332994739518174484958001737903759768917453819984154636798813424879748149259579867706830011725057771223526999294723462847075144674163689926590438643953771572371648784866240233155645484035089290180546754305589255791916764868701332086044106745607795658135095480169566034116537464856343556850304408913313973632517907977786432035524426745844731735321382948423582293148196359379002296060232788666991938847134730331917283461444988255897194351384952043874368799059761039639973468981142578718590285299363508054471145418786525265700888820673641460621614203547472978232347201002365367566618322069381663026911016396352213170052314410114481382938029101419502827077601286135787560631798950586911514055901263794135190082657698446593787031713139720443088510861198197547789469354509620039830573775367291203445738373028120770981856179589182452049270458184040494184839613667078566109025406090591868028198617013770270089950391688695365674802529033295578670739455566028105301693937019041670045824176118465811257355973842452580944408762864587123476256117504606235527223861859543929611380476427752531782408755134974619051408430038082222412115786988451084837260695822700410128218896314253790055402177009680240865931722869990374342335294145463857147062253577422935000376905597544448166740998028871844445700496393715464147273763487070337234936219869696662361011304181713683333756614078211051991876981338113835807228218601980846931525629387562946445527955840340826659515532252442812341053465366272637174986983482261438131772463217776089532205213761235689481042788301301531487533843410713907584877416977480278858455348239399107538461733197510741099960052789240669867333384112671019918932529260813368205028182086602662909828030081476487212476874250003084061972109694317561113261604691154090286966950042220826421372323311874147750006659687969918013807864785942241898696684092586104967906451394740871826835258028712200610647711988208554571880205045286858599133815301924253039043448655923846963879347649443822234192939223023962050850131576016679694640453165657519702732250805935337560098682549254949248439561368283762269721330578295950669558392621793120358647045848392181239426535873726584780114157901630696537969061099663915128446529051925952907613329187235547498590636084066166499247305858896962063189656848874057780160698172173535527299710806910755566923785907587052059777863211260955078585619659477140808398264149748508776397337788115785552380969158898014997510573392707378302860134991360324280566937071087319007037648973276495240848768512453884058941590700319463844620049688070584224483254295504089682527935033392103141525531895738943561274409461503453590454435854352878863457312012815501841531177782044418648561221757455967906390395053416881574913849156931890542545337977579475004324110486813403304761480947444770766338939480503928577494056140216160683809637607641321627227944503227727439022400083589575893778732029748528183560632005132962403463187581044703836306773323175871288396070547851346481203439054954826390704823355615315360221590002794230703136844095898417734103517427874962091957903680426833915913408856045582863661060364800484834253115117777889058233179473009036227806675988232061933328431977876485371636376054068606892769750045505368337182921650319212361994192707142734319363995175481268428383037176597362033617086546660167665743699810909556822998313698569894486668293680141537868381898158421446041471248911986935077616926927139160746317636921098684765257410596476904337020628303292187611321386716803908664196191822781515807551717893733805551805361358271037604953410784283996666102473777112684412680105020540665346959866636081313382808239202841492206485420201615702154881341481830964828971335951095738485787916768951827017204337002491867871918787989804322829340383727947804647797573267119821895403519362060269548314233812483047103409084333285400241659483013565309563140609420647305506927492866783851746037479206774420006263236455052964221112981790195372458450224922613470873151143851709368670350859933163656008787677032367130940091288813388820333844317764602194177026388029304451619986111737254837213757085276092382038838439833496909407687135513652378680272697344550030380715351764827036865307195863907943651620301671904826160035329125231534177005106124966121371976840580435993644136999833755688620105464567955601970618015196786326134563225323396621873588774056448290995049265593575657997586956312490310097170024944623457853703906221779572000561105288378686054531820056916972637894772713994222736457940872816621975225359631572031674365015398067318942240578776646561423530375685963356919086090363235572824157013528254261707370852763138186833639829807865152779012177489842811754737260737570996138618981661136284852816196401416397171866387485157394342884330662262113020662200415608264613560574407336080228076567336915504519162350147226573786059950457728332045962255133514135711740777934586782880679039567464375069805521545424531595151932630052093342217857710082138950119949819439518853798202067045339817228689342915993768884262782876161971795332752636356432656006770167075796722896576331943439841141143291284774883579450092118350181300334935790991998460491209902464436770665641749810774401797313528282524809695084304399550028508163351879970177032226127414141797543108824387869051692407754087025811919539212783779842931663686863497708304480699731231601473698839480567030061263620241297606137277433021896529193692092340061933243273068682691364862126598577154987450862460218394151274653540419036906040517182257338615825629576731000477288048712516196878103021549589742378605476374182953757842873131098779641253672086731877162021453799243151594811331184029747046683194353327054635130909949839482777942308985794652959178691006987111286070319243748681300516820778705987593455573834644574629780243167247286637357667666687695342427820259227611416332339916107830493579130098781972435673375136422531174329739841824848055499321453263865087006308256894843836894368530947831252649563438337043034076752159225934699448400205129602908404211695532283264151630091120607965179605927251105880136780763536175124033855251431570105515672679300901684854982345995059362192548350377802637222268714667276566480457605461049265929643464248500131994667942217288756567396553549719527120536535542754679485186863153813526655635987434299490718550480039312421618952382134182910232275386582476045517301523715506822724935232913869349166362135365137570215042441463888700080759083312716608280399337521993841840139649643542787116628930429866148712710957887602609402536970140936022088004901378353319383327449554355431221203359698646470683398019973279656035203058758316096133324714133898235610485152858897539904903125941667057054816370119266731700758517620217640461609640654201088607880275761911301324018807407563236844730692786494505411335307685491906205603526113163581346319591198204855304470222425901327189592848586441647763884641605481231508273466684620142227663721007740699704135213960537571797469745686413402210572316319780880996375082742925513478417328411189569562201559622752050652909037556025529200497553016639233227718094717095572598730135659268191982417498357346222898142463674527196982340657938139644357169431772533695753760419232616403601036801618770263427191804765318694359150723108959209377813364519411262185102015738864631733640056428804819148757318894902190196926134757824053901100878736005234306972875351211924858904775338107390094513793833816504204923849880934804351273311781423942778265009187345980089066972037070084040634774876847438494339431066163168737272500899772384703195539669887422505968380185012755813532809279370422604148048430832224907653293758285455619836060985828418512014065450438831776069232624212086562965603515450842598213287861227622337427725086079089303378259390987694668574916538872426565032850137968569347530819895386190856918465167806247882448517677993819312042875126732152548516604750689951735703408666289491593969162877068681829765216468334037882188194453436490234944056129089224859956558914340058279762565137095751388611187164897302847978280912575987884868094236683510158266049569038932185433038583536239497663871996342957760920690957321241072584509424444147844144981228240883226828407767755944653987970586729607382658350468776123060048420312077901816152274328691038071430153174880554428000295986821917041540111948897719487001170865410718948819699512727416507189701777217283909086257329970340167583194115104258840164960188489636133017711603622376971541041830312725115758436598800297480147370952596949828870005824200906541230436001872818863247003086588182657512730960536906881737429299638483222054745350505227660687613179130275651717692926092701151310977905770890627303390615189925102937506873310377675732785075193893941832312927897298089583764310047758472511120067800219103875021438750965586899816746178148763683193656099538920699237750825996981586011835525301463315401217856457146706944085592872221628530470530368098565591985664385649478204728145352596764307064684924884032309925461938599701050465435578879230680434797822851161804415717949306127706205288492764709916888306974040637363168381392235404981107004798107007764811960434030733026557425497779661952860073357294195334469419746213337279074024173647594437185024572369329242002400867687087880579706323826347035703565072737553505847173617026985326085885751369930005226989476481390775952808787485869654289418048547707523297440197260834347598446676676267281173246400766311925183919168571144501175891772385278493781332491316348340392223069035916116663302816281535039994173253451222812472460606300179865173122419381636473093660594833017599387518320264998190411071029220863671147345758468730423441197999806929524874623665300112220193792566985434649370620421985028855906592768900841792074611410025752200999323639315666542610549116753765940326587033404625043796633892466683795502289497551078122576342046640211653564747729888236889190486752103007303916590122827418748346951220458999899626944724174277941267544154237569912949367010910867067064143656933118028123586829037060253958871055271286497873638451304292151419255997010363226729805852024179379875072778619523295716207054735359251637780463228697020250026684486560534933214770789459813480051150035006396005835193590340800366196802779205017432640146296901160571174853629943485147984834444225266578492565485873483782079775661038482293410727650779177006792911610372794477720201310417644165117682113072781967597009547285999593027048422532252327791778042777914426481728767516400504037207907244736847105755029558494562433922628169188708456082002955148620868744844157003912673479245447794459136124807032775580644073354372681535830981889321588426838348298755161222101271396038498703230259908792352355973880307424908739482077295683252780572335938356956685997000288933917920591996570715685223796020883052171439556134811891122519104330796364565267883413313307942550807642194814598787524175349380389772875245827897914471058498321133764371053037968586954284899088455638696794356556563689659352311459437578372436430472717114123634363230994226075145746604129101232647423056185784427810767370909873268783720420951609760999244236638335140122178217557838998182904210721629537706914314068848485441476872285591090015489721497437065841142985168089459558725644590321805327431013109483177012977931097816398777608439484154244442551481823506674131058543264909716821900736903584413833867711102922919085104348774711347932405646845407644346249244792331735138147396651273026360254278753033067311082639495125553867693690028821604487872248571104013028058712916787702955975898421412680902614256755589997759484188082518357494895934744388378707574380612055950466168675565357313402037426310959491236094645748433383212047752900266651861194388416934238834717110956946321181467984478453496671847925607972838852556526657298071048015483746188045712358331848881207165486420041526215674051735499391840668817471340521782435888794214217044694350011814504389254886063674639050503479951331519565593867300447156301812652851339782361118331029649455010830898381321500917695532316353426421509076518560219041423288401266680247778947091307751801698813792101860473485319870426146177313179988510214215183508205286270207243092287134806807795198660816896611853561550746422792972734198498986176097562411677944761358555417314813116978818378023370555063817850066094243856802832730278689217373358766831190402746682107260155052563009550067344660026080098066524485110487695373760435624205578184916048043425184163818625815956878238831112845415302173015676943803210346020494977965824209302124664372268761493532145016705667331150001685820893243900899024742820318496372494028338549893508133193563978464934595239811206110252557285180826172745431228334395997675506558888319534797412359458659197533793609893347546348636382341447789249920645102028368261940849418791426200065011155639862292986329505521835820150534349398193082298240480926648428762776218915880973403488675488172903104721421591274657582650766969708000757734624841029609701567921847820657228432553208902522257643013682967066428543777189905171938616239257042992682209071749492216094716480087897456106374927938757705232389958131095608245230655461670756207348839498734284018482179210580599791379676044483427224881162425638843033400667208547516032065502080207096571526105473688543615752427242537866861518026129566163526122965828980044134116091005519119426922143088728906203812693731459629743823002647652218681699722064495309112499256243542845966066154810897574313526468191652450442094133652807893993752309838288622552676949594074008977852826935152832234166356699064603785514036173202924626746596987429319091443851249638407562248635419114075691648349293288704953988270676039752561310728947982603549461281595623081321990527663286391829360570937888092424366195010673734091180967450248861196633429820132203555962925994354518191648126208416538113621534652445775481689117295319574479920998458086886980240595922443856332340836903632352309615172227444193246038000724753302638211060995373035294610831492256211287387413801205856471256015494949575720581057098225466091304494456677257234462432468489670310665363408896550870739931518976917890575392700074433932176654851290555173453483656204392182082874669906704354063553527065067675622915602992741719169096750576486610343368874314648168384980717191754422813095421227119358012272861484464218419172350961174698300279595566264840265950292165359315995222246313937491777664121783018728897587439959494857908446567061059982321036050110292982380970094138824437175840537669481570803431666815879121641592618355704962890429843381731714537913793621170533494930724388164908058147695247072793129198489111183679771924204632798361031547406968535579916801099375485904345673531327111640692166530711898363852677855278235971876599496734575633578115822429395775773748447131072847209497704046448676325447232329270723162311928556083387496214459375471605294753604645588704190665596030652251920616854540622163417752965774143333834155325108859660939495582730444497517650647878940353677363112844091757303968808526511730019752417804646188516614931971413715065245160058197394025038953720742449262878063838836894116124747053074838723111242953606256943709592926997803622374995090173637710815315480635757890111119416608197558621149872466386576059469286479771528804324107639316854281856426215726266450134477869875060266734788506569506624217157941587772470796321172811803108998689196797572439233557333222130147230436202686537070343502076078696969831986626057552160333346672689829158523271711389121793372004981814295059605098792791948534473398721326790906813261016039315742672469256079959227876555050127139149583107891370301804214665807428088336731737501834707101689023684155132517578758750397497869951367475469470010881227665323121236984033140832948735392514124743460076776935641558850356349274576153802483651888440236926627483468360969670312146335055806498221604916851754069590811872966731111143300710482551900013398401072869449964655011610198225045553422091424288240973367894254751800031070304688926987839271330022925558571400725073272108986461799443423938800813896929580251442574791175606759731167937932629062750496332139583680346631746831794167370206543942165792746695564432821318401979337386439801370996821918823425918645086303614767968674649373943170232684980319263553386589091465087752362887650293022248710594964277194427154924177617542763820972234575586845555421204280940098040671753288828233449923784238742868684785439052267158827854420752174769697048210611532066980979539468504947861015767568531302306119581668558905744055943768615550139874492304432198039301923209824913419640472494737681808310978027749474848817634935788942222460404183638488446215218363898512230058612152523030581663085158699370685131227022105117912755106485733933435248473913425730906977220686466879587931329414130914285288657482548443836854945479171243452178136603958614953224409820101880337850382245283304270846810495354508059622128029560365583132535085316081423135562472793337382935907249983681226509458416183548216372174949726121852588467142647918463947510381395026219303884831331059190072528995609543018948735145655411580815464088451019164802935530335101019490569606145633798098561457672678796161560066599629522085221364843895503548184309167882757767876686328801334168104101021685529291842925096530658813759542520860368808013331014830201385714018918926433286185361546157995840982571611027737657093576421488393792473721090257653474067478916814314574518673061229554216470238160946852212783101918780629598762532938718280295388657739865724808882266697966569457433794880515529941784498655315871985281856025103380363897837697624894822799227724358989627136348817103850044417545196949775806509533323314198662158178556565947841785039499069778757091342563093200912762793614853461745655859952290399828700955175862199759649182025477347405667759897520952115327078703558824186993046291954615269104347813314072179063924910554401321828844424336745485001910268321201830140117341992211596255363350873562127525561191019782632735067119905870601565312420973053975635893550559812092794082009421612925126029506059017271344433136718198785133559846094016674787779126833372890380144564994325646098972954725165691857444964585298108072837991702687791168439204540176545005813887094870797643125774627820261937926069559851484008977475627779740933293963422717966048822867125241864703203655006179461327142237484384110048800267539512614185754892612164815599238779493882981114435311655083298021647312460028802080250415631409067991943813748519527907731881114730325088633296107011947228889029098995608198376410937300268927271577380916477915994096614595675077098266935213106877981747294894473163403677005855116083583589799044264372577330578969912810603614268287509305582007097922682943476160838649103017647658448943720158468042539045223755588976001608443326934217621368457327034693753497237979042152815975687695389840646968646417909909264135510289229050540833566006709984314396333069465927789084087130326669214717317385775842298506001858250630750876523399954810119651447700948300112025379534120034558862721647367349173891281356839969468478214190232635274576599573931794674995098737134538405605169137670933988520197734510112114480466504109976094236912525798922597751156620370208668357876411604693303186683934392432989777733809905167966098677138495916405178563694313046560132262410947345355100490927711679808122582448984922358239447804282774611211576688591527443952523356102620037750582107052669755416587765045587788656288790060695189132992135512137710242613105164092655733897726145106054327184207082964747365830808328283481087145091285796937577460240236304779337558305494648801110824552333292664611241238774182184786455959697632772294968152339567408556624444754758338869697938335048197125904101630705157160145717347131298323517091043753773685012930808833625353291995813099266107274894434918107912154519088990337791550600797112509498940976226007093834037844169053052021721644967402789453358020337536329519507969077569604340576986020889199305326012751077319355803179789850060091432478083995547921895788141793072858945769605994372083602647902381636177337656485937590882058277503667722120615920331439531644406035829906222310171488748140713691531487456269093435118974936112606274934834657196106414686150393113520942480577757010403440979122479955901478061243600425260081306984998947223667252541966390219901986526329759031379156519680079640133398630470723860757924883279989785342599326463356086308829304281070491320494515852284767843097820509449518012133889864541137534240910487199204890508076631846229463884123533651331414921307252865984940572701184098410998859148130204061432586151801321947915473922650638797918033910689407798425310441759358499974713969434681698814086032490726325847352889795631279367821845489139871235376091115091763843331381974725500053197546311094531955476011884249792467159166684569667725906735720660184826203664316406309086318789296641165249347419327638203337267013550694643603045767197886096449591072150777602705409081279900756356417633933424303680657655266568403686011206237791506595428140516157443986267345748066365404594284980759218721950102551890746575731864768459235739421244339704589362831176606728153705209145991698637564284860198166780835304780071483173018633362132684120700701958456093015918013530434973868703112451343082500634370515340178344126353971984290778092289307990077992000720724268162502131113890776870586251336801717552850818292083726553569449426845237672523143654296924853380822177320399356377389131822942195840584334700610094665410432747958250633047080603420602487151312525457616817158377061530939831890293636291091054559203517629773327536785247229950344074583604932098281387419506449600228670439904741943882422523325300240424374756618470775297489104151903127795065918223726375133958264643619215319528443873644054748118443260154963141290934891617792030761173993929851629343764742893195325182528301454784051910563827513733809539879185758299801349980130879515131057044811079811069095753315874806307389388230000385687139515701787262699414515107684147721031221402430115800685098989390257094448897746613535001977086165431442498760837443643859128004428045571733753813795544265227901049734905836267760214819416777602202222599238938711721281613304627136249478909093137419508821373311615062968180851315078274680169895325425679712380622941867943911547387849708171443710622431341803044961234502843363036426723982288717781949833498813748533304500637299135711434742378767695418180797254742210967017839897675377550749621422813178524415873507602990635975750630857587486664712423720425761789316244581725627313356525121080337737871504751326456953975972360569778031084131129299956415237799974251992484501663333006630016285471947574287660654797779398131623413584714257215595786986132544849051763138796363334203018783770453407976143077910986019989041647691156301419694101820258508044903232991230337262956436533101727600129832751784956316970489476860314294949608645058907955783285831199663357154542920481145104131479363791207329077919584230304565482167095178203058890655751045123640296222386403632395544098922511298976518409757109039886365403193283288576970864916780439590177465691895034344944509453514999228972510209958356492407783084579388696797789947852761919345603845870832564764739941884950601746413803932527519598378561989902765292233491048175722552953032234968724165569034546744366528434654084128998533480484768049777438764255016404799365322674383740255176947925505221040731396416508242391132648894607024197107973422865834476320243891182347200384132898192723208286397508856129504698726246893732509428238095943487521002868113161857294503931035163381364542894871815609710082180024237008546954707855253889087895936995655553743163558354429048269696730706586057409796734977801767214712317450355135087425317695669406851148883515252410091886173332796406203142544636234341359250775560788249461535957149520448587708761669870095768607139896131231649430666572650789538034061338753786925433010928556424210122398106711748540368841024116189578822704256530315349236036470414994791095057314711242463884046033370995757124639319828803311528921842713460841968364557973269943585700864161610268847896139814190210851314975132241293491705956280810879603124324380319020507979274873548465229003202958488896302365138068636008975404033740236743400177703480666386464584644907038171937409557679427383820794708524432382833678060545788124320966183003435323604918196770143829764356143573683826513496340418346388399403551033031461055747527239280185181020875294326171001991721361953319887468512468291385062211325301952773618451699126325329059587166508268154049815728933104891597514078062116766655102312162620952905078517332345313953008272290228675122820398025559745510573171957865403922535915886194968724349693662551172841435819975544180762554637878462938307865087408712694265446648168298139761101438338114567522542979541413852300059698196651503158757972387410432904914615613260103121352091215463121804556727562731631821658567659681346356819599318904409756595961525884215140551466911087521476617395140149319736760290786610673096836115186563173940697810683149677990929312435965774412802450865905372702002414404557682441283173225412549096942963857294495545434802753769093034287901591698829618947122306629688848870398200846968231633354944304349346822094580841908459792818441846508971448094553304284810840273300614621963072739199978585237212260403952345435627699848141182695055324886821671812572845005662836079243471629452257452892361514527626728557643859693523942014355551898470008837633281239402501213169789992781352888772757542251897709115937706054965781973548131081395426544906329037071266231177046164151159468725423015945382440397863726642308994014942681832097711417024963959623704011632448343360093340214829894405937178184170275573935373895002686606069549816934043275501826032111479842678214718708596697927424952381938926750635736388872624882839243203818190410390556219507146718628550190710502635726189915685103336278650385410795774597490969232963233097631583742687288041393074534405557988490465594975490197416483698160832972515188098188182471951347440618486653855996460511108940160383521938549094865538159653094615785104508406883428788328278649599648311708806295871428899089418227350191812592266680406829676217157957177806603732468709478173843330196593156248079521717264771623721842352671958249857890146464019587745127893224287396953245438757728349791658855121422236026138393981872954024686926867810588673130119998255082548561248518713748411482486476587187720251769095986094491907595827022079433179547312280971719457959322513495200895405049136267267909426070811652475257331177165059835003251605838173298174432957592542711008816845321590782713135017098949954026819372141999652790283767666285515634511854945230075232961636386171617911385772784349942172814431516810230325066230746526738030645795611068592515343428998204559493876717033221271527361587056948705661073650920185156627044964814733188961590188826008047195035102446341058546180458396022388398316221179657907672786408130445313322279469377533361121950121522323192156734879189816519977865602454810734578463982054110869166901043339912664701609877174002158580320573102819127312620077959447440822120350006436611150712792428558039141299416967314018995534313333251410962566083332253299308002316483322451052246524418367475850810316282873421624999386040985247468513688846175305513007271573956158044290112180599191767225951224265207994659699679956074867725362395967545925199138768187440142692560933545809891410863793153892495275484437317707515094952617483060780557355028624138258514709224967135228254184430275226214446858003515113441105252026907874912477817492070732679581513766364352230774772619086716885388969694792380484445236513740768931453382300640897105732340575949784101820547324156323665002799589788960429105236607612255667246777890983094001611554087608181677313281811748381537899321756918888426887796217321544617805507137603936351141949593485660174242359681743146397054187127064405415451420132997602154755913401298792587876025281591217819443109918070854581411250777977609448196798653363615828084380218989686375429424366900753691067398919088269776362823786094451120210958290990698211967024911636822234900130757023977694127126170155527529045661038847400560625116651128244118639449273240061307597433138454021305714921539420936240625988788728506582997325419109778019565733638117119509406436872301802357571368689056997210262966213670266633150792210566425903502102382739983597656481433253573869781662021742416005105078152125808817320467291661611626664816035351521592740882781170580648689091543670077692597762982107615154594301160005982483156546513603649640819384184621056052528779001552797196248556939456654277771386515753995126869843625814227292626864184748879297239102949482314575702134914116186267045076635864877735561134104203084607838286111361083486846393946805993186689946494141853185163978057392672480815970639711208213844464076151013087122991637245169782382502783131985051504046113808604337384501402344396945462154004791884883795744924391206601090576019741989266609081960095236428720202363731373530042646413468848342094711810965491067018531525422497237773098501492057920987243265930440311072476826340752222574192349683609755226438646098541492205391390414544261055464283825187762707530765976083057972402321334916979390485102379224179925834007801542605101131872291103394894582138426478182702573561744462875501107987638625124832847898400341595843262196327638546793336237414641087447675910034191981394115403433854305474264587539417813706102002680338365953372197790667802596937174108112257497088855879493566000320635623089532040825754605379347056533942676819626711945798668281512111163483081748705464769113109002777954299575842958961307542097865746804403804714434870929206466566105480167128309505625101926433015186907242801617034664503490568155924448030851135413980739768615922831673869025774023487300387873325939319954534250883904475847851717116688376572675257889761146321533988184446031993039358942587558226912732041537870752496387115537914704361129387789041653348705656982219599457699318999541226361417328959851119768011453280414621546150141355266480626061666577695323714176835920796193303879117182446810493333880286751419181890167889959606491441715300979854516522863524631146415350890619515270552386263830293006049589838259234821162770405362431350793726659427109031017518613112433380016623820834925921559552572840169316405057177909908070237917048803907101375087756860701230478724789010415163060298146245185828209310231698635180853837713108738940797835289690946819608705758380838111662642814794908733484420439294048135637188614170411818102619076487676006738854380003310825624471345983732435344044911149252030452610904029018959063764546006846873910393358827630891476202739514656272632655752865401801595505341073936061016277003756136382304541187336738204480647066152030505284330863575719306003763391897598344971453521708102690216614772373845897081025036195136284125270217378951148496868156465464992568635595593986913017730999057084241455040036694518603799565394041627070066816230029334243616902132479233889003277558546293496785040845774537317884600032891545598785422082320690048613948668765444432317727667125289429999137183575244585438316201179157440997641432774715170398284472451287971258065140418585557322081710842049875806878203895849533493345723898467761248469863351298366935047661921028198089593392473220968309699439939638374679286792050895012728030968830907005434871486918680152978131750276583022537086812813772811673657128313992808558641581699075574751019033165403122355132025227109969504237705128620857423490759182781717729087447159561631704555408872803776766031178426892607312022481886944937323307893643833474425596517813488051394412857633175384319044513007599541328891375828531924976394330429120576375085333527396879096776148636825503107578844937245169566423429769749791620930658917077539767550519517220691540469110677054295774021556579120767382098388589852541553672118108771857218393703261039061101752496531801277945178005347593951155593995512804400020858948545275658773406047548630911195127668823636046688055465433705165293866103589583884768404518138062994520021027032272998080137978914985742890951883160036080256411154348525120651564071619922813692245546429480624428734992789374723607810198276614078072867362743676098292342175955200109478100486104728974352838477274732887638123016517860281233807177425384228087464573466826486290211916726101295432837114243449274653437758708881972741880687835996278564660263356631840901156659981973982403506463398740976514017337880862318011373955506882540787952074632163046239526653724899425041187921587396003237364082383277537106766456653184135840012211238508356746588667733846552550952377703981480399640659224142044707141225984711970148005986637462971866604126098387525206686481003935215199663634490909846159318870002355557781164138276353035896154759452773228797128087175925503583626620191575259452573200348966771909740851070921460734589352213828482404283570947824489455339438694753998144664953478559292490752518398341953537748981278433021586241143447453192620957805204785976801688668420817863255317438128614333979655881285572589637676137891463445925815875965571295885650651930765642286194913386825630191523661360128941902723900333133399678247805561878488340209178991457522308617557318372843466114886237976713330334677974007425001876199318517936483862073445229625748598819241739156703168382272433846207604692026373612182411202683184338557874405974218628357070736383527144296105599506274252059634450526389852014546672197822178954254604186872312118865656717840607379253965210450363539297213386897427335671744609404184235039656052267535247243441557725568299359878428803718458381988214534470945147706660036769350128465663913546608779943467676903525838408264744638684826968468090430854527981403036286937499571815417590982658520713901158592590763589615029159200426566940228636974753554490355065207104617457038825870430572847109678592367095100431191227432878463624240790555081568276394175693421276479510160484847256635811538053460600116013772895605952986965240004498232029185496888986233226312315793961961928295750995150872778125328653701515444563227356487721117484203236296436159574637099662641476254941753740023350187740083395049494424042063978726129801704017391420471677613906360698183438804044064345911633065240386412299657787728111321110739362945348777767520986965294475190631382751500142678155675352219188972482136480354154155319557703317719011532267663129126788893269563866152500221334588211790353382560719104983418493958706177160323453053824703599158477110041072803872204752167397278867058515814278865621660934624983411929753800729811634707114659042327142015822565633391995605811845657843113532297498173551995297726881708418552454741312001283054300084957773495733845246534786117535576359862115568303709059374314966483188743533553663987024854783615246783949354195748580609303348001458926044547028642943311686951634446748160971025211870572268783878471341910822568085547295474664766481602877311359369172008736530501246899942139851497617024021494216908934619850442775913633960074681233123945832392733309186675736101791253416941976403327571181248840433815171402749166343472589502556877538458618943460309994008642820224632010320016355360668346697243051960291324259079898287812313541615990903901527625779903719677806150607914146920758901564058951057504220907545833313750869466997179408985961403229573549604555909056544703047090992710734126606446715268292897856881742153703366119230321756124610680154454848947680438347515488948462486400018887054748080026064198841994233886864057158833157597420396398910284922345292829210431535989525745452177818053251457700898080612912977808599848524050931069839774615940596628046946249034008835247651100034329718086202805969406644833181001115019199275253126326216899010183427894036939111155423559796345306145049697464903346247197008908410999288640292618752360740260752808187805094772367294360599319690154350246597799989415236001587219165621699442789396232921406048502138324317064109403386627181479350699778470018774792567221981847271163785943843687847347906726361083352178665125518660887550996049036289945235501598491644975282612942163902730599283149847649036736948431262483044604397415985086919465186972427429138725412401675163538037492839219148832600091991431775935233978950454041538285928608978679428529995406890911076055645162480140534680648546793820532330071052206007687988548562560667276140861241166234529620653440270032125753367246876430026333951944169196477682788464477456367950836336274093239567666192275905064727011396240423022531183766312355387966268835264484397535806675524331461153437448305680522244235406510042095006883877073482621493656947371841576270846799098632059285080395955874438494273036735784571908855629897662981345950282656552843018773190235854708152195912022204860299337175982374626973931870252259519060836401648088970486849370160800246749471538558353233760977780385307216976885363186696186127215026045307882350334904826996666383776298133278137597992317490408666772879574190045569190588707939228646680219162891389194783460844915030767711430106720664301406543082972407340452848004575424201913147758509537177461610375483479160913420683811048386436519063967605984394287898445257029002187691647010950489520253236952718919262062368486031296309335144924022863953866901586357299181968419217987417913032510944508491303078191118023068561450239667539612505607871185765659602067197953860174255926547580154507033248739805280425115310674943853854399689954891986845282476903745716728844809809645171063018504984378990139388367500981912485652893550613580566623001215114853420423062094389806963634979376362232842081313517386953569161162075160259691226846444854169225857520435476564025142982854219804429351805805550368996473293363092436303586594830615254614643700858933902599088793808421977976135280181912268852362661753289363371563285021462972901912750062751988561679999748675092382446202970370731742338534632090640007248487166962250100305221751142314505555886721974041558385766765952794708242485315903373609385514801909924887665610794741265247417084079336372638635789130607866173443886920024540359108076747685768851351316152927636074062922153571487394337758044612813265259880850450880377922252443717734625573598955471767980072752559669934965625473168799708029908559406403142505432633554399336991779982837479283056458951208064236659018496904080978634092733010669845112752282005609265390206680827739813423177213187644508765828681233388364988830498340382631655933724831261136429116053573090599792038574832198994764155768584976510586820125734921459680699399072546161700018001054434275575534821801289524493757401296218261051224289100771431276515249753708952306631505410179494422617273150876120862143041444474242961428760464270680905940823343134902178929241270494551312862081568066129763601856728287069070215280095818990791204924336461713151116045294029738868174752740978383987212217677439353315255585545450689961451122085648023346779105607823314494454066763924822600749148694331257330457008305018147003011942745071005775580623272040235336552661244697452658824165216825968136923556538748358260338274394326392186059648316273324353343080474851042141548509844523533389994886223034921304491547700690638576533709344020036898238820116183278262296149449827862821343039518912312039177995560234965908240416422442871858928424444953057972247674487597540557198972265903554037940324663185243156631336844121849031753489267259851494381774713254520072403199197401747065576281637250737870022716230999791752289287936880542233263918267031386324489203746916292680058000527746976826176969921271044104923042842638925752599871001662501043836260421951002749993474539970283704640389589363015511513318522806819183704942659045263767284988179285879204751566360742804105118037275021508295158092935182280734456407881696530827298871193886636797057231890731797490891775020997876389397482951485589966397698901007562307238606785388887192333564950825054710017325935791282504084676764134581903423101638526271616761619061179959176915229537421449834566095012987758876782688089748225835933121599747727576445575462157121942998300587520585039059909491182816885844164469408518474874615908230911279045742647035568770499897031971471008630669423853847866695145517027993952950704157961153324087519031839794846332012125543983336136657044074609456991148679050686484591496337283443397237185855421402636093457162631849530148962753821087472618379088484129469614583408557635923755458787736320904856450765321221054370437096739651441021170639236566997499914022249126717158592134237804421667416300081646870600771612500630008908336409366441610481368987720682371759341204109440198416235727454946280987049077881585253602130242533453109504248171823558497628376336182469339038102964134205468448288696112328781455270500610078008285705019862681329713348630063977740603567287893780703026889697726179901184325876473629075279602055213407915306239358740035657823073290660924683496696107822294273275681305542804029353790252404091253353290188394695167866907837700178918675226998581863844852779248991480860501560428667669316550239166853246023142119181587497636196711969859401800372191908088971359417201532742685577456196698436286207403819916297602603121296509313621046206776148411630921023267949974961934812511358996887010504329366111424516171732584439131901404904975552985647517759549834407778619268787376409128515967574821028620863357986393266367576833473512514642646249324046845459240488013971930596402747202390171726793294962262956735134331771682108830156231818426081918473725251291575790374649981076264701361171886535116411646682741080069637396667661944517153766262750017844137070196823749553759531185185545003669998369363208685754770174469302539749969629884860727195866191795135297161326068551835360833450661179274409422632724806570823310625448286757554072818877321149323257234228221636799563531671080742518246651056568845061112876732200587250041444792237660306163722483298310466237753708856032053590476084753833087394073285364872443825726113692275890776871974229285249641262033287354744662649351424855861976676433505470421497536913978207476319751695578030625804970700107357898378304183971388702697057722182085661407469022107793242661067225791162312269093457512668483242824169252788525236541855524042837107023670894843974339416805008041767380941667050940046086533918852698580134362608691281075854950512638649477798937395843493995301119674971709390763727645038235792732969122502068067761872584629849207916437170032430338136999836254694876351167843432013290546135802947114457719277232381245600392352148198213707742492903931729567683261013206561753160982949474729368905515356372832921904362252477217750898939248705761568821373378005016301072922206588957092072708853621005290333577136460840034842088440715844449741070763937663281137806054400895096497633732444917498797907769062402683676313706275977774571653141173536512427279733337417162490209876522885225722419213147246966908744860167353124143933550280567092650776215191511941610444350631850223950990402383631782868063037767628745338383407922569830108124782437300584103887590408524820740035521220489016344203864300242076837851004690322208368044625829756480040763308489313522218024080400059987416929646344289287907315899525678553793974825675780851060329306467158937675548831693438423360878948215736439405808486459982358486694260033568549921088216909628243495118562718942576086227453543142143185615641018831944218780600711587145585143675103054705933265779982578634153388378631800455411024798626188507162169292523677370414962877257708751112489996759646080963507977024755472119179234172887727126015621317133486131475167105813941243633715097355101374060839200763002696000245365202288710054668999351007793588440910021408228258990996689761451887100386978675236668902151505298899767860598666398332796734467996023791345869793232606925541679780781375902089668406818009502842634849201510528629786649112152559640432052652330578026261888009619057086559289512389440311356228813923833981510994405079812872626888983272585408620451890284252502224458068141911200462996888587271946321848816892426800591369935735556286895647323192312865467360047276199210662759265826534134938456369232188289659766272253351403033484889214033250786888352837956811544720826453013007792164469742410484804023040298818494075055315072099666301523403677909167773359718499664608458134173894178355752592621655251984330318378920701679092333256244557189696734373817322125486155069322244137020489718930446648868937203536127056463894337918248418841028877346579159571884807574060606081046618079772455196697990198646799913469605798894633577558486848852827188147066994515479520283901703483422059294716867517136196036535263908304468964261878476959796665000697820627486778027979731564570845430612855807739819020583660376364268394525504428045043719975335166602681943193445456831176737004599213382850680497213555391097008641002757237480361244882958624358443218529788973736061560201550627993262782505940305011289745286268294827044289109471663665495011415917979017288789172662409242185362974004308411596647084468553949224149714064998608594068253869592871974327544127369393343835585174267844288583663770091573116574587793405786836652262532670585011263776137347752888110519565136698651188335582610718047584244612812320788689437965732059413534362009851092517282538512902439278011018440249906749594192997558090956754035115020061753365914678789652092367928447915900400411168528482505560149765206491799643192092149560301902446593483116284209076701007642496138192427846107068277121054099556405395424060885085867096776440908718355562088759630428296058017407051372611061097883564626339691100559710707674077561013150895414906715259045185775661018883128303113384227211389617339607151424316209330471900591643816902982037786863357495941271405112032553802733188388731146738068112253355313039776079933773683966619353492829809347750933773271100830344246252882271631253876365358985737232865151792183489800814482615940957137113507641607029060875928848263545490444147947374881847269495612386065221688461337192422032084745035840469340825556956046305055175114396627020032440178833333112609064997464563026597425115182536198498824563247301549604367035953381688519234946302963314448875299097369790747489846048777286820455395095268132404721268071924545071728221087136153644728600968876241791920546483489507482391289520838820277497283294989515359701564202836797638950463696542295975263197905368209385179626252229363459446645833782516144756425396161733904735608642343555985326526005212924796096064913956998085536007732521404016412506517712937581944457687115115492925659951468360468225664326107672256045959365529151373407765731219173842272934290309481501900867906512424995259637595169519895531812332960621121020593030813705380843435281961429315870160541585256966226239540284633659768835599123264927956504956123388508701277987807232154678645932115891358186990783588701314437768506980356447985266260713543100077034550193924779266152931852765384139853730663225800627564915747938919276996787309721233723412829800795175596087686620287145973882596010330839897443901113787803860099913616188842630429788710571911693170529558096883891733779212102846579052023666421986181287320097387963167868830943071550183030354651366695999276924602155917206448401475923043024400308948116276239021850078747928952147175564358573187837582401511422754959689667384862440222907998447642907394660423208408502936272060775675558696175574325216038659869257575242729968982302339829686399240945008785799828256135643281659312644814971629273840889501231137952424256199650311828206594443624230014657870560927363190458346995907613319709749375759078649826491658549288516757029485069547241736374734685792826803022337211337829657562586200818377492459401026330046264553694972063570991229186367297283748419993263462153593062413991277322784691039404714225222112947152646856584372002611378406794525750046349066296833840370248468000728470618893602411889123286534350536949303333973152509481226259054336389006615456760346477448306245021389936854795478472607055713028645671417295440987842163628636832407337085368612320616964564276896978582839507798857153603362331456850481404929379519101879707632923478232020742840470796183582818884399340073727017479241492585026736075255699114845054915582086893466396596724663131236767879557406658800663406894675954526489964116711982663544933727048752818084840265535848246992558171110281909793547862414373564793768158800618777319648458246138695136970265765774118298038918651768262316846749691808928222197642753947977659192986061098975743100021198701454795129569968601902709573696595869384328686193410093947531632537557175281158995364102455653114742532056540881516014049830355734557649986064451656739748126714014872270794652712500968410321017100502346248677076504418559797003501102554886888322236436057186406262777646629217972992791719531373273938041612931876508109017980116488702811323500240354950092513917657930486786594555436280098177716659243728740507670279209778239918332276325671246400637819757714880042492464968046574139906905150458476122989182817516395693479343395796968648607987558356787853920219032178637327947833588370343270820166197641840718628162798087164378344651395373018649874493054890995500440240151240568288263807069385658732080650084473372807653093874767169014338475163334319153355164470251450070390796446178684448624277160642133951121709417747126835462041689747071774415176652235389635905728968729903494129734354290431101218141337009486228730481878155079863862314604645298423115330053841840221779263467751405384098773919948609066264343899861879760795681522787993318483455078682485531875606910343411342957557275841413456367770275974887399669706517754272696657068423296323371900298853917289710205252114377978957151960861755613623179728668989220984326207627975233219495529506031715592623476264963947928159249905237245063811158648415836019301835848072080806845254100775634014866034421808912172829413612850313492549332922045131142663878594215654339105804405140355664003965792261876706269683689741502833713360556116386448186487099268051681820065010424439681175351966797605648715115254052575576384090211258861470647826185612701851840884722803424063902852551549571173663051096326103582630026070483924464005117651584954606023249394243688310157280731348076483735745894458482135342553913549376095983717101018145721122744576041815993467696943049000996484512830632517122655520211638241097453172997417108297580860091471133939765619315009488906649364655168312075017602975282318545158472241536552413326871068206639790805796352712137848881725574681708438899625427965328256019368155902742636671864035231254500810380343037337558243634972934093254474044877916997879569615505271947596601062476183613595707602606273733011210602802460891507833955890638625560432438817434590220908686679786217660642637639403019331157439414095700997965594611089933425300898036816527998187184626870272831253892296545168537171425967336562425102051046069643079920032835894932355451135957012672468501388653136516703206026949020199165108185681191061137564326633565781158383955363233002961791234594643968011470257036247301828473714125305270265576382679685818819443867321233561715855624879137727850437929398230253297715124678115910959235803665069837185332353383779154704641853333392045761266411674865418170644627198901885408397408551415340634559280533785220002402506877577528547310399037480765117318775539517228375639300655989670705167134897667673594106037822998005132309646691489468859962310335106253599144673979506019655265230416325953016189556045368446671024916844253332881311230000647788408889066356883776404584665162436590808437633069819767154843850486193633078719254329897191691091273074225584890975522870925721135521003457209886941976659169385580646520093023521767413486479228459431197060997164917905888868072277292660738625092893896520193942542344914920598296534488882824382262000091902024722751169406402883842698196325737991949287328511294541323130397945358340848812040604137775527504562000327075578038166755133909007600969880687830089707895482106420434082138571104002017984838009247578864142727775958867633223854827660078641643002379910439259970759666815463695942711369773569473569042016598032752384875668575658519405147984315611357633480775789302999660549217912389144081934511588041203836242312570333212119417101224219352060699262643987001201833298438297740698196781919877417571358515388763237293082120394344686229980154911825574207519600239989933048848569901296635148779375143759016919030210659986417835766507477078469227669777508466478634787110311501863566932944681957097926732074174835685233820569902012205451971799022233902059569423497642021271018183641641149975586668626688770817878263569464530495411737295350920638745007368219570297257298006697157384643572273247800033619374409310225531886257828944561630603651168066850763795021452534490088707264680229031307299069765236609785222223703797039489284429613723945781806362182965940333607125926868297288886040646593072151670043007516917929168984609366417860351925019673885637201602893813858826544833877917791888192118955151767999639943476857552544210302097947592700596917521177014595937424984813627350451268497543984404263581913864558965419634026517590559213998347885868013464671665120057853292441680723902757395803426205963886419508756497567815522821013904526023298935945874381764102115652434409114103679049179263796070306699501584473962807359198258116260685046530600215677603311422764938607655834650928681221573294325388843039651792617008786620187692359900162963719123651042934679186624368611197741147493088729941545536333435165418558985345076859645185561312657593086605785073147930722679156271982477170440080812422099499831351031490661656863945873835490174251413289511965332721797679039182569381586365794604902396364313003892841823470082210245787792431145204270611789177618580776081010728667302554123755971329526998196749152446485998958628430579647254094041197326630252985251083949489616940449549057361440858478810827945854772602678977025628557260098751527176378130124192935598843737542308859532526447708030384304674422473282621352623075167070436815355474980373047783702085388157098193934452952592702281890708632350191356033121245095870663826903853736908897085197705526042214567321739088491548759388793180940954869206789506132778976928439242332307541712600736072365366471246931888658503618646333134940605232700869314699582694115724969193122904341306082657266101434911205450794707784120333137047016799432793827224421956410099360718399247809472099055153112059104614239207213112834800169833763210491696975068166081132735846715993165826230492385882500593057493690381448541324355774925004098465468131469468950439063200892804389397601255978791067942652827262923894143818806450566088444780026667855596031910641896603708425772422604472410518370126305839903327213453815288966724843744310059697529175705190615519847688576910705046336655053026049321811455087070293391995298354280690370588982632640078415175105432589119063824480196698608739191173088471755376567854934064458871842825846646188643207920643774836565170093005008547067937700325176765899355187573573776708228370455484041079688100427563684591751101830027838484086549776467180189950474871408063832564184390350317706363812532194735570194724410848900615323597315010065072156410142411512641776632270316907696502809078404250471198055333526347496085699854647370719082440657858381899171370565586933106949185919875572319687148385974441726474306363919212049997465028333018454950966536359061536710355399593527711009108768178782013592163997137706616549803955523929108633696696868236286855341333553800220983419655478496632616980941323075635268504985108317596646262965478668704394341910677798206272186855759547911029257737972696266896559206735782879213712374892201302323480701356424493132797003919187085513899082934211603269816567686263117968155410962316686998544525317978143734516043962630869721814683965331251305216985405248990276566123966656716327386727819733501271556400313913660155303174875093321175917917021518333450064497395159337334791464019321513469990516319962431555832393180506142779967760998054230717123062116714544261942403447469866841579173896608365447172222921085286376548194980707179058896831590615528873107206560882369188344280022401367935528729476865295784288545696209692914564437756327315182101918869527251763852241176934971615355251549128731667314930945376601165288273918482259749720871988726303570532453571631184634351979759698039303572895000451401772971407701591410370557254102257975585955086656836212995025507630978020437566873886286839288443528166744470466508362466951403820527298026835193344304963416082399313159186768649943057643214262485693752746346074310064791168196688572790214065223457040663244486411385987643797585382027199179251484890075321248567644214672630748118116215332542337951826262063524901588591584002137728047507216589045489525562408166902700532513559950840343845492203816256061044624213567286900638657640950161514438362367595788387114482065197325549258232492175296527856425289385658421565642845407991840717017567838873125183091805087995525040094113883669569372853704951163715441918497864044984689511241320372080241452980375337551836006686817894743911471033981444543685796354092198307743168308515487849692924163689553041577876453053943654749053617066706048608923402145692017163148079345525435577558876599189133433165580788379264458130982619029401128875680227417911035374357673284904456638602290484228062718725030897083026755765385934140087552043992521962191894688727424925368804985527651014378173481094526577492720023616802537238140218699147874010975357415380454045625063879914687618469173203571002359900007837467428521716529548176035083410064332238864757736051306220401894534913404855552879034242693597423833625510124890351803625230851519527245479641823236259662405960312035852574567827913175865208670773613559808219414341539943497815911072267441901600873802893387438846070432714134326375923353177795670660243838065096954269762174119065803496619456313879637781110737375865076273585495487700085222562097972468618953044386232077006430233455641172452767796870741564884294095589547543703640154322465604480360681421840457633617823496622805282105201079524300542438633280439158463965682596049678720660852394730956250542478657004919813430972771735024334709136812617510843724877523995798377306625799794854849774878601163490116544970334118530144501908623634310880340491604003260561831215848358693843277683894444347215914154271096987248109966910294186152671211430322520851708910580544314209512205050739333344009526578698628783818197491159474500033861106566841655315945333398805688732382114557715188846542695846282595095798808334729277619505018460155470060200952283850302141539551899350826672878452556227753524801490801856101508791310358018356489418824875809465757382919182237866166778634896132986134694660907126764757205193537946777660849614763558299753601066944834574754183195432095499414057351421324189868245422651617743301024822151074344550414697146257582125136756030943331048973395854026799080195241940366880192555535715841399148514779400614772656745779054395351351794254488128721353900677171181319153071944047352670105388390888649705834136255112689761170095762900638390907885002141972881563081053407135752300814128782478665095746288974424300761377836660974276150851226585553975641892858915665427063408926432084734039279948250562210339069728445688562881664429644370669005533366512712690776324062597403845625128601802734860254621285533094833029248183810032970048715428113776236522489238665744773652363777568736471730185116802592546914104823723733461468219586013449066854293224085232351243340134324570110985620640628269397855761346760507696461304738696060318245337518587516628729583117326599088761228421081760001258021211586559960772623192392327607388460743412523846860417893925755888611554759280230238280988378021885503300212451913247878160614141228711312549151516392549648444299566703672554052361670619438658458206798298626665096403938538861484329772537946385336347546510529860426732071059425929031112678683362503025397230170079474722062511805462119300777091996849571358667287460016632493061874185150504536893826986239311986126867895817462090725601924277903887727538658099858681690121870811986613941883611121623491216118843228127507617332471427900981183694249644427467415643001484176025619396319807137028702519160379226701550110247806957195739527096464397670822144014219446559347903803000371726850141029726481575808936728160333921396508156953704818159351035459159259988863150634820250130986201582084106636848209976906114091336955902588556937316715253631879595900809447870104934857594712396294211075065422774610339170767604245971336032745423960283052206321546887257483254198574519393346131830114972937597853277935888069888816632035414379369022371276688734437203315241687570265248446228569521435651090745201204145803554652236305474121302787328602870298620825329493326047644657980467904396897460309768302387060183615564385609115596945781055200308422799497891124678139727695851768675266399716716367585766503589852630954530503342216935929788025678829654251612539236380263953214021063321334479893641834895102713897264862856294819087896133585174255911469785532569588235018840619866618152812522720981675560354041824893722983263185720304362037183744512166069041636581779382500691477447990097285257163916736175629058527625217088054285724158109721248754582858749751567681798269217480775357548488175758910945912999980215100397945979638989256979080149656742207586645729137575823882832122124514678254298448344172831456224142482295366362431424797255542391670804079382512525678780956749872647271159085126553272452262739474879715722547707889124676981719096066241843403303490043472239824322470466138096080662035904224242669261385960657445367490203469439274547071743872088403365448280459678018848272558297230687491209188346521204727139020803853876235538970280184404905305964285707147390519071920772761284097275078938151637542585833943293655158417300455647844022855037917510400776869296008776487688699927302830553971570992420095502087021541702331307802156947409423259241982050738207605301756689485313179503882214095067400695660334082718956142036643593018550039964936431143123285085615545493110197546138235678667369328357759313973831106387242851941343242568811426196640888144012841661866123435076182006138098415331370001355972953852060716484159230078058409719663292246529332509196349972727934511988227423790698042096453972659692595332019914689278066253537885288806710825976566124388921506624448172833366278162796855978145172326008388229186915738718853460219541389498191877807764517745463284857965598554184799746468779667569280964618141646447626620985967439473417399808545922493232269397202256943426818577507137394625856428097773014854854033021245717420983115659642677794123064397053610552475263528232715458282028799445124250336676447045656591747716019640363865803130451620717209113732291156079121737112732635439993568246500721316699886779032330592023676626630785436418072500716974744032025573278689808926149391356586880693706302843369912749366642014196906065265583956412714467617448486517665301403081662698954899264828339651195374215017882640697381145468563617258430120460301113519730668469225756522668744133272700663492302793076860411859663784897100973852295432333191852147604027302753531289332947478966609048709320562558422008272068958634785549280890212955324548939045822540789959293825121780891656725051560315026993620706199157582873345741044495169211483702960505936162558240099288992525243070337938132432149424600765824152182642113820573791341911695185819721231436484424729913726774745632742817946698605399370770481473270034806976606438067306340491109730861989520571668566572415545002803419910134823097066916365982805016950104305896007570904208900285977561772175971762403814990695677399615562859351688314543487502423447801733222449897139879814059820145867047821620786844363230778305520702846714673917218014733608362916967428325275830670719721779321670615829730864077915571536359956370896124031214585248587350651143467926662786285910343863141062555035569845010855839182904104877340318664945428905792382539387517428912577318555682911443833699663734168643631294844113390246619250976309765731921161668070165698968168806891969275678413607190205762559610698811798779136220056583197344303967461977846908804318041662378125059355971994459446503969791077639192875627177160989579586305882998057387096380410482373309626218864353735586126599728986008320218623961939173065081460301355659156018944907538089053157936576836280272302287115280796126263205608830908517315242034465148436364864612107232149469827755215767172637740860504232559010069776605795030447143678943941165313522235824889382751753337029556140022350382644652461244447483381853802456410956154562106924803461296916578982861356168029974951311543191889597997612186633407580823447162496738375056183331293807282297003769255695452260194692288409902152533531967252904938009281140065743545413672516113331004308540723493207445819858787896599106235778511880198035746206117982390271104075629238805471900617629721762991245983546472978342314174783502295695027149864693825787661429713223386091640833084067853947046603397740831913679477652107764144866512529153508059259590240050216016973138464935448653012034871733715735953334223141599007437230884030262009096443399365225388994452105264411852279647939860884404821315435571621841963377560903279146734153790853109557188743432798415716958400327493750196150269953206748732824780258686019215377270555634163980022988157474426119921060508864094302873943106584930632590891072220704762749456050980356264594803345654527279345090458601598284364322239722416753260704227649837944225341233162473294911269778647337262458561401794126987889400261377158440074875879659988286373281882628100214538438577684566102056480990311499547380953633133749275263879257755992559616267209275548349096937365450171716622093298822672102836183311002910457640275374752775946654923378038302780725015268223686227085438409046664271289350176957222533863418558960938999754704099460851728281763730681130342966366565165344306819366767107412607133968270881393219077325168062883014461819505142997349278120576031301361321559427875490714793111557517694902105617503947207304463342988770387820932834091539692568591476328079607025900986188274577954168001417310574251884972798704225585795982239877353035824618819341135481314664344707179288511460332207926434880827281435456068639687670017825610506374292569215531883581538112176690754721235748839126813879981790952885869435840114157011918121656890568303437152325651749513592996214812488345030252073159426806614340413332118938956388568468824314505206388876124039404446777292919700489721604609695242349229559419596546149878645503549182769312055590462056012776900521866973873119947765174970262237884872809859672828385745074096751890716884384717491507542984109479002915517319702880692165982701820473426466696416673639486475482781224345358336845957247506548690658863808257640520224145938539655297865660588939177722354800543544789484521689965175422007084005101725137538754827558395678439731618149588244575659838785896756338374352575642583632122916849860567551721477245885815404642354752303369859269951877001222115119198467643897931526474681920562445521630670694871402670040407354163417645708930392913384862137621448990362949741505800457113325282467926446637904734945844177673572095554483540820682449861685670228315472868507376600943250057667183690273484441873128561886412811660279983608762578438146185952316292724550265536552089224004404780756295928746738188393026174764500558556632236925729628257940642726392557400623011297351222512307217711314880207374908088228611286345175260822047714416679610178074426520013445529675536251283520630362789818313615488808267404172385252728771703324251489921772378254481275153106108867377270258660181070979283277478926142059922117840005025279569601843507822755826046840369033489551157448561080410252826896737290934948352999744975649639659566561292611261154678036217313849434322805459445656734998720159101150993883512596750134765994831090197684712729147573546504518969186484725100742079952892494236300951955274789177100735623355307910798692296624111460256822879237348493820105662146583480529289469611129111519325115299297428398674132598651331204779346135515426057678226635279401623028570183501080952629151580462345865276139473588904808591673816414637574797072930294514314830193186493836320943287624756264435443743337647540198032062817390973238622132801600160058769196170205913749218093368681741484168521116056724678133864631634435746764130601075461836342153120032596678794566182569046148943214110453181425776032181835021891448027399540094041865879975107432969640032527573998664108682401932823756219637308227584473915179566680001450381009580683106078941702080583411909933235166854467793487290794230538744291761212441823023221564925615470248089511612274152158240247257991011263813758507372942221540063678036231847516901858481373819051371735708258846440477954904187365569999389522431774397341621669594291644367205125407875266662810036476915762903197094264742604148930756588280135344050198375870534460710889458766112587804507241089420310565581448116121258280999640896051575237356734968408484955407027710671968819648978188454263866309301326365886783335063631053746430558755447739004108557315018156825141253789946774114965891166932933300030058739634716118078461227266468377978471103641163748013402515474153776982742798788969906686279719161681456971037319110491629358416096048124875782556886062991768410435730707276555062495451852494050020760247237441621534892955650219093200349037942686888009459159940026961039206393814650605590997487354022820410144377303557490713111335382115817562616745907118218782072717749247836585663553403283795281484885147972452264909356156286688813428309548639236923961744497090662596779724775155281505361575358089696703401066214584766839191805973519002962466510243390725671475240422094569701481545216664740517915059588246209575735621821603677657429771781758013263656834738410398627311697072271603440516446076147710078684281333898309705433734237986450559112129982701502111194340545011420668208220658035819580606339941708751440910043617803180970589323674684077192563372108747985730020624280202645477881726306996162897296539300694058731895147040672992039179941653880240056929436820484005691222616868139591394355814694484607303565675540793557128911619177626434239327722709513685559010054894845691336198074484827549671283594247967920921331245540742269836057333255933308575016769274663915312712840399285758438459027732948631864366753666988058362460366658993800495745111063442707672606791531409793289166868102018503098963987851105905275388564341710893425567324508537745493821014932455180856466444085868434057619606079510063868433540422967685100973501183957509323333460590032009031755397393689112022882332380669841874733686844877579047182020228859228154423209942614043137155721345706157246445879060066116726357096357692069723723378198785058866816325682357110662294934011152611482531326692258780560920294381463177453516204601503483146610120998155573698656202349602706326890629991008632207230589025305321382552496324724592406521016314143048510039585244663456426732098522938558059704356989218848115222628781532310596055952905612144946133960595678979662285299674646755153038604500536032051436652564782126359994832411526521493704680881628167038743602367142831849570156108919123212371370086057983542836274692309266628233356231340233572918490720281077541494423458564166019871693804773021546487526700200580582390132894266104014312186035140659502116615441234964550913487080877109300021355452675967245394831121785418973047660171147480498659049238456426356373010077298917708002750942004998041511651757753251725730713050024594724612627181889855878637855260153003232107913123935684869255473497935944640919572770215991985347048476995661384857025290880187645575670349753866947552961448590505771228733877555455876730822054868023049251999927787071501625309043245105174485421368946453224892082566049572818547865524166500584147601869972366407577042685977422500942165366350608125134265057735944378906083173810630903837087496102153336329380837415757656933592605875293084211995187977256692108625868975780335102231061883803099839175655665726962132504208231259351356434228986595921896700578296978669278084392637342576433213035217426152202016585876044535257025597997758515241752370943871895000559342506028112605104432058471809879298219313342529352806961557171094859539038473819458081659531169441972556571392886312735423177715200413941459853999445161388632303753543259903188913404408469226157275540433692631241402148298841241622464591485008744671017902634839043728828237817281971326198850236744450265216232312321148355531673649457951926159138602002520500735215304887048710264301773863052855297981743083613855048697438527713813413613185481985548684803907078060120077184602646174740663455350771355514788095854234524122765286991502316672865844532698069210235164396966332933469677822149363725114798661194742393194198326057571079164552530697044763918031608606754550330352166028406091026031870039453193859634731277062847365727504780559104516793688151563882370261940610873084172025270158514208012793536960402340090603137717952123147469275719366170694538448544953603351100911590784953000706132813344337171286292855579698393016652752790055577991242368458582475914515759232915275520550894077830187023044533278277300865643599736591255597318357975244682535998499121717540286547769531216949253467246142688701968695811725679604834638099585171929266337162067541325718333151892050745101457200987886198272477325098375999338448818430748604290927983336264330826897974010437237208010685158771998497507884112304078649862638816323662024944184612706589783717677104395511964656305960655066577803293186017407860470379518017794598657117128232466283019156516808334505181440632185059077639096150732690770302837002409444719732043896704605471374246464702929553576614325682301411502523092738748537329474635537497334930801398269612436737330788157168238307703140553328399107728919536707589599359324743859668983651836271637206105983710392077472231426845530318358136103949181822516455060364518220461160807960973582937151302466165103438805930926940569211500906130885606227766298729033442561331475166052817086109511956601501259595685697740560154389666330397374215586919605949104686413370052477310164123378639702743271941370512797605201170498664543920176139494154423111185076299574581779807065148885515477767054673583499013166152846381418083446732877058639774546937055260611252811849267940237846261502350744503023199640115252941184135449267660516056494230576361839647585886786905777874768175708589892857734557224294971615444889452338914337462455483926686265901634317044810106399897928337751854443362328399754941783488893503246066732424486649604123243028623411340687482781428794058071850484595826512841011523794623031243466289603188114156570587834007162209667166840541795434015014772534682279385104724415521796396916757208167208836686918935165010961385513410162733701891242263461793740876791017731162258721647327745749297334514625969012942462897650231758135526062357990399887277252833065585482947530562250357097218867507791827972512186098952000263296434116784367715354208380215797512005067362608240365782848838767892187529847875452701819366690517730627875061035741954432713902784358676458596767624630757596825541824322310177108214301577222564560763200825614121342684371503400929380299176883766262327410960137689611509030646441716969414654636635714247474214228893365886527804517267013160026662791673755089421095811011353775961796906725637552006952613716163258977291389428396468407007240484205534803859772843289955399328419954418960308703627473243539266839743914859444564228859053146690742346722659317075080878749717897523500867285442138340546305282541918466797081655110277025672462836522022252255338356432427107314587083870450310562471421714524775449964425261065756015975703242515293895008766350984028531884854212446149205528736780476731016566924528890225798451974282408917424154654943751328534312050487100830559161008636146326848360159686654772166858438050761459936096805922733023916971594122310602550287275557659842416778013442533914370652122538531806362014779502929396812606051818294019076612783599255494449509185690491964195702886669030258382895101120738361060638612105464510496930194320828852376069460548692201799229567709260316482952882981646956559760233194849665275161327978377230602733434547525224293663204512484061716106976980386957931209727624575237364984964312193733409638774408160366878479316905356780856766667955885655779590547962304270491198310180398530274059812124005371665548000361502314739267053232284570417510576176902545569479683310479262718518003499859921489322431513935925247945304469908505296537575600765915359136556764894571219511001015469869013954437623037195999917725612215306969669717263150698669850766122633752402772251132827748783766023625672511756338439959394660638455435667241459286888623881872244612959622189399943826645789885610978948624414892432466363923120040179983478314239704253854955400459408781328061375489562693319885611566366640741065975908632864683443757770426220736482268093278907083450957066743548183319999029354076497796531577658933671802310594509322238331891632889183850207997587220725484853251102891255739265393577094766549127010993571238611478659754640564096927123239539607259810145941078972586978806036405379682467358089245625030730632187794882599565377702452003871717584360662193997543169009404355614003387573524122101685403610424907607615765610792544401102552388097472143040186400698143167025625305466155962357691257422806174356289060510560688316749427821439515905467934698092526536678227110948140426812941153406108588276455763987940262112879019834251626791857320258166928690353559743700456129188885160814121806873206910905325233104553405406648868044687117527445793561766564001340621159793124159088099144889865562703848040402953066897250151448959437924014687769580652552255654864989932351953754843114359851965110094772912859192560422153115705040324965233343810659802824894208428152922735461924336980068680355334495290165962831435690808261403092941625185305746775981110248024927132102998155813300164811005534142813797595199074282611444882746189070283021780776358815958790092878742659990939159640646804406595411739753213413278074104542209513722283790185074607095140917586454913757851332918680343430282370554426087097723248135571390125900753998395140532424323849900944772674036022556271771409041310958463758632063904453781634549036239329164722990995583173404662788642598332771365061790023263194265369032554567234540746187202857982681376422889170054599732616855294330313710449629791774531877284596931001737915922891793640212118881803906986000895677462413737795356895801686057297658166804816930615215931597559705085639836835168495074249898266282114099052308186620637282732007174802347662241759159519169311127945085405157139239354792633223696105077799769826501380272930975592257928303235167440445983239773230922360298916199393227618994890969787946821838872313354469816549382057956406744186599289352529048670695795500487096292907024095403893104832462653415965251639769148323090894016126758871821862042373434806396769008239167193766553576576826370376829069802961310888932507639752051439617772598354807442039657373865019801984888616449426225177760469790204461212130502158924426325831525578519533343615500833014676040516776073752329700375378690181320432520343933228221211023029820852105842927059095736697715706335586545885181568154252120292457018582210652971348877989334736286546565718291807301068302312552126797902420014287272658329637025984569549678654169165390759927237548713150168371133834709007923302090848933565529935524448210812725600249043577602345530809478226145478487911040999977167540218202101563877970010011438466416959493706285720600291092029823930158781433644336589200531717086057005431002835720566265204589313984329155532758750517072754615385378863552461886173603773973731908048076668884309750587223461530909608507638524456239141478674166806418130269254626288888894686018381069005030694398906614835636912200885770207818621267905163648204662524826869665586073843256963266077326083493718931168885901181016298186046115829086721133632161311232323818197971629271509708719103288218818888258465820270840358518084626825718798347024435775250037098570474608071594948836564355376103300435677646332651357751872888388377822744273092098841406052849837038031191596760621305851505682354407440196411761827711161018000870718892256467531144785382039231228013115175355066632090833188161710725443720453623470592029215661604094046332090346065200581351753029097200438552646852105600071960766701672287098600421045567512687548887212376816322184407199588501651546479203631751963725747495718074813245455585561209681763447132031735219617992642366193428956822158617366946256645910463331411331156480921424585533358569581473119111771881901175003055112366128492196530999616844368467472903064498817597945371152969655047779101847395198120587162064704418311422186344195963908987207109210393590244537037694386821090589714349950867112277492428879088973958706160871960005099272802114507782358861347038961712613427964455306850320446982944864783110059983261572306923073468288814139352773724741989124020921197256377018469389278101353999027083103445390207015256716678827221781974463150379115512632145361320747061107038921970907243040118026044609270341679598291176188122612085878937528867599546728579504420542573564744752228796579404696615048792735902758254473445835523340479357698500844962511799148623762752426476587859211623168006076958048385559514580511159696798715113666546432082879614026728163421997629620833329477099017636051093764556112521864505753619819630072382455288216594624117417341937313633146621496784362141383492032665506916398029678783928063717415459751109649434772891600903465271188045650301294916932719605639836021754329024479529468808190508279949019113274781604925267116164597187521537940984141721648342123558120427444417216753257664935595447588508105668767318753801032801371559959729169606598408286100956926349676245527268420123502987066408557354673051210289600871134439473247108612494590608679029389977898560248252127619604342904131446168879369763071795022308895312796489223519418675738353407683328525252964503860586673295849316591710839968130740722408706110684760667116794120337587493907265039618050899645452687206178641171908176080514661452509121075932733263229115065428135633047320244918442490519623617535772859994850399204253244733200630981732567961473378873271508219895827589258931043621101815515717927179816871698254636945209869627442841661833600379461397322037948378619830493643509090136660277359484261196954968375361564512170086818374066072144191204140278279901052445084029962622239586270919644944946078380501318036058246533881719138697031049812963262900970421802956148535991451614378442915210351278733589048998520955780076948793306548750468396207442706923717264600031399629092132042616740440836059177535552319309506529785193784725729318101157458854123727300705038791357571671735743357170025290881846533535030308071886059409444332206668550658275763366898394832756962524538103052195373804738796479715600280422823056607900198819988358898592466558039993759729754241613451613331621740403105756512277450034714014109112873939155237886812883743850081146041780217450131007140644514716987933665405840095054796921674573437548145690550231793758920045567095031300095590414708155013827472538088861440606885719551517543812203368959593001175446874534283875928572504554259515127773674676689031108591387670693600250096809970823057419814865671215537111691828504752695058015495695817178406507796499720765876877418513861748192689070502752968648089902111770323180379295343039649688251193369942275207850522961380414885153697852603693313768353428267341755707869591519169205142605963195113561452440191175958375908563119506198897366692509354355114588914553162881391811749998308966455407822519243294639093822387748107623082636795250299902044082272217409109615096996955180275148702122097393151292467294043051936142789151080726883551794878643816281442781072848340665799248945066777126425542761904396280163987490749735911479990039967882614420856477203508798943739515329898358376675105553672961798195012588660627251958824616740209369845018862128925175198204195194014826136815199684340026870325450502739570617478187193633583431703895473280445497923024782025489408274574347373895004739307981221010054433405542381498888574856963877740655432147439675211047224980108939215587320075721074602911145688532534397654098970848974707435575986364462196244758263458218663320975479568974018335327001203395246362906376729243091808486434753934697873440965452883148784362499427617166599478853695885960192404565003598274699326883482370746484777464646008825140611374744551535578198892210835902984452991404464414963731431077563827948410789485097745140377654965185144554752093376219566000986480786799512515141593677596364564659611247118868690421921451354762554802087425352201854200809435085718528252733916125397862816854553907524237145971710670697908916298237801554524656794679215955882583009896964065178749733205745062668038916253929669570301513986210593160759397564940587647973246691818079686711750353701992585913919742634456575700739166105792909329673285120603924380711453270075538204103601613072073382610958277560965612900397317354392134647995140816067418962071197369807648423553692681381223324470778460780243971118488884824205120400612444538781274537828327368484209289671011251219372451274478784882258782332657142456394578642943178555967900805690039337974869729385961931704689917798904446600799170998756133929180281762600671064819204956872352479876841755576002070887945872844464999991766767431419605877731915787171511797806786575400860348272413584921493820942057915430546815563133906691225884396220019816412507286385958038105438323772810339834854696925052301042616907519514773016854764563133373546685389909746710126138241007892410679147164881122960734292744254129221532284057105203010171437813603180010908452206182502260695047833773848240464067771335633422371046857333782985622487442911897108388572869215322460882120928197473991208528176157735212451565820592675007614796912759244259265014677046123309190199208227574303497625333884462748570137511950267279419248432407631767242934864346526893444106209779097273904752222891903730755323046358700899529049018259034093620223239921531032566394158672904029722467544771632960916668799021427364678238821491047177648555755403627897031444869066778272608594369679905772488296815096096319348977875351053612869148122476810429867353872891038746701780045851213330296701314269162157543190259194594434654587558132082042050099967807469092508823601080785863952836575536511282885801593070131154753665220996849532698195308946598354180702104605479944758845112430124092464863469920620834098280944039068676884055049931482195374461736369662597907692657333670418886428403225343076329573502146893841586884734883770877210062969273861715689342736514749251791563518126126293701732322929784218757027505454107170014380104540561056555448978545623783166315653496719973027995470863000482423467351041211354355212709114727705919109823778508080515077257559573233570087212052144331855198591771873251160796168764441223379211223862809191183959202355200001578287917054529290496211111882700675504700057170185415295522021360511706683285624141355784592497963634776269463811956167973164487642743008282845110993011924647131037594665374206755056347016584744347723816217964286795211567674571130539093976675129587282106450676662433372303708185072783345700319393369780567647410055828704658305337833620153614490032022496307744042154336332841849877977560574525849942143235633756749832816267326848048865137840539957590722190768852503326243124729523753051415090849411004595080088035960718550318848833545025153712709937450681983542053150351551924109610182079128626944791534295323384835678041986074816184084061950025034491347022563505619042998707051346886768238722646614518008517290218882193334043311181424639604952860699819811483330461297162503490243605832051560281848505245846336061992558882116382872494618587773192957119857840448037299571124847928270336714752219075075338071589608947540528493106428230988391551469657557468524554961013864544504665849158314792764524249795757471896119277540434779684113019546099073569834189482802910749033220653005102884836074086420027658529512412021642581354983371826911788031390714533624115056366254138103211388833238110194441223806476872037486863550443233475638134352264974104017539263061619413233272888346674638284005744600651504663325906530543751623715692942901126865693613923946116848754182958548392309547254910227896380259181098894159462288127891325509682334512973362552473301005094778633712395411349684925427034041406602462188087123678662087894215927683538654421201916110360399831084623596608790129572353033318663232227663289576414110950014960844404786042165214410538215537600082333465283463276912620999699292939837525000819905912675710656815273564324272674565746565218020905511286119831623737201389592958694830386349990015763541079290107973017737132492629983745875862757741604323924081245508715030883820827639364506006932745083296352601413188435640298127271844927286439007427795284939202307367404441086268381663884188784434440171406180201913338862768329317813726281275422024233961110419453405437061884797078685089154411033045951817239698251723221673898505606325532301796351430164432083253201248658452297722095747591645933379357463432955428092459338551579088875512168542751640075796130732779480835074466420696893370093937008717865163886848501281385061659753148471565251872288819842718953344339652594573346228110019338340489010241602633538287671970721234358644204595857793278487096871153292487284089599571391950322499775608610111678123326762539319561983665837992973259345564430618889754607592579017061732380763009704542485809976011512353722184360704042974678961247777015876654077739510992388500724384640848412712387154340974569925974360049638276121207843529511121130670367240675781152742522572350640970920454561509020371341439750619732690938146092082458529903767366485155691555913793755423740042687074848390172414563023887794360372988300675541446773862751993371376981156673291022218606623933780094320339880741133792697548782616334320318072638224853465469673696059816707082405808255270370303487668468329152045229684186949611838051333070310259874127728297829721622046131913642090785796622880597299232722388949851279553917619254228818257823932064769760111738805269441562500185386701424880607384022202331875701813629270287086285998483900459477187101603425014516558505172100980799597212830536252534179687742569979422554233236670009558050325084167090979664986098384685893991729101247214749399168577718837140643436414699559022129853720539764229049900025519643111964115972234963458661583474044733262051297125865912208663968151968341088594439686832388400518919556185776768272930203599434921944282680621677352168811412347438071646707879149369025333467669122998190330221469028637111422345319183633091491544449294543590023330788969497269275147449508532336301115990522304605403992642573063360941314401196371843563819955783681823812705882578487833464845489475242462599951360470017956283206116077194260853451636353785696175909761387426303204266838185980622662986984761334372629478246190564965735930622898977403905201939649215163784386475121434095482004455060507957649201478516369380686514119077351223981272633553088120002262344005405525289499713017010922561171663643867110608046613495765230940840771643891324944788510504175016776664800751389180873594287479119388477696213662923145865705527775009943293587816974843323641717945385166696797578964263535742679985439855715323504660896367931074738017515779435809601134739436115595990286050214782852545922598810152328074241779561759238357987627034686393291862273353948543109337068433655648653458265424923181444823169164894230339802891668535507645803544077340891593861539718325841887672026301781669128139976144775925364358659660601594351294899510528310115441709790108369538692045610826421345990509523667735932719333982496829856013404734410338964564390795564924595913981982835853163202011690396907236710761049748004154035504300777315020319557745936386239620850726482951429647127717594703780294445771863682699807582148580687016283438339694036248484485941244565947620272043890640168426967704362346107700890508589328754547152888695966976887142749308230977685982708038044075008745629781577214879643559340343704657387243817270432780271794793033043476821663514013565767499691788007079983718067223053591715251530865534957521026883942795682085737952868222938680159655232165217505340224219028541933863123243546996022011525455246837332541652107764487112701812143467010486604056336512673988853778148317992981272441861160778912315336050102701746200058416392109928098438437015348557911134076871796554757667436476595909048774605338366708198149023289564166771306087455877323374296533788319171625460211088314251984900840550097293472716194817653670405403938756452344449719209387864278388055910134315561402312807701746678661797582124911578661540600894935719713563379674569776140036957865756134084157343636445414152748924543261859840075021615611088306382171944916710566669761554285872429610280225808423105738975031657225886563362596890714613745245026632125387691980970996480997928314490259181856316197491608636650461449585608991868246609184552026606814521374182195077119043957803493675797934046142080263544833399026891861968886989270553980783308001681430525297381170803228032370159161824605378758023965150527896540566435133387008650997394071900664328113947601475197629460278368269804442194872440981038681811833194301935584788424403517696565755713067625186022679814409909074561389231921279275024619682811818479359243139839420443485924666467516853303930466508889767647822578077591843265158875746407434064764220173940409720358890309613278578263478260902586430527499372084310003302551089514167564444293570227935631282273161682849833830419736771692267305332780877123318537071982267339418021666860968966650573679297132231350059931205895868003161357762649589998310176656639564351545761942435242830648000439835003462247500878529523776917807585108304141752104472207221742844774458423438960516011629414067020550568682065393783951864409240568506984648179101087762136636177494000185908245300121011624755747025404192507001144778186887050313074076885639098431344137977114083952643063657875849672585609339989636748534936480792901133565192728011309954545726553545015206868894084745374621602551808088473800689143044158861185796714713383314986582865261372646068061801619553282312053247569408257580009793112680027007925943135857154279029843721497081447523189740349202745992481320441251204027594173028686259619263410159529451489588333836669048575431392302039181488622236345308088944993079378962261727091637815041507174588176442951891916959985100856631761964528322162259379526283392345184784972546541536298510980684578954153282840825831611832656395445875291739248052602913627245025379147557193057507123156485898993452428873094465690701781875459400891814396815409475123170368761763535453766810612226938019295590421022153604997158873031014874333399794120447617611961316886973470412603093145128203241503432160167773067386755228422562682797915301723396401503484494182927171300098891444270664792903086810898015258605572706650358076803188107219739165574130460339651919421436043026263203733135297097786751592385267626944044020921910315450630103994026599181364736226927393805907990977037657601616236015193999996453984647796982491333919659240310007557360653847393326015894749762763743117059754691411898839341648686952491820206196375525251647677045393410399067109222785055722709063667330843646970150321736104485450442564772264744738546407720390761181669444042949125966493235160254394723031999366968229625217596167909292560233457539419750243066998326124439798862337475667214904438669072168636364495554641173618000802572067848758945363005406172679492371786785408006834921425367520168686578394422302518336961493801362741200984181428692217417688239205822258314193177799829705701791388642690739368672425350001168095444224078219662557437604142857463711463665608564066987965495079712247382130387392324362310363210805024306288548619979488416001034447987097691528493649088928842491213755314209918518764682533611218976458774878938917288999860038187146790862515530820733888678667020352983462266186357932050029969099109733715013490707177027209932297541215710691704127088191855178205778420696725762166587562044577988399357539210413095943461031207057439091682052872992871717374777530278265928835486256667423597677504248575553389542238798612875994862988078298060104961811309545636847335534462617913330232060696044499653487983851641530402030623265892093075840687383402718182318180624522954996513944409424159107511526879057784179461597220187207416112007600019459058516811153985677119178736417557038466587212782921291368118281443405093602257699932060320592441236928766706318610554556611453820074630587857124856757621174822731621093842399937900593475682305977719538098485056966827308372229989798959393890906695512334680869627120135866742092110235382890775695361071787547061532285530883686770804671106264410341546616738821840384475784186928782259985668997249712756377059626489952455679778167912645381421959543337887929332088930678391397559921083172378527564249723823527744513144653662048208458536343410766104594966550464931769414338138299747183148642004695040304742220872191902468839919851100669191849700129354905188777129323709180575172966900516829378511932001805450167076778378199445728346977977296931429568161804155789005060080472164719375557790850367647503107628177323506991406201448174507724535416204909040199296494930809908703631335983573702758001440411851244786400882125500364659121218002010191565664155657830018408713313130741212087404627418512322574802313101359834409161460419204819096219578059702980036130666301641176427942548786743369288086583933571188106134756066276367954222409325891001611052711019880556447941135546569598916943536270634055019447180371617897222714671997872763565063318325330501930132712558225721360606378308038281717366255755421367665370153252681189743440395345940028770243353312182947090426382690944435857930666602819509894675090397756524819653655690259522869510264853164984299201187869613104153118069150783522642087436599597827372046575308462648301095787842095304824646801911744401770201432752169224243541709445072392206154201381100345669558663202461793337211055148016997137127407653569129770101322932508005405082846679163163302887349108971116585849869825311765455038957271313032072849913485152196779879651168744210128207681450850143076314652151424773451892170471586908605995433370945358337639598222869496497982402474499354761436302372996166301816714689698825794995389970752387406323288627934578368882568193159377090202699833602144371256492383867051743398402447220807011941463129757034903104690135819841134943848510789038755262496100439802946466394527264743416476140962480045214113793851109757773007339650540378824677407682991136418888820782380135936828273872009450434018187160029821930461482838055232925212575838860780002018228701377322223267086977981629843530008072952696032555328013912766357884415109687796657528185596445030151173047745344309736829899721545433581257455855345649385101274733756727532148183908521160206020461856973246025487358157974643974974665590161964735398362069005683339659467272385108822392719583092696250639572618568012894709591012618418637650874734339283619398433793071711487431995470410647391560135140820527965179483131416667830369730434211861615633442399826457775657952081291487218843250601057613188869500122685638595480729098882783581880934873687004922739508425552150712761253574446669978955227367981595928088668467712009472259211212452189154670816677221033608037924570915543345369181561325907314509728934785996164546869212267635698326865481606672414494713785896277493943475556240672282939001363665659178787180003908145755904929703149991410196927993133854370278658798986575768288630076979504059555872874366195663070884724129645351752610175249532477787324662454333826879293762083332596877143485003419532355694620083193105510725385026620326128246981229157229453635665026560544295145828259547649800229006949609280098264177303171772402027059556246571145122012433425360906920924617522945964181343804039302838220849089289744443333865842692810333218156012765569704745212199512968521116972861367053260982787677275311697139650527394669220492942038285578710889977575383837470036666175149978533568240877230206232903372667301464090186241223820070278723033671445520907376499324963558530197108277231129933423702932049210619849345154672892491662236731283066322205558235451142710851380477947400695858982177309186479230032988856206792609823242700291115062758629184034061884620830910413492338211991875963659658898906133062858490333760720165508360372224582573678173498677802495434941975930369116423805667317544640301398127326038385195256399705567637416427637725429836415537855851688043998853213389134005339380198752033432137937905492701524020018052170929121227057061388235165698173931506230814654505180369470295383083796788858162450101422604416170144841469856907036931460201575337175823560265274111302528329304073645267518466501187013712093352068594574014595634364713512546770808350349511953494115995027960819648002544152345784440101370961914598974447415867572309253666648058055312011350738159298201143327949499060603138256890654253374731192512673133342003191264276874152243138903946916946098102450483422369846300036793971730074279730141992815046188989372313282582414907055321885613027734633095857547589301501779032256706772944064490822653128277215312045935495269427058679490459743065569853315527035543645212859070454090190500551853102278887769270783117939998957665912142204180377180400825695217137965979861481116831396896412964008195421453724041183195250296693425315554274116160533889823240276988399473472489863407269258074087244910430965566911509050810788392914645289658398276497912167766767916266390043689750417730790977514020683545625069939115323100300928758345407205905318138020106690752492812494245918220476646373765048998670057291363753103340991773672845419047479093338059623112202695172729052544585269411100839145311179841621943919848004689356532412300103092168747772702551117804544496464210137220276180280899499373989458402812831397821704936409921036712016775125150576019507624947010615701950215741192934770588869709259456443023813233617043731962906782819838448029369186273647530803162810260850155887780649038189757108676661106137494996041879150621123539276141895085540360693719428960360670254080492748215431687831775549245713607602010268990995168516085133298962596571342044490187816746278965220997780297215867388924902126748546871107318560436046063473429479867252811034156712538131835411541729690938393163162403453856487315609924422150277979109687974790594626987708337286086596094016012190490001383934923325238099425138205284961609569775808006458909635694003257866142030402655561472520766921865930805692766631600267350696822583579074132350154111708880972857098595545887181309744684523297434234553090496132533513231735492041933583402123730989084122482428522611386025223446621568692280177914229568254836375221763910377437278364396687792806024864437987630543796840588791517805447992109241947053632703123915059552636406099122300596412763904608635164751047932814822392087017073122124038956018829403749159032924927199623854361846682529633114317370682286348649083471735396557552617165509371412141806154008837808883956336134339745012020527004146335715918611084441171909297109729335672709305696913908088815857668253119866179629610866664756712918125780168443611376818228773396820930517855453833349123809312540600156019184127182184074312727634923473976143339250067496868381001452933591896419295480866070634174982601916640713561476539419247636950302186005701118863000771045073799712799619091692769624220561768432777514944745505320383367478675722827041961531764007491783834631625174962678761304016569110554900625083104854133489121587615734428848666293705997120068534057269616688861231423439969904653600208359603092663321916757633193289475727818756929787175143039082739493522608388276131075372613682580541683526747149527364145999316473881243371389237063335139722230825415783817313576497528834918484839968862147058977894779981849048577721728665139871370244243622877442945223290681333878115565504280006979610392876827999198196800158765403103857789257780749450360978986880226056359569620219001918449736648801815349926293195106410279336266388842793992129289670656307738153103492898124336152356893243085090549526519282290733043973351638987371344244122139473779410700347856694731969674601376664881377216709030361974053819416026613346859719207306678732811515495635361520177706666165376311362481524282726206170490564576299774462738333777606583870824194566156751748129389377839842640983314303309520251224223494244987874260092343452393598891611015433053657829077548119192247336161411976418170072086912202736948480932643467982371150788902852729173812397385088709805124797526661791578704040577941279807797261057306190656777791199045302618092216026874225049307284594177961680381892939079032278483779732789165145209519602680291100210082411882421400045408671728832727102139973024830103764649850255976790653100362332413058761034629779995150985456498922000750335725481082059664865261122898337255335397947826233352785955400104907335218387201797050042002463823817075375010998358519454603463808859007557670502046714744465395406136391879508606307329032502044465797098120796776876905266916892493887570779941800841514110349315154333075146511131138649740273908118689197027366073203669572012793608487722281084501697590353411961284585722980170619043917321223641143852937313209914241190514659795441079898220291951159765980350917868108565397394693257277699852103892107042472584457582876581634522596554035629916228605765611115452716594499012786221969477069731673369121340858496615572019680625689965376986328881090777569106653106005471060949643739445839982370553417064393514172768075627403613490308282714334195595141681390956136208572609023117465743389145093756522398995646322843146836462987687769470716819648194094052852468435733159245835850141924100315490698404044195688160329758915708120624691409467719052799723460491438518168453866593061300285309573808363416339023688990381085238726363993041871483123677875214004343461834943360938462332490519271241269227401619667114651820875136031929288150833340661422457239231463877688967524365167222601635070718986185636476066548257934301476268836430705649645105480915983579061668775573630062975787237568710565839999014016422101141671155633694674936382458780400122240506527260488195030658059078013280565015678986153715791543509045027682880318092688277201232371938077935022101581251579629077702089115069512229140744628389638609173035569209814393489415908020636370267881617817855626928901956074057156658019517887870463762135009233926477348166460937563219269830898089269392190335204491831071527410236837705343455039130070416322240834915047792017420806914524827673231165237792993937736972917174164871338389860726635876169214603105728290624669469841260724019097417205589801749705462585496084655157568417525414043066771951660639471324112598754761940490280291163761017249615932732948817230962001583335358888274478770375451749471724401736183977442156456644372932731362254341462023132489974836474674868014450454275954424548653479169462569788721854600382838849046619295745761816465272011133694064067558910642037097483820575088678919509361814921940183503888363713336765239774073149125434537895069344924910854657733271758725754361594537453136776035388746252014591220719222389115661797078077452522801379565647244535258578654988072970269338673184011359855006719267500938342573732100185252170333264277868202809748771472686423092970511787192951725581970482543929270636683729628414256544497855953099650112033090258835905197132325404956500299843585057401559792591422131146058911042780483712972555392493274662569518084825833446559061948376183166919170798592216720627094051803040958594274079045301564917315792227024040368651504522624148943827178713787413833402963704483647858524080751935485604670975063419908471150302085164048657349814451477292340355407436341407690979164258341971648866434866716640166187328548268011787227386436122024615543234738099137131648734137387681655975665147683739745165886154743332243089122697893486631419128658067476568674820002426646740389610264058662639554806467915002503475344589217460042621784699362691093133415642752319557324874356412133591294163451794583148845364669401515454322842970911162248991767422579316455439800509321624810909767897040489987259325393996547514679875512241375341245403316681462672320047687574684536730842978263445950861832482982223196310260099463343232034814856114213156548468259185013447275023294228833316345261904546290319463147150006802922294276989164313712504894285654888964322396693338274388402926612894466347669456187724752616158239976906608448270795610344457701456377511747627700816975295133610971004104584779149184461747272028073380200828299798893713822442605227988944258591217082211315265562318845809802931065180662835781052972819820851868666134583963302034331960285075805463217266384487880069241274177487588091331649870966297021464231979438421654168461882730028706440127666763268112896939558341458096806017826843795988795167577480870198343913532246357983324250201546311065118930313622705966861937886430759563059857374251805942324482920849521133633310978836789670137825422099311972035268125920384825467971844798285297755546223130451371099608186716985199665126327568150058936200248617085402205515826103990899870794892605028783919666871411219049498105684537785831648162403235411733428053125211079711951324577659746167955051700991235086291742710428287348805758561103798720529377526891298267266861580100364414327798210601986823569360737493670272943208804641776511880123532807923208217147340309560056708095384404488689271011865667791338623532005574740835456311107299735909304789254196826436187290348395101391236484211238962482691681735765968940030718755460275719675846582155914091337619431227486354048319868770499887120659100636772858673037418329622639386551604320544623902717281812717555974927876823458086227742674984721003682298389748476370417599293525287356539728219259103764912084996038901327699371879892402128320819611668075876563231468818408317385925871280097963612425756626102298889216842203259960712348861995746876345106922562984390011111548077811113364197807094411052216952415599293362234958583557850968211123328743852044929251858653403821508398542579563097794890467024766902213021787389980047362884247579984417475815143702249340960887065820301110497565978429330402707401654842348595767631507319282607975597177072916241173052250119165319187695195681363190360441555209125607726794789244423858237004780425942074607382859574273819976825769746155816805241321516314503002073216488754653834572883515360154522663957106522452427451456869709358835542791016165508203653415484554649823924743714703258840298958223757244337452155273324081088190441162412123884727278922654196926205140689442320659741841626825924612709603708040604717268659021440768727050900114777271849400418471649314666010901912645852731700485420573673928287160914503965274972525602268693731911221462649622812674395347661281376597546045794562233359143273213138029200361387564331858021085570051580516339069829135201921767574110671091204192440246983153911275108577195268677324860486495140499653968476514623379567577030483209152993273463077987781350029691136323061500155798997018238195370614233493698655944317186935128029044470176942392660229435936531964048350416134952554444540779588132194986851717011659922173944348291313231081322250432412098353993032873480845519104745939278264090448555625571282400211739704462461930705174665154546873698744757330889258125521062177547267575855798044687901692876670676175541240674623623717926057069108849874261966661259765559011720613552101471706261746672169203589747453882904100279956375026566838628511777632579015560527963952078044878661120907539757270517229943478533774173929505575554204624849821853098745067843688950646659210120252987831846393115772386560341759553790525562302675833403860356067556065911698277605127735057640751404653271305518550333108237929223321726494819936488971011690376544023280473024749374684696835359474349822432523216930546709813531352715497453801261738526542743638081466344556471419362579062058184572692250080630214249349376835081048289691081589446418794857227216887457980849433962677525224874791827741025180917434333530658076832369742102937473699598945019740743836930739496013606288975549086108242362006834366774345576774873479769315397886297982748353134698914289494204987705623907425160506890034534871576201084341454963848282509975795161749833808384273159518089774010827451580473708798557449033964006418813387925278606500900833207502652848232202610559149979685301842677526020821597796802683932626928298297174741834886896713204606092531068242441874844090994411652174301895757639502829359468796448732759954469567990158283501916484769313045137020508542882858889152175905978737604751450709865117920345920422465041836835056884335552198568967644070657262974663840306866673843336602081335953414309778273134838641848172109206900943706347464364288583728576063593516612751401695002994220609571179110995605506287186130779194153750761336942770123175310509934647056590775588418658173148622054890206434524284135640410060521837564657451795657970937890781270064908529967978631017507377425929093268672502848290336127273433476848672556387436637906644775421406091584567398984169768438944338738904587713256661694244786342678242956134945967021825950127382155850113134989170987612375303892769376420600263478672103903225202959791492865313333517395427557936581735689945005794160784666767345292228383030542642829462306564072147702031098499465606339021631281633956262339539434243313288951331151705694186955907056705482555576541610286690382409968028906992885383767036965904326142763259279181889061752747902268374719877728961488571898392835568757593664932023701287199747595229385361480042745017639309821572193869406895540117269136960101823245986993527170703566056470426957797982806635305909297965593653312461017102223625540221626618942996809732464225369056660601347608348288519111610906240286921039250885001180936424739319481832704928369452410270564805531432919982869536152782416421352156626798107041129299419655094303513019729952084229545484341261409420993980666450029906102038208566834427705312806746180753332665690269506534946578469094061724076066231829862685476293248646219585344444829215835415441814512870169638646864921906857317343621843780951857810829226097929714024908950737315218006737997202313745230410801402650264319684233387387081884244338613396898726128886455542050797469630831157010793436034721777451933880423799147588767869746018633664738865274299500207705461618137598392119707873948688846948237655870787926624620290973121300556101612690984563500528357030490236588451237955672481160861092654748580196387390225782557827942828756631239553925875360517484340011511259832256778562029968496253717814781955525918562781114141601254240401110818735166448545435575163618970300541922023215790208367750001893229491967727122630454943077430730419405803887973773851152072516899333156389728771780026113588608955849129835225978979392317166786616685048346365605798375683856451436997763856950736542055143370023399838094899318528355912125497428406496135657726156454746806429508566976760583820143915676117649252235209091782029226840486222790967329840197956467634144169481047347388451163166348183585160832504330453578339612650944234328181341307376096617507661511170950614136322619528627333015415829752174117900714149033963323448926044492377950588802436928409642330069708573576297503355055316224232611718839979566965761343826411814132802509100945124290521948976093136691392322312970345624666928369934272982188740912981879541575353152107965092177341999892845905405412637233574050801297356509595166321268043317883523073056013231303375097762138084782700108062817546248672746549256087537556396590903361756881315768872098790964829778521659949514131409473211344759005627081669441193751308185611835334856603572871715263104698525300422618978993670423931127822489875424486771146724242912030404530515413956191434406343602727963471090027149678096056644571399689060625823346526300351207999615598173769218295640813416358484001132289293772642750715339813184932812538039384685931883704599705769615656395359247158462417584469342846695314712883315216706181858845357823826773397303484504138743537045464138251655790186830951107208963372410448426054496953591419514020919907005886928369900184769299596487416371969702785391675193675979852571568635768851561447014391380998610898282600204291205897278405659449023857885279443432168028661803126517722326042216613012477117204733572997500157743855034857612768008992253771548994058851813308912444703970072942870222389619546013018081383598601639710766679815900737549249598951177015519602515755817410253554888422905577334984459013223515357737646336323751141761011827234119193040202610836711413686985387008112335198459935558388405297937302889361506686696028572512137810484331549575764727924600870840939078387576463578052370516269822693193401748516785204092618030427219280399109166617520905156117118883259653307040764095313714710493208299210466802960535973123579870611184355002279461425506334741332823913844299450386531879742464883133650446968653742946384195649731317202121846614811371507976094568614969628792691727068752982999407726125321553321116668116014139747331982091698540531219504229432345876957371494913361964660159840219885353622524355343618391437906549207605774593235944008558133120569342610295585329892933667332259100052960134921215913155156598644242513547034735042816101168869847873285215353630736123363369119322652703670244759435006995784266233576603605014337010878912441822241203745283164887492955950349682713886362769106369113419403361695788922561390148165152166464007273728169481712727837219009723562495221530940086944757623636684865216235085643297215480259568973430215636818359459890274253111550827443459918022572070269463150798503890047256084088411975113493957039868335403511818023787719706721638610360323224510986874315116490740627672604391591685281872465625165779410444661748981010791869044396175895003686924246800791886361932352800772695108667637007350266410487932912524081102591900912403961529637318861805526130799969757552953877908261709617661569820780178464904229595707998469525369734830834971752485483783006370724582706053184469505749411421051710604233096892440378813507389524059072570207732501120720811692832486131361358110143662831485076643857403511290637750118634268292808677926248011508810157818659738560772508699583383300507672564647089840010656601202161133493837429640485497569102363938244893104827091157352599273434110773668179228161521082405555104365987905995676624813659458735316038408757154387151573421084162056571942327455820732454452782290522642195613791403838425478001591792746213528780358125964308975072981316633921435969838502630755898265596336280435234669502969311537242348472194609772177264031131911701248076778231516173648508024317145286824413064638781198853450860946722936362248957883339825654714235258468325654891902769706171049123094007066350100607182697398054459901046523912946783311440509013917903899395384567479295491804418401153052745946851677264537570429757543241880235069215747081470590156846262532404495767682242549416559646569095282904822649056434321706153185878266738530397151421180840662962028517438045765064001349242350275680748130644667096409225069200203961676301425622991654096025593466878087143754693168774216909026139792467141828126373763477433464922178826377617418121117151704093585003135376882057870593727039823737863798147683247562573805691649255178695131796566385647600435957023452638209199304621680260051545342308474788467994815565828698474323990316722945995852100301858908636325848657648810023992420188633519136199182428875834938425403894715836347494523544193824678931577219292206823436423424665854320721533659248258656001646958783679572205378210578098014588120378064467872306724180404713638019440776721803800646560072795579764479736271085980704716165446574262058303332811575786013629658524132155438052137190110179971678176369966563550861224831144022334015127267434698558213575748883236459230582747575317555532680523841121981059990303166656841616369463469510409591388102482250060871901308638615249998667345264159126601949758444901853734456970779387333511546767431153961920955265286178056110701804547276809788524589438729183738745488290778414300953562788665864997838626217904268894594299404194608362988603124813522124065538516090498747019237678686996938403973727186744742041968719842736518475070553928060615459246495357611482476573293991762073739650491157647286277682849092472707424869710305235707927979501940677302903833567690421062439023984579101589352075611758216588622271838034511017915837411532562461847166672825125675109265593154105662493378435659478697279395258376482268678536221026982607453639523307277964098126176268324155993069917331748762004104440184988945143758331381457171744627633447810310519092933768551589556777030357042698921409463508268587723919753018518810862797666962230757570445280436539157485366131818522549491225064518916890367614143316566227630334124393830972607132524773928632174706375387213811024623636991178560764603574274025797999268433118723611213879591693274047022883075094288062301696160757265619763720754344039380609022283139686443572720048280258503181606889271589432430881086345281048473744038357120541352764443316899806659824508215095194529922018095415200657101486811924751142043380774703262265377358605018424358502362897706196416869186317513826777948669854761316709052097492656718414763763740833525951399885248593807279146229654097106629761669508457343904494310300572700347067691740059628031185385962137315035388192003010138559868154130033381213487038835043284301764268309511523550734913447317636998598206295339096628660913218812959471161858279085786418532740075126167326112338309827246322898810195764178330032722835267869187558686863642646036777990580839016098126204073354388954111104226394415598113125956065582641657712182015484414043981229875583747022842468751241256163883889039540224791934091967397132111341254346326829812312835413164381781118055951151538624961733269405661825763279098081181593981577896801372740026140794811418793663981124707898265866753823979072968037895152223534459852382808589244181977456702741444109400265061270405763727975727679708199636301771487779745142857999648270873461094067534793706500442030463839841401280026001753774274576230643204972378434949709217995130251206611809352841862246345234324772490932505441987893597069524704878026185253280264627205099376245331716872301321048070873398401509301433162791823239381375768131618130670146954013177904463864692565288992304022420309015671285401330351051576546794179738908032888218194385127924910124695692112665086754210538265387141254402890548255086749754736505037221815191511866851701816149659685501812169018684707802058670803960801550170440180080394812193950937918784895913125425895711386767250538156096640537864678145514488711466053337821958540259217210547407972198752505369013891729994551185970506858076064878340500708618863889052375827386208709878653016062565791266478342530622979283455007854939166573355818587462818990955237662379350021094746742553896163741339053732705198705570194987795292988301408109111039834460828319565283831439412203744931717806861219623194044838995541310418531052189131428211249291413729661963429439942088172019821630952857983376125167614112447052021638264434557454696758420887190953277774204822290232167142164058499760330339359914882248794446999581895854475688288464402652438733005069099404252239866404677889560064859618463050513215012394956187211973622515353398479079259010868653838016361404769765734544178028849667749933259919318934446030094533715544812745914265478905822126780894005880235096157349760974189550567681595596684652053753755359554315781924387462222892916471195654836858312434686118904956884057999630581946502000387137264183309404319672873472810884296493281174807228087987103880075904222328750554117635381585049737766110644824156968303467892837300516635349918827628110913945862437551645929022589708396973839359076264664305278948650727043936806264295785958152681519271459494797484584417544878552621577968902469371043393317325729509992602824081525615879356583197246112821178405162817649441104897308236609130311854566218847053059156738371059198658955374068564083983336804274010342151366226064209987465931239526224870561432926031289658884315044128621800590225612332896770699250648723838660638336883403425508954483566668837711820080119896177783850451268959126361003042782285313588372706644484040579232063323057886485236874511914526242687715698538535306101339376657667349307981569140522200840081924968229637653397659970466846369044748971499178831630790634064543684094871281721156808214721334976655421974374257627165472766391445996519399616361459109921173961681937642095845448242337078006787488071970052377821107894045289891717878781870392296252321717291492768562155285470606245024791798954619461416260833480122388716208500851227885350146032505918181807921736399915504008271934017177041631126673077893072481686625155093852308367126452499601339224485891227637396325797245723575616797728470415577331940398396388061384525033826018117157916244704182844262671109630623919230999507687742769932121783392679624545928662165720817585137073752477964769966655365161364181508555622825495175239275383321068058280578461701138723158920340675864105984659436190634564148279282039435210873155260643173763177403295399419787692950008154345897646747264948609439736708865028941024372877195412663599668044179708933478101728037166784163568542387223256854903456287529741274302579987588946818163330448836991950156895539431910516131215736530136296587773522601581711841852647674708956339237055602863927789349357977615855068582785963721881721085227539185897051257082299171212180905656684274181058567225286495399448438503844456649953504171908546211149902063305475472221365124545726165102466261880859044610645106018284154417133815333069797469910456647719627911823019822837984398896411229727073450238041504433248328744956531116202026612612854245496707444285774855246448889428124970766530948110235726783859115421972264830033270724759057001916021528557195021090452989435785588477012430025374827072996244868016971799338545162062946486752143462489266053758272592077436138180052632815785094610071836348762043955390744652530391276336198711920066253788503007103845731697623077154595726106973073544569810057081230716206825787407908700409862311304990832180836225240251423087735400937675289439353065754634823226872921685965117999411184637260803646020685580639082907138187711091598674743907015253610971658041820771811271229423979656009187684695904462720120966905956661999845381066747195084349752572728074745369709217886923243740234320970293379014219026348460635605988971846386527773671503433195848430641749807317797184918641289044368201872544846345016065415541162414555062462240734718114416453975741318002077643741998670890916166475808422237125042453694194375045832556462056339604927047683343217544793813626838621179251804876485423123912957198723879835625171982853183532039398703425663507122125075651809012776644401304865697023511317998952869504142234093651747306571809885270993178125642610364086086928218998072043327230774201332074708401933354413979646151128526002356318695325632006741799209003300039535270286296684807134125354941258241375016550345118666921852414791936297214097031737846424303400107206118924370190686916598476284427897799632941983094041936684256477986371003398548385911874613597754202727600504360086456691926647161680808694769224988828514997701965929923254455769737038008818641476911211359848433787524684355382406412490226097325336236761837897940116881749924765254966618961112172389702458867867787826402884043824203446895921514973815105751611838999952108005202403673766456402404410377612186701546826618134464993951890479584561491162496968020794103456371592838251971225236317334583289822158483633692870926050482221763323373527093600400660538431247976987220516742267418030802543105307071209701375570435414340401153985903660586523588164583348189854523900395366356189380346916146911098728816363874523055794680132776282333827749053438872041310649702097634921745068980271942916589270505232900004608271985551563162731807538888415706341727366184190214712138233833065949604213490082776835950990162003388975884949860072782143577316952196803424386633512133793997550442660315374020466964846592013752243169865694163588222989544526179975663169956284810884750796786689071747220086520103479817902641311409932431847980496137445254090259363484828620367151097172160098855508869840855221185621318180374270445758161876633949354185663086050503024762353093057759423472883569930179593540588116999825051088364765334862424446373056786565639376466529228452028570070344038827478008161898568131512549242141254007043245960169252981923502002551620316559709345029289663463913391232597009697259176458677436350767919606470561465962362776162809491346073285871268283766237189024382993619412383071359736141003898501729104257048276803228192967120003195288656205189225118656040352026443322614322206750509266438519598863013672472964316225512321078964981952024035927576417326607116600789386825189302919165955961684781454961067990848485734282656105154752209327934776472271615570508116427811422257675832136771385390492153145097968456899316611907358612604798725302139454578797465585314604954579852196180941524574922301649521974072951265651528967173637322852645356100880061094352181943505205147300566370393279784700168299869026966527116967121405596250073941479197818428843421273985653358258958355704522194124231837601265202211130705477908031669463936899116646725224779470913576373739428021886727147912614958598116199900756432175551453128035332862124583721632935135390860624876882627186203326230595671427960534513818083619360328207769712017010137929587354989637046060530084753453137362250561153627526101876326140447050429359862160797815952728285859630192106993313702208408298843132867269892395140396084070424558702137472311960001829309581959099769157859515446549370240121244727181244704720296559205329808892451943454567907628848926667293006281067673831000288083539579493032596920867546591631466680686222161079149350224283171532347998448360314038696282473864818509942288140813225791196989919934953988798832714599682455847638210816731036998713600638719284809329576522461614558440649557681030520540918284593772986692524138842465604855936667488335491786730319659006053642938639733861840737962441721264812784587140384442356571896453842427748311828711933610280010179097574711693749745176100621885428707003989740994981926852138148014715672794958203555099227064838538399284222009089517400518566249229543186279140915658911423100120724963229906419710163687370766664822800147982865131273667801860583155774321398876038692878298159998415742820570035475537877914759917595460128327632676499627617119464761666098217347907360130839299466323854127544061996535885382653432252339301058010073415008726127102990134737792027741916843446653193041103497607860945332973521154432259405355203871972588849079087159319094757847058035052343041551643210334985489576104082210821963038115175351846532935916992924653646504856612386747026117532422175941905410866114321873246536764840031594429099057872524728715465722396290600628010613257375612018001723369356449330746620103892104714211119085101380601587534062216076978637859649471292398066448927863239731201995246541278020922691552659312475655340550371844532565618791021453027134643377389877701220550017492225304540713594607151393464871012323959656456911459144121361827099224001014716705633487499823023633195444754909170954633579479297508834879627833176722951800645945159755103477386860258323297154041457649322915040771946034171684648181944046817336097159056515018081379360245714632076511022040664642749774048125338250884190434671063175133879998345813615484716463007277329373129374829215679809260852801645126709824999765406914347952844902572144699465167064528215256298865251633597973888292900744963266320163349003031783370201309589599732186577034547609027998307010112590954091310510278941279053987063170619358430892960874315306026324804478633780958308516846131797094866412971160752936800506259273441101289406767838879843099572277991376502502884356454895834980442225464680352993346157766510731492223702012658798771771247218540973993606978116168948877542301192034322332041969376896879872048640710334954346686256944665053289157070901652002639612069138811605104104304290786953770814148199643015829684309971256420036971339941508310971043811747932651692638554126018553006959190622157365832072059116354728308248301252743770929472341334993991036248645466337065971173835141631139540571028107601050452539076332622350153982993573134121895208652831124033139324914257605679340826165785091015695771893681484863711055148768846918900624882368035026348090004631436084581715808275885091204740413454123090561698970708799286466298566450849763123969509738285581120247100021782592614233910243276416998891652040127856576971904962981577957065742045138276464085898046376706788416683706663077605837651550655021083573363046682629940826543910192035844840434103953781767600892581559132691020092764630677482146186998558427261575593785680486659944375592281144997233628873585050533813836683787313006268409986052427198585858006659048158689913007036016805481906396472795392996640592935767255936175034957567948501892173876655023714001339657117994631119174882963204432246199953752284448423656837381120499916058452853894154550999445543355683258303242467601170708449440446141812670837283904061133323294173235860281628955635668058432430006163088340257945816310062672493819534148343035846395764076142281738249155184329942656663788517573071599556488224365219058704049597858974395956108187819774134900969318010328866427619416866781369852911229271001905528781836048574067362420947853586475726344823248101486640218567111852436842180738445925012325358900504983019013975869459714106741226031487618921472917645589999266651642667831903984764683285735449939359507657461965292452271835249268604867273280929227471864311310628160621180940419711433380244138826689504129371288061484523789638959581746634552268654641608241047188121367160514914191383490789942903723467324988699361662375659128225236514713027594672607552407634706394944747767192889033959002962072652969102568290676627990784592867238642950176022034515360289778666732527714800378336514394460948101901124258604790348381419107705650282288495983800005742867161795370589604112095575584846790528765333456239419597925081784451561099308979790694282712198798424408227327112456988070464162140183254363064703480091058940626821885041042825489669207616757477334088478085200001087450836382482270394862312592891697404638995870777671382593246080281698165766572240417397646209982829427285653999211369538928298136851126191723302891784029508481285925387548779777987978797076015839081753305735565902952515791446861724641581426450762616569910755998459436677516243124049849916942910916927478577116597896746349626109807286847533687948086768605522395082424724831285530485385658308288582707746879857321885538133825288004001658008790899314308659744306339780315153779424761787234065774092159489543565673630119686486928256567633630478452730976949621936115163429507999687484283501267221508531916874387892318914854981321068763248080436673980132789203019434173346391346161942249073178809874729741506963637496023827694640584922293033791540297831228297140063773467777655918871911099891763260034405320127873677082141151240486430833253407447657620232881180051630286607138784541440084681992612979732467632011084667123407137949289835016150363570680367424355807421150029123689704796591706137219517018698254967486196630607084531655792003609917825434037656836698280878307859020364287038111015351777430741995293372955311284717213260085181247646493177906658410977757199039794448746941494117606061979723222208748258259313467904595105239427014583013502213037999794764137243915782961100464636650444065798854019286144899235191471987745870557013994394205522752991326562318343382652255147907134346322582705711064867437018870820440404857086750338615488434625432330376638001621621260214358819991549723471522337134459649633444475864675149456323553689435136347381139868631259445749248334420520544652763577777215780198792744621440799419856102055455353437139612124567175402305682825126675854920941534951142454188354770863466540846126346859044079242903952106212510958514853245957772422584829100647690052200645168932092335314032313087088814839290272280278027814525884461517270014442217867071422957872845856337300269062808099292989762983317736038220338477553230444565820794945615105211601803899742444834090995712738943317811631637528552784395122743339725047738920988126706176075354740962438228489141661673664532894085039825286166604872892749697698720406243178143568522458413167029363392481566586018673314902969767627614288480762623896077181203788466842275028251219830377541274039445437724152996925958065086291947405257156953973783690028867119858606648819488679613786164830806599731328246863651695064943618264295401637470301425346688743090151527275850583171563207871740339193710047460185040096238011202077903911807103141518954067903030538302422191769823564061458784322317652540011324146960650008266939157612209599201477530756461381181739573991515653320126667861224964231345402387938705002335391028699496938837676844191172629663060189440970200976763584868676268243231843686285897222871932414095192944423022700707423129309213792631314354736572411265101870533147381309736455508790011267649685338746395083017928369072370073921953853844776491858221573983018241862587615423603975328768869097897957364495133041798861242693516118662793033305854026310271913066921222098075983600586598363115835348156286540687848878238083637447512721446113939078144848464536455734076747226722236362374930034889297490134593393458244375475239579227287688305139487875348194473510990011281936920129806307129703274461131704112894284106914050154807023503701807187902572157507445799353237105478763224505441250306667337631376551439963987845245289809850570415087986662263881031119550334533855594953808910255794680783835829249350455828596528829074396907385244459046420498257174255453080937639873063410397167377204986055112203827687713061975993542298100292310785937406692142478240681627951093230109446327034641287084243383160693576230807192262632633813881734207946947809901092414473153026528616699474428401410802400176950813163027243650470469199160675155316301363806281749411591199855468728191638540340505592227439085677523811877858749167198059858436953269177433204602969532300958198443852568163394545563303824322121874145460151435958100026046487816539712448278571373445988707550778272913294342248221531890852904911809435164059227533082024943687457276023662480005801517991355496335327897872805499161884312644318169680269619403816911649460230007477034109095690082929042469301041627427603290349390697582884331439845395924991646973578274887353452913308042685541066251283584600247043626742986169294321308460576817796568172231635308367974762323033583286002083491481737367408845451726136159492530430440538489690782565839499696177378132640947330025694976189416523198901123445629382926104403281708112590684456231876304013275150297744173009564605443387789453704412340112384699181418173545962238601433856201258642760436289285597727469816372517804186599264081835972886645351304823186402975013623805935349658438938220831820337476347274193466196057158076837509221261994741167065333036552806297422407860187655686012948393947260771924993149510555863750169188758919919715349833753709258337806622268393916957806512188282757298285273065859870915764416307837598998055677124036845655179146516066658281786331679910634980469085443742183719054921362109373968071656377377281569256860305214531209396396200141977082676439342689184740605939124641239628606700680536334770676970394975951028731989338840287132706057875065959991401461960442758408455915343609942353750663022012782496716308648113821014125036675888585886098379031662367759297300332597041785386988504743203666641176196616737962665706630378277411563851735578455490501489588085792494861575374161446372693676739056607440104725230112360692768464356363572707911632481933316935206142139069286210644436939375483667053575771760947946485279405891623020911012664310394838127418502328340875286687370830353669961102779085928381982254970465216826577013036975794483102044068192434082682805339195764663148173695607293173545762879263116917805970314691157442532436957052172441884813710727302966946524666129314481887522537866080299159995696884518177034629678732883947494031115139716678879162281950398256638732115262178360687563313915490179306239995900002028501427776448593649054473256309528520147138790800820182376470607161274749130494180946544483163712642255762492540128888951143273896509476711633742644665620611780411758513159291936697269113821862514946658728276641434620955834819011240582102112866854230396009176866627645194002536385341654031633679653725815947364259904814697645808013334880989302046806251100747193907405103873529091443386661211518218585822110874923908366862410459426554248896954134830713315941330038126219855280436851624868768797447270721669551378549508684120971167946043529255649710314401104710662408674428930565121906010359629428498634739179607116968817177151810798408167316521624883255374575295472663076934815552723706054318114531309517926501508385817786555436166840418864937600465773279430332180389640987741051982000193762982601392618255416867618032466211295528020517415083550834645354392888290174077777638687906620781298330574226111947312933496416584459923905857711049387982062682259837312203683557995844732945495217256144562611467350420451020225381016408056683389867204205034828534235269562442236267227483342453674126531783001460162528903085125004233422468983954198926824656557925351861210204872772846541814731915079501996660932578873387727874204048524471364283286968879011438380209268793657676456566797534327824043479306360454438983979471219352698052776979765363599452501485641338481997757378215467088628938745966554323864317322972876920422335652284003513149910108445828677041775877638890649943354124996592492004722319932866514332268149871234557564225514175016265689436844943864704040901193462824053458980915602041156000800214121643773592668299584411205591741579312910762483288037066071670313507497049330679359514229058760202941509623497050419913890815329338746876353502779367609027890192912161355339641358198000576792158592789807602558865388113466646906479742066109227993711038847799875350249220619127343806528490518662469429685704091202647364208051912194653700723635113554316908999871600465333987300347490540732877357181347293427787450024791292401560270708392136108589836248146559729767245149124511912323563514862873716123821227088503711154678740648496833498302327130820711616383853112819578578557801888313730619341420017963632250403772113900395166812637163104384465021947013558257640298727215419280518779412559802149056859963794190168519937526559969937026095615539341343576239918621067573566921190494918242115591680343162484846863014522621975813338115259045481839838236622234463359472960632168937626807403349113184681803115219862197939890278775944273014992738198244695284642445812198960894615703894075766988132928116453499308060628948349860820106778687798076064075505642473464523649482247753345729131290922849770631699141451440582957652363221621308178960064121577682623900731549322066244154962865400553384450969207084422365567848564006608701890584947204629656732191304162833640390880460635468521152924863714653482621705594373372008981498036619456875180164937004782955227028193550404127854953562081342579134077618561336034658448644192774763231246635301401576321167771381168157794878386488588343595206079434973794526575096686864787159270612666223618973232591231530586455638028477427122427928507540812790094048816932502859728020527885376401696437651351269007563888247622316428621500491422381163395974311696858042654661539983856568114935047251471535429913884781702426798390348639610972551747023709990392611475486803432125041636908582264260344099263561998466032381637854231283006561002677085768865911118675081615829551228594813989823171860106306208791734493847952789061958259276482429123804904049474624646610780389867275120076604873753016584376559820577020163560802975225045647155518694041330333263905340378712472643790204606765488373164670270213267186995171656909588684593679128054222699267252728717441007821259588881237218394180361942952485838844275444474279914345871607811271494159500154584490560835345995301302064701247885353444195262158901461177833881535956537969191790327626957133696828074948031405671334414548279600546356969706853964874084247616949915377713622056367603183328824754612791456420337571912538587734290800173411129606846697823398820830507606536846531551168723519406754606773616003061198669866429434773041161556149893531565466049173131111254850598819466824699874627720901221725446167290412664981780283478061075346705243406201220609019425778905420472499584734669178875629891973381730439506506729642360631551586164153752865260623626790966439931077097957363456829168870171277010975894921854186146837986955389444024545994639635779490095996858307384120423515129396228465718270412339660551131476554510835059449633525683360866772459382043031866131555794839800634808615225057988512231458951937722766086244613284384212345628660370111855030555420001839484475085452244911050874832112446115719891522432380156717137706730179792593270505645473319731033442958010309093345095177564824387471536167313942890101500713322799735222740429210611582545746449725837642557142296009884551560202340668720639955232028873490888663981730318976460509099182629583081596299213184828922248527658250727897635430325596223503095306829462120540138118149533513268110079175888005034568539789858967586264949888390942905167114350415444169974071959184954210959203926486550937340453091861127126122391236875993836655069422930488287635840578064696088854396825674691435087915244789576195437903610539410953182403754593742140340392567457794540989059567093198011970517086150975359259717189399705328041468341347119939289295161726933124316201725363247839747809323555708776720114272040241034868220754554963591716300843067390748988930521523388203638052732240958141509502003896147309637332680304540851118118964563424290188760359236207706323407330249663376951488924620764312107050560650942663530990421709467052378062491381565019021628404632238410026188379852579964840876481919308964216485179474780678338466948025946608430501970217978454888677116106315256919561234645737082893904018782937566513553797502807578781707662089575022835389791347534780226248122255596879283561610411637459154006689966558835471482540735881325000040983656195332833320660801204090289930869049835616033499538293245804787151506452978936424291326711849930419482395838005183934575249904624898098152480751614185408399037597214274206807220954923514517508389987079941255364782756888581601869450443643223228296733741642727055883019861146513168167347631877922866343379117348963396277121484898020214804674658178294666548430687200065252338770782785826554435429032886814850051478287663092261201514392005313209411320529206657465000322294335834375355779439999981783888499124504299062366345649420979966694757919307932832679445516496891672839000362361768463132767651525075562728406860617810588575396867009174416793642049274900208110227341837705094013364122332349506523734869183275373234978231188367787726961322715065473389461190623449340451363734858971906093091696018706409140123920737820784096635333190448741655897778449196779221968768923883423833392293171093989430307911269719767616741268842456241307996676295504027971253308805740265193070851317378856764135127458619626377501600240655566384895466053747607284783962601530397560938215941105207556076823774478646262064287268226701188485330848402259901833755900027665366977169442814754358101820333574566341530006616385536526413491343755144915479675348305263068882938329135876727937170752574654281003912152756321404624010555705676247356206567602198553322745470063022487082503666169066180575672024014670658087288893999170758470304639362391521137992056584160474758221068119474635245177428280352448784075932353748020310561590323102315363986063504518323808537337100906895347233405415305629874074374860519643893405101942714990650311438778436147001212853207813341750949309711159915935092993728264098923927838886542227090853946375047698065706275169138410924737090267488282230027841827374247103128505645191193530215544472910268237569577368589445749025451969273105002800292203160607478481323105835901731864056781251697234449992569978044013080554369106738679651612201994603362021754598597109417391306318244478095413042127437383328493833825900041016236502883330834767438393797280406722511177427593236372643571037551707924261169598450863481422906874010565913468086780048696496647466944694878636832825112933034776709991804243417694472378079812923912383574382122552913430213828287655919515484162173960038429606246875040943749744773104695635989434190965140203807238282279740560422397401395690583655895948773275705418147759655997587045679118106156182149022011692323925374055196023628628707827302146676220356612718827012549710520078628608691345398032523368964268154240859670972189129010157953998020591697110481444457134277467439311413432453390175460357253447501027463539699158589339590444293955706057437281818525563587017697881990120836109843293575318466683268246571326863064837549034418688559186305388769882891570441763328690162121685472658417334593826033715332718644742888817159350583270594949738496101210315879772753890648458732001303551671467180883763175574817199844004459070860552159527799633934903733766406927479300735020361354158595613297475989950451710243002277750686407008225827442239382535767158370205898811748019576998639313803306432100405429499529855604984401391443019048864232186899623773245743524768275131875248291642644288494805703487034018104687054967939839254544468636701333384380251555924312423038584612608169980396281661162780799585791561611688636800522392567457175077516248940892949484743551900073075163666117334870433488408600238363400811338151322872211726016791978495806003050582372903184317380936264394267665982132569585163225302031900105470484598780068811941166020895627024255258062903647266705134995040996792167003025968232280484336440600858861208431499534195986897619727106966049580682392679878810178701804064210978096710485041816952281308924287527451549834996287922175539693274983335718061476977215150699998686463145098940580815523770299747383905355997566551341705259428317593680103689517573410959261216722115104089283087521110940413562028884138813070669012929837737178145143355096754903168617050512710851201240431143152711674557300385652440456000772727460057101709441661827813572387354802782727635057419684224869502350494359596542086541415371441012366540136130951841472704301247656859275901524831555459139431905245608898049447833473068395884960027890698771151529514278520279274688768573933265159522847001649881794693988765547580495194881631151129245097608772940807945954113213462110838945617648225168523404845866124943619272213226362530448529302032142662825187464626898120873261858979062549455629101866024782723636805968587913224036558124136621336783183313272506885461844439485643161690589803345598331668113676395136803266966807986200439775293427786741916712424804150652155617483099970596691430399522760548625387437751780684986863184481561564875988864583859524494895395696062889142848894902293324779674270710276059292379348725160510893157152313418076651060751807919292502048282872938620502556130605958287675950686652573330972055104589641442119985677794095922425042670959236395641579411989925163642408198462645183013216992092578786500038080317837976260701600616483806726376669958265935823037136454397520147362967186649028659803801490760973390883292528629883051729710411854115334823828735350182877343824110034786582702958005698768031406462277460553805106044519587069203520935833104758686910717630167950760492217064421616851073895278840472305009421504649206193599043354368193767229513970506006326665187072796232071723299047755219869673271521738606127821894695513544747365575974194069279499709599976744715589124109503228866065310678165938078082410231134857067085248584567672053328695304112226881577809548580445295946540731870841409630487485553620219396542743721634765911321912004971926625853860165012586858050202826421807851202151206138569169847092644289965548581611485087533438092325365097746896682284780884385235668606526855007209162028257637961416182829161819692234754685847381462052788063460981341991043560937485060304912408192798158415868641783125283353426680100619010386753802696792425533925558301323320594978174208987299540022458363245774570820970102406792196023194308413796348559253969690320967305337933407597164284477819918195898500084115690675860178384439377372352180450432948166102538232183306218582034466406767457888877702670513086291689649054337214387432152178644217819909127652661171644858933324655861705291603907704026820736869883994733389478944333223245150900508429556034120558124507745487101098597671921224114078204710053254646997866050177405649743031240569345843053737164779852909010433023680681231391967408242388714640555882935354173422132461709946842246199176251321489441037021449459546248011938361803972040072513313122924747926228556768868207168151760247565478358928016716529788389796110217938703417717673203103928842271917729542988210971365665451084899597101542849620034589233402676903044540249918747388837078828248936128854941154156512182902103546517579636585583007160290029726364438579059455621571665380179329858571641590539040293354237464110325432402555677865225392123562237139397294241178725754323921252728888551859492903595733475835219289113598208495941083849124400008387192343692390689265805523914851241286891032207812615645989994954395425843312524376291679740542590500665154628135466796066695575828122099017391095648346532760878175994301249432491812975339673716121278662072877401870945065163635024231556095364108451549081946411575315256522077155720074329705408145987299792775458669055081800587617430499171939238929278444381245438596325537923289957656661114810960789321126640137498688553511658382960563626102691243635990322541624238918794246733348399547215365444830676594958360082247791322506228907444423092464893460016416641118944761247003620609747254036188809224630349653112874624901518046581048982018727330942165166052556930991366366013147874131472357852983826422243922824856172850489265267549654291275913975954898190825582882708463031936740797460140716936087410831175102017937352733938458075422993568405645198302907453573408358171790128091710141936793354129691457463977205431539741959024392891117925026937114191412964232713318867163719866211684422963007606142367080534495328960126914007429022795984077357627906137857097961686025870608337365801279895649581519846261961180807504776947533870055005626399796634312038837397288566802092406968307233855007876598806204502442081393556560275949258167400587771254395511389318557525166143367045739702938786412159002018487128307300194369801356345614811475076033395929815387042700759613838197301934205434741939018722380188337064623915180438580068893029270566032582613867141089634579868758851298440392758657494043858542006725204467228102526707667179433647600833885517296013960032541896393543257065094327231280825691201011915850298111705512428463753624907183588447176573317118303722656435917099324925706960397708021639762664240939854028963451917077753387945544898788121613177159196169753214995344197990408020225491736596930125996936606847210443955949991406770727805787598419738266282018006501235070196759955719401833863989411313116769123913749999276817011469359880694424297976519135510944418075515404864323680526451060162922643545459778564109117106324746545638856254090800859747760330313395389621362357130323562994591491984861627593776715959139820030032662576283775724852869367689435749770426077947974059119158176471426597716332707044772241892399064986896107932311607033766744305022326806942362188057481933426196033611327109641458381804847449664366627232652845284086914249376534502806803695099575769042010320376350581478475913052715111479466141743750589465476869126559120170660167460371530349111401519757043524848764988397418646286690224788192989490479209473130014659759389538727211761284636742278422268392452174762037778745032638001668076302286685439225398246033450403209816002958525310390143250470975205174662872179231940877559420921027926961641996326869617650465273218887466808544449037685207334706515804627868847148228626028797356807327544420989055269013528451716658170072072201748907811421476633830814591278849127748250823218612129511365777348793836927945899241304737676768048507007170913463729157244836269949855500228992153632451532519054707508427151260568910048463680483026496095464306399617966123203877310187768939325305821436158751388175181483957891367167313684000767003727298001167440024594989093287924736040636692235639057767905581542123523591908271395859019345966700673464098813894548994893935319545672861925831538176915684487258792416554220264578978060896177294809596448478060944640712656086758599010123139308758726162773531801972208634557680132404394672079212764252074820899740396637134175292696120736701903384968369248182706656432783352096592749334763353279856960656911052445567651584254801449238170941611698479064056648336313409170541783090658738214438150678950357234810123086154492944399165045845666716670228520935647712345724829558053306998806813315317749813079172076537010445794328224106305739562127475952948916812758434433639760596108436879247570598758446576162592495390549108606968952427478813627173430895110591316887355437800089992923292776004786542304851767447351434022567072614804256925401678763130100834430998486536877489565626657666806986574862388426521894451111076816580233420463351291039070358845059306593021979561301972811978106606365446176648428961638328073480545575120913088858801331285629616664978783291502692509155226258193677943206241256614290756925970336477465474375572301059543497677530719267546000710087042373022490934641353809297098270909286187612763164511662398598527252866315493400552834831645503511117888193001768929508033533001776491725907039692807158316683712555701473426833070491600876161124502947642236319139686257812200048135224806760891336587984440274553578693321226518003380401061057159933595559272342920085001459483003502915910633882956502457589074376586922398548520081601928556184829244292275160268178318917372337668250406307861896239554536419553538065513812271275819157624993197844877369164983612946755687833300301695510825940149305867719995078910121330531156127407171908921992931238485994386144251376185519100153504123686230313358231296850792531097755554417177096800810189623865438170799540183595194886431023786587919466568461726598734830892610276982809813406786316847245750334776606092766553196033471207709857241980395547715001726437848295586432124101466103931661508039232764935131775703301763583713517662991331326157053785509026635119543007925143215534794805879122245171220081751704164607280674343407602414538127600198760298294253164125362466653972192162835423179844270352514140538797841314848068915920367453329999162305783542785638933013542053018831588785716757000450705643682770220243321160282775091374857641297456270612418618653217959542538977780074383411605915946485021493205327657257687775627041462477860536484892364626209191192943257055946185751140464809420323874177573284017231372007090693521442411902702446358188161793308106418042430633798294095210484331876055571264593168383956296566353222823251195199178545691975531486772711468106449405450026370691790038253577758186760416721060724034582422234507395837950226614443187879944348275503320199892490894966482829037287302520986648208196014021459039126864801428562364154923011165028375118600622533393461013892062239019785113340203942842997752386049021790038150266580794482198339133599156010576872141256569078990432641068738093903724971146890492837770358485067145242180929443982571993921467736950352124629653183921841557409743591013279583505031375412693032019081602987505467358184639341635451264814600127348053632531954432859783205228321890662798383754116131232078814705562258846288154083875267325954889014561826500974864338533365328398613585327947289541550147658743817056313724561817486587045613253381665020716450288856542761798617614066572730783876486526090245776166387125708244629469632974251763601680030205344681694186718492306792600736575039085168567726089116619626342443725354186689387942310538338929840550876539458989763631680284002769856814270041633269622966514543112506768838267873712377326810346358963484480412537800489613454940434032349002472355938615790877791308560333207805736936555076934633464206357365134024142303086647681057649073802757927217969851472575197407117703137089708482515142794209902102054182339544900202233834983754006050001083214273661074333013056521431440122306309155342074286027172435339932617045743303144659866222663420811813973594188910078623037730443990977248111648956034007205064924537332010508992365161980872024211391220531400080063204402408054830582906685614043030327174144757290956227508431297346248331504747783193323459854526930601689872394611412308572966602052923908516721232171394810266844923365124126326784328815026459696675424798135985471203946063143478955079784446855969022236314516335643835310907479777629903899340945784355808007458840433625566032120679076273456839605989024419124312912386785350453737631436656479138821492455228777848000111330957537583246677846676708158937809715753106314298635318646550513786136259744165958142930646411428482012411194338387205078132025386655892477393837875287578904665345517088221641204367620718774644464366174466106009956611709130792348316315864215195221615962379485017871719255137254301791084437214155626283431370734499860723104762588316114249712911960829030537025485018527721795401951191352825453487281157311524238790831461102586975185789592569176145330042708985725815083315878631728770188814637724265743811234759827319751185850652172968277467197060140634122457282565143573815663653173779831464711134141390366738167246793579791158782501038794154354152875093669373732231709713672644409346870823255656870919829949599583437695273042270292644182646473345006470134591312582770486779242217241866188419302428334272886565819759486523032537682069889604286523120951880643881137464041012828616856585042471824271759743244075193233210306454157839812129392143605556300340240934873822270016885785262153649316365071377262296718133251950149869541896148976498868120888465473349054681072976996998276006578516521345752546199794888161542197421003218914866734544849188807876445074588398584411927655972380632138151256982841025962769718961767286327567663105731412283754112691246593520798027249698719628559070726796499396222280993341482396737276426101276617084120772966357205865368081474761811949917604192034191057208094348903873319769873348544764732083635454854827385808105198120970493297999588986027122902469252853219503929216730710958606041179101445026478560143355567616112905233550805178756486940056173801895315412341330092329612195784919212289218735741125759511093308320775046914723537026676980021055599095292221527635685471119416178622952565043049892635527115090049329780515365955941098250878413177679932165819250657220587150727224295785113124830040845607435253904403213613944727328657877431888970759498795535502530205910426181439426864366885472426255202363718752129762222785890387516729994172032182670304631251385447427143216207063054004941526356414862110376010190880806353998438813924240230252498354745865474762309420551709873880047474557451493833188935618986767196226848502307036718934192374730474582072796854152562613466991788256628394865289152857442926750742295207604061063801479077605324655399548236302845443069648528237344174959298876410363576805890737977669959756178462678018223561737604140440511698540012600364629183153634160824770777229163777262655675613151681897889711505482834911284255790677725513043343943810681706008746063427007968055742030789025761345353682789419803829924889763679889038975226854951295276174671848342903086573876293788652657262445593510061263654669329605227391610430236934023184885176450021832315873680877228837484890414671861864367828794740115775447825472522112924067512449240505060426373156029951435702699741309201513282314759103902316835917369121587686869820511721447061344313562230264524793699977473853402337496757601023015462044479247407220784944102878105342578279370144552731192881004160932137448400421967909721686200003555526509890594723702842411118907398785732439338448683899709406409330859109810926564789766511540660029255688190624697122869899147061967613203351643167956788020815731368313143503395246859613671240446022368385395543250909155708737669229176054464263861019934458946058698602475822724419107857413471189309089876211477058678806930136857619396224824537360464018827974912804991082091795501581101841173638379920801664106519014856878985497861509160519354794601593719684319728580750950668877149920713013484184292966237245200219811418282034512202448195944592106739008792469991854908065824249136823985600615992532397191062123567147805195041192277346822450146711534196859758832004333688358511237681849906608253534124140160901120389655456021994844296773844636722381105521240979007688286669389946545352161248612368698460131091306386897788335296697592360846754238221594608889930038693720384710446340820840213554820758584314845840275135875271356209137059475778749376727197272165467737188293436240234499202853160402204816922620097937244548456129038686284546239005345196173467042264962438216576187629209674150578512267425126184404676084858340020660997108776258513727005041992510228264585956642607516329792724618696769109345427029720698480074941727128654789782572288093279324297563644347460745467837840945176843002494147648070115489904218437567372885434937974922049799571701874820016012136850141249990960233453415127542928934975582474178307608222555446304307486047359466707132893836758203771062237494085124966273450716415737846691729168711707929448055416194792960242381318321567434516447827753166945489394026222732665750856158684748791350859782089005047971642726380787670608250414131909693572073729654101699776543957856405358657177677888823013443774790086267826515258230946857059164633796240902181984624316651959165529668268210695920388338828881168230166281930132977488039744458621029515517629733587847621599035766143073816424000182183154125053996732535574753318271723596023295496441650809973038253718169370878885372456078333149256656226789881827891174510515590512466222464786181806848551524900501102974494532177450763033905216474021140402350582051599934878978721478279814330594299741866277371065276819863334441885162428199925448036008264754529609247491724685018138194390180914311612529026234714117654670326528755922943660180001775005901974007124758195225665615236168029616521979500669654526721903073712779794714788241964796860096523363662405578361963662926029168595088379419508507437932969236703876269763688026567293846099441787354679118796623280595409131661727750317996484501572150942993214135145027590483316045064799998057944696958519172293495222330093142395272482421990789239219965024251772536227826906921853271942917164023124860022119480008300408229829258414238749900037128274333570536104857104125348193705261888557432095961734000114659571828568264992641533264764761911954509985136650868073664961230307381977941887350981755035379803014830512365460482630796927417556251132891340504395945521338244986534968337105946004408662848553247813606845764158585697692107333657829533554808228193805873339063224683418287486703004460256491550293372252245940450664337634090052609652989039577174180013859705331282862917197544864172169853420382632641625507843780145133564255846723145845841324025702737857569895955427445003670924533135306091942551966375261347603745622201738263486421530000095000539656264643097844594364186037227729293726318912483483851324381476720494645373511787750768320896422522008853429370648787216425030716270949859003505630110136765460150153350780548118746409379442580796533217499035088640409253867285324643500647472023944548195307494268290899359501517390502686625708399552036974532778233574727122942637212488954436232594827309808692541694373001386103476777913092971428588460470828009356089147392357593536062952910083384118235807655110176068960575894268786546593319740711283928704004864494844697248209477735533836301382971379776726367704271079827109128267738095532844512271685380242760521247765756247343508078529708937535053205937121654981948158335719040428760843410976199377280498030693242228415697067474025673612348519137457064312796002193956690830763138792712751746666017838140829413184211087469562031629077295679338354583015841414967096992951443725401104245501153782769521748200696733514617199301062441052258153876322236662444690303312966690153543458602985842386829299546265767263762014689808740600298412455816506359893807015451404082710048882553314284018485996676027226395881501534426832374244311908470758508691828644516512311065347884823214230316747574072859292960611886471648043955535157694407580873170864320938377063757285147689319049481533879526183817487648247163698545471261508737323718856942727797323335445201029232261794827380177399547010257219456414153651711004001140189501156645301029601437744651820775591727792357590388329883510834015827796207057241250517645488371626637919708148967860474003953965080516890102687649289153946242275357479463539050384177855661330819690143202981316926805273562045520947501747481299166144422454624311203851791357439625271650211388069931153020630186287345525866195341607767223992800199130848855239527428775296318833916725253118741020645921307657206648176440504714156520817793015525618333720685527330574346091794319577429212933487850786115455111226732635482946678516875424560103661458821946138502690628017843549553347069525377172889468666563407015613735628370420437232882321319923120052476103559429962084780227123894053880426686204265412138714850489849203738016725678239487576464869032867982126449063479021488328893453843982298120108639519304798500276966622269139159700262347329564572303527452318538378261515070379338797146494333521464421084589623358464159427128009361211270252564558983350145807721642327522718899761616565942359512440092408712720870801603888929976877946533636425935659443514369087392201763179509063714837926867641438209901138129006021654896107783138725883901313035527816875838665283387015321148467318772496306603833898403559199756281178492169345640678718349214913963997653753238569951693403077164583163701228730065108862272880090947492446585543361496516011477092494039459861070411076377017900557747975659636708556450808282832466066681506106690140842509246626653577324788770487111729388687468497772183108464639562860518190436369954365726592383730695770795823475921654537912311843217241806868250188629195674727530853558808438807501023508473913093372415762285462520647152513470714876031665495687724778786244395557814265632351000531198014888393282979345789222341121672876918440770432828326836531513783913630826440724647315075338831556935476591177640583231113855415517745112008132081968995130913875084652135515542497185527940681577764555813458670532036109171934416424061416796500819689036465189732682042619527872602199520992660654801999642510107210018376228190056267832955443596271131382222583877156152967812185990827143281933009455781590925132969090122425036739176406287891226724077935083355518331280522232800760799456561181048091337677829337922046166483282887731155481134407290607940693035815379364034221101556291439307969457476012777384070052910613164294637419699011012142081295785822729380967516881633119303798770700387484830196519899001931381628173555373404214411852716742893552105520430931638912503181621741856404511002014294292751471112444731645001680408651401477584553992029306724972538692999203741420164334744408490803982578766590609034716319741815729695197046015257491938111080255342583160515565293497751521553356060259705305773849055852073712430975053124288394590052905092192031491374766987222969546904714281384629256282546066396811114195701154957893491611170664944899203353420369029556616028902301776916771801135596273228301737546601985073251349209699995594759449109744236933766568968328635543802698914496719067064392977000989217975588453036912296859637208376027431410237313821425194683999987320316482140817484513062306949455172507661618497998330551188460417583603085651675126531596029213749259982384198838432271804335930308949799702903567266663364732738768469722195122186356547560627455487156861348279081300793177786728658810736015644699652745459439303030449407754682209585093943771306932734966184396539202186219284892988706632232319397159471937152241922498436196885543474232052409080695562574935773170922453012046868622576868502356201892123684640670794961405698382624593139683147553122036639602901840027341180031881918963915161174495064747244298726244220597394993243500386843836405035736613621032221922682027589293134109489052216238866580374652633771766090945187084112130671674118258355816898421435348301558204197083991149832728984250255181741964089055035188710598822076796865658517852744122801566056961225210339886153498029464230547516638598779412701924888153812225271882134367646785761255628158580636096377691675848619820704111587543492007615806982453619790076846057925580595611974938843157527344607034283853059891860699117399813234015542795334394535159177077490259243759998557799671994297524362450874675336360879846848330810226555587832267958883018806871134138251063165472571599545049399745063396642310572544626521769140114695746869624735928681079752178691223999668994193138312494994500123207043409169351276261205619263456724828583520016840265573224422114715396299094050439147364545142736225475492671069333019196898286706869042427463572197648732943505550514398804298587309856064443242538254410637293719597863121770415133992813935916326458849152200336374007313357638627569663436572855346802580680712313690157533143712201161770302115229530945272064230647820034774060215255504477181123721819394856478590438086372207818696852894554426468563293821278164654441240688499436177184707247066905341378967225761641261230836306846866838208847105173638717847400169984333180183923262205786442270749662432275727030080397452137760524126115462242607278093478884388639513963888369050711255027951698044800603406652432982675075629849613369401276497935336397594596165311918358041781637987069228578063299459310437675287192708077182365285267845339599244754251096437149223161994303748799706476985294502317432107069824363447810325627892043468647571692724513522467599374067226588560154584127689743627744394137126577659142198677055953317726311239949405943354252304486538347802514490962055961319343179259380017427003457076639552198530617052190875920404049438915322094800255915319651961285692429723975438708056233529126379722672089977210585826243306414198157483673229221758340808636976137233434918430384179751930739197505756193000385628280933990677011872872144710391354041816906426176180597491803848745114409071793790584298948479963806355394582982514306664976875171948634880364366696403904465642396250655239440827533332391562787662372760034314441971016250287638984210513354760043052333829075598644814485404202723260572895025107887476632976873036860506004471459242473783046136611679213998685313155593359283246907324090739661269276925238090140290682476523037482093602469562009775536726013701716887993324977789148390553142430864532088408698081423561610541344341600676990114540999638724846987910804898709265285881904366977656347953525928940090331705918239456856080555105588669895931357332687448340100212832304508580887046696458886002887903836361511844357444414323280774200402502796073003150781458994692446210105977844936150986173674706824142134066100476151770134169628067724361896057513943843020990029112066193331409695379398492901029957339121075006361035451158365966456041028383867082479669269270100713989653938315861204405976343087234083506533908197030383802526911624281787891673532841242685327172758624071841443734311003198876006076330205949495687568255882315690659124669977286235141367319811036830161299304842515971431028810518583302151608088065312490288228167571651903508726686846651141001081037531104792336762304716752097527819838623993143406542462452036323122461894416405868643626521906145581119853564169450268292045323611890570607314546103965134715987098242548250354556633068704110503892194358300646059733346239539095000874581713604400495557278921275656736388280163006819501246012515130150586075659653926679003545710983942186673196965743995726667884322968572901366573900905797594120170981725362310551638690399489592787880049330069919993983048784071471258482630951386632773697019746992226650353119984342213216954478135827730110007003955977803215350191633976817168719021759290415842133611362764456333157517715419398694576358665322659628012552301458972384358045117002117403670489464158345181447539020691916427291103173153281348698790498165972506383179296649321835274111218639022961738379284764437522585607915911496832740412286767157209314702475172021215690685017029771068726634363941445438247655486316862515812155501040688335880082121652762269349622575379900457540083837147432731193240477324082151624257108825803819606615419845357047999292593082638411671341666789336099447292791411897976166704168442363122710152441768959731604337872677627578916626770017462854747003717415422903819706102204062037100464256762412330234014244819008504172798039844386453792468312969427161217395135148267041204812918876491863576994126183510715150837511266473454037167877480639805105586337041514321417826606673273320421500493375331962105678293590071530046097662899128305551930177723992449938670356376748712253512644175875653119801337808071983148647639030642340252419253809517007006739022325181336920986864087786937905468358333244279744400720715257958020625047867670881028203016885518532238491529927394295314716500850974820396402834964180213984567771902855671398227999609913818200237752050701916443155281062494685127885179969050481292011867570743344806940822883562561639844317709637678179326400828545364354509148161304688814838641614243445811035518689979983823158017672747810306439168947799027635199161796274339611664265499273700943068745494385232613815714929107105060181325403113142261094845401931183058135756619792050650418576777310346023318981087115371248197344310424743743385925145785140033931686854876782420645496948747366908806584743155825319000418190519464517603918892168549220270293183147226772757883210417365890123121442317845015769793910901600411951725664211048698464720499788603363381989600944937684560213572275140107173573113827880439947818988907763494316144820853084032892171247913531091473354735985652892259373565761023400823300039528803566385329707868693817168057776914187787259760449911439982358433288208290241209166902504597307714644868090116898045698537934988011803216099241333794077077922095333968047154833883445995729879883636954474924115287000982958117871592838977131229654281517621736576020658152196364808095809895953723701912409035421733049646581166986240585770713087248712646422462313551612012242518172285412312146711903845804404260815558373302633411163845030625743475249560836774061138237834494353638534906596720457674678693126490898233676986162803864299687456106551369869857999729648574443971091698424083469456578587464772933701928306132062222159890171903779253312305016619964633134722046451769046934055325661568034268725040618915430703398881515730441823336477177074034253617522732666012780232029982916507306566133601286454275997525643970374462796252100145086316272540319517831981671135781076392307235941834783996309013395613921656298041922388556908375875526620408458701220065270214992596715742753820527712104445667865344397433936201968940538193462995035565101954432544049414900783390624155474088978490482605528750356839678595337431663422780324871135879065884759438621820488912497348452539864187076923835545488413476811180577126605040099308546659375238355861428569469506370238821988232811069640549997701350429820595197292212241396846671567828686768739208737162381093999472012469853928878308071262204729290462310009928348569766644737677471391512257939964290033581390927295661495007041533953201842022125218624519024596021531915791125675518915781244561184677922359914312605430430493489966885555353414521260600389602364874754271141356592338618750706379690193882873654191234662418956899878439999137529538669423078523196141093861052905885687642427760685317698881010325839797639083759750683533432632385884162371609769278080608045604871864995067207246174367970712053937521154364670630357273249233684638239219820644160847352101839639504135476260382400597336865149348639158090142440629840014880197484269517248722205689374338320323786945952792685412187853208964172437680476823235735145947206992020295618241462433093558306931155481327056475564864121714591772986635110920638523823760769564764376048430536606624602538576565813312615655281526102454977960955564232684229385143369385139267080069327748437805041576940913114303934506547750054466545900363768464680252043861596542531958733470173377282956357877777939974131967007585311962020809391576297255250023413412633790931924368243713680837941309668787603668560228361322157655439002463131182276646779801426327648514276559769971339498755863347024503943138213972107668031398075167370800645794949044896220404071250304230419529804324071986267001540662134440446109299691301341003372735168142995670481824025051322191601224291541498396289012082579618817227945619518584252064757792928221122727003177704417922464058176304647599024401892426894480753827707807796671319484106986943187277427701858895882389529676996873576248754287492878288331528444054775721210757863762523318406319221331010043159597619333018292935760100772330817525809420545844894925491826399500086235882744900181107678604802296747138940734267035115386080463105334028260119126469055449847475513770369314551752009883901110942350008984680034000608056928220817705539190237016439340017201193398050614723538076185242235413756067592254921921002715047878716864740155483215614844941823216544970394189407874341499800977587736670943091780447525095756076211495019055225343933728140459587905121492244203179108560004906353720697842472331440741315237482578674485998944072372658885269228046195341997511144366656043120142062257647728693760622046024401900136959267243671754643750814155409950498492759506766908446148205730799255693166284047313731234180530579232290058575935604552261830893985245856793918978238814764684825348456533554280794999328391212196243986904334321405984490764846549714873022432954379371267807205801136073461373513710922933010214559068369269345504332611493316727615686077959717822056352076630655578393521255563408591312918101099256012097004430052267802734166959461599717081241067258979499716770789086532547632619716149319394324150839641373681076912548440452206917281113850257714846973231861329596354964033585938316151183937732198997199564744472206377649536752648758284142277065176134647056378920260991422657825974398699279362663866288208598347232634726217596794647304439770215147751586448352100987054194500639447684111093792361477649464593833673449790100254922472324825537946316704340794565918602112664901465847079936887408390778381108590083706450463429201353199911682850156789920250812843785552651124148932948887903247874662327205116646485879488927180919412326388563427747845352702091035294385806450734029841355705739645591879073686742158310933356668814302900316077188226301844490591409085973526216167011717204024796831231497855385881179687558740309759824599106704677859075523005775577880423201560454718018270493267828964943264098874804555633066857571813718348619020692158288481760484497159259123790064695721089452515770882953683746179233096868570356385550624311668562366466956172587288171238875401065572594547099450068427512808762913338015338720578595851334259136132834216349846986443028142193521269890531127588003790452111760584477253504205857764045123422303938801997673007965362446046168875294052346533435116566347840785259097973313058819243248009220506754994843752876352590144204295106454546556949635658778229200641209820533003947361896593338906373355986656081074170417948230944261070743303417168646924544304901206892974234642467807254550545251171181647155783723520893758690271801828417854593549454202694459411847442151249479363154352969684968164773153429414479759074447166682824320950704801587444317344816201922763768386987899589325336012394632321512962569943522007572810203541148193842874508511683925747607480874608501916226206381249791915787516449769560011859046629419799436139624804445110256565945314721575855462391524196373151547774024651200264947704621594811855600069925627745405655752902349105816147942060038398517641870378812437879770286329564097680030922073056718602517531837481151484970561455953856664950341960061659103211691472171958558159478017784063005194552385720432926232932824349815697375234122681759252270158093583966134947387437234381325567599646811305667378756862118205351624236623877757594298378067726998958892127327781002129365337058124589351197709507298887702992680633174640944637607369246906737213603294639866733216782188817819624639319657138186011950407375636709906496112513050421602174171287516488844215531814496998906559948504143788131096186841756487755169796792601730297593553386978333698094915272661722805315115113517533353878133565486867039312583061048037249817445024985835259160171942188135812369996389709400604402729201547859039681963765918041000929877324253454015984030324514429510359599835835682098206911711308307980107960004462264909487424821014133150686579486866865282035569757513370182564203187099878766353568274564393712095400049011095430400295178122957195578091765542818259269425355733341521828687108233214738825349730249733791332153522492490496700620993323173572621911311431819448805830241544847426635552447708438295783634146051478157327692529166152585227394733690079426642207997101222887475602399751289918979895369242514812469308440500320234844520763905200707891271348988422715785317380922719521097469786167380989852600004458548073014784223130189320830568823208663414484738284100272280968874123357590704902553262532612535209571463604906330105858338459448483542792569287345136775847033683430383808443937324981092450750461369453136702241112683842605806411852906976625191672417300424549646016982165722932768010410297991721334730788032633978480238870532994860175525066477771281398853521047459651021710906119546557709203992626550897098019214280885798182527741255571635459414433633988469888816611420980952162737084913505027427821645408266474225293320899979982843970746527295521711249715989211753116999929472433378665249699349009343116458280405318036565799193644470117940097526812034338955047872377479597154687186126094556904916076008940061438432125625903422564602977425090514876673263372162383966930496745020456372572719735694822106546132997353936503435044412022472742376115855388946027240623059735986633096747741027001393918995471803044028151623128123243686285710705734264667935057176086879836733164739186140284379985481643239229900613265247019411490282329017212163914122391784159574759186580810557998957990312837222823923134677572390684125092799969742168734570001950803413140400087434376631026107690870451751110777366468702891639923804576348772169214912801568529178376493102261816551424081921719301144445745305671826276733071984594197320678137957948299209137605218738194907212091481272105991783440482756867981558871819194576943511245530199905266797361558408478247166732978114897189186140040093449990925481361855572025435980669482174304439542271655137576467111863160860727235329597158207252838561129172147475193082249034208808501703174095612022580314448087518102696773619555601443631703272553328374809151316824134410921548514451427901109194814785960069543770260942616702934740306625870970606217448132194971036171022284695804774563535896950450717235679520256692591246614765333376324322606357718757453669621103927842171668159505602233667754250001489348855365539198303711221017416486150738074801032394464782349471086275480649770334235279594587641098557996904146213212515613865606967968383952839676038075975646148887955994558017496279864391844687254733800922819256050974112256340208614603604229802577486744019392791232914179654327883596002785505654709174989048982482417139475369112093972683680130111767881479977397895445334537773791323403872926793389216359427604754285857932411668702970852447452762568791483153017103198423422453980847296089765612220558515820642936193257507295339092146281386501259278297324409068817637727290932651733611209233463583186904355296806432863359086112474246849099648261386558521266482750026591775122182238677763136212325734931915123758667757067396563780767236840840970605884682556964269364302956430948351875813705833353250383455474187690331859872981566696271085617254316280093005168088774037784700476918213921252435765865009332975737761585361681886028689939588946292853112954831185320416776197696443303595869784032764888657830342382935657933884165488394000534459276118265826536979747519224597175624999629869425914037744136265989919265998097969825530865242945547119405800280160383445998094619018865374407758120624963812485614121989980208060572823794774099200935768292334263932552447956502594555420041536132417557266564336433506320418767987576712301527032671347190461118832636679578396952881284295968850170957218817931810245443199346403515392793638804960566704850239894915362919074993529271530753548605338920677462435477129922978178161100906602128929443052278513344187813805126669097915361789987151623470798136723635325815597068391855667051380699559919323622887338683545158329937614439152693790617158012491233654812291665945811425265720278027029291065336341971054862202710730583197991537124562990187505211624936871454660324865468732143266111049131683753601670073249789275726710116793198570850343217772537018967162696223640727769506862314279304148489539349083417504183309951051905505378081254874766098242130744935947019157863325619709017871757464420236336139529683800013950375387737649501969636173994159651771656188085672864924128875081942771533666479428072025183374727785288156248409011930140740016329108874798143258207585817656103006004185651132636650705347271244746197893280735390301997138745506778851259292584869145969705858045652139772395565841131613574088040667999603194146807313948177130123195637211370844704577041598979581678799387382743085514231551992071748767403779282000878810528399416693855587504568679011455585503807387749353869447805359635062312257904679479533155234618466425532730399174912359000021071248673045818450038665408250131509326184929700610436905107679308869838926884989145998777871025507081930652855694231183393872286847075455679100311593165359114320713140493025961415305378931173399782479337208206060409934366997339120898012096147052416259155063827016156555748920950743749565135919010001158508631968594903894708726056665558838581971927337049895171611474895929369545736898844437423992855119779882468307272054036673801233821601364922589157025262823961913816322918337757655444452153881055266265594426114750566212688439422209828544644597773404928737024122886512032883291963696304549194742256264473799866590803919425199395410761807229914688701622128645177727837733100582982209642521919847116015592084229723334613407221366447976762271468092146861359088638125383888402492167212195333182308689853144986450176610083212510043648888070120769801743648936185298687982704039589285519374462062805833099246707583437431879552709882895796303383357513739687998743627528736704742083629103609875439503932802946429627480611842512149405145847073794767681524101307794555102623012488729548248019723210698549066368000167202774498910714349502518528520720491241471184803209534148658847400109979909834610884903434849950644422404438603978515532350806748160989576430532551877803487773762364726645982896016719588868639885691156765461936616010250146538827157430691656668915883911140068394796269495005417739041885496454131480450052137965913118337486086383982081476991515940864566675316356574656990458484859344211356533374524997994167361611153823759371769841830548136666378223924004485978755731252523154672332736641178917837533408860264252293003634826043902036330122564482924181817023270036817375620792511147297314526366637450121579491095301350197059374972343910966027818461837743553025651623209106787659229420555314248405332733844123324183524441311556967412070927821347570848463437828865965021208444111429109089180404998139197913587641288160292494007231121377098280989479776508907562860665879118974021069487550310400622920275025005945424760305431561985417083024172256363730056810444650143514764253787665255492816403207283955920998267022464191786118717414664024772454178800395907896328350158431464229098382003290689809445997475786862282513586151165205723416946170510367544226750576756812287925765583736702592755604159964801973405995380084240514136094404603714779051984399246375029156969849184872134784545151597312320631810245960040040604855063165637571562245487656077527357751019045953286310377387150754280560040348187945003311068226150491651353920737080926925180753214808830670755747504459209460185951511689319864774459679138319103155013540481913914650858011628582974647954739544500465150629317077456386632388661968863607904600359777958899207657577984550291971288051010468546333232037630161793732549771388073323553296535206336950082186862918447365358445907922158355429473985379868723180465036546605920204483360495327368242150044812979501096066760748939618477764711621874653496007066135560469591492692856158379288410570333601950266088937619710540051895927997952141460627289962540939459230270735922255392056000271651571040011462902704307572100723513465525226711884593704947982918077742107885009994094395534435171102378647902965738123030154369443278299405943248569581144421953705955071771671406662068376456702900650700525686442139033537825079645082302131020081879656532025594613354010767765337982217816279654749112310968735031567502061301680037217409124960497816168049732247310515328101495630623486052968432839791496382730938002155895909687519023713246469959758287043085793036307820477134833771299669758838514497497300134956161973559080887136372464770117277194709488177284506816749273208931580643517497723275268583460676156462607914480238357498712696053747431781174273644694785901774202185740913825458917008520630854178969092167452033638352066723313920120436140819666380947833243053917102927665416639963703231378351023760112935866075067920739457733281471144066267054106672483160242911494132250340865373054877395807770958971344431811583462922518578236707880365471545445594359563271162092295664314671215622255170011399012771904248985946907783106794525883891137644704123064674205263703978144871719201052389568643145053692890864365657784628799629041719846590493875638135748751155111492596345866330200285468283221086302514129330886373727590804647932004374905776675128871948182197327916274133165461530082520229203257663509909970362860035383662126676211056200067728787070891293410240498377726289516288880262714099243791352152879777402390251896656999939904114182644363469879676082929535749749820690880570176202699805613234904607410185803209601981695323956160191323297954260483544828487066469414254940723384022338224147948970914017145464909898731261649722693511015000769139998450396268987267273724555095368233908428831387211469970863806228621918310793356602618214116482100509826441508799181463107514281246781697995038606314185125115439443204874871419515177329895532664841634527675908941812967851712916876296956790024503050941696948303288545100786495709632391505048073985775244685648101062423206533091815625343168371119997829184005608367565461677144387065101402102854808425694054073496469487839117923592920543947171384619858547449838139209502266676006425985610675639442546367135653016035381426374235697869940169447728553238452452114789398306826250401441139207035579707243939934076426261146472608157176633161188017418231896145620049656664408161721061037294708722974364087202522620697248048991968076127760926146437555783104433642718942358752926981563278319855680352567506343117397423742325137943012619308724631856115661014943361503612482671121855936351283881171988937494263002652435383372321630275530897457319486177745111693235299091828639340177829264785030912758541463557505352120940038659784320091600184775027304591831008917872205880064624324145661688156742216063385870471006205029571248510294778592596267869489483164168083360491210345643656177587493322726373770582512471730423305432937776208751699235954972986431970458319044654791841680577800538429078878716671751008970616197455246689395965234264273202314336129824818653043495161648823069837007130443153834692967933055944428599389654534876222443272884256476382395941861397350960796977454922010666824538727469236749769897065484134853041480027059954450084904484683621697866587215208861426963321814520911673142794826096762083898917486871164886023615616837892676887097589548328399953027140842800732595144038112728879515252328083020357739583199063443148181975417976228572724513157785766293364720091668873854723956736307886689333707774552270617689939806197596451509843773813031068703323850081450081405191512771855020608892871113056008211688218444439369995507258718717114340040613955175638338641417920320973313656572131827931229960748288995685077663079556336580397361723850071270670895212007090315408669717002851263497467636881276217851714146048652609451318304080920086819131594804199404428412582466977138670762174612899035423726057932244497821097588400964536191510839842826686287584925102029417157171689662776650711972200356691967395039522190848477449418418473769587905328221787958953843609024421334626588279492952180395969019531268559087181508039577296195095402798317025861109742537185922440813492698065210287384318959029957827353445211893889233958531349356937421498933200695810936458772043761515536282816064830043646425160142541991666643535038017683286859010177374384496387946876984855703910589185080661063729209779448289851791905511512016932999011923801804598988919838750465270793224221747488822021481820980516612410851242005812509795179845998120192864693173002524413607069289512217254440412491356812332996288237834332864116932135645381548495566971748740312758518271400994906371611754495318733112182688738554096489605172050566071841591155738634928529664694800561322365148287899127390694265002497985791743195194852173510995593214568656224293493790817799413928687541690867169154818878697020661022016736329657142141583938681586589559893850961009235158439041689878490721886659238385866526911120970380029646902084339765251474559145372260920102549521178600906893918363558968549592511689884702905915042503620811266827368608664326683252195862653388700677157414300800206621331733326064298997536022918386809389554330624268083390958312580702612432760373562165729115199362631883148533347246273485556377192465440286052176282680490673074336674611860289572099933391808551187694527488347660192147126627068824619534621438420668807048134064559121975194114738057141594420923779816424841002289143656469852443616130249972938254760066614588974434792038316543115302790098317569411422059214270091546200185871332834805259019030620316835253325929628810615913236103291629880481238632338455753080366248780895515289571607841626391024266438906858928223348289951845431423491922511784591765247696646682645218670721611792080607747266138627036798166138282978820223871901144684009454320876162771222855081791139975984864109619862144248886704361905608701955867321693272363524905499095432958802768377363493796336220543054721745199717895653398368385559860229445179638926878552080138654023702028147659587409627391203018114843238726500713394187689786861393053480741587943780800100376770955671780566630382219948781183858475625484373804859469544276687640860957526727124360335208643579023342096630448796156590408711343191239354939213585782604464532015917622840018902722992542579925979350528072494787737180651445207389894651667521097923276166835802945418212444392895868323255122393208117692356379784353292653193827312713163745257625790722850553941580516729354482702038864166214751171844023346618898921911137558577671886146802712818156435693683998042256079892013238774618142257792309450788081772090050599614834826137004042986160511790139512714556184489930299999276824023073453005237029829863004244524463295996742237711548116235947386133893349318919207517317316603811543910466037641345215676137815359739802437102521453159920377964578986642621628565347554030362318114383250985766874341432938828764273021437213292910083143092864339414211293099735304456190092472535044297933381753952970356079412329893826291780921862897418863195516861910490704413976761733959264196869608430228020155210707981329850464854635297360600836691464927962331765812317210083539512850961637659117559247441013031890187054039282225095282857136448455581312649225999561232757021760788537250582346484452878421239681521545378123306593197683991147845465395856035301494121843450992503235803312240551213966137748042308428630189641461360417242738601206320765924775121497247116026002528338688679354007785625291754521483682103620331077010807063173936853625359506746428305880015105668423950348276738552291966744956021710848894063051438557701564037606347242323137501724108311696705202855843273507240051487033056914576670518051373345514999475179620802627416196115400667873696460888433827820631408251098205427925038354055736349553843333106477508509414376326796720466881105520765082847890218486725914148908563077240468715823980074827408172881350427394541806883052166273289423995227470514015507776144177597199075128587279336858678798336612388203605212994639643732347093511239897020597554480851843434593879156779741853528976917942443572016351100162601320116211497111180121031842693492463362929828835636302863773956561213890429824930065837552527863035161133551131488942733069676359557241403750423115969229867241040739749494507590021684295743527607148791741344362116491298227715404777900152119637516456202738672706397320210015725207897011653966920481991562024818416767953763112519657895495086591672873283593313527411584829711800144172306399711265710540432054567033077770596923635174348307255867027921053084347455678566140435576779844650372792628772564168551932543099310006743044213450074589001544677935676211616623102417359014039342644413708951509119663091097142046770442513805361885931385563908586462278921846107208595839468761211017612932562295475466254021069460564538910832946668689131486579869838252980490207381509661813666731444592211075968316775672313998297630064062441000559259159483813408411574429028248502703124552001657181075427998216086742352620111638296252798596976228137261670329084988747719087674062922369982101533561114541455529771620660760082204768044227060535143139496098742163235063529004839131480296593154268375079792727861520535660861102853847234590810796137137736197133700267821633983094519619257691494278223254331760866551503866913489158101079731886326307843791772472466020215117354786935184619869661784912178809610186807891924278996120252119165754210524033530248925543217017690666997571132731047122678624845207907264786902422845495211616987235318027847491088568094760894963909866240685090337503633823564856496750307171498589611602088847188325796799651690863476623504305297533092332329467903483619027393532247459461127749152520633239547368052520511106227442482908263113539552015396923065689737568020560843808538145030455695772891426007032462914292844188835198660275189070430611215798486282798689743071181689362686315552760376982686551784150267809515771511511071616849390311877562896498937281807454574519218585511112892583069006439261302811790741647244157428842199782241374659308432000157101531367671630443194831847830557646320734298254762402218637026039435328116419232642496348356517564370290200102645845073564532104383769194504352482365448904869508507039485598866488923223260719707921877045323391590197307300473144939209693883778868024989709690052494639198616744846726464650210444032888966790926419025125662994335710926705070905283217793987196875648156779452857189928953770567330392562400191075893179834131719683697039353882607806551666042157445742955012068433026988692567457225174478765993921353435271122069938238232460273630849317075522361426213644843800129011608498706284271541098104945498905784962997491236996311771963099907821824853045607646730090860289654412827763878798257663582179797789127215852954880231695615399902251041111077884092891641970528748882565339488623570265095577848964926535119338175996025713937228918582359667898295870747870482180149386886524261053332591977507909610711024785162809964592136135238814126972863366516499489295569950651403138731635744113361217763346136923791411776408626266147827596901033245250756079922380088756964496007657815959362919879454324499555374860102695846109593706125402311502752357434884551100328810949250465696625228954852441601929277353598150898396163611348658450018151258011984266736168100926269343317039945382979232925104517344337541229603469232364747870829763234854621302895240524903687340859801891218984028145482074902987074799671596573077220317586214999645719900852981790965955622677999665983619353431652926321310311805738003519159721655163717150216958736114816341081952871946446096524088930306007679704044407892051869260390501224613992788835229387149725088220776729243967855451213904290235278890509073945966649515985559369068136852260567071856795952316617803407084364318771264242335758282809621535607598070273459763375037918100803973057277232552764583471350474469831047208592048600189412943751610075596328676774517973655575862174093918118377046274763133767858614939073948347172777956039689060188851889331936539795231256209976278752857049356692313581925778893428180688606360101548544574023795717903223719955978975941930011773515135747561578395748439848502015014173360045797602601136798526996137519248868887110689078088651670532850389881329886906710629188771485595038398649546516215662444090157375885210952354726366962103606594088016346234032111416380729145805532701282351036299205716497908855873171326939008100527536689247721531534591544650151325717198517925382284907359736444864911813519100480200269773595789083614886595857780037193703365801500310054498672369820131081352789044815817391225044026291542888195228611628293511806602459668687347998533855302506771130727463258623104181230019218487845746502756345315294443637899287782872467406446501167511221673886414962934632329441460729447940790300627110066184192973186325697796565190770877805846559795490444179624565934988792976009435555347266667395514271557699394034821374991652226117153423237787760263832815759849093031610738162590566543374752237128598414726299164078966242995519688780444149210480558792901813513196584136438271657464516394824781134319364260504523072685050059611519906107913689641265185711777099098311697031164210076776831007839009628358358551458685977264651226219840614173795878877033961200319594992641661338484859565453798790066117367107571833024294780060572964759047697343190246641264328005585284427807416339330536339982855344748798602895872136071510314122586135209368001134119588399411247126439163885975706595469275349383522010573120969130022104165563967269118398973432099107183589300151576621181187677137835754673400606014987270666481883071799054471650817936215760937238988658416906476055463514786824131038612967226840446749061131046605409020027395948526029464486325413895151870094677964172820163143066913969703685160481436131017448661849084669290091987180166500702736605478680172873460826637764578433279905720024984524648426346594805718686214250883872404448864758624937869795034997491782835997911464960077034791315817058924251750000788345849670349458879674198815912406538799731320634358200910986715555052714604091628052677969577855864503762530473141818587592092230422805930587721646480373710417160515423254577793615388636122809231778132453334610852666742656152608295331324314629353516173671121861794204666185193828094225936429367419576886077270842482439940441548512899036063138835394179076201384864033851063077994393409802640935283011261831155299480413072883981287419442647599764705895233178868877544582205689782907801916846776973111018365895312142759595265733181005012954362641211763625047347546419868019449210705187835920267122566344058323474651895979331163438104223423613237448107579090051732103983455775666307118796586189140061695264689375309628565934745919092075641481750230936973498201389139975470178386274557626955839192201714279053146163327229302192099281957599141189528644148699872765116065457586867506959617210780807435861236345748716645733052342531095169423604926657778191212026709342707692917661904636031804062092323905737758484763465595495982119445302207240830101972470918299384455817005647631377896527317855691814211950907028419384686311423794124528456853825140913864461412777996278679370546388192994840847036294394176478527430316923690378256583487970964328225829360615808243151850760712976225041731008204555110952181202775205942919300818506306141310723746332303436881306436221592705058257518767900431074115148056569988567288595749140306205189867399160147092630826470795004407378515807262284431176674945426412420343563389003043934961806362435455067239992232095450741541575535860132511873293633117331058702190919183079332775373679275108701245357777433194602039676040143131348940056337467165849071492789969283949605394747410975727742254041265842273453433258039400686660875980901917549906609695142088070462913667412991755234172274756025936677656761557479784865075183784161590301859181857604056964074032083244059646664478648543875022120084923923770886193427166945906676115530104511752351841755364627927697742791306496940450783750758117566192076744539478738315364580830748631094140916165955105607091912195990025029105552278688288548241699348951282222388622034461488170662378939810010988999880847828224817556684040676763805215880049913068448815536014749551150750285364028818811958391148661243233636157100444982131091209912085008368472352675756753414709179213348778273053775648215411853153256703565297926609546770338978393779840303407044390513994471301066797835067157523573251087851105607230859920740392057643238279506840979747677389296185536174089893556888966902556888908850523644718110870497201396613014022151875673360329711607234289526462361842131838133043851836767980105210584544832220137084353588430870594544162607991904255023712686461543963888593379509087798008218429660323904393313975391003424581427321741719245709178807030162439475741248517246979656502204505127966693879745753384730685301937195564877124273311213626386882779859859723640459006769757356067350915892318451620716966193534712702058005068498011806728743290346711941752166279943482235633261389865976006632422972945919175653475179115860048152882796786183522623941199936819935210911638632779773587647602768578793304790015359689475463544512971269145996081704008667854538718288103364704613285143776168739470775739731857362780717919034821604515211060698370520771475545632720209067671121902263615075469038119457157432678968516722363377487974030623440729447497082315946765634602205437381342255566822162632267467570394713552768639625658669391631229335560788327200210413708292123414411502665068501277443448179414644309044340744627812340060813025589244668378521946384258451943771952455497842042486097975586228715162267316950164228941236299977515580161455758995771139636614015649208128998476603376693798286183874280508158700438695747100242042406350596888451932147755825785306837392045652303640790572243368654888659106966179987655118704366991695708596000445334615313697600834754910297231540340164673652331951755992450150640218913513019293104310456618457037790717856827405636955675762600495192172160746588169019816636538620544882651666502365508133154285110203228012569200658838060248134354330401815553443692475908718275723152092026837047107999606863960792754644113817326870461171066092752259549979109761081105169968380016119183510491203967547416966134707111204334698825817807724778879159788540324910494223362676480430343643272096352542038459456180545705916590243950101764573826724260107969336505104643974071746215684274922102578290951713777668523120289766229312647523746356682379201939243756498646660726623879023798787305803584369972878022374981401295442617153229214564089859226450861092896563887439480736719789611827649972384228277958388747089578549131111790987744203722086192563133314712739730259702934170166433791935056047563609261581470937772782237415861834585485404942720448780446386472731345279265268416423511660126806564115841133044258343966496313747382462310677510213458944855104220242154836747286322017767282878445830543799718825815838660901991083301740787041220106117663764857694819955598191571087115224261696176738530139942377964314705955073754123743817443192792124391131903640073856383980190748780338228443782665931704645715803880979522536288010554111537332865718233156056924918877688053711000951903295416460735252487699015771059576974916419631485904365506719531959861661635421803521684582464051733218379583970157212301510472077059369614848302961873303737188313092134217234255420244934062689173512999132192019441882240456993279143969014372700755071770532957128151275926446887036839205385438081336162017346963895154456210887064063008802875157375578858850828168135926272453591339072249854148487984567056888122203897186355395038291106622985631999777876378542050433992456789769738523954284926434969178228648188474903221373775354501690833813241986271386289259270532927857406550622012350182823070349424291264364379167937376254568385106535977140365779630607123649430737441298126347090083273645850552661657296298273225307921326503219417662102547140056433926439362411815529776955872381122104593832841947927760613919170942388515522068566047049775848388161828305747791664575411436330299101194334554090087510276720298349884204753508688018946314284772363091150747175653303521835768732158976433977198038406899149267675707853872512471817150735244396944886665520398486171305125060973273646486809997934264939584963664437113695319368194751946757465990896909540106958836506341989778909211688157243726001746007323498403152182309803093449504267958853330322041989531977543712193536129289297714065795451584023677435005560699376649129938833034565794499119049250518032228862915915188710889777876621964292252969548126986766850171747505758256208889381300209975741127796310306490919070246181311755487006835165291117945633411143769637630321955400228756179173291337357045069779532643945404219537409542956524495145233028284508528477637327104297750672837362845505843285469118143455199779661734034896366594110561818622692938263865018476109967346112040383012505491922697721474843079207471373116231670710638654247829796493631508159374375066807374327751251408602848509570323614767535591303451507156250375906594102565839661216591121083916564009139286742458455428049361414414088324320400995304268889057634922152445199491901272832352903016273447332061145000601070180819764051985511571683266968974740498944891026353784830427795410810267390193011655376453062874123222800772010670220092190825834072921216247255626158894686913394839541468770815787959142574404005715948182026159693631037950342603895977311538241349407313297709955142491784426374322955590202848172941404452120852967825334304264517955292570127302904914219102145546218534845524657151868881396993730124734712673156950649843187271451939206376043422507963168896645287038489871289404569249445809474570742440481962574900689572991768069089274170153279861674310912239406515968624698654039923009770794297373203927965532314753230285845154671312309472098044637754702383938344019158298118579528859410627355148783332012911990048238285958500178746546060492814498924254052725807925420772992984220684388444761443898995946016224532165759839222853945047550833292364124764519378979422877447257021632335926255348543728794065717618231908557516366663431768331454558488942028245134286916470981204988321217124690194058621561598355646589535925977266780046636944061205976636763707590049317572303649779126326862536483016840479111717574707950516891115321534039804122838848570461474102649209525993877740035472336685491649273666200263764136051980275603202290542819127070305085659382851397004638780841970201786433847228829950465181242484373851553933304808762661160235990725480570343891439664830095812460284867821021733123513112313800281609192000322680861565103021732483206113646252185397655540206207095640822328383763131152335494926932871858128363748225095728473643862491813593907254043298506685741883893625163563502287427277388918283838243968562249590646343247692946781307825556900940193113689688021505931108113330516258731224658908462410292237858979241660560392649353006813189187805117276940514413502111524917164074714242046738425355862978072586445771054082370850724648667097054028985852287037319640047812872278596492988207069690317666617379044242707700103386195105893115119162248245430416652954703885614695090020071189831817978841632949395344519786097414682093027582740301864862521211620605319175056434866416375108829720936238595518130524459985650697535804663709681852271943498586398275156876724096580342667105683670412074126383757099567485426856752982496222078245457760003870549832212500695314813617484703497792825690575600030220754700585614916594501512478066561370619267997788269459110551873141439489503380408219788830961864272621482852177905268617827020080917020257237099703603299506870152005325579393924302528630469463067985233638554805092459876315475983084800903377259701201212362975562639035864315950975570531166212486564661283433440566488362274947011656265340830178650702597825145812856944446050703797069772585865616824848128943489610164171026097129946159851993724423268224571181631474963633752262808140308763276320389851085974231271882048708005940341811987391497887405317671729505184213675201332432023676897725538190134769579578105867246019555043114620306210764263870657674391795479515930642819351583933525722382380339533729131425336439684422575665413896899931800022323473545721139692550063652080953505096828585400626795593780175555776906772391152155392306438321180551779270614622379084159090633919658552666786024857031878919367865591852189452663167023585508419939821113936147446897255157284705624823620735385753407362291919883319671169309200695612866019498249545609027424998242816429853741450453713353740730771608338920317404763873721992016934773081649665790872162463143983158169012640261967504581484318222715737893898439525756048755595978047400213191705218940875116540913260803386317057576188625261872884332438708300798829057995560735844329586797455406303807197667744598288431962892738757675315055889384910582606060182817967325401929074561621835374462462293965172471324294627499121258293107452146673948673097772830562058251540317492434040713531704396821336226269723529426378096010613348013418076794515409962128262847900298436110544886505370007661469681839421674612355130526582237713315742532543557110063302854888747545569763466282109662721319443547364025362159635358876959659430453864867561749209021806909982727623088233633113740154950865727154012558849914416083857331340496920461620173059745302979972083641145248147702495621162176912989649414275544869743865668755253907955658182847732258109808702563161950208306576020522790308218546602229468997315529742945116806332190951784422919448217089765423872527702830878271238549080067460707398464139120766765139765742911446134988197350890401631594107447414836309349082856082871346271582241029750952944030764222040995447965961365406673313693937981167521711423217883247047899589629684089894810995535725362220170538353598932275419591998098288148026927746696817615256505684028744557641418715959992148914540210201191234700142824876361948768145866931946975278461168837465455815551753406318595414376955238952566172204658742657266235115842244331518727591105054687769266261899754513313198515634797285525391929198821071162166551909567377591628730520651539359628002116559368041231147276311237710292515944358341481599520431016173366675676153201055799757214670507532829590294268041739928721421812495149992804198268349343235102050804697854901511231620933334926916107447601366298494026773063552788121757387191114275210085031179923841723204202750442631000755959577088231023147856842321551150345366032005532939949096441733709087887598356321709823175443157742270303563781208887761291101331055204681079843318397712858207571833768836911436941707025795446728070835740387373307164183286543480318543156073742203075383409242324224461328576821909263952287506722372829540662803988627304616368570051785289467343595193317558996506263938651788983791332609852286973947405522825697830749924191332248972678130546823543249831461062735232579173840788263343795554409724999442011990221260266168763442723728585948081442400306566391910886619710406340258247135711031716409548180202968095242670121254916453412757600732215095713508341798977082769537963985675104271842921377473739669171402420134124176413137838099772304875712198522992227965187240321346947789628529027512946403715198900912555744592114342903570594533173241340085335318595904429327656514877809250267299355753227574237039973223685426767388521597974496634681765395527483552050120441398896811602978663450516894487855136431229450546581479901614454236524362452294595309064318313676163594039556450457015409997106935089967609269280393688087768431105516387509313293812096108596415363212320920422757201274380279231249689502151274529653117927150644428945765556465934885249902668992983684939066851592953100490902647307462116809864136014449102139888568345250601251456469146608406959996563323374763138308580665765002599114852511734173413184985076976770047412459190478294983172063766136853351901430910848499253034616557040233754302725707460082256823206404589530982041364285701313412933584860934903104765111389352054154554904139021240311774245492010538511151880113479160985709559937008273084641805823919885842031229462603881172867912106632520288711854810083414111925334102764232676253688476973765319237219476371124804512374791406219582661594581631320676931574794994481416992773100183106377852780117964557275039973975909407006774984813848611139376556337144956033468993571446103098361373183680889026944426078643525882570421726105136036721986862917039258547661064928161862277104526293862597721384883621001922792979850862417986636866437295753177252892966331840659722146869772262482734005781346385355061473702246337296374695278126553747502170520812429130419493005928004938504588726815952050118241258069827772100802563484833783956572448228418256125497662188889713290630233857428005471792451106014167977893142169538001260724174441411244756676895661439886461199474352443075069452579029315477353197305150156455568979960563773775019613719886341803252310751991449115124738488709909375161587864318471127430594873625312922832028752044839605611498909628531087912817151878949049043793285718808288273216033353769791962065825871908817625240868263938189950850837319390477429472405640168967174230282184648764783297821430361925282986467605775752831894613402822673378968356301118937650923669756056840989437620417729754722643179183001359477890950915880176912870478643032306397584813654621622092261371681687445311008406237421159639343759176657461130568751561277704904478365233793883030547165485142435632513479140851358441044543643691898169835897901187626817002317257482249278941994346305646588556603862136753577236804990219913777773181269801462803060316645508147597383626666821304182455264636556560968776822347873593437001061948665499296886477379717348038268138186294080112660217098968108134333885514252416495516108481640091879284139577874495114172155559056140675117290235598463819960501839324523802338598805973796873559420422739256999218101454902452328362450347344434910097860837916540184527289446873847097482854722688843755829224490372837528828563412897465713132259191591233464803106781588096962084187111122858128481217085946524661732996756264076580555496643511908965898505487091324154671801267585236328338964440636587077219729498218568328835303700566939112142004247024377320747843367751545198830687890608803622394862592857408575886913892277688335191290024809210752329197862421342755004907323555872457076352851612364922737881348020991979907848442970570704522193153342133657671451930304905301105734975957118077695557236008418925732235213786880028142279035962943317538633554838077425624423710938382434683084282500001385455496403639835272894204823707904092033899698925995149185510475036834897636175778698986093832757507364700305491864557559584806301936689117599231639281682872735600979830059864296767669084717502881084957379953500943519723074871722644194054184484143089542566445109048944500346816081267247055631144193193607271317394059719802927826820174614416046932390129607831696917084480356097698055063043277448554143188131402404702890380420839635967217879741765628862188513215663144750505065191926437325640168761128144073537731930013291080515985459286799714180766705727806376900188398882930704498905093345394222723170935027291919389972078826634079293980920396766439985404166277345979482090252451378806316153683773312797510122856622411324403889865334528835970819595404121555172190933970232803022520907599300011668164301918065112147271284268446698937198074124597872808190617917300700751222555477539943202363418599470966070596853085899009915954105073256588304221892134599095899626269891345586721968336582715423070530134749887835144124759049611797192382822905911089016341778306920618409548422751887855272743223225418215871633321202692939286037370277029342685328321522906892997123206962027289298412368384703806112952066284773296411608017236031593327606995587559092336015030883992120834410065622406446833111283692213972455578078397537229976606363920915660515307983543212135777070127544804391621167358111197812387710958640872240688778427939525262481446152435871462444456747608523367196843849687008959456237499742650088566797176915615484550397297726943368997898714585021065971661882241873644472223279293622894174990470182091261757888654606069726349596813211140930808728332046792984262862933761346538231025071628697880057942921697507876681296749776539044381236735710007586825195219047411839489555327964661937390302465944797089403371869934390398691076094333972471131374391819534594758589468637700422249700201099227868513832640666524069528447769456584454824988369411874540644179198422812733427221138666451963019775023029588543200823580305567853994325033859036933490046416489616136770952588781423183756527267616605656842147956209641686089406704585481006336849692812003079443090502282374821972722298740272962767387194208427738964604768723117886176984313247903257212802014835578769401938757959196663310366654583417125320185836581675561250858477546264805428188068934998666702729997834546490469528705648676828728516665568443216669492262784355169291074102543529237719366687466148360458035953958339569932616043642921320246334358990292295383299162671786601925044023081604047401438767794629717695566610512881000545707906975541617634035529020397448875134277781599438960784599819916913441495120899638201250145924289727255436332920117194553929501764102560175843454239858761655918261681437120898380572414402729266447065833038412342520179017816869433524838250512936691204499633341039018404202932134014797822547928547133514162139992322922861791916685525419606543622409195766775910184649897438782759201549115185999168848382624430816005938873595348095829368575916631928492048724628689222539234687190418690147559134660436720782798494769913118602870417311062053809872639716172643764618840545504157314305580154789069974790156665119883773106520590372049597920043460508330753927509071818468260104251822549384617785467805247683807597439165385466684592076174881703477227341837938282660947457750510914873808231360634003284639143718682866232465165616462858249496535501882578609885502678849246904131124384043670767791916364782184494234416802862305454682730811465340601585141817384545755054737817262033989682872498022305733754236378496329685508489092337374334260575555928294850880793882959357969681629756836977538861662057006561851350969589934644294897312764075776002751931492804165810785231711536959109354248055637805799685088078689421475340647860992088597375402667470477126792834469099610067583440422744372770195203264598680085969315399673296264049638515859016276202527604038147573917943193831648997221073393650484606122482913016511632196348832775219841344517288892892175809360044378487486930263411749950847377553479471200040946061039682578456742247054306569995966887774958635432599265699289822009888251819395525292131621779055482013183428757685700333466499717813019410008754896388102257260766793364337781914636901983019743717560781505423453374852554954440248750158750068885521408748100307329750345404348226794291066583178890322020393184927560674393314534224075866616677755176436758699236983607537268118193685562409432932821264634697457302113344702118215664188900641202754348341703979722482089034251541394872522368598112924338912331071257668583157265201631274670986685094923232918671905263701650521632749450159116764609102465034762298455523599543252410988565544896994750588763549200561562720072506793024531024173186070762566134721815183502221707033661785599633383503967406659505430707841752590023385621986994473320149525149696242095047750061730181457325007962272669922702637846359367059715133788547508800604165381023512619290810289340870283479877963770461237513753087484130482088549572730250985159724497573594647118749052622307746700990150855978505922536421453121447655356670234017979261662026356545721765115428086322806921846319290823703780636116333673900743207574524257910532965131757380608006340439477140252901632179937059807274846373146618256857007271060509851492824815697794297159901546770283516583732829560665016939822373971271105574987165559945009880325543571752358779353503999287666057870588544371424132609102760766498767211914141030469352204382690764702366626999515544948926827983731372420288939830395869636378950822536669114420785571930356506453499456924942567955981660525102269705262250105014927419685617067787218467439281045241015088823831858255851696133527953170581343259131430667689303081042803757925987978470066657819390283735549995562331526268340234399996759871695411864154488805360333074277546361221006198845918979571337684672334097492847488688597311798807990789634766362561646366202009454035779232973752361303581403336385863618647167516432524701167208417330029360302749314169004622904707399451890468285181958884224490886657475823751297610111327887658268874667970312415233087710845752607053528930227661335467488215423548371156810526159440355629776689365270414430822637517095268575237222689954648468070440476526693751806383276595546620514151123250300477185053937673129999859042265902944596844603741710343458730317952556095970120116690480411378751447838174529309736196775480966785546840949820188678279924709120374855113356302435026081970587658861701052984251593046883116654508887706846866733314108450148744392011799971850266102161430613098820862089882177806583469009074921059216730575087852275269792673596095908915925865479302192401973437806459858182389671373671695197540761228192066841479465849395861451636337334881634830212362887811547646563806339650810269933247633281244342265985410865010041947797908038937660523864084827444178860824539944297219313882894642037708284129463738613163771751890014443820883785471080706418564024046950980602542970588099743330034313338084059073991600686348947185305076325584004516176087403383913741422512224375150656377314630427587678526928661534903419796863243450811199118200988975377636507764153457360182855106795884283198941534693651046684113154143562385610344157292869768385163331904087978392655125808331569660551156646285711443696718178948867479118606503011475842130798222999186167077458302832109303174655841946402603784732634859093258123128110417079161185780270216987829701164977036787242683855105909958691135391245059637856538747203118537345174876136880383789331592293174071785571792072452562528567484241729343251832748545697965047327133810775828075659727275112473685349988293330575483718491351448520394769272787341525836851119956661199070030668633773301223457038473611926364213910781585686575833848057077057010747151533079965288010255731544463862673004546132944048394483729258272515683978962306994670828618967226125523153816293963952661948335892549802105189877968953456893104456420982597143903436878599787338786205298084071616216131705976627448224708208433435444291947308495330638673098259913010336348005769547518198685445188296225947837357357640391741864000364252750462958964599918992617114982487769488424611139225557347112190119521793045561353031763815491845798029435505998004598043419215155082633407210981716619839206647446206829142859833366192633755135204275596045444053027072087276455119513541109086086892964723837323572289930394882068848497576627061939136458410981818182166616612861426962621402984107309979693346305181312446881035394074210890189741962647122150456181543432051784137860351658192653155751323121904077366775702717199006929842740124512790007038047480483122350416104340499126455320048093759369578865042076374195925824719313114166648101556104711790134605700106917876368364642528464557066683034802848081053167482721635485248067073134430730931920508240532231583680157496409375335471941420313875914761597385757498698803290474372535692563616935591390686918475824643113593624951306516819170918668745126680675497715265033020852239325670583390905908156708859378216119429229850707900803558077513424053272489262367878688439085326394474057475981994837225587419809745697424328385268962364396553402762139196501251157503028218704831260131732530883872625604564162791838566934224728052269858700648360142961083007175867572806653226344130453844402321611825020915040564376515490504414613506602367792665609681676268833585981969724315286451070749750450841105261222642583215629863123202089146115967906485935379411042423687531050482190799568714327660300690079570827589528450912386605055129376570520930809871468873138638843639617462024182755655600661128754699285263467691010003572416071531212314214752646644181606226577362048688337170113721823521910638257871727608858078872582940738534711774247971468473907646427672699524514903538901219521766231942477987369728307500036534614988039836686285383890106184060040853400954532102103453578755955343415454107535905515597380411680128368224633143565610727183415812440188723810704077219474816658248007341894063520429380590027653083166537495488265282132150195702843967738446908516899009094572783602092444977674369810592137461517854229391030027130380244028383933691640804732212235800627292804275128276524479463853041592160924535430416529234213635026082534747905694832166982667003903479600703860596372776083205758821165777287728858412574937798645589252513469526426126795708561988637747690594221290805810877214819397014310881140885418755677831857104358974769957748221755038888584666339925882656017388015402828214606040028805901612593285971836231728402402902382856536543750093549292527194123087407682156186730007730755607799601243985893788667671203264227724359061041117303674936475837996521875191038848605693247377994725731840629199384361997403117735939014096648121409433217862341433094732769108430606296986183804567164919539470119499091219683576255083311204107170495999888481470102454261286873463464197290503958648481279976793632283000866038106516497116974449637322172457213223295166928175136260860175563397649978502884889551827262473482940172138855360467441996142204857618198406748878931304218242225153154997271829756419317648205969855159075116891027330087114686850699156534236743055511134983620606616332034699731261096887948932169873717397549738005769008738487372091355332637656438097758925380829235373238875437485384624228416960484429164294217899593041490464664983958658767857741456588097952123538082547007979936103991724939127398185791461010019495486184480258006612616306959102346715266976067678785467464747675357835401031419828216441188519072456324964582878462608603913238145334749398643934094155934075752195802259843421083726876260430713442812342298624726358644898589963967843496058434129026039814586977228149369690831381553768927001329276702022558977938366880604204266308028231854204140081368578002696110934690470372036999366125315557936514814900018733733220618983396813018736401296421875777463411129297563316191201775610671481389187186864699789784904858845756060240492595209695869054769525773581580439003618354157841953486288462122738348274172931280321828707194995020192873220531780648977920668390809614612130101681811900732008509720935733242201892502472070971770955701216253386813920794034092845674517376731519204205738842673274181904107060607865663386215123212095819580602088896138651231257048155851011543981128358816423145711742350947138588364073498849011007013377512191386510136447795385813503046146563848674446071242390440309640438709190539582351837396623944659944569839488410017653496822887333006975647866475209129306051720623910553543456124304591953837273774871505500808624331935021873623174902192863611729028878678413282439218512799773650989065869943416446156962831936630085907375414756240431739986275176131283987920458938827183068214963530315389883592926088182720246346350222520473881749431377920703392235722363503077659848583867449003187107605497377204771390179990830634788499433568281624451555227703247961190046895737247976245374308560601787459878714333651708090925372551873748396547345258015999297606379287393170534598184999530433303904494330477698350851737823399495551468298505408389704211686650742850599405880110091351730328165549415754131754801263717386707139588236072475223496862872011801641608448799354114369117922949613947096545278617569996087475674838466379828532904348746811850645331429637098009185261815761883082714409041354163245347950896929364832375802706155700423805138196673541951372902370811418764290560199781610244956623350708016735291579810000925995428889162653782603752020828850182644684447317412083601538392687911485869052413650707587789900399814930290424758413080862083569696213938973571378245754677718143098967109305996465404823909835747728728425441076912110407193052633870887232578052319572559204866625430065860958505982751513218954197336489194169836880152070158190887302710282537602468791408233438753347656643211896447320682400859487822061105868416407005448368047291878534618522143456725152180262958476772055607156585533472292350470397282241897191955050983408298758016948384630219601575366023260740432760110006882591078861963274560864012967362664054430214034352617408971888885909709782648171789294534251680732283283454032927819322499108221587827461482772146833895586053108828462510558565019671448667169395777444523093852838308288119541239973881567142159846544595359292124360697604559164648467597260123371583002181291780838893207839235440666432630181682575822601600675077447202770027662491924152704292268396364042826534602485477255549368166649509795720536510808033779546594672651597096771942714906584767437795787977943062265215370757481813931127364045194129862732350569685787629956142835405289408022276628877767878089341124698762258343839688101461729713280990886825293125669670591903035457556348102354727955706898002080068734252716985592968445971589269723544316419574709820404629506446555887246758830794771962576367406035768588782776960896627825467525715453213862964654796689832354085971534704315376620923063433651707084956518237305554007981595585847412664958240579696516243444821793262399897541532286887278836088726860812346830896044014407979508298365626368947558203526673702483471436003129312808423603098936744761290297479938001165462342522622709759907249672102397490071420210622061140083545810836900699106338747516655079955410854800228315380131496130026062734461694136652495425639458046222148864737331699578947064359333143684344648875167369598405338599627532399368584678402777114474636287256698603445202538489153115927702655604909125663870923342408256518376848222841588239127480723998810021082394966517504528170912928905879638745202388997628280973818143140939255600649786890795400663324536341896819171606284073875231322629613730949529143815267614927237391111435630669512181751559449173821789451258146360095635845398729850760949676414603633283058406231601833614797683189067678139153464310739198858390413120727195998104402386806089427543871198319262254388785317494396086733343434432430153136884067108327358191853563913691586787058687474090654088897974809324843823721997124111462944661014066873220971277450774258782681687685296078993158452011269331523893882423504341905653995907737573426539371471013708782832358935915420727880606462553634832368384372899790178928657157973347772077638026582959319086095839558934734039230490071416758826393285263758145747368817014385302339267911810146812991275162935912386728750354212849113215306451384214177307685317358975465935817289194358288624403841815363478295788739582818061085709324776834276427574979405091487405861324355830558930572154991068850733819288036799886720975480112970007172741125999407013900571912517996080048737661044539576101473711044874895953262575261489846667367055188992899695062963780977959050336509815272582074705363848918699998433378840231451549672850752302296278487164613063992016146922990375019076179475546017928666709625675984536296873472735271209719690742976032594770709242367344689904036239347442849377447406095968178688592706879869507775293582573989083374555519853107115903095658397436178577550104785384299870354862081111488392633034529235140269184074535986598761993856231249435021468074747452009462619479486113508610947400422308853349445512784612358807608009341771668620414491629552582323508082467443310357558136205028081388064917094431686423734259668371264680628335083949499758037876106269893858395525884806808607691951049629290436901761769497277501858118372269928169295513784990486906042563914401070348434558412093958449101657204674255672481007184220947741762552631739079378300886558283616200573212163768467046380414950276675218701569193164905171264683046859801487099921370739873018328155932848307894521621551243871660949693791048145867763748441562086927608393117442718965096157209032340436756651050465429251930517257728808623503351279253862526350819660386330665477493657994655740695628883280391811147742774602015440430683991870140767775823719632270270755458708297006623206428219676087225015320079889866506819856484540514391548418774714961270551453368714580801236477267782225455773198006860492009901762364773963410594605935981426076135282298918026899361294857670296965835590818390025290246944494586586087087735438520446334783434297296998336335981537685619598577333767769487975694197245354637656829770969206395608414338588099317119173253055949219821126695331790128132664494106848080011270044214696341554668302401751614370786102992566502285503066857482799632865329162534501674491099213164445268599100708574440047065533148130042768769097216580409745702746043999086935976976415921855967495759818194361914620692944513648662784481067455521579095611960881698847917164027667239827327566724890946389999541238986750749067850230291285373470395243706296418431203173899510500719211750709753464338932634707940471269644295826386629813501315726646674331219559111039250199693158506266246303913261215172158243064298971383521536865910316454684675942194618885643014035675041242777555994221727924714754859358088859708235529989694874955449243194449623382833911456737356018583399847347839104435580375488097421187268971580415243013775067228181253896518953635557061976791372000132093371765335101841029884776785632408744711098806102015935397228875500512755439043685687602864184646066401220279001107053434787835608225452929019798444602362142684433708226561091485833422050755327735510388229243548991265665428500629173142797307612748574011302174063800366616862093837575511418348175315405834988815066855505677838793536550738714455560273096486188140115440162275817188314627681148446514020148036017930945114276885758485143993263613120826165066370843165877290401805741781068820334126471413275880213550991401083227731474361926789455283455521548384890031775122070029468824285497731422402056016459019348248729978665006717850449696490617103840266791478583040268031302916340269219451121438742514913321579729658586658491072143125321804489236944917970139245494235789024560107129308527308315200128408496403452996999492387209629985206979589368069072077372176839339615440351664549856041318709640883905618050488520335732550027373425963122775183362034209001979346322483111056986229388848298386361597397251244638094912826804095318188668029085047754540537573973676594650952798589962454550378842664744472134747264549759401395610233717527598699853793184105672351980611848268670353286012777279621756822780250266829819620468252749914208526501644470054225175540425272173516225304530834748333281443155047239806617860618058160303090598658934491460454364530356793149163496797961347982947295279968439128391458282903443638652788976141592352646528212490418170602746062948735676537996918189935417282572198499406528274622915749835915891213722694545862950252954975746171672995648439870381605652455025160981965645754323342995764157914715509885128097162190256688894717879983587825340972257873820853692623066020738748594508576722385555548423290403272031611073693837891665067410886962577045470993873232701704903253409103880957084765157239505931470540131061020495816853337859138234712487409914032868778045374273457532102990303977674481965222678716691409375965485377507272547635409155751011026150594581246586318039050888874395758962157837296543805636463318428968204244666227558979534185276427877043850672757436498293644505672485349964653762464037635282148137934016776827301507431566776362569131264664838706784918192153970036440029566791468459025633819615852642193772509434622879146642708311421394298502391770232632510784453086126445142819307096372220896249448523255539760305737914583496545827076114795966461605737905808345298023522677930543599412981145560969036640411355978854403236521784509941982824500354622598727241403526965496621338619369049239412838013214570069861588844550448017890620768566198979955999442591209993121133526560486780915506933708932861297210120458928415019383017192431420872023763628132381409438617437978336671632727085150196614721105198246707730813148368219801349768125569713341303244965256734437250166923462111151346752004225517223697025538270210152499099000025236867301454399217082928906890407643419917448721429563920472543689753758471013359788177845710315683454082188788856034605517138443697465923819445055413276303762124006025637529787950282019804617675746055617018022075704101516831579319635867710916120152661014101987046972059752290112335521978719887165078442042928584491964225129902599761581182259610854065227781523906742605446080461245281484714244524000544781126609487130850013193667839921686125026386448068438258706340404701585971407721987008097022085158417195106044742459845970810156866314435235339922168452811848543714681705998874665531937193033742702977533769046180685319893951046626752994387368871388677085850650313274183822164183452960132578713942904483969303827761627333951616783249741033531063878361251446385474670593601285351960243203734418963606037856232851723213205888635163946864273188081714309024464673017912698591422879666154564782425901000381178564009600119686111071781082019762071679624935831604409143604988212501593759499904431022675460419531324320709075829672435827185396585004117390062926525263241582809900352881954058821525990957694032387163650563936169349144394149309767303312243339367133410717366959756532328038431889662437370016465236696554346420663553260240824366024944874154920889674886242918710599128469264890171267114959016621375892755529872892897633045584843407766944213195304586537297156736324765826753920802449293445113582328198708138985262446243496937965381360189424841805766207693724102797448034293873765854757941588537214149396527984041888984727157755889230535730343625944216275800256330459671087907497073650742188355421486677885211367843158046430278808423501105285227368365774518346311114082876140100067467677159813125611752254270256256694578969789908265619643650120227790229169125865296025969467910190597924274520397477580525661078238357300940131555938526619956007661829472939479593540624750898432777772363653819582110624803835844370466034904490043076465686306918026791829506727179423814672372563747237266035294945774558581860861722409216822105068252890113991210469216949568917549082151189374127374121310582063412065782304778781713289726155134678584441151301879019877938277500194738113738836797711469965279207983422715890659621996304728814935866269846811617090918413689846797874998407468607260281482127762548093951327209092863302449717081458858264726887483246971800147095891866703602282313096316377629251625199605552117868849350237823644713475429848143191456943565002024366442957317111020825239164465811276594027646970727644348311975067339175417140562082714011287466406298055999444090795204539879093198401057254730247084426428465086872665657094739775586337503281309638710824849831993132810728417005328369494408060204277615267558459466839411077180125171213500074096021101329776326675490856846958460795116439175967975297021381281532044293319599331699555924675289455376816336401113013235203283078690238049176690784922737560061960343785331343795265811246575757545005547704298967162837252738426911761256976472135049494444282914567483384949925724727652033149559451767508017218192202270505294947512057177975177915622229710141261137493365266569544421833783446518884012990718120617165611347992805170680241383736746833294738956843015841572069353182089970975954841810769267943639484416139387509558451094722693772349620585654043393190836022252973886578017129796863778226461594364031100028679155737684098813454034381893967157183395856298981598265048781629966353935992380948940849313270899392274014158562613966568694115670856997993761385258606118939484372703895461933354179832026198184637620499715903068763932625606673766140085327125992432001318428899242323243219135039344929453277970205445438479022219486030303047832478017108524626637527830463783637897627876138065642432158056292732086008817109535986489708201311709355321173521579125247213859744168820512442539866252281966589030212045967440274596891545144939714417021890590065317016370552848911798482328655919312111960056231687442350926855304208053125439823480265984247765788976724949545623529349100606427391085689087785532342837420356339048009995877689285504163783451442075083701899262118902321774270744383216227227788188585227273156674107314030510068892157694170623388170875224188336173786905088858786518031241858002623430850029830578864758242765725760385703682340774112781061084211569950498852955870250814206776887909301462569219841346832695387371748798836188073477260480511902063158200932345752691131957044055881565969001512215957783674159352298368635110942763977150076360159750799727558171966777179319759447759313827507376368007492016551692662327201664623648191057457375539042609154559190758849725660108097347704228642452838117226307108453216787179364518836277521202883680589685490677381428616498972361988783922266284644472468357781384735516934858815218646403538856529958246974190078417560021338352639968699661774249119069975514774399031338812227834458283741675223941708787533104450246703015558209289411532144178948450076851391486699943432739890479386024055248117581440870292950839959133027976900928759795251856384606425107482625465320872471468446078068421579889699538210650721122733477544565937252048991781829332325562468102090424590710070077420535947662248503309456009289055813869437993824403308445905452420285792813391891044606342917434604386424981945040415086122680324119556023113703976115607249441860202870004212695640164721845473163500396786969058840542304150427186949056930558298939288050882578461450847994451544704486490879045102529658632753778497480600951446768217578093208031144168393848330128854438646576277010415593901870994940927728839199555155402340447437684050509815420399015609378558332140158407141084872672715182085842144155095738497069757116439889445403767633076035546559179729806045639833954833415646297770836436298370922283642395963017950793369149702411903168209806091986525972614078016924889686870372419372720355662283173573014096600109293102339872989870924675656536001537976691809261642424747304730095519697947926594180116608783757493359351030351663677807087819978394043177718893240511763238389109833469885756567473548847818728230005838579266337314992341659493759410691529624251954181820429401905024892427316935199878744133297164998258958896842742933848380065131674492140399759610069729752480064354550741549842305245757784200517175433450085135256326510488845086927464368459015975233900220017740736231554821668277419604833365744075597264391576482628047973360898883481970141039800475351111398273126429375072324345295829449903897462460342272221174940176538321612594557835204990405399717984886592125948144768509368799462355549515259117499221507371475450156852167920210731174483559040307082791814513270502846388253305997799280661224691826779583057801590888081616716984706956924672044958437580380999557845250322527371252526927230726620403383837910529180396888972322268983635888863410181989657583090738411960387067270090831349525093867673492681753884077947528489122063432022849479712351445979174521235722746643501867530871209105072792855414286398141023214102623838088405196683724372924368560025841050014378557854436609153517000398550493726841610798849641342417656695771992644835827514368156352542699498359400686900866565510675549136360172174244451294644202345094301760162288322047564092941268770502292339864471338224461023642866713055645027580040324512723482960107201207267168164655849078011491690614165004983055814639274048713193365753161667579281510492167798621773698867985993591962724705459336563822357038202082839339155365205031053142427148637565009249966059930140657659466852830230729138624665059375834749472989120399480654982039695616771516678473487821401924215964436396940743024885914504084105926021126401896099704793783978263962127075799212405072276238225464745027937610570636827042461473149761416209919185860046986756360324090310597193610873045979650749459587091336918552877999493671617100718303395297257253669010671253326184461836214846687788702068996380110575700498499775422869574719971956738315047337710003700761630164570635836128020600720553090452016172184568397996184744649834843788203551924326216554476367926631963101313286327960775425672814566008549779641891402043868044129576863890871537296432157915262140122801230367524498533597293791749773849538003275296654877717050357755988821091075981927936362797053264524464259185618915272187649933296105418048713545206460909003105083865555628063767707671058788430998262581202202181315713441984836302017389115534311948140785991035948608734270760658890739275053560438091593983345509140193527820192732438937128893119348241585584269466372087449223177642838117869889953821969406638563292633057733196892171918391907541343715883682538396122278031773357004247526690648546938054308920791040044571433296355287163591968291776536455737028341327755411624144565004190842590419895311182828416759864811452903142792858854320610133606245933075235668451112523305073514867019242161083335183844308377000904051741688278555344825456022003278939994236804974075892739774406822799917432346701716451498667308449554194414197557032388802984193756222270153036095634283299610463736033067475366498469060416489556203594808506023170652606063623750882873198591931772225615145422867932578192961425138580493910494270189552976400075244891793465857149151064346874582835376149563368792763419260157761110811357156719100060861571130963918350833862166921092770435039230777479530129156350985466702468280666639970963555668508676798882666646414604082174347879497240467517950545012780183052417210528546040480499438652576904079930739655092942179495939834458573541723331267642276539228606197378207786802730971911527414189878517783397158407604480721452832393320338540643861575526000310811907679082232530359918793120621482066578070146623936561323665351055277731446778972778372381682188572682588300083116332553641883871674585987699631243241225122559707544164022597164542637279773400069532542950014017006444569069841365162201177948336212539884996111217046892234038833793492687619470643039514239494711937244769772252185155897963245528878542817870277867962445796330101432839439108793927272565194391235602060646690059038427264660520459453720078352795213394080524354562462174560208705955461473319172610132662457805754015314000818610654265821077886070264423377593802430238245239680258466815754388355961475943567210801811137912199389886016984767474784972750027263171035194173091402797665321378570970474293769257636699806036762508666105037817191222155859542249350850285287777624330229486325370801771552068496713062093232803598381782176513334803670617275099369516412240232199104363846863777563376818742393406578996912442257138888162144185809625060069608691668352550897763582467159643447002872563632522817004751225985689993232375971990113466973164368617428412670226702073541205132779445094348038125922293247399183150767487272854424239578804549163048761202246205462693909101724843527354930060946582601636501235084422745588947054451044775851375944684249417382196881495584661393629736139163518708120235512850373853170394229020249873272816501648767075587608606484325255308330755934215868431614172736930385864826198535342280937702009508325120616331097232562790403344647511250912677520321012346427579384948010680475877589822963215234051014293066225976367641072307357042445828611855930950635981464397086404763485838827865116474930502268597176711512431522382546994592966866065933031299673451295944728580114436649540991146149264862210219271073464678649543200849456734241538025648423288477760682760075720638518895774398898453386360739072456919849725248938784724948099552039070301075851252497975622118300523062843140043441039296782640649476650143592312805457437203931596667477998989860515249581043620595825409139283030938143031193812553664807836296620011330149971401748404420336821973174585081941504567460975017035288248693397860360053092097302081056982638477622389376876320392923979863195386753698358224580656189237947085994827480780269597307833669694653275675827006481248608604736887851475789607782374650745639834580355800599528470708245293018854936293177899665115454491987951513722977615998185986811996906777702807153365950157523649374872092321929285664479427210326501589608278376635853335315491876967574454292815615182860419676733356283332738414610032362959742243110446691439440537147397367939359469865297353562812965038690598743437467248794585971354986355415551346103013989978733585950978707262403187554168558997135431373202965174403168444428049098300083806652989861771579648715471612966706419381740003267676654316801954374917368827802618282221313115289797960673338304097372366641166830225622951509712968470869053072069293326260547675430919947268935549638508665252201722578149368518893507659384770488170633820620927171520027373492784703380093154478490256106196339984970932555519640544062558522788204955353979744572300744315300939702284145469893990032651228302810249501224962047731786363455473798342571116359396256682818015591691929300272035351613564502958734479332111176329764939762962203945296963528128910031251623658520782939826176581056914838990675541744892048956433199531070119845460854286841156163122116273226408866360483638737262754689199118118138272091941049520587498215166899506160418424957863189222334044324840060569778056336297176439275231494408685161411175527154145331512495045737580088259563424511136147902359725831858982670719880554173246241799706862635112589380280542975984260268074096934395418343470383503452592055614544762425294737912148143917368820411714310824114057941416186835385734055373510754247779751770693396002501261610995178702571098314704314492863924845991395481553371874401372803627214422039159988913045540705963438204140372910274794351379246987740301512887689421932028710822643049185594779196387462158744858053727352196623946864095853267856665261663367149942666360134451312049665321312159557916648932985483248889031741410765916318026346126156399661220980164151063012890080407522226620337865656908866698690718204542124027054388194291794908062273902628159445667292668984446246286602241917621177217885240603515614033249572227090966455368549632952067625439284874431229999172804254202728003831435147064760379090166486294848458159226598967542164202124596585423321216900427476091676574184825716982574191962228776919553100292364696952464166186121482943901619313818855639458265888591394982774028614555036382461429874825472708488113507395216920189011457340115369090794471396536506646962628947296335178102193170877247234901491132384125620466737010564628686848882902434216945587781562506209550239795476307314930254551516961264249933912157756114083243382793123897215263960165122553150208322774085908828958251450684956428038742984045417326416000997791944564429806565893961379410427433822977637567802073207981823464664524994790318833006205061398846959939685909770765638140098769114928070445261974015713647255098558104430383429196225714519481774361156414585692314694769291883452760237294030143113619865639720165297033850005714576671362263791030916181374761293962814571002287497239763944588341029361179875717177795336077809597090866947691189377318918894784139798699270136348003945442436697754850926428477900810155871791960364474020699683462051628793486066431203868030769737912481658641573531147668327742244472247403077059754460570131197820724445886626539039913105707262668144823202192870823636244048830104281982247165293980839230514376552196296350296521100873473471396259385438393209273644882882616791399318854929121738673644247842879215874927249753035556970757074773364538395037003171409435911887031955770668467497787631154558632144234519677729315550462917433780401560025257930337404380344775376125556794725203602342118159892567533262588137896364859630415967042182303453253364851010292702647915040661720907658823237221559394353587022985402031739206494038213031174951304395146617547395150854611637164638900416430870814102891777339083227581873063990819076681323416133954185333166390710815736467007800635876427391678514373688833439805158679733310376180088418384560780774349611259247454271314580055362587555292414452575285947197039330642069025391797235814073898465014429188819650178028447043771801284700776224025177579297908630880993985023729416063284933628766269763426923174855860628136360422261613500187518015790146812367788583483912877316409961397468299652258329160508385030271750888349333873571460216736239640758992747876235373103692956315070733323366773484721078769821883575063544010264430975787824059006414653433368695398029340361921207551211044942174292533295352362258043491095692242707429268835785975206883759357289126152925579966416919883071006984832980977621257164548450494416652100367474194074203436414399377771305243586142892111767231227372601687934503704600651398508555777652870069915635311805526173942680869059864699532881100755044408038813745301108940548222260436223517849304117509347814583312796114156722654210711667731526374721566137893305906417500581565066280021373909135211805360370511108120755926476908880169086507044011759225698597132093230389361244007213888256862195544072224756924765080585799632698950413892399757718647417825678163247616524742443674922574194725393147013041302760881829017030489959954813957162700068038438048149684009679837584116431040092910284009769265100160250924335115393013395986824655085759043973118032410363376799968270081079715950482651602721852577609715293540900135003508284623674587024102190696959149199386498149644805223712691869329879071477198502224589731373762180452070181985536146637658402909963177063590244262808449171745745909014806399391548607209403915854558265647241048677355575081541617033822643113033496538958554291226459002343481965952817648681348826138521456943317160374811076346489521914725999946420793011920514021048596055434784215506880162849376910322966693895312904958097568460183404441294637331248219507830246613129843841275267053028588140732359354140629936966358271960430201861251197970877770414954281686275092546171044043280088865889049752015602023468532948326501427199022327074862764824120404436889113529008568587645803674250554145650396786626341259778123238724635461272755616945189118146053259476528301764442252444676637972095045546205988086012334223100269483107367309315337081251760000697446116513255057111833788358121487547492996448986658678215412032430491993611356222869213380349943983253124330616448956403538655661447723728710635555197756603632224835987263884323864195637901298582253503773283862190245738559679285555119358047153271146432596392995919956126866749876464096659250608054069572276196541941225856339484100796117759769750274476031472303831935781484861689144911132799226366112222572296575815362632303524821106639060131550164229784567363688039642157381381745787894435152439740522178388997301675151567949748930276390551370703149843132586211762616754365012269834275770585384617553816022313289904818979256082069625641153576321342963654389224120159324095716799328614280884913354712752169140149138878381135740778084598099515404589596772940199476213559187011920343074102864291833248548437549865071755037409778277639812370787430039636653701391515625143292670371740099475222687634341654437379491128760519333599485444015519120272888870768605600674142565246762214588433196072606230734927822054690589861547629748604606753176026977147293228189413256188018446570425270506878147062528909071486368296606558677439457783080738120632599771052995367167774024953266289603089637245728383706090026709379006672161977665709621480422786813437230852789475612529020656403220706415612544845393184336486890363298540314842883354332084706177968232998909158569658971591736811227097035570053365904472466632530136590587188259029127710705781822781750544447311957678789579333691778462656025905236498781368540781942331329413349473201163213559660825394164679414085234390194078391834945097561641879410024164938664141500408978185528283881013446699371077464327479901781285870391274354657761611030920958397787824011938621138077190239837570149248847112330810663113590757111953986480381558605577232785785725253688620047419976734002274649893700686852157820296065604928115046954703860043289369266003082518754475454626283455678032343241536777518433917718384746095547110186483843401118635952468073214371451718600667417724512488163074699454282772512439870066494369629910669416268327854535153175803559966798876597444605598973949563304415429929424657682284542258976318243689878355926330226343511957142600121329149483767386304640109907003083170129068963209222874617584770749565509181165629791994189376374690138044724990664800884887101000951155820822791600732856366786743010764095509018993370314653256942520689125379916340155530975768928333311879653091743008357618985762096938023027425803887261275237553908598352331477046106059698445189515287356994433350325272717314321292349906998004883641667269464551612184485387388559432787389424574244273960301656258787723815694118768226293493903068019731467105793302354379504094497514458344098110223073991194813638681178024775264609505546036373189086708134429434405736136085413944913431784359869299545428791124165530192233224135493821244841511936389623160270628893649305376621517997068831585312027115832002403104060519761252393238436120128054256014909672175164810197404006301800991563417371169132868965469038730806223148793831722298422411450955260695928760892370711902942646461747477917042308686248110219394482558783935771076015147815169347543265588515354219758156365753864971302663940507252574032781155736585389987033020010447039727277808861135155492047368474188530456406521310811202723646070927100164061612169225146318954901523049557033300046318668187948024746962513133870015029122046257927319757000868551152936786884416828906403228826438452936667728293788890199730895757442935749446304218204095654717566088481581951837269458817957573049811056188097400888848034447592585254302207018134498131210106426964257238282443852046615544537121320825693482602452504522460946757746388213045403560133497164019488890939312153306915149337869544968791133017077481033542050614126321640398681695614898733169466392810093556764486773368825250586038667647561899275733310127732660863764366070742063108127967016516821264935686962920844508359639232700283947858070623261549210240378949750042990017660441699909998550353452964407490172311139968610980975832925845548873512200915035829181589826019046404040760223931126156350558473531352361496991549540943790340110452506615056907972140058518891782264529444550696964174670028195370549623962962347526974378714611192496569146648720553793369514575476437033386344535278401649104547334503142771987894705900183768942253382181198810442090730958731500966916547747048681876984335619479204550124765262578222995208765825722184859992126993851690101867936818587494064373303244582412218446904886306795426268095834604557710204340516182166151722859354081625152965965231035118339880617387305855765756261223257181130954746676927195757838338511532958510137309403465108449615666380126719075150364731025656940733426647717962178131724065422674689780454537674645872336751979156328400337295674889087428640928509820509029732555262617298367104136428452560754441335702914238791194139982997101710203148848195492354110350925188472546781367040210568513081831779795998349439507276442082256469298118553939091991033245040676839365021742479545341976346724301175561021713609032673572429714607437159312468175633835654549540628529628916397179566562305265230617784465533471407738699518023860868379261979616709803718874437921513986101331622870273849041542375040212860211002490889314811419513699780770845016635824600540217846047302682262537851000655122056625526642166540135349505224607801633421290300949595615942795986787203929569218566454081898573463906789818098087417888447642017047823397709682640687013739686883524572406514529194988503738112044376593293232470381845379991406500051458580726963124144528897393776017532980849245741501357227025703096804792982041377518322935978021539511553259276823937202201479353293931874867154443684839859780953427383014988664405323929235219476624869636144094172074510599769721970346534224549827435968955399664759311763950353853154181564161899252592197571410474632040827791922929209451281415339108374660104223351957924982458899450084975798235520296599579427431322632249501415311374712667782378335397776247171067970431490012703154931375671914671714125249977668377398182905701147387867662696953396559992395205425337752980742424245577486694080144283472731210193195930221938261345899268530578901086929584666912496636867986709424261786757076341621107877758240002119938765789171674677307690476179119437679445597183169848949926166863252001461597904257915216099459599789672242793902832265043814883386434520100293889075870341012447783149198181155098078694487467227638646937671030752201821392746216420318256620859925972969916173185241140227716556150520031699776206642374994040953950179115900004325020016179647652085962432285121792327321311847480431981153492446026938503492289409803255141163885015950848354296554655565992554121802159992450141018728410139911122163749553193866867842852002544540191434785885194296042857335383268854583096864213916749228703786923407265249259652983470361557635505758096838293065747963812717963010459059883815202068793764149825140199408672490362763367097396722574632875440246165765766326022861597025060414375475161844517557955362576384746366687963278123128543428599836479029707449908364325685605725857902599948448822447471003502287016506338932913001827667514558698309379564503899204043104420617349343603720927390777850723361472339646671469353517257575624081469393649074962464554689538480736714174332748648900367945574597450613026026583967823549740299371173177562486068929126996562249147728755039951623835083215982836153459204119492209151512573844749604829785623252194619240800592798642908531179897340520632288422494527567677314088266072488134547222450095638677622632927302706392457767032287163042776349606717936298664546766171700017593962798168021269638049913642716706386088976973819109892731113004363550139321610503533401212131550879810658382166118273270096823481456300966973294667091894485634223846886873381337932746071985458499092322675911265496939243786892228780933937351594818685406698682215679768305518350463891601517493324977682994412796234691207272275755688894831063043054470887621857578664145942345291610031734831697218802278640035571423629552867899350458408635061337377969705636401047885346197472766616606769686799418683916330108947488380066450384136362697503113824746332535423026350075675811023074784524642072408809669757947675730709123588884849746993684312703903189966207577305643335896254730601463599200550087638584425969121810650426899450841198434499605390010360587910359301887705464173429643885944056407673303188059057344872384566930538982259757470505705966085009737664391802019113216895985868014212872843818252484824467646178136125055202978832141906021677387862404182340430059811931471490443325401320470847923254835398257199869324523163533451060397574080422298679810954839277286293319476490292926233300090111413429226300685863442057464733712605273308013684521552499807952032751261459944125246327542278261267278048328271229027701440136136766651472770477938573628657475288044234775650634739730525244824525605528286306077698556108290534394531325817523623514423052661532198556807738242264124440957241181430312923668031375576898107512473569316249561327698580636618832549958440717365583729944435351312282128195745940719443772901541838766704749288508050943487525443563579590234616804337626258213205877063320308911262100515418374831373829082927943615017516071204069543424487887745871024889284726824686772510045584374147447639313444025320998609266256965342522102876519681704036015287306603147570707855663123433645526204026179764453853311456818574002083997819753949561319130907772845925629843316733519450020032735829648917156544474090883234173276722186357250767498250394370447278650423111108648963473965572071102952015745963737189163878653555277813043650830762632101553179991986382965298960893919931162200376171016690224330225401156124830779742701081223989076286733536076884768156821525285464697069165801488598032313426994506871318521050302898523576737403735797612784018141107227986002626381523343512393769960478448854306180845494788551407193009263569265166874314331154791080868441649674728501880227498555295736993725016737666781930911716185079122568243019093513400465551770214655794987171220109083362271408670522338273411085125281428034848866804241739810170967611869532926940041980461095515488654504340457483087876544664144690242015821044104273629772389956195062150465257203631927368387848657133347308149636213548598263847860316706949483465984543822533165936235850902722225056959270093771145957155188041477445037153501662431994451227428144359361928553655411280292099805696908627952720442006527277592168914816500389616476337209756533829240884044225633468052971938587121691444286206318291691189154941807035651806900822377336977170934009036277177025691114079996231847676258356457572921941846981899785647142034716838390593464257711343912828547981038200504806397944586782151539295926072911789030568909279408907568802557726967040228538464614764265598519043692692625310703397466586539188270752332904207821731975981914142838827275407469338416978346977380842203750869746354932936421035340933672298753721511365144655419869793848763640527327255039715338681021677443150024011545315620174123894434916019584000063846524147891046830058676578433675918200968755322937111295851656335968855175715906683979936991798727730188080153583339507745156114586305043953302244539254453329953652770277093827625511170828376008576532307348296102679036447524721331660061410074980415741424713159024298833746876644232723080910921196716521084577485659996413619102327099982970470183363253520210358340898954966330194339668692332854629966567138418452664696059184226801045282999537134510411405574415807385388865453885923148975876468544648165162448161832461399292066156639861932730570862391932603327548199355078303610346327721438721853903110806102455231055046966715860649598388988090201145201154009145552569279109688350379587781903639660680670280899949926444856149930460961063042500731997668667178586736791602137937242028686192550729100757281396106902377568920029680223519637825836600265746483878160151771693232923625723837764281675690935694232532073015395592115457526446528480063057306670366591744733661830593730353773776086507753665141303167329105787839034832847577868680811309564291341579115700352657108053908124072550188350229329199950002721772602419842174447664554281657410638520712888379371553097478985133361459678054971923041226648818592246096550035216660849143953862756099360196628575723064463747332373752337873660320055469223565416006871975443298337639702335987557844604335935414513174795316479572735005127613603630095100202919332336848384168781200175696811190924271916471317128785189614981618641849039009801138509217122841645395212423335510596834493756496638502233193240043058202181068658826427264179601490109124041620993698469808076699909633061956597950793363830120112408670641835112666672783192230062909306948617899512854691753034197459436797607039129611318562862851007550764779848191012232837010616854010107994066341058463310486795735704959409248897549938693741548714566533507241704534600121828537026768349512008603566034607241254392694875282292764582452992656187628439550782693775935284249786570383184473986560229663222274302385166282284918099087344452854290060216733661906374899637404254759915896571240287919718181413736130814302849579228821482714002278233408620295091576511913568880976360895718202194905207969971617669619755488852545695775872569726765483066829631649401541863612408742713865310645932546584453218568560315087193924838439037697919673357107706998134722577958943932454408424539460427242320388029231784576376957075381962316055881360206184422340300394781423387973662308313864504681680543314457901053670013047419683807808421390024158559150859528185579592231522308397224750725968504716502797167062173019731085959823894966874456376304339693029062487942109037857771484664824181458257170722248207245838637008261040430671706949618908698629015091511386691743572641168491554209313929987123643532319383585886972980410780318477775604401480900360693145718776274777096030402559670833360302793648889614766828532599472673197028126442125761705089594780078664745033680394857233323206900468972324773445283524901801581875450888999490091605708326000578313244427887048477851321798985277508427589768343373250080334685433066800298664947142149237956488921767020238426176177703078554520273303390703655702707878777299176269048063058096345879249962691923937900939866747449299138896284953893338567532038104985483462048340393051518832198596284443797815403323601132338947272893603959575295076302754806351617861175467074001346229358784002086172317525773409811388739922682629689410130785482904711620187076309881060831521632560514701261222376757047510875928068643954415411902587650655304502684099187398089903692478561206723394145615332349727765902421151957932486247194785062987526667096896207479625211700886498272773142426869587640200016442814420682220973636424112585698852249562557303622026484028194407369023618572537314349014479425571987448351783652412736433754144278865104306375859455780599369464449142386254065248263892695124825199854695409215366542268295628598232982572172066326678320963035913253675461810437151354282348828552949684036797715523031202726795436020545045002422411056498999227204530903536812153516886328626959637223938001004569812296945010407461937026804002719404336487850431899536825418967034246626849199840363042280267164146277749745552255514295974561889919109975479036801740280477134317203188941076944981205327255961673436325755621939853483115581199919546193809291111551092256020586238317455024982163579926689076977240259137124289548144441886719107781038135920871645095269325957841937334637878875195549950321779550270540577178544571853532798521329268606735261549935587610900040825344055852211720479606948952705989557004977790451126635382673038442041742989160387276648381490705411943568297272057481592723787586413177119317953933195614104835764749412457390433909896552906983056047259395887631942802417195347849061175682241936838690672263677078511790344060167322029184482128872122267756713097440324726475041759327644308913317876736110372362915736604216073670745659791522127680972417523594925652177547723663803198709827691895427202525978031274704311004953713114418081688588343503306884609995659858927366314987595797188775742261101109400088404692173793603917686703271267530208245301715260615442207689017674515590801085840134382764548728277930563317278612532350316563067120291301468215572973281027745197882292028449522242903576644444795885440818764426865771007704676031426421086224773059424009521859489380443646954999894343520476263025841266066753384174596561010722317825374162757728893159922036212909444569067964440150069585364268094312352980628429332155589837111830825470577893390764186337768072090334547446088770149872474291724266965744728107571015697240069847067094921293543915484223765514426167429625310402676183665151258622254953235127778192636408101070988154990151523138596691134265596452309871373758957463769939459456048724666900538211214750313736817527228310818668732584209412918999286725480435490405152216484780755463616710556706977251611283081386998868184846602291687697492063381724925982565538794543852866181880606239727753837606485297081036333168724582558458239313623800132676961610984871429850824934195687110811177302993433785997192238118861403555509488864503310647069907696235654999632523309193036291793847303505900379144468077287470650829875909037101822306406136162134650306006400579383620672371984485404845024359688313462507474080528791428280708047520254465280698773925490813702008821984909418649984300210301276960140104727799363392086205030176619715345596313672202740218090948326839581155969796154262564352617314614945448634022589627505849292976561663210577815155053749773565303174234077470165294684056917343936750183704464655727891581395048298535289093725834634017260213723811671585992026818938232781248895369873894628758310478964171383019370016968280345621078349882912568628793151643265648128186364891269488468124433821101905381786972024812860240162904439348230829960998099170355274464755965524895581308878364704036348719384409438173711421268616911920155979873002271662484353166067326700967287589870814787627652353012771223911729373321387764365040499569909237235355797890212794064624257771407893498538038243603894372077103639044290712933509467032391031604728460438339507505366823884531668409834527392260753676124798788007380879109778605604818004897459116790644656476591603031502388271769808069916845120911620835472405315908882465542980533240664758658458340418057183676540592403429981394651341100580074959644455306244300705771623954314900661844120431626450924227381850285527683416950491050386457015838877486646515079546367892428433929000211176686096492690790449562479390588109910680868065447043534822837663371872442381994299392911977677446255507130569595428288195111521154302837502175770146641884302405726024427296426419380349557683433934359600081776996160361614246967491113769131135857007724956251502360008063228938916927973737534564440209002028795900841793125881012269745628985263827076779937083029991103455879415731413001019441869894148215304485158387675741016085043026557432000222624245823047715350159108039136908942461674201860995404627546322197114036037034888644075184828574407854142284793456789229619910800864289510026946742908478989755873459768880539139437486643489006681084811776519074507502521086552462172300995604938377867896034675564825808320525228026619564968965745378847226911899341135323820467659500399224672231706459314952537602702716601949218975618429138783116504630787637909047766444117930695181480491321642601551709502055667649631224843939792844203907481575741884994743242485961298397890154531343478939061481387849555192983375745563450980316116084171225573786040931542554433206968070991031587625576783314901451779931937969612899544040790734027753126393973651368951137640453002268859954643644364926796343462515560442848298396764549885177829966795209478311605108433653281039468067451600818467658157520638256089740964790675922469942832119401444436407562812863362606313742057833953690152227706718691276936580491444051599969817484280388691622762707653037889570516463588917524526760800278921031245749785916490753043622416887481229505880523274142173449914458153146875510025174414008722780685581499439048964178131181235561263768847185312279892367715597135982270595135919250867990996069562557779811909543809770293837902530058450135808053044006513723858825901390252650486055731101482762994628980897204665926006343749907407820961924378810361404874199951324552974489782689558666514594310557999004823685042581186118392812094267345816759798152900803068384360559378903389433123480234218321534261858390195986991467988081731722959456197648974314344769491759336452205016276499531473899669325815019236524373254649276009604054107921923307792798105787197447411626743721963253343378417211106731389788817663242339678910037237269003715712105690962031054700353886032522786683034455816615082228211064027733791316078031691654229651132813300975835172577744298422503573760570808506770966710047345494469160957021321420651019137615773769587829507319926476552801728099503923679886476478093327612177953706552472400967945691478350232889514350877191285207514166287628047451589055479132365731269476656805808349152445807414770592640700281587688306487092297964026610187754477492786460446738193974041093853734414920938848135513883364405414935631010884749570081548401529104813253895593304592433103901562529854110675913157189473256761024890128054681276613495492286290044520237891220783293986452426745051299710270730575470338050157128504350560690731911981989242435118919394670491381722487894959972509987853708107168204011280137364856814928212163347561937937749576908204670140859742690121318340462175116877229778893198201708856590581287442580604345923223388198553571688939923391667453707038912534754380889448829480727071793323690088269967021292686752748087195814045838587809680574123856635934529773154435379441242477655697477819692652668650710390856576104591717453347172150730557825582649099622581578682666192645355314316148983475793158566020290777980133066454490236908858152983740249968003231747379602133512608212406015547668527314699111832628339333823174823953985774238493629460692715685838989173299854208109619369613362262947453348061889790882823369182257859640907774998287495251460430874846481000266186684726330676876268262086333158299623972880901351751512362118059164971193183938473987363636205875694114859675020198741674398834401339851736297243112933864932071564072372261239083289582665892161296670564335722740013657915854049676958643979866362993253609173139836744436241784278123644887945955125688319255118916319133384827815454273904485152032022603382444516033665314705772488439648433110540243461770884642038056891661102304408381717109549322903759867231103930522557244451742037088327092414353978014035075757500272077334771128683406825122356945946911754473483650378684456115706571692716359067494627071007106729083932639692066922195580927487425161884263606765445376109632613084005188202500732399509403804913548131413384072969501107694233632597861665113290725522122201619506030616679055215791364592551576504291239851518147464299921166686349326361267251192585748565201125922458890322898605299491070062258808849225277230974836132800229354849724471275989764943494000573017345477519890227809936404637116110923093244640616853902932185089971189528803082392253965529301540770885100426183246877566672616842949018938098947645318166812047825553081050793880910113849724199006079974596613440048457500847396056403685266888719885209378192938201649947389153964478947056652085670814114009208033785243038214903591584737676851023068327096325160677591844135605259270372612285555672292211281415878849142755238144906168321904597946901709933787307920943042969272874827135482896864488825936514699528126241904653733402070147699036777769976007357755826855797783147303451185758373536199627331046019193386273666551552579699695277162596557886033990254195249064951302765892381834658193501000606167040269768201302592183063325706685786837217573164820044053217915525685539816622841943835785752761406019151844661331719548342268397679508178693171280940827481771717942435839168373890918431967382356773944742395783944867847091518724356132512011749952157925880616185778688304785219814812981061833868920414780949322947661256948148822196209383083465897999618041763461312841714415692906423366255542016171141894296133804382667663653937162856743593448686958561143747521010081271397229706185526511579763512116696980248968818485442786100494993969188310585040055855274221599758585694036827261918397882917732988400267459770911392851196455579488089116487840701235287217458831151702092257680973821365200960358342339177918765099087701444111507916110254494572164042138221124342051561567113888662147753322899780266162999693724175335261287324507379135406063694945771318159055817267680030910114683685295354867513766691148708930606184639677158870547452982985509870395894442272597140540782594524816696158793114324794912318668191424837956250219185748853345062083977457281998206522094403532953455126709915969333683552565955738413994613471101452828568536429065364762049869686810069357541999753702930622023125190304614359264952708435127822820502574869392377109476202282261141105648902796862151963418893973053337609077281509117020839801537669023043524168813821289220400478837006163047603802225106035522260778574546830930059555187214724222017132702445820792368852645901882825420534749392234161780991606251438728987991714312530899806289459057693862938612932953052462975719309620328359845745256886468843634549682266944543493664745761352358846176423543026507962565516048755259204021154440755326594405465367570823757314031524939382170203706387628313461156214837144499245069801174453539959780086388949023763290636538171511380795835773477001290211036158905142847788768305348466667343937478904742748783730396775010720230007336089423928552165271794034358824578790177663310074420642476716646185309548324462946708603974924012289685744504858162098071294984726685898309781595939696336768211599784539467226500863973735514849993931431246915794861157607329205858112859770762407420819519339958008986923275013982735152080522402487083315891467283169542155678573379315811765155764846991205294736980589845637295626010600000538815857824802101894266997515770634947176205643128166555471119128810052803547301926652127344533604689503750774798448854535522697912774225369866778548731563948919821002494463266300879641713640639037941622685749812904390755831774397417208865653446743722135354569605813793316476862628404000062996664335879905894245870249070989838382061065580129174374098907504985577366441680038191945423208119230215323603251265916353701110026237497710211326757042348027464944173752036311277373800849882126051165542908313701613624035726954877384366306665595853727303367039966075567809903702605397740279347743829884881953164734561561284684447790496533401360411639976501795815446372450593329971805538499504049738317192038764570617507912184399036489433944385301577429453825602605642471980790350198077051878930527900844097494753144794736231855986395391569684880380441054945796899828089306881394926738793462093525670404653259323343744748629864958157313651200716302191553110261064329365329923265708755400486109873376456179320081236094795575452358682244715044877046647475741736619215000815955737891589791103290589459292027978828680301173569484233647606926444948886898144594651938765827859655335944595577817830967339228025384100251396271273960130349990003813178980747209011745281230989570463116338423990231000371548493291677992159726829811045760727390741991591886857419024066559722615718256846383887185948514288166924079849104509604697120417287272735939625877238205932314229128648601895813917102914674888163772581958924082201697651406603548719512567049143762070300892926405372689145732598510108792735234257220962552379848104717418671238092380738458435714198305536682998539100060962935433505239942733280458935929634966548614580064559658104632098310778163517446679255628119201341514413549796453823862205249440510496383023046683097187333911940482732888866684345391869895784587271495987727096943091982838139921187423891208025231608853706567730138776202299596281054762446594705510476397117074855886469570261148647472355723784411684939681435556729942440409704285959099773637899488288410577826259972203566801809118337972127539261600454638748662238110230030474257775182813950480443016498438098712467110454687620743148936320247708940314112840553036623743273190450657657224958707028045739396592657875461935283994614161224446032862082765002179694137980527676012290173033556250319037009313172061405063606797655682063334616533111748844511887555544205399912465424625476378002899730948939459938675663858727027063728595261301760824693325771198093937104938068748553861259358964378327578028763604333238713603358308233053798738795771635624939950450015769518721067611531480318650370212398530267872464398236443875841139242434115225890148962983790880144357236738388329507858100740498588048442504153830353488942233932680107096665726600702132194852672021566684360243069637733787078111777710347655712997728542979628239270584213565045919186120867479977902567491051622918073129277814482445131080540923043694765646992309772980301572626547385617784440821517715613430236428943704607200364851705930959050092156394117777623752569136340511254594862586426690573349082050964619053409225027778897386659273214740023942027545173446822536548861512629240010817156353405299017449150730403479605027997409433136614549333994304335466340144831590977938414457320484327836595892866354717131590021989098091930771292912088012227937121926337109707524806061062847688926681864669709801473930743609855414013114677495092284739118521302651003390436879884090174672462467038592091205476852422776285498509604725919306987059152871348440538769566938770574232563741853691137800246000471149804163306735185231082436529535327732151289671154681689625765262524546561276463679366763804498987416237957002414230000552183213467246477889210334257445839016504756134011218850340231267075172875578231778207055247193917092845108753649406687301826677463224824097595240484388142916296053714889139618219402562155279213501474284082034008744976010466548127878213465411404315724520221064423015778445403261799468115857158882060472452320395576782881292060691967477352882878565376244225557497592068815631558660647833452111377860673531188983720288354622229366760556293529448822178945828973876290081378716245092996134241545524863396015002625809800126659369462468106767287319444433893372451552151828462705105367870786694318896008788912318072426804865431426007654794231981323007041332282312259749424548680503786642750949422562799292730030406912075269017339855849712803626291688974544667821205087072552969825621951217359258429069681925064975469326837326614383151894837256732090317985247015451688325456883951100847727177281881102914157212520238904422809622337183613999766021846752303409792541158160287428116859876290812096334525722338076476820992632233910691638121942591609006315317207827211633043391376114462746281456109533000834434673815282519046086738590282235887202966000835737662745801760584137994649110337576018796286481641559359109363069158121454616131958529992658604749466078294103014973483398845800713173056409539597427850931685096794326966384714468868758395653151516119998435933583920535795015784600646412642932200475807876915412295429503312182635512426698736186731436765499083058969605156567313178547078775153869409158148050324502185026235169274787425223925546574604896055726879540491286301404020031880550322804980389860272743402617831987221782438897831666191907064649139887390746250482963810650382829816529701494270358275716193883549089540113380451098250467378002768318951307869038943886125925352457815644283625686502821300221526540476810186238075107147326402779256049234999444715606084659058548378994880032428161251452807349012201016951049638477090074327350896167783282464968152842081796111758180718266200275254759270440652896556461618654840898835251915732375856784452376728365982851178160334921304821957067697408028003947147122394288915999304673406026374726812326030503751724405816128084178599778669744484415267105197144872074689463423127512913543717648001405852212299478410325989232733218251001955564594679288844922899502017419696103455287430087508537606708210934261284226247242564309462016992388242866703128084402791372899719855766670483702137219612728691147254073569461193096698040487350043869267471112499663254719231433244817058793654688403485220200653250116463315402702793861449221849600754026351067260618994315401993376727848373429307056888195517256329936961012834142928536268190481029256362779918707671911218413963481571834066022726314648261895767104885961563184581039372919437235531997592169252267983292398157022036564899509870955143640733878459139515176436830951885549398810753792639569088631376494393094597121741344972274907868671173665368198571426739140406710534378352274973607122759418828893998416728430247789548913896752493883986210487334210132038929861829241933180761017375068144939917604394945502243670536337366871347247127328114447260817710785633909373689466181818826454474786870737367782154408567267359104518151056682099496287871986479458923777600824171085293332720410108048850127345534386547370406485141779438071361188811001175153305882678332032887172587002810595306970126700721925178565104719079724438615364829856729350029391381341007996767535780393785609843830285277734355956198217720612157021451179081021334737196695131155561603219272373515550838738446520247323741210383391581051225507926827897362526162215357506417954500936551485525501396005222922113363678810519769348478896162580401061816592621824257980139792312433759031400059536441470532682022257600511025896718346157130899180940296146725994032531861478328703829849535732081230645782495792090915226898448722931482760428357405710697495419038478123898007186269895854140195553496865465680406599252718794786140821299917991167018384533013287710219166898276186649437548803978347362386572025863902397477159329306834762517697236156842418022318378525764270371669304045922050962987159725845127551437043964373198516255513494494335928702188516396748033711985583093854891114083080288330668349982697392886513141046097494607342288250732042770574053938679799484364119471547321099885602679330265323835139724334501890244563510400791826053751552254381301263777549957735548062410687644067782176610556200680416698010741698490740193903682527575481286093106783416029529364657422622352507350970071891053869532613460541343567012549036551686327010655269586909313583965595452130783543288515109794354828860480671376470527672083456441043693499227758932933326771660899039149906288699689773541875432408486984212279112799636751127697780186280133676165788860400101892747815652338090535995074993355166917880649908045427728586313671906043112074047130761650255198637833207456989752860699200956544812861379538868399920076529423886239123189139269346728038220991596468625355851588353672791454210463786678722719207526368863267165474303610492643402241908123184462303401339946440812244394732406750160594022719023161213895472335439814622062146009171703063287545990450156998603575110724814079830101611010498326395347002355144816067872791817591722602169802950740421293053330977552536727405699463394912044338542146813424056071471729658437990909924771081206983710670490804477768310432226735411960115673295179638522169311320916651062083095835859398938170318232502700139934715425855037678740073763144321969134121052784199949208201723378316923990338528243905986269305238956505327173459628280258197388907129874791667624397017036834095716835809512857088399085528790827521018991799902993964759053788056644732928711006478838541374577823566018344664624567955992238887544201375423216263968338304845442765658557479083075313479211427541815216319463910344490230585277818483453671296032139114306401895213786173593654437832096354581114760736874333107144670289953101791805342569434851059212300469581938674426663026001290371292621023027724291544624929331699833582689333690510445787874792417996444806100402040014803542385352702353389631941840215120186931524629151765088107220333279472311754988396647153099075652705156741149913983989677400233929885558694486873110401027517641985218326310135878026080616171156355791381535985686254400444826351957871565793533577456788513691883769226537608725939297500455710191089875190757555508090737905111237002011979546681024994226711192805394607387654563536418717652151795230386842888110922876316053879214037109436388602452660197362779944599994445217727696181889228180721935120229633416536206437014086610489937949870773832122189470564611443170771252677567369494956749922013498035726776810959880256247862706515628874819161305046299037403568544404252822654974525238748810507386720308241317806227312099889437226428346224895163463983008031967382595594947321529616684368045300196218966403241868362089134482932548304831872337245889831293078860499288099977238880668529612540274166431469804748529052045809598388793613284273025623368865594215482006725238145859222028430335885253516784827098357101218963730020076639033218388359157588998055393358506696861985584634431078110786147872925638313514166612473885229162075839468619682235661695533149079069450745937019000851316117030998775262558174338587385452818054991422115005607506428310652723168518076386418513180630859864020864662754798613377806127108444457393985746462018412265886584758507375084472533126524912601124141139114469856836308080300759802022480033349876362741113050494679357665666827615816388704166872064317383542372654301131479623628572043566263680615839034090028167471454891846916751472132649677425656416335058042195351967594208579976896436874684707545530674809632725867714745219151323357295680017910133937129787916076558645519173328152155486947385089248592449706017268063438554811237764445839594713905796249890728040663330717314791478371611015023613869639903891779717407800894134032531095096396930645079269436159675450235752884214397576016278530268264882072525396057230347625853950761863791787200501594143343996343334083268872537089741935287396974750974894645630752742369089885098592543147636913102421557144346887249736895870788863527430951730320061698203913707830717920136901244259363011388906261579189583037794950199291442042357423756984466466789384587951448493176632386694517258483239006425048822665691254742459787685469765028814725909680766616312983777535128459767172491771296559696806695718900706169070199732204315327640533472645717887759747270765504611036511536471024366310818670049535821713133760996435887920737336292603082439197898560049302926820120221954682716898331554495140795441008332815498021782621615114760395402240290233229427899962723095157824603033661821808626738314079730851462278162666490680187613186458624895585668702793855462719088756019318377050614426930630318634010814227262558847794731156423584990926228795977379270339018759617570450395321991705578760960547224967903573392328103731890755136810556388935437210929410306541939409926965815592335413885285481271953160674196809364657252426125930840916135022209480392584632711242674317848060259203342670328806923871119990120994623538477938583748703849303464513186568754549956419771449147508340361582765011550898962963675514550240088187995750483986145471244018287124769566848252503104218006240216057600191151917098039681716596916991556791855207158606464469316570241152049409333937067302065595725353587312253831001254601977557346985277186155140195034198116594790198488182979509676198468551373406161863811338218853962060905303689750332886448880628876138767848891695568606665443242919107687528724131743441214138673390663134340473434940780392714724796794417263616595279286101061982851715077430493530141975054055665573892323672388208585515507188713497252918830774268722396760722028227804827121587088481276785982183447896901366696314397182136055834245371032656866369175899322840693260744883259108225048120854802977276675823112756194722631225210488628400215197336535497817426661639543486849359849736828173084936131405677251067973750232795768821983439198468529277029556169884143061767546233700151163605657514210536724609935888649739920987839232987260567289182560041527003512276266707721214786372665945977333391866729666514806621996701144727972424183913545752873605131138344643965592250523218526306417806516029881158246179629736402919381149839693808950806355821647795813199001268296158007586098173951897932282422742093934825220565360320658259198113758525980167065990114191429173794604526880147199847674468044578292274218854858774150721833042227655075137535595372439100594404736614506891498809495489022574353588156391039408357444623806624477858989827912226679979596408507911317650558094664583175053313516650681608917361892550967449585195447643352492126990150117372610685955502581202758458661663765981875875807590603137251554609092588558139496560160117168590908198756532977352840350803953236113920557208533425012719623568906622395361104443265784604528959779361384763943420463784131582217708907245894676981304127151986081365491048209778999216322665735546740860991460044028351509206847163428090709691612138411650382673830827772169256492459968023918674347048812681145771394586354963950524647644265580297412413331608116811214631939662169782358016624069553312692617468625642606862435484027139124365753488452140795432003346832766696111148702059170670408069976388607652824937324632373583382147487500735118254818562384789106444738978374138101884838368142201790746257500987257080848001379160926932064312297091809693935208076798626072530715364468946320912169121714122517583368513221448553874375411392422310495005472766417992437287073656909632589743009520307426637259256319898112498563618600780884483141582483486081237852754932552713426120223337504705062356246688916638560345505374576497443573507307758226453531578355130012903180923063128173731646940537584312282285844308527598169928702922369218156949747770462909411689572707587772553898862077716013318552377565855594042988982031179772141121306617939157459549561981720556953993796014349239454201662635588443433093339520930416464003425265869809228376930797910495258978163648584038973428634462693226509070867285372406945501215564937136428610722625235139210636563128011798611000762888713236159337919733312381890417490588118284710448643126414740827161908361634787178669872236247417372294457355517865785174819119219328723516076604833222308009528361294149061640676632836869731544419712425058301203603046050265435218036316893814898924685422537190402436607868286874546212549552455004606620503423818231238024720871129996335877985892081505517971228069293429382059999556488265306549049640683656941610432794410101270975086509645955535129669842264785451911111869783239135778153334111985081313568508094665156693494434640606176325506106236149690938922682789278565704422516820373460171354616672426439889646179906481985699268970383267525235525642369727366278903294342093620026854621421045259945908557278575128529397577333854483060139696673570936454937035542039581408751398644556074535792240288518645039770126977058444094539647738758295791793074555035725269123580702919492608017982669229193794080819004164228806539366611656563485987747389241733812296952578340181319096422620813189081533690615572218236756904820762767349019678646945452874961255104319327835905903939069760327360774589627202808407085269333544357405890089781255416302700863567812285425468642342687973257871239716796385360112888114294965703682749820735920401059785534956855486726722739314841874292192505979182464296702407701040394165348568014171250479187652695542785958384912263708327336634207602488786999919423779321789682718928900995833710396859381990790607839576524550748677251900515315928847224932036419855628777069096162353141237676649546027044057167339657104035310283413906336061165461379913152704387187490128855698611844274030235336160930423251815470861568409407460060442722002688021936696460814382450979076879325472925168148305815206622460564532161906296696092146728119547650418539363598719160912756642411309558321834874529258268262107890148995850819336527247289117326059885898710641430675248631667468850512566887860563584491466288724698413676876620531478177823568733540621276135308009524262250520899788870473744941318644959383517469042168721649266933604889327547406141324161221091327732656157866872874837885059584206513559148473021777240172237468371689926702483680828295217769966147724715694950460650614004049740241905110736364791583467687120499933919166832377237500448686795813948905076096517034769574660373212219070665446462576292529868294377040447880557021051097250030961494899150632040965768514445465147511622966988211680232011018383790556185002962993273600026055332809243086198592144649813930772101629822262450905498549722219881707732244643585745536172576534585637128812792651833466667071700967843199261482591191957077023120856840290809629868854588606878136989635208533897052802900382843013648298740062965813316838743853296849020193721306182122316095010131848593196291817666396749865240018371211380068005818015346754357367682386557530193989179203514626364525895633623172623736216769562344384879567592341523167807206148785674054994654266129281515065711044400246826923974121968473879183626672703210362978950580943693571842800077901115973344625835301348678610243472839314515869378571901830036875930786888465909055865490070967801072740170851575236055166539422134276532836506485852182218195920239916025540808366441781878275689152727512381736993148979544681643507772920346392377921145919514120461672001464269084979231790984892493434909422347509559808214875405507953741396441177817578660854104455282854398745445193445591680055422203351652977935083157382258005815251519587504571834732605072785804048124935368168793359779135991867891352359520590188651595023467415961578308407892825724265291031610898834644067116797300603954772218974520038979119239540029692522779542868980408396536242724434981874555246273646228876718967259241596316039094448104495377540584764506155698792522687080158663972605917488903475359433578265205414792905095519034036627241966609443356081070110026785900429565543210483746459221667624707960226553929948318056095122214156131086431319783104807524671218680381406797495428487925922077757920293934819022186960972745429244018994013563397701719713855253562736939047050735037215589270805237979934588425944285460870835706765193733252669524901477977654454100787693721272614093733003445603574170021011070497760589944340583891409273812632154195736474215284246774379239919080164357412162464549517383925085499999999065858142705250557385656154593834667038199834947299526873383648246541841598506869535492628542421338698973955177731525351091356476266245780995145839762584647158612538691758068694864527860399166949176028872744626080784226992807841594488140896048481785902229265041660254705395117347477144574813980900860556491651302679550515058716450049390996333502109290994398671220806758697776220332801019393869752762011040685276018365084693584504749882960424197880638443647853757717261117155734045672718001975864701578832793743975677127302245699125655198851644748903845528359575999167956184793795908089589808523778411431984757552793995779722641429994693710803426074575351528334042033134117654716765817011326046692042676574602170113056381670878855665799410981709393298642247602074971616046141403073297322390400805793590556618398134850862802020714978728128159082594030350604074309401490354440230759210515586531164408309481740016344071159898699278550541847396943035817976056004142878926788838963074902795063387937410784686846146671937016098201642593097315338146865285557858363866672438638486911365289020032612017997791547481002246074693863280352097834290525632771251190881454776467185486447537916897295398797331170096822523480196256261056319321708135258100170129003834459893101269577960740949192556253819972653028023254919360474809774146339590783499133092124460869395842596889349821072404528405872558366848823156368759504304628265664118846704047580967616662321273700661168371747024135005274006166902603711593464568049797187465893536126628300573330685351998328627905737862623981200170220541030498137942207646292240369028720535044574882700323452110364116675541701258764763933519638403354586809508929919360044941374321979977243962853665460856803051966365159929210403799232797958864808067770097893373206611108562091084593805584433200474219111503737499968791311906627371180102578000973834459548126912034456071003283631847406942582872614351356701403535521159545825256294219539456286520138890667868179430562900512115008452693890406490008860994968842494575140682926007117676575096045065222943188896838107016272006817191222795276122859667787341055220593716247477026327384976866633679235162301269842811723140533393316157552757906209519878961214159063989920068511162380136589528129938890999732940065116983562085448146839761055871459551373798509455868645512555655261126037223784419600401830296949205194513284584267027259137497479449464594987079620332574424926629696124984644340568281451813143279549848031310899328916879767713658495342606929149545276475558785606968341879011205331150145077202829004327113137049284046949208948863090868905754847082532596697705978035984367479561192867684242653738873859299221090945076563475464098255955888417577075347349693074801874601417699055994111805139025551792938804255197089887709397019697365171274434523958987805491845609014210321573779533898909300097445554400678342700913994873348690991968163747335605316062716237042238500385519933359835423963915081176695763583828248081762899123296209783443422278170055867500110924332187752242072506628375436746831128069617168385424972632447720670004979243886975862099193259448522944957495290637071951981532488175637077099782445257084355508033342825463722456674061683424753826900792167741538620146864812679990560118983135200643711818778222593160534677005357124056132788789678539937210355978122559721025550741598448127885522927660474688552617547458346830697096461933387755504392945231261057454203481549299175161009275829700487836276505387727515754135552164047139525409702729196556917759946946151682906822709088805071706192861689411385626037507592723594459935040374343029968007164625286693404779436971641157538199065886688875323513091512950984295766548027381885732533785243119896280744788731647728317455735678686034571942383263118326047040185242562359864569071877942916140386938004701859552647909330400995304474197324849994505968450276043547330124931779681799677304809053364677051908506341781637534127966713652683042238465749421646406632401952177756004174794486521888040875686960428147495242089248267556923068456286920313095227545044209441879613110425484462665684345020548199874802938718293030352980406950353814442755571250827557535905566688427907440827736769307506280223627528163476260290403727722955026387150910929001261286918271640625204749802616112982919147493770088232131378653791998180792298660034217340785371702696571260734553997027189449172824577410222526551160151053980838639242415666550093570101518402291639516328479328965492975616910429637186500373357856342608209711072597531842492754253179580213111791679063405252393674609052402874918483010458102730526970668870770478472378968506530505466720598706832898511980964337591317756835474829461605782436292822223804229521991931635501215310135812140515567154474746714303303861032302833539339153758724062205238134652270394637118199693208795878081376878275043790002647975449780455815075823470623573158099591660178603114106828365712977872525372676249534188765743223774400979573775377383357681346924362519631622515571942597702191266952063786599790650974181677247747541373612820855516611619770747919882338075642544241810932030837059500644129515140214790850821913939313815701693536389262257784406473095317540956424330726607263362304911113218238867521415907918746272281425339995494034724890043251480703310170583638196057880092879266729745427030505835773357778899631740965640626138842446287495816245205774318117678998536949572894641762421348033710563828008607036276173855057589751517058701504238066383432229297433648828075011664237059405195874337302456933423506869075960002536592672448148050888665273648477222347618893707228414307762774346330547562784156204427970256359801286718701915510236776969998636904837246937055786556191480455963060357237436885600199529840348464259303265730421737965363848068701186998506795737839668573757650741662756334869497385288774087341022881782531115640733880185500612186888191061003916033016075051709680273734751483911235394619924290312798631314618273666157558129756370136483791324375934397980502999804314868936539013277685873163691236683097473117629018680524762798580055959407961328438824852270087864178650215355811428026661887905293875472024706002035029875244838857200864652340793293049453276321768441156812805995249207240660880961855318263669998359682241523774686109430851064592386596899454595420499624353308987827890456834344711380271122791083065034624484959899959822439634671784371914897111902076304661889497102969136194545381700716001121152241591199840261588450069714990367768653628033359348940078699232105334622072769666796666289325338739967752012424289696146474478609160000433912731124803057656821355977320581555467966660052452462475965135726816427715687483328136119914643545823639330410620150796349176761590249821428024332085870213591399344171321638008257442009747435515061349730049318818497963840460788942412968826449734777846385495254874385346236087928327722480978533415800337518221870602646663726615415650269497324641066297438268624811621754118699732537957500533010518083225587401762467631600308220170512589604713686708609298601309703281345464431148343965098397081596481894708052509935902500115153567897475733568268436430874625480978302244312924395739517339061750413573495502243784063892910612476152678914550947492396696579355361801159283872324814148402702838388658651019401299961944308257021042659824728938888014753218988860948040034044399863383093775559786787184079531702722980388593623395891004785714489463565229230935986102025017082204831203571035392993993364228046587835272897804887311939932171413954360957356873370704338742668942372880591229189468244497339349350174975920119727066331032001011477041359251853594280364392308830248436106811640120198889495443892460268277968096259943856705312084839351416976771518265443140417635087522956002696918162951592371626620607521277561124403977512469093378861276718347556212678535520448097071877517170885193729391194176542173315939111544120117142038349446608277749429554437218399351911372626591014135330631819565086089558043701305036298884692716559075144005666905013898227409380033178397767228016279226330585756105311695939185419438359494788011283740125960922389870827422780088243316032855379507774864473191898833702542558070610916295043047273994457904610827821367599410171024676716660909925832400890394521531094071488238131324318326610383835693150543705624457679112003593694885053683320275404556791293454210675584641399172441069543677130432602068246988670338912532351620305332188410385811481903611999449972440916428791584579201922698626384712217786015885796750324694216317445479053100519886112292894276938209954032334189765448711264448800966665522941905823390284946827412010973125295878987656030259476012968708923571049065314107884734182745765923917672280491894860836715647241272060060996385188491162218974671973567407014482011710558114736402082563175633201873035562491088465691255122473497757242681206270979987402032899312351286197500162513327651139805989189408819542347886417863927093960529784730884649356557466075346896110111844970314227789244800038023740217939724533168521883364334207270859725593216714081102181266549032950388897750119945025156189576326534668369643384667856269340352235883556406146144774014116025750129447870773147542302967340422803897851752416541917263351041889175032457547187349639508819728680252255808774129422546227599393483988347902169974304941328269781928178244467968920517538121037460650282361394680753016034089909497608046978471732484527484547004841425180730572803943132907477914662132157750876016238209758908544177560747007706023071705105016273905970840324158660750531778900739346174971335567365795176931193959435547969170404729158358772946301990558274355910419829625367846411448153992322310901551061869351033900532841144503345900771555276092066992089167242849145293924234995938436586500501602019275513493850400601177687796038120321221242447943333744673310199372363297947151966996233504791227720048288018522783509154456400622445686200444143838726647673732377058345704810818102362620109223602085818203848875233540077274672474882848516624453321163245946637817933582899288987936888229266243267946569340959833455821108422942053912448148131846675326325691326070356325572141208577095312372209861137714961558567946062185868988959572520171265508529223484064750101998620906577308984317950055217153532925723764097884343968823010389767364938261009712875085139290585011240498877557851854298978358850048741171885184329588778924813813963675728608548307390114726380771116512511886058780766020617474058693345161068994484768213673377024648910067787801695286055336054755097426371366355445677981287267592095229278093393692607313178101599756360640453134594559380955287444503778844808092294609711980846706320390730421524017178307270072055799212412828680634303711268606458466262760174481063851181464220353590568314158694116283233490746723911180034011201474860721810538656341597239754554129552687449712896926990091531356594040785904255023679225274066994580192082249997524674381877974638401118978553067756024981788082506244950527897290608521972607349830163171378928917386156319038662925656294318159015529278918107848552534343546220087609452994727879925030108761578288485313252222574351279800917770953055979682337316317259326879984885541420342601597642458233737427013115429641288538323662087156611437857015209219067080953332732657228083241544063363504159854749555240270237514546140727984588263801699938017221047431339148553788388040541230197163925452953584235885973937181184741805680777235396186678485998533675877158074159744247260443509556265809867440913888082197933539679322319116498233389451637309641706413360567891761813232648917491781390046252487145828792941484140593800799804799632614406527947410286693309759520312128513136668496144474718479736002305877217576223734441279121922166977792461479925725467050498393501179044237391350729081238051266557513419546473405423544488539820470335702413236722624359469576549222044436604242118740366698984890800152528804153701268134320446140881748202255885571584792051918587688709314327530231158858671311816868720653021141967522716155047395432595477683241192377639045707522623953140251374881666350126462969530991440899806390511991288958827313541684917665449182178716588881395262871177031363618404958499837640396216279077137815451145772633051947554308379511627736516105006211142741596168474842050657201733630720968983938153244385654610305395772203385144443710082237161242870524237163987721839313618643699257145996227102752746553584652204203123811472793288266617861821745862590075791861267507847533223690895043502302626508611850396534414583611946199115511481585975358788144742400883927482286912785169659838579124344225990545314092221394236634421348397679860705306177299857777853257112970168249495440468274256719274037901970508882397736774553160177106828657609809977263259729683060426027882925585334237513822574206647114921608780393961655039260153163674021463614454559436183850866072977936174634888159756768691984871202813541927785353926178890464820762883914993540087862004845500065740649467250417470352267842788076220517801096622668575988820848230057977146312725529512765086507059462824358170001385035102173802206993429478923407312805400865708428863164010795141392022943901761328558743914327915928035022794828142972586628010426770786077277184758670344670773411204066239191110133695782584645225829808086089115007961562858862652136159915104589372776010232820368680991376108508766795917473084270260762087229030921808322279882036620299043252081015905591258204313518616768489595460294352271658225085457033029367111548230433192572009687297771903349483275912306667229659329818750245448266109017211242243410837477820407776462013145458157830326984429196088847173932842640471022601860570414836670947246170848159464008692110376579628995360798033622716335098675881404228288998813855722455552624073675965911590755893339449867216382459182605648508865300646235302423771183557207393244628919079959929906473523595320404353778567034539880904134208572371985899242006076298639023391205716880698182931481959337193326063946403369525596599199560210828425274239003749785778018526577788338553028669827975712210153782436481834626332697675731774690916665259200790464703339256528874414307949797477709199260204271232359773769229655709484999463274889907435732675192626377755734726900503965408564088647281921588165741019004842792035493488642805444926760267069091988342624677049226816416463199654134381943515967479589975821729819574985180275059318067477791668854165712757218109463560233654891233569203614307336393504601310269272114065548637941938569251354553833765754661057360765769358060869132483830290508360708742791219392227009963543421616220797355159757793791018177002118915214303459324821077255617604395084266082923046531363120644234863790253341932954993900442722710230181043917948163185024308764389256965821278611517066828960694369836122422240354821902053051853879880347523141562866336671870468220837924297845465910181171399367720697453369120712985971613944956314380735180225534117784662312223004401564900173247187385811403945301367677587101529391922977013039827615731406533112577803558105763133275384377430535671202158581970498083240412799506508175690500239326810203399156480068245507684358591457949177911118218421707569951687272395564245348553735666800686898492484869382225807533948864202862834965400673458772738276474940760055926026297816059039145900755705263824260616028024011360645445820982408312608318706840864629755750763115434649026035762437715228818773551887189425861960714945123502215364642981198666332132342850505501950052963465404334358025946414109124551413008687135818876855004960608543527583408362716447552277576703225523974538207095935530241131642311780027874087071567290198967167887674044331656815397345510376342278032296678288554705018534672894278011433908440404089259724735536967833848880610358286813369699166745023505726647663459247467432330737555300472956796820668622190956355914305533816996744625957298885385757228683263519185633076431080939016668062496730957506586235352769256930348955241930422023288376513758009123328698570770635605520882014990683119372338163118945465178446536007913382389441613832022467765222163449197117323768958682881977047930277628105101211900954840837946038878289042307482311600319383141126049073047694988677820229529670137093299469834879417732399006063433345358779595855615279465585431249059569628631939811728376179296967793240648996067095719377385202260902227797167045671869958321541605600001869829511532061502133584302614468211095651670397088159974344949099703291850427080186253353077285638439213093399126332940672353689683112705168831906714414260784863275258528427671214328496678223491291765826443265247138507277479262193311799832316124017209536033607674886738043799679258833105334546832304095543390088893989091950724848806993897114350050729477381981760501684431631400382688201499769927837620151168129015574350004868382539367795623559077560327617232936824883437960720782899270024777588269419683774876959930899075700577013877648658582795486320839722394760597225437979279499917948969593891058331753506816265053917109019063996156939143264225797577518572531750893788011231300578178171400488935313247967914093109191776175788453993679104343868612503201363992032823894401590873750994927731601500176018103072419287326594689034002381335080749749840948537876648278807978790757926834883405962280204867779178669716984200732071490504573557089700683433386465270675949286557295929138243151708482962082356341279671908787007156549870765573833272186377071450939665140847537044964622095250315839456563406515553259775547701791151923364209116826215002425658904359426087362475097412197256420073893399784372747654703479694081965218115547498236651505591542672361653186859686959338687962291274276865977425479872674394669234629855504229529011084189725763617800348017199727052479238827682255991269153936298618673054506723515375235099714924138207088912210662677527115539232763325659018114186836419279523372183795565467855504525344228159871192931909958528063014720470472395939091910931425722301191268940884258228077229242485590949715074121663410996452880105317384291517441156676287139015956749693152350391170435490780654548051598431541807319425361692191302120816773069124957201672626172955632432187299149663904813391889203723022447138550081206233875883250035022986614973611342905558149806859365500577286218815847326047848019973360301432893678956855475942421084105793866221992146075614047757201499864557522209927850718148983937827058673131425451666164634038585380398288627325185626443415143320751006945342293381178436947500779844402279919565178554927456248150601211292735984155566048007363911302802939472089731535375599000353196853810995129961157008556850807084014411377332603052796545217896765780755449352138785834404224569999201724770199391477434889539884791260704345072243407991337519373161684038418243156637163312587754271224256474961533212142597190525027022738922032604228395853301635513378712696811053193744236940874699937738246926498539051962793094221641637760095914021817392917994904956520319631596700409237145228578953372442022468011348720914433614597730414588289040753928862085658539559786532184130697910141134683957083993561902717475896131782413138131253337979578119814017188402720017716290492230130596361406013364992404287954699672866043850299361176776502804066471882981224995964770511917033095682420131115640977494686753086673826835041865995108342747995951884975189811994293141146390945403042488267326831965715568066801181918780773542302489579410151288842745914065130231489199187142910130596897547826576785442717742675869936878456489057392754137390794548155296309435988128859183858996245559119358643016364109227724708725911462657599674211433128561259147078444235131394117513987155782691682862331172119245348905516673973706873602989487212165584710545324822959361841153643115085839782515109000950457934689713932448989042967704436266693242606233393101882632389080530592553559406259418380444286599763826804396048292762336246466191323845581985627512951955303824812199759515399526806373162553131509544730895403265216769923681695225321563774591850771968169307223203262719443309324892061230521312900148027025114239991653252383684287714497503524414015713996112623462291197264366318010729319990922283008710138667053739200969302007000315020691228167883688885855893757628692117110635512040728911251913236830560235774231107348072971230580665854065865518450563681119209708228799740579951753258854770455156435445316333471766206074028181956176978888179275159784479288343671054059557921273056132184370107052500101294476181143807202630920966698010367405453250163734102231640738058968648149281668451685290137524035653544727378263140389361362967794227014414435979668254975814498582432175484729085895001082338818907651069364715495876960265085869785899211464496797413006409472524303774513243272577405416789925821013616150318547022449442530848417452450661044532735181310544583155193443166915390281312331393566788439900982451533879828757073009997811375168273239604828779198462089193335104854380968110327455086981662437693168196064321013085245710314204892514518688322864196227319485128122677817456539906203453489294645538306757452138568567466448879622143257338216248406052332608844850437715981402913548905539696257928018613870812523144822588237718115329522155215961686905928560989089876495332104616585593665560816823798254417530800877974444740735740839071203427038042972026279090195180104508506020923689655245305344881048982930350979231795884319349387479190898953076690175191142677317909545955994762415136221572059178638974672351200315947533572775635886586654210984282912631367039591087028724665387906833686444444781054258278910871863779758230096750470131036974898385900953298021456250833236448677719431244255423847558879238718054814503711250056023829555931271488372565780464693966687222602224831243500171839636048572168093409818859865093889434369859536603015818252719670864605109419207573256481453654894394248665393494103402624823890381373627822266705631546614611135422349846700425428075048897625779600722672318548394126932574681132349462972691801735315028729962454867505441053081509650615986383778045149179060990158122800020289045940299808852515787827906660442572444820691570779532563307532357476613632882560782966457514257203264056385920587360697000019004232934710921933436581832868522495660651025743095112024393760489727042435315315601180784864701510329554976801832379966921216465315192285446804753914827931737461009934662424169951728428946295437868539652248459844362650371945960913680611416971885685285270811795326857006331044241598202800236506623840690779182077579192832931381784094125927663595085921795002803530825198758055022086280896951732535921959522586831571831103955158540047901198514567801776829637625187717081296678768679641372276376945353746445476482324680128887169054788834345347894998366697597034761090667098348397118453504898218869560962381218515280916366678164607631777587395707662959933809748795380261955514352756569022249595254630258087840308914495309685839974142033665255728486022606858100874070047107555230915951045569527353716581379009936106643692946806823859822983945485436927270446021645128660204785448081832453880227497123658633523137876889086414341458332418459919202263872310128959959884296396793067165584624897691528302225924907915782890299786402540942493163527895811318156266644294710057442918780704157215232103366278558646929554175293578607619083439297443299972067419027184167585996254832068212310336201420657589352552631859739449991997181411319325533529642293905033701179342428976253370288815815235107828192980717821093509393639157665191358938451848974258827487296424953623587457371706692825557134049373710247139212015437916586684961790659659695938918007150083023997354882563559826909871781803380740612429991660174038984301834024878773574222735289314843203344397008109428337622578191531355131528235468715730459146612471600442562136757775897226032414116114895163756621759869365064329400945005758034194580547581742330278314583437811483666272236750659579573609807118316362721443360372083364854090530961531912972153899131553769384207486701184125561891340841565605484293607825422519071873976369066491247705064326281948749659082731616585426013701824817414399347098812843392411374459366642108193374977334935001463186863692249771359896719858333166105126311645460381317336161766391747729835659323707795864604778248090503268642341896308137326605390012238385263768093308085440862810333851076999580879500468112685958616227858184448119922238367688865777163567346773698678938573733442070774158643897069475073581978098021152470979247920221835503121926750118183387758359682671025909688266948457873995240727036113481882623886477929120945058047945278952006757290349994465792832322982489356520580729730016120509813840484798683039666560263312427252728980059538931555529865384717488031001041812516510281891911755037034697020893983276614983540229474013610948621119804021119746576164316862479400671065842924428029318191540000553947495398319573997489685578750238152085556734775580105738621185111246999043705654834651840501636370135609562226654652100986180169190245171168665009408365541030301333432962529191101623610495612497155645784840314556937822857856972955784010231775057252871568104219597824586862795886042495883113541274932661280818479901991458596874643349589083784923514547805669239364732629139244002012091464103976523399119506207898095502641690180468353971943684382392428749713245841625951367924192871737036874854802331560930271385533600426667373036877232833098751653212713979389511702636963288312782595520375146588224298541579309001653207509120228248930241961322689923238196422870076069578739002090454257069438298791067781956031421592040199709328349287648696084783596500509796997509300705222509455322699096336374126196973172967015320303439851991634814527237502783707304029590818223954675607945284114199860576434086736747979249812449801124181941086971536417391159738045508788107256951576643680246360962124872197775153080988033510516987656463445588792500639208733742465493853180718289008287063707083552601018238498241640240950118727040887540439850840701829447078016186678686160782104898718404969168381003980801409139660834303538456676010763351257157565056619380307630617780645016048222888926190999616751905961390380637540045116920321807999981275080571661156262876599704610217331724876482416451564090138030604977686927970193933546055185738833239470867116194884011753160823073359136826677715665512177603782406597192502589803566317814119629868638044985871441548315440029479369022476651274101065895934358166859544836839442511643263520195044341624373778836670975020385617592166454250466259737640129860454260962751148559884454601893167376026151302639685414093102145985592948097753108174872968040613026015195616970939758007659187233066073554819814433163907935685731163305527127710944974972666739503716587562495558894461189217323511514318074383281619823420264277996088181129460785738032236319639398719827751929452434664960894445095845828744820410273124208928687421411460423076070350655135546492215135890361996854779542236735803009560299325539524485897194472053940715502184500806681388633994142874294664145601583492254535952831471578436570822957195628610812803581426971555900316429347369436312403019118004039690856475649009556769839708047828745390802507769629410927403038964034556555777631694531942231822812079953827108845022905194827686636757611326356952501391819527163393948469191613701918354509022194382249580264338758196103456233457759788183773763111286007641025061816704645640424790137361339241633503212940423625207524924367672181074454265755479356838192110576771554880477311487401178067197964166104685605309302013169113836577507346453846131727010032834854135841474298061366617494700925029092653955741513288038614905688821661591028071626819945444478735912611173962596359302957850758072458831197615090615138281893684074411273584769333614365147437051103336584219723992795502052215069140276116551096102114308490257258455303497596956260514040805083771327627307361191039688365623630381075013747050619428256064661504280558840507258691239938742391323034571816502809541995451150061427748594031468958321813199265888031361665504415051202763368394152970030524857616428904586176680117505577670302311375632599520683988844958846932097451735932032545101435097966621912720066190081838029884789807587317095669916964584709029522775093592906675030841678801308882147111079039439993863596476924632024469818627294100187241938999114203112828432928988339944187791179433902119891939568992593649403309392428483738862968080804309195306387531263948049069021037513654004183975364469669481243281726242144018945787521690290331443018915146412290925565473663649223955385314990298379259087467641034455968988010473242993215655247309107625249934397736094356175429195434774973132068974918281061406513883972032830266522688384639233365258608093572635336115867106548021632661608729056937722332400795817880625211898162430790532839490950950656283992668434035564511921077043974742477680236866261605231018345078217048469548003450983306645031257137850048884733879117090689047923402213381259774328128017748295115455815960199202978734159441927177695472249039755071560587287027035655705741339052962841187881110593518090990121159247296686016516383144613937448340404737941275702310958521030976002523743033577057419756177190709797342636511085263777958802179848171501349499952460166859675771558849938530080282248796960926109064582573774386624118618270046795913097952765952389703885738183239573085845609159187496418889151421152306347649058805481757867341204539794662705139113391700014441500111302900687048062797679196484361954353690429278292752693627812033109918216524097563036376920796336937517269166826575183525707447609190266067721551397794023078660045935620725847591878539530673803680405138056332975616336622903072217522001335339764305235908078228919794039113912285767773290709043298528648600480870788284647502350890440727815316843079303061075197982902253615798148947423241693284672948938475587925147264897740445548410903128575108153777115243333340754979254905727365986603857188836963527093845324330712810259494994237520035851170763388966041388052420456696826647935181971860677018242297171813190550416182546581775842605584903149572579220557990286221974202215243040987643116420598865986214737832778472474374236402191615034003753384561585921282348292036382195886836564981613676981482247321143027289702180889338894458593040512269703297537767650150691910240119566757447010639066693112335751771048748875796050443418981968358486827572978137092163912900416185562411671890577503469555372788908009063563019357105446909247130166949924135327634596359078951369091378417777650108076464631717213411124096690060223739776985260898171840965463784995499328546765402520562517934214719268151154617264940960638151307117928838007922295471917693728529114144952740829990109172161019247596048095541894477645487907592437964474536802230999999537327566667612806103417060790607703011253104267381613527575609261781882925686877525116816961006673007323985833551956845581676013878383887300898017544512772643031148723011609390547750297903434822859528529889132932296958743375268091736777507310113188947529652884077833524864082685526071380999664746977833929108206977727800141649890931930606165530921425704662469472872070773305033382124751753675122740103124552749103884607028510684724216284786040868776237178482151723672424086947381651929492525093162750591375993767062813414949895596203738053208431446210963348522085538371255273123883800976759780138536599870439944431716873505665707315350011755377790694170295833583470421488850856843880057282500056142189834336584177340899348190916722632781937445057642503828002830741261847923673378921517640861503422904458457568264570160427896192099142077546176093258655471667233720645034257828560830008341628872569443243402773524912196327073700593049980892035536048922873324885505395261949088718589876396157544827559243167225309641011021731627486564058973214138003615003079509597666344424700458143513030556350484367414401429154688786698081827204796929620795792522565712942040770156540728489381933164903204970195680193371650619623984092376236148757103138567092475724203771784495719886889481146779587507473497315479552219114410442778528466152151573106893594469791480303269986098766587434383777327289990040868164561367402344656974475982201192332768329600373256690136776079425154070645331734952845743586505903109802326623672442963379944505307272658833709249829472631478028585386331181646058956936601572674218042610264992212670772301373538084056026999063497074838310503603917949008332845777453301320317039880955778081312210236411502842076732255230467666799078830107484184535584487988142411073727980185281608823144971275331709246837390213085714592321565859056473021915796310185767659869363882785171308880296274611506658449784225272086831633184075053559823036208922687532649667428011332524248193992192848093706577009917149841637844658035491731435372935373263559725304474689910701925074907104363252134933711023231047774955547889976397858619975707336996096445084960605008943282457444212406557230999845578759972504710678183506585705665153750599532722449547831803553567606764864556482413119136395053656272559504599669440819847999531994849199905672907549026877346263668543297227853218460730156431559594118092833764380062276384877268767652032567262357192495311899760856688239267534433485732914661715743238842632066033820543985892037868483110768319447507391539290553091739774045293312702752538544678005478691578182526924130481854820232706020922959660577781515499670313814681516068696912015563434248015534420077906327665339461617251249279241940840487147441774773452598686133344187814271902937389428655423558770716959076771811349096803861184292567627409390921743495406171283064786865861147392049626243013459705834521376791630186306782074659616729425109302706194334878794185265461166934229447018090233836853572235894165213250441570239926065247097198048009584323231329487388052326073809005380819055233450249944126637457059668786578752922658699733212128154529659507467459363096617353992173812733652997031365530572298883045651758080111255280380072813095233620077343256353772480997540219071666864039252994395721493073030405452624619251595597024607331529239062644732734715168727932334922315293278455902101152518435076933827613499194614538891197239945197117343741840569800066673367570998336127751086358974949617306564780242071405862702174584443240319490346624136087515044159571703645510462686694950573443224852943733056715396901821686713688357247044577574455711156503526660196157509045429281952612040514898732165544632367887017885914282153248759353687261898403070759231996855229651353485415791997168577796821405179943129028594683204978024858983931699377852186402707788012196049443628285639967374590548190335548325366460847803803342656903446973150152886764697042652001803650466177314997861016203934668987631848190940358751051667352715153925124438063265537466673485915152634855163570950760836202414774983139132207840785134926516341573230073848651841076528131275082290312117501661617169608433869793749624061048804198236833762368778090850754538597567614025372750272000540498009311942221460344906963585634240004235226774752322817543714082095628393102792027144976008965041190024466052313301684992365936321162687390185151024890877173636901371133185011324581841276163170944142198117535992899974459376566947461655015637830527379067736759495581210891166461254311868957987869245175200847339855450654447329123383684844004033341666098037384296753268086167632369067226854369322223195906313373920516041977974708910005477452332238448719214092006031458108724613646372932796635805088167286197146620385410967596619742124618928759244658314394664969310250005426246346241314951998572439643390567112576337028667157968572595024814571104585691617938683032255887621573846730873600817592961771022382475260277013252968687416669511137289526412831046151254574414141479519623779990021585871882644942766791067679881357531616957156984286100966605764887413924865886202090201412237347266483209662333366974978063813316133930982704830408396902539289760322757355534791945059177524782297372225256685353690682181487391082736328480706094422646459218070348606392406607886376111474879546707369723454792118014107199756276904919287547508168392305196624149366303651642620792350508314910809689782573868189150372954677010101920363110083851046740085376192776666545043487326699880645787716765079654985385964504070430002516444420826259174531413723820849812137909467242934745049061632933914145195837005124089623107590098729999484956079106531120267713988411800489045196805041148540293645053271656994691794915353393770635780064445056174707976169518843472970022751103137825762729551635657332815294068180819497703651731386642611767252046196800015106378950783079872951430326905203830112968139107076155362941313323556381722462390172520751074766979400008419450036787628159867201787456226201326729867029345441666753491793320529849356824142310845806142533996495538621962636224805160736523597629021158353365499272473222097863825423067664313448089776940699413182552958016236376955114503005534558467230368788213777921243170401283507415719213106628561416569802561176098874464870384867945210011021105132670270555883415440498265020724761787709426547197750278017196092550385082770201521632339404782532395545860640167272580866488363640403827568526848420738034002912476322010456183938988507739601778904534215444557850968945791470505521820325960531319559568684711253731148533594521605610440114685178912668036644823927713303789731848337763042996469170429991686015659212603445611579654998573533126299116076745906486886220259598007823888586357529138263793464777561458752906545011464127814557726669666747554466534486795368676830312880271015554196056556859842388494795151808795907276984867655825343861528604931953356131831984306305384099866399363399174053072606958775834581095140999020855950436502635251910182569593680853536451597826815636782775029341208790599328493394129572183416521952907588633916433662749386735199577880946562781289245013684272328558420674189767320229048052164573414046434995151030190810249789040544527758878904715809050338858862539591790583258179228919624756989716404149446103050220686047949145086917087502085181350371983170168166163705649821966742204004041139424652712130857627998343414720649040874726391974622563216314877434620260020778419528290053507813396788831249968036597527370469713156234807257324723082009237433786843244817433574555013948157659836807543785753410823118735015272467918959757823290245303859392874833218188722766294706594877284049564997182028941591073384829307946539309654405649628723889472696036222612323897911744555042537653901275219320577035355252462465627107247135427136381712238410548727430014464126783606611939877142482131199859142351261668000923934254025856123223238015274461680494941061992168198473884861654870997033388503182637601141340690293426264578166283196316214449635507972693633941412378796839633482502828929252980427404255699175973297894776088169875925572425026609109658269773421943792587945150815389436978042574958990586167651607802706105632538111716806068260311534212628340994646266716285630957276506154786150888982522596411988548217907503276733541374892569330283283223525185970346239953735735599527692677278204149219947043431425313522923280628845308396826827064572988815042430992471667979129823301496118968959391666820679735004717814977570970530288057709043228410428454572746028246830102313143699599963560115672886058310305629347499501665758631595557774142781008822314799949445572626023728305212896240170572375469390907004846900690220457155148919552255295186245841012364494146092092870468512405492365353980186985738542805330038073987461878887779287377641583372844893824094811338014247614684441796878205952772663138305684262348325941286161570717665967372742284147982084349451349241697134979604986687339872423085376529290628091694053436675057747332208321062728435947827953922686611966601772717303365262991070444499011695394614204752745075867132063563360950354816052569301393013076878614493913405903515574047848594435654462071470686083585172236402887107217731790140825545333489399791461231316830723004759528435593931245881803582079988814225688194554001097241052708629441036897959483494068877703157903136689615091730993095040654094915633520907072104797267127597444110681456305622387675756970252851927201565428429460749979014752470023011078633963443601856550134591218922962452030259205893687464018813448644922685552516981765254488934648550179018500527882945063182880406312569396392382351390226037581367961818638089853469924302125915336884208729490650124630044332829508255675131054589780799406188494116383052800817422112854419524004913032624289636972972664845112007846139239986462828979133969385320913717957884676464490921701217170626411125523783514004441046387008612782183644431006847105945384014105597667284615686308236293141882860850207489144647248207952386544232026696483547780390196404375434715813761415915406091877562290597901422366758590019084632392823793407279504267800677467526587452803564738344300308216231561626195398876463095649583343565515386751011568563323746723727464371252750161780324174510984276409552396157362109026897793324610342172314071983031696220833070598587938288180926312005768196244860598743689344364387771923574851521992147000703244011322589487007616943054749728514785247311584092368209349159101066375520625463199882638364809698234343565372952204726995312860516571627204337509537525220722877713830497750522036702926951389027756520626094529287900178818552900093341485889961594661930999526100455808023629139174332967297497640605312656572851608797824137665477007384534259155889470653440661666835008652953247906526151284709102585719922158597286428364294455535285432480154907704316281087201344897487650128423499205662282595929313748682533018669095906419846146266085623033957978225535158431223146963708006262686706170174518250282138933074377026492064995191566738228535511709810244995433609038485794085388938108815517888295624081993668559648427943187689292206011640382581290203055347320624583558337571810311824884747494143479310573132898826278885559951345762825145981487784885112961459722618635783191233971409478473829206400328244228662420491157499310180762983924987541331407528437501263614798178219306589435890395743748410411114734111002353526027187049312560397903535580671500733919017061127351987864527976412238931463032905824689350856335080021415218826340067707966163547534043746331351581328038108955148127843067854067874926192059034679789656761835882993281348845501737384632694856626476105766263961598766001199862542758049705341184502244300247449458708477030386780116794161075098550856104908976385857857755342426135300307659928181534835287612852984070075252607818362553111331305991269224728075621019069020461393952982131318379938354596454347174807946246483558455315255892845059143503375455258726070909125762273870007104922756083262007905750458879628956888371697752940747304342340166008003190616879790311403861288294736539855893840143734662277102983676658163693831500703094379813077137627904567257555147185541811111718778237634871209691763289752917379428932028907068379443075166791779242705220618563515419463635836595351698681150014213712021642625310923420587118574020952093173171764015305233478406687505411833411675694560461896974057412971309915594816301693659861277316530062620707932415833757781295752951607473671902837355513491683197005376340042236188812507567740063691780348862353959551326423242919373778883208216294012639002144159357049696723351922775207844980688150409461965883505496771978839243593361121393095150425084945984956046739973085396421823937921652443743890721023553692132787417593664399710438195787863741107400810829770854261762726448395952882610517194790502904883787998320166052689350509216153938296039317177858586339436351001051449783032559474782335604580393301250833180831722980718812789315891289811948914421374494307702218609344687641591888436092107609488449913488953614899778769967932488490477675187574367027388908903877854306493788453820174446303972427519199075354764447131187725085696211949643482689478970606131301483219114809131881900595400836459158648999673245309469737247148618200257977952716890817860029847700556234164131640569088298822619889801078244301064810733844475371203863304848783984585342905813539279329203407172736124499699338361196257229626667321131377471872812685819421169064554646071300631291670891118704576618036264807428067458317605862168392782810162827915100292307071465143214825977200513501651736194398172215948199303819580942633887279312195886587606282127653055121640770989052488963237627089861141465045606193249586800159135013506710055592280951076144616640486888934128040237287226446535366097679505309077889158718751379559296758003721357342371108463521312118731944787649188486437502467168105856884252292552386377315590315725779585148998508464699874700210360098893062635613803441497379339697459432440091421796376988325966900211360237612726465438101943338729634626434809351150249342196036363902886168040513331185875969296768601149083988176172615829095339203374746090298157801154213997862052312239557025144696420233252579405202600225287579734192852269066736540732117479847273915807823896202560341817644831794276915591714009504167003230820669669496563787499340244505720489107059021970803426978219418596712462210723421497384759651126266059163200652158138092581597269643982301454404804715933729335199135966376779940958392314694165753971438350376645568740408717440219692128869487409424967437109457759689765103031998160125729128638161889986322769291377010770574049064188314097719370624119395661457162092790443344626767417480911742179752106702883482661881060761863975563967371578582100177548884337955253290247964446136629092854544093984871902663449321419940996190335583207850548355690138193427154260774495234682542832733737714905867053084906705749157724628132945176901433589476269371368252903177583719115517533818203311745880006473490360942754721110943057901450703906853916223381273138356927216472743123366809622216692559725280245685839897942097574129188855663807794097476544760300813613354622505812023593316270684293421474179532584029892721085468034767559739264871947348976234886330126710722567070672466552192504494732086106205597955533387628098851596025000578679910549228721280491027483482805541330257626129103557244271197098236756791000981141773415787216897979792580910467399138814991761132457383503448133460979056071487842283967728857099667821368675037257279362102010183817464360276843718361699170373837579531321148273074602760810011333289325987405002811282053994107741649471766651858361360333788232180681137588426675562975205257131449772980010419814902339724325015271753625281948744412661768920329631642207527067795381817332115889162109528713329770490833262279311752741858486503620030895681474253598304681360978315581212814748579105638540560866490935691527784702132993431099881474043171679539891691633990241568699191930003485596375149791201922941355259119084031742347140763834685441702158546143070840930923802728400866429219822797155417310113633631509716386128038280382053924179687359557839072978860523209034600963171439021946355705105611374750010567445055521454868452085918702822441449875497442042413059378609917150488686518131797932293179426040847763109655005278876688773469222693737493563842484769221789924758411185747083699175345400283038840167747960238024165677243018134699434488803605939577441993785040111627170537818698935769166567023483261912390559779537020270648388567522507492521657064761711028862468880637631611867865226113179689126993229369849096332194544930850273800930742408511112470853511400360972177843332380697960677630365477756467842034943134444728073544767512024877523337290580135987346226332535703829455092809749651404099293162005776579672820444060247605336720390129876870910411738749156029521796086283669709172798955830890872739519007100852772827649360631534547465252475454547761488617820137942094109942789217416207045858521817920578344883070101260136086392417883845093557046522813275112687013794579332829744350322219451879068862631225145744194561962112334228178090562785450974332923581667500438851230122428865554729485244703176810098543470785439789605234696859935607580977578687350332184772508895239136719735899120070081303776243485981771989158713834151642357039313666690585926530126224199147344713178639874697146515022913756299323943163263917044678189226385496755857464608575940392918665659702773919719682722637755508978808591168199909329876722624593117117980319524248516900861035123031936593306456446625900975278206894067065223671743232154302611825113217458241181137791526710514527439621468079420302368465102761058813187540475747637400518247451572226647037679051420698241182742927311226946675965890542506231033926922761634645104538036454112436324450983605922140015328040326880776282789936274510900136031732273537498844654086764872865657901946113491074770003717206102641049949442357373165186178601307200900484754012926397327897600965809977074629469452351795840043836820341334448837179044600013035715046186934569492963204297878177360933578359803787501140932015218970377032027621812171411936483862303728270997652104746249353339586699100680653289470709108136309660605211967884425564556218612386793778649039378478573723766099530883991156576881112352284340803889553018307913559669148244494777856116230317583586373412697249915557563917538731440472984241882340258602341839381400767361655727660917736802126894745772008009715541524223750896031522203550554480569834495993523826342910405728510497535525141241197720323427867061694224663343731710570511252255203227622652644216522073947021071900889823480160950760103069119677695155684821605622409760177471528390589609342570511910282449528886050416505396902385626288538178997497086685155538352486619186517153531786170205720507933900902010319482794245285778362205112741772768276267617410422830296335312449953629146277008519009156241688949920939249156165659805770298882290627482936771003646278884334912796048771291467217961527967046557874684551399886656364345757126557313778591984299961289835769970595337348625773153247404673132116284392172849771362730974665887069906405810302388868561305269329117529220396302174097281087187032921227624233623322897051819042812420154541838400079723262642110941979466938799943040666082974979754246892222706510548106367914463032906474348133721459589332696945448466929479983695828523590930645466303223625069217853145293662476450435247282796198217109234336695154697050931944933978622011209066823290889837958990462386755577217890725221984871612798373681120926458748556842332076768912675756409924125990659309550345244306212974653215330633505279053410941489548965617371672528666391568526644452266186821057999096301986231350614595417725456566674550465279307819685036116129913087203250725419024719772477825536186979753528897515810512358308460595081918641812842771993847706326286653373970127963983403223270005603337773068101967963990136808399482199631550605335719624786752596368319074809946975740782579367658759965974943245681166278267019019900572309601446486464650567206403039491302827377134454510475909159780018007908477787555226906612846004289292531067789575270043235540300422699098576860939188543668325603503820181514290303911573145943148864113080444318299835444072080174146538231811246461956235371909245295922298111838604398994263247732151981038871629205476664708780684436987013040896947819787161635221975791223835803651985262791094059464899431301573948635023214889013361250565743953474792313324344311206668809482465868905311711027347926393127082389982035488410441501178442701269788432679066606261108650751800998913705870557423932504231517915568094791731780614550260388008966667321606662659944671518886457235294006681754504940983136608270964773426592319630735702692663047842909534007665175101521955271240373532733343496213329273089016202177869409953203810110208592682282692960602858896690579310678562843718477204109829085047822882401625013388222327798155991733276910322919126317813848811650468194787047879323756091293897984181635507406082517806643161305240053055605024773438022282439105005144286630415845344167247760797460486282114288074505874273019173820655689496156329457854757249342817972174301016031524783382998589926878173774263522105189768025129814619563236503061072939046321474186580578866646692202082458121951803281835285585778907079874094273464461318187305396279892951229743334449384448153421695094981628694315351364592662194378488815454676905372774728820576949840994893461077211584863520649207565235365362597595324445469305264759740072427288411600208120040156114886227216748329886866576504465520444999546489948334761005368517817793789816309165795385891936516768887539790875700058678068219341939029298665875033851849678400376270995521321727137814900152266302271629924452324258485458643033393068542222200789529313385831051157538355322178822568254325293485193556166135102656444994792463317026106962117281579446390113478006606446831989447906180450411489946337880897361301515785050269800227679770481163229038825179717475463853010326176278599439952470258076290655521557707250516744838900207093147732106008516223928686774254134937923569094813405487252233140421258110761889934175719819325204856889368314698667294561182373915463911540916293801995729992724208734654936862768747322472803831365830678700321664176142851822752144387257526783754743435287630140161260266708240049087675479561777259526744523848669308610564971966107928216717398967596443858353124802567796045964833257284576484261364818786863951685766094320167234415432635298033022075891070894782330274985951004301973237940174945023927525855353400695626235217106946529237569754358974699751514378077571917119558456572828093666924662529211226073200617148576427102458194293144041705862144262378354187899817138698961141019316174449736175992993967314475243090668754050969195058364331320926533113095698477795769042858118574727800542623175042236097331442526482403671550062836735261688414266189603744521099957928981468079107304753861634184137833559814700352331382211975303208744057633433454713542603506883074917699511474595842447467402650164990975753022973872969669869616257393103337581704381566981377366006325606917694359591739130080752814488949726076746265094512893979850468147536298767085687646124374959835805095982656860103629369143027540251477455333030861988392972182456392422590642600997602851335380728429210013651388660399491676656922720439463954358819312875700314346350872941018933562393723464799842487276267226604389498643622965419505339194284217638828353395614550027277116500598953650659937644876460696856101956119769210017522100114318084456764846916528076646520360933622426491267062815902197913147339096446954585198457891149173143141827637128793675866498074412041690380182291100895491710164381173256431048938284330601464514998884933106721181985308002106435086568347433976190832849987875936093877989544526858616707268224641822068014331042669968616904561365728705439076466009355324892395221110765764771067963253502635067667419759942434567939449956715914965295681741834480870638875071438101584846808392614196535140027213702384770836655822133708691552351241036083064685405446935666135656545608754194788794144953874773578070825672925710955120326639304356875709049349328910051262433623337295257473578019894411753966505706301767868928276219163838504871201448337293736880387546781876470484193422600773458737315602094719835328134286283197489056301963846215395242122962802415475590320563110052020922369926954296120617479731513928603303279264960693024994626563747005023210962318713503877561195911736956418656626311351910100349609337695402175655169164745368196041989645469614780624731535298067699507034198047773386672779232547038909209494416879410744302524688747808226725865458417259193629182564021590412549680833756949486943691577430594078278744165723196596590242616603463807077344788622393636050765511539827408908371310979335206099070149649397447178959286389027730642708937715342283156448027327675042980284617760902083412525013938680450668956345003831254602398041648267985574579759059995267164114301063017053331078972999006417632272494122091058177275741408003545352629709856661223919417843122743225009179758599489094926659274909742166850584086627776677253929065621026060557224449716838000934129235744216849606008479542331741070596890939503936830510862582475366850356769325343082136074283795713758198741128447884578361312373232638526815137081097585190349183348131531080022230016938285145933620318537977012381553318815754502923701451892976850561053749612346731469283533640538325076820111443351435656405160639566689254822424798894967976643401168748977128806168873103936242937368069523849122145002693689433854356552180567779581720033738457919088739977228129178826987719128345619814276551312096672817237637963625548115938441818849099911418234029102419318798165823290449244472927247370635323401497810842982729954137145896983875865134373128599952694311031030322264523780068147394415546751237815123828323551077203390274583796783353663139827434745451830437720648384002545101896586662633196105027984012795943373183922192431610407378430309352597430891733816971239362294889062616036806428708024638957942528267530030426239405372422382934689580012500039719334785574159974212039633109569168314884858357642776184622428065739508508754036268230512350636032518022177775505404161391876415468021938808325276067795644010593644560956483185073977020990465535144700205236053414710871655387743999968372733893223807136136848286607566113579218635554664713323936828988398872553428782695519193881191337614284595575107961884973709511573161375170259299915218408847095071757203947051061445239800224852611315278246869752508182031511416610956557527220785536891768953942658246238693221182935028742014484973245445133712074852289626573316665729275534781897881928145196319808468328536986646390743451738025303945348238127081923481815340744472634592421456427486203906633031180365692482553118095461076464336400323556786085619692001057213197865339926779586866811155913786587540844524418624369639505031205595088845334551384856176795045307058892437711613366826113713779477696819951586301369685584195162055510310296775176024312112819401140359561616454772765099661090897004504217353771940020486786795450675538104100725031989328131033613976767541137074249194958495823876614832779964670253477412629925404453098683605368791138844584011465215463808188916841770396301270346223702609477162155979994492631417753924466382400536683834626560663408126993294777999404002003231065161450576238659189427985475807242845427640457240151837999137959226211559716514633651579369994950096359833276407557326521080024821053660692455851416994462149468484495248332354843470216991087052682068380417873625837080375415159570244335995636107467201163996697933488426154373769065798940388620261190599160839416635807637664160024353778254986743219595054590393051805062509793115058316227342365540296320763193151925588208272416641910320379966273548765946237161345659550312356032906923490558612321629504609735992631357802254164300730656789776380965693117456274116978123450673492803166320784180958389426891545780858935633185268443122209289195053822342409514416481892766100034842533880735691667218183929004947461421696875811667749213674563872964497301783604622984556121397843730087478543385232675299075526571590293929527896690058959359981507902683410080413454589500290249352978184974273992789191401237469126912765930733779340096375543843472252860630499244974775207627678409469168237238267658233833510211926608446327635151864437428615033657301024807017226095647122449063917856819513398391715069750661898739448415969108699150245650259662976128435726253073614971775950084799319597620915840901301033166757420125875862569277684488349546887769346646871389814589300678850815318293643214662553849092928151621397879077949444680568480954394930512797431714482154451590903585685697885658505843483655624785848293467968942292778491069067653438069658785362222651793587901954643399258747300385924705259700372906570197832927305533332171722841495613298712697555006088883180742192959290242251199433393977542199900162726174627072736063487944926465537226273444906925662889707281055973323758999898202283056911595948245053534268171139123788239843667737055094559200570627491495437252839226963112335437394596683863809869968044072060969516700169875055907190331309447908026215877272480456446885223199190816664190763583428726171033772216240444623904835574418790514589239779102350712457651173832759286664827633562227653482338139149543939824778111405206511475344964762602116383435729911952367310460062019720632421989736893695601708745703586827807753570113662485957549706455786739659467349948323205991153375766944894739673341523058583143730854138257646502577789087727241584216858139640489360377206900552840128682718263123900219258225596205880665206861195038412895977962140112148203111112083483669961964009690371803916123513278595213691392100797885531884543209923714533294986531955026100393592743745190561829989430415791996833819387192125975825053568475584614709119567790485511531012890089780659383531915380610569455011831559511797915305166320245135692175320107570669436353897359997643646822979165737644928222049670539579392231404159742400004260167303273428403710892638319595733671738371716211146892063739056312182140545434683216051536130524466770376373776060585449423455692271976167334241858257392949749270515843471342058198389973566364082303277485364624443730830948271239981489281569896559510977236530473712145229308089718129140863479075984445103658190742968805161185864830484446338408653323391315224568691407951517408354874132311259001476287017296573323321303720352588250213716952114377458565270305456030168786461357930851789908634192470001179184293686429962384912889322635736568611763119364160520925343833759846932485841120865959774126620770999313949468524347412115063754429716387114700936177576786390997901807704526572200823272060593276038033316419719797847970616907722278445740549742676302932270300524571642232104854739898235158488857829240178538245299580043141621159964586780117958478735176432347710223160650256795307814099029035465060388634814711994176235196754720876866723157942330344828060815496958174134968835275149188033314157996992807366088542460493965188943530291527952076094743380749578757207398136944865844198072218673659675808962662877467284642463900858925162858420546489525779403662584330268951506428900175997498696176211363998668179369929592662775469424313190108500837266726995321304306449579885347781093489518029803595539756510697190672633913339693637454812968848383091942425459165400024190752051282398539262772022842825360892211618514246951118830405838703339752982297935469602206761487655590651347309712241737983062673413910445340783513618227428841478398671288663353791527690725204689278088371676003647744134700627140035365065030080565532629544616348163361905950053895135069393336523896070742261973430170793036819038233968600701604798213244246862380360270781432343411617278856902699411041619491391744831270451751722518489657397175001951607422517986330303138514866007964995675137385896715472384273619842709598599710370136042158631708920230415888146228126923369889541384746528097362206033785242723795041677364278543173694865072285017364916166512274535617785611700006918186309613847196351281616869864299598509536962741807207019592802795373241924829948534251626220697687105657409636203779246556266466947513056383522855755946249278375014241531645542570276181244494760157306027465204252935989398704003634265458171636811438077608065654946900483695736841434199719525663577478090939256638298015400859289557642661005405620187864493452660506144151438130991377696016426227630630212994264212678950963588588657205259731867478500690678067888636145749402592854431645622473970491103127392745436813184282651983691410956773240676955375136781065082793139693884437341965482193832171573201493125935687619034858138430495578005981841874126118784110807647442439057362808617605884030193890990016064000791727243542339379574050217059749343045279850629271672955154681170876108032885493213383933498409877540154783540571782205346921877535824341126395271354078722053985857347463362112072988293804705609573761462126504410019702596836776935675566435353037622968176111315648927754746212740420956717005091780336093008643574168216389498349167953147913529094152223136737220651665145684689150901267361340550955318740574339697410504446881155893121635342549733861567756257723287148636822662568076359332787015848399317639671621272168344982243083478357629320112525607267927327475847360329748827845398734386569098424554450812730924502345125746086192450398973880401243853731860831623626369167674972780157300980245066312193109433570515127223909699974250550707162457459111901940841609727770865950773998406264975069970642149384536200766567277407252369177351542344652010765538140340824540917675653690562821737177834966023231407473969072224129766957909444060184341446899674863716774367297199738576363419266332738288146800981011248840092939619948599745535753827598780292004661429452483502642542059108772152579546981214395330333557258866774975778876921918269780768261386742210656082412425540032672455815205267444078344470365442329671229112530095455999333495017529161007290205030679794443919496283617380185853110922257012201624609514881599082053027594172529674140039378874363115613482172028699874409383613982269757357505058650372301495885894551091842079567912066429139063873194833517960553346310083042391423995672007497579667425115856955531810183486099505628311498015260459433145350104658268158509091537530729258160199147901125581598775957663179486015316670523194617240652220200461076775170562487540512429928329891360993691843276901011165945663409769115964583348275254073938558429111610140214029965397016199056584190502827607935951207370880283719157311509154172596643231617665076412470317642700362488519412840130023398280874688024364355831313421023812344251419105202507232289647331545388504701442063932240120839960030633494785580295996486131927167841310627138579205336494989314939469393275704202496973451584993271113530492779921591229160454224139298226222730300326329557068101620877397753870583446883708222539467168850353607881627645583946531583102978534739113796336773634661099472819691819498973465221123215355192737189913493313731875300248615609504130628429396383237534992415730665202699670281287014132669444876488235682354294214578534342498637160988711100491097023611932551314290635733201194729455690931871058234120320232031933184786670465127882433848136906425125796547732300000797590481608141642962397407360905209707488799659186762647625249586363633653385083375722672772000035462241966858216941920593518346596558546258025318416088787678188258532610575572334832225985839559521093652114715065077751155499686205850565717355727462347988131128562233169721453672861875809988695169631008485815482767633721833847806268864413813093730787027872599639550572442202835942801491791875755842019649827561420749065643546971945893231787698368266929258884177305283757894025575549074473809436490020415480166978490277472239361801216283888225567658719281454667707200944475848429076091098810059564286870229472542244931051617293994656793812806589570833153525331036927270287429593488003958579684573467543648293301959008893258113729234673018088515152474640691235706076548119220850204139020261973564056634265809589370413300895797545885694775339003487107032658941436194443090932839445607847879704603528781377115303660619941427166144226557557403715646298279110121116131953213332865989733597590391331169127740288284741292616775520436379556435481965331806247128280619508661646080220441721275223489084190812411732540855978535057646860487576842720797971970157962384833434494399805362686287116869851588379182919827530488078264780652807551975063805438888420384351717685606228441394664857028335348610378626960714002980863292451956408821475203327092298548813478053601772457538178388303170663175109542540698887000479335505097564719891143739084128858744894264270541174770959719593248805840919897994944298395599056540248843371342881963612969504519821058915282849085326543758548438228347968007082730699960941692160306697179857543156535803407636985150164693891671087140216716693112164936681518072301225781162505829281804064456081487039281912575959052057255472991351093314471299862305252664672997411327872500522680400059102860619971887763271667215885953570412317788982636270642190905009229858310823209436749723322684009085108905435639553310526813017799711990821109093185178605381227941702582161986299319100854134105103075331502446024912859776342062903700739207645724461338871193006803445265866725249200710536041222266755743294268340627137104631992583550772754405871286329105829062906443885895709181225677834109572650061133664471257255942433933072990990440003651312251491353817918811337090964838405014239556921963056126961270679001235575897539456674995422386171499881886709428116094658812259896957970915298810575520716528750518922749274853002165982213675807943449163057354415158635072744612853403039915308035329948154698817743750677515415434313352359409388646136397388286363588391540098755344900292430591230388346332670964638030641192020808216425184257748500010095954883447235206567584761126115657793080801047312409950523965301716330312505957898629441429345419246887969768725713100836174720086874336505505601928447125146821920314233382208050084831871173344537977475864910641411469620371838300843842460140559217914422570813060360618587059607099428989475092628619374137825614321032237130839257421755669660656251174572107956449787418568240236996586093260664949919032616462157474031703884731501585545702605237441873462899934407963245313393847727861508847797253644123309029628398587424068018314649028056503704551810258552222561451598851634806838761685033839773621859780501131456880487607541193017462732386520007090937953942408381392056063433874751074564810137500803905105490710479381610323526790095941347381714271277630558016300288728772525294621731432487773782320435782577057994092507564572257584526535898176432288834779819809346988238102361546717487217457728444153112171500954604248911559627259282524455461631742924275535202557398734052980211550469847824076438143307693582505313382541546288776215465323741731493269491486034695594392903748989015860794660412961688166620649774531593154618267978357639504560403228768048763191047971660326930227295884967222572466373744875346647255247871820761416309301605491544693073250494221158598737599144405397319519214473997773878661754784819853907571987628142890079573449887062832982759105138997797250300725878617166001497720231516467064721767711501371997486046480249532544310203017317113510064772413919409050111846249959841648105027452222708270695110504874832073024268804327945523029652154911298355200114184748648964337933392987760868661055178161322416105410845595214482635890405025957320043104257102379997221283530947252944414784823215116929393149480190135032600712343005393153050302475163062227587440943963336794395670725210635828687594582702904578498141904957901124533943308671873378780731988942754956447285019964941541835075762287250653789379216842505373344324234406001118074452539709563973628452661012615059521426798392743577379800832899134038679091432736948950593842753805023468876099110335905801655146885822992984054468186269044651820650577459601826953016056885610333531511051464736140106482170637613160348598642971537689898454105602829504020272418387528262453668459121934272199846309433129021894272141825220318089054535685761882036017524813297748227672828823800647345609520315230802101860912646848513456884426093481407090500462201392225733848812149607166934728800889247953534623955851995814690503749003514089706323258943261423759590394342707033522132786401934140639522119039908608661568478786488148095938557653648933317105872289652498221300607165273454457273847671961289315403919963106213075246680147945739223206994692648197028752777625833431947436341452015238862540784285940168695569261670466609958202980453875116524645841020976109708469845273260343902556009404571268318062192642151300004777325259968343367928143914099518938519941935531692802612955834469452705623774133209285763954098181082176739516414150140696517017756618916144657006636787531205615409872684511746167896297502747277908250011819375898779433744894645632023011245338531044460530641160659465254356852479294274047300157221482308807644715530974874504401104116264760765154609049976538618975907080818723652886759154491668869935156729580652753410998404981617094247670975824935852245632052864550884610621131796754019983696183909931166671401600022293609170715230996809196112063870844005432536272997997984392766041970997620217156601889568372511791882732199771927132164470077835724945304911002729559315514564416674635968509326019276802630904334562401215831851079068503988393412472047783733246364403822295115455698904321621332110371267810425673164817871122015553010859778240690311465111693608615997615952996842161711630495234344612344961471932856028189817295849182635293334730955756162958185162709485332560775446972707621004036509801092907072861941423137183505661707683013294392101691009946703342845740735042150702017719942242033946762796438594567856079816152226329923034194306017010790099785939851769653131656328936299231846171225856990551090272053741354578187862870071760570267360154955835857712789447835020061354385591139898651106499154872956169029211019084732008355307935294772677185065218548167716771177845669682001827471575842279851345804490840357781062638471884199113201319025156806944234829825898991588314413676287427691308450691677451103296526755790573409518893722417429792654347941301335637352095240021394945667747019024692759523119372340294479750362843240890587265273455454589614758270676075342473266881020009239486853316145653823867205004795546914044511184978625237084288971109213080488538356559396704999376985523863368230341195762872418117531091611280801224401883683350529292041027001207089928654532796538381856897117131950042243124985069732343223622763389467716293986495431905127289299405464403224576122382496147191501977584250377770728893544133782087680272938468124438843986398148791479745177848652845333083376266564243349892885598021300680739558853428201447282959372957861747030320383047367952466930680979059316140803433195507219027275999959993750612839605950710922675755019159069291248961863192625346534603428324046342838181184999544575877797427929838700607257126752743406562201423357030618674491498661598728619868039805739393317277295161273722042025630035335178957589570315645318954471918840561733554404039298819098529269089620144997586068871061826517890198976114499306563515429418697601352458939405333461795433871784657354641288301660994084192245947431045941491567479502718586287420963590609036035884005980114196302457860222916204371830436704984019258761314804165738761042139982090860429606289392944955938225205673896898895843569376295604027984154122724918733245324540306825363951342996701506760575036927010285767386825397415632660454523660360948913261616245574238188024506086617345996141265491054700735449296200440172114626187299042993706511227289509024684944289392044381669901988883610569555738037873674130701095944199085936206975868211972157936960315548253682428252620634939066798654001603418163062009748602809834067952539946729670460697009350766068748605733989143391534261389195742341924304202887918387588887637826486699600274582861632045030763642663021998647211632942436406670901557796805780061589317360841772246526909264524916270182691746810406988129224771760342993697957696862294952908687030025150509691928396591391662456853753303999304852312925627610630422056073680037814702175007289370786034962287463131553527995714809258710187429066507603062769635599895583202579206431209551087031574375874161766894454474958339732387805861052406313974194754082149499869929257348739311231896868420560223206415837559365923614114311921400920609258465568318878279753052556878181332795853652338614993995941383231035337181632279092917117890950002044344625825348691067765603463936778911523580466503546257515158954875963647552119851573846265656901284330302440884612600496413511571707261061399895048184325118872688437948617743470229871842352657870629055161406478625250568587496013550573728704636313582885658508953903071866626764241584230705536751418432310876044380205691563103587533058904649133462844863580857853285563829163540410055811309072441951571869401379372812083190283537525431555423925861090546876818734970562892507547419258821567384741047113734885546055302701586402166248105826318855917766578092435913272390572136453909946005958641255267708881775491687256024979296135549627262690689667133844824921678502389102471940091596463233871380301248621026531421571468807211081372618859832653298055068264564074299388241647660960233885197445928219664506023319312524273983863940388199672064377155958029763917611982467265392294494417890689123732559674633531002590859589193925779242543527924662214460323168449972396890417717054350733068730388922778178258089898610110263054468613863429086376535850196516608173488311557538706997123437763033513000790502315450521188065603360515783199200656005171451221127781968476662389006652602172655485720692428664604766759146278001026863607150895163170086090751537582414382547596196796708271859998777950609126688751510195433130474681391825196943657136678876816656333433512274297149662370446212384420396564454546544348844420714054262872037823529398148345128806181399251704373280126753727704360157752770715782825836678261317288389809096671204054208678300377772286222667512039313619234818731157304728968832524441681911337205332412869890916093650360654804621042487145886064694786120592127657175762195744844332503767293192460011723812584466417177954571445097856584317607212119882859715257232516349484220465075785545348356311140198403788351755476079216558080102819565012699345227877765072486882153607939669960272366119308396407926162417949413661158472276519679835348575946119226294523031410400239256746230911686631493266436767037595479013179692630681219968363059240246550233069901026973283047840291622180502326672163171435378182999617297473688429545968543720243578496099326654673765035489589373929917415451168725376694167374525122705312410126863256846959151277448116586832570214713831461589782355160188023011281625029061049219884941820064930734717884069019547995842307203940188161614507052032333859717050873043598436292046858726190387873749001607859359587031635418316829420573300291784808802139955349839066397752673352069882487293859954391262583828718134028945258593908968955992009718831160036155804122950717354283967595032816010583858333664299726047779522445670947797971457602491289300317051488256959634412095532832333735245432616169217722755011327235631407718430018053142327547027429277512917182860490860733466331668248176881556367507277819112481193433722412567345127767366559079261708634082320935726895813734599687232043517353254063259276937095889162147387665270478906856965039622491337191226507123977519532085371763576745776448054089419180779097158705081604576681716592174757039424476871248693852286461983733697245639728929902376980209615057050450889404946585901947099780958948409365661246847111852843788076090022032853640158282731152885863772737884170086727359443034196144571425145412617038605168923217639277956653543402863508602858542439693928523029735826506809563744327144916948004602583862876104716873364822151214683580384340894493492051170542575260663931429573301731983866411890215074564662499652486995190106975680569034292953413523451648004959873949380274490479844290344769750908293000884180734237320382061487502834459221814174565973240113649031102654393625118500733734199936264832680261159067353884141859686912076812712245933555016335680028868629349530496101988269162140985269725390520546659873142087064346691449292214828016977082852382024139503519417733279590372843757807378160039852760053799267920194708266136620633286721264390133938458591712055536223134173295030176904617712663945818990927867015657127022794936808639632970421581684780912803627280468007765460232220009268925672488868742197232411788384060346727523019507045741116413091595540612067699213793799238105409759975614420841736902788174121991420038399246760018893832111174429243727705472056268041489984556500982883929873005986655440168668981081606214100036468792633379516316369614012171506037910020896440509485841890387212211645109705842955898642484055438004029667244941777776234651755694745391715233101473731192737295064705743485552197230155932869004638220999229067424260787801228435850850225502455545676424619612473219574343746846144198726825055719429413916209187822609767341419537652982201446412113535027964344973015853861495183947986205859988686188443826390250855991333591524441470863124512935397038940598548614827393465086300621384344879944531695856445503454732527893131008151987973912090883997621192502823946077496866346188425609061754599996900772157822662476793662597936858160410608066051606776046484843393146417705268198380509405441917926875750371340261139645800399013876648522739546337519318886075841604048820226552559911732367101472666423645529113327637979822179455659515385020873201505026142604499632638624506632327432734284764591430794880317899695812327228075156473457072281943879706338596875472593609961757470918316567491197961699146355803916861320692024087800633273783788351325287114498161139287099447267020118209019455467038094974803193740528320577547691034893414112037843428624857913090108027831889441235270735354894479885635870797375282821553422678226787947544409947663784354837197915017573372537680815602190650996048252227630100483426722493178064972479396341716709050797818508075039368252734367863076773529632192814218703107127489232458689497431651765551736525518065253868229325687719258911303250860475981132324373304050373581647578545332505148148019615970964293931600673758487390230635508723076999651038603049415553412604348250690143084707090228500769320319971486362109875087880006674640642144636473310968903143100128959412684175505630519915247683336697169650830773855858528521305441121325070038642243840829863726892381155482912414669551443758046425708293738734334907789513389961102597146074263757420033035359332651094848014552147693057834503897582692536846655044148010789002408458437148793577176662536295943831972376848805155203024394935036054707062722168425401922728023089484134160332081146755218114131356717511532831846581880551324734970484343762411720113891898548462457246348677649656824055407288168669518440927786823374042822971591442359962907960269747953918045027993009794125981444627012506495129367011289830460733125728394435506710638626521325550145263077036792115024447285047375729494798943759100493744298130858455304008369865528431957290842329004763024004331065271255479384506286769165668592238989870126306020510625994138723727009743931433860488327940285078534994804973494595221703200567327388362489508068428157853728372196009362991778619196189143514801679835651187182909385284898872412107035683217035350477876682994494262935766871165157572880920757248538530011576519818873941475329009042917110466748240158424432287721323871984305187247520012573055354292623390464890141112305296802130844968603208940045676813229644102536237810739130389645999640865479171600502352597593613555237870837589974247127331583721815214451743403973350640498950587003592350018570262471727353945348649810485764229799125585775909704080513235129721508477521728983885256914204349074563206966337926809580335858148767165772894223191237450167039534537017883494122603260067794184236125466031467325839822001040732131768685332011981529990303775944465677339327579820848475041910530086277071650129311455242571710209661700607150433251537459482130942476766082286305988199079487904253329719762817615386185055291602250428936674036447600985537032832037859974733853457877781943825986442845370510113200489989333311257067211507416601851820405125118729729751338416578774304081042448884560774532419939209186784232834454747611076097142860553521432427937928760641870932853919785758561015728214987733900358155299976485441805153669637093006048247171800037045916379402198368241781732673753842248223093979140810409848201749927894134544606232230750416099787225989238614409828443387734767510439031891292814474339561706778352083751810692774868161383496358080194264131993317782819596499762944803199310706127105034467693593753568911461835474371287629798996831272345049056874620024741521123030254538385318205554742851267389347787358765668056756893404963428614735065450471548773190781481100583478432331140194116266704357972618166694205980249623518171009469291295775930236058098168189537705270400426037203588685323963552398908164522411217470961275398185700121449180378007126786845203586455940825972070990952998393911847793584405436499477733000401162838343137073062337194611977493952569087582835564815121190039108356191123781993626673375488630139879998897669417818701874683570081204937545631981070615584636309574743553503356980355323514771234836165882729816328078166386680589504092570218335170040903726827575805326065945785370114365299340597673814270681822221689879242453904028493583471603528877294346730095289205121031186154365622132952747582500199415372930372022193099021594430249882940156552613690759610691070402527900449722092861441316991942561425901752402517037822645922743749486540651546327179289275494008533086135577551056658452311077353189038887206561392732038888783050031209653695501392937454093987797115515746050146784775925431269591634689773204283210953005328440302654252726947480752653511335254930807079785921034511653453783491277818504218396317424359734374218426774712046484051070959316397121881922352570340041483977004704606767471245008217962424147398581760511536067577511574882846588787172580795893157447020674234425305861282001026056674095686157777822271800254781419948016339244913501865423938716622457623402953538459382088607218733958719902876051462940071429772139133572071390835304026845433229565030697361769831829685385180120395797543369514178483468675241518942346233740342504563229221906017451115107725765651779521475694409153777657813649398891922788691776471375764235909800144719865166656903576888845673314307002981691476153780513822469278058716212985301621130347237331927823163654498537450570431257343052626050520242316233011583201792389540228211021625018746783960909078383997050612963424714940987266048988200721578824263342652675747296009779250107475054946615923578641335007832927347384627539412817409696685933239756053817855844235906962862741475983931669142696145815540760361864660966501064036122633323757586793712938774522399404233493353896816365581959508575162727507162368948869251697796232533131688275650766606330720418595286872951098150116973168641671416040115804441710766991892059012190923961537262575013950338404115714056288144945307489786812445069851647840268388463424462295441376893793669742378956066744485016225601639475461053865151644095593641528266793863014238405437741488966192132199270104637026842492759892218207085306697474590110783674310927305567840279642162526531460560908928391581336813751230262143284554051461080575032183726283125166775103684971026586271197411995785774615808796339121268298862243118020620187580924767434636736523734680047846524682842113496774134143646492151278787667281526307869945692282384342226192405513188827116704443726228404923796712428480731958121381778510689905124518777571871892554588566724391146227594311225263438579034560247157976631494072511783569632843652339964156408330656806178918626109865843512836242624738849937726378754600064101431554839938326530681137736608868026363668615135174628026516231529634269730873143723709952246600223352816919538277709632204941109706101299817987984892944701521858127005532449720993451693900110047208777498535342773650639088615967540521331142641661753079105731643045223408500760373715132212537992718905212211702216956437702974177553475260479518417304274365553588339546767567724894930298618582056407284034126943560011057557593741886222610578535455215814275958848649930855275347531881750238180449465009339543889308729441778225536155134017031524726248085993822267986738781965225590015765277072662386015105296382751408015912145123745172084982656974789557008018186152531932772584570077455584114269683257529626271309850391161257624122209307264600847653853430952565977270450573224390560128933371842572610693930487217365204022496808590224864618773425547829107156056281603114986818912910187671537540468509106341351968072279050440087714897455290285809109230395816047410320201478582815221909256589124175743627085831084706817899705969648542103865766060152999037112382664137348628466030476993662476136804997068428901258859789653530042156544756549926245830228856566484323171592939778123416098347922618510477895281599608616542015646445432098534030514780091843425270618239552100050582252295215082289321994958603103653796432385623861206772025194602069299990151064553091013969398339043233838918039765193335420111759664297925080912845999252185525781944881774087293288055312623894829314185941140159352744603719816860275382243946355464287965037947804279467950977226320137914845308881968288021667898008903525325319610121309083278990710427363818428553030539913294329863730524789850764667489027980251978377470130149522752297880569670347674839379817751855499833477307601247444382929933423673615301952709499589969034687790880665058265607896864981068719400656354655493814875278279368210632445167624717634136810918040141183918155916865741214266054510930189190364115685041373476269465901366238779857721522492823118103949516162659692803271507849415193428296678933475476339853991461532071632240133167648074784158877971148498104492312088523287146024824635544242119414478120927728544256697775936663029318075678991790522685244009632724895821269513197711810882329101471117813134340460386278705696906111212653736210045070144683650729544260773895074569309886047888276321526943239451567861654924637674164302212689618313631750810923507994321455691963741759145486280953273984735471894820719203185213817497388817496817732880150230837521486820574894501878039687699465230325027120123349175416470713669085555543065955578662812326153160982453696653520386481237015716090589271555606555079813738478271676695352850105139821804513739719146690455303114651269581160178279761246931520754394042893195419320517359606013608285726113010682440773511198929947166711736480426357684481591183812088493197473214758131800404066187666755468462768715804212720051585449430075896368651037050584442663138419328891484807500454058810387335290555602378803380926870596963189315972687888800346191096467739058983240996425261341521508916466713399923147342991521626474672645722990371795193548781276536064189314009104988947084673792047545312947460997423280457912871639172191704396789181938335342239704716827678091835500864571122812693140503729505227998466206688241596514047097989941771955645097493946668819785782096593965022224843988812711327322473940853395157576246240288517964662993366535488156730160948041209685382139640423386493135294893782982680337109074103323556755085437224733433216556379605621998140049342432639225608637616622623060896591542616720514966335223333349501152831144290306867384497389750324941160989846441240421500301155955946202655604290419696391800771266340190816363404445341811393962851544829063038510853664796480865637542134750223873103180407187571489415313347947665964157927533301264714588285117213204180452002232399707933333725894555528742141303839823143828976548069060797992206302618409096423778890342801205057198090702560942784348229494974978796769934211845766398429360042328432525450092144700747695477820357755451012129416909697589176564731572996787300515891063190764225418865880463796435451544890315692317131601243644083291928223325903291838398185315960155545409495741812129487544616603055315232091062732635518050279849837929511497900215311866702401107421794942662189432458795667022618293348883122746257383046146661997099792243653164120324038791513094558946001209506369941037706045745611928375435253597706028393158204520079095280814953019025891210787152087065378550745472417059407405673466482703693029014019124793119269421866619980919049228039732143290652622365815775065451738804647791895216555266275822357559922571735703197977625952576572538716701080694797935771269947656519808172810622290549879524896352196534691842806956779928069495685580026663477792600992286377078214022291180398756053453370340608908864836653556921474446941914115704771578316803606851564321559436759436202758838313004990944156326630604029868679464929269041219701756551222049727251635245567580506723561973675569696984539038545686490907670661469964638725712401635034014880050909291000394352699607228115497736631244649201039335169772837364741762374373408100004744865072929379616868175714240753898478471895551107897990924433448172274244403717812464090259331329986075120139683769725368462792495047309759822052227888663918008030028701338280804137914230327622247087394946091674492171778807382289753402658840685798400394746683197835201125951102043331820255447683249358551045198127748334920374442292875945958528077950061524478130116849965816036638461188281331031226580617851786800632962412053804203012384704438571828398385935122196717878265041768745680878560428201912519989175418158460453909244698445579036673775911122006908276452967357644614593548755253292549554470048272793800311633878726526995434585292086168668031926415911613141592173239118983484643533225661491680596638490955397402695509720716491103956966040311943068586969036674528089799156174440871167882981744732294921688080182960213996956116522225572891636151395015870239704737683739026172704816129958148944376555078030374102078829578713079350977633423501933108304879339760546091560624213920844474202900856859052178047887543469287912608305529099251622894272189087878154643935510066961186303061371076872151087998967227850203386251190424502111749776451957641794067235121241576323169679842319987858997014665585688917734592872605699815373549810113429470139524499067536568160339366907627806166205560204735643461133095443546464934437565159954137492037797488403930658596153683805503162380333635550634069914665285184867671766983857999465157132833384966291980116935342526361000828063127636964215741278224656042447333431724869950929887911595756928397024092611180819710582268650684544662973371823675184395128993027737107656006731906290649691223367656951431444103014849625467648600184492367984423161047683228342837556215404574826256041521792756702049698971206887299586543294140471455414244268243978121367834064581379513584279951927675634829594963221081804427703986748176048194244816378713551188055493655267812448755395373369476570656197405659641346859366386125588770914205746246664207998112731927850430195927766632598839955542314776295862844376496858756121107771970871739157716478924654510552632366506372810664351336395938530020537645955680373646663480087299505749165335307969340862945510936454402732333595195874136693159967143476776332399413032742192298077897482535771605433563613471469727278147659302182238263978416972350654189842646566798078066412671698375679428874028671356276254387757485501107399383482071776278989219005311000863679628047282982680436147269485429021224653988504863358476035093814897166292316181230770058430938825111758326294409774038350324872027882478084236270282313890916372923984397767857478606237688575566464436576122815559826534152016933980897607072753367864199567065420273806201545811877830725543337213340872857142229424353390680379169012233615836822878736499312417973474995806188137328822205450331324957404765287726872987137597155721048863370605873483531383674050143147064496069265082929556003839745891666565758338946798214084805721739721156694189367794203950009172123055515529826710332388533575891491639186497075938534509701037442328976005497479925996029925436571333282377322893845070976567495147362519993778704936348610649662112766259446534092566247073578802113292669239286415104761951019159269740323118028185722354323496332415821314866282935395410256852218239745885336659943523460434300020345305079557447254465724857152327576059196885101472193164879264013232009825193734302936128047425350539274794130185700429250700703248809584786269728182468126928826248649828374058928340720171211276265349585414904949762429129783093885754643492998941469827854095419947752703792695003466774937634031960531363826459576269754448109938913301786544062195297389974149212329385799112516056113165479949164274974417082918603858206287086906052447366240905050886978384130899888663977427696801773960199013779034336037700384311995682750479530376793762574299178374560676771372645332767814426629865859775241575701495931962273521686946282039200733039516444760296605121210570891378078319333629035479632071675882406531428656893633050159965342110440769429145590360447144646590614717283330073616358214813808141972617638980007375178592595495316583032025416968584367106414001090023014589349322001736306137331858133679853283989432119379007545039504045456759399725963979433054662767730270769475215311632362500988232582240969336398528864056211084726478407910535416450587485110124307420426134518905635475905325473876156760055036639761753064367842297427232033865605318822381267185446042345223710711166780062618502245144369428549473060111739476246741588686325404071577293412665721751867306468732152340742135569040409146552393063148411806128772325228412514329998905288406760279699997983326015606973615576364871497910217078400107359631890918689123892992293228049297495035467879744635229793736819116033046751285704430151448522137926305029603763796384182036815961488222842702886062867659244471371096271566022683109980075163750956599292910113949854288658775404176814621894096880904956664499842094329543413144872728862807434526749540617368975708851503027644417122969885532002787274266527293287977169945893668178219465514250968788461691975298306480445719461798256158369819204550632027686215613634312292623608441517680857448890973196926054344553515050404159675956595063907461026304350627863187775849823569086938071164121880920196724037833752440742440638130900699381554306698586485766616900130004339323350955441037982702790422738882157811503415353019315703717842409708422151696733030613997876618443690845831080009721248587318003202506889182321274427074824740331163442753295913229250549658966704170144107681362719760089439167582802990902078778420026802122176990950052211386009260124909082035449000877037848960971556234237128912451378443125342471004537614020556082495307173183634822283912491916018549968658337948676591976806338145271410221955189652398255386348971790018902049054090545889035462543733882823291472121823614304508383198287738621330204872795591643484497129585820350707800417957099908393849705840090249362634607143915164294268335497132302415371247220955436135997572877969619287867405192186152716918147714281692444297711786901976516595668758869421094843791894430801995970743495959207611604722992235673132819319316731005726583766944465860755933072718536242511311790666869660640326814719833167701748702809481150748254633020687332455468568461933365078091302904369589224789731965097638311622880451574704924393255181889502421415625283655423000319191776143053714920976948324568087464041520215576607817575928018939564429424953735575549917311365403074253369148458642659592647610897520470077491823977019565184205042466748776771714035328466305175002344005060130315018927213907780229020581327451379734183969994202452626245020405702912878626252481925800677146138038458821442853515471054191310806022755447728671482366702628818327462341875045629538294505395501700203176067498576087271110420635372482225065536529667529574155098868009189902131636225599519104968230766390078361178772600696618082707672027333741585256069531006870419912784130584542904066609447705866307618047307260378881638706827147068308220411636134290529020648654567614139062113683885366785095959015495273043036785769099397069933094528323912619832336665131393638738816474324182924626858336254052986314859914954235395736726834691624737632682653976266020852072228977400575938377492581589296261260578983264543459568488612832693883601300043973303533203819927688233488601553153269748365682741852615914676612656431342120080310697225274568709419053253227027664594363458898786566544368060947869594230906733132797931103937969776743937106938933012535902736693931585070103630659983820044227659599112056518444765271607790166386949850865740383068522309337689973709569065697216752497444971675157258195860387895766424596769330004275292802385231144821124708621489372519173910942641086354852554780217255083401294957804792576080354551637198568322491033789791115588219984157650268198843791628031441722902571786467029331996486729392430228882999973345099387126430586403319189232460528757623363514699439669579126318547295209394949590024326234047349780357402922463722637823988210122648797235524963025489259138994953073921054624388781537378421752914464249797813447044303671168652909402539906618442837022831763238053506657524903052727533145957535666873927061684579149804386277500749248214111045099992768267125693264459279607699242112107888102824366043577608384473425254748172246218535519232385368427810788167839247197053290834767470821592527676112235303526907076661528941796815808858347331741513502951132300805586943189536373773954038115862608592624475470671551356722850351068800937523830772398545978437872869281778791124640666921387922239193974593051732710727433093239957681195897178415035883484783138154964615331661048884411104914761472513861177960849461926515724554515100184336844099550522642910316187851519048664691300123886362201798039747828614727547816649560329399097622425342643356949891916594324094359948202921925695462908183683114970160124996350140348019366415762379918280396463388163280407648525268472591655325694572867957320603182651822066867689734795759997654165374826218434404526300100291473874303630151994768532128333624289839940716481526026851808773440122207138548059828476573694051767597672851172959416532833113868044082860479797170886364883921201677075603534886574821183092034749632479926426352177929000405281270865919936098914527658040375130568617463923609558996038489555318117174014970773586979629196037563918757086619782792940923568985208474218640741464484404388206466455259634705251919566417030613443750286922381330974057099929374573290082599983539094808990373270720880354289243167981737059435766205252087457349041316426668133221871452845470947396123945989820968433349215006084744101847395467696916027231568004718302818891268165985414724532592068940627606326046999103797428825459753780363188699318295069031351624507253704148612392475310877020487947934557170375589145409849308275162237074302332597810677565886990128722350736557964044320891531036280913040406178782241483674343148926681909135847416450921735326688688764683544676555454439853880993837202639627407562779190866564777887394912495816834001647258758414336922787598891138423761723788523542673656498341508169937164430269948205758804827751894397227385819609273223133043487639538037027603679408676480122977772271429636120717829432937485030837387192385577577343912290597098739144142676157677403070514795202256168452500221244897419744171420395330007888080204291548027803465244670948277900081870194031239430328247780086455078494222522202453660101507457029948474484191798117745814692135069766315259876520465463089019611642092130690153778132556112794206667320775805800958070721990319040437738924244208518973974008786755601103416637085201219215737187403037683078614957185975928632949097653940432573915726584679793282822376976261490211576059965551688932360933310448962695643230104335149803251913714297985326069502884329972657728095136766522571311247588139696091108571906578799328939122939086554702665143490052647493724926503888995806390900860684771840011649015924512060213380857913601067196288385524765947116701950625598214334898252700825957923938760328868778699591139738918357427998527888015235998975179553453228098173414745901518658645080035574650814168141389586445079262619338435726275719145677953009502893583454053922032575000911923050284623531012981724239174133541351990501987506689072750631561926896980143603829900222800524411200549577672367383621998164991579774343037033370837085747038121677094454677136453598628171253654591989145146842591662804483875093391808943344219019151639574828084734564895689050701920940860659421313418035223253396704835360993393338044822308535486454377781538256330088078505584748779329632526634152392033312945142169782082678969482700768334140962373696529679061740529712980004230614102305272746785615714420110692049783953377059436899025223393145401351466387059915740093243720135014238699589373701450952135878213688089827582878164592402195393338640564925744054022564827710161167797639620052355203677972260117170994979368777906030743531605292282751528170120748310483036848751895563974565198615360187100293270527951789281158289214065947001440946941366362138729389232151102218013159264279410785451535729851349047882604895223297464123887075561102737843117325119099772568613913468041960857393603918343192819396605335740560734956689750553257639156686427257709058396008159873117497716134527320293662199251184217444408852610978135503771542614886168620331859937830154875439009626516883945458714086106875373785403845949186930330571678605651801590272898994393681521510015457584806482815660353333265100760318086144733640632228932997606565118392140848241743430186849743725175599055466444251141025739852460650692430721045504623434262917758350545144719662414134510538984166742260419796303422321622807662004263431767398776871345136821688448095126765707987902565875437555436638076674915190727251106882978552288175458046604146329539953287812805623097147540887670430899209509932641302397898326505500478130230076326581005383861848173831543291373531368117555152249140934315195647271801907448605040658600295735990022104710662352127668267496368740275872756735697538029467596333637587827202460207083239570022413049736010434319843612159956494110834391784285172638542588145285991326469016637318155885245446336186678558891945950048010627512835368773482023512253444689790993420530277424068470594483527873239731548730482575314920660511241497886697400802545837368175258693263316819717710582782312234152933885063756344363952216276803451182663121645516220120075990514999720348746642992936349432862795039047314709207689204063959941476837127879875265719409518906319914936290637119196481029963635860439659036506770213718128973150666296637267615042231467047030639241220096952534851493768013200966740305239025920002318655070218259929727009844176380254522408582400684479536952089804330205746708737599808137488580886980584637486737475951754478503597928047478038694406164584931626228903160052091777171790948588686137319824963258618695823132874801103981088940384524880340088663935102805230582875692661669709190945187067650407854795436328738960871238308885058044107304463386510182474514040243917745805175965335406786523745316526015075495790350832580649988410774071327517540817529170981824649291578108020745514577407786360611314670063899568763521926213702230839670543510709672847588800329876730597694503438778253859054051476327352068982973330089610925723310817944528263289986275272212688946531830467983355917330551083577634854447599141452729237235425098980690099405279944065893185199460753097246923704969085239400967738372297353800271996382527767031537549945890219867814581040148336657443011941912461190369284413205399294862293016987788027430656230475130335711400401348704995749813074379502881615110241145619473164412950275394427944331738439249801525268535853770775876291410630147616701407677333256216527462552293806737104072091384059569118295682276528478584155673076168864286516053139693954727984010920089663902524898561664773378785181621261783924804793050256493553638061990782929864036552759374804710579142159089296776976206356117953340583207998816378311537886176953938982257403988276286028509079910521914815857777862313907110998494691656968992097504120988768479642642481837231696830044230388413015487639488032960697197315010534199116192554191360100931542298559183816220215614482833822334872586616841104701817722740065158878871547797884189797469810565300902654206491367191722578980714175895823432137191411917964821012589370957046732851092910330849008600743990884166180058280102557081138763710827605003396278417730164267048831167668840441728851147554759414095631474556401285461071569707198280536313411967146434647957531960569686297253592086743272316759566943914694433522971094781514374817177491394635037231931216835316389119954849150211517651677265623828237806791336920957565637567914865138236616204226327988459741539791593515217611056168812428983589884455321056627908433230624630829630388628196392208879756491092457840576327019794146860752264360230332838909122548117892957073268534960728524964954093534526717889130940537038349352486035541993316686070720516181215313049699143692101101104712717556032336118354258913611384626586286217795583510572671460008192531836487837544665712917497220388353055692454671859311308856423990228972931485278212905388204244033331527916626639491501849065463016769646110607977016907485811365780784612950797906217071272688298678390189653767626136953470224917268952378320459729505434447410493592233610421779157598186524419466331219436441256956674877429301612423732183348984353088592531962393057145129311768125136878975856934824100013430388515480805675009303757809964219960915516473903028213667299957060580341892352732842555113895258774972790816997945443192382496156978454454276831407788076102225657517140331501463109705266144591174313381897829057741304899253337752560294566640362146889718016885168059493308268593954276446741652110329498986477926164748441438612811048591774869700616487019411917907786675452186986076119845668597756229646948875419910175310823510077480345935529465004593386999975476518183242087310413997061578741803192198899870180820394137331592673591871851655178529483434108870989537911614832829392180575494448919655692753285681489224397526130870836378868137210806423675848926461462652829750123863748291921459978883831081466242300773239726829859148738924620121551220276211015235697184936023840689557609082848503913407964537253835938390254294231070178642722931832521265344995495298798607389885464839515558157939616560885065668687539002107303478278592834433914702884211948069919316314755205338140506203363566091962030429418467345493323725171852184643649673685014858082512009735840200170981487090678485748954794088575673327316822047817243526802695853785712129073806756526387438788330272225547929134815201645640305260082006848893426625281970609785764704477980129947268336389568101527637452098502459105245653291752894601755142741158734213324339915636439874698252580430152691650309900688322141226929535530981053072908881083467939520447104624155107045651544501153902553487410444658218342139617138261505423504151315803876264484508444591667521073755746468336416096399610200253622492023583860733543403298615617366025400485061653223647273720520077886145652790114878757393748511848322401560769905930937120556658318626944410390133120780834273570115306805627883238060681927344999267527308740714057564949827294582568766442461611385879541885455876941498144733722567520646541609503101181845737216667220998733455351561108885431418829299990778883464133599504686533077839469042261553780588677704946738532469162362977353119085960444509931805157589246156850423164487308147283812890729883157644536846078226252998793340619064012697212682259447910986008101382211031061546445248584885590566289660060831647709795392641881021801478219145471650991353264178573553977832146858060861255369674688720662715381037808701086220731908494738672629803043948666561713849253351791789006188462861138360171505344452582606454057966779815194009863099423808104380664249149914958060630722428666327456243763348569679456060674090667035820806599759473241765503264824351983133268216466150770872522990736861282218737604918253805578010562532087050214666220271437524749083449446913999083537103421574816356243928612243134605403605410761999639679867607119488678043185064392318755693054352637870342271126859568644387665433029320550662648888560677994928573608031803123900511647323187318368483883652326690163621513274519295251269751963652180106622538824420828713988951862719702156898661944839870990264226327691864904507468114982059902749089619037180862141875016595431392623810252728432409916572060641398629049772622286291074772683473817378566757891577336354155724867143677161776575655064371032558413954808952506272468052511592966937040512557744312694861657377600714732152472675856285136841580680415841535829818857829975274330222872452748891580707294045061975408889714784963372132474289735768185772305775376012487278724662811760225451915050074508056579107449384181841188798614749619393514735524714065488689343931677424547604365061325683477117487736465195084625010488437505076655281288194857840180474298176620105131675113471348564540400811426949012718603886085664559094544128296233434957707707470258152424337812711265975387556815610017512457929011115573256588527982743256366939648755037083757730149051741640798181830476291419998674762791971014644178636659314595341828219637038242719477381925774752572717801665272049275127340276727035980325329862968845123513411419598176580148914199591605646594375970650216109335903877860628482086675349752826494826130472608254214542092608119158735926329987455580891394360806493104676259518088708809616607711276356177811988945523374058581837433257963593602647983916096805306484634621120553448067904828053927711925624846155618579015598068746465547650401418683641834935505777956483998901189174915087688370057508942813041062953647101319639245649519724374192680637972360760553143349487323392016135442138456143977133305151728901717618964456773151595069256267580667955546724523773335175754426601626547108786403873746087955946769053980754674012957483653990811285343978770420179056698794390270634172470970217612556031574910828581899177454613744212473237983017184932678063512519780549178045445967398251896404991226066132187117003754182678542675872210838597289032596702794379076759935105855401423861926844698226399179758542681510996263136498163154525673633857127840860384165694751221221332503674276873920263336983777384439369778785479149804533136141164379739717291476537199323862093132453242327413974270843292582331345300760387983096251583107476320497051807227416955225781241717098645721529500075137054749586141353121575908577179794306118591444432070848469576002152033268518275760849627265850264415147042148987220473667340639093517824669344920164270399403248980093352544153883901093546132791575151656246246863032019102846637701612811615720241471783373297287857990791990427526819385913137757405320050439709595665746104764423778826484017975412584908909419062035749060483710272766087867867260873133934849278855031774324818184698021523491750192923218820457130372925315902749169571060497665197357326160102398466738227284934748932045855395637899002253956868542310718387887735421011010487244115937901414868520463704985766495799086623262718433297506893047034852747901032270998867881827327336795716003670443059786468914090678157544306451290351553162237875461019344138035711738761015211389865281885631733645156403703403987458964782327191740458392618046912572636095760470182021996822496650131394772311340649540543795736534665398472919898774740913906912013407918362535797121033677237396032160343951375843870274365775435656970304873467623708899635253289211083798528008442711532479949809726688298376006439504218886071357173387651255822759729964055760663649768043024951723300959717367469531218050585496578293396321602820378798825200331146204740148376766671252937356034166503295159095900664113079572158524451045262689201937132704807619834390046108492321015229542711862323715364232767054741680233011539700029621370272884971436394680564449788257220360875326285912786206563882324450826697729170312924596766257188448390914627576265753647073800923516817213990749808704053798427366326359689448127802599866641881523975019904956272441755369806817075919325011719625456423548841845936742615349820872742723378019287954071043091705425027293385972273748627429879018868411036015028027180337522582100626404602294752977920214053659199447224182522675360035120726293467110911425071814619201987975280131767270232040265583707961052948290636926042653878381792778716735958466260168951239780600473363691269892082394667660267783562861165457683686192411338430077953296127232611393010575686829393087816953114275031043625928746336773520567633710559349462246056287538241560934904047078218289985346265821940186945103416763011139084991048197160558070539380372139769006246519642364972897960644554374183933481534298981657639809476934236871788582149511083736531086046531914689066540918680247509496623398192108915005555333916810745347355412255817668955438868799029474110834473093762555612282466961760759258623357517228842180749282505047228810321986708850914127441976961362577328169899348302080501504229407493905290425088509870000783912711957313144855315834530634699583878533463465321019874687982708982860083471576610256617407583608392518428565132976527702513386206468346702670701465998757789182979335303740787192592461097125178027602342391630082957130503285995702360543071306494194782976805076734927271975894124263656995510172474816041071831876466349306162978079532267358665390473455962393129697413253897054704385183101774065957849513344000348115821575878012641988774265990083654987867020926376441707819164980273386324579401935282167083278966090609253689487144277066136820815591176388266030061062101835661459323765237871590783228163725967208829303950655971762366227587546975901447801918039565775995493264648414136828173918707839439050098361502111360403534925636220239248788234196359333816815044509963516227385971523620297032883776567489600496119967702200580120570222551924900964607368323519773823885738601420302789438166359154749420745192540298389097119018916990802936984992459170606879072357874088197311931866522663825970553157280082100563292123897018960628972322117746005332426713498869260908240289414619156503283882428012984582811095985140592135405822564394527955077463514562301558321978065286525315053058216320598896287389248847165807141809206450879914004081088475422056935273726420993612632777507196240575958610237224825786122687421957638208156232670700387148475685461003375331543605208421972975335014414318154384089124654296986876210688182768356480783707305684886218081066490748070819185725880239197181373375703744190945314080082977939441942246050561883705162456049451560730364680620157297917283493926013918625144632311789580357179665134962969201161120425789497586743302445380985757667232243861546294771441660941269153571855326557920053809056627591219070651252252838609464746067975815877152811269544671489239665422900768862344172907813861116069923113327218041846330143829728332442209367332237306801742630380190284798887733985693286870562403280726870257610903572317844317154109558165478307195606156458520340733830027574326893222090303062373970092415549435843145109535469831117933341845561983427808662832075296022056037711547192954122021476044184562318649300047296297417611480805326374095397213529263739134153916344414669180003942285745672581518145560795034793528347143786973198937747480137851196064939245703989007462878399345612363618694345941538392274506941494534531909411969500149470914040004403431275320085500783301231196953575986598787158619045874373270151893945298195546140416725072756397878167593196470884357922559610735583311388880579086457898118635102163294108395359634970014475565204200244198933944913330612769870151724287114762260119829646205946266123900371024253284710015890933506930044492475916056607493828955748883775527968245775533842785132903295235295562797420580757062344075908183160846021242789943761378198282479533570997991552807669309972754815271245151273659298987482280842955254618740309174403136246035908037888650215862230352546756933270923279691449284207862490517187800159536555051596735377142142771175883442634427257222032966683521413121538034812147869523905788982037297609139922705503533680308293312214946574049146937236525917934882522299541115208188640895252282871135446632607400489556619289370417527240514001809438333970618740478417797401919471756120252309182774102064389135204015869731686571533968449979258061219026484291558371672332302270914588897502326856951560448822131415465999973407261636919104856564353863906499774494855245947348406356746914471322728539241816728361014393009466136367772558642378714841083945594587174584531144797449005669490969157711831822310411268516365506052633043434275811605945615078135747940676263922758923225327145460413980335646947682125989975727820302239438681173895500217076928605179044549404581889706444420924434104518769300000714778795589774808326925820217224318934756326432966573698564522061384232576537023591368765105665963544501071387773671415841099694697862598721186936837755697039534098348158455937128346922733168710571173233766352886589596434146011680936434063331898008392678507648276948771786684439875194354194162311801545448859743714231672500758024441747505981209502480273619679172159570532795505795850821007359865408872546766117101194695512243354585898160707857514295644335201006698981974153717303881942534045841457786741189657667308922962578779247458093237843965561286301569989289704413590053313374631220503712674003086071252163713797865501158253362727369712208651537837578675453181522221895031738567709445717341450484948625506188917683096439424427651572174079038893422273221146390837553051867137441833372171539561732955170576608733283434909978155458474697335127783479715243451541900169641300411931022101693508741519026844419769246782022292264525459204143361287356041267381223408490593127991881074343523871846414007243995316743978197535824889693021120210794625621248697709462204041398888640828178043768570263406970814009278467772370289759917975007799831308150162838799344268870044544600950747574091720712188992382712383927251943604869168915541927304302796930073918480570819171849838514220917034078167221891753120840166608084476892382024272389265845623844068343181357751720888084685676008890266883954332333213143720626376372616920740822179349906701490345860773973973724841301752575518388784437952965070754895114555632418005328327350073550815472631668395420021849245413788356375408568500991402314702359252274867691688901265659501640214616068728357759892270972346897235426808026390785331315052183974715032044058879080717902166740871331238511807346999892745024146648545036809881008973378912942850110695589932914665517772407033265236982300279606621825348283799776531231324829069109728996212771680772319532098160808854076935851044764063704185503168754125508802429008220595225905436946379151085952196540847797954371874635022431411574709529418994246903491829603736731221745816533262184004964457244408799262038102472648294942022108604381472752025361499799796538922571100944175968143027240234125975133594290213377526990246333823047581328443420399448230173556067582519284891705321767586548254770985075145429829878294635547462963272410842755907248881552833824487543881115685903206445427385365519143634247455290116834318210999424144786553858252180628437007150492993730726294031254846973387625624352835472466851117797785944116749004931152326513976038433880291792835700900997380971171312072745191468847773777045513135649995160780041477479597180124432583610401488194580075114088604814946818747151468092123167591709994804230352556502258418861675324467234652648057389483612112569234653219679373382073537210698710034595008467007866329078184829005938687312142456930533988341946593236923354952600963615132491340503278163955869134438866026993194487941305738561045278263817019869082169329855753393481608331185821125251285248966795554508287202608006313509626206079811833018126077923873036183797107773286903182018352365353629008300545663429637782997239464902012785055386251960033192554533105408610843694843233906853859903172543320886011628978363065317884460233394576652306063026609852351977899091283963543151867467774067560800105051483038725116399021992918454828783848346869660455581214114917202213846735176010334877641038692776357595031553725446775827455429460337455332917199358030225162925010631240985895283021070275041278592275213699219454388604989939325493152094339223973882142155811856801208747489205148571251021034362450394717906586229885957229720765356886329646467949854377337815078159988173840161010746786656103049947248331993339280369000172419212495628609749238013603749637664690379240689311940021246292428526008721150758542712776060270039839953107202274410107054612008140051275809031129032261558482277735747687978396884026048768074917885564465099712501565743309577735662689274924539502047532932929098877088424224171567200653637370811066674975958044110709486817976639218294284461268073317349845060946509172784871742187248627838211640349491441904613879609221752155280699257389845326813577624940030047009558708589755025221026072254820099609335004822903898897286908435073362611073149685282184201501048858039838610786438646965358308325351073277693469226144268210781698864242337125480312772846090755017849154720630705075308041328994287699212541645987030572642343260653761517545214921368776664881018470229635699771411922403830287444018418584345198414261813831079743191008454820074955177221299366985340892193760108181528971647362972681602809753912754809070790690725881579799370228633578367403143996374393376475408389522084195722602107041287285915645102483820034844291603556403334921587827283022568068759407111333014208630272175818339065369906834385457894175724196195517723232443852213053651216763785135726780335994772020872292822285233683970154597710563790759797588950642706846479425398047444253384909500347685126309819880282728187367717915455093957288198943957243116268137233615090298412041273933967964070289597302361207714606836876514026525853057506208674165081864062065519254613414210963378492075302223345227552063452026410143908781990698427866856076907283246460994381443083567488547503120656998862563374033589351122441550174648378225577277966721670800347306988852952429294168344559770712434541895051413249125930637859504465485677379853378888798193221708421640996341604721742256954036509668952526653406002049748956564241194994769906901227956050690782238874233106297760036730933752136645058564804645366054026624810939583079131866392031794214742841906363072103080466913325065570197973912607058774527245355034256267043236081981478539937598174112434877972003421089625042341165810569787575012929611579576331493824729620958214304409775178573478276396339050021981133978470728465482971277771974295200196083122492461598367465222573293158548254588841735993525176528394875210518068058471798100846360559265087205999165760070115953407047704134064657341834755825305403961496121625521382471304764980136320521357665665124277737860158007278418121707283002390449276478822737678956676668585714438798765843349393881842400718337721524856526890283616587247395384617485959490462005515553059674715660011463502014302681080245840872458091421296532605237829993755435289240347074777695912648275190747393694914497267325926204689314709899491070553578340581420828966732507938845844730423526619173753616268925106324469561836990908117566835001602601534526224208753873845731107375529943071093562161963754534123477275285898544291309671203484292119042417661919778504660603320955347075943858275604410666763097343745129861919321008520560887351845443186077364161521328173000770488580656230842889500421800841397210939787425908125638598473008571791640829299399245970571058530879739077949514534577865542698879565730645590261174409307159101399950995252639592164075090476585704236561634166311447410027493599348493479636718438581660622856921495995046020724512875993415153140347728425612718145017158056268227154706787919313617003536431619026260773938585362240105279173784901319561156660128621275234966947732121025604753803054415988555678563620493965114610122294823433543013157304000467129957010350833604995032789236561974564370110447836703646938437117285593785562038780074033968007599747267011830944516945087455075957389219990630139215578512235022053160478279114929945087909835879369210552318238140454649292118110306242547707809823614530873965212952658024244822632399338925316064842354709540165328033787771128542527379211316603302047534587055213264839243602176201134255947011238182503464469381086706486202191899927246696075618273201375798593745441324095404895562888884757143859156225752830179030678984397443775843248840674691298591525806313193083707212037134862308957545360500636246620967883749302968527029764558863497583007063973567069682835946849331433913419134836618991389181045078738544290288017084734592004916320987907324922730407276514749367735633665259443231110891897272111192542513128285980706118786443915468527449498299940263941773075658208980821585566809462228214062267912340195969671383741041470899937434299563023081759529719281645007806751372114318084161042556220993278320080106125087312225189933788169563414822704181836031097427203157866666191520160318906024008321629991042466942320913898701180869921842296682739644646813230448499371421251932529039413854192001892372077380585001138907023742146146654268704582214071837212639184859397012154792559064326071476747926569792722212240341381562148311630630372740363862345164742049177701944831100200319610086556572336861459428084373588237138278434730146970866972335899996313351658165332061782319763004141598006106882647808888800710793456999772669967185374728434129679624718490717456910518041256626876737200914473569797711010211318263104321138754706039302820906619899696587948281786470534053768150122186427507407329504139566166672946938002392151261093484277961134341261093656227231840269559377044417748157155111626360305880977645291382459449229561573214211023096341180007777808154403396755188707054253704850486713706389337937438301941464833211236325746874336402644560633736352912574399600289281203064500136108877771553045470901818808495018893974021229217578941609044706067333970589970634690436736170525732235384656770601445483683946794631876277340651520174515043475476653585397154609493483057037774322221503779344117320152161254502063317577714540505652892020319409219252820522759485376210673955705954687056573397041820051649867292724524864780465361256226493293122571573239282285321199897835927350262761930655113319620729520952065447448482654456120799318757095493878081150475060577667178091735948726648341027725641264435856674264200046341348894558650461271113546834061278717661965545672426170519496924038828738662031649070585528995681642737775935335557157911824835408195640266512863942354760311533470297010966859036624214082886927376380718625908569793169423219119241406349599293664018482887800275471730534482766106515651534401770079727161341645514238549261986064743162648712192701583932366557197853799141739059501421662323659974274510635617066262185705517201409273726688042463287320059006724269197224161916913382406526298018361375770964197612474037818810187766433806023081104271120121700850804268736678354630158711295872200963043780415983973609848165058172630586560020768752017301002650565636997697851158287393707764428035028818803941781364305345704797228340843438848417142047621665545767725731263991052654393724282085511344143188805795818754729095139603453018104937259572380643890783120522911821025391684535254273794238027606258966122794232748090919752663978329353662996279396600840429219010920903040999043376095367123544600190296258160267798263841407454143336612680123522444602153206663898361486433016396118185523208640892265945827562921683565837798179689526014055972373110713992613688232927610092862115460309292785709648130277545799144355991810288531214709004816276827940983479086107878926785875651672827392619969814783742286380271583959870705645405193417285918152980001855700345655061436302137795896353680281231745978446005003856059600825350540988991952282866265258155127094398554530010629205384320071819691498105297424466236205728268672633560147806268181000401514322136441807839846385989208277213029732993040348082456497873963321864227639028376475465318906106563409879955923220889700014267449766406928051363852765846368464723568314422355678413825221448745751815004371208276819639907012175621587309238897076251288178752755578403128448057237257718617317420930641319358281747679866542592600320519420451139561818749278622900367325501657604643387887294092008868447583789314828445286814510341880346266502023591294134614118720484752195052886008699095267016656650684229414863454463652069294107955738008711296403318980671345946959780763145556755134877548498725037416107359747206347754010587330242668802695390498189501155368617925392342095344865218779689101603913541130228737352501110094121306633337498685964668734166105105124308818110135601613900899625499031554648033381278079715734038925782437168327151664811824852111793498062636512710506832569658973774889408064561614008929175979370639367368136620567117227652911516851014463272667613439145082279806704426525655686733521889513897937442900747898587876389604689473926874728497828509257538847169541297812858625865986474741911883676217388882243438130696078997048298899181465623706513426824204061633605660066258626778841200186112376633758798981487039664125646318503924708861665307345381797381121554482156180328062347417890860105994376844425056758462127023968684456106502284772367062738056441850774639136539060211784646274936262936731171224210388331537175612731658567507290004783983505123634265207055336480608261723116129895809618286533779763980340137304487160688593105412875462478331912593524823677033573029638784289199560625264337188770559631270556785048009887739615652668883880815061284918343679476951981389040556920595826675445015671383831506079465741033454007636473041514728235009441361910469502653955995951569922835969443911391612170955253904991763343046468159885992045042598190320074322661807862701497994025755378610922913150624042230161607980665295675855473406104382383301436529058393736653399008074981707914662271435012223741418406944541815945846424783269157287683731059041973429238628862577651607277509653919678612913256164948827651177561128689415533620115619999483215256634034058830633758266792722848028103994783238875236420781636570082212162286778917880731268493285525103940661586987742563470196796582934702995873836715604636607262158693017433071120195045034281169417864075928164510055597919718251881771522204372121258928506420610036975956536799017211873743612428609986357952903920483516781106479413024965323977923351685864481891915205029663190258834007140736370467943493094665984277122653649821844482225474519661878966513670352849224257798131832503807925043484401481386634806585584504119473285673206534430065377308362046060092926392472755847861341997664548562588144882503584531272909536063578473527915910804461012901378303522076818721971782959915445447500661579977584690995858047042487176827874394465622984021405239762973115468232588126020489721963880044152224347592608417176261116199801893461698661975557236809663950062451612790436338207293743785032240333558079386365618364575787591689369932017532792973914593193059612946209758076378541596126588800099164285764807821315520704501960961885687028303631787741747224845745389274178871747383093110819377225057737762153415477573771231902240993894983458062737133838255648600962320589725315679990089356340440819586648418962540762793665519443985757773540265455074281395515873246168341752177257332884717136139237472066840686589320532668666034408214024349632587100959079864835511357284489405911283287802968520971162134269967862610052092293483747958488762600713539014276082325369309425765563793321660629122923925248760644368628979242388980953157021040517411950451554869233751457344409772608004765635347226671247470254722595135662823410352089379535864764927064846482067094950158851053977799095940462895335408607633134641141110462025811488009914001467557123931934849339433160459723144019946302606571834793176722779801807766113906799826098264634499927537807811224248472791892408393812309924977612836562445978627566043591019197919271061575849337458438672315589358221568617861947802166370867051237404211196641290202564747701575964966160531390687310818093944080488029107995779906330894097802529485252097618851509935860009472799040173187261701344099618764681865336404419416948473877857126087353077530155460795097362546650445004088552331745450976914032187225030736672771538287660622486091279183090158204666106957200154365356076141658313199111874164106429547340724186548605010796405663742686576770856737120726255526464200394739440390638313156807835234984698906699832259607789194621840236762489113308091345707155265843362238709419982278479473315605522374656362838673848756994393767122976453258849223568448959255023532623037273414160760563650917880671758475536914335721561339810986095508817030438340455210205276858439437646759123256219264748076001828973846412536559829273383503503319718331757217409331452790507682008865420290909148980680935214741674996944478712786170022455401903422530785136413807304964207578344335410000163285451193333141676545189364933780546018888150273524710222979536827013225421675103153464494641027494797443235457717017359587121474440857411350767461316361167981727680417838559696483719548479236423916300549152140501035797152415945481433849972175334736258653530630674208728490759105934048160564040626598744838021934731893961050366012971129034289313805532521953907723349086988443853026450124041024362915783783652394990628203780614621149278125484201903529618883076172666609200461846179933181000751368042266689613242380648516887281597755498270815432927145564016366914736180200251687094001465879333398296586767495581763027285571091136815535724242788530225771330150127453510889626860441066634585000165775447526642548619867444652733931261018041406047018076010581362764893211570979844221943579952694153285391910839968022733455227504108828989619614310974248203821914533714320948355308412212068351938310869162794893829783645738026654892041251609373545301425528717461639990576707263178895729582917138754921582617026811838356376296734898473187271308006432707078886895281784880571879225974149043683464244511437683350395288316901315383161839193949000069518850048061897847918224853074097385408380711143766199743350146694438689842041470744289730466937378329026871716367566239015753868944116507925938134172259990112172428442098073688348348733899659996954972004346779296029458955794060595129182332743156239189595453541349497486378204026210279650788634378888749135437860467120871589290369775648249526070072902787523687894705418098627301706220696843266147581190097355667971213012353792048450857811190834189422855659407728751731677641358243447336444392657229989148631033211586486164982004966341316627210235871776557472455065089626593380776177959241461013508099799205058698794135797629732029723646312821506216136137082391559616117769326207670650899885230812395375688184822923090044822112712447445813392969578956724348488146227266146297495787086275052275490867187906568784698518196942609855697138236442469656807523792784758570784845066736485653618100731746532206767869276318750720407722171352233525972367331026605374686722175936847411039020194488421955464002289880394293760798116558082292042751260347205781962615943516118171219035991754639524365997324473590312266857128807687782337120409117757054572989312011869379723304768044952326482300523066143604871019389731016673749420298952935929012642706539184013480943825269873769292097227273262690307985830991288324757014167713267063878987743983382749837687202374375373744707556207431810819828914231910032294504021478189266400959433525124968167640499722392285557589237977380162738099034586402187069577862498924213647204598977414749289242052220904793680765260105720291045093460302597982734237820367813934252812797176929858960665776109307261262247232228560735499603284119734687175029160407426896822487207414610036787874956603695002900337929037780098999078258533208851871732810466207139537135615822958026984830176061095038986573595927239759960708653118026822113353850646996601383285387375466262982307134665624999112740706584800484858901366176765182979464325793740063210419305188772075935693997360981745665050097310241236504985184537572399601433413573218700977881842510324752026959073298902505387869684594670136678183386740993173766192440206140778000997952237152781178540407976677291548661561786228356679849596980150954358990449047134760716839842693558294141838633475693342594320390198752550904612571384756029597335588626850672241612125827478574488185580256541551827224719918996289635658592178804978707079937690686605503385700586580828079032243702009944360243196450845514793057202125474467094512381645168591493077244166281234413063714806171774659246988053007207560038212078019308165245306488980452552020039177379169967088532514892559506105283308350263338145000765899222333151660717241272102426568025419632269896033723116609736782473609765814823446615299473981632152164220058653442134950765040319981459039306577658569470784037676341745603782149616274562982186285517025821619257276327321949910812947289998214394332237638480098107663624844120831083085116551808553160232709409781423427486855126551982966131897535175007168911047750542540160741287618247472871854716893999950436507619082807081892375194199769801011606696869002069297361750276912742803028633418639246988663938028980866943346626469155178582674726587517983228998374421357467287959846550502115543033157083952066745130009278163184628899003899688190590892250629630096459864013396755724021904306726826230496663722494634181245943986014378270752551662920406349521992717844621263959934902090263473820266038161216299481305048899555922704074827233043841656131361054272234482789285419760801314208828114011044965318900624860194299775570624044180309447364431027361249128593518018581206830390951572725574956778009763569136744423154049645563916524186730887519659492544475281752232958319937891150873399013539655418502649266174306706776897047479387489771482317495420312050358023264928777527249242301088606495700606063388840104580814998700115465615117154542409147866548163427445705094512285110922051924048574687360091792213699857939413364366196948132615038645109018406781774711534453225110039160077984373482343380271021676044460379647834730652421402969699117448560920594767433809582504179219780766197434920481266996366502140702460740241636183416710280590114773290193816093411946876003495290225090001097043105432199438425441193674818425434398805323375953592713493416724539659340388729538017408800168584324352355112034396458154136508360311178248279912274383765806702774653798580002791331104618555469611149971243414241570652354625560726204113983603145163816476644045618877663403165793761988889050299824063835302259022524690074457309337868073763306252386103659813856588003836555943271103139565637108649560559584888470275707903579180396983382081178382755579428427997089033394764095167511420227812715573319200220381309474806435788229102352335509521539095872344026925262563481634810962951522418977238951743252103749809211361425911035432099777262982530292932460873952930763052379407148460179019030568057897736312367142614231251285191931809255419692153969858661961879281512836366382882224233559339918479340875258945753638999723866915498370382368262605130208373307450407013427397543558601119837543524410445827641441885174552349113923694043954121522719871982477498401138769045063738004169360472037460174215236592827008283264310011912856090292786895916679459135303405847969770095977168699747466550529248714713660566713284055794700155039590150567831020068632572071897206164695111133393843529394868681869782853162303411455276172284572149889032207058995030032093862238299211235902327291609562731932015434717939175249333666460365952258072990754768564084908269637810558350222661047809524424221986302727320565919726705034770974253206843205619289631924603665016534113231401762826263058446265077267335703480589177529566252848068292702743769866118221277057447690400439705366051108006259738590997634049042024012794645269226268685086722482783665016492571536634845137139960156593822874848045058888671465479120826613952758665143505903783958220771055912611189227169635608753923460699042999055126987723358175338214152712932267418528953129175502092058771342753409550784713396304466967766812239237312573625348530059747274435646081338738778777963747061774450174510241050708307765709804531521587321015862644841407374907096295535166448871552996906053535672518491164866222556485915229265298336819344189277131267277665438253704459341861885956770565309894041295033468737134543121908234807336015270442522346687285877383215455100525929516059091387422285145575243815303718071993525087940331532503540947472622152744183979328801832940558339310641992808449551292603901501663848336555028543094752717327291481180953837835491936701724077640881524779227253141849701991624236454514473703785208243721961126847579501275029607495237630093234084511400464211155927879758345421839706032073581178866918819568771597568239404383676578913938332811154596075171674383848301610802401285471692047891030666928809302984102016413492615411609604957249780340638269237391974417453892322634279370613145230086352130632746714739127643056914957099507384582812605421364242663440234795410339869445951445172656254517481027879283717286997662531995320710711928025126539239638496588059130207861078798250821513095501699636120220694719209059645618464923782564780362916046245270752036760600760446001715490174873173602215231036614648186431877723443490473795416504620252823572565731668051159692447383800638899341315123598612204843830436504979018792029464557395261244586781546300670325265401906395829723805413517276978639445074560925993418150525101653987490415283125371171823491489389746943278658405410126851320093926917907958527366700363985131969270812126782667978403091686519180910910013307762742677932369074625726052131293627540391312363246335230733571610799960816794689718400323705672654694004748019923517967194637782364198997841769096967768482952730420714430818265013435499871891109072670278609506280772929869039247937508398194084422905624907351820120391279245420596659842502995256360758549288072326292564107768741045946377478933067290618371902582807298230803459074254500870508033732845815254441218869766875731574601460857637979582165876597600553670732418895953606923992231483974339757412272068805924413481937664101466135935327634332261291278418840370427771430189166054013324956110971527596376665759735322648811247908016326825695645801562007931359583957076495436204894716759169656443958456897240951783566515256174081170296599474765712500130198068203880053530567016085311088925697195062127142771357689431683432119532668960121709533131548924223114576388933254374723226283108715355323917719928348408482582923599120090470429978131516006327101819548234654862236264726406179644911915277063422568876225161020651564088492114249413490422813605117062423229606788773073882573097321450628389504118049398070380189617643419192083874375999659350717357297898605489264025008779593430493114147309249049045077610885020719758818502428678133570295483968989699787262366284746477438232273437675976811792420371520634625389447876766088147153898338887561953545767873389865382054093447875230863677439629610738875162408400406770833670578524169861619465634395562997020202556898619248765507077408205546301113862450800159922509031554949882332576782516677731724180740360893729629844074823245238252304823880011327531328095925510293818915401693359980481864042908767915916483951761155374440086062606980436467351449789230673681267402209993163391470073357810856956993644162965051316496592607258973812431957153697942093365696383813508341352394114469887078792316216005985098739653734288955549549658411551131284364513986786318159722828389374972303939130911166366097623156499601088512156862764844556712850112088940743236235648077388954193918771194602871387663212542256180691813245246291340330402310850806834120957331161806850344526918439015726559550676539105609886983289219349041744765912283867275725139133283785103619136726624935384988641359304672247363537848877645432395481826814940992963863541241480896133023012295465042890196325699565162334518224060024463531797390782696681396986806133044924759775831201522689966741758038527509309321762661689911447721088584877907091303040936136884306934515043640173080721057989693458876728096852223317755393292381841771408949254088403897003398810883762314170686791924697163130023536762583243203660104846425975337218692854095144063092309929240730242888952528375002764140596820655246832906849986844462903318867926828149851758985340063473442605445239527109901895551741497393675307245619239456180466972956737319116732278767741074150879994041057867602155040711165234268285588598113247977498906942502165827078762306892411160423507970469526063976335534159295091837268125981297586756193817089968145982140942342645366754678974697456561524162199841207077685337877113746166977001150513649253318403924067099925232614090770295029494393253202611114392585691815074171235254727627916857635772967517431807856736496306146583158605717841289015138950599562191822743829196849133123153200166814539127788932540134050291632931084937110570174038742445907623898806724932887469592977912656504654543644875314891867736760305086809947269054386039549251551413144111561949628804324910689076504369578742224966700808562400807463118591755433228303003462759404891980125265709145800403624171399089775153562363104960029815455231940828922189555749365396769305619983398206957640163817612906134079646508497364381980693691998280066408310062636946065328789923713621240704818666215118223590747142534832355765290122588676209690491634450826937337000743256427436713067332028554801363574959518049695261974432761840402948735746556249725754773925807749827165951726415018922420190573470873744060496327566943848254615020541209882632749391777523340340658468209491640035238547582643168410226399223565339235669298510851159765614352055811345474944576279708184085377850859042321496940585881724714107659944733074120289641591936427594721399048688173253262536755994844684863056971298035294984331778427910404825783688661726420399146184287997813064710108881989354646423187687737921052962426365747076446087808913985182952957656026215976094153154324615350565758801199096310570727007835529363445924251598159396361565546178901915008058509105305060046300090169731265007925196422683997132739137347429696791650180481930892922287868695071355431619525716518076449943919640219965651463561309431666668303512017613488053380255942899951356572090828668234186957289901574196955428739488843468013114821290209007855344755902169846843545316303618410528750790683720208812533308660249415320949904073858646791751635241998725103070862592494899748137566154113280506525104500930310048819975169162040471137373463213706839400227466427481622128429273190712585819234031859720050966282494719828806681369753104328882176752466383242237464696443057213571339376249514340802694593264634045929527727468050804526799903529760295414503660159578220313318205488044827708432059963500684673804658603218627790721668297651567565808619299909194245484417185536142358515461048174111781710992815469454364458138310233999249847889225351280074401807133728452493352795265257424637722804729256428811476551179871403375287506312585444235351234055432823131353323434890432365731565119626717860786863748265986117611656089474233603404828566528337339915154348219467627766009877443104107237894185825843561744440528762122591342487970654643325308352635067205011588167161763310367985585207704166426959179094099125029445739633524924926926379755141992289274614928172928082491872474301121009587498595962765382086318927510774461481577346443559894032498482275752651656994834656480105075368482340574595219294682147560546706959731134977653822568342551177953033399727922261966175198553729573498416761416185161276199835730057758990834360928584115191013883260202454879120518887108559327521563005279415079251106215723955869606526982164542368051799758004727576147684939305256817364310057807408988540689761913009670238704329030626946995813980155255816595000538916974946675112044707447686721133536460383061611380126662529688621183777160911636347372572950141837597876259282144830132775580707887920290985501776262922332266633803010704345385665982476636740253406952733436303772338908495050237028394615526641562955150830665015033922149819204615043064553265602058394526172350394427461595018500650651876517759530400657927124416657423263295823798905689614278114604245389456970103739757151787718691629001063359974402880641258124399107892171590583944222686367960240759567218010663223641488114840169150144875707400888506172821275704616120245385402254541497094476690244807310497704817660054762986910941205795801323032759769986156366385503421730164945628615081103749074484011253056718972307473894156466248539244600463549619085947283580845914717640128358288853225354625389273322569794181123330414019128435252566519833273416267901966651427823537016041752306545180814371214390761675355292319756969395727816007736845017162996663012261645472614309801570944807215009836141138184715611848012492582391996305670790704622276256123411110103196670228168438532393731808718878511933067795028080853240364331580600425260827295219957947423211253612120415974782882360664114479690329160165077527267848533696199907715734290333704157258808712661712026498713516795724182010407515588222649649795841643444370133418074105986070877236737170951282602582821980291977950378783930517528397351395326781389188733292049837085011942062703840564989315589077625379594567211740128611941768574902460667950767479842191057383639766847694248237983325481878318322725710547729938620667058392669279524165262059038207039124185630518355083900041749060718106208123245445549035200542312270364640968843540245617649206255037774126775959601002696248377267977027866443506135041864224093833245770458744836781231813100647478567783074181943527801684696553123515449010803436440969346525881389882740252116200933170137090855096487397655202627046843005305265352735711599502273601805372807855397275632040628747216962515831885202492536239004652549464767038386283285724453415370638017754953473711109621132923692348318414645572532520273848769456823098246252966850644313981087464245867203352754503611846835035663362067665058391950896617002781582008996297256667334965897937832926972989366158186191761304215657208057704424578152721562462544222388360887336107201409833826473772243945717489156940271998674573334772118150277778650672125937631468636592553904496491497561300834733101509178024008859849822909671726960118402401975947297944807660780323722442022562058513873090478219808181558697694490665512692900195915557121721050344445286954676707827921016175372553663080674834098850713214875637943564030369046758853275277762559797351444474238239842253048657117487267593999197814986841195802810174964587485376145735208739332529405783917726985470777381771039876286439713466923274963240280054832539650383446101451622832651306136289540346953828488641081350200717547307216454860085531569514504967684850035451164353671631324158337087460445604730072236888940695179891439905229047497839856499346364305865336275261741460755912729486718836921665504568812860208029660405677583472538653514513609022956557780326972259282954294517414727514947291833982346917359150630399480618688405258957296696487087465808198337028069326584549455996570587333102715233856930528848697264397316729177780158812961267708261080677011072397857497983047133664120047835359248175296328525495758844103022841349925709548692700932639114477381784215191716634985662733953053746462694217469441756060894379375352092937185651980522648275459259356959252093806733132907504700463031365778524273389484661804796140696862482043725320434273450286419843903882448146543807776015258721895114467689580188041264400181545422439176768676797225912333582730298695563861345582724051539975507420859910138755407537030591437400738365133534911631786174597791135418633717714641500493785490829257273698524842784811488152715102253414093810585620166559435785217419205538087334379583150099827360142602620908276189845964178538495741374612682268288473550709738530991837623565535338124627158683400888112398028590977804576839059187272536063276617650142531042678485541816801120950229434965295497590764223638771348733965675685265975277202147952940029493578879271855011709683772072236244311344938089765597412526647542268278055922631238026709724337153899784843449269996995159459207340444220653334270987928603848457866789130848573630309212917551050674484139320536838607599583587237906669138069457070166131632989558258812888422052698509796160406624721332649509358639909723172071023033386907227166267818380742560507647756952798746815014290997655900750578755315405106850216501873803714698949677670192788885939379569117303331420563190397047264217444080948906828196253912640315271421060303441855502880175197606199090635165492126365689989157940687116609664764607558682811609958053569292257648829987631017403870773171408631823650640480236051018997200408504180922741791466522949496652749914656844984537895312042384201757408472337058703334542552486965907733111484310909574244781230045427014125923915291240526199502361663293462281602019133088449945595824253965273543547525404901842286589005178108394498261748476672247119030918363312008978306377487188813527509577647014456156207624025134793403608697698945703355380551276537413006029130485611862947146210615964220926423208891005267018617901718836643758126919836728523616646501217220951834451214550347916171388781165050264405205446883979464015382504344222691330704790700523341935147694836962513578982930751976203968691882541249244544551396989666359691014145344836519648123714471750781400319098034726449151139050529739100373568654694651624073048426907138018623533464369496797742854208640728820613696849501901983371151104790544850501018571169105657891504019402928718902794429313761126071933038521214076743724715367746574401495181469592213232956432946170376261638114719239554974262449988504115465533718269163506494323666206334661050994695209582942659496601092787275011549034772065837479508306522866118932016087787295337286874680772322097007282255701219633298751390687096560912827452031986858700281829529843171506772171952162634474721787198242815199347150181709105960731696690404667891748960267121783392327702703680300838071049571055132429229952949233417752215157969545002673729447738115768752174077078137505534834563422563627333293816494013479023427448630553741171407680707425676925505159430404644719352956312206284931124214948198878308601668109347015035979554816952451515470446254332236150158511405701021511777849212803711130757288565393214426862131797623801359327234495578279277472048527269808689583492154781991901081318289671752130042515929689461422299004164785522329188574434320067406212287606166128580020163541023724946421818714270633736731415166558218055874866822359230303084261053271863386476727765946286405163737559586513686387242122478682595157074607464219921022247275239948749441339947892752743716306519402464467199687420862415559069274287530644857584277243265181084788728993440578630672168458254773888318958961667484128954017654738682050531199383111908183432358711232722705639319393430325676883784753950447010757748259259775905944962991280965141424819631329930319223611068278079862157303005758499891175456347801594301615800633817002680072587320432056859276660265631545542658049296685260895820694193415775764931334079888534704588933917421855425794353193298917146055541474964679510656503703405078430378326497066871836494691943844917779638627703701502699905028486793913188834112330714279070853619819529218732723908911844328696799928943340242985625335284192939947939330999445862492661407976754521128781078375487757156230551340145317211196676854772854755917727977876621358598935236017057562805287895851261036622823835975838552670370673535161983572821820750905019299517358641942791319871832933100086749244096359987212696622518586260111674519068940089499515091402329130569664745648569819867735749243031503984531215311841797858854458714997958679783493804238112550629663609239096654592524786348138579539812015463461586768408199157506972786493376720292434629780138379406856768553762193773679285699360138339872097644404768266899960776934636026603759245700672926785464309443706115534399911979440206064495381132413955524852618177612389319843321697981780138523301662189203318254255751983822519267353101205623105137979008880597777844614365355370900606267760272840919941420678020571730862519104608458571637711067835305599897719387268482387799481855893478117261565740646898554577755187708114863615463525348876918294935603276873896376997601821809900018660780813556726178271421047863290049685234870535457578890913294854347373635647032186836845767696312827782877942178805927723266145356779159494571931988368549387432642277369402048708573697656875226509490259180475906327375497133381913462595918019690736182238811581535212110112581315211570392175783253626178306756399197693558556561808963153137790457617652736764197286651279129101879334531555066975840792778019061550370452486317334552181599078009334302444568729850159111033268500345921218073268701604794462434878041766361274102471776094177900139600836831725483915641846026385880807822797784214738387954185862063222601273022924424137227276323075756944054902395177623302182613502279015937691645685655217671592756984645333825602196860255301717474443343038466525029177547720081352400065011251326645569944565630918370724642094695125823772286860890481760437718482735378080336814566700065175231090247132618033560855477771136448118941100748758857163902414120637858737468565522315711370480746180432826889925638263925614781396963805476171911934203111785792470956756823556576845366290616163569534877639552397380096265766887033481717532117980266338922065838459025837118153536402122521162500601638536539056485810348649142642639944421841810002362091834051386660424560971286815210646018699363062200582668323612059950369217827285979601729512042039745518435487395422032646846832474593280406712537307299146661954621766430075475720183573140273910600616840750880592547813108263054308717462314764083587714249378988755089264807277005799865942779142860275358440051575566883242876116768666905970278465235788330393337162337550895713110447167765457375847616787460150236351988851214585812852492312503262775368001437120732298771918713371128545482376833732660030206408367911755257114735925305861178801292194799146901935139952721640195998772524720872095877562095861533549117411305252562084227949820319452640159636794921903491559257966876799308574629857381869195943718323434374583093575024672918607072061402899639464285477493500819352484378149903320763891366888099336197056045470774252771287552489200511594394079796835515702229303844648387186043420066855793226619921478893970902739251434783481194234179043018974898331750445726887053962425006284572269322149313882438328899288361128675509247855119412168698078967672052819125128539096280409303951837775504208087946832981898919059360855484254893984352775308862495143743129432254296618619328174174190730008655266391670354267264497542379685817147147797130214127200637727045557391084705496972722945357434316784177424990696981203959528911347483942156339172181835266224724892452271763283261596866036242415107724711045070595724064989406384289327818233057945721311772380725294041422245111971512024501249001779656023387049356784370477688381694549264755298467755365260948156626670409275540771219846570006395993451862006414485986706711860852128398069057108800018147862930273933457851504030443378970416460269651248969697734939468536657696806310127557467904690467348059689310997361857475803401615798096345263704597975462845069732092489606210028877202132617915024363656402953926373147587883406436728442119923254797137495184459007993481860068934617911687368325046891190576342724670638102898027566594390727049911306619938083578160570562520392617792678088198945420475303617927473710599769371637132048276141079300624118848979235050292448758196307037392717737959751030731848098146755285092706411172706038826381541793215390269003057547113098842101324037328124279319367242641987270421665071180555464063467085171629480424287065029707273461572209601788002961677975059149245949519703768573531546980896483262964672090985522071975541258713970845556297208898702104074803101512239951158212032054457812871750722573752891637852751315516581110385295169093886270552209994534530149610180141226902139148309693914705563082470917829330021924044229846209959007867568942744507142725093419709686794342697366524999686699201699377467093454625077420256640800414333431104683217190963851885888580579510246872844056837921611698693847940117727994082712373830102494318732920936910267557330029971581278931881453348945043375872089838987789491044500038254617074301974309689578241095503150401099415374125185294239310285598250187496192020720654290108331269308573930231847955103807043464866445631865909021147537438230364195919396928178444907284652290165326709545209939662730416250290739077928238025746130156304030698902844110415409811276356272713625311151370742237243694589150010137084095794613939591968504510428548583638679808727274705672964382663141219195649113120720931821590441939943233258017442132588219949683605264318433883108447884066567516689370523956740421680645414998574351079240027697044846933429342215313931390279719225724168837949688014794181850376066306852876408256826829200871447779302683149501744184798789201726337038605505830110338094978679455282263939033865564222653377257581300113515559916240588611251688309756194890711479215413364193756374890129613112464533685654730416344104275778215700977857475992286472574409153879166087841443800870800258346040572875026660223463974963991373987053082863283400666829356249421351185284826272844790842365552308900551613473291176373678577180240016009635916987585524204330350081708888670877354180662498669918286114627363916178289526409112490923020864551440984401284968195254658310317509188273370126534304042702669680664189443022346561430972976102955573964861551761827770111255306691331944769177401213037613886644853043778078193204044110248704605480274122195277294388095617762643426743016383256771622551668150813578545730388221161156354712173957112842946494837286379000358961023839894466743794194763563273086724957622157562074449574774663525166273482273523939229662966771308378168054766300025328348816510021458405166986009586829907041180526735893409820156205275875292499709296109257875495943716342773250929111991333537872253994236024879968442146887976406339880563190641030227682112898886899133650859967041905503470719070460737021512246717173828707697836789840481005791611699860348276292513521784999750915366749360250203793384361902312709320198134454456450081535049244999699636130284847686529030842226524403657181459745590043320097877039409702173431163131559022521930320991074762516173785428858100492223357065532576211911857387320171039332419501347021718917838499700634550149868661210491310500111191701738594253384158743458221713077066182812061833631410770152436805741669647476042136491210691696720221092742082512166861984233614722314976369764083370224694865406291134650534865364542137721335863508042764800606833922167363507561498477182359431585455925056868557014366600980233568849817891913223899452860610589674614131253581201144844945037295533360153803979635684930970521544533672482806435834758351724317880531898983852623122922054760901289675271674219445357988627778224388591809158111475890497361846192095651071870108822168487128559785280203180526475019018713504119356056240094118054024163059890050461550146983494653748362835845576089772385523113092225134335693705157777259907551371023202877959398197657286342582123184746573203037018730810117456174284705958775215662491319841430243546589773627891863025122084491341740851261505170294247712593008362999648979833310273871994474953463630541628546887715221218903681267175098032830162203432498309237243995570208476247844134634034893479462416971721993577977060085638628122719813296597157561156181730149089354646227303764793619100822444369894313592766698487877831947918314722469815760733850131648000647854913861543218608175923158055073621928359115373168239454586858171163987237805433725664815050125169143085222918000797067262893457032946397539626596629189417700519233829985732841504593494234690096596303851113187686984611707295507324468946020921586423542971291776224964683887023367102684682204936842953029873013333475045745322219431639587822707153052377419138213820124937663625269878063378020405696660072635706308242549394310784201458306981354815891953001571128003689228821234712682361156828543271370954484740409090532167714782873507995796629036359592767772971137765546903198159699521732154833347553702638961201170811720788813050467833971604173765007521174965343070249874000611716954819897106594193105425039591572137984436142951347959491624376352197200885247584668686937745780608718101484971270056285373565618109862192247861818929352248004559499166934780482822545076470198177466796358701930362914282681090703964506351037552813761526550983161688895779052474840557408329004559457401820935528428887179268174250730158871681018537981607216715147700058377050224342308881205398173889410099419837836598741453060085309102340869626712583171227251880383114572819243355957428657496575426929479392602469628086819260392174550806166687563274165732295663247008036444548801837083671911213244423784479518000901815599524847687838844686370718883007084530556981635744696266812195889816780634581459584943545628998915730611351455690473575010111785410502969511355921070114924578063863573309208399094010316135760435945240414938125469685518988286350481683716251644360551489337065834061704698769114866682558371168814900259005162560211774900715544992832382100580778092319075559975248428259054041011275492141198815183167171329508971291320764503685687941507563031997521865749301825065521865073431955028491933803811329268848922378458778219118156534248262997627423090253850278175153966541771357100834409408486325471696692557086407420842249613843235884421144910747748174120097005533352156816900462674879605063925529555656912365033196074794778067613579413128657090103028709143612193063670464350006452798158715860950550983433924648557978481544795013133474521799581860947329861340776581402476434271773461119642934147001145589248142138131407452703770933426591414730859707582814861681670581859174047407067773553172028326211885018066443913957803206779292230266512368190583636277282588555745457752873230871510041376625121446409554482141272046538837490537182961995143838492833772370161228724156789168285741381300474734017120750074936879846230679025880003662444632858442552021666231950965701000154621378133261908143083448235359613155738170980621201471729072662874982133832547092423992707275749769404039003476802189821396226646314029750655766464184985553991914010680495394791501817731086272360763066575023837937166887560824051371904558227751965658801210455405426788837132035941301975872287860798160057319631252772039423402939371136760524899772558205821883164071434546489107049462920433711067006658520261676330963534630365163623098121507494211564785295472973206395901775705457854034796009733927585411026681943668150476031617581429707718831030664931373598787070053738785478979550008277923859314013501743570935466651873957406002097052006140364124014203496792198948288523641997402773832211692057775327287507140217239157723502882993947910538809552768137065583516708380681081263989705768037212438305044123165732439376271076303607412536793204807534369528541775144378394284372840350721478310647153200213082413830741425347527879597568597123246207380345286729527624037578379176900704838484500508980212028867341956261200489743825658511916737941490364763354727931852695925865588774024073512999301119700307245762245179324026889066341826264390002320923400722504489898159973209190871118560776807984218218855549317951221628315817415545164604618479271525099611213784175049921637275729569752100948644520528504572675435894040819301429390847434503884025255669676100370858943946995260506102196272870990860513872965766012554975854511674448684379859564050580438829106453871320557756243825819847025794824999128653813218314368547387464932386385722355910941238404517752611539355231883129794202188798021211341401478706364656131823372759859229444817468340459002191658987594372313203217244149730886447747761316555022830759081124046158232527366107064135473785283069406871789422729039849094426247351600187609653403224195901283343877197340902527249613626258582228944938025544962376736447904563528226556257139208284156432608324715275651724274181457371674066866329205297493372597167499480753211772045469574315071088926290404294844222909758779213715828103501375190147994085418533803612172366005412444016105210251318301959353118186728510355352045803147156190198263721743507930364178964591312858590256214923776943377941805373894533926253754618681950243527487130949775865312747516397100687298821070492259749945812749688951535217772029840744789525846162929452649630923815648918962512483642629625660256468973706389363005975138185981293167843051362126586171711837772889509820734036771391879782681891876401940864947397836781205948242109334941768853809171475059718918609059118293589817891952894894254974158529702013371644176257271120631193948657561880760378301026732829050128532313305939063918855566462545532542695905625036890653154301400626408020125649715794455204958514753645074542289907786762803597985327248837861058284338945123124356490901561241782590352590257777552835586871487141954182106003256846599092712119346413409499775406125865252033714432713307816787206802987136684934796155969433038500710857039492841140994201917471672428588047201354957534830153769717515807564653451466936754871764437626693201199545305424078788958991873106905719743472695546180930424980215029830767265422174511016451230738118080665805043066857728670359216965099523219876052063893891791061059117449325691805985444270138925152941597041770715290697718586590954928205716241099237774090071679614081793501859926876511834487033831952879192466752039823689065553383517059881739471019864800869653603296018538222942982879218548892517909819529936539811062435029143474241450651907735484335230203357690132606633090349456302083864115862831199257754689621115560914239339934949722565491833391696499004482601870504160546188112095784611258693182533491358277564014148277367395929155575888233520807176728778268653939711855399354123834781359391591496430610892497749908969329211681348878935115294777047039200330147736612520476574242951908980963713434731777326674965509452389358361610571707629145198310764290218296985604399220779150914383538455143068683696385992168902521108473099694996136398880373360685251772288627039761251379757562549914436209553587630928985560908578078501499703687346204711408028431229045896653974896776479155869448203313700709072871202284648896241831540845678502165387494895835810215767331622181519787248579247786767770038370502307500064888320466554492958995850762002467955992830025116485169878147927975886582716117219173525019534300320452272099292703973521018724999956772926903937372811027688733022359908270866943911444301422662475628486190661323929510031244837202704244449637292628090986716981031162886765771767500803388438621797222864523984753610817587738342837276803606984431055681390303088289863826629464578993099369110373742607050879610425759395759953607167237355500073828828139330691801207280066531305064837620125657069766777730747229970946998650071977577110651742500721648172308780021875218980326956572676820836596584425567955992109452773321853852850754567801110835202059461246478195199075695890111451094763577451153012998001451251595766322559937222919575776620253591806656208285455326641491879132090259903087837058495118831774734263492604604353374868847531374203437824014948471390340771315325846362586984608353964655837405583673109966391633098924052916047061486184824669036477970484907649660471282691060631266655634138601139361991136417203950826098122401514208492151625596609762310690150294234887594777330778132299532746033479397578899637108446869380293753562472669506605126965525471128932993466013258233297770140230093560341389017335284552478608689986059218439933551251668300411082803656338576390391227959301080889572757070779215460574770265530632532791264362737167996211579916510169775635019675698472837493074205382743490042767398558577125960678274943970880703292893207850504425633487544342071260413306145972989706221012072399482382777319121082288294977069410694114794482905471508976539677602106723014295300001479523168204964089037752176133167210899751180647035775762423430041461775543384756953869775372117878001145840996023195789192547806065156461461148030585041403025547639580789700466504644497675777145408006064617225819574758662904306833185420312711156107556809994178254447471932556682277156825673060510766146892376443501000650988848960796463766151157260163326810133207760209367084782146124094122046888277930428947059924808059733461254177272255475266668698119173080871233761840503070865642486995926166725361159438089301027345336995461563963631418934112344514983777840265247656240437762669843465317666681066045830304516983754751970328386245595951504006864776984786523597499072113974256216497249794804687971282046840856837425337066748854141346848441035853895206914562368072215912477420734503793412254893601691749159792352535408849859076537171629208309703519820378122211298389719255007528080463638006836394912361346168490910395984985576180323167653056693103483543589676682793460484488496195903152555462595178149083039534559808424791650423883138578302915974944339642189341588696270032557022858355547195901406768727558663866435573234215510973914238473092165394431675065342377106156802643894723861620722220807039847108183784473139054266621410765724725603754842255735191286358888675839351878121639739025565865099263038230581599934652214384347846329519493286987833047507132733575991226848333376032202076207361392255704068272976950634561097882744425954427742379494863841545561602121708635512209530303425234321210764002830061320996915984400590371415824957382816910796558806095798892421856413174591952580149292960182012769061690581755293297379532366083338315864852356221098497414750164618029149854117295517309225522666784476025356206924736544197886749590725521987395178626974538179226190474042502250644966022830337518489114564045181169538785880842749731252762047039535477737541802725021675978125865764881864159398732685323836601840442557259103057105547547039098658385033052141502529997949291982071795650003183178057916419779859313028699028835541826840045006411694023331843354719926224778373576964235833790889610600500800066473140067353177274298721046550638882946195779471269016748914968198911900002602719244201793391312147158945109841105372014193323326299793693915195657756423473718902195405595923396491749818111437398656908709406974402553455441453533833491918490122869964399581882228564063634896638099701415773298079722683051880746438727197280865680706387817578342550796572678097443947494766996124236898196810524076354460583333645617522763929492524536713218850931807915096608787895526481713243293443590451008441452254538265439499008712431556198071365629527005431061982537036287657273426713387675456846449520444929653365970302274563192176852847025799962753718695522759742824853351902046307494012466886654646349854488804732969931653359373835792197218378938933465232607784152003023388035282409556425384286749483656920326320443522315130661039220191965083666260698728620121176874923506518573385714772402229072685344096684867432637057725458302927340338848283563648627923744937808511835491300594294225758847965003239799348101616928878177032578786410717017628157181173845192962589926598298823395610260938462601984041097678097044167043944358668891911676085002830088193497360534244132983538654409313125607567185852218278178924623035559642150281072830948272425070075251574828316398564861994009787997983601367144758508159660164075000330056716182750901138311039040132750902031640503073399781238882952905774414213244369147748706296078231174169926177876870571837758988653353577817576102147281250407077504653973259974053281546990768586605896071399061016763657922626431000199627556117682687805428116700591966518548716088306650159155824324650536674897948155747973071904832886237911851877637113585480017589244286013054282337229503434556423761606403656067678271811184890429596093022072599626473365721060580659599070260584427014376412380731698676447599456578253167270003531548765393086509896311293080090029952842725237416986373721789897705562283069551817018692955022334787555111323394048014815562274753148779178492874315303646719045130159243937618857901091173224571298456943034869410095140766608992971000888154345724347971780525967360463494452262912061529757600366738867143357283974414178164607480104243651414549112715379836852758604307173528494320428506052920585605387377822281035748113976230999808241728709063611766165808999560709663798815708733686859605014979062344309871520261606092537175331375214741662975312591044575465535282475620582648949776134570675123878715080677445856344670012009769559722910177445179152812727065006679484943124844246129593496434551550362573046927271883495427412877744713515022950337345319782936991214944953969666592498313480078358272393791413739926507619641046783233047615575361368272182395162028682889322052330472230305060093784156212880180924687015167479479283763502527495696692572071853212345956391458863151559454713539548227144906691568734709423959383200636820803065954572139736104258006403248177788338404117448503457380422111713503704317452403169459781233441459551610933350109205513508614615653046267538710362258571834328095792714864262675870032421824162214461528943860411052889833370767975055889131175279754818585981238921757441931446752814862291267924474311217782373905909333663535951986375476009283205267970662523699702888147001310483339293913205328570603435437109542968707030246599980131849613748543204003099377485291022449628922293690255194504625715046267419577729321605346451495252947246477556164276861099398585200858351063874467773508166795454931475710785058464967136523328046124302093519841030312122983090414820474927035755015010378872463969008193249659946996598064894737627295122682430460393691821817105667183874853789433631290579855625988002820741466282517003050591781848058970389670134515870460770211114013196966647578740730607602179943528649886428804806611840315696580717278459938224835989588009493120604017111280760338045648453776336109322535099870907060373568084157320040162526945034010509572202178144597030091427872779736875252682078627510403774911903302466444110930183595628521920051052395379083111750267379877052634795445096084172448804921791002703192017547621103665380540884210300699442728532829976046601562914936699283171563831862585811099218695464952101154474091017780882294617527605022029837242471543998116410551066125945365037282635213114118428721439822621830635883024886351934229124387071482701491323007605307285166157590938664365162584999416111347403853702854473905271773026882002685206675332807023094828229875364214428538270830773668698095873093814369020513738248584377331768758223935667129962671991635137051121931925809487137742354711103826877834071397628981350700608693558601672198621601074844692859865680023761527546878040921829177620362102907047982884822648313832804409526556061239006000652188821559833814921712840994019659277093022096883535918847008088983233521055315617881844502237807638167731416034236869821165958665230780267752445165236205421030782275746115783774796158750837935886585345249590120179180230522439511248970136891066106086332663636275283306321890281794480686250113597438051356112015662081663714739707195431515551015428265144882525531219700503603248007746043626882853270174925830954529168430232793597916786998533975672016453394773505703401544875256152811061657216933032219890457190188610897109127778668170564043566532556045945724652572504549498291574885292413551123139426668231378574025142790343009718226287474846247829349314306557056880682644867365462303066747442842071645458391972103182084054483121074308336133544325942666937791066745845933921763565352934089163639766329555494494547514546280626084656020949177989009723790972202683904419869768374556573710850608846807974583326101483094776030802161542387000492633314462306925954806874728380224715218417689073599653802225619089989323598894688195576844469624391743770164605044870768051683513742400316204667888462238308451226403045824425674113560525923029312040931356138102886428285043068903727910377298050673992902704624855848994708745254470502353577136821686620566580602797577485041219947063954117645488612153987148567357745343482523643254170825488784420559529551427227940326629260134645719432996984628600753512014211739038476584018255678611239175638657741642634038706932321657978414565345808128001141016654181753506933119357277699774550160590348319757711056020470083343626443612338649370745135083252970103194935242854549905742628263313644556995695433007331190553527263922648292315813128525775306416538710754951290442067483695455071071877661303243832017999457105827065246918036663757776521394403147779380867573613807870002141839784766623127955637948861365151216701986190078701244913633954458526716305473248281014147896687107435514067341683640940353415323692461804499178298937381365118255617634325343769630971526295289537223788373434274074553504008092891390429850501803018942833822372801972421108274106668525406281263977603989695635875331795809486832055372857596482971907917452431220767651884881998101473535425553485501647162735374052694465760703796037870945452891883042621525735141690534620614826659115493142871937775570425329240988498432161891026434782622327357694326820899814124428665227053995178473918713992729662134080986687909423375491424966871048630197451903514494045593642631973983663557134489437583842683070150227972201193690536343710549994079096230824436317655879397426158259615248038581731232135002157553095535107961571482434635753943826791952370396527406672783892335009194464437375966171465652486196496644129062329480147075360459415480771772149676731823486856823873646370201274339632264815674741931294172835423456796569927511233301739584506818228143103209583563002703220706827192125745089121152500573184283804989599068679416269412416725799387169031409803186214058715063212539163323272990132960171455169931058632706358918322776334479146869524102118701665017128502440274518210601812449063886114906104564195288613576996366825905472901830461969860543981516593340646858643130452309878044802714114297880843787477559026078059993586188009459655409997160629616406036240758144612362109094636673089900357870755338988872530491405857968244305049618863905721516977075663424350336945884834538691261385542732417795477361854409065392310651954014416595233214889994551093574714256046957125851789913352008351328493819533474856929451491659940259198591787590331905873799218527786475201082422439384302503217111747593547291863874553675480294139829367970348581814681737011106931544892639721770833444310511323707321469342696552438440279500210574478524115709115216166875242799841446641434112645918349000255521015697943390822646413413618137098305259798959645580035946768822840354407200885373569271755896476699195457101979691257027927707872580675737358359393398826489318333664859640096902768331349379930149927334146128552141765610298396839961611017858323769388261401609106400239783180985568668016537213736648528947654383140037339960840950171000575517186044334370533794454601257019865153298126863043379878237947599353663636784134454119697595775396300416070145240956937329825783530867993716151263315422064067186846219310846780066551485804317806514829212370897619570565383620058195921168979927416119284938065556224975476476888835842009688270570861634588418840574736580928544307680859159436752505017798003254561904309768357157324170724228884728565954856712698912023888168648883691592460563908781915858971165906948900974641639451000468249473447438999333609134164203946571659902556782775801415073702160035660794209817466066028422960104243125918747680100635483831318716633162843720325053817063116639436498314933304528781589247015626119702216916784866645907203165130067490235988579183080468797756340625683139401232383763529426811540682249258578701906194822560956476095816469178564123405725579504870017129698141478849779453565389023484493837245755254772321269836778228652880265357816495504187164776635382530307434852130186144851513219778949680643135765936183099755000109753880794718183521741696571517494615082679404003643327488141374799646822117408719683925649973234700202939645826178199953595165467828112420300099806634052183821658175504910642085297025239626814496550395444544412449991031384980144415209617529081164302157020261486001229267965964796384416515344390126914275764616006186190860589811283385423335081819656738541127613546407338210958690807665169882316302306026574907297017175940837650028398840402180078221041553316380088970566924107620223397780814105518506875558340520068796666599621136152698367843580887803650906271835120911446047675962590048483569421986959699761976771860731410028039397003086162936545395158842056084024375044407620355916964213727793800320752993292498373440192250278641771000047299107681555130165050657282162389252267371754852062430155916241191425952784426779255819135346844955220893927773029891515765215571172740166639999629591253849743231352170394626938794979100434542080751304274318669642296424417884964747373154586908687210585865333166433628706874150253670207325894324897414485572626084502008825546535433231594206103804512516165401327191635545963856961729270002492586825808165053840341338986043558040631063585219561731869365110284164912228981652068323628307499655902433536058011571308909145973485848727948682513283986727859380513567281966617559474315245622877457005266340696271161388172214906260731723123311784537947128920222968453638952709914836543021102306742691013180728656654604531562435720297437816090551750103922278390457856212023706930049102093776016974616992904217406239653389486605599326550695034674838783804328936935011690812466923807052032953872756793599128250475805293253717165891668532622329675206240429147614868294992067352177908155916636607180274800388202690951832303521622236258633068802720063924631489270518425121069072742542089523112941564525686143808138328259443368880437685252295567355587325455797497696775198678988716852168857590328539829102730524331351437036622469053072212145580611278508959277746863753651065377725761067787295241305902665294451296335050954894325556795886344408938665686269107398750854263776685287887247259787599482985737587446300619913146553630184305118354477055148937195529734818610622260484455387486031349386605656815819612239760352982742185199504951769725433184302971974268024107589926403425341104295843769150529431775453570327002311935855257873180808870634779484999470948638703459036485254871932268402339727513412480328821259129578771253957146452610645084571377829892080269044395793693492252901064364154675327222747057048382172062728791286943313917561480066839371974204411759234787818385111721487877199471073101644037382434316913010131492581858650492125931662998204252876283545638951886727763248547157492610728803949493915195738806566905578248660166708249029265589863966466856844754478078100269885139085627344574993919804337506096235745828915518402262036708516243973445887000171432284948509003080126368963630608147440677998362320536318377307510971293996656592724531956459126483192027584650242384570869313734511704582491632773028866292836158455505304532914145823989880284699214480423476670539808243017670904150530989132517400746524368543168158878556137403495884314730484713822005562904668236977305280133414560733578857407598511742249840973377670063364453697335449923273756610631272098470894150273868754834968296073170428891424896844348506616905548720955622221175789963763501233183350974294309917767715478566418948335986709552016095695795382761285673560411009449313468974586268609225306229481927088399714835368716203242760040058873398352336392540417473271291060771252790969460355523082994997115311579655665658470419766841069709760250182855672183288757528981702736808593519652862789386888505594657952160734696654874469013835214378658666361026915063858287226149688337409511130997549204780971876014498551612942691949200548197256126740529075122417074578661046581019720020798597356670900544435297879084208652081471621184503325190298770230663384473992527061249624211545181279925793703026382197497545823078068273103862005761927565058273154554965925935504595073763720491355897318719334303506816715683839949709208894332383930188152302962097518415516180530531200925753999999210064753631791720893711220224435837591201005378354297007851825180122663120574062353305334256881887950232997938056573896205904583156966198459585383222289323909477030649191893655381023523138293306346870899445801189680678770482414722751465137673337185706202250561175686326081546148414850545148156350990178707484460076076950469190976438723821376074760294489160448714422750555892721989818651531807426386667507132754182233710729543628261066363773196171985477251897413506284676646427165149770903939686810283509696442823340487482848392695742531887139620732635042460155728498445272214077182867625332321329651791744843623871656861818228226851668684606773658297987956910587030717946722373737875261622110948036836870992282154314893497697003257905636328972059338865069956407660681850600088590960041499465219896763187941468621454951481045839034800888585836481713778947372894288630007557741949036753339070283938868847467187072758789674573428252898717277381836275505975532445798449922266233519723799648426005800232134863897900614848483119244390567673068385176265240273792464369369633789687934970118642989381248420086082449458952544826094275041406022535569230922313653356213577732213016236629904829326390427742333977370738463600901976452202954801796250823939798437853796646530496793687830678811544430218914777427646062693897899649473508662873894614623519250583554329937862668218438463555918939335390289327947970683105125464094918640673721599595944293911713636654928208761773774110635528400005942928231138004631802437735886368265372050856684524065649367660349277236536174563740527169207211523353543233121629758775475719346085910149639329184756284149645621687542785665389781731184745353832555575359959032895727308775121187030646319358549130856276574332081174798884793092397821785042073227798089750451925757734394127892701393470035106633456176668287459707121553699823794870483880417831554650017804025360503850867190106810021688630019698006228858248897371597280416497844237417349961612528006187975827534823977314642980103657291577377228769709954945787813832382875213867575856789839036035430866759157582349199814145636431494303315022153171547466670201018336847059729688084482070621240980993778971160893298528424806606180881296090961491942000118081386559777290929841933942730884059277127506209415131446438419521179671324794549647018402056525260504274160180428018322952221658139784111983243628186732615554571932134623698599801676281981394909241730751829029539702544401824507226046263362617892263753267091527824266438794131236858954275221981145295179259305588197874313452806590919504214139957222648796396354884498110509883684897046129003958311746292417503084583089733040182147476376431533226382536276573503059240583625319211374133888232391120907213182547244856710120130272515324557944225596124760594056346808709969919151439186361215570746079608392887464189663728955358552298078960340503123542543984260687584279223085990296013650940914492687386771068055689427290133845452452043483439612715226916898913851719799219554631567263563711673936616029001908868039097344628803512280274950890300266887068102561754896050271716027555884846906645789616284564876759831971324703977613220131297912199042804609332271059968069978223624984219681618574545498126155844189174433785866698008151169894098190012320936791873958524070872618621745443913407354570804244476811698196712241359110595803033436155769121726323477865676150351857304898943578420440795501808499481958223643270587862365590054134494013511273735501206612398703920068979286403914792586110612831733063243635817006609320256567908717896942400385347444301591276152929537339152822023223182514566239069971341536916981776869843173287288210832920728134876164334192555656497752984964289228592591994077054761953592407302059855347032336963433474884515982477717372318390856711898326583246567792532361417035113481022924929357501050996839071070463708829586098277351779123218722544929460779010281024079618713169827063760649916492900515530439583982913927544405255560904345006346597413056885220117447053964832210500839815692798842153054140396262645505471741815466158849081864399625291283022502515147747092014515638623759983221894181646655869864003692503790524782099579638792142905452499490038650809819181982278965317028818449658124858449713723431664854817896440244868231556033032143273825181723472255375850497867002882625151295110093208095045427162806225847273637574437169397046955047721690358392780264864221650056555196626053359730963807470501728297627969030239258631168175073297669244587562295119495512771106548658820877592029842892256575968453814585653631364470369736296269530720070294538598595979098028413587605272595265583626149869296494967702235812143842385111090736890117122189373002391863886115294851713803306398856477467921858086622916353467220949265638573145838089365714499407665492991618696322707962629064366202847403277166840273299509177981564876207021910726724382075087964090554404303409813631201106783239917461505129400658044644912341992628141964435794898866390075895125959910416435215993730503212562566345982733966690558866689458546011426988461002798770352398609582387129967002334803267690907689752173312419963202034062588793211373851036040110187516849069793656661110183825270451621963994512164275527918325558421140507836891496741568125243998282666543334696109891798402640817131303459084033087045812959968324839795521329959816248651589548888483309896487480786189365966221546231312092600861766938168289766771862363207104134989384890061621565551650561594153726250157484808202411409919406201259546814367072430652879969984225287889422940353164166667194373972996263780854981972935808526221701219770852091894640521181526519705964178424390128630804339229520371726850177268371746634981362521702148235605101272581562034950348735309412853545810150776637869161872767687561110317594587010996056935413059896466179151109041352344383180388120427701403950826182886721313740114455679181236385038459412668910544652238480804466338696222059808845765996862372204006044821161692485728521423314843190075055666361457417414443370512188418724549043175353711162046830874470379930197049989315537134541574268673844039966973678525552778323400440552991889543943211087527751039825090584794925809879195076570829067702233693048696264068270278447389473103469052740566069321484774366865011855567644400713737394784850879343678705860734299466956557601651088240727556606041306940410089120626250862443020414146070091639408768675253311170905650121620810995033803574380945669404577248540178697012477427671945522738107241250472232005584167794887683596713115437230759466379382561999305591985417939810094730587989988372718621990250190588883853925271920878124927637496883805118881756341486691906454606167546499179988137728584593371159601714167166785727316598221678408642468286181947175154151065874028530905825100458043677297753942411761967259074135052591582495986993858666659436202216631630641816420287952939906583641585591462737021039213345588260583822060111438918589322444525439389758744896522384814377549745871450036548585900179448891694184800245149519692042614076725476264054733745172591931990852208632427404374136245961357288976043470451235627507213790910932389218179571145301189667758365439701684072588041031633599916419005926342063650639421429208042038755003342657529543623959925965629900132871611141593254852170036476008924140914587047678863152044861928033875776501763862012072732610828742700437704445308419100301588324315572520910700466987422049775353597736463082610539697667249621888538496896475745903004050492047113553226649796436009091943533302392238969478849704668161798676746711359645210725020828753755757228151155598032608615521319006129482848420055365021392910390870567731873733147700339207796732671539682499834764506933406980482731489105405962696861434857916997808267278889550010209345002381528306690502179021642053837875500176549166470283882859277830613791090699284221590478260657298542064901179038951114871030553344491881677971992205552797672532343082333450724107608495206858210828220118573385153957911101014399154131547725156170198650038708916887626980986996091565487710748696905056862673363447898990464260813579993896645877837129716664511267714437539723757482607869806757767120491369194635587481209301061896430829162946225989955815147094632459143700904271394921885057779291454907696872204132744132305026569335737939596520946917376815610020978526509584104289165675932956110817464082988934593040437127624434932298254234351202312772292409580717249909882199643808470599712133881758307293979438113107511676461583937378410328974601172366561357644020436501265925914156428116634032937900595013266238233061409572760702411892767034687197108168080156561217800377949767592812017496742012967755529997488062084300790233893114211634241647229288769567591947289982559928151877444592307791012298177438987581880396416409871299429579726499347718735977155918926675786296884054295333025168073564792584439465967106469495196835277750654884577501140495611265330850543393214681159020678539474946021183489776837784237625370527632472752916392152623097553016479219581143181100533448390520707943800835080372629527774109246077328064694265282947125801100602158566596417804644799503706754341093991255843117783314333549212332089204345935590248936897272715874496382564439452710419328436594844747985203718625789148297429370264318366569469838760293941062714624618206905690687311224557971299816677576100773778636904745889733453414816798426884145940024967074224793380339040911371807931546265120869188432399236966606114246758206992158398448255233976483829761526339911719008492582212193213923527650377690147979888638260857137499051340733197979231903062600254320614539675421217028188346427993692501205479529429328161011202702322919347507745108070358307024557393703595937248608113047629129085078070963460275913958878282512974316520048386400977223202051466682582806266373310917271915034312014063328109697433433309878589475823305346290105965572045670617650000524091623524646151823843244471195225870073427810385167264879179057654864737152023593949992034857842344377629334863410918864654963037604806215892053331304491446475655884314589416185609519662487531768038706319299410119426034790544641540980294889613639990408605375983632412979011287365786266362922188221059200006579336236821155493555720855370096185021213914078753635457093548366665215263864041341821589870805564207294767679836899931819950234415564415476312345271947930957542986460432167644824028770482842651735556027379560573817158944286952992480343532347987920730926635750351936095021897698556125338462406021843374492074635017593943769522125518136449174549814871169818026093271202117598405003501421272118068945489434922357858679240935328893017085078297251294572008480818562108284229758529646003508552975010458077727961657488837753742797467289085121646986421726268684244297715161958573894228040054547292815272406637545859130430620623300704985358616581358918336471373148525000015167915623716054907282885327452724283727049879368327607649162300730134571574190902622431746659726831260617897294337219786400825337771455012864676357978195098936649326543986043371691683441423632881403840169861760235734214235922473379172233985116980741508357100404256533300730583882098092994659673449746341095401096906137031741263097234186527323943151971981957432023957143911734914161103214857046354060271545163842570748878568466869754500071766895825519357961996561931636494910680562553461486166767279206612543795816411132677223173071092125921224224083325503470980912233590290326599496461913812021575118655494100847009751180494897114676544873190104904791161433607713886712629031630813480224448961842350561003627775286370894838411073109396534894849400317438559317921943795587578476045462303895892568993170638433631020793715788024494757974157028888765000623124353970095942314547298872722830281653332283370549064540668748068267454199573544074568738371057130966310877354224557394445562759342750575546396525846205953278516855777492244365744512116941205500316259298903965349437741709478854065999001251611371001860682087556463418552538045131908487793192300541848525588339376795625257268425742101687898283676735402678642276933813095775312458737392550962282483672235019239537648656793696443366599805567398252210813411948873564492759801870529485290704184891730876864313960888960862006425831279271749381537630685648655095629368802406433149944876470888899943067216401069418663908810750346974882261996020674104068787048336329575607000275590634066815460226143941849234493781206450085565621796639903275458390172710266337703398673376012851297701525817792544594749627221662493367300879807507293186583134547719980513578310145203481350957575187565843955482306378882482293106716339936454131719670662295053255310761163787533694709572138797728718579025995915965705753034437096469727685140911969795641067152724870523386247809087525681180676791958627025105623196528264195800672755638161814291200827127668300492370030615842003902447832514429231986617828468493585169836877919042385584098388165385481917184339618604003176798032620505455939718880377371897515983287857919668535975332170737297777733018787833516631842030279443022820703639767162871173954308440044609393699241741593116089662145400346982499457526524813117624412538805451762735194351693793390539619922780930957634476346828306355524168091570514665477180330947920158226493847229889804846405853994489893268768247090600073071020357262675044964983308107979319599940588393775205099177959278997732409565425409924951551298166987183203407440866015424024278244057649829140210042054516532788059213504629921246835707613515736787802199310831482037326809973428160117688953727274260060460303058106289063633230202485802151967279421640731830477925885528730125986175778571107918800203927815717757230934026536041461594964221986225367405743214547284850290800006714856052736990164977867320610112500856038331118705210388426565014997188115134146319377375170057606856236336803825710263135808849034700631417488053811754188849833590258147736198667174217715435265494524872615240939238307329512218437154761916882029340243020861986562853752030336970187180858900204204326566499902858974719086430318217918091716360711240838184793725031065619142048163048180828222138452203155966005142474347402485363020163498561205861620164172963949484917199694835400224142703311237125205741780803843779770068835721479276186126056382498795125822463213544170571230720782472440818920165316296141241485743268522593925140590121627296826155905415420138011814266146214704745985430936364688611066179998326239464175753117922856144230205529859742431367772209108557395697454457676413016853873652270539156063549011687854113036122846811340486847573344638769602967072162607138856234185977186045320660534547814087022298872730718740388331201576602942329015139812944605860974407666470842631995486816176324206640986224369971210573947412812666784934170840630681254982760297433684377023123035267554336856993858795850664742389798859518319027138404298520030428435080356047443852659103074713298299028689548743439367335175514363837373977322082037107993122269288193000723826003191854904627616431172711295184402066537767423386202141494320327663612077229954523913557366845821170337733958483351472141976622983308464026386821192611190349532980934912820456106563789671668741745109911038871398433709049670857234360862820749960490156667468532540213152085590848453087949712251654471326130614378294585272378346698730130514193502407370276266376651767814407555145327102692749123075894055348890805055483188455929561548524902624076861634360134033945915647287757367809710127581022667349948988863181188551309450610664834667407513468730077485105370061216929662953869849951189105845269904197493818418815241529769751234171213982776048959790643928523950865425190708196100155359513552944938901849300726271025607561525591753650675957397846867663868011740899593870351272145823676439306319525947456539668606059554689297790604357638271990651520882432830929643038581888010787348883943531638551108623183307395606888137680979206047222396009536384898340891894723931942175732729704564992159516827614751595519918761627222160959979688276374524242978317088068249413161835433471497509359206511473185898291807917130178768023812539929084399912130606058596143814423692928234901042564769153146795058593963900705114713344379182831701433975581588502573378738645110623077414058266004605568434533484046030285524436123954175135094728323043298754071431383966831209315876731282338307802101649768341068485821451241581658662481083613598142508399230682040318750980915628549226536264224221946025753232869392366228529722283887661589312233004438686475479264288723657047342552266276612574208254969471355255423070609763655435893118661319981199827198261499285797008347036476719867019471011280327948772960142184727113183655578530522512477545666046242387865742406004347572708347394337953905927528820170671837606539401252311818982115420674412881935540213571468391001071581518237464962479650966102127857603096351394868369432449550683890355268691232123630453593071202633713422430493481167223030367596033731471995745573127759749346514354701974336966369453875579021487641712647045000993635030197719913446964332222365342190309669253554938870912070611665584665504665968561203338173162255622191644907641818599622455303052719205734516375508717266940183424401130583805154950997826669002805941751547554430508008914818582233414746042371557482323527755710237355453920166570881204034640215916784041386698290383510621759848205188952713579366505843297633400695997421794848320252646530285807964044151371323789770796048175331069123548271360400348142912341808171165498522253929923118706314089417252426225275603544376899715182753854521602080283365507110897275984995597608927356654457353674929121823948935630601905877817332520507043965848523259634967763351876086050457097785928315311552334593097955062458029002412756989905598741645646497809716754359512178526552317060693943352130928086951031858132427517054669202535014189693782451551371637330533526840397580733651141483852930300977976103123910427565096365113889624402628177420502834338878903121634933743036684097982011471711035218827156057271036424221210648846774289217498392914117821967218899969327822790618956813261774612794797218005928866572030607443589593984483303829192686360127593661951917312949193734594237945348567961543430990993367053733702090521098343864879211463076515665845997875819496849088069796007730619555458721475446347726955671895590609820041283224229831727966850240056775729254455815865212442191180252698577395657520941212404690723483136035969976516056687269758190335181094389950465606012518474725916757656563719264525197521254537703115513346240793530164432577829216539277694616119545104241264837605217967442102014182618066003836410681600686794325447895055553303254708383122334309454418173602965635488620730074536780026482937377411114074817577104432709369115287165080882902772735218908403799633566533582219094215812365406605888672388626623132476284425614436510438481612102511314297695721370946219017635150334413841115608936392946247501708721737029093460015116543159207492347483490484007904283021204420111918939366964131902687133784112219168404489847475251146876167995287404889700751669766619667370906830277112530125536215784592912751369372159598278461607079754980548157083838013571328336808939432563729488867859960323660828458010427741081327225101494418292234733332816242656178502414018048634891755324603950577012787822780362019891104148526513568669079899528911511227239429013819732288581602713688368886114661994096842007337791483507172146665406188937327656233837668158372001434767611700927882144355772236511282556419319513258366102216540728564424602097437810036686642950728383874871443500860144663559954047267009326791303477814909261166023685466712769095801956312928806604947962690860613029162898200360030728735107273934869956755229491172075759215091024649342841048749973868998862880311850778726931111688319816687815747473417692460827882906873102040630560738605365084783695318843442853956589574242537904906525990471241557601190486719806081766622545142804727072766673010490004590688442441912069889964951248958992356740776010066348073099364328606492375183417412784165402675578729713541623185377929876986974575813346557782352428770226826145073117154035278047170136081011678963864724006450880319710450135641511221319948640383771523130440274262290854101634576061522637888585809615933905424143219970655801486656876092495194271244055634734189544874436634168090540972970179392772528362017158082000924389120018633165357886490266608929980092371572276107388361003595217227368159793899041118055226484018066934364634498216669292681215811611855132548772002134296419484851983067374971193961393013374175501677432716310758735089763181388837927681466929559843790162401591230569453780280936480893798349079772908074578969321396127009027789462054521165416407051897907518524834139454752594735677673036492387953048727237490828300095000569227319009181618329566636827031744881306438208589847773293797309179287432725842674659584753606346039097493061888534335212630196786293554537417619917928899507577965688769478182393286681460017481208967977028080142468183602763570060016901279119221014836652028254654429221259896238239650937250206925633322923622914918940314621094304264400485565846184726838281343466359418868580222765130881689244648498211689616217316376865746110710192731282395174176532244956996656624627352011475615577173127661815175216601731328281621547380705441884382469940777725896696426994325909489392290448734081194681893317247718323180247492675295417820100568923090525943321720507694838194581442683385297377783723655397350025624979799856041485571129983584502692258492147317259407211933146540275923931703533469641702366109827589528042048245917926088938091759455379310450964763699867353076875237562586565126442778309995836370396061114388980977856098327446451339573956258452993811892209650660325953085805453107777632870898017009301814153852160430124232770703362478997936542245606360247629230102326144141038677377933140519624938479676487854420245854612972129671617239317927920417521210103010939607772513373344573658250527588061689934320240800564872232629846368544843054143495219320389619014339409441315823202394401383859473313641401489397002118001407300607977259553037982543785522738064814339144247532787447294785412801257558090470009090929638979939910151500958320434326251609385950617424941950013730138106206566677271145069663971819400953143028245161896865259139572105769788828978875382435089859874675309295508681417378263729940976859732941460342244000929010840473432732252209321311205325592522931318421805388042323959738168334926765298113528032965752118167393042695194961947804435964852887516197069978222936141633452026453965781165935597223298969171029410785457539379264274284708215952060235119693986956561519348545928508860473718114956782432333609837680665572096530668021387086732294893911991681796933211304277526540544455487690197065178025487935444723367250973921666207392493404208657791619358512097964869297341630644354801637768737490269901917524419051190453059256891294427569201352604408549197107960738428672740747810353499375308041599621848521443112556757421205454711200185824307610914221771413312950331918440727010021707583912280092530153126225501540026353484818900069167911905831286788988589306712922083716732270214456509957959715134019258810287405582499828849993732617304181831071386105180705070642782945338311396281493724448900421991500111449495896632718153882757209801601723381350281951823220958498865676453720686170840285261603611930656962768900679501200009530962280837022786800077143573315815432769217379174456043410201979457070285670809077163409509270267429352763041543962045329898811219912066182498162779676383496457670758302796724528761821411485755375040986800346422767538048091012683231970353366917010029984736056889257050826851809436295074066944423008284775105943220233918857783998669389880323748735898564238545793349479946631663860746971568553149034428974242315992117229626470781002774918570480112477350227938382288638144135453003477544234702783626323360409866582164704443918049254139623675230383737835394356973497061728936445497817349457167799729714929739690319427857252215168022784375050195644185522848980897512614517091702168449779766257937855432286200749012489752215153583970190783777976855319085074819595385576262798106471549279279679527426565293267453802378278835027628178761524434216592143785642580362235408991908423878382762561837547944470440892902719024938123895626221812483596311645284818952287161762281216930933957587138543116525198471304249446520944173673561076708311160011571573437422673848855677501533150058381791113446472365950871683500535605538752190832968006656367644300944499713063061731424585559103800621807125104732936323921868183322483223431275265179769074913479253746489136419519631865198666647833201087165232316276407967021118925504568386569063815026683736206705976103389890587285877387735910042243130212712172421877207882833429173743740722791850542879278847354565758797112153333255759057300076276976956544511818088717241824951083136813063693180722399556530280488224640306721172353962958938146292492665649376506335006521413044530451875374837885684657733793235469408895435842965210108666628695628155160759463525355419870686397271956239577257249928423884771765125394911608484942746301035692641997577016542051028021304482563516367356951371714261463651838354481439193430189511495100104389986188312915438518908945922142960081140428344200031942897331634470112757382086037685311602819200962824755051025836548787158954791844171502569890259959186235685523577648769621436066333207553913496525102783606195547217482122549170833683429488243866624172872721352587246076530068435331739828723252972752866305940131601622006381743524361700408897336617768233668869385813374043835266417245640942503617088311711908451137234700653661750950635788241612022005770282619519933123690778711608456146207743061216312040084633451324954077680847379199368084920488167435027631463981321455215189868257395684069251804071483678927362723092775871131536945907757649473518125164091689461361066724643971815407126905620793221744727403143117347709048706108840037937312854076154078821017314235192931441686091024387377595386692223928999112770429251948886354944970991835250445860907057793562780712360262355878984867894091351638284859934750030072732801905094970965785427421018090420547222388293136417412507425533581877365693429358094762232970782110166827290175104796338338712004183065212497268958137599117471714517999922885487351942434558581522757021163542413961806111803027326142772761797388285928943561267571093781118633408172662793889229851275462850366201733702431819506998498917219551315713524123336771698116349023049646815415505274639395547465643514966048985774245443998777288645409014854865468862746235567141431378354958595288560296654273866964903117233744567595224699414310388566378906399238628704308875773662002350971593030078376069889115741132108083377886730804022830266931189691506909473502574498420112496639626928838008096379176081727504644364703518467140076902463067417475393899610369943136215901932635090510529191404451496584972807321456345537121358846806921164858947953279641913598960279916831225083477741590119538661380872240733226843419370336039114368893315378264800747381399482141122822080448866121591496547688062753481062576092082656333540648998077085894852328203658374139582311334976619354472523567632788013595166898094040086655318300556980268092744959375584954939839714522611297875572472564577007064053960351961160935072818879735072056991186003461987242142839107598929518234469670416180951861135453337190487610631852152207867097648683753461562651116360230271128683006067128509791926322811731668054434718984095237016039987784814197771179575110859061376655277570024725935011876308854802650994277010628064868224302167730514768664714238573701704446027632591250362446824020645313984266184793707802334611803270293053090075757531139376090680148004038386074680317986648999510817876239592463537377689680723580093322943464683450009682572486126065215688800481158798449817414955274339849135308549341276239664365260243496680752263337058068711753787920425367174477615160506233954270592745349355321687313208879178683105176899784871384185597916051467667173148937474935390332408058158121292644708534655943424622561999343582750223066505570403716516814886229934068194444588836283724570144719578590053239226357826310010048513046495793555109888186596232775547128747851163839551279595144239609473037473347727592197351078432039348243440491192488337291839650920793470295891143772867300042301468734886086108002610801023496386734229064810369294933600317382936165831625551876052382171453846868718711698408856929540142306320512701066240604915505069352521178656431478004103843408425661579287590266852068040919591221990686707303672414950699897782532951312444363333345730182587924386312856684327202444584589259442649456765346395044096840641524640629876999912881341562751549562919112032091111270756161078990440030740584627457613246868215222691853435284214951744857631290106867459159777274807141142867540940537385265982570200883829077069777458625519417475916847271551729506011438586502625056907530597337754942250831848942416545581688012550905185650685939430972914574289698638166947549437684860133156739223457807408904039388195171965300052532909065229106071389998735783936597580457264549785570511970667447067929921668598056426384994166408164397164011303332705614254716095366951700511392977926859800771254655906025837190985590139168983988535195582968358453603090407664042895756211921749571744944672230907229298925621885931404402821821942922807078594775154864409814713972223054778050909050465741148148159960032743164224522918292102826302674012873121572725196974465418573261589228288314616203040441528175587495945732958674015841544153754222795772006168985366720653554235749506433250667331748628026623865893067242634391380429669852543023106751739413621864477002004257133037906381990429948645231240631913869976014230778217173764823307478117918685492524735839716671559965850168686431459251974826428743836322480716271106145316523427011190375435413619261112259027089138566958628130908177558788588471188071175326082313015164971803112922829234657382603278942052529702634249531407948646057052936195145946406674919514389113714311874153073912033935617965753918850129835498727627143845197522631634864171570231012461882052799216730814592653660539938458979125619779858069084885477589944369619173210750279472044920769370105793655567251579914421797922281370670792350724688841069027528662022408618647477089446209481111025302407898867004811714335827748486204332381487561276942958770185887281731135053319060554672164304764580961726941061092898305010473115855600425700039811936610811036183074222269591773865432739159161416223489769655754423610116954562426937187948712046134144290333946294512087581306486979018515723611563677920865077702729754887925776451459703049981766750364765702415039457105180107855671393056957267087191967246756712911820836559472643280177131125842324419871806282954904857281140771355016248157915089473436426171988195354086098733253261829050858389230294623977817503123163843387832700885582870891717428549123159435465223516873296033293919606957359647876773438708622694572453765722727828339250257188366469798188356769917369212120069943813793182792458077238478162535924382203774107929926959451627641434878822564205622904132771956992172194555344069169024475597380191343338279013459616063277169729853875765566721492447044323229366182100181323899482051584918012754075813886398371831615041472367041803068058683122511435495335885121388959956644357218707607650142592758553354775063310432025510599195752152450612813402389670374282218233694598330428972137009921313402288761743516238742271820846471171881711359635190354696667891461352062553068892077567643702570271305404631927049196466398133128574173813918189437638902689139227856749687347086609789037107575729341554059147022590146534520861295277406930256123571625172856669878653261703050607862588937009564995337644963028296414163016260205017571545195825602293776192600123312137115502650763735114081510239346752948497377806083946554526473338108439658642142455701768682236529488820238987425936933584972966061978446175100673184873666851530196936738322132277157715229799863036775154583522139868362734835780492748395826771698806056270303149184429075728598138028754712272155878995697957747874267750896146111861920675372252405513872521002219926202778689993047485594165967252874976557564096903902096034622732463441748873634467556994659310772776040534737050219011356397575304392606059063348104002501688078198967567731737274972320924105850036176841790090631593328535449690476792731499942815070822688017843611601757019491493930127541875638379197303816982437593201959551690325690318659404978189099051241471173950427094964590296535940835283352459352339076229650793557460652135007239843571448121823744705753010062156618863710380655706828201651538835810515642689114601278757789159737773860579357016314440131887792065994990394427850108476057716595078132130969427749298694733052143993049575853636809287242373732733522717001963392529872130163076033230650084605539276927394729879021640442618742248106739709497642768434283724125914350815211483561397209971462971386047003667823445769476582516897220110375407672089736214549802924169288407975082295214570400423686512259795029063671746116359838474517238736504127810300612110844380951234725223278362161738105307253453860350704013372714742245491540492385807182261748638959274514794499833507278639633777531425619901007932100063868489191446263381955895738243369230928548291677739976466978821179558461388480102774945072817078941374057901310987026403485816545919262592744472710388777720321124910725299694277892232363328456312484230232578899545073250671578635491695843364779834972325408420626102262577529274523238850811815686899216290373594531998279930991264917972138642558585250504694530610022925256332645449083691551461305333956599333602229056420860168517279416880706803079481158455412553117026641284974472686169425852597081244100593927349802638371757548730473259649441073347025505109484861030603612910102833542440258467512961520179820629367571654558274678628200627699394687006744318318168788528463996519998562190581070974816986637351416648991696230625337927544773778397134816247765823560633302570353374336474564660335281821833744109621424266694556216753321688541799584873115522806937336319497680753322548467683947881652212274201416064707391790306718659462553911098285243427963902348323188922206252210005949194302054773033546201636865670277067762735417227206915925272142375592567189696214473665317526678549338932159767592155134996351363586660034502424994764759817788801052853046111424142208475951593166843932911457867451600687145256833748848561257573735273983791220679987813867346780651164616037012469380969873880017844867805050769910148104661089477256032007628507037283135257802895921987067082910879604356945354933025293350303678337102088616595788083793381889836954792182215744290471230220713798972977077343864745574734967731770321435425017193747625474592658923589399795547841285173879812176830479828247510392324491418024346397369898376619817803784243136850214301022103853839759635055914137662118729991470773073036985113054723173570719201234318489229447219674441221964080970914647614247627825379436928403404705963025917659553444009399271810279424770923107084655366548897805984594795333725318805732425978539723347141368121412478639772653946098009740879682064289207056009541692190281250198228641005766179320280272972641931155419744175260518320788510284409484518015610629039734580710492589842597448589389936463048871033988256533885367732407393973174755679066078811870448826576610683539547742695386241145191836051516908668847402622723726050158278796128044190182070833833418644323293215149328639448918138552582941712528881481396822924072513206022940437736799644218293027890757959457747391064205258779552822679432109380713231819019200855863700757868691600563929385175504896641422295316779999508159095863647468546033113682990325303965367048578672476815614600448900976874162044964296112276138040507180965048093419839559145354458712330941605237433087483267009520181753349303463628151522256838616837892636895879194230953763136934953893445781118239263614371265097361075214638165899700613005824895085384889734684915930194187704981309416067519615756126560838852625206575455267184236082449250286359947138049889886602127965521724501401400510824918969811487859661303555108807311695447985655892360140937736903346585968487338879327570217335075192874572555994171997633387295593206679396738228475672165625364966370978701199514165734983622225150345987349189933751567608604645382779256071744765202201245888980583196274206676982406501891483206418589952127471985413297298051557624093956965044348015204231538813555262064975585597583151093792360098097437862513406177662467040511892717542024495895607835059471680699483270540847136087348736606262384262068206888762560800128785417940797934798374500821461178364133688971689854559748274087166265008581109452875382264013995907736076557601069707613713592418042282312623779754351480329121789378975428105563350965717204171711314850170999508712139877344273659485190264310957100111248905674891369477918849458761397974733046647937594148411499753477776277460369935956903598101350951759934901821541305496802935609313404400235352678230762437160093820933174551659956233796957794613397582331382228656464503002538614973648350810461349196235047835544119767215824247392831662807387927944809170837640621610947806331741838283870700986551798296390776726411355179896307491288024850368061358125219631029888435299145122309972862201656387926114716833311823152536491601378790279346604413987923742710641558906426626294818978496480862831903293727740503274803369765178044051636335396864621417628774608485458875325182711108517461022940621176714785591803831672414357574876381204449729426376153790363098509968842869370981279892678905671236980792015534574435955501884575242064004242046387054215507887935880393689386056121253303466928103550759155864420567208767966259255695935127364769962239935630075782379388284920995376581503522294518428234455621710010313792513572642328106391502587868636071071528082427889762777609185158689407507603649397533298074059481152738485422852640820283576134630990030541150143025824135393160297136747789167938080285340617977077409476216861374107168581028767176400620611551984518941767346050625213821586111128416992390960282086073853505438977860972814007130977671253868974604649628313650035613330005199102026669547752022261433854126974618277230755178002184435295523442672700612653597674615884012191458422969752333080586255776521027223727338174979695619673144490961758911407849983856237037812021945498590640641533110682298675826477421325492295242000861227403528423816130221699964802971202557701214693424322004074874961529588324152120250511813685041481402296008598077184939500860806737818439897503972156158108557730524239033969031628913535894901100323486468554212990755168914228791810144412458402990404371231179062119891753937424843564047811339790188950948174744780153762230372588512063458186418299850742489923728602177338283762333709432725592941844987773572031847389999167624815886967590623207214598917950892037407073405542994861863971927810550171433035507521372931587491030004100144199861820254011363338310965108088383394514499810297369340319998738347863167562412506518721940939222395373831287257051252568648558117306827479959991974919417328886239524684039816300460378412333947005753443339225436453755929478503279846608291398982523764815318790373691184765295552726179875513942031627511720791569826490580537869593901718637261405983095458077262232551189511858263996582443392472767813476568383893764598367949516817122657529551086342032060879190094195987574746408365312125803928584709353256837731479907994589177446463746981147222358335396095721554693952819035980707298136353908187570812988602978610940499031250196366523011480640862625942362001981163439401666681375468322348012967127894901871096047453347414899229003799770105895698113234770415586602738301688131147529765281932143455155373134408097270498081002892048172888225498726157655248639782332008544046394558629736794172789990363839550555070184645168080649988409389498603773441046614330669558442827242036988884948922991954322307100834505470193817437193951270301500555546921489090672321813578059811870211036350279412747937465787783079691769436070644125845171789791726994360029333047973395368427654909575689106349883702518799080812678563038459533849783540908258204378697269462676577776099421416628385056206361272157435639350383598428070973542525793371773978051029007830796835791110719992812938140983685641844963639231520603975252082241442345521612712398076910522161383654420284533317500362467273228355316271113703997427113679940512656231819914927811028041272485984354290781961878563596414588385172248559201637128396764640516181844519788415732118181840204732819645437352922935682375401213039680610796830759126150773708138256405012272749358147842020315138037393118041702622401483801988649896757205829177201885913081831479512030830757058191064541005722715050972177866115251386263518041954015774624052391476632607137982705298360604782985697097157871784943851977196985310102891026303616524108820523052604268765045733374526677955001821563960726181459490229834942692057295402413683824140921564805831602754663182925413360514812989482690662383911161148104603151651611048208284715254240837428127212567450718438544972175274140961334275820852783071821156536028669941512216316647051932865913101284336886922440664111814605467997868314063647419327405517539785724297340647811171360195089163267882522981323645168268253592179887076694853639860106256264239251366013064582985513652532278554876743810461478463124865222165485277729039978787773228876081850160278437496408282881958184531830996269433805605222443351881218621601914987043169672159220182232597900873131311056997287558274294449485861616875168200934025075346037409226492116608162741128016684630225874954871451522773297089133132577990479730184646593221060777546823355043399492410503396059160854134844982444011422729793864305976199689978267330207617466142870022159922304392726557319877562322621922029531414951419976751484935903489066694612808741682946904353193271431006526271819851801043565946261652886827100347512225599977922446099980470465601244549391816048847138394327737344431032970407263122862680180816920444308738843644687802773339890397849567501153634108718706261232932129479006178198597895394814429181581278498728393915733765363414912741581474697356129860282616456940062094828081933563013521147610481002835549912861186980452322687053901603236746317731922828743663225304555352943318604786532928016830528727093948103203354703254547548021503015300364326659553525448092003251854707461993692180974773779424085243710352921606018118447827035735505322997307771972774679651073398391600089992972735738166234275385876506473327379652942746584561107000084171036716017020929284949072120268850486559053598551838246162064742022002876615921838067908567692656127648312043949414075103957272872303694948987218603101818123803825998799583163577481484267133848053903476105373905281170101916469982586713245499407605637852862151429728063726395126922818445462636738765977629552240132917476185920998955466753381858914092676276040156335788827859563870840635956037633871580880545718625668662876865768784351224661202189188330344270194954881258275888616914798593075987720166071530628317347480195809861785151668834470101802327297654067253211633169713360402847135378596612003202613780470424205897639672377096268786097550790483157104946746790826176013044173049836146804694557543910787660372044260691663389638148815711425685114424516074714003453848388354086065221935932808743772144685909239654329804954063150280429438234068425123720403053597542076032899812624783622596788342373026891374709797655882976597402959239381228336778299186868397764161045983237448622547228248245340932150433038584237126615512906079675794667698591238102388853521762319913693293510403374679686608058863203144269070313205415692420841724548292905382086738848421933524329817779989799328168333835350255499441902251899415330666187230397743056404733636736232027815542228863279695701091516712473886019679223141326264138922415510705749308454664101084738868210506748645126679344282269992322794938770763214989881509603522331656773887184934603902978601689453616223581644717231685498655020150941935196345765221835920208517191141646003810505339592112248025721599489945977888831287214678811542250798024639652616951738029690181955707447235600982639071580321080516296996568002078563977113838701616949031694000089132170769337772367755746139787443053459796732542468761061357790864454245087955999463985250969175198190854958638103963822536670332487624118017289497927987361479148271427031920448102594131409241551124550407352682909823471661037832293684151235124737467911459262150914971922458533946213559959335862697524654015893086935264679761509855263380965150633809570758634093248947387589688819653809379296085301406137756089252622963806154797300401343223147920515085247234652394536141214376265804977019509656048263569869063900367227293134996981039515465871622344086796771253031273673730673121163728481911281553314914028324306914381001973923447556627523992721056979439690426489364191976590031968658259588955311674477142375298192259213085095583794792906064520094905084326042090449603432613886907820972407789241445168824277240667403551172612945105919345712098008930439292016831247953414960067873098354288185247695937943392280766732504279473903414093671763032529027011700395870303311035473521528119382567728512732481134211167304822532517933335003303201417002591888424623774898514051232444917377781173248771320396201134505359689018288855954373027326375492533364492735080986778880346650274511007903345372779175456110392051059248347860295674262719011731594010437647256726610902985741938062883124575493181691801313830794820990148477258046842813589282175157709281236204406584271464957495336015669473486233486747882107671498521654682835432085839220081176039670597337971580502084176816042712327327624501589229718259817426511769137055055532623571855687396585048430234054947905596293915407463845492399675133699460948703149387610162686943240423743930527331864274484224019865813275960037332668502992151580623546001982175858205956653632688564342706679507753554794475850445007466295727382896493143848831690031764423174641299703930173152985731485847711700750582585592669610336065060653968469136333555028358569168493110312587257148098305595447142869723425768096973613247721141449670800636138151309822361313491377460477634833425368074725966286158195188974297193374315203906491408890218586770520548860015119073009281172479315565441860732109898318737759145484251475735860296195551375546197972483812357554817438427725756971720367215946283763524244739938454393616996355067412163782187001156464022161091484213378085498307228788975272281099317712275408138608717197506739357459528583734731015006199482575985416592704190034115509233316459856028923345984589506278009500408847069204391624415073106489475419441964178966802642925305749522721048020071000552021251988945699362266074174618202781749296282883078310016419332643162485105842009945976754400712255544846184265334802833770210141396141984229403401574418494690436027523289928080499329109169633628024863140386190244552732396827083187644202008655382320983275098981549559224387790252530647562905653118333292017962240521280919198410944880922161762237688294940348288825512412364220166906486958481024394682880212926681476627572404795592331226526627346641137194524844216403988739387399725162038599187690829162657478290450281793391246484565058578273124597811256081022340286820984519607049975917588756028388922846105937983972672105065155996695638539149400668404434376458579205394542968523723930703649735257340350759535739830318758986669346044691892165544595459939289505304564218206192171874971120610145887537170732130954445444029356324938873136079349813785957446621431526719260060359052133867432842634256176558885850238967496820497624531134289849780432005572715208478370945592309358404608109724660209323054930587549322126512371354633032396592742642381011508496496043491718896199186539543792579337677951479155735331170724298291872532313892445555401248891154086524467186842884025701195024924703539823296535180577941711858708800632494793949805162788326349300454221160703028525108126345904753765952801424945657652434574879066395718650984208440126722137989437566177791274725639217257630365672505168620643338383405500063844655039101056318140874132702956727549483559047037590899737377851880944773684761750594315518256459261759005348943638334096574974111701989941564786267839061952622094399200912659031334663672794190107090708936819087435860930856395221463771782135303541543262853869462512808374112833083455899241362114241764794088552442706060759132126509609788118641143066957730668977207916270655731676867487306713593526112833330018082094312527212103508596497824588574947839986013541457166703979530878679221376622870037125254834160428478427520641876295116353942250169120345034153480658849578754654814469760088304885820457945124276683888449208783038043457505554030537735109162575160061103754384348695736273781462016080374907592864362964125561484393625654496216212846640168658049335466105862679783750236690311299551367311570059896889117862688103063580345547427897293864171578800575974665934417545249218153409848471317259452399246035269306417292625037638206847925080122418922798360028942018948985673971962811997340118492733018446350077130371036699030297630813736756064842069949659280335016019378292494391899637095752128340567986301887541164572403628804599673157578749614846935130673689105846604813632327153641069952036395279446472211695135293397627780916334795660366444369614337924692955609025926459968734971755931675404768574462096477095764327907435903198282758247233432814546945996525154590830006784583756816276782193041278881332397333198192320260297320926040307010918070383452516887683022996662461405101664471362630683121614154773033809515935121342368506775515030549019882068318920518721339357804028873098788645895581331312739237816286935788524428991877776075138117132549375620739544962090624613827988415394059784409915783265032211656348203524710022634503242424854610345184648106713587001561977617300798180275652347896859955505894247291016725020013169842684027040393692117835728385726602057288392896258114071555247429368099539772737864457610366394607965977221975426128155109752159080841235231248420680991846505510784005314884303948820406091715011749385667983731928460811734309196013032822954186549144571879729152198613949880906474984547278821677056574617122296807276504004275315402228340251164864983506699033933265550379477867499282795143043177883284671551183223737614153617102786009072743253602697280512458019874228999025667888582407772142953513826297801518044140148358780104230841100355875929414706447832955532437356619864154808611310091096710311441195308194387153034671107767207071966270575136204178088462460456975148948700763479246930330786983016961840811906259078272603381891255704605759244387456274910979017972772026080957723406708179115737146785071966386619906082022868665424914405086891869946772213846735883372206055930995865313120023944209594157185057101346499154073210574076289959203503199851834567296858781010189493729516322593903300032932436069454297214101820987876272569314293767044184099092996930275286990782830629428311669549599676176778035229961832657917154612594569239405207617331141488082544662322674345840446764418593458649683126008617385408120534714335421625001169161890099745953864066564987079276725091740073905496641455543709390454050669309826509166365268015404904765380364523679038343841182203794658218017434457006899561304880871550359717213203917771690007084889563673337890759702657745120001668659873189516852125744959342963955923424870477643553102358457108823600837178240958103175772467829475319566386906614075043637845099627326662782230972134440919005409760634159148145751752787489901559607052883952164211109609296420008230515040409434983061391856395986043288393042511131147558014279048250313485536087612009697142692757714040529204951487013490533466978228283158793129511692779060531423184694408328710803973199275076177607111652768741106026779736852320143572314026528030065295973957892095391115359460363982355862993117663148338396056607528047497741505853215735754205576883416089529038834928018177663418003953542285921060138328447121926214888355142189499834407631937501337742947198293989875062923576216486676583494242566627127004413929528575830613549502080739179965264230990723615053165418473092403443424097402351061414060393824249309293992135463157010852004159722582535317192944739228552741843184392565058323236685666782733388886166445651580206067446491347746885209728129106577056084920011694727244559520879745126717997131795277777548686296824214051571313980448493296910570622126420074792915478586592849622361275271338546184330963883869938451335788302871191520754540640591080952624028474747755707898383600106237908809144097041390221777717462186491685563723670461231082617171282729592171313325729931410290012101975956748157767747172242523913372905346010582748512707297007356330432870468196360161030963473194637301156717471353599671052903814444273723602537612558705011099493405431640217924252065187106178589841431128435398473612462386516720539076229084154451140640417559369632857413488484583215826747966002194685387365505064246491974874265628199008686190969130419494315270078711645921231185949145195277073430368226908074028263873350801081738047386755682508647828954337696884632464556888520523026902395945338785499012143416832429011963091411411379389204257821400050115098168161078366781817113054912564820123055724724398030465315461845121270173626452633915863578840795979537905052456272673884468961578001665993229685012854944434994467059610430050680968126386774613682397804342425194113509290816683445373675273444159508749060665257883424700982272663062463287441877729127793282748267043659289310029064179460050946509224478887771616786331062230918506689398565545656278868520874436940933407323764421964934345024712729526650264891708457288789956626809767957062875474150120187856072358081833530069036778097044180046068038135426872711151838465620774033722826890843482866776326105532468309439471276608244593342573395259927537926797622999731842267795119916792047655213473262397375785772738546577159493752512177749237242934182333397654548729958119647156306689164143548439915160946883729819901293306425167556848573376722029262288737029981701220406246803456734484383189524216862021261467230506065678630071874846872271897897257218763120197777608069174828620623657221212520127205131008983969918751507865441280226659427323937843736595804005100063664739703998335372378706224718256582850570289537343524817951778910688073057343157225213204900147391440390163627263946263821090369221250917893044230179737854191790354795583949873460014314351960647377059927498771393802472326928813410298805609502665781069620621683700001169921195225553588992165624363341502482395565500710985048290471632513083263697222086835104919594134069091021207695244899693416269131161718180638151233838034079361964588390552898814756125954649927424660798879965503141062006022430459167659717423833162752992827831318382545709874653954209400552117539061210455324349822004014840556471438684804861480435262650405320652683476243126147376540203739912193355800160223887722671969073183629027366927382020753092143533972807292377645072080747019263724318198191189620921116849292417453372651760206712385606730770829297647242136991189968769274375068088631263608576251619113657305787285131183526003903468710247354862404585788411963665308178339411021946993094430035641463718126894044579446624440652670033032293786448709099985371469796714901660790841362894343924768513154158848468648420542836439223873350703826175014364216156274007726566767078171454196435367221828363336287942864561987439883072636482589242812203942180330635820762085701536242358738477245515024749390899160850342929514904066418724751469001115147749971435405125264763467618311281451746783107292576438865338262595646108985890829595967139143934594965553760737229237659119871945926962184218554916530202717673321843784372422145766959699092918110404090487171718677540011060475957692614562176378879468993092190509021759287132415438241406495838290976987457087079358597044597619981351085272787958742169201169502738146061014572678818821194446996460039039436407672484706085615867250405830204020433980096314417268843093247219251036041113314726630268077361826023281725124407332227218239985970599860752285690618400858514179550282664108691211223845610512313302352648743626328905166532914370334331692562586696638876407521717936744872218452744853987565175637338366258576298670562567361831356259900483159450176106103195665732417071649710978678927762356078243759021450760574379391318755767803430207910144502806438866196711857862529434677581015952067174497235518143198003869602282564934244715628286538649782120670996252053852370839054869759707309838272789739829142162457909541351118226223771072455763689116053328050324585165441705424598137352211276791784167391328975071978240374856694642560957242741359784175771721632692005866566268430358878249653115506558228586517509673303204932804634442446680044136710144082472603171052598426797224506976767008338338694281684460356427814163535570092931033764805609793878885992341862502892231434346526996756210472189570210910922976226735153976418078422144507289831780276197127122571062295895050264332561592173047274468689180156992115855480207218504138863291943583085766852866330604186389281890568667307257599607902013229597835504067543057732388508257696958978208595001702320749244009136388841417735230834383514790368215877823267366810971020065160489681064314772549508982623008273009271136554177938272165278414262192390137667299196530046656340590868990046135304884966591479380449799109000019930816585561601716259097076560766147123437134082749839993547118178540391709797792177874406712154348928275732806085034902317107953156534706047250689710984202972208929394409709183564265892494833360208814662139356269798472628665995312239419722723671983169860203095232839895555175842592097784273194786214794441391426680112695262749722456431824379704755147716654996658832308899899251375380274933201535836693856537564444787126930462692621477822590389121150727936658663954633044474049211576375468725099742381259836268897570795341834388869103555197578480282104723474942672404849108062466123080066197156428455448668570482227982373712475376946895312923434383422716855791205052361760202326319417810447725887048409551616953108071662042049647328612970352235442567590528033684240570008184162971413426444715560506525532851954889550969709512785756799583771057019974138631061415141008746117273062830735339781493185443307839559139878682463069561201081735728698095101183205402090152494226966838111109179657062990287435604252175083545667464285801987699567940283280344615888074347867885890146161008666440676829821903627940550095750686079943881254940603292248401284031273272636716824758483712190945878173077766067167926803379653406236045074906374799387596957794458517900871171568977460180370450801403826181858144681120149479601680405712134612207294056550712168401846160340029293014770378481086745971900028484748346801231199954006960357481433934033190485462313571552803667834530401204433166919184611422226181633793153699848825390341651779780418962677700504317412790647954510481623779178373793143259277037252668560409125958598589590405728827676674171895009856381705948164356464874022366603557395671661338515316973958139232999485844824639475538146806833262879582498637942932073411995666581481871324540265518464584041195652434800177567749368128839150900980011355888146295097893244250538771494553777190678387522542081022953934664551926730120552747215337249006759179877105509622051529909881245083285845910363458775226851390186106137829414737423143646135557180898167816093744492230394521833894616763151764203651207540024504977182285860058504687162218868791376251383538005193193702727175798131644673510449009532528842546093071327782192707281291697807225961314245570363537250474611868789351769251101660881439989822405531507613878531158211727765366723053243981979666149401848680565963846120158514808974653451297216431432681685187791877392121916783813446787550501088613523411663752361798853826202723429657582286085646341591513335371870439998388346873837211883277546940920987952637081148842615430160642229237884062468646346360204005858623763020096547719293657669102800909233045799402528648652620975594578418729839529929031537858974923468864006033042961348812981321117317059779566614989337585307943472377610342167791250471845779994072174958708540126869633065247781314831531116559525856132670798861053244292374773258606673733598489373909771736299973918980297735713898145091843477622478379359550897591606604070853612694499635680846262830490342263816307940666084844738205739270804874145326711740321528863041769391045847849976364499732021780905347445168303096785761210665888083576628234527183320866604550281681114929401664692469749683343890209615873523697229203055557088332882361308472032759916360956856408393078604156216992644160975848285514196891649249227087540653359238018450653546701459476847641234391013949925869962752703740132475175713038673562734640509795718660418422945544240737476076702070742200188880810581695038663762082254788516991539803665278123637050418801470280537013697126998315583166799954543479130008560832483458451607347672102052947463913228599308997895026783542580523359003362851413228718022564011169270362561139730366801910391892585035781565090683975786156337797743587254692078796904551821653277822750272930988065316291830301536703276739969478049795421868440743128389923890778248576670717751150760407112171996257525668073925315641952215822641141489969663118296648710699718455386972216527258736255228019995305662418331404027827480739850650217019962998685397043662962844890268597039221224343544761770668214949441438609320437084665217647017327260100177584760667546566549600379778592860774476689902582307031833457588763172999800697979235297613043780113845696701451006596799114327732722517520463714700387835500300025772236856004032009323068755376178328757731997193981877042824675502373354557682124947004286899562476574479247525460238471089073130840329940209516059086678570211857081417730559267831097017244973618526548109041098366355401954512401470118563346308452382969772425941937415650330634171150843754927942399793459217125248938412582527103670982167382083114758171440393102154836226571069906081347363537236220915719862526511165136212920639953438308674134772594761732991661385545994164908242356276090348330046424475863717826126037389749542906192135862436541975345991043773304442022605447731775243482199835908212651282730360441632719831623238794495859075781557323362606241869830332707336084591761610771298892611921441748711609088916789526345478860585279986845121367037138705256427161724267307575614232766576631859120973384384918868299015169730092856975549741088335844701350286032585660963913835367878483342900031026850176967509788597120552299952055710500910670675182889717122925875037614074238281223344240519073191926638066693049444485672004557318629462627629858280187838403105147088042697975310296236938473683241486205773121069316362743892518548644894366825985588224406773188588790250922185181739467319073813165363206444526858484409403259878336321630451697433923559912198268236165251785464287850561520908522868791815716954679921298761187603095496363920778192191000317028746239060632571309093506270508273977996765599842427124165794698115681720433094779155653635777704018013851834909221895783039389147731131348863223006832505626119415066976839983983128217841156636365382456920794243004280647441508927611745566846797512275670948568709403877139081883792796789286182134356708751419324368542139293682174719864426905849126720680197194716339396616496610943180587511589207110878179840324587099842074275864636163049797273898894149881414068055776294972069237458977061181046178332573380799273409496900726030804596335264468023455091153980856648443994935720332858369323539096975236442486705685010170339281896334185744764344939763007888163244235065524460752860263751163102938964693602950984081679468274555894762222408439793407549286081185667452731418043819564812836626939355467682790419245828076129388481969143557178587496156173210102867070987894760825536034129809212698077889165959970338216979084927417886642950273551326564530603727617844105429684180750364508103706793647382370694951016193401939540017656373206437615448326453318298397632019520956287163533980952482949425192059412893557501599086456275277296946257863513834540625781594190917756951717887927008980537744040577931629301914123392481047736763230743794759751764871658155161384254894788931246371476832196373175366481476848506470548073685794236632247762721142337263401157725135880440566194220172298958817638511875649521137073035156937140696304653109817358814407610334136573710217845167529092071102321439519598875688574843606551306817970657113478064091001943833998566404434329234656111242472374012736138081155852813279111966085434471614415526771850515437896761439099775613768446805455959435251915541287632361485882448330694830036865353174552576669495376426743179764821581464704689271911446529352923555182030326300714432489293689293652993956354116263385214889051052117356080909384582776643724572971041315239211696740213810041774779192741556413380940435286237105714756708685834466890259482596137866412401033465565140267287442989343319376544225886471143152497593018511602886609027512299129622614440684182675459665046378975537233672597551297109572139843415321548306407697395594481811838257053936811747725198009730687863667545092081013225473171075351668766982905974536748576523719466447766302135160398085661134915242084552868624890394607153462359140009840300831425461494274869228380048284588175720631541305917047932379335299172868286954999409722783015428058108352545822404001609562761001740392965012956896665381312909318763178360626489646153811377112680549239342841491121694418748305540829995320457691499524183561074447897789053821891152781152551550123931588972834328873958206532323251860377883952945793269663005368697323582218303526238594949016618531911524474050863464308717150221170627209191918823049063274486862974588621145645722872460510785688573750991806500232739062102125759299362292663968234580633193739258400766790805900246559060478041342349636923122066010579339465566437357335374855887028864961343265002640637376818191613415052934820013491221297293219378274663657437736801233585785653133126629052582742197663014217813826745104768218955307044690136763534496011243277856093390901611596670119729764143314804957884602736446520707434437426703737103599927791371840385771078651689475351716870358829301909318732791340526236831875884955704069894606250664245051048120976553036939427448319834165203025602270294970130406010796602097567353828918216806850907567092591231439077806729232516652637738247731427100225495398045296290133596144400842423643386718673538455442925403518312413530034169672691239846126150704487713878864662557963753896996915891817142945106259733834858062144854352234866186386601340455458651421121223537598412256006199978130398171855238273104193870790247730464996816407151857177667052498754113929605707287321136003103633229064312632877430544626560245918346624977388382672574150044008227620559732129055234889281681925557454285415528279333643831329970382891758666430029205274706247037476019688076471009200121354568985350396132767202060900170470336704421164200375984546622719818574690542554563083060546442233332007020587032027271377290546869693747125523516731787415387143827091811808951076160265474639157431964518217411024876559566540443777851136149685462509796758421719601742184088232890412969366949695279611116728845644627585847730521491704510468616864287153678086083023461812684889574063339999463917124207994147244177449970938336107228285707036387797494960704674140968556714069486965608963435027566132074384295206711332481017521272556537593495653581075265802912700648990951187665176332086365882968671914733548981907512361010803910733534394920174360578265412917573265579098460309749104667631068212631791628164086903901142901996714821763485676488020974745250842876436234269955232076764888553981705003931911155743956641474678135176132523614982564521009650600427075313513661002079278794957786254873910242286310940511333966239333153689069232816963052020979989992242179135712525697968612400448864823071827834583709515715664148416609312596215551357863096632785693950571945267684522983809850570620530453283151694316782601258844465709944242394963189030618129200704106375022979908398258633078881849865138328480550416955121114165761746384576437593470619733006142050877831209534510862875752472974653559024154867517012088734042079385425780879938722348031222545331649947717963019465294957137797096290074313794502037387891461673132619204144339509704690317262579451370758469381070027445444343370924199421651885660941057800786658368716228026517285759105475605043457346071981464986522935847706534760931470783715687581167317672189722766927895784412244764347470223766884187571697674280253196386911710449813855920701297195559611716779228098571775002201645736539879723914346145149736717707564664482380411466093823725555727346802871944229834712682493411111078534729333826365613277939839770321485617229253791189101405817433895559246104438938308805205045876900157195969370583795984563747312275040980250977378386899227176427974956031293146136780375884824467387003592486952034282416185078709549755901106381709189980678950639650952629922972914433813348288583978148136900738041131448809589982840615106801770228264415028782944225054317729481490612452572098074251114353000482660128692669649223335384717900988428502223116412949358661153853742655297944465562536807653819257902064652970655024636979697770931235589667724999855290343015750284118911335913689024934216241092523357463383883400482950046740769226997479492631746152534992280168366203528347950285006657512159617963492585776579370584955736075719316654066727049392757537827935134152142734121610405003714024470302542816746145567036650053160788842720578707670742025922484523863051444722055337477675776067036005889434332562108386438316061589308718525447378101256778603344603656232281216715457161303024429775560873093353901404338975689110770411122549427414423605321320093993014393786247846309638280287951722459456163136415525922457234105537760957036186195275691551240592662433002498765035082605099070583204180757387351814234426441938353889524851522485820631635114730436755252143802342971506802665730362199536314152240771560955484939298058722127278898828373333164138011422981186863879987589052170177677404092013224206907453591142684843353704537890824476886892835079356185990525009594368949219982867942686502668813263416155861395450027720616424674938733784354603229469792698799931029237627232713870376772795433488941988043360621618973661556002434549153305720457127535110704478767143087079709063068185181509666460386046462573469424383247064894279104840934757411415453392206383088025217941317440210511389580856505313391588556594077084408177555004110873574894773829047945658781310413552434204695054373460479245404719903490665659387241804258884610708841698175253160365322768795881242789816889439714077272002277529689318708220413972932598945614029470587881847370052605118840549364424937764810641832083995219862030795125899883114238755622992953712105809607934431972355917536135234063093306166822462362754935495306015995146655276560455199246786505298727383548869936455998956313888973325751098755965728222215223549075262108620967848391450927265677203755886981841414156380306572832447679080782849391356124526252908907983211591848390336188371349351640332785192706265839498751518271300268405274796433690090530624614949616747384128332188874736672679152397665831996472064395673516955642813868727267733672866570997432045372792053918706492171409848013928790807281959781607186010160691429563479531300533847727423328414051286169830318961168335932882029353262606447652373317684034125132961028448581872560823034894591840906365767478492969576430576967761980249965513541240269008007701061272793009504260103960590176339325308775222497267047410458333245273471582804853453989621492908362291709085461686076666819354808733150145817928539367556908314876875603518938841158867626350259944596891161425340432839539024191967190356991286528768880334510165208380479842506296842206288918491678917883795179697858196781103793519929065896366754381610979798509868201256063008194870072225557308577812592881917913110362786020413810651896067031586520112623685304302177542457915126005891098418043087689406385393646561440791648656464066598388567276043900233484544872878894344659225616204311396965511246248769476578673424097765338867902357670382884216022486846046885195907909996702594529930803171826677724895180699714222918622431320471803872950003484731284804502363168275550040769668677869520030319239018185502997372979985523285930398395562980807078787391731166634119836610399388683447232426405469123068242093149650955600696187655732986497201189340130511375066248235408051985284992612949280863821939458552076679548601392426715262556557790575445903086460735869341913034314158163906967363892991179393870458170726935267149423528782075676378669144345245918818536866761305296528120116199805257559957495512886714524869149327140993336990939840949233345888419789078764678787123321261799635435501417884610879234057499672307673616576994402110017412132212910076968706477400657472072035812226804202731874173553769691077647046352566322905032705224086939399054913495185487663293100086206069463990742967741126945108198861294939282666743257165244183578340230775573463404445923707529889509539914831815359633639474201277782302171416755285950485799258383318377056152503465422078728772210330274379134883004131260756391015643848210436133948590389446462534016578911656191916525675725467017623625470615535593862316948385242779625862699526298447820781935612522482793096660933200576241036279287854576843331682419196152789782572492114524399144453513280465205787804465581297580775772586022490190792627664066464899493723768779833080674371386532821136041945145275590343951277437381312413891184464216222518967939993258829479430359270893592045843253175991224895925818386422105556809209657557890697133926848129906376545903113395658296142695142219350946235248670970916779619228689382991433470906084242789097696023429146294721348671958163549232347364787260803345988695127972572277455889484247781409685340917853869429679653538143116646447890291779959692583021502265218580191309185096551574755785516059833785700230174873829283216213558743219060541574958519568429209307684251972230836921174434405276164843870358214655888408040238517414478013480949654444065638550820600830283913239062458950179168482132464467902470760406094781368553637369327971702994890037796635880051648982704999207187069350183238741140710979902636554463989109160103903324024289492306413044715076950548358864622241773619439197617611103232661033639160821886606200556336039308742866355706275275639231298995471553939800974176757771456769580738982275553093936098869769628083958604619939258915530207952609036514159332949198210719505378594822201312433566637963612575724559934336339014078928577215789464159254572336547201978931498146900939428751358618713792598429287102853617086082931745620180146291741791012194319900538289271317960215532952224144973418862660789997614296046095383964811496995560261960735364290411104522603872282517649009883003224118693600481720062999890553151094503096140317396623801757390811439862258912910143341010640570481654653757182540358832177976854152129233867260619351726820031995875465026131388302640138852984677585576098856234335037123326841750428857130428028359306726792510723755447322538352480600715431759504023801694893029863655729767748928442178785585005209914399626524625449596910070980753079919986657575963904127530070877165292853086974924634952365661479008693344006561460545314949025379829261946113260472967245224986066850236554446781879543936908731220893050735779430695873177801939673699220378078018669770594999533270564898787687960059128697356356228776427699632097767192851156071008897223719505644934195377143654796242080587123462993205170336384994513011292697018165545925936275021235228337619370199033173363214489782559173965618063942103623169875366199516905188580575670464090374232674956517964367300565826101758063214817448520292261789775264425360793856526350045427841405641789245757877792100072713982712133082173707235364855893883371755191279532821791870306053620401464021236935048959149676538635623345136067553548891105251856540307269296540618300040333744403876916447478646098561463457970632895489841415906024888133940677913589602496250670106013997719072675460640694965180833511678536531395709819555231314754098708874619724108702722498065004481295372238445757018749475717477427488141523261441480504062855735981771993619087522206783587642370626743653185077617011666553631730193946976202571368242853448232305788172056520164938316051311022579731562912601918819742262603626112272847541573214815322889542251440269580232130497641576211432717090661573661601321433807919744490476817504122970577695456222565014718957296789596628461527107690720705527989022791728990719244671928843887815121698179450824877105069973544292087397537236184584987548574872800434094491884893588146929237517326366476955916655109255385079161142252114586297789786518815267068717232595332824770931914004577648925136534215351371725073132453136407283863020718108162245685290206390684276900114383419038532826359440357004762782235062386477621301967499988387190718571898833350955269637118694297383198956106058332424000075690331588199557390064657986696483222098354498017877858337630418326968024022668169757578633914006562823303586866452908810476611898713300363285100417466283913696788071908783782836182384389701018003303584976202177497742226510981080798911195801415855712546534636560528660160584164614434108671807300995622234295335356712217297338340691100932117541939640895143606398928865527372530401301109034089742433331075994041799568297577489359735165089897964755674093574661954083011589930349676037626489445399149384877305694445196903710027595498638753112285649763165071493812998794104087081139792697780270097938935803876691272944764993312370954479990039799225633307241729901986671221642835223545521250023353642466805852532131610768506734752382848132151270050647520778608015051848194408061270095535697743359290331189235966564997344675569239316204866007357379903115218585821206894082084996772147775557787781588621482131987600820516717117469148337812865864471989460245745244294122615794902379056998205818543887012380640602947668954049850328086849061573881207723046328054601682517575375821534871484616516276968795724044154554109916653346055312916099402207875549037598770009567163370351975854572739874365931515767703051639096172756842875490569289388775475221659896978788104356510673828068613900107919037196231112768745807613232172078795760072531483248615600104024660675465846757548341078314693267026364740726828464615208333979049737624047381953981579889172345491656953774550724262224922757191905883728133038135258363511335269629244219572717353609548224966628940746677376785345557083946218732931794177916499020956238335421166026718753503812941773023649085877432515012582724591258943951545426868589607985942675463707227206954711908477340519106490819544241190717254591568436362438836642552554804482866803456708399891142110081016194747299503080656519688029893986700084916067424261097590797145331136132589519686272305947793651208898234452704891217642312196979175871855748400504007132463184692652568324137671404415077541879277051098490159642470646837344297216843676223082405216500041004898659474407536843639753737678068131259629759851181609324616069025657237739879840043017156410734696979789056566612604396757979840567943553588312726465810952175080932697403262206960969706582827096586314483615982334473180578313370328644116882332101738911693261616460164764036418960448044596517062261449594938601430065107237692933655240757429700669658344698160707244906873373172277860345813787380572094152833626959194278135065573264606868673903270534235077250293794029966944681981454479632429351998627892851401074140507843840679744452829885573199119651295088965125960344785802389051610551486788110276938785738923915574127724709933493408327742749023110249538743606164978923171259842126885527097455779176362654032710215074126364084732664045797509805018903134729246650937545421379886430615348062619422120282303789930390174508755850027164580780289573482130722304828036414199764731350813966574495519158838721372469016162487049777921600950399799812061251833783707802456410911985775475672797453479307120283418349387057949545888636523960668298114447824209799821524696952504502714951266986206851802351434823046549945703898408260618279300772178796225567610862301990688615308432931574880018113306241653931206202394225645322953054479928757347540802838141065446129866792859969036650631932548245094006933133027733243157692325043279206642423045646428036666394392004775648712834500176335765992422831732258119837207503111552119963957391748823951953174731734354486057941313518795480836666982958786069307928723781117501147161710182008996804495497462374227743394990220721799819130612093269731659704252707117720222994574659669309644598531821313623668894628185896547215543319400386923800312111352840360282929632173014192555373162139989457979555830146803399836042716356369408890256234487338971041807403935910624224482344783491820735602270739858896377273343229021137973052174894389837536137112500301965967830763812628332309842108077052338481069850969819114855400725155538780756729444784635986561811941054975186609604307688950059880924380581537318822957509237733855511543384735579244633752917538185778011172651629265573942670645578422286977813439419366010370002836270826739420565054795167247131316385458475276961876230938353302645277175925194276476583859077357980737210212739113543704543740633783734583796492079855964994438600675893362408604170823242917788980963851397258906466843105185110838747249963895293691262434850694599480035646541538258166906656376977491932936663265254381147726331970285867100458374621419854597881932189440490780393693005856893224891058877954729803097997316501115192868852852949045583518237385228780882985923346354981805966331873311374022909820847286108562271098548872213979815845784545852689987597905441760546730572737433929172230465651173588314347290203478475779870641687195594106112708277444336708856814760073254809803611809124243627626190934554033956733166376454427545929884319440121859638867496851468124729426051853822767711793420402670584211972320910707732729943224262038582857172479980928995874307541813626127916862269332392585367034052038746499807764477564244867277797134467728010645745318495143557048172969653370978228998303209089979345041485306543101359515117977021170399474131093439533254460257066305058830971780345291599964856440318137012011099568965404654562434279366829131977155982769811298696451473667896126020895567296286872990595271682197823076553685644394813676590254559438271830992481393621833041715641404821409105362944730805005933773059448930434462190544961380948534163110261464126126888605330045052689528087101142054228580075226316118817431901567022840292270316124039168072609482978031778392500830328888283654150387222086138460570555936002152667851501288123846510276062176127613362980226405548522323535285312983684603653975886719364837824086420106772185149512323359069254402600940419749290859400763712018318551218423902700333991709413848145864350681713954069929569383272557764147406509047999565308054183272589202657733924018872002694464951833574289891255332757874432724379412783079647486780721274318333528243005740560708209468144813033307144344295839467920689200799819386934677515890220387085109873621909115609632745244127980135604130121100628168787188385398980337252691814725433182141252644282218541950384046921415450282909720293291599622250502905971277337110795944199775406602887804464847082023282748031281846513096628182437872049866713642794875149215158219123718494878966424477859246021293917085833349512095513814523200256019190934501133136831407630534403119401675444301415159331742546407029661719943016743497030776851343644461251741349417912157944833010496732624516161598056542816067087892255950063945186028416844024121254859961708426098624545427980571469467497848574022090882692771422056742942573760520954624597244129153573366848770322827392701576328873313034510347162266403463743084445917197017026377009272665068301456827305162230331840958418907044305031143126641394763521853432216374615799370800108454244495379418657332853833351511410189346010158620190283815644535798755023178230724832816284228338368615237790299697128828615885257811636971089307744426786869078070154087673141187358685205646911469736781271712206500953565487195401022718936028570121215316758110506964571235426170841558153772691432216142004520353631421054125192873643939323525117901852457684310874858524785296683463714193087303335719481009126523237951164235919904683929208524043501707650691819327115824458089738491645286250745335730834113298324224547632027362217864093721296394072660722122040994986900708232069350112716921346726600982791050293345012313570447211156327119208955818872410018183747177964979594173297740390518780014731402983122973366842251990368087736130283208918077295813095047314431585727918623837593382240477032476802445964603567364970552065041405505934294235683387753870928533667650888355753226537690413113944337946118573295693997235600779729896657390166635489969668438529132310856874889838768422643813525514435661425766924197236274547009468993135465708575990410896265630319140468319131797447152456992458556688409934935437182270891034344271068072029484318418147879008531408309866531253672448258396567785785611138664981542574774852232551148811372127634222780352482913290614640793266070320244769603203646658173098791852662523704241771800551865972844551186526749429550111044885857817950093893610482281524833715339040346703298762890037856397803766249393490625725516127411079822190285987551124920220823326437239191304341040333628032526663016345678769407423555431520607728285931769505137210097035715949739679674681503195240809159112481438327190246534397075477130383907793654979279281189074948649566379886463108647849097658163533671781582547220384207978160771857181470357480098035710407110240820252722301499217236153742489103786982072840731251608414840069336966498275021073572249656143723058473339601856096563165980608814524616535997931242770573970275294063768957576455521042161764045258574473500572168796498134458573462377225656110273407925167197927610832391575355437085472125726015893221294603409247455443884701813411661170743431570771764598408965706536009280779576585734349864096846919962870139976369529969529338816188499356937085226360178466704964810634180540104396000979770718745989107921350262468678050859622776224201399172607575372215610729241701477820165443618719396529555681414309451525849549625972047858685546001648673425544275356626010788405387010031746740794281906352149898875699354995752187347590654351473654831634307577356585892853852286501679422566301484568041349047816320503846080055323487609172925698797364335851051127656707077555798981297736409104290249188292425676111739423613473574117674689584475892068488418634140272144029115546773443297750629536994933762454796801975909187720164806459066157821976626367125516581522791092775381828106425803202356484970271984329667331270870074788422805957634431573158867173914241526150239210410915642365037813846207155745117932701066457496224705922278215592725550905065909523211053356241218159364296652372138766045260084287631462817365107039560602968345411889241169398976905610434235541109105758153781762450293191948764137866349932766209051442896973023827974294833712877248573934779986010628781741371722119261324800533820198143712601449390897563668841934200080341542266778539138529068767621194830548277169396972027657791212853914191648050192446205698164249816893005946698892226832988249318467296659258649423628711684456389612922793481176472181211872459595130791499653019486156983634603954973642204886312692548838123063468067889029937747789767872064695129381762732697893588511794062999412460596720501861315536993644891910949869860245755333198847071677146181737693946866159777834803839350028237314115616615328717800731655223589736474126494454439401814856069988976075566618171750361633754712790932775843714697503705477434846651521527209108512714744887096712132264575181262578459698999598749934224916572522521062415590164130120249823464929586820373513099980986420519453677883856263202912323894585249701907595822384813863505597738838055243819853494496955406242698917022145966663235536278983494555116166200589520539733905719590338450703240723400613746359430796773257233758263401459663174799957997780768700256265420689347669692214245080550432199919836772968942566290646724777775334311255185875985354662019623071119410551391440938351545855359050082405519369223341665040282919744397743972905054409160713056998860778504896346648377259761850618700759941371177443860202534602964853582362980771827442359328097521905719297873860622516887314293891901861815038313325968992790775818532549627423548751455923051831625287660576271010941694549221696507239504943313528825579842893718947503138496037306019789852349543257350118124511121847673518021894837083166135299741315038489458791112108945808424039442207815527327377506405093340106667745169338956632437293227186483660819116359479576540989328019940448158054239402104281078900303637835693562757189371743958397832997435552454601200512363590246555297010620255643045123726769746064666051598099952529479288812854162361672957817598244432769166896652671673170129746619703701238376182748847849545311203510792223197686625700514359740307508176702095735170739761016854959157559205545881798935556956979676427047782659512285118137688154714788895223161029879127880085154515930660723971716381654099765556872195388818151530080005408395981366318199373401300126009852732825317532268787834044448815516307305677565355388193065952556355102224999115997323683574564112869970518710051979365104239742524405104558146449043705963178309901818847774234780251415008206658195736670852165086037207937667817823385869751754973753816340396727786447660836103569060697691366004267013725826549690255405384914198521755513141119113811927199800884772061166996585393411926044187032835144862573761020458430554150976425912888572644029853436781870998594899142987747308689810872993194674514308659190758163775663612198733572873970671765887100580711721655976272280463939470504862419779643300923961802813456337496957766428618075083303552422474840010226185806242592650958646933006824577903729628541288524303737990499767448993585918004092193778117345480744196746386507497211221017725457418843505750336712583995073234941076608849031843499779987105447209435632314856568712720096873231074094370055920397919322277250979204361107580260059277297713938295523323679966349832914382073615355737591575254505229607317454837718762335612633554220935634171844621686206584520779979454982947229494861462266034864516870101651257390329478797931576594963924977281194791929890599208680705986977327562529929658701033653990523737160522590310816649190153951770762006967408251056505283480641618855004164187325197083716254712371315664815189495071239939777419394224090517403695167192061350625968641860123727831296326404108396107772347982591861202957376626543556559019775386035242820906864916574280791806959696623593453664753509593404896863892295122930804717571004204425886155198204447477615365617794889534113427397948923316448545379657912347614957758023314112983848900989754488744935707309158782063622251994345368905332311277762014045207716950220118945079535019534710766306593804231543466945854308287551315517156540565434056828577593021021402892157331792477732652259312277036042464151206186685977578965967350801973288716700869760917974052725712442738498589723045484946318238995483171425132108445870149496547005870285380222655075936043855033606500143590481770481532364919093875128500824617305241006351820280909907437536750797575596753576719999609685529652285729968931449564805987075991479241917439868384720839333045138715214969304749729896379160906641699091387080302226035389486346851935924274027876906769793564517996349233827886943527544625175463637058390256233607195657925210544981941394516818647527223370055138446891444488923216901996752518313725885519364846774887383005330200215017700363993103395028900009148850483247388421189384017296794207103508514690098003683177952299620152849110235976576865561386827398065485880182339189681825677566239384408540171598118150283735300085001477851740055897161863007019013014303710152285922469318222710442817606373878792814199106693063631196453621991697838155090484513575706114088636454144969475371915397978653447100966691730996434990042138061684525893342037813207260776874072644207519616196719585956891151420765027632163359213036375271279907717164726710409799971149457708526125309888607552528834386931305992651703864030155123751130782472337888989059864602114468761897626686753630521681612759680190712826330528548259266697792770624682922321140127620412193705692665333268845951766290605480061322439662823436758444425010506051338400805937508427889703983369397593069590160111775180775821134320299767435382572679953491357657109824445171480629101536816517584313347093477316025592945138883438963653300963034048516921843226705356945804017855509591030412062146240765780127797423953747918262952401435983101105292813550511715280146481705216192302695485468471016488352811084321950890012079696627404696957901527002388279797863911723361526029391322574340773519336324927746794369064679226685312992556544836811692307916684971262115129468916340199278908428654359182267056549965404222308580737657931121680543924533306338981337022739313961899283543136258387447047090573179513631046111127633149064262561692844216414035767322552185342131388601140478452376655295168227593822670106429690420430934724502203493179730543729667864527068507085921688257974255132368133719109539535929320818981267607460479121343396864374620303218981355419654704218925902748671639881842378517269002399577088894291315391066020491084883131826408391892850531859205460993926294099717528384155890776664800709848589695361943578450794301772665491294377704796298098729579892611275464949776457087813294918149988903228310684495856775424789643176434103380067706358560265865482095446260118690381396174399275636944340256497800013143378143934192806587894416954438520328472445983521523001605981340989682816739139707409302497800057124843872906395634690892305788392776944132934687367262265797846165707345566638431657691417070848888047242435336211134520228660494174787740691534023576482842121309515327647544150782994699585362613957820151049681926963875147321842607654302872011355541298066619900039496716525116347253714174165548042069454355276125430936643474566357745888063327591907450540183280409082332167145074315816478846666436416454328646827766089201147050209503643475744291561189148379648242634936631509965777264598989127535298815963158324949550716635151373090226260784888792255387317689527182084190796073570734658047731833765713788177756501732502275490581888189466443823819037144031529833068954657754310367764230881566651959992433798459525862354071461742143870222461919184339296572233849217064907100910199441578016855416620291689023910517251201557898211803337057198237309544849814565736339359539272953286627938727676954112621003733144221328318746290567905994380762450951998090041308995756411492823088045252837890686092604396091626157400778522574711731779567429251228482431360448320482249330801339630549392148546653580689018248247010600812156987292709650094492693171140576778721737120807555680494730145812085923589145431335488909127536182863262970123334660822714768017186862973667849635234491862786171191513925702920352207548670512445006350838287557418986411510526197106227292069020153129945713588100780381305304726185884898355543305551884254397560003406866913874439408217096724220618784415340122944424091756718745483596666121840556909829313272788315214278672160915996150469841450140350253500130396747127312232496616442799250640511667084598163877833592044909754034061269414711120412501099871788588141605871801272476105589286079233556354293847465282785124316867129924585592764643957334758128336230950649882210568833091663526341209823385979909435827545552737780653112781616819197815009264110647616145468040130161127953547002229884868641715057318933790444547740079586055423626434065169053255667704538222491223768763771302280787270056341791577990019340579339258323576906553486258389587724452385299430487030977049179452364089405296326377799107386743302887046734388343588518735812348497617050791426703851073449177130512911794783114879938169905995772114378677858836311595015788456314384056572481197960371581010100628634960207816673329985878330010155886415982466232890890637613490339027555406634939376094758510421445418276333387960533177872414047680882921904618254180382920785637715352900411737705402290377034778739910912150378031733671809109986451229952040867453552308682943949087991909231491551850215648288905827921003647297229180324597742692426981594710187704297786898965382841359733426183858840481130537277459388842450999825418944133727292964987989215740593244874693608078899213348091299358093132005749289612504812219448702291711174984929411725348095045629007088362291938858017882638638719972001136692423131975890865155088007467404354119038313240244220192974615531255223766326884702036811755284580748616947636961442947347861061922065925868351762696144482856147676623102967724803779977814705906110314045771029825819594815593063552537066331453168469493880337339071414608898575248911378165778212072086836733213583057870935677097861422316964278002015769379209936001402790289676010394920182291476223549165034353321999861231092178446053197881421222540887670811524200055062266355424287120959210458459377476336777839607467320991938501249289947697719219654436315551885824518039416497712192752635548794518504131562575773646049007305948393471251496041503689536819186254313424269075259539036317079130096938303280464708175931745744591936791263377530443580451206829279338521148607859168894227002894266087491450171461477230351026301404729902047105138409288386184769097292892712839788679813982528593609647705760730691099052683870179704709216985561234276417767339590997022592848657389137156491003868766382164120356482183780143258669191135423337456772501120904819247351373211926444267942433577107598739355321223116029323005407076497944688252149204389427689265388154865601935147769318168932640776679951971471431927363263559564190089422160564957996677808540131385967483225872360162514428151765709034894476775285496657543296501664209124275139155082588147132807390830625103683151664783377310987334810069228151688100688228727848039857543855511474940159944390605853028927640031200742125420913842746611396527487583875202338506285848370759950562221695492353851595250904023788177906661831069874327111920350246028472671442269765936360274581305714912526191431712865105126899432169878629047025547184419703732496146012415040377986143694181359580627444343573845246584143232477322241104474022950202492654172279426940057925872428650400754821381892533165544540531076196441046125748226591040309553087414865062595415646055994932138810257307010736423471202334787577904524981380495646832682776017076075685819097790453243885418391710763297417441916022037866838950738939312038814749166276769043874288044743226725605852383665882588469496498359473558590687323874007389609068309421121029707924728969482837983667873117365550404776689782338462432396612487185374284688456777423687732107666607148966432279309192847603619432591654416013563230276693474856308966681686710112764808476787066649215080936847760189538382402494656580199219754870110233140895218194884884239978977235923979735433615475078077241057783209753565197905426155855077664958978111593519711132667371096117263855434984639965483814202859019907989021819429350798464792096763214311387356229818441415299563883198280321751780661050263958259151516774057889397468239444614421282898542186111849566591938305834285037567081802010679261560944745208684126881865607716856180562439729315827155098826479911708743930491977495206079434596934257784016203196170645617437706590143558935027609103792443309594119994825787338694379057103441720860928316252639347406220593780408718072757073628373644745554484700903240018856751948003391931793251634100817302443815481023839994914064087982941879278009613023889984871863212809628349904792235615975323023343731077694417256924422380047528298302110678070123475350402204749519528306601061964739165735453549444065235986039585347753815786004484086142491065572854859005471209204409281757704335170091162607281625930299206730957324776197671963964153079068867857002605966455761945705924881623000308476842024068962570941697341179973890392689952548285712156731581453597362280702282154297123721528798514381561670246190240266298306501472204709883401563529853309108575625598293083812057816890997602573005123386648340222304746159222472118149250535603594871306749050500174252379976951307383945279686192021610721607627666006324920614428263759477810951231102179487864413824465146507853242985260415706322425846908622377467661994407941721891790472608809802563263652612674216216000222149740991824677154147306709453704725838858265992469758424383021634271908160588960338486025617158160636005718932537459591738704175548808216029387951771646028496950640646458518848862377596086978529141916516679843688627124540342947145294139890372078626369910546794730608857416698143988235733951427399815938219814079197207860800792109392133053738732113109359218138294256803048004556738208028500300766912906725192952760610273341565134317851919367410393299622632591353821853017970510110696386112894400023817197941715044303821880483123080398104311433241296063002865789220478760556897397921734027170636023153956968489351974419565491362612307376055793725373409232756433743597685666129077472715464243031935383918162359408029798254423021482443630754578115629603987941232038830817822912426046246259926013704826576669715629783322911374960107283519521650985038860663590284873161442411165006927106007468272898166585613243163846981668074898265628782412788859923955443193280587585344504565716731906361981425349228671551121251936100937781275260886495321696416755008556808539374547081379844323772495664617903156744037924370935811087262869321129678347489038558167981130653676045580625410496093115698970930994064049817072360776441859033985122599258826536877995009465028349521885013879360569152218408038275067441994400118839403106994571880802133168436097379009763859381156843709962284429301614309143909338584541706335933695529698072957240315783918845826764174773747307215211483982317252541916137684877974595923331458072238896704384312983943293181022779225672365732135664370757683570368352159118571321117239780411654405327498844663746695232590356069361761446628833481966386962114839569730728179057220513188046097067242582666246545314160638098984171798531148071886204115114436701024578522220381836952432082545030915458493963859567964141625091810964898613318914751833903947536488999435090736217139039645371171407504853363865082470511127541370075015124429251532672040285495161689229916363824004311594592588209883098876759727991444562420225906713621356129722479628340694622936673932078733560650479741696113955077379463432002109738004681626699163871890304970299674861570867110937926907658175407464113812573027544469575965521805494135030223502059882544316131957429426051961215908470624287109924069036029745304104429084066899199706595093850420812991640900368866366280849282527557283900286257008095919849589069343334945615827927996331064247974545831902675783305862966712983171587304469045716918421595016427746972952075305343564889755127446022747520295868999907158975676239621293198469228017862887543691801433332456625863340676885092303490991142579689707532339057548698937785376171691494517033272928638670197102112469529577287279801397340193962365492302895072048590108228101289585187255791827897878810700833254856290452353006234691935075342130924331790134509402700726992144126540732847471960003598490765211588722645708489541210694074615323651057096371182265068514689246688178992597903631500166653132164524380453645326303537089117914417132721580582006083087767187587764440215452616757737165002203707704569864730379403138682829624584502382867548964040031712434757958118091270907702838397854741231288767479755504519237611047078128624976045183651537608986647755653986463453227552235942038403668990292586501847591030083423421428037706312997086721658731927709738354363568680262427787817307684671260902169203216827022326473277002694630161368199817273879187899417656938911288692590093605069095673404477790340587994789448091247605369853690558140219339290624874405567887257070434933932853951232793504474473617304982278193742855234089044829887401924785534730916931078958478788874337175661494045449143658500415578092640623686497368921429872728329280515007401684122773132589957671268251578573000162654375379460436264545183221538796823824761200668792129374792939244002620031261304912045641602653191715606683043244524631340215568736127307774374011277431971186660975927900292205619400641420043032492854720949710054815803178915944194837208843750464804003990670368943657376778445395016904342630519961061934335745120908850470026987302982425838845544844706859427759260200481740435551324882285983007021004286775062347139770179136150599561494435955160806540971611904353984514794632294933221138313514325695008565475802956740614599621020050654046024334171781095077104204354118068214360756453722795486942922072767368372346145498135050595561690020710811176850079941691550843066687965584615988635255697893116836150461435775453279512784049891013384611521070955045802714982375225940810165944986089885072095195118566482700036769804984872254679623015188893512271452080978006437809849256478437925963999454293720818264497030378606272274840773141628183805380242649317983255582589493736435239814234714376828013486932103956501855029744362618029210331223675743277303744694019297111730146270588764196841203213583202971823547573829294068285871873108662777908441679711978075967173532118160324867077359043778196053777314663352959616259069847382109892249877733945855874557922886382754692927652427354023303020171531699039604360604165064911473911400838848285961148596599116562793305871849461741610227136920118056220892718122167127470736791524728807163185752843789435379916503602864559717671315289740822504409557729144123292195170186900593515505163697629668721941891609474359207335792915099589717468691854399115318644732162696443663232861234740696509352860093124549711879045877309518980409380696004897389062363591725722474533839692860164928288575564322941541499678081744155139167083554276524466228656035141010186720397909131433107183491548466487433411421591138436730638065957874500806131575646569913485166138710552313518737243396425388907834979037465594429825862564160699127636886909730047612010197536472699636784470090471581869749663667959332347861794096975468795107609230967739756539726012050844744525288297328246530221145014718436003409397613925945949658034470354805134101393562842583204229745220445951353437957988703723771237339365270732334926364001037214306137290819098484229284945794074924625978438276460164971811519175920545978562924183151627197105052813859417550772311478971506028933083727720680965739011076962228783614913592704842346168245140758349097965454234735257653055930573042211276798315638664203012549517090997799835856543833222814562931603967789479364974050210701532147996354990861215702208397441493356196744145892129275674875053112238937095110698759199740565431171731228324237480310274320765647056560335679294700688301856105431522996597240986263677150088591367978094618747544342335479257130028403763922335079510670763218683422782145964226943984929554927052094900219867157696227762905705142902374108293616901552832526239652745758798694052576285418587893054352745865925810565197785069125197355199174373137982293606331953957646569037061849097599960773015594465833654565864867500190489172191676172871303766056458149570094657653487111642210622726049608200181457348231859048038901068654141542847858149120433260889094197345012522095512641121787138126726443524356805187483057951625101693055478626816859435336457631707568680830501244098294226264805510780322407549557931031748501638858853704199651626100471044457096313544008628239348470239749444198616702469050111924221983378063737266007437537188816879479041692046557497485751537618018864304599629465837040814495741973955808259077527480895262967428879224794789532605585356704991066488570306551459204338594977157865253367459653188544548736216375904259325412325171590495599611888865634724988109612740410466164277055067964208077816764097250654387118617906980834173291238135970171225276408902631238239264798642336277266338862938849657538023932252575249904345494673225892726592121808287204538991376935345998141667783481534416824848069505061412473994640479264476041146676918932576969238365745296656828105975128663207747955505462809339292567421814419949824592035574203632406550075156339132966018905293459194182818504482920342967438768332560870333296594705169178836205519544268801131559536219039872721882601137678844318536724649659214685540010343210914343286156939900365740659951172036901074236276102526904669725799501636886791597533482539977765542032139765342268825655873054718702824124636846497892840070624787119991094847279178515865745601960484621052018685397658761928138261042545153359606706954309917398608457966594271216947514397882585680954617616833190639377783453318681520613786933027548112735528443009039175278218413034778774673345528479623116319114029483001604241156155643831219030148836882403636745494238962358909241734108330058439276087993575858719515316901460368215916783862545275482605472398106858838103183994834407419580733518365192046045435786125543078877773503775809328624062846433380951763100918065509212827160735251485857903590686450717749147906169083563008042239967280739347522708168380405000740598862142537997643523934179866821080914847709158045226346978793939641044802819159336029281428585738730509356321598363395817722835983054362832785470991064639741512139391980102697304312702601513710044325397430444662801623615071622838670031010492931635902726840345256704271050120635824653637514415528296010097446182363421444819115565938675897600770884265397392738008840144421521061789166932351820033261263824159529971476233176286987397153112511241172492980797099362904385402035827854639813934822269747744318316491133725474604380283579724914407271677665301106151281111895525344568636065063349755927321424547391557316286754361881951878046104881628553395721835780704883149463657511162781900716588494509797047766366584913654767880086048566776356349631687443258834230169381895289371736841264145808570660195779157259597625314876189980071302711120804256816843288462321257584366953250878316684041540500476026488963294104510583424429813429113880108751670171651230396078397867090258846980736320314309906920346136607540279878926671481869981471487924109872004448735644405038619543306683794953664872534078153076918271877004325287140172681597879846591047157367349982624980828455695122718451960605252103766160580753654989414542939179359386621306829290450375942634828616655222454811735832123886705707398545539142215852668019001207256840167911612585078309925698575582741083909047054774072607008534650792085557940658496910246234790404271765118486394192918469554276343834239455665403106769080837320003336036534166188372843595004842748045743043556664886871168186276850557205058852614186098592946359976316943979712218579792898759137398627143830013848106793596373379719971837315171919527587233834953116498497150603753445462007018799028799997529351287622711451116686577448030785762131659408606345286146203828305647918651923650178601142774711931487516357919741008484731217396145143322859123635536406672425272603427143830926448835434694188383917631465589489541082531471486171396197522414974387795667026223150506160026092700756250044222913275685450662174865836148720189645857993658841753126624208149364517444856548553588224862028413424790568629145629401010742295654372325664987920713492574707738189153382989447213786264422045443708563030572226967970287030327491084709697113346815253451709699944870762150679821385514710245623265289804608506363526732849510952724970719861606026102262420097501340558066042152773216064734306258662470222248906444113912441838700870760841820050929883369641995028477277875920045929572140857402982486123217755708838294907392291842723198019345172473198980040767248174055616279518694744197638593384768289669170797211796924097556026344342730784075600959708497501823021955786642606536018701813273375729570465588438786214765774699590521766919415820601391104288942277763127984207734017149986029899838318378210971300104451582933581380646344566423190380513075215830111504240004045478226202629305693947674726516482297611631426917020363851518318166836579123594015717501124066074086345954897286746562372874941104077839371031221762035933122287949077371334197613161306732405562802266654503470954234217202796730341343904165368484260568281408748229677817462572190600225498962437934102528791373601550084377574325113553503058490140740799546416377469180905732089573590830679152917833076231338186115564245087687997818562092329251725649585080123585153984727876488278608131273824720988592476182760376433239552592084837004698572391307001763415499002823645534856542565770532281467762130209661759904137790831280924639529847949035575555086834744267820253763886784297225196287885672590087646828848192164384997908054670889625651410757084968075165018383035132701450497279794631749916187804802323165815721765539037915465406723977543046170408102502488604659069215725729287296409920155945161977544370323477658914790664165429204360653097713188096361548318602379448075634370486516620453895890719053840730686736379966337267292170977551850388471541358835574403878458181387587364295047401528556827013548989973789768972338461417865031746202312954535568927716865362198426292515358545966391217118902157214947153327788235127258312810109247982314871186077161036785994238775957299525980628683097528993464084373447245238128320329861973518517278566062053316470826792308583000649966776023041822095415796110557333897825404729243603373721687170596719326034312057539958275753862638042164604757240014043450484791030178769934066583779097250391393489602140183486067109506273907134378816156558231453340399134550626084974647348129966459938066398320613194168444848171382120024076823693036213491336000399594302713355187308994954339628161059747769794522807470911840098678894240250071718421412732173150995022321100614639714875972028747060625570378339830802679845332135898335602453521749453876869542340811805437670265961434146933937785534281318905904309016523294643343081922254405074500485496105054805805726196808726422618636967502754780160220131380928182272203959707613028215548413785216278719039563845045598934246342463399160785288341566667143154516197123032912578452148233255784529133990496566890047780567674400780319526406749933980996275084677150406587961847378196739733010444955935922421087708402586166290982113399966954648424033387769507546601724683654092951157220682141030078568940099891290139104740154602888365466289916461998985945177741092760303923986620705625542180630665321363488507478045714218200903772666880855374564044512083292085484386325344167735340778106114931225771119885478635928176960859745136685434062243487531182615296441503254400911723486513954294203641698061320948165349152826499221148225579637328051699539544127604292783288321735633456753019928210349570722757226498428297038206229177434628993975686433253677207232402665071865551822540959116687083244372650557204739476832120856368408496707302459448963875460711727975976493355688960922277462190984802569614705441991299493561818866812561328608059362826046025431473721926124053004059419774135435453166505888528832415297890132150796013565263738025275131923872456799652205775181425987171747884467872160723081496507278690154406214800797832780962464711342846995982435108105756992728441785440835241667566639955471779357452405805199953588458899872835184499217221199959926744987329657454633936043931703523485865292141986013120315033230246843334664105047905527749663710148126634478876572506983009768052906763561548344909750284795664401098545240400204261609455483948508552421500811675774228799981822071285286259596458342266401986511554316105489052894551661814464301110726011322181980470166100556129337232256197391401050806170653622234817882178787753333278789371066227003866329054447973032021449038286987773325730315696040115966241364408125924563952518636554082987162259222134097876434769459049848363928308629140842752140485129104865631340715590470232647337103277357579583823179164854535895623698427326137203135476372080024213306552646637070408372737546711502532221218124662085487681775777964986754258024084565820179943903940002755034953259039018722364630942466491301110104512291382777021972520814501023905486981473141940781320362889035345397709195702763350020636966934158510302265373196022568245008283946722917786581711483344020439580050398912972970579592463501419368007779861557623690167213936756858070219552093748867802024317591430070313905419599628120229872332431605043504248644329018082311227462525215894503290865461056471317577606778010830037517599893073728782842258567022102385739163206168940063176985585129265582018581568395506982950360469357990741881419499119542252458131122315548185891163200604479102190057490760295588357850486063359210649425816547618575012187193407327590573099545531101467975797453660238232060802591467372368538586382633728614603219257566965379348100499239867232073022458095197223521976201038682642348012602168541278449249048571033977227717820116726682566788421152486849422577505981011180652954614631669599796768108464139626312655081397231686859337714048793923715513376072039234327782696782588270295237773755509170470709098882894935579480940526997201850416902914646519182277283753927982305241047211173151932173650512365154731316681193493934291716599912386578596844257608784749337932878209396945485086103792231674889234650142834318558009611505579486081037563401993279064324346862567017689378081483695882004428871349562069585716034838091074284303257968486970893340257721436675765575615058760889825948918134653547326509644609340872187310236793608432442703652287001891335321544028112614383932795529936664072468534292463829681572722142166075801467082511918481138806702353611353581551919602898298485837930102065627650086542741045170204772012817714268569878854898210845330333230024691482251395573515835724893045178923218532305643331983625695346201434722243386643076107973096200302329000372556084468477572115078852384699963946040584564610034727516959969182634659709433317987184048197415941419665787480838540085371530031284291632593075252645482862951436921149653663315856752303231580923157777816538039323340840482603492092853555831636442114195569565782794859065642513945568665889611453045332304611605684659207096955015754994864498027418963621307468211944507769529807047072596887940571011460632954802075174698479170050079209545964654876810601922415120713335769460973878929505051304076952272270072492075699500458029467729883839839069521359895676595145331838361817551165857420253658416372888137766762152496774966509234513841169629600779695623482080098759853990748358885766046149819562386620529635768637135620209427180292788955545841403207613849339341686661562184528811048390320424244709328760665064418882582312231345839109177823319758214481165453104825328009107156057590110110929622459614576612004348467056800825435806629468461700117241525606957699422575098677888203475331143249143228266243704535831976432699615482060278127230598221596228889598514476540055513977230573072246942236705435091214583151753690922512897484066970730258282331841153065082863219216292017491595197995402934535138815678095781346600865456109801971586184014268146558450176821935401036131203219141454287241424101778159066978559246309329175693891556054736431680624214810803967161932256370424615370856288960974560779972252208744328945110855305076030464695938681541226159484360122788806866351506166373250570451323734833695776729676491188416236855600985213877689807164792318691386928048373110498702125268540393837589031815299950222123641100034160105381359329447104097050383018969097932482165094373955599599807866368742022364727914351447791318358199263640989449295252927447201965193957782990920846626213726128695474958087771529140000472167472567756474108598790329248977081882975623128197540557102564251021810383906252484244931999684323728020599378725285681279819761096031814673839490407469514037242129141709762230112653788601094098294151195377107841971094329538582741706111651941371415620096089938025932983011579807707376293721706360452570255159511964710906318075646299289786942478057031743862436157138395365637988192515519879220973519775346290722404438458640630433437525879544061496015434651118989514373031574370151787255520785925156160624934153677192435861248305640290080282576509723159386021988240313563357836406543059962615272190100084642601019695096099182981293621622269771660962123294425805060829618851781295428067909942629246473526547666492531809416289308502611118733381977712654801755215717389290193236218999375792572484895040763586916081288452782665661540711016003305314427979880967857008620040241300300033528527779805121811267869108398920949212998221454628139365935953288456053769570043433699230706509299079287428549742438682208619203617756898181618059985341652944543182066180088158750004481945055163538580938476662282441717209250355150982473476007623229865435769855338541072413650996461092625080226232282938757941158279692061522519036454225884568229309181807577425011745211350784132773339144240709969447003333248212082255604500637227640831671729257501811905948122980818993601539515496075279583897978147435344663756141752349097229987300503543205257384092451114925119600991873803112914494999066476231770329910966334297333828990056670279756634641251405831586458460329590508357961381674275211656541213584764492345637447162681083850097506209586182289660193330375757601328790915255840703044285587497392802084855071001715816396109001380416603349674441675376807679163381769083645345051302330469411800742811657451533906034434501317514036167223750755164319030131174812420465375700296707924738572173330817960522029927526899294099210240902739123901587937046043806334691107783954820846066001728907762421889861947787069208218582570269287155411556447439452372688195515784144972534674715826844737054473245127268803779911027058999639582811699040390351747943910806246557035008453743137125812451865813974369918151896073792488783406746316581388990551575922220630395031220151559751604547346253715441042053788188760198251025594693796299758578895108674021765925975370655332473380898201139553348000223713518060516315034930253263141094129560594644008899134044250838800953140250880468935988199775148902203515706221466751515854003988991021825567390349258502203835011127911010889078507513470257650342767103992805356521405118839502532910408751284009895928917702888501975119721115558057159293133655517470137717754456961417184776764610048632184983800555052356643779661781629980446182923882746454515117275090151857584497948551193495412847185788576920312062000747302331166708925050254001925518360118196899137702990461219411419313792506820000670095681905816839832181761734569566372640854061548381723762182054785255697076102999555517019839695037599039725312444087651796107280497252174540147278903506913561636311879689764319908575845770479226088761052853709662360598641408953190121118559145295313898846437872661037641297056131103612395106032505776418289139902301614898564028523333164648576874992691147960014191555197335872153873843573614323046558499149242127115406128069867203556018844838612456325072962200926921797469974493546732364460541628471357014264436048289089095752042547448582160896436700743659872113585135147524245847525144939546112025941678529240738627024253226742800702269779805150890717351964331253281363591761212746840304110536825249238649948689660892437417224934325283304763190026756548611147910223647399267594136419329486018602767912676080834655028446672489972754959378449943778912607046904566179295433845449074530126905176168266880148537293216178105269180089139848522906983723978348857427195504240244015810942490011252158739971998355381077443819691256874486935140668331619767230938288669888713907264964892266681662232451102446178538651202005618191281874439401769227766300243256682362834805206335062360867184766294329706653962572047669592401855022174689125308489092342046244709076948707691592242651509528778292473051459263753669767736252316827292187578412055206843254435471411267059234039128413827962142569958574076296468029403483481946948128923753811745819051789114789951308798727138801466987078390991536969032430715460465971542938166753124497803005399019595858166765318762513376692920767664302669943560248289877074302620050877304642155641282859442471829443489159448396204769028104900028914237540681639611800115832951299229209181877494737401444082059415905165332256222315354871828858687792269112987254214284789876414777673875128418326632155366967006038594392758210613867621888572290851638389599545185610202171294901984227603189280330850534823685955291125158037428613909420289801765870974040261982742420734328833649615141289310612239127909149218205586696755799321993722258669590152243644427015727721623453918038595177624432532553959498563378420291668361137274965865953207565377988734018257877418267570761294559576986902511280961161983829457136240992075165117850820509473864058017836450787889362819516467166367623516073176069765434927799855343267997145694981964681519195644563027529128045183310846599649669146472520112458479028671908047429090565296480656060145518155925032473133116126929490084256164908239013910352216830286622658302380317205692713067805492193224822889705331333118854723627029179357904156135424405484513787428050314176452064859977125956169457598533807385781080881252250693544451503896511236629230927378391860171246671361378356625625067241800987624184872662058074585232050638146043229229740766759590446630229060752034299326010099402196039725146001925717203956178370165590824502280015966591266425028224734831662181925971790340022281689594947282496422202898026744325441968505339020064483282985320223536725298572126127003499469560391130509298546105305669268429153292298598924849586685564265317136532447149008524965485422866782749145340416761388683786113401715342685019417770141320312877843569295951715350595361377532717739541920625779418058385103643459932272894922508611535960316424152493678322926135200127045539245778251750234328386315588322619750268123293438267211875891812938626368830956680275492835897802550964379860205143545440540673540007166634672117417172151978161554657595748916912875994493013837878585101997888542690794707578408646541185766720665162116933745396515227666018404783422317438494663775045823450203234721723095739511777576394697236199036028357964561323826466653652664922622229892385149477361203721539865430215823321104582694652516884737814859104108199405888310130368770021483182217780868676827936683055830086506564127399565616024767904486367724459067276315135393135228545840467509983950964041725907383980032554572407679319495607311016119387155110942801885478737480825855978864461207472326392018377174619907021665897744969512786072721168032650134791672064385061435203729556811934952592045483595862856617013769579934042279126845897579626171517013388725378037052530032493475166998663609952024102017276497201585818717304822731836121898861726153608607645131568376824763468448784996131335880188606383088401980127355074746337584129993243826669645687268562810013251895313809461884936520915435199032953727117758073548909858710581371017824311597358545861510339603548867304687958108975167460686485074634312238960769391664416514872656302877607380501686198131190676576784231924340155540339662223176270340311564543120887104482548442486476191455182108338664042010457448602977100039568283269033395953829634184392127794831894865759141294075183102067119226961646684643423340210994554401700119191964730482965569960017250269093031394699355375190255026298988774255693536298159414256156227447603178969392738660012868246192539400767569775766826042450669369536637497300350784580344119398903390910873470311765156307860770702252812022558421323443230833711947335646143292577737529341671231844833972878530106499007626278869353735967315153524008023553681382141108413119821461241316278692070828375081007762635086674950247529205768654864918716484426191420008147827500949400604152511921974133725858367216970465443989593718728855584542936492134143244467266592475290966730145537719103929469049801933604534921045567431546473329525211660922586693105092700569739342298000560808825838637264987948590687007627939784699647865171713669249753880010249224582186833826568379732297739296323870027307220963043663698671641932964583248480248094310083406295953326945715517059388081052317292867864935298911819720235849199731118045173219347393914561105671068287406556484019279511442443279595645241227779341004366982238321560457774900994705958718212995445614704822701201457257979869817842690410802832057365360308086467583479960278907403540327004386015015686229655966852780246559829765153899968579134460524484634145594818455408604658032101738205947585332514093510307559855205513830825676314920113038526202048261850462518842348646014676533467333570529109685325199204258737714502871886833609183999951051414669529348183898994896889921139223704513192489142777042801487359624973684912490025928389828601117294931920587779593204721220927250733507870536704681753911442319045987069797673874695700990835903670595670418142821415000807014229320864845386905661312790766987476120018382006830928825134038628381853346381042084517377296660998744680567297441233211230214368435587294506520517467921915623303449355707779331467912204363125615109863339540791281657834651716920320592546622028530120203069319578891842440141424914861945487062944982292999082458149642005341345924891821621182529305794682967786244177989176192052671328548735718396925339923199938551290771386519713569311845132422684223438304926173155336751039457263869658614355076165309631479812244475744659912592589067096784710128818037706205020792716838747018418171796049430216749225744971902506215858849391319409207636447944540551304613443704101603345325897904157606602385738120837588115586502558974407532055042762434327479101822105484423853889505956071060955512871182883724440053379701906985393794269506729338301982185356880662625873964396656011827475215882641720527371201046552830066011239680041099409124460578245482069073350793355884647600475473820139371103459592527190059548701139009239921836808290629659193439203367611096106286026196045978620648170548317533605187228278790436665449868743105824844153919438538344752362058038156262259755017729778928781253612435143131928110077511536457948840506424440503957300659828513085585475904437155080225950057710282615614064563556943914175730967916544525030651083914776123841984715311568412464454050318683504845353526625509063447165687150527600277558853472932539728922903356456698771278191347318668096349229206384637218233486046272241887891182926901237401989557843286995658931804423270676384087973663777460828724444126260864481110098493084642923444002841942461077717643473457068116858598349310135852754648485237897557092302899314865369506920027285013814218793753241691476397658254576418996425660944519941667072338725615417460317265588650779097336096978800582142682476546654257709764895764147758819840751597151991887935654890476505967613213873704063259814004391279416429811963168918047071392386292708649715541041238293493893077763907477686203118644339239294423385746545400882743386945059698424428434895805333481217760259994335310921596081824319768352718934911720511285229705611541700909703133314585068632147616141291235409365839796753646930834169366400654142938911614945749525242283159220608966028195039123823455587844813953307567113343286292996702920360224403231878440197379686994993572432595762620358889483252191565082576387068226223133369617441543828603216247415318272389162943608069259535793275259701689801421942600985735838026569762185432410442632909588417216485693880799737569341442171971081921907922502866607423746678923340031626690003085959021092341041926733430801698301268930847021043152859707459269929383459785443668756841831159688169160777278696322302489968627595781661792915090906137469336930003736669835864100142760260138314778733593582639211823157149596008237772202539908364668527738576847468989592025356234829407827709208933660590491835128950334580417563661288457851795160424024097006645916449570238446010045562087503704776170442287506991996237776368507710463385241466773173668657622363924532918146443613829358678574914956655879751348699964009742687191309554306850402777535860868748804156267423976513441193688108865192267425953962970227923744247194131081731778697079332841510550729871450765508614879167865730483662510275848286508144192765728799372819141499423160721324055238018461395389211454377173111055938988239045417449906565715978537826530128007076418755187582814933833230644699058605250913576082147941038153637914126843358296730447403662755371267471767795620768128916925066487495548405441543429429065564026681710144726005826370889655699079807089082716552936949428865955043250257538173907616713492104705240535928872045587797568237397307239055353935299916448065174103514856457380456757114069162451742027906376936092265101012802623528435368579227768378739389077526945603545834284823807344648950888533862263455458904164753362093977570206081944460351862126351374386994851715499012934197124693076033725910976902250282310769423391644169809136199160737533796369975471604756097666420881620743928570245881515379957640197601797472133305527433428695464322475189349761736708559259137401333912674661515942365995449315907544023159534442244348290570972199094986563676995389670644972280300216398366313078220543135691688452849398310475223193230273121096409786058293806903517923621392698466740267540743783980704810784084945960469432223451977245978427420649250893687939569212044148365640503265959738215773125120780017105362945555018514713406730806437595360718699514356587640143342460472998810004989218718447085774910634092832094717253682307114161035547041349403533469254068363710530326579495771082948793371740482489510440474477525621950637008794441187328559712329785721568355935836656958604664138640953785903919830148380267925871797881577832331708590955007998893381087639742909548054605068927332669799134500473547610560170472836187002247585887050100101582324794017936619499091741575503065571869829656102348596942345937630016401073669575859182934630559617334503765307707519440058920190953154061634826995542220152739658180499988769074419953887887863372615777542588466212545638428616803613693864027414007221974185876639061876984745677737072069880622598073154565330539169893430329588950954620728555577696588491832006876165448243182714639057241941891672451141720413155931920177481713577108443042159703303472933619379504221614625014525876884591192113674252343464190255115419487328159972564391410055938862510953763376953037506734269045082128287467610882821006718767238385365527361299599847404733818126785597746083641938036570886341527005953852970487005469067233430762084977198614816689956707463332507774312683069607816202009596648642067661769952237828354246007785628447098837354862724384986257125835202518924362431970065148068840587237261377005112631931120889802114051222170162608429989378441748545478225155276212985133307986157484642583848423441266372144629417386360490415097170274784997916318532043405119628203102905071942117082425805850536594926561687311847817536749700252405509376490438438221927959935867419386182846109950241015284454784691095967660341863601346913844995022187614408420074654149546047970186734000846028648961092810003515149692511506528961601143790431079753166497664416274785824962149169988675586675191011574648128227555424052980372311451542129228412291584141034336424931027447951309644626686672643387939331403736878819043132553454595325591158446213939299363313071355361123395864287989928938771837141616448602386238060831489454617484974746966003622281551519124856210030296994612604736692400828005436585857281579713886666882400756093184442376112980413254562714710938044343556099492825802101050903014829421590935839499762037902630450342509179681362420465793535663856759248399873098111632632779481332538510139222968774896852662133793765954313711946609970029065254822560752878324069722129575343712943882211653957301642906416787791285183620472704053511877310712024899194116620106172946998697038334108763383024524184514869211492752682967921569664475025507548262115990637536977277216616554241562367180570000960499600290177775938489184114806568365822054299349937201780206326149029952284216191559722487567102571745598556479693018048340020822474827698894698324510788640353004676635676853292700545750226965057982970748505619263606448750415104874486778765188891880634301235055176168990450207527743190023524785332749155748437566617516253240389435184269295380849133253903112643046422035660043081801785193085863017279129735928197663505754906537883871572860896013595217690779931125958252778689130200769256386278528876178568959081719992754797312589121203414137946060516248820322997731067640676388876332322505645278342843632522633893475165973777953689679967045695177323494372126847712438976980045322741367198604514428509781548113368934440997636339328050598524374886048198018520169384887415052022893308756628672797681003890763851920995088419297833010442368490526830404707190424257503072292668619595214161225521147851994173798104350171636893182752257712564801238286314558176874532060582198421121408706779539385680455573255003867958700685246085203095221191810602301905863348442699513066782212000523532995888543954293738816289571023880123729456311439734419949612550025963979657238790107867748479059735853626008527896722275040586730162533470476712257914026418531852506461214910619238613743427677481907180009613184704570392899598038162394221379772687005519142645069778599149211777859453791312479102817748565712607580556253156574918099072755443162710887615300194267391357025474458943440323256599569684704372108473852993440830651498226061412950555544596058668478199315482735821478463332445236091227637508137267069296172168291017354795381448354955222930085150646745845757339048197769621662915021675255633353701885300894206449402196976780147870498877408983004921580420994504525987695725793636479191797054491823569113892319543078386675889757701136208479141228678593792355957474138441760924504065403153947315906533443572612602856726169796770928096700555636629151853246698364191367084038270348278855181177053758530526746845205421436653641910745032191714064807091671576070085713653503818492202123383060803068078107955314379612075693838585824969223898521612497244708207007527949641025966544091706613497527914492636716402664075332157719928017082241863209916484286150968990687950352697895251138884891316716833046266328904480159590801292637718989705974036330793240951970575950175070925306179201310748419340232843805122276575134746327429102844443473470261747632696454411572091023297090048422181131532437181282831752568371777259390466397291838812926549237896105773586713242987480406606175481712001401935399307688857043077687039533602191714222702679417811348863590045418032921111901150711973288223057470936084599300141996818848878816350459114197871464593925757644543691493377501094020860848740748164252141017080852207622785550319096891518464759282821782190666031839089054958111320642761569188354430334413809063617588493324464935609953122572579754397239130051215845864972341634734145968886276549310474521287181287171159851892409470602069814950816535923145461803921054995585299364540039728306162918490493806778850528067094597281235335691068390730553212468545597144500330307424599642673862241586928863320169973219930922874070463990936987043274608066308654485953074980529730384333742848922805359513378695966309013782375928240680138268578306779325615237124159641241279888489828382935277433155643440464116614309583317381459910023128913251567981231018046369777113409905603100994422168320073860598216217215040651147512254647534989855811664842688591452023082824112770247474278754519531409007008924086354377648718643010176400893688863348219896628831730318830118556288528339904941235076568463315487018021168195707727072996803344080536889355577918264445748850264583599435456567016834896625002027533800210813363754036429872141742342006014744190033196064264111536557113172616878740853245538475513081586892312688480567201663706803088836973357357109758624651134537599324662783957384998281955592278387824839754099991238135217652077068362219156030270704049981439152784665135702092932423827290790308897485435685911715530161658320504307623690721310873782660871438772793322100610471665785250643739778072232528122435799027385181809841734630061554144156275236177476908023351728475636210786713228513361501837749137663923769140649073011193472753191553181535992616964250385290427712445316531284332114417885349052582646043648397938921836760001932116560317804824875908342808767102647938834578426125414920385235514291524788592624495538430339781962475899924859011114195152907167691104087797916694070535849118092059180606839220226025535034637962874560305379075898643627886625882657145342148472364048410098974639919616457806184286375470572000108670877599243039494317480813949787689504394612744160695963734039757484672147700652247163102595499420337614855579461076964693171154405513284993643815020906089147253530977087571436099563095297790316228800814873109907072751022829882086490429963034290138264461573689690096659941666554177523553292783361507886663073270935408255947700235559805392795099443925755922535400907065766171198599023353111638696745679173914648406965262235459211786681242557980875667406409354038645490204084525620607204335120051795071676010952803261089819360055569963486907165540660370192833704648607492810540945762175593150207875411276147838479399363510060642632915061350476865885723525893205975577253754034600806915070068170020434617114612604380999863757288267203758625480226447100397871739273696808535448050073585480126146848395332977874080392685537915364871964065902830344977106168166861019200941859449336869131597424407154139521405881394816120638686288054559092066943767263840990580727045372341581163521544341241098660263349626514682253648623598162896934075492600583002304059937276216685443143818892742548531924548853875296560619362065900031667659626280638710700138922522158273887358265758096521035259974883256919424505528433988465681864096202128796267256733394256211802547528088507813665361435969160905699665369954036796734425746623989993807451513603943833872943277334391190194789183991193638333129901176558033796102461664407537763884303802057419569893737836612225932215196102833873779543067678606012430078872527868854276049240403417614604149448995628375953633272217964884107767248532640920346941954026719267162928171607672237728008802794832067237741817393730576018357291317612776292393551492036506887240723113251748938509612290279187249333152017484540327013309214959504848873322339110827578440970357313399541490745798302399961280057916484225779806812773892797376035561368120408661041009617128122386860614797372248381374725470749936164714106951334214823947384076021860022700279787325322987106196700391809612894780042505335055981811037196377257533141887870202184291073964935586909284738243028059497740174153425223404501203350981773196816489180958114904766299901921512309538833238903242654359657647220957353308868424220193146351745366883886486524356619502717002340606548997016475932744935130829010781562334258902382416874837861040982988667202693717150915706028885527930919924767762517419869598241139946851210384527034141986806634761246778169715468115780440435381753013719109368208701312229262308094312467449595198950229667084958694609456001405784347379084044702665479238712420514428053665831613588837831217436757801901704086974030290374247739854165302735463915801838099638851371400384630781518511072256696759605290999152137824086911828451393846535092219756535497900747258707467981228306747380590730454857160243235023172729409508064126013449673124824165005034253653844130446032029641559626668177569439245088584662840341241659778482750706318195371716165994707505328921208494200050565867113641720922164213897948282138275322208122665561675045453530775006522143501856405514710944716524460860188491215258863885069406811237344099071818228044876237923446433802527597402538260265704736703817464201429320724047934752446950571742794859423368317685694983215485282557225980693474255885231947144176049716966775378575740130055354228461670824644826203260251878608159312827650211816407175737509335178044926384110611402731753965481638865820502910779383830689351205010972903137842423023399779617977684031165392626949687311096990801644073362999766940757525491026748361568114192069681602504415719706106333240599347415792760261127738342111683520546718406860027321225961275785646642072512888605435588479628659513812543274216561446976921325740988179845528046839185208969093216007336660267652170918724366778198980163625096223651756161223422581362741140968303679209674650987692816269194912584572194054745000556248784120166173632780580108634986577468849585576673808913895946531856352818777142625450353987676248398930262483739332584886799297746362125207717085640084917797848526658360187721166815769404872287187694362405591731798019738953304506456160414782301018882547279909864757650117357301067654132938235454750642241312669324548022521886104623854088267353726449524793545310940482100970293248301036918246125492939713379884913623811911396194019557847557599071173312914195964649112386604295921869326139106913776384863070259976591673206790223270381752600233797754318612861738325095047375023296992818434115978040909962635246826763408995302277618498514065012446354106791056985340032948219439869547485535035546001860639602672283830814081343825391915985543425122952155079563644964275024756772962337456016066063524421829702583078554976339720003869912179327067700866343555805381976636077835668463834494195587179826287177612636055653861486421205945890372442119641855253688286439295195768054288075707896647076393070117669028928988492557292536756547396130331956566644911622322544673125723046680331831471512784840403371636545215483288931503586217360067454882278754165675459734882345688402817740624909224564148501577162059445220439904018415400220145418733102189201825982233134968303643776753177179869252317293941001841494906905467694035263523074395416316550289514370945366940275975733703832810065191557001681852367953283002681873523203608066094106430783297468106371397513723952687070368634611292163576847802968857195958756586953649543147460459693642445522258091274857649952530144584923891075380182772354192668416542711565549550812785017689962248144142568089784918817058284460236209678081953851706252965037969166584613978966143146808856691240394275144666775082852505087042362313217141133319763341727290769713412169525188976160566435731560976692703948887470891078785934636768069810330189687061352448937174422217896630959445207526671564493923256292791806772242996546714245332253891219341375413353445251187166608909703199196978335835388031169110528948691691526952693473747479068719580048034307981661128508766326011229181735312164630616688631255933818336507441097253009586290162949548243187074226116312440803267473193941346843663899247840956188828439864846642145125274647875060116676714002052817144334375926525854790307820872387265709734377194250976753648577231063780833023473855761763078272949687995200523380988800718212553686942979926722370382882589387651754579662217898409419481338486564409052367475811077304074319957478959232651602417727158610213660161872015851076563178594412617017915121920777894716220653770541222152457609422168247869726844808090282208597610864040572145554313617166993060843715287926688481157263127901870455513789323673681291974989830929405988854017694325720798158762505485199700092647832682905536909134005555319504670381873107049280339028328495576106051015047663678277311319728168905207108353562617618467011359816463468941947082057512148661056323827719445709044348072150967903544526771411352931895625241571549354862907576951428166344493372014504443571857796636764888782443471204654037026943776456795886484348938732707868129604867214570648691453836445004401131446214019089031249446256984006124405243926385835942104295332564876105958945134329312231060495544726261113495349557109029684831563694651286727780537967505066994686584250079317386505469186063937893807268964609946408971119032795599090674879940436240424199707264940535781370241783920542069836752874177551733508684270339239243594760017783043516355795310222120911083736942503234230517413968040274273131617452509941985821252881626379233454221166531888357229369917675385416641218025913897942669855275192359863266580054049696689088847131347120823653587463799161456358919859542514582842609753869147513053325589893474799279597898863524708225956684815974545549885990768956017608517966885371558513019561898437306738415239109849396568965490110737742951031687086906736604462356590507725486615848481524680659699407646668135445618304339189769563874896772447383938864179545036722319402376915490946183189023367740825235082338572126584677571325375704573993035630146958542298654841698115739304184748682986900708342369604606601430806736531735216156168077081230070088997225237350422849832416348715619772157144812537389440252557528253157921574505188584963287164816813487160509254642561526002024586428487554492939059170781418554743012467402339965887235698493880932712192508500922285965096600930926291646857771806986342062763676029831015572810350366069639834560295803399035688228645188060800373084350914025068622481727443211739435558273763979134847627920442471186107657272419424773519398829301219996918401967369631011064047199710160193139241554855465228357879074431024909861457311777837257792862224042515137993045632338596552045375033610082717841873138689750141108353298958649367667406191941233976990135172426264847954668513616443369421284386516051733188759946443613589361940645228963346375784075807070392064707015767177079211967723579697306245052809009022520555209498265043036207557777940882692893125722005112692849550355974450110049151666433492362185343149301629919576313479528308610363699581546226408353083173746408271211575308688251085855040551894909280094888186807038137551642000691107243649348055829582968169298953890032955182200197096565225533069260350509722072313455534740868805645427966271980823009800904453083225358946410994873631528881818204475719648317484564541352217570417345117532733648884008579907930706695319914326596551909749723374344292003654569299169807639405810089416144112811636826010464717815134834707304927153313911250748072514519760669552858216046861155653792340661365504543208334207587518868730395911845614602788583974166452696529571930598309473628858733840194152909601137903817297638270546627621210519983952210124172494435926173875994626557954093594834717020344653797546266524760232877416785019102896181013982937217848972325720744663240145464305917287677968607206860735385376798630308954110771621875379632110527260134765259306865568036112891889251311360371725987079868667568359511848098249355079747371260108612805711738224178464091870613071988411436274466113357355092111878669971000985592822390583018422823856505129221947143080105511524363025953921197904434641484356227641830926459410064988581202196917591284835700505334069608198626634713773551251861328809538998177380535157098154514812983905794541684971101143982045302238793868909884516065342483079284279851360602422217845133369406355427377226171456103005203068829909122311337736053188380482853368421396294247604515563701447333509962419143627662528613059493771584660126687718761266052117738444181801589096958737323067286104295206653053035256505589008239042689310748980435831144178603888864427170895798360478240415381257119656645035639997735362481660047682469676211895436304609715150884894227404655613459124069629862217763173666843757338436391905284347281396577967743701559294894628389330643724193489261054401293384427818056591399780281102835383066104838003719199319016024808652887742388055905407335175681421524832807237746197688343924439346495853832853341198483247821952919798759937309719367450780723955857533411792323758615622541316207873346963414747416837063718879283311850114222019885230440240808724057254100426974181461776984439066296913790293870483135701521408989935817985638116689620262415996130649385711275413882094396285232234385990472644387618202746877452145126079456503036724712503345270436780529181229291423011114667114167921899291661529164120775019775797366738549706720400372801722656509045923454270492361174823464234239872147598716465848390645713729519619795514451413479184055387624461915090155900442870769927124858967649942694865249987830686957042085436959134255187811312696268043707437107549672444779016743138877602867707343436743169511537326828952102548688985391830132878119021483965965535233460122234021536582638756276290579336539373892332205473890286873492974823460751131207614497506479218820231818804457970729338880671583583759086413942465713134362343044050418987367463326413952645052530922051892490605880567700879771040721005631936881138319304299583230285931102024160033399405454573399434606109717136029139614468719822847635650414926232889420322325200919978487285431276656688927887553107339248553332811746110053483669957539513261697907774340568602247069911990245604106282121462920294515588113248733765643275140112003602661981544955185106930888176418604713286496876027200440432798387056299165601187232306567623028200253483242085947453557054099819833015630184387998083254814585407503556124568458180670117677178519510331415604902220011934685473742854429237006588693770419942302697132087141123428962266989064057945317356853380337284838636975153247232484115673137209712617290928666530148068001346881939514564419065174644466545731547270677861233775846245252574294877923886076852507118706518161563938394701207241039765749943104617562665044574829921135279733680018029719940922566443196941834237169701898657495075289220271268398183963353737693305112065768905162742781156915076274800083631913053402185527477359343112124899371762853323711074850943606754539905576131758168331642060327610338174073279806683091134009106688132094793611863029885639661804199814980561167525558649172668097205120140622422122868109155186281417536178753999546907920457684534092602479890620616634182813224955647781663175807170262380086262907423105055743718782894872349079828166088612507739607067817890596243298093013518168533789965481848588520790638972198411470531415795597324535439515783110141340153504640439398874241443947979642277755653575670019483027871538608854112675542384312331343940253637689937736963785204190824457733021202100240134569435551182495416382280299382351614443765629212454841301667751460936895084970280853517276836054711299955058599065278852530766507076269857835712981583764041776169345834986118138215857892350389617156963063899652672807333152096104280473723472116660200457744387866768948350640377202235873782546016542754346975030383251347195002835892244968099963477950310619090893785587309685315580707627006317414700091439771335098988235836246511311470327168310511850791825953322768682750559491914318368001191523984017983898764862902270856957277114709729036815875719144166448063770487647492411141460020410001289744440677473280163084348577475395092267837776633671509442668774311294934108680178522026931051563679601662037360522279767934576173147189627725917577678319868376783184018134633686137448987884387387782841325085282055871670174308331550189520012940890190122608935343691611620098237500603682297533934869413233775710821670928592641140798693143919651425616734970272976994436809604959875068395417010365159839249514158767854042803739074280410048423838012540733245294196957539842905152199299254348363514741095720985162103341509031443032759245887288161184204368300382889033722890989671971767476156263129361653333892914019434764322509851656111206295222495405900819434043568476757454666629531596053781719794721814632395640152906636409407680712779768055131754164381628875835013674826305912039726821433852028729197208830307939777338507755437056883091249218294787422577565277666715390793683025431358503644070156411302182363524853636914133492352051730492403640894750632752216895113975069898770837521143867300408710860873387684959728705851703785720751951682871203885892279758937118554058022380575430319525606759102315294814452261653854367287961532909516811977751415648401644538055315094975255938264624043060106106699267614346068334753384596296831792780750307113423925447414507786068677744573627206043083441149108653751389865615108277522170885405669153265802790883661723015703600172381910630289743759204199232129584324310217743469672986031112179587973688759821423249368363664499059362999837689879301998287150944496169791806219237460721811388647291036218109790406073752180140964424404477786819150031185498748014861416037087997611229938209289609742164384589703464067654211087444413735434795448146435481425848291579458351164125231035478991955893121868647703754485437941281524925424194157435015790505614394089275189619067165562249486104857747775854859899715142957672299177039399410803172272009136564868108266856559989754280788317614851456152643822699939674125801530618926198392699593629821863397658795230330493298427420876654772436926567096780983325346371769506846618187287255633948995258073523188912804034601368917454427877204399019137901085735973200931121771938203071902646863110071556911462805123943681780743713858679669605766699768856277927538559994477658154153005195583045087544483614061748443952202748053055074021429365926812940066376096683589151653322292113525221232835386371242938649917393157165452191690806753092880765962234736442965390219806479961791855616344837849454764997374249686871555407662055477291341693564798844085201549228588245620439454312786074113844844301605881481513961899135671758672356361495716773174774480488092688791441176593279433979844768596604803662239849843679847123979239106725411897076808364221688780869986186428032253637770127790786664646480321273352753930222672436702710602164963784828346148357454371899304732251338647398512309304566283455370708843548805773177551478553384549159242544249947739421999293895170526342216418967386671412098627948363047839329647294760787578304010564231221508467134346688323804362514944840260709589593517907359038943038090772826015989475151712473270627689330432854923741723928426293620152298589064156835178306489554866819124471157975161738606190306999661459092919361384547296025789768035538053095566143393560661823666145485063484986667549868593708979019963825024236946220559877477011587155859217472599835296884238017503519521113939538033995412806077228981574825077353274497964479241884877348708600324444918244809249971015182026471834447457132613451646660128919056757691723360598296527705460907276928813540352776614343846819942060858516801004740881949776361252657392468435192043804737208059807111132428281826466010583354589281595945623537559506203257882586527428210144406395737426809885846749411477222256436120225642052927163318204233155338664994367434023906104788388944304632919918165360928148169373198783657540159861944020668115838460671988026945338319117071894916029508419535409923940081960680709635025616766737688425666551087660362641568736553485767683310590073956807637144579270362222872142121143281784200979407510189943513054451439571295673115649475850465280308986354743521218044858630324560365586227845744862554104782179943624683749989689686925747579445918448381028238570141521572923608932058622778741854553318418524242302810774908614692569122180193423199786370033203147178483466745971196224782064842863958003648253745323796266710318964407987104086308769615408583187533444722616740011253463394882770044414715894264210982654412782195383206801577389661751313897008736120871476258291969082660780481990993480152554345550124878085579543949925009566672348874895655185396716216097483853201697276659383427974335669852616347357407816445211880383522150088734330824286467437688119551114885618880029272400783760209993641995103742872144997045854623272744095618638519974945352042229455054540484448446915079157034106147162729961007171393424284917789338502631738309800003817643116601690273726442292375667782379041129841602475336618877656793097124375368296377307127564788360085550886033044710479321237936581504012984275327546220236961612724566574975668568560504226545014256093549423151749257764789884614788044823120702211198696407515954490482608722990984902034571701542244036256746281627520376704410484800467701491966185359573552016719288984729384830473535369515136029515868462489464785724848157663486915642570545292099279865536464988298200407349172755775673747024821590296600126669087465545330632533677126727476875394272999482960018497625601664642731845006963333772286721144806069527387379904065035619751118946702268436674661884846801314905190409641325949160970443805077358751639371531148357588276516636183639369469981915621032361261244097003219552094616514485842327278480905809361417313728481482007947956157548709469455169356818212425411083143116912432805394401208910089496632431579356369827702861939976537026469964571889875749644143895327041097130484593635037020321954859681223961273394464715023633204189538234259269131967814646344060015488025192749488301248903591352520046862620166967180995804085176136525397981881938540775036120385125505440157522258234218797252920769893728113423471596945917416577749983394789263350418767628983633749451120103373697031511570152488252395244835953477959540467706141736938695149276563146578296402389985883064552461775370142373935498655497056914805561862052983713961202433455160074949466683304023503077831306165884243007550731534431980716214461952004750843049332759421567580767168575006620540156924098740719703499904610925449442854643120052556425617041882980148708184318351683551436616915803327788137972200309066205310101677074799942910716724033072995699162165491423594232937436305567878198288885629175797577577395719285165154360903887577029534446976535644850754529444015583251409387850877918402077536113903878705535739065130798756671204962643080089396602735475032692212811283817615846108868444187170364133389794442985498087015697509332331778546480788392475714715490716597290577219208437055621814794862860103628360975323085534204994198576471077730088177688083375274937213798934507777604319176323754384186533255309682742256298972169914441735976050377581931725324043090618846908147974751664914031734750606750647718762475994051888638608929860574678672092492270110837750966060560639875004507459108586268646932213850363844319249681740164510403187998013102621881651324725333925708101679438904218475187934465209606103184696593625350418999393218776190859875985401718639873533063251672522068921299985787293845729821789940851444126887385281701520118452970650122625575807807329990215988596977955624404142265049782619443541885129333979644454083589998827198144749015421161125302691767989755572039969313654479835537606886828743525071175675175351547043749911033646127226425677124018658772685726590582858907582789487733388950016046377405747095536446746516423144409762003079818092753782251891826991475126654001807802327928722285228846201143009206466907217353347312173307657802357012977195113697393203519765386027753517889866854560925375802593415697705764712771493324158064796998511274193199117922647314099348432106513048460821041621620993926854834756094621168719027172332138310825640361857163032128720736462699838893751629970188647158044935650412502823246801680325358336330617699619144692832468460740416686730157576619054771643769778908188468547241768561314097871858163285360359661062130117801163570412228272854135959475180826239248744246490173534572157245535790951080631060767715340148583741594846927420505608198178317612314967789808540812324997863295261089237825903729468881342277499601270357515122596577848567181221373127554807260275469915832712405261702674672527842911245525778464412353723807104428016709871051479470528687937909089772750992925030083232380917261182330064799039944232716561646968552636037372837135690381581658148910047669092385175490478243759871545407118362196628775362691400305919508813361939984049868580840114582679398956968340772646493049237109367322388989005198282574910730250934816047739831608808413879048751509439174041212119646874445926139344692362444063337445096380991823947418741111527848147793120148854677745165824286039439065066435165498822989462932376476540225391851499210556265648093413283179052247997027565794615783246611251722316781069260691968241043165342406015335845684148615504183568238654504000932358624652801281059051263662752659614037703883561579102203458645533895244461696509552661535000032733047653393890443304646728321594005880909226762603298621553798701598764806909559445232468697186062393236271666420511114448493423383316092674280527956902110365479451425354497036047343074932368057072800117448834610192172687670808126931067257830686207684646621662351674372695098413916765998067748891771599140660554251746472551950696342410318296090090631369791860679923194438482457487607849750803158742107698833648310731816122230139331888876943814597464949230559411379361107714558517241814734808713295498652513902326711015543408427381705471137532009894973622306521367313943658131985781947463627936425075217838544109407201659823485478475576679218030431231350403934300184919118975585309086201774996893193540368510273346243682898242111741223363957177652640820318482092075851425747558596256552654266152881572145421290708071727996463671284621942497547183843152187146523279802167611279521254234863639387782497143101456434921789683359445788608885325554701513488846926856381048413412673318950921904359875745158005228924331505930898920865678822596871522033425672472753601522671996874025731003947293825340566674465646034543952919896330922109240166339454642636824390588816930926078795662195707076140942074833071553700456167080148203315268788068683439960785927526237565195600318229351132838558118486024227298853221817664488629671649236048218324552156833012623588247292637155651901687754528976439993299547815779331599482884955069993809246556241571073052871533708710578955146986753795933237284451789298263232831064007755793735497026735938585455527255613327668824951695605062450705268871150945157622494333249274621876205380084141870336115092363551135833592027640016480660363217731586042513489833429839031416406848013201539345631168928132468361113842189375253718812012806999663324930680244588038739164258284841070396148058952856112167254383885131286501879436691391966879412294234777018240100233817867733717895827881064977475012554555111130753669438510156120305589607428504317892010838724762266539343012400845441513335509424242206898648456226755892402181357025907098408502182212893890967561789749065724628830627130543770252549645792232519104170220607125003251593128947738628689957758239460695847418217036739358059871542213521934007387460731333890202698633236399125546054054071328062447647969989276288027309884070883674082321082147739427281155004968515567911682007898032885327601783510401627408651983656777645033424795070200801777330925287674477312360423170187328977599077710884545370051587229245001973267630746943274832586010695640001612712335817623966048803757765501827723008381898983703288542695176604091014742106665831234300744501652477229190286905958745239919147125153029570073304535366615326312513184025595762368995708761946705961035897351801701536751999748414168158445034792996076234918001441928427870300876296035873263337660122298079150071329108723639078862594792410558557370020469575356468949159467042303611306667983397019452275818496051647852209244945609918216974619510493127309684322776588193159749363983887476152428342383173941567514325130774352190276341235663308004737518398998889012822765336019030931583154707238334455727423738878200792139782736843267427752622418153319934655596196968981294530201217480376627640621545910529293256909193586896602956592723005229012825312835053288202792414640282782121936592582164491811737887854723092648631715971131117257545514507338719927729690991673616831968457404097365506373219954645145171372586497662623612446606091843078380752973283996171226357868866913156230721267476761192873073344991946401032159729210913930023099678286023913417556640582156906894268571014202179686121729112326872354696928121275770090822497502426173153753408848475697988133236124350721024779366357108542686025086509405527743737427532188283902707670856245120791226568013762557053864186286147528685736419797823974044869185183027894536980965357856596275455256241430977474495764149222749789403913664490996230797261609557854131599687701128760706111246308265326580373129591393443356832990854390897711804205610178494989981305699987586978854931383357635370730991896582590669018612759853426690790911867701987736304677130117720452027648297544244869201945042425538327415212427834619188010131768404998621703980922810962475842352870800325078987224250340679172075857459204597641105203622321731207821420312335157050868495863113129066630996644259943271339412872367121409849498847034961436831763183413853054627153417830021305590037829214476224977462529741609167416934253894118139428779725092691528275569022815207903538414541175079751322911537520382420886035498858545005307660708854691080697122710499418894785743659460154197262213990341776723899942509101997270277643528027566113536290875718699791050076999637534165044465077673875211674752652557531998698898777309748036145086330112662767488007857229745162929173488303940101482376226443832997317058769890218782855407551940361130341724959846666889461014484816074852124870584740669022479784426985125349594735719043505020445143650219397058990410279610836203918739860606870156167517655676994879598764382402809993663114199354972695148315148974177713924841342598967347037328541659274749806227630708530569870594795764697743440824803160076844297579593843732319891471744038827795778096813329287286724133293385016750551406949021016268494055021468699681445361480375574735850309808813576684932142129483118307352233337645064748503993304550033892071462584422573922443277848783055140760560828574850117592586844143129472857155475795375158370057958379194563245405741584497306043214857989552188296106972667224114932258330332856535444390514699923656265940834992158687467031624394959910814387382931814232259489378973626407854990401585282258721102690912474928253838916408267210518573494883102905587131066023073604399666720432501291180981123241990278525057473199235955213335705798760207657255473998053437465029322243441866181198989704954799206384248082157822168696425640074067779409694542366970057502988022278190951892207001096553829589937072753660585538405047824462808605307972889551056928172299693932616603704154120061851746473911060838998432020642165764061754173870071489218679927130021260629619559715179543368164085466157302639544158043105818827513132845024969456943048582583967390369184746846866818540885238992994235821722687916107064754887691939759684302439786893415612242520303862671537819604884161726686356286989077930845501665939834024529265142075810705099147813043506048051304382855522146243803175480803398431756688167261871666006335910238261119061228431565389207972822055397718912961075022012386524852165615341667903824974267950776397833751038681081044656453178409720612326897239628345071410565679610904499030400378679350517902992901685884946017661442793673328437725726487955328782001475687110286183604524691303397447317979692026849046512292779982769658704778010969055991497426276101942300616987243770194734426702129550981818853664279073616207477612717475311204363105215419918936658283185513651995845413016938143560844069574193810297979401568856527738423298740984450144793814907243137371218246991984844601258320709182236130578177815271949749566005573781671238698738734030741791252372129279025566287645262031180573984109599849922365289344131917146867177817600475205161164281849329779631261704293818579701482338954545421513651675389475956725762819653876987738807331142358700781983501850985456692290322101336749895454006913367272987219594511015264861715227379716106053563618681055522240879423522407369025300659019200559269717187826225097719186215269603213434848807060105076600336798021331561318423885408983850213151229238066035182756448533662887555739693748564914340225347062207846110036431059149656477776486271231683068155933438258231394043308440005660670027617702094519670021478711771852421283136372581881974464382457877170226137330599738886303991636956493985461453554597857780002272552360032831734984368847095431404951857755341356437008912828422381091928172137143706168763395022998210710558002145496092358638660836326656369029021466447342753106507179508267006834231999930877968816708979550312244712871532948197741571680447217950127323326867283551807885439377579690119102296058732871234923198613038948912150601453332229785092850551523855797134238878471931788026205213211979247553451188181055423952702247597332618485152578317369330314406241366829197368245866933367683114335637575338941659234522745335677877859311209678468779671646687770719393037193728858070587429076488400121199262036811290823411109576766856657481688929934145182355251825095133800617709874571524077648396533839978389092227143960564912721871852110122012864173653274496808691882507134324814121497373080591429807172024056959964971572484599545383372670733624362534424608589514918235987944527899875697204387056069275792507039984185051332304701615296156289947521777999057504852032656110114712800188246323282341187817645738872021448779653323946183781411351067251137943981057847098673880052057615020266409604424709088647101287477079183933626793980480308808841823760508752232524612983702806207538354764447807572906115092506772885289837078331973508084278144512842443578894715123792222305166632940691342993383771813689686687069725054821472179574397552988157324736428944921750555475374089620540704047567863765670847794393935350355728026573288086744688578282140583406487570628563692070263889295076465468709004883228275143881363283792599535728660535633578076544825902177622596153981227507115624658871467161056872080061814351371332045013107075367084128750410817989913404519881225859958181909194274047139240828762790317844461304436990627473845613141198572291691548630395853161965036941576015815632332524598022785366776428876141497018067810784203141286812322619953646775534364297391133324299953238691733724769698663789686155242993446921529833928955982016447076686223361512100061545189469325262782571061771188476426722029423642799053331780303935769644814454563320001085922035077063505374017170024244033247493486368269428189451288604249807179682372693249042119342186900212753410894971066109812919209667824420039980823035356278378044225170937110594734358268082227038083087924519024452321002228375520708645975860209858724811224787920333063711783124623734442782472526387661057610847950087386376266413985519273181912498715156285097433485397785119321356893729229458716445293219663900674565578521868769192927597486203050617360040573930386488866928342951455983768240201589182440011452115621173650037189166390709330617398458869753003581500661276064271125053455770295404761176652815617445180349833026863004229707332199562952903912937858866735324700796333127942223732806838861422206798037589436291220685862164215465779696736134861627468531442224647917905826796868200532955987563765057480006741814020692949489411376787607389279665783204442095603959940830472074864401548256404455018244514152806610368125765755509867669220908597414467686546324371668217248348188183346080353088382835032024098137085514925291518902992657608324466442997618294010756778453314089046261015476121781819983741253775789453335336408607264721544858693671195150381840399808274817731260139582771218253402694148821049240729270043087338075807168169777521982093435214841202777471082159396070605089865172290843817426547531609364242048644514190656319634262286629639177548520810817670654381087607781738515279127547204742047066988573429329738535365773645823276159833658361618271347731634460681036642064459862033416593807658889082149731878549102996889569376432371569461108112069503153346556283476587372691451336083448156237774077627498726793048531202959816575155356683763148488509526389521405074880243835423076274004132667786865582099671382110235655985499661525615542889690201676260392843519741806750299146376070192380011899181134950079970544606689406215592933927488167810090603959876548254466974514581333330561124957855044552239608942852701041659737381068703483799298087975289419562177331120573083251428913381175182352267649690245503275064835008019936381763925068996228019472462383945490176233684221658775129657145270920014265922019199713652584205489587646005604042219737781803622390120635431610266606876188474296231084626590466630415925600566867091587534907495194601736542522562291679817233412905789209917765001985553973669687058200126789110665792684204742242634460085825412703236770645232452095560591848996659503498802733567665367167985915142066896791415343106904719195343111449294983316049727647735879632483488250840496485938961691477892612064663315774549855155360258540272204587617983298297737871911801179587612503678725735320971715851832245855594323679553549575915980665969980306438924951231191822398288113114401183347499871056008435984108989967418769421938753082305609786479174104336036146043693023188222047413701424505645681503606662562856576557462633824645014238757509348591028834878687590724452425019042001937040802060307416106424199213450759707413220484195237238971394471175385666561078037455356003129223013084862564213341271691554863956544882079955601613050143692017853524170806727685814243376430688930235680382936633723223324485482431870431535968213796598301854961323132901685279735466005841962506658818636621531977179321612623075624087533132702152913568503306647616465191216278349497811271568341750859707739519794593883090608077153051368345291328441992569459651017414854890033400346524353019942185384775681796638649807505386091045083451208643287227235979167682028347509342927251689773117042767371066096563434534603835852911478353500425518940678128481980751788552135413977099059639311533425953486631573818908594690758505969344311282473394929067191848019557349818813125107747659837418170964472580111359658119587114603912546839748740257057556915766681896072252217259268316141355936593270904706199008673465027354505142815113115782557182917319063086076403610019079119218124024290156325573225857976880412869576919365243118102637585250743963811973844610137908687535230410216073153475555930817921550840462378095869113506334961934283672603794558837776571902972983489519164689719356677035124425701940384348619407100926323321235945315196673185366540684095337445569779521173094846972968031642745973476252463025505985975313816105842961126074061498969384421771521736328968828371629046291282343107674169753488115573790415974627032007149550440626862292055824613717240072235523791200572250233177505830503338461504161684209917801466198517320041014056300193886805962471235832119424034936678414040588206966804503593092518209176233151146600398315306247560119338986968902944423627557642109698770789781480608779368933865595636451249104545896819890082721070941893078082683394229004760188439398077623810971610516929765012011404529711508572254287620973159998973657626133403370120940811142350251250847441349529420006071329144660851688591169129778912835098762645362079894142384805877508413476917355348986436567481256708227763483305295182226532643304733130253251187750147339352347613021252766903392685193658096513842691475094783271409863947536768337355430640871070828848760312899528041203659146555251726221434078423955065924233910708020048665897038512091892474780975511437598161470933709109581117397699188916073715204822644781417408328272088729202161004963427725332387108386878340367735231721619099893643462311979687532682070820167372646488588884073063428318430473265295695163294435076484665098104899778454376964044187236224658985396983824200388444940685323694685666648043744322142206088111728294191004553679360456451007869437581891915167845209301693366330442249726078749956520517834875893875687162125006500079966963557772643620902465877790889567937228238328393792979136244443831891914545530299026783074352220857199735162690102081875051554874322877613240862018222413610162013999636372235167807753006492658428804330488553319404740988325073722923843150126483180919407729134188056583979428256139601168530983064838052334606669427686409501382240493531574957131113688761775781395143633965191075406832295655608207408844256475339752338550581554406175541610957896665912212587794356988643882997549750498126424019583756564293028924516551758649437757116542707739214045388670728800788517247142857361242498983233975947801025395681409986582225900820210229806425452486574548295267172673836066253653262040971072019647244335107530507722120150105346196464640385265785299540612968898025288398980613964286937434137012499686931269399581219774147259967872148147047758500933725873558189710693824936769117064312798498517254445250752333561853352165394711334071447400581213818963071593026127138652532137156635934793826191876914283796741486460399227664538930200805903379843552616212572207980706853539714683522768311465861518530480324736326989763645887780305196276087618204030620452789646317493468509821169283339473460399104471301274000356845134588608953429519319913350699425146963977693896789382860500611257198379623603711832535023402302957633626381822418932249724151238221587865766039511462414191677809168228291102325053514676381340023687654488329595669287512837745583082681210290111584286272308037460798570595221027216997633289839160953419861633753746953398252963046322964301227332349487273131243504761162635427869295744283143313566046735690543190283866699950494714190799035289090733934698048178893597300636586398727687721286648396303213855423435881695676767407056204331180438790106459908401837607294409463502948456623522905053339064794441477656505913091124982659770308917242246369873593646431391056962526784481488860243083898119237228094637802343971681240573536368816632249281419663718413638658908110707361999625611246102062832289965892181427543726150916289562933589582221711379725838206541827224394113768034047928337983369311435830427629872828807412439831279420911095503331169399096800237617193853145358589025540289682732924761962027836801506556672181842539051631559797331944662131293213507890874914362822045038983466934889451125122374937982133613657321671295870328313124821920069168964407244761794142441057717561779909392652489109437220747143997523006362292496592094768297370486317368148124055400491017340808756467400270035991519380057338939925958503143371301809748447454006676335959262834680455194793491479576930353847216905317697343135784275514948958194122406209432791977134498999737070314298598880210251397115907423682717405116386386740427259517055644016323756742287673085127185508070449032560204824622278666037233735042588354118132476625329367966648053432203368025120539097764378717615367552608540035446839551539261780084487080986625270839785162605941247769403702237824710621368873063675344329848640678064843585084839570706841623327945841895353822332865317030924392423906169160116571922220603149307103812019346737379273795564312466476724037484147646639730943574785782706516908323581844615631445986007396133772778634726142424265156633797424983124098044882075280601834168677409089120300153713130539931681797749552055733624259021016989198755239346218663918781971511845617606784340275837745798223572827442398031314686098693553552759545637412138016829720939630311333762087515442415440415552415390891121468845150939512310652596539881915160677149738560732390102431677800752627944013182465812087685982365798882510837338935940068669955456701388290431243815096407550842292724902554694704469247161377224174218658884826091817003468713851754341097609995150375297851986464142848788622991417025047644600825516862292952008111852957150272621385083001732797865520957821461041342678998932417693064295880110219301645652462233791767360834475663947993572052847758413244861054881352462073683545544152216156360327388364344929430997113832129175839104163095825420415296207555635041105615151866060045455089077449545730648412125411189393073690024968693724036189242012840326369801457603691714634224088860902026302139791979779084453976752679671834464220850824870670176220908200855103918224829457591574815946061211829818405828585605553101490635325248537974438641153542946785969292713006667204737858027122912698582684426772904651508753140791232612136247297933535581394454639587367091960227587981318596859118678614364984475177492699808069067602245636935366732967691737938325890437382024360170505029785878991600054297850083975736545487353774196899466763206767157955408531245566067618420306948561445934885867847914622765925163032188688795836248812799773659016347206138883046377163879586764702970286770146842260064336224297495092884319339033290149983094927055187592842864277342145826851519043726890857969510472990906816820767724464795181519481529401246503682529434836629430296640404195350085562053407073049091431773066504881331356558443496473252049835805585154180711560947627530148252861212830682377295398222383712102257100602790489440262365581984647454511635795881772237580291422867024372858675649696353456940680297336835397140622132374139464332309407261842438562716441902170981468722959642025275618014283534948533023184449590384786304540684440053196883633991355430692646634627988457855739436784077481581031308368457117094852285764609385951151530280043845227166949830512775201879638157896637279274775236623041273469955385613987594440915189132248123345655332857687831578466738625573529604907276470880813415630675422077090674874901843391741142840689875930474567411537936679548243098756931296480991663507628877278196236949331744590254418401646865856341910637618106905265820397088657043554898958315475571841016998190958689368497738731669889026231096340748921886496199098080063480792311277716135289393034649844046480466563899976098440068024460395516461289037868091924277880317501279875364213326803589545857956190255157626770108413870922843868763648923526999711401756156716863967913078835642389796257608628933833081096833671591521839331898806898606355599745573000072943620836613349310843689015201319360195527301883820075052024894491918548589156090617011044097193578737135669912175802163351262671832706174849796499496580757453408588893270089122904135877057298180408419366478036966810323948794147698744013338071393456943686026001702705144377617605190140426517785947054527902801814207789680456822177242488534621630000898639547354911236594303977059709078475078408562902280758338922349694225811509687316062790697641552751137570941936434208713311792343360928072356487395366554424680034610066365127790713867975144126328596201957366881746028268024716864381742920132339676349044666124958351436646445047833432049831970446375821734597987359767474974669601102342692318437159531148549757347508536576589693081600311877813952905172488504643323349831848284114061626717919978462853785129373298360467902832191109508934308776937988334792331753189413223568596337011014222604428051235856270572299677374262206659980373431766254977666074188116086595571320188293367251815108627697285208613650667334167519496981621164221772082913873449933071010186750178990417321677298275463033685322891369291849472739433898037671882109970743931136175555250085835472904327947891699217064681209140712490317090610517112355289552724396393270477833290278865731961216485164787226527252623651747863500685109969684289059988688304116067136239978203944713443468381559224804285757031771193434479028185801087695185415044722233681455141330720111159752301342704890876987334421855772214711498689020225507313078396650447926992410312949845616942860165026909885282979740228542816308282650108454900803817771796666593618449968028789966099365172649787912171156769954629768699434093775994047148993848806599145900555033714326504654835364076529479834966297727345100925507337794042158420231575238997306899344310484118939128557354105608926441577597393554394576876970651607373436900278121960148106863432068177106165986328719995529254658428403234915921226389904972427431027665033607435542246884650896830231428849303329199927346538977437851332642401096766404802302729497376301379337926234882276984610176055621358404923262946487077631282482187133244026752897041004914175667943659800561844442382536903675929452947062448359045219382424122250682497337286174375691842513597760178853406657269410144091352623256431407767183475201710365232854437976061616755590294020533520865451160688416012652818906158216089945083477658206416862451584494490832443257399554538925076726573688212773138734709316785652325784077499623269849741599887248389078653810306276148804871079369414402471486058205461319033818773719753544533983842117474962090821915290875965938047350684280865195151215446782812778994760985305409210958869498038311274992215507150763428843551219991398089311689315581673043627514930463713551707716870951995054464941335205282783496556491644725844981245567896828611794034847882107223923191984470726214064700635274030748657872434462953494537538381612711066236971222622278103514846596553452706735845796021532393043687804250941232518994081744935015149431731775350070069232914354098022896806220674428089602014382977925477342321961399848313994826644362985901500586357329140522589037600053278397198172299911026571513688923377253019403695113856547273423778014546066239179222751560239347325119049164067574133517992877652278357235011401800955429539461432903668281950035753994345162791085476618520028545365596980190151279011296366620038648958403485123286208717015001053448085729415000965455134000943449860177355235408229011193198334005273705891104767796894905603850863098009208464866510678929447765835647996747334696030892649487348012319303566945229914327873028593284959947503639323559028626284215735842032011439501377600795832393436352528620204667885332122229987511588050046464899786738128262254739327212067631089379076253883901566684697788654072478205444899320293363505217494604938893893841188671963066942077351143654900802399041594362033458624369068982100536994223669912086704103117020187890427826344701615831900114375956625600572061070213604104663969108144107643120496311045008152736701409908720994392273510712433443352560522943811950187893525780640839463875062146011806939128603203672208697243668184250286550552611528744329673572699235230527320850277607145601828325942417207210584221890912247806260614783942346253283756634424809983079113840937979658296999842968135775381599401063222670250910674342151441855544919876305984094262979786959291507821864838825698862599161053685849246737332977853618527620387283581619450467171372394578828479408131139931679853155246473777504545736805880536648062475077680418349999420136408050626375832228471986778044937729295746705584603116902554539448121114209150391289641368658841475337320461048056535254564202528583793914825512334166677485327338820520275331829852295654545322653668403704989122165841445770224262188945739491290258143215132521957837799412476351151927353067417414226254325725951182899683782040941314998299508528568861799648801365926759423096316204536642390359240518891739143965763325894702134196812696655123649585883803811999246034282918594204351585052066313677765959741980644222705303771511969455416864322284725681610008659866724821961711720482113093200933438326492816050562343721893470649624625318167386789661412275039041864155337659498128639735873688074323676169267423736558980505716962706393344117632347032730435920256504061128383381544506420457343420498401621360267301604538501456574912655046259427442300449684899196568262657990709641588718465081808453462450065763904842178849688202545284449882920814734454865216895305001243389004564166737124258598367605585745429856953977251273347823440462723307279672906851392719582712494079451621910652697493330726068868863604751635348846352402825322337007869321678153533458075782483992955014140099503997031359907218520570971420312784052269538487285979765805403041528882328268537698456380473550278249340946325761252931006940612237919736612906572803065472334706763886779863533597917793111919628754890524228131907823593769302953668484021734876721218382023349211687201314331649882542524365394061056091945899352918037206701741172241480446122473828383370558803014913733856424673247226266016442991489614917906341419471072251725662722774350989585610006791700101826453253226892403236395285596946396918887505968568827783080200505141470057498879002362671947463955362877798824892393960321705608681150199692611669797615985950944014464223882273489742024695236322535027822148367696472123422961621974174467731257710926667904006731900542320325357845583356396082946608915037695262847501881737502102275300294736440145419273988071015616080075486720817180524132772158480575245385902480919867713643833809771883792772710829232312392389731922358042593683831588734969452182733908297484177787657999142286514892158766559752601156532336462710873378058754630292250590273912256207890807383176358435078241642024431862561286700711842640770727305594241304815317007529757647987199749864807925121145067906310040393517698716777005012708580374336569614740842427347924135265168555836776601467007626220953810763297331271132189630514382474743315546082453114200954400866671856557659970184875077480430041013593240930084392144665562974204878714111455908215722850156195245280528946966619961880237239329723946604820565439478740362154776758960698339396691477147080056099336115672581212620670468726642018925291286808201919564317565508553662195718185718062682480488943575589523190705962717529931784830267237471722245974933105143121443986222657597139291042182643698370390446538984344394973848173234532565310453791883321914929170186170813520266528141787983011289367552175891696871144777400599668860690799481092355258162266847974823262895337071922687250064550537485407725435398316996168001399375100251994795469421442881839961513801593265129834530428041638439068772309932346134847895997475122012234018354761174614028376435727479484962058086673377033966320200258348476373535832176671471620194714658691759572321426583739574708761671829158974572898723561168599861135174250755806388855216521693708420761246891203617091702915998444486511895098262877858648432659950345702477362401610290949736440726514578147717600247554737743260243810892990833973345158864797557191797336584978301549706393243679730722960455870444929163181380613411135237196790639441911712664672195957180697709251237899271435365882169405521170400719748367843188920486004820320159763029915496304700614416123865382435001480666225151252640591053710557769615916420757813458244432457608136809021628327739130709973110511212236332707504453419993300833847311108214391324506290204296921064707085656887692489245917061667349265611331345397237495774063144804483067935348685212247854393658323039288873824214418099691499828147520609596155797347947035175588769089174259885110051801366277179855436182764343524429037684790133847768154987784404870931369490714138524275796373154428335840859897562843661661612819918835680379487552930074815285600622251995403772163123892073207724289732079089509250209520753539499907411276069577788813662974759259677262173183227682503874973720186709483409851351428079423598120650251540266246502770152877279629850197103445528460168939099084956842998026571416796355944046244526817300041603957704724927331741134623067804844080358615280381013910984566919478890195726259997934518306357995323945410709149843737936664645502516906853765640710899271224824283516996855757073391333581644214825607384243407998730098454472644027973806130079737450652489697985355541216944894389748284968253380977902772045728251142105431217381919188127674764926685254519966672472976960338059359586282465732002531822373894909088029187459003625618345456895808541488576018263282695058726278813237149666961434513904302293935118583878969079709052569266703319242845012652819540941806410405479006458998215062011026992508317196746406486122943418822440283859436854736693221679600524400797261601820332425230927966356810442444608434557415900419598542738785268066227757330946292471284429233494326117781289766078379865634008019684558619630741023812907669163225787599312485666481622891551340367665993555597373728687168062119266065413843555159931896888764124334431240315619320570161702215014228164720858997434418772552551908947479578343093374753735725948543889667226833356569858257852156257217132641000808796743598056767269204443226292557253032308117303600020302177812250584367064154815970402226896095339411952687080616945482917161546991605469394632343219012778614459907596478086638890478104643403062283502969583950583099046002051956050955045906396368346451965689345224065411782441290166108546801157906024469070216664581040101230339848959548597790720694984117285846602119430038718582722975773809467935145587417743110045273323762381836114653442268745274897930659095707517446663203880532860865277041775015212386354435179561146471081286529876577622012642032544452256457200596839341256970180932405656833606296667512582275111134960446995931900602126213614773377599557352234246556248141628920113490313078436494490172701048748839745029226355742929399245262581105611894835498098259104280679108968824511644610290184455530267076282697528360562759501094310387332955621276730817404663619881964540428385280432213969552502458909088749705899667115144215704212850207098889285225126481836710949454652362834562267175636043280239165101601951820548048314935644315191196611973405619654343834831394973551025232012814124386152224106759419798625264858612695373377484595038681063986758432712538256755302385936055322901589582930696873086793526776067875851185041854721303234319316253252963761638226812188624922939453159951910857305027812070965498918936278900798092235218829333197999867938735935408859094124862127336336408767267513555241643213631089188274341574505399964744346405569267601520730621734207875992408112240072704728391329088587383983630947369180506473233264955426785795972693048339248493708348437918584933863903023179162452475528952589681719563993341456726715506888858615608433171230099215158116489783164368698444116648489398542131806194317886337629882225393219613319734619262454579617647324615457713585954847317714958662951937535247156947341994304152668605402825606981222515957531570296518044714289174183921000613238775432905189061078695843084410836697219271493844277394493589350548373052254142522270908053658609108168241008253517117582708118049921147270439597801314286974799681216432042636071488148857886022203476702496876979353415357669487147794683182696811731040140929780162303708159887428732516011203047959445089519274376928835221197847287444993616164227965583504782355652247946325879518737504600961255544197487333154283350386425400411410232956870330230672714672635788703239456398302601013220506580736854760420026797639522540584403329966468125869045401900381224059410797284403313462028894775020962133745025723937913132197362156333086321539569187056982309905448378720683032007568908434158477200231278781540435399414117085432451344018174181602873764966454726330891800482225672352833905125575177173790107721018222684854257635771336226291807504454207826214653448027012527721723138152319411153589839032761835303729178412162758433693968119298187744404016629811078758346873837184246427783787026794885285024511751551308184230266682812811407417020714651607500837530917853041463299296668137799440963292856545717669147138823676701001865131095609906164026295155399654089019018596410042239835313521560017179992815081689990180081769268849364969259563177243361066679439080084187145839138146696875855634099869209539395125494073433684536734958884599417355227341347238451254872648849909691155565206898386254010877850297647585333081896954624206277217068020634666301909801393028560418631411397263687437166791334141466276980876524284969467685017827355213661417343950275176221183268494151645553760560899130295970538844279354469020907576074856918143576278185766867217009125231034172320580963206085936242643083172671157302637469968825082950106680683007836260930906181094140816648118626814818051080788127911571935503964360315616104662577617515817644061121117169314393769906958320843799292054040524554814079737825195218026076558480758244711671265174119757526691311581539771411864810544139838815120536967933461236466486937246612832712835630341783156459390557823750972979998336036909079040337269084761061596129062377107206420409256558868140769761925977537997902718348457867232778316607418810858600057772495902355483682268756373897401766125107366867104830863852012883366928200550196685532420512218768756550067194365183408904261687126843392766347863215434765596496529043700091572131002990431566749737859757076127155334472556146105504954770326849169406367302534804124230360954961223256837459008050813044683155733655138019921902857903630036850994858703403756331061238915555645510650558762362247344423223938772558690243645509796064756780022729940545473022623215912835695613170006203141922969253671847181682099104323290095810168962369254317208792805676306894401282288711251784164160779098352156684028271001912566274994111509457361454766878311649019186585515963540009491773794513785431198767432096130929082931270790321649065392848895191381227428486470890781516909719146981009665714499184265751603986755262128896401558229759543471219158580796959281116317421668075289944082670951039265276408970695820718499018358776523721722152048282990100281034585879132021690941088238001035070567636397406852906660102945018121736662667611214410435609411771881379722688917560087971165935458604380958093793847452814438481534246096054516195721231391177296303226405552300372955317676476352638071057701407792671938026886614394505029985150298676654744860755141401163384281308750586251550653923600062456238898611668050954756115597487920053502844778800522304397419460152703392171196801782034605461860679114821860224291531780518003971961784612202132146650763153242246575633547263434275111337490470855384365071304721348607943338737951494665779044533631466946837290144537980761786686609311152811960831994670109267770027377885080686275930214144922164814764064859204884771121880292605470540280344129802898877511535496799959245849954875954277169266389757090023815493211820460690318576120907910989029767353300018790946986638564144695727359821007234444425065813292651542297448755185580012232198378774610547147248523499195841673974713273108333806177634901906515255501006558080423727986601740185778595224631963225964231291608006539649783442892999883612343918559024575284504175571428001886751865316068190288929269849705474946318105733827887077590561463789458914449336793266096424729352591737072506815207970543165119472037032727353244380069182989070537135927278304406115975473208367263976325389843773671733263313256357180598971062104597113851054923816155027386273915070859953379405647590935589183926255329196886823492162935736809321894286332967990142935522505196082293174335999755645754521344984544917400810576757363327410610943691352869717942864457901083824502003892383975162013186177160009106135107719278477721531926366684735634359546561912331454587426483977978747141659519468762823407994799095437748631413512536637112211921176688795313081552595920888523340465642245704753311939431754257979041541129917189128067592165732944568271714156838419816210284952270968973265241268411717319087961316633692154110672049435847996439277003214709322818204397543053482070158065796808086030820278644698939673700729755720323806705650353328393208906714827787518730474682177198920033411421045949926245285387551212816044711414993477343008021986601946030822524756373837420835644338507173237392579099435388297761988309225378937959906011792750069298771198875355392070066751345972142814279305410327833582421160163274078219525865167148432946423921566710710956111253086663314127654791230391177519026161207231427874681257080663564130415337618755676032604722287440680159164127802370877447464775290908201157880524609028959455655118266799645333949344914971191141922904007902204328944349834705358195973515284439676745971848179231196436828495245910597811309496999587480367947664786341189052189326915444283632087065163053233720853187244686497904968059968582258872707550509108713100111351021692541988474240461603701750834012922128946301843376791360137044190647377535084595769865357522913368436097138344058130932232442666476986841549581764840577928261606941347882975906130162051937538587769977511145308193850247148466645571148770823773541143181644300728956185297831028588009631826786476892562482111771392768851767029152712023111128509204376400648180113611299937237637115706420166310336617242769069391157617635322448381717690096892298788003504747927257660439348447193221952131732772137175820357677696597018340904162880974484079562780709182586704116234964727794142115988507271473093961881641188767588433968869199741021455826086262389923067125510562747973935042946212301338979409736429001380064823734713493918189807163170966929281337203916675504919746985885672787419706669349108600536162570971590480213737191563321251172138137530153787068519654783189035445600122540757910222160144309689485571215424933386979963103583073449084763787481530949050040276104194755685520269181899345316218219535422841965187279815788121852047178577169113659997402176302566332976811392525819104070897354182850440501984377740591236979229642479319011978239901779675742848919197193127921393234293283424301752482227507976327897523852078651724629444194304227023785066874782055852897409444544667416703249349514582000949973705856721775989114918199308900638014370321330219084551690181441166654101731461642190525657916031515926827179870798747716294602892104259783637060524824141831079368395169117460777316749793107574139283251701503165710744519550404092858101785461731888515753039279589906629592464021217370400637687820147373247502351959551727759925986093224078373929669662212802492543612331338215558735572972879977379203617946371576766872286351996877281794433242001051933427608974714298400212613551860674746400401667331948720308022673059900985194944963127919491879264931328010364208829506859425814622593829531735556552033070090484269007379439400976506920001398755863601886555835830648347822078405484621758989593148707475108448754232204717621891511346906311668455281594511071687280009744475976991440745399439772246226558321839114848630900468045517417068333005542618570035371376102321443254111210335283700343966370034906013464731303091298668657036960990267621676118578958730046182952796499720526359195682033399799415282572910169422195870958256891178524465552819409856035095221588333267054634804991753023701650676343030904321435047012202609450502422909536650862195796586824604580146892766652817354307677769796893382865198515066438100530157386213453946101631120956635170995641609441479725377658936557196615828671754975024339520671774498234473449097114202516093591697348754031686927267729004396455641604915364293900702174935857883590857012288358640689957289667024305391773446535679497324820322073046818286847656862301855373182015258404994584972303830068334881616956390455047817331609687926130036600842026074041037164242563881565443862678264083449545048466006805695480733263105100395812675108308020496340675412615049265268315726072698209205667881222086450241199922101814350996192514016971565156795005057905356285655825224084580300493736060982536709246823696963484355031413333866416451741408105037779821174534634118269488992931144633828180169974763963232767335070325617057836555733377161276484357945600224114708778729380265307013940976801041837179364812834496406531824537346998557090423276115673011298960379809778335598873738780080239834947491708887986893929787293139680413376711906971967464276257785260720812990222350613322965091491993207972364289208431097689181586242911723637884318258300066437429356053352385373246699064085699900454703444266678080381255497650127345783274279538518967041202243292933448569479000377471347016671445873089674277044668154870067162883323519499575603204879078680745805473169217157846225646222786114299137777347277075247666782372960630270081435812200417581081617440284852941809114525775294082183122371434958932915803297142009582038090504929493741788901085575235153959507443871239255793383019203486758663214812768990265256632593655375066773439558203451448265303444078823038881644529585965187796676293800166470856981466119470299080307365309445973668216764554363386703716548902529862918501659030780180279691850617690416042353816341895479547601319719064735829098658777388223882181841891990705124897319428851614092650751072742719928994275601856962568321380597443669625653402490409632332848058881936869398109854138164039146167134796598268264447170081193998587464945661048471341684836105680913016688683147084595343649586634507774331835533944855263936222006404598864430978367764580765323674254568571967575259593723130639394194644434693496332634622458303288219108346606312055094563929528935739679427290265803716037770429759366452596246904982753383820431857818041910093632069271481984149511487381914766523157257197434114338054947496428316202492697380732449410206372108213024699535224201525547431692184511808193249995015365622111916605043975255683025023928741324021822778032159855130012197769668730066444146148401940388038382775219530443858381474877899518910609163594762917734758337229154616641085965915449261016921113671968798945936565738178847781847847696104993890476724771383041485376535116368081013314029899454228298585467743924815475188809311183762313101671247586391732411769097394960285904803519166397988644526249480234599566319020826810620267525064319788183940500554318812506692904036664521824054790808873006287475986077719926991312172070203085114693719245840406559662831019015023252112848577189747079484026507791475540365899746875014465645204257494199683025719334739231945989710562439209978477087904173722687406985627294937842161406529426769826805594447505414495751665029205198361217185045139174003927010293760089731254109188967089621563256765450995596626487034830945214606800035852167250022583085379426763192113901187686089397220594262162607427823939728629487487028324859890876308266531129732269541431272339104580922864509823882758687361213372814946938134650976410560161947342534511990529529485275036905544323297762354864115882473458945108975170426358510848427334535018799843847606017416906808705030144850950685147715453940876266082588163325194711357513328777616322854101010324875860928362289535822526766675505016366191001786260574981699635782172623120706175024171921896239189019171854901726394787583961798584769487230450406638180768924369677373804304637443270220568299561223238502525947893803997989386393888151395402193874782013473153563805861583689001809518069382029129799771799755919607840635103450347100098935426108604768889591451502111664198478015370571420391994194236952589516861326624744170095079170731166976389316379572937422019739951504490862279276325616651971191294433918663428258932067983029327831154215736149391933297362800523825891981472809646061979476459862475867001240728683410493624862898139371728743624444421205090923711629093304083801443441169126095245416320894122544058858988159710856391009947038089228276649943457116173728396414060493405661974324385136846758638832217347891034837302502395760244243965494641103200109338254536393811594509193463997796091004804592379586047849502923128405976304285723471836741709592750546560806517862265186255074828396618128810869918604630174944637823561581889740402733797056203078891090518964529482277270959128602164696029772531959806731740338047998836045301556023868395640355020227038537249093682461205497784151704730463067768503269545184153004378926149025620634226506855078896069091584663162605271617175126323808954714691530674858933367161822559302300087322739005422331898209808541425840566446954751233905528028329484124055775401957511215124970454778632079809831962459500804610583824685251617564684942715484185197185871920960850084696661471166282723813859581653360008318751360425728169611728957518913638734844776500425255874545948204423152041737720669707591868107963761383481031985266626910336702315281839296650735689677139682455182540898976228436719807584192423087157490456283572378358149572675098523550070644698695710509787306767897430070098414105382731488438861902084427648825353249219460322282692321822094278664952718272473463493094263503150464574326826122572042573431640297082039431508996542148471074518133101137280025983169424791354883344432419369547694184344511532420578198032656983774532538344070731525037757695238139451995313861937687432552360218392901969147535400973947226280223759598217543651490647982400907618080374595880881609225140930263324289738082750117929883082509793178130855713380152798842029999666768701385630228470564412866008879528942772603737741504270413796965904486253008723063814907301799833193595513787803655934050193540441737378996220972863368298587707303087965328603783118121028424475453547602516502498213301854256321448940346773890148354091045542894507089335484651446547958182025679772912337505937746033476801033606327975705811527397829803237404380156080297150067795068988862850300271701069258760655868642366021253369170076335993972347688605318776492436877316056489212946506648840386902941464875373562051336783866402542737596460802614783970235109160496902971362996839461337083882580205628207651480560772038951386515529653052907644602627854689793543670834107044262391710107792673474236221183337426142653950554493823029598450483276710554484246209246700870121298656908923937488353980400941734929944852859226428017044489599153477693381441547779108788497443297597458259011769898456466936366511163967934443633558765727159474534671691371451191294717718682760398635561867514083536362726970725920258817094463820525778542801194198092953288836530271391006342615213519248894118282435927125316708922243324616120490082995958031978037436797067718971958360527551229097254429831779602224401466071165939705889913095128261316727628437548049716327749462984762257569099505423937506057585181583078730669521800466184192018823368946308382298948503996758491708947613246732515370939959143272789311806252113497448005713740506902353403791032961789013211606089582726673404460971374923924786475450395362894992981230437954132422887947940644518247411278342404687265920798022737435102605760748145870978499732846422127979179424007456176208978941473413571938511799983588843464055713069167400646303815331177326626517475947323949261857449138027845866977864298697711011799338839892567261150490347005248370480914111355367120283495576643261127885936249794535184808146669220441862210527678461464632467359497968216542588421132190420980882798882355516354746642516241948098939857643626297101035200159292165091891688212897978900288417328675472980680242563493305507176016560826996327434621043072723308379179568871613523847096714598154372681913484745024005473709151461257971314782875266281693579910610992242316506390568045013836155127706343889533655939365783289824943081096688880544414312186196026104849345262539922504190525641518268957379604866889516072828865436658811929656931752700758290327852532147219526419814955225864968478382392247217169512501912476534828638903644459401435093966466613573194956996164365869038241807454708218572673702357510400959886884686462906536939867877848943047635291989883587339293660136745379892852320185118022589508668430393148861555456289291383441624152252440539801436476410784817371445656085577169014066059215176179095382243374796467696024807284302580458151462451601365835719707003044591258416891447007462296584667926145879105009794840445110640988712847974123177269605847928091609401106158736709450846471658025175259943835321801228800101887498644185731461892916422942474229169727410880909219382386413084773521374994845805890496502950114325990152142209308203405267953938272731577603502714193405917272938318857191879318013660929134968862190953467942769527870938965797749856600952351372958641242582970454860921782749384147064906419092747084673116739578042463455323728189162836094910587194968524855036915461367838382303380803655435014525930694983361712860157558108577763982853623738281534726675753731798734943219496712841218633163982871757138073402356873586168613302564206599455241542015338492147053002112697128708782227440722360339261835717936278991635783342520184376322356164500321839157262307831013301766345958321496489265865928885187832140612370320615559800553740298621764538630913475030860349481542103458948626297064932908705772353486823244693633121578445909676452964043716850870191601246549969314040477954644647348214263711868808239567766541133908102970217801268485592569423205674867546456090315101790967057878097445357574291934319212633302197316804462736302966726201657478669552145543724789530257154466203498259048904350616422229378677453274770468667208287651402947338677023116722748873428623998287366261310046347152583403754751511966271538551251517124868919050706262466813030651517045869049136305016962700748930348364650335359740448911425464711959819037745661396316898794655843363110405235763538916363299598246573319573840590626470205489855155150453071720092969143065202535990144351085821832192276026257742056508883206333670479595374226782898494775843601710754558220035300906324670770341529470895168586595868255309540935083243147705223978184953179889494461475836145538119330417371091390059727447882282520309410399466706019764141879683618924990499495897523013485459377237398441268041204372011048235890253788017565915340829145990859228898395860560470436455827024316742616821363811410319595184722737590957144061971321986019661096222802135995125017503975960227235395141782182195605001068593373193651643698052557838951079939527084129092400596188007187041519164523350485230603084542705309983369120673482668601579259531022267039241803002274325547221281666019045436713239042083666684310150226991238979377704113015764848031534828475456480787172670378631649961055515351203544822881012103038684372010040159260794672726349969791451513061555434084716412957902846644494869328333842455756132959518558336492976430539488600979790367428484897295610855166109989320035890405913415796841718311972856131390186212359476587609447539874051573144038200239749498755895102831910183789403517794910219546280196115220290536839480117046516371846104968357481658719888838461380329580704147463961600392507303742204602403450585043741614163837887016559714783637626756465508692631360520150679077958344628361918369865231329241648848926858994134324575734938310313142512134766640518641973236685870324271836176946703259466095218327802745962181675410395970957077707259631440074907576574174706649749220353294654002197846181828761070054652499771389953629824407513689744843583386281173845742306131072120772098150737377953165148886007234243570663564881220351437236372108868598653872117882334874198851787602036188078503983203235737950312388103173137717825491190186486516665585875117717618010204929589077203841149532767272080574154848163920281888524801684718911427507845285412469759411549898985196679704733209408084135539446215058330399391729071525110897181099894041180676357072573114123423820013314893283917965392774179278582800482189666254249816772504521157543936758546738483625425939166079381655902101664478777632561828633870875107703545836750467391502086677218166615503724423656453842837671266600574454269865315928940034345292605590738593988107189782198333618464017510587319403598943172219551202173748693519865004377798653165963801684611503107979495624790249024970684891706298814771557010350888973339947367493666779320136113461772133747124357825240407331225155841294785769993676337226577331763315770785040846243537098145552884673016481797637578417393784013958946001380837031947110053502936704309593337787098131866267206029553328251303216837456552077628102290365925890739693432768618996516571524065976614125063383148321208540313300727729772534559663611036222110588872348096693504761640301764897917497638423253629104777314967813393944072111209747174767461380429986121699704699788490075086864956608684821308703110610698136708171273829606361559971250448766160694962478840313410905251416247558706027359725538837577433231516965358442846731904919986429016782170924084620563385409103574815017554995283596317907728834428685768626278684388288710592270663970676197260620051811674044939120200241566777850961444637220326568576810936906750243574057083196894094542692999575874773043881932121099071665664157034076858681820441829092880151830727775069355684184484607596899771480771796030247948443314333909590753587202052095238580872412261444273158832530712959352749824274010541558650883055467975168983642887456942891513036968778075988457399693624513730450621568194442028689725886133987253433452312681287423098577817448989163355708572376574537424569674058226923258099892610544952584209371734430699469030766888344203059560859490649740313907649103811816105229893353998157475248924337747583184527396472486670989498442796895052347424596569668503076612938972417120005919367033613896218780083571338674881754388889453991380492570538265483409363547145446820391150847637132336227980794083597166721116143804878863126659502425370028659989428657604329254435528139386502061320352593826911670055144907598296996044300635604195033942270500554775814687786738845278126092801034482928731909615446158874685311828953928960399737898238715113913864251213432322925823423996786870479054428666240557925444405571758974458502379450082063587233289344297648498869422137272695702271994184104279858597255985381486150456262969462237051431526190322449527978585944991077501491825366521397350715949836186320906311847259772575523056609288167567871015040396186166755632294510328777822982394173612484998483000244453280477467614722342595982873226343189730474557890173517270981047003541274075127806417572231799202410830937430688388214612846960962732687877483662910750445349936016265630201968679805996931266812294995954541992413240140707390468825271394410727310703864221513168805305966924574664489164884619211851217192540131667265824730570174771028293182660012301583834963197310874120764017668568344639655157547861011587399838187210031781409625602825991664800976106815031936678862944264308937542361468118194057222119341452363787616836641581258637070261441024338429539305841158454407906664245005950255942141919242634984491065273542019383376601134692297413512097327384697717134746712562347107631194948828029755188001849295984121002295285021083898742738488259809332895438630763372367615831047307726811807202314065824426842649423975065919312806476159032459691220825477700119408877421742952529293972572856932805303021471735208594871962051748375778955037101934461008201379913993587185390216055561497160398909297954712895931585205375797315664882862871340415347948022282059320338237869859048926392237136437850179269576831032414173188646932073301348068329700110735961378493535463982570281440928339894419542540114094918440278176384090627646286777877535632801330374922912448787905063746305440366923769092891900834776700970192254254637029460910313574788520006978454545973676907280030638296132561000878422786874317748468042065718672959031970994858105030243462056718868227625908002017015705562371550748902694170374976708781058379102925291761170446355228871799166722251675522948394490876969256443094434107165747643800209472351394346447329430301227959041552028512763099283181167902488353003384245409809522475700940351117782474778875330444560900962519122681065587794907105184483863314240893461857005336347281873697420657792387802551900632713504919658371017452526405232413004845287826759949386353931145901451640290151560927397767339656995476972075860819205429432712241520459998020031298215519798974068400312030582202256609302108010359339679335003604369665193347742132820613231225413990702618573365637406362397267187090961687456961033107320632844788158362365029622991336958308281730470974122843685709507090413643813973912159620836379596886917432966375971598203936789516309301066252312124222003006298564131602034216047389072755010209663743573521328645080222329228009473790878356392521234920491239465796703193542526406193004066430621183814754036609185621804991987612459668115361403161115201378746270412877485022590791511341246520647514416632132570012912023626175232354681111001682624024226609825846128964929676286928694239193193375295635122284954945513372160632716461088517431018306036934830634225449992142223170044724931453560456233866199821056806013253822510959273831167794183323983591909775104613453109938746717809704797880124858742421249975322904798448396542406797921696364333340521207465535247618120091724404620488809817322826820882665729698774768914289647622999204038193221270257513017381839618168557957872727250600473902941475865416848304450148532999463372535069744196875770962372960523696163886569509936086079163647513735347051374609773584866035961056264043018718855921606601012484128489686234330985671029163034643883229433746384826699464519243261382340484389628450821282362436698543755313749455813504179625506266046732943606633336233530560959233977990222363724716038206640619013653661113713210848191867468171252884138089965507137719904413148964355093925648926583137384861505589373645417690770862274775097502353971035088219412013184457378077567211700875689012446337976566031761710078142594745259218858215242619117654276189785413104827629200189327232685122694589401763420865880712319036639994062284731321267850419375219009416072249353482550756187102239798839672989957635958418858787315077483667077594765776421353071343715219726056559211934630556633230655284860654723611427808759793693257594990690358882128943861543105498827748657212002844319057031281328949441701505635150027049112373540631156932344996893295142512386969436487070331476350610315400035005699749383952689956157116425427631644831020682913725486349879610892228022703732658621112800117263852995174714667405740963979331072624364195576118538032503703853310482898764506796843999703580973120658331291041940615118471498824910430444208464642162294158511479224233414322821426774881054881317953721261987671718497673163135541098344616745409084258217251481461308579510898025149811036127658039901327082158927771568804717025236987418104781434435062205805701265838892070296956673824480637627991359068759127713287783939466671811921573422141798820350795549153489991413257573343970672039708098018600792866695498824913079631831502100808539445134766743174767429331360527480701895223469831062862344654147466762235205861825490527901436503660574880161678498457963236541190854734021594096280431344016050344214476314307299838007965334260291259908082692965036573602413038067599501045116878051047186712336746148646607173388626199107886984397449026957694535090546814855230813654873490474656466707428689024538620010296771769227566835990461043034038573917337474631357988997888861046028909392251542748936038857117971456654243528843735131954168831620419853082277913589260683994275418243904820670285234651689187725122435892279930886108467306684431062678100711567690163630482939694030563696702899752093468790749404211047348779764861771932240720070825905540049860026948363732211903949871360908823272577804257344255027780773383178251631541197249150694488543190511316745384211088127157083163675211996974226784240490702090109381642308901898506899687250526049262355796360444797798401197292061615207966091075831364055868696214821576156531511642287819086827449044065780719559119233562610584116779953905855568121541940334317757597001964870277001457428315963066514338287390521574258869166298683687648392310292032038325748951244344034657217959919407323353286081296597796920091611673336927542133977099476162817311529174004656383963557878383734719648006493040076034903262399393706199492785321873410425720435382570555985122547705291527979243790101594107059760256055534268703965985759478804326493816152443333991730194468750057757491849964826073776418550970088962898010329074420485317458467631308543575802823942075613856080170280151790211034051457749676319185294562459523767399167168153126622075867057711301280701701788451060734483081355706148207137738091465756974192732745927201213886013963509020976207574072462038182372666559235508173006520800118385054849805264663601456236630880338640213633750409682532249164655795784520152707349126325974016969317244789559023279329857808591889093640980876105451272986911149359620141408890345947452180003119285605523309719527306264364624802761789086167317761133497191556528079335804625211664560724659206902127747704837759942420808955274514027330898760896429699544984640019644904830298001006920407374545982268490634071631713684142007325984135967039948140379278385482852581843227524231590060919705353617392535594875589006957604056499626646627595550425912153944279884775092994725747740344386886894233318076224487377309191124394768713269166003468419168013063220067249238773557919654973800072834635485202268698404374854002600962443589944020894451175991201360815103395242457576819645957950185680695791827715161429163530765419040495333147240961343000142260370915018919700267062205232835356793511540039532673359717860132867297490566761399627365450224437560704001280591493757515197385098143950378752750142079595321652792716792341862180354602771383920478101057439704821870818856811833058785459644540705025540553478142960981606242394384452145571918172837103915996816565656248031085575309976383641885662645101860737896247620309939639522306570604411550473115057012716334082139185885926964216048292074713146268642556079659337449724671131109027251913715180721850667732453633667063574962499838305365788072374068997290911041735817501717040099577604304314859755909505547367662961150469683886804907875527770413254673327514295075518724233566907941321037751146720664081372991993806611666487504349836132956740698634894284832614623208818160297453612426863836296095943552044455335779436898760384714622124595812307892333601736892434410944884013432833892009798673695582490705965167232050610216057505939834289377723145237443188476841044903962089171933783621874979190330952052816837216090016219170562824392023457320177534575795954642832602460281817455908079986028590638672697038418911417678173505968074873592614176187812029248530533293153419924797212119047399137145172076269617076396969315480648145496492301557104358670728486654371169041556904439704651622610352614670367342007980523268075882665862676435067107726597357690170776541014028026358122488828862332533386624872774507729465700393348960467881419976559535238269484490701501582505547933354912291104327495305627506274392809651150077182428061505541385845017382934696012626641527313674938225231476389723669885132574324544422998973057331095331141584642084577365118530243222517918146498448890339050624456443242411679836173381397126956690798448907159288120342187704426551208321480591943457809243825232243072408176940168403471783362718966377400033685799155837080492117485123319794571748820458433489051827930624876170196186411086160917904294023172593508701514122460633574665542165773977092063420317316186493789066654188757460000907453744562053220386755480174628233360866266558076595972813337104880834425869519548457497558275702537860167380153943882544865126047337026692992193612494127288466642120740597846106689198675545671582315634413622934715243119978513226405434296522544329805414258279523685908339955153921448589005037937079839141617479386666433839813176500058174910920149844886123804022349835368893543841876559422332883365151987948636738442247172922139521194901830293488748270081806685857166889060324705460457009317394214825976304630601580393419224346487296413593312883222402911444159590459428507914260084898206963237924844407657005066138873609731390899489742625685048751744174833910620749592616294135900814246133686256449773949012170013840562858977048610735570617393686885947477134169875239009491643825458668577674735301949946110547527416308927670310329830266570959929891985424500169205502586199334908937435976168088198800159435234673144556156115335059425619315372318674485026810617994040265565443440143440700870021771904654299552908534512418357439699577152027229470179221507659454228437544881940854181024049208887687249908522373677557790522850926225586162255916682050791985289962298010531442915563240743844523673027607429022658608207885576909254933702807643880056508052024402484399459872237170923462622007447770585956000129101939947333893111290242648851657169728537063221383100075240759188245682844377541886757931244443990035138886089953588399039671568643036293557596681283275560789344419219578415550827227461749209771659439978870375760525663742967130300814394604524378826876689731927553619310109913461684811835061077093437226221779458292845526413747440295497556302457790210308181686232061622075795661188815402414371526703528086121802647340472406204214343389689449132726413633450302719539864547241611711991142316979545984245270435751204423628873825818306630453726619006202849073821329793910596007608698387780271027728728123941701576943498138241097381784374098259093660769177099461678657326597374036597149477250816476643803715174580739327498459864532563715590380559146864417731978614417695688655801178519639442813631657941469762677816979291810654381669411614059890959943940580027390199844939404707742036094949446555894374458540662475718747453008378437626449731380251190531352587421001114451035614885640590506162423922758879013085135983931789277644971241942842459660285053004097046867466391433515499717078069331177560203613961752315187054089158359189786981069051715821412093672987761510664076995267883423014428506821645924348533792994219710800588607990989901294726768783756855140863162338063106602519787458897743505296816816323365093185565882871254332665735481889144387809915989852507167131827409469776422350948152258808207656791398370765803181089441720644356860782969712103630724769414806402311485917909291503339003957600918766223294342260629503055949290062754776493286124476931725748703316443809722510405679983017511048247126323425615708077166357080682567700689558136622327490074919995713007625184169772855822244499068039882827242310250871159614575790259824782101792389936492635784415416361187918210286485558533881255570013319296086530207630451537974836477031680165551299596947384230990367680347555573969212037018009121795153865451625600965299582193681927887454922318118528410044363428629041635279699473540743384048587805489939188016447496257107590705724448587295423512655722071940432493196856894169816388157235640408450946741468549604107670200937545291389137668428487077489604551689106995853202352021698811579755803300295490258542704804324779069536195942431219088040812393427817144903130151173858540996169612751118055624992596012934017896334708074828128018571633823651614363978369265499092802788045338822924150183134191332403782793763140022871677091298426346918204006998357133105948705201500802592363507853560701269567718764045162270671055978191316315024710780281578579865278467390348432765843034441324226528270362852417697742965730219839633572042527590044884098331829537108646314642844642850489635252306235791165201558214022853639062671173824844131120100986259887980353225230905090590756478544056146598387739847245024595373938047607883885367732264538851113047348894304094363640652756180044523789478409260751755540794364407915381747598977812258839134785600016661137713282316759776442303428547291090683933302234015481644553596082996097786023440946343566223647830187772001496566950149663277868628173670414250722170308951335166871193682342841826788818020476485862976606152021939297752369617588178182686257592572715510331881425083702174443749987489474732911300212624563058863631869347948776744580991462057683995809342168711440734774973702454934751376056389115392676647525335790239144906254107992615881542322709436977786257308451922201228815408513628512495808716258836063837495709701223283068350768586358765286868981755482181847292368862893659292317900679137558636768972203721148704311169919351521251845817422269200942527223336433280856833218798561093646051469212712785189649245699604579629822170744275060560459136624772938752116978773610182701898659789027012265450839883396468657153066711078133972443137512188595272027972127020436997816638583790111293632156496942052225944291447545041910255390226846946901559789905771151145016960552581151876704273986109430863487102416811510790577243799365038652285542219794683732067789206463356915877624574090873660547102857078285079265737197579018585515078771801783696630552778763579779398191707273093203172327407589264936963605798625832855041926200184406273162044967088433013800001217288862170397506592979940197725256559755818695592938852616078597766808977807604840821026367373275443223234692883756560189230694802718694602787484261027245200788985816483050035243687966316998104662148667176268702403495042004312759029914158949718417447453793391235402792601828703055587233172466945874341271811466379424825221873745824729766995114854615554592666542419654411239692449015693850809286271605886556337591680557144974192291084648457704749879302744176111037208305789992601960915724218914831964821152391957931610088584452580467711300241884978864108033101002745677380453296687687015682928745595395060915037271658185813430139154360168425913446713800532034953058539151117483699343539532897674336696803639435245756222941362243921511267408135880250654115876178299782451171116748721771291172038552148474809511108694702460055124297421677294550603833546008777256433696852074040140591500894597703517549236075897006656637568603953797941783210026115622242700070424019498446512312406634940349845209410953433230006052455968950437023318698739770952326160551254729497292457116913428840127921744776841439432559690376493713730042216960682492858413985519595938061310649311407052779569598646929163363177040719031109927604292310084479122428977196436206679977569417488831978019111514410819189746281476143295553459591425319807864004926130696858868889480722841546229114759175491317508281751621960252608510552958739738490240063051361518133631864932724580925409319167697795629541560339394341618669132224143855278775727207894521356914690756951024633235328262591679762438076071041581848123052263611910119294889853223942693653567536612351109362480039033927278657134722735587963208160089859723268083789346784859218987071017131238428510467057438092448033194302419430264569360739042887247017740502351466629008200809051547312851858893048018945025257330638763694728343305260264801896569792882734978992041805493659128968684107147625359127432093957471627287363661249054472839455753021870624108076889553649501113081887015382355244619250225236515671788508471608357792309609620064771729631251479316664273494550900179846889814110212637953655728474799837919114353346989212012663905834209941754001520265509487586764881636238244434521998225315981941827121725659478181416402770339225250288866285292159474929566053153343047166953371651402232150539302615357572489305138249716772272517065784970430871574620771349057264717616071101731380890775784107391759394379476218454043955605921977538876282595166737001749501898176769152293284549723636473748521516098003315748064466880822444922804742793931868189076541020623951732001432253631824755119277419268320898462412122416996959607623874502707230547430565085040773282392866149778742250846093697594208279687257919512571556297297983141694037860432052721676133138997920958766292084382891068184683810838047801329990433453397346823738268092225754481775896926751260365389209437794450207506445045077065162677028809736254988370350517654455928047234134600697029361404725648704761317821344841946875947550695945933156465037182210539087499507508663513113233707329867041682704285192474516893344195532286189878725143355350779670199766948122092858064888381627801212664045183444687580395651358672942899815514785142122171359898935800194565538608369248813729945441561539481308471745763671763249633193255198061778162232094671579208235288964304162775547306536868932354235422949445401214592451021041462921400975440921293428061810656900956759656323336115607827615540467099850193456732966746996162034949386033082197851975511979535535449916997389758295623292854403529315972240958629311705892269193061279046933361664705718143731142634514645560462110031458065187678018159582689049042733392540469676804033408610579125389290472235047561931243420849821535415013789004141504546137481569268587111464592134467806094646119137110243294815047107617456884240615231695433513270902412367754811433598889375005634332021085253012248415371473173425746526483171837825539708030978940159996078574305029009245948484351195208533997162285747888375276271626642943633610453703051515131965212829483242818527959674348132946259980390545891720217873897734210006179784661114786065123136103613808159852529016676931719184051541230566322106143376568643936239809075047469043712174896110773152845777830526520407431093961263901780216899798894515134899413469469686501467265685959796125553881400732783249420904139563519606059641961411910355245371308018524308144296434198220362234247656474558838193816061386322734789299903105115337172342176692026885929286374715327933813856123038234029414627823748543406356439097903052687244369527536816226142602379790105597384206382436691590377381467885782974141143647261817094457869439190449978598820375244123777087078384705576112700927165728080436559499537147558549509880610451332661547314629452765681770499038437002947463990261132119201533708739145514682073033558992923926417492783023248204747510031247589984160348315904071101962346549789757801634831049570277135811277839725017912267914387753792894133725805466859918017591035534003553690679381935976718965457906924135741397300119750297969995546095495745442522936791711753730088755078667000165805612149619677806052513471797036904120057837360876588959886731531295220411707282293836948910781190845241895288099414299600967863425159364668708799336442780083204804324013078064924783225749318149809809987172997837315993210251101291158516230182109972809288016942525270936781657365952558651046690855850113132551183175489369050126388516825843116610391952332079092075681071819050455614004552658788198352069399706084470658610713809367150791923029346041427169260531716553678057880486154530105689343598171200067307894530435677766224825618470662204841591754747191104478425215317400233064798595290949130550530191117576395597640190477339358207919843377193187791199894889583481741954636702567770344110993612862040494190082764530033479356974473667698610041602991552953984772278318092099167040340717940920549952085065444646684317738373040269031357860980756063755571664689587044060229199489050774708102837303210782016208258041863284681080875126549044494111209764613509491056598532904668401110495428853351392156535350426575133654678111923430282873994041405657264504924336388655016151529429620499671749558709124959767623644854892507427439000796225244304338638855922155713198189631950770525688598483436110414230827170623459755688023896222880370911724316121797561616745770681346837203812453281923826908672295330094693045049494522714370287620311901047352331718028205821720892218489707690202836743495051433440221689637943455029124392753610445387770315971043682270352074466498821976760960514322619714479743069645161291138054418592519465524460449437467430852439835502433813972245717041727434528076794839500787330810233924912482249199009508938416444936282927055092319267062121476066693673038616532671788739939288854658459066134918660909409191823035787707600887288338581744792643323177792212241533966321095682995438926355081516236428383377723365695382745175050181262612330584644138215235182790314259473958305327113212524918972237008221400839229152635022729074768999460765607622428518999991703080375458421516502994322424644496544073661298451142832245784686674564901853133266013679403852870019658554789156727281703350256559469966449667221121045244880667535815067237861229150681432219096519166214815953982469053466353094703685818919646601242706727148368718842762982736686696712143208276992063510583333870236272855686002717601309992074608133065973758761569239517427249682500455366451670585053769857560399411924550290199396277223699851786099211051995609266323385376033504017505112546543398926690006745293997078838043517429030506401496690163505110700495567425008609655718079812062819674559090976914604458441399849033958518146128287254739699576966160261939977020741294319804822397759625018454513552317304277136936550383875275134255892259919129492357935914951676733238098878076739048332602121491472032677656212353119043597480359852725448269440740148519455842444868543574302740289959623449032474873928325317540721819335920248794769295516487544197825188060884595417423193217535701976971399578805242333372301735275585998787805093284385662900508810198903734798979992067639888098971180440984782702740054983230434571075443446905925066354520687281341935026244731813173748570568102472170505409200011442325668906933854433411435546067400374616008289888624671868793517923624843564203043957263917699829698696127023733054942447861030441169721575236122253234255503082030718791815189468970003170098336955012589376878630397012820024938165078969918781308270972713196158175619523756282348056712669611560327233817512567121802587302244181323177694112826260713460870218975673072705457613087372013900899408831068373913348560146519472040889652228610225101325308732133941390754903970666148818116723547461100000766400195123165329052036348980293949425561074795669510538376441838929323169825043883464273481213977215554435010680152077744814142942367132414365530824436055220548768355656377526918233415965866728267899329359080641825440442393539982436577785494170596153935257352397549530585499328009997165664449588433454095590688824472057440858525595342785423944730642642150374892542527753415865644447659795879617504507894347034337035706961545683873273307667554600183896858515679677269850115713049393497250671318147521580828546239222003541391570446651807835117813726683885615688488247053428999872073582133578336449637445284944760615625963350796897165847420329168191210505798605564780952900513646046856887898972921275324186128634021432862808843581332956074901249252795952139272318767924636036252373985550424556273046409112506051941127382767134094588450372110763259901963368936103454810278310273443505908889507945249907761661992641941658691799757519279207334075875173546274286176508252052895573714472396250479705578678291763037938566856485894498525080533389392262377148096612867005668938069735380869922199271928507855077944663148026698750816794905182165811761674757861305277117472115478494738229335406151614048186710450558986873339962353557821586807122698245547110139711293017046653007152371361437857625887857873513828287057376125803831472834191965504645250854647282332742132203067407733104256963840858423681945234891950550577442096494397610767377438470597533658395232032755798231283061862236226667451078279216571056202016060471981655389382823255234113682954840552227600254689275803111315833810238063595423268694505218612777627711694390992318916764076584720481109125264997978197413137709126962506299282819318033881378622449608632783483275876841641421238179803515155051129508875790542460610263257107725631254901059644205615272918941877946587410868002446321879944626331303756923309564713379960073918859149376724456655493473973756667854211234102627646770602137515132129486197209517893492505224464505437083541081048996740777747592138558103167247466437537134599869713251689476200787222450334857089020951763617402509316993670860257649758802850246940535471904785729978987180490171448007059055441134315863571012097653932737718042247042957229720944106709132507911909749401373964676241348555735973762859764621744730529196021694105156419939890859182351030853098418932161445754467866362234931222965277703494849339673864925468639474040747029747890948276818391722360389622034360736019549959447027352132339162371151612071526398078490587708850036289427440064462077493937920195566243000448165654161075279002499819038865721828958929503084135294095384810340531230083070175257939167378988290324072424931036141835229410748985095822739269986905395743996039749455429240722966110837266048805294027697541217030687501240149805149040330177523412736348686125431695375387419593252084629408381556790476241712168717281285414352564044127957734105719710281455830267500479284577048011327345182098666066386586100583972802579197665631718525220614211347890843553226895126997544667016431531652304196062094390353128799979107915933847683787457735919057058525477351463007708769131353776370620597349853724375322714615413317075127888908062920153475056490651071931162083791908802377851739847822690910360913560505254804373333232571398197140756904498597948137959795726966257167635600947837677972379473073681949573796965865853619115409575398266146591435571345373765152554183656371386376631892171582694346948703199846534632036153637870639822965083354330142642766940397015351813385102309513500820779359249701659951536460346087428500318267169039299396113461314646216468469191421798954625292148368875377190637694479864471618003506192225578783083268564312825173135178249509678832277978567812491041364330956097703236971474748669729504248189399455806292278265222447775114230945068196006101875349595742283389695899477098614094966675887251550297455063670695798813562715868578144178443724713759908930014103133853723627736863459306090422689179242991399112543785123670828716091464198831578375126623526521077475452581480024167953252639510523969331083207121664873482523526679182807323763097903164897034139020258724440539175909057977301269210263831346242403384615723087168152022123779514990838971846655793616853033941747733195330414791837479560917926338401615706653976484560525799703071562281383943257392382782307470299409034022214790309764408357693447617741261009857095447361125613343772817399016236739380105723355741986039782103203551606215565713014439416574706280975007688876638429081658746946967422460257596171875457236742881859882714765280304298136392279960030014536437640371112394071919129521722471038312259302276882808040562317207984547811816246605476932110122253318093917071861895303526621408441399900230446098090296235608319440325597422254630332384159895571582125093793540485547753245306678048702492074097411239438998889038045549937814167430761680696640586357987848458760025303388080089833032217038005790319651926965401364651831706909564574305739804352629721414740884564852824687628298829927616479388179844791652706641507474735822670498742970415294198670493941578125464386223843516789679626471425337371289488743160946596686220244438836551855672329118678619483302195041153591137668466761856379808956922925306386610494754430301433313965344529864910355765485337061610727117110397152191930181690905505246954870006973761057668748519212296010630920032672527206425128893360284457636684062137449151136841707705634529126501245839228844119941685871911748830286075843146623755468625908912989799442789832484843875199356410254208551673724990861895534551163595475709802823887708234519378623339438062710623653915597121279184569053263747565957643707890990635849410787877209271792418131221418016890324045100094454804019713536798716400443676160502960609272640253719806029260367645358380358606046198993157991565539798736677557741360555432708358711365422053716251224093213046321944247375337182493273876207668334968494230217646534469956164021052635779419610645461974857153649400450029887933524704558408879834121279105035773485869567351499556224379085643567547207882101468294481566174548513913948510713329631212604833849668154993522421212010177289969632298452138248765651599128452067359414850738253343179040295296992024909158723792389537760828181827771133898672619351826930382149516163500301164367513813061056477339359485432381808618656634347162893184044781942476132645007250365843659370340497183801204816403739579111885609204005236330044465072452857278334687075632538673659421107048267576104704269105262475341761094686823775170638729576289672221361876044661938563751994290621144966665343792284542499560699114573954422335046683260195675359980437438583934609724123588696222387339024826202553814576621625862377327420150251250835414266018524316423054002056994433924179447902824677830411700482683460423958897479754849056889487780918361458238475008236681915550703421393046371922467355402683493686958421248699288154002550574979372837583264225329837258077250594463757976563711149125466464131123164520595181631813048547535418287773031555090476977934025893475941671245501203871432692648230400675829283277320853602040693116310853154493941423356850258044481198707599487862530946734225512966346143623064325115310621534109651643880620318474451502759054271507947553705949591086187798350588089035674307661440711410965715447002929652897436671802002527988481050200458026590676761381128569533596438630387548113194974307725327545287095230773181544649154138535176976889358141115490240296855167402874784916080997753259681858470174455703821605293200387836301248809169887847341918413669419545558293713229563830058441030357654818575993043374933063319518629014369518322502532274038271589586716117010244943005028806217692967444923307108635113864475525603889072877633707145315111314772856273910431724713681448311530695645403726631605094274134663631711741872092034488983589260318856276561946463353237625258623142549058263673474560966937758966815613960404250887845897294767840487687793552219092490959563896821572052338419661144970345621575897858372749606549928215283586104663244251345024850061995429817556580932824462513642307798545580070219967267286452502621833773464649716394290714521902938285018377576908189887201769918739610976335822775686940259797433244345746835379969995377928898046586393557152755969820316312483126734074830651232249687837594918640409663229477295295987177939388083662717323762771470491563961297832164367781245317615302529707959182601640480463680030611114433112096018914189642185792877833272995488317288001560476455143671656399370842060881974496203519778146428719261378865437585514245543371581898269554950542998551873730669290594341420924811509327306205887446622249660228267846649623398830365620757048081004358367051264823929698503500124704804157381922284277594137140880716315054534554111151339006027287919688075464414243872411496043969815300940961293618742188832639059824209934879129199512624548269867364962073007505954040321814275992113584686893477410738202121620001332015178682891762863988644298225466492919524973158306258422151373793873250541303041626800531663752036758769300152150081182530873320271735034040421363935150315391021346506166479055439206481181088144036448154984698970379362051555930418868878384329374865407553211219589050753450970627772332352406015772405496110495365729513427184460336320075328233468819069146846184139201023551786727803013080568579808541827340215258265082930008401069835771110137398196221606467551220609104913030887429867383072989066724216617756243117706037498285133664221228192249599990665263096914251914661317932119757011904015145748906451905613271674440989341193058305445009284227783060637758732972735207071943396615009591464925723669765599580366711014102024503250052393351253884080059921306675818788432309839031399970782094396575784001062282018564906254705818308504624540860689391253423209572807958088453936188223727818311742828471727020988100909781772597720011633091947222541402315021494404140529940121241145729512935741182688209049848435214722052875665391547449303513056530806130967086588417603262761711481602209237706828892471072548669829574464190316601168103060196795040943640638897875826282077184439147062486257854149953344017312147716127811065530882569780364471730336733246175498079818539972212446766133580167554733893216116848172739863898593065340985765683694063446412588795981367705335930337488161722597457090339558840560488982791870637352544568565116171731220123098533263722639028275203584495610766586819811567152232285661073746372235017197382776520065649061117229541789517727510078662464515108518043376296139768524183666545234693737136628011529047405920562713744431199332453907890703815026728398977808500808975847831051321846720500758300877694387939699172367839566231879044604792226815299042315021021071611887471057895819761552463588806967828115422011372721782601011933307902625742950173118842571992735574947387854038043675229020191342318053343669064013284872623251569062401167276755546215323126881459912715636165846873437654813123670805045615330343559651242768554583629358819147236118976760470323284062128304513966250971238928913191672981887481734951860937085815649619567615737372430548176325469615139836352590209674636157723348836586413775186993863357633961557198658636205816759598599250701374910109571861810523836023918832004286476467028182282336030643151157507903854826923070083365964441525472329686133739005972465572114406516780453286706492458736784980122372967309354676467889255891374427672993109568053432433567290822688588698966248374898437497269997193112140593186283296458307503845957068267934395972038727362881671425904962219322856474242587110009659610859279348532459116837959465676668505163513712693538621609083622763222636777183522240887559180859415229250390004252339077182310775461711764210897127248118958089013084089347349972078738694251638645578550985273430664517409214595402306153607949126936998678317573933652167769389157499778863758964468656406646649157334449597113264465735691566045817898229003014841463104573048402740700569196405164119415129664170491387497897446914308464949507802953772910567031484739425131932130675058308767066205983909790036263125186358940551750346772077065665170770026166331235543942206135338321621171695680562902578269603893910651292580684602148929024085555255749599214374375914070948083784201802736946543939368739888870999729212698663162456127967690758096038883283339478779980387307798797466963398940784644453465369385366741878853433738941752073611665464504918068157324619242156789874550892262885705476387263673131357504123200301175343358735476723412133974467566532293321571816904795766181413883022391337247368691116664831245419210634480282703183139589708391607598109396819776122164414807651724135370003729266501678110238247437265914501699487837569875006103282296857706561798317620869215105648856971868102846626484828726562184854160218133291977952844165601903545642571244002773355371271838466582112174192489905948105898161967174419470061500021616078993058730192287385564659388438865752056237821996401322075618745749506065059824532162864410018575737025696029823558695568772620878095261540736286070536552262975311835596777886586652797285846565731374577130790926708678325911941350220827279070581599109620956928740477404833277933499063039611575960430215469025559393967729666059759724012547396102542648671798568021627063766103917507806134997032009375866653396403155713111871628823898686686927851136514038668804270881464539303677383693065991205882434468214218038041375451175820492254637287188205845282819849430138027613776658801932037236922850510405948323252992858639789453654516268938929469714136913620833179621276512009215245596639842836521603653039993271322307507747367569200404749961106145064168033313412265685196196583647912681638833062472402998154147518274274473678626778706346014494003556320167205807113388872292515715162355969212610539147158299873503786168210560834045718955223714762941076334572867891294985242721795917762205604885153051691474017099917798569620827166340365915851726302509139310116283062472263472858796834673486782111508939556924027303928434681355820700144547852631557836321514280812461118839874209416859457284480543398590922003639406300684998802870524209708515365690272580212140145470511873381128050862582729723038840009114492470756818878918989420669970474809814095962910672003917243670888617553034027188584184196864187072894878536403252627720924642115473343163058806991731828546665760791219555647504317376948541432895726736578545457622210471079841950654082074119163650764701929551855260407375949538465245133969179903653642215145380034322545859399103804840875204129180743277316249935320349773958443497378402171594184616170935603737184208814353007594140486889287327657752005291733734758931862252116499904072918589945963230486888630036894139212783262581339531621003939890457569564079664020276255093413508501760954370640480755077655317993014551314643167463826887772411144666938631983461759110329530757864799738411936640623623471087156853628266756338327146079853274757390042650267841610323681996326391935486362834553989477932821932785660912252488782005062342749531019044776244827214513623707986353551074050689813083645827676907969006485594797052934575764003252406108456659216291143435013867991667478004160361412624991988842098667423240527825519484162135672743155704499624752471995811376057709800118712785306880197022266819114399806558732215276273645629671024381119591242950898338734051890021239709329478852126393160384701442407841344747452323043035709314859033803775008404737724689083978335801341680437449101382553828484044653591286070354909513169084730166290087399848240059421217793081394297888386294953860814059260265373886242681563092294368966782097238026281047108917255171891895662369426000905252941052456224673243408188853074573647851813445332428884181739642475370414485507656858125285416610798606667846742189496939775453274433052034636844159762394972224596606264622995005471615432869889060294720495464982993241489278427870747383903270253702155261342881714059799953937877861086574522428394760196806170695562736674674914798106557329579656862285967082380538944491226120540877830401146352119909819090181443104205877424947005647039161980817172651059115839513661126656352403067436090087523997264113969877916075358467741013737986078860241502725804403655644092674369122692339194634808931299544043732570857638051317329928928858993535747149728784666628469378711417867702429052664523570194082609663621997613100416846258695703323841890711004099216615173945340928050201978130492111771155671116394168791945619967961711766846739263441313901899725687152142986554166170714614802480907354783650560543664872342498122938566042826513855511371108399412688404752578727666670256752944196241817556670752636609250173809647878274000280403346363534376913896547453931233013730133935000154300727268470483376453967874237349211898757065550777448893142480434525878211421959541602912644389356037475690714878843296395483423253790690499166463383667031814166140754707670383058603912500964730742030252029703590965732569781018415808740983061535104887433640747513814681276574733162422373368305867511717986433023624180090203544975435086064634783572563258687812270565737102200214394388393800573044621939101694011664293081330539564223938969152899079593901928725255746678528641397620258618088718487253060076218719289280149474522937404310729266419237560489892191110877443029002407294101574585556448289664221112198040942680120614627702868083951283218860819389537520324029320186382317594434296913030841730639590484699004594690874008776121648390076787715710762789873971676459396540142154665909232757597505800189338434686146564779945370550607401048333559097658193621677738834974667620328548460130459291833815082528079329775643723755106778924357364017935016985953873901677287519467610732912023508814591499677857650988179284386419133030679427451438035554156606411094668009646186255808724329080265330806905457095983883909744715147795131235652659245041106675711301021675196167271120491830652325325649596411590560746587210809055711573316363430799062624522008317106752794506032898558094889083747316923895687627885804747333617963634178687285844022484186050676379469668594068911322005629270575151323048168060881942032795817426184562333980519059957310054970296832572198478160666047496300437377505798436427322771373811116758567533909036443896681014950827369623876402894669642214958880477058033207378340544968239104689146840797949053132883942710690827021043038713052473476279138086136700894183214311976099852335266857443335281794076208195811792981709757904783464084520486277091574762114913722607299303287811083128761876993649628889213284997557305257582591623352073239848137788224443958551370300962692483001776454319606889664029267553025577588766664394657335834164947003921387660782923949295896403714610974251148962768520489064737136554456904708452938958024907704239357200982132261188120005317059166265019995464197815269495697753714142307977034905963592049606746369864375444889276732923691110775767691546459773801570372723849345424728293148607942990847005545519407819785183749486220267216796015495299480387047433852645940809615630467400921078473157448625553134086332210382305596425271475708131209798543107749972772926812316524719518253677620438402875197040564189710124571654276011009869305733229174460451508976551957895410938122118977610862976023344277945513620682115474490516080416616029707607310841664718103761509911541160371892538625376735085363292303037258497433113490052661302453738675313116830235773447304486621579127107548273011141705621673889989556105049475459667752761343727492062546052945072601389455287115054742349143562985400745376516180489687994616776505053395110550464278916307191303308925888567443080325901961789659465570072323502210387014239327205750807349682052455529510186935010895901526969722653788248019074748807173275341282365490495953009681119867911748779381669833172664712748731264511283464444956560432588228870546847430943304646171408506902522756757985230006677139264021122602683595257922375712642958474688789878034799698486621300678277811105022285790513677522378885894451813584518087661645004629523765010517093263124190431809534429105288592582671867176181522264160934443766929877230027840801271999566501189680077703940002273013643104749256117658357533130652928757702836227032821295375362067502403184015944882109637806426514534800664951088996153189589459303603541379332231226138784400554669284026401028177636291419731273397580014599114978720294141112765003186586317636870422333554902390715277848691249206040358131870167598023578523995211689355476165914969294920104168042435987243004202010392488414512205720315043959796431590105134225687392209983348454114391871328741830788432791336831996273169426997667951437561396977269179417445151004498236869733197645761533129484362655535162026008824747150968481627784390402433340784251543116994383442980475140103195504473758994018794209261329361834476913881302603235029818553921012851282806418573757274641683722238654498027852551593901174002266708216545465700371683498858184586980708177023357807800790281906403043466129764426849105807441010305599795285726196355018704037430896899742985576534612836936655239292149675637571455576527946850113944473853550213933359120827829063294476043110481917735396762697543044803647691249540853936541374794269613380795143554929716524935278141204836724709515338314825508771214183028581568052164118880237524400743864122166703857240426984294320543141920882211118508885339394736867528675288906410820492111093623994092701722370258307483837951337663200092177463406876780273553700863007958392816723861204876788108287583237937649296928398255275820978767667194823334198350448417442579382813824199635669086010125958965825819888068916340210175534374693755486548761919379160096270269317841655426441127208866211835422429761458280618595724775924737850017437742353616631194800006367960474482035416702341720818744768343952784948119965161061181230167182738958456574880354200889143512003538832212905280019313027650197425822141539172769895940680269589751612361256352745738040553972359716613922676462441832458767858990755250129690514860704846562307708562133829816739311989682109710932897645756512757850179588732214310964342032913108483064319842742531787967913743525828551728648178515382946446819358588060270349993929851670827453855710390324621521744486143392847812506328491335568765054820050672582567679377959454775544079090312479697183881640072495511042611165279954682562377014644382812285265313822347302663393860864552459065931134022968089770281865306328792356236867750734489207417477764708483657266832266450024280214180002845166905036144275453619401960667396229074798312533903354260278823924588760000138364627917161448048104060342956099881310126859663231564654634064170351343010870897495014774028070211640240553127139131170071720713125200576670853800070718274151001464219217615143606319504723230337333766852590462921903464908476383094989580138003624088185802110942158352556809029224033240433634415341063505347531041515764010011326368822577908970684163380149050079436375592739363048165631043947825486496959253051640274710630396962012795784519650537656777723841064847450467550859460425038190050490277048049301240387829369616408399949017894015159469655958778967690180426506890195140892954014189809026210838693913996943951879399976954250430694362152260628913471031885775644691974084835945600933035855277112561683494563917362378443698589133931380772784444549044765802233144156042404020158419456343927519830444095742293754979045540927196115787329265691273973943742284864745491621950735178343195896375762423595105187215784953340659593590000679289212152711034718511006358380082430623405892473402658856830373383476545262029575796724131706574521550835256050834986096534979676700614392273314439109939172967083317275208693459102284143751809439072419537623674562106606593839321566090280547749637579239460865378371490196974091541837233144305196490360717750632086073327541924496511177973689842400990652792003520692511419311236224062906814146347240759782248245264731333269889918581231213516762102108552257985845459680912176568666981002546143040921037612832997768121073419323200545735936402202088344899658347730544444544063423198129900349625820131965048131734367495976227627906762375005915255057640623406308803672723094863772784262081576169194569245196758371039241555907716370148225438661834804267681452656328083250469346014144547011483451146527310928377507415428866440855800519566676761151377333567875773888793429521830279573436195005256523906557760275067674379534888458087259871320107727928405864990223553995307577490368060537453100707949447513839869250223166425843574522664377387050441042576791222021842341518359744446693157504210867993780582537572474883214903713900328005333857605428987962338782662102604803677827141613322023128398380250092061879635443524572944384347847351993307810934085858269945253285835473771948595459738554620499778555859634787203485543711764758566341967971310441455850105487710328919433159359589891138477244593320717910649423012505632958956747560499173350303412914379009249730167165487870563508556927737103995888436276358406954076038032626935841918598362832064178172780266679004774804940453584697514240611554740364872844960087715700897923889024619636666422490799277258523529845186557621515184662390877706996537585007327536452226457836881907963505285196294433236725739584460774120709088945778588073807296274468304434762684342574107201514954751768678122452930045391823877719470812650803586718482184279390054816807698314282373106596373825585836030397221598465334567940662728234776672232339176969123272831775289147968135390275870838742533355649867216243568635489597836498339790087941352023130085017558544647482931798615316117235377541469626908390064942618766206443502893900611793019218415597196958510198829305703890459625200730019901849452501057549636791567008537509776689705153354283566951048426758916958871130267522058651325921238148331832415819778029416160288857015886906295830023110903922041028737309773700081492092371755919483714508506648084246734987264495186135979061954452917323519236759229605209870997446422456686532875647915009912936805810806796230844900293438539704827257238171116183124946844184792158444731216005793243183062284103733542600934237675505998834074952233683650659753674631873346695341355949175108539286669627601501802098538399888574955287601438864071426765675704992043535024130859323495907976133535779776059186437717245829435308142940906649187585545547799251762756121745929196845783018023897552314612268786543638379641178315530892880582051450140443715050237160517620132913710720893771718362638939553004206937671342236287674286047828493377323120503067208890682748153582714791963910087796489310290531526086327437210918125707339338845067205269451568215416500369101633052872212253787501020593979545185986451792839191844969989535910316213396289238332355665692188743502435560655302073366586367600654901199107871000159144153294885273039775868011122948305610494082373751324786903810189882858324716372995922666047049599078207788955516568134187303332092446378112441950509538674865143033617444014245099067314461024263710322076250880321029811602062930397030645668401819756668460326179867073341396317619409663940839729539045810859695912053409957817299554188639227662850379270268714503197853604830881796499555748351124099694638279713769509932772409323764540039643997974117065562999690601863898726368481828930450333698857311260910556959808978998186365201173910449395238954280269815873830708600519313219752729798129162259383521957784375137419790681956802102895387601469323170501775141657298987725057992807119280239574336637000803959702124035960789299268641898690833214318004636510289929277127609096321608379007522573715678998510396143839858404064990060876006111360517676691694166810930356455305443549893704006061142145627429130034471630106842293773016097905969034435238037844871475776481484997518073259511308376827586829909983138996763938392305081052555989765998479911697783255423276922381262974432608961361006800070463137912554516778193099717216568302508923301906519876326070261014915939116195835257180716122838104333511028391120895742045142325401193555499979884398670917665495787319274435469894780827062864451296376303910641057993157548405522673335014644311394537779412527286342971904429563789435232905403419115690283514253460291732561655064083581427499217784018149895971838837454174586499946826490316871204806344557833905104215665053883226634295766666682522852587161985695738307436288784802378269914294435170265321680250429814904245873966330580811154081227455096443085796023634139988863897926620244255102245580226901021629574621709411745332069924035198395714741853158339470013480486380832126533738471906099445286763164372278955995718570848520371317962760350514295289783162377832487945219085868287968842347441982658976938286164977974773570209975244935254222622248635569312695589164522127182894113241902922631071448126953061698227484603414529506269385969784922618516483977877801379568794026653974683193293940735548283423585991311709917069869495716530731135043077325937710803025989134242568694077211872966442684873407658017166557697724624003387093591669794116772863172115150668348384739509103583521076579867933756603308397974737178898093246182052732452814935067781942601487692949442567268812497158307187604064135564002501614962949819748723147323720097348191044165567969466995300512386044401380091949044823272455666690514092353110357902492800255594978268817052225674136153228590119498265175299475890465572348090383645664917797183161229883706566293902208044308357373224642926543874583006037122302779650059503050103665140823697259836595067887447226412667490763296206997309278628261545771676983499693250761923242756323191080568754078491883256508173539974402416000118425122083971030855978189180600338988279126416616849411130981778732283531462839204308509821427756747058546749752894068440920791500473272960931169488252538082178006752363452258629714610620287091271785582772291924325235265900095743891890786504932179001854088148436657850378157634339094253386319918576132115958318541429652080609878425527867668757245189112603369105977999243562422114707995779191398639934559124601720846763810619326242778093591300698072231249735051517772331375496466947916247313360723435305462439557020598470754471482980535679958018751594448752306144174703992564619750341608801063001443677802199265102272629508337926948618611369497392722889381283639503036307888614899755274560710595469300448340317512924280597358274342549224076637608341580920514233822011086665284399146577021509818303235938543529994394936035054632258706794796375481305584302552675276337528979508599689836794819338135757930294809697669497769359338580471775901902616241160180156740203569859221981092190656027746619017182423914414967536770849555267964320933409681618097244527768431146809561939783369157784283347242684543403978748130979757693581510539788124230194312238397428883753332928643028262333135693238372927960343397883594258269768537026349730110239354253557844852639140749598271866320393689617897779630881296286130608754819959166759645480992749615415017204944318565720048621325516443327656158983382701353794550258350574306072729672452002526634910777362802383337528859847104671042664254614843530594600012537640089588040062080987809371920172197156008646909599570423510876313944299869598277013017649820899735039001178587525066412584407344810473690408947461369687882091464202600715887232027611470058310182380754012252545126570513762870295621156391554589985137050151934138666666760816299752182011368716496508345337198220009516216953795323788919673253041822491458324897334061022213779399974436595062447203612899578543929260686554006066899491577164785489348441515305885083358776849598170228913872166256686487992928206957691364540008854754176279675284939118551176576796150746683666904969485946020431916893709722811654624590849891394675723617607407455681762467720458720040123270088284083773189570987788041972893213158298798087638091567052208264147546689674684605514717835859607762656050114546522917861750733989941268959170277875046289389609959634253567765042424549597240390935538023692167578295460768792969420642246392231703815757338587158281205303142928084691703111574944184055261035897133717455102341174868931277388502872941074503582436140719330748626698263667623858673951587531777027560920897680540150498657405245868858131885150601686947608583371063641205116390604296117652883106399210991120487572504193484646975573688679917917227713393832027442249227078662694599103164844342683727736673710365127218301979785653095189568580016933135204491917458285942444575663010930979752658428248803111266683967022839566444914310582130638552945015168122229065851987289334659728184708501726750483482996705928664006211066769970940527844094568952498339131933839039484267996198839033537109658672629779072410310175810403681368561759138185102828365899349642068334515902381595593886385592928223664682888538656618841186639487782645610956240576512415819524867008424577311513773407528203462648805204775160316556347002056069156796211713718690008869537333968175941563107674477653186634757322908146114831329271267008006074012666090480288693821215691246723629457566815043606341088325039872458448987710280444310922763380531037596190447035533422647693759831467999114260380982119003182190324376464045889613455345334328923720396797292900342826172599535315572565267418974648329630545795474049404366224202879280765087480027056508032278891746880614514381758385320842521137926155300759796240282074806536031179063162878950191481660538044726522717715540604322025887244143758501188126205674013917711997371984762140842473332505114540460776603396429132048681999524849619770224379223196964899922218756153904772306059654886682827802663544112098481223900768645511765247242166309221236046265278095849886999250544882581606068056735945618032119843893361490419738614725413471841034910242081510465493357532295696715520679723389010980371191144389440252442639715420957128566164816595907742808489076990935068256269254394579028689952502818691075746995201356222028775241253779403091742150285244218771970491884278913634888516340194297273249938503231334543803192299199089053460292732770716405274644488285736113043642578837002608756511429484970131751570066318026299286021268603571524468942948841592991334689632173918667404561742131396208681495251394299402382740311877535357487791028644077842332544776141427090223819287441277506550841694940455053670866361714173295633489918692232389632092850251520420100745319761400567298697034762007810635895989588809421410251329581875617523581658196467041859267262191973151990565694610434195795043170906676863450810004586154448175100291518240559967643041216978663660821457017962085937878527226823304795815347754751891777820953534658451636661357082963770879511464745648168265969349001826638335762014756511178366782694801023624028385930710584958124791694036092060736670598061502147797061806866486613511205367846623819023075284884001705460034439983902332545175414099255798074359144701657552271445702345098719747987490779343686739146583798273004094062805579488173167805739007492671937996165835280236107128032363435778574859790219818171193019564873298582384013851716197152107394357974036091767188425227494780302274432398826550251804803742309541780683340672608117310518697013976653017544338376056066180632544659473276198452308812559853585957992512951085709660134805981044420015077091691692703709218457284466336630072584028565874576681366261391739139877066568930914040962489400369997128078892521964233998355130471678853566100381623717397125453652361550370843571986166885847471551290935958380252264010124366632629916880553906658036112102866250961163028667169118527120155675323923774350951538051487608210983093094259359549784089180952378915673062385333111079621463393934188564406167846671039951802055703019374856766370277244737159072948181222032889875715186387358136943514986762158625155193808735577667609902602502179304976574539866292930626823587011777330540624884280026350358801236966532290546533511113812936500176972817726012407308576367488313103912032014605458029488814344540956484184500514613714556904691059246821045644995051430935408298638968577280741127259505011451232424288740412183820692461041742811767502212445989407187708865873962959912566108488199828841097678106642937243333733613466417311724951913704595315575642617005314902341055808208392120714467632563783346347859271364921424419391495428060458830975029974182106536244325617621680452092573135952160311879892347071659131601319794917603161423745652343862495251831366975469855534674123299191803933307366398236549463085799913461902856471383502915503161695604998120715422585299899997465865964916968367489416605353637719256142492264105239833172635452361189072685701286009950015020276564391218582233635357024711170688029075663773231224583561833647090254601745182747589069033686321904311461371593896976192683697857063592477623655065487302358348792129445983405243644498147821070389786462840884340476649847252788515508521810786170027854253893286669955217355276332094950014218672716772310658792321975011208803274517517049154025665240740235604626480253404391867088262078587741314037093308103205561841561030209464539888277002793840787378073004761700148013930098290620938993711315363725201237107289007933763379202821738462977348920010445135245490074253728588018225078209102373263528617616173721813074334139554959813280426467335417495121889165165122206981910113053197029286318186065332324691683592918886711154046239389078290400504299955356243891168225582001136523468788328664964731019029452338726783265263881521888833616611387563502520299642648164421588959847532471342857158798797738228497306567653117422032515893779422934427913096999347681396043989577849633078340966411071484272563502811924709752836275627975418470450808505535299580984779742831649223627777734576162753487352810831055895288729480018761644289425060947092505448809692529876472538069954272120407079830199635298569022886871597880450725935613503807914453914689272682631182488047565718084931829663022598019711310657630231401164518856987773916332597769391437170022902154164906041419878786740657906244129133223739976242630200781729561251935796886243267829067659778848845975977946679926191424361651534155022529828552937505684083969237334329286180896503158194774817886038008058974263858015314144858916106901065227349900180375105501707568592614486481596600765153344850576773039029649598295527081437227278485204043751961152704020383958507444522772310367723447140905413342616215596501904656958185476001341370719463514381879709874837012163466023465257220313761919248692285150702384566599522098551139960812831503979395843089545132152708746352590440706242290045055791452249534429246162578417202154226194790215691526776781320385651861644624049187155831594635564460423919697651989297798003154540407847359833851808573669359876651968970653243654762611483284603355077270851737381344922562743710973185186653274598190419477714874600126751676222720753448320034950806487447424662326306537095857300433135390609070675701841414229810198648321905578317942753470613405492455162926472065114321792340219145419726166194531437569498021314577304989346689634195884047291312505754742907549396516448925244944984073433487744528165946454876603216728030931463129485806898678238441698983054236546995082365691001856098127930943172336670328576162056769346251410957073347571152652962199833102473905610247062754567572225243928805501630068452467396201672758301042970045968660801064804301915310438354324415601591167185700504252927505247591619835994784427836173022472938707542542521366749257257993577756501292329540228551337032783768384909312339055151401447917055496169001363188204561404858970878931858279669666545263810813758622418146754268870981922520284279803624239285390507883512683577734628298079609207497742035368200657682821516783126442682669764257669189006445978599450297418173300137639466094246699874240269385323974899049875015872000802777247006881031686288503466091268809944618443331947902276148945889887627449575813088475760492828054851725663139872725128933225147990498167006068114033910411236263185663127185731951974065510675472016498772731061281314442711876359224148040012267972120907309223839449628873861228021921196618037329122907815036799390067999044829946920796367579087244919375398057451736742310951180883799498249448132326045912596375596803076961196644472250012047099849853918676531651505704385038324482890945641570591146935061521200073053336161623098575614965535792264716775266202905223674779614283169673917368914166234033281391474588565939305837434924970821820571506969233801276178214289552921581924674575351313137669129530622321691314257254039777611061849881761195574153452100066735849453792813115897104759518124699971677879729601219596986322386247869724120545334303559663705458470198055860598602716603376013963885872808720795045199884655686101265581444427548530780467626476810183214425559389931730194986215277151700222077759554389375252462104684449255860826164918510195889598685109625127777271142665430601343398513744995264413927562494149708364893311622233803939575047813004530172792336890387407586605011722735424436457200116193098454379912815463608415732608256230327884720638063421308553746721956144694599111765453248341625315100438626485677840893806346913617144060886803302143517172853816790782103993928653685205933826598694185608259392129693645002712860883035790170945968302044875112138502888303040154528434349275791047448659915820418718915247384969465744792610384156743314139565654946121944939418090853584588991344435206303538863276693036827190972090609524192320073212520689498537546436518811371507254153919394957730902819278481340864220080632680554318093361739099590741864117968823972502453231267641992620085548358406260145849033649357662097907276355970328805125543830298978721913200332549875397744298678971878454126139436250596264434085290456466695500667085634272237823569674261929669730086718088319018128533624809633749750223202554558541586016043257041050457793070717724070135445393008733089218609662589698061607932676008008939438329781488201979616404601431500735927408156479458786566695033848614902675525757702489457375562259640201893968244682276145614068040276845768487864441963556009972574351673402124919885564289211049572797808754136330912097854944581783068559256387008006350917169825351120281388375095386598792219694646098795083629764198817549143726621646820832022617099834804199410360901044860170721091782735299869925801785962343864338973312682177000336645653560563698662603762280118512219198263128882423210085172594092762060502144236713108361840990602583788527159547267262379541447242918502609546062499328692665890598808624908661817810635874798686427140939982784454934597677389722464717222592498887825899403654600669593313862247295985446115021080142528940349960435167059622535629801058275900817872979050978478449474493234311928101235617808809025746637230259535806714378212074773251401318373498565941545845119063912296681133618849450317488625886626269465258779352304895693770245318854721759060701679286208228695248346786746355486282098309609422214446413332293376548043113070148614151079216842787594137233765112741524078804217480055978752888893770372528722265893570618695869127306335170200735412900131240315344541675882253624007508659136552702130370380934616602183405153510434938787787081236037608600018508897487969867207445241144686800503217933598755763544842382946328626033608459194669540003230179029802342958940744150127112411487469501715316249946847718879488007767365149546041745119182003286936127206436178424142192181391685383446505686050027068240499769599466552848487278253485068568938043355157376664682556830530351663324334470654771160662596664104174971790417921855746694116380800010241476633062725474421786424264059116804946600388228114210319554014472575044856458934749927669698283482001510977845932023202417985950915876444944964698994071977878056567017975877015464904562408764049755645015536923746690296947045787884060321262871021004111568668953744651745058278195532505297012574362279080898682791362250961524673374903233492585560894505593552296056954056774090263534448501270631315498313633776348307279407328164723286788832044676956206475272038138236393774283712828236136262257211787546335539575004998372448973549995106696745147982485301496959223185531330431934072582337300397427202683257599504901007106745602913093716168662292980509232596291619997828110168028899612831383420291883242494456317514711409323444858608295511100171747553931298340373275895427559827134504735962984023132051549601776362251785124110635871369882046821837884949543413277444361736844421222064457954215749635482226590473679149867546269683238211734952078151237361999684142899574141821387954603146310089271568493742526983577115135122773448644636821289824127218343238567221869145049478671963232452297334415762969588705624850090814371280267121230650985754139559077713082271709761122061718393599344493615650259058699496818021965341100662009334549821419917233238187071861422921850479295069571727168508315582598623239232756882381752194339935141119078585574789833649177622392648607548211108810082146533553646042899870308504490645899825657769572827770950571853677819934882747371179310297520765618492901060097611690817142297453279347996600357320587798954402318108656102485080693897218371064012742872873180400328900832373554861047266346367430580513826240016818775413157400810212854437557423142962192201088991529980783713615254065584729048539186033589198262807181885079657099205469073274593084688894097034030714700745738046718369799266318428864096294458586215766457539055129256067481240271573720945980305697675171182146765853808844218105004429767678333067802085553801477234896855574928020617653420016219686057037942111113285994927238871772778958256927220166540698833461524446375147610000165960455360091732114901557154398644126395404853762547761537934187913661396821520137092671685040221303102051841115565191894829774060801470852169903074449153669524605052441774996502212676537288927331047389630418065685732381119537261750990524658226348884669737669658569312029362694329922313024404815379463160637057381459370553189832918734908011414552452823309301738275254154159531090572533692551292116717396074303543441933228750900360470579788609350412649758372163522495268256403124524985780639412907330084995285148589044341140311338911289334825340622377481145535614506273637159112433242990869279521587095858209826972186206645755896956932582482455708459801670630170343907769844997108976191643344185082333233238588719102840043695917346465019072494114904547970935529992955062070296630978261880065926268449201431939108330763409922425519702026026333995427190580061087151831478306254741659754063110174031672577311795517831296297032717574942612647921391154793357632890491912059693408572863126380599686345561476790028195541270529367085491501459682636354747763059861324869489749538429111607913066437048907349348291049470723560965554048620059354365791177188947627945947837563945103330144399150517185386459276277544984999203877307852897642767215189780164703769958572614858341798676815657374854143358125593968549174563244929227695476097342884504413911551314853122918114829533934467391709285227943649926914889408964485707541951380306669208214037087624615995777889711963758976367955758195749686720125657906644068909704563523799932614825154546106134701208751401165191554458793715403722211007006416077187752623519338911293379227244205747150465088705874274276386151873435766602648522741026542989003327798279140569679838086486215754821434866738454263359587136487866421293843804743661008797372200247711167531971272087525132126321498002098670905540782159114312267247952980182753261438237788965107960377483718905930828209923290063832539016132484603776352737706904300542653578110086737704036912322396768383109576807880423763251686083971353461515736222924569946985039368019009261716701151457666518306283292624437994338649230524498649432790439649480503102617889970560810624306309035237337447041515140610642260147573054082296510959905838763175116823628062123470783122328121722435402729849022890723716015772168325492867428764006479149881208788197806372897739742641863486982166689346075869291488951585488887008426390332456618662878049936215378824504767680604831802696830130285839548563817695733782334051316192178409322843457252745815740020762316361466071923022796001818151054721698292421189532642885201114620609950792604000465784524435700625822756586275601625060084653135662810329955569086046103572103399130709010361198043401062770824240370400058015385749988865128684706542181890950338555046444754196873106989530300613366069916793584144080679931765651088741336294338861164721409088954952086799745295759701005037340892349336862036442812104731268800435641818756328769304118965975814480892106554081366607613279298423476655843412016296141636352684402084068821292898432737334208407449648703711732415384823392627970325988788567407758948040005564979672714548519948886443531582421024170126817177690503514946041035443979364553606316547310891280925718544129577383031171326437208027441004318907751130987143820632308602103846705506139669174781498721725072271702662459465468077975778326671515659600340666582025262291025528408532805981455841355651109605212950551693635736399168736731407618425436656516973250891125974099864638388885675987406882220719850090228490440176874596201499120060590387583463753705385366456626898990572220708710334428206466024572080474234636278393290006696364356760301634144030806179560460199974566437240059158656189163254626725550193354830780744454400816731443000720713066184882424451445113295497478680194938729453209890588524124631315135447675589583728261742347072993252069648469474672255230788039460102700741279983051654942762241539155207103057441358813156291662276643388051147269527567207872562535189045185811670434240493701909800794096886496474749871290588545668256024445226809209272449957937561465098897558636825951139321385298608950590164320283886792157436168671280641465542633088083270036173605693084354955616736640074887487448709615652794438897867020008637303528465211070682121236563792594348001068815482018548876068713289083414344394141635274120932190415791214421131400900214856221200460623313484774212702813556657601610073097835766120055909848579940239837983533228885015117873974922500344964769704729986357463434965047032325908255842573040604067650870022595674999919127018753020426756240563563016846617079959615410519803813338451596157164661968166916515892599902237442542224959225544840279608521215819250574557119588496798071372027788538232193630660305459388279935424501147105560735088833265193384020191241765715849879158162049671677907049660669334266578421967485104096553386571452370422793121292723520391132204625787140597941838661648271138906915111491140585427980922531895983224238436260949722720198268295799803003180240363205098662030364168795767530982661168393287616598420321195342466687445714532426776559311091247403468814667050922012832234893216408356047866155250356355016575805760252652710356198574779748595147721646169128753510792910938243050986918899377988593163191767880387449966144868359604704046271955692885639276490661996985072372223722324020957341884325514639151010478518092728219679676750663501973564940096698685034171674606112059772963799934508723047663177337387310362763423685849103480245723222637032581359510969723341727226017512128927773679511653561850431869879093796861239240939698587638126908429167083061593001906112416706035856936352355955672245046003200756922517094143431846776543145270674833690103755191491429203756773504507709756679017762040131916746315681716817547905550042395900179095918422344143772829845929988899947488290710057483511570090052437614702721382942640196935410357733750569024306982013575600729188014933203059086663402827336318952206650183402239246842142537168470756513464958398737884426462234494837338532122510299476711972377799159508594947188352272456747311934730459703399633843855377996860003555765979717502935400597537980156116749536514362965731005803447981706717988355993546471213595713410336408423964361667681741736455325410988016563744536601240814936973100356964444294736769600612972217995376555939946557277312131606522747813152257615013473858696863910666274974386688178019339530117740429958295048364476980999601461401006936619588264961107548288412485254277210341964301731491314666091438872810559854710829366582576321491997569404822614862710130811554886306961139495994370065915637445385365294908635884103324915777246075610344540494336450094381930139579237062184982695796768358189345814629127347308926328292663091435218998381227619206817240135505443000303138732566833037668655092149024843993961959216975803303941338659860548155967684253105121878075657762297775084196804990088517698544106809819617283990439676505378810694996994278119777278281211328016707130188681618564258864210906228929139934397179945045867095483243203002275213193996660323989662098013723489589084869131399856745180637646484783913326078571207594073058016100459904635142791672889942355817259130735997711563142547261553747208713885628591969179618131140584090124017617153769364145376683441117916843351494329354932129898160387576138718353865309097329265643902469628129745382179470431349684521732425356099564342789910049238859018697035577077387983280943557106074848380512941021422184395221282721934296441681005904500739599409277561142537767485032014700503614003667967309191614041245781605395207867492519234448680385123847754747244383022066097070997758027517100842972775510966504800785508087680902176301273782315813603517794375231373709394449558687029230023185963626286127066792209795957264173742908778255336108130047189984558151219503811717134100928636165576250319274910409631251724136907026770390548630017233754839693871241547350994565284770405006241884996949854232007104061754911908019240165343175903597761941558741705047616182757146404177513834234224538834276644579239112368442741135295213018344219842437516580938750461943220188738723520938584205898616725603706822598819221585588904790348345727617028656349462635268733415753551477413778718150822887473297900703543742823406628661988563857527237259037032237522002161746768239475663350698655651455837990744118138799383851087771375328028274270025835944008533773670409256266406592064283781606526033529209095696139247068735610670576916558441319530829059562124238174063470581273430791820916622697083588021995392096641537198454665340066240728462571784157044876560826171555963417009347159816881940488829902214614340635251239245947764193455822131438101226102086731973781904995765305015093241030693470769734373287125785821167947500663825114501696491218585019384878191093018483053777056110429537835139704184634440301093049726937134631987834234297609650587982280134216302360115974046589320378026817567987639722202280538602519816818390038283590435192901232699616642177704078913245592521502035951875079315958957439686347712561764790610644965719841451269079257414997234449866674493962573227946769506930194478059705630822684627607267311390127546761876272563526763025454530977762392962846351513560705174274533151184065187588963571436574102107694963223467804242906005337640722515347013607249338684211673327068521768088858833649363148315487317241938338642476922118852230829359314943803857574163057698398048396546941012655246384424838372487848766542898544931635039308268830857195614184688620856055768379332767957188421051293577765001872378188892555871040239743198397161326587970234796801670890001358168653236628911587159306495256033661982029578385102662312731150432641358401701171983914422047559070538295425459359545180766795072974418252028269171371954781200450942492469608587896150474283487304159950133985162371435002758659465118233659204554584366017531237595732680864832518517634800081235615902738782021176829993236686693579484572713383612889991337876349145133670647222167486616683391144182770013092720576639345345212870895345308206784923060194727510470237970022469758262539122427760988754841797798150875001412228342132720608440068546221889971224178131918324597147602010179906226697955210216253414816132872525297972387799967342998646856327609952365024697627060393881718823904450595252196638388054512710894852872018429222618225726837678652138353465656405177427743879061656038724030613488433955854066392836279957381924028716090071565276108677522839384638882274568446709242264895446777634837115588362148702669592169144319682665713188577470992651309155022626100968444085306468806209185124198011283408224877171015827599099068744263767089150510614480074825787089919019356431059511302843671815801233355080368176052440021108770652106319019305471469930479805908672453262170579374629085521122900118923139995511623102427115628890268919331225230483469111061919362495857550923290843399825484120200666704401286063714128910507669774196304439172439775751079166607434098508066746647723541391267295753055134818534586035756094173093370414400703570655395923643338149894157269355625410549460176994334067532161842700175941361973225499369590531121120851675426506322755947843457026498657741023383132361359474970750358255758705178684415711605370379122761785598389937962966146590749468697226946627544287138698904166988695001970467053176966713667620004055417807790551154013672471239681257496189583386168439001589781793294963159123057985081676417519950293109968989195829142642114456618280908768339656721560308596673548155809706928828982279814038417400590758851055135453175157451746539968149864188681216015785946001347302940751337335059898055507351496200476848078922006412190705974891513212169132468292296180749496402890388074286205393112341609382884557965620160013089372452228943926408524151338138441018671916826148198386078571846554482766568608886014931788830586846909220838874593687745769616085820331650666668613076874386291325317614057741624493074116202634281877987307944348586945315284519167701175660052582794878316633347922210389546821215794600321881265451751928934094204527161988458524288794065609534161273798922640022671576653188478183339006417564587006378029244611408622786021129778442792900184067173497320128220678077277398384988027734417389630823491407115095042332310470087400279589722303904330141603395176364285478649517917860884787923236542577546141608222585464917654643526038486179819993103836990898458082996537631765234701802652849903322391342515624253594365354416808721078970635204192666824996294978546298462944153986088996519556422528323838616479376203702423086799351165178227502870662206195925519143154922409824317157534671049526606096867551514289871396790789077214646759064971915728851529853120943136466939760493436114356527814794681168299873650294424728624990556755460751814524202362632311453715692164120957369063207651168634461139924555183004228998284577295033226929771810672421267631362736587158915250382651723961689536492300639501106492877060914956978434452361828050598283165138448823606292777389075692485257205596599573052452239694065452785630733853368256638793533268953659728307008441158550701905051465066800012536542065494916072005291053662551276042416585806963665356251335014065418516532439594909203785930961201025465266929688080028144239894066803128127529901560243964053709437100023400655582738255716821513282552381158914577238518310643972299449252475729328132073190833886768991233805909939531067029002765909435592014507217704596555105456180558074470063836100431595145637830021049246346801428535867777286405194091757092850756055093545506137160734313773279293198349789003544783833526053154827813725249571404027376006021629591124892466837739694821012601901057837828165414106052009264585355583332058479961786722794599759376314209718825007738852005857801206633577353785252074304116329200226949732083425102879559160225601232291673420859512387978792940274094402987285686070897493843185739980821661525691275851323379292122697263609015987914495947501155289027240423057138023905257023948578653658811415930955226729552467549821530007999356763322454644438910172942301462019650817898274160657617313864602354518937225748972891804556519318372755162206333450328692891718346358606300809330394014953119490606626833656314248146019858985148314529611602867579645147662258111761849834725234313613720402533146842079902251469580876826760724228167619722149859050789757016378613583869894181888355022329974640601389229082253408608704180888946969598670847369958902599638995719300549156014240408837393395998243527084597447444425434774829401825099822386358529396958603200684578034284994211583027485249589055867614023198535586732996815857575704712666519291357376621854328541229153472013421653044526223127878490029817822419769103038775292581720633239982841136564856241422759691163760510687959140405326380047332315894142950544774520989087662603715224662721330774864546003688359441146252036441807463376035139063356922272412253760072923319355003239548045336622811974861171265484333197431986343719046605616275120767624290817611415390659568639631010535754639731438402386701078657757620745786098357975152288503000374201594023863090259308128000009313573074074394467545358100009085243204661117691303459936556171669743650838757070030857753418025162877117941804671384398446672571159385032710102085934795604203918484299272323848816190677469167473263721643050753241787544350293119640525953545366356250032963058244770886376424562106748429979214668851876245194451451037002735169429214752797203969323707497123418319500586955345890055982352323632650501818826016843416148100900058016099698773847348730169468218434453672939161735036279316723332374443171989612544933882429450401076351061866438332469332611914580889342731625946810958756271695504725011723186532251847811047250831571498454180119574888020646015039046247046370992701371954352461385966452219974471542410496035331056681139533798046187150675516123700765780614158063562000888108730174441392661435532551555258949433986067795952490613823253867566687388494955126453137799083513136564468066415483029760081243286232380625216071344434186805389717350797126945162043160404531344004108066212022502434830008048970650704625144043718371115825291449015552691617122233239273917304145496724528218472640709820879766599159974651289587027029714026200239391654200146552834849901911717243309484631769164240485844064469700468266851613375271358627838251657628073020613211133645844799590824202316619880401014312566120722177257336686400199043338109315897523682104011764811516768376136868269098795663364950373332492218018487902800326190419126058645970154342891362649776022335326970290935886999952744121057962000640292336050833903783825139392060497093983045592722602982643309106946229712904320091058591425833681883288883130112356112652328438984915760390116232715243877538351648996787522251832733821280419772702787136799017948584382018168193194958059006672040050514215790888119154055018890062895867114618997408017621311702943916326444661599693772413326760935280055348862313951752467047662897980032038139174923437661064798815541219241414558484601682410981753275842232846438447863678270399904596233211270274357828067037916287993999849212686456203923711353478077666061272012337671360423957218186819648380566000295398298571524763612464795483113463339413578950971686733534426693974077168131676314493378265775621063477724755815189043784021478545459225595664554031204168068767881994399098771294851554909086864729712756495163660463112933757887726832914760299891615274139258092368952756968973367094528878358035594940777687871495002278866910457010617177394951724574906477220161712828509480476801432764861774403919425798919690110300240866259922288962020121691386610991443253965920370253505728276942705688743916481557807376576713880732457559299754216056814609828143477548274441525571643607803005071237829894241067292488628208831293660824070076176299042752921058750081073568599005621906264538758279424825135283030377916929980414353305691295316991420305141622040297620641329550576553710606832622685175799834633194667371872309160959159557026561680526525128261758049057706951076814891603603807926635804807450917533885757278795549250802225983114994862892445992611474561364992017686329915802596572804090972603778169626146657642406754819815341669304623722677904960662875380159182659144887022226449766291021173314076299244060369505227549840100590579574937011291545237596183548555963619109337017754249536792486371976687802420712596694780796053664197605716774052962182629383768130570875173217691972501578653746022064453966490379263925333894550269617692028778376784805377621384295940469788332731379657092818840343912071244671052240684647157043571937196585309348513038687647650998643713861196533258880404609542148276534759482394261424185597575570339885187526874029751027101020520158827520970592222198177343504452084808515708713849936271424142897003767229599214239954011061076655176425364162808873343814934610149939019467862325848348963435779788398380468591129883759207649708399947852691356251379718076892484402622910934262289264650296916129207208507241183690146102778743837971807992955549884057312570476351357052277983534095365175211597837680887931989195012539637217617626922462598614335775999669026107429592289693830037277813432230771108444881454942573694456555445442907721667270727311816329025310874316878531142620632229073062882836983601863009192577361697389247639273149609182376142056979538723168287392211805425438155576140430408631154039526038485823307140088162008288848332273923015150123812765983125923148531937555376509456803743132953289253844776463455932930749549934105743561037745002906196059861611022929246413078174019435952284904578619911669206085843058631485970204398179803264511635782899517088363953146349290028046680326437717090044145933256722134534291679862466212774332338616015830959702826951826479831942795845865522470901507687803907011998301482579477081963120502822806074721837018651902543408862014187750978864225277263366669640056310288271310154426999062478485323081862892603823850495045708496948466600396316317482004876773788136173936978498291762038662804956994243767647247768340930190162837201157839714720703236399012478750536234681870811165945133170182369601740503080652928600044822984361923900194855302114604432922704067517700614718524236783091398739361119609253889483119338290346540228254758009697189486162132277128669258659031164151084936325803523165497361704711924986686106727262088481048807834307215705820167208545222252451928536757651978702263386383327411463066268619328615019656366339222573218990941302543768819967848723034283781705367709615487112685252110133885300748800220650370063840209526079302578725211621477332868166295852210697374632683313026209003150536366715648495372199879893761954545403327666529723468153887036785294929033922278189039000144890897666501647500072826877260570558246524771791246472728635379946308702085467415604705757092577181361431014339647441124112257079042210041784649566052750524411644130051408234859576892910289095982329723783007768006358800691742655787144474662923757416774632605959733753551914423665445325257383136953957587952755859427755060189433788279788597390643613723846203665416225230355842948076478692870121184024732116804538325189900298966001475285019742994631134461951749507253931908516969514335766705021541602328048590592712107338592571332164992104134044214749875027531558034515452864642731818977851288539806904273907461559691725210996383078387992952998243553736937793668288122758715042375544943083795121983937118089450063773164997148056054561173796464476404133674132405812790995522947059249387099110375430401967507879026963884177513050876728359417374535267357141692855324509800785333606500283869746111148883414668187997696840433472131116515567675883256044887185597281407270888620261603216798826080098044315112395548619417222847688219325290125296445348614537237012850744177392464037109585870555149136487930667691569924570153116078636809975157683001674125449063864835220327867508816815814854057459298542970422247527209310488813860403229967834804391723491357703032304922478448277501812041464027883050276545425753824917824338263663406024145192674019931640213743582824632987146440469344188182344533012959774881564826845701007341094498232032467658111157632059932173607808607481721835954908661619667880355730859209877826021037035403591035897251367637779017974274004905313848443759172783503463431142978354875469425051965444476944152760846612808971060278344832639129814722113022376998178849466386502813422016998753479908511426508070113078821060111506455359180642676198748781864430859963984348124146423830588741005951286132393813906725227732220491859930877419101448596154068936517998320258176734198450770204896001166197797696843462304432916188858460330390412811419356647952424963915164203403169059974174464848353746142196321608745497617541815097256252363490003823957284364449107225033749552038049304695950694247264198005136076001420848462758060177664043217207495386884717547249598486664587632366455583942491502367515437021197614052656688961466077700702748273058978417483847627472202582005703699683671386162466599417999921863264232093430137969359598735752269367789818369007236608948953140583459553668036218326426633426232068254985064466889106361338167515275346773080096745042987445679409750096055135247358447002381559509251907337215748970533430575148592660229273056006129424501641624081204750855111874827859405888283103607282001499899529120872462006598398748824665690794084879551314851151361366592237166718661598849385194628083215203126834964172559915663655386164230847994148321041493694758154794252973227445003416382103664391155504281641793208875583299221091491771486527661465329365745834053817469866643749325151633546767233712449455443754331714990750367628471839279103028364512400956676756429349257119116201774701814940399939031608772200319242216718886422478412560351678568086647080507436807557750066942768913880287410895160470382775820938706055461334123841917060165348817815377100534662824329125471287442925596659150578622787667778940204724711366464032240560264231865743765544902825789897035657342911447124711727356095460474682836243572561586534737645314065755757894611252629499879402378208837518698414093643061326647319932702332562318531099013871767987787437639202080140334193563312021084934457044425244999806622954217876468856001651134612415426526730266441336226261736536953649987820279751542813914746075444860582198019429080284890250380057465714436733051758776597973119656721007630596252613437400804204306219700581549012302622182844762081476669441971635172771064530322482073986800389934442064279965302815746139366588387298916662356754939486787028766976668610120070490623879547938324240250205051787049109561782799424753415493255583473079819009171009959219286779105788239690832682588341518937872298256597777966913380750823598360558194982662701009898403572071783788447703800822560053456114741673851835242929801424467000435690802342742946179268178791567557604590218898385472151151750820516793600871582917780348846262355472066130908049068137942747798389645829239412752555890051753975360638368200858045881879892326108652867043190243896936481863863940509908198564163451514771113594997994736125043498289214094550478601656748225024865398349886292336526423711872484536566060004858049040888451776830250007514639837281792208566911360684821664211048285608004086688517397837291782327847299236241126605650865786017832316297114344150327799985554942941606856711598275149917456683553564750620085155095544279683863285372435110276101605643065177200048203492833202252347697038482656167896490823147779203423500297809695655125018501114597478420877337746613138865091327867728344181966754144896388121090106088028599325161962157115654654439671428589787345903817752493784344230681466109333848539838621313157517086490149216133064207208602319407120974508817660453900682762402786067246072421543236928914943854491071388761199792219696755937928501915316734084728467992555592755734337947501256696017482278345868217442350836626833092144825422670686064441278507871303596459122352140693221507051376418567873531985648397473471769438665075849331385362847190745431968667296619460397458449871562302369426529594394926048741635676036684271769087803876212924517342312782912239223684758659734830441089912208896805834847365713173794650278660269195700409330833641569298898629836488511880000372874455141070286548579168714138006490115122147222584154621754226919196265221675280476810143105707499869265103120976281082220996007655357151766090053256803278660776496923995914161280794437545347904100073995429194636831979223620612263929436870836166527284355054574783148998663450208444436621306337251429821929769538080615991013195206633201930996957739043293540052044527114589386515134659810174387379914437518461454864973222885581116544414096046280108044732917620418193113670360511316661983432522523817961933077458604067502152593595841179863976772130808321229006179141762000224855434423996640425384761330463506447809886971126345925464827191328444452725230515200380042970099567454466725072725087208860351392958879407840748987501744503816487244439706253487109182124502460520775666264914371583446215110059929239597051858099083784425502674071673827923372407232544777077358307133594458275942891148291955772187243189996825007723652038504641570454539960816976802959647226964020219434377622731301930780778957173371382337722095526445621903094844942338055979436876046174712077176191168277522906380745071657949927870106580697894551513038989673486519722984748484240004874063671975253867317977110516359534068626006425927081617945709262404385817040712646062621341004297960600738987106710920522406687169766088194302162016007539545476732101671795656949992400842696088489648313424179962409424741366075925292866723527357057435394529814404587692273529523344194235135589495205697618196577608886509846078361459948351790572868265609659723717662423324748595286335507160703036516022895537548314035444318589011494125907091533944505715747027318053049358399694704194106154993532917108337638576036107989176079019462665053747070657262418466556734882224516216749131230010613150839346572289087499483308250759755226343693696547462038817975700063014049102892251380575702782670899569939193447754995359837396463865941010312813870314073139160118916487625148809105825628802487085016063218726224904550289928912463434284957983002189966321289298756537213253209843494371553009544495771529128951934119382481004876343048459570869194454820948439953257299854275582558849867699191226314762359176782362347526895636066140929938075851475761324890669987788986621254401302586661208024983939272433455997767681704514820966240629885032015231844020749800908069497832729727892722424614866599924211482747289042061456631020563104819442328606183713992271434006428090947077385341113192315844050554662182464894657428059250199518075371253310375707445473188356019040131881863821420187266816369623828866766373235458212504759093917073613003189162427126030127985651960260977650380170741812720528300163728518443818523167329353102553018990801010131392665922023502112953062862020802089784105644308165412477706038976377817049726749364075187072155733994658292316884368423090875738348894762489819901366001285987068045904823931147947342681271716697925570105299326742044908844609218115868957182887877901875236159976961021768722235101120077107628322377597237895223010644496851942763460293137419589222988959426892118761240564984253561590933198505885580408817063559269873182308665906875905212249066847919510550608434380589966689833057505258918872402396685028752733825847265415989955858932580248417803683201212651898779009869425138410634236144870289265454596684300058214406841565105548926649194887950890084848006451652861522630277985823252964860986420092688134890823559217910104152434615474486658429990975509223079260057636997676007447268708639832387150415606719772674198708679921661216001138083461686142783175192509759730777744606074265315945477674599028921790790991663932948705294118725949700271770519354051279196676773353892116804275027577510475082121391235342248974329066434941168878982076016950692977530741457282019742158185787334146790590731939391972034593156680751941439220506072517334473926380464206145728257816429125972216523884277782473745035206515150091749393634460442730630288981016420004659939214467349552297692440150186753253036691573574289640049023171517174985457329957855308939923809041796810592908257026351968629919614598241183846928884290990729122984322592817609489690747638744508525710848737652941580379961167516257870646812669523993026461196165631302045856652435331155307208399901390246124155363355134401968946693644821746873710681899329973054609232618974406679698628924495931142113627437512039184159932413299780652816767334679098835537980009880131595159953479725312394528095794121178125016860456809730218058381601988940689329277494223189144229045799731787163966935129981980427660468307581339577659083119735149355162355364510998764557123747315788026966014655303501000902850007560209082566315303385908522741996914507515334796205856347270618196659080434145125392718489954594005263927487325004542489267661705130811058029164764739712132628284362700336718240055410751080460903549178119912277554780794192843654570498045115455274529356961684252646024180957202699136749673437559763840526120273113278868056909717651709045943395176342944377633734032205328563905232190877206662797024845427109253356844321908231493087541298060548519428024904304420122418957658844032146758634467770520281465896745094710158198800954952921769695972927194214222352639416050424454817726122568782162556207170355336334378702602948002786794942674834237678635824562365754289844946708986835297532585480343809560580255047596998425088686801686483610207727376067789504996091462295093055595797561072631357775518687808889682683303891253003881849394531582971702799624112874785631321986321481142574927636882062806607758373911851046458722882981207754864006958570489822446289553196329780436857848429523932789123667317024466588852061372410467824252967501978694304929499548332840541107458867557321100004248851185062110440499816982168869352457472889728173991301324814527074589957364286729644106376429739887532409166205995983216977365014260012144980391347930982140445908295467253522460924561658142202817395458719994487586779778225031600354863495717023331468415394449151892335288658762251293580568404517163174224568625782866600730082527610374773689390885207821248895171745924628161566221495258446506316083458003964088712802696693671706017519582511823965838767629776416137525859453157632596965562700531960175747300388772868538331628051956186548798106248019401717516758430082936057508120311447274284177177659949518568205088746049860469222548997104315745673460116880282862680240241691379209950549680261236308190050001327118481556954836152282942027478190571593195411533922093079859374101619303377530234251020775044728962962577498467825221328721189238050241204474803821233104951673498910679075545167668795937657785532803007526305618267815141439407818805447670310220382932548549384706004435775637607202082080529987877530077574834905914244679795934051924111666020567066235331596005914294392388244334658719431731753073114406949919942169349750349219947827717491446255697208931464017732609625909831987814858924282559360679259204567157313256760252680938948040706354419422248593657946635169131924725845726900553035423109020257973719578462084515763861526939050821371251989010171588445912059918744516756741394878134211428413394998984935733700374210090687259284860841039723291161231044157466677877011225793476377402256617753495706842711898188041344678401893125281930129410495102054623774634418833679824378577316715311333000600384029483366497189784900644544119223324883995951384038062137118964475218501270933821239596468672103282375234991208943124525907724529751875279001363805622962950304335331705949951365804315432602469435269231353065737118991958934231066684173212004793279274371426386566712685336714461445159915579133656310513662396946716713809987854153598289923708508509614019586895602228046143421908695041794293466571561927242440455008648538893071718301078288511131931824211197552777499000689702845848332986923912579622008562753829469404882466020414455066065276526929010371429467547043397281190088684658115395433442662923458983743827052146170699326161832825573227610709874966818153242528419675196843133825131951708980858282169296885806443064203872110432785798821731021243082144003623336141297837590719917589121960714329223224869679520264150727078116715803150906586551599079667269994039211428803827586347850140508720180717029385648972340877600733869805928877453427375209486312920021919140370112875875145617547664517383061028424730768557350368052535367413697602974359221851637283022686233557701577108504758576291537109604532747480734721270185040583335899882835530963818904667718194191796600534151388233215702080017225663937844861923349005105580958076999392272223847016680650149547779825713910991091035941456283165159779863833476356513418612173505384805730472200250420940990181377658062004387779070971678889777394066312157588975199604325196835079571566856113966260931969486406324875391880594632521016774263403470024779637489314867819890121611184820704778361916234334912620805521236379772146124936708417430442576610687899500794481831544130354494508821541471232806142170905383182810615338244536149444747394350767156842915521362755085718744985594503586495332710675610108755741876485901716253631115401351988110741274677594110815552876423119354542790792931749806042561122973721443411931915320808641358266732501532237478867128871473648877747797591168796285831847447955807376205612670340598434386212696333152079261549581492634728653643697829067330650940443535929911518591840386723055209644795849518143933017117568362631968640038669510205389524113033313279091967745209671171466057999941452126378784418153995726928881712510900703204940979483230912301101844542585207950001895940634825701526751879185741028455720105247565878847075852373704221664039850319640001274166678792379332315926011140049225639243556162935382450401122042689432940025084162175156887840703094380886684794341044026835626490730076907385036936106737320485107490921334596772179341758989614271024595657691058429137610211606780635069051175497145613305928062062786180837412645287384915112508349095677417484358000914986041231397078034529014389458864840614729047465946740908540423676079982698438977202559592736039993278451961537949812873604005799587757316749261057335925626993737079671275683439716914508392070100783536986044614044866573249254179114546496747059830500501628684068505517444196436548580664793824247310324567068165950117200810047429211630957272967479121610093884085483352116524533885702417302939223447348178569750973205913800845883428004810438346992072190427420507300790507793828425635046968504387789610188139992465686969075545218312896584011734742015366906249811012691789685429404675172014342482446447918843165977079010363055004073673831793900179072854575310677622153877432432281675167998155630633735775999903470004811903539014552157147215533177774810795935637461655328154852237538256137873621039714208578691865963203419481539473204926003565172299453825516575483125850178198933967529596377351124709615114628665609295324457703623048807054317620513512512084890629682107334116722135287558690804624869386011885276175529565698556217778375025876931088012124168546376907371820009743412904579054632533123070324940611296171193261524231486595889939205550330368351965641702228334389846769873097663246549097797897124752007537174251076911714447380656496257898372194398583916049212544932183985225009376188078470091251011242932135309928452288685626675742332671712677701385136721993841139267901453152966121432476006746159386841770121553936626990378942806564278174512527177394456486150853107194401824772481381698805471479881328496372611556555141317219035064481486395714335473127931624054774164958771724014479724836024905271356364606940008895853259832314749084572946433196242601228490823771890494889221203302826097503180643948765781348374854059781213968752144432811607399720469895453651198550210659949063318240842150444745596052093336857532570678585895380280065731441045975047521475925309558477517715509275347875015297148265016361612265541637899494300020151864240488318123771688587958146401107042954931740615261766560547133673093343431022616152329494108290348887375966658679993236626646842772327019016009043522844154849273762042539277944093304557702540358384309399265360219371447326780328044585833146618678601529840345957734712520936070203363855199581641817744555452136144537851229457163591352013245833056564600125606125680553559388667193746363575324657135935762381883332940092727116424040152858299375818032085733580563817101270604218786113421677042058562725807489617772096840960331345222972104108713115054927223511059104806658263998915832226109008851232014684333540327889211581310923472954064203103352225763125069230750005665916458153818318185578196288444786879517190296713618704084720533410991619673643793071668897897752565260846960197358533612106443172840612941632187741530574014516802635114256581704670061222911453327327237459741429803878527442507255052346072421371778029799938992916163978391973826926618649731839604828247350685963856372774675478499772945669116993671990592721585912796966209925485305720881020096519441755515925699548142353225079305360827042480322038180348270532259216446970481295326524388605122574474360084986684547276457917033649140237231708517552746855438509900069931206151896265974256024253249185895310063942120903358352305166577775742216497441934079224712792874898521589961144493588785782362316849751357018561774883431961096477230187833159534783519024606666674311096094098590117156584537081948465424430987509175559372630999431439210687683803221791614949140000927212171248844478503951052965913696277636088799017406430148521398395585372065701600168770874682782492681136600922186316723860242348021046766244816213088720946178779080902310814024794890776149738070312611863222729504874523333635832694578252763151500148960272099659883561507982728108798394099870474540859273985037228886683472757515176424678324082293548030300014254946652116493532973168558664833218686537866001490611336683135105064018887974723743578280154597278871814536070807837410731448323947742666703745008730161220206736599320947230032121589745840397046875732326614809209092237581692644041981104809746502292453316739263102118337873571367531279205928702538464303242217050278561328607250494503279959036843164723180668792869880053543119211072389076113202934906293957613655529614642665221927852594687190241275790361517399763510968465587564944247585614344199218215014651906795229471530090628812062421586358655553455131882306178774337157444986944492264323949097730038960940767836863016185146406633234029062885865588158787333441811513614834762177775198470676487576264192928498507762444327550836921408887771682571389390840295981305434224056757371537326207374778860134636001802540168253458509287778227757246477814935173195068137110169453075659881014333892291260449025732873731558502748381192401945024733077787845307837263541677512179057404085904084234900695878736848135398590281200842302104660571230069731471935307894184132803237039730869438707612132813889383995390717757185367134466361807893144489458399801602378863714780463543218896980494788209249074251007782052065646212195431360281988524872923424288806049277087680820801346350409043644448729259904469188913917565344796801545195644832326318883995729273970373323066887472805579949527061253637149819047319826140412332412746998995754493968618514298154740882158141445119546386852056178970600318051020287670513613502651962259114919829698729574678698668845872075084848220747782088826653679641246005021577039384053738904534115166278656639168308667676681445671079826089712400315907443723910958396527190581031082334733084582788149170017244810960617429612462008191927820404304436998864003759929769265418915688937511628796468352039310486701236440253421393011732420725999921009300798296351895790857064909133471674654860591582317393168375382435617992883271471620210083606507641410742093867909616105440507392727928955702483169025549378369312235173481198272646384334588070319461019587692322402028096223376439496191341449666264974776890989571473359655954691303864685104700717458873175083139742947126528937657702960712600418361598030790960790921074234573586037641256164405387818204962770757916597742753140951193171180881394517148457932641914344937984856177919340056450314103435644065738923392113595058525790859371237055226512822765262411209717307868491161849705937510001887846938439513122634843358784915396658130013389944247212151521444240350874793152981661670120387187436953453985441260301354918816858104007843131215871205476448732465729347062531866464173998866168938074712207940314540589060709950882666936459879701258032862962612690562536082698815952893915116239941780561498457782899769509005005761892337580873210748789848344711686755767092087286086650610166364879689487418678241804703168675906054057443121080045670825958405371279690590429373562661812890312558368453911812184112401141895967614028963669046605818671113226666497610838308138247056454138657264276351482285109297346790536299249102306367874843651721489394358127498420131969458830598239186987281494822599699011082471888308748301815711170308194313115038306750864403008342703913177769337464821512247053079400825175844617147738899684043059424433605317870621255511919001236579860432908421490192641985136193410763463956546926940423632132942311385610577854494400474106488171042343921394933005105384674960827559459744323150661686701885925594333661949336800438146125247160185752165064608196461079962261152290839215704876138847461024623287842295564312480462119387600302975353921651993680551330985678089296804900372994380398983986660730634092092061695501870487301381198143689517027949762925798384077523252285612832890353677806850290369245850859255326017627230550009349813925136935032661492153863703060206138228448329112822333516322108339658244515946456981985132678584887052110925325039303521901982075988669414929325856356511129090520966932184574123211815252664210592082810652158028503100050392432034606415479505194995088947796010722258560249194851694523208907421762514147443401309345324157828616771273181644341943054436517117457326486522326449859638309484858300980699335867650536641689841842910565305441911067651519155501711010362198845734610563968925965459504761056122045652844304911653096439698514504357171782689748422870887296270482187020538339168890610188675706962902039611382297591049930486422871779892707293066517261074270744375980203811321602478243678979198508069740528473870513582452029641995586602009620595105656209749111501494844633558705331670976279934416466132841090668057905093481441190138470604665219565963777397613533143448139556358303267290964732144981255329249616415070918301039089186066691603997306020869421093246178834923008104004163445438621187141037643202448174101394597580693455367977101058518231419816516984536260894392528323349331379633202475927213187172930479418051630837694449418134629353014957923722505347302019390670850735555806525516205959245489976929023133259047319206366668925917908677791686637774581169235306702074823686608912987276693172731175070006927576781964503506135480045066319538868033984045854816586412065120933873808611619074167514165579334240772104581133599899439352536423056607106095140030106800873977152892338134986724989923967616893144118619771585601541132631999626674062436881198539972252007161773695628912219912709058594950368645979567010633798242211226612798528598735325862045940141318488933550649005775594138218085531119433823992772232631480931136837065228439593481307602250269891966111483920408914970295400090801858604326920626300054663528102366928525752153973583802823563158083241424831697014373874415250694606992377348373042430807655999168178590006337450281081197854992684443985314257619844857758651843927763360682197038410973095542835497051007368574647251898912716974129379439372586774122401027618580525612468519077008345642887494175231902549977932016410103469718999076176042781591061011067229363808206078238829670501703764361786763621784945733083165977742098000688220578098556527209443655005176555960392457692775820595489382552708236185740554125075649150476296073528256365742781074785635457655510244865968075082210568248842478549227032651538197066080783694961359431583324348503877927299443928257252291311521320584655056182410073751938422860604294235494247745300120358398430537125389555249279430447643321146286892347077703167414566439385328819005264613360016847060071446460603700224340723635972518059588743138132014553913880183049688630339522983484682876404231278270105177005184484183968008039661138420512991109365418927028063869317733047746820045475952861100315891295472587380901470650936244455220906613984676228964457433608966778384851757517793596454721381392325284713741008008946739591018337430117297925179658919037850238385827478382763083600543876264458823021849715426576766951716184788254828465787642224539414463087712154749234169540861826756851594486992612232656363121653374381878347416686969116322517787106344442032442568267608028503679911966007218590540398999880000695105858992765348573465309971257377142012260853296672935731538337947251476394723471523292884386942740320718307592986472220468856242477938466132928586282065133624013657469675538045038410769394622428127346674493886194282706258136965112268314515649322550432274675182808503317819054849594843261154431456142393604332371301938748810171141467090951070108806370161483873453430557168084745044843905824949286406298439240135691125630175463238513194485969607531523905611938276766576353720626195655566537241476009432113109994642214040062653179391390763922421730785135845905303645115204253723143771582616854537832441001048914666343746403344620639040536005259766266251731232389153411558678416258688269293384308388842041907505724853012212674812380464061583585157086454167211667646683656730413339426083030014270415625594101519997022638913405955942753232106742321880938790194697719545745970117995988975724422132131655423439229706342798248927609106896722118099546395575932104139428206180916197885956261663999120301240031573402367648996742096460957344249856016145046044532743806081017244724315587714590288167657921251637075226180553069997036700453320177627143119835737439189353265945859713107770993356783990147977577527751557158904923716050981944881747791496126683511826878546715283476036138550031174353553526598448432955139145601955140013777559731737307191577102625391912199164386727496469452456049559437599697518323079529396084069275414990021342542387745065478919807344863110871636481561928178946413046125247053673082068319364952522726308808080371036705378312250461865799856424350235207134469508518644078212687005620292665306853741249210366375495608583176899243880605843086917872909406035848448501711140396634174915827537473619028565456983314756648197827514754840963945901451050820617530795382720489935688065311560943105750155848416257852753381009997398130399899530996769968765333360421007631637574426958066630370483926991080365571239068307695199211508336638137182679826380808109650778428502073719915078350494173741915482327194973581830829757168315520159819494843022119566234714461756146327294044561123431545825889780357189629059650816065028502416969692446915312164314071646074040083498331268394929569599293331763889614248550118680704872882115532808724181780165750370703082814067843197645882525430958723981516969716204561575100872598742980172781826368104227314595776323416700624428453814085297836906384624254203809119059366884573911835533309050459069491499593129238079899920624140019385661605924695879073178165474925938188515811308021297145364742205540370100075544285647696753536515435985191671924878485486649206618180459752436988164682776146870015057807057099523958066994107126029956263515326506046224610699065409849937079888021883399804393037494677066350361931915935623661078401401902242044073043817125998368050200252225368393511497038759462242044150143301882098177181176697427444529933849486767797577567743268702269979596763333923878968430050111898625653595097247914631837812911130545828354178414358422728919449771565810711102002864946807834993695617977842302763641789713400533726911400362329947938620688297539115240625786095114952178139530082406557229581008585511294097963235632939648498784438256719865784184672968066635265413391510071725201571476916024656479349730653858856093308716197274627077995135676266981236808556714721291484804140333899008919808737045224024380327201986662221056478883904780838867501183605962220395235820198037465438787924751915763630176628789466229062171094453766022507829406765968111079390772072354875571556891987595837775236584976166888414135677015258904566543660889850776434470330081177223522548531324292177597719592987269784335905237884227991016942400350037717266670484172607044077280169213231385798363055207942169194280489825678349780398532628225790136491605025676534508216745837024754754056339133181557413329026054032654671995946319818392688531544507563654284990976794939829360271325704203970937452232393297896899313623702176921480160727810144931186021641676156931436611918985424089354910467206588002411987611595006935544251206202779864395647010711592547742484076360922521550448390684100204267216293141761541586563822295832755502650678713707129258224973299462593180107794437606112236411735061734124815794276914256260089217461267910649494676401072725778924082821370698750504741797921136952645223830452957840673977819793696694190255037513728500713677126064322413889398746975204517540209398021454987566130851517154612708995977964021597868735677000724388101158779491255119793017708597814704280515415952912860770751391380938840228409823242406180045299236528719911665820008588669959933741086752437353338758361436440564043539399582553623380259721445201607571568276321408317539584409974499021050495100481261676651698061591885257939094748937194971429841110821394704530947531343213629661271624428122951113312303502650097485160609668473693209451426110926681145860202271082215257145110541008392747607613978627820620464036491078416162009689007895276373220223127643066231670198989664903216637497307271838370408624289225567539206940139762426687172943801744740239393727579189708361898141872325359101515037706021811353018748994107843480109397985533148502404054564664972179575715229691915974020132929663720585287524628560304876243623205999069192833984963216642448138169654620684512788503445395386058917527337734735379957772188863736664730400461481456669619483975292234639818776765040057511980439899330394427173772288317554517952438917698007810495142349044588386514971826819726893124200226070386050348156489281543982565571842727579351984705726539244369253498638905393360986038431327556807930195856958156275382413361241824082892925686322973465717523624572020265715961908484397762336808993139708263076857194044390648319149447798841773754956536959021308658664199982191700527812133238474088200451228374728506241718389056674885007787373529441925246225985750781646329825497922269996216220480624170585309691386344851983615465250895269760659023491146233085003476149508609779632661013021157633200979044318654206124013676117467115926511848357879138293326902571784638313419621651303569087092438721216900556210885382315262341225092576489877201067230367415853008714046922217266631641659779030783525960219083211875561212874808212428506371100034989738239719623710590050285714904726019924092103790229909457538663743704181474397114849539894177747640954580054164436928097459873764161030081102787980805518764991818815966847530112332673182851451854520366543011434677148393635856942601727346183684141179092560696196564417819555853487683101279277818569726032131849822369493249609085976555156112249068675365518644524642349241523252201011074032781644168176185170693471425805770926843158454506476221829501904211189044454627080588178507350460656848333928779130854600912373512787681833833175223399880677706805844118923719864900308077913076866667137178629233348840761917515421441661064698896697298358759734703844295730981201666306313312729819567352761078580551797935384830949290516265711914348399464309741515410516007275955216189844684301213917968523866738344349192692972222826146106470667836133540819441353105492996068613414666389365586156615887755230614024878995181295046309983725743055285189584089375536318599765492522354462702106706112361565031723340161317640082548196796718598688282752684969304591718881307537845058051819519512313369306641787955637158511851979577711898773187525990522238566582399542933050369128409925391175213679998658362906418353896838166414677381001570527458187256173080234205432220752885285224386663076153041224117025149863589125256941700044105726112663271344181607843104781916152010548763923289970868954628300940826907178923611365447585340548298489436938899674268450610322981680618999599132125543859810125926560807202382945283796468187461082632257907178003268962223030304681196584703857075049735930412843355458892807351848703642652577055242080695255860960341898951787241527639537217251480772842662682273877002243468828488343208009854028911475453213163536815166562580226984079816189093173633595878021757056265348135494005294533914332835619248711747042302270602781655262313054479886291480684444964477309785385263780177937030155934413791306600570666899314701840682808243309810424228933213909196325978347003202918801018887691477917788329726185673979298093490202744346992638804172404143497257036976993592554997642353929620015462879074466363568819222086802168874119006929758526150544204349659533124756708099281874030041351758779066914599206514400545267426080308412171813501300655025503636939825001553277439876578589418003955122410217152583802822439083647166469682380584475823017540794559531358469060370071346254416228995413481487827213997861226924072622343487670556938009478217173237233325810171700777585069272451545791662459832715557675399123944576321404680940008321974875922131069763945586057540553396519061444009218153014282047701305430031522837307254612711351972538257269149767513913927814776566110862670719633482107579080994433302146147008377501452670527603060062764903986607089390488121937260624558610877250634406392346356607069359834945474127189563984796561969871084197647624622962421983875710232580793613694048055923288156777217755315358974270350518059812520340809064202023176022250499961127667850178476291685783372831716392942437935424594249170430586131945378280699864306984954063228825071244182018295586116273534243194857010635797980995579506005759766652023565832978135954103551559925381743993163028987323162578652814248765140123650723644003398550155365685324237203717846082891924832586079048050205189452135212388308707731104973010709999830849036035207523520033282546245187655465110147202849834698380396189855512130007292145339677290428810591598893763193589553716564693871084759044546016391525595249785583059267194955604630973056530652346910644231393082049399083750117326733239013607732876721277771678189000362898459960477699536961309862564587784520341721908035418808004482218103257505595898877255266389718949095998940331995037516100277826394140948009352578025550896852382761223786982878008249804529748955139808672681842268146498683234542687492994000091779077674439143659898369376191063994421241929665337105867879916270773328831559755301661471848313644811559388201148083090115703423435114574000364639849951870549645006091735006474258797957394870609757903557910103940568056482484867608901813374497818627128553288309523165883334728490410672781569889073263951220140374696893547664598903725107225140676949684032183372160265596912953284526471920372205548019848059398552096557705379967149735360208318500661237177390263645664775623876847690018391841157995829014817656042194812673629701767455616688348923459475081472121314418871320447778369255134110657641675633080693437311135130277903361497826207071310955199081380082296669520545164002639928913505825726526159170560535381443185527833926019862466342354680830927431923646979948657776008329560962327702132156731412530326113015957993569963693244267493661758707937598258915996568064867130375896997852893131911991432608916798677673884955799564747071811467643581951012964740642408908762952029413416467123693819287084112135487058373080330383129388354224687818036576076769787124917653726585876970972401597255401072739110024312948991519722478175738360070723443955251415733522801638087269461537269861075916698000292369850398960576465126242781507352697063258066953597087572355363715830367663784388886310688763509910190782661990052579633496262788186871128367587263885672414732988639019829794876339791739243331233573917064915884445317938445842291419538424883338811717680485906147721000430377486904853474659455018306488539222811703371052565735166557385308549814494241538722550549513379454324414153030130486131861705231808005750923212646698777502027356048853078986848462868577743458974770726613772987655014932570296748639247441252446197037423620416197260954884488655865472723378406136274851514783273591781996103736447798805573468665358481923253482297665259206688595451244029973469685401128853415062917631559140128722632005113234626576239844679150531908922607329288190626624497912839633054939682984361300983990743575564117507703138745815108940950874190027486625110398341279676573246069775092917523267754316446051686259261153600326849497230836601940414400728085609790042293709999603000450384077129000296645433331519698520745929546951169405896276924088425898230249825416521003383528987475107690145547368195233888213593636209632668132008841804929614445549180721881149139348883226773890043579192692749240548641593722153023736848878478248030955193327703826190368932904016057122168343348770397426991121393327264307871413666016831008863863920247176372609444797467518911523045804360519241867473667921013730323786814925964354708679383086195444547514849758908124043089260008495460560059783270187804029229204361288985295526955332852961110566999392699214338238704686737418588161506978847996718160773332788592531454449080426279325349988630407711841432518570537196953424246448262174634407781336885975199175542043930551519455700173003112763562979447992897490002775080721191203742724354864636496747338358677787642739537385032633997382304417549142733043870707905210438428648814734807009102470085701801192998890801203025903936105557729587989626096874326008217665051368036786480066904113415814133533470762758741689163183195697508339620705131864823986597942826757693441372078195085591839028333194547220466650918648294898395259408966436188894409917815798895131079046949798769381227156332298328496418331490837817936757084702728984024579876415858517601869294956018075193450417800009030055855707122061137650100700099292071366947588155418402455411679007088829555796141345585495720724376009147587393097182003550379466943453364370837808071242426518174489984715278702120457512500269463119300406041474874158929672978993811304919964315908050860532703428479280867910919401744273135961900810870124297659227547762891898697623992767709390827374456383888647894151524820877402613114503512623287067428832626802363515249172018128676198115463116065775368789269558020598414772856037534189429857389995365742659221286511656478426415014615829052284108246520656246046885264269424167453936728985228488137250910220689609792304625564219295583500825381550733077176852619988455006833766348223589892435407049579250737845070391502924158055031773608317269517048421802791979402082535861638807841397667172944684254009671704842459488879904737191199617034006769216550993586019833916174800143420894913994889766791735898736658852971564216448889265743704191143814398009612981746821347999492548446334627592106677470179209421283069445609504314682900977458063544550180809160991772560933572387141678237202644574288881033565231159666846052813391030982724909855846842795069126469355541571957823772948393785972286272445327499012024018557453833798625759009172054338737582127959936057672545170852530698198225860378653502530237746922114828459765985314310532930248174423073093164211461561414732545067978091737813542567539968420460556322780751361396822402643868907558789980088849838389824582868571046017648326467265115049569808651237821958222586695384337410794063907575211904125188946989453778276802210986078971959271141880812622676691268541925260463531539764229846722703582000028309830256146051228805121971925219577814125809167670773029949252590520406653627087236074683695991788498978606966992461566393023152908554895853912728649078294330254990974055574584163315109472826096977788990398869095467911259257072264099904904382155663644934344329045891759255001461057431129424725654789878365940723575839098624837339459829339542104156080884811678348765477079348100227092107385431988929325622074183945561683167868615836695404279923634701760498734597128289466170974677197700371768408154563448728285476293341290662656765755295363881038097933568351145309041986700452847557549838823325314476522775750444471458362061883883493607682318316685874999042799436771150360445327501697000663741176698875424994945879605655643442250172960807224919187622375530743333853854068444314733777429879328852075716548328010023072889277271952687271697338104813157380511066216467033533515212662361671914561131927055560762380218119344445336248618408790066800911771080323798903820736076302811941774405041621285759822028051151093478484612753480332548724956995459411588755670991928144126371588614248699147727126488661556959788490529601140280989709607432849402727422265243204690237852334147492754978217796359329950304476088428611177394478637738218468051724426388053980048762848655376104497535016451689078196814716867407544804080944007320697315471561482898328701396401128344909920318530876866452623442342629240757937864491190577532273786327653061133777118711710435004580446393884384666900977996518869899193236452945518984480381356073872291616593403418329190407195011008276907368034805913326468641630291491189120038600102614353078645735103498385073805506645190714873244304029121971182572899723474390447224352813407841146179193519395186197242843460931622446999842944650308520191839181554826893799636864162192139540071752455536426395009757934472041340842369962225280114540505740746169533542550259073923109729759387187545359734920512604696213978859347886072119926020573997835346836432606471427949530940615041250978486397443627534981945217038557734217047312299499310418086514712067493904184248137355549224411960608399423898180465354266947125087162898654770190956903354308191133992148159848223482103394069229664180305890155871211265372959421569716622468459946804119524484061987896804177529841397057812555050079224082716415166679083556880950232759370968849754434959554558279280862275536101358747004479032136712502943115388993171247735885259017333344614374328981658621984569416988752449999753704344442677576684913793384300696868642432128036323617502631055639036785211594228483965220383237785544813410502573669446347833405567315838303891879385018437891543188038955797859356056449021660516431427572414401712661996501041657414706303024293887213816802424260918262549654001140679565768559325194768117771109904585986444680269238265260597710492955958042060082093086120878178724326805022427407063089933994262579312277425001681163499668128240778812433327037704574006428249942552247681295183593632580556595151202518839713610249469335108969088687621045167048227303764596569906282529733765763949371477839103115976375686235426530586883851656372169888359770814371455688677384366129728474053723646225904402058325381119442413079043176339870038998800881223374255415639032611661081580435715153328707406402394446684814721524085443367610746964995147577080751407868187675895620681917540805689490274686260379886719210970552497028718978805587322001319960579419571907061028726844091106946111731558784685437808664706561896309985095241251844909274932060558671740545649127621044697235264312605945475421846574246593091562195282962187625770770795346258110612701533431421891895573011634658581714406192167215122364694849999728693259678821048915782734076191612801720301067969581745207351757828123189027947833702447934328323005251013596257031147631063194583966975243303826701396061483576712403979329748715804616988954530250152527838265581738919224695990354319171729555505142863661433773297828664213504141429645883044527166104645393248019151677555531651368698981950951453044994783554151040796621257029893426717618621947752596714306211544254982047228258803041545967099258189364501740509062236822503332275634372029757786135832648766173227909147030905244139795235316324603750544310506308230843816085532251644236038602702202567462604144506207644085211732857509986966489138651594801317178123978098790224753033096185531835355429587094129717819678938776670454415488408215175157176458579402513238628710798009065997651190330278512131288249396410855864144735440595331523738207783595195506284726961766736818013385552461534987641453127925725334057804149329993922893446659935721568659387879056477027182236036395311974329973842943709454911177410680596487137118465852411635863551043383843566617101478065865319544203094361503180275986886086295840376119676811171299040330501554147196570229959892914311357816914397812783415323865627615373392217802003108473236305403615216258366045040615820182356623685855967869908810400817910674680433925865976887710867471686969248386903428308637358911857084278943184126596858009045744688649842703102043751819521450835256675556472842909333176317194620341002704104194052203921534985228747891848536365655769209617024229048588054936179868132751215580966148272966588631369779348142010701624323664957150231956494373603448645774932970631222249224266031941869434415593190712854849661159343502531808897171158194375602648164756304528394411050434721178828863614355438395439843105383825455975939741297242992589041188218885553022140712059821027721784870569330658555535583011744423188735456633469189308249055193237240187842590797820816665237263880947052528443739465985640335434474380723075572028571178464264957509062738858494502916603196038432852140255914271702606765669125506821157670394529915629703465111529176522903786666287662205779790985655622511658658356560847514034853258623071622492906561288817180575540755145338912432469431150907418322495748837727225711176621458619269060987695740803704088906193955762551642047239771172717485349938588439224077948756145106792636032103807136973990647575577941350862484129186126887738031502946664060954987578411941023385895611172184531073893664567927691811182777781548779077919137524667876906196976453998967326408238973475507535913723849786108969911795617706557124340872434073768052718049903695339590447616620558394466882095418190189394189981388112300493400010014726136025285566937633318021388856641279032150515120984836532911933296707135640412119709466265473890788497499425057926923208678666711775246851513511621535164278049348032866817384760002863301486822929704035442780841967163481263997669311280912395229942076146754349743990072485394227964171100220145764171750250360850266570305838050314012843292533138638299127534564168718950283654673903581801561354057340250889760621697797195635725821734668035680842700619757988682696179292788983282782185859513970563742403385115849010823751760895983845580531475476269124024290161783398244109185496773943079360104098242927970757784689432867497986583072508745094969371375888045762534136948631432159891444266808862280317792962186819818692469244809678694659276199279216872486729898868935832564609201158237255663229791937583904924149587621421349839205150660833822878315957752205017799396444634146054680882559376601422446465034466266339449670327054954275452102742017586154213254127751266644896842789518229741070333157396048133548706300281255938136788168457307621110872740350679428672946614769115586801982309098314859299013128243169189405774801480927807657748756476404632836176306477559250700041789929447935658701726548303823438474095490043011298711550473850530004776785795836329431003377895186374080049689149341449588884064583928853111157979930115773954824261403735097717169814008751528108670366224983852321787907350048000877936040522446502324310107755774106484458431299455670749613132752141948202955458974690452622805863277149112825672241160902358817169965370605068613690450764281878887215476147612610825805557309109659748692607347558130713325861055760810426822594215290582401554718731146817693564314137622551379855522456300549633339717295123482004696665242305956610709835625782500880943076266939650949591322261713658393432764577852689651358222521350392769373099469854047166912962794125478937126227862034738474401537903025795387709192155279521848416492782797174339830683026655743161820280291942076369893390174551408111353910426470574147546628610727718112771306802849610286172070411596949069419989253670101358523843835848103655816456903377985666114622901999253157848670347387589221247059471815442618077574419731673352944425311814756227341546977786904654459110949411044948002209838566524440070027741798533791722926159450489358807715982634671006349189378308174451124895810574433075449300065622228918928702408921512853471932089022970369756221312494339980907059471099308578191105789493922914543428067851565736522106619348410105746572688589248763281961027264502660931123206812407011383979515240515662493778532824678383469256825945450936778901102699008067953884160498735484995405707685161720092049389471629264738642788448803051843257549984711549578406032876740221490093183704122242693215689139706116461715483672381415083269526593843085146533948906366793598563926008729536240037156337063838376817361170107454463390623328275865917036441474998080949978907742227937006446564052731825822724357928007240423974150091312525539489785169257928702650826299572057090303304753484670770031190081428411072038963358539075884580496327748971628023258830061243506503969701209791649816364306902567127571385754991199920354523767228494426261477867609450822334265726107482280264294523933388743471687722036335986249363035012106663130089202037258806645621249774515076929023882861489663740632356258325771552685924859911677822434187546757767623815994737645437795998089791980590191675744346910186326279450457785865589625913565436395193355125734857539613524029071995249043406257338298216912733737852657953392798923182642201426021713300002887125911760285979041094907594195544154675926414801217493211608594309894921031488085344585350606173112031223371151108424390287587087520019065992882111386712571457156383333058488758392911075783430619003612826336286323893599060118878857061834962957084362647443347472976495607971701581079824954316732425600250833054470429148108494995670371674295757721707884206962975524174958843109155022949442863922925786366773269771362948545273301967631225992055519117773339154270856042234162035907330607475748274711149146385334814406643475703553489209906168792717894020349631588226772467176631335358176741740647401326838777743347582780326986934155473239890471529648116184858685298997832065030269007348283319408748451692468133221794714450291549229102828946074518312197099451240102178837201168312919860033381868550985642722550817436740713211860337773790169763156289519621523700490503211095679566933626769564396581822344286187894917109275939469716556913207277850128868266614074869089194266772628610141093889798753113214091699009914391228302916546763488665058932125520450460814417354571281573118397008768133523644380476823501540012699255517975550660642735495644814311312247687083173611095422911209845007796855782325985742926344498327984335459965576875036657046676103648402456802983251199306614519604327144574239932306040838502054348409686830477280488898206002498207495418687367118409370479872466502231793453323623716108778863800866877232662739095578238894058416943576553863662087011429499055192376872618124211570324526747239118066882384124691162047433129210982276067278078539486851435385713879788234259346329281851337227307216516068805220323251790166000390872631181823765879393756216594028474402569128048583240779899566886394550550711554013376453153570488863695502091430811975568512544619908443954666850107097148269292135990085584777715989549428401483643639168543224573342430772117925419208715309472482573411587161060946695314748280089201192412722098510074171722240131054388943613450557288578387805677156356863175073236324236057805612048484301326903920074099051404380381087248016380232720917371769113799723602312509508575440491962165693815570901325586867603429392351660790116080083509278505399022128993281513542043638466412129860071049805027329420905680468422462330318187498111426042612357026823232327856531041743112536020527626774126874390727140594385134596826410448552053638061330678669827717422324386016873991981061043666069255342085957670312469713120739916590005535638782381869915100231355187684031157750402765312201300031449846563651223240518580186850211652880974635793248449874188745067767360417636575216640707320848873978844646346859835896410640933876024019113368651378455692953291846137960484562761038541557433663881660362398429811961599608073606867024165718551963198993931987413666901122025252738339763384310145561382949997606014295644582345230135935058495256434197916797439905547652123046436296741263157573543156792012694868758561911724819765481262247454225095123186323921803454246419033287351912799728132599705232193896283848249212585501103533808425165557585563151616865969859758840412850548504317880077157292524641599977945206162900455894630815444505443021422555655249797677766811908862972898690337649242505924255977523179499458920640430595054294355211441361489875284956605859220206510515356281880215556386028971647908729367507033821967067546068530571575934190307077601807523740757954010835323297566879979415744860151137094804773243960184237698652147405344427996243322807057605921332341718776326018388720852566420549126034001747200368449264787540843270886996839694809680184877578986092397514062834008671107989025683638270471540465777617514924005272638741800083387487150959390691355932246735474481412950489380239863347037294080997145396138428143823295928422028209675856850332002213273114591864727289122578990495338252552479548331633526964883354049571705013911530442742125925553363240607400999308782697327110773641434417420649547012950382048360180053144665433323166648472176543571171748968380767404564269952804862827463695810673562072390695307623247857098434680354611799348501016251127110654776661606294696500154887866752787504330729959565003015067486820881906458834913749821066377426488001943110195102565885265634565605925977054664219959065846984671262167785733693837764431863660174275004023102413913375528305316251181670520054409080685980030392223409282183507010714014135006272409109197713447744298831723085194009446372409209134056258309467283945956875673582461942848593495431613697012813489085348918068911929645194422737003035614732651544212883256846358344018332359330713005331203306295722642447976303087393061163843473505891207498337191074581907644693691947459910952840881931134547988994242983140384089836126251630933956771345668577330177502956835797508412171955270510811870292468132014764502346056596572826202486568504016367120008574344761774858072679954791028955379997193105041588597715256008721840341469089830486504518623009820238517534471973012021790359963056654500252073174327464016017383987716933862216109388594939711083611902026678748780621449114894808570441996769474405722327980026363714072534706689079570943534894007183650946633404967155710835943270041957302183407230299388420335272841885416617519195292591719414407614257742472305833986457157963906333004315310518754320653871014632041878513631904381863217932324299072890354648027071591694182452511483752512345369015886856027936623656361719966383149778083855738346833827325968918467586718652804082554066888998121145027734552197220857195626435394937730744100121648894967577800204783337747602159808135001278986871954915229132861544409146990998945023241138535619461576476366360430279484000179437517189927787615431301192686896327477050486630947014459866805324704886208752723722996344785216047890519445345180980383705132536671557950524254987810474910006656372753095360230437000336439827438575638391929206238974883594762537528344232443765994753512873972366099607425311041648990510820830333276711558045798930998469733078122661083469405448400808945377559796361593477255914928758644041424596244537969860550578283803142066135554946161802832996045826224769811078360614194054758032009533545169750403027560855949744416714844506094553338437574783705414571238139913681286781546975082400551576725362027700892831604131727331658777007486468521328490863889979988747094483521908220469974898052796994894855491723634588963435149505835639996966223419213526510076531697360270051381113187920979009109926113778785151062264954579249942963086700703912122685306732318539315407828021456518578417431306348868306075829990518811266264759289125706977717258110760477729424030123071670087347916853835183363811692069069845385780855615354134900169306771693105916436899113903270726855114781753086060772410419659934163242114598901292051884521978922055979661533428882022701005073434255565935914187519925554199969995490644190883326659517011734974815183549243747672544155698464667895205175587921497202521727592977641669390952393815339757562632106425035939520468528294102097315095176150934161951571175156276528743970488834425170430677316223607658328442751525684672031244310811852037872357609907059879365696652594316255212774177062723077286177931557019686691210631422792177951009263586919498376803676599718029062313549467377991438230885250566142977745058661576937099615071315804104702136741695825511165312773258777956593678891432264521330304917166936551863756065269977176866043960466149308001551359887139883836352862297285798667575154622905826060277566131813570750836581508177727307635112963043916632192497754365977582587181929466616542382749392975712894807956393627934448273558714366908477480955460135345146169229858081210991376885731687220730312310027874787939939308608107870080489915510200095492583198924288345245568744657289970068718533309136645292812539328750366834796433675469724566424419827795856211540491100533009718006785022627087720991027930283995176783412549759837489923690769098331800701158947142434451598723742924943452154450991468499005544203578863199007010161342970486970395091359790754417399730295603711727640389278700035552215838096978159279085718902787594187817106808871951234675202840922414833997742001294375559179615886656146590990443329298677938628130380186369175800566906184850358152990533865824794456736049309104254449404598548247007495392487425391820008501896257876633498432974777965031988579391164022145977459116476334716599572827690485588617065429163577741000485333373595900706103772553853570093769219943775473969987861332403543043400719973765505572767398726164411178775627781139347011354814380705297298908643936502958484723213842059896158720630984930495336525428785721796799287375934663926703804159334768129210337822910284298352453761883668397410541349136743480863071398162665649219309383217054031752306009661820466630768636473503666418736951029122677737361913662881989022592393271781812405294035129521223930225789368857577069448675498176027058254068159977833422163396334280896422147519172098181440118382423689051662980841550848635057328422488127153290832681012876818174187887418520950669832111227478300706011162139219523573854680466568260233175649999992050813427409335998873346329149726211860178084183329259162778001953284590508497230365644968657957817103206402760414107537519895783375857828482460593923041235063970903328777802023735597640863889019372159327657883508059973579017781550283419967425242783588625748081542257321320039839707025157102749856407715646167555900196111401535720588085309105746311347933273345019553832090019423330027630610228609562377974631007084807528654207680900988977797309950284712923828354340924484159076086708807108944910322130499785336799809378485778755133753093700913457929880446238336742939820590967096401917791082105729985428058299847353723047192755646174048442006129033054177314276959611027415338055845808911991985812496206124330155899112780851427895034141655761704107971376016230525016101873837620568994111982935794771614071234610303433270638812423376924150150294838407666250532467071066324932826186791739466489532823863647435034867772664882610082169859119175798965670770137729481992655429887679008011885128035708357912441257903823524469210108747577991013827444348441564226277651388004698834679260380067244065762750258004838751110962885065528922183933958503960542513667301979830872355718162183769197641906741909090740947287651817515178555919793041191147495244718386650490317114389016891459503703442324220994629024326011762982084165819706874192100418598755664142346661590022971558129991856076282657376294163118724862094576316112964319980652893728355358276384573280030859280054547161776640580145739946339942620501035310619853039029147316568459584157847569032969620984696611132687110317811162007974770088695806596547131382500288583418248520408102954607587699665161778550947398762872265490989223465540074614821924454641716504688997369376247492144937989429067393353239500522913933376188825254758856735326978046757179958155581245539863021957595690954191120781415037980942911339384532623535575558211244219492195533956994175458763144969730268840378285399879974646672274402055842193239054449682384994923359190421328096155641085131337154030548217065218162138907508071489959896785550649120920852929418161210741147861430269661444735278547986809527377882075436321013595349713538984825621149701199641390729819557213773723992029853376946627389862126222309217112589659778606175386472794560508008398079713561810450863777176818137616479657910447076571617370003511988140825725141807769435554025697589862463698249274390226304707144320920811645759660629570186274090560397479457548760369613996203185098620572936213923151983042900039486913357566379168029518388635469403907402582302182550509933594270234317583158270149465646701772184369578177737581120596580180949387487239614413738254259235151906186200191146346504298244209869954756833166329547220347921725247486311790225823515596590399211978555494209550276965704655730603601321911051296713316893511611090927033839913477305502982157047069024095893350577139169206041348165374613137485147294224409866780094448678610769666677169564056155325928842927585329258463033662577522044539368755434053304691316752558663266819726579569842349456429115939657344517346449386014021024208982996090904040105942887617635880436014403375973211598815917982788521425263960343053820717482023009140443742801335582569961170223415492754198173787145464378119606254748899477048931681781337941537163926252922064289298862937198691150903956917252224562037943151360946744183694315210070570967043534055858345635814240573717585852559655903746282165074554955972925874638046775308140099074977978949265117941532315917182002936645337840354083817121735717533706199136918954441349088029031424824358480229448635722109978869970375023667603641475408973648602156165557355958011871138569504149341109089956516119499321784318440222934810987366415810314164301757546560366440523128885104455132928077548825921974265946610714209208827351472458183467718699131449820583048424315855046430310257960289258969950180867309096717066197863418801959574618970639898821325769605121546375672339000703168785187630958971717673252412432413936994229859523894869836418160713262667669632133419416344467574817455169001949269505805310818014415410481200263709057193621817326949153183812346474358696958482122877775379118336867960630432316231868855926407591330972626482418755212687848248958278552413560060733413004780773168641837589830621435951008423129329958793772050940502340366124579488334425054117126306574656591398280881927774305978475724392800162690042679517026836966354340546478813231779718741766800895091660534874043781617858197649533532273253123847923348896950728469100479427128366060122793029630654345096067604571970653859018639097679129101682315345411515851574111466824824687600244499929862503229788442266166509319945876095939244731183904893456200959037207504783049294537894742907955397467087665034855748936709212723879155661549379209440754132986367985668360522539857752217071781827877212172979262825676035072674111598312165338294332503741968738938835289454518283307552423344758423870455475096515804667939207365892568913005666440829953024863371199631255323297019939753801127643369945725056823772656701797802321968291200229637196682329119244043446322195194842223925169340560123454549141404886547614850934526929497368939325014584711639991888049181248335330833194438482959510701141806512239576054079552570380151402454179978340218924024256708229835452808816692230266700123879079188850167598244394576308446625384173299443991588150841404248883731180715573101764677765761394339172006303196157509523498726225726746677252752740963956974267891014471902071489214306179307644883427599443942926902431188588453902323917108951591758365518037598045735892578538616900124307166675838729999011322696356818702055192190309345189571778036249143987485400141042005695331074363162611215032177853578034928599538987472071123677795012289885816337463897569421639294656191668393776604123700891567380226285307121986814057787985946557884159984695750075291254469616457732588325002586744584363398217266084146317150006020395628801752506441240837539194349238050106393047270530113978051047409471110095068927106565345876935108714520180036839933949239766234065389395564687834692847149345602645961612585809352505306373501489940772432747025590776263500292910277453464977104557528362567542714047878327829150718015458777774021350304716325797397604404348519729128423566263177081937401668875224732131289540669708642552491870434940138806596933818944594367502726028588436495016969477470012120542053850706738459421708613871270293815015598646686580053623821179293095783027981232534385358894896076322642032526695114649020554230330135937331750971164182986900486680040364461872370724952576704858399958233215945286584275868387190858278108497925573770599126025612935673772414137216210490327855364795441142141215409060449088421064142775718239076122292025107775070404501883668723283287062671007772671296536515838610240000088925183855446306435773741164139068255385025202737532975447319317465317367984634848960791774472553858045639850267245953033560766801244128333581514754477678204368432149701652576328860467213310529786900198648275138286691216446566437654145972360978167838191020814857284088119874695076997819407217250774081479456874292967190182599584324890155853626628813654706556122364712237994285221092025796222424620401426794004526351396196439860467737700609501626375492439835817331193417454228598685699617861766094985731082739832785684624664601328911158702810854546650072791935023188289427620351295424930992779266852320875438262766066169622888064357603192047017177607574476461195236724081085559688173363627952379201494020594274835066038223450338416943715080340367529409355849508352031786363518504493984153949131836906673470486962451461270206916311947705568229800893892691560458994856866714005752211347810059758882112877710778562104926048817082629038554628785578176689276239629050566860477624889740264494915904623848295375514604562391481654415590613120246088306213696034105038662926575680802033713348618867862514819726329616405819754436177939147704735389312651041369252913571714024726338303638121307033177440555218874855716175961085181205630115093801180714124638875895045197329019756116625390309594350393233211573704328446931793668663363049039064281868926198568681629600964772355556764059705408177699695272781184151804927727024988019948839513693327760865627216894350240452014031681014727013507239241230461471069846734944092019310663229926977514128608589347265854059864852298698532425365558077329107002734135476706070074524572367496892355695690273255489127632206070302259344299564901299494969241900229398175099299555844614612257390876453700667590494112004382215551303816951794132404801361012530214390454063136505521070744145555205194391263563665826902723176300512471861354943125094761380151167835502065201416368306458745679595195552423008767682643666104261206660406588176139204703121200237160379014923816442234485109947844630780993645455911999102672649944163467482046299531979572121110194990853906498053545093903827135554190441684849190559564732584222810143872089904850285721361391902282558939722732592804985651466023463767104534459973090631925983197554292177942800667946518206000320405065831961020618847034912237575116718020414127851131242001425761121250099464999408146598409844215426165377337274034761572997718388220396927216615850782139936815126323062838646815717225396621468200837050242758543432602955168980149606011897866697369429669537852587302956801162893727226770026658334404356345648364941946787066620489228655676858199861329777902186347998183695322163712694026780407482695142157015305139815914828538581481498707723885420632902743357910889517086828161495339000737739383414889700125559045816315444716888966127494653212708013893203541534797587103033673321760530584491273443333589223105756646378143578754142397093289826154468210220694873431012340478608656668453458043020969911360670182972162004128711058076492147539939148885664360505181170331397313318417429033148338568639270071712075148101804529620211780950971860580663829529739220381687603430073278510806260695135059642510448047192624065656215264274710978682063749747924411972992788510031408489065418181024443608221079163363081848592624378158395728849725298655013945571772882241796855156588090009273506450481234920138462321498739957222987440534562171136843162307672876784029349785826649513233312952403984529801172507821304430332259026979670974261304480255887087499152599090266268768630091317005161623339148076592088189115250989651893789125027026490746593266933934156376918742790556233065463490517578163806162021004377597740393169717729652177418606521661600917626734594387262796597281030933282401865281741018476743588844750851552854367267131476707639945716377784556372053473250769736139757139010326269573554645269152237855166553502956199800677023723611584580380500643945088345085322422225875364460211870643780585708200832986622324085505296044514020010036946250269871621160802897254995252331433406065118439419704838451365373783033612462395663925533903801436527310068602954189457755314836230048620273723149352079882973625861888889590680644392194245930540351289788782661988571684834461311943194495394791487175192630190600424850788754936299613220901620330177811345520805979968121464063930250912793227648456123525861884112145016409011739404543946697793365890028679562974362122225394507106393189556149609790221355599615814565282854783965615122995832770258345537020933258910918814385571164148496096233090885247048849455565774823912409651692577859528638362609303031816245779918842905627567629969210152415894590271606623551918082442347104860843152425585549742626929651735493835779980932415268363476152444267639523748057936793234410436017861211022818928917723338795513116433373374355120196352393155450190332744455472189712155998238612042943116813180436148805645218075414561007234509764042186757599042855666924869885882350881966796386575754192018746045890819420397167237678902757742586927749977778619146361505273142208808292276836996810073671681183159084546363173496262004761101078782247384294118506726833148399591411406023648787986487823356302169902865087806637805599616005310119196942620275360073944689471488709923298480343337072374281765848156750107154728832355239555636722210363548124049522818550965802010209762038342381697871073574338885478128282797267088165257480407686843070044546683276358027431777343744627109784484834680377901823337982022566553828084284674559142094376136741677545099379509034224855911464127935285908336040599178351933941511072267857210056650036006254814101256646010914776248772385201067083498227071746139199581092848389011860070917215570332411866320716266794559127705188813140335623387234563647786374379134722488893798872896911022936644968528294424163450179831362817996190043656228587805238211496379405530786350940011437201810419523814957343782891739613123107514459087246769410558968247532308507514292518748863260280883244592272503371289824123559466161517753684659819526842856146456627140934550038077806303389864055642327134083617111881529597777684888295713837682898062478185049258502172846403052903118597479611847500141267172287575274778825158728275527490770086323655004643606221685146647505241326747257941137413173543220423903208950713426450696107528208423019118452432573179747941432903713757573356627211974147248332774560075127521524967499754440892730690128029151026262488835658445478319968629821763576343351738599200667315074739123198992933704684529356631587364235188973118657301878179627496577519931069033225036571054063335086652405169633606600322322229893462781931139448394333591076055199713796450181884687276075293847214735683901856267868117502836135232455887447538047649300111384850387778765661413773270289182051612809010189784402666258418417113508140997674461081452807201834595374760268766835884801335041331326453988527558007733317449941256876785090430102678114121145337582753934946759226454974400696942020241316605284920791210899155822147408902869272956126428439530664089134403766434730477606912855810935795361006817011934371032611489448658308444849371977047607197066522053629500678971764078195713911682596319772576144939676656302521095557846665281549624731005645370903972817426606092322148746574297592033872296309287054841797637161213355988464526621173316074094739211137695582396889438064426579349282551625660438891383098620167434018769356158974109907746931432647625814450554357680321553198446510762794379231520285604949800896814287598513907631374291397138068831608070045491391780576872679733633540466233991668929038044077660947821786565504368170894233813869794716878591815085087852144659155609806319509353301740745932999212392131744230118200633195925885185469473126228508998810228850424699648206128251076501846974313435848075686903026811488308567993278469000260259696042885386207452932340245785331963432441544677548261522584059354661142230067561974884688668950914767336047161379297013862689136366360314303213574964123271590128297074253167196855822436249221561589847695909200698479928610948664721880634707359219287322788094123440231394295540109531352061240138087302815028675633815749305119600351920350309678205620972817259596788871831415575054446962339184546266882961114463063774244387113165963817929619794918556400371492619724334971872792561093559009152874356337728069287442105448149964453877425479296488453985466530590665930171914580785723387136195365394600865774588765546147221566315349653764489309985348132979108980579466291407817682709119584890236498942456099908058091141840172674349015763130868854103397420108881429461169382897070331185697413351758346483687403710674821132466925340130512212031191826706601805033087491436304456978567824946783278756647629458866720267099846405729164916943859428864346529984974278096564687074642930943933175168230688428087189133330480540220947481190008555714802771366642344202408259821048440084637672118189807391581179615738371144209105540817727338128779811986256352735673814394064738939906295991483880084185481906869548607059590978410129645882228488448019089672649724191063073488392801679872154129507899635251061126888083184061945359623500435588667131415664122836829983416981760806693018005205395789185172470346813842891636896781761133884735226628552987145061071532123734249177731268348028076905379148904376764707096053041982044678857497221003675450951252018792583941942623969635258433389793859966655294804862660690859373493351537402838078320341353947217467954655256560552024916237644727744496545689556064944775198842539342730557664958992547270414934671421427910264934045024363001094770420408193448420760558500502673568321420560525413726516369946150082552506912378379680982639740572446406903094504169512961887100488334246334401169168054860758161737757325074569426407339383096432023141151709053032307858572130325596023978509243645280878286097183611701498818902414459483787426155606731204610634902232405024516548976113563945311012906027210986442748730101244574598638967086658090570910806075777532097134025381960060568053632485845989724277857956962046339657815298915578879747994359715356009662640943084629774423298605105312360122292232896491943761222652510248926726164900420756757511142177788419548868795946405106635148694924285559867584277682130249512588748867470653494672955600472842194680504386379817800597204177075080658278048216371696549751069526812547852318772327797092366052686232112682401970101774681382135805113553163220534598421765130017599919965622141163346051157478719696855190603232495081554797559780960943255538598512339102860973995049542378211531201121866241244505462944746485287657805843755071771880398569473510096603443103491251713028678251682558304152131901974191963595129574902621014004346939438274398569247616849323735097420024397884556025053595005277047140719525448369526325068341747745199032550767647801531694611503169963635130855307811142370477741384955161960027363716012938084505913177647275499385061443947726969531507392121021268984018320802815561200489650645647867128201911346080322562720191676913108310153790150254111917244561627083881891885364438646191174117691295025322012261261734702250863812919701782643290802184813282824118201954533933900233613213526052599073753578878747724953124841447052076990461642638159293210531203249033044513825521980674344075533529568943011624446590035111999102480659492422568351008853889581140028455385871524575962516925615802502631899473747953736219303810931634808114294396170074669536600955715926508051670224923984261445712087108196545606496427136277328676377181821944080302254147453660599520444331670141157468889798566523439134627224183906544321436851228963581330777452745431559824457596430999438445427928610421789038899938106747014248213513731740182880945374755324403390988298040721055497161148763025659409403742551901718357046971191742905709756639075549120368302572007463901392757977604581793601442737186431213513920755695049169092001296003053850074621844200592875069583983558528886141758660533485955101593161859115452985213832400346510337551743480234493362504497255301832527001952491695420762742901290919253462396134947035826451353921776792889482375869131725191307300864781113550501314257719025686384697404214142056861768988864312322960307442294346049681222899921904277852078109522536831477233555084626067198106096218559481025126159150663389068396435531147216552907723716953054832166348685718401866062666339115685402930489296764911797950316977057149665936397620626166353454655925236444730161621785073191813833360096530225349747326436372158904679289397321330115155599898211325187959118279908437877467684749849996709859463700319764410370320919069994287334729899882509383459372023421994314174657206691319605534143759430325908236978397231157892656988271837276963643721003415612114348641126074954093460152288513621733339810983703472323305323830315742366464814811222320648961643419539233328717312017764674449494082897530206002247154321316060999670636574480686931398657936526493926297539333873470283035096692250045245241834027517684411223721305174794751149175486163707733590607054884502710557116462340020548794366349982733733974103206840200076413073313360343041242146189420361166026180039084440602659427125219796132744986769772268522883778967298836275749274932940152013861652353985061717679882089123286846354699330108611284771132201370972547228316822624555031343426059135308074595837536087721653521264814241414891506764590264290226765206183897555695554255973987088552893881323458031591870515397349804123019808006083068675640573189803535203928471134383435387413401174637065106924062787782499294813489504787650224687498424122303618220484922563167980776947526898031982499742695353531097164493779548194538407709228477163713037271286035330038830936453053267990754623171779781761502127549497609700321489717082618954245236540604646650441023635753598492127761265432255848479175104463105252577635417465198744877456663792420577836418769684449426403760493604835370480995842682725120417643549780885396348358219619012930351007347632777438324465780978232771045475427326309428273648576395475864119941178909810895512252703823593480790837651088595503387992228256327906067966998557867691778680078270583404943965884773743095650625415195706781566455158160781946540251866991468262065795764585243024517254317257169625869424419589943752223529742910110633491105333787199369882024441453889508795742076305645134159409604735026815937896273965693347814112517485407197208619614905825660704360155787857292733262275830838326744074482504310986434347434399674561137810381199025368383396545905493232738068100775369398595029541467375660668503857597693789899460203535604883268972330622097621412145590800384177740029128735257919385696913318736529887066501956752502961314475936794114167240094284824876873388009833855881814848870533054027784097600980367738373124475959118995964242996197465978521852304380790256816162531472185408658743218472513502839672713395918548052112245716086162234557766453064047007892583706938806705670621933321943452728617549961183583034064571265034585170967311032184666123673183286663036840529402538266898498269558249384604457545426333095485852169998317054999072085242091442934217696292386843806945296984418337946544460944008283893640629542108035538540874587400045528860049994025782047295072733547879119901586243482131433271795193914063018500160176816449060344943313703818450428594476483945147198951137353748858616382728529832349947326860365348210584953451024708456129551596447086718353501235275448526497622140984681686642676800979157814939590887002570042322521295105503233776762114524992115799607732844105129281023093470981566904413274799277568151078048888369056122980419575170806628841217848098625163905623014460119045927175823783891463815851751781924319428057124754108912377676274734430639441406287661613455897201627698614558968198776294852512944776331999549199257070932366737512306857229465947068018999542645786233283246277067404706021906740335838332140682483048031158361459418799638530940422993539724215361452602144948876682407726375702037262512819607032898643852433304613314245803609836357192201243617574867925969397202303786976926137557185339969320819520217432597373246329931695581222733409837497494785342471727625558017674951660275086275384480103003724086675705223458750668054242700912634393823313169586739160818044606018251158105215219768025569183139140954569175391450658651006239545298576131515704609626062753664954291789410939889803923626782432288071711179816199166298368308494101690009948556817574551943222442612515344082215516762210850670478548590994856224617610391334567468969815592534781932267072847328155374210848060275007801462108823230609661215862561971030643393123575992573024098873103492432133378000584830359554723019894989918491417490451122596299875859286091105659296003633233335634022393791870966890097202775870388311745280984874415580310982920894389025842977085369002177660135952753964723868889789172321591411505630788970591191208689820707831385737752050058954782228093327951376627271293480664082746344139939779238028523691794097588950567130746269121236261276309660927403792449826120419903494675999971885778316273093029483525268874535860789572657637923031118954544621549168234848759447289219914848355453784474019595717420386640135273623412330381103734684105487110546464239263041432476934000511340210276738728957102154084117780982549354316272780959086956919445615489154852374031887575326332582826380136756234713538565196136322163657547513315036930275734613876036956647746348227851520352404603224780186655877800951168575211199102741468489343111292595509203393138006556683040140242175015044419973012922694158948970781971745232108059456743079173123350342403673606797839578063278627914611988137113291867521989616779727487225590444896350461259898759544808637045766361890721671569586781075700963535822640221932245131325326935680433112064741094167689846624233440685697281758135729935447870408459145717089183578195673541858206132312228335116972414890364331626249064855607494490649475630574587669904340714052005249008471252197736174107053578548534508548440311819432676993811809500418407763043044891452913537491370850965899971778944675534503479358353535418646772344050266312164460680352160427068200306236857942020292460754016915665346097994591520185744344631321403782450117891595150533327467815263021239654516768029527907250860471824477262765923799620099730248734226814880367211245109941939787394772111019213459326300859845492209526446616250869853788055288667266272276764000944437385715518736006673001514018259349074606399929885976727981370976011417871540059560294000731197444903452002304133974834420460740701170417758007132606078764315651329028992071752672422571155809406484255242651808287938394990143984878060345493924044250298760764343261496737827155527126824887117106559059748102133478347883425463885644410140466422748004342561460962871467713546147275648002212845839095509896395517399698953138442783178174398570009855866842143509666968524901766137774430548751612133363618777976550679711368319309901704665384567039535747392746041011737491383740252883239937037499512991664262822980333310964388686573461089106960130204759757386128510684830203439228631238907675615480687503810178085787267435293707895810777694863601074911506838032274556072628404001818562643516145959186424875261881528180557113497226345429679372774578321170993603596334877388640901718025824745512117944884475085051990110178117910940496328634479514174879242115578692133884289795898477615677030166596857563348837719241621295869176958873049990869393700529055297725904831752046870459963558719125461760735895785469365684256694228597979462274423264761796829481529741087824177422020846615657189933707948097775978796130288407205968242386973187438062603502439403090095453039268961076061432578168092825874507119839890158237009744397402349355707695549228011569545345852126046217262718396109720126344056818025508805463856815252552352833446567865972081532538874247792585599006121364515400211759762280868669785991976987389668758802887767094738189344977485178510110857403429167326120936368878809404906523901057946436247879645123890623858816399747069084299876570138415295606329617111792556724931148210593845717369130927520107485568278909499826689751897617931965224187561934059519052954905785641109043973700894384714990381636826004342077302812224313230756494601221131110565575153463269058808540519992156132317833586756974535069909065548447520022934117713430757333175970723187810875135203864401161510284018003537350044188790638030456163659458628723225564779961533436817372212314251149019874371424976451677490894273404642251307868345606671118881419030950104113227760730990909128766747878534093171474962790865286114710607849713320301642150804405659099749851293516474680406866274285376843554596767024745944736596482909500933212222078691363454688144893590106438374108549166564545373032908947070422652334625948848601275622158172192602788389342660073222801703193702764375586504105414217157837925462399188964749357877467141517157054342453629205340929333005099803484676613850888885869849884919950769952882003477501277275915556622576342395967903707034814441267550387405974543440974132903692766056988254183103769410442522102653359343294602202206858474257777625862223522024394615217073328899281085261243423779868735967926789684734115398428179365029401451716842684298236725365528867293733139421644004499519594607478619763084235052504956840703908427684526083620025223643932968290198971344074879239116562025018257611142881428570938827956417689188133747393834350552141297375185456829789339261588227813777204671270911853122962897321980144430018563151060937715122717560023227586471227076120062540023369813176909859153164602720559941260364301694654424214149105517325998675939377231137728094138727505991732969561045815537162685333651777608002750372736128085841236145883443100544793102129701260802099712239882980099044789047405235557484151606755558533016266047236298313103155806732596036336523987156939382237756233199934679836735336387664314486921377945298670547931113350898132215036768311248003672344197546360757107649417258500436082133323676019312606373088761784184123081696166342216042211916420050259824600948336654800231377689128411449533545690463075383349902690583160538552086189710222053300362314306631106756204858969533596291947071338728579321194926327706945636727923683021871894017853867773059755440034395369231304833090155625879928380744019476162916189333941104864683211614027081464785518259913294575133726792716071769441061527540451704802292419409020967445264055272691217910431507119549765070005123674237882345478437717279118152196399794457850547230746793486506483754998769705944111261614438554479387507623603251046401619167604306725672980314624012503245296564251690673468791287080965601781501549000067408409306241208944583660585367995264689848660212786875797985082767078805912498843871192243373400786291183119976068603103211128848336462432973338593143096327521916029214950404442629204902480659858865106557252090557509170548179965245805351228531869220143032958612103330537434205724963675341157160425075734865479603112876505797887957770145444212061079565761759634438617232177246775607983512428541915104874468787048763612279893810173292689433745480322517677940726572497376895269680831257978628182215259442928645454800187348090683412476516151028651122435010157257142057616064327766501766169411132302573950069205448639595375107016286300059290846526572631261926994693959981959763719811579351855337891774275116437037638495161632697449313587808282218340328748778859461595094557828349171427594022402505014705012925389347538480368803356788770536419383429595727608435089170600407682083888042388357348319235476352892645264391839173186252219621546324033789122394936425128925836453414206943615804314937973146896870854527776355953611643162528234644380562292363778712078011532644999137110283013429943502518717744862977428080308004109732242132970992844539552485520684406649043646413707549501607942457799547776950791562350821028718389145452709058085220618548643919994723255181391625704335482747161931274714699864886247565432233383039010366193793945957527067038070213627546422352201423304685979521088871850575081600217546927432716586073297798353871243268393320972529968081613139925925692114757419457855727962658416055168832372695043222463346708350428769669003750979134312250016976641637550216440502997798434892106026923868453230574474401271793838495977834677980669464050994913438485589571110914694858055218908328906025865155502580213732665913120539820939633520260601100759330824652727807653347748255812579409622486202839848623391962762330156496505666879141182522788813284733549803854744576302510886556118197172956438551057475526630233070352351345123761157661523369574626012066295909621664166336368777629761911334653543680147496371485653292003269570169248753831732830003820377104424086684478103345652946415111514618264980307689667828470370169140869971183503588004422631215841158574480084455556041640305188380248881666821104270047304933287865063202626446892696944585974157481082539266895683850630748818663277679931099710005114000726029928753456639568942214828527918145271440012617726267755635768070780419399163960189844094501762058140377665233931128137904429148373998391231555054447123426591536647793510108968311275173113667218811786586908729991251428327975284229378504608401196913291052896243727746409078646954538896393683562223007977182549671709941661819279788393776241701457157234203957630890833741736163765794423897815393506838156157306812255413293410516607195683912839645278407184945074476676555541810689543786819564486206365063812700529713007801589455284003984721608480186481001769861304081757786254668541320984959762766905880565090358802117791781228782550791866550561103995349685312550640948379180452449344478836833167216019941240254767089080324338701538947665119849855863801005716974758575895881399189494806095275066536350289935386425598863024183445701711865677106884066667377305065399859045148004483859394218170145018948428756173468001434163002421385826410976406727767901512049286295892949875300777097398345012975689750416214883097340078430380715570254058979426755345719964749030969165024077309871604583940728739110221990796799020494287066320068774509914273537056560361957807645751946774209704467992475105193513261707036658005391805101897633983072217862508516117327262656208430236625940062458600077576118933223778261768654876507162535332559076189572981295784385722926114749955768718942140990149774732287128546704903369759233306842145209389386055957235558275177638408548200894669808834413447917496879668322170277978060792278275737199928147636988742308500227714115940995788247674382839080332651137952802296373150543155443226787533336253233203649047237651646565482327715393311491337834465168395573635013178267166753729783329221277059376610870977665943519579664084100983162882561662319464219604585325434884833851581474468857638708578044606300406111897268750092552413144832502653548435184046025496444325195661376463803622457587061325408555084652105128597633495614564954765871349685397793939473120414164907026967518859984941550631048738007378211835150079907419770032648121786339028936873837964465716242864440714847904842236481828235380397590633955578557421544495978436622944851856087623393010742461080173084231586962312004036268180286489283399980561843432282011846170362549946811190375766211042265663220347534896126911787954346552849649004244812573642314131203052236513290281632251940027596644891479642042957740456871456949466633376090324085738254964294851377024030923533061907798813737693940220767206085679738038937150846336133613009637328264460115915892295921125639362339238656087522440098627344763455729917109555884433259418462601726234616816565618256092955950791285470579040716185958725325421817302189441277931364259295581767132047130897957156544404370832565933776646062647461690413498685705867887028974766064246482727817158066465072412682418985429108325731365438108672968143312108488702234378933303153025669659292305352209853476465342504187337253330127465475990244630908009772739020916204758132039551468200645023082683646503707974645509421289831263499901716581152073763389060515199603170638684332451230653808407785884734790986499149255318422173460768257641070398059560567985106646419544384636274216351072254520689451855564222462300609022920367747497507829200679247694076835022113850202662165230418999922345124199371274904989289073205772537955769308669171835212910283024763543284725273701887840383781685871508096182097394846569467974435299025417457706206112745996943593033805241289036791149595994756539081361192591427494159997256471278785796413849387137290874738581704253654814995953508507655188531753099129507060128920780783109158773527473909491857134786150330022287967807681495546515853375942307592626195617276781417742509451820628600627338672264468304406598762436814019364053774814429020412743436761825051137246575296912958331395834411366353187018221503023688893824250317119325864952711143563883028752146621042766478809868564749207563069365998090273558354821708087979374888865025281479592785287050301761139548502393827635438305996602292286539961735780551266346429991891352950953420510928290584866917450017951248890241735619725726539747011312258567540124057687097346132560370985290391286127086003567830656197171654244215721188215495590712947770894281461768364455404080822060007454028518933556228746206772281749858878652914685736491572841819931690763115482639751526101994039922895242123448957205048650360191171995022345039269743850492659612417600970375638912545296981030315278248836308084187928340993498829127862298406896027020857693093844054217833539494658926668026645699520944480299653796380621346369580062278486060428860386594828757922226866987727169552138334446579465948192140230005311259109607990091257433394018967849238415595434996318074646581840935505231089855539609837903234743432092598459517271021567314901385331549681435938405254726172842822527397927731403765989668160473263920176598561178507463659262382869396251043701554213856422772095098902175374078586790549423939197665473597281017086638247226138613582571044150833664607693364983938555281221457358423425722066153053651094903876377146424762494246933172402353383465322022498378904597843096955959662453882638497480084767181963819722755831173785819273409336994162935457220803496888987807561465870948057158684869506832846409783549210380783307402422062221786564932741416072867186329374701171223392472404511433302713908355729180161372837704089027672703061946354843051562290962088246558974817359210631244766034321650942560477433863322974772762438692675464678470703141151416435935278728200406798850387172753620363480559628757810054818750407651020149225607641473563491251956445384794072630191973100541601410564153849535598639228051612074745774977285628835023187595783936419369293259758328590245421143085401029932393059916242821891825280056185963349650938316597110447228659579415931464180292170204055547695320622686783960445286491575956160803850127798902947679431379997848389751125901891247985514547030610753419940884819463008976248181206647399798145412082973739058835850130988855125051980057116038920941146586981164678193840985950946266047412912906218648654096141249442073062980953639391304065413258952064855417590493870978223402717293432100279470066023348526135034905251189969625149311988256804055173047958583382306607173216921456670382688861080842968700023537348470223152827573141730897391940664432046526644911485564487036889349602607626747177519245598428144385741944554528657347336397675074227331095281628585105747904223447591479450918302085477066302571867713313337530585780568149155609164069532137686808664275219451305618587495554001915111579504715021941203455932435716145491798133116545860793300908584620592097500855908180643066428788921271736442359899973924160931600113322918593117164580886153411512826203842163486500909935292218870497817728366273228771775431975389270508369309680987384334940087916377022048539331425809518640924134393285618246481529896606292386334767048206238137404172163793048765527333637989928694148655093969828733330539272525628010981753401052154636914962792915031846513064538158745421365578362948774701178013872390281816557620481383682121563085618028643393782571848201314266104303417028671630249164519848793071935603890555744343020162047566126530115640095150245713111947995647546773378737549394618982387312999794122761719130588020995263767412503792886690944965987651454205015152341806092352525948867413514753849957223243131906016289116925821399890988046444226617313845885098364451812441572366812998268210649303861353248992429430767649829460306767614161075848964187530921809406842045651267105778418391650715739404545298025138924229415574363962514910857714200697778564013985186076653660210944269247434114442653213383330221572732789433617071601786365661936582414704911416307515500690052777679933024248948248936742918308249599127288030032378034927429311447786269903802368121314596553811639638067785563972710534437320366693604105067295965713826068399153589079422360095702847158006670083230060096766791991908581525798169854632709530100875222835457941265701833814948634151115855419256111683019488187748817117094214414331268005099482960640244615530380768210943464378425621171789430388556366457268690137075990312325380175291614079866676163005407531748628257500600677571574256370721309447066125325795199573854331352461813908537587225436297174290710159512021647016105881737877856490011992435271626573589586679405679575695707863125297664033766171482031372173895862480250409375024197957690974917168141597038670213912924814705248655038075131313254122752045100683096048448154537807466679233686625595918270616665496782028925462254806028344493900028173908178274346964188268663279569585323826236919072296258944349444580078285426283133755035270076293648489280348206664975329965498810050551211241030216627905010096389688626329219421310844684015817043114339667497936469551736504991599909013297954229920169438557443069368335979415471682172812200508520459937665006469952980505448889683832264938756867829944320257432342097550598357413725181366387972846658606976369966833771686348440824605727605202121834274755383382123332296452451215877526000211729871261450926567029064506935588694871108737622679166359164302125521593673941777978519275535524303467963444139433866934912210460320984019128683702653708933404647751789185358071486360226247252791081298836441139377119024573131805653272596405287650148255808616217425701791486824185574284933852940147089415778302868103780030254713829338702205336214093731937769769041647399842322085693619432907441188543259782597409637490859071462159760569945688551180714489889792455768062455981746534834579113451943552523325255450044325658185280201953678251704289171100645693363394955750650026469487069826027424757081237975165447244403900596689348171381495383468045765055789920202412655712541289998879919107423849872435014433811959718901169710233545881978409326595429976472847523739432064461632569931476785806611712350260496996787725982001086128483488011333352750899141114788356062684619281068313555004535601346179225131184721789587300859748980238952581223469849017169720238704130279311130568825150306336220469371954359430019863042931872625904001789020198105427102234058026802579289047375536808083866642480112749329031934353411655412174594459608571375831049589552543492366305061546720780001023710183113179816850908389707357977690970990811528133787825496997732828788854153205239462813473623071678173204138092809459450827552645042734043498560722790961387819059175021115365744809334620109004365397345885023519543740118480025057231643511038324152669746706146067077455553205890533134170103469224452345357733104768595909192761137353481428630956077316830688507311009258457176538877879269813822522894753310153694549074039643548250456163753007968698884658150930965173677370525305641588210501141964339071183841184039054208683667724793872252070792715089839514718659322626438241802369273630508556754667535610129384367692399106031760110538369329316593544556758338442849921850792073447952962826425124193324118555204801080883520574789212609900938481922242488541109590862331105449170687148787330099502656221831079632203145777198742645470592424903793872785865658860623779213742161212213585567642147359319016386245832515682168274719187139872529268709013650183273870932666222961127743039430985553103729860495167284435954962213677866330796035752330677070389762801975421943705494483891612507000195042112866338226339254690211524116183335485137583123090052245401373513633687692776432975824261964573190957639685214995735698894132133866202276361284347041217819608203033804464144029719092733594603295085243405037649352500918732451313541607215759564646492187509213868504133523208423722975095017716162895223904994756136991756767036988166030748977107102110177733949501150759162900778739199059181777904388077040434639785708457372439003835838597487317066194652557288623212412156125951607676552485655416465762891768949297007205033091431700177142311197118764007274350119241746621534419416857420794328579469306758388633171160129893457240977806767642159881506305755786200849886073904629258218298987013490772718440147421165093445141886803599967207688017782078978133479039686231358530936856341538555353316224977079072715766771997681690853802138654023526695917547916885061774362779067538909752231840436519425228273107606325495148507676328633453515013889615933062912714452516207404802034881502401823074583445768232544834940670843727043261893655880910173394360486960779745009979273333726923471527594036779299542700419905350124765682906872639761985265353798434399100512200423011377296881203599096229574705009798053178117287958068859950978348472803593717309128985660264555636873354177327963663021155116909577192822698676839330169561008666292031949510007745827362854053747760734711132788814799639715703754956991886247000096699126927281630479276210153585358531888927720728986021516995496074484193066310709328471226085779953935085422098111507898416421128780464180751265013281567278228992605149208827737316556882208113299569902122456022693185540354203830152550190214362473160115713492783864854673952235316179654218588890479136526374887159525715779288643343229217948727704834889498276223291160225706036426498905267227939624474149748672361279663395044863857377942514056690669612030578443103912654811209707907135377735211113158325789126468082998266676533409945989835562411935062172804869434472049696599086956963217762436843021467652946957982808833807187012221998968267419900251181042426694738605326652320941543605186816003710610125868371458533512363032566331051920792245013142087063800488998483121314712952249963329954357527602241438483951546004227171129370707391071089688695765859445244035448826839944317411038532425443136367608328256650319310958572803064297923402305444339175089011973976754628231672876179257170502309467082100055009175583878310357035190462911112309710815493296959234863295106286560662144891665029091612749022750959487700763664918307625253252668940134149203468600121283250973010967224609721535519453112037099406720464825465915825024268705357293154826064633879507010198046696911423772627385047541731234388629365768055880079032552462850698472346004856177040130688356754963747392462343480779096959503063208749079801283188670121828984196900676035429906178310497326528906045731544427475225299008359741709328024110409202049091618033646687286155727670738912817031012614791835378830622504514744811482924360135141653161016642604036369972431757778206295130281504373748932759326064385948314877931365924822668585625598481638706529417617869974935311609525033115672126895470083221944795707409149889057220118691641158209514702294100263161053056225280176393696006487337199920910559666832889149898854534585373054071222575679382085422353365682194439953780569114168700299447800317934263357674091408843324075773125845817416911008282655730195898274426048440715951504303626465309323735369760887499365708370308613160540494075714706584210066048009866584396439816560918574362768392225770959607015517547491832890573259130679958472785161333771663406651062828318558381870405142348052439471907508102580935539936235053021325870585617811114726705506775756337690818215137993227225083304705620635289283444707237859015455554812212141818745698961355800192744500012908069033090122873241752914586819981205110923927402554692669343934147449829260662702407928134856446728715467760219385032849269192402773703250250844883023459973925535661282341128686907881123177209057395525114771364530051314362880045732398255503276117972427996178791913210909053323800427776538273516599398381877748573368486531486386811837308157814578744621271998861870645866139994412698876562138047706543985158902947703446554631323244088788580543408697434687800834784116471206796909805431725691665080614722404257389949936838030438657326594267077598921853290949036433248983447985059052265087591234211963735092195922143678106624288005314789145328638983155964668248048866460620483097036657730058643320410172018209951383668042591110130216893007233931960288368310830780233381273118957560284042029560529802847546087105366247187236053760835272392066941906112748824588565517100316653693806927333680941294602956475029605390645058125355046190973736621691253852754704854575491039592885207211685063948252393535467195060517909160453826747244308435944610186724935911192181697249238775575662017202243300131736031305743978954616676733387612039568556470985564640332352359139662607127062076775440327137949705940602711899774127925896441334344398081430058247527135386504716951522173142822590374035108114196128485084053265460114986865554179823256376126857469568285414392257119074882167643159290433827520489138004462162614096564383365213665771912559309204357782138971056470763066959738470606726335356521057635861736894226494765105308037392973067325718298113673835343499580387210339070590668336546444263404564536172324905506555867293044657833347603191158361014405211996149909534707443638541521361027055927312834919951934686148668675005144468427741069306306114732662925261406999715743527952951697405181251659450805149681649390725473055432463018032005472375033527804531505308054229334642946931361632661831073779266205138119059227523176645187818335765715918629040391793418846223802881721143004817133302517225720605615927192576297304126292050324127274111222359528222290412455414500012537647710372132561618542387005164876921807144881241102262088669207672516064010023067004080084765840452903398882148868384892247886982059146857758641275226145335842151274553803579929568871834388923751802134986149059537147945212578967822764733254197394713049860243938074702788048581061831866028603132956022797600116960280180900414518225606500636345154820307912503047336459294705823553801208652187311660892706627090726832380799133891149590229643551149581290269989363042417215081047923784527243123013935997223957148576996476706953063354056257304571694590981112300059650647988897757977739826138826653953084748515960688087385263040927244804621444584941747307672022362265734217146664910871675062753300128154887345353032059225088637354476557544510541108045200442751086345915376007761590106912490830051213577329756127316285829365637080984781284566508830744287330893794563250499825991944172653442286715670713245582009254498010177032143046391539735996744721239169843918198511556627402578214819495933935796647423820726266554070116227217029119719928217118374969603292139095601346951127500521888126330364645774848155483786161197548010699775634853208308465473971027659773222638795097697926076614645272021711863864202859285864808430910563926185316193820548531962852330094926007604544684998940627957751359083809418124320120316744015504472609529628366031464381942048158668783684517845985621538728920797640549084286087463554385666846282473806491661208183091446882392193002228879803182960053302196020631172733027347245834184140860872376580749502548340032401966423431888395110830557675822050680072342223966949250486372948349720184280455351944964921280432786383434883766869601878612125533577216224466042373151423000469699238070946164915001125871272066920140300550229657585859175223362079829213101038504332028577952135885646622254685636501855643598101932899200998411130233006449161312705129590763267469762740903501705973596458598367252251015830529375475756760546488430993603570020836766778092875405812428920109665947803050385629204356658880187641012352936062202016709580732464716252561403610092839346881383196326725443448448354961551944013296362801555679053739627151373649541751894920786287348226056394869714919748133281179647783126751859465003444352472066816564693941010293881098839541871288196389094936349947868598577847129172136646173167905481102485624418973142827228790374091732803491919893903306817928267562543465968385934092355222031464009162508291367797998386388288337483172352872912977998198060612806023936708004597630977807879711809323964866880934591112369290193054197913114543026919602014859295910910186427631727315036131460855903254499266179587193152602868414966228209508456035319727406256255854456737762219088065638141068069796180778920413174885408306517036136548789653675890246481014667443719375538357484842674202487079289585493845372211881850339678739876337764320476231480208907314666998431512939951137491922577172375341832149623540387927996416096375563488564358470147228371127963700576958055944630787504615727977696899137364365546023342862670494681819802152278623790090459904510103446229749339694994740111684460152993926291831273555924105467762366097849151444617151929607345434187457324816461989148559012423199520427082506415457801395200179759027514436613866033816467069888768672615359191624942254889551127119363230049188359907046326074952187733699355089206487596361330865183366535652802342763729648131882583850102799801384315595260233941328756445875834171345549433572544970246385849803551324203924793281478943428775492516813521438855662205517836611260886592066213600732360952105360355281409927552725786236988561318323301419357914948867428064564048649535782079103495773776067132481030085309040460222818176815462236877678529477748339047173587234583269060956121575158218255137706020748645280251365499641908849499881069727442719095990750223985218763822242637404792816410675247315604429887908877692035778422183819830535816450483959277652340588934342496625335727118774290672473874551862317182286060186961246557807771109191192922889307240080094186413319597182830687230254058922336658984747811764943483436048172298432899127184900772642089605677956891132099814500078291539264865515025859367528584357639399847493252110395506717011273824790077148477815296607028740546626977211561155657974821493006665995547934993359624145961860685654624515085670234290141936319946391147369189712637946229904312073544887871552904203178156533231762225096304644427874731442360579124282396663545938375578247102329392650526396653554424022810523666979434693311707400622491671660515544244950407777017585027133289772185796691306674096975583206840778439709998787248989838817667224346497821210513567878823998269644752886917279457848912126829116409224440201060677002349578962699831062281159204687000683366384585260457371805501317869079498246074421211885443929134913619665106861228627899248958172985814539462972000491614821958913587936547580460046446855762583494452790059571897791239556874892612183193237266016161659461094081062333629919922809221885993822792110800221593557907866700534316487059876497054819137059851327796538688682805158266850414179049556803809083682787690393507950033654603626726767896235780292012906692300748558409306814980615215349898536838793556808538822462515803606440657120143697099964134890650341325525276561190928947021800473264807938912487049568052538010253096395533746625993429054195173721198817643138669269530241834650819690010552622438280594157923464236805681025529040897755558516511240828728462906601340583759551338506472280203480305808919713514155485775519170418642081521011613621488755877944003484231463592550969558768949214710340303953951126965227026991244428288976087216496465264523253100697700490146141977457454016654264405673733218574205865205425682904948913541557194684188045937953013306448437010226334980001088647475965250648344243257685500954722361285802000334488003405270595175569002190355707873725624121725543446589260519874311303037259262648579970251976827934359760221230859061274980220931580162107164156945352587830574887430380130228674403137707526290429357137384576366781977269308768808740048468119469469847176546034292900684528623481146223705197433824309661632733866161550014841511416986899169981356741412930975686929972765454638526706133844021160540299278701429992448239308081653144887972734019391795067531152064032944293951018844275311893224065891784169621026305653801502398942187554684604711093142101122665431370008910420474490755820230828187082410307441133693983969247665902064713889661178308441254471601842752898820526662056331420737469217646127366640271275069712185118208140148350837053410235079276962015111203087503491233451143658928930651778482592221587762113122728534882320593608803483492371134729750658520944468289079751859447021002996671660504184411587666016033442939688097789571605382243777817308077089881805753937062411907217983226727730319242608228248147819458612693580875107339594053826986246560812403081085821394726263817738284535316047373727864828262239399386058119013723260163323495141849857803227217144128654467483010904919735773817919757745476155194419191766265278148663330172784299964861925238326190818994610926855104640321426700639398163224670012155602677264635021613056676868657854570437631393732216214839962799583318649806789887679148589665811263089440032490064183527408446819183834220062577531025698171639334308871226417925990167969874153485236284452158389207763713611134501845263153889966093584146439740697912346996721797221398636567107912124352259273332182663293224964799895547609352884931663330657773809012466661785172487612230410633100952122370888972213241976406509338978134300730204563834078994590825152189340496195100510635805417527651825431286154042400980749589754636849479924318102536696375775096696040335481970620898874596930267082327371103283675525029032275588022246969533596098724433689365243894394878357327269492172140121357931443124386926380411387719182483314186002651992667434196695132476019509248274133777533164431894897349424700944386915731144359381040812208944118512317532608110952008193197729854861225517828758908534426353668474075525247161869204763984803144412389920332563665970101745409596638066204576705100380069162269686002153404065390545972946936504863008659534322466093047180319475209888566331038248931526070251709688375292769884887902620828358005070639710944807653394881297918847429358267984931776929281100033536084147620856110176119463900693434600449589414130309729760402399752037314242198132582042025339580244276985231184422278970494616103764340110468802515442406113260701417206425902431681363014126371252517083766265027564752130449949819203814950222346476191549177153408288558378963419918953944487113558048139150716716162618769239675725206561055988851796745091454450074442052017370899641124146978001932677010060568898554553937413839286548069575670189610530033440526588174514106385661363006920552496816589918494027237329977325373122676985739699914012381443097000576406643686858842498300411779946979796318525457794969058605181970123427385062411967303610728923406790705215904505312332905964757313737308077331778918872894790960178384040974768006857525032725544016417692207030818433362246272910051234268298883725851983886836432389039824442555472023469212386725698216449008858077543223062593583837607567003620763938787553038724600164292232235454159672810852115549524341958200698862634475860260406993879130427572895110271685529926480171600185224423505651348445355677732533496519836291016719949915542438186469734388282890483672581721208768083155279480345790211722365501837696343220051915599368484663800002120692751832412529866750838788744165189020615556232456935119473249239366115379890739119185568926159399003687283691877621288402957268995037808325683137196854490554501104272626240754984228606246702106224685745177388799470346058778374779275342406939781278884193747058277045366908778054237821396579655385633810675026265843604054928699579458992252373751657086437957325129513807208488599965784604255235102086611034983406646239138460825391480255446689241953614505535650604362778557601725433657773166741193756560984553012325213220821334318584409628142226418279587695511362892494910350608939849480859693200775466715536091382052952956706320368930214098640151014380150446825483328358606811529126907551317296159692689448322113212276361380237384185103184309349356215011259070670811951038678538964072769847274092633255176508555514101181281940236586402763447274328820915324440245582037112436525054267682435080953493515830645980365025657429405904477873101080297903735282098095554165375825845432508290589588801330122660821846516701383725440895556755149586406117230111184009233741146468560207204102067453739169343970298414516306439016104724509025199519633603853599266301732017289299324669761886512368671235555217630530340566755332295772701328152411534910526880416001094107200393858857773687769376522949365232629842096390684688283761066522023665360160446483531127744120511620200295311642112958285493038228717095290092266434570726230692029370761843364224188600498283447745181560283469037260089136692490534403070342824315676405722443205210564656769870047909048037973487414418070777400053651867077985477165932032799067113210199560990153599916978637893569483424171355317855339613446017638583367261090387304258374842762330695509093547960972152798664438396667152328036177498310096717291003475176201748783514247128276263772286585813518148604453848732276242525299788636237361407881531378482873041772094027843461161971547617597424639912186716007001728022313947260730239747981462703271268645627837968501728034457787941440993196480144583380844549717890780052959473004610339984778163124776981637209558958047486291744159722567903364512953177719710645833634991561806182597707313453930063421220347500754830481510953445226493730149394589879203586885711726149485246145563068044911277812561252285855287921890809632290224727885828932697952912811145753741568555176916601766891943806340355756698653142244979273345162820375056832835151586628896539039172397956864912008638535976392114926571486855516997926232776135647277924875723664479941358615797130059982669360241811813849527669483965937967324718730493716734814730293499302733797309367892016637340294395409019906748785184067651841808004883727004158164629667065079613503169177342342218185931455185614853870174159166605307948201898376844727109115135118173231512487054657150957615526520853769599952896496512130362086893286262178579593482179772459585902421392145760385811715115646489326832445062596042753466087998307565921873902748676563103496556858023275406002365356134883878437081910778939990979535440493685020636367959377845500081653312617516596182486656849200322183672073960296497089709055683201771458108027752258974691184256688493799447516443769836000678554371842796258087403962730037352109080447414829859090837597981817765108534981437196845349409892021297279631289403131462992023285175314853343818525278343159513741880661459113397411842580873161792982381902527895275147503461053819561438208215253388082588575047061804550930147894303911081831699005858234993090663028314747771023199395257056964299812161037355272972426981155840923895690944860758910413770792709472680743673841016223915117369687369969637503564157748312125197471244226438632072699658634781894037932142281943942586353750358583034405029890797722629123921318637508408207745643672153410997298379475882165423851086867831941735375107434530415529124087788459602688416644420251817638735315450912564302807675999213006253092974068389192308435199701080413877011127559478294672503159985862626215561191192061800510081754019870395676457125569192192299923060469362450190706310812440578812806066383742606079606109461564794735239777985929215426221220482460927120556693151785181204905584378950770534262204113307376621469479788253141653233322510791352431112466037017814859672102554708974025896055859483869272043546087182998236083053475270789789133093441599260717792611197502036632697524606515669487603529938079981836200929159561405216176052433290183479749758254215695887509265986175262135368359398910252458904134427936476972760858507162128147712472770379470867503451529584871425679725423174745141714474233819129455683867934002176946588883516983305149571410703807377280554793135874968004860873804850620839393865145129195424491947167658683461200233168757278411921722795252863091408639123777723826258231894570407077643405748211803183814632982883465468418003074000946437230902736447436173578469427435786649396392399012029416835188655946095674095560138643278513320995627052004175536849996011299129753437765501446483647605152055333149097398518277867490710719524921850321570088267558487214430002331918161296216530150582958816457180275412011102373348301076315023371035016844106615752644799260388284337077760070436832181650147065181520679125573721056470003408424436891216768025937103390655382565258643366413618538247195070478753765902127964928098303559775781860578616532465133076816783855906303543315743340812855391153756449656934435215066274117274046977856053353580745588326666302712588618082731067675915327483012245791149758331803416705081229037097411341354867601252828788408998292958958689914594658333921871656132996314315505602134645583722263368797166062891470331719511140484241739923076861806346690676654338799380966096159189419458365999771967733543527000324459418536162738161952797501678479200966809766751331080206182397502820475176387230781709586521375674519583843412581844194959619075628640658705573205688143704184166851040954060220521055248071260653586196186096178505427389509274281124439569103060793611198127037250010605799059371710306031765883078365189116383718551782851221284747056905400158276433140065912784905475675161301766172589365910274575317664174814447797233833735787133093823213534577819265305548919654082098928032082558872331068678804385342183362066274714920603040337973762931913051834844105536413724944659890917549611060203511003041122960594196180732531326176602578096668352956430229598032240916247885691189423885012157976079838449813503592623041265860174925811025517521765191544067153075337910377509236741839989363290973382187667909464601975572171430473753032508468870445270740656998412318238482102315860101565883116351710825339307220494802065524858194130821910356408499249472712377465114538490710736462652268059701299544822145188642021336247709203474499300369549301301565836524470445346514666882430076645367245578531528417388517888218190939223176291794521261231584156457667821168020240162472185477366822129999834160252900938212200253338754521463180845194927108951121815657455135903463381412355279434321094210119332416584354181493811332506698209120828847802422412329008420304561708702020927911860342174421689506286518655422163926520893979432251350435439359143297493678119180097131821809444146876245216853471847703403783792901575533402892205613769189877426847023238507021138859134385876547381236496152803109086949371486794873504176508746305867512218716184234865469124913410422271315952689781605941777948095179208844516899567628304869823944674034271172825717015601590356901977431515668113108860413910278456548983488987748599235710858254960139330726811864132924590667731309870716178950496024045542517373787756700473356058499490022380639306588750273136191798189453855465170944535908137845325472027197886095858029922342945125009730276406434331533940998656442761869845145167727218619385251046753016336553687835177214683550686960698269211437018148557392969933480711956534632632335285710825256041466124536548095521235713650516335913992504933213530902266723456325262765699339474025633285472974584403776445325708573980980913829291518468482977662809493985145231594186411913088615060024473186698041578141958764329017838249419312170602802887819523271920396217441243738951475641504531212210895637570992174340573342456049115889170070780574692894581695686555411062457446506722228976409881656965679438911679695775492227237185256842018115984283013177060422964352726898679004711148672958102515674322117259433812071148923181882680785843732174274277505571381767097620937360679736517797043951333610807521926391591748998807832585846339358902195871153024388974051679104028142933192058282046912555845120293917469725491391705478244445146376630094245585043229366231352367900966424956672382963147357847514974221913368972319278166746940933431727088636343512885269659020343348457521793387706749324207892632368180020351175655538182199175298278943821987196841076603768252637090361840587541778907210775926485692310532084109618762516437010012252743151798169210735313643914108584473890317380895166947562647433809906706722518909995829499719505211801669704701558253979132159243876120266518765856510697917734208983663680416506086118527142148522220192442353020139239856350944229428414671954657884913400282986276134353585504869776808965678094527268220071378708836210590657221896197181912289960392671817867521436211905806011967801411126829528010451499989137085630227169626731652520944659338659944808528381480992783103704940228205386602112211364351562829406933057116456507007244107408692524805751346694296537557506127457878314491240477494461997233255190344112625766133178739165733098135511540112864379106945341205356080140269814481090332431614424521698090754368240343600346245731364789617442380991088331616231897888560135300394470799483508378253097057729625557112879686143131652672652793723483220613276953136945908023549574923534469531679138237015690449797661289600229431320715344449055671919764449359412105635121015061139561372902512433885913650151863080876922118182368939953746919523305445068687250102516954901485637629517003293807172442301343766910617077409282101071435856933094630044644138142547192449725280242121613751421401847702325771061157922815399282034187321514037224790809059516190864733561175766219919724346907814742042467729616951482451012239094246741715256159161819261368602736469283077456423008713971224166658608062536175964737104784269066293855604223113442859740715816476388608621051961306680500811138574434774167829645814616423575671298974704564115132780717149308583783370737962467067557417297134841424048646457504895090725351280584851058556870444642956840144428922537994515904355545007815449621092573792565906445094899789883674233805376527020403886217816754810353799587961838296308034757915893097959633305826884479372455637635032139894618234229878684971122036738703789859847826015570575315496952095215154035560033585665300144258116506730784404416745659047859299892041092822123462777969446373989768904180307503359721320514346639961278930729406727351264655867027342114443677209374467924797811347927646077321784070408664091645622741742168262788331376570769019225317661956226915294101180503532303825502759914526556545508319834026347604370054419609680171389663781589784931333068273815432583047027580948442235955506756006168369146230218683284546218134283452878025640048891056649810237766997113562897126722818982213111291152186345730424466277040346955929136303847714207998538048158014298962888531070737666243828139115794006667387586244906179528049107965276859275224783737891512330935988570561247750245435238233013105174204854257094147258251027982685792239580821610585132033065003304074977004209933437257955796371184543476287062363930576345174825953148394909379044787829703757589390131857704125739665872969376027443412537860621943049465660649364574144190963973288012978011525547810769818733248578821265691072580308784427490066040325842803524164820510047790301839769395677257468387714039276175471597609191125515444984374726859524331068804974689128433046443339397398769408302126901396323234854550425813592957653854364549834561944612052927697024335936948805948029535176957912240893009125728852574719635188873810772357011963159332705067314595755439850789121809790939753488990569990539838440194464217685689859005642436056742556061224615580286563851310573995711139417597619743655268188705405959804500725247503398255683214744066709060850663620604184338333359122348688471087102122959262476882951095142471029323005758844770346306556549720995940521861996213612146139610185801115167094884276582661602153246319938231108521020540082556153633380832032528409886134256254342023555865900135949314557177192888317328110412990352959321529137746770677466077429675543756923366087442231933812192080258064794911059688057186227448919194707401783219454677095267110754642416173374856617520629437528512123847457867112473318130467685140413956199823010305287446688618048832926078284017666232472895504395573761850143896948809367140715501993216849594287022260973144716447176898521790718878669379473159245530602331826925359304711064184192839064184019186773256234639552614702355854465772965371712530290461843616274813731037983200763156230011738323034548191937142630995455625270643683307951173932914545263976820259143277982974368599738328950150167617368845753419055038762589273605656024825673425834804306962206763508222665415225312224021853065268894011956382414766986213663663336828644768537726218655429856714866598274103172674660412709131385565002699977944915828428457763774035925495457935911976635625117707851936884467344228151319938587159771415583797458446391679333145366822488904034953800646903481254743443469956185208296634978234632897164889372872081463909828682078164407200638900265306321791504884787687076012630958580430171040881786943121135361802141813957791148817048475888941110957815746656990087276561888289682803659662444727699734086638559997121710490332332750297938996550793887774332767306416538585281406196142229440492771171033119760903801493381834143579249748598767984650587784775013759949241120109166943964084539052120180995236900540056193072016900032787638076308184838117276338478987452560735033841539929251518522745350553586761402677396893912177297947845308226954194234933249633471863063241489138259602521516378343400328066372747487666867748180706913438692135982079089155107871942104204945400923854377864628965132852101104600576396152900914628463801083401517868270594407465812885301850701816315902242635540916038623051074836006015454116374492122452314510377374297370907680722677783169023943962491168847426688948005554963112538324892471467241925276040553059508671558329051631224269983866845146724386468960428321807228338181516854955596496030643024686264489214334412512034749136040151123759838435990634921484073470410286808416368647998797406210974959894060383273682753337469129187356834275295348923512582507444710299938832578469230865994659450370746636396029873366289770488243766470224974844244444289532331058985453814040873824989525525100931757946588885177678038255412791750412964067978988324341471297010246762334545956204542290705607490947514408308849849465228064334876771852815919460132004220320065716283359396555627023836216375874659298897149528286617768036732416395888105888196354355144328937898514539452451825521224839077993555318469841968537113592347577088356755991373229521875124350999328508340878626545989059638442501293682038273689120930706061460226038763070725132009988639408712557712579567302329191284754969909343986733942045039906502210682032716577731005250291929477312306547289934437130971271424820516695780637652562581920238162092293406465484339489518950158269805018958856402464469369721895185873375317666197196755692471245612669287971905000762208645352450316674113662391694354648354974575546718523950452279326996011858546332443811533972877087614729911839813844586953588340505472251441061808585715590898751216846316020607448708281837435282181583977484577096441240467937209557464867263006448097986926870293795049873724013547862501339179869888782087623886094266496728100872624968396850007932596663566681953839269953973781216079966883127055039994534972583357284151135626003009603558797207031236112813512011239153769187541995747975557297081469031209974386797527603433360465338736580376705543839740674795535978800550566645150626878214973431082867334310116223157570331509676866759751119936311581640939684027136434070527662002250888279366958503410093760870227720046117879832077462744755063715006856596804479934161753796391564777482140067522065191923896501054774311196991975864212811345021871671132802647292889384756812872726278602575924329601169308707248839621657448786075178212212151400335080833744517541850108537944371207426829730420874542697995580390413261557654469173934459009643241784181288351595870223329891206905098201724353057966199047900125565342919211142846345877980979478532781300068713208910449372491109062942120699449904534737998872971764585486295112471349097261277726200694210573658689315682539505425029375515663824882367666870329707834852542561360874504854180861598047941416975733330164303563247078141436792793055611278542387125205441939637957184068566789870100288053819616233915647905122040537072419023252062793425052343822515046189110330413262760390159621019720836984867575774687508362550474469274773527641163509296816148000537706573051162115748528519045207792268662719853046026282903018310893196780870031063523314856944113492963983664890705295581159609849704707424714831433340595059428426046292326606828353283632632300867866844696586076097693937181869535895883480219499944331070566489636508431224120652425335828277924725378768897949818028032321393253274807003032615309954980372508611853942474629559327452431240477190014966053044661282040947020567824803649710859644923530450419542495434991653564282912111053082708266041130478224888994086447768860788864983694443127181927987612437559346239265820810144627267698436734083776842613434105277063122459989905498508884923029852410564117892212363452654096666050864065603279072617550376938535123641248200505091701306959375137363268919586756313009766013147256070306410903295786215165891355759769768522532812099086446257419468533275143547649107285215497874400677418079676170190230087798254987601940040275328444944404656224650566850198372162854383924998992523993168857386958620030607678972784413848684761969805833174119416677510591907063190793325979098803798075491757600832043547209265737629859106829533137743876871481102183701115560674904991790388350456204465473680931669475484880957114809100197460050986199849098063269054258630334318621608695971333875030510957797784599877668642672000605879238217669019620156052989416333321164705048921180237790559551680661672385996784470571024758267952601999492105461631836595098788066215535479701079101593638075079382859275744611064371687382189455269385798889505836631955491886792736303093643408093311483343758206378789682357217984930415521300719713852995880122894893205592778436576612943169622671465754857703739647608597676983810986553791716233182800887547184638915773801671620145635535900010017913692361000165435857887990888922128632024360962507661265313783696848774834963933736188366315669729179674320380182302479010185173219475174554190247255639967547694628241894759359460248730699681061629117614958918924352439343714353751291363529380880083984594440517171600175140551468574103148574891459973948134506980005713361164070718609233375425362369357633970773800882257543361235820579421472395243889546268496080132577490832790304024279929628716132159004946256707655977839698056119300847656231905992641406984422455057318258574002049260045818332202599111000017513628215112579175697038039843010505935211023935441132176824746874284742724524799411648193583670911384328438272851558865605643260318910047783346373030930233697611004527579005449390258001477767793571500146959141446645504385875334960691818737714355943706142199848591841694032531350470572351268028915561344145354813823923444683567609916573885325569668331364236038868423139844791328316822825263791197089418928699022055912177477766072804690280113564624679888976117713378624677412422383011784826405392026251711228432690208478316511508686805242706665377319066361571556565640976720192627600241125679164279077596276265435668589907286266702270306179534631946235856972215628194526652158481675206992932438966665947212317871528467929268582827186879447379701752553605494726538961650000663770675277601532461457485477184247990732836497655973779739818314318789628664635460858640839078738263008568395289522505649217497795564882340634879385716950903685386877424868585946158478975836114676019657080311969936255168454458880709091685146822553486678259909827018403372859884596299368764906886263566247187265010628233593666702098545580193953406731118290656223604242477318365996344985647772486328134606790962124746951400204674205547645327795911313090900864087804052157989644958547768912852515482988983030656139746625008847907219518464588347975569109651849495956335284490996334167625174072392591234142818715627535709732347600293241924541382297583570853002828291319879122541530954335718567747916036579876783677596552782340344729923247862483631854995160541777287440247185198841050495716151727241026157625709522439741023426258743698849886883928456601249863498917906942435398249027453926883051280044878554163139478116568613950528646685695540734988800952843288650842024374256720920392336472303119129286230740604518541010268625184586036989836756206479356942923901941440835517072945615069114309131718364270845124878359004514051703084872846517017378556791866773720505904823508319626069252385429696867588489866165696094337670931492142502173527130678745446508863340875827936522268867788935746276278258886183833030864477206799913197850317053733980457658721681506400418799362762327920526027440759561624453813248673871535394578921773162647054769906664882026154604581024267891039712832993958212551804668018342396401203237282727124509954983355239389801420834763773581440094486837125775558035674074843711480035298478909362517298321550545843206981409225814171042712591145387856604972617748557296545681429056330920763192748490293431469082950703271861527812559775905803462127821516427989953464055325933177920141074386175099326737435086292146560616787370466316520733516020334644925787981480502139018929225128236681620688833727189744752809995861212216679189380056042786053610661576237829338239021410136120213864607293975688246548911366203403501197173198698007321996874924406259369143755994560360414450831707813052794228011324981721847400996101705912348269476471362287385780754367717289679470016768396246844707027907417376460767916627108369369821626400015112769863577096627928265283725189052847571002438302982208051737855275805511870054163863299722916689253464896572595493888354733278628367660643705535877130454217988563406333850833310999051477612250773963681760237097894523907027253046369911085423550552394571837269285889327424688150893984799259825769707140253758411303176096596399204680805943521283209337597787864947617957256095900714567028288647311277760814188736202923044920848744264863341990828884305693770156214458467770054331322789022560909943640134800799384771169447488078865185304343177564931479391416277112536398389711921114026016978671878783796081588205575581310651927499058125413986387491063605135087350778363373069800556708850402548993179510976042308645008538080788348511827092738454705153964439912059054189854791181838511380893242296621562303012751953944238711414149961141966279868316607636191571401924853244115390508149496552972401521933758588199395771199541627041313011733629064142170756760381419975387299270767812284319513044185689856060816816719178352891863441442204402661643020668527065759760060209460367927350547380207649717463933159375015943723036898578485256419931250230676859215110608987418296067205746419688207260057641711501029774364614972341514542989747278215012720152920172015368330783740881507274169534800405414786039737958900764572125601801641849891570708799440739039695098779688734901607946154502596201143114264008210764959846057338844629919818860292706110881550623473903544371232595654767860434827586380091052341258430547815297831338318600704947818309120212993590773596237000727252794450224986793503364969814870400028329474792198284051652221737751699324799067726104605233716869233307590930548390232245711418362093432719637344831347779648672189052364736435073571648845692556215325417839976577811295446160576114289588031484031320638906565583918245553348197853503944759531716147338175456703332739674720431011315499644116821183582139386365458203877214518350957297894746432047539175840132541529879863812639930347144519978206635006749059246719525691168304860218533234892486485429989939154660849242259022382902146431551645885716065223143652749415788165530937517224817787199234057585954061680414020332301577769536129027614873289906528601116345521014529977370440640399844067265302275128360498240499033053600235504874773460458353289326363225776333689976293678456322656628797301201388354479350559962819518865576790574942243634027028176840171311544065765118016242100522384037846594789651581685531855235211205926951008917041343764630161629268114511833142010019105791509560369120900398437100883585426186897703735816601308738758174328033802746012875842555860486330900726077206017069303466625890157830552371745118187937244884478382243779209764902152345875617711428589830000626773489320239552466074234478419036416776501611985697169050227914574832607392482671856217735492510155056912673379202940059185856802436066553886476611257678034349489554096518390227995499358487104287379118959625078373892436865991513447696421279680296660479742929507322826971821285295721028707554784315795956965140223285187604286653158545731558840960089490073447994295289436184447110377334852297238364298838283841590224002007219217744969252723721585038720127940818528227386961747828911719100140458908810673689664077666682738945495961960575475002199359800895995446285776171159946858993288253311689852244861468259788816419861830045310104332374537357444231858110899773097831824700401667795329133328831559877975351823825428586487588871857324802498712426398479394461509184163514099801613560684868289757299535967393173524456870249567764888335309581976771453719583494978510468012856901103870567117592626089083715636476506840630227850549064965897655847123605141705651561343493664485413028045529927492442919667748169620132563356610493334552582315133186812811335157417276652228865461378501683172842939349703437463911948217185813266868650447176228793828313035949118441989997489726538419267863933559887347851337942135273968748406766859377897716430796240773148343908536636516746826091558237810131592318102653652493180650892558046837431862230945402518183045139235625827458549018111317090003121165425601161225062927961752165497379151796984387508597868733075335785495850628168477335981602514669733529229293373585866559572568131629973136556754626304951235693524265191756338524647782361870453168091045495107914620587051777973283230147729729641775166182098606760907430953299116095686451658529086827966600507377565142033214847082618901854795268054748912457717188719559642644585404115985849166429056129787201976632723076548889764813218965934322113988201357225121522220927215194191787625439191213638196755951359410772313733195432210156648651769055342585320774816711899732092112176932497345912843246360372432484997405006510534104634378249109838473651293047273073206581506711491089195865443759360435710273952583901606315848160040635390913727902383157477343527910280358670070767394968925378125776217302799401866810236317786258021276736891670671981323274776202106057884885293728355393958500675528804917856497296944244348455150318901844838879114869345394850852221342029261316625269152160927347000560500631967867537464141910331622590594000419179183969586803902054098985940662451734657534140975652271390104144280809487666895460798709474999145421475668896805020706645802445151271161695294531401704519097316597910873724411417918379722897056899910244923291941123198301239677299937501167232980769968876917937669342491219198697835403649781464134621456316235771513573627305183505094858163952261485627198873741621635063420741589597856993223242661627190116330072064702255846844578408429969778598535565354874341285401754084858869129469406340169829616230683462864489975804518762489054966292940286401002382131762104805766462728947264317389730039978417299809847425935782844790969015618192138027792324513214517006650091591080560048078062817164747320615056199417164958365037602078760619001700216513555398105729281920990682746176660279980582399580781008346732821288470437209058256064930306218820859034907361103582420562493320642572670862749969828822194581675935799206126008269846508120238344166823569148989375508319003218204911751959341210836833089369289511102057995495443735635388747914551124594847966138547968784276146901134855972988673476371353729318455800068370572964746876489755381371864357986361240849577751345646237871044023664677709815981854052308793379273793087163935712672033123497422743668086165887299431832774929882163989473893599240740632629267677303095730763416538648561517959847128742310934704427973621970032961235823969203640434978249205075006100628439282064379088075861614440800845834398507256867652226067615534678372270521235725565460985525849236751421147269087898140632553276706179150643892194971685169576339819278646596767548862611685875047875393249767739754123471010603113897166601450351208587200124230138061066314127864338009553986024167059662425613988335847553347506888039739343796531062779803364614156873054125147121181440219227995643995559581603789813865937926720785010959837364163143185362063172515698528255373031148870348547346729234660565537631836546067544113567565131867059688681666852063207626125136276010459330058814983947084138812789524953885929804777343594252254700346189913378084295750973143579051092142480247882346267458875467604584768871053832546195251193082302782516772401927199624960273964860772907133826736885439635740355837830701582413510869636069768403966941713654818986971878026968919352327992973492965276885156273070134011478500155766278630335118495683144150786291586357728082647762526286855499093165220303275242647990366109164250352470863629275139300038796650541500890796384870320056377167447431253261608066463859179925543344805138848582475107361981439107868080746912721790331888210243266030323288278370970557497254477020866478500710727556876931671544380547227833255039727572978779045839671441976827130011796904266136831288700904453149508996215099928140927755866807878683896638489209567708235000325022410554485382935832600930192953501979997784140598062723213497495928684792626156270680858640770416431849711710617859717179649753711625375384779866346729199899098426402430484373324172136410744389510388496265750579333421666967838470049839932735081144742875328298359809623890896314127460656667065768686960512536183024831055180032210943092523054511143891636877943307035680945846314431797596065963212019645359963254898975194900538370992073085912579938594955455522284939844480619567967396827201636988512036084702978377982947947061814848556455721481410940038544937718681090433805925377699377855969921508657644977427739856189955936723188024453491565788475945924197578860576676855097475660326336004589178472863686209844273781602780891714368696316528433011039333061000118129000058421313627926758170507807032331864136115061983005445359679342835815582267867872233146156261445033644431143928871698142589634253796045751689531353402772170376687367896076536972109891309945271629639658680619037020297974299330848657525406081092216563536538341145660760377280469862896673071872982894675888862246873332960988782104610696036450898353750486269163672747809843363777529007120208062984916280738030715873831465321474406892468039655143583630599533899572914829120603866145613391951790342655168679128683729110143541533296473660742252643621745348779807574345278200079556031822626085599455050887307451050703191400061817406583738689879373306396118897282341744092871201253069705631733337003351494571155064903764353273349993754703052838538154953031677871882014815326295576220145680341145095376003872388595165248184114075302541128988430413195203712706056571952675319578263716644300539462106228115507310973799423226614200439981294910948010496993558263827618247876787047969717278889120760139076486933356808597395691521157769799697603696559319855590052920578078550534002401514564935951759600383154725693097136684386368607876913536903689244138508688311940704540619314623985154365802112976740486414002508856888159041038089893138378207490434648005929050082183269875415434860121798821819107560135254941823866088245582424046870306194505116610977183432110683149484468182619365271611654615186308786527286657338120486237546710607178838174799031518439703880465402267068051803427957421636850145929904169968674199406008383639956356490222333192569387769073090185491602409196559369218636900054470114991384341725781203468519793011154369684944814874325935212205426877248068754489017967876479911135676880005561115776996208284233531896411988794221949220784229318325403355956211685832460953677642733844474930502476865586504155620672608597578175131223421294874400742951700008411741455056349560461078847566055079438325064927964082234329792599119049064184065712553194556692598742894912457800201978725558117903757896903251766051402899783326981057460105224521848923041084129112583510910826400338117026920694905720382981209436876405226567625107733895485942402015498449693058090838638673804623051541421159840718668458542531948398743801441441925546709320952586177087113882009126967429720637775756292087140277057574632560409766948034703909006903030820148363945125861197017415824191717513070811708121906955046528508862000004294100652997383460947277602629165992913866186003323005010279549709223225424807008392740028781453167661261082875871350893580183001442272633531156195795436672390625520427047870862957560183559214501367650397848169786208629084689396752346057313125370693564532434294571079660570053314288993820440178294759433805415133029041663854790498165192299827433050336141975133488126455626840445637754258512481033320941308277362361534307625830005186609470608895450309983069015354981188115317175837397950193798893352708231525875629465280745255094467851916893347948360144743621394022718684339404937354139395966305101913838257983626599895899213138892000469485972983882837785536963661898751574016610505350011887425624042256459503019560681520405946995089574430511610168531650975624499657732836981718224070471521680096962025501931275716127965120404477833186867047104428984495879455759343098582685827148257737363163878544952795716242356566134070210377345961680604803735551589209849272497380185023877310143563868548429934635165110687749747999024088891754439068503714285203700001429218256886461880219726687463233534078549997426895516318719000675223389622627874791141526420373032691317109198449186837059614945319419841358971122947360951935088004255749684586092463709653288003110028797339894161317817127663012579108135046667182258624655279443937463607157014737209613340118356514164910071005511640022937511158968283813318449901004903538704783591653148073702332350985645022919044956612121931806552348142741645091161119578294591823222996050722351954659555896898264239338588557451984638628711814447599683614746804679330400279900338882050569092496616599397637787968100724350059261578294882458896964823490810532319329444040942861319708986120813152302962408014655091312576063627421083587893221650004090488732324870381237534490258325335211575126834877915743719039617802424123681070211691288865061254879009860826429552442366529880041037624271682826446385215174349125489306552179116298812013999554941907864544133886961761529478178788098404536234986845952381656822009838527697075764086662617038115571110924746355867749118699541195911947452966200135194269698933284037646623667409592749349446578610418233337533683355457059746237096785442369104629231197928441349757654176190793437157119389274694410056518070213793785838390162255088418858308013257713508032896920002704693353533527117583572448382053564905257330758599147904349610452772681150923228466182636863124325251087474825532486982081335962790293036022849017897518571363917773575827185016529875192780972386655035279888765101824094867895097290954576664872375249406509907614043240177387913115439693721629655241340529724178023838073865926539696421052798470246182483623534211749973866407285285086477023528544095827628166058021874413768470442679916018362115092636398024470046036073896085273700442640714064387039743000024963268873781415777708754482320163645817261625690689242796938895295067270703648581580569659437820443924766812907022446556809051863816530447504260152917645156369901600498364021910271075886161612372460998125808967036513176599708327110267825723260522619467680870639841908275102479888203996235175163604301760002865273938851187217941785534391941000738967666871621153311905544448010221095551265456266154810501059844209926410862855832906607190868166894476389939949603071390771051094625848760911039302548073070918953705268191118513160789386966060464032144490500019729827735904302906735427377247669568416110827952822736937663379675089965697208720967095326635103648086151625923934445332914875402716997817682046506585671824035844495817963471782153063691813077131944576733321286325493289358206519048161885399592304839260468356926753118160577918979207034623247224035129218904825759939189458640271579319727568894923865618669546135421994305382106172242849048334514490520378573712142229632706119172277765716807083751053367942955101384601557042618780639032261710796894904375343370940401182478461838478055330183971733277484334114592774160777712112350754622242376514283885388704207135444367683274862889465904319590195035734428119259294321548027140497965863989780416734153878198918195457918813604215330258690530323639921991319333883212250284467097824060716949689246585655991546904132019544781710604967446007027951313616511090353431173782760881553027309168864176991014430349441404309957783193065070183333563925216508503383955037664246189986209520706807538978660762417513007241627009180017670281313248617622369367776798392073994603310085432094152078775560014690045051080321463012837041919835771603026617864452606626577521496785853231721334393660236679040489882832920140773457808325637918243836819574415564075068582998031084775826427087946702455000176738413091438536740306507901396283283053836665995013119554098853237269205284063582775514519137299375809864272745029717271982918595638584750978966226872366690790460472213923229296968551711933037793239346746107782718680679517992516076642318110073631925427761417298233331432112022510606323764358899958531315705297150462079481628984785106280220392319486871187575554811345181172980071247578044875056624790545456272856212100105733645787068452281811444253404508510164530851438321646828580017586464514689116780563736835811146646638203406894296943309578224638529517796751702680738864676730102456891807719856963095657828802598758660781656098700708810596312683936883454337991204944855749077253757254949406733881425386544024945895967102363600825535444925812269289710983905749941992054481884351670110369100825752922982307061007835695059537974704191040754247223037050935918985056383363996170889920893214797794432489816757101924770719187282944890976445172718473043647016338946082654482694134757182489066822917310568085873169887105740197871299911860133740149348908664015962352466156747409212176848209124832989706047454295690311624244088850972769343033541660004439356944295257041584330292420974199670359885219463636396579954340461013425556390721239334905402506367581358704867173060313728658658820161010271757508400956629061801461604587403789935914845839621763594219168903275774793256798418946766723857633878252010577863766305685632854603186048511906336546785626385999859472980100152488890239246602022059308509653429712712850303256723843188242823469065632785692161223785880799584759998616338547930353859112391219332483861840191646871311251693928552637424164910072815341398740336741289168724028627676439409564864256061176035475897561924361633445385882884242020699686134632634243441887479306165582168104569052599088852243264769139334580775933351660505843477172305198151103952440477598458023006483309464383592182007199814356566282208026303460129571246119288540757666502781629788086016643631639054767080800470043643040672738750663088038217560551930528170029479752268498767847208554111719015317597061240013159150940227086008447432527837466106001627807240091988205760893895825250013341830138850249573277849592101878071025626022270276432965614749800497682492037985817097522715249121725259479531346592565813491153846550889944448975670487674001411365039386966540164778410852162482261650116130627967271634094066212994322300953840095621860333213427857286085685616419230596946240113627356533798773212061903060863061916896968053415777017542353789161932956831976763537851347830068388481075222165471034829751287917082325867369640833641882783403387161294865629651648424039812927457515397971312418150248790535763178442520093207801365391585406793829886475096363259164650541847245673091970143025216332894052262205945799651160862190825077042530102863851137664081917115820185292342313885674356797997967289141987976212898070734055138082737317072755687973273399340709083456907218818438084085968770526836683067088002674663243003593082744190173222912614610435013970425328660513845322087554690691290756868835739073918216040139519015608510422272911318737000914115685484270500705206947580187330939348006634248679350000921336444629840942748484614978202706213968940216925214448682308918053523539017514331561936983387046705562060647904728257843738816162487279671166979504609151359302593861500822419267772746478417725064132037621644938232590114188943864258282956490686267616866663464787826728564382524322651324268996713086008575684704918714756480649868931968539673515658055979463148979724175000068738516562413985943390424304457527719309966089892578279796832018741784268419073937790269164832822127713576346284025650258413932338923452174932814604464037610043031501222108022105688600138329696210134139062531707961476854537996110228297038133363689746177439047483104443314778056397342703770557467755169488702244299781750668329255754447800074905703908939274887029647974868791062982889328822272580759643391835687827690559693797562394288124549548032709004813778876518706190991072850293414631616222591185105281915913954192467718329089578599496055046906715862325217273758670137349216298358181040154691614639887441574593324319555509815578464476922992534400064963681620100726044766390879343530824956642860181461649472326889407956490975699429608553687250009495381455755877571767977262588956996052961015093051105992591195962192429847578467458832713091109228631844919519222051654843595507557360420226841326299913065640629728846096980594153589862019103111795802701559066118080957131136291700127941332978002846064960854721638568353403912384104969199608241288916161387827984753989207623633141130961752890115809038481305869845975410840219461597099495933871002490829882685294718773782444582594743323179847204695823801191145848020216511015729193254416950526742409004965327576640244265908078472733749553018300212199528048652546027024329529206089008152950145873848800293034844860760145417690012724634775810284154472317421820227599089788113711896308090551019081301743513416875580850770993023758081051583010674816527654651309329989220787180298408324980151578817553872696327032694365515613176296719491862922850451265045474270408091798572963284085866034687659602210719517048532657951575244296008330420118741714625341062454939166075314225503289870393992501341541500526489065403287470425472216878367762826562859431197954305509404942692003003082724655619941650424906371072294982329454148068300706047712364096608659271445473666818850348840901729028051774756413398195039852809423871257878538122981330381951740665214209586286311494905099795063239201084754455528214791511370783741586458578287308279414494196109213074620400851083375211940214828533795435869963290571356517357163770518579116686003769391883140439342459518208028848258794422158134685040750756361132521027248292159063470095989440776487933193996494587163303923256502875411605681824275483314864882555125754651462601246751004716774099343821837551030254472706311885545420219892707391588493792454589729757934307366115089350096114336154896683941909876401903216356242811925937996955747302110038482203598609980553394608409143336597004669346223841794122373453642034261075621141967309696309234483076658732883277755716622834830772787553805654848365782153773308138247961404981649369756559121606244649965135557690746838868023981538164384900344541134862298780503311448473300266120715634650404168477528604735899258570269408552250259253424626894217244634371948353066031947799865674510512529430394936848322473962615030346709439379707475186644059584703575991243911568473952988726387555728975459850788275578693730601782964260106479698051040963024754138556871877113469218383786301023500854825324925821655103747797572924283922450164832522341689488848955421887928280858306058367028889742946531748159246864308993551623711753791193434547966179692318350002471399103337804376092261497322198428448930981574808958533103880211444454390073311216005293667832564297560453390880921056651240840634347111160717077632472795954382789551234557234404889457382253144177137109730879256164940191466437844434845285590652071136615489851684663773556686531835685073878924115452874647210923139116097317929541356408526367201259384417730645678242253506829324910225429892700089282647723258322161197376932362590678976683142026036725692054060133169223361223519749636026683545767380024659079557212110215922530168346143782904721144126839550527476255730453859253589690564534386601184075182244529171587455539260595123028868207303586709245625231683567158092204954891430895051362063349013493417033612657661339391979326003824079320093656421749787335345175106255710763312631361514689607045342826185496518089699879735230155253241699174988681067181924174433901552140273802839179542787979689750678242327754146300607629964059904314134329318670284957063097053861969892906345722455620970855838415971444143310686570019980057240250611344054928781988592890779707490430485151833618087068258901151029225749639642208565512386447635272710758138333007297669626448801382380574207908160191966249402467513410206438380707288610027311401652564005210569897591121406248620554306415629251348101346676425494954415940590878118930191634212439286147175671073136763953422642984411546372429223925843503101351946806369210850839756871176337221696289993772424104723624620403637911584054998325883868694923968621323153687399746918585575674159970073714193716845158825876154544454808395928562380728375918422422157324985541030315142895256876959516361399226606946305358084554399419933219058940106133908303442023511373034915528011828406625193085599916464224860294076771680730026383929590377052702391078710755793871868128509580596490300461586089855514643928305109070722533194918114918567110907434516201777283813780136612110747040641735041899109091296598505354997110356073637248226585513594704153941302049675968164175828559080952174269445331762565108635319947694334985283799966476611835885983085865496394864600483267319454941936135993131275048699758950233055244552609856828559074747055919626607963593137861947513842434725552222975911907911345510724142337408717739210061447644663918334627664549504647723477884363780048283481699743502596397414318676879908356318215611452269293700893830607453377135884115765877006455362695853496871794960735965148627642622513012402739841694086149514174159837108346783129634104645814590496190048744923295635048298994296082616739549781086516475226425741405288805572818717198224929622701702280368676564307445023998199652122002419885327673886735127009815488612413623879232199458955020149608905555124121621391897624640401493233160800445045862199294639344574787602024411416419788811813805482956838403196718080580039827381978273723568493350136158721991639123895929856588110858079547597113642354509496458717034432316656717332688269644051275407692606043088593362873173560039757784367981741319739910376456440203176000506520630400582012621467182681528710916639862207884459869310055663853591306329702660858372413397555599490176087676866280879551560171815118200074396386666590272139123848245752204276841794393165597453909667836077294102244877130124502746429743556517953870882059383154746237168711675194768805644189461110435670329539483749424456570308543440191500229810867026423666229603216929593273870431939413827102322144514868193260697921771158938297132930505780360018874535685398568568225856033313521356896183614084052656949563920367324759363495380862623442297965262800209805183383221649588074176828105920516824429736320148627926909775888347727504321957070318939912034823590380563445611041485144104484405910979934877617812191737997679537556365723580286307948332173467297928155916093138088758432804042996881428355601437725241251376581967496358700804074473727659506561774661165727987799282571527808752042450012453400029945862690885240333351300867029779628625611077481614411603954172231521055442739771133709564827125189275998513829006135856152623911539372998452153618227727935268793909574360720265450642398896265313024497550550195009375804295401306713389208232541542601949075205969859545016814922640865858018037374015424453115642504687441843585505263505452923293971950211621773088326305490678852508762673509484964294337084190704221512542479810139009529184384383714702081478697990911687415208595775448735696201097864805784504697052744210282768253152772577102421126671897916277748784018828131650786831484996195132003891815624195172396168069224290076368128944313046250022643621433743984183288304629339670927951286641888200682856465367627332670266752717894515135729569968674166553105875772409811764509470019188385340758645976010535858214664542205745227723214179532574639112684180096820877969708114336027987566088164618123529045809019805799785638500653917417639990526427654334884634805157649701424043299972093521727204730005344831234995298045231473932394039313898808916761894163715188285251364654092028980000547734575777205829632361858909768824936808916006996668741546941716271927910275463264331703143285434122351118119828348820603067205016711442324962919296484087519783861021722132158539537587127791014148457745414775383652748262507698844494970516873815902212778714215342588596090775713056744214794831340843747991608363440163226904705784803453628251058393978102984045702013701022759474019166443937905713799993991257234549869252564356226408040575283650093939194211571005461265308112046967718501518836971295545945581201494430400155878261184007182770722470264280239643537200779694821294333900950982760033689178198750209135805958085185645306823864155875030481428400854048909890220778038071024406187689606963887728964826620979601301462596920778432657242218813257016711203715683401604338020390675189929675961868956871658618548245926909797484474103306333761904428801140358441079413023759846134095678076544687637265944959662260464739202039163780666700422885369714700841619533648321552948635150918262662360754108142755263022922107497519463212609649412082200211118793743095875460457914436662519376441700947136495876765721301267859757436036644855352811809492900822050397467973767395810208586393767613347028171846421133541495914533829041235031963356373029145375348418987336198487028677811582386687780953000369627790310775367809036785244573440140019145558672480382024453293665872822912483156416645975782659453611618379677360739383350369204975584315351089399753240868382594311327077248311568471083271139539043734992337305159291023921960464117010506142564661792798916896905073470166487403011322837733761110639127408421175685653837907208020466270573970359511509027078389129125550471502581446164920085651878290801794485831435938934663396711442560850681659015611806562570900915578884258054844207332073604531313267324343614976874428720936568863163749539467789871726779554636242452642430867389446766800070929076303542349568780271301373022876671185147455931322323483729665735709703417809104590670261218437973159624433563976494150806416238782969755738330898318539561426803018080829667476605034426244547136894224874416386634612935309293749635049928335622212018336222193587173337508886074398872105688318320840282763884738629947558085997519363776256152957913978175877417238267218334524048097060155144588455711896584291516698460527686426752506582224143983403155644114291924127789386158638785414840596099553050405777768624247284862539673788721988074470411681993935874469545952848778402169593302120482082341762826091687623115667837289103836395906098680998830001256001720226982358842731066903480978327308630332468265879860615535785479178493964626860215239409930989697183948469845440700362700609591637722094570348561201458214341817417066728470987550592116400554132589328649270036716628867618987907148979536525064335632680837440347348505012129066300798061623427385615918706744653949341399834974350538557395755855827987535267662218071340473607227283290113094276656845095013609221424513867398151044582799817636118845121659211706097512073698347675898173286689914244372086259535811834361648804527640255065919690737833640954595458184233222533996893377215314860335073483507562975536618344997768303729666505225137672323234515083293827721189136427750368269035522733267782522211057123122690305447397592640748175067660286009626322089722594309029937435875509638160440287514352914887226273030695431722715033711970448172209169827342826878656329282442666922509000082349840718008363005237796233417713535255269348134012376348998711360628587099083736241778398058827026397175399466081688120449474731460653218403030242123757178310745917490096297905902558378812944745462437043317009402137419179680257689741432417944267947521778077270124694230455936463148964290800280416971553323592425598397641181016275724610041297576112222232412443146515255456206713583041217581964017977920254953566894879303329946239380113668362652344870449645922608974058756389967110534613971860900683953600207581152274336904790275253465546862208931699127435643666411797292500900765466073107069567210698017072219279008167770671170287094872852957054594410679716915936211641039387336400248512144309560517831735823284552132840973895283405985873831615772838364000388071187051074764572724357594646618916407682040229128937312651052903116754308663913820795993124169260110641660305985045442898269898994984263305847500742022680185348622985026218102125614821200381052584483092242070324598735687759195921488958901060823064064339208350601224680954720038145344370004619109631772118100968179766497255855247788224854930371574568106694279570191589087523390653187793561880804260201697849069124109316841351304630592084555181767496628367256183088541716488247778210501373358321236354062433566833274326942942225213851361893808682948445297057311704531709801913341720225770871816763383764528364906245822160143858475289523036758361980802193464004269822274890890978131604962530725606219808105692084327035417514261608751602288441691365020973678601241907986296299264932133771907057006522587216094829148265883846151432256359637164545738869503372383362028068151557141994071464346291407863690308154241002658250352459866867696409743157676532680503046059591324713439350413609862032910175788884564392694185661116627526233293860677096907446457618316689167798885187503024138614706954357867120950464965647508595674052845189158972986144883488639815759253780453867436971212750302113918264497818038526097596059588323322235659759787380953295213896364083754676942002297792218128144545872732342206984615995399275915669755589597068886517928094817888286604378013000495499370782656579010564252955316003742020004020814795778303106070435307346020177975230384659591993421256889077061752447626263822993342136276639075505011532612849791378908622372159387413688517883817876404263836588433274458096217784434642480916345985936909820190113167297244049164412944890174298775588800828190520568246907596235532950374644359654371215482360397975086967362605611479859545517774401877807573173461155689214937740676758936531477136660690210624592359574326598207303480942172346097633702311181267848816828734963949863526560301506743971708565365656892198074373218554771111349330535627932020568538976876954975113933153079914788025069601046413488593110068261172666502058120100391463943211066429437539407878980210677031461016660108871301778750319492077885848202328344156820733150875318319906137158761229329525317030756894119020326350966328867789873233152438132813084611584898772775221803441239827069523890986048089014897639257324470699789401964785783770951478959460389537234078409727788633952662843742118515241129602906757903441645628429888735879938375321821702368039776920849373941910809851041531636872251601944421256854695830529597718333021160828889701002782554949435168736541173547681030588630759185780516531918358984778535987469979289409715706213147086288215533591867511683636207045269824405711331670086175846998495419273228579296288839858149397101125816165434531439804184664572920099209377384221054266859412709593526537384179145551020727518057529822841356302275342658557147661605573546108686213295837907301248809660390271985458580524294399355928108755048738974338149621651653995740735390782101608174998637602979165832680409604819608496374412641223885924080930292900000038466981274536674539317847884403374874899194922208226149203522911345406276776780986634529872045966914649603826350222918279770688083508459501390399839911950275103314776477618350154553036235185015071431571861434603624292370183756154547869060211220205524811424794793769462849860345691541882093145435515018525340208483379108013579014506793533416827161891319241954223843922354758318469235662024274066574856636522831472863539470509545416642917898208002743155293487194543427890564888129262928487217473134240174260789004597197384045194721176928464563125591601629810146453293874566074685231123258707832973291448875921651238993346110285396219136840809389867500235228690619752153800572777022389472459907447426155237572187079778727071796063845363512900904895407301130082797020665502186893276896684000019807239362132475099926081984412055518767827432704985520712922391948028179998922862772237430792684271937043923957786933402318454387093976091595555806864090180010435615694960776854357385488120388520483912218180030445244905614009477472145171352894389860255450357671872012977967054548058343539851300831836291203589506485033160498061798553103207034999396961124369563047310625277081576434521533118938165404625996058763272371371365153382482608006622858681771066786112884796447120879187830070198975224368840470109650152982734681721697216752861969294575852505208050369288079345848812611288885953138028380810831727068803930874116192181113476884518318266962592268504199305509010975376803049478953848905548487780651939674899320737844584356168892801062935588550415356211102067149120746668764931513647283701841052903183977383329902288891671913492504248568960875950306081974067305374298055422215087121514591945223857326949349003280316787870559138637844460517089931057038593119749769561391806512804839382857724613942067302382258831604498406721421248005265839019816485991645036138670706598755000916191296485953464335358766120913433756272657731288275777933400605092089270061994387217896906368939752661914895470524918975114088477757744137963440240489887515619224250948602877998035539329005330733644288707750438086046391511734866174795271497835895865620392292391179685103681307565023372299247440719235569174618574289415557931270668663182446516835006963187108871054627142171521691928578109037542075540314226754943760479173294943476898226331655994497308261859476080622667394035628853878013601909797881269222224475354907224094309819860638692398575512945382707145567915562354145508600255920628217683679146426723730895702927719646703100000720464434586847694618971610261951123514379750448135474120238156546709070217179940835101754520263793767512693116689041655183469550802235322737029548421208857332497843522705736282501628476344584169200327485696337211892139764805925671386516190654336344580746447549947594341437635325009024333428317741197768537198125415719677373624717037490008300271211188038139457349713511468191842612805690043034699199895885366672364675277677767450002020170811145411359228959300308558351590277403490334706305723463300266878763550299568846326744849276845185264274981913377517944620746917815117807923917055373468113777437353792481206563455880452315011764611221754125656223219060752809059691313975286313016673556934987912840495970882727230680740587812218609032092984030987233196424711651416685625423056326218322626474656080606289300116492652198394954620642792260349496331854303691859826186435451805422015768907276687536488499144221318846239239472762582917202354274879529340250425661192956709488971681178731566746008806957434178301463842533051666117374541065648303473639287929511007162686609497290250001620419996358484783919568178387522407523745585192445344614749472340955695366870453538955489293088406831836441930251392479847277420282018610890441435742636178121987783993777783324542381095502135934985096398315036372032144506741823914057048266125213927097191819371620987336534556519849478821332207117364755567542373444219948275669458751329401560559037857074776901858447326478520934910133950665160681820351549225773691027683662503117971297807396687533735278483252790699244201487794035985947958834190980373302733373184975083544631470123444267248912349604957274542081902324293750184541065005456563196093402256042210336317979030831629536956318046038399393709536290510251922960934613636610445131949039770942355194841041058731677349517981976201145360878441341830406102521593171086866829495233352018559216458405886540806717736199301952748122881169417913047303785254650934396413092508853627409052130379021099374341912935597494061481937178944762214284842571751535195991619061700899719304924294188068293090551646301137014666357782949131710926289423976434472697496907797383372901594847335904042950711750194056685391965958625344211294619751568455256010193778867301140029243557188875930518176913027014112566366301258553023894369836594632135226110665227370913703308074198869110396146838198106551501642261345051517415295596134755562327577141871267151926130494654918044565994103376822071684739503684036130976573635009179341065462558072373710016918174504632530820521687082320841242910667790163211912774827221507927902720874481353840316007077713806843972886352073194863096384484768491177402994198387776069523658031323784233174176328677128487305683124036606319379514875714087077713367198434350939494390688361713957706395514825471001569512940023569432037146878350157598978436832122962281863164587505009169040343072043410940477585897478405127714643583112804485061981545726938827831024595569111365463962390112455890406207730299699756671942577521459528114822506454827311222932629089154872842927897424898906286997427525390388600241700266220544153671636123964276837582837177722482899392589339657779737554807585022934144643649849064129049936819624523061168743353234127913728355449308345853386558116897748081015569001861769622201962348904042527126982120141313847035047128444472681457175638033743226006291805516074467050593881241452195671757746116386327970472038549489984532943504778788290751013982908447071370439406945278008052637754634471809871425169992313755836211996599443293208640403218649473414965114647322825495125598432133404331614116095465281570131840061499104916174617050617111840749341864380818243621768711292423802205696003038142437097936964090643909775390120573574533747344039147758473959713397983510361904027376401619915440528982432396878719922414953024612581460748062007868412634419111338913188684018187050464541139893863295459657904012739822739357123665282455102294608553565791921277163986457448033300725766028557646349744524769040596572918566821920630527958579750833527850568936601154385832887795790054461822745667129323039999328401487519685856623322685107450716178755898953450372143933285016712944777429157476239395712155855411601380106632766922512340725493387265038060378029226647447683016539853714479918075805387023869880931533711499954899179840230202212798142497389825167114930788299971625438407904146545483090010009862891626870441565197127414122380907303666596133346064770772752490685365730992760270199962374164981920718680662332171277472862286071771341148234128986943223097981102580950677563610214603150998522377114682823739662216415106741117775919712047444989324864670851059040608283856021464707184360083372922000023204691106855706139202638665296299804866214891284025252859448289024000845030043850040059496884466910763855789512326825042660137977768313556273423760564233516130596807616950154797507361914458841798609506650439348983634771129177636791392570663828222849316970837170505808017765956167944698124907924036019705576827213819505311775649869257356362670024742906819112324591996656427208144722629053546491062294219708413240131588710157341557543592046876939349812386295057151865932195177475262710989424762118950593919449450517830184844735501714262149167351197007252437712846654589384276027796973446142382022019331131112373848688327529250831074258599678992441288560205817730678286166973375716935440692776295951719343407029813271286539028750887969292914160425529734282183273452387507008304418220165044396274327326407526557356892370040651543531183491863032712522208076533200146488370385971557466677973889342159348736053776009430661037671342130876709299520517047317510741106357323997332700113599782382548949367248506171486818349397888621413177256522859246975119830587484360770893417150842822296117468996277857270123138889410812045574863523022989567250541469489296124508731980037881719228268240297617769959885444928977364971101823354826028984543032108848837623396589225098508747936342569843926185818035762440129793677996991012202875807428112918258372639793449241204375670540851849724427395559435324896965144886589243604616699483777411082971159534752887626761066335901018796573763582829992101458596647872786885913810136120842220193960802861032982291535208911537291985493602786497193033506707240711287780739294626865074204366616444661546723691494904012888852565002718766674867804378464088750926353267437304874361769324591009963200900023103774446873478456021367755071361443258554641975036095559599610824369414913169179081442942451315139419153747177343827896086169999209561208963295469527516759654214650551934072288686259807331707786343046019644976301614880224669530089932522267559105776985323712604820769940604870213104578264223383503629206375953284699075468951015437724069783446756314171603504674163262843781097580854524838560780214423170097049430334958867687119180258596620857379404953574123479386933421616860837232149715338882420805268842560910789765739987891038874327626232080035014975590742202447979840588738889600600053956773381465164653810209826526750261774792454097615851260610572060826757979115425007416091746153829456107897749620054413594001197158299864147127127533407068120540798689207210760537856257271030688040729060053716010833942051410047832985191314005802086582597573978455452256061295251738113559169890190139876678834845279128715497556403620890021261236816029543963246433282546599943351491126483629292712097173787475959741269027714120909500419744539020469877299778517180676274849353564047524060661268780367789175877440630129202133348080913882840849099083844023334091758864938478200981479410370839859844639912598874294751424469598153161772043569270644690084899537580991546357473338768073633953128590972950137383563379803996794093203446736621284852105307053864144481475835234700978258277260814687188054991029876277433943303349831167740528726392311613362449886475472903768968960947391522222802760760227026554262337932359388922465757305720394210816282470693259624464876168255960213028214758412993104978685874105705395258252144623882546419517062882455375358247645395744191259595214786300692747328835152089833123787040072496054884229679799744121363997282872427975007947671114022051152507417987849130121450605298089118395634803717254377371181321860179763444031303753564066400209582247363988086545146708448554316106778057203182313044690947090312326222334602783311311135642224897829008606659077224249844712487891538936835512602121901387527444863932577754157351855181948173768889118770670256692274303508568107419619435967261991234440411713791741699957603818118543169051355824239520224700868748114186610951020183546668782313253682858896201733371479945117041554392800015067433367483032291041017426866726798436835531223529474257982201939219954301148265370799691351610731892779239020133511767037363150769854315410009546485039995458064361504223753046894314778025363379010100903135213415553440893799629761653363487602649046193844489903755303743524012862064553484997653622460919795958223290516283080169842060215452974090677930099343826196943477158483443495903946401099127482973478454503826107201497445454482396927052157453587833476764112686593081174374386891185713323180331641647296600722452083760073564231465080328792338716126773986641643763416838312393403090388928345100010538115937675733609750732247333141188463489478014946435124269085905394144292025569966899138012180565814047294454171867516379129910503581539519832117117702299182877127588682080816760677684539204609748568187730599536205138839862610607229881642531885686726934516931987378364657108507862115910984341196345727732663862762429645544892097499757718839634727886210181241838246195690811757940558086809212216653648044819793234570590348144697424404370015195361480648886829965843389981614735270999112816904418567395136688496858328943031782512375143590713281233879430829681328109537473822685857924190462430917323414240156340073515505624111957896021219904682638764588178641162311196839532033170632656973236035740708028838738598803911028957365630231918286650922315595305287777626542727606924481617168934807103857817550041913857152413831761206333962736979922512520389714510980906332790127362768400180088609869465886401269701638658014111092644344135651067774011545926400331925016669141740001440686084810752575683790127975184651148347699452151912958021035213922324903005013732161237588435300596075423487315739954521894006097986792241720360604361796465856905081592324772787911741137182276872554249201097178775045992415858374005993296628881302859329675484207570941819787549804194365546083407228900644902175665577504785483487392930563744656110460373869634543484451734325844624559621634891904823734471086797149648787884571461437789739141339997641315956103680742684554256877780071032054583328457120178813569546895808495448572902449245856191642220047743398704438859686391946443216361453952805102834473937898534676856163073273897420813330033132489052868958864797080879407517373680090727640818186849326220285160821122602846700530306677603328326607584156146773588992057405331883270053016927416753958886767301304918939589302711248617018963924866375904190726809305859532899662264803352490773536564254544180949201559920072636557092520255201354120498265037886327356923489523922551351682335731617151478517137119207847829510642130116831885625797305765219200596528164578750981354647984708642428583114917801363905477282193926271416037920075089427461699294477951998696027864968106043657941886865770276793864711978278980853614556521418523967915295388917132019411181137819115060729571660883012994900747226507754343940409371060145153207968668589873626593607487299781780454655653935928865439508209684247618850267353717402434087093102623753251121727930075874192639904199026727521250890437234739672619569139596385216692335994801878580179364736047459002246571259737258384501369485711769990862912052245823601177532258055376253846601170597434994255892311972714390504217795793669172252617828419560812044454994019759962909481891742647177749227766798424076240370542777877617992938723231012944422741552426577846104216725584493465668252781988102448121915879097751770107954363141556314841304465236692569229511297847776119867361498500998658335014886114962223980680006016064754000196496482463296078507861809586535799860510919351659425780070862764863104306898010508307645817730366287424436076244148634429789608895035919606552696443917002967712492164386617642314553903267827232215711391715562080259187301454565741063535956764569585723648069103635715678158645723052729466673849543939914405976538254722811375411545721727264030479290825428035226490846594028704176487631935303255477572664381114896123100188274572562343710029500715775835494269874776046858327664670041784531954825413138747723158317893796080763498230360287026308035887221280170327466460873289230350773770128532079632829411768439501325605859718373088745202412137371909914227896729472146037115691439182349596485005617251685090691466530415932139210844454503311455815582663058320359224547090080016045268533305651406447837982979715475269186406418377158383464139040750636774610127865452685574569886830957744370110910842547414384205284983261163133229655582122885081197302769939386851722991274176206087061418849311184723571790460373890661814267012120600413113276664157025500604322374982007050063793681689019572093452621320875812525743864341296437156232524149591319561422696226318088612056182127079574022808361508299475975834990496113948934421240751568470584946460189106404842550565168325991417519970937293771221612618304220833760467645385397892730744742433419145440032431218461763680899842522234672629509292324601494159694289272532377954971158701647987586511215317537306266194224417845313939082394672109188946053199937107126025799983860492686160917902799559125203287950069357732659253854272892994894399217299980067522552728320874533792117981571911220791404934264706835901124145343027244914632337024611848982044072049844583145392154072278697828451065171364614423761952506785058325771030398027934443930600551520458297507253663680458443834532693225898634913148214683266250365509966508686659429786122823953490354812675751090056548098819872337002300402556620570141840417282513170148821976637514989755836447111523420788857989373069911058719100064548545238935093992937488967167423874634213959993735433180041927711250497806734296327946389799811605111419489301146890089484329481154838429398873199817058005331317767978054506260800349145829691005233195594908873295511670179524255665804420591258641513826691716140978447920743243896891121179446406431791074062463021233245647377520731489114079060850398083107435071330643772247245528011521849653366197317957593730355602612364459696354627452730860089715853095660230580190221441719887363321083936289940055163065868204849155229006852815679256437915862881036133483709453571111828960413177522024443264420111337954940679315957034998458709497939717536111597396428026552820319864268720478664279650633277828631365738261672405540815587924357286286575618030592974860433987197686880539850631631787476608206122236916440723600103003982353002528600256892227764647655463847862846897719810100542762770649915325299670930662593104384249104624684653113516207963448484928322382381380596124395836828130789055707687408528764284662736726810959234888492925969593096542995253100194270203960012149359526018374935234864297093918276707014833756168512642109750175504797647198312032788470095549695013785964115934705997707886267428371782231555497629734149530174024322601996393198022427705501067166624338296924507422938439059098591647576945778296592448638706341885177411768052465615646490999057713774404148327964577292305262992693319858215103353398231316391749584166207033750938692840563461336449592392007029695115534394458571927359926676694540816334543734099546107679627885647023187675367671286086815100177870363848956803310790600966564539522014181226135000187614842947789150257987694922631626850560684648711290419943147102954271951181696675622041628290255971117401934837129120754673652694101166482591677521261494932929329298650922917861430287991871877869664246791240523748963127068524593509838182308656966309207891297649001826002771984944414596658774688120689993324270153762155133581205615240943827576664210045365627317098632740162154407135293279582761284023848918656704381530448067819656751548611230451229916264415566661926539993430373018784693610126079971887872279686542666872183949063297157544688488180451147575525756557088209449588777984794561045667009752880177638797979087301892225774661606159556281822503459956026255695455292589060752344500867894228620415340419743680925878348328316902898705365213547578080265638175241690133042318688429400645760800936110821463064090258203060206742444357401477637897151741207201761862933873995515971782987353379718942188974361475845456806064838591735136868989772660653669017540581895834875514700535794163709493106329958294640809530630418403837155791683869439018900294631699862561201109170817698278472944623035290031814566652942285952258123340649780005278119765846021406745197300561672283155707384167801468858838635958402937684868559255234187837360256783524419811298102123415079426197074611002047636469600959149688551300612530234072101865094655698480830009172241079968676945431457068539836771972622858634537367456128141928602707268927507423615004172803919286559447284152318018701213811634772133589315901554062952341253343335459917268956977958881769311820492135416949004999324309380588732457996011971640041145167835067029045361289221886048319858762869050989296826568853205031197315295868641023011775922490778375822049161925287085722086352967157926908924005328128376398751452643251675208767465569399223988873554351552402387760485691988754884223919136098616744350719692601308592240374324170912969833534924825821108058402731885642527552912430369168716191917413751694715058722174887648154380688117953454558990799682989145637895265342099552094032879957890049205095831947527026883316494305361646452349982677614947757969902354561914447916296484128460402913426022893389760432925082149834778335111080177397068906519749427276395245672393765729722905489193242301535568918778978522796335772930948481223220772683847366757999631105109772864414157806791015736422249042825078154292973980172025388571669426543188001737791479186845616198523579705467974413210715182644721923655382466425105608222844059296121088573150159414056050178437934123200643029753857603354832747605444922386315570627272820384010866716077421690330656271144849525825735170813793164806151810150802599649372036001034302984427351054706670044262711231967248261311346279258595051539637777682368289626190122823429540026569998571683665452491892961982315273409471040800856736979137852723893341768912740315334715268705128970274956323134136633643946813884631348218834222793605817791833044661683488465226718975176571361581009453809107927483136233895719418239143284822760606847991421953556693597099162851409941944376210829088071247562006680940932336754343465134003125856553549477834212600294991195383237147708660524672839106277226839853859045708784044727675842071560158369413705226612095862269788001361330757885689577118588430538009983633309741758228153175520731941060771252681364668808846011172388223529566302611557116950719908992652908196915647465395698981463032528202318015680240603361110985983938750250532301037260390892881392260598922957307612953203951894546620073421811593922424956674817641017792242911796447761070191048925003191880192219864290488190594564879062303678348852812983899039490361529989851302449272121893416633370107482902721744479228905437559869059616371606628382307374423173094768951292173279249773937564033787873250917426813688939545846388546648168214339628877668152038072461184191508566814447628276075857483337445428936601104991765850441547129420132809254528434471496062477226774567963485506018646888197481669528278417247532173332840465151984296433373464403317002808844452764883101062659811081188883010790328604279556349362851830179915101878291351052961732957764343761097216645926120496832645730109532360672713532923073479090470449227196907566795098197555435579730316660819692132031095681632623663439847085642409375568812408136800998980474659000156853398591585764320782937125947899651091499461393473719418451300848010884519703248447620983315414784927273266663736189077875146921733700759356761369989412439156743689874073082492507715624917817286635831423134615901762332953629639599270665969626624428027004332835754147985218243283980229348313358662762085506770987271202096991342208346075791811452444571821853855840606440325385215618593058818404139018663306937077320213609762448159393255398232981909150109761454772564452907519288232138980610324765389333397763664626057757135240192362404200504591260368948024638537131988823134305856515909290148084126096216812419548844351215221785571890164894910745771172542974281021969638141655756206145293748445088865815877165217850228823500153213059883805047594997600927747086958908324343890646954148112492031430829725749512405488679802230659616146662865265829446318806342300159132872195886067906830198471116327195005218352423203033317311271932449747369676910215490693163679290145902564711558404839782228377059917173833252934046849870130039553039239103630897704397284932875212440630068369294368114978305103088387315770478288442838449648804268713607048434207073511395486504218746896929244962842699285396253136240176571694641244019173566338531027345239735417265389503223938782557907822334171924535526364001534497928709616059755690204192142014776423402969306136159067633300666219884188076545190699042613560010375176302399685230606220209486857884584974022406642036953033482829625454238537248957955861015549635026722791680823648711631807140004412898349297379036153603967144472826830707533399653008834668051282168761955390081164610629606399717815217343908649272006756849865750203958147724708573197527417006702986402978493327467947478555689979016800608177411337728314582344074838700638330889894079249033724248082438201918342987509043443640939276437886638944513626849438931260940044213653619952728949256651827057255154690480182757429262108125780181765170208993540419187321097529387709002425428807803178737969546121331920343874775928294345229755909625644070204154659485215255921889792877848529746823939706730495956414873297469028421143075166933800887275172395150010090019005422596675405254612103866035476583404993785245465423394969445385051368387844865761791887419617615103711079305292304051890876666997163729914250516057566487822590326046081601091087783081885889287727745616130557693328710215076992700877153815882900440461012247103763764431705833942084069723457267640261531670173119259963408114455502949687411921754254581539259596793977637700064231625805080563701769226445064443486050186929571035750153299981249460975679289301629577971063908287282955680129611681000039577397879911677808291061227033936142326346371165384305530273330693838447126330987913358578919986211911701379380185601396408523639657245821030148430807524426669202081633507436395202655934962073014544063021914807294912932836192024266970369034131159536900271495476323513122193938997479748264678666506118175167381927157589426112202110222498130775620238710221659991484285059589458890401558132063747611141901388420890018715366129078760264640488710449892131371915636142018082497002589683346936734186205693330205124350719949210024781714501796306882490884203497983088062115726158817048479857291354174997679121229507298412437542580509146432694845830215012516018271841109639351267412586789218058488437589653031497940814780426740483677066127462530169262077280745251599481386348655956769830769295364172744299827284464653508283177452158584969321007540587964176181948912238612352490544005156063109655220283279197313010414776996559033734580893046405107824424811941240381146570732355044740964122604837541843772368680785833806673180578751460860798108148266145475051863020118198187470580069069680867374539046495881451598551073365535929358565170885564162502321785557133951711760869508893746002928377104857518315368489167388330561191585871978711686876600670968512229859069169685296903510650045728767205031965952446534992514608520858503501515021261954783148125163217383857708753165732623952445861403399522181426718920898952367088771469993312741575400318707364252083705106329900885318943886758826101910852970972671686612044841215532654840169647057662573816101316086008390207505081233142380380040113085555044173605341211268734483156931952007747606851855519814589978084499398968562989744782677359249078385674448363161161935741067703181149476511677153622075343248533371633549513178388176081364515342570773916742961249475390534889607289791658684045240397549106444208462010357674449389687243320612576451996784893793419932870776537892616987885139425236615658623319690351702243339214624821927788982779836236948336962526151970532356901596846064794405003435038690516962176206769774184344202711635217830766162165750647018995371952187186411995852983850609664134082771246111242906812479010861740684283186722883164918803769199103921204188044560242866861444039544914542248366420046325463694388774289118337983698232508126303911405120201690661105729031977295953583481656723657553357723862971110798947079352612776711083793244251019062855785672199266822042743318339747271886729805292357964544882117104260865705272525359150631187503714159115255706467008192718476933845515442640224169285359326376404891333120840876551441510506574301431599326917892800211214686460544556446148396685841941421746993903242567104252077452935022925292070351070375308844535151058460693773099664777078994877332983178024834378836532413787264275074287776732399325896560864326136221970235662307352573024408742394142206847324985110526879932875375425481166097556836964901214177087148061013569357310956024384598009208559517242033678398646780504286756969702482371828577727101177936801170170576143618987279358706967768014605005363167863722155540906631759708116912876653163256904903505570552455204893949711553880511295810539134947364061597120440720850568091594843190923099434020246801363157649482705517454527691741992467479456387228615105475320966312461388812154503423210222131086611506135969246322361609614481102623012687314088375275673759115352532937064631621676034051294583586940372367208533956275782461311361675753485286328261512444850343657370575786823627416029173584000173276349259923283162070886492226579659813990227209600249435051600278737597118954826638712060649441987408099809769090796364378008574468038222128079430820259572258269878525469508098643436916044371164822604075167561315720407816527918516379902016095882684534414791429384706341103253549278450791572911742936264627189171081182044876653591233857990581128679622650182138358199460567332090509603450351398287162401739043847019718546604038543171500194000430069226116349543902774356334885734866160790613392925211858617301235622128170212130243951149962811600715054982174522209429648632460040637380843180654188314571927162257757388019816837061937647350958418966898609678058854908967928190584795550168956478786204155293726753289179827661965490719427251423931812543398151947346388585275264217832600765067707771837796706903793336696784887181604603570163705019985758451589867793560930260155449532000216329351256876617706797806006931479697995179186667017508991157078236002874093732176167789139645862126487307157377996988051924695339461933108282978838610287216009083762420175043170218757560733045134959803255106485181333824233117498246922239610758817456593075376171367938653948649654239715492984859221816000773944952210117279204050826065288675920122983319194480978696321306467004389551414604805900637760019098748605563799491060594133643853970407787486964108057548058204183228710067010223650497722120523775650593897660811385101453914779342971309036575314469054411266808624959200369652692568462620190382882754229339126592958109160075648668243643645640860996561218600561344221726939420774949892234810223454491198491197943791220089848441547631786674184161841915173323058250919460115902967271557520373769665664423294058113311834584443234518471010756239753635582840456927302731082314399007795515145083898030296490724925013215602156312849636426069182542834300124256084813297277073874217706537677345614858956667263639236071047823411394637745886348632216138388261370624173790695343358243471001218521890077484834011884067855027958034046569905991852649074665982829345427164832491795955968576332169668788311473415603476883936374140801088057848529098090708570692959470789391766993544282860554123578604307969290049097350721890490867904924885973054657497402281726688954236339874865673729404272063865662071454443588853994073193317148858884217612053728026746550920236556064105840549319505099735795936781965039517075460260212734686562733382204371335808556594397709469563824140717229951111125475375682981389368792110403026805405254212323165848864663738642359819423384831405206660708570587482394329329718329290698063712134550452500152435717375787395239594739383211863524940091016812910218983706617270611010281143539986480296519171129856471820121488438018880153253786445595005398119172070334958557511370077382099059681024063868869386337271655524739832735801126665351125858514732982727767858143832792145914519394418546497184746689590241434760610800714685963822191310406768684319331060297486553933301391150584286125346105144894621440776989194410993394826982225673053358572115381747834422179124741899323582897330815537254634458464280955915036273636127280185105565890545576978596275792560525634674879773317872113311256990312910213349483987868771729062885176293626711470006805537978861173263838761598106428244224894451238593717908286785790604445243478276745974189338910602973967271712726895726781673851016887615515212890741543360231291131856382705953169971547038292895932152606246248317341150492125436925001620501530330807898769590247238325522470877462444116616509972464058885129123384875096268828936000057546073753710872899948251670483531454653721858276127632714287006669203338244327905337900500076732133882607718227474780288447097477948326911138558305869770719934438048850552634258889379867102462723247798900329285040639489390179584227110937816747180393135143150465716205393170729492241503354948144990250862592637937914380195252300233985153687685962414626936655052415109048695284230916886795259898786038938016275536242577712394202243963937138203174597675961386345762898161061857683033684169373989290883029465784572471388309340826878456903909884147128485721750414834740708571954733839728568042589443600129853621078979580112113605645846055076667429317806605666287705032133298496429415583504898271434374371559488670600288098014675814681221865827593894848240324110308022163454134926580834081110444653993026066543303607680604175807710581242450844069923510882146113740950637031188534372798677132655290623019387551636807584946364458050663860769565629500455687001474884877420583689491077564109034703813011577144105675603843376335808056759920822367013099408749784013323394178246332071089625607193697983528416262107630507878499721670076608391665648043169307667580298683950791400307079157491313267521865785911641795660451506367820386678012551532673428086063644089183789873894214844119176335015001719550273923771135454307363856049225870877919680852967333919574654514225633676875628831712189314082913110627672248635817723579735739567972629088577876074650352726794002400723547486913985678428663879265154382644277225939962687452455103815640515710975222148724335726176851529204899778538148009029104947363893251878634009988682536667942957091749421451740562330561753238978167135893886987772964154382762192781816761731926482234909588510309111049614588237130957801390819447807168975347123637612497215775789315732406629544810519115134793917185543757511588997097138405934522669483817046059089772752842456154855109375186236779531060921763611503492963726443700116050615693755751030948380990078614205333115814164582770915675171206628827087357892420398448661410159087857301672003394550755328197245016586522222519048779108656355000384751221835524640205701280407247501236503422238527041038903280781783735111310625815444472562504451256563326807047470204669572459818159016989773507681086585772178878372004237887505712639829132358049280671220807661937450639796349630389434013848156034880034240785553200785598152654371975040287193620940362871173461146626915862863811266612177958560866260495333880202932316806246041681402195899978105035544029203262452885382554629965049214651643487733631376411931436795528631122080143939823724006186004674839927633163178220449885700612542264871490388231535632910963665027615739128133977018496736220373763143267051027525258933699258809078878323440026117362925925924411365200089899913796729495518462575607892785791115561363399939078472624298296973955533110622644038790447150788056993234123006714001321212211745596186041437690772412631964598807923139886317936851621677973860759869237949461710660286388263272182568612459379815923968477059083336568459861207106457375383760236118100096354311261905181199428817498333659312498756250062212054360346741418067295357145535381623877899121533032758471186203927806401479092236827325926339458377802008072336421595960002469796123520887353131749702294401350256463881414551131545497827012421110755530063916643284467080167297383797600826671998134785291666302146772646682814615049163184128437451165867851260038516310838268871844071050103239541861914970317396864617909741798109472630141513679846927347054894022403361196266387275802986159350210814031949290528707753168283474108397166753770701452786023134373550039689162991697879925663150114162212799817073157271878652455719887358605254352081344887634762861708045913639570264484563158511443687852351192379899935279689364420665471650424661904080330700286195341858560648267380932367639354704533771157280338189676728246379426141826342707002133789866010522235749757086637112460370424726864918658608608917174681814837018783721730193520644385755645712037876743584544560057199697439301379649379546666353243605730944813474360933241844624637275752897457053832095374789033550236218062345527074937321530525120265837218414870588923165397673424424254739173011746508044776594018445765429931027471951722172568296168758494307959285021850411304535266847270175493070942630657415076183907256391454790337802530616617634079343495595564701502585641407559901987595642881480340750237416485656159585534558508567591441429722840257516713562458678925470377422239571272142938520694859226605619793877095589588752653224194091184956387728823173813068561231773844397384113634294508955970637438706650645439312905943920159989287094507899216655154853162159358382545246462531860045795204300597407037435926812179570331346531494128017428177405355148120592631730957005113303623782834493367154205599078976122959322648944183630564384097050413736656234658899484757657209496220155511846919872501399024925790614503185225454851466681365774549474956142543200269175327397740258840874314117405515947940681547093408290539735754070861594655950402251337659818701280217648837982294371406228463628083772566202696613759021201853692860886922113616958504881323804361153659706621301076047262176011809393505488181652795682843101784358318311400477193385203756622045032825598100461826331184408419361001128659202514946033798342053913450287134588316155016885299691838946163449111389295189573219613416119372168187646639263006129788430012303688057057020131327421316409113986401237905742018820129899074400398263338932495472122712635025488100342746667011661696139372508233048791532329578203527409214538943300282045441730988547592861785097819810442747642856698762959144279881968811327725631959026329601497731550077712067979935397063975981730580721375954359786263001341619433019852613743500035823629564387108641499563834761318123171751330034114153685045362415356389486071020070050072019622476576453320719080863246059193390039003890869698545608734470452032365510471727635459804101695741854909117901636600550605280053281349858298120351940200021941662715349520637168629447886089113844964193522277984655561004177958896373287889552624077937040528657413984205326553663318525453799502892668159520560593826761906527258583824079411716913562041412799155808298049781324875462280086254546403116349804425255424134421916359754989054115555199305994447359687935364101899345703860399914998231143580508841226052952569157781845656190205024362945761413230742899446573461379225691265528984030085133761802298703397191746383076466719461886941138558711889251660091115970881586721057461701319533839599744903822800415650946561164998821839042878058971453624902021177045592640464330028833588641814739605353487410156108035503162518621623757146463789538751927106041405024532180815071242847304496645377606621338479140113534524248204494863317120912476190381721567365143493030603062587652882776824051534604494889262099035401286571953994281779810457666462844602123099860238144581209946280352409753309367818345699335700436823757356731754499614674842775065540538478951512461274651908879611497951780855308560862091395542447802654382091735599088653852309914255250012180810628818658554714810981291798456536712732977801829776718733419627911596949025470102799826248593269143313417359900538219079350077068852517962219994848778132213140412216922446358272425688324294375177296474465879393513188992495855626770244356374489660909075889896204859642414347801733462822182584264010410778411306923624235982449039290390167991117968410044664694253989553648870092967750665701220226898046089717757287884102717199144237897243106834858724938834259862064647909261246357324430143937965552280546008144260021578869343599622969881034246149882404272585525620334448743928139498780897423618475781553008332528932416386241609150944001989940401175959608553165605262589730814949962136253754368118293430756494915196532644711420676514715331335846891823686611414622571285000878141472368336628055096133584792224373591938709825313171388888842553190021463025285565742416160863612688919992634422489204411952935300472215148037744415144122926844422316848465761929338173376969502581083275134137042462994751284849804424438150566787692453366181195413338231845726378697366221503852959346129617672914817516515119078808803211249270220927389121695886137548143664514723978046356556576784836784605991922458517568417043978624324284483379790642873742123107775245333860122342801688064264316240797452748709677055276781881374025401538716410516225430380676796827944291144659097530183360985438899264057639306098570290721299626430953204925605826088205893890425964195649269412435403318400151004740095924071655377183285217407346997820357776199659035528993741569185649207059491998800617212319944064426556150177069275506984720127007197266379237707829760978096987113125820804051449471517333608269617125164705846290329534948221703409993403580375706599504529403062668327549799314498520258538685020423306743847813453316233399629011868824013395602933522542234086725535442496423599399973623213270266140456199784810068227007462108671747521027309395564278744161153571401831138240298037280002888676801900117676362306676024295709364073273179514845166203601745600391185763743354879660406717332284784956453951839415053716120581537607595252851660403141001381592322456999462945556374659970295605848694013337001799155778038892368167970537929553439273876652017964828765483081184971792554623986827493994135116306179147653529856879668916191636502574808101031638618092706023756891727162201856164475658236341285443629783982407771608496699336921220094074728146552208528300712677290724207620549722974501929962667667859346260635843334414927626810096974432595987996445643149496898154917497126181385791120766360752349424294409131631638210356152342318389352690932784605029191555078375064000774002061822920726536460366911080910821017273444902838624246717060721014715895738014571418279657095962168977206016923124948846857312536899094133798394901629588488611352360793882769713574821412906349583802551414954327680709722575156235860058892734267097226962559022747806605618575662104830905195757894070770439099042837134214004203418405120825889018565865471261819984968550439501970025249415844261858854397580526752424722292803021407187149666642090867047508394234115939760843781526336174148274545028854876717491172163928383081435425676595698740862364901645733025769448459211784073649996601187456113472740163066070341743001651940187834098203103262523949526190057704719672312443813694369812504641870731030795909108502950610443900515051018177663325559638233409344005893095130986715894267159536818572567440393883451869208822879993675683311645833283452035656835527201788926651312588924756780807540020912676634806035297053719912909152652781711345984449262483417791444598129443244847310486265686686907959744939422082261024320708581664722687936353699617686619508068872234507874969455541234261011753831785391765195310147558694620970932074135612191843926698165696286506750842203485963915729234981430126504216223420691805171809663855378809763643658062047183499454055380179304529855854609363104583514429535298147135571378585320884689529562877463315111548148736638961927277020169502466487146143658999342089410347750667917536646120890737112819268800234088827523875363665383439051507288517354204353817334128904514108837339265428943305264301017399714145877207194299344536223802021069743035795709785818672803536932797166061742359254618765327757090337425556925996903939789452807011170560244921438722250266466726810198191736028346353295600301869349468932016930316072682810783774833734993508193736899075288711400363546992145335765991949642460491467357846177872537167762329428770927668398866155427676041240317612750979470704437084534623970755993897664664681819841314151960019504700293414718864281263687893695516529842444457675903447980906628042040284272629286321203427728416187821308192633042303493123526393701571386244041183625979196638424533650335773903365446917216934800301419033130116502259804151393345597169352398436669620607991690474689867707136033777932277309719230023851153728516691161442284704815776590372585227202299222779180486387138477092074484875727116391259668391546048086800866200780853571153389792097372270130474467748522545215503148678406433678451771664960318373380766991565292217952848470273986307426703624450789776037561940728739168618609937877632808741041893163682622432898748545666157584859900955465566882029743473639051550404948019969578167670853274982660132143649237761696126002103090852713655923966748756512192729390785073267993059314807554119780095149208710742893371967790432799216300423308175138112770866945832810039209936490596742006530262763281912953436265343443525012409995716163928712021751850272746966294872284480466365323174148463277356316408143515613086402636019493303243122108522892815453362428848270013235478861550451713351085158741257399350015110265276997328870659923871931029883418871815882312531822207544471424402874586432040505564494212884291727466872698183065255239494522491621495988928406696615940625400599071919496323172710390934644631842614708642577944510893062990387225622554794855323124002740093522982275030687183672429506094654291713872067184425382469977043330737050323837188841561421126484690302580150274504799027058428425217589906714949541160952850152055602055805341873027408440764191696800617682177991234146893641779996919642696870957794358595512772844392802025273710149518198709706338509374429692922507760667494244549953462184146977470776861744720136848266846756462221297437387125380502866121686321522034742492575109170319111162422829764707259009771113408644095831539880550855830958987759747602640051081471643381644411386600674764439030869395374648400865972811786896456196003053831557753920983296175809369326924739305241401157110070338451779947812682801266000235022559654494755755495228109336265844809399534571229998698035171821306377751734227144724234950909277022398550931299115894021421179549449335154342875178348677056799833173942846202342605622489563746970132851484243837554095485123235508486475331261433557531696435138675406399814182499605804991931785926322327034021225925761543118151048002064691544152590255251293211121299757912735680641004217789133167969428054649480170271976317081359243671673204230469775981508538635455633833514592791781801680085599202418934806931283761852548659695433604620865390662864294422762111310249623621936314882276793297603923388913233427224229593755086884427369727125094104035530373942294267341297543122513762231473367833781167904664514677817878947193165909684795073473192555432400484932340862479105704281717450943076036315966622635254114494802160157867696104470649487506677817234280660020575284360253789630122513148802887889204368963000383870702282574730568669975999364528076247991134772454904161448092683821515442546164251851089115589940819322108895536238432287664667730690830979816453973115653020522810303476942254230594304451674674238083571463636493998685510352631929934207276727543054457011119830041332672284166596156459052186003416887740246819833366425065691904999949624236552910495948996040922233361598333119298068413598883449669465413935803017169813061435985820106450062573482375682237425465320264754868009488287871820794864825632114815432126637925539319233136491299067916368854474878862695836189979549278500788433988510562754805217243410403106172524927529603403981982508352757880140581752977320196432138027919343065340577556036510312890389196575984585282564635174434900684567624451451938116284383527022622681924411995069026479838212240520796487484495106561400133682892036400617181967164423244494161151728443169792086966439556095236128730971873559240369589411326734706883568974305883194915237694222436553361094279790596651063265484928581253131520044230323382789365284422190232347252953303788477046523619785368191715642900340950052297866741293785669594671283104617465066296674531584790517610239084065677998306544001109720728513410770766452515153079092126875694482443547169183217880672311944742578012727940826573774060282025238146917367379810674553273552196094322484401944423473181904120339701127233443215811249466193656781489037061894259143605603286256440974700825993793171852917558839539635339663502676455290930211647071451797015941696204084382062714123513336398272402163632482852298996492463376031430942377685691821583862688764806984273583872062364561306973158843819011019511281383282431849551926181510554788610146086329706339551408290817093411958888627248083134987110561636975906380568498038510103078576171772197631242893868189857081102587370823839889085987561015225240232867958665886300294084683735323763762011165708202199460708199507515356110508065599452672285224492245668615413198386640915463410593954482416292502512422623985816745700740534794297732332244058880515842862957812660542038560605148656795583924441541479681994863902275490640578218456818721250227407944844422884123444428792368555831918295618502798319149053038486293059385686836028629533623145399582868200005632377725843232855590051080262315403820671619384870693209007501784875517498479551544256044738209806251695418622925317678329790714281099188344584094010771187594400634627480785123173734782072959611934823528838803607166217803259270201687024574407319214993141676650168223375461768386205538082169050982870880406360304627842884496892955682155606018041689641620161043877810705382600878901184515423288857783349633124109543071636572890043711862899488359340920710760379830535601991231377209712939759948487457152005608311336861775497479824023275666949624888946203023403308604873379797967406483482184259321296860183091230604782362101587272926786045507387069667514437415220675431694099250781153140865470401434079749184817622149860003148397126448020488535362985498074045316185277551164209145761105598700339492204660054224711403279881543309173976623031487879031061938000449858718728091089102273943645966798001434718960471480300127500348834340317292244343859692412889977956680937373011760690877426552753738331428795849614607109307052561263886638101741489724088352790028108563428476135151582813576493236557561705128263626029239756369386967202224780534721305221442972825436129090723549751975305905626712689916340658203681317531106205071289793689751512066732870992862426318581596004605759154359948098859449888183219176741131630091121087790279064758219004278214776897132438344761869872962615686857515710070466764467992299130218890958552380769750138061921025449934745324620889882220265736203079786399135989085911758364894918390616485553236910802405021177996445018261143439192291919369154663894024302364981066087502506642915758198379988240565254319758715279730716334181419971100392911501290995886448463515898460861381181650884014232360903658893258663489038140842997100267080192671548092296695098826930525336599721567416041227780986593117015579625177898880842398725630357731825999510176355474013927516545699599293922687754978517986245120423123513058008262705232580878239919292894253344728645099431858766277905755769578241745511875870426973463033478275484436252682920483032326934654352123892346625972413850759626476620084772694190817923508222649544495223788643707601982649540964569185419020338878959050322423363873844897101934234465514958103942824865551121570119623666192124037342394171884584550913350679250432837727240605539435568186765359020138207818844351385015352336168791423725613625287492650613725314206726531422930361410229740875081623333768962473417279909184338378744050390864791761059197533918159152162387386848635300237265903671772623975924779872788493970600303482748706650517096768925719364097005025656935650740163876479284376188870556294062472716035556753441838255674991767059453145179607270974997718051926042928761529489269961838775053555343429351995777736340320502007614942274308225109593773643296354727461485758898680039762764151537184897918679972673545752612275664962516772470756098671423081136417671857874788579945188701673313379499836126186715832935129991194155552379151583248370391655938536249426936262598180127556164103233639648575086983469975826289790377895540607819826135263003391469035948284184474468551296344889768324956299148819762248080297480059558623913861947814189688421784424264531614704871004365487879703855846064482605520656550666491800854550730719428786218988193898202469064905421232808817895043366719287825962980600498280583794445985183317848086683984032523505481317096743924415069751035856561124451013236379144468853246532590802608847979382070368030936051366444306540605072336489600442940323469068110217418302318860205589828859245562245508317706226756213593312952851260228995054032751555048822441524771943227474302496373802597397453852197135051466963508897343665796302274607009843707007261540644747460734933644289874258243545481254284434512143819302859837621732264865313319292155075701267325429504464508711398597151656691186820456103696695363574912294746980898238070295462798347180814148708782357581913050074476580107157248399611567780742807006957633972121702921248322517051547000431577552854770402379953300427699617928295576459630705161307738135836260096919957641864738882439483020374936182332213737836031381954749101554854301267929821635159088775019426546218432012205907713111828724021331392450484952160218444298217027853462263766623849266143775943749706413641734842416026272215097695529866310122137404500566481016347214830482004078670051538963692028974999541956254027744369712772214347388071801660136562170043969644795165874828444010408151759371532225876684478561718769174322553674141531827911809239733213437312877086787224548481982383932025321121384077419324080188091856007740896779541616077829240975319714526462858262735052045830270564514582040496656689638582424973693589430775525554645558714045780930903294813389599708654809621804734325669319186797462313493803358172109941747796866391743708844623554339147159603423442495974295871159603916753921825250845253587596284544933630753721180192487184057253103809676955307142792545755339121331591579984085225039348091040014113042600219545473698550976932815791147860673107852849579507923702450738904252623047866692568086846913994168971523410647362116800287887106851892038974794855737250161582595754105262767896578375248736354128138462368014885700823054913644491887959090764536046449742645247092737388829584297941932390922866695946482228405417863990572296548448902265411811636928603981768229273869414564776934150107295034991901320199589794290839891649905425805414136426147709496564129453058781314030566062695719681574944287100730035115733274356648948077548995736245414860358534140942533945498399984193906312983630860859175873830370304642500749151292762721179477403317878422103090230436011784528079800171873110900460691658915750815157854092889321529486549739530851208842249023957431965603679228456422784356157116392096785363824638519616768850763546244879795491766559275126584100078392523197638343830147169612124817156323117154586337238232325556459418256057486977017685675242234402587685998277632437089429572147207839207822537115732890967382345155695588199373780372423393920075667627446851036652206805286081420368477498497025005227351822457555116237493559183013576646898207864229930837617287594516618534125932602301723530918231043346585376549055523635878545929740800130772994837780025675116439195651659405953674161821120395990804921949917706919528153557786153992123774371807273386777397108654432765845516927398862477464114796094158720575828185561161762311644583423995111550280825324883408631197876062111782686487449939477778822734402154857122107722219795600768953003834939315071280022127872028025188329470711632493787784380134699652083003750417683024892940028561172353820856895335607693378316696740339521921416467853663090032460496387394148300518399577413237307845376560132352732653674658035056700694326829067830705351885571595825437002942983708146908290175344375252000898700942828717055029019209890980000581877521891276470243772461001794905595210107567617775721292739580582426543551372224703107845241696106578442509759933103803628024708455295450881798467953755882588043491584918966807485044696776325844638363920375910425029003126910261274488126616717948661118136922371909248018721899012735083489396390528531510705950263778712884923179120225116832714260954658940730628960509253048209290147115389299079510789769971708147363594401542028642971632105480204699725891122925734861250668243562510806129123085065861884253291888138537356296649741638723230145106913549562139657874099496798451725320621379721662369798994107927264421800191486670043949295041049971998624700374733624203152091607361984162016993858298663133712604059819469102604031050491635447991655706310069742112071960763307219101681780540211873907779696278750020543391317127885916727295068080303157156801686371704596980693886402838394134945764496929734941669974261642850472469457218180741059504752413509378399962554878550215956263438834625867711153436582968039195983560434074577610168238149547744178522975669903610826521341214442418753229505973299117948663494300462968409765227591010363196095588811715638265697759124732327749457848944840855062547963054899110536580746125476382033542169520006528897878175368571842377448865954248033390714211030394329823135577905649029003475317756260685173053708449958098068963684275953714789583971569192182643234182137797278632867579893348341051312744818044806114591213129630661778986993591051207386377544690756109367676839394480752265359576311737909268683460632181823941725098507203062329720289873791622041549607576440699481133152939411020350405108152495840072012038958510951338619320840180182706396009578363768220008708864326257215919027297299294147091599544358626833284889849320082012642923938067695915842189869547726719716042646008565161582483731870995325709759194006350888587251553636025445616398415365298694361244157845376516140019118021872054816472244866829767635144895883068613599329325662833190245680061541227670061513196588983987080392229708885555152636051431872468233953520251367306397221652788665594131480286794386723063577098461131118045500817077454663637625292131250614149466865681648268786473421423023682401034082181167625617509403630123675076801242618196180642276990993025326216234420890023184557432359166289000647068830452617553396786851261338029704106145510965202942211074658859148175586278143518307652372954101540592933753943812682197842385454465952847242841386615177126343639102950582092520568201367849097156652519419015420947234867051139943120986280288516377410375996935172516506347761758906837327902110803999236681682156576996537046272945415099775522102357960732556566162638740093439257039774442075037895373353013814974851897472930663301633043072512416171941266035824290722083658907371832368474012281440479754284091831293461633007852896831744617557346643340731098479474297970969103985275738381276372339968349969755608472469996186235414008793945067920788458927804213320556460578858003753767766000919321749469062978899737494305485809137709581450455912865215255483338783866506423782270657595868424779584200952431328326629741929784784817132895303594426345453871636985546125424009842882295244481137235212684059004906701677655645161485118969103866312683670132849531426593032907330495813633692762731909732130701276225491493532741709240708893538234745743928853027558204446285989274043769169398635587944781678003305182159010757807848374913969047863972744857400987672190246380246435679106676894960239786133975502975454769329053025642682329489529192047467945803252963719702921061186583866938968905102152883641445839942508169684885183414673249948828745499987192251770654907428769687806722333635662665265270225860692155196222479058063147304455764316320778422237495958634287124438893388217213182674012617629281047192089405280964114204374685941110825850241376031574083020281705443222149789092394362083708331964730168966359702217408030382376936049199804013557316636884337372091263915848249123751594764400961667737087865214231590706837451300414592587671944421492959126184556823133535291618670899910579933777484289007375924538508765865421212638289624665887293539814171228589192877524753061837614291427090279305189698693910382590425477284484927009737779653678984995710179906487315874871415487951629043954700783019265371548734045055051542030113783783347941442643321359918326367392392458275536209333573435238732625674598813215330980651593818613540070451457710773919125152796030659331748951235424576616867971019363638450021444857065592070668614007251693049476553956719723076307644432251472639645783197608616666537588851110551362604883861779089460022891465969554291022259594403961968700613803450083084436075511596316469181144521106451850424882077913156222170746913406114441621088673786394172332464560048692745062917132622464598912931617068356484768299238360608977198705683541399275383356033053796623221826328140708069750028235489868061494217240241404638294212464369028957764113774781083728669124558723841577426704151947479485627610807208717011871231967445781425646911058856243345823103918847131022793516447921856410541449170794434003689867004540157303432364874754160147245646348689397929426627721062998263302795491884386070741608691541561008269376739710853220181124045516140581521927768119203645287873022073068870489204572605038692286835702333711714881330056734440849192967989774402366182233807425426774550314481287557144165661851380863162283846200851297787417922988599217969341661730286212580184903774106369007473960987628232188596702305054823542899763119938792016431011036107265066547606616052324733998366229100000272929029627896766338636513084402095309593377113028806724401694655281744362661739322592481808799610101717426425218763343101221577820302405909856494804633011660554309413837181484038189762025185050723794008176054576019810709698936829636248665131009588797556035755686011080804320201276738522948363202682502347307155208401686684596069124977471818643690651483212188257852815041163656302691269002143565919711969763515529821838906402445799134380226149906807524470726289570222130851588229506399551090965995539864219303920092466014214284107215995380773304580217352080182876278589391437541471267017005387290193255583781753223982852457058775418063521547966537184054969283207305332480477558331803123175483169032668543818972158135589078284924377128585810809428006897058750815126495312768688726739054744599848481423124352191119954204938532660846721881371851490227041986064172679437024065730088698516713713041584289115637789029642952908856398938154279870408464378742867876421239555058160642641798633334499121287487969719543219619730799111256370106076686938920583154568597902877273384920245472969950983270995950612404240998110084926014786182970687461238205399692492204717794104205003489913719852516682302632437541570743954478127723266519369115286609671467890936944444838707334164102876998019347762606452902687852754653030750275527207255430852380424935395098879146292638004220961714912293002080846201957478471843445811041624609305121686155507004275711757762077073274356281215284237167630306284833276676174698248135301539848464767496544923719659104880973251792437828819892148701955890110173665038524442972559655996690981015243791144826506132375565184700864528974777262429269870746604861350886019263932017225125050285275268791711834679525005452245228946333028510178232247441367225922459850749755255717777521381034134424715563745345620435909527918446121353815060682434311206049649403260335561973188877145210597718942641442010675150498160104481859860764606295875391173673972496048477991597274211657038653148897668489800777365772803428102629340818271917341032543079578500161729217401523016969618034507536967130255610803233558216962185618589122596485767809266526100275027722853015586383608483463636303623657976543559571174941291977452612099917564583121264099649693578947122901122127030256936041135374070048379613772885339871744919092825803247100851241518617929922118462443995169333217472966482651366091041167782861874560151050074235479052681057064207869932717475819172054302242067755585023626441816117037658648434725224319969838122447027337057723070862692312687300758067119078660664500225256355052137950070330516776981279332560647308639912690952137404277752543749308474071967613253013386358947369014592286528192069791376782458283787657353156293964319921193299744804248118966132432113887625787777350997151002332454813217579969611344099199741835569975165548501138243355490888372922138583409615219236844107271698654307361994801667363771075313476973927512119122784829428781178478613920518580962437702694180434688027216452660346615306257411281643208821807319767595694728170596484806614463274958431099442357507917607001197189928409061898244873149700211041668941960196283273895569296659840813807701569164557895968915448469220199241865231609217166075895095876836255037865683699079743666642860589561755455678561945361172922373896448498955802291586955407752146097997853721416324956750788280213865054102994725282200930730825425427626037392911216078176390658283675496327574813059706438034621973035299691132450473276325981966505176677008911546964842811280190658512204939971784405776774372821783611453650051505723814145531528619825631114896795248156953811436659046719098322246579163771292907856358194083843356714409642927122027751284957172114265139313028449536871161185733815303176162809704540252797455406361277860075104986682735174314204928537939836639796035455695708211479333112047791802066428863911015348877664190150680775059053729290860019052305738012739721310549172549332718557862542774394460749522074947566950547418708913395423442942240013362281689306141736695154645089633011179405052897787363893905082732625697742333320718175793688772183689789433518760663267880672170029516603465852734618155749353638854788090931345090423543585154922007755730702357943178995873948041832363943561828985367286218029133098188086259232015749262913759012919937795689182789349563818568253857406426930580965471077811193436695181664395929351904377079972121552100421364997085045448122155100274972230570195766738448109194298075224452059086981421452285692357876815659683539565885529923408954961622327276522919291463184296415948028829970201930383063870108222461552782365404081621134894071965718071062314821003805712840795691773156890789677442722010601967348545836132911261282001362651917324034719338745072537900646600420804910565713936527773729163342373268136504082547411572521858323808130435049492340835516766844644614618239834121447163798985473306397865280341149136810816758659443297554260102573025095157802000660211760907342659550392148749647265140439023354931244029347570626147258377502208693800907189907468182784128830751149371697468272013952286780480541462440065450313419159869140839033413190816319640746273315831278455753577665089520657278205701536476518075462466547458292298494889444867915638054434896447480607024321378044228643985241808918558568716336242921211588735967690501537587772229380400848619166790630310987347399272304774642432747889526760550699210877964296812361655362517775724450068718751395169097488582636916935395272379866933092796410166039769282767435960591875651636756906847873325323963187934633226219594639400545611493299075891307899812257979556629775555059515103193667252572708156793439202472522985533291889547134698630855153222114777397180751624855718337752285743673317554895464115333074799845557234015390059537730177226054191704486316521628596174603522535473711237657556877951581969940012240215056788168459075212403530230419263394583304689494736084059485678865429744007532034426519815417650317204939513916848073791366843691504920660412170410191691732430750115345467460394665335790316658465816344770106444871126484691439554332988823237367078638168749487466222591913826024426467715118032866047112089188561565256463132461301041937319288493362592844679634596547300842269037336468136551767366484209562820495291793339677906333537781629779115725059991886215933121723113078850224722629801661701552744593404192788404234739807337218752950002352807710765655968375518487590770085408621143212246148734236325331910150718290827274300251863853938218799894013837455697632647084440593713010249955753691734088820422085541427142081861819780187289198025202101831818000846204281443047921947825742757413292999154685951286144686513263677412285084670133744689203254178540442440355137486193830820122416145254549759081488742599929897229495140987514807491646641115009241022605050394218969237555746197737336397281204071309437068344248290080916830951624917921244788999360492134493131377993191705106179263380207999178471838252821247348557866359534096702445506679670161773324043907246089659596297640901057318892533477327527612927803995721597844996754989069679385212382484367584085024268221595074247215072804349583678515673648607594265657786840665284051314517586747951669101254341707678832207614917220388061785847369939658457848331816411597372877895409618005030644476976769290996919775125533528336862776030452429511555835169457772231513057682302654422237687338737402948571000621853709922383645996447931356155858422304960284158510327993581344565699325407139086115106306199646124590550635222693487604795565924119447602006299335608365094455117725650421875916491613256743160364789478949184788236472129518448308382933373985782201104732541631680541201062563860290080673597315888546345628674837542896098302369883398714542894420219487777486992916816891639031282919779177426384196997394174701228611695596253217134784652086092248327094610558129915736158866454744300861565624187389805737451777938177695135693078526625847329212154203347292637253923993875190072008573385030715763853933203609316669411197257452605775628290499500699339560925255207791161581442483869902061503382255294800707897405276485798623535979912215387046702184442033957339937918482374710123835214094916754237358238173365936609579855993374609228816470578107996413255031728160908455702912705441814185157492658103793800963233356490549741865530863705223223786451846531796219944460476908041238666741927960126698338135351715189447886265916821726893057065598936498784560576702954127672494895978331981350146040734225874122101631078874675316476856845635325848688992113473342600641416630231988507663900323697373196456399633996066420687056230257776387642855437893517348052221347801360340958503494579638749177448270260535731489959061932118129985485767956831775268697675159057384544871883094350048395406388966487822046011772546404026048027455320995030183280148106894376110742183555684269498912099034860457368717894312368588075810990139781924828620438999818555323977669148687559509651847700335791810968788858573482952508931931876538000087750893933956241054690267748455227646831449386372836968821179182473585270299881515810987067390496448244331243268215841849553425438122080671957670054918135969451059913871980352754298635070027006242991213857924333849044082786610379046627242223949382886578385882823496491704847003077190786427757975648970478954426077069644143907625004368376402051797743713618455057525449400425142187001860104419476271510665035823194879425913442783588283480297813338581083049415484555374986802633942228582838313182325545893765071850876932155586228275811672438459262692030217117561269319345065929470514598198905613871878515027187803496577171768838914516785397018120992440390496088898728154540093353586718087960825389313897875103108288524815178607131520900711327485668750919840181896384406352328780820356290603133872200991720092170470613263156378474187366539394230813399163555471038613731741424364071159071341670036473849025760514453574067841891546733417614111713189982859547817191349530875505121357270310348383433228464747398589021581819014280022591480415465036312456674910426214937318093615552967498782187262383121150439634939170278362714636233771166062821064899462109337500488303828295834024795386940024611434401345743699400563973056090248365975374591863735292704411670373969805105792579626781279477746495928264972373187557620740115853072582981869512977046165657838914966245976066764873786267665809270324897805629620281986520382024492784493263981682381653104515299923403474271393584589503000159693938885742072640472664783557609350364017859603674330545955689467915912658992198683829512845569724934760847893501196419715761018108347812006168927050130151299070507732385231472424381885076133714036261511866795062433941988567361184058103302885049876664640604990541488039543253540005243734708580280608542865016085944702375007559551834775499724537234825933473254160442960750903992480783742995586258197618660289896476272100458766792703475133766777377503474120679951246566221460847750421217098927847429761858819496541585242248269818787263525594563110112914129668215390261041946059408533508957991790698359515013224163356934693535672773799583923140172706459426044032604815560164727686074572829289736076556269944412993379726185423100209153944982593992194265275558750800133850222617709696847790239968805047227717065103323981661880430700918307716429401990994782912288558048209616340803772592286073894065412773528094808636996434831131872680806056552664666195605426522782909143005142349496698967894748507059027979200452516177517357232440452570381857671818885680456030198450933600175319563502622704048945970845796876241822836666557691961506351387130961105433737292081068556646147788356943550710289580646813480437597537523903974899351694497826069694296488628742418421411276830357763554786033375048213479369967158346252205735484345879313998167390831791344771556810610369200714786468126796456377323207483380955514384926098605958032918014642749711851429339649009425247117890890754666272962036373230584260811023039540311051136880057361572063217246938574352888324535619949602054434335036491927234300145079553734985083341693712849970973924706951834581895919098447449419935980479333591823249879240527453444709857634981488347807401828525686720492107996999034958635788090317636386996756758253049563082555802259846958714975277171621759091602373555009881245447310167881968298748386947899865503763838579203318755429861545328476509935850235849098768912576872869286645463074126440006637701216173033909502795946523973674560951574985180724138754795244737499815493067722033358079938347920897217023618656283094994293732891915583575790863395805612547414980438178048985534941023531806479607525881386576716281694224630788405540131439409863668870807719322614485132724792015307233371029199784184608041029582422995527082717714052708270539343037646667089928315027834654851337505186220660676978064071922375556013260894650514994734120621658330516584780897539714231006673768028655259843672193742216710359681253904778693684158291840817332469013240353206019632051233608246998527585813990098776709698676042595559993431918932820707397011576203447830618334713782305525328136949053007429925668853646387312878345834875574394958888649387315824623883909586337326245730400820495762316054999337262795984718689634346101285895337413864554017525909966634816893674703544002780864051148696351950814938549149411953550861681457006281340409337063556538519704593312303744358009112749427780444619049755580660005878804268539782523067354859825646443474007635041273660084723552658573575903696502546019040964170128735530576713500795262295993140256245224157939397152119164083884104573519012494085232722200063242178643082079797178972491301407314764399569014985286125223600438240089013348219708919726724098207963824145308271550827628758278304065937476091440846551893411926208968984534614014236068362258808506622339301719839061323709158608347160551429367424530687293358400772351045369314481844625481063065043872095021601136930240386255988563064097233808097534612959889163287188429769511622637860651914645026173902236796065040876199190449298979919783040086760313548657068965681055491291419152185998078754571726179060205146756941023834765388956849449493690366704185161258422573808410809083910377762194392898827639106679713946159548626477416726536844929433329032974031556186460830994764632974575260777978467811060427917708766743473914083956173318061044550024444360185216857083820445718124955789529839694276520277935103022414343451307932812187852371384042346381611197780627823130482138698811787276516508171120206146225955554063166212137799506027573551974398040522371252843575408620626275549787804953778841032849946728898995816302089660462962468136027740700753708653772837765910808428134226086551557571893020700589814523168912815311893584111438532588340360013861346805261595806405711201095504545059343813986994594685849327104983357615151147197264884032577397037491878521384166752464751841936793524920163176817635751480904699440981360713284485627601193700354748079885981093666983221489114000704331752966784527920187175905125240350690343282822120962692810528467031520139963116176962600815870856369025936319377481256280837730355554220046209593768032312141787447067894292904112872559201385656602138464722055304886497894868341868879815532838666794678392019867601810903630621241931922764767930830517903395263533476439275114151012767798011096172254738957870267116248337302308126448211917909093069729626082903210695979447482498186528240640031216531104472055922884647781947956943925095711211672498619956994021231249091573323598910734103484464612397402236631797098141412952649111116482696905216922909738677165133103663593852034258922934035265056516773990485626273458129741171648845565969339998295536784924129615985012467888430095099914764186502444614509133666290511067516659998928379126426228251502700520824476538660655087763301802725120823392968274925403893497122903060832714750122278642525567794545644007790984609661394367799429560398872164172321508309445541262899334406820525678387905248025131175150053048156325259518070623878816501533835901910802198673859261841297992793315430151202651794436002027582930710840562791835873290988853843870104664064268439083712553713785148538471569090959795634231572688947563481296419408346097062381756320480706122411396855527815585958413481637066836051679051198600694832257194918417355653187003990110022377657466914723843222090426718517478499578332728148970026392574650317989427472913487410980518668823708641784853839572124824964611890447456239743657761426181717395825205713416243766183960576594395481622648207614298590335567140700507315254546801247602721087217150272752251015914977802651796448636014461160422014663076230625311672657126423174291357991023236645474216810308570774870679664978319493077097947761565340727550830547520779012044971642257796045156820703927895570340465121022224103186607931290075179176936887727050833528139264666175880172789777988416453318886724244578138482501412128296663682417297120997697926519179237275571180391549144179918406620597280541995892130484378478013919898194494404076380843088552748250203101518799593323854158227467535987568408841738357148511229177841183224429469747633656449272423065494222964485607826176083241368050133471116580563230037779944593341258968194076798022216910325182753730992892312591267208019263929105314277779850548354146476103070463880537119773390923408172642805087141698117278652574487854951739044821508465807772140344280731123913278556432132920873110044677812703508641544157373231250718729673467522750328958187267484532613387388085347836715928621317723835745092398107455109105625726578661973128784711001487949779871174555440173637931913977819319931778524965078344083738136733710146438269930641778953334014306167218380080776478263707812277800000015364150323687174284475329142248757719723304323261272838445874253174938476449825336889838690083271708783025698877759892288012988774789772623855796606602268937077484054045842194019384503458995633165532755489357354755377120323161043745620060582357276002420014649854487769955368153424424428556737085175922599328930398675793481216540210935804398750599645798188881916720729904168670602476278097420701988031157678041877352839273288177059835830929675262701626583960896957167405381043180666403318207188681407159097370376755949749503958288254501922363622277760367642152562491237479039830113366388728409422807797934744746379960573908037685424487162218817778816673782459050753373945861179275995317792727919594514941266280624041351665294243424396986766689654290114563078401982059911435792282125414761443695640607421304692576397756077042081326263980008146406589304351669084328904717087998876763573228059607021117515817046015860119553315105104141467973179830927306627778749012425490287771521171619876807776164439978123981338810233267507053852967849728548300814211030898998104478146390132486474325881966628236933601720241780426687629092693219842076908486752977484315463657596679467971402213044968417028247359648484630621900891135699073875841011119098441348584296162854745891795381132761602588842662756395845223002960017374350573629480881261503139189764303137522115764858798239480531362201689393060606443377961791834576376437180861763470220279243038588935266929249442800498405276394631612636933835922704371384304903775788264512733943299400617849224757745920343716238502267483940617414209524929586530434092582777748877058868824109048749880399415095862512476551012039160791897716169117054791140320314594425025336030590942849984259021409888725577375215297616414818568573978539373423113036321976546773794916667730476669342324511618928338891928092058641557546365204641613154058517958036428265127893361195805215408079649903242083051306144265643110528756160459662524080610608934909755365164027774673491008143856967017370521007803024194313820199957016466875588211806154405858001229481680063535708823417421573004055544392924792873337305561627467517571851823822898580638357471302241810183541978836873968266099861991016251259217122940489262612531174956563151045473051853624815435198405129775369157150505568281666009402080077478711335161281496549471353494838433014398173777136298623171517266824943363974025025261962860298190398151217301202601891974393952728784182423258646212658130508760056108814788062421877841128979179616175872833063871939999256453487215058097658572091049126346009792543818451994517365149737062401158326887490868149385122836958436555961448610966862275310477333994177914893515749885453710374228245206952417593872225776150750353100005695841514257992352511335531827323639091475776040330188514764706360591101932786770193286058014012984589341039631988065016408068816083718022763136064356185000743381923417781175485245800711070025604935008340589686160452756129244627771866133470466761317750879794624478512636867404096641790810090260456546676126219094879904839569731452606225429689262457106040382126289206751956336232608430094484560425128015080986608999585059284564312095327624469096468363380508991842935885556127326523055474429744726496322876717128864429083133991742611176863167828905151201259500028358190031499031989592595962616589643584350316033798632781644622119755323169940378540399539379201182425350943514400101588889480243579354082468452875833715349771988328054439689816376521974929215006560630963121707352822636433045186769063884624180288461169292654347597805866566542986471285065295901039286477439842785065932296284894939194706131706941727570862011926976791431682784730897572213814429269624902419296111115886352043570620943852052244506154186416611176076292148888966832386703645839238486365042032132954153400442419136666046969614309786891958809783541000970591892958385145359778524181389001064164300458483905721297509383617989531597981831455226121928703676194784792038219856220606855583796081197965256358915398567724708276176940496151728342920218422629264700224275040506096220251474577197825423905957520384440786543876815526413575801766683508869351082710646478475613515852786699142259097842340702934640740363361304790084054486595973651909630951565451197908941782446883600504503914241128595135419991785245874480949247236980666156784187305604355891484328704524764285464070210508831310291434246563422631246387846041239498189875810795972854833341205586306804091167505952571577787330358440939540663478586846575137338213087392645510998775271170491682485303607344844305646922497819921654981583673314450512704415334454059316542538298200170373765843826170098930721239858336856500059642086102293688755460145912534022062702460837320076774964748178297619154650163998636417097350720117642015513076286895127085424126199178088009544957300940449796047352333380911018765245910880886193541677756949254390887611544262085639157584461858892560965266825714529874613527497646714293652812577658789636901261485140668627917785021745593133744955911367945021743202033618983878643595243137963767556751645292854549878763401699223532659573096303774325772350495976724922704942939435419906694409516118153676501317736701909985956327499266144692425782583679500982985273451132308705081107153679480164626515724378167579783434973538659906041405848333883473968474141388016703290037755929264132966130613480881459321184154059225594747551703549936595583899256536591035418861091920397350185824352612651801135384318880620092712568837817518998241461460855521850887224644834024750572498668449908194713368616935324281649049577404704890478797071634907658475520210133767067186487784037042532830498908092316337649412707550912674516080044935955703575184603432527677002435563799510748833636622652770945931415347703852737034245472023963447395650775920183862502492213836484199518909146655486712693410051561927063059822675903474330986890731595875658039482730934334279403319696160023360017469985533371675486129625240514268682592868628990946796198975818939254558639186969287916776680270923521742692087972845015006161105230885129099643116754909022519944078733413395747353099036738661008855917775602440860435164346610049343291523139286487592060102933054220493595863956434539645311148614834451041266174192881978781037915578314953110268812064608566891680784464520563029088132764507530288028365857365882073683397135950918379132338306560756344269892671692400153772564040854459074494018138941701636086681615508983947994185117791363585319328122200914940254005051984645474879637724552662475702531962770742646755127438912731662865466980329461418911064155933327617394565592840774917509493316824729998671255822818126141279105963413415691492092203434572899584826050106565909352623051904656032985936562174323280706522671712243951930330111188952347898801057112258524999399003016106574616424905151081916351971965401144874620128770483640058603792597106619076316881200214806223523892614593656277331377506823791709658788814086514694677731339762281058410861945298321557853338119907561283225279963443025763877225645213348808455233691923296595922571515550037948399927492868961091096051988421836380346528693167093707136723374015388353259400700755599201719328325840493544357488004567897658044450645492059856264482914843859135405183421473818083913482065881797774571823951039577168109591817465610927849844859128656741624905338815746109639519011940137135566409737829850586820433850328949461966079097747865313569685231010144487578578457659991617455800801097539606616692276021642340245082264180534485927817201669662710487157432581255243946475528782830590188782485804110620156838600393500924240929801426716746995339467892796355792253336895070205472531612817661113693798764426140212916887638325390168000863158960523375597240328552702733030084691585601360297931415227482524821990558106765812015896993838907766740366312712781892679577098890578318950554532374498145595654061603505065543379777447737123647436216653826861122385207572166673095956015757063723873832663622331397452670861073917164623724740408745739699056172529670550040799489805668524124191674651586415667884159668841552758852580150495906825060126226048278983522245991294197223393101659651713705610231604119307579090786128471755099348650255630546708418193735304188078485663374816935921161263822495201532839162404914153307143590254140140992077371033494449165666298081328271019788656966656325099735825527574620625620067496055478699796443072581712275189385225492119917604177427262857561508057955353979636021229569675726006108768586887403679772569630662953055616588843317884192730137678668313711635983540400651212574023432128295257143373745876757285156713041761907023579024450491808313458454878664795286623769162565318200267407210715294196554011681975583073279901226753432520663006447073345706959069424914187956745096745205530035404758616274378501396465814469605939039403902382675055067551514178754852976532665447326155532627898369326786367565660390958535863336257783900188111603562419925310989495931712759571130875884185933259783516310882936766979510887246710665054892116141943108224071068514637227937633185529536657557746570530518221462063677981201484401261483905052679136945253012914711420256995824549726881316838288900498569250589674403056151062986712260808619782506298904727097854770600282522937360177645018619353371381556454067032595759499153187685877812474950591395373909416845537210823054519180554080349397414585645323791107282989999461139926277768588983184773908226111294363390775290495044640577986129746302014268992744258972880310428347932142751051812848742894633610839732974753886160687001414460290673480395650509189677037806768723482993894174078120556903755484298267430906242224172121357095834354597476338909939118630374101056833339043803350019275555792589555524029665924130693512339595177925853042629056676857575034188093585125139016206480490657969209729733171965625776063222681241455120762327352887897297241420549297003212303497085578593133654039186600158885909382304151509276798968272489140270661516477957469250941825686811816880761322948777548180360850271374394317728110971676396956657228613384597368786141028113685248168865673464080591784680945844505063695300693314491043696703808026831563500816193604001093854714101842488018028688367424985237410941658142716212525446898433731562962609374997951062848712722649168813098539333282327184138302151024590009895696245646312224736431311479168369380369887842471200645321623672919492044494703329365954024240979672300965395242514060420688129147121162154983510289880461565734706921919011725872828136641508880805995625211706206811457060901366142413296801244703976465087810587088433254145960670589820723362075764266852979836239689579215392802744155929445560938548911239383715278742117986719757643238076553349354848260070000537765347863420040532030205966302522470331317636968916166314791630519596036872627098841323827463036791354520669645872715988705555361469706214703188586524437511360067673158199285459065409502550208509917206825494466860790814858705596517145543786063714894134940230851820212733832990253090781503703861015931217177147336918383480601053416110958006394348304358486334317189082343369213736472569951902660832253736577601978275103844294847110742578709008586715565765871759896741500493950903176102484980844724556906791056272409068438361150940322270629384724769196991903429136719387781884315857394273307325630286182909250461041668455955610067691966402311476392856277472445439826001010797387113248116875796961295158220345245748244547104312007518271984428509313266215768360052641191687675648506092853845526642602605424104078014501060046502279840684416288484514357152596669730033090043573029144630983349719614427700685341187622067123792276659107588962701354496535271814040793979739634857168225040639990359054825695016671754841545740551167688194053556277889165616017934148205937567044023624286861716368253908959140385174276447074821753611930646398400284350344403337143772431872940935001189268192397529216164116390763274578769280937578588805437975759831066476526479062911166691534445853199028962203352516163670739839295697851958137166869822796777277864832138784529541388593996809652970190128413415213876391203746606574413570497694529819809802218780014921826697836522816407280308095956701646217244705422244021556292081318782154713387856394023130801870566957694401869587647430196348127108278216422067579563686505759074865649020839558950730944201261052598167142766206431877123629729306629366847225389416659100649705836600277125574280289715405677592518990924168414256867911490939963351782465289813356786124329471919652238724593138335122080816941161627211088613572474483738838819615285322879561341147641666810712565776229460447261365160836769762371445634813538004889369000800959898338991636537975693348830191132725269680861526111468451082901620644067117627239906174459632258688961155675505795309504260130382098493847441629379815281409512381240997425719741242982212019839939964538930301663982603967467857280004267009900497109672338498894673220157985490904327481749357274235283693863650277920265821042034094212730529384350231301404205280458547794263214245844873097581571878826556960850963250744283476683968226618617421238835224747177329407724125615788274884126047693265762125213994167899587936304705609730856291298767095229529697644545425483631608061009807468583320827105055027896421727213356765392742093665018932842844635961115329720805765991281371187809368107040554618081326076835417812636047329191420744440828219515887494552905223836996713299211080976391914868549829290004700441396711968403884510157385882528785219302929000493013112938155956120060012346077909783826356408222539393938384027671332940399952030605870646019988615989528772170903101409244693154609558823946205970830239383284430523011046739928210561859654133684517419008116660259191286589673637570201991507221027504078550801480511228619419605412974428091227042751770438459028748356070650589233689963315817086804404856352325595672350681966818496283238573632534172867421193460138400596586839323062626864071813558694077036409721879865584437611038452790851069146110931734289666985793009897333023565207611551800541186809086366376008186324278131488824981833429868823537050755569280575564022074308004416091200570502835837020347815341374097789255456849896356885616316313238308841736708434854929999590683298705588541430174951201424299438990392018075172186768801904842029714064959159093039349034606948665507720185072123000392108652821060243316429032131574657197720262191214487719566328746440883843189913479842880576339134926098469634481612121403624605720491611170598799338848104039003768333037550905173438239349300943922983106146760544831364837286833317562340937339380231950503270777342827080932137571496790304733530934906615681499378566773051927607292458046550769045060585363682206440716047040234688816211789900367735094615198366584246256433707812288441961840173599746372956921320717750712003665409621235113395462166123415304522828809221766358292191253084943861569391812146204157227088481829648199312556246579291590984814924194374244088719399590448953967256099298062990681770661540159407206773011096766402317445752440524822964429977243556034930882660558682822815837715200794146521562216335773488935804576695058255509621994678676473448889720395564096117533316967299162114259570655381933018674817159062118362290577814773469828803853497493664641449648155098742502521943395256710203403440910233364674710784351101078704915637973472707588543862286706707239756978719714765361941673796621288045613321669932015900200241316233353088394436199251317650176994103364496958505119240366979640295544162133494823169358826840575957590619184504790525321129467795600479774888795682978335747885588806423544720898792458839987773222601009081452020660346892518744675142106191753481202830909974860581429997484956384864345441427299699164258398402186928750819815277066785522530962794106496949264467207101800140390889540168168194847552272167698509516038792874920439984181659485284035982560302227484989873682223699388926741723696646056588508191724682240374170039709118477387682710056066848182929695178076408344145734464261314302968274083059391892095917546749287315548836273076641557781834890346351108579011442893434736962542936509047894066291922294562514587709917243122233378832013609901460924574868914453540208230890963516465149586843001920212755808955489435419855478769608325699755604929086283851812885836250531107023285434440535625118863574426072671037059425472729632384978617521967849643749424107192067468464014239119071282458091138240365590794923152447372137694192850398298789641896559947790112669842169419339316772375681318111718467126180891663615865839138553527788588937970246083728984816458548916518691333783742111374859982150932707843619736216523874270664733084025909590660881758220061347715288211787998012761261152343937624825795396116450464055057850627380271710180472213633835359803951223994702835544691614715219147766336137322861988526062894872397149987508652318215174089899267466692066064769940486981924760516992706999575781729726323274994587355989199194633584761036007360048433847092615787501658158170256439245319745113545949400739967854453599024817445587847137954402263323031335540675870857780230154528106537158257528590475697391220404242023473550439621789450896885054314158677774323483265656170036717159720711931336171516344574658250858196314749442014943957415535261684914160958886922155023019622832436787444070267762875933503301826662594412816909499728152092041296214919417112762601290148188072752158793173966349608777266975153983833414076249799881014763964890372631131822447312085416680077369079747465680151550328784652371455208215960648168000896035033449355750343770673905747483163942367210412698864458113215853321453648485415084744533105117143562618985450265706803846744754623015682646644272554302030914572577649564020506978072629481828375096404827899684021233833610328419378311937564777206248318346423821864979163143459620886967729387769983580801348104688519461299722593376739012219782276284578122084729875535098588775199683888518852309508237399217440339364572692375782249635535498322137442843816954918009504942168673305152341390885377851879249895018959635574969407530780717582367493422737036580107038779379271466878975008642278630038831414899890187452691905489196374983610187854893593055069772224326651627478781497611716196056326474205266297525939500244452397042825315575676210422094410670645808905699183368998172307907444030788879527184440900401835123123562275109527306354229333706927655316467548105095382195376889312778659841040487792566347381119980105804667991217741107549542354015366942801907837186065927363485142240451027667763046097447364234092060232937332663060021387904397102555167849533960592197918538814010033982282328493091177814160805416223023363964008052657394618354705559044894387317422891797569976683888732497432275750046966597798406734123762656115738134336112214174246930249313880146543521632140499050076487236792035150050481920896063363975187908677042030357695411267573507321462228943477358522181602382435816125399735868639996441629936512368462636520471713355818696412557339145285398615531273232007830530725743023578472121058509182894272136866780891753326839722027932210875627341882778768087514047838867113363020662193002875721795837127204720037468123053459111030231819362317456673565074914762963758048737355799459020105156971179909023969324060321772116113784072738406468326049823298359068418710295754396475861964445641360675677674439311269333004656923221103607017928066282117738744700344996841203086016870403553303111527787169434922628615993529044055649462885145488270966340432338797680528095387259145261193597722820260723591579460840718452370763385235333016429718200068427810736070894901374819234084256307670094603872071555903503089394048006502038106685534281050837310695989256564602487087797115745414378203038383138044125580193003388380913616832374104011417879221256268665071283268568052385625068819945876052215742385845471151432452314316168168264765429089387124074818842455955352421068039675216087452882079577421873038562403744850258419054547482197044269285648406139736141225353299330351811302248246874164905002241674972985102428308650811623374833033927242446215250853995614157808497423721699552602474868937528802885300992997570928255602981501007211662102617601918521005220842549384953324758012058270953948460050225060225525418284873286675570646491411377954862760470700977730157648742776863583915232195728636081622582239589470783698788292017854983466013592553544931503297066009731014623169106588507194634263574154280828555651780471368502047487524958023348915178629855355268222045751996236012746746335728014429862879585689749653533154282632580779825467431722196960741871120495904341060658879624277681682966446314555877022449865514903768936897183843200677781568290339873008889689602197486589218797559359771246517026074096574795249139754512441220798954091419044519079303799322165888889195989786291401171566753011812515086975061973782565490701274004283003161043836767879732829219841113479369387204007699938386323324019777646507808086072801101989344582589777388776879658803549912795924256369678991668212224764212638453422469111520572041768715672492414248232167078951408796116158851186765956707952704741020642261108920786986254419358431154533020508026189465523066816955497421988315261223435004998332870179926897613308867022346080441238917080783989816798996421042229715419310519625900700717900898677479107734726195387822233964810879045481624891049135680276258262924631474970129484375172276465531445122488123829039037869053421604408583555281654817517269555988809982949781167651740362068998004892853231643578121230936506548247278419357284863274639112831658497787855528937243062755701013268703301232347852947822260225724049636201725156322143746803130968935403259672962930074446238256710266122076451111731937892462432384199132033618378700799249433510592553783857655423543352091769936063756171059342279294291049664229247326080888432010191356660201954425141267454119773833887221928164785475546209397003190991032269552315905864108702211863088842574247350189659780138302377150609338740313116025555022726887491618086514657208914827466075813507093238472556164373492826436502076908188157520031871543746345429717354790861573390872827861012604339955402329639188279755025918193862385096539748754342033337102512815239352144970992711836444582648590034347744935036494662183474842469113272221699318282774777335705532249112049562438121011842621992368872599628892483058735040511907551601951339181540828499489476413507854320924596657326732375376377066864428909198508442862663299284600068038749332475359920823966225034699191158917781723597273796100653454681092823031296645099601655881360224524312338906501287244179772576243909312611392535662859127336981749466553742432478139922335775968331859830905185627896714415637079159877376279482791559731337934765624649222704804438347508012630670398057379787735151601290384560077392597877571219202127353112332435798538109985347463683203832784082508297544882757809333572069818057222381985717177073214179601002413114896456162996968414790633093474427130783969680042724058376642251703897642293162181082239999487337534568869982873906106969195917282438633104700013215138178277204967394335333298953471369877981797003738193680369093319622437000423661217348029460131775772435754767488842238248312404795364114239955739820679654365461973914037874676615795167428175658449209505060440965453612281772853711628745268310719237075227304476351836237542818112631174798224751598383713815830214297129330402996113416091849287669243768376035337643568777998287940126068029881765317844812093790957463769201318092699060376053641919909577192800400100167643820655648274770766718102591020095987960817588481552833829238750669277239297127617941995686717958360687585322375821212353344619251082260915744841159796405179576307106844787020614489907117543103461587125831381799969308641377256807351987373123769695169532544638424154896731786105482520240486587603542902217277700669294920736874484313614200272236798911416308913101906141730669949320198874746080528386537114233216134846595143757075164717710273697232819541686724548535152758051637037511458132048750120021339163260549946031575967872582236072384398969736867598830423161223150790903628612392004149269115852556449922413351101679139380522156621212919659079821353006040762930661562143233889347062840608513277412199663454228058401670858835394584984649752663723678466547551558408836789364548325399901727781935850782166509490358816736711723053194961564619535716661276625382010966143080053386855980488023973007785340330678745637789406247430475348209519112272198535081307737360981450568335207226305146568287427778461878205005334243711142815628021081762048616170614345775309237252193235535344967198099981964278591490128656781616704516969056109787759404377384180884131174421738971057786002464858107322777779154248628091414057178601933377691654334530513064197053366249968668089235434280212311661301183532213469990517230068729489818313819076136167740273941544410586138385578646052145173649473694802505213087088521875843061847482923316051679768965071019357646519675735846282367786104881792183303687425506505833606219706733821482296950368793564589038070510995737305272934151537253713093826090730871159504167157571073367367788282841126524911959957599116066319765649194204265933332480521217549799965953613167124149677314013040023487680639217240169549212132171992272207652567227625171243402500130349969471839788138367855575036563785892493395483797174562870166874606302326724555989106124339910021168033437623175937195200022873142076505593065478510205630456162012125269464679054073652165617226349569593278375521664992138019643114851126471393790583628532013011690962017633674274033355295350992415411185566740058320204470378466977069618683819743113221740949255453087097812289947415954144144243488309252694635301928078198063191638313428077130874337187990125979997872693223926127619865894795438620130868831311250716034660152336129126266841154280287497313014026899243334232460687396944700440245582604405663116123235041412819773569527823318294597824437280254111511779694424395161119294024309926908505655732211210179341342323298758839777252469605621768080778902185347797239675324324178303437665205526292356281995626564794946801317802842061860983060336464078906977920103824598707810372385114740701432324637253400827861949014212726703227515603236489754190613230625267447187828318319665388840653354814361478421239950287750330428277326132259305651047771812599440750882424226982671564523181852288336966578155959541125957340248856705347724505490425177542518594775629741556708912009278485093138054278684418563573056786782563328248741053595981246067523842354166485037122292891818749368051627496954878309313244337996221275748953498865061718241891267681882075741201188806682393118864280873596040729772467652984034065086927124067483147668619138537687935435333277866141748150720309115277214065840042251200494254821694902792554867220508176129894880056536258459551859977901994372011609815235466065837621773941341297940961803113246056552386066157807245431634986024169291566010205052180402682634738377165201046899830530026058219758844885346012590479040934198385283385751241743575277934201531854081839947022460136314622559914863693808786541319597707600881580020440140413307525128068224395120852445921414628154852560987262610771890284549091582863207131422910192630495458917784676280259974803368789252798897767856728819951575744247525412584231425630160881443642024776698872395223617110068457788294090377947465468344343871066752593892326388145868823812203603784544983185825987110108073706971667316544754379551105536031886913204743246495960193818693565063788564572709341136634336368235513320327167841592039988741448455143070164896500152434766539296240104446906268124944831562055060417883210050430888928814442048462776395267584477543783580935720263439895421839046110679146841860423997010414961391090899950882121268680602995457290819544069817925574251651820423473771843413551580598551423304954007755680046859281790183011411288035274880430125619780401091597020022150721388608946838520886131111485324934503015764188623378992396445625176092180955453086152435280653604248091559600867134069073007562748620339059985852457941802565767591377212498307893984005883932285652301275196778236301356859330063554293656803722565173859542054802311070222163715659239161590721371149496563123946539863443341049184332601289238688012485782245328569482507627176835389179174143606282124144755949907904703155399363614395738071867462823303494786094582916883250859576891407643751079354057598090135496578449652709948260885378575045606114667891462772677687511228695714239267942287301764412179273844108225203715165453667100546710042339074225612477105187213313219521618215100193668652972956750792594529221298396243642104677068010380231490138551861612753963559112740344312492680815542139660407935006375699219790238350362358980366268956356183719516141310272706274112487480892024380228601846398017353356416540609630911184172357044665564354277430495469393691503082635522529509248459153067431777832513281576174894489692759274714491581904599310772387151139527666541376300648037943406597681559936168676195027377759237687267865344235286392834064227933335732532798278084967212138954221746921125525071931714315234249069755226558303084668765835503036390590092787290720342667771505590027604749156379705801537384583490806144599737501080535464900337498049306402959699645575116700269203881660831512549110557084413434042612090756620689028242313239214619537899498241878068551508103721497097775588828347297781480795879914487111916790345335505174461350322442963659251613695883524479656309918284011116836560859956596952661868842611663531356696536875447120363111384411984231711922074758150846220374868358056690620460971539124483975025921027142808506289151143449406254757434849397481501891988206908793583401411937240081193851798079955795510443697902415323697087888057947553017202936506713852761074468138430237095968819284638888648375046264999432937761837026808607184553035792799145263724102993517354499506794580878920574975695009046818612315697760042235773306245140774360820365786875806792931334607101977263952673779715865510032726634542504754990357479256828880962087646397638785192492715470393375282146992004815695666900578722674947382376710469823357462872993035144327160288931167489738712860069051527874714554897358022985705479038496624115716558207937318897429233070525350170134187408147624536621730716256775034211683732211479697570604370040404254390212964547238286472067325563456104811379028412002784368982808114874728302834049773639877406841016010595663334158173514249579915347514250300394304741063940300753575157771730576050751168891233471129285853704366283763324722471401062108208304450356116112795264358092675358364155065018777620308595794391458337135930889702265496631056694920716837565345767776164295434766950689427124077793712167909214617775931376107747209526433063871609787883790194914051585106022301761805471463733232321361296775280035080037229044219872946784762303159437653140299290026668514123277325913249697847311723544751557521883915502109862348798700977366384795739795217449753525205736881483680965209288909597867859897767255136583250755733009594412469174493989006684120413528800037623977508890403933628197634506072736564394079315376126387386466479004339570223648610508471408296058143085385007909645904730687767518065234575168904692780292486124183709339237244208744297802227149442883416222770339298349343606920779898012162873601005243844666160494896444708475295980289716879206021760776935645379158736995548145023562155967334642995837100540479403159783353785537650774952965972347781751541852976820894538156893851513266391907072703078781444511052283802784355694278866818427751704701647460975135320802643090365695022374972558156416008606034791392659922659461364856535846002050664884791414883177566169131070656648949124419442661948190651686815170612077458078986709077569870956244981453707735045562820296433107129268825230131961954398029820121576944073083552997896323882498629520755753447621434608465017452703999974942873766862790683267245034988736296815160490440269044536248458254566557327320119376870965917210380130098830573374940997411488945601569924013337790200834515290535325590002007456999170448820908887078539998985236024158700201986524699504421742049532847052425692874103253855759470702736856974636461253387247772726294845581888675628519076143965850651390219868630435910160859196215288877232247925603144631905910513115755569914042337675232480904009603737555309603284951068250685229771924849997639883194697473678872635783983075663098161804276535630519615205832354018213403045608686935824317392400269741151706033026656676671951026882270080593641844061770522544611148758351648417646877003516092707711511239089157956539561426742185541162422880343714807307338609428798489709623797128839093623836398568414721987506236229827262729062012247499485584927921398468545832856750416236028473705910812266090615384436320718328668100003585096857007423802668432545961564497325696712326111616566812076251872514516699908970044272465417353512080695108857581602787802698166376758282381420312126340634244478976872553499173452760282614673878776749200809191276374607916915410604292291409093947994254425460948823426540242618817084541650396467727334388909453501938865721603322848690353345470037994031482405111847164877103276777161818566475074568419974612132092134173055870667244120997331016947396010195738495631012527561209387067111887335654661682294427476511445745970291097049936287633939524863293822530021053687767075517867103468205855041461235314000546790703364960438018143951765559149643308873395466486133671186665205891526286031632962948177138192714684232103594355056548371212108089904765572428167360065576466466397181012982003145546143001915314944428409336131728293248502176273767344904952479416057747664091341737932507711508772428489298561057047441539265176462793599294912917554995212762357653678416317604022115618923312397628996095568264607900609523959387555853172561277047272043640108839553457469800405104387353894395846211768123754559173203100814940265677454736356437845944608071585542868387157442958655745727623993809810143829424738957820062313324196011595229429900039671563807182402284972570391322626414543743570932620915409576717640321595504801943577156901381375672963838906023675648238800295383188928249586266631211112280299702972856329318730582307045753496523996156681023289150090200434589505485613672108173724401300205646171990899499242699200546123578493916783237313162018989836271154921013452733890026588491058717044168174143049992711515830306729332342218198202474121566792914563817094673058419665377541343895733223145757204621562689292664344511592247537954298731444627351368963690562911990108522211533044865172553019595991810066015977639799403928245196991438906319813612957246459684368594640176143552879299206766891477150105077000084398397011702506121170261491150807533188554189691093826402600669117202678436755223856916773500315428267224781783780779322631548007948371898561812565134128370176066558622340766945302331122342170884444203719047333190053158550131665433737956425207328799092483661805221478190831952773093352410052750288610334037389555560924295778781818138901177837030726900113377149984688752345041316511433244720384111031218282973652090596803140852156738349494999654021168960135221356218865800837541217645777676943723215101045825072025528445296280022334574180934577253045801162898584535883207221108159739309571396416324554410280707280182620335210966068296646546857122495337519550136022513513825516658807149221310992060422591772082161777687911973653860442373032697706031020709818739431278877847855999928112753957498752594705539836190683760674574550275676717151134133344323005866614124406705381818078697252084907464946590560746198383545181177109789307508442947624512521380583008052129792578604864407890853553123195457802539172743169600551520443746543830946110967863276355974207126686829006087800596193391604224477166463255623091249331251135892378849072099444340405818489826923903119073575690156113343847213754537563483601616646066752285328061897303039069529783687993149909800821273024980245379789565317844793429640480508107177627577242517955813136553311535470486305383331625117365320310482930208982430353071856978985741635739050802990303860759361547211735256049191709080933139500007848819095427198864322671827891395216422470256952255667325089925253336551456668851300513610587676580849684364914370473303685589263046619170683624607682056397496473610715004904422736852341938738734569038378484801884017078303129974977409821155366776129370596483909954074803976220049992105755464920253447439795224417327921437302951756729008776787756142091908340900274976747978363328247595898192439346991087576939993448368404419163709881881844607747244775924496073534891587426723655886072747547696985957641526657113350389285676462518595633630315081403184293384914642018609507794028815199305740149561310041574648056663928044035500802831132580986745178972876171525241929737729098403539047576540737325425454456738860514921094357084270144909396601585168257182447729263435460957951850535332076464524733455018761874512566528364767426154915737016695174878630869838641996492312095761513531331932893625326553606619337347524607034066198595582849671954941836771383350469603233806996090486015243870196223731991709327044794492911422160954157927204614856855020102021079739584576810590957024107040309966436807000807913670139768784293856899944728887761746030357490721117884021854696606043710051629684436616892567410745852344727211211030035906158224957889637057552813186121155793044876244654972259512370933458980759033789368586704939227429116551275883185094244689542229020380923717221315488909741023328007702353530096562401631322650245801397191685534592426148242831751317471588583741917368013218992906375207300340100139606864397761691924527697640540855344608137061922887754774980873842982225225117514286491345430586222423944744282156731720933576632076404517892805648037074499753591307101028686689601094349381651545253235934378458346233211957810070061420303550177611813581180861709441801423411651050814488986555329241306030505918068259912015419866775319869070663553308172725056577555275413004309624960197978060842733682376442774010042994155637252419540743507651846497258817968562107127671459353243644360175504710275955981623875225195661144735178249662069582635902448366490608757159228987234007101073713177089328837634167708059243205547887783556960405474127253744434717529362438508721536770301240040408537374862170380226263399551556903381427435058457116351147769082457100998583640991462430316871041057570188197154306018216308755266430774627546454819020628043630312064506992609592846676971871474371136977663343260932540393757071953367257011393324970545622950620145877689352206593107589076793977797701375234608456982274601063925847638212343766632247420532267935874010985867940534931233688765198771855760586207074669710182316163393638275777482183261444004252155776952521489169768399953505314421343242319474474174812403251814820035637145482389952041027422282347360952680257344278108228909830013330909518161580522920073949414911586621845121036773711503679893150634635505074226816589664839865988263039695756548128164037593777843469565962364635891983433344644798176329052325094057785855659967425224247365743105972333006590323658086554742687276115053983370274858893544142576607053537909541303160725322009988429312838702619670730619100304122151987216729860524925796396690553343277989681854392395070618152334303905613045926935413780181208616363607628231188097397762095482243914405245203741416609683533264156692882082074733739949270611346467982398116361345472194426514708095836542607220657271732251504427232670897765672004717118686518468856368519700722510293616235561102066551024181824832363903580844493342328547669553246687683908526155461430269908105717746998845579180896485402670524519784056770221630162705445651505769624810688937842216365452483053676634676454205260838444148570729672230830077737213538484120856444532900603548009073284197952458242065363478397745451356629011708256419048173289161315028793751415574627664750885673489288174656311650965649371840739032811154656082383889827430196413795673183693786869897464968580142177978198459296541773490424034152217525838560384767456071823151486331246045457619885196811386945637541511528322949297966963967897636516715102441843669306378555072140651383180808576175646458126864430345049928271882766789524990607060434015279252868968242037636886654261907807246045190594254547102472254736334009272329246224435686362522009365139365076879581662258048939352716512954116716742780934184461992545259464394186567938528762093243331215614819835969837653795884199924255921017029274834618052278896135574739895956500835471466783623613386927674731456316155276966615453663496334646298908714463931232465207557235056660491314948318455179084356057929946836602287988240296361634524496964739450870991820664489136452265274301082277280196081533224365059964579350141197552015252522502135782424228787232187566653590926351494787691088054605611216694612820656701494779122052328339430252079482809725211906306901544594240060222232285049718079308859856728630473940208964005053280769309077524397939773339820816258006002300296965328907794500012067852413526620002212729219396962238756714705627982732997000744975120476277820579451242906211024356205208478479298991807238878637053622831654558839059440881656050259338805671622532641280867731308841909408854028296550577773342396996346455566922403313785735126656230700615708305862526935247267786199944617747462782174159022716447936620074493116868848531881964292970734530180052716359167681719082976057545047034323140889401828839476309996762094378775587864793487249504526667111398185528936360180221828006276187597934109908018962976585550751057410937752088716812551434689488562145907706428126840024068967717070907924897883536812429921642835015163287304723975846076192676053757512436845217106093040789734730810857637160703052726107346075152392309079409194649203083245413445270960156386642848219475690001214325880170467867133608445501320534468636420554047258761412187569704351757107219052390254845670849877139197943003089004187014289178443256080005746975991246405811003220058609149511880858160650388059172372783886789914291552146906399741189682766220185068975106071294747829341095810783347785943236412479898967037938353151964110725571970802155584367752246996779279817337761407224736238453573924217695016073872168432971879234226510587929310951727594723849453505511911205580576100708084117601039760467286786886435248699682519255788591784604197485893114895590399061343482388708456280921038668961613248964054521402441581990306809220531216137768427316466703465459907633967635633752508360423401195161604734581843738885001791743535487872638152972905008670223996767113804985857950315361737862446283319669748369696214750440492760452617718370906846649938460464319278875696710907991658643803870995774743642310766238404799109933580883130958287041356352202232643216345833762428603385218452459491505298683265212638309544475040152899087844928798401544704256718540262503227489027843744206553191637985070659608899712981677038073729063191274205059445824180515352448822453322776115698679602180050485574053428255331785643192929545853698727152131024014856897635378930105743461266469043852230685354682496803031560079687544218749219218135144857289653527746044929117109791533885596300135068133333870607839529938831642281983860850947534544608637388879141499822134156336561576473061393749289662279537429850615710406309495166508716171449127976346100659265617836210796043716768982890884285286577531123250493196290568251643942641720082146962914818028800487883070608383091859052553460705412794937551030443398691604912996620206716195409182971511423696462220575397967502767987916499367010123640822684557927434596776766726323031981562975019161254679760910725680120430341088859010824385863199135821299206213356732406088653566023127457873648676739604676689122080033618385100809496690008785332858726250839702347592982555217094420073623587068623592934856624305724728712856638957128499891117965215181684251052281871303189671991019903088749435499031510080052564660650224079234714853844788815500154677545705191616637469428811315702912487682059983287419792904503785422703732008158512178836122282025651647751282982307506714313983822471497238693891598661139836327784530481866471266211894306124565998243264238297299127597928827191262500118388012823103645690143552044250319513120792134516240011420941575256932494447000574794412099754140578307750231446711385947097545864679130098223723231554400982409366713170461243549817469031382407579271980464256175365674488941095808180044320093706658151286893637233526868924528489766328175123757101613568130366644824307664838646063463027855338678031029643676726167873360019811215892929038587596130815021440733707736373042909364269457557484336303321465105320888473546796027363775787128708504390424047392836730135104073107254423982589840415612026903100693386345835093030247593946514367000495665295087703196538297833981852486566745038440372003461976733811158601624647515365506478438696932360843315937236534379842198349701779766664095302915531709950708689333440453308407344120823478880054417006638075322519771456769550341539609265468406455926336982799365610448122678823432280156448571267256171240416953225945111824199583787902485285420733439690668470274362592362996025896386826360335703846587336303629205968452555985428747336945920417094886427751041612573778172199988521004258053283923324961158127134742113327538294206161546332428748944083839344540511980219082430617390977936864358147841424011508244993687913652104602361162140854253097611838639802824879059130742721459024706534117356215753809639954971614121336610791189830229710676920193086673796019597378969547435269478733313173062201683401954772490294524132239208608466860877401642431199693764146190829216551407484828478815381278499550723145638045090900451954265921532868223530251544911234336856533986007902916934265806954389034367515582585564710236267378853333090148832717006742491320992176232169161956402446125364506861455849146981094917685011554228414004463670609593493377975708142757524244096059564080597968679673037861463790051779298217837875583838992532493007877862522882353515572953719665590481257194237479537538038026004422141781862225711446720457004234205391445772119600477206521849019725976248931961033577858487064724965549445217925852611436348476200727861972347758476226578203602157721692220758760976126532911669773682932939822904863732714935684000888329888108741043358256730398395314577337616149603458605372010638778200025353173207887164031178052493358650308993231530308234984245624348641109507862129008583388450153220416432208750672601982427826397216811197541010168635159195222168817825362110941709258995742531367711482809025093232407841877944984687444631510997283508058293050161984850386565392651879411127702873006549011671809110126160997883425537446547534472942048089253429431470692816358032011323083760937622029056055212995387714223951293117747280660960206713755126313973524351030650440254875368708536836588870457693419653836759450923657581129969932580269059184967521457242840723873086020310768272007332294778574514431151746905560475512640283601589595321400188367642040635808720098269572895110596266527216053506967152376759879546604898062452098456397732518076068832463956870282420703688868234452865756400494483958264767321652357017285637735729047655716227349366536049669766792920968821979000060157177352999172006054217441692106730545612585466279100295187308284070151011265243004219772739216942383901604207158026378110544136332546067268467704011938784294955190519122203920036970116362604535394492430238444188151225035695812378126664982632999770025988020012735759692844443720351767145656183700022309211890912581909600152209646150251465422449427965135026258305432526458091842765571657249013682035736196232451900506626542873255710573468194166977991263802384780882043046801185222668546193257026841501003352614045145763838247395154872159007407901031816920649758948620853628423519708048113660184873811333505141332426828232503547759877305378818863729243616373059148518324555320493353045759307184381607777694817034452244090253109106293639694416672382594576291415845752514207493819816176225109875289901684097944286060159442896889039996892494043053036341611172063850734854348344064154269859965029330016454975180316406442496593881558999527820568444119071257811867218789212401663367050588223020830177671976414165301328179975176566017228785037379555481160561987944626063693553925569798900240027275394009653065343125459664530824734401179107240190306485632213778457863792307156318145074370420119394492889331800172338966600693946862301843761352547051866876380428920160176702992874458049739131698674880757614902020145544735508998037157357532513034071582580758674074306351864656970673006772442163628590820324299200241245650550077929520063004391776788878305775044112594657131290911338956491124162257028094108957379581176096383337047462256089707262701028767456206842988869780898316673076122726163032519564782767697941614002427706856973529538880149143381760091726502653621409770328822313513019574525117190667675355614533617185129174634816232045696019580438102752501548375049748655425307963052323003785274037972657796841415106979470296816903064224464555618508081939705617950854109333495330044397162070089694546859760630018033657497026613216535979656694781781039694353517599704104198074609862028755849920808532301425296561047561305979582012579767456155059215176488803251312096857114771224999729241627095912319892506902039053987295998296937310140796479681975428931590760976613657590927298959282512447672633181159355029784904445414907413513174960326715076650607859410886586135714816069669429491048457184313283226396415697346227291690089563771702157658931949429752304933730050638617207678378262063924441847355720297023765924722692857619424440621582614677749062923599174030532709192001317548645284092615615621779038786127928432187805741793768106528732132678342809032800493830536791702557903942371746258596328646556016868889816247931988673268229366859530605057965386582360828470143453424589224173450222194934171726954069178969587135740058870122985939009350484016436277319206856490516011790852432785979116810622032018192271153425482146187413938318305942201342354377990263228059855364301043522998436388539863938846646621771611242687200048268284419254866327818137384030633876496796005308677724654319563315322111385450664861235452773265254279564397183345795097251466746126619541402904351362491964014562634769941407201279784425160708368206428768935771170409122863734627420405205040202405512221299388068601485705207512976249855956760010773474393889921748349848031855369958208391425139713553632028053145447297678702492577743535781792376106340546167707682705431360771700712174661460151548727293611126127436526816304334670315729957752346059279225868487309238912001712908712907504543519299841310877468914346281711850284697357406663186973064633813703602600750424670145779777513164603749931215161554958093712132771388790023714559280989572593960890271460355830394179904427318045756817221668992739058544603755297309297534602981162458899009557330970157188589101756718607239706362453570319574443008826880707221051439163326692424290172470713849567482990166651377367897221912262502805066980516048528374127117224623194488523424395976889229352576332390231061682966220839300854363617588928397530596055810208183830803404807561071948728933720355791062196013693788983953701892609668249700833695984609696957826792344368755991871266760316992328693030214802037543681429821943180082152738678888629322786783689475202911577595572652400282073202533064290128426330249363493356058096820539781452086970104181685561713652143614210151406638300769209243784289225230625710834777420932472607810864608207595368196217643597496337615879281232745671238221754243145221807559206299053932124309961970029105437734061293554714239332423090630404547247641988260479448556113655949591539405926592504960431894568837814497194014778481490078137452596882761549099919867877760644924278562567710742616206976799673040964115202512965114072353075978261865263582874310322610626671849006620491182144972933468239094833570279066038387231185600713855733993019718405485819631855219398539607242965755200809513503607420385676424773723220405732139087492164731801309272768965766437116817647920602258928640782930805343468583662726854512332719035672498864992216554969541021529746735179743585833716306715849840736224830342820637809414352770675106451741908802574069911126490635338337340767429151815779084570092385733876739532195776890392740881334188202598136601874443633055396027586234142622310918629485747600374697959349068527772775037250609678188973232357593318811157753093719337969962088662752076333722993483768078177662492995672713440400808872711183022769738361895255847825814962789921001179229059393872578649380045405131436553700843426245608662010158225547397991175611309627618562768930614079333916488395133886994246314737678646123377438681743292677075969502026830725536800228942226475438629458661708670636196322782312524143033208921401449520614024473498257554565487693508111399938310982850109464329344736094609478439791912711286916270235058943220609991514191290937605894716687964476271118912730224875984021846304756032390987132515291593205923892998900641948539769653261201005623007766673467733295947240210823128271400637758141577910857406051116351164482476932756407804482758987203107029178658589831591707791827733334626202858560486450407011493344351187090134516361551483000545195886673571200970674069574186888073493721025775069758513514426503195428987770625123261755598151981941788213057145589196527550618858680249609451312228712557893076367940382132704112802351110557315595632934389404828076359224278415191404040690397591875678325383085498210358651193638026002242893874658656806345838658077175241806329221994517270786050966336860641747197600429605415662406269837059288760727981252414478550885686587653195808383273858872464762690657639706965708150827596619046416909794924862239886040273585278842057431755235180845833262257858218556215696451305810475602383598938607277175374320847251039679406868217275355405767719607199126683683733277388513568365474626061432352866608162731192001807316340192256723338204303098397407183396655809464734160349969285870347703466264812045663327687039853825357323627728331690916926731921185457846272547096737674472271069898610679432507949999247019115622485661453649242685763480974756480983211659102243250081464518434471422542983889088728157385053836934338207667766051234417734684981989735769854812896603996551414294598424806948444514034832302502950274301751583320170575343529719587881351405941547047183830583349376205865511923891793987126408963829523879687860936331206563752808011778618553048397833328043135437182584605820590870649049484838390825359501953837367458098026174745638465791152923557816793522391759890640951924299753000202788104693524244734049308870969375676534658223455702352523223690201605283471218778209159479677790558041283441261541556554816848248107583896803472284560195618644734929067169631373803386745193994181101418429681498259488019492681617649968254432281712778772963889734966473020565408408462195528879216526299427048123728643337822393246917233749863018654121489961251879157361223663303900644054215353805428724423340814637991542907131575451402141376870198485062223128810292299225775877957038095224301149876436656669339527271479233302880139852399458651144588909021424153111468159510481094658637815986198854753193283781180383288324032125066105737609495244332156891033950261134708676948916996000806907676920104457078668500020489333219910038759403865266736951865938427003825971620682491983416491496072648924339509008568405358309710689225203490353141865686147790314832030123344888045597085621807908185256529560653013837355183530693834686933215273895568965650376701829964845598298436412672790275207947597349915010670772130844277824694492582158510578105934617321305772287732082624362493860523963525144211274347162176468198151920110473266101967051004853686860376252209310801026388222118730581624074555197106567659807231785079859673431229828557940659139753625727859380141862765450337558304597450251841735725236752106731581669686442210755437985233067976893184915168756604867012742345071415079246652748010764701321599697744787955771907278525852190201990477380242953846031853480816990126396066718548317789087168260111606402570395516006843857672472135689127835947110019509331997560251932506060589742751145221780679358426192717711074062589664115633939509366531696144261415681922915837318418029844639308992685616032061134431225175828925608177442645722494624846289463294357480055305211226795296284825328853956463967004227032304073749834707603672517815992499810626388019490829313994888063891981583615256310551640669601050674382898218607316261003546919620277444112685999307945079636284830534708332358386367042131485789470876396530392324356677485145566104409342362432550348646256306779246917492101610906830993697336266332588615938686287007563944506516493779993271435578824277950850585036344278950920450782756447843070604083096871656786236571761183602372292554381112892676841636839224501685295127047683734035618068289396462121878810892617940513737139609142839180247217420125464341815634586514088588640240006142766634452383480502425552091055012692945068038592902445066077772867177831942823698939423369885682372844737936196080075500655043523766573792689408739883374645129400568051880052067142392996709692748655827409952519125541950395641613489756182749001671011376226266912967667444875466694602685984922897254839055393815213199366040198840895420691074526324749034647236413268911305728217285038578774856513957160957667865112513279257488673495467467345715912978717253788577049022153044466792685678813559563316851352790477064474754176460579465741436214979157903803489507836515583948438600472691095073498761850355066250611521601892924199632598083869531955602408395544736419243422775418205261509290222501365457875002685756521724220969525281332681935572265928110537579595114059537228512360618521168240697812990937211820154826341528046820837004033136338645117750202524431154406473477380795007286830144530038828118803291881017639411148721978854115142319820286370289115270772779961392199353401251701885600739471860911870821776505622099919793801783818939186548282769313830992666006794807285100117534014917665836152352872504976637982107167909921185164565045898597996111921993931441470460009080413356053215167281840980668273709359085426827764307952052729044398202682847114147404976172736021733416170891563132220988590032659137611566284447704938438782426972955518253046857868422998712707814676710008359992128763624158321948692408346030236841500760782218766263390132176820887027368224689679591220382968433531484047612051601169848847198926336854091667520082631651526305375097641357536023040926597341287578629082773929776423352784555128104382181694807521247182386653252819837299613001806645855653742151822800959955008754953249287023554704884080544874560139152536597224452256338740820978276267460864634932694746290606181760644475513878597154247270825773923304742484462029458807509006561584605417538785553073864732782737447792737097903830617056852993398773015003631308078855662219252987140895430671353595367029630605431968228521440074468423809910994614438272843089908462504938688589169723710686983638598586771487360067552180343326540910379923810719912708279056269639578339187431579184707592995263419217335832123572552581029339880290244296218606853359054880209526523986839847950213458470653769365230245257892575237390307777063615809950634979828473908527577544222945404628243650365489082869342486437172266377741774521301315740411956017212047696744572792675892871379619639150631413279261361215571087694395211857993592016192905787322150361189094807679077564545786440480443095509121199124074481805230214980553567022752836751466667277129704794879248974365003713198123594168336020502008870486516547410168400518487804386653474742734788537599604727131870058776669544690568687420997917914804404589467329111980367328449755195567394064055011025545792858193758953218743932937439858441468140374329375261686493610623854038739109521466718854666810541093353399292809951131953405880037103769811589687060193845046835690473140608493707190851729735204888722836543818732348497547017893588811285633788259476608813788304003707193463672183106402299551626433482357004697632743721826202318804143883879104110259488949937328985940423529630117026149230655079343709529218754558673698328089721998001900783024526900304632577093339638182996964982239805809165099956357300358352526084085412361922160246247551660638497438980854540796394553094124590144890940380789390820920697630598916435500938693630943314354410665100582706393038060118058335173080899310889477418015404390030431379764475377475669842630344601850084580800212187379853826239232585416036519410641117951956289291408180397094869629505682643068365925585614011170651329187102147611346381512497601814529361144045507757668390416561885169552041184886195310532196835457623417902201796393973355051270493016450013644602816098703680557495888353842512012375997276987553948271451553973989258281512509994456879943882275923471387617061200174666310799836462105437257983638571194103321822186291325050448755588448473042038485352669006962885135601964486317482889266959391758716837232965419032403254248878057806226351780175151457072879117430861773300387780791247036049903402585227185451212217636932121477780695740905147275110155421070035632407561908006616594261719161147322034976165461455564206442137927118893626459337616630268970907882146361705885096418117868270193195821973895871788310663773108824944524495249570752317280239207597033937056287007061363975316207330888786570256053315718025602633275801964614202959420652791630369456484369829971480940765890032680842761904703841520102455133719937160911298473856958065731979449840237925824303768930145857950736982588560982095640494553992178098893097149056590002285082247705184347766462953043352312354491987925661421488789492695211698783859176446545288251932445742287606504010209935638073618693270605394660245396085972678509856785199585626074751647671610025012775090302921466516275483792992879905128900118693380907927420445411324932235373063331646535049354832804390249028597064989885472779992975011671083076117028283090436965163457266640128986510649668888386842413765786372965567254209255155770067042809849588113363359979845144914080182793384671508212090300699374364545506570829715993162690839864752804608887285561727971058396917551508232025364225510255209421909427208415050661671964814805420250231169586126544761071264761170413822407990973961907820003381889377778699075534725899533815652596519348455718884159479645034693499836482021023306899593436182075886569868383473780419262872513597265338540586221863502938406927193202334541406925984676054506009319759191064453149669494159811150250808990305514962619530911472356713281124205629012265027986273167066008108298771327534922712787921974660623371392500399027224727183009532398280665040543285883233072152111582279205037221112962011102463761490198133615753174277152470742016526860344687447185191660516072211782258329209427434569192347280854335532677003639369435986672551908856761749926181482986828276175310973586280504074743574996725406406054812805181651154775851652362355570418349461647103784412533817285001223688182275848467448855499379662799723850881367177132572604037784008112785327572151149478993277472094317654383962994439268243216655242022039829218595905068578312382531183419831364429057789607880794164938816452977683477254856661738446097989945025967567638801363714161998379528904349581882244257447454118021385061096601825740061291846046379940134553148236877735034796281536139846562361871388362759303380700484709637896903181723792497129543690883330628431402545480309171220598140858038884460353027874719878862206680284183078979573643626713898509576120072280230662253151919666865226170070392498305086793389672169982433325203815996429976742716826127109059466689485714717982354212928577022826537397556831502786598223764088314564727444106307782166540809896347690019434444186729087338944843355995833532342898974748078398297208013751914566229432439925340906279567629762646068977461364735647269188635372628024449374762049678494951718212717789962683760961637806036998611776485877435225327671240718096116538643685780071188963334844578071154976615764903821620705220359202653743344092250803107190903892053051268017164674705842411251515678360925728269618860764368692219364053407941813770770041761858462163743987824004501363890554119692408436714155168494609314876527109633637723178651191088583838886582870663982864569208210091710720147876298911281897069527590261392237672919987301545784945028514809551958126846656660657394481756331900534076107300807365874178849595088642924093720352384931770395448337488432536831205228456479865712931672131584467459611635535006994925649179694698782487629039891254878284560081660955462716505137701141337615644058454049866869714620025831158025434754069143651377857413267565036543385641196747358525402871382265611569401047668047459035477419063150939192582514798422845110290859784646392040162306618312868388507019729129660885646487063653028634927313719413979289782951718687375182151092019417796436638454486195754248133301076425423472342103292532144109662546405291320129275410731448760247021191434055214470255995897482236889984736755447269546771303848144255345075781679690903371580917092395636826898459492529661050344612770491286732534687309389449432733411794511013549726485811901253013903012750756098162944514952098405898486098124990474289599508926911471229977524499914789431573162953912837009440991350395733532327599535434586990393458845445669354499473246781424671659217975797630287613012895296243176506557787771470558290102477624456817689975307435366764463318188118633123356339133338619739024181638726594192083336408890881413407032095534293969775469976436229387792290663924934100908744433757092393088378637588519333428868527713210293585151346275940139307830608958541349407195481577635978121784453913839548108848498061504725709321345020591458511271424674686007445740583434123304892759097766190439796609503886322978198963510691172358177130455478906357847210563501435341013919816483704368108512477875586477461870665948690017982131591343807445321947600339259912529399538789233259200953193937925839939345629927482528070490655840171099432007927176122792355032548075859678313000821440452991253427693733022843939457175699871636619680515339104324088404043606871898935731904800130316226126170216468910255315716931631609878348976573567209462581314960305441368933933543568645140236476465850119681904066714844018158009162275113094746830490774144270896580151236753549578483295176686782501459000997478265752966367923779242458020799293459550738169534470540014200068814021138339882542018908221885970867262078267680212332246846077194004856716584112066345889858289627773239210491642964711392590680334611511098919068965134521998776565114360374234706448181901178614168500090940471694579904094524815011179049668786760329795871822492287796147294200903296201812667993816341038941975812387559917751798683578131813696496766249300555269233129351947763581666596500345754760328685346281537996130579837474183700577808324495404153477585399408430125018923313158273256851520740718483520770926020033598913790955015093589659731209034217253630525069170460919764992517262954374764429693359527783705074566329255154638948333480359749271954620183122648818938897490421633968129039604581409376476579181737145960278803777546414402706976961621980689935398061466128830556526020722805375503961978506555376093041381460357105723795711961834912166681787728941105506443361521415637982014093803034443469211308087287945061556053883531865884575533055852868457963949802993586907731387993234158096205061726742620304032275177352325325825591344768240539962049295397335674774986713228480427171044688681157559084292541322872528371980518271013357367012527015043387255249741924986829774761470464924974103620082530558203667217418602089336609601277129052779725105772563825295537726944595361439760469459894985896690366948508911264323165280603813425335520367669928683100556510487301650837981759538291186519860273813500345816310375915027845626411442259536297054928513133713051404186477629214193185948534483533292431188845942239490027165331342486559302669895163598321676656634373237355153170101672599306062818834679621560487405045934258808690526001577381442722232440959590361591933429552031654215694511061164202543752537849012043416018072036125134296235700930386033590425441941641399641646410754137783384629176784629811794175942099094429748407561112551548009255947556632430894015911328274623613783552805957999420443584839452046286552909443828223136823257854767738972108828308722390035030423944250043308715180255022839392284686368751061951725498246635532305156505306561074175359166029624347920101538990234949790877263976462340120083353475317956527550949297334150627250586232375833680134549223076766106419527939627605594543508055629149966802494350504462112609963197313152491370880632149464144662734711171133053743726963057655864732504742280748294107714540036264324310739094314261126700235004216513720547297562576184020001563507633685545141215451941860786020460818037065960097230318971717488516888835896889322371073266018831577349748161422116034169455043871288277060094335137638328772712313968049205895081023014665896493886462501772376982140521390606438022870904302886567282305224478120256126880232460838457699714947971390587772760197460937781783153756332840251852410279563348733168263763026221976337794514342501227349854762755524248132655850608990260871141687724824120028825512225888204837909090322888126376684821312705828633980827372402200087263564020960694429851508133969088211138551209748737483208877481348305687082024004926189986866160979087060195559238971688682730040559026144290663689440868245906919980353391214408229073822813320819485408892513075323511080730995309736351280961960633990705455082669733333571793701276811976921602647853795796282701285163758067551804314280177725332731304356590198321083743132238857020418292046824910820069049784320254661683399705296545772501438237731464932051461282010427391436281297447607118191559449612531295083052746715407299388471900026322945220973216654058587919651232275962897950213715063252740874429215013559896360021455764660294407640693696472505506977102079095177679781316750546091616144805929825929774905544225660653640137250982061568859255698557339334197123903144162192970911474067968881225852531290230092933396633981151930695244521403145713101276719755396532362244533225286827094079663618495817231608586811623463915606729464001324241893216978754526494389551395378068174671651602808268680893449631272416648755307916041439917776176290337534776990338660109124173322161033240587404794965537232618126576380203304877472205606825966216964051079917069381383456408757990918651322479524080644663062867813621711447935804141271021064742102913173580845198532654162341583983645560097991652647572893105893588628151825975725422852649119693555393927054352772438170617907524630553331771840005635594955245575508135391528490021723977308563458831796111814181814559711853770673041218493307331277802002727552826944384699926524044134255388330188884668086278401138689773271065970634693824645130916354181425591554048171289344701933628219235809743285046517230913694476293819972479312069152395324299206227072943755416761042019664261070120199953507512308472759924003291430028059862977446036577016399589128992513644114173160424128027145405897913865095973750229790905085887078745475745662827307449458812988160342898938666066991218950678531852914427315242035640586475121386651136392498973977633015939875580649638206603468650813749407183961059472286042078228325810915864807265746829543052320040375891894150006247273770626483210931044564794356467135504308073042986956669245732930299115292540525411486409554915126128042497055153262770174139583267182251070025736346533804823949160827415456281637242474508020381887375498432162787493402370853004658504907469369341383717273952880924007059048166607506127358512116954407224292862122422523311816791629836906235620252776044120014033017455142151429112600113727056400348351921822869801197082468837675120460514379713425967311804056380351795013173705569742998632174935988005654565383093747834136558645122642043204725869390443255060166029637840384870178924767835299205891932336381178897536700712862915270552378760452909314882395760691053093949768313736400999188878814707666101527648925657849160720614909814677839194191404420457032583828302745783728974452662699929156685469359099604284685583563697977870662390272461433113756168495304143575893526558540457964697017650236831316842047711961869076853828791185532156921786922215130208336644731977315275167673275785435182968886737190683065216300395754772633105905903053314188245382571658890050611974849111203602317096603630692438337055443588054378313372158993360861842433181683818023093982772336309147192846309417105270910840838047852795047561243037736842107480571051422290034468066804529600477395242279992390441967730008372786127196099467644720376788410301879759486418989319172637687924278561152685478193577126835763938373301109829963514339830494705632105760076794647092205060598203795202757345972059824405893791026832977609272678555405684427779898024942670644073350458953188851824336393466582240504941004332576042626998651551213493204322321651815787269043636809889864934669893933249174855274109131562873538641086372090166176405604226564381422166706616299284732879215475285214161240058961335250654852517031077729261013036062534913383185308584386643723490432781044106086034481935850005072949861272867678086510335754235098351249701999622347963637472998326127741264401317516147429551268834618363800279739352991509881180494251808772201708230527851697420827900188608293446991747504456882343038462368302721086188314162598739074286865043060527619173096562771448589054018106473503399427344811281921285897963431729200153944982730852331267258657873588564448696132939579714345371987959579948867356788141075957077802060305339210741429589574179392434449170459340287486992383757542169711930489728127754099587523531176259367680714117263244620832352189502866634656654881665847065661175373864319116206744287700673557364541780442500556445048245670950979768049381249511155572839824811994475242452628981425721894458869525996012121673044514539866352471145854214681881081087093735784863157591399175995335764415201009837437614568035236896740914430667637953841660746843011183796829569702840798713829331920473248833286449144805673980082078489176838792961570365477916456718490236816755919255609167447633758247820790281539809491117692929311091347763870700786156536466222002614444796683781488580964605816907871808774134041504744128017540945570066756616316286839431957376954728205065745466560143122922827276661395717754668616441202651648353056292177664617356360133026385027682585954037937722633049936751508412141925247969213738167941884036042908263343402348589494789011310064163653057671103080138240642670249439529904876459833469429837786463110674791983909848849999653768903046025197520083424325660962625294684675444435895593109777477178238535423233767940373069914100257553454889599765086514437148576575644866012649655434122506868919171762032196191256802639276312449232130116507639949193921507449801691087068413182897589998150067259129422870381148800316956593977600793682206534502305348012243531179075618512095705846294447566066336408894020830607578567657706728181884287535008256086888087829010819053348012726894680385403601774575881010084327407159151515351907830994182808922589585153829335095428516357399494973596053556748370431394447551749325072628412351551378353261455060205615406329266668159918178363782844475539620558269468825966851228272127179604489762649122163561001699979081992501454232855566025526910514245073690969382029910105638512009202002703151611690489784373199148538472625824823571732936245028300685239496974699063506745675610866314772425415812570267584858385832787699168704574196699948927228250551329992520535832574286547484899221816747129806559032911648852503947108616782331453622971811253500042526087633242656739893130474357942692862805315762620521337204188178107697221481623677985264100953266622763161496158723848946677622698328623223625439594249061853786520608146091554334130730545856968519403195910131499770881465801490590069102554010395199130858424010417067614310340683453120721805115221094408179243510895939204649598960828021795345465118764161093700262837250506236274969129467689285890225726511822536494055288617406315228620884103613720681271935384099367646086625762126016424526018326906935289986149608379575667650581312762080108362320400388855067993274021652808463037947729399613602296013541408058455865211851759642560444197393400582722384264611493708288806420594418328842360694845655334605503379709024862905275255514371407731617044745805556217502082179610118161731946506052344984937617679691355019282155764805360222294466424561623013260199436836596013603906166578768355877420260188447006772726532053719824798906442578892471248255833172981642120112592801987266637266670601727792057188089632017571753978312593886975422015010292611418078475603408271101360290144879098842034686100352704121997802470673291795547075087608340180362377457609901177704434026199589808938650076253073649267841567395657770121490831384617463592594463942642797214258819749899910637846576067931466070954396004401140545146687786763596722727104296055196173425269109086754904888683076971672493119334938466543335129149891419878256172791886504120531834436750531410909069709959959474201537030862192822867447181097363438899593788932837246342199690523489285692128549913085721801795789830512179796956930497884547300757341953811974572845623830990231648337909922472770881749240944238897249867885809131916790322815652660249309559114013703848941366129032496974589013360478015833248056155963843698030660009471207324040857031628383441158561896207167779713097973130365482668512630739373887107678933476386290719831755266102147665415246132670147666062733788444594994370766915855727039056590531593557205619701332866024387213193444537852543268722388122213253087055737461232856821725771346769458234072808620429789348650941828683898690923126951559395504495626624477657928563410982728626103229332885603304665036129697202729580826328395599230791356554745624181565302727744702898087199522521282949129602206101840103740790470586699526787347360074219151062014342168589300688286864481137088414126557759529177910270078916568977998514867045472796921373876728288393144696960972855779767158615430581191364156020552437031951806353548547548658956546406043414849674633295775433247120091946090377147523668967162601343017043612717902832387893565248610702196282010989046208988131797504459459182138873524643896316762590436112281867495955162638056854275152136794431694650493679743847592542571642317269417768634400587281807979959118075602057843997094750713962675427618832671666194319197808631960483273249778763042518447283638394245163684425863868062314580316534051308610584357742040082772102091625418427500303404608890633462263257236856561034869391879722653599145999860098378166043883581353040119500230382252866319678586791999011861942746701802268935030975284024698786353044996919145108847569311676792909690364518485741637450037134800950271003461870378514295216580274843835033256508270542458932226059955376459240042561394844584966790992186013607474036750564188102069235500068953136408992929793949934178823561198426842601792276073443924208528196629103133944687627930172843113459754450313315645200705769735543136687129485561134989875129042902100895238531322752953776298845593890569714563815828549256271241596804550261320138087497678929647523835038027611246009675370684041367375589644884577130907307870214149796801314740802885938247891210311541032191361961446463906237049261382059770908280407278182826363049056528386409826181900970326067393406220285853484226734569318924293318897451364746617053981303521339009102702593893240978876795365681032537832412473407680508724670462057843376923392071018975002570990067757185521040321203484893172852138830474064981877335945687763401160811584219529509104479486180794538475314168427081115685304303089029474737626313340165839542607469654863681501242648010228072070749385665695637850756107337260592385093065451728182044464009774815333175264449553680858465796396503994478947310070399693649432632999937651870084629844172514452791375933591780453340156405115871726197677813503822865148325874271982631383647086343103766239165191245386313189365180127142311585764809809782592941555766630015691975062718694143573976171296580130720751124683514846487603756725879454505760208134103756212739491008541053344908128975492451907855444966252114966046942873269690861040530513942040155551042457242867518808523686551530270961430218117476467800954877435824216834582583113696780232501962942220492992304561462576101221301035464863850641582687442279398872966961312090477898660037983747672886761301084982150002540337559222529504480799916559573516605328396783782837741902290525200442999156864077425365150701119485683096627005790546941458258819475000597514425123706202347471085700782619781774732694007985695845937065882817718975241960317890072075178546063529111762107867280628394862123454647062101250774706481225510115478739179612187898619005151006430115474826373552770618732427313108152488741197200082122490433713244201719021737208928285529389801228640861554684930605641305534451884086614430139061850501525832405712635149760662272714572769911901945116937477485479531085050018084467138635483100454296343800077064274094648548591984000682403012169499711070460828571593603428117153073377979673905978399220920949590076774030539759593059937307014042266932835088839730964754970858696100262900696128802556209595231955600277759429047816375234717002416421174360719024357822401958069057930863274319422512938751774593501350288213022896250525575518228408491959248127705657835220622697358240914970313537546595814073884365373945506140350230215174192912620583435824610145697559321633207534519612735158857820957745212585156695177174623683046635733645722990089338442187569332386505386383765073123560114273914164740255715211381503746363943512566380623216524433592686928252825736369339961499827818755620796725429696004413021191936081602770951524964267909960486278120258519886404475181687639177113496951985407605127831758261901241009268417517846270726680674205520342777931725018746304265909877751167549983919292412556806420487515040041937881624327328482153081500500758217527336335674495627426455364911731156507862415327989790372775690476330597301891844658345231773728120062403898874483201059443107100786963653355004549265005211257753877132023904950028675299922413125231452273126295157789550142409440351991759085357043442114753493860886385911158953036629725460593557428602061704343875384625036298299664461199991013446193515815553630664722155904064112360592390344114644825883642139053251917919894883172018547210150635907130320484564757473102059696190499495161024073497443601220239051296891578253654508490700865907999154394946412574478343429822464527681056595062611379526840241989545414566990723606701544961537747886182271277422657242301231580364567870495158599347058394579592061386858502722994925656425151165948867130207159839268057317925380029470493348218671474182256472500529668816257509608746540970499423371547070378390496904563805150787244504560125197226767479730035047272813455070525920967241109084969934883801088411468028022907352256700230780578274071564971519741480440870028332989425599646701399887238991182096059927301638139530614644256791889760125906843208974420990123733012782157402809803597766809706563989529222874053457611669576426376593673536955401974554702076982758632224319918148481646475755284905260061016153952145946087007983793526748464254057688229938645328185898892206370739188026162455827770638700274382164191652718274713500862225228835400960981425547197681426630717382558278004388682805833103819615047757832291040216312951351465598281312337462846161355842417376262750718482968479886627056133003917489780976537777798607080314306618505695819158259705029110030286803234873442974137041714069648056651154342380003001707142187415400821047108724131429553747624484186222231549735915468310577830891825707268068688817064171876031847887034136338463810527911535549461741148259482265164259416176315603773842169296168409388874197770884143505154418314898202022267642065021503743864059442297376821777574027357564646118453868905431495319563903195292608258528968518884841674773011893621694664066295238002680663899065540429699902594817503253027050860651399261496866985571384831295371816356023966279522057938788764726088133466015204949062673938276627643535101392095956803832597700754850910828043461858545113030489999833812016739786797978193800263967066726573964039728970562857425751688508134954212712807876646611590966156858791162556417691037134350463307040015545420383721181989682976043714506404060334211721864574598251853550890638140981503492841299850263595368423981816104065727169453734533940541441382071893218643830445550586183442566372231722036662614378282054157802994101686476179534559823926171649801335622606052352236474164217107517117462080784020364265613810431502818361066787684853830244409379855946462036007163562539750813105167202396431358599317154089476196398439864150221646613162388952422759972541323146276248424890069089635462030105557852276821008027339926684632591438637384692690530814850504047087062225152687376246962956018026368242886152508335874331847115154796161241930845144357765937467444833772992602792844094004228484924084225561652629439880748167016146119414295395695500518874990361736191810339789388719423816470601302479986600247189255044469001667989607710701625488949763991997861293467697296275568215167926487696402545566286368162803088802374879925430827585771038403655462731620450405156549348755902368634661884293530365424366715359106398586414145780983830354740213168340969272196319981701874629505071825911711509129458818398012285587505869607213196015031061330490097377216418083061014989287441898475268650997448612911453481824279633421520991889991387096260027721380880249737635074514858095980858866667911545403907843000444510929461186823436275282489255052930005660857218562125067144645306029047157207830391352104242328523357203030807401759281506179839558969943245815561614344213458141128177372965780587045914887666476605216332781815233874460528165081576247684715824705640751452209076468610683539690787680794759258517578228675002278874690281981029985778859050749375729857663040777977823842013498569309985592085610156858513467890277949975791791804380959264442340305212692196302918833598331681340157242183715063136149678786715198691559996610191345211926726295764590350108838507229143659155437908454078718549940500316731372533951369503254123813871311430481430504573642834100544945749575511572042708235107856998977597238983791402163631932362183016872733032441565716479011786245410236010861123795948740464203714647940302415401576040180885995081886059492343656858971799844959014072951790949456922914377602273411438573551760227543601961661541982338351412620715531038282052432832673697064459399712747136823283000446370186092123382279644580063576379360198893296051101100886513225349301239811844970425282290781824572618958044939309018255361366198177863578788232502311826022415558626542234883402071893932576333263211349697914274927057802282625996570381087992915956566767484055031127697397443823769890132999890242581114364529429269553780771237719547177158273108671503307931327786380992861726248299760689054578740681731151511084713573464799879992394942676087964714837353269778602172121326324572370275621479928739597699911892080581939343598071188925553878562243184715386295371385073262834139602187040266295753211675681040263984267857132636127360987093539430994870265048447033957039293295546918354946138695592266605123701370987049663502034226611756332234833233260064115242636367280887915267707832377476575997255834634630436921887056997288619513655384988363038871345857500079389282699224169251183242967693350002590511060718675276591452274879571622252206442761607305027521753540300432233318185601646898964273387816314774140775377234772958559068007735087537811120252818077365485539007717376219407782804216819829176591528621128132123164130680121609904152276841361212897477241913783209971916025142635119879386103472624658132280891390030179355712001355327799770954781016144447020309189647424776155415139112096988292595929586409452569917070055440294088534038647381633941008544877370175632256524179632959217459935984318056743286320516689003514424898672861694864982981158848476758103159757420650377010651433227155201034377576388003879100138877111690408014013296504149337623245139883940521319480204383901087709231172421730535187207329382054338122668626416977911093177171146664186481675278345701341974402739370443425433242630593068711955578999164911502850312535607506415604901689495695171473076677799910095403616026112745246567062093035552105583540827548556786355354218506901211957693950400162778224291120611871918591832168551794145935787858298728514138148055210018820422400015975625686807671852503323481136228939122913611785786503597250137443435837915523626697458181364794851422982346147218011228701561985850816420758353796299370531872285176917167352567119706771983400874498093613633316571910918575993119971658991266963249495132953233942447584729405188046967749425178156439905876979116972001638892316172303552235050461334651539524525090493855352299995502467606092923513657829319159615513676325439875689774086464840870885125470055291140225447586703026582980495198161377545536787610727225097433142636050147440034093649577150835573380868629691629569654772463365252723535294578406932067800877511304901583379733574776873148354293001722984408335688471365256028635914617367017985144149915579172275315679807254177683560291746941712323079154423646242908803236706951905588213844017777761243463695020769397530804500455622682526128599502534045751811410146384114671943019846424749582595174251865675163587174631405557648899193568309664195501020798225588364410595704035220832336255706732589312692037596900489916596728812891746458584594940747082762589484288679706600625931237624767321140778515625394708037766469399102604774434373431000790211045692999299094643084957881575859170692262959168499092275624158052741970987343960246840677118801074904552404722403428190160457447358467637698434294389542785020382476786170149916612792366771273058161192989930218012176064332145745650889277049379299675880519298840475496199420303189511378243043086772520657731220092098594428404270625584256062368586245022938525092395084059309979215544371065242751619187265131856159199361330306795445480306781591146675910505077443662562472996326315958661028305711591779616569821741867745227092592808469138838928935555860148924407332730380981900702436268779896864136763802929233778851195745388084182737468328714052369930655271404684228119208324846913473631538978171616984782809147092208320911965215810971584950003136092367631421721277876567338054263013412460750368069392963916144992536078381224199074730799985873419622431750950638989507061606701541406052889629560406455675678230602219907073740537525344860413523256066595068605205379291040592883907396506935652786145910569415153497930505313123850408634534410713226990516355658574390294552406346095608891183694713975743640227321657659668999193380493331492429994426506508905407774887199271072157044663298812154946582692303561581850193374182726971195901850652081155218532856372857703320319597942411398424023842922587728174814188502950119556714038814817325072333888460343098795895768183617921075920351067997167210711021512521287188786397845547303038386750126579377691673972069373253968551162566965493840624160599591342824922290537626884755960980055538392538175623201534005336841860793114714633265112083058427511614023126134897365450173912769700674742679478378621772116608077119362336363783973959581321501178796821836037434048847342623655109515868775933528108489641201528082120138180376126431596921365251773046678212824930645154016558481334788252036675152027057763590182480057483624702757920075129090550240999835672916738345571297505671626566733993588142707860450223612820045769974614748844632313425062532480540846155361856088098092560864908651483280308261013918552593473915263807998403143912529581211823799237554789110062947505711427100226767143219025844618405567712229861054453294334301564796980240755625385533604337913991292750194319832817159632537785894990034133326704793695808634479601058083621986540150651840626298670127704510888760548225948434760060357301351629236119644654484966665673737172996652457673944112981200194841441050568931954674818085916075699179225674857019296535369760932630536312095816346932248047157361410100397618552158703976347949885342726159580811861136609841007130363804521342925953780789927227937695462280441995880170364946039264443325169828268249679448549894076288128474084532133811949609420366982970609384605257546167962245242220898944689978783816044841471434134490716628145885581168985532519268378612745942252763804537677933646867231114184473741653095121640160285912444685801973892509720254667126454287476416586181418659622624677692171194989942177252790157373794189503825857075421680112169823565521694110763049996598775125733815046753658739544797386798450192743403454389057594637327261568585495295049700230426978979630334068139484194663157800138440889703574578719458533514543744224209885214935122506022809409022964599952664945712919413555666177837552541219954793936012624113313729226530269590599843325926355756521638102741077681911340737006929334801309634833582018583056221887374588372060274462626461744169381229289456221144431154805165134594066697424611239936963376164184998233432051378882192457941868740720808752051302176221739360412220657908687717562469019205956506479647581937389169338636163143621814003563102206374996197266604960664555900624786246197240358057713177033056080063359863888242986994643855152767141250595739739250123795748567904628267047485217055793715028470996689579803251926477456598623841107923226976180673368081431375499005618942945649470781115412409280373508444294552221715136891613793662556461567939122074008909818924470971952095515477589412073718279768497048905363980224986174029732892512936366177551713807642345485636849857516252569188826096555422577006738120586746797833044711551488349066660398924787941793865770051937913239967506949047893723870423585782441434673029401213550057889238094606830193795971583034261898286287743601916051394713975715468837125805120757926949221043160801711995086062778882246440315358066890338488468430900917246330440551116063965654022566253664584710700477556236784843955820759611732060862920187029227051234359265874801160345833389778586210470094355578665981038002603784386637812331754205903750078210627211308633050166126057938116961875492146021607468730341120279154182120406621082331917767469585446847386142807389868802861266348195787053240263210006078885567619130183493090370752587054762004652483761671270320688707856713635548815664228138377273871826699295213686509792236942156532293267946847742139936885059028255440122630149879241747239586551492391173710868496432271493836629701186450237811139870245898779358062896715494426404951302767443635941269431236154706755471026209457835544300707840472680656472964989482694581260231325887693962573641985560339900859857062998844767120170636691161028065531522983880728349776068023365524663917438166900278533549931777266207830099127128796860329955588089655975380766532212585128954757056309215289112372919671739796272880672119255946168667916484841309046527257062483781057463359953120093787732504037665731397089024341336716529531294832407296687252494395418317707909887822869808459847988645030538559832740861372777633069569777505464858752473271234181178900589794329058702810104655358874204211039673897674329412406959572802723289916732297382449721370723556197738503659307940128967663325134712221443827153236056287036764879726291323272609264663547202100859477161252461587196284568569578285991654194705345182008370348158979562347747611350501039382951042407034929746769731078849660050645474227964921794987563905427558048308959268150611827309513215043595685272192060696661113178820597129277432978490104916551653780550343419844252724240582203697856894685452808170584268718603529074066753789174091829188887364447109607443115164888479419420566096452229491163367989484357221756895699644119513631971386474642275851746605929178944457606736012176082377471266124438810552062974689035826414018753588661751211918324302301821510710622088623210869535639999318844687562849822761863382191941519793222844680988861776606004683313800825020828944703706227352614398744302741530619812325852187573667049871781065921063732447899041263132948759891438661566733949215129488583641826668842138346558743221444533546478967703659082295138348198704306678424171567640358862322803318987632144312643938555770474880453814768391581869264304693389636261235554371869480305642372727069818209231087552020123523173494128935171569006573463022610986666115220046453937939273505710982895454450658269496549691651134794655514391965073766706462992942345357400025209591999091041497777347309139609254688431073841358108630514825083547715553595130995682170164389734599588947789236901052536941243335819616794912343928402113770336649699419169631826989723022895165848100468215333301164811855053904805473602424140186532242128798666875015714450315419697056496368208773037215879536712646796357193659811349537683704667972272889673604018820881369060841211892209878912294926818044365225078179350184120324716014139978997404477070435754763709390929914371009070966913914312822773523465099831859359951479383241470546299331193130167135455817982386999931881791552095500438160814941699821767742313383925692867368943814137241426722512634270940443482510953252599220879910907151125657116772449549849845917364107130937589293656010383672701197152692360188580612453378682924399900133759904678571286764251861753767884767818842679680500081844982627085645214295291489166569724590190608196921278721715786354221964829956750612474130333123234563617183423336516669753739908597529628144609597391102147343024714315990719512137003379021732748971720346915102674490067631893875440096069352961726620980084054646842312966002180726058515381768421570812289525488830601670000658426027712668205600525756589539045675564829850101736534295573130395877923286417187047620061050565268745925169671838807338229749093329474601871105919174860158340515496316096101374644812912004994287868658291828286783057701387882177295669141929558764006570491338789555713389254134789680295546539105052519736615040265230793033361922297262494382372541200124506145248811542103888093510545082837218110929976884227752248861985104507720753505981481986022880317782007650051406751219503958068894898874192904015147959400963161422400702049588052603319197484435237099657209003004046566905941658746379994720262733299411280973296960538575152793379026015854311617707671252992218887069507033264776412232714039289409881070360630468396752591843124308137426373999421575262265821582635785796119907321508415701597890982739785033931295315678724736283284749802755829499632254761841834410207402748144277029658416854497245548201511128525250113332062224916483916430333073154046837654961008743098927501349353465214211822197505466206548523261180528203465954067622646919480329346283607855020753597455726322374735020964297488445788698409644689779314839589764683339400147191491847000850802270462763462564649151646560128563572059109766713028900162817355958130861611711132349575292921086520009159910653024158445581538696712688612108611350915042713472526907185114928352574486182637569272669178472650761495273745877797825098321418418198473694532898962296216167660084633707396637227203379130436311373269594011444384770393595607928963330583840517473370073654776289783818344868337722041822042409302925677332060204653486694680158689285260321162730769357749447400581777602628264387226400343712915417653941524120379193839088006263912060062489909106848560416595998521067174783891005719962725239773029760978348006270795292771408281264099691781352651495328576769434688425940590123000697468480128099307098161106092901203789031567632192646664205716866858071611197406440932876224383833830900021790065928304208516388198800648581264720602318867241484152551566169725897864946875307964866882500862603278320911941632858511398891346897044966266652860342339833365701184925358212591280012574209794972711886824443488924081964216890801649784693328016844035370292064292316742654874360447047493366907187339367291824209164421601952977443849316863356598287642808881448709765318042194708791167239221721137608101110316222191052389992073073797216599842056045480358654334551081741264947825029952613581704494416133651912250338264555253052094043131715261511665743269882975243102029339239717564799204985324837531384030222487087930092453186488780578365280500066136897686459043639429899892741405682814463437882937545877432263967077038168289741326360501878202984226624309754180760973505035912965054646969167192348008842877574513803534906759881116008506466134396410163473353504551078245382698269051367118686907311841633886512566526068871303314910909784634873369001681971296662778101432255021799934594031489996870497209527098295028447022848061929775438207626163468362245463157022055740705418566530801381076555004250800502594970788007575595685022489302047987547271745921243144131173124968694318257339189137874424562570349020822048507800461418231896495789469376494842807174571060932264925345256148213565027053183577294121492828681802280015290084069755436950822326311194948345629243797382503012281269886041105800482100105905898548977236949874504701604853876266595327760479635084295639157160688298782264480230397793925619407777759475105486572277478585016808862293473294311976443110395324785456940825180032830340815034573480587186431061743865670246942292666393933328651151882338961876826290092265627767876751551644358588714814384931246168807547299241595734192573202177897699856751853294817610697485492616610510454961958130221262679315711496566975639405170561761460191033444305460218943493031300294393247852931835649202743009058404470107576014300493996333712940062090969215749477058178123747265372685999677641232278147746774016823700745189032105875547440963283464198195670021273844496502594555461902646189899180236372891411127505233262937820316136000869498175931315210443384834541849741699071328603208016356315971430303872394875283020998954888374265214625902186342914869958785644868647066106826828356509725499566032065263658929671887590650333022801892977772927848698781228358310082053194255083717421603436228837306790257030504810897349685828897516437446167933147844868624996815230750940561783564483949170443421969148332739403977970356607820848914278674320049940153842751907930800246373601335838449073307498099818451231395440024807001763352419202532551114623339555735049981272155730268857369226511154593163053290674007590563545596047073980022182422705785649752524376289239824939763711547889765213589259969108899914602795194322068285592137833784190891006101286858650166949304475562552143887844122239334711097650614899276825662703157967607660434368923528570871186264736309543684684555011180566479412589507743064062932367450710725657577896183989327432361042979024798853783293331161543408317256431855135049828788723765277189347920990284293405231466829478880726516588098043739633945719499606242802179551382252154298770040768736205288819884456590165952290145444172828063524778261561787656111759560304176367809575202401734121144504282355423103225997471283939324655935161534696734326220235685606487648322124880673456228603801360954948578527224079656865289048485560008620512591862860206154347981137163940470983777535822868757048535508341143335924275189446135976235221725584090109551665538539308314597497960778553634666815473241481207857721205838830374310573003385420913724331154256023969682007579122222573251086733298932017651740829937790313179372888613711963350642516511817423495533371339672978042571804693631628078885787720573153256097296551254605225275943612102189257684727272948584009938360738252162590491251159528435836298742818358414021752105991223790000453930516134288209422225175976849979700557977892446996738117956719457299938727238742152696374644343772466134212569456147596077943626826473274383477652748313364635579522120338122013632457472638573060194688859335349522661172741843828280777723269457744448362024104574347418551455016530573184934311311160435758825546261197414490371013023151620043610173759503649208963582966974513611091368913757132280029553886736784196005736363618251793788962892622571480731229944490282795770862462475315424918071022239897213039075812886764959249506284706099601595068321976668673357587620980627011428256523141350353187379296990060708852705189651864721424156362294996386413674372873753726941573302637353016272314746729308445066588038816175530146080136551454726937441841326032659874577915601859355703175484063434075065199337793908666214629649390306647589925442891905631547617303721718935562912916977321150035819826173898663317210945397634207874160957540479256644619107911265983383598688391769235874552384636692948067690324372326226128739659074383407394477860659828081349869254023571217346695044450757060159784874628806541119408672029964748122481640162165665798555475400796786739599539849539007002200506583622339485582761068630929761282182157085987355711135097706227139137028574241887659272225093424394113041862690039696600664054320831037287383179231931624262305800948690020584428780894078132118623786326399642788834176014544435855284016485289789011602788120521808238706636972411643182641861890180467336007115734953989324726079935146838068804669906464875431587858204348963266522486086080096208327439880315956967873892422354941483274389130758179785530290719916331884786629545624999601997397592712284464284988207942722310755007833525502250478008834542264582777822421404001708057134859630636366595769336677916906905022194327125734133133566882679085195381897715175827813759960226148563529107882389133204863676123360998169553498792279892887673347844196107392070106937129796415235054854324912627174761652489328485468894677701094459551414120943740119627751449315548606302417999684593092128849026888383834817454453379891075015569804743904672275510228064225313919306549360991669593599989674271828653138453618721261678252946030346189201597977856222658919955338339524662466110322148456524798052981702888039610585227688394834167075900092095841207610242102768250852551100443630928732986378838515728745359296702676609534932344531744875150743507409542622003227655948485021421217728965410065330000745667177528196157794191546351141663380789680190118885111113603173713156741265269056857387844664083298866474732726139040408096043258931289076491496736675422245815986925897079329777309390093869121503189116632869643156426826193475982653910167462789359685091975484909140086503369644349995298300256603677369779079713394574559824499266965314665285890119477204656766867458461473001455691932226634528346809995911887170726698244781290603133148949057908598133084093803595118106186688875920370615537976620196538944856213061166430046993936438408408190349245121080031888026316325195757689625547238631682592001975377290897341710288444209909900461449683195457201533100595133127518871012010420498788370773133500522683881364608230856659096016227671462737803536426220549500418197879162062982084204366945889151331318027460708173211563644821964531208132193879578554518173879804109617693076520315469370587066644851590480897912526741814514689253615936497588897467087424521700581240263582109380732181645419930524141077425358173832595858957315655376562485260715787020374557526497607580839093758540326504521293263047774746077807611016284151896340589774422740510457069197557582466047117777807475929886027891406541182561868085696090326740239320031384365147416533989684150329875131449807589949751650696640852247265667618738433538501869398457595704135986454864895968618719711520980174508820133000280065631231351507699496482296315590768976278359612218068253105938687887559780457382464874697960976446415493293649876992956950424624023870742859739932615982378765946485695767199770710493909647949300436728651614400889355737788199965453213811357470791707680778091263011361636055750900847611272444915718165447454614370587471652780191329941492867219765201865590146651120324025703540444435082499077201060882292969795982231384123231632297253132097329212132836943090240678639950634734304814925205117274640359838259369286496150370072378084813205887186926584775687353869204605749969111731939458019797219312188352002384960283882419452528758625353372349389408194020853644570513536399106361882798121253444752690875486280930600291084855430088835003822996608127127478504039503611306040999185577830260668211333189998881721311867364636553450651056924111134234593231013797053150187222445930781970745824851177303070893898611830643983863788421185801508581607405532734509521894920094608341151578784001395693538888974894804940628743004375669581800876343109143227700268272427953862783483462869988018323665218918113854777783331159503960310829229198538554319983840808961897991889920579570881896524853486805638321349261015328193388482039120348262921206325210615455191028858025912099830198395926271364837882742863797240433249815998485087675755014313370602113409849010240633385373122436643075367394685889691928086529650660510745578148095942634517828291708972944359833807829507921046270476037752818391063078683394040960107571615241888993080365292367067194074323920761356975403414341955705757775368317196546196260596105299837675339121883608451203800118536523926166795215575650439866446083545523271797314470137966177481756611720084097555183759156901037803097568316021035826215448205298523911628305143973362509988014179074497531500911159391980896555637197216380158139258729720516494445811069901621291660163171619517223916552232948643482689677072675710409677977018421835022892483462839918486925539280225389938208386571931229625034268923018864911387568470633101090885993995733530498535848242501379767430773608556826990307820612403191342407588596452823407048397888162340821954843794423839290572355191210401804741450376411130315688292977171059585878596661148242568012123433810338215154908710478421293360137134139852941163248180883212323436519058001079458675514594142082013287998291904743039644873195299679850032138561322540331070195879480032801182186408037812273702460493703659423378568865340716905163213972386491514262823680800148816413789525529831250311615038295566370325660428134115899441901125543907732543515983287456296415705767914994599361952359452553045102319874666102790374893117921679911484112278960091405479662884104897084881519584601833608957254279603387570388986940963920377834940944130272550075003466089139012299258419199140104200662021459722262305128127481493668044417609181462882810326457150858309413727277728220719371403286511134902616504986176526614999187461030006693581704981215032663780017794684294258210759321403225087210216259125679391791672703789507016380943022602244215789404391729567513806423317166788846263238047366131373024441688198898023862851191924501676196013516325966264410667732693691643040067847763375275866833124572519092546747611588351075404975076415764459357973390992039410894218093174144205611275980035772614570658379784436250615011266990842388471332516294544914976005630111611210194958067721303291121144087099878583747794450706223799486179421078208635033208933117081500676879432058842364740609025489258530648137542334491775532571747472584612027909177515748611813114052334513755028983820070379074281783394322649530354741960110175753691995118713052662981459204838630140267173256914746968312939496854905073619418408853914214040591973413724879275660785735546272244207538449723947145071356167988775093567141147280929372902360630071822720131554226259264646013189280477518166679967657473882612640998449692120365460786284044337258556448770869785151579492777246050723624102906531674510308094295744503070144426306121933313762118344986916317969399541807918027342472652059123412712427268952071105599955627529777355734449637306818310134351392588525622260481292183823209635470400606506354310410595356063178970975616340991388893648468957543457337700729921100488703132120358757269359952614555852988376822770329344715634002796707000805323790653271534158175094729285728751983346405748052700209019443889656852273051055296027091126571035072798826930578992315986711353918875014562798630278210368516430720654393473038857290251046979221144265507416122044539821390112706859777940428074175458203184900201921168970695416785373608180186070007030252867499601834479651914043912006253366866825107907487031022481747224603805159100295915874810344865553889377099596751197842549881037155392397597507591262715440071675942633161400983880371006986494699703715892315965574407244484055630370799505510052154635431169238207026242500947230233008005146849510134797660263396882340618789171740863661655058756427194196846654987767042524076879702025749949110566115188546625405762918728073067796266659096832747985826611020912543186351715493066605006503615061900976908354616482416535097198932039592630958797462804129910985530633778123845300912625387356145324539139356798931561624207347525866487786573639653693397165728555119490009679706102222439809119385261711870692689134367511559904694634092498421858068020277437112183329027302855525252303941187688767813435885584320066042008815661511643878835744333137490647041493067642904357394678822211513390401530435571874559797615756594111219479975370033092824270962374047087302788161939004403743713220596052308349104194845283299728027974213672746857887842455759235487220597749075884239700434742454492246402185302208288675475752697779068410175996640757483702347968112538892076526673521272476466308961681890282799043651705702033655181940045999125669230112159418467880756327730626870456308261485049637068691434792654133170823183779486630830147354465099060373828423941961380868085321850278098227988541538111977637594781719842567005537375094140295199369083712816262040288710677964809911210733811766680907118259045928750959452295466558624019673991964029815400016740016333478352869136762267623386774832639175044439218197814106472635520091688764264701540590112873769099240893165973298318854504093603528261926776731463809444341204313929420578048472300146548952364222542051568077747075458030744971721597655524265242933316271235586547594325970187602145746257475221301611917720449486901018883451673152059593868775282437361939979803984078147820974610848955148732868492617597222480171985846943905520036067987454695837302556928722134253853153395723511986226387379651419346055654020923471219888130443379491464057651983512657382664870007683946252575178761189047816629226035848851633619196299443410717952846105168879063443692744203206885515027345798973608924919858365574314910742910334778450994073728695656130020285769677381233951429418597184934377292922157951654749390740371674119089621315454344762837005881625727647242255013012784758655567168913686623314398280015944916102818894246505799525466045192948895044361462161508097724104171278769413525403213045274363307107359873382171554332696202613650441009860019415505576061697032078353596417692854423695431890879884123305185418364563621551213737954690979826270518486991216887982447516567492796563461121478084056244105942819051365957441388714293357818499101996445560006803068283850759642895219127178793569712620612215545368399054478520979631391876179578657915206461687865788215716369940681170155198617818874619196077230212530346204636798470429447941488166598695867008221222941665454302962622308110030777784546191887690673032791117581688220764369444447946516019421360463332258327669939973208049429152620981867169686398216626358410652316716129552202848434138735237810663356898651811163987442001813283693441850156100641899025169365891691523040064923568659776417901347644013036897519238035051544070846900205723578153802835345434467359256666994908526992492180517996983641621068762582782085812984728118016977289511007216783789246952684266881980413133011707110756931293383227092716563464645251065417247929192103458080821893638535186465239229843265485330208793667542200906730206746623784974232990317902079135990884460899034369986711166990879067739967514873417936386649366175960590171997599207069468606039139852197210973121062964456085755161169947518571719688205095056173715768651331682216802655743217070556206832049132903686332972664535858721780789235479717472247529020944928995628114071195766429333946196637115100158858922076741275738384251088340355689222671122853179609806544834471700914780726818693834902973858474812768186460497488186069547207291399105063464418601655674996498145214410221718072729889266587088862945890234917467692419850358069225218207046931818388879026230281601024438695445326277099447726724243909008894513634755327054152545003241405757007681068077388864601207637070670652038017800591927172557590740969049483714048701920397824932624918391789140084818489877837486663814449633680488026604436340243005943180743392765459308391667283881412077425588968528461955579688896016690141330237952791202287153209296229826600501669588248420616508953188889553753132352204935032540493845777100427759201236563974887202136554924379288302485423742367479922906973330606894175407749007787041754908436871319148455128421462892219180355915609328136951100722442321555624976600841952035124628877213072553962549919729991693215988365428532642182581812038185165362450251784836293960606670107574764150002964153841248379436903664106304856690656854184604630507798479597145121707638508780329457560746391382835702128909589298124021539417045797157008465288301845806942849969428703776901251446325849721013696253146389592783616239292862580782188554934482223223515329552784526908491976089592186560757324191738601340376658845819579273844711327194201101916643486488436583316825565674071018218550039869763295685327370168764138028596285519084193630396626606430619566775458147609667017840490598892070212279507998677968468705043725975402705640854428494291191879752712785390521555652096220966195527503493055772014124286878112237086228846913212690182729259063399601125639160360002315661361534924976774513374347919691459480574273271063854208759357322945864276521801992795894842183729997854840914882549664474134207956282538824306404118740919648017501880130781493184698314503830578316303313178385667768965958077361493092846404749936900061292666692698942288619516476004367100736396497266953349755380388117586125183989173678803954305853314206409052161882309972876757481895828063672232978676616503713831858536160179012793451031656902574600717927324200363182432825583563001816671095295925796773698087442682406842085815392832813059065485991409424202207780150237298567154689208959756320017258013885335160808105148169414095286491262151027871597847360476717216361839122779007754462862746024695165614934565536195310058954556061610198650527087228325250024265400241692354104701051582394140700016966881020404656401189852285994689234222593327760120254545235544873790907223792130072416124756100094451995210225411024978965725143150090719020383050945933518590618204648873770812077657793110585713858021514545677750099513282112274198642244661814297790523140647735980018625616964642362528392268203214118342414040818318488061956143987880702095215827415256913737998764342890290203192151538025736011004679213506262298100650570686738352453082321572542668073530920879242926893325218249884079312996461655183756074205608656074426357551952612220608455470250516572354563906110089094504100200481710005338602661863583782502302242430782878117491655181730993959577108876335496352470658486223139818077095200607143356245385781263417574773735232982738881932685915750999832253290042334365557394393625125104800758324877798258208549809746009286946770721319109953395546690067753435195486652165084208951377139168575665906355826527227687814591732840821311792733521635749847265298816604818260213510739551107655947664470282435251786510453022894011268249239080888292787727916613341154621959471368334957111268944325650382031392559175951828634246007661956718029118704695601837006946301979065580695365683560615334288651833585133699032999083937876567385152445665945196491992116696917880938506552529167511477770782601391821127380682025421359228952657407337733262306250877625957873226601197090064042939256427665307166851281210288145865150334289925035340518741650049208873661564526794257131228091793282642310549751077624036922447026034389075764056631253617518789146205850266268758130065241237949781884279811007162023477492780876985430398520146626390753147191986743316706878224493402485690943132031658138834743426257728381597811392522675442674053812375698254397087653315319391894428185687971731579720022029152215738788078106636834800942418474560752011201761064147948067166161952724354049777922508554361452098124607924334937381653429273150028187864353882616844895894069017352944223050183001017586904084376820161124438412175584156414329050849514168252860877054947740945870994558714069476998801409193754658653837771146667156020320585506959629136898068452994179312914391778122064727395515554836606923088208560280792991340346849253493530427354565284821228888864710188180957032042403824445000834268185971583476075992071049918910226425183348484823367290657917969764480261136588761017523744622443178843678842979117288053380234968918319140784183212674824913797746540796225800358938943250385855012476248652698157885887432631774442961092520021172445967064054282058883151892882319971108972700833788353720944141341265128455276835747283795343653975856890854998257703620012496999815211712771612762913111759683843493535908716673438293136085536354498649334914936587131718246919650255100409806013919108778370744092956545699847398017820308352097163364361403326574350062968427927381813492307603464801193971014479493357861840204545015891673897178571205183859381443747376924326714181650895073269982499185589086158195541360381392971236289020465041907703249523654085883821403273790053286440082095978666656995376234990964082820609859666559412030052143764404031045539878689241836151040095307052803918197100986233425172457128604451989927909920727493006574210273910474682908283927983498854536291618950348057548687120863151730139109209255750428298131506168518704781280607876600333553356119781016312529039650503046576622967386362875546601224990078786075856612218105433301386258049932297248802410676637717808186207057009414048671060105168772716430451291882527670821541627576334308870437405556326823843439467859936325832598203305457977407683891705240067238229858686492112924150431464253697977840084812665144359428044457465862498394093287218618818293365319137447068723315508902582354183563359355649520202534895663722257027785993650787073515561460591407824427764247043500391716331795613173191721566962386535704940878157477026499676164136176399315525189185615531017416438421568176152338445606671732482216261809084407461752882047258555626640823883412386796418000749628836362760984846956913291631479710815802015972447529377269326078101302472237897703973535185301471087999810111065700007796199914301871157844203010229723429295791580585280073205221497982266222874839966664433768477080880138643827229976499244227005949717247548259521568718661276257981538973380946919411772355923538866957528965378405859668552461878001840139249812128949115151803620537985639576269873774114796065240661422723713889991344814315086166300826199572828643166360685107904495611046130743545272074196908162149754589976983341570882536712703055281185564071373998251477001669776676535673042236815020719643972893727793751736963060637452866836189680549899078099855107702001491961612473955184044819164533476646544366976382721217239876052035627056614391510267828278322834819154189993878470813932775661841077371075361781941758619868634746339803413983551756790959338374524481265121195166100091348411621436614387137195936410613108365599043042354701394748859666584145339673581895376728274680013171581783316890868085318288694159961050614554422967346328560869912317654545831138294370202217778797819878494867110848064429050570344960616149546476242572458397390336941080132033322279590118509940225285445156166257606463893263089185594315446493197482036444106896655043726304102416907414966231752669585556993391324754533308960066760491006531896412669918764899310954994617903548049607213890054695237897344769875107758927158076139375544171764569679646226659972625726079408692104392291553858382739112507130313929225364444026117714103237119747208229573712209369947439686824021546583559051304823436766282534997113553792434676127000798478497280415824016852313997556156551060385425483070796156118858450545299367080712635012285634878283248078265989457890999249993028977152314577621446848312767059087726085836885972458581201802896128047545146863764514803193455042030711951567367676363921923853949984112281223219665504082776305803852480187548405758083889367428370978432171370738168276706495959045607500780753828662964315213147631848087774214776313382341081212437664568340168243864202209916339375033079460318866397771936456585520360091644903101615445724005638127459371568151306250424817504228583981110379501126958044482058062874882374258448857504711006075059805115535809134996365349921799261434142967050304218513206397342816418785161343914286270324518256746374242481590564412553904523433142201694178089574080182871605388150669546705375219502372105812888743936335827467287060931222855416591047739277415912639595897518317949224885353242485037196079658811373065083655125796866003411257707476013727795675194213685457050154895535689885798994388206728980899024256140869936741301972588696880390728359973649713400681184352350229873999768496769723999541958879666588730265915186537080670380026409275928278516056273071778309649975654422796032109316041956622380997777475176451405200018014688869476936652146580592782555053362829861477996553381447516198279804488698674279368302059171647075997147394967223841949410695015982480884470761120073154210449102544230822552160621130744223564338326859776793042617986909120855756303575538617010489824952553861544233506890899921572607651189884448778252633999772451872084782033506633880321348878597989753204093625637911707828207406799831988353805827189721668978058076669251822570332279267864654288760881924600045106381871648134380311276860585801968162372080768977559743501999774831938144122558879480830097220065751832333083524253035534024706651673587907037754789608944915099640831185447805960111617616581665374308489436988324417694550778339152820292494668481702142487339402939867586697951103627024776302833184184004534175359786594595128823097441242801670764416895153154662615129100419723434339312921022503129748884784084211270775265299317469947994657872175085449428496366787089656585192289014521125788103088931214313101306785796629634443001227240728852348326050874017185366841404451315943072945147008395789367307452932998041902151126488886711517494279437744351748167658448903677926029277914507431061350931853043071466835488411881180726983304388974817068008857085863279082368527994746132910934700689257010088136956802302296226032130800154780143217389769594412839179222333142304728574184719178538876006945788767468572364084858535647739562570659784234627748053341522532383606671213205443283832612437418593937774044815032720967870600543370169055510934738426867340512762920542020083765597982133513686675518539312594022302710342961992720936599678337362426946923759003155987374711745407033623052261315197753794969488482233060619266619786234291582704741504141396042704031378330248520747422161797576314080865570910489292989293930659765907570434102596305620525791942206944433843231347461925236359905524128439149014142176067665462681910079687278167309395905478212925780824697716218751194197681809082775494216743587087873663752716381082924129907970120290796958860659698504431156540379006134690805583689730273116339288048261950483670597518782000884586229364121149465590831688084426852808118660206329160000960571862663505041600480529339878320483914748930536612026373145633571449161631226287060074383446816115361614975285861653356058686585889291143540613026315652943987360116794924571319416634568623547979178081274064891274367319096429084427280551256058590564399232007969344617947684338584345554562685295351471269322771494813755350046547733933451204507718678609949732194163470848335637500537660839363732118285562518577617148143348383021278699853884635132892926149472806914730721909668764374054735485095976793706861403400018751543785270064042732621039266720399189925398146838164828586482821621924272994541499284487063548991760453374296539051331212340253633883948088233013514526794970802507436490034393161436354779701861167362155003063044574400130741221256921140780398783030024875678542450979121159334013368107773134970679292641794967353635016793926200674173790148376678583763941091550699260541876992933495032114168189219573565731916854163758871356827119772924981014731728955247151911145666344235228638495600061656127622492338932161688896969521793070877445726883200322358703208632260569030233040586478884511802529374671810727665741087644817497144781871808083709932869080756844534962869726810805345365201730794389338126899962320278273827915306598918473893667135093131482469439676939419916085113573756775547797857285788079307303556232274171265394751780888807019082339750443296405861244777882207851433440992458587964745135417564876897565287798056212000388275214220357912280951932054558492321759593202139802602208318055868052902766401769159364300868983836145604709849588342853764424947380846946627094459644662651608195232739377891506724480590333572378549738271291238075042369490414520855037940047503344457173942964407777363309739974619114361689096267572270440772780043894696003505170481005767189853543430959919018760626721838979046299660440455025559399441848574270471008105795687255583241145454213323659179276143365329150083753176148557783113391400324360775844450776730865396769593824775779456226083939526231333351507632408595427401348094673263386397903184976858700300186913220065323041837364579641880672413622617037036944502176697961240323121251347265389318392848258019988266024625762530199564358093612242457219942961194365316335754532448602372536178148173298091425672816321953388435693894879566343370603435065374871333661656125481290026463141072498303207988722785699934921245209046429774678546129708001442616483066077829863969449683085906462137404865511779559737415189373086398589464592328632256368214420308053863414582197953755983502912581352546160664833281881343572979189193489295581775608572478858578549440474987620047219580462514066283249682809720703897724821745971180830256165984275878309701477996990190622025491457325452094374665728271685694958800024966628475531518330230449349707328089757333771570651788249515154445748412396834916260681662255928533181045819562757565546652660690058357546387292001119067751405738402515493865136778454620985671602917442578078910584075239464752277129132078838502901684563492332644853190559340704935873493143441504237864716156074059290514568986045744982717441985514134541079042769557862044052983084541123912451785813944303926542136516994237966696529138211610170619281534649442284682592758326208079145782971869779456451686113085372782268551768058137769725564586152557492360734164088352542179644966545808389923137587552259549448686275173484875573031742926112599633421825209603033145878854742486197051742834194599604776953503635128931366958001406112936551361368002082611267024970286974116394021253963369993535951054564653312989127365374002028341738645374963314335124287912470146376452433058111093610808312018769040204755997071706671673019704620297416130211928765638428274232682079970394120252579079676083329487470298083158252551381736283338844079453461263456085814709818834143409090000772909519008661978936530771066034361886711761242752721648874265446944598157988402078602805511239941891299555200582903926160540781163769572122720374306888602624668931711893836117430602141066270853123211943320925377814644702204736812068251787871452222059149692830110614791256772926947984846929185745385112422652505173407057849708433695836885053762760744447430323866435021150792137249242862482652591086853179105871860159100834064379462377031901151682410367236410945389990594807935653008292182144150694722294243088123499001252998901409201500939123506527103503498653256494654799493034555111587720908247555223467908180676076941174691612019128882113629890318361702486799855037270241653663773975735751402440387633221260950173587710069864490985893029387549910491448229991499113935870233282317252038679588756891138552654272306875978808373912407571159769774343521715915958301963824865588781467013430097318109988483066350931790349272111578266354190703571431087884484131563358294752316880814755218571379865986164887282503309708937372896979159288840985199551738343891471113616178508516478616632097663723334817628542961263019257623823368430583997680347704580884893691304327711066441422575123983017875165702110071545076195612596382791085384991684974558966162519083513488588049888963244933407584150299507800119661309073168129297800193657003520591784993193783431409307378930525722627144579929940581353152512127372332702063192053578415015348414704315456629097886960815572314921954936398452833772796289128133148756607933218079853830298089495329030194368489824661244085063278122793302244435778672677646723333277061912346906810596941807894284904616455426915735046435040981391229515791498878177798080341673510420774512030506863980893258194964908945757905464645703988304475732445455260572972957221820920848507068305065862209871613211329965859819702091798959088513603843408551607185219016199235366254069738740411911843638132149479251147857736419927058641711977919979563688883072888085860659471016074041328845414926676599332792687639128446497762791737858089425818595338780365299279526969108185069331044708336912152998639914351075735939132029541777376644323542248040524704302618900572708218920362915461595274813584211884198952372627353059376915928017882458474246560914761300473798472121891603767698199114987805048953544028697261906694116010283272328199339711377122066163008689325972494824399487972696826505117405489027755512508869005408837897621313423262612774181865815446212352911118446901156303868527882341422955269389112316570364442662112373885308396323427272936154956602998910901565685764381038244441837797526248629289194446060579746623508654994424203999842321576981446438052036126661168951418109825330535225380921404828284965625048112096830081097699790907381824690566364187147137368961444589011242029251684331313366911350018126899768913319408774342532316545372838462560168146427206297215222076285970713683597835438116980369584598994213201609407919002065983874515650796882975461188981314478577172132403079553166616016476023076663580285295955201054304682996407670230320482302361810017546497680669969431949465634211852226121016728266183138315578754919662450064617978345064479940578162794426705354087309564054396989796246451253924108468087720033563957393993583805906885916128388410068399471079231411480897822112028837696697869296457373367187721664727610843563374769317075491676578774623765411206036144580769993942771118953872673953465769902608973776336886350225044552215087545077800965840745351269085829258272667045044142206175816708074186060048118884639581747530687551965920944508680672518642493932934612802266246010071165133257161421901265242218751843341803329696604638548438677740876545989036325699096023805450743840335597762318063416177353306947505617898342499035998102813870762154506224923272336519859470648306193290535288584753440986078838769381038744626942235053805134875636782375767983041417706409867655420314453875206479815194262660130245885988811360061885408596051437668775517363053053533345444274460169830752297901827283592164211555283481045618587398640386573750397573010649055140603509472532290768649778573775331638256174270194585304212361323233941980038213483963768943274285766442702633556231060512422704739280789261233085897551431148123946950398363861721110199732152500214683223815590327356968792118094708470236448955031503717801716834546405659725549175644231844462218870981661120177323666491319368484279360849459985310338282877293385011970669581751897347533757305923974903908297793752011138945728273853211312459768114131893173562295194751672515011925516068948452795827778650074833939144341499645949538453282728083443130720935708377126278158277916767158027390528983198429634393178413141289559948044822448410105337993120724086426159411926064461557935659720557393201530994988962479223955641905868707945598174398075852089254680450168275213833226111696484216647030688588717184655013403676751415185717401259431374189313642470096152053396966014834345286971291046291954572164563348822071245103024092794134702077204289511977029079035416579855306945491916390211472170814406541139586916721000249175722086847407790843292146356538065665314096033095024863760796716238830947262550816998902040183917644434416266170668223147596934010712781076598257551197641060142000079251944512209972865137252307942098013111838967064209375648195932266454101973354572307932593646289075227698826218477654886372738334028010669456450511859779866146773760092310662030950703018120859434833139699120348292142497714827123380217560701664022123977215581759386146128349211232078676570669319661797299060532499400134251293702889845493562321696249813810942180181706014671823419046907258174259406247413222433356018133518418776565507327527314974544592382094600554763635496737500834064649045950484595624155426585421725466047903340837151287253461529005970515356059458493213416918094833411375907189555008868378585017938391095077355258553984614551199716906187653722287363754837091521348785867488305668147536498214345322757550556473876387617671510218959462715859448938909210128950428827297319194335590326834260461039752586445546571628919338348417999087464469970754126188173467535988826738474076052048812192849126775695265721760848683587959815109488192202528117272824885929515216752461113726347068384253570617674245358036735698215263273795090499528355915757006393240198849113608516043894264852244785760704835324438329910280130377443423490802934471676029067468082974352635255006582993786059956607396811596851507914080207960611116520503447970769445734189758836551705040456559609693091280726482452402559374124301548576647136693575826611529473463889653242821874639851057857073205563906403170915314412794198310000817660833075998496489606604368799322155719466562780581050873710321901084013800131338647817723421024037197075041063222791271750812878064510006282284398995098654509584219924557896014810326150126656128236743640207112516499832928649260235187993165910191944572112113993602626393701165542182331341886275603860179946005712656425394536183512800628151843475786855725497013725144236698023701799207765917266033035373364864538970981608187250754029152535530054922896783163313139723433697273654942125331890951380511145222123297542416689081576271983823980036305046332810348222564448134844613018152187704730600535572764582411008932288718230911889961437658539334772581281572967690218124045034047189454620497025852432001450687772189336238246039586138614426112727241568587976425235019782392237804821524135072425928924080981123502036157508671295380534999414882400107761980956653948740230992034330074296162721629647154337116567752358433621754824205702144248882772441196403017800486525057237954508758484581049050157275012421934261315983366696788820855309090057017281762713632813000175745003586565563002223822592965611509922557561243990250892344630345061899669091075874455363505417974758124913570621659557839898390158901249917924811615974827969992482683130062735708178870472374452121506442686586574356522858502316048350130332401239682919268369714508110275388131962223776283751666184099949820221285982062035229992035773458009005054818331524456103995035314212553165789014745254130885649828867994138990803740876988609858637749762301680938323210397899743953473911988632396740094951845854719089181097894898964370508409313772776212552177773567807819888381426126122656122390942948388219644601758349602200547835970482025003629358072352166611236812353860704058639038113270080595311174318905081575504648146069801354837820618247295881471512524264579178675825161337241570873857365796321467578254340081985881928704275342027335177768968355752450014696861182425279390533767728680298916562770599670315325874431009780317027300952964723315503885510714991772751063702078175565211428276405404863100000822096340850451994182582112534957612048829471500968375427154889553470297112263951145649843468486732340930533260989240381556626618428279973686813400924953367837813203307387850965242050217096333320924110431992333991600319489174536258529633903903341221854867024392975586831829360033691517164177744519723983743219897382544511978747415926124421523682409634041873745405024720865315906220836786048239189680651851604011731323609531794525191548940360701147571078805145368118748428424303390309640248907128879564145294925143902182958839202319217769228189811984854893836824152618069452907888285496874822158242834150114921311817227255691704317144438610218105437598213054381629649995630743084388507198408253378276742901478233206970168242595094013566340566078536171281684733143100405554438732834956131730952127530898532943543899687438810944487143631992489288683303828903753141103762255224894590075955386956454226079275468360594216046238813939472885809310833465344454898004787709688600065345219895132848193795275297918631113426154715477017105910672784300157665395374825811147590116983762240613577411823400905428093829756824494187773613664948662309022198712010648810643314025969630745304784899852101114758528641047947267647822890700093786905405954706795508218337948397960290574816009452182553537494867642130852908904432614227989423413160993769826072127316758531810025373023307774488334411536313235502962424582441505094876054162246771691520760664163407211723507132091018920333122727325338504614090329670361081785402580299656810582198784328827445747593352578905001074616742430592878472286610310388580598005466372264375406169481538351595243226513685895237374314554547635638173692365842013084092393703175709546657754724945225650596235836112381188351759301530234130587412753323346943197624605192336814908869847781715527757229233832255382250494896062592972668708548187383718004149999911691149246856349146974967516246752014816731155862305935229865257113449291420875220415251855395767881468952838540230089921866693736455396759143068089779090216194412935180247840997423872673541468383901334461836487043541773061103286800616209852098022235720587273070905469473020624230001848715668342049002947517597104309859732845488953478733487525153203114661117820232630446241655840105025872377619134836301804752235407008263595191406551200818899201430423424031542959196251872714475245134237452063612886481932668200787587051990293293651212404958592267751335702211250077219757166567252801900845142368418184260112616230101021839480374731397703351284166094894617494647891130528070367528575199060380714042479588408850318796291782594624412781104992651427105304185624713414978635309623958431699017160282864608416622094309988845918331750313706381273993602782102458607480698848704629160907249320491211628145146684914417062675303603906782585794892390971213456656648041543565744629458850963533492282888109533743497992960337713290185453442620230037233619323757323723028937838294564635004150724810123377542910571014854927989242845134917412282887116772668273261267834100737468589608055854458749401340897041289572303285930404759264976609682483202131301287018086803212803375351929217772689751639997968661399016202037853277505171036563309754936666617691554035752026048772638616719260298211384987333897421932599496996943491409074008596154422659778894026180374164301093213684883104355160760185547813020159907054990419923213874498465291346351778250395775589104499903636117281742838275005771227595004422007775958370244999764283174227884348221602005347915269107032052933158094663305889344228992254659884646149000495429526140090583230970003594716459115572646422097850120969291288107348565312821240476097175490604682050603391998426486353304041143042477717133063004367489604923691450174948364790263472069060971343894761769537615244152781404986846004916947595738535129848774610979986116984131065676370957103268456526299261280155670593851862216571721477862927445188943422443864369012396819131197761735187170292523261299095681858691634137521783867842843528422193340346206533229627005113103816358970936140973862386375741293316185150400794325389960217124527854867836503892905107192825922358271336256232337026249310101346932102661600793469927898000122024073748532511995387785763169259948877127981919370467221246085564681966439235484397769585387427047746707393100071362634993057395042256806465636203076749501023790359426270048945706150225347271111285872581483524104626182963001385745501788342534864456951135011489642622818146663135812466376593235769021408036520680587703608341943793530361634129691931257842500177975972843484028150601608301841398896829638516304183535568841855399614690464091616423390672342588548216575451714693658047396322132514928857483816150594922727311833723789149494511552756017153058617595068284102727823022873931037642658521924794014626284610820265012694309320386418439295170257310696998642949136249323991244580971771026813728492094464137392835609501543319094851420497706108521005360772851282192725821356154451809828680975290297008086076170366210724902089314423009830691174721908247980377728832688530280451264987893188056491264592965500657438807333196505937986473579163167927747972769004729307128864029784918891233302517790161750324948290283627992435265327638646988624183313692703518408217690320118738000255619082138532713165557384492779015632008068151917687010507158670883564364474288931915682519534148133885061486610365170953012675663130170646682084592993515548473691082356271950172632450809654620989592185478032630815361107684343239496332639132452046438051795730101555315610934322832568873455470522399970193291545361782547172940135553185779799575875990819707923440412885353962004524583605430032507473455220107673323429790214794241706376065261366281981268931205117976802303706506566979773479089896080165645959157194354267366528933079612680723400493060629374018521682623944282104013526360746332107638450127125407916586057997287312185783220137039543819139950076199200155100312353720650403957581641349335094938556504503165763268078969996588098931498563688958007382134077441511117434847908235717191363588679739347631543001584991568514519837891787988283040162598043945515838697122427955529499755019413761246053150414349076089115385383407664910773296900812586913429472163936746262562728152299619359412763705093757178547708751158780214696547704239664630331841604992255187957091611856683660774611829850909980530041023601890556604339042370776169680593060947310021499291519773027918592855804624996970034483034301382448430519010836703193697445429735054031003231161859141077761707071163509212210989708168827015238126761556235786105571671071860483327836043752540943606481042911119655894085919638980718006462292997675036070249305727657681460277079408676798272747801296866483802045941497171722969469600411879476434872872439642041553780854960548180130775195008581542068590083194009672783562404347404170025402841162159382372479069008469550938976753646366235689725525112027718803949924255816600929571520157931963707674263573976816703540772519414685673739463505121340099132559590167302303034807677676759553531576113605521626971703108593461224810533998164340398969777290407764578983346656544342271485748938111327884166573903763801553345459662018192757457574088705590359651400653527667550575232930009147305656422423410214997327809673790155630888025692161748736326669583134130314215046058892397053803845022178796993680712327026894186132164046306883936573201587261311747782040998310771824350320657533207032297285917557940456409138448705400547491012016706808211252922454197266442504915373897642056099637128069139776100427034628414799934631193352583824610677949037632904270636188790651567853902015349460718968568301149209479189656472515735404854631023106063546748902347183892103343226891101026610665845968843508233114638886221983861687147480094240587887460034066398019381855575003040411623654906201885708107229749591925379509397831009773244862966838592340292857386939403600271236351320793672994493998633584447592506734396339023779850896199826971362432435193712990125765596201193782836856956961170416062392111985236612291706875352870564499379273476844145045601302267484769647925112090324789208600067415018227591487102518209478472673740798676609176903761093900714876511200329796967968616407181770716028234318907088751678322315825002793152183016275479640014465574767094645443279011512220705771675638721991639421895662685327751212247698317808376892019689756726620774762455873016279687963051566041294920463409630849765807624625741815754901487279085897568407979645024706628022699032730055399827825735985614455772889646182791195896207787239571055962645727810800507274884444674027936169295857720381227791232947943497197170526759330451960037282264380963399116381420487521415080140502650476152541848609884899084491899252322398659227094415442369807434185755912976348266994934148627302963716944229968673586496134034733996861032133723701123834526271774841255584882855466535918393701653218522608348789455155879845117817755126810479152831287412806849056170833067367592565261379121595309085113923614754545040934140614133437281097631707485302124279220845847576792314851352511416844691385624022168227286977234196170468114189151913182068890456113958189848756717878721308219521946026876027262964622525107531802469295131849419872333771002764243049227504916685632259251644606021075997268100913344241596340453132954735648271123221830424252900144613481374683728057788814192829619402945422797723042674972400947357861883219467852564330766774801221101856371932403812836994831153229951483432656099002380906500096516844492661818610194303828501246172397338376436451657314445060532541306408496409418594863458999921574211284628248500750680626783452208644771596823811260029307632847002648003277034259412752005693794348447221133218916706808352401837501470098021983463236949469297858544005630524465880556066831178655526319776452160884236893490415653953117508111834102353137876194159486748621279246955180058707274572521248086563059522816036432553662258928100649780278584605893278470931531386212935226501520157046780399868395367356956275310997780151086948208746748931363972493111964803816529825498980843773510462269629116675903234429067074170811544421240636473904113321388386594247395705926442147917659400296232984776616421409481153439948330376259116771529034739080754981481257168709778130129911513357698222112548509556686473613866393346517220711837071035966196977202700578826875001832788947060898433993534188078466870458062604796185746959140247896556879430266958656782118955968166998707923596267723867295484507562578628895231046506716657557586206998866237422255285434391239566014428847158529988904251285869229127830514340912777628245057589979223637878581643663544129183305118468728781831429559506921210166959790781690377112746104064718075639350345273737067488309436209678518151753852901284048294178258107031522652987810270219501131351141929610528907381519389117527278767891407947242897682989570348000854681832489977064780991407556481141853404268926775185584922928208012930684881347785353624668841701993905354121382755421255294538103396358933132866374286241104386704406837014761130297672379269643917718297875296318775043868425979967127735248036982188387274590229076202621908431039769334409225072275723777713058391255076917854130444525677770401784704510813331134750043985755210891707952673412747035626663342004538427581435619510651574005495324538293301171776628790068309070843860322303264486072906304727154609605602925291427301812732991450179572643532502898306544584622376201612439140411790086421257041559744760393073503870767330643445768968332488113368866394393856745233894154721915887153006579437549760540637254907643970844975610985486623308434604178881070795839248266404400314886354714712662103562402044517867598893174909127064583903353294519239186304740101452378240643151733739695953193140261207945673181693666624188861930149688781498354453801188659721241137288097529992312014265417751842994293793144808325873884774119465120646823039664806039620938865819389589388217922215439271332304973977187887889965256017809165728195571602882857080450039433501058488682179931744603553780124261109377088151847007388412573954168620181200110453361452163319165001248184981478861462013646253193995656844581473434482113404926402779359247610238625050965944007212147901297562371027137538217503421448219478733501459504594464494773020838038289075859948952708474633123750165906832960976549387562279809577641346087870792779647559558803459057264406941833115848239508250159156171416727836753259097360727654417466407924376853912608888225765764518773395553739868989450974063660784764899295123283279693681754510181774749912060201833729247996305898642958590986560286275878262467006129670848940174675080272053233759186354791698068205515007086110942785378183457349393697606171534110312730063998955244550255725392031799271858001832805050552668523622047024802607979100365257143247239620814037419112455304402818191144045228924495665565795896456517976813991896435081187364688370915531674793889789651719505954119294788473946298274815975412206921703457715439287815296833431606310636044030963019063097846404124963363192526285731550184928528085304051408184985342829583565061887531390825198585108953852114331280664571892161793322004216922530398567980123656439512453081231227052790564627793157662689281019706734129304715648555996644743882844926077268315952631694861410036082908553228933163011756908392667381827689828499643946251814486323848850615368672269372763735144874844186888765670317353256285705385495998705612952241880044901973371424468547589999535622611597926435554282990676171628068069869647121935374425471178078433112272941979776227737081612145000191265490922785145074066184024481221786635693917965323347662365279022168278535361653975150641484759883351014846136587304742586217853248572777110768012820510465570717142455104725254506509701728187585101208187068761945950241433433456200709733922269592904551071665065706472577573080106497092855467526014276450126381628696099857626241166926532126551741484148788943228559139450414647853575979352818550466586105993108712944802199706519750061226699176319269855550271723125678754498746658846440574728072239683363288316791996270001557874495405179658536075273730831082393087610259196112744375709736796075323809912442897437942129250612493294404897938614968121586889790152151504859906885769824231744676901204787245543295354023236966368394270157871208006713567526362651856233461664937410791521059869203676904592638487030733153594297457880383907759621017619454544637643331075356074036716452561194502856673589296062950285162068646195619981769156544278451624580757082770657822762462661972648683810519310785711234717864769122700303365193584493068787619899988465619610832431483824697339589657561972074346297204677279502774407510589315927125300418269931057207290112036171838872772854213988998988980357323295039279248638971103960371495914280646906931743441156770705529400379521954070820287417502695364808429124849525910080214438849928492893429011910820206192637798552299634201219378184433101703953517235599810593272778946102312365425221773499207191197063522861854842442186831026747059987995133023263121816302012989129187369731909311267870299156514144624265803065584059888477399258444439262944525999535514777694621684251861947151965267999442750163337316958255498794453332087127081801226667803001590098898413870629856218607229525290298491819899629207698854200514467410417700436429605378958008476855485361429802695075702024663969948382017699957121368595687313923138456832858471706906000184727444787726365261872057848205746833586378315592291305363777848870224482948986325348405050891206460946380723018198615788706729063242585010827518973479135989990517026437739222232023233646042582629216719706758289394025844964009052005653197708369232279642097592879409786507161181086777260689726710031106538249368241684470159589711709358928712204434521549626097806045979876402826167535898020838701784274798835154833712900211292529268991810027957103839019141320714811842474250168050010633029104347203819704012694626481463874594974590403122442812010007598554249271427851969340835953915678416449202905497740209446933491089064712691809392822884292538904920677622316295268864816893697362811189818042295938981184251654438271787697623357854412919881619002144325646062433165129147835387763979911175183893497151044545749783913094993936537771841292788335018181442843613583044867491890587752168388763174361165391052125202694206574865765945497048523756762505412786917256795081660136097653445757208993491767822989058223090360718446137109517750086455286031129430288077709366226623329754745619998688223297433062683277299341965090383648296839765301786347518939037652803721099001349393314739575426896709398140287659465523333745376042895254548804317016389766989602143904765790956162080100965412467243568429806095304462979049983081109326684496601144597767391283226011455119568188053964253630577850542087428590933847315637054247931760166975832601017061540538222578988370028206680846258213361911814821189714254321047960833886801814435094654031873279286583606941590608426826200373130800733462718446456454637070743767284570264606723601018163058157350905662081378845225025302293997555517409627659649304805271252763367111125469170954995572504986750035966604454412746831086207048676423259452143588604981134454146158614727356514476168646034277450088084398849007032938759124864236390772574037108780304347755856996864240871943779427303063254113198822729783421190977938996561144591105544817559662399599913074857753824695096967996688996118544384259861850715951124142836908870268666052578093936186249618956274823710737308689120366257232430924816347540970298356181999809113305226691726400277144389782423693361201404563883796886365177131615574523189311409026768479557059078094671129498385885899902623208111245821362853161210251553640012043434494394857432251496385001930248707485595106917968843752480525647979587535747558372691605523181281446156668105139066979061968474806360214472213387624265069423081584869133176944555770061902879592941673259858666113054507012833213487104752082170773377091383787101135539561928832960439223125508036161136686359910483287516169336894116023286006370006780887544885441514868196244285729836032483368775662465346265001735918514031992519555376137892274305982845282308378872944372411824496822057221343744965620040848901684221666695711741665479648302977018714695100365281844931660376979775463077040608158392433673031236421068117776120083519163404694886023973787171185626832299616456361283259966631585662298462022195104463055097426888295530932575526642098568357408104238015174387904588601455536778868072211079523200944846634739791071253946501373936173704538725435192427510446423061191869419363466573943625208168845367059960728161864809747009929264699538811455532230851640723075543433011441796756357566136242325719953513528861048759627505181135771143521338750226303663925170101306720175818878374557497163029854888098444229858740566262897925684224697272646742372369553388081455553942055390296069191026884896689158027332053065564688086553924781221127832172972958290670658621119306828867294835458760851031845696433834698738391021734878168059800473212141922328533334270437028779625076891889185768931294331223839991262620635219264903347722551376112430003197689200614472648878063952182132727648750805872791440830788598815241622739861883100837020475815807206924678233899094703768713220425635492568912947283894880590345265270296169028790867545710523042822831152564980012399204808093677691491436562004353654955583869899125278563246915357276060052506628935165453548932966861630868532216371793044261087025705804337001218974697813333145074695150266407593662388825498075729048139862192308238131042541170401565942745140711498204779738040699529956710838668375757843937986537304390897294383213441395421932979916753040362266842635430232841028272130727680901359376247138764502263318161538993195107499376574369962048242292466719245293355639748156516285254282870044083811307691518557289862581282928127611118870010173436496241894221209835695744226165257078749062387907476685739056231121604248853593649040769229270843949677648666391959261617026526348342751884493092317476845391155628889762053963363164473528375121429679857287997018755593821707198866603112070940652525866321016438742423899124435919380641718914998084244033966939112117555510560998174845526846681441698362425289893065064437070664171441385318569995882027927644092186503417637815812440930519551036035549697166179685543362209678233929040543182717205787797722402428022691009192990160794198247954732871485204297191009140848044663140166787238139476949418066162042178865214141507173722633038480239174650803472096158318851777123253784697849977549662463312150394694896465789414598512846450146171898226503579558658643980118818011447168148682700698753831597786803486903067480340360089502295106966777416392082431060028294530872966133691630821056665965253806326280381138773574170570175791372798643596922056724644640828042730905245649527254931535491701611137539104631501092259549902183072295812354891661635862928653683056187132884274667515264928638569125912658774401730100169422132854636536366840694596928522891048393652160339758027440875943493696928569638476725409939372261809071586862619729014502717240428043721594947845015922096476020959220042170808939544674024829401642269266969610388362451464158867441609624807183192500494516089053969822701086162413476267969621983853163394029901274882613462786977792587676067499343019106807210533024268534636677492387058609215024650561899327984710801341655815573454884527331838653261955961910582063469885674683303657780066298183929461989579391805741322120379574285892321692720919557522269833916116086522118405210425964258017129728064019360225588461672333192706227404349992027622661210427677253683070547302567865669851776733604026958656457755761104842534151990835314434563755572907047153080885301343102752145543861698341249361398591022668609022316517825290375810902672442397342058043984663774572348701206308159909786099778583767928753119492225158829642167466753316225745173504044742975520442950196401432285609820981159418675585360408683730706682729084208786174866933314376818212504915889891987270202599974153471955817548947787122644973995329659346493835995266897832287243343369645003932336850481487728496861731464563399025920793088265863177956959312979526135573872045251732524546761973034602903391710030569831672023182219348040393808662578251331028153547344979675852204537746416525149937829489589198171732152063963635579337499566318250227465155978611157573862735510397277775288593684322343477761669288865155731279894601841623349024608646614137728285688105794780530041603119458465548106215142077321647733269945382438543649657390951566877848434294190430340787412236725652991757853797781677499765384959654187540319996104894438405534044122336000216722782275031801964834941664238536428823737836263814315055843081095561668594322568036395707388385231035020634759957181992583021827029809598501334150860799301109802359019930992426139905022991756565903550188550889698518285638111915039755317657040292733021081312454697218953303712418296107799863508039958246041728160695457554513467959389430400589467165191756826906185803443773645292065348339051879629502459308602165644931554924026705059393616226454950602108340726220150289242707696830908492806229833873409622580095409767551856162803521712161239666743998141166572704197045216240673018615374427378682432396486113751270996108785080652775032010746860936015821128406417368422027760253811679226104939813116891466087920065756846189417706292553964484172885675893345269973234740955135886490158721311709842574126560473741087833296177462823723423924457762986051007060709593497978452495036367476451389812067162369014390299370958945327012586381837825931431861555279279002850180517875474960378174951557979942999162132132780070612027029224872350537446278337697124645375988051524253750674035556824870611423015318894170178615543495322643000293334725570897271505495129032444246028247979667189699895194938666028641313218603523281266012604051851891058086030086900054154852772241479403821750188612405406331821149318678316528133756675546135158804205111245747306587997318047427966545411805983832425159058899395776174789727016202534305367027034883995311846206041526128664276166483561247000316311880476713692388351663354595517712438199549406538178118440605235387895825202496794019857175154254055897518568584990009381755573011000510534344474106751801297923009270580717240459679740612721857912926660262427311273809765544452301619382769848447576002881112784316975116886084215809891807951161042515102260700767938630959087679152399394272140264530825681424523414550310743185766431115757368288922400747306844822152177365723581664791932067773941793714811226572855112843070790722979678597232838123740781547146540434125211115093479212259422273462109720772368049480458214992734195417353963233460144938712304409379137691760431082345268949950062223369706552717406674182014171634918980720431293121387753948278639933468699391018680536357789687710603823322926545102424720809265705262568181961913001835898984656590382947956229362509229732740908606327238785602560335306222923323174736745322479299958044576621895580890306827196953408659379945880225244904228039367228024762024739947206367207293911111333717458927257373527818429950018772508225788766814438899768584257652102106046536877079770642950416684410812586423457235683908615777174030999404939139075357142220255279269283115249636119871230153552656710570632395207215157836918141030279999001574486020271303241919937084700023022877049687634053823300269271437875401217191137763624731741872392821087735599457925591633353769983853315401536554977429931591587075862281079011732587214789684694324561069072842105703395021380064617967949976571856835294858705805278864663849154502879322419685549063880267955491372789495405269669540941677914488934593032381712280223426549272616681643071110987730120490024628903638857949346457208365695731994406075186249808585723581009632190433232739318135341637649136284932561689248642232583903298278073136784951478014588392055655934928206640476842563346757077333899961285567933812860466379691127675112481954998055034983256720656912377617123566279629146031477129887820619212706132286236795762006597636433975351498443814650982621603334759312142889837098964041336283463596700489041515671734795094631670000872343394477407589828754039320741422701636420837656370493392624272682511064366401927872667445901718285192574690782153592812444301528914531141823877586298401544031058481394738513988723984751869086708361304817545809058423385051614167982320986752168680643937507638359170668802423009068685011607440123355879872988964338017852684466386777225591465544767543190817449138024643450365220792203503322721793740407957467241229023794064264651878527664943163423806227321418042591100368535830256079684176817941212777019647919578741953102767213537232258844848968590443140785680849863267315086746814497927751772556748516053604930795333916528695713511156533395676674551528010917628605322778372715472382271774254551140539723167027738694024655897633506654693104918346433752677372370088044736785503245395135645624672578872166531459730738651795500900717741315217407455248442617465144306432044076540750309604028913248901914499939715030979101223474256452287812106430760892774717833610349666858741436614578501467765336648169279077839828892673111561410146586920632413074311267063811850091487886127469979271309649044473521766371018176473881097700789027375283307038484614803725545817401604314312303020664152294486766980396749737024435941593091590140099282900698532810723495601974660414448192104397510628145505666009112568867630595040086455015905307226130179423843953585862191864062115601519417181868686314194316158860883561056716863763631844087628480503512018133885839492425949900416331651755211486228438651899490397574350536158646071578802195040104127361002953879149558493565430037669624619700844107969814333929829239300659368421094554550505455624364592902942930618892678937024201089180645588900609347391214738726045475024918054548442759137795342627439952271037701694535126204610545164389759248985191258687893765761217065830330993060172814062927032762662723190023866475022076201037351382713613110603905383432103593100513835817863977014307930760990914650703177300615892326036474874547890193169235048752626123525653833469879127141659151026691392137274848651697617806321147561706962846359185568931447524482513282838473114798177692780925954987693042261425701286105256811901967222852372356407070510490004434690803252978238640956813371902953676270565709709705889859568105086432417114994387152929062385513581888256284249023615307953981055110095334183538846222884982620938757731186423041922775461399570749124431873505033192126655274477614830624141098706571995497728217191509575233282299082387949694886877558293016973265891665927304879125895199810411584240264506440479859510354072801386800610361309895810475220929259363417878446979378341636873586019090349418169693300798597947712206493802216959557598426526645954132406646360830886468988383401192083350103624225973146295643093560615627514579257727823792778537306395412342185206887197516737968613333374974372896970245499126890478750780435927862507435819304111555226093161674081693909168241722179319212677315539361984697411517380742553526448044997934803870786463431650344914386989898528987125668383943896205333164956808461152948087347794891469286785028716837629743730696835225004443798368384441453626301010528123556817657563012693927421640499837547087751323077281206278154750668579133596026581155484779022568097198607161448435019515155597195877667562777813828139852847110136069209569942652960827715569659263099735975856910983314616091035699254263947884568425605955363892108306363299471149642438187191946904957664034074565243188203154221225984750055879574646417932188776327977350351571635266666129672697210744812629533967521112592129310981436487498865990496121059236889318662828036948429098090356201445644626031941170628509898181633416843439459138292033762600181540448461833274322143845536169325032967921379982687315578821324562669496374018386133940965585658209866364129185126952729656302686355822959769943352020579365955656957298536618946351980397381800769002993036129120771960196648701513420493559695092452393224728099678265369171186186351200423498923809494132842007888849318475886859003581902036661813748055441707948615793008878383750181823090495217159286052016314983402997140184544637610388077641392137205964584386382575488149391407691760503835990025369474658087755819866520804687289911223629540517977948760172395169558099087606683835442110202641969493054279670162153370803694522202443671205070000027145917735008512952650685258124373854234506207406226767387370480594354642049641610334526970690332602125026713546026278351786450889540238550780654855506674498963846324832557012507210800531547992729497506492872903113649778748731917468857661908930731190850238154164299884735062434886003296930984665499164485383150214898626029551327921225503759974484884109275197698086507060114148022829037844439590136541371496547720839405431615280329744543902524234452263507452767524912372130555275063164106817990491189793225748643212108858045537276714303310939828280075624141102402538752676262950629141560995150183110520740489988733241136365934034862426246299351405993684104084965918105835456430908693182203616983259032060141709043499096024600710485316764872984390663464679150257736199493532011540242292216436758409315663126331478971699446867046098917918641952888081983264401336339809690655726074773731486660738996745682503240329644888412049092302611038069968194342286092770502162331901318788615747841901460056419196667899734666134467559846679687445321835498319169532230561080975516682883072948312790808034996306977617017397137292048929813582431177183128010208396896272289200376481423208301656149496426335675915428413404639226901116999169990300804339427638686196395045277085477771088893577043693939451385012137856846786995778857625761791507938973497936452978475143403091256436438386406539703510818447641826254322407848749975138807176016941272888974587007108936809603987668742370436775784245163387152978373279758349494288331216885431930005606872269251077841575962850813175892423076054516635406836963730426167965109027831567393252729586047288704754552740332781025029229935180242197371070045798109975590403363810151625829060350605239264674506416250136432923686571630408551015561582202033708002518821936573898337125354846497744478315177455464349309874574173654253421531236612395237574928936414309347238522298303857285065184339580620460788486181985858713807283142477863770052694441905988066277371950443140181124615123828552161579392118784187381127090811365565308679345599845678567273836845474596851484931613966387951964653255157014669032325347936792241070638405408426565656711769707347122172364146446322137284413387018862535920892954077315266103768678026730169330918775375506706803089399812315835250604784442878711305411472998620765115594263514760664430811256590798990812599046481127865396213315576193198408518624225113165125636806809002364351428390422133890797768546887566437458700526242001027666292754254323096007450520852483817623654441228986550400039942314382189465045288674906555140371894748812632689482299937361592555983395213928660142419918028411957466041412501061630588357963846917210075858704893690871957770774484908398815334113990963176466204141557867117346730517703605698848674625259820685126963999575777611442242781756817237772514775761202464532720113545831027922132577391261841298319320515566863307286120775690911365479816937989951285795787149464973736343981285048242314329461731338440433075174798520374797690215553957506692187121349227604202686915484938778453568490220533899637071261659221732266172414494650607406104256334283785781513837227764524404741471305676893813748938279413028679313225258216631748376127786019287059960340484397096111739603309835864323855980207299130844662542594466150538031093064192777596601331318386541927155762906663284835538226130809601833257815812421737712445669914556403268421265094899230032399722280988828288229170409635379440284865296790112333832978957146471580315328997678614271255595831333825637432575570876687875655622623208174130885281058345954476370716196858410235801004040914431573156620545831825090846293616117624883216305633485944997127690203463211923922260445823820776948384139528858406393116456657355040996930032208417124098892223743769106244921308990725966986561543274353204256622114761305509971347344195207439241234375032089011202499783859240763915349421431295183374501844290323862817488141758629748279823132220644451205316489616199659589943436020328935057304843278792566585303638637330543281459322821840561487096246655547874881715012387041672387823825745586476887124860760158455185356298920390455182749485382209638906730905070545295947579850236640714405363957371953747457842064169772618249816518132036502788746300329389276937634788393250932281406093580673652935559388489670023208365478266497030109057842112726700144827310326740569327430295541414540792657416452454405558293679572785981017478898897082229298656767800018081248737037845254658098534394992150420902903969885873367311881329519487849517464126194898314699855860255379150048332183825184523840464197722738133519724571307451511096797031916576995133361486445583058545320753322450009015508113217788233146126599145993611988238582064996999935236184163488893318828583127804086043204212981680828694368528732334727690824287239977951254114348216036168398707946250022283125619318177407388738148836771138206756635822894419876966469390702779716197803768389555488336535372352112144794644074897811963638311169363911395976768763258595437285550769182485329066588653595141679471418112780243115525702589348037124985359529122189194775578020740799077320612114566816644088562683493324083754234685902889948490799032259295083119477924396678064252569900191964921017959855046874936690934470600567699127738742199844875290635857751427454179728304752647014851911343186622184120448836485918718406873663246155698196626805793212322427262105457595411563681771215644820895928812771249650938608332493797215987062401070409589214798030268647420743090190392643600009223249797477130325665494300567205948069605144124191150960544054169296461567489165028003943981427061667422078616390962311057229286026396704468969102836744891267312443339418006648378097645945976033021447458258772032902686581186009850581936006155302568322569208958772720397793428020798722963938509265116394658091246619757174200008031145878665973662934367053460175988678563324224170089482721662872595295674138804446720042854180386769085534726757900760104926086680397883616365115038950133473212395549581129835324899498137090474165093101169803816216730603055080305701065036208541378840259412472254847425890729695731328189165743216678969931434701930341707070479583800496677798006799992800264932629568228260634132748885323446041620878150273628424311736856833022276549010030209311070626607515173203178443094419113091085369229645592027512090468579004476907471257195058423833538725759693256670504655555741265972886566852366887202114054212788124772064179333288309581146902175845420038807840468247350992025812259625078011520055039311020707436471741537457913307656284500868474238238124634768185554632628100033453554466651627575084388736511216938815488094467240277623658998015215329845729874617319353876612852029567023135108272413606779787773551896632762414735927974483634103525160041274401812430970830703672768880648298162505486827865693129355455110322501997699679060523235538846917635858778681716468488068506293520513105135724734450460013108466156580305532222410810359781636548690136182869102034534466560360446333902058505008285992652803181307915081940109968985416314274498854979675756804409584458624700621089678293677577458835370749255195881723957033077367466377785355925425697128396353332078412164465715619367145271400255704312886371412758312205832349979264939821566616910386830711100397916449669555033455173750988979015015983164656780698110193742893529805523151143480828818214250325624602314735515941710160084268113246969227581970767594979180341998870829499953239646219596349826497565112845290751989437676067838454902115162939055686913822667092142166137883893533456392883113239297545749354680670559764647878049075076675710625333147229653152812859400691548762311598723873373397436989943665995359060647268904580913224409048709069757757493200760345056042753424193218457826281554285717615980499748745352258173168068716833657787158150427985454137985100225193007533835720187739751306719113368414126000568949059462471300095567508726422385080497948304989270049060955156215131631468047470503766436446389127970256699553068519469131182887537636440968585383895885124195186976382014545254694477005193328372382639943810469855622663191593290900307898360864905657377724065305952311195317892328860671175333142410749533476419040874094723883442394371857263411755581464560514061953082453551315966155033050918577082084725790779229787055758074899796016245635298914796267343891015036144662465458038591525593365717004794240261016219755260304925335705182381254933965993251949177852920904297775721035289179003319031131807083436962582955026857408488339012629016114004150839073638216622853081314521567703137710458499763257978328653194022534342899724346077697940709300205050841734400604935959102557419064946205581553429365754754823601382080392895489682057315720144855887535469492131844585152076938300457762144583912852285813445062998119057503854955646513194135663355438488410724347371945014949187971978968188068011245439632165201735862772563205933517222126926033853012621078592765720566918330795763911509971147882606022206986892328121586834477314168291744908035206692737547154074287168196974607979388314091189880146099072807870698777707777402048182573009250022547143873835309076830378063369492063867791857226634715649882923624484971472787181867807657577190559892785351499053175017408801766141182269669621067655952519922013972589657190333574291713782585587077466557015059379577843353652744175017098452409723671300288431245867800912560444689334785446850387255020422674590942532698299756360495330466580001954998028733578946512351256099103813472265546164555219494583208924187082592489079923741951180586438762860820605873714042162342911168141384666585846795861386432032510772330283956903840277827219823615095502350514432963024039311699111420794117997974473825379968602848714826250721522391542883158619960521065406354346729905234619706212437178640028068738393475622013237676888658471032476018669966393068034017194660451815185910151684878788859020413580422130098796281161167423478561635962579510569689842070741214218766950226649275050681522211027638862317820045940741194478470639806024591373991296441681107437088477781928297146743776492941308727885246619258114650618302059005473314915404294935463193321231339808130621281170797207146848322233500334046549116903078452338311063412464742903924809869522854865014599805564204063639800492369984285254678489862462228004545539820133450971842210621467014972039632220825767657195098887944213568750671543250196732869580934913454487836227642040573955175223773203617012438472661470771727799931710486703829309555947323668186669230444258253943505605818230934741458047632754054356687348321779141431031125610331299996824475756579223655492449816880510072525695143137056447321754892380982193691251270269027949064656836162929146733830785395179381309258333212189850790351168500031420890465187447571318915407955227820748913646909553833869421914036268888274704009090191581040242381256762607791904954533540881025761998564903519455592339567099540360419766802975065238221629008871806264534977192389733530287067753986320835504644042735563563334786606893086722278861500449578877918225170646974315383521812708289792651842976683012081834665489820645938560026824006369618452047824031201290553828204139256071661531580822767525674402138074584296629149480293413166056093546408428878621230145265049707502769785670757559802908733019754222894842277399446173019071609988142050919547466681171654108218592400741104430504592102643996918378985106065861417158157360365590168461418151593227026717331473446066120955363235310778579040377588914562515213316667962935195103117178267347731264012058923659605514068977522359182784092954882629556211359432310434343085342712688674184320872924895391165787658706714958732575523804287791899942605139169693025283643825464137039462082377711201599091542140278530643732921972000284533000620073231954589581197398269910237868516225945272059731174316147878300099096688413131645933016337978023717240144352180823313133373073242881019249647968586651951282685352280853750955655435546397763766980280734699437334878359339895853748379895829055735159380190285620929893913836961624579582802040789721184615482743517408184557075773801647362729389976014931210358654208781257699015909280988504661208621074920106948274209443130157565543604791297751798071138569410414893712045917278515229025482267046942320523379426010560935002971452098452641486483417580112436317645214089376768747508435506738568549527743713896414590477218686063373976774910700104595782616180849023872741737034974474772218831449492916836191191900216618796622946472401228537976988004451832011712630422378778808316868071050200074748355815605260825675637069459281296946327102536668391935963645280447125441585915972527546746542706613712289116910902917109073406511714765222779702909190806499032239452626132983508387509599802971578595016520236232724809088437659118377886786744249602499792003490919657818536680477626214274274794593334487386328285223623249090288426124025293366120866159104041714519277655855721685082075804791933680753621397116128284913097397119046823063291506407310696799747693722321238097761326382620559284974662708239940731682584421397262290889290202044470753848870956310561576664334400380362696367379472085341776797053810132216162387974217921144047742891374189572913039205851758358643691097967543889843363399830265196877473403186225642191149621696737693066504648328813857249125570417491659316304059625572612493555794269753646446870323231103862106468723251294232481694922384904593951575961641923803730480406559089544899200473092138735907477645130319310303950220274419255926076973136874338531310946637720574464713595101975116299006976412598484608358758347495822645613746714525771410870308453842469647703719442755109526744869027307571542172095492101772162486480397281245263422568827559301095042301235932310574141974286658596067353770553382879605230887491505224928066730339546782955670279404144136250735425690517333690427745787419301129488647690960648800280202608427593509089039445483831856843313770130099317115244217799692174170089324735573184152402862330259586427294515608999460355556711193837901297229696897201610161586712708216386959978673205482893950519228099519170807714452067979957475558073584576696451552497621738172426886298502994865597188570873215138336875498329238372043789736278341136431229492761158274621246030467192834508218053275848980042682316465982374521391452077020853998017861944870638436893615009943365995237807148948157019536067149836760835601780852301348170471097796092485096500386039382192059291699057554620670369239876855585995069348755348285363558173740481046134908822800805876749312676823930387860116478454834293238392196817525432484491036102699133257832859717399797703284268506179040888290482208921431077429682182181401705267684403723417127756018459497171457942193020880400695367777814500940911447779809440014227814424327949892239912378317055762429129955254320639774504756668098765283673368284402051887106902377695364924020054617652235744631536441128279356158358440596916045961648360978163287665456665556962463976803838960647488781356622443674371699820110304954499839937217948409395563747953459156494083833040518241217737838507515609035684654951650776369527630114635917783865574066485270315974271159358566151936209406673721721205638483436319932300413287046354106970982749419835018116189413058438439871258839806070367259622139499663094314807672816320251771570473268726203858955673437157881788617710678741368603046250532910985316270879758081238163699665774900820721792819987217536839370120006203577906686533065852845376593630201908154309572427798247746513238133601292974560381257544555616470492359953165720730135509132058299308304360402661297798235201083077392460254971911399284032051862101777358268390130193721569000905625310719394409028412166362449782469232428528169862662343738585492903851220581614963784436988966365589268526332411753697221228345138627755989758751265843424496883912490953706559086847514476984375403286765743648862374490557524187788448910514377534439014471276706700528175956936608792639239138002221800609293690403736032593387761688695247674407006834213355098855684305732938763229280130832993136743056017765896228244328333344856411900628962405980250553015752082574408333828236901161309668287099887766699508955638544998847098181592946944281355544165912606518406155910665274899667975811225956990954000602532608493753070748657414395507304411919241383312892178500674067654078146562114834627733696205097234235083801662126993902016717426792598218603877492989515936812433171698371757236240343438991095864086288993131523251207665079815914971013844635311728245224249688706015255358725604147032293493868954112784425363430847177828153665020346066073580510362519761782855684298057227810648466064704687399513140041752516086538172002600469187120739134513018049940581947395700209710852819590129784273254419536996262477335784809057161848265401186896715804511911879549645802309727134317099308806794264828157745426905492163824137544248043305827752181606164647766903896252826666339321891160872162516265572520298097122297197974012335636181687082798682179261696774108320662150405777149973086857230262014318453719678179778748468259886487466657838695687014444354086630022862842266128380423684063113446352727407925140535839925978704396192526926913246575869727414821071673609875552887458950387993577965786128791968763829135784884277722125704228694681099114947780962924224436221655843381416614317576165123816465140584694239654270354376379740025133778640108294300837758885203368826306337865128750971848009398293866380399966419353462466404513792195058869716957056079146790309997011529313647142712832247404764817389408886666193266781063623294877858256670517155898182882299833728071040029132798259466992287322396881282388237029638181950606120821072409380499404969541165098520972966288786522155055930433977473085795525865141414798101204645475701424571750873460776240440471635512795099592274015032819159053061746898444588502680052342254562473354419420896511584506912920902409189669058329741418840224499858286565460473307801365358874831608610059420345174321701381665897183776695091850308031383837578504916958773063519179829374673941092928329804655544741612592778022194487281022750207918252440454180093432797947123303115797617342274437081465063695483359240525398088344260210646055947095217674542575774496489781058254687397029005205322384537987567199835873686435527315837798646627758456970400756490372255429882327577122455804351875124476603563860211836699984350974946624566735844773240727920261614254127953977766925235078781622827101858657798303599610832433923187513725556283404616901939731907259944016380087324843318842794658303818916967861355363177240544625506282158148201810454441114194800993819159052895121067505412326320072178971458559458605064797029426401055194643363207230523593527566618058371975601800127214112335018477860613790872700306135782882446670492002916978684637249875613778170787466000504240741097139640659285127847880993445737161149003963504399722676714935154720817253818689678173296617073000725636132267263843594076662537264087285097794328549874001268254261612294091993210985972461093416920409252222668137916400370070068265108945746009812595959824446979775015938095996575309137028141233488160741380556091455692527001931822180082906659318257881243212466969934095856666070719593900909057069774388210967089998913599369606606215296616553935460890230383234654193026893474921822183674785532365964404751284503193337485772233615414170486521057407554036917139425730422782550810858039833645924177909412578668926050947505927754528304760479722823733569399834332508769991765020266981394305079764610024110830414505217273648798901974062411988205761020105154453695276494279103453339143839560118478912585850990238671075509589912623143308868551799870202597708866449316584638633936599855323481403122751288050117565635217692216166140872672555021363855903735968865675064582830328419256871602273228990423073853455569256075846064184419503474032996871713693220394658357395377662264366866117337862181527847188568234340212012356535901712279970905743239276279398228721402887974297494082949585650518089139004299171374605943215521338087808080376819677071171757478455248261717130594807166112531950022298029531012927976360913531159271947621920731458739417459995051428104540733247293962846714261248373642420899663986007474873970481930897227711175488112580077499309254901740107343797967511155402162587967297951175197094830108201781389254508377587467798300717541203316745108723806347531388342290412509117082805694358245607837224213941787098329222513030512926120804402534462284805586786854638485072027677511430931624086008870466334367493678598668393665141184442196402820108107822223626026526504420244137139866577115807553760001519395675145203467004768966862477229812553911959428176872402937165657710432145379326156619059493178642523277452342518275858976637415918474123767516212511888119872490737531040215338578712672158970722885575897460205268137198218638663767034495950550360756345597552927262587442855585888697898315929726613237805538316947924933879170017705772290338757385510607342070997179849815071236782474382769531932760444191225365047604964170028096588682117693866535696317086359676483935453365247397334448905153426170040169357081529144198726628784848629742568467052578294722144337294961458681991894346557168082366094957374032025732589410722556968919092762907515594078623251571010497228281544511154285642087056897517246611418298807076031318065933181716874023916633424135532261088971309488820248250300325329754192351411600002749866245327803046787566874165322120130609169732139071648576518259103312299969980702649477902297699858723255575207483179748740066884752619043239919545542408419865579248303521594566688498744586145779358343693656350081909844508233545553795405269945740389518510323226578377951849937709078432153419352818769339402308469351474779081035005262492664852670672625814175566768086793997429646575891359777699792598921713529194456906200082171846343769323975543964843526275779616688687229048541345736217063413731908240394161814507323852947219253893049379441043654692993910618261216188740614032243468685400858278587849211628078847283002803881455637395831203360996771417906303654650419452623450449249040691751719753790242179495214179172566963223251061899595143425168486322523519681536321557772964310570603860432095096585268071880442239336283310057276692359816323144497157943486203428915724803241188143650369146854192558633609930642618790205905793779724160451236795908211151388830604252065023815867937210730832939346281135116882682066973810376835294781264478053098727670465150234693451919596710911037660279418690360982354313549112166031318744244205256348567930139546725178063246049458353949041576932953254803354391705357851016392765720587621371718223493419854000188978653640861275606240869361449536819152925919173827108624023046431422689288671309403471660572818235422409236669450175175559333478543593207783130531620806638052716711028372171404411319217706069813648244261877850798196161762756976571944419149953627159771653087366479424552264430854580871783036557962993807739763541782101471729076618943680583309542867845637341991265882195578943364210852538191100757781764951741892290194634036032077085489094493723806431729862213047566678928718431020450390917784913477268018649639247996175159751280336369891176500699242604815913881071907842024052279663586326897389974658114174244188565040756141483604703081303685354857108472029428688399636539262078387243995193447946934871886987436469174178843221209558018877816036229728745631170099727361337424207811741565520596857567197940170076379436171205107369740752907785833590860375087206793747509766677884484002468841223776467098169342745047905307711946270873965386615428126053788266716740456501591745509866054009305590524217401082005771898342160499556260808078711996766742820410482986385784191207579147512357489814576905927496550604208694866335333524441404085534886950130200026484803478639579428609710592816068619841662938721930663133763492302405207800679303143841681510103842234686345788652287408134583721720564851896769509708466706531308753763871478827362289080532808449497544649967222471342798354633627137915336105242948931224973165885158466460834549080968565691132299782061257082554628417283080363059139738743024960042092628198945564746281872448511357330123721189362825743683656261078463925932512550586190868361820020705283343252781552179092050010769390395107705948854281103586242676552605053756862877241506092088417104942217313796838838007431579180221380454025280027690300039419309111620854774411156043527114085007270103917991903121135859287193555305161219697028164442707224602199076336544849093462217966814291853600126081399671907929641999106880005180013897213792079258661985354916181179783224947014514150839540342189750864694382946575560871698357109828286560412047686185352986968547033935212927597205604257170775576998726583301459979422999346052679153057964133597948457764633958915469842943687484556273216366622461155286358027580147806634076116106396263141723842514130226975609477656624373892232316975378212464697751357861315763169569824058858776820078978155871656936135672302204750950532545849895277487616251221976975107863851848376093295685849656893880735978264455318005874021206662569649466737695111398551030984412294751364495110059286850905468123813914284825826149789911413210712958703488761770735093345490070797492358996129882687281904574065691320176793401237255245985659093515838541044296047553882632949934766982373130041440646916888248173216597231068682682669119651558093255967111749167934047335094830697949054591493696110312825682297056964995178431985583828349750350022388638973000819901279888497324247383513866132303873108181155045848856870587546716655637584211056729259357946393555208074439750292550064981572680990805566655977694691409737666342234001833366754306148534814046172961570232037299521746660869956085274358542404091936109276468761926653749755293843012550114475296687366429928420354358031813590162913713498569962739664828674643936398716961200663099548478700160518554612032405089943179693852702384044296080144436291232944806441386956214198146605678766412467995208430925514950440371229626969306141591827973336403496887008216220037369573331007185594025086216994913675994094796269922796507940045361717437675661862516158628104122336714357031512360920606856447151155198326146707072545056395467320032047767294094481147880647418335302928804349512813362748118628189724053604993214445579665238760661891545874145297390689309022653552687648143742707985493126772184310210275859714431426058089922836301929375279485919650465889579804277225207232140828167606729535967654385122829754525465796077102243094469164172630647810506042439379932521596907981102880492268534301739233688139866969071321897453964629087469470740836704290723341791789482461628888447072027799625298170014892201445250343466496546201144295134034095668384138817803682133522177148569605436490158084254121184842658869163658284987181118047528282270209590006559494290870334405610986321114166676266448967185611934778070380021298077284102610330979775579375385598712565791871871358358585978408727437022655650124595947981372900825612258206756455262527625994310786229860544540961925833236992791644463144468877257617746930697184578882747511673946064810205461395587083717086686978099056325480018820661243417865395641324402989941760811632973522441781671399883775424049367930045078827621283094962419420203176630397829548841778730184544488978251491286523388613657219242601881467675195270343324824522432412729851258262390849541560259697164781203268980262480364888743833872724456759314629262791901022545257350406421964319534105188509440072064557113713470225600548943915197683896450756949798312343124584745900765719501842898512230475552628454305616791836645371614245840868399421828562433786980340849326467928758790361351413191604620765737066911355466477467728847703964317810866267688108720438345634228612165579509133130756815710313318903571893591634719511798760046640920236759733029573936311166343281782748568300599501364801891007064656344038413552387403341759057794002476411550545068253367177808074178392091671948051794639540643641310370090347162712174641984602768308037739213113935843705509748935935984649142863611394541765263176259159945027636090327081285746838640659644162354226097230539163015968062312823552978213900841746687028625531169836864007364143317566336546288843915885620644710075271628426118322110941416778007920369112009988803404083424743949412701335144763272747859555327504588594200875527029022593890240976967670959394230222047952029653468001969785855585364287151452369627803798628018544297682015004505863246634967089157568175222139605044444279117782028344987653798183741842843655591648354376316003921997926515679087155894872443813786343703747450629967504423267371485085171709139704862072899617753821357570338157836564748072077139723607502753548133840505795778643662964206175160604802154717988490853035804303320029162721095944559931435552745458529553577128967279611301478477768319297020237732998219950782392921167244980043512874489942601691668829542483295106202841062848190118621170403605909739748846376178715421624166075224308961530710086934783030215574702228139710696380844204218753321577927514426222246394396044823366900191262428510200834085506265391468515394824564629139771969084622360290956175753585130589273545251050253871660110805105624499880116481107142259661909451364449584927614885516078266457883700638491637794015404186592169226407217139568450546768538693727567028287093144654451290151670283378305219895266977945422358551207833783847565303765073808960217470033864982337617234435641286170137497876049498224531982099405390897251280625960671008812385493998073194177074631823941334073198861736525333893356930940023831008281734141990751969276692940589708923259492286532506120347691766521175861403230515252759511992911500846392125814458345315458591233761182687950085961654327654701208848978096169856740811298884374475173218365210086689380408012075829209877193629131398335024716997204317849357320483406557858111126729624458285945203843116760363376435708242577156631758124882337078285212763445870112540244183241751119350016070101372177496268447425994259498244546476756906411725280009236494998590193948020860391687006219227095698074574000791902188793393075380443566792326730987382107493846890114208135819282731564495908044304176714474825308399670773287906889248187424752791129938843666653971729628962700049155194914827795872501371810842965263747686123392063350880755222436129067575380225046138558659316437654774748202322758980272471373058037745087413367033860480789528847877145566820060859920032561810107746182509774981160867155145034980308281700164602265342759325042724643364782073486261980081436601571640004915661664483239741634036026233266979521090607208880086338015648597664710280837356716064651164993732844821214910181779192227484733380998877235986566285452487011448465585872503903433390535450523908451478046337798299943726397343764183014595636144849410101304074327758716303389720156611642191798981933192322602342475885225647924655546152234149942790204102590386048282382765252391269918684955103096348542542346192641090963504384055585816039112615334813952824159426577023611116019065777216082379202748970889890939438704923746851886892556054522041969150790769413092728205508763086991109059313317784649590430675702408446709320335022729021614544280927020197960352449038894435433562225786848312636277118467836763986521493634679848739875128849434171890942891786962584999002475804699473437587433446116420331940653417960277275892052218906228060223306057642044530648240812434154577552814564396603226772078271652894825605368548428328077398128893078506065208047566123183705742258599021257423180133172148985335965072670143863884745036108520114009856558147572262051813668046326907910699197231961776052327403526810003898611930523564981616633465690518614558625747573883333358434233093480610782556289565408034912258402684246570649599285691790332227178517976516256088965375729035187977627723934063095156797464831059586192613814364820223651220141181291817670734266819122616959589738246685952271368115109155495193463084705110565929789088153903178432139857785785963023486395894694521618942500458488837432903789422874673982596743015395089449507673336109352242737558689192443082459540954850286713987247224072917692392278904246058722393140439960790504999036001272123699868489374899443852309656698699152651516867647993783581783030499256578439826747178313007236611878493897498528101954726301896948355896229633927925042489459421477104606773668318484956256550647137927914994721985460668521568992339606661970952646945347430447524565612616617802063449961834073363065257569833958327076840810717314564459304283493919348958847779060536560568836413382203233196335641628075715020862503291627986411400314438823507260533121563633834673328965731870924414032799824945777605525778406623035014814210004860690862584233094313040823675363707057385342265188815258137422571347594105678989002778119299793144215764025103078245683138249427738832857188988222983412664107400080359098292504209263162801889683258718937514705781090530630487503744830589852229096944160793301994944311833275243628567877249129123166675653201828493798640562941466367778676206696829849578674867395818496031188511736720689359938271476801103478147628144126935604774616196931994897313451027424511378421084434303476530104255023195628244571982699937714764186958959221348773700289468359708272216518144968788851248302183020245401823088591319304632605143948315935389176922676310750524953580487010246299459721603139539742435237346197740264933805269431156456172790039614437148509869174988794435306944825607597608698045549182047951419564595965015461604625929145510542764690373611637480608626156097029530915314735023717603427368012044299163888370731925013352105422204825546374702183922374391262011723066338792459398288650389506673413356607150805603320006565218759977924296131909975854873316725411912912366811838936932288084911652192084506726773167778921036406332197400014630363545277223420552252042902232575192442699508152251695354777122275132100069903302870773334812873541312258782674866799749931976811972448638563791258956341721729654809348494124373782716634362871385371825734958717984189970774261518588329295740564851280666249716883257826385466147947211305651577744983178638936755688106508649508311462258844954903288010537211949319290092905274472873348290167548914742023466013977996370277116697293807892361567859450930661958524808374981871005342066697488040707964143921945734703638301248284529145973276921567200902040211424001934165093277042832254991738873419956126842398697531825171576253870386651782195961158137569640660483254866501391659848056467923109420478855283388907726629956381341823330813369403377927369771783978338031580818352655430784825462859032664407528201580152840799170469483472952500752021762787989731354091315609691795359006284010524617677020603184214423976053894697749329297231431734281559257682299703245885081116620410921297780022514850866646810241913658934386010167207403147844778867000755479192468695714742464792087892786990892496539765265366910632197416585337361606565136308839860394406007938306545367720853526761736147285203147880948884689429760228291399338807120794788162745345832642853793791837122744786040587091518475364451422603657162380105037545331778602458813181169320238992849711622893271183911778024881989195221197790605272769424564261063976282346122171557635493556961698547257660316316674941944011366899396032332772702859783433801009437356074424601030717126780572636000911206065546419242187381214584439942558239271123547207046603419707438761242113158780800829492970017510644500066658204462886740365873968876587185417662687096108331454109538268507096636307526547359180587217438841527106579213721718699560002604163835210908027392793080627930651068334011048091187952119392208449769936115366610411259037792647194408428315954504795483281881222905851579143898669734364155198319216962279172976768511742918496569635145537069158373196871145722878743062273985536181276031056541835307169357027550713843980571423716388130501961470212238043626332167277373472373978594101755555076347998638577684211549776075353203203946982922651815463815835795938974093902036973507921947700514791459964221958115534298572762538084788383118445131057687459799830981130336923161782161863185029412993913752681401742439061564922974819466212769804535613425129905821926941130985046164425389293337543280342522014274927087286398745403436711374041574587363524460406587903388986930206350643731035926651106071765554664330463910761417433181864537577347669880802417602752587600029660249320516102349049380138432379795344037348313589184789392517951399276555145742638503996099735838748634401738683263246489933615983714766578242630151652377713959577578376287029311556858538787335309031906778363640806481844132064926269560679724533223138434527629902864061785457013750281385287736767767298967171835261594718643401596671291682654005806578959718549885296673884551864176139138659491955721827485982954302772534716341206280789085474385970316474165744012442947404087101158372563172335322498943567098195088356254480282304651120163619760633280822503688456557721958600625668618540737080608551294605606672901235665814412216650977686294424935154526490359010812233360605958256685294123762210819039271618840922862616109840070188467551579356959995802387032317668878409106356266828884460249388457949663785475965320032291519404728826519785742563021103286661774545711057718687353410696267335347038009389535766983289288626347262389110928473125880008298082471276669838825959319688975645542149181076293603865996415190869651011425455357090728727656179707467640655977008487812531276956579004644602208549251484864780011354805433613022531199057228479389060811324878730776738580070655254592836555323300226680137502573295969258382728323184282457511565681090391966051874065038533303355539105745789749461336809275376242135149222301253942618124231719649513312165537724801091388684498196606224477911439865520605133640656902559607124433291196013221977699760214250569389100035152764665914330351307725898428499595880076205333489151930707835743581866727061517353046315931228514153113930963507804156237748068603337715463854104933903396783251537666838172293899755852904056702833059615493686184346433965245494792350203218547645388605888086319692074915281048780850070567286592294812740628646712406273443671316048925471353154196705164409942683188046632582338364062473068460279198068559396301975106441727568026595342085659385054127293143290349422296511758446406135945408289272314229065216375806335565560194134407709315383470163662051782538093960435258141044638244097342448129934164545127259847709807195649054379588611882586892710318829283594814538353159016404654132652777345562995334149782883195677916371506995078096820421098682256012729372443021859344670108778926190412893824506687264259731653579368537763365465049027695989923998157534125349568264868284144426266886251368808738752221874654051474535165915641503717664697528235140729501258772178845643546103426860195339406650221540545207181174723212081251128072508793294501604051497268484606987715123333660320236628912419745851764062683008675685562754211574742388899491853355833779570420818042422433831716135571658253528157295506238806437299828726561126427871088842941002815240909607367268271715703320214332027003834175706180153558756137404342280107338857288525547644554371897987102567407806614182037785741854806647365586812800829418437634720769795011297988830973492117271639675707802174922330651103068433956125631084508620481818900773880184130743181986102029160609080588283654014672754231693562472692733402648790780226973011682137106324127543962263198538777149197211304394744506294441436300883378681204349572605655415477546984720348698652146276447268384988664425928893143357366294606066007265434886330083152531667289151865237927434325804302734966433232731918687732621040742416650166281216261349799889106439879325442293717129097772931705237327308742188380660135271218870235857606795912625498836861610412217893694712456968501605037670043287613272157885260233032962094046550545145514991389437120214009300668492392384194926149459090638299553415756908232491892039126488691890613541296845065158543718810988349403280979719196120624789101249746234418465522441451361091728413016604454300034740235954477028305299069520718778387812203740037257193116358229439656081232363804145089951125963199901935438271098542225283748815068381223577123473877386498834272087566979278400931975927928602373820791642024531331918171944736156845753164761150026059324826205987178079224105427143768268619329812991710248235268013156475809456798075174309580394497695054924047997686639764387571818374877749639939294132812994651289118503617241999757697360511315802987812875955416507021278152202862402357995329179708523065537323797930063916358543078818846225880816625827765242146604022752255336887749742820560188018294120373087574309204853114244175992207170304825587642687044719561188315065550097402317368861168572398018880185147081673147484307183049763303570259620054787632735277225634653890695109395512842609071344954302285105560064189407431720999629534044940447197974057222585915577167350838492372565555661143279269998995438742128802377255044917914686615234199031403673236257387732847968059087146353195017979352097241793255054100361600026123392480188983669991163251877850061344440174408889939588618427999998098399868567699940766886479513142286131364686589950797784619693853783278517824199809572205911543562965261382353339506445576053473597144021273951808632800744288580755906159382957897033093958882726060940479940397614510042314721903612358809451949685475807586358417440934818515759959500848841030218022620236311550951797838901239557445991851664115119587894768336275390615509752984896212431359583360117747418327084680533065039801080615310997600013038449380226918159759637007051927429246368603131301956872705346123063351042227286674073759500079534372688424018902713771144014917247173128728330582128272566212295239531320145675391355929289973125858697666533822056568184107503363155032748639796592771579302432526872437881767862342025400728902227807603641121676533076046547468899506471789655233079264347659308059146778869199782641248138998912624893619592606542267759113899583015853930070165334135892673554108945653655334589041279776809302673008842615600836455544042634206757030477082472947397823769666857321340680419125224289513150773893584937787669729947666928973161660808567643740143672453288675992146113258261214752642207972131406165696827440083608218853936880523944901733557355498335731467139637222096785099527894731621196011227737284459487801040423022712279607166640995893845600416581828184754397190061940239635550321686487274762203918205818481083603883574872825227912529787768346361756374918268837274215820246725653268671237358802021475110449835347376314493573467923367673583805479977920603102224526929439057033117152639098694084428280926224463846816936041541805330024545458655440983125882385082646582644998851980590677541646189535511463628661597154877663572708649314843415215689066986325180202802976981121752456866976062670881808923304627460808353405276794757165920266154075896184167122257999502292402822626156091072536533606020619760061786797354632671234641610803611016776044389917230921452253090735490573032596713592952653727185243020545216516184280122919078140482846956463186975297578735289166176424172829567646693091115866346813305143285163280946201143779972106624344706560720563067659143946825183783134480817102427715760845268011494022600764024744374520738277109819890534842892753900423027948169355551544262852657081878719293286357797274018325479538993516453118936275619362216675129836134081881729613702184467376037498686375924290611747136779297826475144677225624261293466484642354765221574890632985652627219289078030801702979702749337911038404505863685087840974041606044366278715865212498992073322830547408411632714839136170144885864208027540605634804955404445412177890240864988264633826201704747825134636219610944861864593095593936459442128938793861339256518615044304577808640297764669107341878962125305386224282871616454083807858870642246028472668079958127974166699412007817152615548931222828282637448076016967437737889688126117882892703047300715888999649841333265083830655882437477599752956890995476065879468214928268007416109272990294068887426379099569829068606334779301618725769099256123221203906070460650306309778073206728239863790926069730183446186605457080197159649590127807408827106617530489721609220404713809009559816259632433184786270843349307787753128046603633076611340033441951988931558355530157644654629176025915312351768289922403385049571868664570070949023814632716550142500389067960124614653086116520320652188552408557227261840309456506015351238963334111636738566519413606657922010391809729152471206511767961788802887376948575192605483414842090441261453459516606226078901945669680765109950012721373858635298060999804454897073780643226938541059018267874047472477512610827676829176192657182893723352338071247566657724312551034514806462790563363738371943663053668225592274430655950907043535824390615958828281253305436144856516551224062417003085988176095388127596134251796404174769893725025042180030228217539705824211761114147945582921885799554250177326140994431350353950688205282607606731448551402265433347588615240141727881933359159724865549649538651392036822375740760743165649207113236812828353912998178346038952871043308661261248011288965808834513421217904727883923304990216922990376684609240794731961635377269558161736027556657440610527873752550395040297193622184251167301078840959667965558503470170849587802931483532844417651511000464027938889565086406032058418951140330291525195864665376888884363106571247135598914558384650459229499819422067955327446604160590522962010478168425986345963009007510466196377527429853248767462948377789394047606776064841241026995649584608781041062013073875055848763695136290812344136342700637110590786357081594439389864237448946489802824286098839559629443039515711988286510236993183699396511380395557588253842994581434094601122416855399689659787257564837004221394815355733738480192585913992442587875743467928289208220707764517567495986244005432598192636245598699067354947400076353414772954944274983809519433085166634501258008747240831358210942744618774813273773162267198479500068426187316973665577736166327098937275980937641490689195132658911545196889378868625558473656576513827616656959180139713547277214579679067732249145976542840612257943550561032607767538465538666030806549219504373704392757531731638378773237333039834837172241336215590555516638672349826006798949584599785461784060684423329335218586543808328285920799763255295200445397423723971979707488252520168201974666410787568132071032199105865941541946251407541218039421491444360806385289852733587341164481133423296197136773023646733225783835475019935245924137476808486965721006091842871213729689789702553172190178744109644214885483889200075961758585175611426961319535884679546637395810015862561802365066022735413832100490834617922266019924643317613094868361989637373927509393155989537172733990540779282573678485491263265624705828976630599001506388067796466258528447797990007094443076369705205433153253986678884229663611645850177177046909822684421923901631868509155203061320196582737517665157474257906048782097676110921747717723615043087841941440350156572534770689763661824023947690886472746602229583050130566657070940612794456994865774550434769496440930964792270079101660685143461526722843072580042778922835045317024583090240525779909205663918074334787030717822943364421594187160630813565980794797624595996039303189646364412113059771599657389684565392147225098389165120478312045757915100040111987800813827593883516628159045310631721189509539504191500150465784100586952071463602236995605200805778598894070705937136701143838021841542600384019855461992419406442151835976212869518470555214227813221878384403148257064363929970957847691424320733852640920503874517964256625279237380432164689107478397408402512504295151875389740764835982711419664375169974645321554829436156116135392317313029145787069082472422879418867601865581068689411481254468681702162896275818221518139841928563839667791020636817101041039881475559896716168590211527471948237156125711412235848751300535064313717141982331471405696691373450228069528596512697699020881995348936307510823778990912594034661357388560628855093105884074207456867280146162386301148206625354066226217550791857119793529383148679073753477573922738833858097095707623164049762626363657334440610587168334606625566721215591372911584537220672771763810874521614334084341900950628619832544260143727264734537925621559441190487797132025277448535168535477280933570684640126657892109857324168725923702650806093112974609891090100724776849341000383827722830659483559216807808162005292002812062938334643838613208654800634981440662085969502930846403541929947034874288438003428980869730821925384512009140088123967116199467553280756375730983113626580501294248491256347414263783583063172384424702317342122412632691309256775251669434561514949535384724095963243802314936177805760654911968409470028575909827508148527771248185873007876130607468456508856779743286730577095170269846996447466653721186630799738324514926588604315125912370985026225627383965386172060154947406100048616080581073897047802289742700758345293189223240969429263996327718501069985795564279425006996309787912270984055529471536481025498148741560504739984412980945306151759560347225406776540265105318127896355998825974701269391392547750238358501635277183651761569607619719702425055048522959302718240960579273387967690003985675284456828751206242854856250771276245374053734669995527068524121018347939170911273843550509828966572153549789032017858360589657600504810114216112119233164863990780157218093955373777077202680591167753757404613528891889811642498037858205463894193413128710645209478667191434633211351732736314227340806166408488156680656575424423031469414567953436264226799633510009130342481949903192825423200455130169694419289471371592396618104420521265528351205460460982386499168992147773800983458451486895897007548007443300568986830631632182724750816221858622013483935738816179760842192596194192949959492552300594083490842221282169023447066510796779222945695459123809642758817262864045417390332200814093998397112694032603284178580581008291935386028369450425899928453049136328842976373627658762576216343004669978779863978439586834703147942711943243698278060849855108155480737534466386409071200232725558214067528825078778125847978570854654168413965194865946769429317613949687862229288110285436843264687229209236056407747959300003982646730543121849671391255725562393276784666527015103671454501774474963796403848074665300491112688423357604525964393129329167975867451934470773818802288818195677230846134308138998841145133037683819691021422471685126805243186006152036878187165670056510764110702450953836820057529313397523152592947436380649581960767113930644809107191467832208603116643548113760253054388939529696666155679755964689526231694058352058998247412433331999034709883374895200882987767515886194946689005443875334203684986732112169031796621528849602462633895585177312681858255257969582568748825390932502423264523837060554981347045933839456146201866263266724964240263383598014443486081613227556183843353515481281390634810585540163106130640441598900850474895840205039796163207577314821717580490193436327134142585560425449444928085837890742328762062939140582207880056507929699470916043141378704280211550163252318602835112764421870408858450122978907869185569914351843081403636697538169710054942542337105567544270641228579922176960203384948324358842364212721481432920830220098927344170293304526925897360206386149338416405152769944445341024548408952191538573684632500740568792869850298545479710796673523143460958438024036014878723769576276334351332479217143033653467477086367077510988687270270199807763354745619457790029328969440817221970722904563493752296124285397286868974572639029124442395971956496919447650301407265749823513206816358017873870251201237047124468571466534318018000827695964897666706513939667877430401233827413163349601401138722715034105561830526252925262385318881401939743456179813033776346586386723648263854473080395396135261608918805106358537030199365864919730129636702385861357320739683083515870127862982156351182578523753577911527134862108819905837301287779562415996816968509004512705637830376024726328284507967604578946018164143580749899124969300959931444485955577649458473391736666976437161023838859839480251861674207451342829506605595672282146533196720690692021102987448003139575972178639883732396762030636604607454675808377649775432749937015734524626081985977852946422368016606166361553895139084940696795727293809460263071389320374564164594612895235146720373757410894132488305331029968470702658921561821027993046487438119168330030378995302828193168700145279074761843066856162292789497079937375662101951131104573330923607193371423531320484188890116130761768626363479312687916723972819129077789307089501746978446186417572690581294779856172407435927159410506753168662391333315939548773913749548885629106278980453595590973250601198592861446629913618227293619696518444403224670200558938761970249996285596014736709171483824619772406579775258179595441899982242306405099885344776461676127855259613574777574130293447825156487847965721611817791843589392376232599722952797055651748680452363655846759484345200747632970948281819962716018432286819409384066941343715517255809533160443686179334019531205753182316100593440963299184660997593205546282453877731542599003836516673276448075812829587548797389871515750481042622932254371342761190776530171859177743870854407734843302519657560919279481193282479584986249150876062650954269811813614864119762072835936668345643569545281009636405474598983446338379866077820104967155042682271936804457173484882932316566561129303882396977558217157760512296406974345653175248847430493663205191189145482631657488243544887578989308771602352422010110750580943202700318367948222324587746603407354292158083291122072244995817463988852819372780293954031600061432725283718769816400826444258829001381149639200096322431276606706702864062824364654096544159591782622150432738509813830614135348979880651683714372733866042148401252175989163549003052922411504333535242112255198791610230695396442735286238115244415713929998404862673121945604731053557208634695454198112067063941691758195383342329607793838195014958988456341169793759726823869663266701349325994199590275496535128238238827246814236793239490423015497221955600361371236224739053856783941346508669316595966598134721776601165595965378105015669780056620899620140843953131103520203721712194800313474299917170637644177064257438520769230569890373859947616709902705285709259145533427418591750686591725162095258038422642062112374185391857582296735632900505138675152148241224321757201694183839982699925823060721219202350064522362071406723614187094379128346710245443254821658855114079844037310714548073812435008604834927117829437977437351501856061722510297728172209602569616452132581450343485206657918810406971322728808256012345232931049292263186646379715484091321360422020922517055408600054506319372828563800949002050092999963034511967874946240475196530562937982133150330583676948315532524475892487986779958352828961348830732543928489594834932815984753265653274246161992257832563776682330055251229114339558419072919926176862217412837540643648895840111759876560043229855704102193136749633669915135803518678214293964397988090239094739278504052679015828259836156373766348263021030516269702129142695451813962070645225000575056501468443248203059856037158830163968881104239110161219556450925387566241971680923149561224154556000212176711292875535553815953412517063142248587688754727207114870511951550331043920434313950594702052792287286005233464657621125459650055953326026317827300035758895758094120249642163613889677027307503961304307040048721215788060296893128864814673287596854622370989291116327833530772280716735506917353536162520283499655218687346744236634909243269896479467956862463197759229685565198573052957681129655074364727179788267968519282929995338752035177578152585697686399851898143347716872555891278363951464459713991344463337477945011129202654150664404752825562860978173154922247238505436641116737115550417360949041909231542681660784287195889646759473646773923790411636637119502344947294664272639019130087077191545377763027417188395375842473747147359435972440231611780709655485484687607421950054027740637457230207776859175272125645714973310310183200256776992354238577805303721054046903170958647417900369821420710669468561339837543503083909956744074471161449774325622619098662982539862292116543097220907529629869861762348089398189909497183683976553079270094960317876773969067512330503853457795417939902456032953325689442187553671078348184033185178064660497416435839070635623072895954229037075139992492728611672552538581242065121724664207611110687969713658916529485303670923290216093966350841772295190779370014298069086975728023350535828322453147840546604698856535058890095879263016266983354548716166410642680504455072360430463058336623107971177187144326655901338510336884335139231227331087394198725661880431327280235086590797119248892424725228677763262647900308170729894918329297134201851182908050402915751148890204382381723797109996735184234269308743250212713475325089454992703929288856000235944533418360811413611475588687962016455357637583397572050731289865965369216815440177464624089985513947733945541148920816749124424857791627959651926062685886676065057001004313374655733275594521028343888602389287308593889617129344778086607710149092384605367105100550367229686622727235426540533818109780012456275394109689835538110638047845460779305733353726328408066484514940730270154156585998717662739495678279752382256081677850898149282122861135612100117373487858467942882786125041920383973416479800464954298161986088712106874366520528582594161579325336351981706159061107987879226271804563327146218145110941376458416414735365605251933924345699856539717345428432418647362715148090535120371225505227874168347259424332681459395527847385319667356216936535965076116649022398897160676907105090593755168588234527137365292215615589108067990954353245311027037154494231071491484205206551830899975182863158194455257422748820152106132507128339326785464181970222847039172865126098965995434728790601080790992605386218640968609891566173873740819331466919464362838458008838101856368555291529052494997275163753872561566565661387697486349120288580724687037600820467838932043843333096883916833272032310069734070682689429575714084547167591106101085724244863455467768376272203891475951235927234041653486995058726740434053947934490752878570121665824365180727591486693617089979047568589802992242396543515471247968565658289231652984236927163884897367076923571256297999313450571041706819558490088752887815874019484969302208974256909577659375362265149526598356797806604544761493785458011760078571028334382431680807669728691248081546506119305892123761299229102685561939954192799657357986261280159235068240239603688712418444268245491492967784424472078122223235807238653521576227836647710072726883981662163951524422781629194543268468323292479077274488281978529432794262263933022593516406368251068682671024219559648683213878709163065848271716998192542203877127170500892391363707821886080128973880755242095511588476012318746348242051757276698625256011346668392534356759331785578244678140932943192456680974329433327160467843375562721976507522986846241569013520674829032121858228498375930829125254017121558711709466858059479880956102877844115676750784634920534755740679937219557508141114836157005825312310180672967125363848543069162398446821039489488405362992931505403870954405121810206666317437628835767433791415367121385620777812691729555373312591312599917477835830200231862310919597558519605169343016723060138485509061069630149004585791781346672489497061447208182929784529458591713505746221675784553389286949571389960571592900929981603359951436181534041957644124127940647796443133106612950393151741910080004617625987079407218173501905150038738468141740320936209019204749646584650678421953586748561385008501916859722437445525701482269918864938210784785879707438816018407131366814522851941953149992892746650967799694363359890985715614405052659981923039157413494713218813856148768726686161789280571639552907490764912427656371426212845709749515649968997692327349399213019318848489224199731587117351218527961018296150306684930804932229751783780841415317853617056157801006090626162486942828329966421450494803784583892844772415366938836439444356798494380354358442619030398276732126801284748137667929133625505541702223078735214692779880072199898690721706668568920923404726072190978934422070573140748445595544170483244176691703649508631637024018180230934490429931925580219501211186632066318405420624061152888183322784375172815807175709634786145432466034147000170310546581336467979573989406501781413088185486097940124340786159160146386479461838402025691420946662802466431239920048224693593844024905169580840581941746326465628218909188332528258104761257260147060250246329413257298775772079532013727280675213030745148947132308134520330577413957251875943098933382893903758415471532024830912881302730990100935110035365489362134863973971704149471594639230299480369868904729316741816571592164675393268126942837301398650163712527319728948666418964309262823965118634854603241758159089274536326856509574918224053079368194048283897471521853651146194918157195770776583224850460771743933362912461077865543093517725975094887658052947122595643802605508339967298136282558318273822632144148039815324047517578278754175287771860898722210279060754296419420977984867260441084052198175045019379918273915844723446148187608186838259374273898860450568582735673475846859321970905523568771789338585025707450896400190024554602387051791703755061513308836214618258177993125296125989350665583475159185566156633439931775001534378756868405037972729649347480662799834357427841644240470786116461423244475358551184178526422721448715320283729372351041772942513597336629506223675126069570831102584769633031255726793410541202109961200751401167461852428038763465842963449712925457209842063445445151475106712220540052352952334475107740628474271839808563592387771471408291171542624866869013294803167037731136503232779843494943121857959223443696762902914444301496537877453883956995861891570546479431830240583444070915563278241528296275798987806701037247987718474538573868889513843908698534208264966217758899202191263880283720913903499487319392512793653664670801443134966887979066312766382225608045050171455799423831712426548803137889783545915886431670210296432558815229377114491396529258288043715212829808253303719081424384866114655783841673405266373498899918152386773295283398915911835250566655187768683398445424754923700493826529452673083338016784293070745836907785153374012176620634690989162486830107813603067272685219274384184539506780484506998338578609029261343903250402029623489635284614461536304322304266163142424913212586325433214715390380350419520056401590017819952473465051362775473066778795554409706649468001392938553967999889523846234607286137961382840944802944093056300762008811569043391293078737817495685751882052720740609276657669153520345583096986982399749913966645345272520384488463931634712322765869045566373408579524242541369873496887134908036106662695365189698292840392738754006310782051181131812673027146828420910297864223303360387837637488149078522448044798416483528870439444112115573301989600865097927071516014854030220947805212820398691097712409119718584253549338885456929578052224918048155408077511642835789368259937720504639592142197560906296669265749319037306210800461803378605179810257541752493655927528374007158086316193218626996964698428239745272691295879631670613879065195481744588473204312493665672771005091079508987173921622593878714327846241312753483253459030532393006258166545620341263433857389267882045243292375508418176575652726319017914812673501193100962664196116269916131328683732743211859421028433937504126362237786604113000101663071866053171724442140717656639887160136242864469977804873815199421974615175086336109618815914379960269858382376112701599850190724293855002420270295015497576127571923695279891707195894588179254769334401623218899478188749328792914760278513922817005308345590923253577718637166093058051104610440977242557926874916052665312113842944689618855879136424885915628380621752623356354362401711355776124414796064664330375344813587450046616403924417439372207203475488093387321413317240916594334456382443026466288019978622849432899156640969195222343049967008764030464969179625313415287366948280745570644775210093711921852193539649701686297354385797538215319458957403088194812212267670914188184434546985850408501759987944342521191991803516730932870746055953343951405819319547264767458022422664180313330903198511207412607183234087801481073921067064757845036272323997884445868888714838898560560829257081488675880551469685952642367616079502828472364918505233287233819242665072700270141080823553868969820195438638788553285912327410142013375571508902256709932733240933969259665774791460500464913395347083794287363518182367580767174901891334206777786425743873099082047905455025643811229136079355809028928603154863882186292155595403992186280593810774571101108224624734567947993675203078866115353089923085099488650087002868567116251449486346809154587392794571502496538208410493260069511031050510731552732829072934320790144265531313468035385160610723718197600159673175541145502558076831220792725235106022741631067499657607557514246471917190560650510871614613188460596926763674207772351435372291090587314419609013553209390481887040706980784539472573570912250088488666155513688076020441358237739867345062234214360305279634448228135514145963508565471691897198900593546871518682834521979857495159040351954240143192087992413489901883450173246949547976968052956533619638782673502739566731169611040725815318552488041581704906946339939806024507410154470616933194187037184298522147874536206363050417724784793420805511757738943035463512222347000310371578472571788605624120316635590408602097007980409508081469250228187121955734575915667074825868235641320916649071563600528919624714291455142052275337237071730947318456841384496966498671289478941216643173611400262990699683275387735360083261524663344271136230354455598658087077035364284735790742958247547078448628881694643086261963126662358713429347446745702680256609772016168899580576042315268719138359632838635716173812684026038502977683923645676872898715746069007957269167792321219874618821316774647752509730507971643868452922708446784523638661175948791193499394717333454770707302600305393557722496794374490677151577638279231066138476319063399744116907252974396153143788553478361916864543920101895358813139465992095239428916769159895211366781304675126849594831289589675281570473676767719701523061647832237872301368029138030293135605150551630834453991924595949204859442623792634751137048202341098667729850187868520023528728167664907639642206983777326240109067724117545942539304901941850371301060421378160966107452294742980601139755689808643810155926845644569976410495706264441005040609753862837151601039833027938609878827185369626101393426677009845488015465996578419105300840297878321645774617676910161487185536410384122319120008456939298046251684556521186099735741221121152552710264914153413204162549352168033680019887370589533442114437940850735014266414237770118752193809972068940031313335292780517859151876061812952668145985123763196752109912967955756659604472690168851805568067807407096817557335177885045226291892307718228755138703180152908418948498330145345682242560899609320433937596379818913351558697737779268044919263673489716424083819852947454182971870182659260739342608545641999146930200260656481548211240698877893545375005272741771683646546818757894331308667837032639404930023998515426456101741822103579037625835876431124821629285011187327597684875830076154616203939563504643293019576881068477837977366320354748804713707130049096778322227829474148244030008262349224721021583182064749877950690322267819941181253326405429681061888059476860134626985491383962420312494589936763291978829867216057181291669742509096205185798144117607492115024436181863058758603579361229047467619454326973663236708895373228803679004373405819084280493457133236093246025394437172724604900341709090543112593964275394569358604657414400242419283330072121251568155800747551962359045105594046459749226373035602299711564184299509336506720445652614599473249013359718083110628420230352293011413428280732365254926236682424812976454467292728072032269887086845495993102819535495975294570562791443053072265357056856482831486985302077550374393788882688004981400642388964484285154801805091741845527035622545498595529439748398587566052511027475789275489502350462659965166147423298049869916254610721803216081001997635084616377335790782975991694643047919202129131356580071266772971865753625596119860857246460004920323687675298760655371431623560477287990552220863640400618144575098630932371312883264918925120312431536542800544584662830993045380867490984806501217145859045002446679408701495823397960122490006645008207223799701957162148893369616878055216343193090352699615220227943708475353324721462173843247791222286965635059527761790085732181001307601133416263300131734654603220718420236181048918017465822381936266396785436945364386768148238037035297013447747420072414601523785850679558044374304066773557657212331786950558508853086842488588801854878304487678582951176433586584389641207864143267389373407847791195523493429014181820841167611448762397284134258535083562246311123616761333819355630218180835319039797755833205788542145657384587250374728591946364202428159297127930578473094750311533724126795280778030050185240948619034856231092649327321546049150331873349986291664280280718646098476803130268957098947905825842056482128592542387257962546793563901616545314674684906740019647286000429012945045239749628754356161838855273770995188761939806106699744914539910041612402079412468863788925610411218858598185910782889734957487718664180753658695575645644251241348563548666887797582698964427017092461224733112620540098532708923501127005413355909393194424467085379784134272442730366153459314347219748190058266616183546375370930813385547695701857611630631453943239886225192458847866405510200389304079831063992365109571878059360126166606577316310953378542705053979736575982640474879642668753473019359039531872172713573470284498489720858426343347095952797663638468484979806289899786549342449829204220326101443468607189342209136159952652148646571061530058931570017118686329302360175563798671224571247922438145251905908462967595719947150353685957425258966645937269823422026220266889205761177724181402232534167463367913852668913777918981558687538989767596427321826419518071596221508322608509336716923869659822852433044153796488290008010280200998159036638931179354786571780527933120240390235047335149751874627919498368907876850563406487964635726316915454278781595827029470297672528569228138710930469929406257705801309945523295433589849698943371975026112675021552898083305211997987629221878441215229871584622264866806750596026806874793539461379146964668330698105404857460871702433576309596755924960492626423408201713537978034875718807482689270541992670125384818920035116646172898231559613312358378857949748990824724262330564285016749123186306090295534221319352397686362078353147596845445096569726091879320102141082363993078879504457326537319694702047031797230913925220268378107112822962385705479917208417325024003396316178526271195798530323732484541917845601317601575308974923253429212154372798424810765179822629860622656177811709825131586683978565133593088179968001853142780802711311580891061028082042117767879647592718432361142089885398190831993236486770349958191641819447529347322021481131043756744744068537045600653543110902070378199426621287976020965365370985948232507849454752628583558442453630075561028050515182634232417243898219738672475094986200513609696504523585450768820125243849876122317763123594349602664497470597653553484933174163284754419014524877756222515086560292254514541589378262669874254053421807019889046711426197815218528077205869230409244430346267157129969958541729407678855795839206337907819125385569952598958790344989825778889293785143593457742206270811235750262816002915701013493596739052555041001179007190119474813093296876253983081554676594190178999731603578070327356681671593378248076880419070819785236652304160027228351027141658498799729963492601317326983968488204155891268150441767717608229938224846418747685088104823983575517705785555986816026494452725580437037139474724075913302668922674850381064204365573039938325348260136550358856102680291237095961999236469646636956797817651715822249885939839629339980385628422409668588522877897963046318113501231630044779616249877007178496849962391441817145104452371551365478320700122590123916590309988167962300977698416911012985646121392878211236650085704989068498528211450515348595196012573622322913557469234557412660035397570604776842786539299124584519494751516264223785044560396822500799466820364789910825322856609218787619652503418428701483944974111875711682354565857943387819100905949464504284039736381187998156322232655600447071424291144682774621157437866378082807568437808910237556236734706056423712611670937094651515303882063662298297099444452414796751249882423317168410666396568878400302940705796222097629294046416146654076620985310102157805133486172055202818495053568898409261188807385808435506653464033178857026202278742074799522248367083940793700397798357539688929956076648631873293432579650047807430995817087414688798533418645803655395539373093478303385418492477378726691712245493994467408558155725822599839594414608595062889605267014279954566850528556202780686539289680911064019642023413613451400854345231892544166404990929489805311896711560443202041876670489124313184798338807160746749052791530422359312167185661708455015148594686108698104585369484210588706180090235222384001366646076777852582641413225453988799987295567651690186825826054600789680843496309732528019305884365736758725902927737679602239376014365977943985127887701136664831060855600032423585662084315403161681336541038477685789390511426813877149098599124646853918146725895668883232306033912361159825907393440431705507245292668457422258866084858245260025326622736093303840703697934861404262764447179493520753578121731588674213316116688371142838305053755830694342460428457363404574376358595159660664907560746685378085168473430663516418155090543497994857579934252985692306666806457138897446524560355934986397411944450608861040974054535221628118844000371045150655756335585100997202909126436203520919747169048053580261869449624804307973003867571932474119464508390307814846731909321347366424975588058595112718675305703246430760171352022515550055740450433888124595094679878859256501475606548361260389924572466714444851942423141606386439351386589268460366035789650942094546738024270963623553472613057230626152637452624815426919484608680443184108954490064015180363911306674933365045339617621779897205754421812793663305909123971878111314031325362893824086311581545684991646017203937779394896262723866906560565004720927892487526438441064242046211977972006818627884884526125323779568739983752104185922363399678007652620253510683087820645819014524751570967853265780523573173451690182652702623589543846900233527151355097380713885337488282907195144112410335202300007980806182039753409093882741510659351025681516240482535064668955940669899986458233897081774274047120201987584181004733767929107676399049154038478849709046857662916505169730805924430027936664907977289057521952595123952596245263507575764296100995053843056669687349508199886892502155374066409160130736833773099500204979553262866015965031400953763513737613124800077687121915283516435646666042006392100813980703240458404234837147637526888301661633128638530278937086358243838911644258469393485852946576559158788104182544116301846213300025325200964181160439060285420775348214231267730526729554643737073845674229803503519510810346043841472431356260095301253398050920581336670455924626800055350486216878574141539923333666388346744885111191197974488987348975388508397088771217780011970167247505867379309184173323174904550228835293015551355574714793876264389752761819708494843150910332459589121688369847373093074177711316869321995189154439403882092616497474334047819524639951949171369632641748994593685863652735399101897281569547211298060354772096253508366909918993967313709318512321817317317542056631033806192092234598579712197106531733059970080376912251069013061863997702065991705379863838984263198489990283691067514413450985585672250420146009427983018230270819766514930845052177550164774902793266718619380338018053720580926759097988265998782735899747569593586281991433720890963361309067803183649139489466862657743419798594989486894307789392741418881569461370842286640122186414434302184149323269615833783448173508944347188617005293040232519538363958820965155379340652093518644742229547789856333808705433873238244184396400802913078959685886762407575851634930963744951684305843654978684697647277765113882853292175047131818519289331510606523595250984422373386098502296903121098482153809925825314402164726373717581541038285506853081842734492465630613664944391840690885073543803937992807442347993829748436048409567564672374483372397324474331719694196538658953381487803956098149414934479498517369370591585135109243339051501032995711369314267531387572570672907266352713220947185972540822654130178881132781292961428570300760558252578476710540743643710586476504901770004658889876947663883144369764277988621924455732427432397447094115055460567118359945193454098301262221391682089086493991037698517466639350981888892673551028895033902161961921394670291780763376792703275733218495318268507164490886488164770810643509472479320354111639441609924496760808017344254075354032384324145525746811667052240255663466982842935759460162246669656699995225252154943253837791893672060130332887719367009903739010797052574223292012730144336936779969945034403850101721739048446650650865415945513441831124220750249160459753541509084461468981633746279505519670017284235997317577411672989827010990806242108021929477062871534529557748299816383051664723058564606417312120303593985351180584439139449209268621152684934892201370327541177988133320860031477271484769081817143521204794205681085162883953161213609555796684137138613895426841380817593107803524021146020092937680959685717143698872136655239794382896186342365300041229777928937060315892125048420460654472940802950779259718169261186250348368745876114736403604709909397520643840414249166368673078495368359183971115197706935504881895914352857840350847783390539488275013159265495870443136974496925911887209555747191629834484477533662945489444976898134520459484271669446715545363142724815317036227381813230416024495119953885508106411900625481995763829978107435246518944671397402080222272489766252546516844526720554729200567084189345293386145616408849963827264635025551334951023440208485181062283402308909389265513622575853971040379794783671391275412008375224024303094036689719749865071285511155514539356209814944663514947175580164695052144187184825938356968626922037609408146246881708881661666980214398963953322295633923122082851906866542336623955390779541592956799321081666616313103663897093224968135793407557974583105160237412119363759710112318728693387359447479506668796263090821698302545435181533698222528655656703981438710249312093574230890986056596083624253243393063236469641069927322760934696861157144419817541699524525792226035090526501908968783277212970395792287453500626448491120271958519791611400566624577272415939128251225920704858964199117529568136131516498384030085799190107477118425187542200291144562267669083760525366931551779322853353743816356209870176049143359668937440285260005296292737412635717286769288007420757156703806351596039944768653984861862747669712561610991810841171166703925297385148324724270607653883726527449917709533279053501210192240330068524273787938372604561357038306412710364934971252904150419782824380759333419932423142604570583989611787572875460211497069552944055705897380456000476136479614884113630839528522112892176746256579488384615931290120379147629171336512851324150590283960588286326336877533979731311664296613807000827547233699688446576853671274051048652782481379772592370834082174297461471393264766273349461067970351947720008277970337608072985187498861367202911144796255628105309118999564273852848227586719620273905074932642612939064668032739289733448613094700370896618188575214162284298399224139854292789286283509306512912711137392244638682090438308903613227568335154019492686455392312324732909881792080053757741831362052587066026693014401621343244136939867553189564833507444348014333038944375717583346561465232199943169307224678717205311468310475226579304560607519201283056178182477871939345773337913182980770211482340108158618405278772670843474976752182177040512011511983226130966275296453760048371478311680231005506590207609497984438788248846736666154441907592114949336428753230045464829180656741758060147134242234471727876107996012128280388592945657276294104321849012700547455952797371854438761347157610275330034036900893775415033233549083988808700483979904941294243164713335640840895807852103159491470810054763576230485314082821599704008736582355346758743089451788159922667423290913163957426146784244431077550921623836136002947813323611201204197979986405268667266046558805932516573221730305596925381159744040364269732288844850792769941663748874010348625792048132406373365333621908483766881102162052057433851625675511691448337758666461813120295606029646698892552846536263978805583044087742052267775479457354591860315528394128599831651889158965330267610053339405994678849509444097339789545567931802215771039308665067129271293371823931240856763512466335200343772875536567621194636926440514918063917121287037641873664801583498317634799895533498827586512974542167076803336191749054158700682881011459053990727822467283790146934400230892766781854370097607066734546814281327703045416185426659780800964442022662194588272447882305899546065804281314515321971896083812802199850142809333614492240057567607049474647118090238261957601528811345593700594580847125550794444090154309795306141045678277138867194389160380237523788759228292014689692431789495379200174560476873942450276684406896760774900690317371046111092258331383366785465840889368012208118767806359498056719310145458439882329440571050719094105433033223966881776098786633954525678096766021089010424181451463735139027829549739323184931646247924110729821326428854669570208524631276304773247464507941015207478948835778253102809149901174743789147462338201277090606212104340861996752269902579781762208163446439562025177715689902001007246990661437673434704455090121469799092442827461663878877665631179469820787623929507102684513192753440381760393490625004882518363874649394425125718818495797176958085249161859386970316514143525663540328854631678056249737920348078137963537757441352287690094306209772041054342156080198778850147285238988421117906583753462496071845632356420300267302868503718156367077157070660959214287607900432869134009289808681866590512805732312625120516168133134397392261691874959639421818996360994687042910895853717518655062437109598730864990217142878490240696982032167289881145131767488331523303710313780719404129317276643122042080900479743945010118267990860444785771218183488732979124639155550937660377995958943913312454188161371256337988108017249416034013869499212443942442420647504747570663183524835105590902772668658669747323549529314087248411524300176600968011438849331427859448729261041320518067972758277173894707776729194909370099141070845323616567708977562788163044240228969722010483620757862105313014031563847259623632797797391060985691329829858982114646177940736778385189101605734131404024477873997342372232974033382559305534153289055803614425966043853805757264929606686505566571701927055283499712170984312022565835708119212077584260550477164136187163958595648880951265430966819709920719863568312897628293027098966086901143263203168903102443756769703718124140434132127452388822580857273930377878266760499402950416925530847780063218110228496730709413285773233745870500669313899059079578800891525452783151249760406887373139063232493657650093610073826602339343848661599280827377961603900348282144876670570312172271950487281379162217695241875042188728053095976873851494706728369086640456049178604448805892753578179464855843161787479545277902146824830797577405219873037637240288503664761272220395368062473062014939283716965413069203705638438320526041645035474726633683498334851126307143406132875647671139016742906877015883299877950681373180105767285879093165247169552839302199016240767395732435574020797333058044187412224848254826940512394443300650523280932456178000594512309502038919579191314186542208634053890890738836443752531496632450604614394674603868060131206509539917870640209813250396856828561450113198349827964755009810862426321895729095915937464462569262353053137808359592744116431251217115550407363521260672391067225683937997315931800047563248989147814293113384358032192542799442908987740056972797726304763258067036244030956989808646565896593635706596572058101059221990494084239491050208404296617416118795953230340576561387160387350334820767785200250926150672321076314126227083419547102858769570234573134655057468842203205054333841469435440440775834396791959941117469010051981211609036615631388400319599864718365382419487415005807689733304347886249919268787108239745709998893826462311207941324458186310656768818948048258026713984996727150269722177057426029705440814120246894825165724817201914223536359651547052259561988189850690430549656412032957147111734635563247102866292401082401418537154621588595955117065068282781931573136793290482141006698886643002633363046081050368862156444257404585257792206078393091182307593733669028562418355724113031693627733008821813722850605592530463436138865267500229465284819344047291799160020938245967487386632308279070285407905222757878967985020712153267115090731207612082806267234482747457039699728100901422383674894636511334111565891076419265207620931663672945940076754520410876518116423054167479238421308239872813746347604390800583059760165869455925951437278773157864785336224316650799202274592375704800517278200490297460873387893180113882208357197928985593316690620774909116970099583282453472130722778605721637916276559575081957585380154906212393640438833648366785173177803988491425731228350617256712222193405345534671775123215795244889698702633935997139654755296163625777604706741851882147799498317601379203584993137193627313570016859829249650802361365325123594577177840179991363350322280671271903469118133154304661190533999695791851707690094598319421188989944275862344095085220938418724520095102224148576701420380104376475277164445800968375867923937926439410834775568050153023921194313817041232623546807798586333114138712251793574473070560210061998691788009497647366716047535849928366722547427816616373933726837908900617357141535365870325118718298330880196248175250056682165861301135826836272826352692205971888499465043920976531131845310114898319644538645946468272785408504506245126437193146435208611632427606084701175438799526458903393774558152550140350556842902218955232445656299254640775829574353172714493186220465824851200504041165668060490690292535307222734464766742299925177502798998739278357372911026735891903847337517904486442418842918455315328540401289955136527760733796868387451487388208348661905014227280627880105583145611019234075985348380793663534461406855725435215897169071735463032123520130988977064973405374817074564083477683030782862618478751754879912355387799449598224956202359755861249176972943129010036820047542955960971995220125638579551811921894246744720076886635976320301236845725855376407716756017133352421122894542448703858460708120470444666607157759888043550601284786650056372244530518326870041251268049329083449211399054088090056461268802171484398864775732611357093613884227515449985682758061956420054287870848778766867115203917397455302830634511650273297724071108964963483378991303190870889590009711484236743966204601892669178826758128190263993410112706084464943130582202005581213991296989029831643459212227692954583397021771729877806697069485894827688965408887446422006005300331553053459930833471698564931632614237715053236000619227243067109842748210887297656888530429634708680985332131424107658305060580597345506179819519107363067429229103668882296333461783043024576917821238683291608228465569140630438766381087335658770223710944676535874249739724237343640832973515868043667848311301578242814573893011288376756005262974268380903302100030698798754756275459142858182213102318124305160598069917867015754862483254625615611418172123214139275559292189984791452875938669538414944696110633361015547232506560127797987698621692188504401382166549598946498715420022019288082421306226199912541316424537250545323992610681254885202592276584522818483446066925174141451557649856020504653664097145202485514540987220793266112533344086532886375139677587302771531968772665205493585953133322289020499346250341138427697587120349201929020155786900299320649530574336487958004879071576762179555989664340636298524704924498523195793731679852211627119561319211023127133121570440376788657796722595913968589010150897881170971238516416582899852115910732337254591272429565191075273256839492835959703281819669696129976696444224262196215215728186417944361410415578425095584849546586259508235976939098348721141326903691731244353591017144698935430877184005176009415153133632615785098255614345034426588909071488242757403205387068877118625244112516947723938395193476927881284579558957878440764831386932180059549687640322869572606291849699535551657756365727900162000809693327372554206155804891953737267118901231082737279188850072596523072152581573022238268176208189617607135075872130237191129672539777292599848513342431770299768092162424165165018676381606282114443583751235697210490024515038325746228844652703253354788157921766106818047188272376612766741406509746485302540364402550372245070175008912162850710271552778001618758806360367319960846638912469098531434411078930958798545057230401802524367960261543702721509143592002980089857488646681139916045546052401313095917415255186643922291278938577660199924575909519178214141357423862748024039673578247105882031635134768441487391160138668533106222848502328378442882588665115999309181328655731258899924089641082390913650757540147673894771796670723073478215912677122022805085001673915510902536705787175759264579767511994106832761045657704256996713864271451465739176018862523072854927800210022814268241801329485513368822909739343794975396107809916532549410130106665609530799912219988107849864238853826448164589614175626076701461164616624301837738576284702043660115372951939715258719673285218191870893212140721764998742775194053024895941877038216407856038346168744684011328155714174637405160063117099435018863458012566009865878756541943446957972145981873216360527818522580733359224966044605488759567515339953651813832730207311346610173486258660336800528770436477661405664974982874335844787463625763922419985456948400947050563432984177634742676090311006031118910853975222829981398784957265690142293872773409145711422697358664947059096239154703658462349162007921812184395334042996578929116204587336033071018769593437946344788640410388611523927501592537242116045634201382643364374945764300882230203442155370177823647938029343000577112836232450233068729324085605146100951556874194810679584949242387030469738896829446322513013401621741159259544487625908779925324001251028331653484615591164489088345066052483303168875990417199289388382497167651397545906909632635483165265947170269796728304980344882257415329163289441343787557144209482231962543664381198979582024749120641133815155244929075975693019186066172510840151442959997273652749207309867646669603624162388910337668981769090802569850226564621686276886994661364587668999189510975580715330652191429588851177205693021455103612914635990906604416914393252133597227351830297078356116894601044576158952707236002693825742764744032507071853778918512558068901384500795772500274172425425627680696158075458719924534089374777210640205153891068725926079931729594419696520417445558076226065515122025907628559817805364143454769013534229324512583641358885082623438203830830869715644730585631170747144012066804639129630658420155443050800028691191143334826194703148477901784952335439121691787733736592533985326288309127924451949296416372857151561526720567221491769888051724799716967296667603845787098379391174761128831436205531718570164619646200375242231780422997511506961390960809835205314257195698795588703442482964978031249956528062292418746989875005943286795541721254734957344487543945211555650956952032212481433805642676693298875889183024298660049371931075487666832799970584993179456201014138202273394037105796568589111879293876061812842189194125693536417056136028808407054772480206919290114234678177302907506430366729207329801559475256202332418330274626575069326274019921944771000170297809675154708685564643125583929251293537677300097806294471085188697513428296807195913477684902909070154494764241544820269441627817395853014926755482013012873453524340910745213616593987491186804150767622575678237906925408782115678246450327216474624529202777341470990987321496086761299928757872140523589463708613023053654184782848998322167895274823501114883404290287561273518684463423577299422910480354997918183262832599189937283824598547722881950487716972794145809885982040282124376103109790257481174903957754820110587505150735843982981354141405670358452951998862084035105244200360407128111666770359461406710256598619872657230963143759590497406226121285520455218334691631141553860797927866559372732529399659351921878351807534665597214827835617558606313295298243844461019211935246686301142900928091740352933263203644040841169363346156252679366090889672690560702105420841464925065905407899368201653068630115048455881781379063877041138096682994756453609762469631031457456197450283370572623446801863608676097863056758482501168433590020123302961777004327693412652602826421586046322198177290431249480304252515615501683907390868704014517992672491784118625798266833133072449627837951902442972017454856335321601267902811262073429082954856784995361529127103520956984270244902342633644644922170217871452755334845895791910165887343612761751207614654846277245236659091609580377143010232445374922201810925562973904208896454347936489499841266281958274561533613246041950216880048950289031734156041547440863854049513706993806074278191895388327083396606022104743334240046073809782855231065067866635379267141412921217546220544619608672911379934871845629190636912306978261341292594919886494707667775937526191316737014679816113079447884909806126057819101720597426045243864277321793293167957274142449471539038213302267370551226808868238019394526841081104441330242609827029197671668539450343989475380363835311469336617028932722823965244325863479139434893876207594246422065689418476647484529463244435256020335364639872334191960972115745350253584644022757822899457547611266605836499572610288193318910467006644546310643024595331949441234229717842081311711831475001900502420418298565982792699250211761130092009773689202039744433583839654956606514003061663442622952320656274442222525942870610926005048573429887184757923965559315238272339379602758293471791833688919225489719611576822982112299410554100474840412128659506485234053577248766815683876166020820356458002181530307851691399179810183037203271457528580554596422160191065685311676041961497483632497004521500085564285605525443000797617583823160595536836388274994363454184794813418593362038199910162709098298595442853636509081045144959171942524538095648224578009439533193500005217691645250642034694564783166926900755475473322758123423250213077967070401415722543388877062912038695936552960087388622620330533344735791705175819157332647480416595560676340247410596975449667836521699652394375376935684928348237568493010376183690288177391678911296198657417444290750826987407516141335810929293252990427362140992115203592790845160925817307769384509870648012307320107621807898204477768631906097179360445547629581260509562134646766113903087842087630441116088119108734524618566538661927767936739280980211827682149543948013089033662934694140996202895256125919925236985879621748804152916152916294340707223255235207150336926348868786030873413562640513789956188638496321408636932883731512575217227859976512444655149647625799535778128586776621750270384217522303890957618152890124252024248323649706865577969247883182023497623604393615963828233838260990410336273704241506528454984205442072290093944786668975289179401967898791051218825285991385674702337256529045963014614262847855114597540374741738951171527967608055966916760476064028599976509850009314766088885026501104882679052008528845934062909213884363484785081799724016689173547984783680123145995795727354559656410492315222806324015576653589620940732146091198293841756882643339296411499636647920285508789818579046144799744931838635651672618842832403264449107921139931168206887261204976860710478604461212878401014015412463711700815839646124981909445884172902206818111374081862488475521844822154140808786606497667371693589876325395717881485440436707969029635640755116135007684654657408706580929882099414178044254138208956138509744078666497172666063307646453581411765233437158713162020802522821652963110243130172535086202452671378007423202532352604748640698146345411856759972143251166494844274893590017128887338086796757290239059624170921763900772650364874620781238390728146133678280464432975594317645188966362641045443186529270208945449999280153846983757649439452519872228969832322877551682134301752481130801353003038379861888413806347328611723517543582340559455587654630207188783971838254042448366858614708522251862211926369324731248009136039020751560407818315602958066053363984527983423138335629712774319564932107211439432809176648206688337831059456156482696419211114572180795824254491798652231465294045187997464923152918470553452773885213314458367410262363631804814580106598593017601137819351160042280147249560134381817082140316411823955640971768460055139756539229872338898438364769629576373282724132177420925556890410983122103145154285324260675640062680260688782471563015014431160184174340336645163624755509538383931635647367435213130753307756088280598055047207665474736728140221541239746486479552414300394393918623981519735255899335899626899879730610081376813743862141356453287147279270412106027514411344817972961616857182515471045474416407148564438731809681749793944854306136306208794221121663388780919908692050512831256898279137264114727041630216185656981837195415331175848941598804604275640959856472657995692970706198626982084039775620253204533390504124734350819186541030108009924789864392325410294669538749901406474212452023775199383875512014399029107455263797321217480366358957770052350543529116781501378504380415162758186990346140318525249918657081839493893703280594074140712397253193689530906576818602759179858694012800099853074032405239727436808627412926595874231384190063436122034122780069639257342381035725425160761897689319550911451536891671670969768658702194276153177207289975070583044019143034404866248807988628136989697902822088332829369124755274720326731553448192394808288034271500133532027586224755317367540215610734795724982961135233329312647215118941301587295173913909978836350985915180254108376753582457268556455408603689367344507111519085683763713037584267193734596500283121362231553386819029063083695753165309533228317311837221347769335143009455763488380147641788717150825937298850419827227704925852673577999797070752360443826707026441425476736676535811769443159854089178808005593424733178487699121732461893031532529554365968312273093178277742886400611381786099812561063036248168682850432354096711857580392046762619150613285758956215080866490138005963078064137745963935385904409707864883556727198735782274416543849316319634398290002984329961012552391313047822063562498698964215223388499247571526850780110075902972630407951611958244748147699470991476244432223658618129803703045580774100516054638782703900908438252912147731451152235774648173769262620347123324814636666190094508711312284527555543105561109904166324453777186511271505487686681234733860318767061977287730095490702047061232388982554774308390325613803946322291165396166772826340619972559426084059740465330847894255525278290105782632798150384662390383034815361927473321814033080446762878487107037098149480803219266244975737297174397850522843112014754114479020414601349198021173145413594221058017831028746802746643925267598549827856801990505767772985897900569418486007524901220899265831419908526981570454654357076335306896112552679642351280101289375515823147234301248326240274627869436693918523054191961191805743905426901171667010163120084831194077388716262332742483079628010625886780212639330079902323064896894492333138924449778687429140565162731462600242963653717119302221976826755803575337751912480972483686799242998169110484146488828192293614244218736499516502532211000583555888844728789966592447702758269084239143425779810822975526417495342226422944115014721902493011981511413309340371471852484597826454190744426488896727988638445592113750288017336810712088176352253913583760337531116280245456961497622308533058807582361478671510659771098012512317677182481917036886366233223448334854404618244341018867725076125235616450763862606354452231241829923143919197067292108227392139899555120627464472415506022279889998672566100916637772338624737253209952125732414052820442747870573122996694947436569249130886860149454421837428739872210915014752702545272242562065903896143700243048702804200924501329083668580067888377671230958502371530569923718838706700677473619915844536313513801503175619152144114348986619854178235734082015164871585857889761957059883634331694531036252019877630129373544884845266592399289081190858004078098049820124597438585084289782078675693918328646774099381441697679120506149564191043046705362106138539501558150766325867591347288613909865919153110790307861083693762000296890516750386630832467718979375029473852971374016832727610137136271763830981520234135064779216620130149137977992371437479156683823936930784377989805276990263372633730318713700868099776384060854324899861694058622832532255038109709784693518705851447079511923850777946981594313001752420191102411118094357116198674830985298873440164419129654799501384333124459575134553487207919830453140116037477108772683114466447225024853172499179025432246392644634549162513252800576537253722215880965484005171256093950773498926703667926056175362154344667235819761030714031065630850571654114790059465212239243378124309043458293881468951270617133611006185076740711195357914085447984228701703435369298682797872363467361146995018975974427797564659075915034690208245798416383883934205942968744121213639786533653918658020187327430143023051746759467121506066904790728748088325791796123452450386013406557638812299713195047973041080017071091238155645271385271170217718603854182967068929043108448525456665248723363452686752089536057677052986717171830610284263913554667761034061823421833298143185038860510439521698904520537680253874451878858501749074237406156243446752014956952589653993458956598425473370961392502878984220849815598152537317543181719159370606893004057819806911882134148533065571682555484627170936333431549932006365305982664649724607149362974932057137006595667101272551475985398484567160842347127324255337826408623074832752831498906611641964542881999886497419401857638957883668931209275881331080166196277089251060572097254895825112245373715448785124564062817071242497583597027422465299241484439010906272861393599254749228604632102608393737821845851610601257258186085344905275715374284624711720832510203398339040085714317516776819419995174896250697108000393777864737653680821958494970797567639346505683841679715166543963664272245834230720053797924908354785618098968274132165298515389863919394105063142174963928648463706795926246065220221294267089590590327729549403298383174587937505916319207162345283773061666062587534060900989090602173431811956339452313424282389344648431253100408515068534539033428380676186291008773915019686075600688511625876877237149069979778432472625261949938165520535117892313149756694019710479011027189664373452027560078341100032087233494146348587991584877506424100849534613924582994474500217554384076038501039755173260792065863399131951143352581281593064630094153950662114867245925750350126296452059103060915421712910907920116829319999593047119612456828002045169482096491309265674014135832580566948807520495446756347222896123315214429843575442771200660262037908881870581832339696000347074434782035816132234731062277155677684054088167203981759870107034225157994752570175060524599570382448004027472895279371479466635870876269255591492338171677230334306495088237755962052526683901796405770600204649641995463570340950881473942619222791144222352125512340158944989505638950296636226961267239237280263559199135211353541004307612960912107820780955760681207182759050452898960277151245938078758138784126852443980100372812038949594018772738251999913090112862179604806102119447902859020752959711801252839169055682937713624582953380503069227109240918478268407073755290660044451687285963282141361580113721683068247381666252890722299981534867349066197130209689446193433636932254691654486281501821906443006247933758181638174357008933753791469252637629902799861107500218955883740935079297376075616828199677681603808312400153812578391316944138550296079261875429040782449426049668140972132620703721193331454964771581738246089377246192599554410885202541172359396469849612079996044128456514425795482634364765972781242771244240730543338437002311310388663876763873827788341378398366030452119936823236013460608703717636144409249965739040589652581242302576271203237073187080051577474646613457446136154866117481127402836453943256230155704007267457783065124439285944445667972866456870639708469608374455040924860642113534994640251281055426103581025961194907412188905997616515147010122587809033296188216191214306741604438402571159519114809545731074553284514051289250225252761268406220421526410744210967094772019565576208754286135433637567217327653677826332390022173563579662576382709532682766813132302145575985622574653923222948546838848047655508782315967051387708062574487289438692600455188624501627328919578235116749030040102307919697465061987380720795845586282819968586989515751982569476409143628276095324282072988340227723409585766760455172727460335578277152924800006485302787951514446852964127754655422088905580260245372870981689744723047483220257229137402980317736962690006333536340535683231285147646435675594589642204767400418098737283953877430682287072186736066791240262846809566716708065145902394311153930275478130243121566038740734559967219091286502719918330017519029257040245936249111873096853167406840655836534826624067823208051197862205496875955521638617264405475599915217976991049663463882258417010810122647589690130722757796009941264882059841595417350717042462010578077344244470891991562040198949485634975822652942984463568413802059914228794121402799664403330912204383003433212979171231372361265492332058424375155557338643842687368185070505165762468464970691434813378433269958972669554782954962771194913447497107605136179064923498406754621332151722683538077364691393640782983109720108194613314561007183183370534805216535139807549994442916790281075528581925927631146598180052496799220273175468290805826224476615271349491606169124409126678382715818051629495915681752736953077183687615667981230150616482804599816019865216173959882597943438953158333616595986397445825793154872195596237956157364760832426516314020064016093659382125740935254893100447283626110310100143358443535739044061050430910853628091557452079430042049954447972101080702020841643648288034748859432280862546042659752900788542299209586160662500979025582270639902873041232089377221178700241040559421214055618192570180857058684461010566979733022209282023396038431696898272905701525885684460727480393781324297562315052469933376376408401532466826271312256635325747718823497145308094357552192152498243873782134827034774285091998599447815031444604695966061358209340818504374993560531721822995436441602012401156598810043923889018450693103788394385355064118238843607630214909428803301111397110878627678913721886549381958228725118828453593517215632430360852130427736517834219058961369542664641843401900448561237289833329244927097080316423209670016317567704622836849079942545477227384480904819419323890938498389755249102572157576810961156742840460084656942760119083483980467860463797170555858245315391936038492766066150590133757956073488625322331474467462734930325723158095215163572338823832123940253993120663617925107139776354348061781330493399676758876028422401280135136061960570055504117535776827984612678241579745272938306143042892223860918468821426451762820788139204583036930961536074996030796271600033393524017168210545012038055846245015778250920692935585329376044834630342999248844458261963188536668431924136841353667078526146762044008886621040142441489067916085980557303549521624076844865868287967229025677411927344600798343788858625482872149472861814543890024707409776390911584247020720676825240240972026357161659538668554969948819811437941134062257032413635483014793010714561336571579850697153537711258926297907815476273091373961400952159856735965638135148942403161505772482961443793229606014687405402809574707217066014019617570764986313598092604739481585223916411189447037875796364680787959649306529298887668011745516741884845612063440648496444259996619335749905452803959517629413583092557095659392376716691267881632015239461026583600680283642194731528361488734134275434694496283113270957656816363707888673556733956738172308389312328259360341645020915910689944322720345925987754204851772198419179062329124125239200697411683621411906658557020489417522369782203444587111305294131831722621847427232680263726044212149027202833253367022451440368889035563259060959169946657623670690580080517369282889414649730754086640075261380820289972237859718266313754919877091439726182827623324112101760284440943167521514412719044405166899511648426623194130291861321165338299591117471379355604642074752693414338046491906189005588043126803616356571718324676941869447462403104691378595531671084237958411175546720599184133586343332425820454149288577147196158891334488051287903355933967534860976898574172801637539113522333597179118911332134474580561256312222103911347623208907420404732149662145549519655236558904346368162299528544374448698272904425179123028527565352435001244764379115922183173047777447353057462196647533803902534427350629880861363707165871813028547671275393316918116999874439830946030347515789417918050682058635658261959364851254219287970271779249276305083876683931221687934475303537662155609903533284388861456256877439976605384577001751257506628633609715374860062064815203578064357003754867527681227974034097417567952389614421633351158907861856967406683719639333528311933771065849995651701251435749178315188696724324542722846963073928712518730422891308499857326833967691189273539839213289101586379143602614705351534224644603000094932984723185526006034369573361352467808844070612632801894949656108837574775592072735071233637147818723414998325180619413121926917296524438702412097675826055108791577198237374084026094124957852683184086024894428885323285884801818012488961549458334604381178633860177153496298869693486421345516183682158393160449549558676363604075731748129746673076256266034528555063478465283774738414232489811028235559868768771922320338781446209589656902762067476483873814764115106226422599323280213148686016498558899709442748128390146286836292983985647841964156721765460443380685664598324081217282056763975870941475932491951477330172483434166308151368165820079335368946967883382636936628373645646950846988266185638966404233404973471873528477009025920869833544495808920757414045111729677460200691940562020402721839821296582714312319011248549638017400738545532568252567441520689626578797312295056369376674312161090077269641586975713766332308417561556512570236056863939578461470899069272988557400340408833639700522327961569053243122225232102884770639120911389828416383757088548724444847669954778677793195396250650942472625575829199123824612115363722173552387571646986019752829987112422048878504167003276606396408321254022162918748868906281367855145396866612516520779113071834355065678812273125733509771535627288744301582103111563637715701622912868326042407602563818982696519077949502378880689554221644158781421476911734319313332051239583584943866957207063855384455201486792008203759838654904363797855454285525942372812183700768624349459522808620126717732284649759087057285043408004135313819818801707717318007130447319936281985066066334659763540865546418590330507875221873893301414586778678320377847615922954908849304244360661516666530107803521642200979181915703774069583627400204855824697006923865669460192072859899917236555591377245007668829378584546580270632250846856381018452382647447763819996625189970854114511909890220223607705078748772222853229538754579390974535372965003477495557926708506680028653420245044466890735923697350960556823596280517937513807537057791279732250934618592786381532086727592918885490108230856220782345431093903447642206212374235388915438629805552339802516422042133075778614643317389907137956376167879327737192545488349234844178894832447061910337268389467640020998618564151789725445693115947467604122838310730351091318944752785641735790572496848410873831564988664304624161437826381124531438414127728988897928104046606273716829853738862076746227668452617005342885018457079454052240613863040980534051822223245019138166785262892501677640135778218515020445574040867622289637109715439332439291564770568684754961789224351947308680399975778854048382472914914578030834128352855324765113466922134782980437322470852373464259530656577528566417369295400230650499274091852374374192307887866958465232429789441431279571522664540993028977730795321989160710364503195894493669824567145601480637473367107711945587303821745303824613495457316724989520499013664156342649816907610655265961653897100254386767174843162159405968957258758812843564467661223366597613691420156889814503495850161917233709500925603847599142573216514282096167571828623378150051082665656822439093677337952369245900502509864510030943910942739604799162959600322477276530871639034349636623540055217761107103232807949681681810079516794826318058365260957079759018836798339523497079834464883139903915086952010900016902572177878264469304360919554066646500732821425076988672533518347995344438749068779987400707374219998281829374286302048501064337700498510685268231733926438677247451079145398384622033984595274024432439118710431378947843607857259555570718820406811178015724996310409223283352485037162945950695345710817750383578886763217970698417643160002429197759820050623178507414007920438084631494348048694106677737550602393115188652262313910970220942175778615021135809586481853668819232185455951423468834848583838475829904418324933754489837384455648194283156346647906138724558403778769472892115816086009970976360649740052992022982257906000335996265273502338838348894226369835333764911160239582194034461760207289123804600828675515434643255016792819048406865607598610972565368466186779083625613361754970072993826332013294327093174785589281032266173185638738280160612490040597751006348175872497772906108368873917487343037425483018716447230255973035281746063033704930109071423100045899403774112581058047710519056223519739608202425471168337430883948088693740179779947417571272977884842253916366977172390911083281993883598964037530541675289277992681742707458071286259197217104329565245441915844722664937091409962533067714383683799085109681216111747085063945025473685624631741497280176710406065286544045548000968319146715602233897821205688164932990220289968852550007360487680088709851018999249758268881342994850700935751516144855764378659545151183270763009607135021478731086070740659355786469273317525291946284819938972684383777069532025705625546239157679501968215393206926549545955325340833421458829542892870665515690599015382763309169331181526871593360317414947233400769783435144336689962701618469953053637373199698217013644914262993546861325997773371108998289255311946206180666662442937845873267360707530761986459001220312236905884574119510546134072377549280358860923772376540143168193000513582215713550944287418854422511481591174477387599538084990153148715373219013255065850039412762281525050348306217796363868202542594150049398474079229952867310568254261516080401902215300899933670630631773234683449103176764456582665875952015425898419683171946960883458308396670272565100246020776231123569009411009463835600902140083814205336436610675573762305225737481431034665228331618150210725739860552986247128939411859451132984567609769037011774376100341824953703185849215777404415460399275739810191929065920966760576420067792438196751542069072133923463433200597364594251063856937481228414626966411586562309471288753415665024932327317432059943670744925897605677342756083870244824672717932498664401051930978542558031324750148318834405953421122863856127137947622463730421248584553600340317832794096018308882379334890362175260246967567994746367946960032710099635551431590458529707855355786996987395099861044122128992590080030645506161180405504435822691488730047553793385545385310800099277800080849990014651786130492053540090409317642076913343567976694929509718221277474324095721599849091455420056743030929930785141514315897988665671525287358719019078689180658688185109058542403077398402404433395419035423934407985285460109475369510827286908005228645360007859319579010308526334933685271579525133031245614364219295225786308835898938938716619722867711329110909224786439932070395350842800103098152884147321358181599599111942034552507421884401987802336317030456684938010950004360658298744101447297426731794757057354785754903304940290520595605287744459713908416627353993036308506318462855368415275772810424661845207834120670993904961094367617771148805281404884514047241773153854717711527158636814106772969678215915664997712870574060237903093209157475269368394851161989268260798608341349276394027948329165530431010916519825277621495165580608809204960007786327283476608637607161249507157779571657728898949615294408787954431535111019658759740417599900205026444996610177452018103210676814632617790409837057652340487568170030208467518508495339031167918837309874869433137213322118507053310210724723972376282826572212583797179242494396375981389934770245211507258887580374785690529472208778366028228368230929231293698035092309631005243733664717648371160723824930170073544482357194890642851707644717400095114234508456669858636981114151550810059115851912388098661915717733827813350693722865119787350810728334776141510827820152169852873106833829756890078502623113293871194760025076630283065154618882759391533661911779882033767021529958697183782220976959973952083303543365818805501976108746685193333504763176644327591010588451519503474040937741006489534185474547078178234315449943344040422844367600148444989240804665155397722627810625038025270490053647930597280320706282452893529234512792971446751401416251341186339930780623260806414081918164863664206406558737490211782921787841560293782153712284336433884258974209369285787119896917176508397351773882536886699177924611136224031451646121598696280864539392187538400495712533640586296060138162645765076864672799383706763753013056085430975711422299043283958910151255696812422157845226253562450938647175060054298722181503147358705339412973036218860549685508784280571122016155059359209275371930231010130745872370203442194779740253904215507900291891677743228900322641417935108294590826639689426148901011359138262300413326957380711360386976841660155479468673225027390010065856763432621886831251105739475302777736744649608566941768685212121595586338899053781996660523744042522158190222089205895766093928632978493083792158333262222847620364385064728144906657205986588434128447786558762978634119916042823584845716960573583419178301629920455574215652737844799069921554289638882226448146518800232807329185516661812442784402001688082054746047240198332203006207753691109934083876987880076460160018026861181199688636537320002929729309249681347753706738725490244830916523887992812017806704627916946205492600978047686791968524707313438657504847830211432418496151298279771255224798019367570449272101977609440847490954362518138430350905699887729583684779628613357536630782810094133771290016211454926579379468732372482037396600874547992619698636634911929373988798116843022978100720401307361041162585454712662371877736597430462646301413133647591850302432066866591813774915408750931252690221500127324850418888121151425766293100830811488025082263145626823193868696410777193494688375788905310608914215606080915581143058230005181501186790271284392200032199683517918913908000074398114885778240034880933132814597106522434231597558227495162482007121029560895156034982736231429855032840921173483268607576816201272659597796163528925101748495921193674685719568487223955481448054048320070147169101358428923982582586451530112101821559870959372302607572126416064369014776465186758570598557502065078201367343316785637835190333722303210165324002693162753449535740175314955336531116819333386355564779802576858037969862732962310125947313850308121673755563896777348442449617605097990073817491246776576048404009676572488962056534413832807657585574816104400798527086128435274112870104435506015330055224182401371065032703803931448181128090841510490731508092554456386561705912165516766294642030725629889027393315813094161746411497424038949985897981705369761478382188625093714032899521461066504093748445991572255872622035983691214074181025613129448432514023029088978247770100350834384374279620945281868156602920598048974641801943250125836559282805088417796301376439138915749770844095494425026633261087234565909497719946297140639176914007938933164326620642485154059856486172956034270632764662841601407125910979909528379692252465665207225805408206345882949547905783765870191691271877727303560675970704999434409180452339417958484815226394335707583513928303116332668320547850879625818395471979786973175693948604280737554012483632092763315168013991310014504989444251810369864546790034637296277642283765581170257484156063152666069878276798683303372788680945427556371881148607320320205544258576790325751587979627107679696644114246621143664979948574704096389473184042726837275389880876550273152892495661557298038815876983070171377061119283698916454134851043770605592465854019539736634525065687153860069117045975607935578409851815645650768829314711962440900978319626467807405583707237150126947578608471789660359048567945154919807266666146761353064591936201590932631322866183336617838788852875645462459237637843091716550232870687407033952073708938917490858569969025168911108997104556535968873099711708439267580629406253174158865453230784546711143572883734228630480401829394034458666550803356356427856863077284750867547258262545892197939625824559230286645863092305972260579032434152875897660451329415923827706460898201680627485602641877049881366200889582150593538370514457781742166138715136776506449682249237589018023299608808919456728472409055250133164958268962222493007586300158462611090832004161066765215569311824563132873079838086897547506809630025771095647560495203039005726303668214125794182377062328348441915302831630815688427143350537382938676367538978778468875851117516739613992348889272589439523682033763849407770594634077204994399611833633228637392929595252562347491104262448236281088835128032230709433646892545570428608482114410231746223447008177167992362185295808383262628409401973919544866174200727187398183832228728420832172472974210725119440899481790292860764803686582169491839613992885880392323714567981342462986715974438832361035371514432541509995295205267804669331268689201958151764483557544402809414644897043679694576660432998681845553288230587063607977572614932849309709924727637805920154249027882887558659933646531663029474858306690180178442925180007874234605006293549481179157967130554540634044016606662099020722854465158246471282737009814455776886498285079990130130281748682649808586458120042120741670089777695290657699259379813958766243343189971125147382633855157130570089237873872656433243085325522405985391486806462041938385699089978271041312805246303887132844665026977014977744460575292284176700187443777943159484693726049021594526415874154113662817941438666438138524073696225606992610043287734558960615808905014231329573631875096743921056500947998893506504575319888931189726213977013849490863115638866477754964189561327298288179398518715445150525273105937622827272286628192779299749730723195923184158934143829845435510386058261254133171751285599056805024141914628969654010866457393168304316437507289094688913646524908244623877163989027756728987531204154745011510123666846633319899252015546722369481295393026399798695686988535461188944174119242204311151466731807868256433660919807012602331414106339701409534726240322740405685090430650792982317457752335083397263457890721195125878791311854516270007020525936299360177124892130440114194834828380796060315546792706342569381890661706323390820232868767462591680738165855300961014772013768060535678184515927552425828218906336792393931829174858976055312193131422028914531160677908586841705877904331261845034931159946654032930362681412996024385259446905020157826523531461135670895395395675098662517033256163034021802456865448616396299861104068854490845456736055371834932300426020827269532985289543494451577540513872721534351568049459602209530588067030154304806621009712475715666654113553448454392202175211800266360480434185726067263066797956576538196867232318039862845216157900633421697521459644400399122239809069149998409898032812803393264063856695582488581115976605693581292276271791653986395649774449141964534290615724684916273499383874801515468761484471009564718183123823336792711143567458897265403839525245604640155582517150962738024412375601837075205931197954455437828543591528897132413048355052548583843745509851121196648425758565517494228616840527519255086788979717210476109669168298004965842943037072064820574327222183091860556038632624775622859438292460662086094684530489803799450556045156052958740614429291484329221091930671732351312568071695804237446920355199208204468992689573619839525567939280353307498825296154919271969778603509957513076067180124163616387885010466923858434225397754341878381483494774751009275763827747641836155914795104954479886464179479032141997918115068269250204371176698486276491396517652876111104017275425972751455555657661907557765772810363749477045677454671030408128479666036713505322947178896439064653540371239046569730064166096732440378506591915198781981621438295228623522327610835527774247857081058005023522551184788163693243494271132108658146640349673694012440452956716787351404789367112757957602595905478087527339520079871787774629383322513279669623776114677152888715713869360635267869343726724378178674008790039488119033676247850254977543387659862094083059177336133308348333061366246205935621448268112835787742755654052894769984818888016004513601643864078567403763089394937109082144355314087137338850013991658141359232496763874180285533319239868339100497990435363145787352580093593031991486978752192580488618733897602326745641640199449864699704841349168810738382756601521949584551615266447504525389129972928997338916551130172852223111810475736339170520328611781165935017063463728395578396363812466627174352536324106025567611325745421146760666712942095267252034959987398980561559804024219586580241353338281690553511859326700373526122667260098289751296531579362451350283890286151762226546217349247769601385921799076368903077473947428105846402562761951639483407120174261440750831541393761025047632886469907591480645858107959466388555899311019756359339836048202037605896614300947284697489348409149318531898206524870250159334220909335875871046143425828839468344541949525724854471025984443761479334906558183222100830536539385503226518204846443273735447558505693224037253961549699624433276540311229552491365290074382047076627923196999977659777840241571055675514512725515811818040109974666361939126220289898338154806907232393897792232759559904920425164310587640730063810460733559445280802054905150815469817276701358530384533258107392814125266419887465788441980982603780431018349715456668059991221174160320139499642911659127230263732899203697575515976823432808138486541087839274912145389245126142810514051358277078738730334797942485328557135141918748935339600755934869029848819437006373555316530778428277472524763781966931881762788214744117351580096605449115858937686524249532797625458223487699772991201908582362612773793844143896417251548888960649174881921700601363417785714035200938548689578035615586003570030542834171640922488915710462977721660108375689283815057500111328573059031937322099937120729633554322186539791940545315366408925554327516077699907030627193422484703279268505448316211714439138963861051119230390856833054119747188441974771737158784963852981693656853005863556499806799465762166510501485414551080191501980129163584150261079659055836001810377957601396565356291726044525631437185494240438857929043563871698210683230301482527341565183169064621888029756087687588908827355889748912111666213729696256030033228829721862040687366157938899219608377769601819523302369022665402074103243394792017808367835587406851291923588761225934618741566932128667711893431805009862867000904744233952546107824286728529362912265685959147105929653737502643791245233304691013599453781163512150661187490544663904145537590594594221873811347759376469640726690724874662395922527331332164817117953138114938410054993402821269715635389916322259184804436459820412246042398281005760854830104435330405993824064040385330219135750394998594981179874492016231554676181789855023461900108410686916550080224895764890836700466258997750671279335089882961062030721488619535211133983435039230804536957191338408804684341640298596880232088529698289854769675678620707679287774854421780272382047341541988764933457149083794324558967567744865792796435410708591162552913697196361249066097112952244538564104123039625019459291260847861324848305570658012653285832878244058976480962609861073961081002267478173779899471017239791713043526295090958734445148106980066594525986618287919921707653499895304213939941053547039174455398402260261520602184512300289822835867592329715020727271845326337689190979063595030687905262696922775290812460738004856348387446705043532202264479251741677162650491136332870870925177255953574625406174551764925410877594284942188219434449898613716038472035848600354531909571808324813641187279724448745352753803454877188828580233890745227650398691980924730335596970423580340838048326736667870865246628463231086429676623897338385537948504660656197042438748795945077577939283204579766597048616338834056106776957698400956956092487660659505722948811499638965638457146984046980499938599185743960775015165701140989633851964081903533925286679350596791658076585173176461622881757321924296592487185656200039951344710493063452241268701681899254391811475359589615894296129122686968126139440337969866064173939022149604342429315118334752774298394338954211675240738057654116349222147550218822741054158201455876726169867503231331204633928481601966215607179359406018667389922346797804092821347351070149936896706677527415600225450153844135539661834595977747119902713292310179992010341670473205296096994823482167725449517538210904193963134739239213590940933855252712592735171866877155945804412096033922008772456118969988819878638983857196535171359422474849389138931067735934802344195452428463908434460076294095391575350902622296131113924840335776451510998737755279386793014436089496815353833212152212269361382460162805658450783642889750770014671448071284945497052997058268803395602433341682711986530377356278329758922792894212906442449352552098019155131738691544203848804136974537341365230510192947899155848637737600746544072825369234088516601500870622227992639879905970766958484677474800167674312243655753808042746080396430924081426349119805783587527581491422230562833840038636352887093302395273433831375909704872252939081480031406496155451758544798227787064845468484567914661787206543104441006466208092719398494520879423055679649428155615051844020347344965099641593557006138534876792519052204150926813683366136274959671641745621913042405996792637545198894649119091177636798946218902025226141965978489909380011274363361399670369814819376320809178152331214231082771379757750615990887192010072529565221249631446478681411607267593073528510236678269338456956216744522245587778305969419658849850377613309337795925413680070486584806275189653593262947758535488415854904238478128747783921770265579229127197908576431947881133157232206276226812967913595285487377279990517074211620314206408341186988650994761267126293647996829603081517167386551212177584978832109575810932260577211943113670175349567748669837835338386348330725045172094391576028082289966034152043540507556800021776211778548249577053965089284790583384470416328264879295025996316800814958961521062382017915990997191115876461108684008936793850229988316870513714644488396574905175290563492222729131733569997532290588901450360432468865833029090516668425503220605762592973488769296525329241942588727555322953916786871136522180733438267955299598065992905733954911346576414369012430999924392486901460786967023385282570817342248160308372289309594801454759449748855637305817890615127447078509229993288599031984699654057620612872045543430514125238505991015191986988934476293825280324023941292790599266921302250449079087354378626525952325820630214074716387661262569893480454350422314617329224695707925963101277868389768470378296100988067855122665346847110090520058493056565161532948309918569746302441866529106902458138270317610388543851979181053633338235382251709443015177866478061223309542218158843577310828326021146176489503640021879317030546312582808702553950390122961764378126771033715276165737526954969319626623516435061125450140210405901100841543106190940217224444228356137572730609468605162863783069656798211193820939298813247646120619632726018522449596864107187204232411304414513359824641332751256769984926308533727412200850756514984949948481089587514149679099405124590897842400644233609061415740572005644754919292159010081347303376410497240165745094924131435555281364894004155438775733210861327990247430760753338089378433956736195168307773801613384559012440526245628895263387518210414403559842098345416807723466508481970277671148402650841109435362450905901303087217446075056499148358207192597951209894951951060633165006290217862448033796769325413049729370908657533604587340606151540540517297145544775165073959594620815745788010031097695989376679317128114570568103410529827549939736082757551898060450008099561150057130425768096971791517337205160968860733590283569676740528425559658751966242589499782380849848305663398607950241613186761506544999859116494821914749773397815095520114645683240475035401579638511752095572459615409096005016763494864097941519172719881437389827402146569339077787817011485159036914579476457333464525762245970232959046116786458805445748029509667733782014937089958500966129873328220833552714894141397953682248906223811576326500984482284597746563987360534412400822763467954954717636986681703468737793074555321040500045853190463348025984435115068402386965168996217806220842365736003744159796845852906572188376805615864898237862485566644681678774287618927636376778026255269239880997195447517326514317171689578960182581695305007519445735275272360351444506484014599346978466466232381748004452035299496866540605954448030259218160567411293307189292334758937551399522970605045930790874220513071169081588696472806540253415182440707359684237623259417881511795232567775916766205022043155727122096095920316497980143385739754094863389784034201167421377229163208716730022679955369506719730274473682518113637054852070951749269456435254110854366893432273242848396520056226528066376270720436142652795320441174616315611289924540562148623756096764133340444765821037388434814443948594911205755019725356556068354947429067980644967680509432483722746115548336847881254529883151646784807216730684307597623181190492850798474628807280966974908089066617509400089991382952840094491583109780101143874549823331328796758979291807451585648477992556842142089787171061642535160487636886734657488859845140278335657572860041457833254769910284499274912744346920528144673266043315075732048218366352029625365687311856676095414856386380011759154474638488102777320961232958003045531043293639820730623210819719536453720474832296566732471998232924999803946972044350579647820276264752106056568343073307002531774484263136631331568378959755296193125367088674029581743407666839518137770437320137330325365421411813349360013872495096405956998284114492155967115892605707418889482836959709840291699771673740697499751805117514633445690620579572180951554072639363184640509881769081479320801987079756175534487170470628829526592855689532276794366847932604647492735905930804461733205628213955017161434554463560066285572018288708678843067428700095794170940011366649827765849598698461685182873056360257615477987384903428541711620753493484015039282450338827422140994571656778822095487045207656182253827000762474837313097644102332407121821006542663722803546168708739297699374365211428847074388870083736772398609768673815229979025138324278633816605973027919131874658792925610136779770799746521050700302438687362981813544633665326569003084995420465888547554023317225045213425210348450626043041169966519058335013650955380199749671790781871492460376900503794148890312627411987422641560125079422313870165021253777424753111368602115586894188040985327407974382617456251151941316065001765477300491253486002673065729090773981288644508893154634741217172009304930136153527188896552548931504667738979111812399392016454359370542090062821763082954869976484367972510107659005354743455145066142663367026279749224694771330502792848870109043484300595489342219562766295955946384015694867558924568533851867239860379193928076270698708117339220468388526140923570971058734088257806533486884543721483104792610656371063279742028162138420689172303869382341009181245484894909326201011536495499861160967194921041004307415960415445447825970086314387349947259875225929205237022303915034232709781258641561383403554710257201220887172235699219432117990232059426512404459622420142414707292761832424983015224312521015124520559093659110312839615641429845797748704289272866057058442224771772561841034932747062292887805045736726424692378868655948793443064353266363382053363213850902632491751419798471321521648438463454056472487341759680582939625393958369135800812021657305751616078549993448297328140359887687857765923341891527230907928618263993619315720236414237982058172601183261139759326887155758335845126935336754644456845087729242158817228074801143004924839916540082012816971975360938317640317287643255572466503601982148471717297242346001525810616292224201904996014345823780129391869507352490133300389233718153415839455328922419202210862150537743612751801672286392879509325433916353053637048467089389013125244005579913835895299587537628335470490636612250584195632353525139066117309378477594068315047581038486009857690634182798561626564806739547227740592138192885470294216366078119441333515958356069348957635878464624482724080889536891661963526166683865396674520287567234769795158380980196010693201074456727509663060216749014537599009339217922068460510229612104009095952060840261364105033674168789924011743510803137035235418838419556657534025472046800414478785624087849537712293648752546628571817902968823248810865234446083957875934621713550466287197263201241597119937684246810886120847585085475752073878646120789939579787217308299947758755474068096974379283799880291779925124100296248247502141489439418871849221880443382137144052450662550332671315132004081717766225589700623457783258852685864854139618161106248172172109880625417994960743307846089753855167024317123760855112892193630130997359291571043826004217126201546560701975296989714727797314001728790793355251206757405789303233698751730964127667956959052131878078858515109957781167457794895723187146964025545070554763722863431205471493168523107810170983464750263289924030104731015849241085076618271267270937035044855337069503418157587290086033683626579315774330539998095713989098932343951259965824352239206924490259184722867374220320909191013381335839372033446277144697198796824715538827567196471348707825073232467756755637832970540872702872811584240182453535248926222236825171239458770226896488457623828090500705894997574038436600031282744993293153157117809769185514163838274329752513640592743026446277123318970601146151709063533862078029651677026871544598367431410061695449826984414751110598302996656273661773264902318172173996514167760969194304773545322355559744293018855544636763685080237611929081733140100459999566730981518398783815687051670209927656946841615784550909098765482059041435199806866945587149532092058489429776135481025302633992253101045552493582544315735007525107024179752846593094978999658220145853305393249694149508859448466706239931609321409978119176012456671222916032959459467339051357958774803758984362416314178771739087573901944544797505628000732918628270126666709704724288903277585219178189206633708686913427241175788315346219627395240695468333506498982493795333618688456321445266609962217177165462299786096966529524822240621862888445301906721620816441456364205184395637998434536005815418046248106030685689583615220191509882110233160590947734272928675633747890453937610478511144867411056873975553124744991351511196164798148686934263209770766562660642583775282632356946027531515103722507484685385408073438495690564740082970203302791208326402124735253615637763337326238970636915092204734387663437095171895999612328355533391672886459888006055855624503101469920680968396436080334905887218102128655157815368597141207352804836871214218545454160909321823294441289969159665922757265254392863733253921664339207923646594331778104756270097142961138035624034820787495830357166418900622480879336044329517847195703506616221642204799831195100012948473448773126347502098980484616904441399708390532466090825053661859102795494057612764757696392644860732985201499572240479252904432655852020738274049992103807711663612473190323426316667841488177999070687051675236307947295311124192623615469957756408552239842180962890384839366720977736045050479002523000617001640811800128004771415431366969025884055029619580080013849562971398617525717686193256427753107392267138510069285330115717286584576068591502507200205710716893372406910699911886269209377616343622467604994423608647054668575735948795284690855657740832878097444364586299175791904931493349815232346622409475219267193853857791819117869520307714571112655742876208972390932906391365126262632483445503246705010674918660591819472322692251352988116922073496454160603730843371964732255229800256280910369184676474983379394424180170676439031351141873045057918815172310468952857177322079360372064666796310808188330026330514534254425405010193875400023173423327484169673919113925280089859863944622883772070296919911046234555518082514750700154471380842429634473435319299914715851234218277094498016476436855758018704588010011714981184045610491688409514842524583685569746114193774839084248936548763297417876517026903546513224943121629413126237148675420608521526514145434462311154231074848736623078821149634988356693647773449469461492924049489085070601353514754401875652426173096574452131516481946836753369178054334797432421985238478885261203875313273997031799450846713076007213821889716206807772890379239652151485974060565703904572754601350294806208241213812499100837326123281528448337694932438637946691910943328400978942778429208977432799430580248816448292937500186492214721400431166006182147278609525450792839013093127143749432276800653602805565946496081368153884493136135816573956863460827943271576030024598684931526293753264837777487926688377445064619463776124780906169616651964339539503180425604414194076545781658038403874385484586399773833627295585518670938364178990562815643476814814541154471974497245652042838509852590946246428089387876793092107903987939882571235115697068038946411306445015465411543010337886093651382269081356912203736299493521963789018190969709801198146515920274196814980176688562318797631917286169237828757932871354736458828653945378997364316548073651318562774946987331894385479264559730820102615267503922923881246361922466628192443071522590869060859605951095025097210104081924111128409668590883809146886061891884072403252626553518823249736802850921204649025700605158515547451228753517744556416012975130077711422195981345493366235403286739716674730016192147932569625123496039630282385399133560879307717995899508991638300396567036957496918438752972962317658014623945085771632297172403228850484694348965678598094461808055560614807899452362511477759340064030466290582367527195082067922146094037595549882101301592849392408318583877338978229787990106725030758912072598255085431383572235679190247440595088012618842010331416027641417975094506872223456971843358215885684831424775885924198703218021335640532484670581976756704810905658947062377117954076174245306014805285115559766041717356251853478553440819045109030846352020120040567096492216381652411160617394014390537629514967685523605451168771250022462035295311963246296263401384225251854758912440703581030434183306136947688061025533990198455471451197436078420762988907244080643700302533883557602486949857379935827260516441865788737760357151143153627221833687012809738013645155993399842343111516489298554152645708517345924537153181162143292248618247089324834004011857288944275084464939578910941924586794821906203484084087562634326103260038941839623171602801954604583844024842912578847740450355245423962431169901885741948095247360135562073647173506097165287440528690945512024265258603707784539774118297797944332575301346936273622747242098121318172006699130100356297830108957967050387983742084407690017747274536003303891555654405340674342627027781220217352322990562005174251552596152245160667990503637955240614892937486351929684155158755629851066738599970587006749571757458096585916991300972788917457015494114033209660277759682633316935107199620968235324810598725128988913681164732193414590110025455389432186671553806388405013720205998347206836482103677543133624553301042865183819741375722987760095326160357842211212091881443823050062320212067439204771153662834333456439030124769976811313386474686225132789365762242693264711257941919519330987244056085036069132788046827347841187908735076012884803571435390599776690879681234910395501055755660813536409063575733408948389472978316778531992497414024970525620079193320240755982689536496188175210746723093688755977572942304553052031436668845914176887447487251060923930768272687136046245647862038142898515686796018803633086942778112438890393900679449324084956076172662397589082717294147939049412377221691229313020896820051410349120879646628855376638412156648044773060372584090314571602323166048592935842168865116972868970371050939596408111744075162578760341623654010099510880628557297004041069778282828375539081582559545932388009094426835172730473980195074273753578619580342521202858265457681082498254762914839427949095492998294134121803048405119559940045620194316574898565973045526471110001615258106537771274877575361759867584416237494407712601459734039824715515102010207814791716116656626077070880177712050343720923729811588704482690071926633529191684014077375217264527325926982902623085370171530166743441117272769317919062279021310677000495342462149816508724779535412202862689997005737483110557552183556024032686867080647271555624872146270741871002586328214875853483784313747037563176499567962831768817261994310417292384588854425224382255224633493058209498171333107766292313075189998465463253079019569897119334950127258179694558177436173097216335188896325868011088108470917232921443227117345961880846305918244253693810626022846845312521165415148540997415544923886472603214091624384691981554902994306795974490847227077648017965424873401574948659969201453268162660147977089015889956491705349962432563751716336676588522078881441614296366559156186682849846603023569772344519293480206076452397608356807290049219495471845455363490906477963965090212430468209785224216724897178124745255811536958987850549189414725714320091103010074587805205961831194229878053589273774565311423196633831885803609680165283545764944532494255116176829082380571489498849260220183924975555674894332646180261827116331927838882114746601318389589854304346271941680236869190638556023546904009077619280965177151269152947024037735946470782777273538462294738932299033282462462513878969548801447967488813322306846131930770517245594256127226750905654048047805822411334323287777610588689557010924496745583242161667077186849804191524097578272897189477234518344408069789187141009992333875010875016259574418814535131480324487203828739806337309997212683969405023712315826184737815649295188617462381607098868006477728276709688297126649202824775269014046428927375168552677485511833994556941270380148637587089212843233098380765402022175397909870059290308224272226905678974089619649933083323378228456261043271766856443689962200427265909827612290921068938457829353538570363509990414142747545798125927252725890589336187705029463388885065033934167777637287939375068632222709948145899394089247042592780933956526774894982664167184933180572696623017521889070219197929217788844749859384025559673144033025307019253704094372653806182247893547671174644984600384682839934071081206000345357016458476095648520766810562154333141112965140516067391424624775223206035592136652402099849323758818617098138412902121941712319880078955845358248582268989338277245483018321254308995357964947628382686969407671943923347899851636489760521401502427933374111656022435817252586877093855644095590381970291789971558488735617994379954837322308738538510331167427264676706460484672659401287722235933603375096956965035092457902794330740558284589065451922853872125125899166380846801778407827591216998966210605800998926928211860997664748602706715955333814225399957785727837645582067345400818375801089743274630414296537838169167228197874656879307032912512065058910850110425709189432757355539038533616054899031078559500664109971669242891893374902827724536401594464014976025366074801259227887343256460069525796577661525870248268111522166090272053469324518801749988049470591624348609842768845884414749826551828982383911384947544182949868448181668955634263783049202173859155450206570965599838395476081365548862506715125656602541102584333784811910131928645204326860234351622459996991573095738338731462747224329458400539072744002297600030315175725674672253787801889577497239496883504986274730220823111377649421268005534047007608514520016835286012760844875566325686793956583006404414258550054350885155114284594686577180715983198241236905957083262677728215700053994211773926119119999164047140018744529120635477057274367971438350218172806339528882631786786042977084682362254462423574067795497536957640756724528360563986128298296234204080376836161665709326326778870136597490018016490763920359662150154990813603668865103521813323145652838176818919269539049940008690933473803217656079371425061256051435123704290200130606371797919804556627177198661532803952896463959110492830650870045998329109397442393948581906631096240459532200953613658752940519799070272537255270458438053649462215518359260645931093811831661866118075717825633953881928356259441813189802553138158037371621550949270786304509406575601113526971664320668040808235108419609472347184604843264114519990178664694883556457814804514647600526735031496322558299212306052749791277539939502415150099612301367073694491351644957547282269988746225693434001190775328735702444128468725547090581326741051861058547716175829381195303038812598118275787469287727805521449804903308371876031459920983769145012489414983074056357442847047150048630278496765886119449172840842960345237777811850580881307442173315350575145249407491729271610562374338960488192844701227517956205454732852414833610108846442488831837856095597672310229184270034520433571901262200721133091091304395942337063968600098645396770891329343869568288298242433584693486193178389235550203482456584584867272993004684675964857657548385047922040572563766603675806546516388776187215393203179903252185057365474768245929081121651421568704215215056089751184346908269965377116142442131373782806886656849790219000556062012601522314687204299462674662219777388556881280337584809427432879920322057156809246274129341477194863683988387281730434338624573869364754043089348188348901862306667060900208943883318496310617517552465180594650122023335907381003767440502503875843127552430571309235516445698138053691884082480357639480114449213139504199926532967794252233225460266394446436701199559670583667373521796996476606961747363036866214291616811815255925157708243203956035668567443287013226434621743342465969060369238901867216806216170657423512685255742484894695448864427387436690422123761288742867766627900376767541973976121320664482161940665552530264928649213544556867589920412237263335772339553470284291988139835888635283585130795175361770147518877903075666080764059883452400824500045670336251162245867349125212355342310423253241320360047416411689480996704236557289828125200278511143955214633007471508160819827140556342938867314018982787213931500189987394699160761494155587085105868554800830767941646907364008233740692201618714070992460095128879433211655527025419976596896984942410487186376951950982403882280166783634964273045119004597936994064389331272541329731319168456946539223206425527418554276751274949954258035388761076962023144518275226272925414294858048163296343810668306611256260881036838215914716251625580134310642154238985505194293691873796039934178031483493373211340117992342479150687536519289402332052608373843335459736646166439708080456445526804132664902715552015823096122590089525407272096421307991612204996366549320604510122675670561047291631336169814855981477186676377541286475145613967518561066433383666688754510844247704653266340570575972746221643872769853289240273338758681325719077783292382411923266456768145250919914143704280534460511594667314868407885603837295418861897894113055387907827546873863016404407717884597134595195650034892064661735716101723586971794032109094515649676278777806234056700126694113658272774368055856276305818007060653193040045546392266687260484945626096814010812350789818348463936440802718801864803545172908385243564620543832745345395562662856518870773471724012871387694608162198239280818718401556274756870941409469955933609526026237344780468782258637770610939601608154765706460719496347932174301743067146756492722076645135362876625739562278083973646536642508682594191859813969140072566781575565928940981367705037578200584961938000223841958287250160271270149355147766196472139597744845281017195054611674586032121560692671321256944970536271116500435104098591346588276573418134052555351042924183801993948005611353387135870991680540884334205160659812355981781810818482929127210761583928807237962679870879843977058385930911622126004282571438667276836179309398705951752598665765142081503674265338102209914467573964485839900016084118783710582783516435962606889981931961826152408033844895999324890790317005601015264125353730027525113763456726647414848809318040204920559901143608392736055056853310877382868130971729096367747750472325467072722374461059595323726574198787321751789283018597464819011863660758018192518256648317663428358197154444010434676060554703214737543471131756295540112841796196456537669865370063447746835706477513965560570033290811484857375851450135455325254570510338465460853431143746015573364153096332953321189582850177213260701375375024506872448683953052200629134807537504731981289733126982622330420053982433130183998905321650405508329561994204987060006072652515139918337018360473117338209381802666550603342495715317305361491774514370070228496556300741167957414738358814579506915883086089961593630611661528005283593208652289332842148278733070037974950793920739302037211301983094876032671696925301073756530889446147002702827532881329137599184733721914974786328823918027975078262125998014707807830546272359612137456298531814938751377506673349937556797510157725515524459183054744521241810812171906623114377192207244437845281444080435930922561692040771416833840791280165046526478621330011533652157751028407436049761094021390057643593747079730840909435997999770790009315745941783518984587786408092420391395851412295505486621912707895097811663316188295497689582992122221827511617044474289842004967711602839311024744565435805855278695335700309443705703161944707994667133026475262517416021411188165933546231055170875788147384186020787802792690009562512530810341415085416752733535325992497186661134813511450568868623591451864942892581100574679883128124656312110195641689955105285117536568273920147827382450302962758522645739802709448511796358656209475988120025903460458319865828526975974521390932524825990148229876340388348118985060913534246793137325908730985515768201283027746941708763123599152317501311528005459967225040251387460854024243865162092485041384181327076316536052925557703055795600578135869513785761995298119551109578134004575981017836132636442097443098153258105266439183283576808362047234762606412571621383186094528553650422839277021566857185785207341243127527953478328899073306588320633856859354439172236478173687828037010323695708419120971801161111359582351502220131278645573806571772900050557915201366134902782519633804141138789740562082769019627230431704993233349040701828513153103845493028932035433542498768110256323262972886685533024438503736142855483098171220866950155962768006691881632903185094970546282465349976331574699868330805549549668034509784750021891271206345718211715270264685633636995237437118235347098888391707398736934710590246988778783391369234844438592741300806672229054564750917683500862081017934378774288684248094482692773896137063972424609931069837671150873213130815321362135891784788395829674512010790662347373490047496949121500457292728260850998120574917727013099109957889650112972558229435524649340804971063239005421126902413103510340516157812791693990347429954270891114489796057112772665148483687720330867120254899837338558029695226704134693592267671862007691563292382820543981641857412118037796863426706182682551878885371997476431037535390187502790124767473342956626432711634847731517449415652393308853662131561560430055333633626751925799722097126909971499681185163348865032265082567145567875324594369761158482939432437694291800807546574826458967612648708338030345888117301792805248418528418633733112070428547463671061136002116835668931208010171228626230604857148161522655939752599399677045005622998196280306182694603343087363937344406644226890745709015765975883139252866483676586090371821918865140769323413363300705511077562385105783407943566950291423692163890071738681636277110906232861417028066975688897706333927869420545359850176737394769690163521761474436301117565581656093020500123271006021846356282789546964105142584871183384132044228330563184178047423267099394141586036984059879241258237354140225753026913616293346598528318115302184199097415797905265466117951489843076930852841966396023292970944946169587472432203216458612275524104175397775683586310735376180064478993688290596625692173705547244721137805350761552554085689414144261954412087414194320945886563705398366421151638988050079275287173081401325901292360705512068652258700434772462990958635430044207408725510528301481274918415140180785038229571410049540918191690804772056530626115038397573970153386438639107289831718314974844642147608795553658564498271428860580027287662374246936962862716353582269855063104787212989860897909643582814559974862845668953615671702226344356165827967840314276638192077800104000631657391544244746982381755175088900538231266123010997819070919819794016145580423929211759842667292340466398939714706617856357424513055359288883940545586412773441559464966510929976683809530700142762264500636747383523488631314468632137764801109368393299482306947620777224020300598856497503478581098248953608011112675300678824976030228267184507681278742609898897426379762304530889128098376494475963927865147709872781838882899714639768098555437796194478479619913934138367955730505641514075576527912544992986982977320014859459566014787987242963489273677706210004253097056901283267450524818404981700838121219399190562518026668142723741782655423307202741607222632663992271358791683752152695088702469900862174936187366846205585337815148829764851145978348383836491441328430870170445940045260580621874300927006297537219005756557606420765866841620798212224885016001741064371622093223421518559292961640896242934812843359874900083855853580668145884941348786283444749985682068739871915967022710609166981855088302240609613471717504695392575593370347919644611826262073028010101534732542027722478668030384187752811464389240768650663982354691581146107250482993816528863741184084406622136700356247049551071433377652550375970453782056775436913661727895181228676807959072014238508220138670218562974970197756317117357348818763960018931510682642657115130820697491305086013286472876524319407700927415387943089289037892126309410234701955165660606430105261052503543891576295073313360971589018418060780005793778684728169926726142207825249733904980936448437093329525688198445773916332253690542700479409044598576021628235163128666491130103060000991444721758947955052710258357544593066208563361136448644059330723010051410496547417942963832128217226860088167140509982929071721283429762268180606070465090513085097750386992248284136637632665954510550871486115262300843910257648104997085225480030328921632281655424909208257479475459901018631153394814128913885357147634236117051696835089931817157406719959896211929943483449907746220940349501673780481857816605887291215192982107397613550279386763624396056965739838008434452956287267061934720254107499965318633504279343266058062791799138301532479579192725822312532504731508031865506997903109317382594049901216271207570657952931362923694538424788352998569979473314278227090466249109103394808115665674991559198588812102702211450028182392504444595628887013718176303827304482633092399071264259542457827097956605583927227546009766384176173069898115238252937513068730529656591239885453727433371213182454116958501268648828771455352544314114665981022919654333045122399271158367168075820731984423015841428727239793924738985133791489747101506367761729327024341041571562308582191566529784630609962350223296978913579330926711277260684641951037672274115817299216476630198344525479131987184587303897890834555602621952155074870808896750617870114388821113178915042064352849589518546391189809324642464039977680874221472334808690015080349108089009776996124973390757703134235580934719542593926981548082108531486291238282712363483842501913663601271647939707634217596020797276384950661019838396039605092114673204313170593315656830539762693671569895878576440074803662290342249001275462161164530476221293263328394156662380471515357046132311417983206324623316130842691266210051168925131365003257043844586792282914456612276337996962120210597471967727678562996995397907916410848830358084126935923356588901031729429935353044545480102249785082536641718836411817217290268053139983549834959123568821730599601264759816399194450044804068507716742140788622554107830656470195778530362715386483594950440877237704261877530721482341146877910437151503204570952091807331755106158370663628368483061938422741797386133438082013896677393571664917114054307045719103810737453896783477564862906142791463030404636096296556552552934115281656207493600452724672842181402035898134680806489670551034627258705964984375544336483984372237211065802026244267202636062866151826343925437756799201115073113070217282837036686061161784142266960736787616617812796468026188206751873044310159464700499677567877708337067616813183042833346194479317752495739031875534960496573082403713371655160232742079751762752785625516303837081451210930350640962332300996864107133797327518362683284277344953499075643794182022023176106964324543213061095825414577096161650978480476763914459448002902195527033449713680776471495782922817156665709976677751476958217681900063201312329785220281389338059086391855358647881476838491510517363184187277331936384619011389104756434888310542465314889608024125629111490790240010001526373139482337253210506634437124625413339050724574543418215532793594438054607261323783468100808432708673961046719380201022333391487593042224833928261644345540939134657695801516505302740034045499518812502088925112542864499180831879588629354355543031712087303880238283655305764071716231954041085924694731931209953736909337857893762020983624102111658947723175807563328740079584815965681310120571259771812604772635612195451555922505088422623253737125350547289867960547759985785102811724885248511960645120862302357920147469900788695296746906449544926006928021744286456412049695677300151521961435442155646733314391664916766732353149148063448254702619220234523860049983232713044510472206499422686804713450517109311006014101274908973426003290760588000313422625705967126795142015803705520290726833215179561789569445863918245038637349555502034335401333363172877427738002711962565268318695497534743101896224850334678184751676663848813340877205485833924378727817087798463066330503638258527326209861348843732110646217378443279820529215656179606128095855018748169030292545249810225440975226363084143210822780507251817699806488487870603984519427061259078870445959137570603874424899571304464719625841326877459002255194768123872357028507364798813077069043522528603249547677597741009394991172730112928370773750992538692003549388976318094754705875557992285260277537171428030696682419224356108031352156845170070456201984022901774120561408326467405734940415747671484911976586352243948173891077279009128735111451235246276024964326172698164896776698641275467764681401216399862650884088675416452392865440545198175460514473593011465110651999952790540221011005236497011285138778826704498359031054587534587796782661232762920102619555667104688540150176373942154658071704100160077574909896820253642057463791749661672062575017799269885383116888200187500154754217609842427512336286681535029389628927977221046660206744723717388958138404542199712541544374255836502449170681851025683639344230057233738135596759591929486877706322972599262527366540066673218826205606182882921425659252475928095460010580648692337209978716577097389523832356911292341719358621619336264464065000070931907807997228072843154276174993976266402445894694105185385100370695663444275452683661057907525546896534304852786755410226098211019463509018022714518640589759193408872849128972669892614270427679920255303006646192969533939928624554424887477933319895552997608195869649946119919148686923932236862958199245367925591999655696569494006086078180778040543491640403132134329483936319373231608371224543975398567369414066139261455965432997727435858742580454982707531277187709390405444453934661302342207882796901433418683989345965518897986154686965557544173925318395787546492048775505475612554313680989451032864354691148635304144379594312447465865184428403030544459072015040482872303893994849957231648792856291210538354389194790881876627687338050861638393169046531560122756773309877788157577021802607564392342309397923532727047314792346476856522657604222753513828619687661940129953144022974163825210163714667303966243707216823051278951275020319561817650393607861476404217498931976110939155875857091953601146954266385668687324002105664032393694683344605016475321026120570507923808625933224305790210819377471838201708049365347588568146619022228279557871242630490221970071263361413899044761521939725319584334029597818249094596604210497935816141811984217831626398547785171847457384833978734716452401622654092485051075253724935996094168103593858541566542416186352531370667052466160583670643965837853408943519083132599835044895608664377771377623853793655488162232184435673556725184250041958178812999595193391431486217045798353294654031771228745486297633517533737563338547594866022781711519503693691447997252414534519494119166598809347639007006416825508498530703393722071123940062755051514529078825715857435604670362406585915487114158534055664620562307812059748576301262874631990524001956633071426108977019883599860339695222600699049521439629875816690345090518343888866323000487871447588547009797513168401591045069039389168246649684920916449193925543310528991603597673327324493495586874635427709353260650609665458528176101019023647685786511547479713738142819956412862718159853736594207087614529100971964416065659651525828976720126076534631434284120046463275161635752516637429167067005913569718415752694545059024279897533264032162366430406269165316391659298738083352070596366212143094121124122615044654811395193050820411746148431300096948480161486232440489822361375899738814816673595748138156217180825466661514674396282456152326071650210783151289805934130245189959408673113987624405334410677672710143029400202767674695797299471249703246976551437603971298525759209759116635244824273121446700036427890567932096000999004780708978791214926908411883970116732536751944475019768130427933286800496703441196275933172554730797365559123595047004411008688712501267847965926312523331772614637063731857216812234474105139061220874978695018705040496994778466874920688313831571952400373368643409352810755088461055371314881949450714241718954736045554478395880703036788779304637887464293731955825060891248975122717628407675493922710243544259406003421809460832425442734209493534456530358276670983271685912992820221121805483824192817300724497678863460227927860941648834660062582372849058453307948432074932842292432398827586248978587199240224647604504235801377949010466846901646036888639325715383012095433404571429426465589687568665858521012271927635020962458964802162880711917107294507510843883986132990478644412308455828776014107314719011564681560782668646455937103187998574091458497790780941378732747319156809919712906614650316253117843419300205942293059319738630838274267633165883231797053350871785998923349563954808145846197019678935877253241450212250290293816152999407135032707765914468333351405349453832817516957520893424633932868914158642556382906234418122968948878940323607748140719316304152320985377039715744164744194760462322078632614247699587938800674204006215153579333231938578073196957021775730884480070992024997805089086623185583248415682412586415268778629849986268443364704665201091537430225833368641602400078870003348820996844931942215488914243076025786384356986360989468168523419018709255459407155745108739993186585173385604674007224351963547128093297462181551293160140135901848930472197756578350123112818820481690816500667703832563237179852514526085424143696175706245823242027338073967796740808405344757690752852917648078283245667315118210682751591829614702290896117836958930280202838253223723827875127266964448495952937877902596545525555380154206837583765095035596556940530288340798828606229258968170438945864636215588320589845734271937663028081321085573210691208589664893154676186369603289052647945105187125264101110127653778692367680508494871231651176100115327538350949008979419028466879936671388608627652913286721319275580166259040157404296562432438225143406954282850929524878234620021105727934967079124728883499571340247464137712279887623670878896460274950433249904782768265688106669288340552401354759539831430622839400577951501334170204386875226696372871910811528940793171961847535526595585622889026949332534058499478711972957479881464342856353768946264490223167308839493362443592635934830290725429021493846249718130480737247238479205481388107840158640469746833652218270345097131983066230312256315847941246777984342521136196139183565396581269702669418442685724195056627613793198777958416801705523455923391846655816991825254745580078270033397974458313996831661046398528952045090387121040512848320819162331349712185015921290912488660291671446670838652653716606375625330667183413369363215451892179710180804772781366904428224588100280846326865377467217620101016738768303245660726743701982573418372301150498913502089938066584667789648434835033488591617844514205035598047972314783924028711708237997326045114039437943295566997831127107845003231056199542857628436564341902409297371782334057876659343040966088963545842578722813255222712371164843057923711348491089250259173487816641505642217299373539664555256024647570922986728241541684710834709329772651575264345169804502119974325548452654026999942067823288775838892355645736965483322615215616119540943580035907172653908594210770704331302301237016921946908860608000473687851475650882046209785802819984853732813513325561388274880655166150968221084964746430987937578990046177800240796449265852288579990897413503594611062100037308317236936744324709468523321431875797329362462117034475629952222718678089364195292180795544516696430173306208581836441937863868119756757020474574330307887734874397263954070092165227902574789772045458085331009890990143251419106579588911486947073929122995608098750512494417154552525605388858721049793849150308617518618902885569601825336427036162197378064969853331684910567511245226920735642506460679347568725153142349999468065815843404656974409089312059377821057204476372490895252404564004724137793770294773931615207157170107891651321073547443673020499416252027268683671751916924295509874177706711158838249550861369253603402068387417849352657143538411774628122065374569096292511686953343087154376685070117923978016442259991130238098546558004534053545703621109941189494776091473258884875317815906661815329635408748519624363390159365521865869756210436631678594744475967841005689016323069620390412544342809204866736538788919860833884174709504976313276903843094935046396852176807269126034627513737246013184740542303751984557730808915265743324546879692029022061087456011569100779601319420875926805222175973319870493028379827806737048520807522509586725089547711435968350392547542727401904758168250987144275828736253743962773960308590786184172143005879262073581001588982023078795875104241162088562030967135223085503974514377538948557613235097617943080143612288272679848617873710500290569030333826433387384537408408555326188954347289098637537377564614449632625568342246935821353365629600186888640768130699054174177000908471646964755736231381139176971566638479170738547743855372035661437964039785670125010684075326211980260073683824230403863870176799109089718069759695394073327542003398325231607249922249995921833949345949231317304239232645038382736544383636160424439208307020395914085399545890699683987652767699636122869206064734535561247283122086231547460835391819861007429110563656880623533321510169214774981058969083965888717201983821511095076023876577162417758883157606381823538470579574796933269225326392993001832935197429333423371215038832161137805187586333199453948794474278006900478347234113020536749056830044990052463129915563106957535256822061633083851311523863505220573032650829486222578171866962958007141494492734166365858549274026530041250936697138182615166740861645145767828035867074716913226272169011824573950269888966947524470968276785284039523496223652441910423248795744462900283200559303053626575496818525193549826911386251215794739840115574870545889392039031798842104553429859187798830764547996718869775494303165076291077411386020716337576557195243219159953739326292388274924120080728101578977647938275855240302923685878423104198703327010158532355405275672144871160316674275053596930205304151154253984758980136637961547743495899675812708450039151438210378227288147351473405491217799700730977334278954639349895710276532622065090039940632233713190147523224333964413470091293711855943342829928053009111130230090498108462265725745206692270048116869532839384299749540188801385849404692777341874239228729876475303927165451946474819545224221245072056172256501834036232566791705380802817293236269347780442337241110037857269939258544831926237761391844008184430143301072316916062890300633474848703744563330226160674739062806798547601894988397833252828062715856928902669300766487608171337208894808744740117551432749037227200412873640028845657773488181944086475543676453795798513033345863537981752508560014073871575929009145197511771013691670086225235295772243311923002943336337421594992532437697247663152339545731886322322228928722849016215346476207618602399028447860077141971218957977026331199512362505305223863310088085566857663343056218907223254282534242661619488057994017476397553194485838435634976972285709845873068425609942833467944725426055165467752592321432807244039905240568256301544481264278117207319037548429732677378884995715517893930230571614734773671569026181691696758836365439679755143219423647884837176453989315039082135756549967211873895483662030171413785388959083646096648743423897055030664906604069057174454139630716853634646700551682809147156012013439164500930067542060814474431611916052460170905955476249868323682684261349796491969500076140863117974895368623519070251579037472685682128377576114426303483162218741546854470818927639270822425730874791047325357823707268555006834361020961947723863532224450292470587151694334449813986297685592936524784137421604050139181703861458293412495054408915541275086499782905760155979789383569431712847824925850942021674952886805038349018338648717157573576660104341082313680396711673188605665640871422161942382883507055670232810987527139533174687230825361744542250181732936213210503409396926137515441958745852380593650484781602648699513434948247712333673842501078700111249325726768763436172309599687780900258290973622515914350175407973781305930514802246008724259900064373933106334572942381511804410639256884094261019917816058506713459781119005463761040868321676206807268909165996197968041610963491322779247736543222270786245279436589661685290977426634962424870382837159166664803082343361641047448968433500132065588196979962686837508350346782506914938172545864893734632497284686257368447043529789135828497674928991217011790698518060413347268732808810515455471746994841897241931192425752436527366586342579476343608740939643149653402441211175041364454980772465043875833029104246721029344353228888989422892553094249615990499977794075751631948442740550637493603854449871048114553039580774061608670570694685723993901210854722078322642929759672160715435068626763055658814902732025856299197459613942883915127265901361600641090327506711726958360655024408684300169755361222367459998776925164412840752782669133334130139127150898331432673118643159097108132252131938130448265067373750943790626966868676467254963096707924528455775391739895226858736577792832372703289077767657729584369356159504543277603703945921287458220120343550026542692897107294303684352278301276904416171481623015607174694396218443164062432558207716416988918516757681051276752391172774445590165235138350735652362302714190327765709967905845740342178775046492043106961758885835020724945303868153650203150151933487115781536121714371137169382825474487507740032422893385274410137785964914695024851091956219078909069286466221472646048069000542425131022922678230672418405350479546976302070188535426257416766114322724729097713409609567331097731223258303607163821940874903770545201554722720294969519851146321497093502947369588176743773215335093499502398240560636910367167090690208374665956815878098126284514793557778598160723140106126706942727396810606050955013113457495911813818616190578574693097376122350913145255671146062165806835527837221440064212407981811557103424498204309343403662483974454722543655376842074548120802947022443953031041881783305212897659193907916775035981443235091946279053277817276406478258761622196128260359022528550768855958544232690087729029842483112774623153294045544936039537797518795541848843982448752493088092717879132072229864338181695922979631947026060614974211761512557629762397645350215957028597452387362085836172826941129846720154526090591668840168852172539754401318670782874349057881829878919808286568063565094803925079905914075187939346871530769218927612344220281815210584754220664861075183439144012134912466168999395775017707521288488468595033561134099238629099277582613247364770274682539601217030562159448776208525229237724244891115054467663056691996974057349342655308543460156453107102031601255335874521312103466758761565092749042136732719820002743885085056932530248548242136232507500244469118856912892402547585954612168713010728550818544159717654749384144274317782459034800794175101789738897492556499443802297850192077959627343424693217419184038965269955730630303712090627295147120518667606129458763848860812642653755416962290122809144322001133192766764520098412612577489722497356116950259714754432819708783307119581331021533485522870935152700222931650905674548790437291742666736664285490124421580368200421228111881849222955772488959909866214393629181100246154719418602504174154189374197663690767179804898132456883032421588032661766644965613654716517674559443451993881563781321258160577255816534147667980138782015463854963466885558244787335566957187567441158753929659640356264022270350219061593232615657680909123481429781441737951504571533509495964569994264337022642201556287644704361403620701136377237494359566220487761769932923990185957922398435116865427092593384246445277923014807044234355536141651026747723323247792239296324337326304651145630072502516430476788710975255576550028610338944788635258915591830519734087332005090092058064534463670941406078953026733701169523615609060151506274153404133009073159227884173519486368011205638360211736612317676757409543201058435848319043494186951762549673027014992913122586108927391982147220626400389365308833366725388074744390850567682275822466676854907727838470830172696399387934755934945044096486791731109593139477099724829624959202024085231381527402519148767979287447637407278188966493897740116707254070219682165283732355989267402866973188948909493126357447099982681377571460560195757200256026408678852909970757441317795760412980893580381902541999854855023175189123655938429255266674805600312626395920096716629615342250240992721097743094257184946743377402884966397840389024400530202964020092932934891986214495861516557809348401360033118510501029161445475671113737334467000987428529966134343676301418036466241985019173209288581065468876000448388044165078739338465245094262885525867420065574691566558490566940004820863996006212920553883432587253104417650492519442012378002165010590642196569962097664435921030061440069008882951683425350959147548676830072675544707944911284746466272230726702662639758618176269537862343387166115251561610291310955306665203896316264331004006963152280612258156778130081410649055868845113202516048815604458884367911061153070017614318828041060747523566085127188527735009167942399663100437199555985580224296065502579631420719519423461519400119335332129822478619959517603108540977423338663059363109394461899857373094296405951470671464043595019053151263884374202726235841425917922492764837065032047242043380254919181432986953278669589093529987117771378720420312253698016394526607713957443840719448305858648676248558063374332931229095370671740444841456136840358816043083446924207192960725304032053350343250558490995866812211980733235916592394668325870297988516651630506569281505897750801191112379552491695340873415661421852706282475439432668609627532989475728489949307650315089836123813362980118556483878801482137685010486560493969414208846764427576791422794208383556615182496607082704111557294641623066875140660237049863407525065145712300964439882970475028337582766495041461859941704826127769831245477866393921899404045269656949280144286159027713647551916095062843038114060775350815770097866969939413475451189895192357947443950769058187007655394820161475577962910131630970456575040245242567361727108718421839268233379370384794311420476606847302250881498612733650140158047041702262231684399206027619108582814111932878656314612398588636566372275726618686473699091027052698220852940693143169962222267747816683047410318125733461819448257578589583926507861604956364602793436639950562948206367625008122047717170329814149039752482258671206219873783228727739476040321229529297135507756703138070925197374742872211287582213661810331194837275292136455420836789133427802837344454979927932296874642909174978361081130212041760764173869647199739707364459666683186708990786799626113524207519366089519576162603110207488372738910381082836894909812432077451931300273263027814912670101703188367036423153337420757038437369234527203151928828521269979397682617240978996687712233599694285370410796134297041159870977461678058963532857876415542444440921245953557006588957335905927506197202817796744177019816163316333504936519415838399588185211710482827392592694221493401121095564566383103697604367644664882564085266056766164241747121385425371087976746248363556746535937713607693854374249390565500576478979716160184645629484736535084082044595393768086631462692559413793851158038069727729469419865488092065134609194516764414287128933746790170378651254026257968482608276303322898156253799815668630580266296194990902942541790337211416257996824286853283051466649251465130859084018151648543835606678442649893251159026271196912611232484802517725822451122038168369844309756672925068698337830192500834642300648574683073977183384834215553913743965944363130204794242568790069092051447706144221781422123050868431589884448406636580918879798308679185923263443003734096815389541775236570865525849447058598578377619239701570788937914767681747408999867539867445462411029726113622346970992834773309158348533935715856453095448639828919852992830695081249900147460139396757798929019386230514345171953620348829889722220136634756426472304678422442342053953952391267868816617709441666543521693087355703947592161321017879807372001808604106005759741014187448237361561467957274403809005131733719768346776031412612237646128839617529014795878429934811426317315571285501622814704224690959042676533324895684420766521293704718331130768324367304663839348183932621863282619311838910991623525994683592706331210250724662715692815600367164524478557542828499393417341315248717602979330751879010706271104580736731523305304834986466041985238902619489033836626926185162852359480179020716153830059718822470226411717361370366045710036310494917895840699532875684432447189058151027994746698669585861799983888390630231002648346686598729404237201962303303981618472956080958089578224629905410987549219002357766705035212520589823550486134800542384701256192959114050820863590754140247507656398716661071224352940260735666847020055624031316741632303583328619997969366226368090849286203112681039552976507796098823550303606503430547682217886514958787774963169205090042321302445108735603976865179792011949306949720951900080148817915655120525697485141707198808375946153391689524125436387600081729889111599369693689949094126450598966978924476473745565750848015851645720527666190913609264683270737458561523615251646806565786215842915472512814263567633436624378196386164265699407903970816607758475777169131115061962222976853646969057373471186630682171315947646065935856401066528455841565015948042963086627852325074396975210408000039724954432306752083239648233268735818249592176884481723810269449798318530405214706197243097250762646104020928852355036252058749102070626646076443335706150094225457551414988532083847319419482674659943455761092303353212687359446229795851912216372001476846392226025044101937985287387361247150855430786534584748999684215305691979483027045735804584371629445660332556231243137036166407174564859810538954053703864060064659540141298990990877251009583423242116588655041413369066266801223383316879004834990674235680455538802586040402616226956116874793362271541838608376742135659020645623881871935632495195232960715250263576071874590232521449401473311335748794576575062385171893920056022127779852902728808440411801996661520979398263157821752540938174220983744627859654026197075700459337001223335957895392811244884056441909782113499694549261144676124252234878326782802427031492252053098975351199826517229014500035704713089004968346614962294848408005597630886766626808741891004378004866410577291081115266906435100590543950196385446002582242897279288184425122923950743428765584767351777808521249204847867922587356334208212664591538763893754678198105253098861066560928995797279680849636329167110108379073238260571919866682889641729015888077422063172467325772636566009388338431958355809963996496331287855351823766176638078656491132301140484793489195191601293992621167088158344943567403857751887304000080804657477986238927640438697335782363534882065196815175285532913550470739884132047280028885532401490032954857490064669929920036858997446957692952427064067616509187905879498142894044224719726644936353749415794204650013805489110693917069884019209897126264507955690032202840134011613162649411657220834121640815797321689176969519275325284712358875287652508374005054171236134443978924923782408049516024245713541573150943774550313147297344183654094565765731710122609728205424205859025230242041580607144750785621126423355029969278627906790748894020926185316923104050414175666499647345740357743815482939279112234831338892968680906910068633002814556141907922342041652658778499067897965052460533905505307514521636400520144155407383200526267332316748664291836729017203473741210565644804692002268598368120646848921991406713259535165669379303499356065548807803037974213948664343614808098764282494512664118657162267002811198706557219954342928525139265010746695638622553627395630115318715140669567981490078389166016294491990039496620834449179788279856230015940336083247785741092510078580671220105711622197794957081481044425819696276776319065495730767111230340266739593550250899586974290860670979164006803960257231273304132027900122630014295219668469119561313384697598271357517491802716306195070583862571862872482746301244399902922305484293723572824840465438822447518480280920299676203107617340447540245562506024272050237718322546388532201361493117385118219015498075016690065418200542494769397894524623575690585649389705468607323029560494184759687726626051634938212970099576030100976753437641629662519673086235441106167115433756395139647418936332110325551099110475034554441350684654396197431598367076094095311351667220392469768308449813781649162609189049949722659438791717690622096764068114778618117315858090888795035813964731405025150817814629369263674022907626196471189636790866702480489582401137366250106984684976072061928824488087492508889856318926085854705208333347727407185264192266770083659604731126941454137387472403293843074125053928690708880085619892336794039768995709153922759608577890777882358181028796067329879891338322528555191450062992664529398610228879175123164670766597317700588211140090597584196630772350118960256291265255051449248040819428327441857995898791049115444425842688218516453470251296659122447289419982536712146155497879525190182793847990763726385081610172648636629584687099279641568545533932513579555642456422590356579133003229389815037222149611459594839839969018045377240675964927687256061698500768865408494700842965143273194688587147260532114500705997558200316069196591291646547816602910286834406582704648489156717439633927675392849136442811059773316948776726013550646332539892431543026951295627055345009551097467058407793380797124776049118700795630557383673445514413165848330897168295757221863516768577823074656838673807200267315681523161001683137431401061097629867362680126197603679902285081997996546408819998678729362798793097594559606330397719732138230514515565703487118451356597859881249861849710653759875000570649838194186640778892384538620004673650776202104593151654893770369940123677224057535995180445535991505129577704795652156763644263891573059701650927804807019895612523307618590111393910504560327305725792465212652508047404259177744759394991698506396221627361015959523249212252191771976755634545322311409754889589543637723918108677029264890060131725240323138699845685559098640877219773460282534199377963968701157378709689110520087274925089889519948053786606201036462230054102966994020233181434512394858256995767777032698397390698601004592950320093847441366618906872639998085580226853007775787779348371431034602352358207378839007820034539797382682216629488859555927849851853340891797849059495618202293986478054620770410840952356939282509131371750815559897454427988909641412888499161611879651503535439631513087431585147864771158230271881645103485125831169173553567590492066853754455474979420436200979894982611225281394020968972492572334524835775096860592781252402432001433072915020805488785271159127915994417480197670795933300590816408989752473107151472607781357763110110821115772653878273112611239816936044685125577583999813486864774200908046367194698450450723005901216664736091106200023957951729703691039450418833753078405740760500309455330749648351284048751023066502752277473293930841096287353313658139547643516818067661698745871895104716548504533398413902520523463831116046384569161832365973190515032304905956718548178101061635967484701393481380089176392534427410197022911447171461857639138191307331403851918206862804840932997497485067657699238971280364193501438018589548669908786907508747562749479474195969996380939174531659639778171546757047641178521089253409668685343712954744982310854242806413833601936990684583817959910653347056553472477978056617650077132532759857073912426350050601561497857190344278973355707671306693047091951564602923764376547440083940106265128074331272435141640505391542555883349676693773853677605527385601714623287756501815028479586639370084426255027081032592221675309817313647730524893072987364734178160995688995423309783898696367664100663014704447106314020010370405542173166773769649786538719671342796951104121993325455765223307871559577138532815701727954208439974699198784388928490542941062958753023078555352510314232532122740623423726795895498676391496173341312700958977886462705168524166698068613299257442217524966027613146219158492544454714925348679610511865229917544584785659495577404721123753592313658761756996880335520099718285533146042533209402456071461477859310158889246809213066869650763793739185516105648744704613909619851119809882130256853396366304889290690408608808916570254224529307636385924572839133036985418871835841304809767627432222220146318310132156115623018999162247184893937272071146955938965056253618725427888148234354615147201904564059849890747827462105791384538759544293315298836603805221179207796605751450416651003923977478327590765638952727217793665373314606477402450740395873683481502863811601500321338464343882322584535356945835127218961520771539449537111627585182531461641237276292021588352509097517673975728254539673520509679677623266068268689759862830686060420782274936519812767404473591446587107055142820805744936998635873602685031262234135371419020380953470042229654648669116977004156430470343863148631039285187318194437636066496674292032503258683052301748304900356260466503440338393427358696430887531389063182654395454941185809407725656687026306554019437351224441592586909554279482841098073928399716372028194748178138106874497704508461504692878390008986067709346857368047738423197761293795846296191233634257282711634360990258454237594393334798087872131768321087371810089889560224763350977966691659222702721912997152710713759127907099466643464857651698396266878789025183339399677840818294305468404511843024254217032922834148176768154300982834730752984412403927329627370982166056276042776019643424939279365553337667197351767725225745716981206878739001568042042646655560108425859989941458652487845335025071051770622700840422013881877464159460988492614214575829308942604091895810631687743920321871996492343819538120957285220224279973588091707547742492660985585293755087822292962057465380614720798640880733055932916821180272999861851463785613237153339598374903070614168622438605430899556153750440727008304975623979594530620874899592472882554212376880947343744103035090578421895748895550534062955185969947409404530404173484744289608243870622516997523200542095475696684653035540221938654954361758201412484233123482561829822129893088133516175809893816762934044360344474504234233966912715247253522818317932559813634692777573786244690632150530742115238740095227226003007543496458599542344631906295232077721467474656599988123196152230938617323456515781498387703574404182367977276021959487294720027934550778291777223536992760991362143008839425286157169942387306661683627818532300510259802865303304539119988194457197080832940028590324299486322507162130938511398886080810800540219064413285858607926365136751617751669895459396525318545442908249548286685306368148392202707872708638159132159331219889997641208935168459448259337497752711029664199132775626211932730992546961609478235306829967527904479469239284245324882520923487593833569524262280125673565232244795596946211052942710440788418196020311896589353967102471006810223586218781567394254860271915180745185802891824024971111481503442850931572136896740259794732414055435499088545145174120413313803756254940160338727864264772662683759206308641075999995212172265738343990660799429190460129080156668012877154191193600281171973882066577527011466153681933148027392675161916558906388950074239046733879651325861867238252699466272940654101707744432297530567488315329800319317419672707415249681548192805913809742969035773758531810552793538688611040925546627526859942040413492385723176937565014167796210059073983116742199937389634604579839988431390166963618961020081596810228540931531119590112250225374399715896830834196608742355716247817998712611443649888951631368259407040082118755121658130693965713719483024385688201496534293699891172138847944278402342693480435645024207663396983617902678244230551136684204220819298777989351269115764445695731534093565452426004157697871626020283737600125786975295770616458125348869377745083573900906036554843029839593848846349891507252346589466308178546605753758762390034487692792620817849042303887835518220735345396152175193847961613769274370377617027093312743741975766405813248374146252407855752937733330331690128488610900483747695953832950917329966146054649234537793523322223169555131513856935448789759904893406130804054792179459603984059683610079910694649619000722227683406464494836658701558156501610390661067010501565436450608034103460901961662547566699290906538077325268369124279315552524918290850394430574730457528486007816513931504917503976459041584011453209143089711745764170511790148573996911363204626047635427771705956375739054303096319723632503735318002277368502955490468879807520965284810924390236795684481226722392161319315574007099469258299348643824292300012108254762993840445439811914951507769204304563715165984020391094489837318158345694991887337629727783147307682924800578517771056481877511627406425177406866448490984106005551735164887713598465841760267644516416670970997109324088884310628086096838369623649302159056259620149693387043149582502849305089372089183014441842213939406714364659116992106951112607176825786470001300049690408310576585815071469603587074352065333973362370477886146666887819811875385548676819806099445833237755246927480563468492445515603895639108955608391785499666512813583496456883911897894167828220029593963089351441362720314233437263030563597448975958814299832497821988238809204510219170244308677367709719150777907299513819990641635960601032876022155398143247860417008441730690382937528723362856293159782282872842242227215150802550072384073134852144641054132168138133090511504135202700196426391795504026091555887687715489971333429785802882111132605355500308197504205474252321304569591221499866377287600623453103862000716126801151501787862224474296057093178919891224529699650643469271458781378952799420845943055514962157481948735556645641362373682452192463303940655618481499474508521082282998518623603460455637213389218839501540147401699226436411075290607224861560632150120426375180418367133951847417414276495596757071794265392787995111205640012239548351442409065604407412534536853340968243740043343808937380212716547272524517519734466720952246105280708986201834518303672567998185466686537886506374174957775618434064717800559779660839118261380591375321145905364283036190902794592034686185365278669971747863975038416827386445834588595440592186545819497540563675622270344350769622094375509691866460721490752367063116200417718236429016689861635169156445642469331632777234544712939268622015829168666296356164951546076595343870928798485193264297764419253267226374558194468899256629172049438851495442333281184508722763875656850213851997354229518482456393955328012191249308830519762160267211603634501367093846474976276799036738990578945598009387011327402254148479537893431039371732916524452317368615627687061998476683313357535629162565915172259238407667595403488796094445690556365796865015258917580385265286990337642475584174554664099779471610526855532288415405814242205879187060086972830718818822491859513073458617103145542681615644115953202482207798945223126066732221524889042806280749079393926196132862777406466814814108706353750289087852968203080499283757318131449450560482653470086265844229065604903520410847567383056352935187775642747053327416115656075724049285007796295182968379803717127023201827656316354253005954767588515241155254666914299046137683100261825041901713165237145121899477759538031092418145769312991590627306687534496857592194796652110824938315156843761930745917416794160137863723177529053174981920973740970519883641334056115779130388319014395510377061527955382150519107705387416424983274264295053854460183590864251146841771179035456697165988680167763626819493695708206234228263224261582285862438618097091140771794355102455004929182748734754985544990972879267983125444893346507490454285233480784051453304025657147253634980505279237879973410911553492211783304350080818006009158460947921595448748044855152920477812618316323868516366694976840365418486611485763006333645098653116488374015700304910375593177107050570713861389641088888169572536311431229131663044622738726794438200562214171346657450614490760904700385198368505823838253458642761768383816588051465300230309286078736325096890942744440827279545428685378744301307590258156509514950505725666036346210629197240317794992274897824173086164110001898199449461741512398983634638641955259132677639946868976521172511450729879062875512469527396787331520233497926079811771769142325699827778629997686126161874038789163442694642574083891965092728127206116293651184215527494290616833615537882782878560770281916030713251756091259031440316411187358570389203324110931445635020419155244881204668720654926846439519294164911282325939699312449771572718657666289720946760610562008662996659572204238074877238284174548903809346206908634255460564568464574025407783886221140313410216559638838583613991034064140379349931342080554455935470733603330913756703480224524059006588250604518609162857661717355498082903635881502669109402366600322735606616236522523915835912980004318316745669922641638980765714459536057570184733589428015309162582233161982200823426236284442286489350449060978191719429025545788563605487065461739783733691846533878336265529895482485417977242069352878400550942935048577440335341640772634266373772623558511982128584861905603058521261103675952217841181484596690346305449428933136500770077818147090708255283226462850038573824359617158806945555215388775832148974597644056549392909277237667874896800461726543223873915569673492029034674272601786031242405755716754439346655131683151185577135557498241613144295708432453885500920660910224517736082960134298199485855855416454362912909745960528005743274549545267804559677908025537325917825580474280543117151725649858037537961687450868771669567831628843216300564707340691788874983547015905717353995444516959646694616702935616879461538301171901466805835933163295308031169497929082267738204089971446482739537511448802872521757844551917530907112927665529140164597032260752473075400789570311758483169623554631138185193682650089100735485896831805316756303250153226728675113314597332618023340651774768795473926287180724517368722718046473815345331882230575049868840096122439625267085286172185128565939602354106586748512625402856105576929411091344265804406876394206130667789046643567406006928284782141661441769938136237298047488004583164751003088864132315873722297464307231137945378309407908355993583062930224511455500510848517902283318835576886717595181298472495146617628942029382758048612242747933418541380556351290509222256415281146281435289297796286882885591564234931220222677441632115141111607935786485728363437138095522932926014553760077535572640569782995139752888141751676474930331235958643888444140393341795882202157167863310665293636189483251258326888494239644336744902445800012569791288314706575141485864889430974997669589737531677301453328885095420635282368737872832705534271849675210628336888016448877166056331849758502509778486006551616065832807165922488422532611880859355473519541733878905821599069578425903992964905532165383326810395545014490421676844400327855984031279213911978938510178539870209656599668353261704314239875077140311896995600888927841606613521854227845044248229983333562388911808479245702392761817162863065337896980130332487157567395729311132208419448077003595576084794997634507354947959376812541165718845101505687405624297212869893356352172720247724797995713969449394854346510072305588758284359390304476774952692020012161645515678087846558716016364157202425229101762419759858104687277872624805930985911419319985587491302956772049006011551113506495388701574961299669291355924851376729753089796415710485042509309560171793838646279093565330140773960679354181672813147042584353682783011832613409969444685426066297204790563418011538856156845369018921937046973483936612832974768226323955192781192592521891014055898637765429066338494983812249802305324351853105548151265345347029367752574045599645173713865563762894457489450651624697996631338686826967367793118560728903294614560123361770540246852501195827106536197129851880567345187280369094623553653662651818714471533711677224902855920606407294019398304291622343347242725127377761044942493475876351700828390299135648029418189562029354330222404332895596254572207309053282820046254087645276242353196249655876973013184717387176913659051904488290417368881245406782656618310841830384516758270335582436980199599416902870554818053960372017259987242697042396516388226755688888607294646746005373277142630777097094774690072758993372965053771669098266510177757356493324031384896455083875011164350950143724114107173321942797844514620506031439011454214470057800034053291953193975954053313199455125568426092590282911655648961025803988100672889442507173218761309739128832136227383259284878448557750950305326485173397727127003783859067862829706133146913017363389912190409429961028526754899462744786879133546556287924780591582470873552520133247856466835563738712329797057042792277100584193911704119862767576118076579499397696958415242807886477000972000821969721934404065715642875581981853842444756948542601042291547295198514290692137872985705228268336678254639523338811032029662112333032133469471187561071883583776169043687082925648152361710065133106682817399776028002740791738097910121431090437064659013120491944296913357468390259701386155960268769947747281189705018234911885395258024848282417888986175984673295625621078729639207569200815332698625828751498108740601563705942883638583124364868202998001759006115031098245392661310571771497076536132958552935711219373171932694550055215703087613001501815093928721795889315407059678689783372633464531954161165566227810272630280512802669081757880986754119254061200522401807773474199642487077872200712517384869741922625492182921432389895421696931885022040703080098766160635040715352317189390526309751683866691895573224679451899430642894623341761824215658421303854056585384411096617924119600770839883199943823037369206903602965595628696524272933683735021095352402917615336360688476093297192384352689216949616127361806945218408305377427702037677459319836456815621257758930996107573451189475489038794927921712711864927602094792620779440714361287212712008620256197342304242837278324819029313192369138607102777404808525915272000827220775544333400457883868157373076503255746519526108616413853344223581462081248690157156373338671780464103442675672049756241870004424881106337546156357353912390022570247529559855228606082813235012456634027332527477590992222740587754555446080258002796747959283451303540214180276900292203113478006131819659587016798617861962274274950242929758522471530642828880153435234582542780322653508735723558045560854380397061483409752294434419461548434379375475279757697622746148275858595279599992446146479582408396349764115234834612702709102024554988402009751126451570822832680761011035740656245824960083342958128468308436653943691455379714235745631976447662918177764623008366120349513582011444710463551780202679868208846691578751566622416658597399850711744552732913487117599536007329349202052808152967073355551488634987040716179760419848995661465835447528516952815173081377035894334127937438550472489387242169997691518257929149401846496373558533782024366385362274734945874504684795614863891519910790103123612043556569252520635539082735302976843061578170311143364190638718945592370030676463073972050210299694730641038290105863444469714810788531080168190715566884690245823454005725785702326953293127405972957504276360912336250696711078904161366929443118592432650513294138926717532591198833361730934560370897878868034210856715514877669752213152421921490617032837496582571110288721505137064997345766080778230556391832204862090971778680942053877728473149833593299027568232516785164365249374704690795273016598326001902702096838066585628260883906689099758077616532584440676339634750772684982765914993917433085548059616319560123546902253865192654440404512191553115091406950425900370709231877360525026307387046226404921188364270038745295901954281356864341801160557336175823447653786296233317927444007220250265584354750572947878789174951346274253060758573898058149789751935037466286993155609677722934540783038868655170702688838017784132907337743260861847536284124780597408138788393507647753330167194309587021958956781204695324564272460000800156454489812213691777474366272833600155512752462380744562064950006723825979057210912130790297059524590621001269239858854770608193198552032065681516312338480312328788289771425874345054692950456073983296571662960510546954859876918283817249105155601828969999969906481125637663668812142715564808720893787267602320238704644689724132497885758345360699290783834925152198752463364487052310645886227534259563698213923800214713259725787984149135188390051835531535042110396005522280655238472587748099030433802262290644402721591597787949735224871978287757034510431804122569024239759122272671574097908261110731793190816561491098118927335327379724756890042412153362670634256625304160001734930277451258125367245122075479769516363786294675438211331983059181707929191524732279800585202330028372258483466694693950296372193572106226454191986994210419586933087701214592561508715843960787483607838664083755523381992490556656901381738127424406127304321330499795962270387186057185520947400977593531588208253563803121309837028471006808685928743777919728548958054023372172126119000001045082356200466314917119778939825099068193641552012422055812427892838500229094973816960114268355535490134879195930595043607705995605497647919871360705675792418498037300841467330167907353125971888240712699880308381801080160467216221099695135611252166353854605174601026460166353468806451310941121897836365528623862775672666081731410298265192969395149880526949378646304422559091675557462718528300112641486626165397516109733577118717260787923190577700862123757297677508525883043040785947335854746767534709597118356339256410812869958072626048678630305387253988539745902237049806965095435217449444520074839884272571543241105109822270203969525104568586293259786374866420341060724269616325857534734621119818775194989622366231486747093126872308727053642102525468341031852823321121604480910462028478614913534636588360716541466673995858330310139037318054274063821375317751508703648002572521798425057866779044778067223054760600450866698404967600881565993476017400714554834700438509130645731024032044375113089945415558410932423947910659804476407210984232750266539631457870722399490136723757146372122565976983081897499757228098336610636224633491650153199361654607091880678828290922762362137324424102223035723085917284096541805713599015636113291300722648924506582024191166151371674033547180647381536160594686639444478031585210540678591434656538474253752246631889229392525037730695425693653078559177163092528519253878125071712024526628609733735951934660344620728125681623873136812215267586932819531153776484632185034606597885061721225787259134683840505052128702234487822449886151499356647273006438096041492241171799059327672339296368837117732010207339856007388221687489555031999501966879478812435219535654142501678105396267853277932629855601426406428789151323582510280578008156316833283843538151162299453110759466525827804181516015529768476973986824718549961074987617139865976506004827744472452775611735740265250073372375189069916974353406397203998446889975320655050716683672534724894012927076108174149340683861084174992347103535862428801672868942253707064938300871464583437586397008180148790914673065538216064180704377569921923032559615177129769983265931464372993865445341317141617946804804320188725490980920785851352730765281055871121016656388772636171304248088099648423200639446964293400263117710031839718116515773096522078017144096652836325190994432516740976090172578270416771961001005965177976208916483840052697589439502584888375666771828811758188669113383267191675299740378599911980320844445398528195715707358224792687598291833417735143777261011755672143045226327787424489111429153609638582045697949518745330393693233552703339715459950643815605606256378732682595332614183538127035389703648959930216945173854932792731710839780795922914306424146116868138962627169124651417644928631954375202514299143089018276500391704785393212671962921182841506736165864736178825857050491657162075287640277914427960566147047903951004732418083919351178597021226917473301491632112792517813784726069048042891311102615195336849363877367009186845254883974386975170293887095521969056536466723260656496534607465087905567353255839885548251966823485818910239915761985271845025394433051367622839274342963599042922495640771893557829956845605007229119427763916792900368552252455327410071087993213982242735340719935012072801134510372101947802942049305611849954530248303828807605705411585834568132657204589748332480688051634198866895910048940068722782105269489771537185871074018936461470931577739023887873564055103578830871408742762432609681620176324621460859269436441544412267185376214238210424903456257709992484791453188737017247547797873438026481090817970760557235027885229064072594732260054888152099588590794312235459537988157765943640283897813603420781935100067148795516911332976918524952786421534187022710646521446518831629800370988284349430110343927037038524533073246451852018494995746497013521864997447605262706696122445290322407251168113247028679180167003100484882396943592266941198560537084194148653504787377555967388465569764335575655063738636404094557410349429330978411673949949027254980624533711257866948459438766869995751592901035304295403223616205562507726411165625459189513799103706937599964714102027881061744777260739440531439910149739310460779163544351622547299206922332027928321792907448537574940363594607640473148640855682469782788608270876236181931102605255972465066570902404300792537453383865205042740472597865834444063597221363505586601432689532576755660320313653764363331643741520168016138209906252425757915902457044996745559367788170636831639972924912571316361813918964344430334636578539456244591103363963532607010030733737275554797625429285553667973622874207914988538695110939688841931457838924479023182310100760876784233066206190866640402033991782129216546540944528899294388422698723010605019996176322806725804119382402691675437602956267095273245607500325016939699625177003276059622987640924741150794957212848207770449087976091391766872097362622140103545190587215546837047036597046529874088716598320443928143492431890441501054668555507127589042771628762524898183181063559010186702159695847087790561760246636505773827004225405019050448646853918685374209395707104254586708182943510519342673894938065946013736019245617442059501568534963628704045512118586211086554314883128591588211955026830955354975063061727280033422092918400203661280406387248747304032664749636072882267924725853762106333948995309293237400955643164141805087634620851850773274142323593090174473090541995001798302564174683756915443256250533860134273408333442060485389590265931137711397996598864107596380094587346260627415692261720582544835508734774844062964136030085239417588358203966832507721920901422155227766050159694223233995562234721649017848531081002583896899471094811330871405964086503025042571374742285360165602012306455814054752987182898419439174637653342521299792088270603950980607223310810460701002062795464495260216018751065754982872703255816915539817550172529312628398066513204360425306142481632623466549702109149366578159385279607363529918440237983005721964908207972031489411404262869972884580160545533999984035177392030029873850580806825695726656377698348634925395781486188572316042122370043156517024404540782834838588566119152475615760014851128468926823168463294961197964287406321341641942380597549147490030756113365848236303025845971229494634528873159818298959112097640061375938101895114813842868317922352944357398808643081932304351365926637731793417164244677359752699353181776332822471909964395862719378341447606940593238951315113651500453187685563184212837927959639574057093374316171282251491371051353896121391989469059757507001489987360507404843874619727819751004242598739759288579612169052491140334493256734481012860025272930743219574341514764166669307017615971380325130417403802401434467620581805772062940543661308930226283345795759633180102659197467892143273592579227912666077540201648339916783243073947909570579003625660685490557289041962465351300605217554597865043393179144144255784607807800780944190474407691083583902391495232719537993448079057839144713120297750433316920648929291372431741317373277988463535254548808665373771174110550598365544256937463056338570883750653685967631388891430184364821441477369970630155030807769473957654797948288442062315585112141261529748061682572871764770830212471319496387185946693862280423596696573404971715985462298025922639458096040550466178424015599097780868997924376266062034901500649422400848339977951853488313394066882701365976448228134202196092022750257609334945538825335630345989774359922315255856964674964768152872591323499066691574265485603606753002437720725073050401630348235862084167048994038004851442016993092316089190604336146129110215268349900463111762628495814834150185486353343082542200979214388714432397478657229491665007579576222370698045261112788696201465295804239409385407747853445771136948091894235153713393433604351690356275355251889878104936204343165988970828722476459874776765318498504067988520818456437490771860687318950129236577656894774773501344872908621267836317655798254869357581715132246925890657639878041685181483604212561702553416257410120102897036486695500942611515913918543607223470270091440939756160838381726414265239948547406123827490150257869407298257898751962645133536226992515074535857113492756601347081194070966715642618275969147643736986390693267751980050419643638177729495791091099645335864986041285810993545126661003538606427568656558860517511754857683775736611253320965752565019876530299912722909054432334370180121608232422979255996774709311238056033425462228772318995447801107362002974352780057162087431245307321392133503282922756512244230855973748285318546671923869114743091924511370646859708931014275627082377329866747360450104896140340927681133525454709551475054549703629406909873925891969705384002226614305292542351336297460091243166428865918674610711880933292870030078622845220739343241779768958609993852832879166795208349394849208407510298463734444201614743840768374500616208240690555961018057989587850091319007781547993440272604169821450012286615976351803611603147461782476340327996580956784369999790707202196213837590763626542636803611831009248505493799137831769860416068626767315769416751945987416550428696487556038578739475519890432438498534356039256337708924340092324872938471785477359764698022629256201557802937571141542104502909567805899042192089172912989353294275234941448745656092425780870353275301211083472701436792280540048678300850382845384668247722308890464718293886181887235941041694481091540664352899226023736113693153430957492231159960770773510564861870061004274097678339723057561881042052915538468802433888673827687482313971881363591800300761563194494139920044276205133675382897269233324828223927083533308220059579462760345003843502050291406951266354884066188074348051410639798981744358876850620528440562803574451386865131709501954906193578637366603373069136826444188780669474763175754851785458719058504613034477854695642488115121252462108770899539243599786995754797344008821211667041172037680049185631203496486073851436156318107222330931932926830997624459210510696265879107013686895212992223763702013622165848976653643681909803963466656245952401122583031961884804396970263044601275145229404380941803564358305186360130678439685414646214042084094817786915443360085010207935554412142862608079121861900789865647946219821031254914720582743493061851557482605183430062583772016582179006682650064107846219458079043606304716360017139863231288101541242179050388502543297141137087238048616065253921182131576344667552605120631437592320694633885672704407169063139228922613882717031035305897739402315014400458752283103717998057338832080456938941213883916468630607974321884496896451603188927052067379172463609219786361754852101587870418939620474774294466360018587017791279172890970010181035685919696803224066287674089843305214073470006263547793010364051978952267419517082188935276996820358009214411341715100138777961823748837976615934731497699987434663608574741152256214206266865880943620715413739480729156928604153895883475657430375276428441831760839177456172520265649518249088983390910494628220642896881161373456625800655684221697595041992649853327598095479951514306897201949674644600740986279342456850504605431470907227997448108100086497502586829838718610441409406610780724575618700064871275281971292850394743163592873959677711313181256051237062138723098787464480139100058534056230222220112825771602682364846135951042809471570336880622051369622738139272274172862161878728440747180423277495170948394946506878730504862851986549460944878146186441268561263445882423176492281898478297936113757603855957602530633392779073130667171378311346773047109164754536515560893210957342531126612618260114244578286580453684881006349519636445540644460430282570357877066589280620851321802123895129559347091609232679373738574613273765071596923383505313436200921090129327971671341896578974450995451598010040688952070476714496736799133847604034041703363999665456489352783618176370616488703059575995259406938912572853524647816357461720349974498135145275226675336220631082155615461515160859158397969851751475490146155314283827010827138245958349303756037226961123530447970902105115615851964837446754482372422785386314900077655956115596155815915464963149723071620537332754698969484589166162071417449217855344083888316587977673773569779910229493821546283954003033907281749508001185052131349484410758558589114528591931000497815403122338017439933149475866663459444226039600204432736563067107442639428405186510002790649787623507777529374768503928575380743156887389643310357537777635940769564703610700720146134463831602552302577816265110398237071097540155156742627953266344319911665494866421123651077360891757284003091996594462398528896425917592661244860938733062390405468893041349388633452430132702085144719099010165770338100653832174117726270268612515953215041517244522899495403374977595301703912116591177737617063641015045360528073063621202043689587113154062995832444882489082628150094611413404297984054880101130526532775242618438399104904020056580524633798047380531173693209378005486770290279287848857118123026517974268714349891759343955326305834007994425176714450235877051336433432016734536333234694546861243322538933394045773353894260097983686825559590528260225345314866348171140728114126485477975073809215113261539495460329108794011936846960591805972303611214552819167364589249753634330844644744659581600408291397463101213178470097661494355627553975672161559383469610583925330752347328676314866217029027223744820323345399121211831820582119642209469070015845539154005263920641411359193421018981029093525055228217179782368779745651625648641418575522113693538193600925056655505720681820388729127385553774187269458717756013417502710285217044627784127693559554482628383548349520782025503919665389304917244205333047293802260576190084626540549421767804876898321203434504313913449023005011762138781973030647929912979123367741173875575669077208666445990034832288529047972039087405329071149924693044311308360218494490840743875664072483218036539638728736829082422141739688048548755846723767061283004283204986718817522643594980899752875604078886421887488967870980537667383205561872409392645114965683748518912978632970742680605623195041984645449511700823769244644132111011315526822234218904170781490374074477548734212112082076866769522031539554392186571469618601693673396989858858037484040587390558326028293995733290386679796328273748100366690255128708347946853859795877507903794392792769819824699741646200523173094820463866805963069994569972062868404431488302956635428389516458232854660924525447371150131861851518002534215406870848689761560734926677210939893509803733506678517168240599630891264439240692446737360210437423930311415500741785194255482074074010700843164230965586464952999920767141342406175559411007360870270774059779398280948285265921127811291001330086882826044224677811840663423150452125098772583104522216685835948304629733051073110959631634699607655793225996976649536754338474496402922270617778989707652323917975447583118252709407773000933240319337921812872526072997970139475490100301124757388645226713352235140094127899199209439093341159312960252837277773281682891812720971233337640840110320809054182391332049143211255466573997218096544103567426171427379921779191607638856711409423088242327049604588576776811096088124981703142962468851252707006456888343666926251044386584912761144992516480328701922186707933837507300732612311061961613692551639778059902127502012581430296997821111937258347523539793034665337102193654914201603075195129842779069942410089396251756813088461270816322467629351416696097642336927928269748984825285681731292013226803872406387833166220905708475859722096899063756925049282469314208070061800328212762720733369902776558404462961965577123279686803840380095264072280879934402836294236952001522905648975468414731747398427712117096012825989747441348516284641591844761460612879419823275636071798123556056119881073485722339184666828670416766888869996912404833570467477713377859066228215491434497618788798648993037356041985290878047778892729455235799648453890186963192079557517907404895333254904487501544245867631922869820605179375052421091197251774922745323247640962721526416482815352449647590415209976158889223459563775222941126742651590384419704468288961156417784699840032396618066014353779413849573609796483332787454572320581360561433394604350893755507725999498156300344342186209879487521483839184664679723040566442354380200110633863691875960833800664338424584463848391883374235530778255286182945253449735725474550883162313748606014915835776530714506462935637964358717710417256636761129915687718868792125412024908772370177106735310955901893522563626621011933674126308273020584407546607645439483894219050735151423550860474434151130080530128205645282777763852770951020484383315262085741667932812880644975447585994677663444612537443519008454286142696598748441677815119370003380947973866484592485302040807312756413554120670041283623641993203958897512557559507085191464356468297914951180555803748523205615545127089049679814926168293077630492195381999471927410314492994818862940688314714610372169869292016356018724623125124229997566624604373223505025651380534045086421324817473964799855771168712782725398036065438246079636221844876185282566690791299929546872585823532246038908882630859572235874215037424075787308444469603800811928012844702158553229857548464488839001077008790094614866449150567432852933924106069547317719524545853164672814301908816560018732956468335849027495759812429657340120854064676465246738178486577964601279672832051807161100167779031811852721681578037192323895587476622498427600798285977933861809235530926627005774076205061744265177508493045210428047053640799647705035408575660422019693067070882798920619786448791941176555192650355761128508022677760327334705840592776455547517660101254193764659396370832614895638078305115766156323689548220572167901443192736978951186617975739255812232187683770560997997649899705296958719941150789993649197583249555967598907390781342980758712374136365906268631253337432334987473564324529328644789176828416201781867923899748461585505173995015161563659310562804317824172890184997505138273100738361199141258701089738060430551411415437808503644879659844587921763912794735262762298180161003547472902349124053006536959407962692482352968614304626943162512153717805075375897299281804935328845423466205890120492799190030092382353991753764719549174217953025315001074672374858257889206381559154592724106192330443556827765901928998924642553574701101068501147839660613799004705507714510379264352206096737831364131309376715386894428060589901353227595097778000646857656911036754900253101698773333753361176661610386114261682473606564343576986608421865587546244746158348742426684493730511523659289817578614319948971065789144902891150762141170338680324324623499979303480394284628717383788323359649159355321900768636649518561082469862188779354438591602417894929636846929178920220327252317486210172828124372927006678484324440620301276882163413053596491392103563827010325514700265108111259571164306258701114654351797215335545511693552853175436760408723379491337887517260241920271225854448870521704453632266442291583494051809489241946325976037911056271225767118135162940383511661558343772915782633223674935401632070794385551844495397834299500141802824611949838156007691071854265721039060757325852301849549189886611259943835373015462218573134328786409973671156607199690066798055403635724466220495965548173108090378103773075865563838405792397273146316565014280780607610358589148867633908363701599201391521209527876534507613837363271474724656368427071121070789792191160479917883730668027812741824921781601692686577695493566696707325863184827563061063240674262952324992772714319937364795604297385161100308285275860585961044978654477347410852445816127820417348989683106470409554235235624538248338075341812653903589672483561952689863336330581793579593686512508130805256055175889391654367317265913736735104278434772006881640421963390639184828987236498211537342872291193921948393969785981669259122482593919975580308306116891693724297082643581683594015266665712929726789827188673214079463188040833511616161748272547207027674066784887580481989054773897638422307156698993928298157830771649672817531599463961615595123959293051726435302757166104589978803957115632110615139073903051902268198664677523399290469384199411814925324191731298409805050008042152236614278407478984819984265600451935758466794658137006518381825084562087389867864652497688530805682793252837913163761946110064167505907166615169708955585049780627648382769567154898960974336287152796394410529168948420116799364723444860729039214877635437700092829995302107096805965404494986466704823676770227215985177581050127771357173557734962467200826747918434569721776995151546352708995071690812176284849694870185614327521690340334413258577312795039313021283410173470309521013515357126560739595003485836607088152916336821921200013411457369279489462048475977190725751433737916024085276404597257556581315757058486378964284303281104953991330071930413695446239749926812401826876268537456409854782019073352853452557780367003348678547441374277002256261497552458340443593727377796702839945474720339038002306395912651251190002013008144791699936369575813219568704444389078257057594125950595562783964243331243681558214978991872700157123249681555992680166230004448795061446508876927451967505422608475096214847069111062025259865070303884515622989089840008471842707140052315170045677021986188428488975533274358134416172128631658881735216393398785576778917244442440867989776309759540127143562215853928854604804417682998256369067022642931928797661737607817323294621709610517074314930455744481225163096249098099146676064084730990148117840638680391727675440569543087780632215339869118211981975243257450826221949422902248179481370218053011391297156996861434247951009901187168968505684556879373563637895562794072132085498826968716170227782554202644876601297888880755251645322428345717466076311747372409356768681432281514261516965644805359844405862581084155623095004236967986315237982165872122335202986497245499167365141321802911300096884873885250454985720134364141278207262831318351713879986974932807002637974409269868982916001905935896679759443316897749420256526367469395516828833171539826777787029821411834166111066063443273637631970282948229854818778906928968208550750616389280653423915152472417771949495253672404823003370200950992411091565462614695299364067769961152557218306336543744870488357418466872517320435225769520231633287895929259629037610453484176587037774425930368450483916123945601992574908108051758971524225549516415026609515858125747375383907585983422379709370873951390164303091486002064252449666802629968035276172387350625926262796542774002689696238144803096456358355899209628263304955570889334339089568418485458541668772398334818172095354043266738268972419766747039107119019081152652453228421008900543870399099343101794118116711712292466891331363619305586210334158123150136396642803391518330847934202278823439773081092224469463660086446270702267417090941755721638385077735160964224904750394497126527326643351273144532173336266760090832843142447736871222559226079771968446454383073368382515207317798726146072760549636433090246953527027215566566269524829201371230366738521043353300089606043969335884492109136634383102477271242425111440600167034097579770317650180161394658396574348485892384162819813752345433977067072827074461037133248566541029232428437086627492644230855449300842670450513663781258998573405988887243020483962055347465011743143956346432523250073862974720979409279724120128963820268684931376046797808644935146364051551836147328380261048123505598372546548049597487903403434239111157420614281022019640482178996424142821903208232747841993832918653154655613329039970139516747356967255662517234859886123955092440518435953877774752112283809745771079472296024826968946009154175808874582689408029257804736735734420769304415239393742277006542049849458148881865808787294909198591806946728510819836503857235034528971200889604191621517227571618082918697034178829262320497615888545010265401367891264046802035974587819995011947574989487891763939640453640988882053306726955905599362873211485183532567816664518104501760210483425200858835592905397755196211886453267907987921140433185763177626790973143770792456508366286267990548708376734097637868242220084824822864063023126391661515439968969043544915363873251665846564390012018244636567714679125082339553280890644348163519875842957614493196001060593032589399988177558620172707982353684045481968321249447553618864645322091742017996760717034281068299635314044139659350498374866452769522609314630376823099595822010211264200321889068841689647771882284540278088529647488219464126700499335408600894806665841004448841390116766762015972068076925612171975432530247521694986718142978462303097422885258834934900069403184908050804947626081595112080148725347973435537596176194320702715576808194029378691232135151394344356374499436426342568242888889966888401030471151113453317499762237190664148745752550406164600215117091147744719405717759625662705815312868344232039346875060803716237098840852912904032665872249798841718751226072223514578123715129988477293318457629057157661452154169033839470142674864691127098792535581000941248604349235025735841547165006098839899641170736448211019333467158990578268697749173308187252772612189076462683043025306057786306463964186807778271875630257134366309246690259261965495676204847727490489357393326571952300063815754854102984328212982762436813053678724985510691677841153527606623511197415422144410687147404034738263626884356855587765180783678698211172872540508377963290955920468915057002827765385044461944200217348454441981218488809230485548821454908341114913793341495151644261403805674978558356628029180224224570094671941013324535862687333947107540643873390917194589052677105393015468179264590362892866592102773389174406961019128110436442851650386524412020328030795383809162412215610961309670444409434245160203961733344171295415625835825407043225870451244190075620741495594113096574200517038136293755073459722643882393127464057671273852850103002959608145659498723145659938684901550709553107447728217872907735849744096231522599985703430718783601318465556061991244428191324236937162503467811801411183447848511218869339765233311182869274195481620750735553290514214034889881348247204796964386360350589393745433337788032996721829318315650847046500313503579932190652673210983093769673174881445770504357680190362199699751676546581890850948048799880434701057634144691493387676567276493972862984531027851121287968078163436666440343065029902488303768318103408758165291984613569590579627386738091724741704930631610384391320028600466639284347807175004668085737282407237797197697881859386332670773958308900900811297600921644255621407439518588404196427347365510391312199384819010029510948407993692916386300407162524954295055522665712457364279641971936019149028716851936429086765934687487620978807822778644184890087969277051870331020043288649867342396530443493706954377026412445609462702231164448421996461285273352050720992037028676344436087474829096614311762497279585358241503017265971324457959652697899728914110467230158342791990560745076553117063689705565972211492349288847429884150673615517219462810950589879443645398288878700612409003908527747792632397121960212233905084223830860393900441763998797198181884267288873992062951664760444310769587338801569500002751388095103009127899047514638964510838304075363528077897970130803015872470270439158506767369852903764942154740162281307852499481417343024998776060558093080799823101880716257790495960925213081284990273437933116908412499032947257937134902957949315053322419033593065133733129778763146950476697771758540199417169293035320031263057735359221964993151437192850505012989704692769333953932957803812533437633093496886737304371781950696844142619669628655637416028412138046479515754699138356992259754300688828679704268621034361254775520494754210030351371806534877044210038618720801801619989212965556423512561889545457305227092060563045974788249971885208523866010380327836133624961450156168378520430001802081401245991135181533082900197804675273274801131377559703109888646431822170099710497799329374667942326908494095870458084751347754428884976656931291647126934165264610413197344868142241532977293063822618914711178783038864250797431143180785632870391453011045967289972568348262847820707888099318047919294833480348281289253123262337401876409789348813349546682066832629809740082127153701074379869922368549145001994776424313079916137734530064237679181408943704834834495896836593937272002277770679717710114503235652247647944057879692881717053554429949176962711583730609444594800084761045310737488958469229278439416382993580009339378724684369777837996577168156496599060011147267286361227664107675551450966682093287566534366948923750119018906361434105878753413826349429737811867152025809977569150717029127230977238229359920204698326659915521512792309625953813739209578426159260045411452730080465265275066881936264779503304349890309492962132988547240060452002782078552135815922881062351726196844070248522540088817956154127005258371764237452564879896540380400750488417742929566923708224761472987931858891179093415581031857203201369709237580235138100536412730263635222780881494905607787813352591542918032057499002181032331657083678215840047328505840859245528152716635765446150519088920858129302820798258967620790192129983216565584068699633971012097760808290194198923641455672700045319208078767178734509186743612984743837869765100744202328482772147562420132390073819911049613015698429723554021278266958756769510189323883933761237498082634676912187816350076044757058307031099328667992293151061974994693967140527889788548175460595885312316649064188436547228066207133283644872086127001469180834263987541102809986622002713333884313932775546514994529971629833140582590903372834848198205511924199654009628999982742456601212854762282682471073211088327984872493403813062875353816040682755955700182315499727809081496474156153898038616288908447146596016886909338073225766584871330319434310762219516364639777480583459997752517556889215346040689309420010010212396570787033750909694623363587211865114373445543521584064089605292054628879364043521896062250129314720487155483016630301190642883663707061080241615876283138995837147795729819279686608140984156720236884338307978413143893491737878977595951127893056257120493348785208231766358375063852827556437650950648818231971092653126112613974381273873411973557216680514568083087464578066913938573142670869493767982203440390925907872533720314532390029603674205527030214262651734713737128008862996800091812444011585878130906766577220119655614026289386339325045730714829307975401634656200067400991235076532117770425601107939746097255863961013389970668863112640182059855973653103772321758210224032436865368821765294831797232632562579222225318753192219214548786629114853838870728468185461398125367443268695452764578147579235028284131458287297901789731507662975932519252104350427987851336092136878644938445026265063567102257457241062379778266938645436511989675333074684214253432906984765243474538510438818775782200667098614990131153221778169978439134437720888471596923136962835061771873371188061060409578780604008325904382991357200655707243676713231580166764086020949527506296264448988959047121072204937279413485401404778238962802044647721725260027779179367303380590249326491532343110074168957635174790036437568150442570613776017398730295176954106144729212301589320708969828369148103558867865953449448695560709409937789468620201406627268289241452088622519975733837771993392696822431346992695324799260667936113786166636426576624645278125212239302351607409146811156274231932215351804614130345813303858804290177585643963107367014182009046572172246374107954634682001457891317908125138308036108334718157369735540637397000274840598127640636318806297093995325923796360662475417498873433088578324098627285625864512465251440666825046535443804323117179530039701428721317714517139517300738685538629459826582717237531792809092007707029072737125635021821410705916473243871267930487905775975853708572165006192745313313740406598125821840780019685879865781217138257121586565197715139152444971947264200299411865780370369873931667944484462897976930795893722756542055576968236494479570718385782030163342242549853059333251976119618461844827914557185571971974389060538081069652953905170181385064086727056194649469936845860143488058152716709080227986024613801361410972390046931984016986729084197232453520068657249732017971487509035110912781685706919644262650577847519996060013216843934369044658729759910433746298774434771125641618432992947673206249798689289297588899321945842535641000322549520103516995325208809197505211719585895931143079653711954755692573571257655937600445883423226568916221920129868828977998979423240457892400655152186820637566418140449111753839716709973483200126692793160159859181756304287233193696401467971535774930001739757058820931261816995722632363093743796949574239658823976805171466720947855265796634209533431685763354904123819247232510156603857504456393102069807946329433638942951512742263424498003977313023733207900417355041319165127093944774644848205286340342614936438057403220390610923391362471586228283487761287124244768120880206659775973023337798213653956228558840240159223427641772835545897105361941720807680653681260438305537297393952272127623616803001804736211568761738189123414711891089924115917722196803942207185415790843628667462773304647463719480949614906805003658534443351107868602184601128896538793718391792073340024487321003009776274699467791539436872908379991057248937851397726033588541549311225664237105893009091524487193893311137463024016996625021012343318777757668794271950874947818722115706388215806432536191984710763290838531174774323940874846747229459723726766718914868143903086354485984577256523805519331977171749453802529850370520506377803825594058681633766574186090387918762572063117929957199952049554561533487940118492710933671318788537793503517484686549174926683060285916564870092080821309358507770802476350144321882115116567830642752096047126756456124550367721636280054221677981981134060759338153488271921102984711868091475341145437291972177350413048963342454910121773102754409569410849973231321860566653798599345496571696840329928784889856504634928843290184897624655101727482298847236516103383425332708799925728939762983035833499388490644517650242309664755234242022122471995112828218492289172367918553441622846333936775029745736137525318472886280256393568983443624377484739600870156186079738704598892171507695098278244881942303576901887235044892832034248491230560747420011133317098500772396487660221399909394893228258211181431524009026375796556512253563198213282080098953815839188686511678360316280239526015071243162616007373382193520886212929775958434135470407670211196279881203161586913900752397142947403510348429787842255726153643187802860555763095798766766547439650627539747451756128392435638044038943055166144873887019581179265078524141349044361322424042344315387395831301986436385493354761244180579178444154141641779279719366112693483399229670495235302247043340427490831855778238963595425435818815089962542877016415426916683083119841531830618577156426052595814518375714369048334778234644336223089716363456304668004729147898641929132815452668754876453061079260075968125076624534942809693776647121268963943868174709560216024176304204471485020647228022553113218277523296425376570897490142272247823143632015941976295659939045499001228031017216020648605802966946549826234749754734076924715566307152341261933836467179517129238225474340401101932563377042553701953492664389129039924800109302480998257989670393686577645373752342651416210598897894057916177429341021473897211958427498047059712767736056914627484754753680097220163244540324378386902888811403581960519960645353631089927172742649385093058293150658430050889984934363779006086531215059632596457280902156462802780629774509005386956688570723557947668353827132377797007706912349365261699555890862318973752011561233741691447591834750910945688015153803383035056762897096985741043238047995952595903144822956879500442445394847345334762266629390755025358449333632610162099426936573352652853774582781313585896623193373849724956611903338555226832656023873718110590511710216249109641120493365215848780306923963882745227807786899279357603366673837700719230678725145082729895976064479840039161734998824891211907679970205792737669677183869745621656095182470395585092385642704633409323123017510525174248122072702507699549329660316466174009416595684106906877840567852066236906427253173605998582185418352347444273354123113898637441228001600582938905176850912413714905034590067849744131410790057753974648699532712665723387831315759436195862036743981562408745826536960576363478467345288983257339464577799876644459662491331461587403408465798049368720022877523660047844291338405683380782300552082302039043373312663600479373814568885548966582298439949412596991813593901395044803079546093257400783049753071058980362608857853640587198315056666264860243538506014374938396430192183669967112734254503311653238763871543511220240850406294308920687561883037044148411730490626959324821050656357352299353204153625873434577315625295829630856416166127212298371420369372712962222615007736377654359484509332628662659505727571071393411933768184132451967237182928354480938485535173012049119618764006195901853985559473574278035200206060240619396641281995616620949530531315564251713482906886961154784463789601044011285392492341645597029310279720063710836399901345516457122524242356055148357700442088271378376384106812063781691039218669301736608613496252508541126069421884794141206164151518578991068329089264533066972491550513548484781240676713026212842097539658852565679024365222286984197930980728142768676664203312368198001833680423299174350850666544605738804893281544381030057590673279489007545127571246178297066487815695768532342093606131792474956340857628829553373144912391111538514687029417157099712571602214902579861660997546011796439689086480980224555450079743574874831923376089708238021930343470810770733483373384952973350361198202130300740930325027479685095396516729388876203146802435758467462199636498718357003342751378294348910690860839514799336850323685403137758070198625076695299829070080708164286713814970456260228892728703660653301781294474242307733156248745595160249025599631209092195697840922935763618142777734520388883250768958243994540682832932073134049822815110539835354533602350483548174292379778464623411938072844805292856789432694339850715844411291147018891341386853602214117326270756884512418172606575747720755940401653844024369243316813590398983342456658177154216702986795317086903995007650268725139128302122488712978381501289212089964521426941945562329395386735008626173855579421164598720429643472780466200074549274710585593545294742710826176610984102706594195112540467445909645586901365071652058269542824959785587814632379978706818479903867627441675391801792784141397855954056458268015178807505232685050177585121030795950556597597726087774859524462048808125686459536692653482950789867330061642992592842205265034295249908071866559133068749079014936749920425621281816818023758301803226861948523347080214988839543129200653828872701958508707729320554968086530273708476648726369370116220159177637200374760399892825654162197395188488120818092890573953851196159603339772319003509437063587562521278224618223253292366223913527950211636092010088183999583841414975188137086276904198528415124506619533946903424768073455148682956413186523441650783153197104513957838472626863981927209350606909700695531933463237911026332823617751859486872730593122830997141729855823621632579612553829653685399708693631975583240764163772115703591746072963251495037523000982243547580365695276547521983210500284969300104366825344297482336896634291031239171212477147366793408241540177463518439978837151402000681044320447439741415842718798777534064194746260279324512314927789855562258001349295549281973988720131742171694087090127199938642564188994572357001010155661928101121705059339857640623531282013281632025408429654888706209017172978886483224309387075848854510164425424658204452909275396219528365262211530264649701791807250669904809072720152415892789100192330295940115636454150784141818477593375857937919481961515778532876229266344023037399335772340972771320019817220368380080544527916552439031210564767404596617082835730778318460841876338427385303079096015348798588903319031463346143162784910797248593850280786704599191190102578437504785154072593391542918975337847051324714205464225667750474042213314855803474230547819465830687701663419726657084112481682780054924381331468617961945886844437839436562290225469587567037795796220528410881543494697111152781660008195840850265196529606750431095241464947977033295105862005545035844329829962210463651066498124479040564071153518224237579246164541772256270458698587387457664338959746928132724777926218577633971277504400111618013382983188724707312215788688254725757522276250507676643807689466370375163568041022945773374481759339813450684512363063830735782611435858389176469154112857063606004180721744438892609759661041251748670995126593650612409741575559832120087518414057732603516256483110333209985271913301516693220028263615468907936167616585151097362473457921918807966584941306194992767801480290804298684276446016834487529327373392765352966958326518389190209270027947464821888841192594709444770119950994209854913361120765587601672891404707259158060607769583648667904630949316259193288695857490427032388051359135410793026800414989224030416467977190509885833928236136317076727828089114023825998513460049337580894610533005019380147127506700517900178129609498662604561511275234528865934239532484685906068472838962986499380285342606315634992767963272337156665744528149556899733860566327786554122715572923145735049838366369206809689688325423579275438004425139963455123047190728390445441880507293366769037607532437681909460372371343717300190790957797262848787154430102412169387078894078317482362847552393591989449965512647380977998450026312263415767161148668924447859198414252753081818348707135133120820718073003564245557340847225703700339830306916089083277974949604887245400610723338752375282509961932194321315337606879605408572441194698340091966210177407030589616688280431054208571178639237198482866897092367473609086300748842183386581796206786295775181298229124477443490582292463930351993115092255781590316092460219223213210248055217965454646068752720373516004814604984649189792194922992919240357099345560302066342754302007792756135749543332418799282573976223635345498786557097976076307622287092997430888896956322001828076971444540401409004217526630882845548073604443531363205980361548473955259648438688361689847771654156562534113707795095621070401780034626980740335533452238517125480702948729530441652612026985677325263580569265447304756435752096332912953056725862383001362099097855653686666193185892436633905943831004763336958667694417188718518963818647546898986952187382898091028538114898690730272304320890845011043443959735985568292881567744303931862134122612955111986737671609303603140507822541733243684568880759889320012746864567204827968018216125199901388212620082070401352553440999488506547256372418772546374548388778448160844656604772390006774845160789490972569072630826524965371949929198924373447859463408949113961385607934957243531524270305156778619245847787929357300554806528108932967861488924005621423447766231032550542788314062189168032522335789319353011037380598351736054884901229917460841379547933212737683825906041191450714513054237809402796291600918105810176854924306596168393852965893459297302268918335773122164585136430953431778866723463183133393260164759795558606898297708761326028132135407139778473490129785040317198475285974367514180558768670197551845205742686819118067155254186384409376779490579424739606470936047407022627046358155795684143146182299817493313195447670574376109221013124318365045753897119677654158150573596143208024230469599840768968484275807952780663985048157594956693990353783478433992973785937986070432185998001399245093952429393630797235197836458964463539365885560343384529194126651872931616044297204481301286797940181598615083790294819663798554538150054343617715448244955033476469215571493147444261597467277352064907042600137837452603769977333996658177309946044531709012695261995363191025336083714510000341334568841599469785581450220530059615256858978548655588036262150459249570373108078505926020979463283045221249952623816761677772440246201266364741915631787904024861958710138455325661263193976419507024560166848182714803842017978317931345940978475868057113928597732361434999348195358856937382362640715424358795474782440175495751593128149061867646660507609625571197919181576590205816238265327723311115655008532387165723069784710686245270066037805098084147111845434272774907406653030811275443577889117586724023874995998919271974819773438959904317836185902539875826932737006452513616123826315078517664547675295919706370402151329266829379409357222092708582554783556943161618623568569276725412247766055764553233244151334693334315257830133950594114529196977076630271615230084852150706226668489925608746737783443170850124024638291002035989452672457053896715394764393159369099562199704129559426778480336587143469105898209869591679222714977238264114942368582483280108314880163532394024028813836931696719403661355043186719640712496870815014582315098806809003222452695911497574878258525506627315811900826499504414126847547212645362308748380252615431689062715110361813682238159565165965948070597429064494839670481591970553716692709927782862775703882300506834469329950194691046429186766858056195732860684235621037774740147798582143102495307228642966994984727861544908197654758970604692084240161167756130057160563424850185162777230478892071915024343342893313919901581295848205554162165067227260504577893234431579465897699821127928987576583209236598776590392604361676979380130567468315468146499597979396801687992677203200249881491370834624339160800733074983991835975267364885888359353016209061471472484048311505303836688507667190082659216490041754978426296309507573699820149334071004283633763855043938593675377289098876314244476433617417097389093761174958254927374740066057080554509831403811793447251428180312183232218063503562405975325245914510961855753149434488332389542963137243033467316444712125749130313626531032004779505266404526888706945135284509061359110877758693403237122227313705993902936557855019927754008313295774719744294258410474019052325527110736666005125749759295987938320757041946984739198447035038149678840037625400571040542755799307807893521467152718871287540862042174607075274961729115968122952502226792833782850611685134996557754496834428875212001218669972779142432616047515872196367013778244649200018710146546990754556940619659153037071181443676187966038165522219991786557631526098713425153443863117164755419101064478188410107822644435668225311545653118030247784813906884073999714301476564972440029103084653491938135092162028284951822485458211311050812850360913508685023336960438509997507884305755000161628803011179799042241098605336818510809322239778886004360769678969098317371698959570898578926538019211349633668049530422803012315856193062923142469481725237234056876515824675806602962550100274155780938689373761260334979263587057461963146973886780682937591546226867215558580673141266387623869993391709576966085619632440453668172052944757993335880087580425297455915195002970739978388901064507490294356078996649764646005329236734134005845338171434366804057600064179953020235533555775801272496626790916457235973884728563092329359235538116129797171864904700943683451974779597663482273903328088810191823843531786182971154039316563116182930973938236275494078171952258109910994523657626813661553132519311768807865292270280847951343105712422660729748250524918145277795441994133768718634047664601386175602206000460987020485329031190388160376069181777294741369611596023044630163992146625362826739997616275607883306036941209291746671121065248562665589039589343674814706828461723556090684156470805008307899161436567197208022955228040837564024308974362489562783234923147897330046739569981294733277634039939742600623964102777342067631176102838775161185165007478017920628650725458068577554636893665944733258585718662546521772070614720349871748373484727655618967069644399660903715453095279689559956195718366120051486537809796235447906320883737543656470785622165499172023317701877515585002734488019254400455118674289867111316929740877941584239443138888074574722073177559347716220137817700002581391983174311742164497222142585041701184977836160419841034840681099564587852070411869671254038442775007402758377811632768624728210896140642811525464750892236631115390170024025755686191495971294233065184128286227917355035030384082635149186404990643752439512130156651101310961905624976847833586016508730692970287806610446431295298082336522607574767774422745748986924863342046560974925233036974013634927918688294564276303532286943451792736595593498886114641255242590207588602794466869594297893325604913877816073769895583515643383369412888951872804335219087030161988320956176379275054096336057134939888152029815927465249298454240931117466222760412844902159551817785276302123950356572627055656750707388924114786830300555269819575140343944452510454091521655695572576639429262411668730748450073396133031669454272199633016721351824994332709162819812373095630914166072109533692224213638063409176810194148155181761162438657042042833633826668403883580795057613799515338270261354435926762535464613252837302446478938607723501510551443838676725498741333683685115082099666831449708233661436857488195249777087363245398895961865680686200224014477577546415977457506208084938873542777578102746532351168541642503044558462596568010597887111819233745795604371048699266766413533175206429743886586038893187266929763945236289744132490555474807237673588405967483527884678913975434384003078200399594061554775450237052469374587778116877952071781255844414937436603641081761606825992385646634713879672085609686896741943374500342879611430348708374640073797279817948259630557355896229211344769984529927199248992738771942211836764848205901550927793301876054172211929057281263761836203350065444892357418805114960566713079115020396940430474404572344615510345669327646802367207305138356352697559464609995022858456366460501335356631950706758133722740346282293590130694320950705140199964824175977638748905248370338834907345387121085339834629880373451096520228710308453706093803039249914767180569619525385993827926309136375838746367458291069463022170642538333733171375112666826406471866857528247421226855288173941293874969260642763773317655062659158954355374540897587561210186180988760649882689032588890284996762021871373440719507128510570379643179789617783279859253847571891346836666478242945627358733358020455984947610380180840923570891019844685694852817699454554024537168790584898875020658245277877459943464274774242041274228389288911395048798206376781736418370355674325076661554707496807907730849226080690831225173126039564977738653280505485204097886573817182676397809218048249477908704742041644313504875296214191788410549506373332531118816840163032623264003729653319765315484239873518266783368993866187235190639193601450162350735751428395560582287778166588766446960998729126309716397988925514057539037621572369997061612701076215597189239203915879617156853586108299883593342036032944309209836716255906937847004173592318017988061903321079368203834217328514050710195721415722557036769445367494112676866727854102738025531425247570475792182509608858741810677907369228690354090955650186158573128390575349800085863226344917843356094317301496854581579790287443667989417417624804161446168762136382986480640755112596302706080410058972006427685869981878406146511089737261998379219872896492260971165430129465411830147482232432105664641743159645068827203788773729283720281568562351822436136231716070644393842246497156974572322496579788284822294825598923351200388487698670756388622570276187912760879872853213881753372752027995195863828696865186185964677728782626387209719913762047194610317479585491791832454433763726322474617063212662599683286607185866608356634007788859929490277459927026236167152878287035893373890232407725131918509179765313198417040339944407268747438178498254767024309145861670324760089566575547745870154436125173089580935559140952120854291892940139266094843618135605192709126710492687049659507463614485675124697062273690915982048845014046587369978389209829343889417598637919977700073748358353540045744718340485079181360715190382075190615350816004964014848084765577972662165327837187841385776853839029678423339246190986006940137843038363867646331820137933684298062136313362665516754313192237252690283358153047565243828182470960607814866697943238837895166918948504409075379960762276967725878390309755515637211622739400603984770675232705683719264035867688087467372447539315782561638832449076002666650693142787010020919988205493228811411914940404738613160719415377325764443989801754307374226766317137596352136094601712871716247965305621710858076594190456255507520159821051148775881283795329980501212930852026954709878818889759317726867552256894936032380550121355316698191400748576125498995107803350117554320068495851808055736597389162774990037769508289596106504019049511772821851823465664800679937428394320034019241654750380053886685057848569160961211889518523508109577012072414057773244918018497866138660890029348166384535432879130481544178518433638997742161959872118346752525686437336155791691118854421762430500174745441215813851580449125537124616003244100976277899495930932490701353481118243467749721831434635108364413742328787255222463333230178320570871639994044377490096481815332504162566490036219734763543273623314339264904941333285374219789796884720274519824202643162843972935749570198046943725038711548899913970782790956588516051559045544834789051460799988907904936225034440953358983037200567637462448014401579916546152662386629115396994421510030950929966804418749308237985904909985024069477525636753282827610001055419702024217869116432615264943498638385181393084767379159128055692651901596961388438192569167920497479677628453158780670600812376971408179253145610937587433451537874417057762164600750576643622412716260888699601063612055926968497204859845748080970746682348416806953930519610676721498207848864438769594618103153512986073828375433128053968676590461304550634771714707659165733229770204472673327276550274376019058726833586178814890268320493274194621401522896221943554102859401977288906944118863167137716604580867153523870823183439202080693359598740097080293587343609458740775903619096301245639574625450769232194259290188138452960806459045012294494885152414013597983305527506161314474828591391969438596358299755547297117643646913359965753239213981285669310798220165152689300327861694938337681638323855203671846318832884125498242280799300952218799018788994450726772638118904553552605872572802434543537527166889106630167761891261144635383513116094532130501799337826899560907376730356452246744801916821874551512053104456244748934395626535428424219482870486735548319459495539651866951432785735128250223230969257163442341002706522204303673553285681092748952559166444413412209397225504445465064675248643338694724929871960812481012131840318157186900260317376829865083943001823226990794368211311683037186908046053459309479801289607620453684163551219644932122946276673965203583207365990322270753539483847947916766517410758660234686709521189969649501771587114921041079964858328294405325137213921017793673840349890589147598689244072138027237953198405598289250460915713720394311687264094995666776466636150072985346130186392870438710935178125621208196909529943089425762427933458345740689617925305118637661544187714111614229066799485721552645887313954916653942714344992132763185321040205059770296686374948744041255664433541330015295855301469911866134543979061057282518567030505845450311161220009024626276252074181743234920306102455592985472337846181938362575271712867798535892069627368197866733142370052446885586786201646341022811499899275997752920787808664073843595757167862797887652038156676927678035807941785398779569555507534237251567483461377019477897418771212606437668698794551503133658317828264528001866538208792021781486724999027855817128305845250904421959914569751714344602611365766737336440410142792509041913968475184714314051070037506688439287491456160070683359414983818156013232756338237116987309938873021850778456359193664360490087832508323536640363912837084726020716470820135733469274495533217818859775206028401595259889883249713479842753598853561781037405331622023616403079432460187360844876302494971559271577569352035363882304262664923392073460903886665520950054708983052012357609734573736103207329822994640163083571792946364980819625656792635106090858313613018258167140240001361589452603834097029534537944894448108063897710363849062466017077234041412612780405194896956666290835051684101796098937043603667592986210984596397430111323921119750073292216127850764793971932258923851645812698617708433598965351938431408325722974173705427766862509663896573928655840483971293650309362475652714287618047434860149684938953805076974426077761562894815105183683208356089956285410427976886762002932437928640790613154588666690356201880942752707614762137112442885600494424904524104964946635339112233952594829100218674161812238529025344529432560413768698914242882278383525485650288973225418724389899615388354463172568135956654818214255799203398887535976708502263214556507555911886522428019654436609211811889469964046449895000321857466676539038370542767461452037597062315561768481669998842702732386445866696185708453371363032977405428162669512609435946758210500627306389052146112593181800843186486825899428142521179311049654856575396544063511269039429951248762204401186259335437361842442943501129432082134307817166893186877284599398439322909371847832755379769213029621106463361397759763665655898329712122225363140592886219645509448949641272071747374499426832677261448363491301706201521499762499763588861405614303245026014364124883035815437546255905020412071907993518215876902327191053497419717928599910222448067703260797643371901098715684207670454234820857215672056563495733162041740922806325683810845957260953262728272003033633407940970405575941391671701269534942125194349807149988272864806497949491095419430133944405199264023947062116024342011803079374327494174513574664550568151691913851845704907224637334344597298220810249774857572889664979297324974894148162308591884786567201493793379939593774310537914220585276595194644895796127367521245069770787910994415246473702597342887111978131951973741399508076995269117844483298235461566394919708303822997868268191798048000433427478811606096373774777703255320223223700445501086495897651570680821177013622664828439873958461876713621948096267805841410264615781232315302158002448248361179208572863324799198899250045389469147829707995222712404631663998469412657077619184229709102525998058447665044961401096708388879715395043379490075083509976108895047176898309222323124872146830749204420489068029758263634486828478341143605687677241598398607893678963347662074753340409179044616071414934435473502734258255282752664068902165946212182536085594130910623795601057442161979600571573254519928818648941325368855432493749742371620904177839665366168941507562986721183626169868624490531967902780388588756616330914551732355708401580229962245637696200909866973922109784678861222720179565042733611484195490895167477476841802080469552448220714280846516535911623308309044803552032616281829697393445279536340771668839314332304712074281006169913997596142626553102405898129097822336434742507720545591544624355368363321041939134418063656675638621242193435817257606033961493429083443482717213119358636788677741735721353024757300163489248998746930783638797631280803002576460260357874525325326588052727084958413368118663115623488056240099003684499637596666018404348890599658695679074035863288278556829726051876977689422237535979714528952368151624755129689511662648405113007798631023768365325072563396855441914684696593154066516709289125647723473384929658079123202762861482180391569643302073891373558216034084752999297360050519753978445236909240504920078915135161339186885953716480880982490622904212363348841164673642287940648421057592575883810613679213731311586697842712271496168463340774691582868639908997086736413502783473573578056842199049827402096914062464860476332227113525132985740646406765252848897751452297523720911930346830456122800711897615995847488389933317102100457869402100344101742961657922143748394931145463081291620427038332519861210379588804247177431694645147569407806882609204919233760761981546865087779244278972900081041545050626818516045199610476126824053955848036102630468980146205609228165498706999917804423958855022671436454324975828670599325233885916445952199048000409213752850801556465984127466022601038059632696538684051341777174663327333759890245817660413978793901994237545066444731615206263466195063831367488036825865716639657573712492779920493354611164798558456846391647560881574130288849723823267842568878831520719293982721059327125020503183888317247908279795819678884759247593106802179178369406189903344480719010397757819175988119592428520485982065885641490058921669867898754864630087112586101773819356417619464732095112165604248909497209609059269795649249637712724263163681000074546968973961120772040246005053438836387120009012451415793531726897896954983961419371878573955001092302061129167110151258585056239950581161689180441695246170599121537471860425103386276733723227161190208681374276853535008095251813364928923367230469303384442174907470430009465884382329799417860890004358395393423797552728403570517202368993864856349504666132477741345804801144939931467324517758797983922878870759419869477712813566315971742306392845660021941166139919866666060471004141231881965154003545975820511646393222023783586660524123891428988787165809690762735167474003680947403682972884997463739597336581219032810272158158784897602770647866248084698494070708396056300823572632812721566506371678752632746224590413699771630024494032246117361684776614978308064504530173673247150086221076528701078072327403655899817810457768899442071479937301003962622971964705215198530601703943538553368068651021750626369688158150717250730620593142731991416245875254139852524344053570288896201494275413692093650694385274867721291970720345629696122469211686486897881736581125806180212535115666071564877469362116230949078846509953951773129953403760907086011798154813278213345450646816829319415765191586899020668447129869517557406191174254554153173636645271040941396583870832580986412084892666737277355585023266593444479949024810241745034271661961729554056590007345616717903055984271600533496555074171546856286643050751663173705349007781713210023377788544751739002519069226100380755936839215870176117638531273579221408234265213579614618075463618439037879656877404874379170317656014824018136975592040954843896787753407758491848883674636983494991846588867360645271562280095670406479633338584626267930118345631319498919290850914944866865954921076248395423158053780386785525510497603878620885146578363578183946299896757624265676201084585609662192517856705635883197036178593282449255263801532593393233588373586411322540970808312084545923869413338946299516795368330021098593949868579904145274503843192585045308093102605881213661826213793547896632954221646215882158947298106132062311979460243422507344301344266659965457024257962169413487240607806093775732245357017014739939048642497593575017998109342837801671404075354322328282659704983964134645425555825845527111921722253271313871877294166351129497969816500016170669240973729001465909205082208852205375221738254584063411399153936250274334468792267730881395033859053754859445656547038009697052000404713314904791043213193011456977656591488229435707682697425160524274150656903512513997864431041562505880629091294296249014586140233655579522080948823969295300475801703234149812657246031716251849309067617793938301351519950079072586596614984922795694755679904773817046338852213628943268052836925608300004389841108340912828051272926645092636026248504780917788158185008234050069608301150383390447467850591480735121672115859803202307300644852062566618265385797995162781609628928088550368556396601272626965905724607468189112965106375682360255513477895864708152631500745267309454034776884701525989344618734767049339513821445854750485278761676742891313875081510118052443551696713482976568897521287319717684386809040026929253302738672383476616763335574607274854379950441742746941491471911247710815393563546497479779992443713451857334598206595530966838840610987228402576093486539874420855952602365843987366708568068090903228850804744448034712257923851146150328319694431314392890935662949468474527789216502002143153188765203779356454999330758046553543765554091510394000369179649605962054101167196516298117368752101802662977491524498571525703989185353323247463105729040991998311850706581327483606011574025414139990682816612123496561484242298544138904275354077545978414007360274738210786412532401231722153033802567502305597211117540608315151620501243838634626149027412415470076183127413820044795555185707880625848340834295868859631670996185933527106816475524007505918417340047347634265081689050053228247108776847719988146813260143786925971259004004717476342677024822141664619244727217896116979109403870817653955638722731853317676589533917054730423136387928086522543308743036324303808116615374804698311617792389155867649917204378998739463646439318674730828124437298694048094335130978970864849381343597470171164150560824630841436783913802244123765911093905194206716422973304107592839448918342964593277840795306083758614679468965797068452302575768026523717772790670997012274166904913831079970794372083338713572143640935905547444914156190030839885845086278291408462380144726025533158118795082084526854378043700905766800358683678201723985730574543294778309399025592898294322160330326725837640190430056070343483965528457752834126663682956587644958894025818491689403737365334340979093129234247164888699087593809353712216891438519387927789011188629020943679026118845623489319016882702320084620524816762186984566075386542629697121261437675450615025087005661898781305809537197279180981272405056133645290546754982262707749885858107305207095319106031171234578834188054801965727675404392343233548020899986199013445280576191088964424946637822344774866757360508887930540508322751442382927421714119363109486233648993522799069036837926006317550530417777518458366141461389543316197836727334970009172853535854074649037630567872410161290455528728256262023014347541505595525117473306846340695391178408121848247887705939098231353356059665679912166866900650741122560471589205741467430536297854475216861549786749306412433558533150541689969594545904299345245322720359520894725408809365401456431166937112423173758546358617235581615909264271101975588034543045112442059325249972445108746818465600739828830969045687979619590327222903468588749668702234978677291065993487827117953353554388346724362705758491180839061981397203858474504723848072781114518056962080434284149960134900431544234863029343624452776331643034639545800915434823818349959622603750263255846417476722180868095387673159611007956096264854873905546921715925269563021672066747829631635587638365914441872617159647648622143110930128630726512701799204847699023858215606945957368533666898640310507715158680019502709170148520776794128983945871593995788332536456771511585710003937118202608088214815961247364850016433281880505477222684187755998711304976816748728241663050541449031567157814585092781639140871480406264860518200730404299053677226211610287508246040034120704446933419167346905036068547550512279568098513238638609426761288159070311171829434024000971194696401790317242674295979538768634640900826052623073542437353428706420510953832410012988221208899079929481224126929111776599430552179340312464713315437768201106361258303134752744956310408037154013374616266529316443448726922212484085816151529598404886597057473132994613509302944921252701734711842796324434033971650862312390896947781054721558037729213978745284083461088967920362369517494845382254813176389106403977049180372116645796171050912785610214403130758117145690552347023677957912231456807806125262704957332766574349914232678373738109679180832370252282127224524556352488096131975004033931784568857740798238052235236626261354826663269292380703323341051874991885519208789093491117462174779455000466150722865887388008435251425784181549105323454668899445298370071828413583682236576177946943569157149154312763513086902074434545111644322716934195074288636324698226458005627602583187559914425103866062118682544539370425855343061061411072991426471813053789742077271540187159163167951995163705245452435745817540737202478286331885935421472663887276195103740021932238675761434305169575497879657897896493453825061431175985932451729133212266097391276731551835200250707449701750594023295932146234210285598857091566599844979387013871656620848639470626770699293913279733658934641782971714713683800207954801557405034288134201348592351142854865738197152207610942538919174031589890092889977418104619429827957922993234826234608707469396929600008305865045729967138759958849261371180354520446255729039151384714773280365504620219875771584648351054410764442146464357456221486034510813920229629586926558466870935453490709371164139375861070249977780563470586992005065304675001315407919620769244964217377139654717792969733538142459144598959626557124408000477376002821605704040768978944951544202624380957628590675970958622804236513231290727878608804847813472835528770278166883592322487647085593496374057426658627141527556623877931403100406278342239404731614844595098717201873716814080368148232291197447699157403546978847950121699415275959888650686154183033991061086538813587664914637644755135743175967779122983784953472942638747882809745592694419778822449587577084119143254188679830670082232991788165105195939056469487805219819707398340564627784826417579044419045883695359604697342307609654265024060778789075585949513041869228879716651471054148875875255179104217296334557491717003967959429028618611627889793335770624142285910960792938775459043883598212271727613794600783417158362124231978912699376153339911804651785925780145922742048055003800245523605838348064910725791725937910848496917007533201349982993024135189068583859279704424875760935380299746597964160962323375383852229875632664077231619349671161214759340632995569156384100526469062299447418894880217657223371297262172583027522891186034458877471767398806952564260174413531130000664998661220703541675678218489422669629140381327598787325609531568550934573501074911905292293040213526866882513882190822292910812232195371032956561343560681073345332860040626813257827510387138294819372611737054445767603733304306024041966529119002877643690527431479035279988137908537869255715001113022721834245792051122294106827761142880571434285743302985274063184116352244647141335819642785359942745302644875130216342500426198961914540745089049008028295106893475844615830138868650896500464386592607254859302340133368660093237925565972118105665146937452570376160426259275603756585068669363077711382636097590002693978443111928705988906547835883342880297526924928751970656201011420618779653421952391727396209779723974564533541325714218324240025935560005539446230996559004391339498000087142068963398329587820371312978345658579905688319137766779952876123982534556555981366560425772481743136902529962501785323643601981067877304431009267884503197832754716192697377334039955015014757222881801196000976744703262400056444573637098594696831277875542524698105908106458863268061214206749936010813503119605389571386013879008309132788315477879073499078219083067130534496707186962336960532590094500693032361922588433697560932607267266907088077081427263779346207006916134203360690759290396007051537499251674094995944545022904573333101295866472914886785136483369477174018045353399739996293230733909593815449234900197411372113208227869999600940637617936439668057208528457856073085681555676728012465997958965381065450273127906024054765589761934418750617653250157677162400669852087710079300503297381122949526621396013416291011847555209629427930252586209957652495077757208090172823853266266642374312590205807953169007776510812934091239652803888691678507067128802971061826412408835703627185283227376058801744901763737045988176618702380602227815136187874054250088967858149366542226841597158885043838143183262722088895617164138712804554253721992367467636377051822787486451790366357701790416100037304194829361885747117202714527749015487273967922909330390612167595595893615527444181115516011422361500400652924783202283514102624919409489434929103473550091899678317920191171592573125849728590373441518278058704470900465315333225638851937981712060306510817725702553578640370197426378582219627124656263177819322286617860042975020685690262052591429459418000873168806020869141003127324604637887853282410041738550334165539672030682637711175246164357615739452715275846788432104086510822050745522614362042771477978643201390308164737872411098334818942156027246719494497017526539426644708501596018562858642181457385369939133703219956761354962964700400628294151179514497394123044144525489951999461781692675393462469518247952001005314986974857073675435232273504604688373114655799669855499774495413369054368116749340387650190957685043976869812169022663607801096332271729795170094665260548147743518363524610323577755400284101575606753482769516382000800110614305163520014272413999189777094237224411738460182887771354348273397329047909960754908047485895507607467076272771870609586192065651812771170759918323087753074731809159063237347826002113978896749595673663491029371103227308431608648872795119474920530242170718760754614316366031674723284376041425966030812830671061741127067508392531998488590739795798978733581482833266140382982934172006015797309126870394493035102463512067640944403647482831352914902532574649756180716921781361963915067839247599396448704862880934369349484973158119903752596452018612274594485434381285954671013011978260600580644972542597522263815786368380939663059915004649492564760969787191497577068658226010605207348567996345455749309481226971022955183901298733396890339378701676050675362887176310611032140713987456076176214691500949153195476138373375535928110888355191804006674298332310519667029395682484121733906966377308724814606056844973350522134073766957517475057989128659427910494341657390820319411855774481708617374060351696246305744430400373372240870305556913706652886628775835005581258115642062355275349674669520588355748771333191173680586020472789948247785963407766297120623982813177083838352981299074835447224198299392969651562511183691709511317405519177997137711818831243810742051280217401140404473378092070916438947872872149671861114515517714363369807564929482420257353614092463271770577726279198340579969301570853189039784529249482122515065670769620218898454617475447117103625617847196840688090347504589697343589617660296576097631650016503369603181533271486412616970404276352154322125167812778150111750370646656379889441370633209568666922380547344259449121564222484937156824125974333678730941270631662827713302052455903966039411010932227361530161765698910089675477219473682606811554147245024633024852448988315180156708993883906668466909292175438835831270990522499140379806279001281619989005997037107508713878571296982462990344935693034135487951173442256665481353879910417242263159337720161935723928137596523546446539209531377903769384554645489262594484062573113105371308708136648365044229400561353468513224511117665253397835421015163402490180821573078660499474963222213812601042001118136554443309542943272710364830204427586438405806136245688806166070581215465660297001528885394187309124137384510697702323820333922353982406283812019670999634066945998620731412934089525392313960079388799818165555403926464821326470421104554617551373131864092293851036663168767479790768609098541191265080896036611474101182238536239134546330098711065484392989885145611115945031762396948488148388469549589107285108267168983998120247124186422765560099851311055670880763603630706391558117330060087572755920714485894221832435979277210368938324751406611348813879392166855814000213814949935763963407431007307092406360046878863995816714269817514061450604951558878340405833157210402249757126323089870283083847126756477105001635451626749044844372652856900482486504851077312190656233989371276958200680138152262443604287551691110651876397462522684362521010535748129201795637039564988294663371211731589397264791814347595875620310557850844715233795224367401021242686061391798712052380081946877146844047858613813113495734336590793327299514208386057379853176554542976284774581144378535202470173786666488797142066076802026873350696885765999713043511305057564413848408693146353330989352569168355609117799941182006958522779014728963723677781624095370097910917131945446236541518030562839550739777319697125679907529752513984309844273807174572823548405886355684216804025061913179498764626447561504186184471191593696258723058624171166195518256350961183226393303507792314983902190940411324422315396648857234017862470862877066037989509887935518653968453237677499377669447718559439532560153620962981851871244493169152729803218655706243955529450383351941455910640435512190922319328982401670263618886052155434960088031323626781802956112469403975325292276075586526102494897999164051381566356006412511278094617049332336305005828512895702964783969959368532676790163152357366813239996418777469547259188467488861031836274304534747269070001149086192010475513363619906784948930869351162671245159720258047280791444941678765970779324369650266554726197545009311583241913070591099851102105697001407544188823904801044263083580446741792584375218325169668030831382380604392507997445635039209156941278676949648291135864863281625838547012258072316504615071353699113029327005783247403727078862630295809532182549888158205672410504837196788741126048116583194055979082811906501666309763608644696243781078571617764412507020888883389088824346415304161054736496826783676945472077072843244094160817483025251172041509233779205061954570299197981092802626076364681994096787859766465490731968946363594233788171554496181971368557293634211008289315839767765221438413524618039711368677265628890251740895427085246452894076639329673169623441160312276215779595781594257399630419906074975977086732136037310064974608988003724468409250531686279757470713256239406907764553928449688501083688061838190189267629159370335359004816315692289698734171787314140371169403969040445797693945178745122198552598389776728768986008807018506207065951722869864361927773921014235839992532890244265922335275723486874791013896538464096484540890507427968777125904808703926208878122679886462969390755543715030711181234940795095809229415293329864607377688845505455897677046548148059921313333813549558857291835973874594575820015778708079759045690536304040691583317669938796844335278765936952161551285806019356743823533186950222124240009746481033924418979010778786463855361912083986355850527069834079179668538397381368591828028882711710671007793867532113431768011559165390203449581175312243614734041778166589548028947848710206004459173081617266939681901875200255957832435398798959464445930095714178566264047428890351857745172677872111053336585204395515002915897885812714769524709106435059939886981688129483603011307373808016990422955489928933705608935009924453549969905651771181453248312739799903368634586556896093145813801925186880939835706326791277658990484162182048831108868941790423959880478447888951562111110128903489338975277932531032367801870612668426397207789663810323177167254687178779470510884604292200163118976576335015913991955182133268432923624071174679780226588891707196435960591667239965910040255817091268829124720303041742285756105981097624676408524449044491418578346344058004343412901274337727486758980325377690006217593812132270751465667370412048773118872885002522478355021937379299731449129943844887874499712289637498001713391664715429045451666018985564282563033076108344853174188530909773338218500796999119200740501477470709202897632902954895046748969780714350296718060065938767144855053907559292533254081252734837905220208155240069163957688692832410148696278136072308569379019800917943442455150761981461532199083946095273614738575827110906409178492578674827611201206515119379187154523472595761912180586293847869448425812584150061651275149004087658035421806972876599441380092056139373931602605388259983246837951119160090338235498049926044619217473823501998194608639160469432093162823943360892881914283707966569585096716980494479636331789408084001008328703137997379513708405588967443597562736167481826632567598404303938353746068461858371493020714810701304021626178905331570323742074584451543009432510532254566723398188726088317962281320643673322506661100205811491067103602329121916120132395963625774651062318331181618695677026206696998818872019182031218901022810287641164831308372880304533207070728362521406040196753027994927968048829909694041774199336492471891295347067771831195431805751589487337905661592107406220888498925809517156313240505978986895970110789999846179617792075687397563386235014146993338571428614934879838620462275664597675116800295292271044539028588082560641392809821214297945491829681355573379232753762469370100317437623152696697653249056856621420075314076057661395442781272949922983640722463584376760618081718065304131364567670271393425273088094957060367381829621320081236810585564751897701729883079844952983473515700955228688015914954609553650931513313010702096666053526204045787761064569336859712535088618464730779992379231219381186311219826306429231557928471814893421700777431047499645430703784254574462476669130200158406361738454066555995737999768212560407177547377984550003111211984277254756650145167614521713368479785622325298319801847543870055237069492441715856141662514893404413191614489077841614870989120220890265281893360586511036669966502809486279143637277116095123752220153038557374393999985445781002234895789754600553762662882399150253778202415750200685881367887026434530553843682757857841429866064989157641540131655236391052397193025929186628757882637366804617249046101028094012853129759268921472983839587380949806738963024732266454662963561637850727630892717240671079012125415203829773664243030290724984629694478718866107124996305126068293187841303996285748131852248036552293227016570477664609032924813261605983772602957943702273369595852079882167732256024446981651384668216456112725368341377167864495254132203887298797470909951984208765616687985657086020522352681258712211546385008261440732702350326717077793949400047991811852682980269757766493562201100157341816295378119941666106124575324287824581977473546707717821110213150038352629029531960013869006510033096142877391626187118366725242160637164346543034083415036713572444699256529128338311860134765380817952710159442348962064170360739311710466493910494548108030881167891834079107538860975420825040673451987742190448969273820965441091554504670421613577229742181784767244737472263464770042562282787115281217858976534204051996801996806962323257966651942428386677327137287885353288543281093343331211036663261121086565522829836734700613992193431579262733539993330368573936488472408481375512605539204453567871107818002184966513062350582655020007219984335310856569959029119314958930787795143283105060999220935471498175374250974755401431407695549373043262958385634494962620921041823304985734389268489773462177765030848253706691459102548759530052928301829072313672509949702717303894307297832705866258704891919172137137344534918423793510533150691100448791977080315905232188217876108519805952853158889773174742747375812116514679789614580013315751188474351399687121038448495634613282150061852425692674599449381344410709652871728814599358582457545591709279023426126288924895694412061850567126485793171246812402676005175847632137507489531761557548867031966065007753698771660986706185398892474791643969257603808213157867648914414377557545217164495279278395809060621555981774052908709877459260551731967366308123981556650546438746928849068632868115386157270995875410560714504201782566432338429671289606108125427899478739839088309996411383875024993879261333322805312599026356603351114014656156254393773650786479618144532770440372819328623854012382071931590265734505039713492381058265578808386815931807436029388287730781933446780672971621616734026494065237578693113905755693849201069069685617314057114877931745794853995128057674147650738601046748878309963200081596901614097783464511298245681159793912351591011671994421329252283138335727656325777851395808657142261756000358875419500777810008158878378594493986254262683122922410735499667575845408810987934856329006704861620800379321287242356475066998712247792529068135641372863748495175553068752919266788184072500715659858845407294794935600495756374396905828334363478072014608076133403669126359856260637257948170772190732906458409490437855520369772302591719756554743569227802534938112360736444623725199126727972645121947754305916679786011508215687965223916168031789179556288184514335601236918053980116050586434556561896019279461877973534930449311357770197556568046871530396335161420264441234653396321328885367522877333894607660225513350097696928819515811788547568161980778264071823654044529585707707054472278437983723399694002786551074138195442317102603986905546272400001819763728446730176691992540030444431309835494861751655077649640119706727209132499339995886589705866035883437009731070058305302787661071157306706355310859494510726304049723082113077537104429823901907368957422091339146533450305173588282192675860852238452933893057146495099313289261492511857547833832154538780520011387395001956480627040927194847635296789020640478911294863467870263710426554336155736988370475724653479736823049395832102649557330132164923408014186605202160605552375016899384785542663719933732600367088784770434387678756868242737686742007264111671216615356201518541635616289135306628466106963977706939112122632886421959731736578013389798291818475553198217715960184511090161957113147258059710722244375402075966435425972515820182065684711871540296344875742863932919563811488147243817436197674623167368387538283476521720983965731894372289902484438774258993743909822115060885117357152039477365290906197470974380391857163674271974867635103502297005717093673523126367085324342651597004458292671349554643139866368105950410654729199162936766832022302066529388683724574167428804838870767376608200128588388765664437928608645324004989144153291939609660922778974005290584029030570105103114391912694712866590399957605279140662964807088083224613446611873064597817574149691367520754335585770158477770570215568115608181779216808009515852793066296982043297953129516888918273728826009251051029601622341209842511167855985972851138953830480022914480742629160666113768572456698279427467439767864269431510891325211150655895307658180121927811010983849287131813402299659062903153170161191369767908728836616948444769373973026394430635769742221055041520806392319130902951811010828889048450913424502844019902348192384421412882089326312113148741371108230210982356780241856442907771578119889697154477682573554495562983414080115139048650952037188190528411350224752980610963805179754331273419141980583002064172641919559289063941671687482184249132709017357391552448472458681770404696112183223725229240290949795820372654494734007793282653508247167647721398823880387766568494576785887841135991655995934052593310031604015742302735417092664393072202282932865923058844221179557228062803365675131638018945835090709286205219391238050130684139817205833870264493035998391873265430427104685286751930683556174903541294851896027443526681413832202674486650298469718524498031797772701971728591258262113458276728453464915331263192287853600292557108014238987577466949208449986574746412129759558698805008450023580652792352628481897280301117892458791980189876213264196684558738890644882380085116765640100139470312995375227641829050929136136107402678767311980664796046881567483177156368040758684660666443101656311820332140540385884036790339145809928613160703827839459343173920069617151650304293426981150706090635667590716766918287439185543942901640813760622790923763604823242068969104021452237627164818465014867493162327804383360114505953386758094171894695765502686512654460318386372362706473307263707899626004108144600083208281825576715520096946482791228511414082539239500174656634949833688842025231851352433408010289131951629653843793747349467032292765376130795742491888102788299972332908670741985828461270925345795258268509072336023065871771864066156412504469834380525911177861764469831408600344456256676516740692411454496043273938917973896554127363522656669944008759832669570389675415021659406733568252253564112155757658794411550709800360996085123609006950081496488496980232326344540270737826840653788550975228993968659026114902589789030903522005069664903385212030585167714390013203543318445502616302512282148718416525195988300380725879034217212279270696103470202294429122534024668878080148567829913220733333120577218866557310326170973489985787290451098854764227304891626534870171114086253657973350035320434877355914098739716733620803009105524322874723375173758593644269088437172670917712598831815572418863290620081224901693322842641606056333493040571644213103607731673487290138458782171933473815734936715204731071672965486595345674211521335310128978894494831243791723245941958804712342833938267022975142220463612356602547161453492617671553974935566392721232182437542492110722616847787947502219529406361230140401515508429211539380005240501189174001824292959588958789875064387983953361740800003267784813953127356746668432217333773650881142624110407272780243290479750811176907062090150476139497603722042550426779374934025614046028563388626223307290043214846784020646334684450539566018042347449055964227507545588346158973353650773571333347376790257518866977586156662716545984360384553973955367426291497260368697699677391215223802482016248855068631043043203981795644212459337913052118407830424483119962090348630086837994951123240708589289765577718745396199660843465004133570750016013147095171915213113602075253149496613405345853429639678596777178724978098998212568948759566731465168760316736743132365267420262302968211762052376521616596319418237734387324516687804505435236655521322738571152300161865539180850922905093041900868461045861114947482310727546859021362125235281508770805443116810832035382945456625710993331673013942854919829719096199189749256919905581958896280659333729744416578664434761739527889447362521164553128383884269207059998254812261684695982412960337934495145759159445575841911469295897102987599195694438603432696948956677104945641691463585069240023305559637660607663267794600965817371365370901587721669809508122577921096561926799047937894820573636554181776056730142099925833059037074705984528865353343118266425342612570219197564155562049290612347919498405082021296314800394192790046622833291591289305338060976700992251581087957904040576325654675083494657115200247411976494347835580505435653925740150781637515978026741942511836398083988733378011291290679471758111792452474068352036721223087461853845616837108581284024064667402265023468538240197357897828227561274272614752208251240543865564515548311295190639798061357073155446883712284962449745344241370449399517194525813300918440835993274047840180388468720489502564989599373177193539776046635711613809618951402844738563572933508378466107840968167742288165761129550318827361909995414340133484595620287418128761176799046397077557599974911077601214548149453863988924504746747543896719637511541915800530780444909089190531271230617484739912134743694319152503066322386484640935837552699849483087320536630818199630131244361912859180895226595408846985824406994083300726427086301390135732605705194050065519695666894270522089859861122727912136351599167082276889652261421981961637065898475542021896765980994231411627969914274091897921228919537868864409751389513814862316702120660549937167887987820205662191561408775530724648540842581992021745954897578316673365808003855670490069768316194718570528563891259157182225520387658860173152358789788113390939715923431876534562762118888160755171024484440022708030112663746001617008435439781342587559448012579749140426065050704431073144519510990833715315312346243137668238914362238052215796198430437296319471912287994884200931437971215163337084478300059763405461164529322581717577897060340145028387794729939114920159823475894679744565763953546337714463352096698219312045109520115812504229343062752930098574920317953241087142258542783708419584520393266698944421134671541446206906199176858723660551751952672769530388776256373807832007427082177259458522697166411234046265793015308440208185830302767176620589154434601972976271233297259634507902660769301782387757519642913868344724556305699199018889268248863697799624869255039831488813746848496987726887021678097548886941773247935750626416578005074462630126464036534758134611608254950523549859268883126800629149718766352748450650797810089914695913289160065277885673714325781030379281999393862329492617506091390536177945010185282891086868437200990119382383812148648264306155036891677758020035828726746877452687842246168449556375542991137455101296620499046651671268990843600115545461913011150427055060835808407366916105464245210839937361814465953503956272764710429980601314242429798544136139906302506094442819145769560828441833167319153636146074436739494353729450689424129637251577456631306445119451590264122413058140169994999695653821508656043563266442958682738614922952511055439667584797429916543998616859931547590367656628455446447568326235581390092110732228936337692677312054779089123361671666201388277272608131981980743580756511643766945404676582514742724574734155325087643505193152367917388035289111648327574313031002908752149612407706326961855552507563842630956655208169444264502046797252250757127346344246628405032448256009234003924841401351575331802253003242752576288992936661491595267334373677912504627306888928223202399833137544188552887510417315408421995381896353181162466164406690155029109521308604060622601467057119083291221309852271275692525531373566158918522872280220623557995938736244905482089139973838030834920092637365227834426645337582622012399671999148998749291063646186063228422379730512943764363055988922617545298779163340295663839275986933241333738902591341972494215801170440943508338676574687957453884532778959559150215809260731806575025486881571004538079161305344485835399278458582136101223735349245689934366311941762587091684186736416077562299825676986613002543125630036985626831338269896267194351198432888779472500604247188064607559390369236356477717665822781456354220647416959960079940923342023395372454889774839536570123223105204359939772075586326821439295926861327835091190481006743346254058912235150230635793758529741590299612124154931419644759560651157332574967113066451909641866163686690500932500068430124095269547334592503110007543609332296691844564250262924699745319559824382344704959744149108367032411321812417734932581371904483885009034223392131566302034082690076465441797273430711648742180814088749921894428259309406556415765129882569119914779524503681299931922797705695214186886258576024886232032307673647319825855163813776291323916917659764271629274677728116295336048151355266310997011622554795586993806432522980753605168038508051636230173135908536797652859447826416022660908950406154934509143859464465785283825185331626343938347279462717982622860632997808264070164232653913392375589669544890262577240057981076725564957663913558306541989984488876256662325473838005997626997673321608123153476775399081734208633229193914501220056090025452097015844636370799046384819360981093976923114638475946010858229802683472025310286247762771683881692931237350299356060399004561485937705226912260570942036981452643734583538683911859843701360505562982884479106346905768655053433470063127888510863327833967389494358981897346334350235496267946263237391478722797895647658843413195782483914660012753175581491371996290295898451728701436825743446036896439132296634872388498896898630391276901286421982254900688661491922675421617485874427337253911901933192570669354155207309838419285266238084704960612272795131380578332393474673916287499472026740126089673856778062563339047635469567336700551479845988145269785334798979816393971929358928951419207503839917163774519531201548144473858979018430676276255560626012719757782548758942916850132962807887354607186597593040038193569662838382460511084998024392051244868328610599757198302686184651469780169735862759610506685868655817260131526738941292675939153214778795787696002511100967465277894510547288616759695699372529529877770411962195087332823566538051528400736125991063622035229178695887251291185457992161524762401822134998974817286886925569544639791068116159664559188246843593618786610817006077995328083815490112523970787204958296020203915334240285796917097491240691277092647713562562175497296485295317412086539646132226248132653323020845721587717822330118113405367390880653975842856336716703730027326875843309563030632425551896276696357312613454782474521006403537041040633491854193757126896894955674246424083276055876659168576131623809998030190401154149804272704585940952734623486135439305779414032427618081744215103342737567586822026218620744107428336669044859967300602344445410363691817161298565706688994307696623111987969749079721107249591632147747615347577036137470577330513425083058035301423149075914236746699725620337009099727475295558172102193060678289614196672549323423651160977098552180458372571919540091957478876866751515721535249331394627252443632949020937523716283614187019148247773660476699580330391043104606374665097202394591793262159271765676702808303039277856115150555599450274354276533892025887361865954376698095271909554314658328697795874012492390066744178681535799053960155483106808920781779160422987231991471360294682703663941362989636275592685009839792352286103275956236860406673864761950492086224727213332482501647257414567982702299760172361769327064410357254926301407706559611921603688278070511065248521018516061382076763276503383646429673370596507959468312442668742453787811825264488110491932288454270584796510822333758264484803945589676973066519344160880719302936197671352015754630817202082212263671609734396741688030215549669148665438474021151680287800893297978082189682855812130686401766615344109468236136033542636970295149420573619650861277978720814658934677875841577019913449868028541379288458925269088122859303144236197544783356940702713931457355510756718157475265591273465679328983313362443333498667784320872236608338188021091848937143486343910382542939771321629593041520452290070769630296114399835045269410599797894996404759841924900118631172195853820167580810110042004520204270752422951278303056514693752828467377756721840322979269326656838759957294563254281524490741575636955114673688763363374556107543063467841151772896483791802961196072209382123901408161237577355559888419759165658193554658504266202633293330851504233636153388565495468155587120422387666221729122065047917240869477940676379496351686724977335294653858742251791437840667364684845803704250757508414165907956210474973065875324620554758220531943436979410008276807013614308977825171715486499946806901030381970502283632670673283733336777049344702558010508996043067847600476253498630971567373946045459833378923112403970783419234987944200699045878613889366417888787474127225623395201319336809271583682755913065078571005390016226025272813250994837639700558071202335204789679025446034665021640906352803037664098992639724387176822959675619220705980171507810166253984958587216307143239601872202550700060879629749951145144712035083301929535904336538864138055927140555571860668790234276543212181483934910624601572020160609010783936789946841740971851169613748824669559750596155139140798369212349421130117698955578169477349733240931361824006123110343761376048202547042862070813243571096953971801862360559140071871905621300380335053587648046713979917013803323962519435612217668747514836914612073698750280549502469579103926962013589942562069446978566451088062546483276167318767360222383880330149740755216669003757282638655805674051939821032674850740928245109578415490215135750499632141711144735920055695456276754365252203216630591392216318237672112698153636237544256739534549981206844960137633694323551436990679786934258251014484214165966359245668243564224920147504483388274065497331298701296313441686464706455710303334745695601400172513835557538665415327994891319586096589947882249607116257736432641624615522991755049431018361262749686073689260403169515579562767024515081614366112078189816107901437299808256831664553118526752045937095919664278101109054064426018349850822662024697931663647633318592485005049479043855351692583404142417320486710927353429435099712300385932021936341011851280278982917510295397930312050732603839076705416103568576802695643308787243105972854291355507074463009546288211961226477424762573142899552363552185365830289512634691461864170053925906692724419692868801656052505142085602585253579804954946551416324242064728839034542981467761002141389661548079439174799001883111742588102306014381941018585879588631836918337419915336172179028836284418478339603196401443999165902903610609350342028846583430270638337717238561353914845465054888943798193765618235261032934223568154645113643782221187406858474482128525675201824343818518179789720015947428677709071038894837357499873193950086731487036977593427186405545709874858236271773337410121088765243834925719489455542567468978739733875088624785214504474297155607842575227008097190218827334827873994428480851001734706341645968239260093472841767209903098298086169590697188985041893682608288491986452153154878957866030094724147042968226193792540584740234249512729702323499000389225544174158001435893411041468207851966145020940048983903852605897866098047802829401833906429277058188456876919191215349523518256586691314769386106440116307638895949955255428903743557803076853483655522805444626608532865552146888577491509725925285015187429187679125338187684231676460685486979705039567729934062435504925003660582415234484862182382965605494282688005832699315540276982480073805278872393619991792164055692132810742187725631440741871237120032484779900587119950845238196320028400433400277861582575344178607862877687907273008399537447813786231507907801811559824835794955579265992052221877130867456820105601200498319627395674299249465207746805413329312140397990348023272081359135966405247186114936177627183345624413232420516906202769797435705091492660498260614681017075264119531817951661352526283644288329822044384116547009324867044794685434435218129036481039838937595737185139573238471846227538795354004815364275369843908041000186736970074709169152697281787321886091372257228890743011326034394905476675508994376724789097751372585031545838489406647806201849378010479277587077698477880804819101761861408267938575522722285899319994505440454601891944089430501366567526221192907674506350155431644855125969278105625750478447838717052594079333524203144141575813342838043991215961523446670836974652379358657317813550809043411605066798405169543861905821413652304384912535482456333582781732177409644312956075149660678335010570288956190442310202520785667792150023096731817301798715918258070060774724208556554824929783255585467076889929152267011820636390267016108224512682447625571983240204429539224147073051602706985507725660920493621235439575534188960802848777620880891325975053091999979189718779447960501898772310672217006998287257009593034521716371447715796106856199293976179939222986424117519066080192243099550258361950467635866334442124700285610883023269510867723927173766229155050346968761613337958423832032029807714446452533159466702381090400395702740636088199695679777503246045950003978586132614533226646179970087466717200284934310389532522985210331646913248502805689863304989287740575262607209178461454928495075763136507879935382276943086395357805436022350605049952344118657032888415600401060262838925376871352589179134715563007861205097115118545398274503404427801960278924593167780941842886336769225299657916566769611931848431798297186455267496410995615559902714622881105553873339584106093740303996652097575477851833733569609576009955595329906199009005308694205216987129144037481994149902903843659255583095063508624129715335014128268106830161357401752769000034949304349728687488944743001085222087504851788927691300027289124072550188443958073187227705975297781178711526893392854336114430505941962231182616922424148749005185895221997935061886091313578150513745544066675292761110201446082859029801998733205728669394554985447172811636540246396754576390220755217859764834430593699966955460824060801170103243227170713641219138450796754367337419941092371251575175060548637340643914109331951982146462227261364346804763587420694599310728023115341965437201752793032067542571878370842921834151328832642393054280376093007071814773973350835674448101783099614624754253045590948747068526714547353631968278844094042516573356409856940686869876721664844933417054863113580469778311230108023720623810698077879410273481147955324133932998449855169444683649056527826315684808811696792309032650053546479431124954951247299326313675176636452108859351266893666510270785454409606144267094397492872157293868783301542584429619729553463138904689255180414814171150765228572633612560594101682399572459453512532554597863758102468212868628202211787491477070962892455819408246833621566964243219354618087776567612090219771968632642757626523597702549677270250725872764606195207677611609885046142189357253052618950755559614338769794329824892741567004320972455679564640047989180352453511595561081905311861167621370948275632465584107041146314103188730377561208645665453083796756147600266887458174183010981302537272260742556887810857945973080584565542369412268179829632426699493429477688623782804718745702383076259240279701838096213788330526429167359652334295631175954214830746533767908703513803249178796392740877006768616961334089893681852520505515644245805142863749042569677988285781093501623165534252651108204503104031050130132566524461958365808761034640406533577805773756754174672090557596394410634686956740023276480303588287519520860104321685261550434141445170590725474709618066905476770684884901305910727171637957427490971585230839354860873810077855566341733148454823713782068148621797069157494038503291344895718228390782899528850582410868864764596248798610658125773416453993382568040125243658225811280433733954962952169479358093634128061476382617970746318927565888429873725291866644142530005546576871736066216255910559740043071377648471769306263339445797292318997034999423932193091715290735449102188511267660247880134458892967659182897396034789201171096808082494237595005431812567729790688420018801807963993141458808213414326527876583037463320134304430901892059021394877317387968718452904713509605768953474502083763010250013622292244836682166458468557352700809871306781803704032346990842734628921537911229399070093390756287149952154252669343177473045444152243120786845191269553207852181257065261792241952003616092845729412844932305568420452696847352590143999983823559811510560928679191895366979878085836025762484934804456193396953489907704421727291910141659772249884367048551799679881480419285354411461058394156390930954652369572915097460628795590286621802718058614773407958123353247876549467654812056107146720275936786794149121616761788892909413063355041247284879528261274823052207778017288832956970495500629467799579925969812535088628746133863302365891898742596623345828117937222058998117336108191290509303059256014532249616945421034223853952028121227788702899483356468166585881031911322154445326164158780560269951191936224476634786217762942082547108853684398355851969939219458104172321391574285276783292487045403331657244437460098004295491552143388789517548701650019629797826937056174967630011397872003471075961817001720181743986934764622936866639368736449677084271867391438627705038418457263985487711972100120841507334749053539836170815206294215380689239844864760426892623918998833673634627744592068130809986858944182533852311833061883720567192696710164819292544521842055105789511269947819045193275393214945496417525643563945523608788213316387093949669654014302968674970666309543666104812447557170724684751525474291342123502429801817576751029361387215913233256420770873072989490600429779267892071083215582430766319290223943010686417410963400440989311384967620348844249727752729358131632649492796845073288967075208154784790611598855639024092451912039065473895617762616012934953452021855185685394001890766696540528518048862941255070651829431892432559867892195634608842782271564397141560196409627444856912816591623029134468700142569829716015255883010077617830682539483237084751716770995573456079383884010320333437339515235015277139392225481200799733791130309408739046413002618610575363617567647655702920976437754369372728911760299881349326274703564025011726341273836028197620013903922454401045719244209662854427622970625832865677734073430670626206659892254622720039706623608657051076960534253199027274660754671600689487984524402063642144588408340675724257328042733202846374526338515217519115726614535570930041449038391565019571478632181845492460208464921645176728948137815722436579025426435020609447672789554577904681030257359007102515395111349817803424986075547045636334194355106959618747663568692224036035283437510414541707607210473695730782473156088569468141773391649014135559114528848331638558242550363787259908650716250638489257119912674724481400664916761765207072731796956955367345633156762788008920978638290939618492502348922633215296161549489534596902344068498813885967791378287801375761413695221819443081579268013394932866911935940622176782647470261744111894625799544005025056662896613106381707153373049604776413689220655373951900687585663051775385466866322919022936042138443590283413772996782177489035175423367227473376357863444178372057940973993408571900064477146515495270496938520207870206930302569495161334632696740096069402385373096240045531178376171176957773044039313542313246164490837714208022438050324690879030142161505525866730877804063667506072218699890549939242929799129812867038730390958877995622354018363409496985117614034193625900418463780949411836348429870375892786994587858151113919140926726776543422206202491009614407093056590937104197624779451080857975234018251242048247522871375283028863902950670720768980412872425745912423131122442171141855973194384425292413083910404884553732593012412516698123248304581003465152905296340709289339908386405218298603002049812022676763380111892270687829678816961533146860878489226232503628343165128869604348986212051918096006087362960073979637395009625325720431465502486112745191167692646615589608929270074137890206593995566811120842455478934329165611938871029395391526608107579803463281601577876310615961433423293596352044940500159239918553307399595446688218624638627151332796052607819887168219554548242815815977455412251002381589493690943455978529336448836694963941573323121328258254198870136268519995413513071847377878003696535191023343706242888941626416835983558245303692612361584264831103410532546308000618310882167684485713020736672095180516578491230346463142191051678850312674931455453638272369939069705598790255335337435743471324063781605007662626947867404345723280938373125046797091450334415123568850492745414191694232169957711599168307626357866275831852087024646883868237895207260183046126373315694269876253613240081267753117027881628458865161862745726162806225132930838334349984544297942535050808079930903530338869079605964983018896015918888934986938191871333778897053778838857077675671075477795823143511195341584877741867580740816554907253364399591957320337505728000785647503301877052144000328539887283557932372733675935309818526238819359367910155411643575210209831365148288828364435611277283376259633786598773315368835752405962809897277200092139586662229703328029268897114277679055676791254430105814051575048257145631115935679566015236481513776039981878541462486194457442760543498770940520305822428284840221692262919761066214873352903310891776312180117712678997798433951876926364478249377723995716959878998647893563787829010931084023366939306841157287225858662350447989996976102250772186480371097254994534850440249546231671132203949498963074953697727364772366995171056748073082847614364958485926748614789079041234817944501158315858345457047200527793916067059945713899516654536788586059922202236566063242029182928075760486353582836662889279086633529340495285152021744501675231817516022907700867261175955479538261843947584148818100654820600221550809443624202829742588257400727961719025942451937242343324006665900217566829687742466684960815971069820096373912072229089563076670877513471036012378330321338068546245287424790766302641068793573049578057057706392733732674722303251822629939869630643992934668515709140501394978448425177118817914657457553835958553936309093462370574935219620679050718307696762963556419769528636280152563252561026097860622044841232899495400755557306062363808051651576908393235529255358761746085293503102500767529965581806968814870243734282781494396907250389588480690071531756148601884919374639703670140546393774040672781112105990507937153410396019827874427712864783427060676629685145294587291948228444897700170764678173351519114366752391133997203529992499784554943772634270105764435234995361493301102249052636331008165105529093700049174462646711052745533844494961417811440195637146385306361894788061008197944670005127358800303302944689247307791482608506765161432750958440464288186705648631590537737468212850491384154284753621816495017913977832543269298728788868527501551939441131126382187722790549003980505161703083037139480386891743225082152532781028923223886729726454517823013812208985017636658218639263220132102620742583097285224460088087446449692149707827493087708029032789699418303094422015249120608407489854019743796931732467123950564500466168352975794157591932008565749572004730206131905776829419319355639203205789566483513629648816442494079593140321270220603533681929429257038412396607099260169244608074086706753910274368485123300722489444775627080512469826932874488855539987404500331237103545846121358581707402501475487593725027221441276170487379425426396261480540402408420381017462783732925466725867865444627481743896688565464594229720277123390684580214519039308075408404737213352890117931251711463606097600300025080651015910073630527942645160523457819145042314353857850883694354189938535247996078364880236648926759549194895101316761662759788611052304641950684795764243501817120668600919514904618936480222469715791148540283846461614567016259262998617183286276017948332339145399232620608656851184762125680761165319575095147010759852132394371736654310816855032464511402185935354299354258625966038036048370510230859798335680689271556756870727586343727123499566254974549073228592651110672690465528547101665643927061418445862635523906311432489285094155974897287689450285313466914732521709924979867587180727153334919269120134377620429677701476303210567769209369199551829108862486631341606501292121708734560969182560920928455261862905294607878023095224524362952366376067887185074900831300013486927155890435273572448599490121911390693902934136999723967914678608396476539717264614582342794923949976867183704584194851045978677669560206546042843767922012815632063696799807875436851613075224200687932502047264428087018791875262477285141938772926959861650465405669455972665075064734556582507676010685444631560171937808286710397472552894344741366805433921454233215691613966096368368875097572584440321707733327132514538569376326659098260733644629780696488702620051055658999144025251776022122092216790345191849110900356411445846463540675909395470315571820915575712581828752572704940798109617176286860214992595959699352518978847979308780543539799235456635644173605991859538330622570708788678584806399656816858566351286769177482406420816723591920102735282484828421402465553979592782887318157180902143093845581429044208443630414787695963142385912887668141265880341914763990349103855936778641054558565248793896468951292982379712280569756049232466629936439271448846157835729858928406966157154971374377053832651978227452547543453634223192677283456390866912144616764116478717177002144936445121518140209932373461284246517150672317600306371156670918781739731448439799885616963147750677210947196616019941179566050913832471287424458617775999824829332882529841738683294504881092480992270372302409476979270298283317242451934517358712346228261964469030617101597016330146501284602814541081696548810782819451560297011517417615265982725905129074618464982978458357609559628355298683625385921011038302924088663998532080402016683709234518575514405867595151091086578001855297396895587545000143790229683148254747163499976448021308145085219329256089665143737846650905928412067703693659833719986705385627436285572486122819670731225678104176090146355845174674685692893461800807614138802170706683735810546530707846152830429307327529967070391279346176884534882143499915981825010393019899715296252223286138813563312878945897756751828036210430632316878192095901970014426666650292069287787064617423720982539052903839646511587784015501673542888181648984500182813627698729483720357882561209804112675469626073050244026123825078943523437999438528416172484760109147302576675859113896912509175130459665898807792244039611094178324315482006549834983408801065472487800962514593956387570095113868191456849526516018964916007966552003793239940725353994054131595250295483461651538565601452256648150014719421213186473121990359156579346015379009086499394906471154710925274787810457229924152088198401286781810777771531339543601829977499381315109924522582581979666725502169793991725432958018975680422793239168629569087303155197454833951216453536062791661960233602578981186748190443302596674716275211940032398306453818113590204793912098154312941341303098955195426523791128274354694427074166875272312777428630155891628158620412359497052461031959731355690103590258090241495094437309104292654536864793493343768621945285022336089859030942581597055669316803185289238486051007528825634992501337021168591154434594332554348335468671428050551925120759428212168645139894563583429445229630612509622471794026786857104043949580727767098805905462163669289170445874337286660399266872799248991792859702233953473139146641683494835397737877205753710200853459152536501607711278297845122793149549059333809403701641403459581781373026139985426284458777901776186057601570420641830147393208246979185033514842843328768159846214304653097594037776056689921332536041043223266173507259278175020617654202714028555149130837059693368923659563100411438484412098029880766526915471497421078361310612771536511896936403050607081242211308607938675440057602666872748918974328638721584323171717740953411982986106340942703197071538839377343540836871279817274780674686819648041562665065990067726060014427310586913667453072274484680146277661673826447774835554057200332892613609119678601042733648297108047051165991488807257117789027147362162898609944422409795751114500181210145010846615163395306459250413490700051752956726637391149325919295685665387323965513059617794636014917282377749926794400372996960583505898227454777142932951346193901053116923920105445236815919787640940678740289053133489565667908656842920844997193190350892432349310429251604411030448777405251960302795135539384972884235176403221181925763254552133658323571836606123220251936899572533310742849995486868204909075836616308272931633628822610974909761999123482620128591071145204906320813726608028379746333932912402168532540664066948010533273733865986334804487518133148896605587469134864854170703619038304711319775967632778717231268055778328928885030858950471302938264279245115409409512229555637542805559269559117106885900445164256775470436610244864630144488844377192489445714555860843674598820400878083493354248037139246952026092598843936744495490024873167761854840119601620740234888658356091021804651138240751578201236777405614843622674314775272076955141806289455390947230740348450448212414562763685713030314275510223519423665609619580000703506420278114625561070817846299596093001498763981948471323820908478009979578426715869781098499463432358113705843608375503853754515033864160398722419030440972021188787916275901040569218190479066225038712970150799410848340450487755326733217455227896322901298431199355904042935285236646669696788188036558884903798432370446508729247301847472920384363490779069758047488068059962010168838626934052975503573237393364229295553018740113734776968444199168006550532930693409604672482576167126048610797928192046348262228619469623002735802357056209670473881906760817944497873284819068586744553526768823511472258790919405167964310461766168645344859555785009308500473672045271588440572347179349485300781887495067575208959834419631564232076149053018622958231339210555432677693122178601765180263091028018677773339227444803227075954636769675299750003825792546882334645657768014087643375763372887023023402910857870029802498184035894934506131123398612241849234132707138884580381503868441971022701518599484196471324626526419584251053935327299774060708923475171140358264225500290787051565206194983261981696771464700244577063504584608217483230015451458246207313520008249700057476835783706217521664941091802346127017130603427429333451089833139261891642926723911985506246008687441827183182390499297297911561202717872221418303425429190876352667435003208782790530013354035255580651174362340390107531691378412657263021777748638961500415057338731811622833255145760557592950937911812366903950766836303404119928331559338033882824041785518542222148525576260859438392763184839750981907642274929868415921226266270886876546505153634460021769655763842119588617155444569619984534759613916911329394280787234931737811471944940568110606333925153037843324532047118041258114034675111134366467022568305428310113513191451913311795375443082555392295739231747818914273235229426731922257495439216027894838979202405533190801459885464979930459909910871724414971949538144968972085291309257389523342979131512646331923427480993544666253804564906541198290384777143895422501364347009761362775050176819204206050955217550271053752766302357245304707904266225453051556576612845783101135290757685700153286072997942991161513794138586315247998149834453670033747888230230268162288301793399415760634778162093992958396961226125770904824585000940564711226792130442824343723838126282547728323371069809417261726783702060467674041563331916428786274658207911987270557157179029301983202312433622830875324405274440127344411476576261153585629848587021706733916866003618131669057257134759859086510199034208283191476667082774899194002939964705988724263450777327821217495973198406484713176113877727004577768738401457669083645673538218091766132712879596019410885985365949736078149402142824080029992293171906418758743013557542042725872665945317340370943611614899094658215980134373874849270333717179441348849058902529350556269079959442721240611734979680730797239665523496845529385646876322996014517375728775594295058210963272110365899094128186015733048597681394340042406743843859378503094278016188352972299680461359654891392589468455575314180576893761213959033053037761820912428405805667761905902639425553147465294348240980377958743988061713783667144293675908106599539146505838622611630351575481796056028716645662262128520511370696862578880459863726529550687112376710665372442185106078018414328074868950961121071275914913043376764725278911391119486047217398268326145626319085876330814734488592151294884093858596826024968214015839268976140750667008480811135828057359009753707871620501593394772128941855772548116798656707072500577203201185868602975161226078716966169209615267381081059115556822491997857923293981339052044894594256990626448012666178583097297840579414751536569363076436153332437170174501734992756772972491661036731894007766446942689502402898766437499630665093537972848608865489565375643446064843666933383292683957294641912194309083503270195801049459797369292036842692850695156793626915914353999404817787972037807197443444523829207371488320811459041649006776539672895462294224619322016741241572761049815933527211372459409174759017032964877993842457081209153782029524004184179294960613346875085699040606897776496883354791295001209742085970591712610686879172242684866953379067262087907557158703153043880744440519622864081010841011816669753284201139112968352923289851670321962596424177644246570574668658210554627638515744580498175447136906570890825958470601362392316589494508272944832971610691005481903857873990940676829100423595983609637863348234789257696013352878013840443352799164004417196439671709912591982537082411209275931193013356001507193796624241463417602718823903131845835747135728806784124622108446153028866025277849051816768383615343572785391145507984903348541929083579660569016824113166772014234611600982992678564499310676838773889025910605850036347231612706026237933274469970425272700269083393225113097985459307146680853918454738287729064224627484816731631639289891704347540005214588408148300498044478151798617602802415223200007070870575130786701986268195571358717256520736377951980657052717166076529282413963516638644961110474538890048720173422636191244837184668876428810687745640709837520245459191345478678956010287901817479766405422559571465545885908650056233046846165977698849558939613059287833132596335691183431661929543424476605680293747892622583504417089432334688287867759165468833076265650683933620027382091460140321232148756280073709896058394534280140937433597366730144116505264696444409514367689298555855135784199730862122198757640926605641404767386236756655284768543168149569628359638719578830637529214402654897589679317837833017610791213508645780575574748401891736676084793544357543944580569089826606539936099049467536455191407272327534646021254236643820288844988829962078805968448733735598522096558109836546485326133296490490626383039799597698488002718595181170887661815037245531173028630976224879226710302095572155862360685454996845250177593312911339572105248316909556510726487738365370835813369616738428793813889498685286635865876078759871921739355216019066469997628143496866403924809802810910832980136565407900902322791770869482897312619146168595389966929162754769822732950421845564401815738753084197031757174970959978143079570810232812724451497892251176719811750935198360351004242648258520280082250820984397839092718331896033422100997581446391925860171866468123559727773210377252615331604406331516411053561896251112558220600065829710598259090649899012377537115034668782271543096869499383785061974191183369657568364769867655873325015684346745579975936396133078019067116555282516293469908585232269190664758363527428632202581533756570940040253139495883007901932817910052443315299846363073034873559911338061578190138653250215079949254300485071242490157794895249658772586400517506547827511747478086074038507725141576981497715003195659888685012749965886516603536062593746010182197114372384230416307348419306284292355591773129929977474695726772938459187674700172594986802590233837743368675296217040465446604727647889077106128155336689510134448032131449599240419701350655870882100233183871234558562535713818565234402148488982504072324344042038495041533713597304528483515062688037452839544354877833109671612239308903254183452968448748739263145169571016484474607568065481355357448669517929657848534677831623881694786732562573256227227850049085078342441954139813966705194666771474733965603490668567052567621132556331726636485183535113465654559714691934569387108038922949938604885070433316585889584974601129492145856982478408241558378356904696508834998272687237453316421180145205767366011557477073873820850433361214499456622419507083892305166535579515446331746749316482055420279318160017166412760310175777977758099726484726017428075016685779511100242894569632618193592958179656522661202032692089741382304372456921658007119270974365333626710637377745548832778663689704453007058545852936667714515894668975053213597635543408206504353172259934281916333520602781747277666150616901982065912120506484838038005905114277650230538634913424141785882103299359195262930589858798409223031042092239483680098450677180301832118114248132235847473650430685397734584686921864579826718164936469252854578125846248001814367136852937972195848434168199469690938850840705357590200275401555497533870492297868885160740382694147940591256240738572739832246014360116654341190641567907946123422771562385208156271195457538808996511741733592701795014946052409617633764050304709832925221208350728810981540380460287389045600611063823567577367609323437588214295219670148881750120944619247467119307454282549048680492255832933424884912151147724538090786132382819574898951845967470090892820926812091613895316548185182396370411006360104001964919739578455833614635866909224314836313582085879618253323170566022161032617909662213652345758637021669841889572475589797074635574645819227837252649869098108682479191195429333604646365024870160860446495286126527101886648297090312984895290229622109914969317474479986316558456695374858735084316390819406230563329951842674814423023137170159580330259118983276240672636287361106014148073982572120238946298539814656281324308658515407846863491515478293676368277309916982368949878790382086174011404707636134710917852746516142871491374712765428988569507377737926500699911000477583655273659391002292289047816971073583467868712922786046200434323345432827856203316389580943030448138808025191791845411894760852499759450537039450423916722375054870630643849984744301552568019911322039233652997280851097597006367737548939086182799349366713392303601214350319607993557456900258373966133077353268296464159579614300331270078197627016143412673953356359833441650951341359429442004670837766989797784585116518387031263889077327975862003736704221818599462245431912434313487946642993646638900899754572620307596071955176283606651249200301880923313933715687239128083607810391637791204278381260171921814580000796167448183177950744172290417025589417227574168423419376881251645390044264036025679830953406627530554087704578162625361895366606464372925003659182136116475350312377138137231336213960041508272121881247607373653510805365959281549726898526196120524170309037528273387751553858374125158791240646177443601704985513132869079646769696882730000016508375969909929768211675059125200738361168838204112691962116392171744461407513560726416842427000110475918924792119321541515300936603772891098194234077051310628631162657768852848067299400212450143503458780712941826251860150715305275863325886347746058149779582151111898259424670154539871797996101794939636536294242571116547092862198074714599350719040165855064049703535381447074444677910530409251086395042943112712643614750765250326791619977799588551984849214336969999757354311719133096263565695029552038465001832553384868879953568120951206219053586469091313448068785012716316670458368540104308197727497822487289678543201703144771534602609915246388324020650309382647242752579274916062296420764511256600081987782747391629181049156814113501327461110930144924322875780305800506503474385819859115787031759664712386986302498676478656346638716578488603124725902581623875733440020299734449442341134885111901034453450484482979337626008769302029994630856553630835204635349591725584122978898993567310710950709459875302254283001277931669046846175495626087274665963587567278468856882798984731188155764448912674457472347476131769103784326738468833787362965840902125692714806827139666017382650805613781429014294725524652696520526295881091215729212982841979253121105022490694208476456526139785662818516755793454995981752904519465491051902891840007439851650809775186502321001061875687119758977511110281652074644571392312517018799264127079511989162743999996703034154318132854524884204445925800222597034978536840657254487966340179220041565341400159901008751197068766966525251003620148175904616784139410062984186481489174349994021094200357924714106265323198772540744246350389776836589197554091001678708018170941649866145185149839219893907009638165659438795672286790396914086111799018761557721957199328297775126843809325487083933589220867451243738211424481041319664910913626752782555240358491578525939626027811232488343905025932210689834619203915375905150754457370991667165036650801942435294120333235651959697859767709665349138016204385867313954830339753747165656767335311864189991849665813317533054100462948112320609325062618662033198885256655099525658186537402023554850079677682093107024893425264943154371117003404223457820982150276678023349670432186894429954856094502174433113267327559623656816886768472379796914381443540349673833495965505118748873621363872489842199243895184965492635190642352445399513204484255593957411430621263110848608115906832561248120221378725797137413185838013414029993467916945503217959391758242836867185929597376320978113025365285915753780626815870323071694858374032785989342599754069249263279465294666018763768667246069289326242876156223849081225460833436755909469725204760400060758593597819320374371864405052408637490794987213839310473890162969532635845772762805982307156751496209264053554876250381087275154870930377211434120767167436998162986641001069890867559029719514331222004027834560770265844474134445549116362531718581160714166451732629038217111648016585848214736051138226105148062273102300900932254974925358180959129121529185598188582050898590328784338133225400180809219327422637759996553507306705860151739300991360447864205468454420814679885595115474005738243200099401471183241230006012696669698425712437764804647325456549470114400193524209923060861826908208919083774156470856911601358806046632325648525943516157918368391903722211367335925295344442787484112367149873767903555932530664611263413474340422287048541404078924864086165427632022965672416860749073943772006374604305216477311413558142713229833760930765284632178784623920899597379235431389381758758454004783541661228929495838853181250861019419397428095997131127034185531179242796930047922141990570024839175867183496725559372314035277084473154961719063348494252258734131125109309302152041067628717096088425229870722045312478321053824513425683970911714785626565818865908731577775448150844380860616096185038017387814646358982376407019474720882676745303353174739391642908813514002494006718453924364272620898728675436427246791709520692741573621579446503417078059950785158345457736987218284048307188616246148505141154718545768822635690872323911499687303292578972107658275765071380167345499016928876943691993975877389104532098999749390488697367788108732193859523165908892021722646538803380170258187338371497689896591890659274907638749237663099432356075615763981082243926205634861724805257450712465529324783163940389537502616245655126313268762908034968217134815124471094962069473382157190088881442271712884330763711812699433301729753660432160418515395842428413864050427516492673552824029628462754859415646736490877138216016245961448429406545850538508421305889032790453839240317551318256432590610571818617506523104809290887584670565025359715759879706494959786294762930069145660704526922891401982350376690170276624368917266199846715040164836005562453707718803890671350485904895927449834975848448479034664410097778094068390410785234729547140597583730227458877262901339332332832939958436702675345331541323347618354155559340095249540837756442743945958465878808532574989619645656530246859514323083210454954394023708900155135532379724147695932061575145815933594790838088141510867202365771695747660224193782067470961897529662830321750360683577543340605855326017008739220216372519585171448119569762684003324587935921880409801060132045563258142441674176019442204543317676770064351069751777666552718706542509533645636887003113281140998323801430399548456635929428143706275656876129645853820440305913422564761706450926767710757782598939865556198552121781091180923069672187465543540707369216740824032073591259607063657339158132105955798991474108706358790055884477041445609188555931867465461105377989341011505435025818752260933551516182041432314686693540823367765118253284145996767112827251701318572493698582650251069144697977076139232094761359117618401382497490333646836824019725412339055993567203600498096739705333687637130702285648440878805192990850818388309571234227277816066179980324493785882648144505826541940334192735050603711461681488641831577520384640965074216283990301814457210820322092873104151405957945131626123431168870822139662226331498493845490231111628207113231411796817137814894549131816657535808687227746511988321763347248250592120330961490673948799663856653201012530987106864856099617195640030055269676228507573589643409901370777193634505203814950060705041716878770423857082672205073985290422251225662139796840011284044782371803867292562893129386122751528142149504705589529911282910381756541022852911802906730620074877386078661272251391571133342587435608455176269655007789874565670480768841400298282460992176546618813818664937912159964418906171517498089327222000725114541877234890155316410157339194538353671792886072934700390901037529449085190055876750001434383041449206622448760253260991691850945789296771050105084712943765003965710400036000126809675879922699260182941519663322239140515571877985542521614744997727182144914167249929244991677338180227211161379765039854865904076025071325838558233409331467184808442747837489087694358179219091350120261654022735769793987959902265212038615435969629064686943505125787281441456702966171101005172892305714599625128745220363565391230553812543031573100112948309980882504941890377818175981519308097455652881573129108162789277027260618576546313694422337571060495941541810843119032538019182786228159359087775239442302674684471413605424249964169045349383436208284542905158521410249144799794072797077945621229744961016438317510879445580143479451474659084725253928156985125513248851975994336952865653725654476250645953083344629880047321379424171566454622375631506426082413836854704710433844699345383410012948204154213143159244361809737479005350302946746731051075177822625821957013158459716139485109926347178730534854393921959913705476115446344307566586026867468085946235415979111745739624435002250529980990323769684602758834602348766444062366407229901936461159483875926473707651350494978025834170540028651169679418783309783443636132958787995864034295971019575305873777060972882488251736723413033887996058902361504148421643080693184574688409878930230127181653396223009000734581166472272267515454910845380771508729981604443254293901199860869008497724395789437554221117936813331956039217798746743969231574537134614988818878820746246548643884078546886426250017865637662246075899337980136948254605772353403264298871708283468442881099426622585237989001238846896733036033661483651937549936019204477988883608729101239546468241739580916907828672833844177474508138081221975432697523531013909385580433144546097967942578725219674501621498786991713093019428089758564193258576110109343111792989775883753286833221251788190362968904736783376992600974989210058650570403355273847405492962697467516638942036670806048155927628396386415834520878157929453005073287683877377951429835169487952339649188998752887966774026127214470332304459774690233570000358394658180616874549651827490493671068434750076462513613719822540548158830765151000394224237025972766720196227098143867814421602866217837716433818927027720256020390472683145163708315027246012897334060294729175852147525005679539216830944558220161491525963351193974262774718170392815787121894080377781604827023430551631115680934468045272380664827331023223248098509184634147407302340371784267273910645930254677671403246648974918037900043295801164393735997373820727377723298867339804713513592514433975166008530962117576614786982411281607688810278729193450264161393360041942768002196990174667238568154735695055046770252863513667820387849766238587355023055378067327680739210738221864908116601226448464166494310305372630605679892573878302768358125165052380026845475093826105058529729338377229250562965680063807928549000381670089310009020965037162410726982293472360051451797049134277103419234703175899164981202389934286607801939160328596834675511866360457126300507270423982590146374385558255293241571466142747002375942170654839466334742496456618821272276896662513397441038292344373396723786480786544542074929817683385745057668696324287902511219057191645798242576467561672174352588475998335792281849687854378806663348019742130445260933497411433294521388747993252664377523119756794054373796719042139556094448249539375828543035666790555853628523945592723393503803980604016340459131504728828484608852987576476295119442068665367727616629487116825457205051343259626819830204245069986341773653552459732514822420039329352813961457378832191223398680266128726276229868326407716299580110276328979279542940202304131394908563961320724386058115423965166644450595356080114980679824106880634902389989575584314165871057885759475270991479118815197478361050973830089183516928674305298620477728447991032127707169753950883126410629776766914420359438679781785300365883764409582790253854571830340827106872816448476782089301722035104049772266645955524112751391811914272219971334402043671453039140357462207595722151840287423160116310323878411546743113990602908547179165663697494773248537571306399913673539866905903435741796628426556442790993418474545700907160456464933464277327179038576849983475909269930121236123059973869551628058509735001544155557704576560428331391043853848234530660592464372522467727210694463189933357038498517520762818968917756042558417882179190637840359702145786337869723641660057971946760262384759182344783866765028538809057506791748948914002205138276524837722071748894550619046218135531205646514244766096956975257283673024003766606454249798644342905468507136845274879348213737639765936350774580003636545123423319399746816411425557215267685505273664825694579856598792149202557240265860887894013574598306125291337413355775363142066237210031099764952651315582655961139579863155905277300018937911604684471406044424377405515238446121775934238410777761031841880317144263296323232070878519493334998124613674430208443920531892577101833069874257675579644812317945482458253007954802780646906341482458115666399530628783158726323685669132823526822454816698817011645938511051453942915084461277367934326543686660254550538457862742067020261283168843327906755342032122549506833605074707746667185447348800703331123837665584695179408575094904736319818358900838688798165909635015954934049250867058209853905576096259253702815353656671833053176241984617622367031115470736926655744607286765065953601229935419418310821029657642346670854960297731309694810000259381263448610628437279808136126517967766650150861856129593009769711610455346650583220810271785662062646180412687508803254387189686835572362415527420257826076231512181588969901289544228478487741179420348639930932033155470410883091360456345461975746172778941180634859392351343444665068361467670223175749300632328130727138522535807383643313171391071594853194280984956961034197331457920260379712531625952129119035956905961036004519161547884768891196731187804350458452616181964373716626328692040787899661038493202226463300010313121509919700823437228635863991781550297668879765465854774439561626017038186643798659475976000543004523206023836760627367085811854438831757156846025031377473552202879442255467959777373831984217090417599530854323985507106596977920244047823185423747672740525375639442984310361448397552214511927977883293077202482307362349338274523460976524787837354989794257858413007973213247920728357350901053245213955742161873914088774995645220803843441903490177948634736294973279324139098045836609190325136162597081028521230877800623728848735132921605853093723612168016834881654687936412068600986256349427770577012356260993926946620059380401008539607470836723599181902060725815132976247865727938449079834586637766490119894783310795579822062841091849405649476222577586769741270637616853130998400926813777000458913623481109778791972834210781009124498776185369284665638694154500780402912659591587166336731368379300616534722718264470195910326539159185232620749700374922036853233839567698022192287791751335628136048901011895245421696415791155803727679370526248939472472618610473822811611060584464853829412244770523729907110302364745221576065799601729342420535246554390038082038772076478837131614970706527296657796059560029116459185645651846150487873694210198991885543495042527737315952080527564155976607645033721044141357425632844429005892730928718663336397257247905734030912298723798660387494704431247118867817617459723911886843922698273072298523083025712600711360471891431448070773974781070567083365010111406993583724222361578075042853511252768619457695517540534904917100497907756987725823263707326282167225488354166315385481132239602484515961003331036458811401097460914291203231287898337625184662929276468958851782136490801236128518577190638330836632987062116039786932572563554296428288434900345382737845816575385571830858289400800693275439896690582401329366503760375694619873339500141138763167931425378529308789482030382516273239855921432956624759705313706472147810122873776606897936536686847276332735678636633916883727347041972568391589627563774494428589842444755932933216967077083979011669330016631116176796505292140524194494091168231663123740367352940672859653858114970702184077032412195321588255664731337925750709548595653259003907047006975675650423152532649563853459394077141286438797528715700908974457427460699132038398702280086341755806924603509489882305910878679401457921482532158510667499981084143370828840121146272728569980346424975720367865043099719989740609391908239529628847604547970614811625013810367415484765679902303941119653862924647178311739685577937099090770236292758351891173817273675443347904890391954696675491739710834994798213214678176969625115988313041015260498530827332269855201841632755696657551328634561874749705249761947822022675248835410582229198800162684680346158733492888180407605190161882090634902257818474922672026416924288927730436538969594088132405446659956799947326886504131031144723323071203626856559357796582337027120566572668304342458182870887349944862226410648753377649478230015932216255074489264854529459475059107670190864671648409399296107693689145717311766137177411701980779044445980631965376142601599989548290620746509165010784109922494813787603912781069223081918409496755188522542553265683957123947360871342690023851859657747049433159861032975876792029168829418442808383460304597333558599830460060406976356585838465490216481843761271954444602824652398447921465154845590149201709689927740824032448260983305718171127771566763371049973126120882860148229972377473350685118848899895445079399117685983008612601483166284295980393205633900952318845369354439881142224591753241018819456659129756845593213968736150862061683935289266154618318840869483308488057149605590433488575184425400392569519038331647375776261085197985553980934808393253108069344212505778120434049267938535776691196867068738255557087406464032932020785855776088386615541629009698570942102147677644146986049089189447994273481300685212237385189158901275119647603125082962273379679506197194782766548398655571213516914480728256700994488084355188318237244893851770720401667835100390016633675042108705167643595767944063345802891891719653465402558327746522720976218794472817985944357394532382246051706031344470372740490546916363424300503588960874933811806032891117931470692826879731225029836353094269434772890931220101188639209025033481135795194606111074618589610311074082548087772277159766497221883652514130473006249482382413074271557272386472663810111009883793303169377328736496411990857507455219063710119234087965776997734171633289358741326257787813115025465249171509540240181383976430940300148084413267694443002077339262365152923631146874831236665192898693136957204846194084180743581465657044839548580593086983109986618071795469214761925302335221250785286407272760909712205197366546704578204958857289757915203427668882149252991170275421349298188952621116792380470556909560802440217606506392488106358819943151944611395662880676050368442500825264009410546465851531855937556957263158745270145139339134279105854757066794584329884227906397203510507615739527337815230232971446113201964427892936130624791354194417042219496452332674137964942156917057117853330139052688036313824731564473848165272440793909135776195800157055731600970548024754249264698790912285107929187176222051988497763572337363139081996057473105636718526022753353233903305731172155602512743389406412673689394982183079331672641417408511618118337563530721445219424989849282809509711099054246411563398442363884942756239552323974398059584837471334566000934648896706981706266043123967497317397094629418308061571111974841736773555255196606339202433125903881011026489199566705045471256587839347181393303712696812990426155856023625205104668546650398913728282142322425398051302995087569846221850089628086470764268897836383933246399846277664559876204183452590911712504312915433656646022511465334540290475016012184732032222448128734994951724192560308173243011586591936626306707969877385041992058013129195924164076108247724563447216635642377688183334074390999869234713544770988886549570047817987346976195538319310510740956375757661716763709432321218261720320477101644640035633401291813999788125018866837855516576950545342924261104835316951701825096787899672900696770923895840079921441162175789581912628263682668226575385749443705035684262264021202072269922287750668137153964567439709729311161055730520120421088243214303585618389775875207393646297611217744290564473705726057693167209563600848139036739935348337940633047492210738494588404613327607333293490513850723977087682694283666371117543875773864005083313204711215439612563391716420699873476213653568137954673963498733472812176850391542589784105142116618106564769913231148021201171281899679517794784835231419484280704043852528101050369949905193942028862124837425268929516430203268191561826005420138874690996078072964968765084537998685327250392538711853562809335138746103352729941127667768414754425607959239727631304142233464341963656044544401195080867031650927666466723318101375828748521968557935844384230558023197367433969458772356586555182557821158191792645319396785894715601327852382895144039898700129204010736182561861346833882409434120452275929903492869311891979462708025349038291500972584171178008968045087657867076423620135092805106461579796957261387056661397293730155914266234287651979096469967575077073125826504261303595434107670393777362193386641762656257861145449968956728796116699037993333882930529593115508304388339242873441956246793501061398790899944135198917932935366321780563239245007619557202509855471769037995304306821989724641601034421104065175156602160933247979411407314778895832018369300695982261850723373921974981191043532065067857990324712013272816065003146563986828741242348326291422487943052367983864667419810565566119873984844570683352036500395993834470140517696280776908971734197944106904341761760692815875556521555695118106188408929991679075539710900757055161753590984232341820542872716614052518447581412674040148490314428734778194542915559629690909929814247327789438800891770839900449370316019308832555411625169584122871084680361492650980350464563223332370616294278023325389791006036092027387588820858417383390664094558376320369919402929649705226356030853941239950712088678684913139222083956937894090532442133733870376347827780105790159966188971135534940959917625573439148844198571204024104293817182498194990656611755275294884980139522043616586976235292282937536989285555470171040354277954649491994064179530544431321715874212608059219935613867176122130737892783807245190824565007037755644761338187577776537011040686400104979371092748433673337473812680837215537670280519846536448019397364826396450080950129763624829076412630004490679287996530710906583109903600882647230096146670955785921092641220015538936438673363800349891220240689964582365770651576321899041787780584748087318319515397391132113746866400258118282822912772147469394591542502453442553435828226431149013156243157395163281288585338295931226947785072790713871455319168185028726875275264059066757181035319608240408567426014313628322275099835995693048455086526500960953509016379872315489744062918593291706160161332139023641213599070281987562309357404199623788681670030823242640440166335125679932479672636840964636778476035238387895187979465780600032420658418008353295150378160670867610743430537698303989468285651406072141678465604862055754397346982391069088777073910490556508090646636762021794818542945220924443320321948561853526680192540189165963222738617876297401356504187958414060420760167186084667455752916064766570300826824799786138393177860747816891774160854643803081986554450120890299264196348563278213296298787929678045929262297103971454685876432628660813350495357563655585538080024322302371727408193801067459200348225603511778903055937068219180436983526009504067080025419383139781699675643673030474730147284169652655816085574925155763564277884236820515701886085057563131651874524264758667059928686108368942478754076738609961297799684975587604236476644689860253222602638946940011664466903777899607821099755819918218113422773533049808402711113356540766101124529488281627059329536139954535150935431007408801549634451471975142182823257215692419338905794024476716419430882889700460637110966332683356679041341704036169026302159600042831894036907308168740958258814585340028100251078422473525027375804273072848248124095102129360495277950607553880864471455853488415781268503175940544088263743282978514839168399740542936920555653170046154873011296326244050307752865148913290948468392939916995667058471532420629074539151812460207263544341183342074251666729084823553891822832303102787127011964315554194778476604900991554983137578978700234102764891385657322521337232451075265960146131603443512955161862325844952180218452272491001301132834966541332918576411791603399271125829076072179584456520712147931848735121203664173137547531658168924664255206615008203286385929666230557801642974758909230226022154537230314064965294164092999111701369488239290286273422408455643481400429859184262928535814454271779210471379024253312841223989807991463971306503716293237767685261126004091316993322486883607691430216134214138806814754748676317501697056776767101302588782334300668895919090315813976813897056908470072014047682640871241422637651275511600742536803889538320272105680587193925902737357252099664299228513562156672431018477305846018385519838332827519929346479621202503435062446859049377250964955409213163286898986661232246226181734519616124295604583025920726776171735185974743585192025298987040913311679530997749982406637688026465042087173179641412426311655477290923442648196849082244057022589338303453164020860419540772837880423309701628972106225096710374657113705110229368128097305735649883739661848758824932557273952286442795667233309765814827830577877180840595413740351433864859559906745229871508194515769548890243087243777995245704986165712525070761561437273975577469531247307542059672107571555963407092803874834127804480989602432559134940356440146739481654500900195901689343543907882224337992969271197364602720338602571507007795569102581924201103942180562209777941535122228522241336248627081690935265950000637566796373157788540925530532624792371108637210838486062471201076870459150545491494290879177360359332011375304308473063888165406489058304757818613525496418810475981029185899029577226903872109955775288601333592383088462609169086253720105170685664002861718034584701674063044847863516753041504183078584193321176681670848760318802232207931556341085670052698353445485219471291753933459489423117419578467447148234008151922946702688002360472248947424270220476863125069415781674271216081658251678558966027730059755964359468904783833162778598988058605110332818018542048850363995708520010017688168433277999618221884492044857067045650953729856586055650896271199705218969739244605843179886951079009108131278806939891131866001770978339890596632977017905091376325926385233422457974935711071645299360609742224463001005775149359858319707113306182978802511344722255796065952082326106339900712112548752063710323856290551019932019631620128250793171785934832358744860196323357257474301659496927823555296636000573682824876244881287804379080802936091237002444888207628759032032227431191627507674591733594122194470782052130853743923770372338763125376690566103129997376844849454491461358177871728395060668777944360684499584851186406672366938616787552413640700094164952686447294534176907806447920907322114994301985414307289816511612369389276347293238725833729889637098117365930906323114696198336013083716535456767288465609155484670067506723065262977636209057991501605085168393928786481272034080834002205248134930723433338112654761927856667436085807579018922680574752359430053605745842171363386005511026875657492211447061849911704289271684895709336660682731735458079294912825872949944530684483056494073405221875730630332193713969496885629983930859985784041681254058515674235278777067679219603823005987442916985853901435746131803461064271613621923528635941636818865817045541933949216737374376414682054744862156930607064801994326042279031773316011533378274589209170613619487612875808226181631877137270728921165200521446486408100951082541360123526165078558533459761950389961142353423876574660013703075274172283925050714218106367754496521046884799633450555966377791377882193958228838899106328866476668405830371972407696790050692491629408430709075707596305789135240897901541932734276351078764231088141542358715473631556823769239655451620707091762233329479760950250232938904333329733485028597016644666475687049549078807159857946119458620263867039166553337946845687330825477911714989072925724433840212616528063795205968508132747788036656374377618161082499766417194169673621072485345535382026068680838797248191777779439908417687322038813679315394349506596031346858896567613596026546921232133808538179289038225520636501492066116399383927099296406643113185643476835373052013098838539135296877931601186678092736181809053848502948441653131702745683297869359656762521013743551845628144082248033173072638286381156659052983891592517527181169305873906269987362226382352229760542964305660614816215383982749513385281786105768595718667232002421680868858886024364790434760643066393527081955820850081756902618620366071355691394585609789554352364607988309235073347909804713841300890635657515669344629930986144852981037716295143701798025354190415006043924116459533653959285746707488382175613155392996639289669498007006925705057078755640622747716295124124974641195822839998252308976355365755550808586214233296643767478585665945267159485811847896525835872952528833813818339167967803784655619295760277464670003139114048827046713302973468118466962623393107418742356491110422321912076946911724666351466106816779239655447204871785663461828670378292773045609578474351454392522762791315170779365671162371830645500185820790161672096917894395362758234373572824536150980577471162629834847275525386644653458833365702311994108976090547638415459341589939470050929688024057830419782822708087179879844591129810758733099196506672062658200864639399044615360948777981483509302118847081472996749782680335524982092936090807078817355922910770038416300737755679990986574271251064387543230199159322770738369824853515019358488295340510631235338229872189604635569920681210513321999814642107333233358612753637198104806260562240777443627755549984093040608685941515510257266840886619415272067722353174755320098008929451404547536413624537736192890988554613828652937827030951773759363175227746680996729240668336613538517806148560604230850062000965205541211017713086024126850741673880968386465530202136508141740633437984600007134234660732560893982784972029377790104733036096411367062838813393357484019311898986310611540062940835659057355265779765841187797825333510928480537474568419161340393659727302378441331548545315746987647594894272096121691109562312857199535513349615907815056629515119379491222503653318227684784154519122693594565206253912066297722961311142411744427062026310053648124878091652863487300838522646295915981867392520224829776909945698657965255976454950925315127809322288137599849681428002137261059548769474923736389129195462064241585858490519903442107590311437516499825253665914755781183402403012017453792053617701203194219970209248771890744535894557821691921693751486384061984955159803155620113406784958355187149133444779579935283266679129537592884912228685492789647394630153593615800062591848971456145582137390096485350133768224784655979656726842705791886079484893039231137980750401738978778603363821031125686270826462689528771835331541767359837073338547005077548514371149111769203875643909549462158045899778364734348685470129286935713101017450400262410368362358105330954972766981679808312503391238917996589393614411193602022632105339186540890723325423712615325763484707910475303613466987082215661383185342180270457269908195967562774749892042496754887504583866278126984817794462747123359063907503735574109292504515159819050653879203531374260897610062923604685434891027079381578679759955308475587260166026769533049553001786740098526886230071958347857993083866405877230276763781199468087381941157790424963814523287007672643443018933216877257659199111049472883604728360805301517970714191400206894211524157936297670101311666192653786192989491944315854170346773841001647103515730742697123068011245427258775441451313375176904299533141110632578160542920990751410656361946236537219224734870843624854056309338989239069569877755400002758742986309069621362088030543509673928896335439046372630432621342096899506609087955800485432728806620424176327840160440180485013211828365629887960145961509180729988933291026226031445805440963617704615988332896139865372788584648202513700462903840796102904019419949024062941861795862708567151858544592941925246983475880784860475309899898013689131092324373998574809537669719670113358640889097701085822691186800408273051814724933869717710052209555952125460867555379068160735371151794630438945943920807945601090070775647222656190454645701226232880842625460505038831510003537794217711167381498077236201864571687010307873096845947470587269289265732866952727500555513127718682317349808357036219813988075211625934108446087695500684027270210339830523063350203807086334641875823783320733377105862159222794342622305203805874261819986080767859816910359837342061951115414908791470832670929811279702511820999077725768323081704887256339910319101841095119173085092491101209477243698038344913433799877758942906985805265050325723387621335705176751808119007193198257197828403700455105939990847518480793572791444003990213742638951518590021694454464973889802111023626730173975025906889618456506380042859260642116996597749734850123150936711012105835567458967138895125698092615560848780766028472012218511665884162431387928493801408910670943689710731324994172409488260877091807666637428266571328914622556600904530940884106868369008047573126032725970551811474950152732728446896898356240227461032508106025694842978300484885975533015515462588564006424262634280432297710910763197948842093454657053033045641648118714692564653907080469257612776777710338523852610762929176184503645105974088178225600676676270719701827637354181888047214432196975983790519453054326946228297863578767395233438261794959678367806861737790260943333342445520680545520483717264255957894331748330909018009303934861560077972394488585794241888805667730958414261891556623147554976371004730472055500720434803154786495476171197883815023358512857406816817048370278432374790558804179983423202458876607809229447201453085538518320004734153918439465429045448470502854706246559061315023914848495552894254315073777165178712312230674751761667681138769570557152572310534292073592205804507785501807888920916869121945705838034334836453087227381471262928179978012600369105510051598352946521673426300487664499918518424110104278288376376913621603791124163740787141789473760068227775609283066246106814937782331978565361375557135576566448813119349011116990995656197743806001331773556642480207627383460669296054060715046997122581024668382232380695861284116927491453020865937420574669998489431606058618599979676046382364276923468861857022875165788274083206600289145450820770472110312348500300417579869585711441824214220261526699181830360021788646103006828220714485174702373761661334661087015530134537701897106812576281053185804506858338608160586459535882450144450688602247764928186241139657027646160608054329109861009176921954285151969617129914512511517440496714189729817624427754455277404299868019876408531039370722689984542603139351152257755696095083633567780405239009592533780721615274457063480127634952574047399950953163530486258642806212773512749547558807333573594712338999398706436682240046384234852665299629440494509701597551742098482806118576711910613878012249005804132209219612564263998610903368572000458490059974321637252551765784089774016260408832273341573924060253457883536433942689268262715927964034869592142690227632592361138564954096755826748692372524105311016146448793670552818618321898379872674700116761328588737753649965219704590392449734628661742945430333506084372067392305712228781914627141662755974401250908763468406348592936313629611857342495352801296667395817161431727196317544786627726024296484990124285602693159816445083302264045375036955725431612369431015061610716516685978183642171005389412159528614817748980445394682069119387012134166542712410627488250391330122938222608064280755271963341250529702632688984632745227334040611520351093815232463208716516683181759649488763100587065001521386663377467406424162145014586372464240043996661533631803816501576496799145605892391086286963848919365864536131621418744997767503543508905226038998067750968856313162347327795573580133685732258736102141403552331281444387558420677826168270373375289422600137375028032122431710232364146739923706773141915742314222347732775755605150219480055262094341197172735044521820740520345890485692277062359246756080602159003813556142365150491801031819052905129221071508343515967296435840655070546140490433300374211150348152704584966072503424604680243168842709214484720699567886768867615791729213561698733733156637746840823591677726143419510190101819175553250373620611002620627906312840193043827499148253311815256935093172227641982526175949627821290284053460129703931686166740096748380233629222201518544968993241654128731382066024027986373466058409944720171121739178723729517803024819330570776777369004998829041570029391503138909897910562952878038099910612722993480181701619244861290637104672712011590197897210824013562675564075310640362243924150511173640857240183333231950495268752041961939367081942985010562621671215763704704328263785635068078650564922555622893722066063529598487355868173184847435611994750503033326236689304414232172744231458506453792434980123935168861378593111727345217087581631258402717968101345900125048713763973201043629807801841327488891435451553270686667843610003776492003512520076762931108911453033301187820165080695466122292271199961659471119432459766032345379006338902718651927744996438320760321958660243509047854101553716675098867254876846285947799739915534697043626569495466542451961621991559329489418835410004845961255515125572388844975068511109116782990547794274923293645710356161632646215757126564431114576941271403905492694560733735600815953411337766593888763235501004106145167650939342831195405597896089542299886403839010198613947548811238231950987598429197857993783423019141473334856351247399559919323136024229514628974077563580524565369513970306656921526183037028037170748885556146242132601805091227225400230762829557060190864467025697594938916935831840639060128067206723193708998584174957203066450576587945897711557461426465844659193627701838543379528833295445631049769235326797334901022050664244911146299179257352270800022819138102114218671336867360506782879138760568022159929213119020251545469918880852936211363431545378021692940203554286640693662692365682208852491539466930143880135108259101322982460511426989769532806160828488252023179362963433925963922030138629626121571477372168054212303373984528652315935143215527193911585482017705774145803116965008681446871954275215272545023032039099579375506747378242201788974578689680385140920573882773010799333315694146276903823112134399690046922102684780668893248908985354121750133254038097595616003930484357590596323711219631720608226458006827371805028791820488334909362282717610184488935683665698223254640989962955497552391821279411174806873968138003434002727572175149950578347986824969334050577143763892570334612931654590247466595761832842904020724315490414729732306211174986846104309949550071487022769671096551144826488207115955272371268474007802238389214387968976525793810566154619294624529456503352078844281636687091355749974690727424803629815886317648588311477693344587818272336923606625471165864931607821025203167452629155349648793460180755187731541939549939893899523674886429144408784802774722842738713660074628794870415500728440576441238211403416535346604756039279975025510882157937967141527441025331427157687397401343226631695439003514598500394564755075056314600559643667447596359803037522892089978868082221404576967275216542841762470334335083701376007103229017288035016644147072254686907807406453046321752900470373883516911107461116592071597399996513646343912168373816637082849945180726828139200654823904616431654156306338733455584365974253632984890146169351654096512896600632748752000637385489900925235493222576934516511611454184991294334656350318181961005362787644946383802157611808863657461945365669811061060590184635554029089646877022939371183058199104678835167906092475837609085960772835337709017639299873755152440553799212701623303993574518865495697124816026989958055456778842664239570223869305588110106861931277476559837152228997788354901498481395698158440545897219578802030664902268446080718727056573630622116664221940834677053387832470402674073389172648446689890050207164855319800964711630806948585690522620885846497025611210497616432685217030685007952250462008437585705033282892494341521304725617834794690575121846789611217512745152859491364605931404803145745576626950619660646797866336722501116256810991224917502244992832647605457519340962309431472284195090296703522720478771232672733088168620168203337716634667920046300747224529342633200527812482689278586356372196493026199715815705013289124716083004379089154419367418432430869171525650129464580776205775756837879221396398072777937529802734165395961392616993048384412611780889056789360878714322436001570060011990509629672186183507093730336734049351789024248080721041655339670890808309943863863185652880633861828260215668806622369748183495739278036111646759314413010758492732336988009161854001079861992410789665131299482678385313157032924721046657788656360849308217279502261793166643161402439437921899690781235301818738713510568491435829469714162171831294164545927422608128569698509411034258191059994358487198400781381005084556621128321600319184679705167595243531394896710593011759608252552979426777415020375442785868550192164507613941071424129388581185953445378371169758914075682904609646439320148725383360576175369231350862204234496763307695971722958589160076902956776559194251128355242782615090526499036725099948990922581733204070110620549600232658148519599072001890378392086099860015870423914868027991640294497864315752960201670051887687538338344025906092321944711425041902585439520195375785134319606779410303984231614321486425513219921704861475426446185183090671689360266196648193481894898761595196607023127259960598012696273881969318611537378113445125122475307713400845613288253274964489597913408072666116556385553948585964889347109187142366866833643078665088059139287556052681067860788540533569905363627940676547205074095527478159804868307970238961650367402288800754178807072545304432380022553029039978015113427869775155415531677658307668405989228764148413307553407376497366934671298025614694659712871700909058119220358002394816942328779926031141062371682045445518951459309079632932058174520806553030383404653345646099949146832316721331069725894202677707623693380402385703314577752608187852878812140298328071762024225910211360466953980748109740618299028261237869938609699169972831145528581085176768404793422003430950463053095163585514475892486894684218103800730814390159774203772368378548052988059536356553417456823722225488978460139711215474454427263807863104196314350396589655568609998175100061225758749089165498588230774298701719785776045935991232373748716081144654912685975305536289763300959183974369182349210286283896402471291417973479522991913344843647871275269801989403071493741141313744028820319623913203167279236273697423294127311709771518718838564170151588972048865948964624294110310341242893388120497526306526849411926537360554248870625859980689573735558673617001178241545526510254181126188330105493507938432994936504695291563528247667638970495520103234952126622320479732816362733842507870365054011486967367995358672067865352609102522485882204402848300021646973856365622663645443710710456723253189267841233375990476368350131788146624405214602690913638647276612007266848569988121030708050864022874548364873666384689838742393073150074670776458320382671267411940604067195193417158142418569785507479952530203133421254043526297267471551509340562998757055855703032850691446156677260573398992899155860493962185351422172336892031130646698519132454756957199221653587730556239234306239534703436164492533974591915953982032914847319017307162276563353611861390492779320534633880532952659883841104568489814234474639748662024740230714865311381378624280896875673552397860328340619449132820892136815461333293072876520022359445182874375530957296279035497316360461235887062820291550821973851473882758193527753762699978355295613980913984339973949660761683961589137882689167735584334435151346041717095445915211206838373789983730278506431717929757698206460998624149732776871312760648137602182014163711070338317815320259253753088356388693182252712421679512118513086449359561396463143020217538976470595206552944099444009896638132503875722241576520984000858264350489403809791497457512663944320191722531133576412151951829461400578540519358110968403365695085482447515195367443958362642143075944997028401473432065617102275276921709454347669913300579286272887014971435586196466550133994066998525477221722563318155344830963405049800734615592945900156401788103364967586332689363983207675624332082939934706374982460981119183564534312787951980824008363615902520184937759221845996657180513685642218559145852002143638790675809459868155929016474181406967213481649866372472712750313542829086517096306722731033561707391437467036689893732703412829902935352112594253329506580357288259773707876554244512678190709416178929070947512760684429700401028602089226584230842692088334459906245410027066143523236611699634489890604913423198451925065739741386883660299564172812024857769333369301096263814816731535966151894849022043003252997004390471063537503262966829267715803970700072922130592343384031508240538075231787740313187096821121763671420964760381660111172395456488709229143977103170263509058681786764034797512796760518904764106497780801265035969878407990149135957388229175806308339602381044392989206021449522411048875430045285683186780273741495060105186883931957602998637444316252508343692835444671447450444352345599209870196904006060752672372044115185862358757299996234232955245103398627283143421474687804372302144525079570646875113339580577436343017994952311622293290131688532751712470473521368055189817314547944194199705656794274130066936042070600675042938035550239708628056751658602424604170712981856098694304161535879645921311607809691247024315932446109921802937066157633638972626224211607182307252986651372003072599360290742200010495615724427106196002342667252503213488186414484353922236822918867854818212786866198195949624569056616540002970665060211507796267122647282803292790393691041972326708187777085835762389536790995952094053612595302225996225301816386390603301058890726697142837903237516875868347878414762950062064304559273818538057289069628416324906910509411998553861062496355744984150400553285064609414336891549186802730156679962542229262409698570241969184317743692595146105565651898467329571921181107626433526373804158626485030354507578542037097701127022379377963870165158917233138400788513041321306314596719272029635088175011860647372810508552764401572289086727598975252307700123030681281207266548850278590207994700445181605994743909500828645041168872523156285442012504517477874927456063348880790903892477600609153442537252119268738094915977952300243489020901295661622524251067754536618267841562729237022066308720429970232115157548499139234958011405316356508362529547480389122537013297021363808351522811921683054596828644962642834131888061722136628257014407869552963581042302654502879322643247148822492414785132356509180703380243538082109982695273680184401191524988023056751250186243953380043195921491438026660682582996061111749566959644323053163742358276093258440470406689899623032801746135802342719007974931063578673511124622268082703668004365471833849376343995787364536487387107873457219229501670526181933958635524060766755762198966155902830112470891179974936727601716321123293780016053778555160165091124878883955903725341773884117292178537730642718240245446950463804933622587350582184712849216712753231471154956163709743916345942920953363879267170010803214755710797099334441889975561214704567918660671155784624288619571872970835832712384382813523624976260070318664861011506861642792284716832131103359023303381781085553925661593359497748148254198508286327961710072889299637736326240546543249240004888114781748165403687437596024931042429671946645533026243025514952589064419860990506167034607132526725021870645203385973246763180465804916992941936400033747726217522526802333973615864183838291688827944286261994158589437315074154171647239232466571704871961103271521831732349640631013913861490873341902437790877965025886922320786696584533239420124939712356881961894280995808895817706740618093498739991552839481294757494219607763673701891503092063569987789480394405802616583230601743710753241463074636307841350770184544712916704669303180390966087763133851400684647078828259859703265321746421304461370865551889176205758821392628042741471872233479765360684324898136800843839921275540346205037238117694514586500903742642038518132614404364522658338194018329607551179636349916564152333614744394952843139838564293464689922507108646333596337610308096964733709921464353635263471753689339207031005611958048424504379541045117826931594108117327342178664311780941747269274950045014295523068458790900419551220436765305918952682377456829043658643480754992642121433497970279202841468990441904150711844566009514979407122564560622255866385734679381428027707723768249503730306325803463892730648289447086840666902393417252106015226388631785179721990980718186572711968720471463959037770601735818576386470970596133751208285554387984663375790693688241657475426695992148632686411522977475851638314875467439912754017769664647857744785808803636588531582188433268969018272301712714785963249422254364630667064755306488857646026176074894795185502684351431508158890705250216100289884374337217490197999357177962947509971010777506572981811846193898202245836298323865582981104721245235546872195715439609779963474685803130456572736838778621896911886604243856535208746117265808448898139938592880809055597121042094996256172080622524276277733095764650803255868652902678812681644105702771155096185462497462935746010076253571906634678302758960705681518126087285586278268564632648180551414742329413191426582388221067587866716265217628688198242462327327207960940038493226787598812728084703972823520493875790279273159058953534956016120288222989708340673373109518946265496232982834504853899389270509792432018835287989869279574459450672570054201895237270357083308161335752500496588228555310451096799466400796135597211549769634976818901594124867017247937088896446979456722243967054632227803503020711179734752713277215186858919327618384318181034184347615035846842703792699684690038249433424758960810738613030619041405729920754680886571115281778737057860264032377481899439791272766129158915804299987208057599023691633599307194249758600114869481201012498163418386409475687424593800604907252008283205318885420305248710099207667370733223987155636500660210952350264318307884116822874470837413606408418356200683576567923575452903090836563530624046493867873342613386232531097837208546981696727910039619530320044997579798638360593679662679190501224383022264847345687671469193672708345910809053274502924513246289195178472052228078072535089739052866549394190348544081523602990830794269363463255092466579228154628483854543945331903152748825342651985989281958605905491906409688101999561089492848846811690736948301159313974833996453664895672262719092770416578753863889925831711390442044042850592208689386810218323170712268545387367152975971632056296018155783104341412307844888459243750286161508652447000893155988420824836114858041641326729040046382266767433681096631491333416152821533031690936057276727870986436925271543131294518833053076659777929390096054080177575343614844512361303557525309255137612261841018722175533841276630206556235873761382983914497091866353440053446782515885682462987189305001821774382415326661523383153466959409232145746932068941779087788578105763852469038424518859717268121130854176733330025352534222430331738359340662019476164959286050069738845588696940875890706216097043780919184421582543402609955259696264742786606974840329999767800159462505207556480717960685378425022184781599066678904323371074138458371277562647090484825773736585031554826357501787695725883400661948003815498833713124130052850058076477395927215200524988861965064164879716307006267488349067734981364986546534823995580216407195884716020833921215716312413434583762710041605113678504467378746773480662428080898207753694226107618198319113298860710654221237823654751058606765390842233735535540171640325526843310939956762402116558921266380803105903528204066669991502961273027221906147632224124309129294555807291447266323979097007234471126866017775025981606459551644950804654014121047507075936382245857072199646128060132642213770983220145948075355454055259407056816000623805782169665554564156563223716411663505844947146425017559069331267904990097247911394831758024984356878398297269186444061149633351838089698899893260646698326769176872532997677298512532466175882521699733378754876296809097902705525069260485220020498072664492912944326233139945821069191832430632456475337727067613670619131808485939565504639763213771330630209174693262880905013499049921874006341443109015712281500434241189213119310317515347711717665876345916365786099337980596190419020806079992400597804250676316268352246484957481178795531810535312860408106594636882426060018666379439126490933942113947433641151414843586832216335936950926091990344865548704530315796995201027687993070907247231196161082528175470114043996835844725625729432276743322063877490558831803982787787455591535815370367255582147213860241601888215126110020098943234722742018015865883930788649656049145127603984837498111345304369826427251693578967333875481795238253396689450160268927061387838147080462364342544295389162612479718764080514068192682827137539290860764548980703398974460982753764700090222090804679138024387845324112253826116195047937112728885404868189282778243158868691751470594503500246953551874064436114472183046840080885523116762207641147983027562343262113223182344416448805217771745901697566773964671229278433090790234186283346413699699691266377589180761203880370608689708536940719429960399292851832371202509232577343369386579129490301130257237481389327606035980988555137639134071387401294682287862787930675307252033353166995570726847620103413933833064760213541354904751164112731989845582098840297143027436779405747191917344790266166822420273780884698707529636623734169709001417551731648556117093106503078361038799931432018018966850607115570136717706495247429424060981400834940612476119021209408639653574355090220348829912345136783454256751218868188525338222708758590310953467732695294848535232230876884515327031800089639528107289002567430235877250215308375738748065552946241186619048468517183562414976772667412704852623230190990003138087551539798058503173633971771116182074645140204820265310360005926274493051283971211373110805224994467855117162090942539754717113118009207095535046901639638502784945707074030302490095169519586290467860301051420311441068717927945037743006893077828484268558744973453789941792165801978592901131837040877341190350616198765574557865135433597119457493695172936766133246529620974233874710975906420548446106626451702171386473251477743015781402086378208668030775735074009084794500721150902411453128585846516020602716648532538889838342429293134367370547249957661275292526819502560503566330024237772879188417592826001136921643369005637826692247580726025088278930710516364404596676627192963689805615329823870325836453854736067639468458377343695385998230617147991854489927713999133999907093265479766303155331234325509503422646031089690876270029171641907788770663077670084429521202833910737865269449893274801158540614257388044015500198632762295963077148550853443382836036533426783923662209813923800150239374647176868360014555246337759265557261854239294493512076981525870552185462201175528751677017661456912334799526080083466687546712135069368650043329365530375484843171661418422475154336337864115924583203058425935907420009977874635157321658438302926444533722683515510026617803358554318816793053663473927397022613249713650089401008960505311427029258437599357713101385884100020697053934301638634145239462183278449949002259306163488121360025316968414492294763986078119292545080608263596471642701173296104768488534727788134131690993868891409244793215170463071375851120846286229464214217997963831640204752196980088050879649274526006008804900933443519004547249778282264847128165291528972902689535127485210592832693266553682158595938821062930782368881363210713476611222554704684073053893962065072795783275584195329529246992307106786541180680426176261529017394642866016493735881533394142993858592645997726755190653435496413131287405421283220612874755238644192441673484119174690477080544735474373140358275255030390942052594748967211794865726356764286245126280951652020381911337535830242356517555303114050531290820229939676229737720793231495283532349793820008350843649828264981224115613271395984615839483228066916518778328255158579662944899960860829050051990481854215681791652469228254602407993816852791846381299596823232107325551282032998818267349625532696095780249207584985350734500746040181300900267060201043003447465697020855855600330431174032621247805648482460925633818949666159837101221146066046486624694790876807565642529389374477849769845318788722452026661467627800525473631298772722159352691549542352599763795324294522919317946323896717349993657714561204100113949551843238097476133487994165279108190994132959567650390357386979773793291207539557621911552349553438612975582622460759131485077138313398140492021079922799960244073596540571079128492700824484559830728183112784604280302917933773976910636884174945450686065609388475966134407192126240837598682342730896891961516324424378122216312340245400318125488441710854504673548936502165739160716653905878743350821957342255972916137486942001799644730758964827440751512266405772839102009907155992987395219036724582131546942229512463330395800752241446303142766105131417386136901784114304777993846177580712867482123742625251365838997827610038491442141228119073043724835142471649625647728521753336049106684094897664118912985980100276420406357928695518641011939649057782707937185147165173954762136082945513541820980241288895794023264570510352117244648297201995068511630036968119682333353835143031817768662637524449232295102866302358996299212660297461985292597770027589304203513220108780272341848497363293010176850442881831519154251218599683953346562319117713111842045619475473945211440960265747824408752947969752802654963663647436191637743167176137216527031246426386636111184787421497335894917668252369860612338444313979423738662598242464646005411038039026492182603567918685406640716413109324839733809845509206959267713168144398982551182794882013944812418973184401283579638042231084887869637793587318313539003246205383421111175565689009652106445289961083788360144272853452476185729524782988253622348881228682808259774444949240442306416846774864454643443875872525576776742739823614599251923655352593480649001937651672566460180867627391342334599351656630263980291408387354140721898926926326204767486552307617057855449541134392411260219905696437445649349066504285564701619944101940016414864292091858792634622236075900618693405855213231245101589024812953649061069980775675709881295843494761408831941318182755084122902065693196697771611391972264321034223750099946353315518073735199507140078328164068816245405373624365182649283039790734356260273304459381632916522526597504415647562360542797208942488999944623415827217633665098082270077582948763971728031246953766852767690053018261349708772300917149261697596470054473501461052101920403374392842121727395654415210514209768308604909937637509280015255918017452246400412638321980275978257145384976577299811155886391683727433479290248765139346863845958791989881853643736159941517596129542655401632975368152073129827057927492034558246733183448484456306856920199165794874818964361693109820569914874905839117993491374433970828675769636020233980883513942994885682463578106769336573079205501519775251899686505229617146764568017135114229690475771017153215690789283626316924751998403356220471079386256825734931594134712721038208024840055310060393269401142027648202543815493993849463510650989782487214978867312417563889229642737246997918685184763960653143502818687142729662767429782604293002486880561746755504702228237213574250530503801356278431311922932934645064085347236615723349223436887479298214749834518941129357453615114483443822134444608102696677619108899844498621750069871078957363307012668308871935677483410380212770423394492879815459047578057002631316076433280207264318708541162082829837671369788565314041590365942986732220365830317609061286809705350343348882347879207503651465130786989393275208870531348565912983273659197439783458416886822567011319099420744265380142830046531377969267994135164581464937297598970140959629716039393491792134734286435470057581017330680051534622014843448751633374074268333635720709486547937226383261141867025607813251225070318639119104577580621312059989896213107911575201554696580666882039197970084020563787258987201831885535536115681096320222687966909325073766582398419284877773737535417799994008421633095917003850489175701595033460475441667030076846895448948491076921389734408701241663552108374710969729191067327380103196583065079814300198060594589117336167838355805395062287578829568736074905790247685350892405726562640164889309109901700719207113440334946076987541114480066023161045261923689728256515581273451975866498233295445058105903246591648618619233954884512094284412813647097767138008535651104443946690209253127563656124541523679454278028816774909968945135550628086866714579465892092764558227157475977545287962901530188491833016787033491603696213428108051801025291749633379325611156582803868638447943313213367898753180580258770520184802243814444084636083837596284977589522087156440079839621763346681397654086000943365572089586195771511759097063201397087709703187280292299931964551998208036000026740319688571219566693157955582267682433526675960300412506520590874290030692595066150811950264305280437233553884164418022904177798668912131443795922347597382924625868923675750924025391832815424963222728880600966131284634361336841921621089007307137988794781728535235979387714937853212932194227891928317361677649567362269881949185959676559483788339916391013246942093359349474996652251958333243931369867416373350488699490142647641339112052634665834864535528928839163831053480664654419603601098224433188589985409482164203063784081025097232147692663985596426883871917335963700998707102232745087490518602670448048139152686022406441225038590056153844133622186070579511335983661701953322390556127058116108143916441178536466382921619804099889955916931716254731726813523907542433424565603253980129784598001416902724736208679349364985102342615229833707667325755755374249775956942332333823907354689582402820590416467092373079624582253295977315415073213003120469606128761298716209473206391925633881009893050448324003655460168892828189596328814082799968732158861472931482475972751810601044026317169477138712112969344836067540536617570229095248428515296857013947260996455481975257054473555875575932303086801246554254682780647702720164666097961578248935435417092835891666597281194762395184786277825641379641875351758205781762134981761875781080286346687207400692894579035150374780383678429898374554735382869220177841554467151036234856300391012291798813769289103536951361112072555669683794912787385029651929596512902917124007839241422193213900290020900316634658115962312676812792778515511460840938680623307669878745648391147357107408488831595936905825395636495608168252592303075764688067481336339480680231975956275965890047420082870008330999913853788131429734570419976117874173992214731108557957658825989875743789776879153107701265356730107458288522972920842876591065648549224651912412624833062359389983869798349005734323211882231726766394510336988240674849026556341035362196629062677850065938081525466938322321272576360333269001955146973676420927415632869665096124459412749939830462660226775513056638343263664006490641586270315524157410868910182727610839607842817314727797538645938755426288134215142300142120211954285888333678501981326819116054784544337014086039540397269701227604539200931425394652861202594554408095599114075099218279079916761792616392270802449328091682553042092914164383077386802071943101329231143555447390791908433160291010400311617451334941905574958432003448351927375575618118124520057715001357422591243662536300281327460587038266226038030713292997325438848166961705944246005006816999438024415080855752577540562946586908518064934204235295501465804890361141498713751949220179613818006588277286454867722332587805644288228657845753348282342258425834058047470482530378730719350764932678997720653245660895859498066315205497171954843786929296545208311279266364969971736298520143648513788401283241941743188688444798721524546931628822432915630879363560890454282128058030590893164282090351491146949241045688030210915959237039417431663319777751470087353894117026651449634019778444374847183982940897472577689404110207476484065156746994882096391197245385945094487577653550493654672615213962556754815739475838751601333022296902182647354379269997950548798577533096101747758968378317725859446627174497117532437767665386466569769782257323789527661675072909768781750136677100408875109362878973670614213559270703672072067103941814908751896908748821956638047413185393371882015558310410722049893747193836529253059689312465670117859133611457370757305268185830819021975485940918022839761431991225924283850814550419613974342062077654839200621381980502989028047915608792883194256136984889740526043202323777509262505535981968653387912967618719827484884624628981807388287217933119532081979167246518672386967088011560844653278319084676607189060573295111228589225052971981224115381820520857008928127178418714261869750420702547440997270351604077949362395036119140192981622825457593520661051688578822569022365609255083329581751077506692586981399096608783635471871381474502058864258761851268521049440331007487834203229233989275524288328115645361825061467429334696162121907541443473441569820574842237243674631613796951868255625532203478350229200511186961109957808113784767876902417871030498826458425802065343180047663692892465027874830832995760805223134183023911664331954656819736086022903110547335666372113077832314525926198924832533578386315536581795080441611703961197975083093470295833382789966804084138389398589429181656682988250049038770571733701759558924869234257371894435917096148632877841987132158860666657648816517217486939195545200716741393063061785841066963144155099352019237769788853483654534943351217149116183930240979597953451766095871449590010208076071569088522340969376149570467199470079788342739338866545876744023917537319620133326198678642444453520120492349737673656470781533394476436771513220170936216459388482271986715995551315589831139142258713496165563195546795667775606655722164785180221254731152577134505292117494481655574979844995781984496775662515316593421937610462647082981352988790802350920383465395089403476130190934687287582111754107179019685306410153080277242661352468196054752135823332384346138377423599087551806425926335883703521458728439206777000123173669051736453698057920029444327375672892603848383841626234244907184925759970613554017124826791141560157906886020738188177115838572955410200975410048762003808171450915365344857401767511600410390661263017225440306873117299161323198040293017884594395421499925564360795149975636124567701689202873517139059633924642221294055849038150807931942792002572423994377822597611337387750818683772672452657959576780233760971842603109999346522807945659197997201884930743934713382880918270500352951956847277933320917776336356611011145191454598437485932323450632010213696372823740575065967456173133324366806274325082589649267444259003188676557061352149576190157602333402880561007295755063443138698434051705147524081629863130226920112907805342187962788956098641324904963334920650939498619820363764942635374076107169924293887026075975289086491251373366016429124470464247634410349383580820241753578099402209102684722892474230473999974302521095634842219819251134365287820596173340428317416084496422735768504776948304059922692823413347623028250393432766980714485399849118983339139520442772054341392621085891369881149948789350460001352022905376551383880787091013118079501186813106191629388568683488626754999087703643618651468808435914717590897645669087542162324172181842248580196251623331120328253665166099741604360035555742170203828172944450829548405906444614497992308824811650452831496238109409657901156324009019199978305480071956311142984616412087220011388765259097652616897645341275532949771528564189317744249890919404065652102770800637207025638206941181626243801083636868578136604058730005441620237545013828536772755500086795395545647571881504963714485981333323332630013982804348901639220703812145091538399028412028825749799132482138538961465000782045685118002067503638571114123757863112695126734606186279443093154220901404970844286703594867140739743031921718474587266807561451240240110440027237974946797736401303720518686546340441092164736661329606853108167794279240593915172521883025468590190255598068106537488104888691928874790109251537417372289847158888431505740979825438697673018655005776405444484324983656107985437819676954535070374609361687894433328270312046337821654310706500421288453874997711266328450600278282794132820398112625233059682545118048244937445534629580380585132211892067577754153008169606375664057052558666941821054253790378259632452388212773383933960308543909473982050575753969198112610005931969024868208772273619565590278165388404820701101983180005907491136388250814240435948101270448336525631722097039588327735928026858806604886455177746410399892570241132801831051652519418169146910877103008044759684166409125917931338327690403223977538304983202734025420631674731343183606280877476824909957564872605226147600107828134221852281976920142079765620218703734942418912645381151780067581029014417514880890646581183190099203833940170670771407360853436335334185924550802278075573725298222245376776798082877426837765127149729229413554254835718514121289412027447696964535454677929059322078495100306751438370781873995713794652570967849889537203987795399147190118631563455786206000132014408441648546695703765817064413544557338644838927049143877910820254609099890533064175939530834201373844643640433314657370594667847156053425382095104456132721207727899803704898175742928276493796602355970176502947322947644385931951670814701749767424165423842478104831484627603681028029917213328828511004014886205493631151493852870427903252740603130335870393355896909200588077266113597463928391804499310276922358769727866229706442629708717100745729205425983577236327457329820162325517446553685626450967816955922889684398588403363680130416810373591130706670241040964753366812577406943905330174053728853915307262977720331972251167470964501862815549881943400719652877266272578058060111708148894577243381502841740712969521337209768194448148368748744685470850482697101915665301412804661726795946059074879804919487566170494072900634047904142815331513527980396768275679653862491057825231670790955005732584163062870570846097911248327666434502604866095978902300369369186205661463120228486394302819596224178331062031799265561552603606302577684628055614981931513193347438791561230992093872323153589556226172963926437505546572740123929526316222286560448825339399261016675762642936914647399752849251629850597067154410748056205698708625513862117933309318247166397958261053998270980358669757397262820126905117215089487017395167083744493384907103713685315653178831917044836568311780015534037554256461041972391118603741202080134369067994053201461963592660062683281681648916500958055478075331867930455481517066733035080045289881669258863227052635960080030511458506401353641915780714442190883253417250980423345125334831261014211740395055726306885489594931489102479556370465131158346674346575424362126441819841766663717964622697662257858925422757762572772170337635878596397140701580828035104446223746481333016649737445472993658255529570377081566948386615751132807100215851562179070344728688978449283575543980157294186253902175215933107421445795247690374675037115779231693029516153619625867464074015970813717686890161976828363990487791277894281537285692200342830373628920642642664895219803208612241301247308245335661594180074791179578043825833702168740463438670258553549747148450434053926606686236357703857296538317188890575862315634806083550506364071467397120808444247559836423491823351396848504049520713665950907866311640741926538629852428626052078110019244317012280891264627817339803525431885385514769766358947842499557510139981966365430543909494153588151006822325840847851798070593143607019198559528159417596641361876840424969484960339527628876115149356979550099216094294161942190418270361423846419519232720598314632041173632812412906945679103697667462244687945041900529172327116254400864161395026692649104977057136898981430234116751698318426916267293629859536833821774093862858238443975529283987805920579068544049257674251142784890298912682631843095743601819283802918778414080797193547365528101121289510274071724892124793898595942876862122755144023674032768939960207064787572341945246686076933319557993394897163024003055136932816626256222478455363362385027959390861677862561883248322066321716197745822913742888978978989471302071380441816729602922932685757280250603528798292771113266990645090297917466217837769428024372161649563709960822961109391809431523100281741856285103058821699731188067702874537398481666220119775074390663066010348586469045643206643095444182833872164756220571095784164637916847595050487420624639995754574442095320659184389784989599590519877587081532496764114592816982260790048220179569812061411849295989536554344505018890396903143507957878238603858071129987570446037358662128739284142593720569017334868329016041654596853816290355734945938131740546869445286780432876669787785094442665714691140033172131232658602569046795345029719088783022282116746313490773686459979227740364902928002781174174470615581632094093761523590926972004496395101795912331056020717940553822737147545543831181880256918880358215288961160680728952554110583906656112747874489750154892989289464024314942383334128536943364978084718660962660536166971945225931091315160687706987414937573677255719012332941782729922383597654981642127959857019002514015268603683593744738820971853246806666009229100180951258968852942773723608727574671508877058935503509055060601516813839982467522636174968234423196644672563202691953999199752239627758559416989573059594582913095051288255768928631276820380044540177303632870931511180411233343562430120076935592229216350244642913585670912019495066977321578322277312713544712045320806478557572862244636921220350201168729396188895087926978410821557811208105854299834463421888413423101588469029030989087217846228602088783801219791289089175145600346341738002374656595119339617307513709110226270368719117396096229131648607545559002042343705020616544321114808781440900865188270967702526351153529160737061734136573059225978361020385597785581880309433529166984255973551127024901230242010298812586993505626746473935736549923227531359780997613169081484419734786492666137179089042110956205418353640878090063287463182191409652850773570091763267827856317089989178170219621384079233694363095790795682253469569010108440362946289378971372654604328603274465786085304529172548675221601128379707791445474332818523394010441906855127026636649241013349578408675389445614207674961996607540417202079924017570520358659600512132401405323523607664280374154428336248634362834131192634408305448867956696290326832221772877154686643813276620478876079428865053523387990429658018746964959280326478195486460720353867822141767388396719875470069695583061310470371499548215498477730448200026582578469709902174272179811864911485732030089054264958286860704570093845091936594270138974302707612518751879149023325046748433408393593534480220531295748154936420843174852506502724489905352378653747097936569097423652756376033903155753691925088483012817980707537426498676616482568635264561353404765598535646981491421471941077585791934599609588664553008784388215552474739717431714474118765179333468121460528301147108028599857402720847803750186860428023163031281581804909001037111422478571697088046579317149686353581347779973235634423681427424487359025601413825685938870460800842616185691040022842074421766030602978467857538440811965428039332538518469021420542869614472714465714210703467650158740469522657264683405883782682272517415330100209351323385447467834670367364184603202412632072386137016420435208501474128351960724240030522268732569054019503123813874858998627917243226599096556807802165484054260172675271434126177348010634406059086751241084501661895680458648785343490772682231095787502187846667675599969415478682088547106608565464790658029081715692137547524375272850580875988374542856930367607806210573399946268374946886410573456670584357467256464446248583026608687064554741818021702372069269852982019550427717595465925025207312616291569431143871351593681502058038997781091946734677493164480143737346045386100206452070278409317954971646703786671294171197172964151854705030388941977606644908475208472526093427521058451791994485308332246767747095898212051073304661008443512169488134562014027063305996688750353619714204546210312561877508889211330624331717213370163790630636097444393860887661320969013957437540347066988160180495169359449405377197802747665422872887991340379362441832725641539336806584503361484145043318889558849527435145267363643017403158076253720848492191460583640756932159003226802132799313242884752022802381566137121977985588249654226977055040688426552254625562853811915893806065700574373160783507582522696604886529123143072567414396106245148038101147177251452064766149365579776774822831613060678214114075092082690599101916404856839851366768431346756335727605261089536582925422008317775547224237828518295634731979212791929203173521307052723508288713447547779964308319341648212311614544363462640070855011851841103666847117962192683167715318124045687104303743606688458776943215368741010976750723926192122161779755551157137221565812842046678452621767290820462990296523094881560413298121709321309692361531227668076433162838355949192090219917756573553367386760343265614214010947871966098565423710443488664406043041795126402505702892661254243291574903775178174575278739375388929150556569944513460079528844573699904209755457173395475871037096737296656719850001283215625305973759814070634058473568491178216920835668577424324968652866699864366358720509918076799467841721070630747451836419775508534005693220629665215920753334945750296606097343845747039276863192374180340661315369314705153801479316872128658874806635794129207108400224020756727530787460255719810487131089605629784221992317987481479454153566948715331064255996954143599033329959698687130359798161590841939298849686187176904468304187262878562225461155266916247040373352059063519255462105519260585268127293383995024694114131652919781103203458351011244828037620093382945330706426426465662082451484026949192844460243677173834908572599001579712709988772228947033718106080921868398224030382624415764160064479032366566908904672809593186220681361498461343081720216294375684558467153299316585563151302836733316090714403266005585138018155399454686072230200896620570814343609593303586037868182610053375820302874524341749186663843122631525224519638516802501342632404080487723856541337838661243160555222475495666107420929263200074545471944634658386638248072622153111335938691746738256690790183908486577828639870867423976875715463018753302331075831492381523729174164070580222109829196978812394359523423939375050096578005091032723184227047655060754744726367018019609700177010788639278197068954987163667784000858863406255922052163898862497713867433660620420846772117168791127231509376684530407807058149702791056134178897859736467156862377652385519569032558838068036383116350626855040637299564461325955419410163928313661209971675366496404580234901438337155645372553113651007134147426004352204338756958069384742297419214895159481379799149606026669866591503570261101425863037534453159752643457275096096183960835994368866490282717240123256644081473422023602124231700030584728384588870487861416184242756903259408959323151797166220646337134225809111913682272600744667574972711200079842671557317412122714178619381136990434127642361685034230329198798336141717787144948468999650716760222539419591974969825992759034785227904688035626453298484706043335780907356937415242935302343641132872095973456269893897376395109440334803071141891449750355436770144570148428781474180045268984650077057168431507639683882476368092881962493180524389113918958441213192074712086216481243517116388302452561874784444954502793850493492543855431755209408774062314918726668964082645792847440259723783521245091700147047664077366012241969268751491772887017766125243810028045612961712122614877283813602156877173491407948245926230418054952084230573231579284049042192239933156750347713948358405819966420074163857207439778275062124528076765383129295747282425612523065707726565514766516309440616429543161912308627354935079687081640908418042156526873550676629791140527672647891581951171853377971581600004163304745266023467534827859020700935358721402152568501213437921455952211333421289639768305393653117691645755172372681997966131930347540605769954494151568384890162948635496310023509118197461780742577525244697480950726416943354764174712395333242726454484807737984617725715403466126066827032637384744562304331135929411544025000140706485056123960393883261032488507552743052013160021145675034992803004447068025400933280494254853426313942691473925130916180695431534490200953568862001510947581314770282645971016970590559071115743909382957100453157837908234108921894374480560991744401915975941292705460185777899754160172445576648123526344613890182642193539295529786637127555975465063722684881834583254432216903447451552436376311185457286989765933512934209256449432902284823865513208960483195647173577138946953237929234013394076055336634681115201412612047905880665066564180834877724863339539097318546656891455721893352663108990679795518194804823013675178288530759148443479205550755041309138490038383628475534459657709009005356267245034764472311181169194024377899546899055355398581572402128699979918708380099632505724118958171725490611151085512286406745744129936738662580149506599284184841131754685110940314604376920683337587796120762039038055068827832663257545759785431865549469583233574736759801908562936734236770657628627234500343071329755456181539932854348116809111021555247335870554771123197105851609979266170513807239916772223922235589583030664568006174371747385961641948984702227416299359795859659632636803288938902287187400729304895291313534077825434568998303953112538117269013711173403968180255980866852459753660059123168672330668574325072126254004197734824229255332140165333023136244055266896260517634589851036841959804401686269164855100287848642637488174212788793143869676163896370165389639557946428743345861636505424660517298516511420937564547305187558709490746977416277359918069529229194331654952936332482913673196756870378483014141736541625898660703701458722113555187929010810101221934732309644761056773827816260943918777617212808467106521129796342764147898870459759240542384736407089305701886703024985769815601225022218201038767029360523900792366000273679503724469111227267187602198292784454228631618047208103810829122421090946351276209218117786799764768213157990163166517526193808794835920875736273880683196312204728862368832777750040015098081832426818422506741329324420642736307345878062028284228773253015920942460842869858152750618703206494365777571206775094183700253638888925182320098286559043951608037320363749173216782709941474547221547969747716262114383198549805572181970687878977796407763454622270271552708433231200494803963268304504994963618704867295211227269908476812584418542395613566374408918035878082283716624854465252399099921554546455582404741199820866770740434580625862798373567935994391936791479321364638143070426304482066555107349235161543913535947714728847875618851776213051457474473851848055160399402814122792290832622351331530657000368093268449125343173245497069869950095428023333679129911852695038595745765028269195724329943265888312446043361886997599184322699753953710847241400375513163685144661276698068557441625286519480735552934637167983094100898004783820149697528626603307862144515705068688231796597119153351644513715392363201157710354120227997182210830339164078854382770883830117322210817602427748148374692123924194497813169142766168074946569744495096406649540348488103181575255741994846386795500024964157505065199874152819656450063424519529357427238938806120007390026311945526072219812778474332906851778072739279566634164249421217282769935070580349541670789601854351196816518310957885067127579565280444054716023730845653425769733844909287330446130326822894647098346439178462061294305225603989545681405370853571403958411692669509787955542593485639335350956855356663766125538847291764828546094590385180027494105928597597266275244746603732764859293691628289754797544012340495715527613498810205180697888310587404580540236020232558561577105885632474326648920772776057763348424712361854030226118730968049399583511948003099260924601971589129642447252535192188627531361765504825585779412624611762411606689531870489488473219595216290674036439299146479494590886336486921729339454936460378041025296860399680903483812663626516147562508936017671021717420472232269378732314472654443332845197883654495707222155091603297161411948681061627582471388856548606567033888314353599546604647842574143666732331657183078835065005528733182877027661699349464585634093319928146688349433725407087030592426063643042770148743027584268542446767091998373340485140034869455238687130558755694574675214692451686109777128993145405949172273299107689464810659681366723536209843136879004377412715260664422024953935277965944725623394478407306698264541611275502002799271631499087937721129713557605961021321609764743002206302421507824025013861631592502674778926438237461813818877339173112028366439449956466443187442097868938101020025788882988377771114971335413812966751780549654794445107179067779009189970096653292272867013475073640438894462690273218030774770393988927122525132649559867766639700298681699888960390149828684912009631912026133270583363597895176474811716565576907331422985153194267179781844430018274003551023116656950739424963576073844614743249893400469746655381562403683371226027394431377366917548823372862386130852924994830438179252558889465046349964003561157539480211844116086658075475104699246891057676020502768351317256462708777680215566175088754532105887660346447433682132865855752506898968119676436538135560770446121767216807637570829044254709952026864483522309730753711186023274328784480925031303566441289078861574777393685290954491347060660229613009600487309476844584019955268306050151041523409517690221407160325546032482727471140101797580705307116859023432043127246461260213922148757972454019945714309624716689704549588488128548018798914153273046333689574591373439082988648860789390560270903983361008792991048618868442328999540242714456821609155667685814011587576024115981506932540771258296975962310250223246629140286636411052251127819233937676498250721691160157046318925391184561383157616239670086215726587178261935006723474040601721248167482490308841579972139161397279748333863500103159020796831007969283312583435152066377733943928347322877972149575252634419565170380619198648973182624035793665408012050650201012836352584882816418946570025397274133158622691246386686972960650398300616375426646979437920170166712139094820324200214869740816431011644783743744295217604520155223721884162064143851344908602886636111881477818585060085253053513907477547422126363580093787959971970386333862091854862713969713106978615150467812294133831068964827090301551450673011931845941379392593203356030819649397674555068848292287850472570764033007037778863080255527956730555578770726965877905597244397552829198138856905429458954431416731162945889176043886358229011970088759118081947860919935321917627675822362390969518853139241841144825715233494789342980970573892154446201917419024116884474610603708024398924259539818364905012187671238396380467208365061949998737945477532661366294260608689666100858519618565858163475288416156507780206074529691354116418236148125262303622021504299175436299501738310454388170970888797572676112800007367031546624061221488546469817767760419003546269655393317482687610325319571827446299111922491645898381452590746068940870224416208170899295660398176145077825422117456060455997810550069985554693757925121527308317933809851758611322846870543337247843160230907772324189197465062178890505180481862324524568023016754760382142840911093692290620697290754044329558726403620241108149940235204742176332048892513023799032932224993118591963974678442307876001106112773676483360136509139942553622569595384166060638385101771584644708233070417309131344547498588974643792217557997123963473080186038990818487893448914693057348840228686036218996361969369702772653376390040617868305269993027054249780106560186418549582494882716556118154794127779864969171151489447935964351366815303833392760494147658189589252733085616614353827288854733678872755596510049814378932074009753253515930051291462950446934455349365516991227199757756783705662917796977856078964405138756819592315581686903342646748296113623566939430662496064883633030982783887941924594465650081079307032393438693675505354179993888060195035971173050764117513044613906935836781176892270282557666427353046638014732186182392873466294735557240927287842804047896547786337935052403407778688340982577670997699575330310965541858763596039237026293618551403482311942306452388424194431563758417263417562767767626941403946505149545727768827057650089177436717195185366145193704921474997517243802546727367058397275851248278425006056206695926704855737942729489661692355405909710278288597026759896069610228429641385165606352154626243148582249186008524736340334560941810901810100295267616907630449483107806318136137492195466460472620320715192598443438482495140865386561231573999977036887779122294392157392411008716213111336471038836294406258030901637802998616894496508932834719222753818163246796693068525930611095159946172971785455257318995824565168423006266509971235327199615536130041646368896586847811524500377856993919758557818401593548109250988599956333697384390930620822168106496487397661922560403185835812224390501604062882060868567196085687838206145287457535431669744652095085356210693510198303521448026853967930324318287143056491244010894226073075657569445365638441115347384331319418061001097686338782355728469883245894814869277397942708925019533113676197522517473759618587768166017110707397724292076040153726150701152740471534950676290298393351516717061057732271541960851080081205609196876128463533832008223872860868424339838104656885870251040689367792144660341927306951652278851049237897190538429356219502759338489124624098094147894880022888761992887887006132320396515708162479518052784205805052294023688548167093851403622563311560143904570093554634101423831858667928129881331540449345040266041322908060600779945772179052907349339523357073913171879735628725202360204319727109968423223995136177191694316476344127971607091731671530746042704799302595774428821462337675354365759904629595269095954573421276980952584913919894613264027188313681972967134255793192805044336004769718131986490750874675507340637688217004257899109582091541841696489015008791989572695455723274762177789388926259073681018049919840909623343545944776489877481480178913488290068125020984432103682331200000792820299490606509594243611412874880317550054871829789981259211827469649161926855646046732400627525091871208539229999648410944883766733671982779145688707213030567750759295472055914301976326251738517351986793537708648547533928022576168301948003477174707956327524949119943629564003994796111294276893924123313448961690676912950851849311164937844230133547377841146282695571700493933006312336187902624333320060137874232390982757107333568414791891480310967658935173341179112793395989396916925715798491919592313772664513466021234991963211278704189104471754223868314766078001660437124078440151288150423321507285355014234616141192518743702431971476056499914737309420583972151641891152236874890123529863350997561373192074062319906982165868658910828521929140701566693705290197276606985718551774070078192964097964824401448696691589033666798181183758226202931735268367485529693575491997543486359873158138150202451789463622648025170640259742969696044123629654093780020542870103807726261217545794427949490079906707013540538233269657233197454590373334464946379288343049410391406579055205165245959362803202400994951912812899805597456448144441616120347979192888587878066561717371231412048950684206074370234021146329315283508718094882469903643283447524028096323612321475317879810413083321551009066818174508497903484473216987600550806207970571873928979680040907851430870399501717022034300716535840714717085990412136685954812775554776704081764096987130372193658215716810693587809155760164039774577268164262034934088064642325413273313226590597855462028160785533245286616348421982305121741179372266469547353178913221600225851416794154745683078362045991683391790529883648004373542473912442135328821410833560976892834429478224149257542029019117442852824690028546280667467106767138307948121748256809737308863114500866143035614385156382228396813511016137334675985950409108265479626212738009532411207242670249627908333594092006182573038341147569311782590525305579502356952889029728569932737223260751110871311005114671065181109343857788095329216991677043047059119331104202020467317624608364664564861027854875233305673949652434188111632832226654618141451685836679882708514017657821109096245683690584986978346690876898347984941503842787526757739440773646230186573876649255079793463790910445765580037589254126545092754975550514091128270847956294086870156052989216177539962085641382530312058488523942501644987143897324019355776941851640520416658096861720853889408015081453679475361553667194558856781122319106586929633712072211255185280756151018075234299173135617639563462240795058622081477154132531106061697274370860122320808633767762704475451470088285657106551122728099128764151427546114495091931592866405384192566399087819024364539114326591772692817121063628230112596911776720495992883242714221363958436689547835460458427031138760754516520878955250084479151312250441477044146606243576232321592697840939044429236736754403217630389488633594849746572827955235525310754688233218812683383765248939661946678653159605067259742065140875163604192122906410132842777243292251926704077652423196879639186808634266563031797820655909588381261345239541237942563790578866413161438951052566835270985242501049614312073657305494486659143034985358204383339953551741324748644457505782909685024990186695912355491221437191845894247586056083261917840814422555392234495169820456814281882212034529338710798842540048017915811941971778533631349918649949874734089206427536297658464784882195372192596251010670632880575281461431222196768625942228888104079786503137373236926767465664746226882084750082258479004789013440206122582287716497927132924756834672806573826745405225946494369244192965279485514082013054759153229090450115580842453851041246641007097605415141659797088827704703912345950481473391365854344744104490502258025792687287378185437260812575500420452986132761837890871911384397090971674753370326332229826694504579578023343448692109892571302998157236026770925679051449427187676405139207945235535609672600691917524211415193281682114783808433536393389869994407628464057356597261681134622891179036000214972380469833770169843391665924239689907487934580733236070676445285432954489118223535315977865053385050248523205723909269298506818943865232510784797152361107132659951907825285424980339638269487243405817921645158325907681290108747022405462413465859106740889509234260333926674156923137562793604302964593407898722868656836476885727367126408059295405040562788277264768708696796796724500033383665748937077337113534889116783846796297028150489694097587946001927182981430022425795399946536681103821522383376795604326847134399273285344193916830232695519401583003161687580471692588554811280752709775480402363694785844906595014669707856722886413971855017258012086954017425192054553720732297035079561027189706819899938144233225684503117062596886661287911060923209717774987061021359484346204651589663416961014426778576718852365516664731495997843058526873126314113442722446936962814486230428044921020417766790230568781062980572970864974973941878654888059041216814908194168388103242736951237790909881391585256004923410893181619904730651543300530732328445091124210079162075359372927965170694812992794051361074454515299703115404355499963241797695098837964611661276931222638377893018059635098023057387085810953760874098867737794132123732131746839720662830390204224131231716515250963913746168823720197458501019434099897995995673601420582268674977282524030578674363700728700612645587170673882667295016339980044597877539137017966590119880913690357969738477729034186718553873942693853114467991044317543498566672186675658709481635075233113527029999047014554739878756604043188408885530155246851456758570558166982357915620117681988545107029320917864220905286051027317032825062710853811308286188927292332107897032004360607295331615178823348805410630589518717372322209228571300291328074393007982038972947878612695499530491474944808180875454478125539076481126731956679200073368006226270148233619301929943743362352982240069459173911996302424544395919166807529385753678400385127947139769791029611452914071208243249553538840371109910249454868855214375425516182962209678269782854734989005413217605526605595224797234905300866401991599283683133944559247471994208056947540419768746686566149679566366791336759990224505412622107475401375255033898771438853704497039619494017723287686001499040683037660800024388335117754450723134386704971069687694304380558440281551280902442992970047570979079622362285112485609779391533887424003767688002393206218171857439902485058616322780574732827962585601658132690497810246045484382902626658277204326936761135495663766645217721688949316610345214667203703262110509302570643131140217971221629810517028042071572458091160526662197776772112554406837124899094213683752528121864564006132461971148122238862998098800577187530659421394804239641433502748249710382332867079015393363852303068985037503477712497333553403281609869542013351300828826961363335123502294460730774241192853187730192363161256524527796537735569494404940966836317157279392621925018116033105074740625336683178289910249887243934701036955137992911835992942356098771533342229337255097821023945542577593212907788686240030719747970157594344029152470632359441531593034375964897805373145828472956847331195257734211996979190764732192591259742706645795533847624017214839303040689915264632495588568866854352672245948687151884047024240418377908275716978345283721843311103967942357752421259521503414443375725302749692771946039728484661205077098753330839602197649280757423297768748004181880449033703446441253520844364841312869533466577257009302262504770861540315325468531105493822095812376567113807344476897236650938809061991800904062419740744142165915894524751237444188135570749576131404537478114965699634995283381914101610661395055456271149298618111039373473542600993466633444611124614641332415814421532821083139712703321634666058474386731885353685994200026931443342131286268680482660013968039302596800371280140260449653004472976917757567395759674308683778447834458351848973511306962669606260717810957044508327679820366093736459874505207042812162979210383069383023467859826548004334168210128268579083257773530483157691644767647849161988206224448123630127224038575910012444341370135937976615467347258687880075744985582158005895841445318271640686377945460474916849980009349172841724935454803833930219395593673933428310786777015375069532322310648254378188164277804285971984512207422598503699594844709710911237064672453920366448045556966182543312458656590738100422592441312660847878069694755398393662434104974240413763275953814578450608569719094520372094717092211254467848288500716937613536956093480185247118870722110035670347593180533399142790507243594840364145067352100046503875715975866337395553675026903425055819915401130628252689728838888987968350158679465473968647255745694421859385171077266920807131968101813971653843168686219774124055150537059290394834669993302642028369378872192586163764217513850999425252969410350877467477666715684046023337829957235148947049510647465505823633685901273363515752252316233557855198338562911183017499992077158636398066370335966547892795482059394906749200701749135504602830659945544049435236034546253751522344292054638642747715535121309040960941423872054311083814717878929467982164527428256450811827413649216036574094883428412813672709519205084905321715133478212934826213432809196052842805087156487750599941330571085242685366050853981283045985414068315369239262028943485430863760979600168716341286695551984573966574946809024384169036179139703569840174672560871459159562172994383605335163559321115325558200999464368952698322618304064477167599428925979313508654565623224511976328678996095010619046147949309426472127080675427796914501655932810926661684875888237143651341730407361631756055278263171393554185737302293261771381854857582513152533349962312876821580058483006153738990108726587320157322871801214468686907736639058466342205265968851075770158362081065961790570818395270561319636963988434470765951718052434111636336696077097634667081147730840247756030427087159216049420044650885854135737085141847528722702124509792652704527992736056396488687056148134677013874971123754243323545148008275726928611203683556823440053290929385787075603381029637982310103028198555446171208442714787263272794154536997409319579830630543625948965428816692275865549312954835771098684199849116802622525238154151750566777501097691098839045042734650265547466026567865719874530730857244039174726264875774214452811786398091057191514161542801946022786729012991487683268613301485978407101552026883399378202544772594127969116659994750672818237368812869026473367133349894400588334123442607285885019541355725950362120037910341001163838372658301201412712701844280874213955864611827881642322061848420029164508624285664145292043629068440527775155764818740076239590615733208331339724000089440365878005323800210707750348531053328869916380428990024583615889070022924646572119042689898681101568478351874212591194737908837364031710023768718407508406244885896759319792374178081304542236875868650619041643842749971941889383117157809271152631323621594209211701821926365106978053638288854810282703412135017890844910362501645929542415171147378219129751674628445535612388477592718201183322731523895637364967954279096127319041714198984447354051881408316657646708428272684082278320159568733079832364868913943939853987238698814987545785764771688067595203506190178309274015454357742083190237599288762074750486260019963773204455357137132562191590306468533390828944561895268841439363442399135666043040509740829225701686971397286767341537781108881313648542966065694405919934556321297964425018990110569803984947618358882416532126424526167868606809253680936566704001685448803241103705726932097191276905359195339354750159888403852972119904346638296100907056263911914331621448852107320755968066970292309225005737465766425936822368240432388542627817281211637874276934300586958771572586556560193804652847094720692379591588855938951088297019098865651805209399027056376910827657530479594859114902782782917959629866250511249855111221916375437594566745212800715806657312581205183964215779634125121481967537255981437779892198303791380263535433859824241539619886914826484165752855533930293666688124434058419588481388120731885988017094811046120229603699047459664467032463174391094906664130418427544489710326946554043544869497132772492322495463635982203965574001142502537083365537937383643308415972382921429286333594241025478407137456811254571522437318595063091446160640430912133048973453011096725689496752535338743971945270569812183839986383762905546785476706339502298272169086875169790938056417695552863190618839386909679427496930821588741511167377745720643535454806967444273689828284148735061905945768148138505303662374353404070722945329722038786927906024086821808689636520154277991997615195007857499128710097142332013262223694056808548378187659940846646022413411550991258697163246712016125986990028857281048163402401155665867281572484083257006428970224809156050290709055048906486594138033477889220558592227945252392776831554674660620484636059236158295492121473352292280929827194051249086247277288068498438789481467900888973431881194279299924148081540921134771159968092608228894533750703299327179664432636833048974380650347026546990751848412902147212521504004972497857952619968786174253762766487601454437813012301471806567451289652078710976471968214235423011730078519842003749862147125150800153436476641193931572410939829194195945636756018722261326653000116944066322890931608301131501443871102042922727313483923712539783830415940653956794190507692649627652126122691476468624006459993943305291640815633264408231461974860810531376261274618454230168009853236923906514303455176469066314676036267883450879965151109236111258498793227690587950796679508934272457660158942230316351233164938204746464880055287002555934809569866570581261439241462089791416765547221012029094684171292846642739625587778728722087014731431379530180377462053728494225917913898643750969987174486002859065716594780086898571896111064694336320011905092947124673754226740697033397508241292526765767720003451120457640421739256500711168447733339426893278730444738951309249392265045221871378928009005491255133186413582626855665855903459100900070169258518241357463612043077596914292693686498759975009632564250452353645991503990856955788861505409526166226822725619852295679899680204606327615844407986500858244658602975144303813481100317311220587571796211671140550610530449816371584908992905803155964840874185599001350059627200710570778549499770037078629791662014973988506513622513083564793201791279417581218571775117135621702055427676069579701369570243969256251629276254358275129461802729007718925390889393506059879185799142200044537581682350123807921283975407890410130184945749121424933140692885373140382718234175398240079473656742262917593023314049736047477031935885054633551769527973000206689498350957259902806713678438905630379097984499011295998102486360059647871639616711456364034004335411321820815322565724877624316138785823524283665469471257171333608478082640196385606566372410010613772110813236095675021764373149867554003471916113466835867649447449252965817326875664966317231974647494863653174313606857184883312693159596685852677310311155971520429340249208599653143665177159331808318716557601520521901689141410575375087435699493672551580311698138663514213615539741259160335183267775780396811957249805505188831187137643096245622692707258017005621316323465071177169653567472732742236954507194869867348582784230767998723265007303202466983480792393178926683808781670792564942999763504802365688819101921973692541105829733635242343028513864521619087741844967013325564012038969485083361830508844966502099108781996430653445550400594433256009488364448990047560238980811352378690267414161990230329020245725951253384258699212014932415133484102623423896630123418960316694273699874852778118756213980111822063618646115647213826194872922380268832566195307938794707799666330769782785859487008328624779541793103419957741495794612213921531604175438046252795509417958745484556358783156840388425850864272898836311091711496027312673204058771875077580960880178606881656583910603515849054950443631963557784662076589748021470351417831846673458050301922743572969508334003421992274880832341739969335635483000243815747836622949539390579149809063306448609331305594430122463415999546184015401954469673802261915611738852390658934583878662558953498406693052440362392562090013363447230554686539335555596526776934135164949393235227226187933262703168935106121025969933927424713287972737191660629985697535076659689373248410281708267060520546587942935225669606885098163341330680272841507138698550831516624177688982692753922859173311396538663273175753923476899313056494714968647927665121654778304280675873867941130309993392474859391061522629672416559206854047224365611962086381596661347373085902735222764144909374305166442024314294137744400334445255412100532652584713385265010426584288108938428950346312536068022627221852416531367672869595128483221883385968150380335531019624248880779497514630595565648935158934120493235555924970152916589446337563743454369756259738179995269794128161021740103642341598330753167755365530647692562563499736300584871015594013341479902144186989650699650306741777733794744594052618197025504704656271699156213779501543193374144782104286981886069095492382744716937455317932113668154162510294825926222782660247344403539530839521982193578709393127714581871413266584877329107588411003289884394044048280445650124755439929158479207618499720253346306722094287431916908949457690485467626053824304557245598802793761361122865293542084339677112562142837960392261554062027225655609544632990942925439354752204022635155157702658885031788453054705886040569454070739057215777210576338093574678670631870800646241109053504656852601495074512526181232302737587576813068698620525705936496164123910564222596335317098836729787464511302173182410364716818619742907414286900210455140633440623257482259910781938719085315803842192124890151304861710539370110333923644408298565101698491605458016406577888178800140212058395011327685297440320623601407906459233364451582388727829004557479091335861614355610082827030032335836693836937679085367220443720647175127597649018191654218787629751840156680461539810783769824343568045821941474770299765588515900664380084451696335383930738245201347148730201213191319830715503508679196775032144872507644773359149300252723126317353111627361688595949264673387511460922386665556902262117657134548721476804718012902973298062798862241335195845193891422043351227949903248162342164928923768091998721149853148147946494424034503715762964213828495185926572717550278465225189023775389255137494654232347181508547142213593560333015150927971903384161172421821046643769104441738950765767064379994783191058488002432771782747927267460256610515802083837074185492004388264906598081756160833754352919271383462849723909782094779937611819206964014188543492855468434649746211626510781694820868869843201092353979297519592503186195909166285023537096238785291996387626681977199735225396307958936003756658793067904727109754694859119673474439077736654835277439045809245527803141178381056884535700598713428461355137341716329612290053577389716331617487855009218389557304589551771057213805914431437286411519144533570497268862714283367214076297481370782946841829665300147443691656667683549593172817516394471624371730861691628206729649112018497639111292926122600059311759825575422484062886802267472830607516954656556503804828877984391189487474342507632992316151386279159800428531182873171567749433339250933089822060362466794363196378837964632547248147812612698067312988966719476892957582099825112131046608616389586499603080500583732742842666954036192541949458955719868703432569299563025901040288127246380853380550521527897830055404969676156963361088940807618864742967873038674399953088234621000435107697327408923191799732593506888257165797880339031785470910594821214496194532945302818973959616786584002142602502080291515440825120587027070529030366920729859508841105095316801538680735914643264008870837322129434335743573856170132993586638865392029622309790033722139805996668983350537851143033792790592607577527075935473773603516543689733567710004588346704044707284371902403540540872218253815733151842131845107626106602127061079592685887872697675948964162035071052095771670994917408790700820281851467527634221239965015715331091019352848916585949917714831153180451203259191565761908600219640678634993891601492425743077669901392269659703244613284784959784284223882019073655739431403010394081095824472906415639967210583855486033081140303300908653229800638621471892930632620267193438814418401681674622089026121289415723898106962534732170975922354175185547820450730862847919484840867141785107878728001131641745072344071075547817841083953515191042685093535730416481226105627526958729481238059271497350205901394688122938493021565675201606730887889151895756126714905819762576975233328737783992831987814398444689624967169142016489705447056995817077253885640965453933020161965328045623002515573749022188780562887242107859269017370368244242241531213305276173561938523473113136379773727762906873984890215319182176181225548795368580742919453585424885401723807210624450013131485095792165512633892241158673298592932288644616541536169357463477916863056585028123574086479963550222166597979764725698520580806699447562773290835135702294661439601175632396113599801424282452598522684548559977694771412320883031350365905370170463091154976524994795171770224497422710779171561629714989055469510011668003172280966967996509552340686863597132037992526352811545959748405751585254195858075061695715787973864051974729588864275370233117990686243587858483037062268546500181985868152472479318921062969397509995413030808941911294828576724181270757899977701231229161524652759656240382756423718557902743594005529347351747735519197105319898748035997858880238380410891811270627071675218542662035853146707058621391413805925750176337746403506506457480851354542133091823479610563777785971570552813356079001673592367948430311549114124296388658354563843786448545478254996163422691721760256442699324979680897666601618915200738742036654762191455100838478927985452258507054140168314728808783418616741374413795762628717700097387491495094306780759088503116841227868030988326607004846590522087905830621786185404745540967963006657585125259644948878020036359404459940741958503866460760418936997422764557286766296128325857499987550590865402604554619299698543093059168195144751236356786362991293996355624846388793980344035522832031742560028086894674422951265059962280709675438265766637504760238358932929276072279682493252022187266240009009130055490485747111859722406143893479244293957139156493663090336987772787999513849121110321877388844131715960786681190875282853427874603009144193112233000922204571981897547132238598814672977965279721190160324970502538088862833104482897010790821776676640639632464634205898045547712777975812431063056286914480102677770203393227478086861197196749710107131286398171604548816910810943687937902433376730014560159376148431842641787611826589661079892539342639149740561496454912058970347331611418237130543691105503314312037030222353967458805407798108574510056342037863058560169547662251774866706206424942371114027619787673210016084734150592059105987055875933022300199814553144441927957746083855523046899746961221994593048519545482337981317266109139197473633684368106719233727073980238278582083963321133673758301845430593044143530633938658627037492080677593886915040732989125343550673475777839763939193904815627290676771539590029544165939024907405855029507926584557791947956444385443939355216626069339763197830839521288970624554263529680776038126195290632385653562590280818214491276290953292280122133533908522100235975022962183501747806471230481670589048913890689108750100021755913206745502485819303819764690018773672936611078763050356724022822637076284624977442124406183740167659667203533888599109161723344016805570556442683686488996697867264695873121924082810876737153684922084981960865517225149430594827971721970982697539528589039030316917117147277322549957935476651384113236179850157288357536576694043352800236046669641096151512751350750697085720395778238917216514235410113596957846823854641569067846103566597591913918701870165408449523410239463346807653842512429596604414914857921476828609365181779479514707671245696414801672230032729307115268549205076110156116863570016018581585972837421745795063275462877818933615923783501960522762993876987803863137180491190919460518982082161986268336806390029839174158686053428204172276520527193313308276433683239417242522357065543717184829387020107786782590783222646743186863507492338757787469427507967285030634859343047440972239705486481816905231276307680519878586181698043741047726630706666562273491699582671258378026417134489976591157741196958563548386701269570588334292946209873955334749999404847132033508896295638829255392907024509040974140023697275790323357723227264111185332332783117036497710291348464709589518483551699457694454284025154271239480613357189961329278521706168470568863603081379186953527701996105434774474187254225730195531107467021210060386811895595691779993687144286764162163403992892123474158092406648906700073285809148216503101660070254025233622617759403876782772510524494267560982691276842571631716544243696680352699430840764188233400795196853812555934892981416113578391520884873195310580411419863372414350313520308977260007413593900556740190819251586675599802778337302460941848056078465670031668990507001092297549699870491161383039178335645722838769688504346841346253520818820229602223403392967178736229695781463029853993556717541671469585000308857701918799070359268695966259088773668389247976441404001277664141489123125111500056919740300274267165724141358940780365376451601245754579502763723542862079216924502350093606037520307495500355552144128855272475256069826759812936429480179626799405733429418555166069799370560617139869275301541014634978568468428803939002809495012193566336156108933653202098080574904525492164381210571074537575461286800883712720939713945934730391411616990914489492749720664542156222966376463700741244721413902372671865157173090621670485330994200354945273203901779928495772677365462117675822010133996552740736087907296208795712981914709892584854799383421920554922493252882868538253792110522621403251403759728799983851390882017548598593042542289076376300349022996293363057603761018684990021446490843978599492759903969534224436859091308508787102467549404962889279136477926637192222026911312363843731065552826606839047021540983138414127580106945563097979488116986755438233628899733638894109746389499036271345099939845168110727968579956949685390661472683095433512164420461655922317966610735582926978905027467512431303319567272605563007780144340411177477157748783896595443656812194350483402241520336397041752862962529171964009484891978202563768266039487162364614398857572786584199582757593072150223025906035801877056159266821580375697222931967155217643517035459609930082155374778597285071462127610601145555840909114794115225455951151970961775240854096012455793741291409491194207219600691065026685217885192324561997997455335572502508183395702740088477426133458378580417317924609788663793997007681475432752982798394042214968659782765494165101044420747364636872380147307396566871452449295556986300458841642595022827320692821904845297776830920089149040507019914197489291955430661022614305613136859455804148220356944538955860380122036465555839424558850812586584524962185304913841155070619474394507784669978319384564635287925075481490969414494485334897641490213814352554307806051089264864787497966937258561410163416125622960157604017796219939370770049922532036690145766617807927568929956743759102667093228007257418146334738444492697981454308570974591557774486962357331370114852696838006943936386168552386494796686504842641933861473121083990054863201546513199955776269222838040441623910024529719175275632747411289067209316867225738622417153221711718794073582848062144527661475634905150401800486195695151217955688490401232599956083586280034775313121762531292682214962487705972782092902841757013558287408931896800783063953481436403276282403212962650427686548202126409956964183155778775950727977012220209512318984959853318232185454171447211128032461068264569670771736697861183619392090322852293242582809964741013802798224941606703981521170972129086368164284010364861374464296559594435475231066815039640162893886054046500712659650487863430235665807816857775533672111713187216988968680346178017338877656303485368889133692365105114552820303872718750155754984134792151073607546583720132276890119984396491871323970701435582423987257492527831718454061747635289752432709423289037248778884345430441458510513203134612715676452206246807919748424862109641484009686322007241089487066812839914586303684676178950160939523934354309415095545287268700604213650191626087594614303749490463846605165217485752142331671687919803483527475673453229911414772373306648292827060351776813202395623908524341996521079209749795851790411603990731135967536487427892115409212175693628040026162330917910923214247436230106342512088217429896897027467295000801247465189735201810659048842939327520585553400144732389507448725721524621372673801215205827175805867799984268120435930226887466679451239736830473306346520392289929211322403111751960357864652467336179651580529285223788709196882541517316929049945128934450099267955373484877639727878346920880577255729409665862814733999419867594962490404649179678841181323890669041464051120156206619003370012553725207038546328578461359115226654028778936858865151522038870795923443421256198868093080876963421379229074110042795123693928645091302866380974685392486517229777849459891349658325291448248498160214681009810263782854474466730847550030846156126089601896125716012930907692153870489456920927546381435371766726712298682208200596100069952781806998971082737140407832855011124520365567578845641922541718519849209928464950187531093786073287684747369346941845255666739203814831919348262414309889534454435909846458129726304490827410117374475138919319725737456976228489439841024160193221691464574090425470090920577918642960494100657970036129577402498835119559770804172737232608914378740073634604191102714910254766790137211899565424608064007474662439519852756325809674515005744430186962087726133108495451386045808622688550313847105218333079283979016183896879222919789202409511399128402088196581881046680541865707082654820640542168162014682904374267293942060372847187798938117478761838589646016354939963902543173398802085159523410822051231472356856750734814569742532927615770343224823312037236889087245512657992097557296774461623602127401975014028200809133184468251463177796833751661732101421541649855029106145227530331444229982143383485736482286756327965762601411727237348179334315843729293628465786760358948341092639953711469344648912083134975177792857436026808538298272796946103777816738602861394329523810803284858864414912224176728295979038330370650988585960391786566133060134628154873449400156150337780892365925868848944218650099477634018108144263757524556981466685498690322489920057157510098035467410847048065091114305381107822493078452640172620428824451865202220073367377811954008003345168392145082090607922624943338005307128560690259853059706707029021384967720293326848485613528414821358350926371890098167847236624728872280728707880968322511446506558366307362267626453642597031435383280521564510474992578051526199048353661159525049615354605678682833974278669550909259357665699449627531297422924766815293873431661616573943065947379453450021801144167719783703161156745106489045891196556153788070606074377903874014999623750869527598562083788194299505384716958804922105851593078783923025798538137589865280105322545266859008023957428276795270333616369442902950504300005538988031434098073250768489046091488689966240972698892674148500136687570701950118550517006303813235839033944415448404499314862509164355625917299710985420242150420288591154266644392640673083943071508350308336339558550484387096989136157445980908451071328730111647858441935359691798444039657706978978534909193883073832783580775104949470943000888144050925787442185930363453276734755507375443459598269678830095900313808123348613666492759431173233417747890801978619870703204837054160333987886991872739021112000837921717244182071017656178126034532084475531372714639115860772696136210722002146384625599821557624791520193002209058253041175962677345214941229692567475618728830856876188038544834557493359095597362227027683646445472679437981892005035317764056956025495232398524767432570850123934433451989418154801557919043509609187930302209727020736631363051645967976223084010933334605495817602186818770517576701159293842128501075818738354914582110381393761747529341709587942785763747385623601263624408272191751868682961159505311605368838287589906066342338455517887458753089490632236741120429779975877780015123643618929957820129604363017841397966932195621702906152626327300094837969279838941260226344288723681991109998240381266180254637316649311848500086538715407137152158408782113192545927042713264507673368642750185667998318838873834752135783802460903573386698387562634581338291620363510960328568199374122121346159680469142487831897815748684514639749985978671976014970080984204603011906116566111874156318706800171467150099414712945067170898510569331270651357048143157835316472482694260308894790748529313207567815572347146956371261773546354250214586667283376384915239831698577376616765545799820377493876872366450888519565483387918995237900874156123901539843455773369747822587142401539510364418026303993125087050584105747998866473370637865109085093010939513157384669837999950080205339937472745601447552256668078720231382682811384382050407948073946003227112464295265607520281393365094156813934953398306221917035767005868155954223170814436225696826945276363315774713292462105977993925347963456544235575008124996569096289092104186270686919591013221426338001867409544360904766197622652727235432198631112916579019168521100996013774600893516555534523392272038968460871592632806579243169574164999144440655271202574432502575232866161145087454264383246628511894177496946834903711644909245010629982401430170384434733193648408760371379473610027271279145419750749429183251745217928902421147176641936697057856191507474090486770488304656103220613451603883133834245951473717145231753078780921839012803261100090412995222331139588513640032243602768584992675566227993476987048723659139133791028455817245422860062098655196362663283825186845151668908578450161163055411247338335970786737967814548539839768945112379857644667270167675010991259592988669076478747981437817047339483748048758310265532308272013913308151475089018977646954548709671378126324288153243837490969088029860697849964132667402717211178395524994900712711071356211017961735286951971399489281712045901600599334419416646502824374288786778723198168437796752579634446126541448392540584357148270414832731136570251677075707728553927974158136602031533322157366770595215647782030555333239688937279408449829845631224773604623937203019585120793108958036402294068785367482998304749344755399417775384562306729172139102051388890960923954239944909217508870126023746296667532514390471203432266422616369358221579388091093227603990998687798995284025850932923181303726386529052724408994371996332670478501866847203589607266540418337891736791332632734642049495840856536595653718270393813013465570208718958129389289125165686606820537250040803223975436283827665579379365083584879093369823188981219839083448604217046206104211655897248378988682436015158201570222011869011649419949719671940142345508192730053626741618475134783345233142983081960948292444418754396337238525310199949876343380200816047616779588936890728483405288162018264598252332557139692774204898454947623452454628818917674547810689269241891567833959169773019609419265794438353121503504324610338906836225090643981707010998556245265739934597518593229570903650732062359092917164822392695697502867381234797301789658596572906508335736930285735597322433914982491100916056257676193327267747930799043702217024299708138568319829361296951232061699738004444472214841848247335967805686033462730399769620426054197865278401002655955443341341179058074891190191538606817316365951818963260009921716762735885726607214372452660063285709581377414458237547687132083692689982502166102051364486469882077880389913946912015091640977646072478163075704224806935812680250348604078379371235662750506059884656231355178421830169485809532632002901729799221180295699611681082905079136702212415992898876417180070434524516492970072504928619143688984993913114696047798029096805056377080515572159632581064578807712192071892754296835640076284572877358234300767153599117962164265630717013062534204566340904689008915032750919464868721045241250914417862643932773921936843639785692097435179760072535853696900818882206600271832344653216269258624735307829642675967986470668273152390359709818940551317233682489651585344915593423172604880601871380942041223870259161194805808388249150452606705291830522436282918681784685607350890352871792954246269845255431071044544737250230839655764023003036657034112923790013026621327058668545119075536244877814890676639259898704438229321855117414577587222439261205196847151161522417515957369835690178611859906981944105816789812435195399750791139863752142558836405014583350687329220319208972513891448283140769951981016156851255565833981906064763044660832100115646744195977619405321122687617071028684512187022342735378493950197860123633685453195243041717116962867122247367384858641019932810215451847616595675861447340816562585698443240989520691652451712368657134359945729867874941296754479723911352907104139848313043738022283904278655920391226392630191453734334596005576329810110941962514787872736281290038495969852284086892097620372147301951014558455389479002023312581292452009335167133345002865171513999102625196143269969909292531806106318730053451302674575599418941668259952774130516006260988154448697525669007941386370568212688817861466929418431947938312800388306708628473546079724306439639758809834082949555626012546922399769435076006881747497350561483242352560159635807212886801921399925472992882436859163391600251670644068934123199601158912365429762784721693995523989589470149760038137675725900819665080536520970173928108266269368576636782445511034879137265476834699044101274672706194583756662496847270102911598278780445924247786309284156320674759969912624552065450559607426975924855799894650775264888677999629533743137828429317612857333121841063059023968658694399149807858696422773600857649858693109554015385583028343013992072785176352039063034293892044033301815833514316983889003056865522673219893502450121320316502695344504447030048743154021166355908913948198906428566234934995429668873226008564846943350732688453505524618371210416256037859457902909689299804132125119354181199298844709391063106905084483091048566679523953102060287590118044580209046976902223692576508911796136314827287509465785640624089646058009473064714874412389873819430999195750474699614740990513235259634758239289190614403221790117235305289036797999993068070763817966723726624508336196142951076498177452343723569402609734604811831685277329210562855625463277750364661824345949976212155460097232053443031271457865303957279186002161127642864913090492018313110999233632364812365193567366665939116867862956224080103676244230279008057571441229906575507680344444790475059856564157667515234621677426281509889809727535794227450772272283902284357372338572362862232798437951373716321117407009329478315021024890353302251204470815750037841623590176774978645213015134694715291252614748337003959228808440089924260496076568896872747625132272215983624387404630039223872675074103591022833796552857019763596336910155829902183756036989080345437011518977048630393520190307399137080637243544937725018814867019927823962833935967113041622487805636781975138414023814851073489748362037709955457061348251627407049535674190138518831775133454244626176703888383994749040900400839243984189123968185050491927390681105003126253348776708735896986369046486318086599115028921189275621295530236216867507321536424141031035311460116477262191403700403149931809337791931992813815771107842703106281902902655252726427939704526131261414876280650926305592544457731656833236340869868275053182872196037275808522479270443504730213640334749019333283501139774461472397430003776363860359563147355526620496410791475871201059888924650265755452816873156464064766290322192932086634127021895449507513142879606796682106502735019968267627154158741669701267548952461542201798040488602104614935180291804968966390221117199146816420020492787377294641830515466810280394682022446876892201526025026977048992151091216366745588226639686201861404647261316573570210451499824278777519698737957905987611222032791785268203666094338225422586127932059741285252439321322144208456178641582817886140771139125953007222949437712950586350677767041864808488272125381126828459074635604716756391463863430320143543006607540087852531347677351961443775746103577292004289702543807191987665921911911794998977438149931347160056829051882710866172916621914385154303746060825778584807422472893305036957405065415741294934518223860690482170660120296510564693432947113174865137372874721150396158492119742821784512503626951077221665645552021343695600490770022578731110923473982399718612188061904595658943088125825578280824478318637044528621003616932347728713811648178715525398563776139057001489172654305443336067936849904485437741405477115696763885393960259085865089042903771875972684075624590368026727179091602549453068714054163297836961632073017753444895200515783904666875599809580207885795186600730149920427557328473300021347816505159998385552823910342450239883039570531695829739442049877911390185522230511887437968592601127571147879424807191602964307678199735086001546872794517843108079812652948838023792980401407790831058399259918263677524239238774820823211228980034606226284098195635667426324371275145878423685074175418430185155415268459821419348418578256648245256784036334953827084579733370227059451000655322467887850121607289635016618990768009009330881223332991683539849790093422226097111513119388816830780818462400073150748697925703154470842602258546535712424804336272128260362025304454516138763487370841501493717053965373180738561758464399406241149481978963262425427474190506711942520064371288353441924190088609427070857512977086661398609806605927249905179698004353860779777029501530189765999947040462057981644735711907953025320753438793142745614461000102968288637186782610028796908247962252983644207218724480595906294757594652707579372700453403751089552384929072915504168228244454082589745573979518075891783249174782181769700725307001504033983494679855804362801272957739371126146316514937739010828925755957397921420670670270182129383767807053055086487779271360998751634229149434101304917886572851114245080037339891467903778351162849790712175237649738461594937739936405991141807365297443053976054541188056739061775945198991152911829300861251549315981123180125900096344493635688347906075231516141216033251022156762172531003792657347338985726828054534701298350191618682098125697989967417221741659908533294860714171368573174243785351880063669958079310113831074750534243685438969536408085326513548887823061358243764553740850462047734510923300714636271706657828542096749367487960834609644553263117037935754054624563929800258089119754721062620413480814346382762708527822335406618219861244050881794923084939270606849285130087936803292514974949438430201184297509900563694353869181014573138436334671588455247627429451994399360339179826005661588030077637520604048360176362573369519788426079935478294210046917005121876440320266530495172220876130325085163965630882668254643445170378688935617096849473601367581391791389400128385432192809213612006423683396287455908971612164461824918539793750978232529530097606727181972424224339321294158106671002226061086232206138646741816581211481164088279423204398923256755408270256267296417465100788292875467261634822241141336867014598981616310655453406048857931663237515684607890438646697988103485075379124624865526614053261362193792074859282290775864584139759017805664202880788280797620071469531303130605618714555716490422294891845849478209374442583637708952568240308651171029924339205838691359988715083297274335175781073613725896964006626302280636905922634495199984589929448050001368391826079911502854123364982813792034336303163754865091779799171374821537890712212482339524375316486012607005459434915531140780352930666182971312774226844932769306797578765935577989791457262521321421308559715103150590518893206403523058720618808183246104622877630827475942824657311297008414478178196137148260248208965490398439542140389019369380566663984846521625885466126835167082922630001588151768142558181669400271098358761982874249215167947181034319991578341576920410921361945494162339030138350797466379587856298848367704259624310324378919655436762111670043781665827825892818812554590603514352443794409579050673564427344054988580033622539300966582818053790171499663943517115590208657812596436760339894099257516696788264231960816345888176882616962148688272485393991449555507442575732620033599632089157193705659533625403114477170526090667437341611348905169409766124598056665234809863221603830113880169444819255148776513018977154225973035401690132902317561536457964767014259757082083370893071058877451749065720221836835228260721487948954594332628452592421518872833473641136671382209293469619137937495783834742991166443908536075227342581418576229675212252594741654867277092003625778703834471420267685102881284986108621084309259004515369742872637329420543878493871602896691725980131539622229671627885535493420231377866779487398914571993883804355944342816420198479189767816832587535485545440704018088362890002589745572072622210130372236882542508808024635783205682499217928929173669361844166106979043009881436090456904932457709776730690676759616045831444217581870675899003233627767950770858867981454813968769844510350342584501939535944644109549988667664572063205865012528264449917169660552007131978816376439812471169886972713729896312006062040766463724346413247964540555056039717608200097202458247617680843476238898874855105153501930510756453781037634903814637514143538229791496336208970229144293477494046506583010339890177924301682369493736678829976539850434466116361548572971849675255197633739212396486782260194499855453941717340490283410167566245101435438096830431657639838066384618231439643334126885911434962996728368872136871788336090328902740020337439075648304545568635373946649171808103229219297037913376032302994791254222777960088656346858216314815034617511515570554171770580848884722728519036633532789092646418771389004802529646449109454346128059385293813386473601190102391560751657437982561840620132531306753756212630219273898930977655108458010808543600378142979451471484750734761542489062478207111157016909531252558476957801014481508843454223095152855859723150954808830895969410146053995759971209901294545201187664964219954273041948922674781463568776175682092296496609638454821994196559335655002821179004839639416045759012095863686540974782881210665774305964720196988406240650989193352063234639075754046479708015410216345169227757581318196600903397136451696685097979758971367986448693100739769152316858638508499101316208044427560998740754072325436635851661289254716545730270637796846541879487195949013468926738266295044395441069419878843824767900725421321024072188538280265542908358019879355850149123176721059343122214067442468096209685692842898250015665016567302254437944361960016949010519238110028432275005830806750232798460146278459383682088363469663620644958620845148595268774378936035875911464038381586299306476878028883064089873836778836674325544032834644073372913119604346759235403809141953887262856911510763637703157144848126671789681930807613667486836349184980150429772497536844151696095392427504603683472947920988806505628785975305501350735067578300668517424788912248323567581963224530832115728851863752249829236632445066420452664635512428690156787644539263683902087685249082212635317055646299986936200462810125562171246085733109462262205215951651620866825741389101581784311498807591535250197007035352985613304753324463669392250974933034346635677239819022706893630944127743614453941812717287980944772042977645690529184092019836128960151442469263980656094529453637726985091809069944621633946819024247291902513755574436877110415625109953166237117333703517290835989723588574616876832125536387285738878326822940961297220136125089613292385621883777811659307484080825958933843706210085600670866796557282236999975643125315238742491438747406031047717776865432096155303655491328937094754261427245034358738785321166837411197414666997374175222148300088973406684504321825550714977913235497130677368555670876074321167948864939004202804238978898009835926113361362010578817339765279968014682445726724522927113151315285190736057742043432196908880920780401966816919571950871373829916526981178737219776795915140554414484139445211830834962916359880143464050485275805950592621806319569523701068385070867511675451083127207595994980030174092366929112038649477959764984840571461050270739757190276267709208954765661197008160018115264855054459607317882443419548817979071534910826933716905488236576429291087339979493576486840022261830316517462220346386605233274356347882217726956824443805472507967117627524367692161920711677828536659720172130533604204400821861183478437574403932358967172527557562868181802972911766933100716984400021403475231205826013887020976063476824685225991945433836169172044474901828552441034113521053966648929430474331897643766501820255620678064331077584216559684007869291984704433374942964464300975974001620488868132036576295048283346778240902977941828061702501461106061776443957679193330819854474698979883480727709847304097506749351113514722793557816300042129497234062059389860992559444629414188667281103008701950953168958941496895380442288274822084972625925969464512608812189758030405380547302778430537977918560531934956501954331229055596582770054698420350971428596888674988264553794608589358406609921364864560483408296964396772949665344918343823931539467748420768896758710724982696701328830929246247895934487612828664824424247909517649841627754160304687723749321038268218636515710934801454714742786470401856940325057071273153079643166057562686882500661221150575868442445397572764392446550726154360292331527901729989205230560366665774270130738206388500714111499174961356061385367831233787220664572796134757312949021093836110832878189134449903617283117170771397256798378652645120282262566914939915244570047273049397325398046233532185777339957257740100406264551946842568911595816499119010739077934941999169470717453430248122118506203140802174667792917083271911056611116536118076486008270804574969251464101659359663939886352000559842497913367026201116151456494349236412447069016234164217176793257388075207840738753584268005136182083232760938928940992483480633237157944397088470144803549896622944753204914907587701867378941475900523313920069927075447233323415707343015206301877436916398326849171612383753764089204162344542589311891477415211788974355423708724783917086460385061880636425739112281613370484508926621950243587065884309315703995694783480568679116754813571318147691245665394201865347805056834318297009304741287953496512019496497104605467342456161562091789318824811667468543168356606715620771159287204978184612065605520355291711120399417486648516482698615125466131098999857144964317008173286494153834510765606713930194154436785913049535756910333879934305736524004210184696567746424972725986109885314392792834289649648071802699031737432532454282281353654738482273692200498442747314099767660790172897486544333847593482027963420857416914769930736498434250627161972791865187059409570226548011503303419725878136154998814468786156512485428641944698457396539394899721781828166251278232860277733179960633383286848371945170752653503765946799160322192874634134908742512559105867489113432329441496225368900179039684419990374843503487241415699118468758707868088251030188455959160587140800521351446601857296155902762569912195603587827955713344143080963422289034823054512976932207856245844009651314622733367311219859207361141500366953125020293893952105575935547744937025402538660086145949082959835510717234392198182388051514655414169111394642626561152084241559744657280188440554473725626359469137116464769484041306697064313935613868788841556258833073844370803216504253161829087003565179212662326885986961651983877167215402259389367760060951345661695583303870954954846221967241081069478602805339463660391386898432857622507343717428023104793550903687005867201650399190081751017425442662625159531449391247654250387823804662365869454001544062218461550238778933958270685287195790517702154291388852166455493099804338738603833375299875457928391617283072188816400596340455868957443971852974442010487867261444696799564411715688086745717448600215059207686107473777211117032143522172832669314132307129598699190620999781821008301069050079438776544446102911746632988068504786050880720214488436688873434546734009314734915370346574479458207200190339211199958228895662798972392353483615841571036111559400902230963544031695076231999836704787646849536183635400424979682929420064964737742706128238703371833709260155853209814719306209278052094091501786209611362547035494404602000906034525365683619295061632536395713327529565173784154464234189634539189211338952649534135875413312185171611843243261924152943456328731052776898514056584828016393714168404593580758118874324325245945368705975048748862650950079658758673429658665419467691238474166581921195709810975095559619334999512073556115033897087761525496777553894873225482387563574369570479112714749016298413107563784299336348312433888192780604368421117245636816628055006977292699143059762269482497394788443463778596670672720228614001405118043091451261406944070696053396552205417433265410941985066132794829577230409147467771253474173133919777740226992682964500092237111524924796626890774646541384653560904582475049000241261135202008086586783906922498597088354621217498994245378646417982712212153539608156179657299371100108514232065977723752278710611693835225578232829749430046668060577930867913525916028408649075360633994878848185407501632067379820722634493745329760695502641394584363972726617885745498895731583854981495040488668692263035500028980119123280027207293139012731067402470627703828923865778490194513722077465454482518272614234970559960832791292908762253183443533413140196771258326883398559314983246764515940862031359644450201346123831363543925971338330743065431494926116504129959206936718642122061217406126142173085671398945259038619622667403200543991968419628622379117746412143876449779602881393323653166036399291690938327572925262252560956151279910126267879852020813333006138888729328311239084679779631951674489380148060351342476471408195012900508085473052907210351873406347483968005016869834670882996194525648714741698030247299017756042907703865727906316398461229506672228253702479506792983335281865023257696970458490356599194921919462609181727240518630833181184316623048354492182891064198731790740758920655206488549114275679961769775790659921922834391369874180538992301340866766989748037304986923187840549930604069305970617157748970473476138730364354435320220304415788959707042556411178963397414863301492473824499897240307306333530008800552322080772039513223133475919670786431372888863519510158509446877602047684590450947870907579172632494589279974250199873096003926799993505542667917990186994134694439023522314399490400683828414599686891335181313242246443722771534799579772368064939942339594321044775270391422888759942198121433874335794221342699383891445800125779801059559972885546365636580034601549442663622256434567194331252754177613284076917480075427315160535210281353244162545505896881943500561147271498504257780306063343199113694402041856121205831080600847660957392300308719981045319745718900947170121801145703427465196308934021132754698730200586952136500013170387605894151174000889275284489675727727869666022806433944428755556714137350539319866642160503139554023727561582042856659904682578980216860181369009219358890400282946982047993647560162456549952986783800072703274790925769329506597110196982629091125809150543986726255909072987844091780467198647897825736853304252432595133611841373948044403283524089748623593526579380083497774353730302906344636698897247370348590713012898530414646848333885849938330302327617695949102592138143286156773907285913368481220273391320878901910253006608306720077793943349535800899573594612410581773727176627187598289471050803383750146676192084715224977623530892794960601564066568233311472780180386546031775058212979144420902410281263967980710008397622748031280595871289526980382277280229531157537119673941743186627581470459466396170879478070919388485814571612747623811317942777726147418313869224656299661243223380652025055635875772241316863012341222703944828031382602274526122695942732187340347862843035438935512926230706750002294093017870120016679189547711905845117810409193278090357316779992799392673531469799991164289390580457320774893619653333389165392332960677913931691007033294318325772048975449641136576858098919752615768495804391944464767164267714274284878824871860903093000211440108580547954274263721844171418563779284223146300373561853948566120994277067559447247150202602919406004586493981610181739963000643179586512315241230781813485260632663109996930909240246349302238376433462310337484170180806983503220508547207021351298749614549911889478113208722150854902240543939039758922201882026271922008901867051518405342126028235239251033493136423174128220507035275831983393011781848227314602042750908126595424032184131751748653930152892095761094864702669003338550544574471480166438134531950652937809007411512204394133096686836837195406265428153100117510816321142963470836985034469855020891627188556504144965500147389604118892500513917308776934856703214674588439796789644846672488488963540735014761127531138268960793242215861151749035225442332823341295269535498056490476706656918437522449465715739900670453072373215125443556116430064696623892944091682795228383168301699377303110185318103927733740349486740868983687588579278897597224727475830407184522085393487946244758523451605056425439002223817011941300133879223959907826686645874548006899779053035381116643992586177255387996195688226261625917124935048062637286345097866638423325229321527472122164455496280857993293471723292622079736738154001569379728722425139029995178407765367557811330746869973843922510360267677051938234384769974559404219161714011515307848073469414401372891476678856323912390184433546388767594090539345685111241240446612329198998966208022296550917041767631229108329426250858710415836359572297119240477471987119881544096780039346260070311208069036488053092948196375588962924452426192061517984507772719098134343805447488343376507311128625536418961302163026983490176668255435383563915188057713001449375946424557851427656697428322409734020443223727980650594137529956208391524586418810711898562581597605439201866513972976577161194538572506203957884497424506142992966632782567431968416027692297947409543990822760737827096633098879744533869265328280883657882683564609660282539356496925622224643031406966152157151400286749871772443344128128157306406280750530948652646015994867555221855179609036249693829858416690790646813356042406118575954164320122300012924273708223312501152891787549048710946809631862662337471127055775949128391401925496635701681228447239825803151762010932478773107424610665399758692904420547241589802347567212857047247474844007288253450217117420974154288912863780461314402338761792306118443695147195878180373269187077510193945298154174195803854330774837880805507972080075756229588804146624453029674890973066695713011628239241694352549642582074598250942878850981974751929284715061395567646401739335967423991076585508572047545584271523978529758913603785402676557588432861991481067393451579762715120276259136773561303893663242787324261748013092498628482998105080000966356403973141463790101075555092638404199366563707212591125602866558912048690390097254695767759211024132794417627915733438406627043791559218400815779875234976865798416636254812612553837243765339987310126427165405599768093271332617719337368239896905285160163187880097871442289232754226724860694798377103179095868390014915082019773886539900519987538398431666909395363308709089369428638087815715060751372905237938730256679719111492464347011198540624326481430415366838923310178265413811629151748839744502596396537719425830031661869055089568481015044773172410993665425128817763166045135724451776304547226764718465178797435618417518698136306268103594581397401820747643118200685567809925839086747986215247283731383580120470151696300930216040044553905798998418971032889171278523598875179607644154147121317448272763370637389980618215976963018901607944962181195948133170020222542086278579400218013966637474234288207454498117747689633014196357730257896636598507760633917907944311666478998946036567986979691070478886886270434645082781119708717597842144766754540058233539413256789210796825817500903350050712847459146618206220992336936518230791812073188943145767781931056118545250220603548620661602485888873355228667223186870233681104500027088252789140658522072546636656345022112987925630386623775119615250071270603101843944909283185778718321774683815749117033298947929097682712501968584208947562584444927601025235030188512058976651022075154083593419824955243624120266234528416740468166081357209155650904081133239604410879820562252441091268398202687483950207369378241644388846247137571965925277914829470882866662434999386571978548044253980335011633580514505208318269750351415973835213168390261886576234458161527211115127282102526289880879722877597226217426952376439593115625476515341643249999487537587008794338163034003689799896195414017125126187294613448728335470107283086947399332373883016545362312392567366692718817420413720464933034401907075926726373855811553181654206236797523930427047029569316878277110624444483164411132959724635719893430492183002757312560653510942658787998987302413979876459878242331621431016015672354948326898707865111917343936646588068642884343264655820596816796393801574910461554779490699536805204996659270509799006272010134248342685488805317220015673397446587976837627251605302656826043564167163075531517798280307274322914146555767975407582351804042944798975695553017842142918375442336211362338340010805094248578637822838811143437000570597115728363304351284933621585986900438801613856169094073601724340018185727519266272344589310218994596090032888265486254196996445848583541041075644551128422836558793795606917138673964010602141836335127615865402698490065988611386080842105985570948598243487293150092838370170116024507051636789545379028471185435910434703512053856875222734915436116691803890245975813491101809890227190482623374433385718976282365007744054414108944544132537202825154047516102263690503475021605905356362319239347564487725740490829790064086342038052921277575856427734460964583674205530282486492047537313843765752902862516647908369733134741604933006278353460179494436217848320675856261624754861782366010194245485401741008075093704799243389711004065548600805625028560559199266175784551127066569531011170702482053589952437518438886961357662444747347170042028983450330505077143262149933892648684405360040984011247643795666328558403109657519849422505706566014370572171486281156600960563193732292886732148644784371674821291554723260088834009732032507302243054708064390606714458726976838974345548061353967522182389246671840176074490270651022481009186172979428545354051188711987959306974334826703005526346209047194597762417760625203048053642012713906157647543306998531285762039994516062490446446081885535256770057709338540269590712763116424704587272889698082735321328385150879954342255499554910259833785145044893097106180142799892238717533192257897626767349249609171222860708512159464123894553393600375785035633750369020454763436685009011925084197459867274485544455599804849094956692475947500374156896153163904514881717247307113487317351339395725939187745660866723375761753214745955789957726937118417470297087244143189558197204508066568685788012945434056641934675204701280990821728016423830604066871406242342430369212601453490653165311202886616745414553867209799427970655939024315555064853319791535768771644388058110346354135250510951495128080408124415104460481861526134331111655964012555884988041286049992829477918329489465149870853751882461035798380685044454571306639271563076994249303073731457328124792504881169937020789093707774099203956636866104072907746318026129000486454556104213430787501633909984464702489899154950044185143305031618517421063082892632932729700830108197110401970018877792845625367251253107704705533758295037038177015297543285225024388517265375202696460935078346911541201498425477705344091193774558194023348364635143132326761209323166935862320664975869809466922876420711415108842259082188617627593803638208342445148709498864200270083265361933796650940140560978980339453665799581136371712212340314541751105815320613838719358208466042705623652505934772120684254379371908730480648992923604093987121344751082072243442927773786566866236213094875442848678416327665943314300955398137927899621110300764690716269976299923704233968843935812798828041616860767155122107694129078702858731504965946915432895578845906001728316786178219143780417683361398598370645653966808632912757230680084624940658606507791681692498992506401341481292689303603099502407805322345542135039917739470072401596332226396412781447382658540066601882434714800578307132000988805227339963607833518796519795767394878578412027830781007430708044282778776579956170425272066292842814254133232966403120557897986373123948363352981584333066816409379795345463732489686314521582564947719669355750266358418378398435058796975145539478546040084300586192641360291431500062149631757947138423946011467382627045319585900677310640868380610178379408252109308188690859571078457689421867795022909563912524686256159504074247434175668846998315226309485076315841572594222641834251436750986127844720914360167475021705426484609396776709603513527489753586725667450171042336720355247149514216083889910974649074699612739518792314824952925970221226247107972874572884700578816028650763034309203049033498759426170277198349374768819228437270425897344173854816589820415011364794870184096600647355921710978370853105757901778622087874757173264246093924490028330011607257747876640128143103425104051389321323497151100183659806467790711474897015167334927090554127063018902666341195834883798155738842525101090933343587672349192098031090786671254149730392979989257406482157922187023768356610608507311984425578385002616923849793492660756433008645361739253542010240137912852548459781734251414555662077375692941666484915968792276235028454143263638178378823070886824487624382254406336167725236388452032055252552474816384537019801171755619006241263948169102536502499846582465182309060018611789031116738192990182677449334989209469416085254637822839329362819000261174471268912947938360518962360904090856125168703325686774936658780814990757448858234488830835573299736685569274018485323123351432408921383250154326771804173542714098543338956010150707592939280193435968289049994468463463416637730466094966971227519841981662680345168394775496219862755313239147904421148873818540830506816194205678535280040904513462050037199353456669403465696888004140752963473696415955546133693931094054682839884819006125233847019734188702668053367899693050247635676894007098192414249085958635496524599952574090394293001878514577593791509743456966653150062488325905169306504923888864750072298609728617654087659227706451474434668331067810176535376286062342735875857887460720925537808909720310718108853907946536232382588587334444339725675950973133941988024089675141478441977528106607275326762368103572798369859141998642970395715068709487397137724692882878852792284985678091687936703332851739414950479302269378496534713984919491242272779947805191314656776564882906628846367008077036436897497841325503764883935797909343641114383984328269296495906446488128713603436466426979206223553423212224040459340283119797031221312691388507476277716201637506288497116971480019059702381095427362713113719627967351520757510336702432176341434910679999018464341056643959552410630858385491592612984886372888276463907683252044684406412716157643284507154015917394454151957860321891970223418341185413410717269416112877919947698610317284328558978659384616238506729231377954704278361402305539380899572954484143664356261396417823578094360838494317037235353011604905691594775213808734667226477865121727296241182145444834830441168034061720781654554894363317973052411931761846298950369230607080199802509725894068172977237381916706770042376250071544841375861815536557404678358181203262218607989517404465925104201239242459395931781020256118651947621299455011756918387642134194991318278569049483434689074791584569732236038893841680104456417652613329807626667344643928458762535975069230109054771831104828591121392036706417099123707400700927789160340535517567768776690783221533653835050102825020715324962364670774237356309578347344325434984397749489072794720084615275683410414321926719861399528890602031896744938890995078149954078080701913762957614777607590321427065890808738854952180802548548575219309208333208762321703764916781758987487468739167545544070076635832063716526132111068211732148758681481172251232904363564462621898492124149805672389274850270434969958215464438936599187857498005056863883521024081661268077780879685304523494593918972992547537119028026465855021955550029898508909766183705619802371094708739639503147291571741602234108103849626066300210817544792962958262778914055977428848105360971711155810948573745026606280408195238751500167372908076260458757411720560729864269455452277503149332664721473149317249002706878021944461450052616609390519359595843101887703944002756802453580714923041169736692602827543850691584653828844115311484036106457043755380322930238556895700788461598815466237045079156232020039631194775301413926779510234653181375800312242793429650827299783112115622387205655992633203086837541130161611107399539511454590316165444337459743897549819182385672841489191601860345924428421723960121488533930921112740568666346828792336674561127961771642946351934447769326130797880109401334809613946922154308011339435410646361624861080968932094723883528529026127778651598622478244969491056255639464959169916157635663826016085579367886990175339371897131104784616393635178079983144427302185168709751299130840480723868690394062839131830699741052664918353176064609845274374888498532272481332822653364411389731189948271715498617574609619440110556982308073502837166011717215127249575225423176730755596561205094089753094204518148212068106464686207277170325505249135123014759136775112675750714008694418631516838425720677542907911376147178377619361739096781236888416787728651199023751164569184653654748354449068064637221855588869285159103913755542915999682158702943469722911852989816408608491232178092301154859235906479528837100444564526574379571473195593966414407950212620844754995741986717038964096307873777696850482867102155754793396090102170932926984232981774068445485053002413758494760654718542973958251975254857076544042759066699447186424027343679038985916304184347877186141036393435257575677767110083707996582829698144642041585195349519819089517900396121027921052533418075394708915062737748097948006976288632279519080133550030565049751317518888643733016867869810214113579658983482844104863341325683019781878912323128562534717998919656658987981743278040410546250667330496672338738200518111226073600879427709364241373092654118083268191062747061064370365912734675716946030562388806474648451732932362267712746903468574875209015424420767476381600749045000789072476158530048351917884576845589562111616216109669121476443794925867458654335089388104163394968220964694918399546139954521016792591336728065867024410720290757566816950147908414170215189217136055735519094269622368012107984123551806665713912820642166592079458734183361116858536826536014446691832290884507622969521574806887226203632028091458510541073012344397929986104856618726460990374213401319454836748803139833644626522747561932817293868984212741088955628019760266868293552816049001508912962181553842939046633184001814676261167668123620927969239111261157156325272565861490971373958008959225932110175846032089033926018666202540727932217157515030619939648715213909996416223867264771211782728556311055340193478021580502767455842224807255733235977051547718831221248059641169994694151101693904402817121573803216000357069468270159905422186843963305004059991985649130708255692753460362567283304024457752965395338232546099676507773366841451989014086689776309125299198664501883112599025878427739418821723456071568005284158938742603823233962463475647141782945143615838735639596046558633843373078992566666647608028058436421729291796638982127618830014912626389694929175469939185992477342962376269794185446347025025587137987869295113669728155819283597304333649346711646060821994619372379573977530832665755974629187078677267292563480720415619295149124193190213773270063542579921802629658266636203485399806000556794658844936280032926871123044374279041415278326606507408979698500898328507106698104662364892883610664590176096384968940005376903278959899839153594684577095162189165616863313947125512428654880743298951609888517748756710645356766716631851780636821132382836170332538669782371073089051565665685777736629580603072240616777162543509111875946685080677238124400222518485125708477513470314836037738880620472704407588396496438238693800299471053657756471048972691881436772485655323677773287169067061630003427029743397183721825173813284220926825390384612796550105532953699174914718161482254790267044725710891299958939372724674816278248439977115084539152066528689856022003472312853444450867420907188888384914544453517767597778324471403886183850342669481685406560890868253851768525269901087870661607179176722451000663649263366015243221142771515677627141005100258819364196024954332090025317564775651575764572924326238334167283495437748791427420821807676383192291944884598856424177126167052822050745775196486879396966709417860684144584133672785682550211651210369667748089924381228016905477595678437764173761645649230399458096036688518735183360083533166941354530956977483384476384311335191290931653290667707798698240269118702634990686896310445761354608960655672490351975858296426188931695145898828153673052697974137711941541623306676581974489326012748395927574335959827236851487019289291267090452420139924067226617794173259965897771638416539437034442739752989651460892126225408513221013455783296399664680955295958863127242003420085405013702419549695149968426290343470615530177779773626311309232534575064708070375468368652945686207896384166092121852677690336048239726404357252052655097158220878867676596922880927018511384850081433285064243660721784273314558922659061072072961203476129438035353020406558262897814155776435043702884960633850008289719306835940906781869763693012691174359380896773720392759246224062734851717864612455516092520454212944489615886892763659519891420181882807453438560269361579563191080892207166118749226789713816245944492171766398970145409570278670338818847461012943684222267887289880338502356488458300725746787662553917032395007640163696858915890846930179310397767289330845554547753779278062629319059275025108967811227078263612976228191462887396051077481975212097270055490271575771084679287707511545474715069868754349612859657757977357028428938330777425875139481281205201207645334812227777978495612768514073583280212810199319650943921034836502111534450473271732327054549612847704070740113756651505238211658065797919649662569660690965897630607615794703669938099029951221039345190345421077250055093562248594423712162859659754375406310052856513526665307447889025840342330803339485032283898227591635977277903904734795855034864075316351700045331921240544554450211192784124260659954654576912957475949365225359921250797739279252536929395811271564629365434997389541064569017465443822057448811249987348766030742547382682402619696261792318150166776260064973497891336565313344468836034713846124603412799424223730321813929688062967669645707067817690092927938709211923616337642726761796678676867028381760534524004731413460520664814449100458418150604723031583018456569257755107489630226513840956805349989875121645476975205257317650269858379491494791729524561158980460497932222678004027700710424307342805445603210925802813673763676193854346382394960927250968323727516022749997193677635271028082721800402767038975582209488522161621152317764646223354772000928272593415672729913278159873026262525723261827394647223700105934673758413464994036912635708686711961978131428687032403144841592141457620189237894099015061810475646224261982967783983851485738205493096348547524344814004828672244291044832780762235051825700581819454287859210010661398754377364634108384902044536840798676411426259731185017687968590350828921973265593667872245700140206823436069768119352473549400975348183280636746275780095503677216007942150725981509727992871156840288572694313281252944542046163645377634831188888353340553505021184650860897333986394821161543712145419348638359235783494803525601831300676835304565715972403686795063181213953624358259433244341919367548550821810985311656196055744208311232125115737877263490798178690927772218431558636607576702137692207667670266359327985109339521139158576709479788258254792989958139752201886173553353343151815261375361288196420407320145001130353742018556609582555761785741133826543732876882023349946840801214566838678832449680530483153251810900367050230404268340201143495696422407179201978082872084409645187885030314224198486973975463527505350271780965474202375533466085824191406705541421850962577099232919452325245397947460443325457982313290468785202596355807882708250615277082075421570962313958853737020052159291309422678295909194227574645369897443284076651772548822255429039003512489578356213688614513789016531397724914051048758914714025059303411835103235206158801641747423262869428187729068222261594679306822842161682198439353701894929335704443832960498332189783640538412319275603489560122521152982607858002248025905407319493625561825441271995054488937218165771707303966502781759306390862579815157101082282471715806947710907783288564499575019896394178546244860322567403354505662115225217165079861501517414711405823073485438322208048861051476154664427179312996359819860466027610443925630683759501127294866649259728447900605248545312275866699112218415810376473314902647796979292438393822854281022779134991236539135203358670159262799373836773303696513731951663032370065862443169046338679642075012387755367783943013876784386268892937751092381160924097983060077056034120844661516471641718983847298226570980918818457311488261160531277439837786617733633755672880592718632247909063017256730683946658157462620611874640943221150572475484168177857553165976501003908637319096734738895583790519304507626989533937921658550390041711351835610946660730417167504664963825854269719753447914037080960799887377672084746890730770352468116892181441330015268534741784668564765773624436008159913376124538303885373148281880052692428045848647370171977496381442763403324395835027341934610971933640505110663554388496537887184731263211450673624738290405526456621650685849582413305567360454614172181569629389112071957969957222696552115263616170180658540831008980873836783760676970489693674169878636737104138489569521529878775053517220393657346934218602959875614571218063792487780557412827399568557248620099578753057167973700100877909497706432846262082995127850717973408242350066542616978399682908407869396767827486292457404104222808032552557235445605506815981974496118484832765121750145655522457258042697415291644757572381629722935371653126293186404857687317966374315814226862268317302354551069284860091538957206049932231229087068428255358769387044696268516052989021545923665443056750834127658405049035281932498474618755479579888944167546627218809937222751188865586792442665271787505041251721346161417582698121786705745620968975062674100374030324653136263547553371796875295979950051632835427672261423405329679922417302502346088758196087993643619382422797821542582498411330617215308152240492422490301976858709615395439832761381773123035188886750741560273451200756092598206778075514814502985215142868153553825232478657017850436180721219768161386883491416877910971883920450896423957376733341488504345482508567494135038922366817376577199571303526963091990100083058668600169461850436647110700085053111219878370485592916838497302935873171779675025169615948516779692900700975140071327767872057151687780597917424584053844595969558987448436324331693718230629364115633653541738475226036588351557665651546612458697211674796038684261717343472459664353262159029462804093613256185410388003613271156138245890474981746780424445913155859619320742356193426532985019161558195903789141954332236522879524382103697338522095584255493487421580100933403949922213253135982842521259754976322180634061919828398650895600182929525794329674856429545344942393348719099565426030848177788088463011207082273107144662213533273571131953400555604330819900825029492254389319644874094536361944617611547785059346067462891187472757176239928120038561255882257099069765757449445452764307387288672123583994265857994317849250618451981345606057363919741591373476164627452680550911718692507448153024389916361754674602745522180348133558429324856401979447571819472214869972941409393877745104166674393820513511165044592762925912838271126592401023245960961090030132817243759488950342050809709482238860383388804998802431761591759462735822703325518530284578097799651561582553203867942150208848246104519937344790850444168640578729599222670024090613657807624357359685694527370502776984568417255997645336839317107562196907373558743204743487588385581527788506183892860868518868642101194889789861461603592310787062187115810024388381101955597844848569607230805930548366323766745946018990239915375469560780606105638317142696253038582815839026300931094785910789017906539023622658407312095171583180190578343454661807024795551466362385063623116991817174775698042766070090739811121446356392813604907294074513792313605108884133058522108767009124954768811242953170467433684727791716221952472779376368017126027613238988977485751770557162741632777240871188327950442232745213410453394344723965433940673408666005484135639794753120988987664329857664002502325689627203749374900494941792653501182667268101519274470005456421157896697677833513327478448243931010346042482478603193756282612054942257314992245672982881209074038872562638722140034392069938849501560115928888681705750055549622384604335642390659167544642499666864670014290698954734015044288771586504221341069113172575468126400638704694421923032026432255761059734652901199919368613765462913436908713820414837324766370219543067519189506836885290946898916036113035155021446358871557407229450535339845480604947280460918702870360552735727028479424828902320296635851813423987222448458895653521727054669380868877579108628354137508085502968095144766584023848607580423308639056243981121982794478395551915413236913515487125566590469837274069792936646254072688858877848299865197773818414274418753423504464866592448644185038115577650885350470821123114594346959070252898642097875532879572732112849101651124526349525057793629070268596708052140194889887492183620693299267294874810227430625047863672413586584804236133413099215017352552426318022136415575620513061468734573237842395664160627785291919723782039716418683212296384200495756627768481350333684811375230807019813268878235979955036426543499942411690620310129572444793806530182270407911720782912986103808631584372923601061052036693464339770503025779114785437134791033647393956301465594867281996166036941040127230558284193416064690067313706281059764414291201676566789433214081902965935645998789509061984397839304450933840510379200071859218056755437610665486449305511437550510333349103489488629466833108820047194277300968159034782360798916239731023621208384715818901442145730636716900654791744678622761055234577825708560356080860580253936400688355853751515057925007053252840856005977226765613919859717266255834213114126322984976205159420170263458535019288068128168524914163466212942158178390005873651043462834106510388706579762871185486293075493920333570895880876581199296175102270903325086264070937148962409947980927601164800859858451741688765429645108272421008996880414713456922968175356092182877013766778341658436478372856210660328031018723727917276707213134840510283256646837463787032278068902082377877161338071533947699347615710005003912731068515360874221796825227977724041692326904055537000652016969610154935173886970954579720066916774749334312735197485549504005038379352110282348372598052426428260644678404130646073674148298896555524708860985618148870531427957137907985759644902447797729623950818080500516520794115152027163060119405888290328710127580988432090991517951564326911899174255015040313534515946652410870504172895855599282300131952483069439013921728480549311081199786842722801209621526769749968198612047237309477033891420522751878845378072777221207097980284935950272927487510713352270164682143508517551519665613039912493647272886837996102612702944839112395625870216691967002122042297207705463980874957848506692442336029447486994163326518125616030694706810824232834758956599095778404546103166566331343808953375038642127061139787142416213914254294605873864678234441926902748253542073035045521537558140003613430223945448508174840097670846249687857617910467502145852973628335294362414088099347810319813754655168702648591278132751019392512055061507417929648243801673808586380549063851210487035402939481406990229809161749001292050419709517947703386392116477343080953018088876333695156651382716482773518641554557243457707823648183686833034804327466864933607527093312941357112919186734410644987621152153429853806614407649220886445873899052590180201446636902461261100458447245130275572671403017260251080309395182694364348364308948576678056968706396994883964412297515843025948766197459703974699683146795026367649380852835190638639421596218052286827946176700084151602520348889585271219687338877570884077843301982607923529740465348065268290234899998355349780029685774382904326338024334438901538595098636139738569964023228524652203396735519098083510508818964695309182637735807900321608628446158448270866457682699690001043120028628977621173407745793492308575278071790650596812657047467240811757461618834610797065952985984682659380934813819127376857923402617707937288643473741184912800715502774668141527133060212241185344105648930772036948930309716383992117715962269193432369043936537028560781032274421138147806177613929942817244841050084588003020678194962934630415715559669000604552324444720196561701029904096678760436468751137293875218378750917620109369239827834009768413276909992956721994482702079017654126449994071307979264442977018744592251404406352905605414560661773203204601566221659127761498468404285215156082878662414870592513758021555430934046903397922076548380826473672982208262922355232112834033433300931516172374680373584946535552001543421604054485643936873510061276490140696502487341736524319027128911686137066924781853197951096682574364647074343388665498268150879879565883650466028276613933994443207599006585836209503856582496198715819135871658702567719265786454966955829767243282746225914345125887351777727633002843540115849794719981321417542436185760541264792747398431469431488875476860344724094604104096173977405982254950593660155613276147958146659818090305148933363370196267207385664557963865947147420635398739285817032250460134166958878298741234210007368253431982304280110897319207679555806911374281404865858377273788417870292099439323692386623658116748225633012083397845171178994398487157753535607183505833816217151247319713253389622065355789413203917883553730611751908788511239624994836995266384673355480393099063461522644799622365532356129889256773845791476135230920916981120626610832776223690072331934721085638931696711876666181603553171400649304094498736058639668373837720145121097764357315168830340082019937329734629713552218006608190532282665591362463480888490554516989084031582943849787378662634807698473146233810275106651045650625715094267732730162115524841978670073393045222714368700679511547988448721485445781255636192397845930695944830663475763142654696249033312155304896832540013843324309980865875042447831900312029512992760626581917103140406737561539252428114366904977854990693236090852967862466015552414863749203062808155133455935377235363255937885955351104791490312612322091914760656036817939332135773896672472913307015207331744643998766317978517022633585305355531825322082898055168707683630512515418750276320090109653456622198528666468275980746708351785330841594264033848874696766783414645892621968467908892732082813046436106875483934882031719710670477888284501835666640641105018108566628701184202270098607224062104369940197177785948158121026083368334255158288218884441244988366874594502084305841775705277053626864774378639533043278332152175281660354507310697666204822330836971995196820136175670011344245032043496319906199123535753081234863745191978182871116444597425569818542935471490721167060869585624472436639586531137505931333938091098778673927977050877715188441248948807436094975852738116736938890450218083124334487567107422241871905430680544057325571577680556535336096342882503903144523526154343732941062950647191610620165118958235217147949019649074198206940444783585529688785745853602621371415853059926835322540936491559415895203177649692996477910571908133952640880853722084950820077647689976061646369287020185008232478536831125714859621113289426024792592811409222605670585510784970314442600291711142807470267616889179691860629252905257766177053454473259212252879378658553715972553907223075987911291095639085239050234452600224461922623820675741482448039178210285919306841373720710741547393230474217190287828303350411222861770004723565142427731845546951950164063202214485402141030251199989802757015656061294528236116545641453189737261781700922717748264830196807709848198362935167616226367444063701039125499602636629977878152771399998645107445013349638301784861105585276712031403104480907564990907848596392604552344038090528520247385566081701805929900444293865280557823555176318885526402748027582058441896811212614388384991013837066740477328090836174183675672296906545106899741793472285900723837471183315386338257905531094411666460750600283378899903128979912333137613523414134041789768388562148035188371595024992338832775017958708960636929532112645905746800894014618623400432643261840392416056568767975090954089081368139553203220170567113835114428052301027157912582339278079679057192695508049510407701998918881391546706251485531111501350800007333374687735634085295176790740061911077231357307584094861119903004755566230653191333003871456289503099630313850922989585446909612768748506671833359585832655422324624170830231142910116868837828698424595583977734486840270089253104902591390216853291447710142071807263893770320248542791647902605253627655407491221066739639189449859777926003813739873625622921951476340466102348808074978672626964830737452910311088653364197052442437323352065013526379528892705339159992376104462516273423661499662769584221457485358383142215390733523082873920618648257493862689057792771925845819803703811190327053735855614713519923590434383451933466443232427005599938847724966669958825533284483227718755822118628268411837213841092882837508006574319042262717030468918298976684936418803316778133363826300808348749748089782117608057900108650621213769631235376068112553731848163836170080497375311879628408787064874029225589518104922790872476318009060041405533551493529815924149637159402442389176967614744644013407437276702637642648655169675473414215621251166331121847514068595808833294239774005622003611200000009183544444682378500539118825596906890382377594053895045963267694764982631139036074718450210955305477246719265528459856630511172867670184170930401628376278445375065806575976696595179552648235892015316585046209179182516954278726203229321142819893587304257550243484825277955420378760073646626328633614454484571374075629154079306111233192603963388038477782152818432784249017884613842035096201323718530036370235371177217347342524042502031482566173098952936756705940652714224760322126041031552015561063083745755151900236063012965487080595375320922149778252820686039166464259141577580965242474533436036859432860821249886138428570238761520362333362308055868471370416380703897373237861321427561434451580130744906103059019537343489756205125153529317549330835322949334030937255848326119640691650274435764455038046521088540965758303317694103752114366373140891008359051544921285826273613716881818290096682246051061939377034049155062645967438376444337749021733314150965304543409753166838504259966010282240024359067836849569494693476496002256942630816458050269242052924208741298260401801071541324310449435229597600944055880720956087997940838196247394041283955365359001602520830009261590231674454562213475708077233774223908357874661403736501210675911162469938466265886335880027048239089752112376647651564237990087347802609800217411011438497995887967306224745813041277649004382207246315852637070604749865180832243146494767542561517005437422807191747867711561124643336515403453077142824287267048455148876203181228735951127794594030215837294297836000816353790389948582519091502799293665151330629308287384232968989065843128448348723586976807525538859324293721357897615830828417560272690858187140829512854798248733268912082611718014091409013628796494061404867094679702846781372570161119863941302766096679011742286517763177508590891771093440379606460784335358758473134243742772243715487673819410540568431252284525698686214404619472560504280885312742783792192633187732050744537811665223852716572873902794419348473684656333893165879091260287809560150268404236177233913395180658565248235213350451095240729892143263520560873231263568560978093929719713814314762923597706841560388888044600718647252976349131813108979668563896423545423069551586235027107809052480864747389525104933950794921891935378222272727544812406283666033669747672618771657349034399131481536482654298180760062302036398470078366522713739284297117456875230340701930775140436862666989042698293874443732608976964656833437474693935813279435313377487416309231662844246436641784298887088683931941217104215251089665819092158782843545948822658930473049662690086113584652189564177283595080278922523232603973245130515244620914155525042600783141980925442443938413547696564005043888903186811998633567490222525028987538426028221345297198582370263152276307888367773111713289183821061073972149797003919443761100995402947921539173980857614778065102536784660284034995444433857178361082778113726059778408716884362206769169658576083471741380745546699148261095157006360846407347521926487049364087526896183501604962342220554651489302603322481280053335846295480423315770529820809994753134112005739468571877007923715607840932943688793238672256462679805523583964848035697390318524344533719737072787314375117077517151002229060636387851550181640825469712243763529494464990861871437711920295133339209478808133503542852615862877414486771029028824037159068999405496661924216116630127456134881561184043781152782593571657990283243838642829270528237992461541224473941329347915969204666474676054197751971810767504157311782795913539269157064234308609711818059437346949448814064291015337789850719162164776118659314512244679630105322476048861863249572992660395216829608987848892486047951340886210054512809107838039467333866759349624156505247893509879529686875886226227863962046382662911023031843162101296319084749551830731890866076037437554192022689021987544867954613989993430354431457872664034453007361482422202161907172079001643973466002504913356796124544620932939599547401118018656882318640384932565958174849405072237237187138262535012105278104117608859734698148979308579059117321572947353633154655451981717571755043111826472333057717742832305342538430165639374590471516801281512407241089978598634204085642253416843513206741474583356521642664960106113595686265272960442212190858132284444226768553930682711337346182568591543273879344210867464789706037025531049919220701348466225586306271718679444660890498935701889195709005659169046639563048346171785722368645912632294673910428637102424738140677084501864870573847163598130498738385569825810527517781327200003378502549058887137467781903940344562879876807447263562397319533751847076814973215984898314555167252762431898000822946655306046132464232583221701889452746602135240590474345230141397415310305255668582160097129058795042287939104951360330271703276267565531913273129432735867759661614721793854406309642252701543864180088556052457100265726462386963739020136100002602087140896073965947616392904226978535753917432701185227447557632265433158477780649989026983074952065935999754422334163822858673805131213519061990137643768398176296952501887123888188609829055673509666393705768836497308923010954733854415504880737361596734020521658174385214543102134055013335452978718329476034155771423074533440764593982560074227917178383840463909389275146718741865822444111827961090906104554612131251485614955672589919146848660008504596113456412397438470621796055859680141548889774627205460554166486042634888525611249525594675223114417573306584909839962814839065323900993114712735779225504847706081175684548429793125928269161137496618965355426627779638638034719571190004300457537655787675490722927915221314929042841135783770700178757572126608396984881677247644674121538741831458609684723703418690754427037909280745998860438313452083341490546071942694360873415184632144820549302054334063463566075932919033608839834886926004014352573757487327087654623718700444394302586189373786294671747442091809908043061814134254710960203030278901566251159893885606876301554338363230859683424470355436946275834235131958508565967489981500936557734429576853281869974115353997380646212520172014592754414263575900060857478923254899464819855037664019284078992044321854352584174373414743231166836710468248355077252423451309030020496171150268319105861845645389642495241790110134970336399023132060700467774571388072615858928470866138541710862213909627960332253824149719277491883528559011170705559464548483816018658356671761367985096389525930702458017505177905008404360725248880230036836562399074285411376546588691435304042987498601052366886697271328655201258673753213325510825923702400415429851106942648253213621491895176180852672393837215244120443151635879481676458563260579905094819430245694682735748721728006129795633775641841758030575429637348618654537232541127811931896158411793932181545496508566297822500168324955433800108255453424208450677014954113476061999752865444875669742320202931230505092533945469453497359799023590080808975837836811141324222867018535352823185638110155729630432879776875980847658738254050556420430159404981970536915646002289366270066661020207587555581501760893509617434531690593591785459278570371278801171199102564975651925880711653133996901455164207361899580992822501246874855415338852207711693279202154452734828321559790933550511394568407010911795825204979312395497422818937593562200879417434981420748228090717924006080064710089579890186446834515103863314581603115519221727021662232714648034384742848442282179813534889244383325967626609133719551522580690922820226494707629086573410937481626538380177135039014353588675069563065021966443913876075855167208246892025881945749676930544599326023258192654361997458579427729878903684760376744116969338434626089516638911095441209462306344424226480687493172205278646541045083475513318944191985955750992659785026007300945042559384629943864070978295645343294065853055671594543754955533419730830380448563770342241553554939435567082809613847750815548892458567128038855430296294960677719530742363946502422312296936571046311886373065627773976108608832064486907453909707563831046065717164128918885699030820020430638135203932398802202128163296991821098715960441095010377947267511533648133727697342814418433642924371839619947242984089547959393352030897386068102918870028063200987746197487789070301672810106283351977514161294378698876342214964429882014470581396441391967400194355867664742932599381381266752003639205742567634628176371607749519875952765943713219012994359285220457840911123400075342134779005988902986535843505024601345915770597889022817685582295735643075849529451688386008722833658696128116323339193448448781648922920379926445859167414877842574964641963538802640790963786506375896708617126661747365499008651312568962796562338432918326517218935879479689497797021026890939208902448541067704687432446549957841286225081886862933066795582260018742353189674999607806270379907769474670004845771601076280499726223814966457160091990806063759019526715625405395441150132646298080844797918976741144242355084421249149172578643938627966516647566487310121694181717111518854154521772285556808417964910588797264868804849359777847399396665144114351624793768385192958674635868269219716318422066776778350073448390111355273408771754561447069008759187635628389252535061882615454849736703478014180574104533756342056224354683044216872242739981741243101237697883171770335270602190381588652490481651720088688176831076753733662908028632124338882594980309767021089833123773941110371002601997641604076482844031981136871876115118415241664195931945037567836270406900885405360996231975595064470661900706149888565393449549894499456066765298481339605539188322717133972016055155187125988196683932405449079778309808166566005447908714558363198549144564718344471814804284847477850326757199405504790166393379321191883634843651432627202737087477858227228964955301229229225790442021550970925541360718356083287411614662684523254068008800090326625980607261499477942218671409981358090944925710096934359603846433124545686623982549008528160394096281025923034570478673633639487416250562819011678849225049043754904877828836883437347090750470566982487403973012757045850412713168545002490105579820740507268239847968643806875759252167029840472843892670839375305354540025691535776339624819625306393897089594263494253945865677165018941707039398054958898797125341592617501003566421891336624128129768235202991004598823391515304757985716703662427330206553032959017647231656308470329484753541303732088406638060215458025474688183741013485162885775729140420401006966440465498070632031614038769126316249766762609784581245032186490269485672617513794033341320002410535989784157826576246761191180537864152517992151847694843246032212380264347013828232136871890787098761627663362102761885318194454948796279262067827971791045664850275094482017118377740430054051792866168036542303166735270804621819791336660040557422268469157508568893532717581311828571098192487539608003988909050863627167069808492957424190394567853881474957684621375000287134972213516535928724483509887581943092298474090907322472276119033008243785606411910884825236748584821212207084864091921160320815561873177927523366706266483233964757933014291490228373046361972550869312048696179036479664522619036379111046708741361212129349147796603492964991792882746621334031186041726854100351237360790979429778337641022239107078533553359175190363420476899512150369589672558993828751230552623931802292995891467615918392358518528748602291345638560841336883285286704085826932475192136524880349564272086979966512494405016586457165320843569229845043319639287228325352986513225488794317168659585752486437731986072983652283870087204603993274554592526997285717862088168833745284166872972824807202746218561333550081466011814240843843749428577904359570536630460555338092989489154403108770635276696178019036521422995635847234205794952346051602474328563451034661243959882903668168886969124161150894201594848184688333153471111406915960856581185097497780792964825323066059166733844152209071667244192729924276918222641877915395051106033725933840242908025586779676453230039454961758776624810914857446301636158321723739843193847515155341198815179250761994740350893534622795084003222162025823496165374553357774017011495082832329379296774758395604021364285405815826757530317054479746696882485896069755307323312337167259202343333180611260640051971636413608831351098171372834951570217830499702426285850772624304229140225862808834330902292285094958824743786027439719725530804806791770860422041592395060148709761874670065609538400845014127336417248800460065265932059239871784197015286567682943868640791995063818945794027096069312522745716596011397036976112181065443706267541633624005098058538278550288755943459488682786953081778468967087057170184291274826178377058747960487389776955918135763713096805523424171415463514285554469152866362486548035005538640126315851631206220501434688458532624939433335670807138327561599006074325584147499396819960785088627176473759853495548865440469366814887954286457590517653554263013231214635661450811034433929041217448740408248667423242932709072408338054012844151499703217066951054664099336351216149413419251120110692356932862699007846018861095225755053521298154475390520201928633383441311870404144798202845163816860250798549906709576103005702370359593208541514333533688656456405810464156125237592776183768741594519862860733780294929603519364171823710898162032398347457930969473179186128194736603249480603426121736576965288747286004890597673758868107901932837655837869998235947019928504798911136881446605598707141773138660816325513400990753034429269555688228879648792460995828405658142585268828027210635706440697647215884472298277898981652994247545358112548740702004258853325452124546891286989762021076872874172909489813569263392342479636656483640023686755082135553149943149496303333875912977193336215324347768942496113645089951523069209318820641784296665222209609759283074912416211546303168714524867321745683336252396963588209514589478672545393409882706012356119837204260280739924874958499442963801067880546066108346871039147781270359801568725921875392489105760433296872367952669609513820690799174645379654512054413561437256035553186367004878277273489770011767999154425842932264454598123754372143021327002829163851506932947293440727313437118826611603559431098614279296678013233946278456429274515419283828904696416737839439614507393392842051637914648599555564153604994963923392263884019381786146779096872629376294614217661066296993837647927951953228453876117436096058769074665333162856309095507633347634874556425850337896591132416065443544913930533667663201247660636438823956158427582381017853519158719078541927813584592592585376209293630931295175716251867712481713377692726025569240816384271117737217265931499239016179695102488738879155888661489508506315525510283443924983594132323947787189753346328778276901738993624475720321249661735897871532096826351204379588553586602849769842180173991028833914657998817077684427090425840473581654172171162077313843916250908155663490675889104893649212423111401765306943348630131282170787023593912901850275058688572433928136918343689032025131715769719800173270758169097621642299204786263741023956211480703853539505295093103900362274191341849632533698434862891774154231505416285520922709595721060054952768862897094287052589976827876574117804040743621801512738301567399937423751938274414195160612644076976838175067405688611431771127758622801928608844435426799625275945808704715712632503803671006208618867026500417868334856367836023875331370582727197053080407044889258832406917993899939281941503024430832033031222453657451565583984538065070122776374490738144211121430357391584014409140439817923682064835819551718838849448691101702114197472626274658157511784758911726749445521402244707330661613686233092480927432341740705821169325394457401280498609990258842330875616123310838440148827701865458148402609028621181149234332524482643087171784535630168346297942826270689416518103437400278299662983539342025479014255200566145467826479145731964094728301324723435881968188325412110481200697084292686670633728259498487169429659257444718440742964181039530208053543284604900470355857259577514607701395242470964718553958304983368123592450897426975314232420886070076870120892856226549352353902369986267529641421693340938836446641736833477453987563859681519831534843545187955359772222459201927886931409722632531276456044501307840509945648029025187794070440687709749675422100141697099224808876472626970038882773229314398112338827704312046638892614518210786505442039228218669942577461031448698688882511364866335226635442669124260501823631567415959881213538566344938332221101317485070160634705114121406371061307556892084023518300009114823738183831553461194821478326515596377919293921060444878444417297382464118537340534142910184360432708988473424696472864115427965743099547891968903317490643101453455387705311727204928208794373476287250209021204489019950639266372888251457924330484239491771033871457255161359999571589029244800646984064386788824435885396739393898434687137378889643681413543531305013051393208647207485529245416856918617884871616611161232584668687444435860089560831365430359263896666032498113754128547427589906299731257889937465752396887912176598826327157232787423715460958346763290013653190002881314211924257007685623140786360335040683397016730858609700019103911089483558611101213023738385984770252842303029400692602700614902753736123292012171694590493560124540481436697390040964063195339700534113916549482936979837827011817614100803771194699501889934821573345192170496008827970980827184347843171231125163149979924563038646249255865239269423201589926836419235403050381134113583229834574390277460945355714142713006602486703010718755293368604088583439457970615806570463283649633105672628757387775918583153575226982032306496333708999780394192794921545991208198527814992339126328848182482567910524659166745163816749614744266656625610442262703489457221299545796651018575554675547810744994039879408671489883660457687810518309132587804907262761856284506167349736568513932452196380663315270863121846388728625331192628797816843636160864896464735404182479166415901625370193502635960539546372980181870099745820872037484559690890593303990240926328507889102569441047354687791702747522395409143355906569516708613694647610615039293681044342304650665615556617543709376687369918764023148017061716090513221074246065925292359857215486744697444013336410638814335334594552349152121601627211416987982801614953383995634850734510106653903991667054751655532268838544583086038937523238687688386908891624501903825990127216818909088229472809255108378628724139573756785390898617807887948326447496116380652355745310200536712191801623397830145225859348123850698916703893146469588622745408536705422678924499787441503881087305965042652955863445029682971564226097344216840959834740715919474740461566717367175424890052173774172412071579282735483533277474030533097715924652736033094818984162121971002149435761051583109653071809643735292114931785823149992988452385206221415030118102979574393280299016631240781971623821585233708472470446868988845836496603912790079481686374501762103305671425781584355215043020956757564761268272182287085819265857721246329969149622369253561766619007099969186404632542812352135879935722713526993258945469407397745461089360127072196251530719884431068185624292111467800307086240422018066303839753839660527733745218610993139659930072016504893662780142091085923104654355378559626739015519247999704164776009149392843061240974457315070778026156249337059886049537046204370230552729846920021448407424551332899525210235495483164501090646917279349941753388863074207535150930765161180183726112049393296748470447898892020221409045785612206167459944490081840741654541777700557788054234261252307512987201469343300521578315419320630463661189227393205415903705782639713184259294470211823253956204306570646122831363316228262986999270494685576735820969097905752316743727339154669739029419233916785094633084214050240104351730949281721262582003172288334912491002130602464181463968485378273798285629791328015774290969935715396305066390281369279113498787585333585740627743786535111926674322630981559239261516384974169717850219853673933959428033975012786896178910672472775677146900542634667130453725061353629413183301284157001093613235257368251390772282040659192699156720354817811884304770598324811301547325364325084279487095631688447162266053438039296919509458890619059459436489665846566012927910029197380312993903368683276636881583161286441291563462595520296273333497047379776669421104171982393560370616703504276807585884637318055302402609771729282521012056684150418720125255326642110944600875391411932917563700553632514155056334415488440114717992118435079334085944052237700062866429580176828929371630785174498663932808527121773528123625955567533015147749208621534621278419593915894282276652791461092059396362540390508364860203015688497451446982259021898120902012867592464227738524503563789315314889252144943481332329041912669880565560893204761119537924875521155997551593200075231150514623947512974437249149831508665772465093025152393092607115949598613906255240288039350442646069080705450886821628024953215637683991150262912385145750980934963701206698555396008367258781722254421623314356473021751529222415348867699827837343164503191547465270711840192871333154296636958937427282005181844267100212912415193345869622099009970106855179192742269104164075456705519474198148818960304573734063614746286514077030079430137718064567063084965103531342547053326570541079417135895665149808239913113614557616508202431304513575198821087702839805778532198410647611661253029801907319913402508795082966258076239549342950365846809002036722060887637926413576457418392032284564432337138789766770530704556073070883815216013399180137954649907938203732086123742101196507170157909616535726455483622815357057589451120036306295470197159294485197143443054592621643924173898311744045820887083992626858841108700732689722500944133080370595638110150771562766877364475963886692821499451755964996599788716521791738157270909364574537947673683917384585332801513534833858382696834956272110203707224928952166440440291102067084904510832796104879863460332886969883003806402759069010337602345620816260469846083288423621646418839084273188282094724067446031884390823462651602620764970736435659812309005756841719761853058506963727213669344543564046293427859308582277560928428325364337067801091627510620307202233542535832408113408988382659264796058467940014066725656371207313501107857544068384977997143611680441417800234884531438200931755212958964510212827570492525307022082615257195005834875518524674274872346141775323567739787324893882346540264918171447514413306889469641801605554400840265192957547633659201913164066745016161415260246009982851346488813843558580914459926041324491086463342620584952598340180166493657636952934644805819591455131546631065365597890984983120737978445653249104502332665745789104335269918892344456796305930417406676721448584784088458633137101235161709494490847005312541612628999424730846411979560784870706646722979963699221222299649341984140485746445738334064931500091158733432316014770536378864996287116917184284714438929417435551471680210901080512424945683352974640506880667862911189916493182776608880050812246584937749435395068383627407202060401671357657189036541121716299584516342301571528642170333765637114873072056487749713709267832908026906443706966503379627034474994789772703883576717959332683551818559660010774542159248360417035529520876277974186270111066043486186026052335255971836934811175283816371295190704770101474046637000950713152720086114827787814712479114652911071316326026032025352704324325192891308065660325992737957593915449617075822060387880642069225387814667614827283720969899646939077108440404697606700635559395928280686816395611347106303043581026187284042227001492286714426246535162010124662902044275892345780363046182901751763384890406068873340947559722291150345529037389774113587680030974322695546731606638140708152609194380812444875849599063586107482375538826982713526066747083679559035990894650050648794071352529753624673250076633535772367101870751705734630765330539341753795273801995971233331506501076963687612901254823272319323905072299000949112280140304458841777948362435639604801218369297578223054898928465319060083392309168379065916440606397827125568356769713783575267206637186426771947634249696002881589888250588950523498015022723808358424522888255446764920940353819773947192982663498557260959674155145006168641686007497129446443909345640105638443312131391184407805630556458160522002744095142952837546764052872337803823889066870333583449967914856006493524125609368581536551158625731976798749742329223952168301334381915343632343865916344404886968269126816459160997963532883023145006724746178323183104617689139093728530322952123906782684839274277792745211512126006879284645643537120528324018666873826963302839106653063730684335963598291856771250191410424730775698721822925187000396642897711140723543114149014311024658495316217454994211518443160304555863890901611180541584558747601055193587684444054891662316655629849269802925051911632356769233362147455026210037126516964929926347963434882725298554336197481789302932959276433766346833240378291554333749651670152840970983855413374763822938310436106988692827568239032902502894607449841892294989559168256006221805818917546746886545168189862354935207641933271129421456364569426702471329258050773524940971488843756711130975476737619739619452361815320736963682164015088724481574883824877409663054137926635674736881483900118253414583165023807932339308302887892647904457219637853756537675299583012533714676078088591669626984987703705754413021769615018867475871342473558366273934183431536844462939078399745281277589828791140260485780121242332343842016199345867640074597683874935880210178248093853410600360626272523606591454854478590953314258245897220385587784682147429375757186281437002719155021911522732822726197172876053833237465538269798854363596415831240926014768739631783418108503472615826442477237618290996691758455991992649088975050439599212355681987474057868092798519974393734916854622830167675046818036971767863296283736605404590205509651935521674453465198624932530901973257628265513875749477956191530961511162632138267460773795687056315725978991222607742351321925236898627055249752634794867600541677564805075119107585670728959220867568853451410736773761967438678586992037625215674644863731574257847889312554010054096648811689686944408434321613005519173391278498533467794356620015878085843389962505664335559905929165483045841065589522828858376259133440187381323892029947351901996258520503252243929557137102705746753397667454103906942936433646232800368643232713829887589974122128265419659474513161245048566210715280422928059425113460371166100228890803280275582196974793917318674256760403703781875668776112074570084070867461397242726392035086250414694547158604140551321963860233914344208790837155776832904855552518615059654373043978637298407875232256466088615082235266778863669195917757134742997553329625167901931809438521298114992543684814904217899991949354198879397976221388085136289812872551081513180115992676882032815675162774317374686409537756945217446896231253291829386364033847990360189483233274324834907386792640788696088835938681534758685384554286272576372182640804509195322748510746233430134657911709570628785497052972423060070272528281943192775739949039998719831306730332715842061724672292146272968119120730659090979090051433624818182015730738400750143955028459240545203791674920193296857603911241515713032049920225278867275877164750283466972920723504741592196071263504953509047372640497130189690075517383442437994922840028224647509013573864038422129224558600671884861629144030523368964497924628685911005251330080662392782422116222378542666821712254959294300619064312459434362813228168486308725653716272787326894571888542432675772979384294992407686632001367350837022517922874849103589466113875330373250137496408523478075274475509175894644025477091031417052747496930635437161406925685622506658735432850243294596318541132969418399052584353812349668816879046441646827312574769253467454321219722870014728428749876108683822549888810922384251626079595271875576646431545255756433722269642409719776414502330486634884654908314419479398702182445814637273718113237948600472105238455980945132675360809353737516974920158287858458982550841437643193766384144145214544479509352699961048220341735523408484252443607437386274598028680517370457102259518659065702146272160577072181610551782494225953621908540117931250970743965795125792311509413420051121141800152762427706042332041306160484597122643010226910912095076568151874570102076438619305885832877575962425789459685495513336317936992104836144807586999086811658797751315779567781627453058197303093168903550947282026709526585449506517068417443369712124994224830869319842858789519738916812821694772895898161206889827552609191173461962217838690478804634886261527593649798084784660099357935848046024934392167465565140219574364464026198198352094187708801165750655893462862313257204284096117534496717334308732415913961328774773523094536353564942324909377842508303360170010104725597766114628329076699136978327919041881982396500844469063437736621865381008606471945376805034542835864071022119572853635799337671309024016538536890200752603528914121371014223123415088567452926135986327987799456146426812080688030920090452472119703988700875666967625959510739746186377754461136073545522695411252506201611178349693119589564301181794675131485250502698061108599497535043226787127852366846347868812976695443638587068743752600590551086710869801143091943659064617715604905727717577992182382850379009707273674782119401568090295549265517700230831789557758399721235193752498027879956995195853250737099110756619907187005351170603350727751223256578352960569259032919271240241272292714958604946271485648397796727767083046279888976666789200523098744028676003263270005220122217428099255754025979255838021683676905039567568609593054107755725390268945452275679633177305762878406453398126430160917109814992916982240868496495325123517893034925756673853946704706012295073328733322718942237670660399164944219991165043834754213550145479294666218361580725052215864532815797532499526019825933322001906864897722297948618745589082899437365520013316737910464941660990986985958381396389263538235869771375054173113277902740802582426417680750761639901285201978565096993274643563609317239571908988616501324407736010645832865567257927338822356604758627150925462630928768494250650869273979576487110618217824192517756672121958980724601552817402353420386449683113626831433947640840229511103707201792098243621296049730232108030660783255650645930769830253305527086762472262846868190485306398051460629127660960357434686473532723602619361707792118430174746234503459662756371787181377971141159962173684798927650282866021114648558091253973523519722266103704504201234539566913327337967523727211957299471527492359722272694719709418099000963607041085197668808536774425354341233336339186704297609791378788284630433827431516769813235504924349217646170028953509685827044281385813750366748303901301233982508444438087761975350104747636680124487944297219916554124406243014214415636916145925090955836757710644144930299739594048527920669611962736603099949310355106085140208852356365752399168876158799080020120521573303231286365533694007692088642617292642827744492661710040501393425893052695321652811617241992656951707137402478556091051192805832047999873716822516301650749437936115793972389892434420181282354341453429802574717271595426038459729011988520320534723141796047135306467371098464826912751283913691167743452565433163359547638943224137827700167437334638983535069020856473692633421441722923746240361966789006359965149402905036634291307487212165823843383852506140939674334890786883367919071684817164005203472528415513981324790058693319928023543377001097864462260730761756321939530809715185292957810952200928353940031668375356705170556720153319332404227527388092716327792096061834212475563778534955482232665631924545558070683358369047443754134872091128477614820719459223724678585627435196991877582607583196022011970727632589214940224068903258138836373061243155168646992544491098406143329790640732500762995663836140159887373564524013368703019812063320986983125859977442022687296735442835596745959855325228461692102373795758133456363914605425529471260934065443146857826876964920095447737770601852903393569616536623562935184441940926956713785849121212316920735349455205680413999739880907827504538822786008136962968506801701601690443642114913831184288158669914936069419319905766205585034100130665933069920975348754774631964104322276601818983554600835077942924105211623565369377243671187052144378971457405060687936404156675167997806873543759977163756973969336549386415188869433101958698910966323738565029860144010020003283591681687142059589233658099743593867823114208443689513149941140780775106731867343471330351688021181520250310611898255961054338142656627660778451904979416300950983286819235197690901192015168213725304076782055630653425846969140121702924772380509295498212929909795607058718952676769187375593052065144817573058232000144538421457707146479957482127745501528913947760484570177569638757465488047041573755145469561359952420502210496344962947865592792154693247687269501818808423732326538696652957029517604399919157969788040226006978489909354984706604849981773027016877294260880205364134381037368386866961144716587492431135414080152868099755530675648146945097830146190252947433728065724645272925652186793173830679760195175634180183226731023723229222806373226660419175049520149558783980439911827088583302880537721112323525159526614915450723667225189104120079637742942629970601041387950957905928255505388906804792845058230390003476377424837321927392642990547183665089189823140343892008969214035875160231114866377490353358347723439254673258846555651497548236844495805116820796901240451754768777139755174466768377645618475670668432690399736119639471538631376014444545054511672532069635775803136010620097117893671180020546698173442013295723541492783845611006662806995388744273920389151668134664473957518086064624088069993494449873554057794595662591172270299285373061007464241408580057683331959095437444965177305798197356008498192543305877085770316190807443843705369614727395631312658612721269641824206272888384180047751613046791088682267487940786436752981878775675990176576609617677475852991050381426750856643961644385063082499917510678107225067169939687421855599502338745219102281050149944210226028783766105660813712852400107731849649104294463355259896162806136422998345019739835035975553194963211982056872314997956806441803115267943335322669170283526890055495140556309149230426521907271141601127911327735359760458424843447675719742388448725093981972260247516980482925269061876793869508554440456227804356352357271261875694939734967847605044588914199549263434915351516133606503946909894216599125995223779522443675091491383395486019725208112926280345103568943938035472543229336545404430963707007565577825110026530171281641007205532156000113472198646351509939252194089788434901518360770846721366702879481917837346683017634589292781675957093703928979113435546296510731292918095708227001161416462166602288005639179122424722192720414824970527945659291225371052901830612314522318557524456515909763579397021976653582427093960243253809702652621639137893858554248363940083894485148782586290726789055662619613485113309685052723253207772985074984185073622758467123655539934263984720329219324142352313171983275851851098080406841885657241510037770446066369550431502856265017712193613277202322534811471408036598069802385645285230874806008744619083481746483608411414525069449110373077490868480894988809757409238823663711220188433037812029403283609018647146225265573043993621921846605122790974553883629933389877745783832438784866089682517030036874332934612594392710461059093806081543349591310584289054096480340915393054514286616510082073463772514421173833124115532594799975186908107302201100878024390217911197893476030333966082722335857452767914543356035375228286904426740833858514442852743620736309806109443994527379962931775974591832002163684554676730256937604250515853177824784512388826560062010382148792542097481215034508367365161616729246191734440824207302056076433418691893656866026239832999244206452964039682064672691282773864787853144463630940593746643815995573554016842463401977903688583373250500679147217866026968186281115016752281409897916570544425109638928039876760723603237869481502682995044696332485974337206762272477481899743953305888777735242967935578036540128682084438197638640329561938897739156907428246392510230530069399644049494973180226812424106768766051690906611299446291869477162462270959915984109498773911790571752271189491697623260721737448933502249781439202862497538625100724341212614021409039715624255511020532610997550393595767103986481297634295700615603311994081742742282228818711152474185080606664386538546839123135068018448161362152169328189968548158723401431989720499880516296965818883273085853356111877032881702907199329370952416340406663172130067217944861353691477551266385420417110246537833805481980698029168292522095490181532209352711017931188655515952749951354435241299006094709850425386940099379890337902591365176486475292829012892728696637777890079454015713891745437887907483602887715990927491046887753027726816317816558154951124665988494382786018344312265950626249537804856787392376881353612778640973297834248315549762554540624943150774160368450647471429928554414910604589429473152051020179778595343301534919360183806335655395665209013388528065843867694666592091618527652781837864317191445580112188060856731017771310086107657336012067587041017210524750383759925370417427903646190811316066886506252485925347007179413840571190883239167139131592117306074016872520895705417568251078863575510647175804860648259084427027380696291810427045669376259300871381230378759615519920513753630885789674760180972938669799112320430195098988212208325298846734829699316621261531512770014080786980499254956401425214361333719186436061310442013493744287746508211634082648727749555656848701542815448964240463358750762343435827084479764474995175836734371808899933310515240179776225842878725335218655914920507333314334116077202686899461473045410644322932470449069451859916177597375910460936763502547117601076501785344621682802224593689425757574059701299999179071132511707278489722485122404160442961548551257121553575146247379172358569437637537311033545161397870261630740105436270848795825053160498641785209779898509397186411339504057546740651798495197344597840928143170758223190865365628160458661039422843662552881143177741849734206837991800101527159845850089870492914675921985568987896262054697485949864339643832985245789937178833711511311096396242583252302308803378128492030001837830800082683880368984147169994710418522358012366995075545839228845470349817132175198928642381359172990250534048654347817301273936753074913857961002921609046831259507985611386882870375127274570312217194318915996852895058277020518107914014102292989367566115790030141192759816314385044507621369331323620920693834717458918600038082331628817869909073983208320706624849179371134405388665832551582512631677144051313159036068286595994544338944152268950020254014485016656166058582804488337145590204147991670909226771980054433653966699278225108588409494370338852902144473082403354642705335809982534746637946788813098933630345804752395984656907356025994357432573346564197985916308770365137704987053769757147343158788973794675068330021412106881021526869825811298387726901504258873344802034588803255034885997416332861065142239684357058396044874180385829273710185758072201621534362349371239377864073531529741692440440444039683433052772368797280797990988816932989669798757839338842714617189886663801379869944659040953128496335861377158018963545084983703931594599282214499588016290039021927324820617172667206493662182105390659367163790209732481655387485116933813560526479202209801537856589359469158498566043429631024808553315120412760415522405773896988088644967340877684059548782029996457945280573873328866100968948724258708560350329621451627311262443267422394644786876508689981214300533691402654822813233148895209093921430082635318497291327177049747911348925309855952525100995671387526375218894148780730366537655714060878298485174510537279450771299147258073549077148942332837445946942972127745091177020827595077261193238854582875500205426002819802435055307016507083286443178374171564927945168654547827141524634663851318000774468807836022298222296433007763361571329110793454221879708309710768551684414107619378926377823234996724341765790282910193587060903112283102209578249485598323964835710875826372531577647788452114911978615599920980368748652512057805861275490127267133022124212616912996240008196193573552022811653870709654182857637075856013551560126173921213394059998295328904502725289410320227231517039297372974113469630935677173212438185404108518351719121485165803166541706444067102680298084901247026685913961231925560223057276739589867649404859774564520718445298370203270477901309950694984952779304182901927466402591763491836989901462673293634201711604220510997739328741383181292713959379172317594519695621463401120495618077170775144934617143959969798963917661765850694959578772435381102456558818188015765323259518390583175493745325269121552393229287158080853689510699518545865188253844773924177346152929251383366560529258852194060031677113446822919218965186991533275247278430871780041658832873356286690496289823255395231334954599734967284677268131875631925625437349388032803983883107565385021124774345200816836516137292492592137541688262877884513228412046015241900390400020196288160171487392853541260380293405304458660049977374816523701253410944074135579043799510889440977120753009315705110778501636562829972463934591886728564608796888577758756396090267740896471408838039985650384753642860140800577605751123632114499424741049196442798483140535545745635533491136040060932821045747540995418871354400168613193904825661523951837369680300150860339495849576333336874429095653052598997803078524913475444606541238544172083760623448454988354009931695627719321768007967700385279432364708550975195686190258544645350324778959982986513514530169196307006377206835673327405121252490818390799593702350893387710650042709020547565089029935143380269666056060780905443091746814141584206579989644592292970477770603797967459920739302493646613177204933153959020336995353617196809806333978769246491033049041948052571467982697455057576039251742573311540809708140890830213616925891936799367544166262169057054591190798235377801698312690177965683580578182468221300528013058106022355727158470098806558695845620358988065432613437250456582628718396221127659647860658619606090947020441206631673925093457309257735823264814934824229109476831085699684248935714822533724396192712514142321697393638017701138204949083498198197786864809988775401166030255492856875551048162660724819854565191933709944986621594289751741430821012193485666068358692069650686327902151842063741384322519684064307631911795283832694667487030539634163555251395514282407811301110933037847196839560936963104089766896513454397943030034168983492603351375344334443171760498968479219775960569663484948874023444620376352774805169279010040109790490527764124032978815442106057566382440326092240358624155254796478748989267929012662984150097395349247075087727662513342626805955566772140407420367516224368414224682206694641017991207002422885996530752498924988862963499826308791012721557544006910700391250103742585722086150485045163764153590634558628073442641155673897819437079522944845343761572917485681410350806196065769225057416257435403755842220396867234118267006376143810483772009906669821053377098151731490900042006307915594502538085666622382805792360366753382353532119653817505974742242435831361859450536269652251889267993585306546231816485435660771902889669668043170072531647331097060332255541277835895375104605215635682012152150385418819811044138498360912948981665145095326126406018894556332852939471695322888244938890029994218074561447718031685204720524607566122468311078071302687688867638515800899254902923490387280509792072582521751581900726873494681324256204778565270498117069365092538199269803967852269491564105704895777463885032248213819952057329708336796128668358054271901101722542396552112243186091252320905273349118132233188683332399481134783251401820002465357700869134134532504196673913751722051328171535926749645804522321478607842247965409078522174365385669396615910579344139896705795524751527081962270278306971441457757621482444877089085552010958793463269944716795170491000117453752226350889664761638656102857902772888617975856068062083362378577327377007903412975818196495842766363072423028366560694529713134700525194083107209278851405924445128569135554339786576408701459443359437232800937570888267928643811501334158142329833502953123989275434429346675190583347581151720272145571344630001302054360755311670797656111878539710853983530388279063595419576478397011347433703011530432733960612851259796074145349702258337876337306557638160011954630241620696598389879572782621750316734671917703014180697134855291464638998258572895756120122733551796556177690717438707783157117504981454514004715232143769767338983785476721115115278555288390367162438964631054643434704618400284429201958376792746689125295236445426365153929341150381601519739046406565961043059935345774067170562464715057356901546401462996487624203031233277474318310957160043329380974966986830137237219572692823810486987686590961131662595460102785264638154392712094157948022355828955999209519800599174420925392835419091938214990447166402014626252239769466927134277111210381028355863730180338999837719198747004555622002451469079342428759949223977765807768552930948686268127145898411925804342017987102672512679703409763458020741084566941372634345765279932954373148306302004832606544156263510858165513846828540315734471852693566906386161915570363014706860916593168979568706611666525321305378738197659455424970358567582734660803336462303258355577257867110878305595572507211945190043186270853210265050639350844103172965890886751499948985905059846965398739437680061229233814726794255397814387757778021210018151468457020811895504500374906985525762160914463884697553908268150902815620038272222777278963693221429412269547508247770147587096129335693784643384265345478594698908348673267525391004573025167391363472200717913039903425072773488621054212892999171535500466676956119887615124660656616176498357804642230643172889570550572569064244674832352197688652822307448085528606605944647944677356865315208704014446871111064102475437028252755406728870867438754446811688444538203218802431075775593770136837155281504461887569435300777586522232756899638860654561696433229497931977025766956120917753122786910376531233537631250129099321945880547159266857919387616117449690598209583925559936037441856563428146629496956843466290057367003113773835023230312379231573118222975948472025551810416130575980944170360195904645049263271008075768482412097653237522702588430732712011825662678807478030637597171728710977685800527463893003160798125014772555716882810770441659348533748223958128109825756883954827408473411354702968104155896459705330509954503122730799393294215203674454894273284389228310855172125379295530832892696426130224884520798507846314637004722050657333196576901543201810900086610961575705503934217308438730470155912822120325735094402976981616225914243573731905212917143354061426894870729830091658094445703556346482787248609429566968344774170660533159021606342672029913285786002767062163410044777081458573674160664876100738908583062747789576592045177403365078682467423670671280539835710749038077009482663946098525497791812980487885004029986320523857461026079961928085610140316762665163239931213067336848331417600324291551907366856409545097942393505170434121614542161931340137298826951444880440883805926280485906863654334003292722174239946212862062375936748031388792091019010281961052594274444589005157029576587835656349018516393084607840664421851448443032888129350583894318393269810459874261438068431551878834248833345325510480997000069619648204985599155061939882154228216518262252708185735432478588326662784416431075312509436714779329166193759583213798181861236552064658735191903948004421351689118510804843041079344917644233374397176033196555581316900734975532736386745367678324252947838404878849165578902647264276681523094966520147327889384231581647784254764144407553429700240370587910484623208131085470691987799742440336437787711672369853654823402597976510431956139664338643212950406676109634510279487812370015825207759626897565658049948186736220120662161928118528967389472954572373573594910508426121202627619887384064611804534356392789941668417472962263388007828121733708189866366811706178507282910410845839549249489446946131955135334832675271842426523533841172038845826911579778417316148596871108456240651595337486650869608470440903602543058195015885866284467739598551156640822979588465530041172195780660813752558901301032294057522382764846757918196241619309259471494285052201950574645876644640870490253751109757365199876035158355568459245607106034811260339368203341998940463346043294350267568906501011159798750367120098016187187566317445826122005574148347270850597426600431722782234639738190111849106516003219951130694568316082104494505828612442145729819164024209388632016460268225961861022979421819351544863955873591612171876864771161374788651426392577830188110409738885254062549244466926165399626854958005387902253837753191241075060284319029406212098046310639648913735693601938141743888075950485566172481331389961125318501953151825863973527019392951278146519955163229134078362404129657498868612809702450199354361643341253321871051350800838650074810469944637915632391428810898443998522386034773106943883161728588938063625006989943000998821882727523489017602167788019375889414069643559702541512370220181971751385644621011939613242940085900788199301146717572957323831770784403400322041115444246743076218141543875107267121776632065307557360814204739219900492528768905573418171725516065480992120881182092066412982906085440235124366128961600017912294208626456201838522019924992816105317538126531957750936869209468876880708373381267188888157771811396426987471899750155408946414596292249017077535602288996823201628487173850284871171704291743988431079251725833531669704116751935000751355875677556264357032493674369008478732411757769698192296045584919939279630579781079780025392747001242591521807751685695980533260862588419234628951825883030869484627776465050618635577691786161482997094627706395472339135750242979460585754313898693654338768540014678756847585563009287635878880239382386633410742890115489117050646619145084646033829700669843753704677824783339601999706046302890177990164613204530358755644461057181569379843009219328087209544218828377172900120463198074604262382875008437461586406656882014675375965393713945525477362867136502004800932218168729224992091084743033665798012171919352764263907693530920665434571915644454884126143450495574751948122860162239009800133959392663119039883555604216770652519572098843316772517081097505177064775713232608250864323562167998269155135595154161916057168019971755445962225112780034884250003734283098542206882593290619947712597231835751825054213233603065015346947305952019169652170130902185509643882501718541397924044291991984467130775195398579916430338177567114899917578700522706153507433395313524663392861974270500009790766624469771439259893560149033392474238456225867447209861706856743486577143861702931626769734701312219390184789832328565313946504187485257895269400171920991927156888648984873945252422779352528518779397696146593155509882995620345549481643386831191189449802301385267938835113070487972657714639736442373894940883037718869899385142738882328556675337337720614524336263080824369383682407769288378992895168701924802849256433179422094572132261639369823092550469586818984076597630191138481706124849314424817546466522772929444926029237908098906586179126912043956612324247776029061220322856081236971905566646582319116480321717730618634024471858009615569682981921127844136360856000493403277001252442924811256533724569725513290328427795115883018107706658953487603859727034775896267830265894438948999411865790707145476008378159944062592305949874727739574522050252966614959085094810972060969440883426803191809706486932284459547227565755832016467061689491092631707390861957547284228507358432024057545393771811721907954883361245868251411361887950879264663082164060867708134884238065963585434258184677965404955640388508533574001794805265682618556643010622741005713024559857872016586660081469464351601483999163549682814409191325765094646657226215197302689205396585092550314917464435704098367749506900510243945854915253954048993298933036800569456893497980709744154252806080525701394649928500041587432263296885256380556016763894754764002517191369354551585545084926513755917274027578229624696964567567781315084665032298161363147507433717888324081442835828290907319474383300328115011707181567083364571908965103812590632144546264802314717518798414985251145831587030285224114564597179582048812084009685785324293103262313092990619837526638574815605145549377310581505681166402611200705276750885742675528883997758258498415408160890376960340896067035574480544733203415985584465434215338773586507940829497257912996096484350722683883267781771682668939756975243212345589352235560055801467749849474304176741688045288173767673396505520811082701029568111120129123546379217314905065236939915021167312374281744448077322111844270155516040331926567906497954804149837770426933437515548756678016412460406972520179058272373796975370828705331688688588622794839697914401759525823886621301260279669222914996107904791783631160484392518073608261561931811079215258223212761978838372675628717176323949707104563567108282635036891013761931334883199582072716924429143005014225768901295290422682132343602029360117183955594268352274823919169935979972950287498999141916655084737185353956247538867803813232361647127272784143477024493811465454849598950091020267985653204797707413911251372083293106389610681815728055510455952296564527204671101795783206748672318338267235746338154874368982075681475378983561600924308731051094804829472867572774096314294863202228069795678696059108173371568356173220765960606288810876590328797898573673355529654354576307848050868397974897145770903129166117386493887279573999964692381588514802224719584267224812310080876598821200477728625987438697117123511244627794703009286722120999894105399163137359741309805499685680417765088603176253156632613786476587108602957357505824576619573946150258847325638670983750828579321874759673998925128293633543491802044050188299494407997139233042677452330547382397858656022070034296893585050818665465608658350701347980091761198825024167742180637954729815061165675871697265585718797605242099986202759964769379727340503338502041877500110735077350684053064355090528485998511443464737088359436785120691227317174003309659568857885783680116128673945857241005034444213341778370982547896365814949483212093951132567420548046774372102588733035100575681030967812887240151249799855077358810776967192385141398449584467914737392199153383962100746503953761938173575430228179343666275831736839558596345272994267064466757865519720584497640597472926708898997939576756534892823859878923444194716101311382685234555155104953201874086885464954519724746543447951633723000906222892558905675181274821271034573095567834914372842864702928691389208956713008758523850866389136221344912759156145270223565963411275392243163432804003332361483050165900462694520439445914074160319535767668699529734549904778664375223384553055729543241373537025575365586363529563734500520317499188904731347932998466665997573185166035366674028273479975833233006230017599988276870320895319665770471600801692055516790602297004141549859315604402283630491780629763142955424176500547538332835026753423792680967361840282208429430883048419194157054669296608242313453943313674494499172452725464748223305338022515746133882704609406071247627858936085735876694914647769793041334750949224584074810105065972028797138506271878785810013156608207219702791225062072601768052195494124283726128884661890586346771884501018376657314703572462841536813536756944420139970542662875533480652670439610683846862707664390156463239176013186220530811448514108690983776984738885751991243090268094621645184558936524760273863538538401313332730317106412633468856442075447395568004887229821195257046346865700045777695134420812496100875467468784749189287191312147096563203276425955197980947837002963930213296753745567651388411306680366346853098538639134914700037834617703493378170609930091254911360956786484585600867362675463424849968431617052565814349061728689181488738970307663606091835251797263382324159101770994878744449448107105206095962141701948430099564354390014522893089966908062601796786757647783415293876187798061534937059821515807765802214413895171939881274684323376842282158780883603027069011910029207380232911580956983798431367780333563968812738545139392113833318126360524361368876490768860080301732364095530620065134365610402006021430782798329652127746498287472892958131065283041913520435595335852748450632880165637312288269341125826125810731182314243658374125159322023967070973177578571212441923783895490793543092057934640524455679910761312301519408269055963537592810038066675422763245047907216521550477963592989338578398047498401182911031996006955370927666364747075140535904490733721498431084834377530065885116946756621427789108868603746718236607675251008527848501514993122504366079458270892105770324262383976066790345109520464168233901079918769039334597144372114029862108059925427921845144726803429782331350353441339408078114533782656958187898672861449700400484416272542793032056677364778779236799926157925395276615592025093915775075012977234343030265947580717437904809980850647045231917287725800877661035751588092063558552796344436444912594237663003678733096403040251945918188733799129290513838428479647110295028364657125815051445050479946286190768174341183995416219727596299879310417033176485632540497039553793936182910475661856376665361446930570195247146784716077410064891381031067286801466452846213388032794883048680469267579520440780186215830772974492484654401865580314770553965829873805396690348334799943605147225549788268014719575123660251204742259986353060235144383645927991850374587428080752360914811573194589070460725892033360553235326399574497160584430505842876897524512714791315354484931268932783300309716491225644351778864764032833692505484118509197563937126558387634483634119595869980410506739251546715155028070060464090343473373254988688365193069741266655443460424985071909126746576556604632085437933324586499771523541016328967644035771042101564121011633007119180020330608958368428898673015228045432353672265370765220430649592063112216832195916385905116903490500859677488026457901680354037879143485541142485936803502820467391613601117336119160239660607160124109629594912250912542611280711166205439498959671464924829456266965942153178507286867313252643664828607783332032947343527230153526212110430487171649219043819921282129473606737013092977746569919684477184995604745338806163634528710374766667500268680944984134273861105738007382870809820545994200573229716122352174632078860253951191678204384523144042874515877538169887852573326254947933667530865499274466979441759098976354651072608156814696331001277152513550308585635555746147078451285338575304274469975081806916034247177233654262101933910140112000318875157551964009243090334723777039482956086738500556091331233028284536465182106503375134263529364331778870252471471346837524387613414653604364247727327979520227371368259406866337478358123938654665801027899633812565358407480638166509424660728116908287964947396943980535450489620697811171883630889496956933608515445262939781060758246183366486811019392424694624475085664359029285415606885023069034011777020770435990917425929360049083696939773500206934599131314458131846883664086182771154383780761421721142415550480222454731201357554052843090013958242172290246457853306622073320416157972036701788563090976269851146460840216038942491349873274673978690554358583467651676970250514665315981350591147284116362090950387289148155524030921645175452587782650959261178516530514533520174727884240248734327748842263203534905798955023378515523350680658217620448838058994217606089808631447869686445889989642926947091905573682310304323982273615276920973175980922797167005056153473722449944254732713804740576594919470900456000867877289018453233826713800107794592551775693888807697571915857511700532809138189462109319150768482705910120094832536193778538022621446427296208721953363668909333079645507469063753563678597054732038874341421154174666632956941050983491730757719164292656089737508263682438854221055676508309848259544534781386327084616972804755674448009376550390810492509744436343788399973238397611817976503283113355988546590772060780687937204985011792820296569466277503002413737538437863098922418759051967817110689628012869608833904970742360856602739383480767565681554078764912370607010392514173413939928044012309352175083134465042563802610273828604322516811447334590655748139729954163965921316966020909140876146472705244683925761616805543219628186685931443065764184134758396544297251593256085672747303561406082900608204407972348119157887135995798071272367095419349544807992607883313800998545307492429414756906001136588226339201616270476377782551477004757071788955768758250418726121077846595607628622548171996140515482996083601185672367381906133319072122770757578155197023362505848147187797638300843257179698740300212473572326225741167274919130760694535902094659935957949749364991197475991682216509369235206072799816862416447773094715581948313843179316198310078960526140980242801634122709111608111209672410687069160601526126718132775457456459846103572298527352602329918409009656831502393801362239379129591640219069963333394196574238192050534624031665962166407588138994647690511710545861932640993938192421596350703772972626132571872950655601200337207613117556153386986533892770483842045893979940489968444001090312259838707641128766186103453676071618078370839206775470671774917132136682299926131895958903501917513930568769062217142607173073086333995895931557110034911760512689357607749778464619402686384088197590124380964216499899821198313340266287614509565592354551020632644792603825929988433261862055644499387605403735763695347012706007145276521090248716814849036242082195803711767314015781796262320047586769747018834334473029798302168115875765031018532435209787107887117518276763543381362456058395164729347651912934213757126892509709815780772871121296303747039818549836188266414050436453118997753451192384469967556526561262226781734935391761262816841103338726644303460439248079617932025938392408703761346612917840304279389767414308729627233439843105353531278358915043373802468800669573127313612966500405239755599580741155049760679504528205617569810496342095049823394049638376611720046111839114843647966717724596517538283417569901045272661536408751920536224040918205369218948647227953824434168496999574281770167226085529425147918472486890418694502433498434863925342586962674047593767868140779707078281431339883478478381507880120353831281735002434063038219578378532635550421042624502888569931854440806884972768214113463258799211132979554065700907272729535501298036778204502688222530732040119066358079862089293986056915499231703644994120556471319087438791645287211876815956775072255244730217463424032286282364228141333731612144260117273059728471830496654818986665929982608289256493267426085211328513011961388601916852051144561973524642534869040195996434220223515470712971238404552175468081870239313158347773240109801785914495139281567892124924249785137040172837158020030096713486257815930510585772181164390969395216958047396219848082441825137351412243462143625817060013464490708175698071818587795045290396780673502667981023455615606451980373761457145254370530066848685380969564046465691464520458636470382459651039085012765006076541763710306012299787425858757085669812222764820490359386815820832475328300749723874209457714062924909508958472726802903849684621140716889425389792057526818385555602887903621165649181840061420289088715625911487682398314587422377145870607666139284412218436586701787280508741227268303552671554410576781892880266383449621396211289100742591105612008557006057321629331008938912415509056032544258336603613200047354155206942144418130008761975359951015393105360675827203541329161847247072287585544630740415314189820737362823832651346798361755982669734503601806301094940269634976381325162587508484585416477939081630870270244211529779633225824007395672501644058136640079631447835756489262296269370029807425775446921662085014232954930056602704069441486041876789344038401934384586247434496537352619533130200766845147466937190338070751657669563734644174829725009432444158839195012335803863444610472860407725800567529468527927270030637756874593697005125582253825196568016782036691012726282671082814485176950255762150922828221781688393206451641427793689526165874944962104886156845741818243255196760282601151957582706929355997288633649221818454802024324582783708875488741187420209837792832828294535866405860005646909072603083117873101151207625936942653042574955637967326757073763586173727252231276204521887822359359440613184012381798893991668582461421071464883121049314753657802852582674311856927107853568703279683489896931782888288551335224968428409137260628520377432788017402372973953774880985429865420345108287366280258792412070646535808696305803506691052885552755155967928261843292553799735418342383017026552845894182719006112743357054443754268102792256610236895074148064311637873539058539244283427580045265905534906006219357467742231065995979144767651738212162887623515347426393252423397224266350034778367454011817824016198900054261309670345259455221500874111813240156092346735992723166725214820242343704254648804722189561951910616150957716363205345609945402683901995418731532058997411994613082920676149823894641835250988104415267656519640821797769369694581789149449633880629722824612039951227147633676448174251987510998580897122737534047120139035200266172581894551598216953748543239010118250346591635149970277533861395544678834902682850831708009422464218219495896324217448371302868621313484848130572677750439657532270630936933111887040019642704895484389677418601747375704336094232233985525088998101905574538804313352941511054413789624720856339517229943024652657128914974866147059972922590472372548624611805184003102067821422597441707380584702010126477018602575470580166626992077673736289615806303630229863660156652389123926570560228999676470121650130986118228837918396175600215738489525573375459120617323318809961917597651189016757070669311519878501850384790631630129594692398518866707619696817682229384923355725024248896539511494142614583983029752374326995024230012721347422598493017720248342422919199218685209198973620461393503717986690451091723849890617795884151283949080603163196944520894568938541999831243414207847805823470572291683685504045648468783018591015122418050334708561288528250268955435149915098839121317910697509237476862020943342241341699680244786045435847464472967584111496866989681573082494914435687316432023752360884209628143155126122333939829231613455443536084392508335003805117640860683799449862719554621038150769931120200092584982006500280745979484486321505884910904850373467352198409162480941587843155295253876462524755141078801434334760356616075545448574822052033679939598492284397150103412296957303917633504522046700063149910101558723335524094749838195517426824458483885277141810090850240629631161057074959257407396609705520433749788952297183888119722381345337524156346813974298368058487053705142608980332935895006135355084072094288911432510907477613397977534983448069829616331468788496677493401776397285849380657650786808544308643833650866701532965190150658869404720733675965560984707027241446564033970064185531484984019072180022894672115284348072734667886764765948556204582732726338082450041064586096284902398275263194776775253173373940279643283093836356030955003050994500796407375196217257774776318854763820166321073354893007436383136397649321112739310596935688014696890270595213058709208431134883421464254584461641671247709079578905822686377331786404805740420203730960770959089019439232162109887174998196519070991151723942068125689031574859279914768067250610242286680036565446913195749633638487189900901294540041175475751368213569202142750500955847085957515402009041343183697815082980086530158136101689653052949539955538810333618780852644112811509756109174882681055235400907521677715116423510101845705370616011366373605634298548366757065528382765477473763256517462848660003281541515465592384692654076587001698444062400791556879188680873680949386544696607633995337566944689094536149318897228025109198409733112181607695635833769205717672731337722776318937619887158562729168606784409218104329354671238175635538077475469336424860008840516203794593910041282532606531627524913529038081059766535766699006811180829478874203309497397598906807929060156131739115880439231673093963869649751956869207850517745201754425517514716925509860513998475584205901828029367734590396775881596347931373926616149645168661896502010131716299459192933833877468617337727637891849211502579653861313185174461635864116702025463922372791554652087934810073858404947569018469407062689574219653247685445563192728803851461723919039324079003951081758294842067073250415388824670775840298626794834267183064843212968878544673474329051929574497304921652595933546355574500562011956448308706971179450580202546004067276933349331768411910459752262402797431228677610258667542241709940271338911975772414271174352297135928940611499046697323225185323178889473744337306700430555833304124026532635263333657566807750739073642378533792602760090167956253138788915565154424837064574195798971916838842565677390567766749751524483209598319192718018322731052836436794482561844882941613534022280729002007408829854754087462592973986750597128621248916749579537592828895996807855689294576686164009698770627812506261929650704210056667827098923394846991238850829597789350749947000470660419023605437989011888638867731677968399468367253121903635280055235125385674806160154804732410573414026175785861472236345579449454708694403684721701397792087044610328111209057283813023032384885213964501520179964632613840130101701308243799379410201345415927084082264776869726108516801477706796095135570166325002301671510825001257536296738851211067132311750608416687315209989723602179313090896494079940947891447990317788746343171059305763880051055982918314438607897247544106696291075402588212011619506643440200355743078204956576351535501120170272664140704084594654343092531675943792794711336030700770101963543734632968882172004386989791150959613684518620584640989282373940616652517527821095742888288306988480440215237413969029247850449739780553762535519248265436635396303971594386889573846173527290939475259784530595696558954876894213725595270653869740834292777246260600445200371394228268926314436305340567528629550750678275050798417032095241494813672345960041851374264808714013216850742049294568507623903037781546408061629106244958977826594546131297364924700771117213429644265346248344932039687507698658501967729723607864720894025073776323162733349028644412932937413790886618022502857095066098435444169886380334508225093700298957455774773274824291690964373819805132799331346895779453888225215728298336951363575962107294352812284460395554545974772361374779565553588960002976086491131507930620808850755120069127124124105484374106334944809185200491493928211138811098793987307368942565930167526489067542644231812334198131124352905857153009771960053695113852018915437767584142602446226050991690245238812658600298806838862889930277303908002846048003570614322272296642842731816228609450599098138860112377989724617873395395180022346897598600256878331920643859780459305332428662868954338034283770026880472447572840568173905556818461521321356522793688703525823109963548616848023246091980776904791635320536721596775830382034984886334194512785388896421769148440497881694538908497792520286284032023819373551280968911898970914848434366391531245417299294484493922239915359448521570716899154285898273261334415118973680355110971019902734211406521485759788669556620786229191793467815827276063543184005129638485280253896632070777956098187764218862592889341975114923453734917499962499954657266493982885430019809051003460444428361475483074981454134883738729890654665002285393663376340817689436076336073063927852979594541682828255612012290089791988165556196465980330036282080649654988179762688116034517098671332049005068392896101801230759892612093730061031864223534637256115319472281229260826145770274068450969194697042402132363598372531802861458733455916685232810393188298949547946607060339700157709184344318377502666946430867549265324088187737148121378023399812343845839259293893421938001604473417467068691820667128032506726716797350302080871865056325667612598143518192881212707464692038487859889331347198914334923238067167666751963546876676220865076320412950841539490992393690244826144485292289103375711173480117707922481883727070975111998982370735057783957159639505322189740293584090989644408507568246392896174102306622937550743371887165309619946564969365968185549131404277524991227341167965012494801331106085771159601426539374770711608854375571097573948161960868292815214843325419949775108090318418364373818297567203504206509516094827619914041053924819728631541129171369540588382820700035878089849294355963657154186307843301022965845022588680430624668213664867736563280824780286797639870522534728764087387599704472807868192581183154610466391079944451499502692970408669835424409068150363572114015285923487044345458912044553272533852546386604584293750008450280500153620630928172920483983635058008805297163261982220179718847828482274811922553197215337289977576395945793650569390130304370657241189726674048601552580139135188237682636656740192366599013966133004194108231997232610587304393291983069874051912871489862030297401614954657118334552818178206546596355923662429882087061750936539523970850220366418343370403229866845427138658064719420732072433818001460035990575661705953103477080435854768211623804552743376688521530347540454699884768835630820516688442810763756136266855168766963049729067833377143471337267650286882338960739262372906545097408536766376670382136369567159947371989557584178441249439002023298168964673175270188180563817921258103677661983230364438734599537039852309992268136926156459339119256946883369789811569894690250861633829579702868473238124364412084364148294753810688744779162102036984576812915507257813130320866363133345737533971215906292854066983668849198472862904895851631745124251907645013260735192713077226939775635360814673173024780340688967694523528262531450090539584631720995155509226057875693825282873551303825934759451361140018331295321670589211531331739023004000952034489719662603627054281437783013114511621416280612200284953152626494742494267635041398181044837080347762503510180203685016653920270356707302891372429527227816714665758049437883813437331831106465888593713326218921330589000019789571880209523226261233573716587777559797057868493273848120090312261181499504202354113206868740060235756431210402662802139603282935213743289299459282919603438092287635423265532515700562996316396515988436190697498173369010526255494709530262570734352243631058464506448258214606466567825833327973327609516729359016610245343335361346141433415818117351359895626409315158293426638024204965406072434693290018278285282479045406264269070413454532154516827676369821690824088033937464950237064311323671726149492762263911661697575446446932671265451675642398987602295382006772666873338811956441394346053218373826791853129819275542045216937302537332855934133108081261205743827404370142634399743914134491405796158518427392843774493757793451745400707956536010895854920393618125114215454689821369241888788562571746233255464546786972226787716360623675182124818884969321803453124135428019486062596442001960375031680535470537775387825270198710900826115197137503966269999394563776413111900433251658034818588558605721178430943866779016640121466600318725920942421975797900185133315271122336195008364750455219410177523119442245687900367205573776442807863919663516022670734131566752101337652514722039188096066101130508994436890977310310125230453407779671142423010719346696219528704062178824991997835901482370106440014465927901991079834241201790119272867208675439741774537739779262046863695755726382714902878048351521009757994137428046886669415273844971154222836759891977069614184142817422758123995930208444501660559460561157950593449697969699271350823403885730276262176088164938340336399296520415263497105790784864574170879405378798498139175695233151393157953585872322776438020362726128965276567561084961400559001584163413752369755149965895797337940140313346118280973437408732998689934566003328417820875706465769526063479932001477631670183634752048056537235953907767020130091060011597462689259709972257851996627319128276520259319152362638942220851704953293191005620296661321990168494882186387880799517461489283348747707023828934041849220733558213352139659393766430128173684320887536974403925658605064134489519825335563715829981191352519205118090234687510958494484254737383301933749952864268496630212486109462381069768047229474187105781879135830180437674404311722657118899390052994213730945236493091815156845411667149857028508102880891523979455295590261851791820914685043773745620773231001629213273287893566083020392649946412823565007328029042080630479088703873137318805282168139702106292017311048949613652836071862167618713427315555011781198335690144693651371825650535996077160610636470108469520223823262264687971105841740336484132798668526223372656594974094621765676629390992944512184202167099346575603302805967980813980725009457554241490392569059572247174145830883446697495917301886275144239847196176073608336807166666841437442557495620047303416683801009575766249997390622413706006844453539868514270238749358519455170711511466155806046882640805237750627163397301963229150020551325750133600496637716831416942637637844325140459124031197559955649757817850092638562935253943348140182229405968890520618445266700690226347190737304636937711464881103363074877859553807658063392066969848743063801087416639176146853629455528715748143376500644654070824558490745815401826066362894986397735920280505732527354246669103073588733995198815535033096164957717994353972796912064856204901270321641020488834588086779682631786709715931577977605412579682697829708014959717316445963995991833180248347057993988219172960957703141106627410949394237979975354708149190743922790600345986017181115323652567026621611793259118074202853763993899200163098661515051857864317559502751518605409254157532506920484661710259070905553720633309776719438828335687841178301059448216207209851164228948369178917812730698450797371000271967963665755692550040731446108746415591111268729810007130760582895330036235308102765513918092959824900444330545180798585879275368396143852160793814030046352921079448192569917849537457532265283689590796540648343555153720940623295544553930073698394908179297271768745098130932801457124469692977758370141707991115290355963248836838165665036678222369133559328444896197775824919307515615806366389202055147142661731613417386537201111216080283282247177329400470384968328331973519022180037939696201388359570707951177130566494968881778707602446561998261153773695889067153382282159227120956983337746487550535883237433985560152883838389606289599590844636050334563700417243408783180056298128960641313508186139147358091610329374210034562576164524053341614476843115811870097093512402115832745321014917108756985023404879491585912313427045608188249586175200594943755030800482418272352978962078756530824256075444030669354636558133339738533427432951691424269980503210395047494533177121055714522980686951852788975371350362289540375161609664352349681906722750978620100047185271005183497084472522130027428397920861021615934647694918258076928127105654318144865994463088214572674050422919568740422453608666716382953371115269542750847088633300400681324217449590468061046251999659417214602959047173588362956664331325337208759987666893072247232687264944623050923225193167003312629392821337564597590715987895505495358317814334213507586691625278667689959403525285938671256492435225857789458547853811464761465237010115515784715662962831881341004721179583510514459136746857750317457493088948455344112800267413710978295011657886277529610374795091638242153600090004786451801000486951143506626472298392410942168603019322343571379886108973298401874431631535386773141083995861815175810210278292752859356012604992966438784610506249420552989996116698841350737930228818431758023090401568535662374678545292755087174587508207694558572934646199657542828955896077702901927184713442651945375194994684228040763180987888535109789114331727980820453358572855626996518965086876099992886150500980640785115398528988434016571925223094961876197314937652304076805300348656078444942233131826678497955862545983151284042911285336420475375544657611708631951360437242914872529808535248423543042425813688145138020329825512751522349015007710080544117541721091533277915972427343747946807377079896425935852188258684408601265486445566267653461027450893145601025421767736959825960578241740589003984216227727812492079740859486878546852168472636891302835270313576064893444160563286198488472305900545798332592656993031033728572396125470883732197517950122481811098889456837367827545437672222645048739139441962388896998199180346983205377541563566964885131043047907162044948699349164123118571483257758860566981792289503282120527721003668602895165082348937269240509789370917640241811975545990976602178893863679161340320692890325434287276895022205602382092888679615959708473912577408100947670093247883302532089183558295632810395048374094180101454530563201555199193889738407732391217555034304196482126709615825576050556021267261876226975980221654648305958420117713363778871122461336045945865066279100515849837592274121667060125066674914883962553240944795667776548984402882705471500936194527105739222091478979589846059777885581748408309358351337515928642863255474818694600434270482857127305406845472674805692229677964390459898522465222018535934900284902459415610949351678761550171066321984603610562117604504328991054328342927245921225616827345907160822507469504926450616774279874754894119579583107464695116333864191863505438236490819099434707261014960286828114095542893869495205552498854295435350562343893074060014713210323644009785105384623816423522152622169389100503406187220065548002535482624683730807718733007524148525943556421672050228390744306114729763117791466196462556639561065624841931352430928445290845823279287354432716933465376831076176994179563414318757347595255501565699466142114620287779497240214715568045922409450151407681007525998185711098969197418999267536950267202127425290766074502845844194287334247857212840061149445759676204565315694795775187654281532723846811562104053394247890877378076325281204732098741325536069876214784627232490384662484200670545490634404188266045886774966505261301300233382372976997910644771128576666023161416902892123174236427820229566051888305174612007280183085718533461167820403865518313929815521465122051662892416003734689866240147514332882389100977173894864746429848934028477634098037503914586325004898925923816800423324478209838058386633574651282011127177517089217841244245294574219229334393652001338697023075838080383760138487257220797325296681942631273448027170580844800854612749839718242378562787091337464709609537787898527911062342243647320069999241615625092869719846551529744197884306793637199442567774190632430414826172607232606756675044305415196678447188145269173655875186117783205904828575673405894501149086833110318875139544070807714608756219249816189025819122190995093746742137802919636120070700389181165938321966345055230592023475735514247424748702468598002304014467811228647857648343673172032373281173865538654116931277533337330159126502695376507419087615377309885397914163369376922027290507995671021312864981171878349386357016656434151800354536600645914066826682030142383623667900993728031576319631938792958468881310857527056811623690659759346869298583010213291696373272554113174938825964734024565106058318899490568591564998484792266892719703408878525580158019369625498591371403716442840175067037495790030755335551100936032474375563210990730185431543999988348306164193045539803481034803490227117579400473159247206242289265994965577393915210498050611646549418369043258401616766136087074383835630519933431365696113063492556191761912355423726375104533852469911494042629316509429216370537197218853191889202191226615172750323216142797389844676941722272302755563974571637522132298800306712523234955742330281417693906434396309975237557401548365673503094629817018469104790380551475931465873657246410886565508322726859916288994527527173396390734544744353348470798819210163087785502344305750091262776317141140868264415064275635263977964056913197125107007421290737862436526662320841684002305612103631432599060330664441424799466984174390746263294387138047439318481018452766677212206574482289851326958521099443279287916264807259914037465556209033810085317903420426231037045047318057695210425983049921179212712346585641531661944993821061693650569487305580705285422032370664216837904791988618494582966762455650368374210820304610239906807039326285764359015003110427170868042423656985203622100559609858079133676265176307858139039171572123426488065702442451723376481177015458371347171146831313974307635236247888879783186521527423277286501849040963575063810682067572864323541214841354741331877820620037431426216075468226446343023064625807583136367994045180248347176334321823845541862128605696022596643046489705534063954462598578279447141017692594873204397038615974365903046227899494522425606866893176251327404288984412879940463945110307206114175638871994773139272259114915617338749196938628485759700200338450939082004411523641451988102387059998905719252506542438064447651515207399124858124043451973839005467125201089145271034070651435831568154748004617971719983780677481385882382792997281643466638235488774949316051709486985095538614304751539487977799758328756341961285897419418241334477400610706543471175866397925635510316850515152858032970185902818260719733576138178689265981521501578218309202677499034455669957167846030474548857248890352196745878571801607860781763609490400240526240595641632549619679122286389104088091127440003995941814414823123050808312010927613839003782203535757340472470468794741497674321966949177931407173979560188373107202711880791430263735718243021008713593603802896959598664041412377411144413767375322535132642746301055523815200207560248336355540720506944810979181484640762276872299455111361602376123112113047498160544495126646031016708025494654550452628563866036828859711604498061374460676003718540632675738350941783632701245238485128433761512216609834832980529515407648726938950664277198483795285605756961208655417675977278967293518316046827108256804732080503506899297708392309950964821342961703918453334321054409024477298419910717430825155064388414339967250207956444366169944432144654431771099295404695199193272494038267614816811411099543313626710921595586684225158080948398224729066792386085007297531748043397208434677232875619056366622077436622502275892334721807172692437295749132770923519178052452610506903576379302502115165609061962696334541496468113603584806936447258124734899765468794978082362764243907971397447011273983427604593097900866635005899525316496477195403821838416958740768658448108131324030211817967538634069857986554780592053199696840307624452166323531532575814123746031809094536688773856041677783999099579339977438325525282414984821523331015334209064196755317637202377886005192027189423875789203687042249271222042394365543870508609282302561445536218586701695468111894577617275033632666468110356769225316709759257298325361666901359220476011016963374819864972959594369884305910859765312964264532323784721179396227561593772369262812388947137835813737864891564333347704575679378029574181165566643962533835699260305578202496235057902736651933020831529097726051367309268539234990677744381670681571634735456042297659234483278215345663580851144350302275193521273675719803543691653531463312551955065248847449211618273462858672160612681693652334433656466544943331223582990184908537799511205141406047719142776491607745147348578393414582580529404175659471821462604828573285485881620624417244753148235136593848989653902629673835324241025571182376150688033586703356885570424611528917428321132637487918530147335147678674413556750208819904316996216645254009896714485496799666767008850078240780661990077177660039488249762687688938061502048279294100677574813804541864599308622417887849900781562765745787290873024112177747370414333499585910176144557556132254766046383265161635703140133981922519146015292427954233466644246954271651673284490140283569746550849043578013978005356524304763474350889980731691960563723348724309564732335732431399187389220416372188591277646784653007430902882952991902049450722625854097623202102225840949355716143100767556023509416163673313650426307853854045628825188177861786616375426187898170738116266954201244572408088320415544373151784301336751933389376181019830440216967230263663717990195536660134802372920533486444578735503999168256633513309103224677411566725981879140598240619288775949428338558553113720065733942391124915618823501462955059350397560837446975730379425783526182166500505372329799312169735834346211163279738919439522266083793225837787862870993945452907105913880484850879660985511900418201474585810183128262805431515293544170026365050063997115120576880184301879811579678743273388253749076933220030275578734257572963426932033990119733609667977462584495228979491612249848918205851500923614887886059519147359139253223954006015434125449731254895402596278338656930399814222721447588002299353590555124794730419262572439395945918848085288898565738564543933794151959591541188094131595966947870912313080416245759545484432470433836198792357496265869247873153906140522695645507115967422768119881453803930963703019722215366812017981054920405015492380519782820521349586212082006690800069787303525630815464630565226639216232194829351444394594179238957677989554904011985688545974609246050655812455904234254755934588234806158269413608344871105884671203616092255644893434128841359145673964045574246551483697791939527900769176955766450485764666887956093334085870087505890184363222697792798690399563104417049847198211832866798781807764714262640371730341205943715607275876896351750839057061603609129198044052215129245280855546374778800472676233863705681459692301288766739930635268381931650261833416196658645206567006525596391055924172424161030777862292474187831713849667745957562886198704241353496447843839219068669706234384275337884634345586648923873500602997611729519780631040886458869142083604317936246504335771431791837985106049419773126173414426942351599877628317015702501076727833540443607506968219216178816318527783156840714933656415576673073777363006495785971616965955879406831852110074199929284358254493548187630268060081498342978081758938602006226544487419782744503157300582343732301461955076686926782001065222309293348214468817203477031892471933983700450968707447759636100161146866077247503800219513575679572286941480624706083609535930803284022181779258908429280892552909266867346491344859024957148127470379324963496220087852791027252462957638677199776612758432043190856342583318709646829761479994970347805366279111289654360485602875416367124028418373773624233427431223631232627187766389667926350145234932536563920375692815869671793787854805897195052349169842528510189105495262523996382857069706103674933743526877048332729662463199496885695785269238857933210964291737489979115055451869992047362591945576489721951104499454026234815164778473407509140123607722781525802711111847314862307593673650630056509402326644764930166986973406994474483378782307701007219878056383525595271819374511480658946802425601731567891690185614113015930836123158699578479400666428510597287504633075381591888621419967371527178674966692685799267397027001618524954931646282290113800699124881813649737912245875071771252622257812726959546974842702843267248784720687259713379344734397445379495937648321708426524634906008091159097463893729410327841314547908018720960889184778337204420100682024633055213481220619874054955978093088398928318858713563180984572298068103291439179034700238668469169211391055074439278981850370016251588829126256416770404267741229076538951540382304892175038569103706764001777065451070907048563705761309285659661841292704047967823312463235402026010814754954190829498944881911693979884940374231879120549623223705788450105717082318248753023649684703741715445690066835086807762557437483941018329029555177758350333329038605855596546076123402146343645053209274613187259632562813854681361726693674735501778643795752678662987640704982142810226749436609876463624868117292913254287193505377326199488674452576661793556610450248460330235189972044435901915932980426888454958630684660479519020139257323675411597024145546818429594672262701684149345581484676004466512176833241872166323850046726891471671091190199172953122568880816843244264258413404413017376494773576482008532630055800484600437206617188048894875970939375335771478195200652056517109039026533738816335527097898293228839478251388651028946550561288630311563595550588565503667263353818769277187363331415175338035788786480894369048583449807980348490015634357739072952981167206833842116801357977969203063763412514071060175741346486136302016709027260359960194236359630431658432596494271369961152275041039375101532801149245411575345506255689352896068510952651399567234801688396768542406981917489597713562843587738164982913120616476411553773440586861545243440881609120964507163414253991948971202928191827498161008191756631005736715287483804970877526378714760810518461471112608167560206482624365624200899347750707320105539057833360017852505449025528685276626188718280461075820019568298151550835507789185825908487495934210827134405586106669026030393157171129567380271646826278850574580681496759385546496512720220267255480462444181783052294490913936607308921637058811120797956687839261293365096813960500482066727953237363157415186158527121775150185981118680760219818877175027483148620906006437817596397227510987353894059686942700997838883996945841822218467579327267738239134355923436084080885467013725173681876028168370975042269394255943541056782433351538198696040540796707333125542528475526598857338688137825052352050773779176305126918176359758855923206876102775583858937475727549784942915070505426165221694611836753416632534368928506594594908413359040362138816518941864577154358771408960722553148935311241551003678826358070950066063945658870961544197455248962157516081433869466688040976120667201781744300609057089126173226886686474404814527125824966501962011470249309387283687960639624523538825586785457191135805277287101172121841883913692836226077487125280222113762162471549438901828624714592287916694998993540327430849125470322513951168698161183739575578068574254134130038520257084368128816583546174715132370475619547588527394004845414953900320821859809176201740853523336423633012624220934084875223772090613499409965574310518089218941374330083953780900602354125717608056891142063246473424550350385612644420507332207814314931650312695716184830255404404271512696300755560116796410515098580077944194636336850547436680996841978880719654572229528371025322280516386325908869306190910185049803966284934938105309488599630713367979085352189242509198642979221774958376199383368519179344079852980218382548709354412228868598675166775157054376164476226569869330200807611702089411955890419871047673700842612358079272253195730371142218177962840451460292819271976626166828004349744515410830421178084372435815488736931690597888279339752282888649582494685297233423441632081037145470057948313428936617218459074469458025389742356265283360089713343421664644899475282620986445405771058452649929699956194819928407102726319361823015551274191975105943887347337766093999443786254394576724340550043919858901670656088182793473289874601096691976529621428262096204956560853001024255580130550634124266708027975213327210402262897888953109870875821789688685472032993840181921300672204383917105226928117678184316343342946459969833810692047357003945028952560809707038920517875314859225910666647582214627273899388700623877987454484985148470658613517167881268452763547734135227272434379834000822833072302562186584686657835921218217273773521317710171683609334917307340873684017783063877250297478641595673553533784789167298472270106380209158732907552316061482470345045541423962189293873239012554294940791708753984854650302149126009737677793462830528823362884724108914608630320090823225085232948671325760608834600246262377824290156604674594260943317637158210801958550736315221382720995740142212652471233942555703975653984734570251968477036186570994551232239094006002240221270623772785841507500541539935586332940461761336572892655072443799874136394337484100427369318717749019633001117234206554378854226654599604845059107701949200970872165782917578788374658718183172073621206505951675081914510693913506106088139660184174389498054433857843908312247668082478905898184627486588244026362687050136328919152067965648368812158090501384315069612375175249135248257061474318736557076704367757888267341906364093511187341135061792961844251067374037442506528164367142850727916277752835386322140784088401908784702942918751076654902591839349257686784625026838034800922934202005124188218228940458607178021898268034960633300924463855493558183297388986473845060189879912047492962176757181836434161387560633034772497260011949754061131667905314416986824921763760356357249273456280967496792919565429742811113964347127369948302256005217680068937644546863269493132581835427481296042345969864625382438370834160155175041845983843090568683023873969991302561813628843334607385990332833333965226744181957035391080932562610143403413197690460715721630055249744230209680015369738134084589659883325638736879452252163259276611898729936770590514770733714249214513171901679593652467407341981277306277486994979359316719297934980842594750031574849877802746024176301750180339784516758527428836311308559499508899119663758184072291507601475507678402347894087877125184799285213005973488721463045497759268978269629929942070887470291350401562947049020500880159123524854342660993886649659430561679207083220335929236501530166518950629849151096662936108868740272109358919103324208326075589984708519421509890359705901365987351409125306824278972020940155871913109189307010442774936479548400236237466376186262068175583679668042426241474478008759290997826329045125943988115179999912870981836931368271762912136170607736471755629647304704524470039562780017821161762051043321815609780575266038780972048423372431960851005609199200522659973111108365937812460191069092647760066403502180236138742713604426407790538761712695448725520296040762000051557661662584583070073600144593891521877451950074800236412599312583318640083109002629076143707783229657841226768213487344266481257100982914281028549749230903937398011117712550348070311136420352709624548873066106106725789275186286817300294416298020459237981597337619720510806815575237242973134559318571542360529025099561434571415435353444042083127480034998867227262181194678047479463294678036772850204866631974145526232463316952805939476940793009115750313504953290694468050037650969617154928423813167534199692250904645663735593975997927470752946219739127077466676167092836662973549936333878171960729102024054638843025293249318490225315405732414801493926823882372525259134605091297459577542061380762286612266225572941715140440346200191801602401981133561891421281053948919238298192151080297457704466861520270556203184064851092621622823960098803965737033588889055709987028265260288418343364937545062673785031982354839313166521031452821423364112652638853986786641745226966292915405299026346641880597485930303536586939360407195127005953311349595635654067346100130452659683181260721033091631101817864958684951433029076127834097647784130619044644153839985055664534682047419741835850742988164048926275705454984066669173421520182761748888886607853413832313653094309649311343489602720168695714983540335711750224920562996257496833125600282274241097298195637973002549309168479113646910834612079073304693378565090548874307425904190201694538749332819976323225340294613703745338994244622872958156206325989193568836609356839543718585390683214950215327358691939088124371312823289808951775020181827149186669621174978886534947325923892955559799879906189281391633530233970940285360567880454734633580268625938693307291109016727084609747803012103702233560352527852985012505583258250525688439359593969335250904993750469399356246688000957947315325498072207096321809232000978417452368241042295717744943502630147101104915220981043409604155014609392936108971350307911046785194995539046847640287356539333993723107579814430586748873975544381001397349255651569631994810731892571458076432695312450753821831258951507372276044842045726043778383743138952353001674603038752251002709894126857317313358227022792935367260790527071609097801960905543978565638122795063686250593347983762456493657810430526651823287235764066033047465023243391845340572767338911489289280016740725953365445810886362981061295454945644890199821775299761832674365004720849194042468458177746615471381815817141160379662032556838992915490014206439596957166505462096680188788126687634803454147091566386389275659369900056633397040781197604997567273171573039735058417353872532989295140497883786920812228010239812333579702583971508727482906031311558826185034253603417944274354626167991685734221977989773657551099080326719519812769667583965039803348144441735229356285028695396306862248963217409965587635614586105892749608878917181267203866435130826163457023809924100234522053138553986973759795124543989770708355379638225746455249691167898288136653903835785507270764055367920108880679087951164477233452900217980824466548289081540652191252116227866691766251684851121501507066087558855429991333886813105446926986466289553445257603080560016218902114579182467183222156128605162397782774555587705903022131110746660400173838202221941537982885368586230614490255237689829196684261745808592192737528669748836816608401406345180019912145107953026939418697824666407419336201211099802108350176109371709437773161361313707193144076796632318869899497140352667859495132273370906294435634858819997714618125769204667417829013973640431340087072411547184804720515795090021794620962152490892693406897548731817638998776594977001289658014366456489404261105451521481899349015155739642976936143627248117984144714905029525460920917672434184476441409735387086637315087331724130999548012139740955631549627596912567186798709537579886254036310244476207241317918527519521355257224401028461120903484739652276367785949169873971449031967673315146824283722067153429920408135587835904348615761206576469412828581209697459740547303176145652639124731494465085227657842300375168566427190341238041618361103129703521591507807571827566871988539133209851235503601482795908473076627121635749023003654582244479413278775194914752710779461688300057696093418851132957128948053908739058178686884038227324890552444680544265519158169839822299163456324385901999332232024727110964982049133000600518962289097700247147148643893801763030951741963024862917635744029787631171001628781352077258397157760257192258807258660629315688091799766871515971027557023310762609464996500272812941437154676580066787804540638040119787368757071461982782276140071797819096292897280826295400250754775070723826133074638643853057901485331345726913924260834691476439652397205087164796950379385157531163151802618745406187305793520091388092488326815559711315709793978355720176723232056074837100788117343085712409610176005261179437822143415252212397812245567547841891279413695637725957972596016985986327934954470390362904889254914873701917126435988468263114374686614995198128858969437465324849839773309300021080127233376296704854452685469222952374176072210943246113073055561657746045110709935593969319731490197150143481929997729571358657717178032973829809163578889425956231713008710043872317372598149782249838282561359915999377492056553530695348289757977474795104042926795624974937777874322867464599545174398984682172435686357221525607736446441007070281534601579950944821032266699748373181575463214069104590990296545033233932660083115406634048042041429966878435631192042425753284566048727170385129549274122422294228633412773831360569176235801762071306649737671342602974627071116879065838430401585192760807908117543958666410269914980948419434184786192482401486440902190312347471051315237981616443335401564709238905257672665397332004275362203116744157843880092355662855502927005289156998344349586744523048665633500453487428612886877867102286679292950560386497648606741015505086527291618288832150378030898499385863677485588638049190440663633508930304697260777050109282337890093218589429780243952011031840888818595868224948731859168256354393305446046268537372531136353022628334331429722719778003344820223803327067833947175036220962367846445988719306527394087494170539502594979389388848803722804598968533787488524302036628589489341932819449835602500245850748598711204794963602750470664375674087407547877274478173779550054546192231112394445414646546402349850709456422785454767236569579020298245231705461904698919667750489537194271651624134533409178022717513396039161756277734421417835169074688262648298790359650520608430700862874668531430760116512578779421894647864109398920228915474343649226525673748822133750335229230869721944914010242269295630725837007952384754123319525326789131100154233395207556771049079214121335599537660973535609726999786083786725145757686476511222431901958761517474188710735200673442053259438869127166539171238034629266442305607082706771513918579017478257941484714709881209356938649387535293305153969279839268195670192131834234740177087066216402432723124776581157931638950913689947393182269549119270462997395644740307242066838183749854821877588120700688818257345753133366172358087474812074627578657634742102534990547364675345718674485669571042572103373245412802555044024012464583879702358164684060910978797303885781384017540676252480116277431464158523164584993389671580085043474793139631756622840551505556605116394958025440295292997579806966638290478271300781425005326433729048094092240094832560763804139142236414809161306040562075523407122970584533291989403270921334592345668541681408793386716143298579021917306074770869030489181554777233056101957271405406535702245049967026179173217318724534036746625940788535261957157917302613193411864229972393885562319960967568787290845026556795654550838965845207086952133298729087701395198569016763836910836659245740630535707150788794837073498089318386142481577965418860513239248682659104685816495607742874981142296340148654360470523051975169425500472075461030004335970319289471335256339895689810211820473674319923210262059922273550026473563766196461880439024382148006318635968802212317383098698254699532534321016335479117442101563132838933253762070368607430591977400722775220223873088659089012643145312254498865285907769237310514916549185488313032815497041323335907147092238689220187747701778777736647028896365971694581670030805802013375951249807395974457464188440081020090007806170674757968058866863292273260263353677340141236407633582328444811611511300779047079342543884021415905314117934251725727322503240138809933853448771609721031282191025597081020964520407120246810257575759392730863220752149341234742623595046464848566858479443643447656535817361276867603620790714990703330148905005648573381971008080233556607087114800340934755089861685477668581694939688655048687322725142270513099393032579811262581057821970008973607638051390717744448681625267528941145059598491490326762511265760857984865255792239235733848935526201298503821303668437903700332452802484645862822052976581106531426253483872445720360651306054132872180592987037621718273915469294728435665725283100151497211057656555521768473779797003686102497172588260391621304364465790610570450184767324622740359784011109831963708127735441640978238512495598405248865403109546649946485136877434826685562567142608466003890061282407767846298200449380597106892978207283054911607151392743998931490315082203884978423438335536738714471282548946844542657384466897770744663805940605935351052970985220729504105782711294294295982067146667265808375741547608116601499654573911701239956851153446462024547737401132346530608570944179405686178165404313370313057108419981014771724817080375436596164240230358874100431611295244777225491714544585993521449754311058814769016225335935821482110676375927481298737191637414596974125407432790680701041402634091834707737371943530149127035455210677251089744278290917069482483781606180020232175895325663693933144267823053913169270481550704716871706050885226733774137999365690309879701494274534217508345185262481650132058121708769827982442347267253896137440118181122343360709328559311632340538708736658589530004438330891951392794461342003793039582128637334786488116237939537205669435532407053421856490129246860632299629012577787521494490656441162557714658951117091794243897653319730326114466247352707634742887219348234641660122245686688583337236975319227728431483726423899291016340283690902893869684664559947737713750914884275259808192856224621062975683689626315551504095886885022740505258930107986133636521815906409373683436554677825664439361353268729012431716683772933131042792406305522760024873216581042315548009121009913992533028872532692714811152928958773791050961749188554121996178670793925609887259760001860216720554530779786703110274129946819005052958903208161711385091443748013217848819616796712884779220470474845434096166782356097871815977852093191044377220349804825126173301911510886388691847539669697561923311287308341894943251869285323093121826572960110712628285306641384416400196626355977596114986424714801148339964185134737674990549556855610741749665537740546682275328048201402824939752348362938300248912165279960376965089710352101732797910240298212731514237940674060358687554758279309222780378629112126127002777547650287395686527258614500723878970020332273381440353703407500111141201684846384881248622027973736801186363003680802675465364586108155870708981323432981319283862511262154617086981180723846717988254405105665767777428182456967310886918891855479058767396846784760270087511994270443227268107878962908493800901475235265725853358876804227972077550778325407957022094138938654315294226623224311753472147005723065350804331518709974781775789045557417801272196717538101098727594596011107989668430672518378050470160051253177429579534481177560458879926160479421360033492395836581155471558186659606808454725570248363428157518194652797207237798134543490078465477892901125048783853913087110320654804136535612650607950400205597599008130686022334885383848943886150121165947852126346572103984458429419245860290251950764995109669308817004250127148879620212869853604369538323158141044789994870896237945601079012902413689265677432591095745857431215854860647206587219885274999094872813757607325602909532619001230711932936746361519576642648774497122161843662316398225145667860773269469205016200557239109735562152647408983036187638503532035170066069980624590032467468003640060847190898275423554645478494127491382042559692976915768529770913815752570868676291026570483451900099173780569550093380974217592189662963793861950274781840964462656214131051583742954710330874657063990731496314865943298200773829021519693482023530592505360363026080301829720041406978840659052622811590256515352463946077548795129882675704405807942508217597167364692619846967128322436183886064495338352659450982786569840867338455198896043671882115688786589159883691899897027906007753719417566620040137248363673369484232892188442637786032795337628723036279569290572761434925915004925191667511684571325651305718191952264093137952687075632056607892999737075631262435965835709209271259127843724588240232991618093385886939617696056070203796819087270436807498146113886169864103349143812164627516262496374729999325127504642671526976536914009043329420940201494035866243493589575598831396789268842616127334574602320151182383572342085702705184066607328885313991007563087482294396110339299239307564022530290595793832910115045805881671897313302750032439805243637814620760014792578635393176112144722564751732294664318066335654651567131039969842901539354541149117634799961298754755469224611642686359922713578323817543883957780968771391498168880287716886637677834131078831657352182384492300992321665341626039369781386688677734795586034772306112061310231733208938965619012194448557239926802190798653648530280012793691517689096441801094312958870616276096944129659336467020781022878234039029075592733957845040288742532108060784612509713538596876567505669253158194337480768662299375319528624071061900884355247054979225117903640196792087474945024519685314003781984070594152218131223447079255479086449286927647095598903001294791706627018653061244933202585205559539963499135469419736171897794120018103796252308527803487718229267743064631595268845950524743376516135111418318343912528825882502268259887104416318362186883257888138572410560959197998686328314590724426130648352618085666737820876812666702211591056510582846557860541539718626926577367899505486024011416193148491137511108321159845335432111983022686825217966922029964393717332956834441929968428820297298179175253271838453865853240789638030039405297766268745979437328705441242847350373586239631452453883623652269743546256200271143210656626166911323581976583396698193583508485588501404667697529808644369446780941497405358784227384928195153573084866786660677340927944553164190888929223096526818093715906369696455402735277304691890701250495546786386461752756545988578939489791695233191644247550582183977163958150114765835164186596278733963627949140205405467241518536759478280358477440542345079778720139304756797418528214651004440316508529394059343695663372458794303069560904695347413098089757123562895535812731195469150853823177833524072912320823269121814003257062566066923686142709785061254430308192636470298407881639719957661129264115174589847756715612842334710472287892406887371968186044924793331731200326054577181181344719572829738293315188755328499822938833817170333215016289309085367249056398263269603682938040413640910036681589441079134827964122749779900211902493219959873055855758087814374861831028865259197670346656728642496277632193346748764255449130485743575174989269653267339146647596135480244805267445911630433347946046240162882598127613356855506566146821411797605427155322263944409310633301850119622684831840968604351774114445807895993567758337818287476852127204495002397089804371709212160161811190059969971380619431835271785831023326041934909021121933619008961479712598466062066978505452324109271586618843245055091360688823279239612960800549177195450868138964423322024302975445857426708362345302206827496036229689273044872996260527283828596372926038789469846370562699752135170886301111866720622792087839945976259228809500138170618558554401821497297089512371743486657113220560811481837529818467633894110131826243632324878613151762437677437983314911398425776750030913457326094213381836986375044738285036197269800959681961909743863635003370915042345967837751438912678072580433663161780744195284439478768363278964766094992192328417615389538860429408375851646975073905404997873933528704355036512093518826273405124660623450884732879928113099330274906318885838440520871779727368790226005647283594268500611564300369826846268456593874509573724322418334695493258611433051623577651248985956696594346812489329129364888508554640905338920545941041962709146869916767334299177491813706039998926659852596095800582429924740939389928255899973751183862998189795062973889529662188595442992037992191889070979947338642700183089886731048594319371768523041490809553401580549785028842577384162653750504404061274251184215752382771603019227421936449980627415581052575345474843001449092023594477285791584880101018783834412477603217431745595436375151346991386429558033922587938856261162670373327278537483734505998980147467420729788815547905479889677176395832184336106323351181803394623886070692460428295723076324499907381208796119868059352515064199825342292534472967726482231386757651085801885881949967001246289485206402118863549840145516974795091097744630439283869049407843478323323201721044185037888947935892051910299739060877400120728906506926313680398945085048305391679235055886772071687569821402262928878520577741681381064051343186403627057234678594797155480162144906132449538458667841911134096366135561512710290261551883686587375694523557242405244498621502221019248312829594928857590077431807495262862677505649391995221339338727852812591392538859735092954489853913263402324224340751799093170590074288357520840729282576871215138475770830630505738902934402947932786108776233450871590501902101119611609473906523530130639311854488644435982809361313246647683183149507087038061429886336392747251235929030678822369082898218243905326148320204828245243662309096234582085032913450865377986782513006355497162908327570070686796882376680762269581742932747205218222040635340429160772931045238780280708264067803562989295097707306507199149857860832095927799895363258255556537571732775282742778222450162618423058048856828310290056193240022563536719479332014499566724631588324438166562484017211357291123509798207204154496302064301473318587868039871448926156300644667676679729955469784015640832456757875442950088180250444552283495269583110592004876656428794320884786518017301441371035282494751119308656027111363710432021892858032987275793633263331898352305266629859298930445707703067338799766698507319813379983547129699535298888574199937347643949075660301670572003114140592549865427251033941467213779430516031550665708622763877558076033394884016097628066472924343078601150478292286189592187759367251600235154410326645620200967007690282195834220844951469140466539104362370048075759958041845082284079947838895865638241196862204679273845784182153104681692723213743259478422340720946678584031410223543596943368823287251370071467665389285640226787589601013286589080457220177053393335193389178970584855565011567368781738733305994195187303155364408977153720711891838863805061837591932326021410944701653050275152422928304756504678440930894833598264193205555457955041940899721323546786178407235215526685001964310232692139733563256086323582008526932617319990772076728001812472710323406774177674964670659952493451827961799416512550856959594547839128887206703736081110031391987559858159916260533587053780292722165368346975617724620481031497785074346049909795159686722928913942678931337625810287552707939036604451173715443943897181813371665903245714050976488591154453669849721170613780183598197776206937073663955324236082720144727408704101267261904604978586189190924796871035786951813606809630367240673191899316904541702191081597477798817095789352026038515827429772774634281751877361169795153585769558800432130044325669311843515592937568577650620571915331105503613110806170480589958100356409967305442667000383385989407866836967683597747005988981337979494975058313942358444316406343817801634833808138131027836487774542023206842730401472511969028611833809344645559992816086676067508314585398937420904092448678811619820720063134968191363280388926592512161434486702082213166514832163518442205476494905184188018840511869947767653648115903739038355226910031645715085802697546996920699730855167574646086233672299967315945410982563265595261798195723390067518982872342195612342220847175649109929331407534212451114199625593081871738683119377087960431290231715797565720539602849592409426022702261250898708964159347004532787694244647726024907904371171317556861374923042134070472452695941731855892506931737971021259351737301432875453195143449164425326315688120868719104616415108816018073219044819479677844709929053687995101720638070166539733990557088764561559358209897355183942047102745584823762830198431720461761948639450870131769627831221468153481918450839894547085703879879470495345194793170849704191369571045832405770628554679463435888337999229509384225094731979942515146368604682252490014637403066530821779314015618326195346971386418874466950875500839334312654072828650146060626987374028112110084185296816516512167359899265047443725848202565750635604732226377196346003156913632305299944687132451095963420640060914468467430407479682565602249981163657197140992583470764917727128826223961977930151327144570327536208381249884687777107339350935922323217792151014894398786219271812030003970348217608280126944817089073281382167175836217452326927351201704352788771175826076989649652812248856075767123076134257645261017737309765707136336736424944805275181212943529559923584675120631914248030196689008756840705404059887525934045412639515366710108696884612055982723027299522196357670806069043805942037041512373404062550163192072723296646206528663673722787399507547093894102773168494710536250097870515567618824549025577989346017783205748035088618939264775497068951173218740184414730982003889128225490641923489140117313902913710587276872117133074248754802153860624521837541417655102039330163386909782112720189065670503301736152210170350341735264242323314994959464732580536071958337274613447599162885824816508950788693270870797990482864235758105768263479644187208132794021386249179500021936814347126955102103115398189315011386996937486591449602313291434429010818305539112822261580990541618452854174190513442707266020379319309831511998123395590183344551982573134144391987046427850593847872955915789010173607856918701038155604207740140840401678371312575037522911341068954449031772175436835602504123580870829553646100102034764295096618053620329675551745526399239740494518924886043894431129620474750527478690602063706421480948296685628780948440928516279327268129912039805894839048725983845750066268958689126252525886435902578098055507989278308465407018033753093927988980798670929411504842631573667665150855818806279556784835003352781726333454770050387127295757964321901117630685127509508305780642625279190893037374367445057466283791122684099008215297901577032978533882240572223274702914912138542900640432749254488306654447375397563760188108148646642856193590470153148598225180268297204751077150247230635529601027056477531770410026066528573407327239900776628001946319207886643327724675754124051738094446922508420624377784284729501149946687301566467660633892691966665143641681247990904374932747124063281843495241357023792266518834831436938817934993975425988735759615209149678546258301981113831454492692528821653954634789039216058031764422678564935657608847125512447952205857942072771916020646144071005896782401684365849936487363152823546720066139552274521393755519865299446057978030600652055651080724633032492637436296777541667301939325750263194138319532407661425384655257842016561423242670221197530925608490077794903294688608840003603715325071876922313521331019436708067894130589873113409762268736846240992958537815228015592652591525208146332827689864862430815316919591308411737611245831500183106144885301300779979412468178164436692751222226607213684843010031198552943783806882897344294052904806916722164436164253905068621688134539934837388169018628674095059034951804195673881137387919746878974940272428009422199504667576610552490589487396013126013513485044465252432542928465828246731722961619534977179595826964997522886000860139344192147432369746942589792737072049840229821261580075546572361412641005300924037989936434125354051152431844594457337277686140819213399335962533210837716774224447503984363397674114246770045982833972409128577427788863679612087402198653379920734555840794221371386433347338769754208744016768171346148903842271206807695801032240736892298695082117466468815341710066221736991753907946748468518033109904943997392439282184495399577090012816052924908049769099120902760412506646676762076019044197750167982509972449699449750367824343733164387904178057610895097544805267177527950307632915221184437126836884961483463169928085140615350785727666745067638784863093964494262783561317466973085282410369288081381657790950727190249262135517638936256887217054269680735808086735543115111393531958284945145419729495131073990964317632550194054117065829218092039331202998679269062527521967056038766068722484820255217251367915587803539340052231292159036869526220489576442219207023081200523032230441079681390592460486706236035235959494835531586402155167751239376882927357886153022779074843889963281439603162597902769095874968421086417960075537725660999795779136190380763257378549189372794120101339559070960940845096295124483367588496208017648158903150254849780181007363859753544858425597456431133369618364870361356730207941431828518423204481984264749685981393816163752332952831126708530790846197004022170191380304812583879791478992192291756332877224831063931026473063847477538349886830809433986827646289684017144047674685435160493484916921802315467763044645398569810340282395768023421994526466635028859506283538787730835902867323746863920770063984526736723066845560342860282277964633918728330988568345744032237222503258942831227757040629212585062466448178855522073740622219538861941579133798917069457995246962732431826289761499801056295345490641809795452816353046378455740331264632673981142382537429691215141551098493941550559357946623838489571457601559070557907981441359812847515180885506182671262130193913258328758412604666373338459638447265509869436426149212913330381581105361397778637671299720447421482347497437406601910498031361334156974237480070926786361825686201293317755931816229044947795308282568388986532587903992395413367033701521347317510069951610841702241612786068592249993568031716797642245858754390635596928673526906571573034855596686666222026018853764193844693224452087317396660406998791724336008474493873179181086156681268473215012566080899634604915614488527974906377086051651962697594092459547549882001256216427452608037542022196936646076138336076539331010807134008727020541150050198016948392464714511463928946185550669108659000989320888377268931111404209544718523211706054689485483385668572052150276819021687733504862721258375126303068681085696223112889740463562719959266791922136403662974964506172198925954820151558076628472972034960727706755545388940427247915949677380711992087993945445376708162052605230468180422496570182056927723769402493030928496782310467264291633103455512335745681719696122438651503486154503196925199492286824243886281685193648886773650346851929219543314718652741914820687705548532520650963668220462567676349038678531494977281845097574455387268529069215939677152035418346172350146647374120378220318342567265524189571284092983302030534790845162063077219165843296951116414039742065576084791906668978112560461623210978766643598626719344963724672051051147868681639692794256869287222064170232101587483561882689518824658682773516569306632230812311154913359500195392475060453322353996561148501362898010391530981800017006059857828790355984697722942790857724352576885744758783031321507795370626573699133660102311912952803826068889650562464323926061931531509353657636843032334816437063374039467109811478794166602643227023039682651362194326893823530075598717372450097497895195622413049408140245687799567133474546518034582943986312542851804411475025199004335958428179296293136632422316825363773180030828266616343913207393789461098193049148023463415210388613070609325124772650318248434155124567408424329556110340266111185542259661664396715692703939194079953508156105118810411608673875014575735001238649838962619778474505112996475857064312232986329506387700816070352872272309479669977439248733542628453517153229562467919328596826436183491908352659626306469427460682911235805135468781011876579182779898907655859402079031429424882651722642358103074917405774813010329265405719677925998500697750849933867017003992119499679042393637860019747330391913220902654617319744782994878489594262536603041518495816626944440711198160987111200927219044425390787556073197180074155869540136844494863189752099788274660576006199364925281439178566431380957104962153552325485012332107433781311146625260473966420841642716504167699602323340612299826239079897499031421459534834558120115728774728151360766217550218307637594280731066629960923285275720816225952620730166747955371084074704575524120493642900064616193102799707394144858806627264573097022548140282681965955334852828859644813503773887425290146042398898630445635551196832551608424532779604624340916982155819714156292371661301282348820477059791350169484650623772619701064186371928081057186051425489098545263163724432120630046147748364478105094569680663416665135735893917007205995643825210714305415193024017360711059849857955634118333599395471599828052580723832535252295103854792567635600734436747233342494279256162639303072464250063603222930095967118946376042183549945791065399757576900685474611662302942645498188769269895846141630738348742267845838766900186787103526834065635987186401435462904898949303881466749705748018187976097676555333723184250728592724251846489787329807144049086301837099750659631647882893249948232790648022544286652272973086154282848268193206232044971512070886868503579954808864394171001670114233979352422983855342989278168781743269036694102681698260405438339808427229919587825886601722545590041065332502163327653754686256677337368719572502303754842789080320536630113072797819379156000381322075080198838198076486848062123814000324340999613012311821720422867459218693390309658285581458382091274465121613054315206474108079060098654973874525314192172141551537931759097904447850619622252627655506718857847616303831433023908975151735755631071629768718754358828513292322647341346346798724392214460179415324156381743562023382388591752944850988215807963394134455407434301260764485810102143030414108288456037973956257134723131028162832647405821980479411904751814187156513452942489607513204967196122253260499774860888131792705870523017517716086275641119031526744341639528197717037157823277140593298595404544433672729744664506922584639573619591570147873270160361378771373697212049022651362134096803505697750485836487779019800926246528525221720236149981537430869136305511714229763533871481750107899854552081522277880458508512009207732342282366306915022136430871050705610792034933626755343205950245516274137241202468332801908206512827349665856986364128445734484248844589497148415171298639720886496999300862983156119080922286761390219527499207016829130775536076325567361740285958959390585401810030026881349285946856975310039253111348986023538306330579767664286154327335944422218851625035672128522562551012805134424349366059837789669747754912756957145945140154218560546329831931775846672519227358432188520806193456437183094393466310076799266194570517068167892684102146101910107453506095257720835402439721147473937692911033469132712548055572743574060026037096976568640682149389746333407606967260939819883432973000514024294924960994400753199199022897093673646469898588404382748912496401821221365417545473016670024466549328225808525627283047194666474806679255793158940161908145360668157848941910740713780523638489975505500588143824200359163577834637149542492777726453642731227438744588497332143536386735422107919679474021031355852044010890034587527977828112369307962113956326188306221928768755064277228696167352184473395388567254220135802513617988756821151605342075581814633654066224251390509859057702309522121997162835447286664127951731257354918659532695474138913738053533849163437526244331504064306719931072222528691741440244726807774262680218450106018541365751232929029974453941129262273472417817640974396821470237472981787298203015917880454692297714727437714482518892653563573501230416946392738326564765963491283802666004235849517599722144196464448914683342477061031081595166611770426790307728940412695006132567946745906852020814451399847428365819033708329243957575982092399935894304527890633043985696307516566548048537343154154398708906645444835219826764137307926419866865545706493109636653759980275299517098358212344315516111501640033066983829481782332809174593660501141953848525198843972950302181896433227106702932169368196061972434401317647554917156231031630151744642556470025357189830198780222253249250101052673054719884116305271355234323445012873853713397731117393078440192827998985375597143090299240272804786995480401387532155204780803075078595868606772388439572884056198582878159202730023146716435572108622761461913775090401763520962624118727649147579474077112256860691263708795711030666544541569907910190779733677016392323822304429522722992508546309845052783098016509258962465103293409658553224579443941234683264151666160499668244963810871177108135246262853019406299360738893792380840916215514587061088518935580166513414673702836675634433026840041330960946623075364336431052697587193661239927618487993687317246496056324357431163380152779823155015080336288916771569567598018820318510375682369370591076506651769394584060470654106597925375533723571456189107522120042039660846423694214380510431431163222804686093070492321720584786240103256268216443539236243524302686488336450290620730650336210574783046554713272198014216843325537562558053844708614758926074911055051395876261064934130322103044654288188536999284131910664717278057119747901058550752812152039378541175638758711638844703822745174786828470657484789166258782011513409007414015468154407102603489815789721278682980690526143353988994943981029302047362427023539397235862131800934997095828510353958989021344154604532562259643603100326632944032744129225953252209679226258620494989595136083226250130315663180567206757035416761109950043506583282707739174655176113010786414764268678403453833621896486182638726853528109288130602087318450858221858232193503970643799925424373371613614527363891733373068254643141558801999806858081440000018892635702184354775510267873536965957603479768106561527781385726646562722884108878271973285974661633580868106474790852871734195882384725274085392776523820542179651237541799550562646569643589253323339498265651182701169568346717447575752189521385519739252760500242369563580184030183015283175585313564840811383196348616287091107955768571273942933144142732901045896576086315071016921409269380339272004488953132478338297953605639000310438195312863854450595649065310169692632052549558752821595511954650216138018730637314542082564356923581550512287025979780121096357657927756410501959032994274923749220817864525113350122248083674791697020507144728706031570981882504015119819374284299194920692733315511703576782710500708793065709809826383169901440804814702968428648449358976994090671513960448403969004661127557796386757378751667997157567086287380885903505136042198273826509245978166185715748176347211647428290945216322295887275117851287074917339411468662163844602003517718208929727685823553537689585420968770561770127571082062594588517304276751532268361797799250132764092051246003309805738145231919565027700897825594824301822029715671275799123359835261202098602745713587257274708834842390318311926832651025638266353812520885403665687503391584278928797222580684032146002699598434856516714269793600691569975149185916173521109093436879502744220922788713631616535074808486958912373469418469437189734711093272180587514796883536719995216810528577123382831480667841221503226065527794080247337357302029662854899779543736871770448002121333368224480579467010087558578717084153595153346233787973946221741818661458038412453942317056625090322984108846425591905688199030417863281258616483949108432709498504904231024422350666181444870648228747532930185547436146086551943240600687375131037876301303285832477428849343180230835404865614182569505303131144590754203979626260223154327032776611096880860183551618710046453304493215024354105059719102636631308160893009662420258342681754230081639859068805325558741745329313560580265277586937878396491932115650392687044576921624211213775140501822996022690451417117231821487222592606513391171182237100142311324151982471482937408838576410899574071345434499334565817267946189346422477645605170936823872459415384576553917337533437874919586860312346567787838828583723632860184922390600242092956180065184746004134005062105789600199723039019299152300198973883041531477437562998431946649898310430810545922703448918838464822658441007591977820319454011976623773856910702813759006989921023366529789551853791818847033963609889141576853099957134282988998926029038970575980661965098058841193739481259410861433149287536145320979614814809917598476285686697193088194421102099070921506403023689562169720090270201005742256124061435161048362152724645818807963648292506053547664341608132280069395470767875651586104094822416195475641817084698255246603261200390000234408982290098273045929811466879129011581134974929635426061256887010015755010032842811121304289071188834551137462584690506643814690359081057819616994160417341886982341193190500513412538888480128046609145274684905370439554885101626409053071991608464054867383925862610336852172837856526839049450049767621587201256504475263575167044280416489813582048435320677660419419240656883058321242750639191529910264722442007980851650055138128154125920539692834377178375437622255667567367350046204353798459905266733123307286556907155261773468538926267563353421907498384864963460033553608890035215646042105675915500168262106923854733527064055585333264782337878679416949718574809305778476253121595906878473506534225063950235094438126004480725875774993956501253566415525561948778660352637566907769240785222179382799059721156965670128681315247412198569167086802403554602639925366921974320483259633036924090908078709021489117474925593001790516910372296798434250624868444256993430936648968329733059702488858982035827030071897435403778032149954483695387654114733906308917198521123629431820801398858629846176239591076973630707835702414111711620237308550933804271660970149111967045634174556996823748917894468767908154762332773601888372749023268171076690470033760849420437188227122987903255674330423001831699097585546132127483456444862098882354608619540615392778047433584839673934668462727420461738711816696041626020213358881946926007512303658665914421057058073136978183293427034182606434806377740920759620801105918159426261277757481009875145577673440392249653452708209969043463954080960463296022491658185235528748215109675578873541893852581030180295214933017662782364852619249639321615120378058447175850056476264909480381734096853799894955446613476155937922403050672147395280907686925925958387902596894475712117359955759640042792633766184812980420427464084304423064551791854977742037269104998378593651049368245487331665444767712046252264832531365355004689637498898722910735110912848697439503084199133355355375221707635173170995463166031143582420794302719926846080068728234019293681574105869840026626750003802483273572240679600116996178089719267983898505111494834330125402472017835334996959356509069925183473594961262424745357401817643151232547228050279152320302612725856856186865169894691612003239887393427240416124999183992679807461808776916027970058662546916196344545551749754630035945279191366351411085899275761887006988953901101872563684904739815252412333965797228128022012176162789232115029313821749654932147853699193163246608880686273826449761026652955031227167962649046464276866585290698790729301247071434729224372609762182527180801783337189487877217241720184459954278157888488379951896566143151931681081985405143587796127896552235249048314067989307656068304590891424068309315034328341374698163801718983519930583843874090066765473452839109931637536931639711197113190585755812757701293474413188184783079787605589070108158772747765911413784164589436991183834828361686135345664005376779657649265457620276418308202818708246025529947399079402770400077275379586609747080325488724493367889016803150810049584060599595324517529366548661292918178594147128317416612348001125438161751137551784628730610197221127662678405746630582372749684698602820554367523438714626258698796490514832510152685660995830637826952857772273117041556771614078045061539852813329880268122217449214882468841522452197620946386414244568325562587475283220031875742806529410974901774426058694271820194156762903454762226152661316329833417815073255451100744120643686512366356741040288757313211564939376461748343147364795415844062562103364755253620236293197471073643019457861420086186177218378397049722935383974126364502943577967039576959204023844122190715941787747607335858962982711894996697827317927129391090002534047778756368710908012088131857368770909462244512239880480883747822203959225994730269411810679400814707430173651579285007736649527053345198896110277180264142803832910311710155759896742124609802653599425397267422292978743523567156230893514027307788477143836821773201677691209261106652293737225865017018899867660224949514453211669218121548444289054605337700740653402366852797042921877023541768597758340367333924768413022992756406429723213256811025801159866335933918074080555629789187554626086544617024925244910752373851290066735786720156296811312129628103920047063544910146753726039923398259499562024252637606962039270475950117015500151507320539032678535922563525167738405191704042977979284121408238448755274800301676532248278911700875033218298670853177922075748631650060257446425269196860701928963011872148873915602799634678319168559463088411025075419493493384255784257455855052030904971657435890107753008327090070800111240887553253381412037244464364237087197193141992426211340239550887987934643476317197892977688818214377086763244102139322878074341363428845653846888663304926398228214924939599957897343924774275567014267733862317456875668771768672049019326144678233358865164820263861339943214844025649556850320089227522140609459258605956028398112586490481680046796949117046513703639031363834559761108174366505359824225496781559660122125978857246793994054749422223577867922913331140316598630018360420885442385325725299857454359861673112020148965529782651425849158282777328160952337921423488376609671619113694434141922850213501015382886610529556747500787186304817516186294153272179676020023544069775290202436970255882584878881459680649426732546415650744482101485629516924369317131608875194879871335146954779590430546881813422982977903013027986342630564240437936671747437161556958739079859456807048948012953100273501792065431902451221643420790037309852850192342953387485939815781476374150408216766135822086835925127483982780571587588911293973142277062911680745886888701700810094695919652528817381446556399858748066143177677474319956924285959078456201685458952665265028515417087800648986980143911261808791426107667651333364876027431701068978444538666737660592960684499818342790684067137347622131339414227596009527776958459768372458176713409767500673293909974343866979436905813695835929864238977870534098196815159344651586791714254896585318587958638641900685224594681834648391921474004351376944827459314510947788287322157817433186561423287579936518420672694472526883448511699416921456081698361730388306255861549493860651846816757319950465417151400347034648582396817903415783011666968806434492915828786847855265123904812962111844255114472584171135972880085224642370444238621653920490648982233340918502871945275269331471000320389837786758200427680287312267480573468441778942684213843602050752938601326057168964565855565261291377213079082091446788557222986594984243671124483008665776164051313973021182286923060362713771670960587843289473654472616973037643234608483581461828523521138900426006239448700821773631144462112708727641041211702585641263416036049352005222806192068448159252400093755919324730390467188932659445733810424791854899495696398697294677769365271520506668347999036032582474532324410238706038352667390451661338317866677886147670889116171359431387854838346168397672942719993203882772639047681723883314131234220946119755208118226780214928457697213466849217692929011394753441871408694601699439572400084771396041926726958167699893682571061136231429266167893438461733252211105035364567622912621918873265925759110879334379573807725911888377779846251837208301722416551551928743596696899562931653827409398002942787267828906362317278921425261290881363995371590077540422861785210310549561081692922028069786488956017078031691299807505079637426400242549328589754626630907173578698768717973357037647878350217924489448125648301960714054391252509893979193580407253331972420728996026316269037824165260754375245604369021931187298788459693155606393824962413073764476473989284237983591268270812055942071533200323128449101417439001050665070951989360242879682641398306967733546898265917407433611068012204800128085448564749697862952685565403142322304112564915575312375304874833775054316286111513816824106945590051723736252083020075632830387714827861144544480631600672156537695522901241318556892319742058683080379535576804633789888532272445802669642802073326806303511003524562525035803935722623627322301892338175769289457246528084165079037003552473899316577655719639338630356416520180062543335575336691020240490325169101297745029182286897834259947909063627346812397504952073053020448908369152099862617534267017324827907757060681966782443149466865166529246147493519281429626496038920949762832552439053626306928927620815340879204990030438087865577536142666401723048478558021671768328464348748521324356845941255467421432192468134954656756330307880906604201958114008318362456482686426406698345395277739313145962589890882753149669348895033669837369811176662423995190061483137795544266546138023437082686478420839167340227977906844166952204880822648430524134372382104662889727118477783576970320968398164366145651577127287906453203289241471829625923824071537895397471145787926859119115284152880737711563790749518019794827185813421304694776368795217299604060330902833006437264851797064463787743179267615817035193892647229811206043511060862966623284206044496643949225739268759346847034976002468580577120017236332025096252749288772198509484366590033698723522373024418995694063748939651451871695403077537360539905549100734404430362423217837740590335391220756284559780262426302239984206989806825524626605594990414872832555978397964542310917857854576092495721122339618222418480908416171974846211755178218828931971815430183024546019490628820599407226586396771079658253753715076793381165646454504738017340646712603859933092062249554792298752637156625158451026945453127568855902142450914529614545020808709291291808861759720244029844466225760355207246469679862371836761727950305031068745745192295615518261168297255220824890876937885195692916944373311411727889821775633799338696444491435937655961459191152004969889381962901512378516958379784450950350206754086764619511596202850267077724971996279526115834635203138480140904585213894025534783926430730484817086647074901940073348000247064443241349902286333229306557786446052787716187763535948235071697920627734375150514694919131334204804285578646521493206536179704716588636092757198026104018952591774638774542837430846005609241283214743772992386595802897585597510635900088449198815251949482121434950664281861933040734337741072919227324181372907822704787623918578394458565285557403853213416415841638425782607733731596718393522773459818596052906827764686439244097484327557843371039626604629307988521115295133043180491711648034572945099307542291701131572619123560223641207088283857714300896537839595203181997401704314877717168954853394145830746112923456028072761431824275741975356719127996838785698193617826438283172454351975841141686493421998775433077693668236070445809541674825986798393235553482855751093906616356253355352418748492283330630477226898781755328336644629159919024845133781490175905308957697713219619049021333159683754628669771305375747095447385460129473370709366229218708498047931673719128129827121037617174150601574094820525313555696841753479304587936363780751160462289464641896797881626827611618869083348055076163206558060629600964577072113349180622630202488843399165128983018146290013497690564646766657849579279563282883535894908063219691888620519602582248587592233341954945848774676931766846195478492221000944043259028762390981343573294024752266087874806196630436732763795695002243937604606464737249079651697560042534811121184369675473471248189337824821879495722627097534404554308860189397422602400484730277890877267364207557093351073266475325668223646794302511300286838369974677469577856017066745140141535212256540722873306668453710214912996104155041161040022588403107566984652055198111407494638247209386954047462201762855089316985903652402790441490722452388960301337815007118011316255266521697578036011370694603132844217681361206594886986409475366179697424087847358745850172906211673442668710744374158911265212788043218037001546387244247553859915176060424889735802159342082261662434390690791773666567813862434537576288309740600630734727238400444726287156495540477824766610318893650552807620838476976835057941376952958443592051546982313353463109161668166379583878353027746389276176717781684911812694177070791833135027623114631782932102021817002059902711311124374844668637944828077849605548187354235781380140828300707036882969190236559821188709784872931439963100719439349208152567607418484261516625508996517937338904992971783117724379851190632382658781456942266014292406573302287361468880302219970131820443411080887271801625693599526641658133047519771210597437468146612849132785738695797526489583071490640383208387421692248062892875918910992319869747997660125103637443658701123137617684473617312406656163540399132885437008216445719309882460458065251353522664526883527955029177083808858445020934736846564598781986624585149784357957014343086421746462162248875725303440520362353442536267266774041881323981329988015702893415510754165140669282267346676534046660059174785855195637246799612884973578108590837168558948707289439372345195766771922729572449869990813501240897636246098062660423736512108239970632312325126014634251115671813620219652005964821711369602487993376268790679683569308728178198850506571971452188046919924447669768040006571186597316392314520848647716134396770136050384403172011072379223486128859228456964956614773448313650209793435610666106246404414775396264537347883804369070533237246506966624945731898656275192425301994098497801078816545446394409865414896076158970768987902771654222420010872522128093101949960324245438599201649567654774039229062208442120562577348127677742170042074848260982284883143645632045517619613724243728573605164969809398267290410824335908324807817904601754224721078216870414318349986402763079708193201297801355399799868708957536351233383043189485150892308050495195948377399225184462784523046058604624467284863567599303252490088369911701801441160919517734812981794566736259746253064490491037156419950405022520268960400637787627225378022212146093859783063306747921461250083278984198976056503090315730726308232684503476784564579315510473352708210536582894915780617525426890668713725635929350250183919373089468903897831551150543800199694608141961017391853405558821901878389756646917100880352466303454546790601848794419243728016234901203547037051692304554886566963393021403044799567449929374175414474717913338174695225713031800704207966580777707371067090949679636610884143842600692839161975091003716398061723586978847300332536611880406606374581234058229121022993875460074936647400006850475858237521215142718852697778098730350727264111137385067560694114226537334000027985969634777721619646198133733827512211154127772204799997221404489389470452164426012683632012251643059154857976313249479275213180867815895010777898291102036101443468151303331293751539332861833956012944550322084650107870506762122174359431177930492767342815120825516140770981683565979440207801573625194969356020866088199785415919827276834085718497607321175990582766013054534393931707712097056592380818642186307457634551327468693537084209176759648222740431287080926163845325614085517217838575910232968492754971133563496163541679085156444385002517227178807402327385152298427715756824816107847798277026156923308269808716200652329225141328458168945786734074441368202824130964178680184516148374397824120053830051213266571145050953804355535338091007437575794032911826992719080556079354197713389884274747535709414905126690543123822130606502069497374119444298744895069327820893900666342653243633931270035744197870583100454696294018714534082419161708135936667823918912513602575245726824477971492467611753025130854995895979303129260232117437439834883338497585519968766117806441945695745119494621323906499853878257277352332566948569036889507696579048780509270558781107329980880214987376032097382688619631719602548967322167077262938397254859030036831033314496128742411255445394796518692373723456828513396467981645668904170145372717926073943822923886798119642982274003977506579012514673073333690965278291199688034092648758542413305910011691699271719877644392293930600723936881751370794596629987843840976793918702880325723008392307098570045347995440439829402989478989431778850804733398907672384582141042851654840916970529163647862512397155729494744782690768999696235777103387889379578256604267246890718274378608313437539096627252686681296324557030303297270723837039052647483349797443885366679826912997982777462225372966669966152507607701267878087014818637312305991272868022466031862578569339650022303356285463050826648512676091019445911666584101219309599998986216839620688328369203694516833030102877552505062662845824610193237520998866606912516748068820116787924469699495453608976486533811317626574561441840541632205449197297356946902709744091495913350752887712901387984869540581124720628875926626869265725172292987486037873841785640724545635106625679362699013024123125815942937336934486212141017584315297353897287206661531003040354472735523856229699402750499875041625179703319250302297262006071264454585091994596502085023429393441726818659893483319372290746896790358363456291108632118188949166307862166105549167893267125400625055448997385956883190923361424758707287608763471325180545709900995672738881890270321937537673968513909074777973999540945817906687573737551962321844612629292980076228411584273560669256425333171570355915357364071662495228398233481751556572479826332434495021602313561550307679643916375577111572048351845951251804975359282517681778626346821617017681934582129978259557591348725308011384248205127279423538098594042087807509900170343635062383755333161014098099905486066739508075619426665414689985965166883444803882548430271216003196733402913782001175225165284801097688607886151790572436411570038804161945722356597593488988901040484300576659326853966078157495901429436332766672691860177768307670447082412932034250923400624605698816902803795146203217568637321508252747747274362807456785380703780132190311411889340294914970692076012583769151699057988624948903705957211341584863311057476165980908134248555034955096237219156459754364183103407212871402952716207979713966418746446217614151624244974922103477177444481129983027838786495194498108291613808983604948201639910117339916420330323635297279326423632994198527693922711239641519166510476051919994060633879681211417129952090420321890173407446690686464007636841970250140874498394408204984304359351432172234641797779674872036693920531270177241699090089986336436981045925690277694899566624195791584300594710994426883495907163924609947871627911439073544899447518828455322910467534508711214030800807228305827696642814160912282665861308243671763318704672464212728413377953679660447369604431254383893244955561370080595479190825581886132955481577648824131694344261581632524909287396551053583595672153118720999516522181475438791464140791459600233822509460104883448060541737538956724671986701649160067175420310717919547043582542075713529191795916355640206728234898381545504318111582222763126883462243196532503899544448386677607952002749971195658310326824457180661044976847474236306768824331662430726252382744050192684478434851397142865398118379987191037325193284052359539151694736076158624041503014354982949387823438692230287203937498168373578060747312128983287769425431287012270720156100594121330482498559998746420176973434700555658601804782250437895829595218378268397212105631163628743206419154896873292726510600355620576807605042548510227030371720352554683682341889650111907981336492404869448995246455077091339402402658530460236115515528211221200368907135120746005437505533929531716926871880965487312598177123637582546034988706920814548644065693760372428292961194543567035084611892204325706657234797253875725116756243660821026245791908969375136252212612902669764464892928219444634727257001513622268130395059348662285733158793563109946187599495725177507745948920272891021385407424516229546471266219519655039526824239181935389627731825792176211111899184498067176326442166698961190931753662274616016002835980569150726161509956226947197576076368023609382127318102529807499009340171102893791298283844374040568318663365048052240644188694015710270604800752465396163952904630391766883780202723218574904864992151656450501177179505794992942806104081800283426496665368350080477922416111898774048482742409397307879709656306975279342292940656748606068002526431551545170784715233648591430526712313956697549546682157802692496607170034909875072288779333233693382098213620621845995946236462264751964793940286974353190824150036629979357266209952698038029635663267036143332801744428913137204473197994172445321164237767206033296908381104132366039563844851818123394697237024336071309072936663414947976565702212623614075507715449740726842271579708960290744072956817269749943688914397853003000168703209062958672455114991396576716724455239168681414217374575299308432420362606400756459478026361402531363502336513171116395097819203024964678836212643141230661322722844224106983876794896412871314140034567782894316661668610909816450185937982463568710892745114100079890508153440605724399799341154362551862267438001548713868742337277405686803771079841997570000629345591993820855459000761666390092155504416604556992637772239907715599898266708049116374636807365802271581949453790833138350160955673532401641913810361730661068317469008984201802575442908610387855957996089214338034395663396060315205969044193239391875016314113779029328612664202448696528572545406437818799858985439594229238377487848265047187873917407678517172540163679695814294589004274333669328229454034733034200306633723905454687947610760681500929076435278916786710244598150686627244841316337683548142236290523442297184935248812390932570407258790575572075598392933101208057026342494592255026470132204588240466329556866027550879970128907033945947120776518394550447194926613745052963869901082388574392778568953059045925717015240657344567626524828584991217835076078635342008606542519721002396961798388904898842112238279111446823793302416216834952581800861466005690827195542145387362028672627990442668319620486245931906958104439206728816618914305324183556160727233140186386667469690264815591987871206201190029529722794358276216599811936102472502421166357042494204831649653393670605233631478387089813719700143026354772371878485862654999494147759096446019243536884536102866197563561354110582670206360447719116495976666942656638814638345014367301714389158805595717751826227470671096605129548849051345351273209135640855443886004263622191531253408163411915710721383935444031992709920238599346266911201555919399626037941503009309162346929490186412060386206993504039078752029005551272790310717557324292049366022152284353434735779089054097277275787247166759489705452100604532001431738555307398230103180071121983471032564576883885424699558026234270979584670126756073226962313968633011759655695053644389935365986874731882009010794470877341947787724245522088157397221347346611965256815580909563358907562312739746844379443340816970943609280857516631540480796017512525317708602815258658271482106514679887508463168847731808683942647647946800743043279904080677948032984198643574552764825459830312767957963040252567704495688888349985189753163507944685449602946843409522652853648819401711157586565820740085828859054147684754237221359794063560622995603205645716675860043290222204904107158284869627512951251787881731507151497806820199043226066169468458632848371441013867305507955536361248261260313021796136025051637039345050944281477411206464281593817370335024552451238963658651587414932271893676034723596320980891330771701565822216947690028543973805966852781137360598262024227613148236157288073287007453403613240654385836327546399210837681816352319593888636311630981414755333200883184558804460944715377606720016025183675009309439544283212177706649012189797507173603917357684195586350220653270442862810160421271935791069173474395131351383050078452086126233922694905716594649836299344991229922855843129741285383004355258169638159866427454693427700451176408874822297655124096207214294235080755676224375147527778706459325527062175061364567737475007552292229016787531137763300344211761093593083423937709236325726586610242578600969340350227182503970722831223213990731014784349583785454395163559809278790651170868227924413273457109583374324392146222986615161156218703500630021383184754273994458579346283493360022652480391695721639163428629768201169719156953358420436290771194652619213744039339291717413123340432020990028288297165391737309932245195295377110477100158999273358796290972462648294086967240103194317539120323684153647939372822230337686236665525430004250739923573399616196631118455774534821121669817171549217966681488621537928810246680211086878520282131398929424993561824947799574090355413525579422290011763780302444667450769499437952673914863191374944492915178074356839375975602025520994512049639477832917059052431236405840806866269681692323945750527731796426762793182634440121088472529768930784469787403816507757041103643398127212125491565032122671216896012525312530478820777363737961154686374848742060107566195609453524611444484539365910778075768579297576300482498045663711099292640417021705932898155051064351110438193121664592954474331317457841865969243979551432337028992034500548029160129807440187293035581393970442216419144117920099327556710813829942679460522759976938258511943264400955198972392481074733809726777400546046656149221109254912116216508083206276607482089525950153087251415451584372352965079437522197659128452825703588906103968330001705637441145370538234122072532502222351448440398056257800016779328063313218163920828473149580914823762106510927713444534347026205689206846701634466120489699927306930144166881750715479727641047916181695032141225996839114902061138028715382132567002113053856742095232991381548886958239269613184005779171520622157588483112565124076514728567452522467862559915587719434292570626467856385856809290757389275120921843525138593941726913631542658072497029705525723264715071835167292511866640358467141837561384555674655134397381763286299488268204873583722864398981820159129907138118120247676711095801838200018637295738842559159703020866454991488409560169942718285767743615506781537423008449609432796028664992922735853846718119412066025635626875994082783335052679778723689579438897003559303446987358675991212913119560698134892205240821647709596701306016478103899360053413494935578054577558435650483540177175882087739079665516727754238677095299279885625233437081391498918048112218245325440444831877961497974221881369754468033588200758587731402797301471954603514105497856618354093462915580595235285489460415288557530674039037572600849730233954680004242493121015698167829913079180636177681359343151333555174990486811281641362937190348848706111601105363957902847015940575355939209970902695022342376668115529223075461832511973575530413347251905816353233080822302990032007400949423469474944562651458348110437273075007247677156240548015618490344153524660830452121426373065160724792962091163877754776594650341315247353854398764551963649076272804538078250588087794880054286271193164082776018353054741160768659538052055845679806716822766239174699350167247813310596838196895500367351501338950645957498284065277427686600218232071646865815276669557091248442908664706805736056538255285466280540264144178569817312627764680032521568462023146376483602978945389839175787929363473657793140426526658177627213971516563670899867124557243619091649225944402312410655177696196792146286604530127957863766131657302492375555899252048523120393171604777988819373755936688271087242211733271220901771846834723204164146642676849860308966728564156639182919918741452860588461614624915673125142960951673775970092943829514410529953981719957294058058140993335404030340444979919192112098353743754669212929699632594222604389203935052620028413754725000124459350638527784376749344134814756001933065310258426070553425938034258405355614357423292672927478588744268406554166971286302908443053021838931545639148434809075296729125128375404538480767414720045182535787522616992676800641347989343208103647276508806819540736736762404970861024676899853941862553577708343018553208906923455266741192348640641338082738115714891546862238873196763945411305010077399972613173404217837600725804719248320678950813516856536656824292322681030294875958672521444218985369129690474187238054481901630742903564705254032454529995554950623591618451455045656593217255359242565028234627002955361884464307619385343529408845261598289367070590368141018500618632048525746373617437467849396814521899469385521158444255452040599672970370874920469002813242054486624036004991568757157699735230400346741174263321250976242234612334336961826486960140803452152955055389100552435258347601150215867272909757858398605657131073637684782275275639663222155554961569829122620214542358482846754450750394573064096930834602496848890296653108152639350596059414197664304734299745274599883923531331502621300548053390911656285625686032793932315029085331733812089741849189154874254272612062212469643387959458408832214852099297815425906787650103951955556869878444541089028414251718241967515005990702224376340232790641463429533726915403178030299921905267549550837342430570109159961491654109617985654292347716259550629911717112822357736818694893266110565152196740159609479858224266116172345614850413864812371086213461569673370158900010950795511625437384957007453271937884053449424637486252252949447112497684213863258133322526545969983496459764757525079125159553398217857323082778819486537615122677701598655572028515490737449151747308007877271596541375307683405045823922900245657934171560033493016481875776493173306227882643177622526421000817618086246513689882724646745930809967580797270041925214769115072462821905183738146819989884994787881252066161043274958352939534184470448450037079691108559045992610464330419680080471271060966006664815150198904248054784864789083287711305906510591399890048430937842101763920992318231029104641150439426491309011963063487207194138735236033200090919259265422814175409754052355170367930085493102722294160899643158772000145821596557973607932516428124864593012465542984419289290772255089404136762172677709364696365982206452597888833552918120897779160117369855924034065806876824470055021994556477639288496356239572539505940855028781361938422999654601226451464526863402937557255820776992336445323424487973707456535123228709277832314084969573605338374651196867758770952450496878174346765615076512010124915256432619074440707934523462993716287871957969836670242006756846195568323482061027499139606307840680914847908457514622816195996224619801783824456373503811999527991614681887381641598190544137115402037890641642120988362156931247766874142518131957397119103150760380124001926018179992584660931839542565283272278075011631685804093219388672319688234600761290928198927126638700461127185993510864219907921264432911588656027583409047288177339419750494065374708859664630769113312051841472953467230147909943927621213209121545344996541618558327036557299349246899819576405118485667691642747151219261796409914328328114309435563211184292334490942768834418730375779734527442292365860003804115940736700501808235004726758035978493914930455476944831635079536149359333131138819474802011767840356922160622674443886118780963425774041006669448426135432564390594321990555777415172676337955113713315410910710892404474054953646922482931099064026754133906763577616727160516605523116288260124653397184424698926284218425466878448765326237431867902420610747673433631653712870339868256947654551391964480465688714598846167478947463498477792237165873750247535430301596362827985857062508610678164803984790294952540628137577428553660147668412866554939020417431562386956006533374458176196985996239802971654140849812150085393860394786303696493424928351631651290588484145641795142601721683178748249349060355770873165221287562081749837698211103305808777477288755098415794137787590180610532993874383474725046152450387051334037328409443354818211219538834016451556368037596513318118764135905339840592903578675508563117866438300329933778579858118446036591261115882223452720466295168618150983649520323515603739316023893232680220571969751405963981177130730763816503741744288619780605243130862543741258846017812278243800999367771291882439341681196495481651086719889461751071926117388561374340117535378252223143299934020678754657691686565844454606597488682994311573074819428967166845173742664069488044156548930402727457602543495538937986662931727879715289416237927943235299015557548230309469568850091462081723348667249373002045887376089031461526906987551337178154766874928354571531187359670716004446636019417031503771349666225277543370962696430061576334268250399682000152690030352296971193309373291284917892724883547433218798661057768970734676300772324458227384566219775480221266863881082101263949089847609469297719310240266146553364342476309862031118972393226540493872314805005614689124591469756825736720368344720733803449007440540092356477147038372394067337731069933674585696292515063933143823065880283530578502835623061435858743794031974035973077730424713761765652541391118258753688387768979652280500896412750947413458022135651188258781250381645368832912784585390522632126612447521782083647179789872367901541147112156357789866841400483381304646941672716418304360026486685403058325905915716690959424366004650216937153478955740305516700508311517700136626209436369521137132986009213204901075249998949850588040549567679994289960086897582979842593543081531347839949298403768881775964182986816002294030920228181153877211665419926158483120769369884271951182706484211493661447638228868882799714350936866038119517508713018967278817438221586695956075350225641750319457705557694181945962163964414370528544321582100911593370100890039924906148893313688546135064763055234570904588168905665058310277139186376421864850683465022149021220205486730214967221728690147067035579580779103863399768571506001179257156072900470343729447318697308443274554779103833724910549669895530801346707360790246077142227987394170577000229984198674306032308124685998674660327457455160848913968217284257472893409792719603601262444860745166869682591199021560425793938525435735930192903093317189519028388872168795027381336175368112737782891334725336777007128405503594140052417167775109639263306527821747087093552980606457325873046567731429166335846442338389714853429832132626289425793236629480860538529145743173219714301251818370650011842548754809481034979004713885669720200353910703925313319231483984274756739529423489555803096646604328915273062975622125388238390596701778052178701412724921682550997849931865676803832668757660970485291675176463059397056246728708074029722331123745190661795329024595210129576254990392573036267726105709498397778972249952428206485015504688166022340535981626006459653279308285290078736837241255187686418792792649190655986836666366500573654864206995229555047690088312596521574072979345850875554642157730224639634844832953817467561705108403783628666124816092634031893000290322879547130346318018762422201806346747699347754793205031987701734591662258827457513242295406245854032495681049022653868812533421244706850336601141275438469864186894848797586115511359795453436419143064133827143430868205170948002461922044878142671171534531452520712814875541809852674516024316036013148919741662579276195862308175245999851176946109046534533342792332929054837589156662149376611795234794838586391253863952650514924662920759335867091642923858179351506215284756661078857174391215263802351916170192827259998591840658987375161247838658666928353838330562882031372420216919883295958739967611808434791386620618877690676978428676172635605849026736648541925519449971183066648304596168968206552561056245247689851501103455957095082295762101446724374922354298213669856902130266919964234681534104363818538238436792884213898335734930169623375799197884361629902238837365951171734103763439879461895743958659031843830807214890348444485466974826657535284630746871255245958121675740523865641163062894468924979330498371481212961612564136965185732666005663360073849742524727091216486796454074106656357961578672586654951859590731679749093781782249670356125951761509241796101277130967621997949767553209126107943902306468368113519665410360637211800025846295757197487702371855401247217173539593022089537389008985183047883881979688012834557563594458829638461971314648854791128948566942488998410661244862622803213099396157212324791431896265513720269044444941682802531368499101374806082534037287489365013581660426683701114818330642717419818557596943405038197025001597250490903250220103804897477271109549783355675820227993218920413402827445869381285713210952615695136273353472126403872079859446980480870793833871565450163824818993451264211251031791387570863279866786912440620569920701904244710564519922973118069503902745448351825106398844484351911826853286868753942392641262217405845170015906819015884590903931425264716442872087283326676340684886646781973054721742760442080323910613326228771434664301119405671260578250190910587468866564781003988875536065390643173017497275273257417939954080273162071862757216143984434912225206814092398878090931113605131807898673336703828684600509141040921425551578081578921507585958307525854807128847552401132536050087421744213381327822703072416767370648027355674042609929190877563061339319690511335634601095804973448640419180998750175880849141889590001514400501705561785437584536819614827924832642158992102591226313452236935471315451419691879274283804111726256231937367990173189923672772538013170063314252728182102404043504683906445472200311748518730463645964664373882043926261751199084428486866172216818877690049465754492177127715515910599636048502334975979455501568644569012196151008968660068756369241808374865407439483254679573461170914571146457820328915100415928432080970210491080227616394163975993589675485943516104328482468653053691022268601249779155222768025054886190245922508334174773048282820708167060237065342817677830219430217717891194357260238524785646667667617123205811099790606886646577076274876491801103016598765523472426634824314975026685334974853304095523968030997288568256983037195971912832182413256144548414310096951688157670856948859076746362246454876059455619257326534997137678326550922031067422148478190499349605516889962976615882654467193897063448768077748858286899128200085120562053666016051377538821481238935653926308295890196970671308473249186590079815482377058219890596800849965041551577974480944313299167504069373620201360362958932190394464614431595979570179035283253133742480197046524709563808446099386375461303629710143690252946961926924120267932778482665781260299945936723549839777955661512412659657415381163734603582521194774006420105897124902033662654950968545758825412472611301042927440180420738191072466858680963833771806900198430658427250623554639442267320608461032102926461564741138183221923816379806155422102669769397606485474246399869694950104020057120129619645023980280631114700962036885438237753127369581820163526891867320250553289960127130757353659363403526734597962117554320083001139394618127078441567602796230490868855808322562292043248674363511070844827125699923780544503506745632065186191407991488933597938079540697232214037526869003369602540776486064402980495520020872260026768781509384136192447244882047490649675130235895725887363022007948331634530699459946117382541288322241799811199013392796195218634917266286961597512236094420083412574480254542292439087014173060828898163124865243996427794956337767218245695842580010796578211146314169619386430408798745972638917182328592225856177598480306959227542249270042200692990337909107750975955147873311748687321362186026571752460112698368106768254315608359283424688841112132574765145389764159666425220528069272434961696503965795144331579546791843565948540811856762222644761047537113166390240411736741272506554265727013463017497264305515019415573053409647979016168188118670385308997266861302846484484582639841521074953167923353280206477217243125632151897798885383351405191667088308728310780848993892280526241132613432311769491004702633563101242763346328072172955767920471630312405222690553110873461217204388105913855246232713532798161851352166778609853221250742965107224973194071873708293669261719867764088881826091285962244189955939914502422737052771043788858875361864529207604694239820736060645617838177203085375251704379629300740889278652272038798181103862827706268631984984633574627883973117333326260056389897308439057589178295818609660606766760189808066260529657197949039134631179017599484534618579851108675488528800607638394410256989900658143999218868770244484296463672198017003171813667419802919478646395139943043312109061910572878488907825206820104985266025959297045215230393626060136829485566077154416998701361887649633647433729025504699494526963737866633824799526754964095782661511330207029300151142987642648200907362952389661924807656188168903293913234880989531603003242155536565518660299542502548402081967739018267853856576596896571877579433863637027695982270700362405208048373863914868910325895614460944940583271763824306855476471304318799276437908745393067218082730484908587160582540909102662285602554199615959992496376334731087176697188921724817335808659390760162677948727585166742184495144744993894733354341421479866823981721383509848715047838709086579723001905400377928513786955994245564992145139715347954337290669632960466156732436923527332564040157629326442780804440912182780750085176249860809994777898314427921769467071583092396456057236363956594212743563985521022895769196391246581097371101622463992076895735521730977526379700487201088170389783500020584353481846783164906940282742137417989304171554843355501622025222298780287950845555370748804414665414315654478241690126298086435550685712378149667639226435596011323056052429602422286778038651483996744939365024722512800354002397139245988573705894583622571292463427506800644407514903532747535764217308925337872693274091419545619032438405671397396884463631978411908213427410503333106008550190402441832394500191998870856304018837250452356120257258071853786441235311290057189855586040313894409896736651686178636094453164597049855901600380990540951954632390507413984785653125663384707094985447808581760664721734615682181023748142146378131637663081037287968126863055157538994001635941404560608137731911111334430360425623463542639362652789921458469905452728274385610312122368499566347566868389910992189790233657943930311095978724779968150194241395937426129861615695575113520688044710550804206686881222357075837504697862301395902769874828518158600405653592382032491485193288220654343395626525370029739878827528346391870417182063955414261505149381724894182387112275540703755672396035361061731930005459257668834857986122308660159352614161517734194139606774932727044857443184106817319381979859467695147448197604717592275924666659726580708692311392287879287704935382945840457540918113974446922503750520439685178973089733747951503927106663461322702460605584983136527041668951337409233471414808248240462950650247234767268804326750642442323516469347172741734210442921731378191533583502767632682322975255581938324017435322915080212036934677111018720258860106053520703792561911792762990297258548462333066420380578711832820662665382918095291068841574724892847871088643514356647547801023131323599195986146441817832474439551316718158348882164357256358267750246213000690342738057737416720604161797979294625459324148609593893247708106840959907007895652927197893438582033959167970823725884013245105531701771116607402662466032100596324850784117808853315516472405065918704027562099327910262781238394571188005398757034335466145980032763047237977187013335821997646990219943903366512525288947230490340720978900243710840417342618109347071983115846667460989940530446115824082629233419822603777270981661942299947093045585093190959262943939640791781122426611859808560140371001548872889368756454461387323603144601352846486535056741248526147475181920043671053898313773968270747035930083163481464734781462041514846938784008294402068912994324492060602498654349647753861790243475541319064119645603217162860434590438290698923624564592991770612577779659661456839361767582463630129811233466711135972083997344953203368887324462251854311002894756650997863559273476527100154421773291717111877849104066387304737969718899105912153023727895611038227342642631611050948509400185028264282575529607212112095499479807268758339883347569620777186520479667568843150964259112658549274514836364255540515453032810904110886780750005381873246365818836676416726129704563745779789140205116498672359309765416143805232144578404938042608863235865226147338562403066985689967248771511272241179506553414774530202865358671930910322611805046265693501060346262720096496579972353989737998714380331697210295077628745653287747078088206439591745457688342291176622272476826898709217993773911170196779305608008292572013974167417242284011595255627381565877245794845546801524446182298986799085944691448649970781262009616553270042920474401158688369827376186417564688916510590593991559129739697304809423848483005186445743944988991371837345004621977952210579014983573979727896263325659082144561921032952760919061215821604486644318816211201936308127974890554841629605919310617578129995330817434071752404716756707866601456839375668080955203090856152025424687801988015715195143676661979359979955076743834530916876566637220240637986146792044028380705562024744946306432464949701312798775877873621420882751982168203299430751165853324458737061274152890131327055540129643377543932509823592756462595605354848492167602673906152655103113789079033863537823475646114649551706251925775302053360053061587879238068205292762917002481788359966418141197066752673345060845037673279941221063600311949748724850939536745448912182277896619369795691313647512124203914492202382263852407785973303680651452874392476777794139153002713343224381448932711719032232993123804675743574283552352220874202530534108696548315005142601204021753715769528279629586493858708543037767309580158474417057514901394711821916381991305395008826985865579726766398082772537864849123356501467731679375618816510264453235455341469029301013182208599547896749063979989194962326673066467812331457059501525742607251634887314407736476142164965228109230982717503040341863438395461167847979689507410016502376748197962187610681145504822824527408683129436626111425382823692043014150425518296920122898485283991492571251267080125114771127531808635978698832506862369921826434546870628006584345612532936254735758756998198985796896627678113238977751192319803075871441770199017198591641478256194509003078583084817586949413436613550135253058104906632688198050452680104863864782651193923322322456938717705107399458944872220258158026829240835379173469418023167195066323991174675919466342827603576352517581162542226960782259988711646596526354636648189763940497834549081055139662884117876508772386492157433370401406646207307958276201111407782248439862681033555232252633571935510585962707986554736120829139134184869767950125643136412792135975667073616541836286250093100864491517701870363614239500318710120926617793502412368519658663630807273198787366346190520350092168060134749428410162430710705795122112785602846215665068053790225738744607503508764109474065291235127083170921341147025088594466706870873575321046907918522892917004139659300945605259056953155853551799635657662188813702923407665171398380497296099070294537329363375311773117267865002031127790279206224610665514263762637038035701908742517618692899345988555136854429428192536698993683522245716301867990516367274865041402729390404553292658795474635917461310372384838717084575392067401097965778272703350798872025182537599086403186599914415634076266360399627630628360668487561130020188995931139054215810172842684796284325678277140183129427759525616611360550441304901464966884978121040397323012654268770960740540559384932755536222481951826768258788961868817026612886125105960051725744621581536041408669680787015430567477411738667033690906660760056722783963795657416865777629413835941926500734297673269045465065022030794119776055602669894159866406715185174600146437177792683020417785365815398763549761744704407869088878150612256505199394664426727899794300317401505168025534182258884136699868769446867512534051669584014180596428118103405862680994214827434380349726743648030263948890986555365075944354611425246858068625183524659548562511255893121666073217422612187751841306616296960964499661631728493706215564092325712369387834894725272486069819117490547764233677563281017295269919898618920777928102238071945514510937959288307611103047592841178146758297624396788730870697794278457550035307824568397429317970320669817105209041119873257520012716226180051458121504120725831161619035745922982716178804579657937171318203623943450682145616632882260071918591674370713177729408754932503638687724357057533304078802704363136628402030554159581968025981750386206779355042891754293991636422995721193478137462388395343988004633556842799115046657293175168015481967315489904586214631983669012426753554426194962014405631742410379758736594477008702996052073043768027783369661490341855812956511598396290519677328455908139992823652766467501803024121721127284240577661635633905835770157666997319447296002880280781378181360931498491613082795752835871214861160777328495230598992466138876117621202850876846639247283889818751021514507790324781034189160153152369062740469522300744639515655129241614153688275894914792519264421925475826764863002578553417421544665693724151361557323423003793887580873414726657522102835091871903830608312989205323031853371882921255213804959795650312176925172921453277536673262099044852301555581285794600615105948779975397607061014746137319941634139369484050207631743129871598896277191674087000609110578181567013502717945297742001888690151484339613395696827943321113235123020240933617897248509139361434159628473554370544101126117625435497074321538843557947184713292233190137884076315738834146650421701138056012499650370031413855457207205913600376376916362580196713276330673392120542169206081515547845635417852905955046384410088121078025770827136033085355192132274427120015344882748231775209963366818421139086839556426268129899337280694628320317974533469105960268339026817459264115040555669329684548665698078749455459124394546840499283602505369174870653076913450531130318332957259753294071536386298476530717210623811545280879123943625343020324446555805729160804875872528586849413403129802205895076220645473729393415389659860824681033126874666012378065366558681283174695556203562492883469144464863748698543573281606825755917914272685519138005426564608873297954769361409057189166376125054737215036933045849872327751941196350554390551125648861625698279285627486942110780502098963975712968085620520395863844346794766272446866918159469762451516932706103856531700122277828940223472753700416754939994858124789836493644748394630388217898918998256732413372519034934423475386079680195289494380169828295835372483093463615805483299425471490639592482154707554642308243038228263367809658412288677403821685429821136941974803907619353161698824332961364567472688642780755817884628778804574399889956114797861154169260405638130707769675032425308044280798810604996523902037544204875546914992709960814778252424659331977892817284412093428860857287058240853691605923751448769535811016325834613872030083207784223872373708183401592714552777255837802730608328802514497026322987890545965411291083017415332065021225295414348866996089645791916174816594062231381681144578279675539752502872254775427257662042051219268589250248857079370945916388938407044943076194141022458214261347052238813507206609922822374344925050550405102389133539762601048023831086758204075273251044526641248052982512724867759756007141875521881606467966446798202432181081185112636092991511482282478769170139009322087569043456354291622234744120306954192875730653181820764595705303682689578610525362513397616837971664209685542305233431463229260703283999369044834640361531599782468050014474413818084281753133853088552923917203221853269066129340264890402681147014907954716276778648510969605707259573374707283157742857043372066327635999746840444005425084299813385628302594711807422539597535148618810193768112339641694804655285137229708377834501365380605512795737682892112456987063967252846557705388661840641585142712223661394389023769266583018172160291974409360299345497816460177924814276167430362296291849782512082149084299042802335171136093889469036710781238759831904601427108505693641478550374187553096060140403884536460790965071916432736242332083717729983009872841241610000291804260751011551603921633055614590601344481833737991318631313600420941419399493978859102266448240165007439982575394293920121321539084897038956476842251224916169735734637776171032405261995043253456878866039000872322008421969758407853663226168584756853259511482897356122595938834983414231930602095515700739543732661219513047107875150294744301112481992744230335990839260419836115677979516384977297638570649141333006571189446315596160810895000313788349915167982595528250055523667670022201640518891026937066228480663090864307560633383589748066208221002028486373031508178980589260538558793723246767559627080012659102281707461521235680451861511017909948268337707888676372849009365897363610264779048167414864773915898087794571178809370317088748626836481389484633016813956453887209882229578294453731071699498105403557493791410880685149489392540418900341293717824387275237451512536289847905980197617819919216338924780372354885307743589751514130303624582657841489566390349369095334547238963400586048678990246658034910214514365318286030988768552277680201037497026774156355618183953785488048132259265058827988145390186883952673523016576118283030824420270735066541123674271607019596045409873041455108126356274991453060071384854671298343208169286364855330328277288991705231530415455438766371028272816968812217410296432311976613313813216638667067818203634673665033966188718555985500931525459898214318216200456543378664965568203899893038789128442172127049426096422285055064852822768248342718120447912660631332562897928464870736627188257782814333694235728340397757261101336428611466861886634045463363582045524883863482022168346885528470782632468300049248149197193405824037492719549440793578784875380119033151410327854837706248441585696265872475689818043542043675995237113775585770962657876425564671053794502795084084035696690776507766082069629371511791331228001876235178825455769042621128611604526151028627952448413130570595631322723670866717432236659177819760488198668745808857546453876362241869673786607636051020736361697513935472620374763638037971345213442201009469600606077134774091927939458816818488548834811733177597435351233488551227638443647129300397722411988701298142469277560134741656220483508948433781827756970318553163408201342084102654029418383976571635650587100631801965349375962153250813992446620948209448888408336102478184000534675560455058660608615000247060941791359391536842580154178979521171885131853510122587795619570523647755532378593003056573581864643464748175850142215932266892377020505348266143363768892270055412068002049485339389459520780468315487246565240903335803965693962665056887033486357415969517387361708673235592567026801654365036339334746307989209864569280330598752460055127419664222095595138151174663294884053641589276297529206065167982702426968480295592283431875233106910031767687898948594500923754503432082060621820755303042738939693440283611714471195966592460039945851988705089992355527861422772605647821379135816012843998702574394535489815278674518187389883333694899031192672558796351462322762492652904421500116645702595256685520343009241575652335235542757654716175828884234597019138604113236360623315949653688348866887427584805720166303698629077451286049351768807654648008048820006619586123305017723550088786051708792642065209148621346413538677934524073669676450719823047209567535861939301517087229995603695289627060679558509696609894430097268716423390641523235102832746261565554491092200346432660511328027523509425095561164416751070011078224243064044439124705737773387688844757985891324860684046600785823247651974646925891662066383482502734265417787905779520914643483773599620309352296087935231187703028201805966480747980836975097512771661566440029531721550107214358512045742250420949253080931830899028706142536757227857077190287124441399937616295595642240487950468926639315128196677093421735054230760528967233746441120178776315490383539869039710699060349689591500370218789174610562628561021846687995640708397003319744816779355020857037126659450200008701249170634731862482297055285002798403641194812976785514561084276408967584459827032288478610969717158875324493182324690383747723940481889599895453697586170708288092252687259071532429225567016991238755746412750276001894420853385391742972295864806645892417776177738189052198587944862351919120193600338619788637011422629298311022029404597610917340129703340365386104813678804565182213376273338340668202219414053699515386072812979531356023837286076325954975341305229685045989845738927804632134100592177400036951449556135326081618419837457820421032782964085624842591826613507585842045546457514634086934183130411340212378945186756840183413841741727215322701361531925129074329696190659558680804937552507548022105355209531303642036705819048123546778100235146287625907129457936219179450408490949793693962889337796349810539699169149215780725721298119175679623039533381137023017510110897182479873254124218703451420832879745076283603668596838949607043728046434688988956414097502062033215200481883963394485858799311277983098309403245782979869038421786246280866690002239292768601385444758860255878942130728926940152869149608683732661649315278292928392293607033887273932176142243991863479241182541057640318134690021810394773606989817295578247273620552468231985942221883617773679445659869828416216363245104333828451589555440866449804220382757646565543761031118141207346879362909161272175874106902127461905497769604671462071115359509092809054546812958449196791613228399689593141160509341632631746122158531608341955483199894332817612982880076129574995023926041453647581759625271652311328238550476621978754082306566658983421947804740004796694315530318283042344207172259471407693590338866693434365868113761440923780848978159520581548917577711610112550375451938557988992300746615088475506662755215481035456287618073111393582932913701977872187893001017819311832901506377274086383376159348045121864671721747919939707489922704414907633544883794993324351761407124085084048507075338781865756139431427906382707835137046841678163145977441994008062663387287041363613891970337292044560973590070024117668966258279057509134119755347666087740981041715217174910385906481210940711738729159548554559225023005428042823946750943447307041090689692560751544898444324514274293243697259415626082707194487170357773162795122516070498845624679689258584027139235685653512310888409601359576078417998659529157882521650102983365060822040591097091038492819054789035756183660637871798325263180413199614793769750908432566503512182708752320459546498831788964107163969848048556992977425097701516923275934873711284906900078261217437765563072104923177067541477304696089331310399280222265403955663012383710454236047258753466697341139782811611911581666463230108900316658000684062112065787324737197857266085252075519217199075780902137991669166015732922249579224280430636695750818333001386444752252435830438694954887655262339445032766811035228852973210014024097008973458656361010898211168799857214795267100872694879615140856269548518026786228263810129752234758500846816228041507636649341218456803330920619452683519131043861625271179986644696578322922179523867336474895001539430824183593478574839558342076501372433354868005481088169296058406163252078466554473945563787580585915297191850180185212132121289222226843442337394921830442053054260399590718602854428378823424929613541958618971160308823479091481645069483680965284851906448951848739560159946852004148548746409379161440951520434593323110813131255952981208040546108405048141613024664306766779791603825471947783816243475003922342361058808058966612882381662815852387286316430471358302131944929287267243554267736974141895866891403493619775709526290974579450352008665419249095841825760225576728535285373785400398080371644735805036622299693870141550261005423262926156936615429800687662000090849819874951657811048208190088781834953486371117662562645305845026911726906042147058972764158385709470505142674930974609737188739706554634568922261619717511196929001248718989468880839049822547018638039198512751591156294677278070283924937946289841126737763634937679894431336068833023159512937085041615504982902879081559896042121324142194982131138759042857180118343180761079194937098124560422121959894028849959910926455082719805727070061922978903826329140232436975452992956203674400093212363320589666925040408903543993573232909495443352611193686650548110211862762962500043164619393439833089987993236513574377958735982105333589640330187499035430779585387646400317206780708180277345792998094465507275907864905694407827157458752816823852936641307626734838330646553149156225842733365606309224967371917277519505470366153336803506460086787322088954335169314912704962756860804381227473081193605027905756861227436963453141373686856940637695189188242468848203641435847112757972731891079445234581635182599034204759332347427949621833511409997900803866158723717088429700584859787677583211948020200217689800810949267284324136216261169513321472494329054102067049709316017520002784678878457487490174377076397476679976880627176299127203046997588943507518100359910860767618342478994098787711862641304134331455809812406690990539109307512660166710553237161973097320096319487173892206636718024862567318893583285974952390737886123753185741514198625409764808184604157242857212396783160070404309097748599540724810884037380379329006756190146634072655995359160946969827462668856665019133636646752724658217779951607868220012409673553083485883811678769681011210398871150088127506748958643781227556119500554137128349207473210011368185917286317753241625714605820048797713422403562608635044367385321891836660677666042591923879098928120381193776897905503915773387893486909837634858600960639704199071599927571560796742660594531865173896469446858168924446324014961384632917675088662748017991257797131665195051804054829420513023106165837977532370235514723035697592285447189635479841175524625993158501268930322654133939238627419134841134913381155251603390092366530103519209866733061326964192819509985063979543299760715224848036600446387696535386546243445635363664017268134907775927779486783903177667608430279172171447249154097966345992298035847090139038485334342998172229067078812873158382819309405182026054043151094825113656636687742578903906797664024155480038277133799126682751139939975548109031091640281365503640901076594126718162755550342841088894382893348127497445573237515546453998794722057057039777687928392180777845316827259368772328842169766954949845035746334321413617961175107089426218622386759298780734058449344192432795318981159968927952538402141799135446954834913510873204653893530322735395447380748220481122589861665149369319964270934486818715582390066591911065746574266417745847007659535982119236168045561340685188536796856249391201760894847637430954569682302356329616804702169299329442341223752791256725085353175747814310293006721682962944642291082337810077765383694204276093787584240787253437863829439310837663505712069540191365706256988353937083789698525254040320051077046966370803116645001531153400959404339561416970684720634725368956514855140357417981198986236938523688835900633278509087883822273429910016804119832865005423461608888166515871428504414925052431095243246584585910749338272917772041094929586781357834300545578126617437220830501420402148665976041648951250749511235988166652999205155961061864374690778833984901747129843945301237552012591931293301122654056752537563674355693231704466788588258541134083474228195584587061121075714737130761322435231416516773002938606228173457430366476265089995751211005878251030430033922006377296231972884977692727949997355254164987231976334682407510052974901781336778866948435337524057994235293333801237905984563649593254017983428452823104708149547662804092882796279224930330588789318202823141267269295573716129872479297189631374468520651888532950621275050488576104124145580761561149077537918464297380940409160824080876621670999000990009059768031019706825006017273223211067824794161551902765950668736503900418555834694399384684747221464159068454908494694652196072541978537209672534072809834289527239214040486188690393958649907718011386125761425612997513498623118299038213653934901200983100256627061880670393967148163650937982691582486929639658183054456867435865056642515309447387131797208572622543890760608707544640460594357299194925507025579826903087292595961944884847192662709058174194827221339343694625617808802375902682848876115539624319093459870935649929954899230971600316951793854851829910205967839883405254559878452671016364479437906980405866236120943511634186650020015502525567847597951791192207530935844758376793141233503260033494501956664524811938166687319233163285776605711321017753962130675241024583031706053305376722972104517339709258343626879725991200390676630887343330083281750397716742357200998357998859663198003850804613507754843542030735535051764153050929618397773463604188813119659176153651722619976836947189352242473820133565363022183649214271592564232761712409003413682243835357375433431089843565102898810851412650670357055689952977892292800441911483162435883983828776444247957152871713011561178527435580637331607123195883447991327335041626803570568276103038932844165637406346283954290628926943561012478229442894312286590231385552767763560506554859747393329465430947313884611533361865252840092791155161153564882321949070730144659531154665560045584495602401865505471970667237056322699401607818734905646704974748386217574456951262064887807447610323718457363896701068189241130294148650773439958007432669176387527013103307031786094712863573208534572567570740331532923655838183005716081366059826756260191329345054261914562025857943091371162387637459430944651746825634646295409141166959466524921922526627817180954208988482791875601139403340656399850797211354040427473453833532856961949675729312144188114934815165518498327564724443292731555459926611639873662132860124737012664840895416092208209246785862339741677963089391290453192948127636121151234602506406808000779903812159432868700215841698559293815705593652711479669083278819614678989363477462339623801532201613355528025573478538546392727798482561938536552348006526755742118509891918868617765006409666509259105911516545999511614817393453507368206552458940604769754423629195673932291974547558586272859861638851557212782921299958015799616646138393693998555718297847248920664206407121795665823916416633037541092056226906785820447330201790456329757264783682185040502848308122799558668289390717420654502455670489215703961421435384296868639149613190671090884098337428352343637586073778870962708300001920495337127076012295363016309879588438107643317764787596474643213858904836813466260450690782161562978379445892973100104749566562621662191761116091899472368264122449849579514421814315334558128557076235054283936477238836004052932053694681433515486065386213223615776235462667507174862632332412809918874546038865568183774201442676711012848932089170485234592692797492831992615605648720614511871295183132033363118258462250277029083217764349173342881803054176340004135611407954374493838128874265611282163635728584011166521246177675770733718808551295627288626406775475139287610439266000405152381017851385740253438637111533971892155761743343219437374362959212042376809293014857764953699919586736552964325510109133041080070697181315152637529739608530974535663868863022483747370671462643098939283868016557504423441541011473441632510301708400336240666009880942508794192060967010747914167948928920365138700962275775082744673946760090118199841340326670488440840581706932506593084186819255984826395045520828848961477065614210052618566736070572417164230328205414221155381106293361604355710528871269779967962940407351150513870939557176591540599738721587416304993032039136876374542927920660710441172811789193889139968493697180536263845075730643235961323123532537662777018478247673303103271485384256578815617309460929112313563326582863273653404893724275623786765918587698685086444359775247797212350103014383146732208174410086447092237909313779571465119065420608092150476245965776903902371611142055549376960671976628260649304460457658170421783802848855724844749000407940073910246568906474184528869585156493210219859672290875790774788175413213616888439091655529399577910555770954546639679233303267710896167729573330437887962749251600679445429242095681560716954520475492943318186144314638916720492552158701510926370511722047304712384925928538679278361200169400687552989798929310272185898068911370088626556801301545244633657328447185284826962775007256604900070743372181658757922560908743599027392545241054657298713171273060714276212494446525114125394843473268778454543558695063593358082651034375032262411915571864392100955155496912013062969669115435514278833219229866272655789107845148493411593909418810447087308973750177156195000767014450864941400448732697306882862444471246613751012895290248233919651117443290425418698271759471108628422221760497913263715848331147470676498685674126912658580026236154288162590886462822150781426766959440164394431956803763036000413265127295017100657214364386561642363085087206220994660246911466675175166000421218415711313673710331952815066740782741382520719185777810908873106149972004651587004351288575423811309624315715803218481904334457639603074026564165399571040929848174497797759863878414272029911966387613708003204070011665563861792010960218179874688204915140494197239251388495786966205361671345243606086367477196969438650768285222769745665626264338736178255073173860861632025108897721498166764466859528916307550864995996891067990440403637455947428305832285597083377330256244407553302048996946401389516569347241561828204234023918379051005504914945243250177741658229971807800009488959481683131816676833396651889653317841993787423935308530429233579647182233092789299498287998340340667781235196443043160974202189344083617412129777310218759160043842276863263418852326041111223137409847991456825157128181308746098638002485610967796262309680461062826865507507119545973787897311421098424466469033976961939246495537988406812410717371762232556999377256976074411327295057333063661658554792949438146992021823286627266648712819129586015061793703047178602398072690546652675439640561121358557262656348921287266102574656389401435383975860241518939451539881185342752446860259089222847080486508531811226471272736627465551547980270551219852875005635344390496932611900752823251813522095221000199920739243402841333341772259848874178905278865358446331262610484399156004234425087231000206145389685626488334074021226959844855311271356540453579812546914415492940968856612722453025091087936330745864501007487716155439963530963945838944261222486545772935357099171516360913843169583741177352482097887835875155340908113939960428926278208304949802104352011177459796394306281903380130746442869668982543491745946344754061716547296362199776512817272634545680957018679152071741618386834982851223716366683002373986184346070427918047761588069618223942380845125283343388883361777521187550852534576213323708427370604359357665850211624796806349800742976488495596107342598234253822432463811737538088425293379695202706519125186037685613703704036856727489016748498886020313946551225179466313657950609806479459319313346244219261202618484451053700563124457245734275950470181448143207613535728115793475393773302688988668850129303807344467487230540263262693441157679416984198216251648141509692027579671772245640067971134697201235666707450666083247149553866983098368562388154808717042277221532225206619426865104957391680987279308664360928307606748085874649362282067279854154557105741232608560156520575150441015890581557719343359979782088737360185130712260602335143247800361845511322422518001511146906383744285346495593497392823773373692758557871588375624680507838084733352876658453579673084156827416384596420306382635907271064475312997024822335804986523841107747711174275991665683481363351906484942326814014319662244508646117998696259574399219355256358413355777400665547333763243181033749156919382972887540913256166665950819179985776432376788360200090556407139892633199675586007422016589542993192559496637192162246845380910771386482887518784248361039410163033040527715404738758782808227107388596496795376708155864915988259769042523347084373097060918989568349448683850771787867334210764601335333999979465681391140588910624881070770726169462040082643626769998047123878842113430304370192531132948842185852648478794257305411684995476538617470629886736613491404125486574692058651464013856249537556514309315159236516671877580388114206991300133075876277996695183317975771497922105148001756881963448181297507233923346911639123932675791859552523047858058208446970118798173766864326306157916469277187620097166074915014443222632724583264965596535624937765467143051826883987948256177908768188765264487529487445576644426664848454292677759068061993912991218237329639604562028612272744569488618683884324089860091011875665867419788291805397062185368342735084504484702712947997079266969650598363000091532364220867196001681250571261880929406323831565954170201559613127643390127649878914293398623673706529482474970585175654692220443549186878746379419495830504987297343419499085156256190415571256962237778736661388586785200056642049577674846633905717026940074533072538153701413231960179894233005955728355863898173105912218071679266659090135275083005028853950049758561545421527833001333484763489615957050911213538156298248204408828142998817759899364955340160369949468227641460898216217670413042646640898228977885319808822236614562189732098395543876091482216585489478505639694211796748879634601926890815153017788502528927222171578260905173369327787277777049148237772983959128717315839706244508283210022505446089067234672614054036666663021705800575426925809465498491995387674744366316766759459393273408756288464798198865891550890938991636736002785419945983302914148102170794692648805820200817457596691083368264580508104633017902366572431854217925031569758219825116323673366323585821464757497658561276758603811414723270226774391423388813297565171159909766181197950901404592017799977723669210410522036532021705262661164653372041594343103700070090437047954388384729430435219803848520940505822921210953665248947499604906492214440710011387048517696735369965261784020487175352051871149451591392149739689574579176233370016944130026774345711783936212783097953138863858471239321411969777087199328184939316202639596289377085845824299123232365307522738583702777346614966627547740376785362619785550275374873189286422842076719454825672824452513500854196394395460105164412887058831845818286427471502378477138822274428877603059431575543143534196447058032630428328251790275617509828213221946366560130795487655252037035560929676014706745580543130647104709876857105984041589357202577062084956760391477690303727809300911082483152661134508335216418772986878397604788932850899941655655298775125362526088116197338451921514232468163910672117552800948861743121265542403225869054552436845715634085110886035767358395245664253051134572032653770668000361346711073270779970268064546751954401777225278288918476432435315750603261979082728046408935333824716723422606644054112603238462889090353499908636681054338958824350880417276856011895497816162029132460745144256550733835038189507413485690502168954737463337792256691823894525933086236032377093907305847020146462393494320411123229267099900654820411586561019860899442258043536647749794099631858935381241314673607575331327265745631567136579935874264832097789566432722563441813677497069634624767958481492787603884808471430002237380566698794057989283914781931599324569830910403792572672758754922896877075632345806321442035909605534112010688608792502256508560339336586595028759680749192090979672384069540768852634238630773165812446502495972718219020930717675888111230801911558893650475397566277646458120203641754132369217751770658912309382365435192369224280418320329970687411776445141980020487092418426068616393399320398749691944961510845961068203080101978697131649528123685700666790980934824333347174261227257208176303926640175153308211207932374464552119796918689069626252985942370722102073105845497269799348017833040793537275958802853583951684809744880700682239211746121326310860282845455785003459974101421950870534678137201858714171137084922275145154198681228968793673941737377560516654190702443509024439044258716291857154052082114527106501851805596154692758919159225832995265935447575435689911946548914743950148304292201659539347733676482787006557196866222549796240378282867988836355729643392247902389766793722080477248821673003425100667109707899432340502803416080052404893401462913908807349575598877842154890081945741820176318722471624362564137053233069301372461162879459999598394400654308823134305993213528577111730790150430803619522357262964571042819531033915629292065916398489624038479606921254769759805189744536768393520326951923485588312617686721477411845637476921353871058002704460806194407944184965757457062843071590091291148260560320379977365829365128508834143093876301254037407992723892229740908542471125704332200368901673632101423822673647435223939018591827338128552344723435486905764810070693462545876782096734300183840679931978096685211788480368449341249355206202910114398818953124998475606969421958139824082085173684795360734953542152152671142402706125863399030954222574361767803536367476672545547737451713704118931209142344686506150485129996807630763557063984524669963089003743849152271011849808597984846928464069570718703199492524835542495553880711780057356370151330519776126828433530020090925798282516705266319266422225472598059760352321040223781966206506440956779298678346542523964699659018945070877806588422376601767213019493244668201599372220142291932760520308632165478538650795358409019484448968627658465060030552940036766843940309747165103686217172634282145733572228330150403964327662285744401129004665472896916614481622541526481425988059415757335400040621050967708922701772897344045789442836286712258272951534054095189027522172775508122587513677695351956113959122200501188727469965724336400030322325525410803951077260623937866061055408457775607381504095266003357290511146952238806642973456415151378162298467304230951678741567488804442167960056188148875525294059963706617358264072608886102364038110704057778299477982061102697309815827497407904024566832344857962507624661733701758268018761865879035278468295912526584970438895100110050397444310837639641253700955394923389697729869743916737891225142475612371914236160431187764288138650783588099736036036483501545769547898827452188217340850043625971442496711477018526131236920302277386175984622033295892821555171253601658905330330649771426868166885924695033948051764401058812587594398824677466389091450057031519270299916969794133561349720923308895165600641716003574201347008349129241183257014613224889245245157582536454247144525322033153871728589515152778009209876486941630684977158150759214199795191213374098913077344716446712691938129988904292246962943467334482758600209947091089200199641123752369631215895739186370311202372231035918956476419748602854553362345295458091767498904384192004582860500265894131062397024855282706071561914394770467101824710687516409073328641511903686616375306249466198560824609910150299039160921675013690756995927383588136274074271466989876483451432774433442399045153066292793853670175390931026630057216065874300061213670304801316556467643074613427398908757706081674431516434749172869754760337458968891951617189265315418954882045952834305570002248271414990098920376467331893546089071313714005755712339890003853115125855004077268099951311286092200391069251358758125866324824801666320772058345448760224217724162255698659728546435178348056800677547683687868972781708965854186432707904203237475860459751130558927681496662958849559498249112479688842306587812949739771356450274159028242273090612712644098379363633515946524587707954373491132345462887592639011725045835646986147251643041985191502694521091923250851653033514250714869440754453102365330477100766485633011409830522634267936311216047893742816839798386085997478734276651696088651355896143308378942484487972313813908693168044947978176592969355539857401054422020632565365272770959774261044205755816971928739853680578644629189007502249385015947267364790095306451718715493501309612221542997686295094869785817600959517270625523463157538958194458958400952259082776821079584060197367801342263173900584939113247632567619673898389885939389219325032613511465005128053233540293387412359909199598202948870238231526972202595876342956564341119794893792832303428208474501176902380829083710123979049346845315647107789214101927091952173139450883178743944933765770546938788998893491598384602196292798795530522275893438291796361953724873323725800190726648423024067853617898416140372190878091537683443273799690314995520920323472610522933497517208633632383684323543387126461300259749467223903844921218824130024492819859411327670588362007844615576294935583488976617737261199450367234246000478918476268045413081101107834534528714771692508024073455538997160893897228069388202143829056164181317385829033848908531310979097157376527630707587558134434192335781149602176977601967521020512270893086728512187669377544487645543704716171458243567161343859129143920202535117355480060477744263743794800906371488708076317694901700986229814414977281400213709861522858476637917157017303422898619282614375870472529586393349882353192101452992215185662282500507601816451873179652206561740861697092157157035246720885040186523599488442496228201880922918311493746323538768535950794671700295799697751590475716464300338078484571175637172388266778640146617300246530817327467002194138709782862723974407080630610470809628481819976503455988661421603277193510454340600294924848794679592285590750971171386267187541194867882153151291949393538111040449158272353841243860608134322347897861135559159598886620878459429743107630240278439597631532946057617955717554710213052025434233847311093752961062461867587244393432033435576783580007171024808601543978103117608083523564867324234405752606308507266197006060872405478044147889759114589096767434455436142130086006613107206907148637634949932621234454698796256040394090850404607435974665461683053017551460029649271988615301864104002220345305403317709461414793361794442908288334869136139498408408718402132472986431021625484430463158664284481867282905289777875334414286428677738289160191225825329789056927645070001381930945969802844377593255047706472546674864923269827594245858141222700980345301712118134629685358422106079535137559815473642658744841951810508512945869753341625745132221620050875311242079698055497913520664157478959404076163274684466795999840479366809052717301303015828492056199841966519445861919611547990285695879221893260352547252700634256030773257185552895198829972884745053162146864327121752563782226318637729181595039357577297624768899913079168604044193114428217486294339917765449673267200553712770001031843710667076634443919844748808493813085651688947344841225640518592568546956322023655271265433752698495242427796845947982588369990319449990633237780646963246112294896740349775408439848162684927362216029163157080122210789791295005000691810851936538506111053901436312432262421174707091526790201647442572262789212658753586024110658827117096113216784568102573027117229265758960302811566948333948179099320441349710328473298259544031497663080374105807425206460576402277523541496855318889192191519546029124997827902951631725079398952293710495095520687276091557844355796903867757494577121765420814014285393152860588751174293928655077189816229877404016762795490099529116047666084746342684914172182096709887017091363238111918113123165494456692968533247270142713532739040563713031795459614748482212083151540859576908203303559052200932739051711319314514247897377495793164166646169056442528513013415312215164568533347022347804355193747437511174679501660165135711537848190378928481792108829908487577568698544535111898763100552907197372511296319935743271372859507202683288880889103849202650307924676169478580322678146353606685782381369614154844325284124997594368180463080590233660035563631935988826960431587262988595388106332269281638293054898093052841875032619591408762249920892860681571437540443567298988321237177261385883990689918241200148489241670008643883420130330149831541156770374995982722398485047291010112872217692465100354962436930244116738236821964971901809464106639805995828228429411538262570927030291204863685343391284136263525967081996217220964589777969468648113637676754051159350947623456559900806287734593159465518099523749790807035448796830890795118680574159536456776588640709034299486454722580133157978945611677581488576507304534101647062341576144957667954064988442303910977990060834789913217640187543712415040396740868752894874546042804148627280163266938882468922126815456699571850918650656621013639286988589741029679029298028698726881627686124746460171052520961344881943972605670064997781025882872739766325454336980865569284893194960786836090880064860321407459563955533588547039470639226381060097839667770595627380925623410836025165298025054805785131025401671660960977920029875597211100834299509296442738211295610370379591561601380800665277894573278451656396642217958126503614030206719892972708368018330077472170459732865370165133144318672932354974255259505659844182411456667792428011535298521114131851571065968862679972325064042589612370069440494565405594966334749307151772383034182140045661035350505968283397027505520434264491479149363041329422872046496625215896583674356448827587171861526677751254406432145944361133875933877777031365845225165971035283411359415962969630448575893152872354971762789388498970017290746540207165293446458160788527631588443298017833307814583663592312418619247207300489978389369395154155763432560102359342831916438067138766010849189819815798094579283906561562676517062784073303871308565122689719339986138545247274913653268936857537213809705422444581317271225796615448656070051409085773421019342299380974531877116693090299020183389574093344375594745151284529675311257830615419274510975986340716337366674779108379506176636666302486705220076115813282122598484293742474974355300293952521136296351668608482313115853825052752516188188308310447864769700432509491629265353529870190121861005774949413878607526859266227368612441732853502640194303648450064297068406799123865500070214183680636981102944661110740919653460406640811839050474238500455776265375663570624056163180941640959259366641245322151650979594274013864020716945399381832719343905038406915095754488539783130566792597034563286481655042768049199867729224781392190698523595858545021223607847088485349342332236534479011372869344432798152298911117411383831311200001055804272239378438531894609258475187841781197156956269606251487266321571327275168727267482889080697931167502590472556336180916082693802514500790408769486801695136683150187795786044754031521529831781344814691751481718846702350484885878575822368554647833726609079312236934689270669421787009226266070943507743318386943755993628966303978766226486859941526275070518591238962166819147531960434534703737389272945652727605819611050737111043640285471320152041885034983849976510429582644351625302180335850383344855186025536220582263271732556447426976645754439385093175406718102368470982719795261403367770974561430023173637251894077734873391816841227360682767002845883117217472923137466565047565423418044659064425436959484531380322569749456811719114091038534296807457049246961329521919472324150166608553111175141998829045040889027146963106015779150303816265605678724720390197247022205158596498556049735236355238329229481008918317219390697391558378425838117115397645849239035933805109082154515527705970965104699473088890575232708695110544019425008967324027473998449043296660741786626798139726496688043975918200440150821589268634917255488784197444109214844450393040390048782160280207728066735135520822224371835736449430774468331554018193338177477763412975892822154082709797703084208767148433926309844228348380851000954172900589794740328373450328511139606870109428611335508373241310070071465226639065083457416784542541598724419217721781361862623722668705624859555630384560664259752864668033731659014138655003345484043493484875780904189333298201484047795752929261958209020222310961300412664158163439751290146723275661815062566244157616082107739318311854547904800983732254672718615333563543096420074016239491972000972224960319745611717045075532597119691186868106874505524100602251894648588583064827103670122665928670165662696002407092358616080687356755913177480890242665473071693156630476179950523663309433738068030579759470946623495434275445013793327786496887272378328285922481276953705374379141315574509983277342935076978287134300903142597630884980445368558664006383479689257852624563586779341646722880450317983677144013611429966301991563591229495911207739020358023283619775623362016976059855729344464041941764474872169389870589259702706004790887149013939535458358425833217944311273023372736507254013165432821630365964865094490140598520988142821668687007928601677212811817536925831208629428689246190874599987916571312159058280012465651616444963385458778422106606407535103558507186099172206434391406668886378568326174735586912521608484447215070894913768103745898177374784122245641824047634008786552761980007465779960953869396894523662348114523195668575501015327988915384617313992070240422533452628595920406167440489525142741224667952334709497621974314936761578763910544553222772842033950439400293203829863032240317148582301982620840694816809455966783542186279052359726564128210356998937465324120151901801860588316900663027264668086085096547987480176163750992096878497118479194489443044545709693515784538834351513193074337093243665843805063102496035630834212434290458155825950784821290487182992706359150740143934474170457743310137462779084216093927650433443203863625781528912422680087188842913982099431208329513168052088376499682638118087117317785015167207054339249724210689830528886717732755042952388228652578209255912390185721049351880852467522731356813193262294658296493900633379043458424730582371511503451119305227657059239059941056544767998309150349983039794634488962228415542974695790771562922057787030877715000227524549306784774976962873793212550481372130238502494480244709009997874485180199970024110605488085902114022962587034948996212772972721882751113082012709601981767672527967600213263873859445238588738623684242790139532450279622687330795467453054645174488840119714278976849059941433678258664039731409163024813798408618835865793212977982338108951610895902946483036520737444687114277437565769292362114058812598346270946380001767900774273146408508879802751575611420354009217726134348556479631946590034410184763841412968214240471182646763047844307913465228806265761956806443712964848009256243775067161386578381728270452780102429283978778467019552891761815855632433118101535112432240927945692049194843228037047473952802385998977058620116945685142903243209369905036473951162353033157046986231801638861964511679354936535938648939417062563205525947908316328738574184863411343112920285711214428664312166736019264658848515304768157848762278563428268490908697154500463915022058739946236639561698333551058777308675318615023671990986087482732803256010016894090273605403721697638943221189619219719720281695764423730116526306799557304287917669102813759750350567277675291005788569848769908190246881600382984792271506133059365012578546464686382120574734551381734311735385092650147198626686930607099866317288346800185996866781820619461845484060432099604002250944896968425908209020003664304735346694218390534028898919886589268360468341644017103668068161888716803928748523539808364293677954714766378415401535181052009919206096137344251322045440978645737405196425429433440117980207957431412679221773729984956859955918070014648705011674480125351391006846805658850212366180111274415286234914373238858659753725336472079752506621667779692621987868878492649915262082069929078915239457570957100610041606454899899898650016349610773225698679504560540430191509772416410914045297083921536001535382919141713197337281941176074672059104157798067390899638456276306641656548592352424920889916399601395615515148005193483917151604359108555060903794970925809564869115071610758118701657976625721639296627428942115364914778629152443453766548358162436367995142929342633226906993469353073173956911146741807602295234980177376658100902055726906075333732243693197609034088344579893809175538992496229057898129143861205094419226480954654508646842958236983172003422530101812009561972200373277838578762790000436680437622876612346514723329456045587752790209859497925572225840597607204797598750515667382788526445825041430417406308770311406714655539788828823306966628858519681794261205634382838784300362381341719703191238520252967349046073818135126789002865727084058185341110446367442411032055638722312064700411501173662876684578170918235614443396334555902398074914028783316795629534743893812025432643059881457359874280783179667476062635402383124111393581221689258136382274166285710253562772169053055604289214256824289406093156156044980526606109143929865855731480689114987597859249745650199535661405299179578953891147510066271779734746613409058892092884524570875235977674367462821430804261915913112908350091415065379200430685952721975660917173606869025174625193192305009298048518154372487223887816472574882239182406096984382806855805914364237802861514018573632717432091647643931291352496179669971873911165412114879959427884894760662133589238255787002870435352785579117514280310532603363956767140753519737986672741119434167955774924438745850492544461710996455220794367165222808805475158061263752808517307527655571807727216095115440603405948043242729338244364701145576738889558046541620196824254443838222478066274377858630836576192632598661725426006690646914646875612168767103186482391997930234649400011935447701317529367583201788780499101823524680504252901748187987918196320973054383399273123195192821760666367676616710324063190742825184370970210243833583070763721434271648886418910597124682917385789854499835014388082662873265503181999921621119646839926622888508026518871188964828905062361141014194622376552092788357520412103174696829091711962484073158881181870163344059160368598081457586338445994031146555791078500305360706871752650147857995618626835991550416174050356875098639579558981515278159540588771625336489928251259174058507355317129636327401319272818766763213925305809376903189805305435883057304535887502162285493882493442121522115563263012432113224051889841410041747260293818668326437660822304575143492233830722088241334907103576771113150851504248869774816895022575385644859203191690716961665127469389922609230777443103855963412459077622140672012479465562501945447438721472800518246233688745129956446607927863090696439805773009362520552044041499860776663243510103477658201801551617633646597968058286536352639991809262623331411196185887096767159323709780346044873964723119452046535192703237630800802107564089989631132252277689788578687208716811981120310408383925203388552904840164296395026255254824912097536310649452428549358011336106855643620716699999173329007585206248645887023657520726537365338011498375177291090657181928120855079813583834656405843631251245947716216053226450456845902109651757590048607996546487379466217858061063853750934248519978836043531750468161378595627464784932873101676601019339629210546265355054220513548176203741097870440436113799034266342918568296170528963593616134989967892538351575634783164769933265770032052146641300695328690859931512095079494210703803046101533809484297776851228749660342982491011062100896107249577651060453603855474015110190390386370741716016377695167283458210755096602117825928578788286966795352801957067718723648463877023369185608247057605779327781872447693691968359612045360302797246854541067890438353531912862446691825267246824333101870121691356365255599242394819509056117524929440453225411985982754532884629978696642542150015505153662352520262004153964610404703763349337331204634166343419393604793085089888330753315074693842006662340404750127244637072976798650943470284245755301223348177703207364329005937187547384342878487129551500922894966263887270837523542395290969426016471527070959930391829827707068492464659853459498867614404366549948733814177797436559555485964346325662821747130353472759063443032851767043247291614675932378845714405594226243914078877919755300696999512682981432558797718364487639221814280991697171973364347602920753365339161299917780524082111404106508208843906000231654518913662439360801115155960243505121907702235113416201732676140584535904718132740973912022900293329377904701991360389191551019957061239736267432919314816223481488177908554829150739685166283257185151262027299895975056631510677541114492123148668075443195525190613111166431555395939726463338788345145545845344364603215830160080889554680194502210567681243654575468744107057217861016406420568590799280216336630357699469969797811147650965316224158781870353035827398890223669854277697318157248990666175220387976441944307185734363931228047686995251992772403053763711403989072568329527651729602790548506301250531590470600832501713106830342044507343899277906340189780644348332737875914905427935973932721005842318585488551569358842683143383923221554103188762367241868549445242904283572892706007158830249453190522855718359821366653227582991647261374671502386513803733500807619842283743342477259841677748577383934422825523307317343055519848297670664909586258771518879037967479583024211840741434723066760832561100753332518777976684535875937839783753401955719182059667002899926360097713316748182202970142290294075770055108938304435248282895664046921502276662084052600759082719245158517516710555296705956951988204674972754664956839024909855355925813639146533245191925633684001770858065793422134285938280309521862252444168532361442666092023483912843443995400913261036668381624724698767469272385322137855206609074211776151818070728091964900316217933986875332929299230381137902910680681187068204646341801495974181765133604198109544295599779993788006297909378074288063522136501169521918331322195592004431538698576674060972864727563598899923823763984650473259086590804890608601060705592667808992393679563190982613870256464247287822547738168560138395669496274394876370929860168887135345958997994243631161598504010301804373413502010502903949485188900592305280894560116233669736099718550334049453294233435888298772422975781045713594024694502621132741558851450451268646119523501279242630238023749857198054507041892819625801163536745882719923931436350032897100422199664916545456193116215432873938342045954110250289598777429146160047995593991134921474349728008399142989567965643990102862492183715213732351659719180376661502230208270909509382664291434726247629502036870500682321002660503278494770569106095320391359564221302610273239759854041279376011864881132530152931522337388204029521691720596731700980254043367969310973993037682506243751595669987897432222720166868636704126521344286488704459440378464311576563661043694622695765399837751350741498321433385943183176588396876201557240312142863273969360312841666167580871067785679602897247404664687356341745257568325797642093592257755050812093311955815379586933620140060620345433786805803413689785217792132671369539868802158288790488892298332262301202549604831780499324664662319039746907384366611945157803750230674410526879222819713445250913268243758976665122630679421908630421540025724008390760758610948842511168750625770816332300575680176430579580985114267173945542442620721838402819070821443053568035195289012915255813332515928228103614819805259560693561183518862354233917486665222347697866592685629787723276524811229317255746598684666339417697740312378989237092893408494693660952586647846510465773569610753063464805485689217854320134290725294988982137053560744734687474229114657991351351722932858152424556339734408339895717976478486752196660657104763114143975216372803865525920335152968172447674826335376415593864427606039024327884138949312219809919278457615440088243807712749816438684747206112253083360195583584893100394561806794010612364268052778400745360485854183062468666688090283746473289143925140621706510763782106976122085593678273617437036657328692186159312177351791588572615742622634503554062413159979763148084833090401060818072014566409244534031848238663537313991224027476811003077648593375719228672347037024738564770876785101279168592852976434440458499907571658148385606758223022841653105173408073793757011132473760414153496869656860798472525140266033083991023266498885989574305473167494540433173494059790882423779997586850844832116589425857727743648136994855723114380794210661624656261857223830858559987411256917253963684630383506833942265840368509095208390229589723116998297068944433524362527158390791828792629683590555081732919920725227490657475891439855242642186760402089301536431575480101625655796366602223876124121949466249863907077348036392479932180873458441659559796583842111585902659839952396086872253323524284364266274942058884402680877381098646465091584394530018957686622476531441503665616685702956741297297717596689891850051036411014668918848927208741477510228581853517918432376906293816437410683170335429334142437546839880469148276580490545561208443041429653044792927961905881781966962528834054169285331428760971256531345989109268750359480547214201589801826730341138783765856899037728578456997387258484652205540792477521096187713454753009743381238607006977591224600347180693139594699340726873056882626900267988187209767537894279351544482183408868828620216054465464490820809592131654867154154726111170000945257644145808890928814657350217443612912204154687961889371431343939330084233688554913948042290471107828016257083605652379225044298778370037388669409876028949019977155146320940981331432744795537205460016863147297910128006576906249240560257635528745580151607525133580260884681811985748772646226649427300368972491077328471201480532638819827222573135195650677078305273133523312507372059653009861096151477204458976765341634603684083646544407326945748418949271154461331533863531921018006204294766459542216756681068179774429292284665778832394984397302456361653271448743102586385598539965498272005518437135111648376757472658429140843906679078150029240488756048154025825332822360023642652888760826920121333996970326645490809732336810209854872642959058927041592732597321341314381100881741854297212603112364957622847002605352203082916662022818270310218479022670072831082105717731668291346018852262212280960211782045359949544864515035749610799117864329163694399877949014682678563810015745975322035399173161120490858355041235031602794809791684142041280545008862610388009596760250426231164643242391252906064311491108998037788586308198146260605898506175275237634031267198575850359459716287161407736889622774175095641127749353171674999924775248795841188930941880988641795926948148609752054635033721887829108551542212588172385990663592462250176984366411796109917086495692645208045501272047229886843980985432441427717649382105364604530634611457537786042771002576074285905122776144176912852811642662776769152157432632811025313380931754205906530782470335423487409250832336766707780749623786807917890067601171629203833195058851616884055763752691509666748961404696066036230873288100959877859954259209607909330302759319112982997818233811370863958024606129868418897095734114870389388253638919941900806589446755467209853863050126144268476116388438103052635496178982302612833848519980632172814641073038506570366521182456520497942836696365741625377324593509538176334293810172810253533536619862277353214827068658523639574421947291418142894712571057190497218215655858250304610513716742251800265348212616635104838387282557059889381556955916093262657268353619183176197237239976551340693578259785313490542940957300274051398728952383321565568343077163849039784780054993744705109277480880997822151036204728694456477257879451623254403375819556546353506015147216480186482996658978726199393710457757603581374519449746588863100308510374727929225730352325002510840161435994206775591301176929792150737733833316628179161357461095228852999043581699162034068778070303097233738262285708908945772152323464484004516602079641508727704100197013170586367429314193856579492892258992234603263310362368440165455138827063210938428153858195549852602685084808335693028475915472227448183373851593460105419765877112905673683822860982533469925684940135486138673251110612735939751347676443182682411873550455387429157284203563464696517441586736288513916639007256989414043257189781926893476713075327604006337725893011516155586970936012158157015735365207176283592845228503835194093219941878132834595965354415494234421443401874765619104198959490515203445085272573076436388405887006286463402990494116827324502782320377649963604417350114623795664748894422886641367143570685715094593813020496756810339523987472705287525189327024179536698483568458890423224016953383276897848872962976851112740526614402822445410673220321474466901093920674539744607445723369630321385894716424025562665581882989569494220074676680740722857576182908948552468918799003407301930692200446809089415208624279946200492732728782638614552225375120957767220243039672008931875058870356175989527297800575326309737186095635032999605714043428811155430685252937359817773268875483328098680585827214355774194144878049926925170802119852414871729682129125695228346703361261131058952415433782532167331315071249977347962643447513804119072375159104972017619567525086087238111011322574961331709580383189992495294019425116965292364852650468970815993729102690018392929575254638932065932169528813214314801437088013563072584489100916015008255772777325697046494695357686500751050077032987000433356420014352821212933292903436804701579949525516898579605307086385957987554721708020666186725559220209821448410104339690391264668145246726029504143523678724389172018285220444987782726628859560969386663767962330978685071355493337249404569889488608496322329502020420630536651209432165166524275077329753840832594218259727652750330015085791590265709380750970742645059857348147113579752554278445074786105340785993633353025361122113173094745094879935121781803824735207874782138166467605317909057486308874852748257631632632463359074972973127817326175219542596215732493269246415915596886485662402349053570517161236225304408499553567282308323222598780497519257582710523590815990922624763816079878314037872523748400766071985590328447545136217655315439193347281939609991074642005177580428969182336452652917325513555838762862860732716553900390590904930964381083441885658278607981637829878688612739953531624806390388675571422794729300282710475861169361043981964274862452878235354961870135161380768579129651206513511331452170294935538794080238114127861715786491393369165260069396538431107061975877157993356937512075723092730083358768422783792020473771991967677536162209943829260085099175667539650309755446723305772062639702416974538179943353212850993962616315436923467883176296040557094000630735364886553211439194650856272614959961341448348702426854497438836871362783322195337644455755537885163583060235180285297763749507773065849952539749503852464938344183847471789676855321716768098691304905639405737103149332493822095104939984986479945256903966631382015880133550844128601932410679964013574849809790725580431630692770072278663347205938009392824947037884736698646408258477563242647786793075948229839423374530175752136523945751450479887023612295650722452598383662976795451480254439018408622006056485414257297304020258064013848091926583822339756922323851182757746156893955044521482727897914166666444918366252503406191282168988202182093265131566468428882292610230086148863303032260699155497044248793766244279291510537317615145237353050297220880973716557867113142841109722570912008237254943994402007173539630955106992285644701027543744225105114592940698720283551763456233985029077435942919572651688433832040571006232306240727864471528338342202889850003792999221057173299622827193117341449387848962214031295469964722859811988985875164871019424295678506300692301873130239567991578552117387348263081163978917258294563406182560648809603443842838123941640691660479891914338300710311322277630624648372032039266770516463547695737454607857631460114289466112548668343927788906149398256822113564353699639498683870718503243220547875828052719660823581944083572285416397306116796915192605474093974269723263301215597772545406849341893293137482993481551935044070404734791244060852934910637425659811069076508517046382405255787518187425846527407306573357138561132701622661076438315332567948106470490013654068592158583291371527738100585349483019730605716715157634066321187021846913680963785006646344909737868903793775164686462034378467116973110480006039856074514755302683561047967557733394275052259352356566236359101503425193373436182720294396389153296991902070286106447984671917201641644030615159405132295660271609283788067442325537947233004031337868143318098389276081518005319944881667638088989497305010884126324647561468832965104264695309627757682980513473734430450823920410942984356398423824112084931732085523377227002459603367983112640337131331818103766188732131995622615382047795753316451843926376884481273604316917077119835811904449687837616267688515748242670136714357706422738258477043367775890906680510615960756593900796932765571648344001914777209493624311665366249647308904910389801925645235148152255811525730828878105842023524626678251254633206355381357460751561651638169066446278632573397142934399606970742344261890523371544761624666832170068327240981620971902513797222681428665719343236388235647735034279871792135949806541886154275320255013305551459524177697682298057432971678268299710821584353019267806089981884800373571785689208848235329476803185535968393180123876412349398192197329039953909368062203573017739364186471704397890218446007100961579984174014501955380229507737202093433976802409923334564544880971585944898641405406358453829020217196540106244332309237723874600702760876763152409208944406559091371362031275247463577486781991845748963463245166000704412924663648175181101622148041130153926741400483068449207590808432063737373162272154588303104943277729201908803689906487551173045806864150257554240804369931559520338671183036687265537440790573885616250745088156749538335305048327067071405612776877390658303462671280035963891735314530928011185403262806942113755619534991668922302442408500429056648596046899860112497631623479461333656096609547302373719917437422535431511904222073700572785251485950656211388814623893412219465125549941797763635252263559911339994533154160684985984590803825859429308498460744433711009886029060299059747582048627603729816558110363165595819979123961974735727296564293921062005509137331284504291647813104753805686173604609557740135696059965115310822106450699865893914380077172111073494863137801657186690568365717559867646765574346629347736493786116060858599471847007315775344609650705896853692213677756009030383067459214281047915329618064142263471220141356618930561135481710031298683584704128967174835291308768845500638297187774568531287297228732537963127802667697952854516041779160523625922369239793588715832304082263385546637540753587405392399216387400219699155083876886695906718137270301321321171037481244317697530472550895784766824558849370707927586704805506535389970729446910203780920761221075535102983537309709427567773157650445865011663879591334055371275085521076052825531164847492974666146582500089228498973062278346534329978111556015249606466342463895610363324324820382085650464065339999400367913240069830326579398599522587007607032867159773516082862779790062830411231165135783810839901148475899202797075428176080962938568403811652343278479896993249067834997816416755343124195739856845767742809358603483339839605270289110163429389868970428151620306133686558885352021109722827698538500100986857402922939049907964121406025476375997156951165837809178102878986690401459154111605390112397458113837141229027960361326513695990203478965389357183526684298139318833871496694441163187086814454194096179093154984270874194186203732721297344876594714323067166954480568153502624018532731157415852781042116913501702692616177129157270114981241277186881144031808541364307695811971416076216189067616878321169302090986681047062026718573841968191891510541965567684798392255268704270953386262373352749288708564227174533263347270605725449231216696686759119577567623298810749263498588731714058627038974162707557150538940421173677669738075118018717201106775200788547296533478101002673493212080850420839718748908451522016369562432596765452767937737835135096397370821473280306457960922102709668121041330758829733027502341093157254511153027156165231413756277853467531215285057310274389925985756333169577530553634975803412219662039504167962637320242972784943938319513378451624492176889255260609846026234606119062424355862711337519022206644732452266894944585217763170173852721060925247398802398870815239025399201637213239310690737056325798773386601059191118479671595454570666981387225676915077135093373288708593370364485295279352640648375672773823907938935543721032725134385251129255183206669123825244173938862132461506328464636585512664736002784582221697777113648344937455998985727683452072567762598771736905586241754815357194580176162592259410291740289443691291093470195870604172154486699748456811098466529600968739931448059534324768329285094629933578801561316821592762384450593114302678393301173972296319667039442517130446106913459100729281348681968751293446790330256778165999637695170072664859792196828215896026200968067285824158414072638580560381479478848982924399471729269364365362735664304762366468829059086728205570647151950000969805899004668744480280116081427528053464611033533168491991530516359338939285278848695035720761149581444739814427411043094115182674433519007854810413040544093976659956703419083100793503643905310596517480196585627471947366659435347087129241140588542638938613187263569357808021828310274136511074347330206644536584515548465775960076848685936648513243946955702149727106862826033419518580929287778095900684305980053485521681912109527290075823099082990033506148065022359794655634207653201493003621096037939387775683260323848197484644516572417211086348921389535061530631004040175895896486393053314142341452951971891585316322984676439213549903582892011761959254398646706220858373997275862604877032957214569665271901147594743951879690478683024958251542919135404755451419138515788612090094040545926145252082067253748948264741339352877546620123595472306856147408568016966893566319925006604958455392333823387830910021200771864334977555412179703877047762088431239998863430952064936433951423178196917331841092557735091299110517528066559738953129922269624248955985141161699039115843824614028665342749897229008602686516262154459019895635511081424379109537456633743281061054204648521711089847498598102894904485234303026538974086629964570920154868324771025698315225253149958346421001287197979775446774351848607965003183215254432079805488137517994342065010004153617079590000598426845113524708898546532388468422381132268392811211079978846574920844796755523734297492914122943070061945245838561169738559711543656770119870497704243991666799685498982185528029483918286887786269516936925898063264504836951454855820151926713264634529816541736060782133549235875516397811605355490125969467742168016929219354360568763283938536511632477102931300968543083392868994152370808514421071420050886056659228562845771262878923017814886981912672506362164273331474843360503461343062885374590155837858491651263096211887730146408073262536605770114536915585940878486535906282443890612157168500918625148175934924732140396826972486378210105025504668760352235330708068127634896762556640299165107689086044547045835170442105977772116894084232843945764389604032017569004010454510736268816643952374922361531673958118828470466583581630438448199588975158582850047883265202817745871474693517862473791066783489046436526541740222361052517418683727068864421138667354926791088420269036295334542353106390808802100500110672149260680506557748860743640872599682273715015546866343720389289205250588696900305399415533257152885758589807631005479523926450312384964113474145530184943227499534549599723800934088102883937048521659621961058378622738356835623175623852433042671017283638090502846431481801050645269701754907219329993354265106206670989895241572262467465406863960953914042631035973254204278368646691287882697212460181687754795851469994709387008170536461447762233947203833507379572418784156524318924336455056089594506861258443073978044184069165523824306231058034126543994498198370922028188124234393763100916493138942229153643373290036450000675049706281759296864239726727923848472779313969157591431090672567631429288468362167854259429434245983989120423467633106788561326943552190337990406900441891220103246353543851659396232467595503550676204939384063385704054623641876604926331324311187164073341846722583096317716431894226458880873395907086452226655612656362411068275706008826754490562926384224879146702977005496447259943986099869578496868838197424102944169847550255225040322074058788632846428624773547142555508406462360095036540811795652441206535809705397738091449799380786408953383746083213887275897656690005878958768611131742031242370138245836232351762239239891589574998399036435927733463741927106129677736948368582708250684823241375777079173470499524317024703221220993772174425100930074268283789179518335815913009426226170203644480163123634223279654252891153874128191496324021930105335836091746153032932027907266928056042043080902290303382084520305138454723787257494846686862666459038818706853683946849347912423747595268933955267228775748138451638798176535049134105155613293105192117700727295407995220763438408630446451429981844881446718829192381062232049514720278727467896921285602698014608430006240681902596770025809780433002824172608939480284873425398416659182223667693367157400437608206329873781421911969643643846281983907255428059889173363422019015145729227300287733361494995667765084224882069442225296366254495856814861202811634678590609560401430527616685554914929250935659989569371187409047873000846566458072187289352954064649186994619561540542676336980366439489569449198144663989100238291115563587375286570794967533113028597960944439286601218678708707997393388559406192367333370744027882186500543810145977848716131209256367670487074904059487900435086831410139627641627219463301195665612038909967564704515632377160470793368251719623434798293515194010823213470542930240440033166700073387969111447460294289176420974389819436086789079798486165620031952615173843299138867500903795756854130803607016610708375842904533688671569864346418973000259862020269928685490558149061241433596929719616064935789292839457947834125428680301865968469693289746386661381276983872434099696992184360585129380837088507034692648344976717017009359127175718228422098379100811898934061504366767140725033061443955910583769311193964252543355604585686902150423330968345846722724780985555666957977550882391110620113201276560049412674604647034433443691272541339304645403913556898509163558392286501785056044200967670830652090905075999338584302183931587495119174962212518864588740800016605622249910048622283220802127615346810090294361221763539849926592374886923418133842876399537189087189801664079302219878992075183085782962598768424724780484866807924180765861634843562932824573728367637647415744730516959521036201355056129120533689365706311639353938121275742229422879896866841954958594843378688634315417228362566900355758006737565843717644156449949448058212843363374794815631812253517950642964620439252807902107488108074955355584154058896218218979944534424076059276448821053954294977237956314877742893102629630293987901964060372626719287653535995552389888792013646339102547827266866686485639195601468683857113870850742020764815085513969578524666969586584918305655610761927771564239065235732587645791059468197437083811784475288740736950112887544735048611017329695373508692702201016649397574646112133665040967046864627771229557220085554148157787064514467532641694913664171916287627273618290684842062697914481935239636833079657602189381589462591231199708853306115045887794810800803866900128804858020305278829176911955080046896217818749187339147088700143881815025373389785913004878833474844083081664033260840987780605837965490873778255324936358144063647718401572957574772062176960190079427640992863017899179379756877209096983279566576567075148839378474801615740496603717638301251212790998166381739004746212144851899212552384773440966223660257773014509805901191591775066286067767571354794927383536477312360946648061827656086742942374269749780574405503673233403163790314260981338539920674682503176133950892841545419795432113186602069342249355708707918948418766944705701904999861609973423790713646517270307875328080597523399488524503062841870724174217278217957035044949596625934132310459821898103332079088542043433044878122646157030228368620658458808815463546504560849511631583381547882209043733033264516640387558591800604523264784187704561023032396796641939531307497773728396951308976908537348812030521233765854109510351060498707342049411473584867834333906047663428106726462509535491403358084067903044447145048260600677756608163011348989482360754114487587952202858443013454116058023248391392701556974142710530516519005552460469430354277477099654897352528523839081090188659198693402126912626442486545905560291376000747394205425012629240204245894549512955602083765824121773403551176596499378914860547056259438911569512628917429295994082094056458887052817261632727953121722833432326347983830049537679895149806899862334835968060444355688221039917186311189166084255469667315456369875719960812192846011564032359134039661877776424502778156706636173280834699062199457230427197258759760727592510035819489460938733034872819986561590409797753009826982092512481017692389907257095405391051491221442330480985871431783739289620674838981045502457530730227225862191711913353323848871639876816784792082028741204236535536692977859417143569162863519768489735863014731252533123158989340480194667283447727946138143765481622739104065796726390365881887482604410591192175263970351332217898212569677644133422221337271074065914571000697863766679230085477254226445591817554320469920354872251180227151185095683518518607211673731245692593876702048033427085538279526886606688615945274942689154607278308873953071542489579834642373856191451064998433614776378447671620595765212129116157122814628825641600410564732919444606018971786339007426941619188365369728375193848480130947943532969296090149366637633611178114086012881899333033282519697999311973008717276303522519810128306671783061815022390781206476931647273253973318954113787774571953628176565950815174086844657829154455946252323761265503590447615361417842084186597357460473255227781854806488865134991499737731813745766051131151466803309792970861073932306300829186062777357648566968736708585682037529100767485618832082297150819158842971971669328899510399461353094282564743700591792225490088341120204557589845761080667014476141318837714608436640366060669032479533440637161975204180010364200380746966651447482963621656312098547108199003577779072626327353369912629989220879931596873638677438585773602811803085313064644363412183888942473627487165819964374792232863864404741936268507705987301776323047495842587947742666452872614145136660790830241619332598856358044963798470595933384176713180010537487273825742638444462679209074448255469131538522306355872728752905777798630065163899169230781258583431358043959263722425401447685980369291275145624023630391744657312800918468611109505579434347166998664029357955907880171338441879847934788714586362346529636186740711298799672881156295772519247410087882995706788216323325762038241206511523187553351352227527616935293709847403799694367286188712482304607277125137942081142493346460639204255819620551310165713933480104283606129029473555500768770281408431431446200734771630045842577642486172935541944695927363131828261498050506017380818518686615680764499525122120046656514287042982852976649721259148047261629242799831843744679809152821959042096796369163544856622216450322017219389203085446278768052794207924144177679772239806315101828549361354977520828171462880979275444758886323124482495597455567537478927000007163809357793955280043504439047093540681679447937081967587966450930888041287131084805914464171380174966225323072523764339785053913162213899551356901299120592974784622563784466332270901394935669375263357470968952325909759265677276050083077441021105027250106744103462470215520218323027268133619089276683771198482918670402106701105370388071179746180775319572313551302519675063289379955989539700660642810077145096274558908553948846055771450544809750882826597577284953745396118060832596937261539995701431680090253969401548430267831429343532676105796077401079386988858939373735215238931294253507185416818725227832978798662213396556818172122223450742546436455029190489990338888427098163327898841123839394698797874379248173603552849101185568367731265582601921142912199013378623331992552140360963893313682132861527431773157896157372368896776632886704142498548748797139493940835947898430779805933437515621117105810438135868153483638227762488592285508717923461020605463274156738154830903500215340022865560992336845862837560810490940927929128113098360390961400747378883212479017504136840804434548462989642851308435476606566109412739292969803031261877331664599731193550206132853858464322098056526278565499408657225900171211531424140001554269386179633648333184619770164025876631027318608082685854033104202044680008473270680055901001833342319797599943086263015569009859486060975809843812951848691803936070220729200142224773094041490611272734841331759922557014488348242950777757742716867332329851866098390800472636126045431535249567591881718697279231097402942377896774337887354488593547750515015932327807254746392856518060404485329497639152106736347809153058784605775377727997892693013723499934593090969057461365725368026723833524443862106831517973638253550904825681335074712549872991119828627173380659836916759868004537631332081686918945394601219262040774720400469352345468497086751285105186535979411945437252180808969923135582644662271242105172321212060967597536086990425343982933734173060447889024765152488377870464232350342120493713341845003001872860839747031115286061759978493035006187864711127859903200227536564720174840492671693439795446678621983642212305556705647417925894400400939063952606744925506932512724648085303511771478375025874596042913614227496418644253243349191800714016364872833092864403850613167529119724513245280984983196794842791020842980980702312016548254613222880325771069269908514629239917834285720341751188635039124569685748927211595014713708025373021168781174654044064840769381046877937909753056227951463093741850371225190028810316149815436993590022358513496640185678930119488981133957275623349136544009195678372830538254180716047230132458819389838057177812932367077570758387044178547735199037800667225670698736624101307983683487421773388729240837905719064219526930801947919327781496703620405366078600229179971987640201430257570592846108875419372286652022386707118497303014681663011886814465778719260428441039771835801448233944372909296034859634989830122979992031870919302203790930392878987513788777902597479038097161767140528231508469013389517110073880866481837725688257302495574506904094197703471631889826577017804513172481908842103572257233972684635655863297103929327763990199951099191050651455752733725188489551904103514601450267159488747368067248286748725909671831078854922135687944550386352409150576073871443714384633097299623897686622011266740013196898187577716160387413718075381293082447476409697508080410565648699360400492759034974067207541728996056215148230583562663206322682360614655147780393697487922082158351731833277949190452340982945061755962987879236307253447615729111563022394603162680387776805017812413425599427039204663289054949445429881229663229006761070095403691120617332201900697573859480775985125270599435533803017357788537785419714338348949575817582529717725683341434627580247114077947722407829089054790280100651159578851298714365845187480587386926988737527520117934733190669876132006192381015058636192356090336025423941578404648008503714815742387125081036817460663750546299821777385538536926888722497924854978034005412287484741957712161115213523264660700753971132143697200203218797609423962878684964505339741274466028268442038986361744975076847825861068004303497470541378849686456956593800194290260581023741665742712233724905605150586930915858970684137815574831166000887499511912970401445484358734806552866230435451251038429972597690558501302833519120963762810479840044381474900716178372616706985616947866150546139029581521809454316617088826430647171384065679702142693207907617454908127051650365674339033994675545791257498731222162407585423085994073408763855546576857120004350270171869897817256607805758782848933686755827521372487722390723346748272977534360334112653578076833446299434113783873702554184173156074235002299742715553304094890264764284662719043416339417261260264514109812961422533495070310625248781275635495427367112852724298802553682945495531761096011923326884857966209747707540926707601160845661703008251420291519055546132048135813890815002279936444247796503473404247665485088026838034344127897785226572503582221595393144035419112719134124416580286749421917879212983015041481180955846579051434797362328583295651249033431002193840619472274231196103164470766533418288979731130075770651062728685495942377500086717447605375744096581009142387917100807965055057902230160856025703114373549281267519356193461121811421491566510163321860178651549149641214201952557286423550225088238971587225877556228812307213783612390205439262526662845775231276167092025110185839099761367426650189128421752429819874700170563446145983659525572378825330116831867877543334290850559494374328370528554076834418524052942932680897892121094836539901953999352135467266661720150104741111412091332089424159525829284816394116703311982601858312782459892231163031946385511725597594406101388925823333845737466245375460667293472452796835005901044472994384441962583663354270763480255308220685950915424260406758619614153646164669899745206339194160926607630711532464588477107021972188246258129966980817413646868548691490957789482892326521594852048419279523042867178107597258215187327844311193731236240628834957963499440850715572003742921383626749118060980013880587853645461573124366241409392514870034710014785230679320188622584537976279758445890029986291946716592859209774197126627817199780493171799663040416537425180485610414489249641417787158887090622287968469681220382795162775184002726105546035679762496797237073726355532237158070424225233296083574589303140442262440005931226942329939518103936021336656672629911093023931814739936184618444355397277884618047778121155361599220883242194120846867824229584226798540410720830168186031777098980133149225433882045202539517881368134616836532193369874979205615012645222066486416133886509062140654524690247320518813380807216946101961875707169878000147295439607920067232375145678444579477165546852648545690780803578282730116279955966426372107490639331263924731495738754192213561470497037324680528050236971760111616372751370812821368560943330986056243644152118250292327832545296051160236379433617531635772260069059595039255856492740817284262464720816856124701140680936693659426292194011630295464022224518589900809968281585644407825578344518821432094769297729039239846958935971883540658415466440373869734173885353632100671224809737382889165754597309441828462376806308276114010579634759790680318660430295561959537624355907800095985152627334641485690087529546868243093658622622880855949617201476680256251086026186965638759069192093746547010167681969777170529693574411875826172704406083959295885449889124944610979297795443485136847862966553341387123632932154197244239748107804614734923999582752130529134008195049425091817192339667334372716044387288473696126249300044745788703476701186181815628968768271824966783708531519972446053086383394122712478093061086340773058040635856257572713107363248171192721447036456384517204130656170865305352736432263195043695332514929436964761517821159641482085021124762215164973016406488790239474499780557042650080284950797863636444441936584094584512698619562905523121335655148029379730906947668199593508341509813587143475195176771400264043203294779027594927817743783492626450417097786522481088503440293100298686001201225488799268180317618094740459952238938365274642745683707849006813167389690314288915664554782529225937504749981102815539695664346151353970426370910960073538522589918015063020530889701587357908180507926138125416073350914480979357957079641667842169006875781900973869002357585606834002879862250690624558539908308306722324097397707976683303029809296249298846294071390239366996232822269424310701019467384070859634194023178829460274215313255577160598970036266840864293314941210836164477739551544346702771010185188092148234819958759189732712935054641664300148264636960068001214369803525769817120430039997725374357196170430275516807081096361776403982248292216841490802579945667601824586927978272590630232169609766549962492034806773506584750146716863666994622984153661890911719752387214932226067044590033596861204023674533513636174030712405201356535209067262301277773233246829728330862722237179365987646069824316252887817044530748714019180037376459385943523936343921428118025182965416485753386860834361515664723729961407062375658059335720179281323505848422093404516634451446232624447848009272089498530994812680198519329515386288081686346624167253284987507277713106481000720985001717817258363900006292137605552839440308514118248996607929522482121881733960438620879996851829146529241436367212404228500625992035305496195709843621873032297463031157954961137819606179571547326981425522821781381715457149215538264463593710111918917514292600102186624268420693949215765880136407821147444987035865716440717230740240437001343989620734578503956684364152045865119513086678494652840631685808824475619963484801095820574472896011350572677115970733267644489753697516085603128184982159599531547119370778826147424184581052705372403855017603188638517174590587598374261375888498555821061532115333232678340824579141599480008422628911511151364295246545129004606177196998188290354996971149463409140447121081678629585514161545583128898029127562380070634745790035796441102171926392907160917326955188620011093827741513435343789291600175607031938317428644943357982276948165621625584983348398782826253497746912564890614725300704522519105653155181866645902153312407257639863700547321024080119796859285010624669485122571460039211332106173770962791512085547903059733557732533814445071498717998091579852170391525080701062891287488804986869193316831659341277617105769680085739027980295952032329572951089622258188111180657511566653524409797412734904435994726002550375378654555523608253080953551495101882507548821850603677944930069278758089657821903252713400227448975223754105277463040380889906304805685758005751255348929437507055162169771244727529647274511932455551425694665310384545145674944350418934417870035875217638549475749792462849341047870183369266104282063742271914087628122592802944079443297017088872132517227898369779958823201885700724792706032622182926811983069459193549652915506199130483025512057205235569987026656472176257828025118782536766913057679531820049683468378552360002827677089758315374622231228401910640881331874322234676758313376618661327638656777882896162701832411458713533633627577777603366724508992101305352661192622708950448878066113499838740005764441222674976214051522421968378450623833131923989638941353368800037196506038594947523601182095233597937022872693511734991336404168542730303878143495009997149475728799272014583020717369645174367382887164354034081384472124898008481670267404007205071387146750767749572268477129464453611457507727688335360265185719377364570895508534919069674937152238527359952862009854545474954885838695813055916561961682624460643461844146781989630060773639757263396802148102440363818842953227225805442481622003752741053362519914174181784702006163537973907256637605693511856970913071600041676125028920160830853620563779617329331531674056209201023935705180928891613105690146647333832821074631410960452973086347345328153522862411445027211382154017325606679264967494992781456205104759706584057687379816507918779775277803269612960207328878035458362260937407983116599142971141226660550623081218350265486296095356727915777196638999627440819838727814641208200594297410234949848358133715116444762761414005231843912604986467530316148745742593391990346239455905820445009366686602173049081984266826412793833181834217959827207913008010621786613143995590459774342602746304995370849173856105052372472632107368395486518741585934735646033544481334593989436351902474470872988221114555334661972518749375290555293897278488407579420335944011965692178811098243388362035565085134372116816405030809936765436398628172860847676047577057796348662863670601360671340391923605805443968983706002801779057169288000308406718998420472781241952278466081438904675696414560384947168584258315311445629380370830707928537673090569584457062316660686195217971187000235127353605780839925564947814227175374044087727359368129553288994979196153849808866778062775514367557499942118083160814645154575040925232853778870716083024962709481537764811006957978120212137375404024601776165700694695627520966055105754682343472034578858606672431979902587296869794522063918852253682544054741147945910453484326326092644845723705369100204154283747508581642176331360643244236711146792855390125104986926669384584539477865316723198542368698242960515867103769495657138300040647956065658410077533171192215657964473722779892839357111598732379477427030532162016635440840788200265815545871879619298407920747277752974555835276998109634538966035330754881966387867342773425163478032734115897673095718995260534346907802761579103223746560703288203438198308367622027866492221415626267147813459101744559328752965642538780727969306960930744335322876269885108158986999963984866726950732406450142442124934053236688059606719259766539028587490402496295869274836642548640952400374002322615520351512644700019351275025539191521871277686252529474931808864877103549252112020243936718561576364006410140647298836198533260757169632873952246750879568542342021490240983843946841204146268280468688562207094665791448419022968413161613631408531240103654378835075198474619568160215786785015206815375685098956555413994040706633969292552014422217118013795346722669275552604570001907229169209151435123440413154007075622726675769081756271823460535245520888978824919711105754964757010759665057974524757849330999985801477256169349140216530876054847023227788446829042945656797770773929866991138021429596220394244124511265109742414758396230460536906666020010265847960661452644570863862794006236342703002024897520944964242132603821527475406728217991539974993890688567651748551296802334026170037715598765464478532116939844971096481980555294797146411424807640955108619829750557836540565724406138503316569954496622140728995844939463319704343459334261947632937369843811846141581745000978597846012806511045196572359849889098269104915204179338619678587091021411176219107531735673283795972463995895220542378571929098948360723098469046189283844658327875326971905875755540143784111087756419785834571533340541533107748441497356646158018581395198618521552889881392514035342798365623175213507024067447716771274318915945402247061531031299706246537412785496372889951366333697357898937697824467118129454240082006732467562592075760865435103861997287538582811872619943198951028488116327416359552545769269814998949115197021349484683788073312610345367020342064484853715371402840291695833841010435336108003973734353982215055491208074062168203427194612462033032480562027545736312563064435358350363668196207196681893224878189735291279077718466887528230576427642426658326349328417174079058773036357895305260614523573098529068037298137563319398744336357495679161829083588637436681842481154548057395637887795315900606165007362806574786801376242952023993244310579285075637790572656763839169228035401570176379259804472889014403289213080875944434967795867721495397391120311314991745534415713100073788302322948313276916217589762144824988836255358636065998448623608797326743214532536116441411080869322547346201708792382193467363502293775481513231678483858798490779002201701757993359706582423239161746731716664221066759958961557453744590756204609483562932648638021569880096174366261343289772405311455092747202863403619401319465605541148422301033502009925523835461706293346727122557108863025325683783816076191068327878344097479612017161171017295823807813871906732478354848229855568317284614338468852503357647806095925810126544849570886646122242422873979036029408138114094925073814770811075434124622663319627818930285684660289723049666894960619773048792047854201353173497142363602372451042923598165905776459162166336529875672781736806434516346597265971649389116356214719288479552997492516541903424213148528116913782333344212959012128626649246955894943771498553962424652287428383989901112014476393860183117385688576631919617241658287759470910882227378021459665623627554986058993426828785101309619235682516631249050948093177295169991070144163661232932148131343060716198034698225278608445004887084012003641135229813451686540405615738530812177784144615594350495960421911548298739426969317253810001886909296367796811915518133537449291413768542264063512198711600265468442134791291320548686941450069848396337063794876680880403381531854964773962696945878556785497981113245148420716000944914795139564258949335460189034431395868433534010949463765736377981047713623508603067902323702542119931492022643205034151540777296698271221843447195536663020289619489347690074854097031896837143049801478748108681960590138737858607319766801950981562252585627020893510393100967863160055448976847165311685436317397417287177106803940930546487019036491201174480116042380931797163373558649637605514807492089965020613942370870853828173490273812679206121995858781347907311060235180959007425910020165877356921627797374512238116275571054268943034238804427813890907026615080653841025535978677042692336577754566820664649322126836817965262851754304173412994423837824540544789125560223244842359719846628278899652579046667686610607104489624322199752474832500009732141933883984054265863730883422717980828458881012658607047638499850086964030802327846330602796721042599956706697723001621094089678238083691505612709830105793029801484325559491354541086815583544729037480237672642872885996446162437656480720960862869627374069051551420970096002475954315124115245032992768675750024310558152927985696206363535352152306937216562682686741676152959971729582983013002663305996364669209073240099332201092792285805451180361031029856893183315345174580854525384501689063260505511411592778284658898261893409939218610903098787801833356969712085698119183728046709482204149883272042863004253093688464179175339825170663049185499448693668948937767757462053177936143666736768182371675748544505541993976075271474139098367020586450215181825005096171932780142939992053434667224705210896198893386122946474174816695711297962169517831736894364588185410283492042122594857426799495101425282777816116475910459820817195422459948830364249968240397824258186256972907647938681913710137052278787826994117494923410342425581834569426830269921495815930499905743619754511707402393567694641856084228450846932954550215085284166080698281108900171704553587065067885024059108947743287157573985225911304143113118722179611523090150784673144942629388236060512786950689093259767948586590530413419250031806155224858082221722627705367905993627111178106682212875976946638679328158012856021232739534679570314304451269476983005997739251245411313520938630887060916110538905191263106676188786908130529099876714446480877949488257177472340001456539715343026461903288616099754534651052057891577711198047015659251344274491876232830591022169032748142725788685581505870443845789959594321012219860070714275446784569806108910660379099279925476006642118101009878621746490810795283782959946254917854575684766499062324283482717234849571099455320874628838917841361816001461965845130528695121579252155269265666120059221885074318319824213380205832432007140017469428302036915736821310284298836122691470748732076831325353615097813807434178438574373953172140881957820306748849123073584658695861715843922564985250309599845425568403103137294402253932007638441642124602132958697464809351448965348021569472577229321553139567152691024901548525460679397267031292002579985624927699048438614419157203484208087733459341813757403570251467798944356683116428085126633836736047470416306435511277507422110940035885606948965998770743849120217019996994488436126004968872581892970227170975089797765050580480088553650414416620311240815781765248237713061488549720669650077923938361453914616856420972563792529496512583855926496298032690277416476649878304822600954930011599838862327983126956854813021288537731224876660747553759713200477655732237012285949166882798347733432474115342658498613890887487557014044421121100964783010440291555940147895861754391282355244571853980523104876091277741189563001245622984734159492085655593542861340854992656287769285782320803468534686142672637840951373594060304711547650503592086053834100603383980511805465381895672450172196483732050383006007436172215206675061995122419832064828178039525768060456802749086835023691584339188471030622893473737666149577120115583190148178047791644909377797819632464802608413726059876124195270383160785071004759450640288229307373387169384655202584523797042851785497105356748206203330267905364041951345424203430388619943167970393926788546469561592827063870066334548905768599748026953539524058771382190104512281177858535587377573564927233885666884515992781965553892626021804981571731425237351577255047347164265894513214109466012248780155118000608950557783630088686933595135023026137690911905687523447693104653580804653331882187298652735178041500961103183060636489350300040139830399651348898310037929520454888778460371110202413815722610873056054440486156217057030045194339650141811175493840025884553912014516647214692968137548445224189123798719574964154296211244408157583557854710169028004091626268369848601170238737528786523213923580668878643095707354077583817838592398725064278667203125063910640864891789068167259531769186522351642502614125369971835281290689600957877153006074771719996261949415764106602805660339135439481117231201627710241819243869089482053268941024233234761007983870253879731123574176154917856233927047631605946015530402858051725635233786410228494753486357887821396897310973327963566771584014531733305597339942218521588960001889120253675357497279910392107116949305235750789077591776091217362439676126513158708745091738955282939501857055081761284155300281027599211162041106020187589912655028742824919519234599187236053185667169557894476785135183687414967362979810757093607098301778227582244114185570138590262050551209407269890157898097084294353545564271890471270287969452951376332919702027723702428890710428617610148027050797153539652487598875805349359178055324966798365026114752399876845589761848932560862378906862666693993936624657844473486762772131021582234576184220685667917572309561592083860538127434509555034424200840086772315269379989594729184416284575996651207656591471182711855276645855550190209563138465590344815600359204681109659206859495527050288350782108254964204874012622760260971309210600885847996209512647697158557474288705030801870330501649609312178264547462992425879650196465265583355978727703623006838718372030387390973430819189430582152393917843451891402538471024870300456149854760225463117508831801475766266093938953184080793798274324796023502243455166703256282694739599021699236095292511889339496784059133512157818770776786030131848361650736574122102601625358984343647234491686906995127764784145393047043522048185350182712138736343629118922142119746312020604402230877876303426587681307719166387413734072802281247227471769634761642702155821100115920888922782585362842580586385817092457756231697484621518869862814117022990256081292435850139562275016687153623513213417528329306635386874572820349460396638741385137515529927418977832058929593364021939803858493695824177235277552943140012750568810986881825327375361581771620207008379239079301645406440675473439897541991544715177587172393565225860559508797551131783344509559690790347615913186045113508181046883396349545532069955434036070121491946690597682476979887798825217730658589898499570090030222362002427497685706000293840052342945608226407131731595910247020465091201181242629736822156008710249498084361305593956394682754975279327144693787993545537008068749580091693292798219076136914648502329158307834933432740524862167812654576635940092036265412885150394468370402871480909986241954666210841833977597636136692937395367707552811037593814637077142219823193329280670425419644895488275996675869298395838904803882676540505900876706711407019202376138604692754476760966652682598470394235474841295627150885931908293981862260149762502944186014783844109979725668457439507486687052744306752426084382027713677917005305892566920430301741362776586950353362489298634732975128255365359160285060905660531863219540449849024080822143551155587706560572964595778081878337559893066914170765602653462510229168623858845227575963914807899513843474894333058434926518394492178617123622460717555979509389181633242365789152735669979629439135267007546038054871611385542509321909414412931318507077576937501427108796699840064269325233540824851536820144587475081788381355669072633174224917382330268587409170953604741073318086473445890510165515751286185180333199468032716905726710644074044070021189100939144213319087463807192833530759726449271675382227266050650609405606027825287743616854633694785176998235360222721340135100633217069147668872701467180159318870064507501474732512880545515825841899324297031695017436951099569895752719756613543212789344813446116356191198474407298859868650585866804316520371965969767836951538595861926228922408616924172370090714786124212811800297152835242241980609761668697467472447790329272837378319365737328445836482823963033174641269926344022089379149618390522358418074882573396050256652758409276270910582240967412931191561578661008664706496869764279889835579165382269868892379844157175623720285459059608152452174654581121524795328238592615169429432887167678617433970498669882569986488911250496856610355688320080947908661312022656500071268135696297304046327595366820720407148824893927729711742432941697371924904786068655967298734024016802045924662380721769314741609586054141218890279132404881818654684819279522999292298088740859669598714312798703518201808247990276108737483145713571690540553245559658087304650622131802323417502647660996254615452006284963560370469391337104162749103273846905373696415893777665207800345595720690042051608028299821361152118013296496724738510483575054817442307563312904666176566005257536060676778715482141629858074258216222557401439982317250311961561614590715541868875909807364349180571993323680090246784252524451357358572303106626542244736170018114237780525302264950016950227948646657634424074118452783208798690982422411921856046656994536466195198307640160888702500227275279562823306425095693610880290335451555993217004272442271126298917043594778178683388809192887064572013953642141314206163615081081047482600163038495437313074926693244500122601585065533423043210780196343887004564202119368929259000424635152030414682734752090476419303219830837026311228397118882292960350890544132429651613366462135245196990748987327097769758888244725493024703132840666664167928034768330859325367439610921559248574919500125372801532779976452871313187490651040263527075416200287909913952591273982905954480524897564143137775631881564450298089560467664875896165365611410229253750184930150556698680399510800491698095187002847763502440707863622317080678669621826534720643663372576323653985709112776559119798763856034755347417492835344076396800278315298801557483269946773187734073633598345800050616128944501542706461112211547461081752599757706663796799621334579660578107614081252454049050603839695047260266294714293621609865978420751566286811550194563484870582910011821555326460591046161137097447270631645323841687514202548841556543955642558476248220318922692856355805860699943774489417481752445047372657614493454539599688729491415064522559301428533500713094933992227588696799106230465939798915524482758722251814414607810574265854401578599759147611902029860011638061761941348563536300496270998055176623598954832711881119451105024549797745965375129649203059077564293956452334274283829089835458682891145331708531745080460333125962490107815971041796277883632529380538435437513356460853418838495166433509035507193367438672303458310728931823093720690480251621307161469292728504172630880723008099275085135760901708200017056931446823572269996126755079353982268719748751306384137511901184287647261952797785592006807346340464859958167296466525330261264823258590385611434578965070643702772838863817701047674920990466746249490610238270770307917725486509675120943476124660325949008328082079323288616225854839556160909662949740110296121867054094842274705759527614892011085314981748128687099509996206081873720443456379462393964308150879607777165610081284468770509311370925253198915318206493930259404435727868612935584796044272909220080446954358919624710440050611162972838893557201582494011028683566064136717032469307475907429513071222570123190191256637067269330716115898315211368153800408775699343593949107325430396515533431379881927323494447968060311724766421731431108062929376078535865831699021408402336192363340186737048704641871581302897951799658573085009653195562523442685880881150934727034570179415476758654847406609496605229699161215212797086297134191359474686187102206782239079974553167766335802202414975334118785336172825859730688602674583225036657156059566740909266247031768712067272135526874095317774738720434911777094930951548331137534418119194165583832928315335799013745111213083412196875586371426521199618578004233189019653031265891389825529068511682240266962869319482658401115540309448300868608575203253253850628291205088460830660889322776413397414204068063239456605141712534815151697731559550944800458048379154320889986984940111818328716389500704531872526548584974530830429939584300267691955181452644802363460373299260097215531691360872408746709116228534266785739982146662074370722978471326692040203731127973350869060622331299244747926285525509480864089763167868509710443590380454052337418839869539128799552947814789179611337387450044076572847393876435909291904252148089737481705964437164481418546886078679078400785181013037029116261725010733138293607178419496342551789691447650511213309231325226491712787660451594317522830375801964620452786490386390085421292274036158829651153584247022602767217575901598829421178192947028106135362602219081020066583540394518575004970905594811199238828743942706439214457989747470990209561744811779608154961214790620752228350080615964595640467035844116510782237269057483846920067904019769630166931722785597166686071901111648789422073732694116166002944111735440836534401581847461136528096619919537366387176527957530376386400109938348343214800215553037429126042072248707182658389074283013536830332677476446375116460429815900800906098654700057085863195710267302926185790818380892111813689663215258679225326624788593178691969313452448860695488517441175524567242165764815303622765317798025901280336759033164520856208420871966045895719940139226140325096158711772309595923725885052185228042680046055681406580774164331292923760893239901100555109709092782866787661212855614078722805863926421057388325256157908295442046792823042915416960792561288916781058507023099500557622320464517174833907632533526704553068888548932538854784584144241712871853104317555345619179540200938282944436635625432779908820192299942097622803064968699041511876813036959551154218908230498700769667555241459648543699966710409100607188190417499206197113654449299176665978742174845967181669067311442795026308651125729563892928596828038557110797194293600617611624606363899123519713369875620549795688046935485433904566606144891176459622291330982365767830861726854562528213648281542583983135446480742571383805042021949506496290161349646588162197204498942814907953908745310444907285068705698619537564693898494659658573742703262664204591381469889455454127356838659193967053592081212173110611394511595588132057182011007840062466027355676976060847466260955560274799686494342171482830890018715559600215635026692262929012820770393619749607997618413631009870243376679420315714624174623024382974802916454859155548107062594839143698403300349047671835044490720355262117422053249475584630721424651468889720452544882295670464563755716298618732863757293062830588415869531222760490056096558608563317853482409650520573727102958321488163182448750356381989396808992263493963086966371191442244704698827310014949279775326439013692280378544070646241034644507179899422427696558086183759428621046500830647802237132379334065702971336437824319434821602697665585298257235541581587840899306858481193367713698229179107980464525869496425075628270749590359588864947974539741538165359272800873813393926716713435124947604827325620551109147613608420189032460456747081431398856716522153737733572486003982086516834658280425418941008281927132095032761365699217345531126171257753764094868651153826832314442597479121134935819596448558711659119215961522456064021811378872779762819340492566724069106452900686989950288617690951730753617264022750030713114297073134809287310122466512407922843077997843133883106409456135465326164396633269775089210771131964993606861026160543435556288460501303179765828554424741640719480985068823281676995391940025951039963973632553335691730509459930365190257290935876584217697655807189546213736209092422561523395160474191424827226544858779778796067857576101015387875074581874013707084211784906562293604165351992099699651081482495857137831745809340793134379180139638502830579197285065546808706436112874492117938135498625855592745551212882943352966218271940664574753654339331681820158476606568308700447336053307572244419417127940519868649771837964639301300753116125496174258498754881424304110572861862921716259514742510618342303839974636302406887168269317809902474317378186008659121611029242384423174465014159140402177755816748722349112805118675360211931489097354130361536540595017072151327785216756218569515210350947372762053657209273803326737746486141926556347746648887188734939290546452177241866981072891101525128386435107341074247030092941109700134328325671214461727326255198742033336357931344635670130559922695947994526187150245621288798185719661578910431521374343471353346854419354667460050259126777691897327999799707984619864425075124868013545637000317832683441233958553239516133852362973609266521910804956258178045074290311480955971859384498507856216770060342549630577056354477944420690023145781326373183328795634365779664059391968731690248128324741747977558300823055595348439035297983756529248702393646253305400586960756602081883175896501400402544149072279000454532798540624677507635655483217485804835964988926963903604916135995393631140017707365259717362793766089982437776910447330852931580669888734173783528052190868536953169588439010359630826569900074833551458577917864263654536132286238883430800375668504494394257177539888954262415573854294108009494122804036886489071295715418871840230154599713655332243821071138626223933963695464083758403115724152347193417692584550781645898776951735091503002350003645252277427280179334719332840958938043677439822064893178929478182861916367371167256802207456176960667526436363878004142389517255960670082649106146084719392008838661897671176691063956014195797252913464849331617047667205025442616242072132093333439685544248755749245282135505608709866178372369806272449940698584999951296824659845950005160936327158728566279060635816622657135162566578998402460034320241488627659771322557256080426634206966959864579098188091528932572283529947243133497042535912460051909724069943432209486327276036770415095839212741925445082276728811487268406932387026302427202839664301718957916664317169943041515454895677132796244509267807654896730467402351549486398097513541509316945362486968738485630129310915204340575846206899684588445885142030990338521141116233574291192512715057312957467749362084966894447940717430315865885038995330859733866798687400485974567304047084738805069033108745822659551264684784229529727950387304584897572404911473337814931278313932339033685621790317144208866838531456386142869925329578868044261630259491560122629417573895917301357643454655649055053644554462125047390318020504329894261055267879915021495039491265736505594677294261663993140953536062104390075244316958740695009434681240105960010294398654061600089496003287151807236719877613513236974416333192164555539235713154279370772874694563023574156843189124213541151870010541101512675808462846855578411275649801981575438074600022003667565187201940054835294639235026944944152694717343068630506452393930776268240880314812909578285394955894958304002729559036099506660492090778887249118630539100467132979518189529259747837296036105415521585960958083474266069879798722089259533102089127149264967916213725472668754400651027504926574027490786477940341226185711759457610040879549067467568534271623543385188186158462112615858339370817667942304997237275559739979695777741259655707646077398553633247124620880892184799765660894812076360862734865355622421003329946520553122487827758029283335482093028078686197071717167271646508485954906973135283130542395261665273124564423270635929787685078299617179758507557811732667279783022022307837997572172917392880709037672371171822470302623141517343565785230920633591910077111945581690248481827762806986292272662754178052084070288295986146912714630870454925740671921967284649990836873367976335546080430308659664929480584132129779421080273117439128378643932998664095661539628309463986601678954887223717579233699538926939252099034751225434485586124808500991508680050717154184387639090689416991951208427398859300687633351180412490859384420033928872892709615716867434059905985529784084545209186841114172783431945107761200089390555922764794903800578912824143627554584237067533389780372242382880290183171468754507966010338042207352488014588742102157851228451793650772311406668488352230481610960603431298815051828464439168143889403958994817978678240540910079851938377047427208259503518304179755821586688584551624165571654720842993510280086834482592420905121585664504074780232645496627228352320035094747387684014912642010251223235968138481981927090635999060503432398916403209875535844152230224430328868087147246592725392252699600497106078027379347538023218149516278639044661454552236663892517308073357856557729996158347784891615977522271029146084093280352499760974551585920246540306331403319444522485668024989053110924288670666964888793459921141957866888090490614207388790390949669212596832630693403884286795662993971992232939599068431205033629150698480291338541220284004249721577828698898273059924267841678098787162524540582959890841108174524383727233646089865941995837201282010182250861691366802253813084739333039811045511090638085393246153479625678628932605274368358900520347885659021949393377365948400832980450771586173410405631472707960080532770170652651537156989699885787354073141701953683342650229047756229471530539207619582127517395673747465871811625687465808721340001713651247632986648452334238068377820932688069684891793505666018995639871566640135232327408433468900742977017654930109318349713632186844538338647796673564963504602740579878278603921980487276302458522516731901956594631956665870178319046636883729616975548399155569194567742734707715433712000404285063062004914508213001770854916940966649646893338312905033413926153513652304930683867149371605663654732863100613524885145676457341261730441034532636012798631077195981740714184757903511344130013462092629045611594331349882403162017351906733818992389903782096619723676469101271543780181034093413979689518819559957583985025634622064884432965894648454217331555714791213202999163494338587022582883589169473038889781647302154793757249257369888662969804510793028292674007775978769052690018364667585156319440086859228310238863906531264900653856350413431138202833719001163803459057112784063723602272142897334927205309300496782438435654866888371658180827221588813241997059154510470164524732095281364307025219401407201063485706099076040078837947756327235032281992638866628960178874304367391209978960041014180922680079760679603730248586885388426321833795468709611406623650792119055022156000237440341875746544676984235146875086281041215681593527520797965360611147853938126458915803197398419953706852585355999362872570643364485329129775114322686181257379593796620433459360588934963362423438237769163139952016742448129904562551759361875751289388120916802872574469127536493225202867744364226750229036726365352881790490230533658987244812299636501361769279053769832158118207154422953006949879651294295733421057599160289739913175095372166382472032972514992328163335149916102760281336789167462699756693533462703531842717215712810338978481743025548451816133893166526090299968200128999232722914027411545978252352864021600776880052934128752211340032149576890004760413158437093252148605523801144229120121498926307148779598508389590368312691984996625574574257331911632616267553613570912231056189621872356593954218206962899397194563576509793265571646537338648699314289519792274392794051461918242920472909692403955641400666849020192997593470708192302088522376187269968560938954407302602899079356872345932157023381455253071844531371184887636546633879943487600832703548575124739097871650349172104564422050794972493544461512014755720014262794659245615468334145964731072250795183692111547658262598622463348168099990576931135672536373815681219088163896364906436876338405636151997400296718397653607492139521412843526146461481035007286212050103991297478350679464682399829848244698816438939201494578823413788591051752885923742837730129250727655503698353252476970279712113386793480224111791890808824556659225168759509500378575834060470523802270179123534001116330505117265087153719975127714215879764440669537988979015712388789556249154830383098084196592809585240800760788251382909408584760200766210512124030009050521835993194679248061767025478270416860014532211564394240071298198935798905448994358462069516344392015886628389061464526183478241692894637945817446806090573310446421008721922782296414921046759604230871375806227765822074334544772864507312847801337012779619473544029319559561098833527470222762085826893852528305573852917608647385636660341949448631628040506006329287338172668367262190532310837699860669890728827282906588813142341149596325529945572162719675088538801734758970108632776135955048967864098130854045296902490098741892980256815528207354995296210023347194872508632641810708367366922723055136168596077880620789588675646951898379008014766771221223580803157598620181220415454342492982924466719197359785941611181453596020357080019793980042128087011435824245961744969998423655856492299498811367148453099215756117423552530564483099849355365910462240652292508462307939187232013358759366447545992748632229804991916895917371781297997715403342923656847159961816816870973015091067807041957938726731743188919660031795966652087610992353881795145690581558747428099566488055284919669617772525350077115962281391465374515249050911295378443830085651999436789153113953925362596040029626154750369661016862433734038738767612368102486470286514253579743914447832633091188294738203514782318408738728271370362765367640538978604962969406966920103685536816198297471401604209662126265628837648345260660103228594926932867743079266950437593388114930904531974472494322004076471635308359986068987718218140428453774661246676742652550624116701584783443143156703387059878245983202570829649329304144966128302949560965012388863024933385484788725147375030148250821640350378702540235299678053251538145049079800491290499551861442427805857902553597444293371003097295766189468201269596677561924653083617012130894859589428408272334495796144292897791185553435297606593218331342711414623491258892878799646646411855257679632953899734709389625304388092104466689314929294082493555984646485459000068285327586072466730334887441091022806318426417467171124417259771561431511653369817553215714829092802784627202888687236942100689160895324883955396707876152638254811420238919455026726680316156395822658584865547664205610989234051866373337113272838210918838594102891351211670105057872852752385080884549170240633053190082993878873402449685949135767064682328060737226142544701480906441426169331462438245965659502963399453357393061160253570645257212559793626828466956574142518013653388330847068304091530865372514539195821398753660924384821414348305296345424955719067128210577718443085961471173042576388381102493331620856417044252006044991014813454764045086711265211612789716037170918705848989441219640461074844077730005430146657288810921170076951095066799705349038692258102234397741394333573463180877687124018079250992507131227091618253709142605631598216289339378797674078749545826621419706214190122836450174003772931637448155369531645624006311096976325509934166870232795109006294387347295561382302161647272431034749457043251494770892852671807612122782980737796414672911583412706455942404608833633280288181114577902288552843333370282620420453608112423060852331977237360337225228644056534717824060941880282765350282160094967564875367200392590229195878341562930336609786554810358558889491774017680095298709912681044657801743237300478215208722603335118589140480747399185421296304879086694143229952010850967854313309744890497898927649029974706335086812611381567542440838871215896024334716155352707930783977227760449316459062553137059817594439611144142288750431420445646208226487978556913521723561627382397514945588823570201753634040785614641620293117082554854562916568912039594624800027180811772047128568678002739681165595365101540791301471726028536307656748489250021712112721965117694273274428618434556176340986589262407706788325621104018179250140551627521897619744700926056566185830050680686287735521130035799881278102639387534676090142086579953671577748722204284036872926894708782370218267960944584255574885722185644590044473091289650597497997761294780129258482213271350791451149470965577515650134144528772821287533536604237398172249962046858625747173984334860018302623901130692745807740265821454671546263598031230125824344899209734164856348806552465656045590750843006775226032782257040757615577105685311311479577904462663520801291258347188612458454388806131357828118529375217238013365802914931758977169196320060244192337721402725375729620303711915910849239999543209911049828846396015438337363605181488077474056381106671876842807134260424510607346336852450299664898876563991360200016176988496138483212932437603515618732646514897856250584276883123508349468926942001952957872140153597710548698730108515100432983001050747345234401060768782236152583263247503675490293932705290986243805096758278940699616783995065151809750836027463344604313076180828690716697921286416390769767035742295323582269607056143582274200555481885440276083360541130388917637620643207720186323779707678912517162715899716840999429100505194058798353088104181926610748359496842453258271122537648059985235570669823440936866277141170101014001810603385759782373985951327758507236062079571015806524358465656567218394197767269691277707634551233352904517425323596807155722428324937393329662824531455295960091864366820449732342279758459269573138510565273340557304374422324679829196257089040076266504737088329522375171320645448783139778475685492886665062015809936589564827051131176438731837862813882130325302214043943365333651004537262612719810418780524844939902279949286111768606464624255774502026959227185057425415192128713473687247495462907015443635192507273199033851139558051738228055990899643884825718832060520797748539585214701835918050955759149238553176426651537879451415046509844150060081457698605169654683099280407363516476952418069126023383594697254439786606308035086022225747391137452669972879142133583857159206170985371006178257991963158779443469375303151435834733877085524985843446577452280785636496796040661948995896438156285040584551840833170547543126151711930362787184332389363554304170998380426086732138330619642540924654108678162010361091755404340212248942621916279182224937493012383588909241708459051965801702328942760867562833203900320587659864881907001299785612427903571967638385804440187673765519635123137156805680212571133311117964741416115790701418582480022293794958841695268391625830670522237084651516462000603668329486081440571663356426070598207187488389080054142344981095088457923657296208590799959865116876875197654090403574189649707613782252940883755434478703245292510401419940544320759301389126635926477603718443493843197860724050526564241285108430347675094252202290717609442872826080162307340812640091765406617010209039873397027396751818187837609974343318345459740220836932171663946461286824423671017090154508947758016988684545697372598498708900406201519804443344120803292382077578315900497157328816789303251464276847503933727151595873272508272261728505009296788587402589439064178542464973064894875623664923669660740553692290826809322348817376827234607121021812413174215879804168902841304914224596042059536564301085079211724070150466476444217601192728777358499109086464776268724557131801720841827769676429483710380445362988866180376302411220715808305455506796935666897102732853054578894980863918522643292582849179535000766478414445552639084331582276620527373739604102110044614518731672761018900215957706546115031447022042785150343325568148290445486525313703055984986328442081068335153647789015808899413780409516326266522244072258760387290970186814260861517433716286693396573654097457994714951377207708564361754648716283910165639150552061824718836360917046904336417969484419982554788234223739168530041810396881437749258501373496144669814884832152708425454343050866583118066973673808062637399389487760342388866806303089513282735783845266778527709696233285142461374480629015457243058208378307577597403524485121842989575496164236223363651750421658152129255363964977648371462535711097359961413858348058416181311352738050472468604739576996395198992396582113186490527316796538004608383645487655637289889848453165333387623967811119786475643963488293307350115363445356023736118026463882144694582307782276206090615057432865928762589692245806378048887809199575238740208540305649541163442922595114515532499881687053815593588551489273502167503191897349934384459571992559808245905966716264631043102766747580402655845416075958601950256381900059951841357646392960450181247407461593736289636730736999940440463910579203123302158784984857306224703657064958362915565430120088095344155864857476597000803418441031451494708178761645328719835892518776686137764704321977696172736323013908472160969606942571197953018939346601150151272825784931896446904027908997287902399322653720295816618036473055385816132628763351479137445418612251741090047620768272694747060835166586495716813023313066374021171745214545748899949550163132934197935348256653977625823090833271027299327365880374023183600297440225497183494946284230986205780238303300287380629104723126214953947302678455033780323284970457890806270451734146132155501770575101037040959584524075765275551468282117574561268724173681038389728047603229323159799041200649887534064234801587070500638099967596032977423827699523481354791466421061190969024369539638317964878413958010313266424085637839665757081534960205519294826733551393821854493366372970040660470471877915388300754667089301666338598279773702142019966893128510235241330319791969174536008065935534319116594179781505243640546231374765946297203169024729316484260532548579990524774486751083697523084729914995545882485968427678520703069221775175282270597454774286508090391177329679897959679360663769706015835320333450795364867957518711300950202315326221550415542214628468181210201042117802906986481639907153500234175961426209482618386471339350495371191633220879503241295473519754326842751584217537900133794164722971383894878910191929669633993268356424276740270350663449626786913375303937519132260636272920621038448183101587044922277464998719153361252634251074699527649705799591598142244244267620872905915952434207326342751505291652449761900707117060892697907531906543723103276194139728095723803132518576934071154202112802890586730111832417139944191820874420590397483642917315751854970494311789382257589178871191329876842516414091575113813382837850944751319862766931775401567817942047351942516039727747212934296552021436281465231128149752143324461236405534058439097620229145512521892771763887174819092345949220757851465950912241545303014769533782414913276272092702048562324646759716394025795378982779620657771266696813199458784945293726899295539400390863842427679401406521365411766517028151804441214795203876022769384735707500266840066779063716908410838609331355129814041368035529808970658045535983511933195598276142053640292200161785706367984136578885558641734418773916230020919877741590181919348330882446846077504986257371879320292176158854941992533665089768657955389202978443947762916632496755750293911771242034592707231162423662050832308516204578357715331634023946594385678917430970141856892053659229045266213298019717465055806863924595000987426044176482732642726233297080638628116251861531869971760068372366898144143438810979467390642113855782502722559500330603206967101501559225070302957837060034162685262899596549235865874294471865524532150994616635511067827497315539720012820613419989914257316406143013985090997110340542470082141296599821204247285612861460500577409060854086649786351421751846666683768820758574912247451262127966448458803513504409455528189235924352194154613655833290387812995163651806918701373251646279398222494572112824288166741469403120165358779840387361858188537009635262377655412683851492273371818237434821095072122160715099539932751157407591505801493268496212334744142178135255831442499740378460772906494581934944742974097660427234835861272876842112404429401888692279478845987417707878608104841134832025118979935209227138529323867223102209037508415614044491743922311845687911513156855388565661951501308846456564105113561805012477725361396686068989374422341388290876472664584632698438956963685387069040353943660279072099156515045575563951973347867933196154998094424477638705459439573828223584900599599406951408434444273222844236412346992186799567182425228460151645133586302704027958393589408032850814918417092975038129189691842985042210838755001856840926154556813654960701125620631407014195511461056370099950703093904259474618010300119974988582326163379883555228418952181831097106512217005041982057240717422201764707179243414780715612664672759238882331638683634654841328191218084967514525263514389316287139116786329554346546007630204313037725332299035687744669945071010629927375480794630363766077171514986472468242793119073037490024313829000856581792809132266895978827446131053327506345068357870293053989980746398080844709351833704585139259123554768654546553446677416461395074897666932103424176682632673381577036804483708547890433771762250817035282368192290616372918036872473692139434394173351108324321630469274493683432645840871053952548576084106739920610659954009880002961836507940366383854466457797170537319870691156278310416130617615029377130413803659546439882014408388135831616079480504130273805857357999354441727753331823806189059266113662761272032742659519050569330818243636904328510761832299513392401924957121080324275712184243300528684452522850362514441293860995305780233394649850520186696613766495640047897164029280804457541561706056521099767838028720452625905233546285146795815969986220591059388510824212846232464690796080593485768032339259013321237043366331790684125885439297765843764678043137656990952263620881296400188252798656174172351535517514142324554980607819538511859142158686508349094978242274345969957483010804547717151333580575637472465666182067029648526272343897082517481090747324374378466540400928473340532871190313199494258424825495089312590278863352968769840923568289553614197202764737281953062924888705879373510000681762536255264978201872058013269720696805918714928359174964829703477404666707084358820153336567540528089737043708121393684939252149253263910888437765478472790827212580645220953537901115791946787964467967089704503837555832272449547487364516595976994720410088275929091587566133389291388089133594816639690797632519141794636528013287212761223104914408718619714221409728544935819069669421210560165678496287672599019019900968364857835256879700824043864821922146944734882577471515491209364875747511244338818278361264444111102667739442270019785676153677423758570994736422583270460115612835897420313842050390980678549391316425184000230178022894000794809874954093018241799016067984908640464198755005418588331873795954702299484941765343401523193692823698138646273262599723389505469923193942805930455182650668934468060457518746434197085323848927899450825747424158383928767868965921254895327673197662436807771732030960909621429220267915321254100789255874651654646925726634530076267039246873164287776498634915544795924403731958014053596854470226736487368139716248420946317915074909568181310361474987935313219959836653416474253078510810539805091546240395255521233919778450268965438766465615681972985718903181241596447921176738263740112140206941505620935962464519253576960760197528553594441539727583777540602578376291551377409534867070321834548206732067031099986052188867342772666652740397554444995581825570425349561544077534185514418531057864346512807568427785654510538213291161117030572694559762582080942212858494262474618782373630238179028238957097171540943643871465556830696611690152167435337225523336363966146472258285720670670104954893353434114826569449843858371581665726101928451751844081930072583341401586568891148147742171859440255131656762691267909295686768453807253398255957330980905419320511507101397902427929047615888340644771294425009847392536234747124717697383921353136390795033760582953123865957744639032210844687036242167728462055240161928398448660933147200401452951350159824836959423109448725446285393978155455680054655942232141569006590897479634472682659844405190181594000278902707610005426222734030368169558401848964126095582197102612319501006981490807945039682612029294065010629215938142631616935627826848352147934290451611963892896167836440324521062132251606260199038859698156694476385600536629320092313949144677569038876744128486549819843915888434740926558884648891254780119876487953227896769547528188570034587083935256796328937690943283054365864641698709099104050957310193722823412658946241213023734242190154508089819172426346520342253931133273690967488985045132727039169382689916852386614628941770012189439097584085681091199283853252124874445962048929487392449619697032386118814958415031994323015365757634630622918854745987507518536854471702685070119762052680527919913813595342286588207988237120014154766504970118516851607843154456396901632969883966619125282540521919387519062218398336784343992305290182281861534737493789192700274360930534458065610528706799115340368407015943868680050800185009559130012122177918047083112390030695998715600124158892264766769989846603954411473871089043255819916294171158197477466915630842267619689734803728053357172356292792901005373907791437057724380331420909502333331314405360759216996362538524646069428440840384977977628149851362909260460879614788574814243379475759547157087996292477528389583004735344673008304100842037092452446416756512971654433914250365138271785518419428164891089729108638878401964662157472977703605974955556489136836878436326648344741754266656756283409729067382527809583118381854280023115386625551139406639952469941197243682200885275596485339540007423572542771482078181599117062808557768441390245483575923207410120810698796813568275781329919853000915256223927759753156394727661329109632518439748213891004035940263414099617034589088035865068309589791229052630468207686785023453723555898998467755803889151912211371829648949162290209089298401288757073465683325684750174652231833147455509221255191335068174024803101903189662481093257693758813602597133584319177100377448913776653833303616506420301097902273904741734995310520165671822401858363486977224333170608380562110943399677881138975430440545839799142680354824930858228767120598201687555076739009997570046201185874653952908833108392822657303236774375544341342861367927895476240745852696926028377040504557719898186044255033183490526609103701442623061001167898377091494074134662607357719437026832566812692571188248098082340553379787930455245494128225475119558095427667939508890385031229841098546506624654706020515688633793914727410199625326884696032533909628360845551709820230043378541375407329364286254436589236143867105283971864889294755364240043811004795212240324685309100357801532293404571840085047807781132872680064489853417698469013281462733946934773930050135485209196502249885722539823858658207539234029146406398938830279594637045922691801882273797285904991510649013625018590616348909538030883772513321644766660222552406578891294569951955356571263012721082232168844276669309283786054324423759873490383123689165597910543727208916745886597845865262886867027781721308592795112136278919735032258809349522094438978798849273975981591090064375172240351238729832228385050384798234036532157962694530732330648369504525969148874593985778831884012491273687680680710857662958939158736746581045604340949045157071105700688645919023251454407762248558633075661959451074551352197204892735738596713205576631740560923871385238557988176202496598125768447049532622666216398747177840115621636829769593332443112011733522096374620978937529278179816778616516380898100599196399676544954651802106708826912473943812367311214344380720328919985544407004605676323545300013026000226966170789858421410335268198017204137062293261634849600824564654681449476906543167568210483811050236837241115067603172948436389371542408801470479323853006778575576693218080431989335774737874764354174100898532154877315604524902937457013020014148865738473175791710444501667822313358228752870094235165541221039931599470828276377659846534979245781333287951746163708115904928324252996802975557577491459841692355660661115415565069293395157233601920492080195143348793536783712767912546723716972601016844999104010491492154949965029910705194155904035340937009060845014675606486443469924239906498996086326898993779308209653006753469005638892638141244128638499894337601765109231261564067255010396989253038936555946862918283094318014979307676774140966265019988053839345151620684531209349260523586910953138675186428393054690009124665167313633008247767737097890136818820247360077438449309323643645958409648738242929654946689271145321685872088792338920689729107637883398201542714948788885888651536342157800681939498239937957310021454225846234127827274249775501940804171511261412052621226962297121142782782229112635951194855698260367691033090714114798237737782243995858869438491160876390500750984605214506904881258961170078068493757676902815712957425046208189581644124969368269630403580019694593089876045240637752649666642970779921906370398969595547791076254027248565283858708768175526765957392150825506421933486927359814568446241019900459925068355389949464439855825781705464232081477694733979152657364058127686106031110678871224110935011202953117305350174905663724134250486978278717211728452206924707767262665177742941811470064948619052389049322573007897702169816202518412859934135025522171613048370999056723458221318773278797935629135161297198221073419632667143004367292137941013593987319086707034798448089084816481705863948997854390107080777101789874492822821206214529415381851729690279779465540330331718364660932095225153317445740954569882111011433019547112360715606754235225511603886559295993943563115463567452691797295099839182990695170777541520711590810842062340625498765898444697088927372121317930601732213379687607653774965872444724886752343102305881177441206242477310206049210498814385725095276094674350155469632363471062123986501231102838442863930849607225630004595324885499658502250670085792313261424860824661350264813491682056841422158591618356289351253958941252403251930319159151108293976422991931563506763891649031946838012205847893143596783302742655283802557996962934551623605647106494733191528335691835479347022019621327265342377605460166219471424905927764157873100449253248282861323747976534721774476835617792518039103504541426431986012614190602386791836183294162986251955590793256812551943811522529853424606127227539008097396827791729368475676177125987025694663410719153987137756541349998334207731003213510227122601585880016541989053451926436940690128606230842307182705685915523702412522877565719937666308870856641347573423361101301606350986663060635187834123809675189206321698606010255164568037006712272437065746646489327135750975471163489793467831033618536573409451899870970552180275649858530226680956200666682659679485142646725140384794410796282095744608216144378128064893279248867868011346041085524649924805566072314488290193869992120074025500551807029337597449112746423025902461714831786404835007312714062447188829058173271242565854106779709560576855960224747630084914582999192232536246252662740116818644097693305439340060053576991591575396120747731532882058178972412904745926263564244449932269176144310324961863935888727714070766250101960429418766201993510019887833290864752206261604172033974094402401033472338944167868335649477074553066323266573195724590884374657671319647768088578177864904373521477503941645326011594246402204555017456426824410358690726815100964874211175572364875885251872020013866689709714033910885377032642856373563806468618228490751619646120437947285512637739909597485338765661496543283157210471110347381944792235217633932151237824008979619659692922215166437294661884022319303208409171839228007789109108592210304999569590894169657686210462348349740449661752640268374148257317316006432011111364978330047497104885355312071516155387547348770834810011053524933198708599977622305469567567330791740342628725716539249610356853276542552671382943144207175839375112518658582787767314366226798474407130898707830630830101931527127466802071727142660589965760691251402693407105336682405426084968874531582531696534436670692033840061152995750222317213979861757751577749869518496224246996367666323839924986703515712185993150413393665310586714855132218459530234363676018375642445016043518163702283474156589187287594751330984415512587806589833435685059679496166361751173779950182963593112209164986364561397368528293782077195257596510979062481447018810255643376881894934348706387303304268310625010753652009149067434817487898246667960040203342422287864851819417021220371538969579767290375596632667625059832811152838165184501022365930888040710406461036629191843146697183631383979241038296151260102775111883384583800506552448073869462932513301845867701662497408235448847348649868512502764973997845801343766717963863618368400287151513790934270238362496575188732980788268548099746449277932606464339211936372749041492235089707519581828038691325281767774484677616905216333170006276432443109620639679006119924818994467846496329028798492786643462268994792773645767276624097436416861038891306181272957563133695125850653701908551754725634930422180485391080245333492201903361812105034666179717170870552292622269342778057107555494854932136114961293203351040422968781682139004841218184485651974997377548165018519486013252634945431841449297386664914973363783676780159948479885374254550107113348084513545348228988289639057822874046939335384526497684763548228562612490257418452471844159631038404066583415828532519750709403852260014559828688382344341902949252960053750683484461247404801403738993835807113961370902920210363153335697196573563325576558392742491329353038933483040251104705482952278599400705167043204207106664017140614714742487523095545480795799833314614751234946901953949570579186634922753125678794135575228710814273702908159860681553054519512959421797572935209065093326473563488198296062764565967479347846883147081708175476872801974777703679320612962550374591570872546572114417122884234609164105599623074209543191076043750344128914106437018416476147064469278579219638447992272775945950124488936973505537639065675894432458948288291759442308761447376982313942605222247507308469382528720714170346418778633787883609269214872918626186714954754971869307733735066913484937917436911836366127362942447227599626457916861793099322316172092696791094560348664686682709708179650685503639750762579172487440258718316272411255568173675283876580756399844174633573946937037649525551728977372124543214610810405259388799856897790134277439278889499035964621779664068576897005322407615600320717836820720897807148344636866468344182987242950321982520458251878650781341968816976518946348106779877411930570834789560216893686307013439664296028160154745796577064352560741512932240413983430265958661023602426928781225734659764407587777612423875190995393465299100713002541033985802055051346531703614911209631216450926469906548167070249003905680191170920465548651683771181578838095030277352724040509230420350279434969768872683241769913900509337653416327359149971443168655805069267457136477176681946087472931386662785035384592436428676229803621810262744106139167602119720993852192760602591917478377798064974397652164153552491659796869890377813130283769532324679506509702133431624026533727602471870453727034000067599869805049729365732573273764155095861186926593854581773047839867894161398419793881251405924762970767553379257048401689259585491449263344706562582498992740094591432321315664383780908171256036647699911835032266980039014528471012496351970191121709392782887509392123839584992409197381935952137149463229227943821151529864194834600492379442183503603310218172532921256017285224842009176941264089988849557841753188764413618832624880093625508044919305993061534603042665702673505009777181276305780106458073258372243588270127712416397152478899307691511899698156577598021004922817173697657049129518756048007915583219163128642507332497115989766917445689439066598494844905019846675141217912501850199248277799363377052586999611476771885870342959743128166864982166643456332687931723711850590192730093856943785827676906483536462203428575145148723346228887626630363907853869383454409302847452047943782295754954051658436454087356224438416966326429003369433630849249230655620813026243110407494252399610849522885902358070221739653419670302442425771009522463367409062550267827373978915114915299566534085598745794740136375091987758231676893402822432678128036630861051592451436040707835078004868593699717908749830247132002248598137935220391297512527561854401253478854778591397720211834027545324911494507859769760379278287697288709506422787868976482022285920373875679943223289677714514027590853066173628858318889084329177669116838573825522380385897215838640031129467011761618158174653814445052702061719287726722488407963065189442803194390013808491982889885907898647097065622881308680437298298783088365554622312941052257829201085047495829910825861224977453693274476408654592155796754221266141815959742648468840612586528921702973087670348660857509922320212859039453189657111719310383892948799466121593640897890827338405902248730621774115685582591707214402738652924882155164504013422913801702460012822130994051356792211290477241503303541686839967799304088674745424765904378297504120602373585094773351625193647336204554537525189698267724128059799421318700286014722462980336340776347213670239306529094411081258827351454576502876719770190682819234792705726124690082434922503055146401305904538400438347157140230120647242123627103415416497965351225018391002995928921286363719110932820423079946336503036338909820978871777223422256755622993994478775782526616195486901757163410947595402549183053943108397393871731545510671335880992428881597898426981472573221914224086710162543968676715515789815233059214195979539719384660918875687773214153375178212798116908014414461268252013272237368504854651625975259445553679779997348273255534048310641864022615591744672752915924819120522592306602056066137564707821964685251749162913928542940701399107839152065708563658066702830123586651474481491326741858829216563735519944463748562974515956656526851664814664575781022327015634785379080235136022844526137937466566467216381404063106504141526963073258578375666361166276662176345944036277788051963410837646101625768726646864531695679800456641177881820062674733756361490838030270238670841067208127302153321792582263293009706052241882675111874848368957255987190221517367921271231592974174523663263427624161382721566590177008218052915693398105916820687723616921580562964413172573142619741609601212604863116288512653855506662413702300000436137434780736060516642927542127719946487240184579510899205806189540856463023081829967752861300942169836787929542338917386571931634028902051803509587468155403601982883403797871158871436718938539282059130511838722634180581648639960025827709645792298873147394010033386795827036517343761465457574174696174647817066035251032605088673279435337930131541353947746155727186326538997843598105402150048232630672680465430189893260789830954093987777107655223791565207145864228053687404224405885849518436638499297742083818865193023319747552488539869301870213343827119564070377078385770443591408336409356799887368516661985270855707116744210828429015777494618458783249949027562141345854090080629858517390043933348113345359721370574250144928188765408912958589731080914063475575455946530975458154169709275096902734460066132495983687958052082766993566994034529797686505560448612861557014990296293309413912489933361096184167152900042412657822200712318528560862715671166500433222776111525161737515935955849680096233640336782213843770465864464420620950583748189627493307936374762341792350890609609040791739277008325105008575657000358157648466168857896302967069785134594102370603455652699172413150816455781541445799458495354513188813231926677485589603603908906113995445110579125793623820818099274721511957617323703873307765884641921178800947105432558484412598920050915238746150957359063509612560849325083586003501747310775662956888197212943941813189087180686578727246778556116502173861285819613865474169056532034560041683652993993980231046621021262375487216261513654360921908465924742954375672381419853846815828749744378892625167324546925433395503221230666430354829364533193654877109070015584107215423931685071181564317548640937941162775677418231529811459321752852544528629510514016524559564161066623959635323931325103510221879051703375327469262589183377378418577882985268175855572262388530868636480796339065953528362510947277156551444134925738832958163007653035694855817825314367089627711715175409526813714777574070267496785873874668643503646934213383476002508271675883000310639062163870651674716171869899272436776852776541540960466521434301124821060425137849033341412447555019113495700146032181137019119320249192192472872530056945947456165304490913833710284963473074846737445535667518020994805328437574318512367779896526387616994974387641706103386208970088082761372841516748317017626336141029067564377747852378245758800363769909235765243235617409230412298212288445721017851443783511889339562433498734225863135283396541939691135204568849356875826830488206862765437007422413609685916230325317836424088429405772189185278177243420000188246929411040501661994333055912048761694973575509036969594980701367500642479914268428793448745390123485421609970595391067209585238292407437121820506677418219643854604407479456667703857392916364226868212786871400902972840648665372188537965962241762585595398012427174185185512139649825919196082983222100118864652004559743287542044774390515863697536871281186627605257564107834842542856328213398045440940428980836575554604360440767783180115317169775551829958170986299505602635688021135050658640450434330457926949506829064522042423189980067588720177957646120015325742547063288441055095378561756890315393154531058403549947064849040465073478712589513036701461343695886442605275512544330417788790297885929497092825509965894366822236125423204594998721423629034300968715215072719541203633144336046693605253560998228843285148101636537832736915677805173446457632516674811554528224560718002926913326955338567794389993315124541542098424815304012997293699359975656085051820551014883592298940792638490419913252892519425068225597175456214652660770169569235559309861507850614612045502086134107151384747540863144590069122043016801847911760266633629203126942684744972367109500597894815170867685126720152239497825406361961734142225186798168609219260401999924839641587776611452780383494078471614987921075921023446984826881293494334425708058410116023136650569387105477463795427396813193771511717219889548691330308895169317889002672165390335224124969038848392014725989956056582682412682138729530555169639555717266540324965777849709763940085462479559256176834630725601261106811871821358692288682925893272541320278764135476895376998214061720595806301173090953138852041561732968923586456201614099531822669383219913086688903608563022968165840389647845990206196130031309943532876891977053562993525394485411989681448032094932362624480983282234876695178440090754353479777298632161581318152344361477353056387442712184499699619225831146512475943968782436176885698175475547742760777360734151383760322143357925724002831192056749278215270292878676677624907121868229780871172606535989144193813753536983844775673854795026900380155844293186491215063851526964018349817210373916514877539654911548962833219094239353189509995706808955310669515140932081747599551833595029720818562191575713564598700074094185500081561379500362803831183520290667735072655212235364505003927844191733467037669104922986365158012815585698688746063950510462921922260399826434789043303315828140960039001526184826236796812890804953024249323409265493741882414599788213449739721162623241725449522490143112307405692562722719341041951425437138346283345637599869178797077401322876233634497564355331412376008358542212529218057390230441441299303067677844726768599222081419889175818096635043388333237758856515557407268009979041629042756626620610901329187488792207052879468533619385416419501925098609204410097767155368048284857043676953359625126056581735094255599994331028536566768142009506304606171877877299251392055219796123535326783171941100229127894082946473559064714048533161305177260187052760520740512869684533182404207006839151409860934082969310972510967050998397549422876000758524021251165440992106326095550106027362215716643329808105847153984560627033397176455234049086079277313162098254644903452300662820891353525918250293402709575412172370584329620949040730534190221281636704132268672280495264414902452357544724863603998211867088250893702669196047956330148080995990562580129780988670502242890014822353896388337662233952035570846494572630105799246909417824977559277690415589702278252020471424878269344509544760637941853967741163229201478550903074789519189541311958182053046966400423342396124505137263803729298414700848095165254368668686626822044210984369421895023453695406925259588571813470021929904958581696760224071820434662030756502934338793400615880397134650200304107860106534924812003209967477402671469168767188324252667464643194361119965088503198096097891221414273153607112583803366477767566727110935594956263499528270736137560473996765160769833485064867709246812240016994915411657028741400946725184530376407663510263712997078366933656398571478183964949013275494980343800998954570345884951924492188720886536492511718245718778916638673122511812659062107574142085777025422359217452819267270222144808482738394324142127139882753338006063143045375618236182126966996510674010018502040921243690136099300703044678664985544119777639992108782759109944256092119764908164156626092772737739251355628585420490868342728453104457962788183058525281142343685186018307664995830902957405174262438646560113196392621121683928318593211322854794131308445767417938127878413896040862414141593124557753991383275590225333735965295420652282494749120754836475841966865697651978290599923779800470430516022472219480904034161383585195115801900301075915866381688998099659371773070815675451781708201352535340740222024866543864066715504653595658113992132866545023906451836108174018606623081734952704236622009743024601102129972601058272451181054078321250151321537114697411338490380680520702602130999087447435726440180849267319933372035556558587959606944870818987687740847787721262966126950749396243453910379897169015551809297060644667376592970841924854364030433950345746404303071681452032270917679865217897395114764410859004532451086530689431281318009785491474114569503924417032695084416455515727039206714883558821804852726179207699060780872152160157751318161649056226168661483972734090139173416044367721895953947256080839769890949761825642223390086222278432689209444949815950023497113103634875054693716091936645130853399673701655420062914538011355630442757207730133080616524343485021510092911494219858951685931725881590058695942896333927175350194882113242523173165840565501405628371202606775818461973210647072655646597485954040710551138113112628908346811387919548432931904392887195319279020974240742367171264051792057486161935456582963313398164770230581611002074408526781296580595100926932004437037991582941047089227113506287513699783284832806396395726093980169199187690245315079454589313334385778609486945680859280302739036813195811328827420781096376559442232607808570291860251366690969448240362110153737397540754883401092707888814862827921480730528776873634605676405074891092609185787432137176065007097414766869975572758465751255069349545398845378666437315539225650968763856951941714856412033499962455110448352068336284540130835770342089064354973455730064809894669550126680226976747197793093200794474181660680410126285451849620996289454310963874838613422829407769215852471686733683720521732912737796150223042571814882879112262463443655055805676259616573696241351484092275646747100306020584561839220971987569717737376140160854329472371354001502168789118858333033881176439715915473377443307276999091345132183260538161773496235139330313473382388851931993089099980151166911349652102736818789191688686419074262045981674452260361005764633878160951781899524482805085278348662735438111300178268586812047811340199298478946914298815692111699350705484346061827251040095825492072183421461462103382923456733836591039549835486863597436509412330004868356907540899576006530916113713010565288379964662942660280656062024245831572099618810608478820305687462160176931469545030499856017696582755219495527891441565905438286567167202913881765244706382203169377159832186970237176038496760898200898030429445820211737056491261279175765106056817575291523501745100386407648696003649978281383877016370120601713862994217690588740798082076733584093483914391207200399030548437146147990075261955811116430140417036270729541997267565665585649000691402051650480609679021632009550780195191837163372301008845674336857692376222772450050072299852898823992180968626767556536932227115210887989471443843950953293848473746288019225257753002211236068766637398508166567097319139495799587559067134285545243801548945780804756234020952282565634334433885499862384495200202475671323085805601071427876185777162445564628202372777029224426839467363512061676585409105306889551969497651141155500562678747994859049364444124617964123852879450869651024735032474206225670662988917534568514325151884895519432892578391342850375618033590453116786925816136625086712449156065975367596365553288082672515872467922485386633629572545498297997384733265895616166936485352391695367494906025149482166762397921206121848008349417164982156144268222252053087500823567679068818939950501196167107658992435934994333808548721473556483816405107647242935630124900038013528974049434610899868275246521665478472054074205273490965996485686154178443296484293434883449268542590477702749630604802897987924451031939385342668009588202887087981195275121959484100501906666616610314640499383238151133264315556577704729691004579507700442495173055306507820352337488584744357226417568734485432523200285266342802334549556917710414551294768181301264475820982510147856817477185488774995160066502937829688826046248001281330093951332762349551915527677094853080697792248134117259697646873265106703990840430909666223511515173848368078391227205599297857952636546471047250540701586719253750860798851797431466820103546031795560178656609214223255165250411516222359435296200576633818701034489507888868580399436681525648318408492227855470545042514474060666646248360948474588618944486397821542232009471178484241854330570981694948264463830041274949360135789660559921181419162016960196242038673182003987800290355874431344123294009752529332507939761733802370973366502584858064282485403591918198671599778580308688726590329754891670230585806977106235220648023198186407831834679284815147905439413688262240491734841184059533036665380378421091953060429588391864296666785389216210741472367114050143743946280072801031938789653725180524786280899807221197589041600919413921087127949118243563656810172005942422995992095208786475482960315901258409682105245132837230697182597895973961565682156455781795079669893038212348147628961683345657694697057169553720419969355672245978825294377363520833616266643050020836434283762180185296750142364909357097872380983381480108244894671961221650590250441864219079361757476692480216950873449163617976699144996861542207257218883682959115733132986317351261581466794224230007839967919742522910998896092705529181677396846280740990074034053981059044108473619661304004165155563444144500347103223613060345794508782872239319173852314889935167359789403985110832456899940610231596153941795762004027662701602226023044681353791552248808321362248347717471285734685828046265122737526669553092683373649137743408227717875677524708357087157961493050428916358356844520029968019802562849043865447320000583792301758063733364296509949348534131758246537275061665238106663899420125227380155751193415138659199340690263895793653197047603973659167979307561552579867887603156217664711503260544161136934143403223458475970489212008238703766563890643896656777264562248166424088013668361649815231251146272198854374932458275815972812027322969213810225304671145311301928835848133756081759548461059161286634612202383547867994142809537572488242948079350578581008803321304159452630683470121650202105153840345790342251749797264214033753116015525595684390538540341724201611128108182476246988784518833022286782803704108655292297619586355862392018222283815042683753423513312180482540438188037600772715621947185855142760138230685980945725620117311448844276875964177639892865979324473684754543130381691673502639356009118007886462951947416241829568863042997385625665710233196966081382059513533512247062600407333403848314353807632889909957330545761628801302679257490010817960958880870906721065367591358228202387438798466804220682417918270274802400688133381551941230322442737049577588397475590886909057069307311769092406088883263075462538974809746981719477209578497414951753328495018706777128122294911912938417167647247204307451893172075983992404611381508967938816146725450255027122567592252304984041014681928020676580054992772494727039756872918333748769034981907836716255386336792807857517124077038339896709750510301192581414929953977619525675534691280840663397888565390518851289666025415479384908602673534423940884656265324776771679832342060342416583378750108643973257692948050585732113712961550361148994367258742855133992870934860341311314915071004919690890003074228759434904064674866668087269031394448755735478182676009824453406320766405971824140658223702403054255766491608760541089715490109185213016825518394486535766863362625587059674848928724507029116020709375104457713974640350674261521993614384070969841395888888450101435981832231616445723400012062982328964823493394532687602356441513887620034753236193618547057398503033884756785412371454331566726172799112492109834768240219170807575590590553157766137837813143627485386460546036286587680097370865928974518250350100423172869511409346251608457544882218499140659767864468340580672629624739749852949152788298877770904094792600680805696107432166801721309570466302755787256165334617955304273830426754034331113805750068079549043241292420783136712544859031649320818261061255319708546290913277020292853580364728239784073131122235854458233497775913703040758754984574870955297093237078470695437939518320654316676344936043045329764947629146077953387775159599038763542965403526910362402387427037973287739493520503719867046507129064618382459107852738746056987304115861024934565467638363382121429030216947820254182418866642566555669742737358261506363466561129809310972709998100415025391267708008287084312835458571599932697100236635656263313229537740696845291929848038982661318034731734985550237360418934434365575686345498432029212674534759973368546510471969551217898112746584697199101958159326195801046737073186883273488034505495135590546581671708080664174675095632184197950973766075249298004617708261232120520863601392041136777653629815594554736427886332510643296885340169007700887646348936261492014843381627469371917827992635777975456231157036796157421876432017125799469443288528852367599315460901093860137077150052974025916078393478032864374401676626638878122552663444274679293503414009629932937400957659673536667386000742285820226467418509433341107997476779084550913449733948240639381689980414401578228682650191623620075644463833202655142088001609741453803818702586801762959183645363237953456302675571837339382814947901811475581560182381179820070975111300633292385140764792965355423349048824510739093251741393427662502404467910635809156625265274829362870538530041460170565590291923432471783091045933798218090538498440486502199862580401893521299330383055832088829341233471979386964629858081431329979932502872899571983521163044487499746422835913513087228383206722754887533633574775001428976487633786525898260220748570477407408535744184627019541250252726792163200650947600307928879436596543866644872734680858162998503948854648276188418882597386250664324400969428744405852524656909536975637682497911269117982828731081734063854651283534047684397743614782455730549203337134794907935435238461644048203890003747596470041481161964037092182236675966202681340174813965237884376455663006660767261571059116267648318509279784619218982911992888871793550246469762305966373374833193734325694538442731140677874151484789677775494995806323320505755995237283701996574578340718041433765384216069873672806001521732770758897392190102132793937475617665714690433162808240107718725740603991450696311542513359485208330207908320464805315775617403795823303666448771309011158378106203380140939212092388486103458380326168074876111473072280718478991442935896830407168666911205319749956501227989061289164522894261893579169220289289127103674452877258225597935577617420796216565494638790135559980020622717130919480920112310892897063276570557341842449932230601745315385032414148415050912367204012574712053630453001671288886243212241775339803745369288116383844483942585224929823201512043947132933464663916172905186993254966380668886753181222575804656080920424531610646770695556979299586828048470385116565009207070684215031388848427310215807881562333432011287605734501343899210330118442284028567799733987921505839848694757605088867762900398424615606315150760138432118666778401170481122783007795450661448390379564001908717404954106026516827076549934406637785534437886851966303048300417764880126560394663430304849004867262156804846636141961996039972004916187896816211153773574867613386434541670817758052100331401983481380638782662040164714094643142174990706316907753397096427784435283024247500772413254796682095794784497301064083641712478084517005192192760397670888847232692771133036462722593665645997308041631412189126032418632040561169300749631579949153751079768347095140694148936464673465482292006934143182307360446972856849141374601974619929446678461364930153959240121698182132488704820302593709116389598918799765422171251886397807473504108800906536537392458857893070419744248317701201840265596306302895649525129475504664456044036244946569060444421216895763354595440175061097575171179350018456936536720330580444021978385656310800967854112039529620081999220823269750177085442090681607556484970455036443220224100097107190831591743609920340720146001721223185945150604697158577562048124001862232116097162525437310359831742555895351846884104483495515500376233532125972680052050206945640044129910479606181598058723801741762079504291849086676229299370415197520389761549704899363408933269248062312663563140020456637788290339113929976982749141067862994960831311180553063345200439677199200560510381260772348484796144456298324969421349584930942418318017776637659613760320690642159284232181402823123048711394012793210519662758243840420720717789252818916195310402138603038799366350369488782878929583885769197469059828016711644615570432553510588296787016118136833282729135348715822536280611787127275977789453661853550298038527770264352212145276223405916997671495557571441291982048402063112330907307718867013158785153227918312290865801361754147028969128751717831228823380375088367136460120876745855407526526338473402610346636387510424227709387574136009525057068648522761346722955493533224932786015884102561013970521531599612252836103809448194694369012865352650697385733082344069117957155625864029407106248738961128841827236572871694044482866067478773700057385999706371339441575434543398622851505996567380675751981786134880482541492959965390610939206507476028324380898914320649377463418983078443445389079473445137610972803849690351777177167551141027291220776618050611687369149379924832296578820392384479058798796006737093484443441663502153317429647839482078533895237040766310627872980339523493796719987505489944196124225094592304212778985352225233909937121552420741006365159877978918438389561744141493008006480684608865941005971965732804998630110374089984614250956278402187712742807117895063040845325821764299684481191294015384454195526483197344688409997894185917239951616408589073009760982057734375857430321081919128444511224801471317788798967814747169289517586369739721525106146024649396195249179558190786228956586148173689809994746543463368398116154509937996031789943729384098035833812120026262808408498267519308518611187421341355473063593185949364599375485935219757138258454205320896561468042965043519251630370074858155721354244478133410214614916450975907362479180845772622105346665926448978806630010553830374453915158504261703398233471926070900383541300210116520302579442339049873155264657051493336677482615238209301827078296202692186059486946871917100650181169377540948591673033066697400055306584368514494566450523308781596970905231918335142436483933059732945400157986781483088254267446644957304303794598771761956848218297359968147133787448981791097136023492921571966860953923999493343997296248514647343649102775729742541807476650873839445073500560858189992503683188769028612509938879874722593264682481429762042177566766220473789037078824047593987011790996929014554563861343873082341644447667636255257155232325573575023964648256194028946286183170754896323097251716429812209168814119119152789533966677926714250232044904198550274212824816863259390003805640083543574354769186762022414841931401576059451775048891803920061316169052844392378226408641959675645804058851399494920656858399249760654685063977641848916831615200486791500459583741859265801576233690331444658540204584526452811351718594502714015307300949464605509304903514636334098579457271363821837456106950465232577959348559478699023895220960204652713840606647175835958888555735913871911494845927055362635641371494848032807823141519899713076654865606479781366557907909215321418532327250768689421397679303819134686249500412582729796865139016700942730185081700701112184039443434416810082711697386478028579372930028546126625379570804991317606035404344194772501666240948078222362379363580553976857721696589562538325187291599900471611361553436036378018789261539859442458103825143396101163120964109105833279557624164867408432776731917364271737163796014823630654273346249938320162399486024125586959724745095729300639835289243577465154133173182134896504831837042152656930083764443660769455280555559879594145809851369119997457827924731832107306981508490443226571146925774217311844858044941994724136643050976476414430003399541208686694504143890305854725257214381666411566034103228531115146125525660757775927888569300980500426712402273974631191094319505928866892641126435395723107999247676003030122356344439418465842849128133794214824644512167190648606232019817127536484909947500830949305473738109261388906524060422227668142587290115054815960084590055310906192374304834069677716056598044459757878543291649066486456470367770083146283430264758175890916921904936623322835858086972646417553406024074319255371312291681327636852578729841718694116611702380631622473419766449691619947344756163107518452974052302441912469315239208970743597332952859235510998160177159115202327223587289790265503168582726074481612818192732747272608296938511585469804148816134436663617990213598346310520038704168967978598499522382265982674769166655296952324116402980297722393923831318088688577207928598407804144877841819795930030670213297722890080761441528528533086471140992736928027995978059057507547953199759100427313288849795741310211896806979864562321684471152916767218983057974614304239207932571940536945524969803217839589426408196116367583901818325362206051627021545415638157013024695290791509716719142778512737751664918630720417266726685848791201925776572061286416782187777915588206515250790451455512440338577974942412889904170101020260705130829155200101075490055277730181023067979810763650434266664748328743089706678874254037276579304501282187445186365140947460305148115433513531734888554568724688713998898448406689601427988213829392187431064273067194280276751598572271465608718938210140535591118288887959947526237892618658386234044749649078348348903919446301594166538769265133620020222553179736071402842631575300087382736226875390527599635104541658615361020447416088495132161455893077851521304032339896017729518987674938873823937040942391966876864379168802001565717347928666972124756389389399952440052036256557977474566022165114561559375371853133740657775856321300518681342377173687888794063122159710558198183865804843196777139854114159046996062038249492639100708904531973123790849203745354297130763032371153691659093072015997852520294533578602878784705689611261863389392942121499841147197789133638737943477410041901886207130694081561920614325023432673055644796211411141825645180020076886477708063319772514933366129520624249713733598210592545246164053080509074047276359199568213765346038830420393942758506814512433617886127958139749373204481234571941080855925358584339212481369710553486241091159636222784920044177946836317371135549341839375414070324084390508350363220163589060127200623886741714020628809689960744828202133448487111823503269377582741929570971565467926704006635742211065085167625028917367643921657213026098997843698345081666855778703954691900184782861243207133173837685145513376961696212510308517466552258438029214926824492587638156531967620952446954406167260095737335162768513100623134890064444452245234438441504583027626325186549106573813315075145581630322840109548374551952725129657899414274323012629188605623624448928804558897309086464616350454067844351638217372888936853992810889075365382349588706174171645326086760624137983518104239443876465158501099347912286771087991733482735222226189148527955926838384338169537601828211189146572379841138424339532441349722697428268832652185357139909831632539858864426518544562839360439156005219605245025729577834404910252900667132745310162786686240180396546913765434451185169345399697843437595024914814455988073985547381848199752424152385468032742184275172974304560286942814358318334986137069344131044799701251624047534254221366039392462857858443375669318297831485440918867947007866980236320623780617211982833818608825501024919602042073353149322915750039726025503415381146168203581926271232950306341195750708959961438560960750950026127424404727189764723850808970793084325909968793173785913210072709747405557730564505454627530720690818570337187601754822463963523939949110132329076476378489870528426577809691150248595910851225823180073682412929240102055649395575695238420923775952898397660970215082097994482220055332927832856046888152693241792466045764753700975132742159957080968377663938092470209539710117554702095780774274737230949311004944680794002228982427695411955257485936379781193033867958905275848620676055321464110209769448193442524292141403037251998685115097085650465710855055797746460963580181986440856010525269219565406057315688225461306949580697569480633383613861265856861964723017451570287248769628697607543722259553259990552459172216141661095139487743723627525653782184336034204802204061457675839807816899872958018247630644597053847612072829741169796453545160151469027697191996991257560457373314039395923963193080623069417979829599358885477289329277346668340929922375757232451811615555700598191556482456718897748071073872607169603528764215847994763625445374639525690516351876482812745228647644545952635861408327976013559551987205622098057139404461938236236460790973437775953694362580884460224912439035886656954866155098325389595909442006315578737221231439567829783164411343012551266218661089833825487636601638818653014692667706869201905848180975439014360002664841575671228400961679777445893917693898426382592588348300909070217682196355993750739221522472594646045297802589011968531702600153521416559453121437040286114392855094743625726927386740696176147926632555747664375664481191010496422067763178384026391874149271949738426759829282928258078971540988723208965339357280163226291075919697071808612557533187321376454225802973015057289683640170784946493101363316390193946175197960408992891709421796932693489831806994162819281934306090543278816897920131503631423888300963294149652498185062098406922060603012543391802475458358083586719599630996754874790549917629534663478292581456423798242564158080984762534076237898058198936125485618618356607686895209844472060063675233688468794156810692770644338210544697547056915465050071501062572639933033084134026205614235124299174917263594122319350988207208182808794358600771309892939213212285429899599382400102959300723822007928847149817453352515655151626640369963589771306798141591990083378788057079668173530505838597051067931826103587444478461371886668395343401100792213587201664341013895271310609423970564299908186236769633228154767957106618728140052863607500157414010379912820743622110837702058626106781485562316465023946157161126829076761286542432762302040336680832615460298547087349262060543843568907451835528298567613279961181413552627362857287095307619595246319208034620078869702596564948222890118860568940296943245040716524711971666047232163164429218913990423173547055834162140081855313191107181113031492091281770775283230656705549463358922026405824197957231940168798945035667139273447579379944493191126086470880033822180247304278483669505332071877947931866872306906638339420259330841410078094856947266304113190822731138586558452643045457276112872379491795268903439943093358852703646213103971097186097803946916380430304698725372314530228581556091861307975084634075898878309092111087153058625274623775438912599260724847704927483427651754982378574564630825441837608391027740641065244513493029556197358885754444160518405659239216645607667762438877489871581676685223927707853699671164509349037370825331074882035834969469334232864864279453859596706340755239925363697436168552926752448935305366722773119423243196593449576704436088330519752204734526272532048599998819698827354527007473840335536989246476436039281365548001060186009374063010454676043652491330667263987356244757762842107295078941437129374235823107658353505640422917383894659516527094714496999847938387072916501770358526858865883293756867138373019323468505708736378981005712116110690294892356644647231916465237653497634001077057508256384684548087968040705118090778850972433035317639186376794917601978544475299181609434789876962790460123459127855369066325195856801663388883012097111891549544945210003601654821379655168603542547946395268688691661586619499109242363316264083379699005534244151722640841364977206457132053617669509193048150464505708267969588566958065904734529194482959751383107760984458153287457063995785455657612202654295787260777991587564766625117775424752497796288250817335799144480512928745580886455140157335765699130945902718274993464632339250039441301772936578154591055922058870685938549046202352894029741067452746219296536091458128166428791127912539874904485706340498176203036464383177095854917467893947672170888918602874184563138010557050475941548110587674655811460493807701216572238498427146617210535358913250275700775558501211504968829790255383901711039889491320595660850629020752808360649166382535675258641526919117382395126353298250636477255207843553050447705837985313732605443372704515833639746424523010960488272080664070096083509232850526570610249694919153038626833708098485106252957090738286341023711715480754014455814564980362613657213297333958494058690066233580538377801567144680053378888499660418946191930882350967975466775208178474924078198654376421675058644059041438403590732434821444154734645320943968092487592185011552713485192695247936294578705387010427286361972598129428260207307577396036629595846327989054610168354279239902795054801021133268987848191109500506913232471399815529546518867548566953558943240354316119097869692727131909759119507659996563606320370828515394183272519881757487669796565662766365200365072957955292273259039500670698649357901766746880955910115583766275690167967878926607443897366432282907920784953281924645665768409583196951707568582077720156103985887109620645687460997513895803523962238024378218858271305559539734371840488243721303753588757954770506887241113567753595820582547413729406266437523581937455417628430438322243421091714707101466722389580703793870150570091905997508746162639563864092485461761724921350234096642677861744674344660649312304337031039564862447287271276261270548103098103739825071410303658995087438527553939320735785266291961527542110933881656684057308603480227299087346987661898009633384593535579138357564880814707677609242940715788108426304858886666632499561324321926944660171779317911373278705193567061511929236017406278542746965628235512713884974867194763533984268449187037097094177163842280767952152351916446880689885676369457793751890099485102572198388811102873120576227808587332172063943046536147417081789632810474125953622726241672089097271943033488238482986067867360140295253367838423599244164660741539191979292804904951540572060395909304914609584045311789342544831377753536978028500595037403753940720829039921270251687641343503636442900932136450001010503000143548339339979458151879170324755697371430236047287219191669496141992368275319851074797398096960299291270176671407114977024875731229437830325894462083174520547256818012870374978916430048628863562761436382197942644289458790864918066347055654542452721283071580367225871570656753984928050677384891947852833750224053136553700826882970197292671296965022312848223182694996305907456222782627253099077498358211740343994556472017652838333788862601103899045257034074870850459434367916296271657870572010637088534975266326923392612048275616001691753240131707284284860456206052878363745272335972854552603929967329191676717013432583714265988669600160127224107313364152147622885017565798246715657306842776345270344336714194345165817730370618367941266910256378627652567170393234374512909911926290937342465853634877095641901461058994464577752966080496373272213950495484592257258225727758009081142939521883189132722216716262375243760697965083979072847312835643664326079962206627962365488156518265226174135963944274424847952582655340007031207872737695409480583739399186493891139632644477065599663796678075938547807160747695653844389971201354920630948307598135483911083704921313212889793749474384163209449056346175682776187153080974482878401208143857341601419531280847433589201723649721996751228113013094469609808464993700933795913530054385719647901422162987017728763650411868428066642037869166325392043999561190312061894968360254858420404541482519949229826027366453020437122421787600969491321032894041240964267942446602744494358469383061115976557221104909677891255154333516779074098365333762870496672889692352726559466266943984799122488318489891855728298060423273746284101415579079976792421559042281602843271082778785952281776002901887217136927484086532203950605603515207992747425383923586466569258931242458701536208208555059779211358807008084058381253746636227489456501320058343171083514638161181325820236876702914564537533136711541502258348350235356433016909646843423188712073713735525015061156907493074915946993683803292373344873378745978775051519865555786656733591376045345998981096585847163738603125195112240483428562450949356263782258510460909549605395353716465572458489055794419615481060890136150401574068059910197880038412249949137176776096753938182910788197567063279078901940068263101990450073777620280910352840578178194478344126358428815087586238956417865038772257053216092646402046522766636903521653162407952147780969872763521162744497570172576063020050604760237926262203594805862348104080070263597818652584182773758590246462492982943130692641528656605526709231292269219101433375208493393870722648105877121150432474724067176355268044607361360202175201118071624585509166526037779716996316956813736222048355166461769715780991378612190546601703243723243838074440703260203476341564377545684728519931682337993437190986213635859276373284409441693648600278689246560412010666733759270436587892330486116335802375313702350098823165762478213478255060544339301187769296465358823036422503443563592307065037826854091658275830670153029296106914470652170556817426804312883847067807408748892165567189983375155741589438298497838485312411663872360417195121544112738059158788353799414756494602151879497136585800262913440584732688766066200895470433840612101213306190885724457806073975743643971067599932525385026067674527516743637933066327050480045840074661574223296289587131352114981083473227365875984473808334079950012424961714396436485280677887349178651214605964893477023115309573272901104778250145396670894568391946969884956893084824754686135068354689017403755771795729889663844926982321275885484704551037019029389208653994670199858395971075345398581458102942041731306996394988201074327732038856956311093697077116599140958769876078341690011268263684848717941805325037751048939605198729792311620246726986893148047535382937616735810732235001777942544360400437248850040768097518728631879324555722004660756512188585289051584756580737664046415572706135769233913998908359661391870166509782604590224197288885399998948025539765500046085502296176109735210550826358849272046543785210983805223026619811568281840811809180716793852763569627801182229151239019276356268962007750385443699184367641562809479706308265212660659107824121001643455748233839303937849346556247438492388070493364885372034487008533518543348316421975967844391705492231448254246554625993954658294370627702855209412680597718067123042354625679986929730416777335432773208494415704400813459551731835044944095752212790381422284863423065081982779216615576077756978577550493467788305217617504834724514236673432590641745289008501098207806716090175950850586940239830552436008634869543751315922082823860452293130365332361144855213737823796596828918396985226952150697468016016795482563680521249506880441005006265342618847250512587341518656475925939680075891305660718179675762842168709827729621621825339695228884040092537907030414174507946403964741547864268510833329543036096147823368067240742329013824576323669311809019115229919205431760083886025120637397526600577681491410432253270375810002399136974698407937731595999200864245616378031146078415779245598291591763683102534182280504774295095629115300281891322808637068485653574684796962134228707545447691094469012512167234602277747661398200706934761657384425039947852142822058970303433550416195213465048097928126781495060985671280299839667708504711150671485455650859109603782656309272994973016125335611722070511414452385535030067051863941454139846491641897488075006723910713512352170877988156908976956596563288311270405471107523075444445372473902425400879186023551193960453456309115009302481665212902802899993748383983038172867614032411654898700824555095136406935476171311520509070274555269227968880884938074792837904963023891566452901598454235018019000252530107772167042573213827918954509284718094711364371494509265794725183039375658381247285315111625883496356425073255465936488657301690584724815377909234148397083798896963867875564123460577585419995603926205004165342500366971031817872323870683419859515454131588588360865591018040692379644689194063863185916376733126239469505531706522587222832027609629294394663185430163713986383089003528580431041907090834912881248510552727851006835352212771211801321502115993141455000497108957059860250028725103890148327437394800553403300760189738632868845100269876451221792044573002432035266337146523075339801829654604164159117250163148000325619344816952899542707040131708120743854085742656741332043464787464251360854609486056610783332943991943020887898156336060192069943072890103578955474497229041436300965105356833077930704068671908806912599749477627264672029466546634282647565604383243988930692166422817476288152592431624527494611511433593361729778290866167815433787949264655005541857307291248692693555016045752563651207882335529002523802519870210413376827624404710570374236101855654686694944145245653153361813459400525058099286919936259240614884083202466549990913621954446454261873385211544682498820625481629407776190610178010996066199709711808851669964929383148027391538711789572229989402318047610787493292602032128087275750030494180362773940671136787946348496168451184489166347369275198073439111929353289986197620626300272491710408668588591116408655161685158135582199806747748283008379836315895669716664591474649371602794794731799125898581228079829265854615219562512640932490347704359470133968530469467571656606074534726142162468082361732634654095163019226366234544563535919517622438000395009359897473916543087979146662508835535573669115727210899622308768975139187671724228106632888671202502902090801832267157542806869673971364604992674763665156751297230955653898205333720171828289578119378387217265922023766465134792353477052869406917284445769147455301763457623237898026834553075375418531870936128745688610926530498167608430664408863828203512428206658293978649403739286617819494881381352091491687631834989407680296419679454781664162396628655921460512264689159310019878379824406338822666046252266644458014855859039703565641617684673410154106653941665702342803991220028800310323330351909996316570192033678797284638218374414584970365110368503635113727927918489427300289787143173501548430590000157105094799306572102400112745015087901793233323778519547928714833486477387413326301392514981663432262035978782381868860561089155121466927176555770845712968761670554245787427265470428719679123378644384735559904490972243737900246031359134579920689476658381505577957930443528656026540760563641155074586862660360378146753463582857687803534833942196898888528235983457058951604037687188840274924063096964964726218953207851651815109660556458219137962184183090481800520955601400582673744594821016961495253007391391035035705395745875367007329440865871175611953372871439222405656187198212452285404209637988281759244200161951352509592277511267410992651439568551352382437376501799445238540170547999534448084575584662546064251562639354037447120668760618659405038531091043411030537910304789551793834574532245537730736956846237355098217111850673289080218991754581800628277615048302884009822545840622040466031926213628662095439179254487319732043148430348788271319974729877096640301781663483923664003301459922418863772246739911050320345143047021903042892627029145277422054350014997104511266115801620724744302520009581551349040205445955272605687097414375558737783765003960767783038408417295503218712331278990506183977247290165947363252600676837984450329448973050048810446456984768123826336055067727107795077012752620287634445223688427689321032719634418119234082374553192497251931413249843713141285398815831414214029390683413548006082031968720496140106981245692377747013328903171340213494442104741927301533143187195336517172030808149759657905653649694939391691258012741460343379676612380827984576747743245959190260715010548024933589775122376750337189663285935947693716986787547359207014825218379502459769813486535585695074943687679136262821748881982535576192852854929920578071021422826112881850970098564487855523576479341780017457632701297337092914860511206608865642207984325773841780263852662929967331440700678510945970715007061132999944630810545579224037872170554648523777511705390308631967922664236665668821572536467605901168261259981745948954800657539167304264812977287253427522192157836998936683202716442599384022435399949209904413455299809874939240766977907186520972948209421834285769189611721142710666976347890690701080807592005438330330233671588857325904413880169809144177101628717126683070408469517090640718760102266054117648814947403544648161129896197376155860861377074382536114308542051644119845763649617974073217140957234103151053296020835224873471598580775901986017266397311937943642914470610468012592556637042409338715470420108828678014375053463939381513583907614221439090351928231820482093269985033413729919681119925790648873015423180928120162982755963774954789329939092836011651407343373943819977404100637081416482019159925075137888609419273573893850282053462045802767286560241702138831803028405401207829452182955968542783926127067769646753907502540362617228553992788983409754194454941024967663200552655740952073810246710919332433449900271741086433144709878167327215544285736266008209975478101877635350157502721499264094076997244550611203704618825426210641512458846954689523589703956886996872598771506130348229365428030900713420977911285194628462641481126479672483119466756472392590823695362611999455729608234486003370336623974606947865629320952323416564391797541009658804348093846064381585816199711422737581715638573584117929346686411288919975655018937445465380348558972433303254050530073882782714227997683378472301523049085773764630970111935635227636166860533210168638084203750063897597708294868238862009681633365704908881396904508540293160909416592090823760811116263467169115891512047836847239967015031758746711913293524471695748732910457333105905089440900296876490954807844479973487416511386364787174266119789849571422632929319760073483495812994401981693010141269658114167309549508063284877441263867857567109306982574161237967893025480316605119270490380652996512779777589127185534200431910406468384900330378244794672557312125870939199981745308769696308913543001622859729914691975699615472708924452250932295974538751670683348076031793871554574658690540712231231120286897552649830494744101219869971812812745274834834314216748279142753930742190504858779157823125158552182819683032219492629434711443546182681300710801791721564331459322618117555917390653406428339186562800409466022452576162399086744788769098416222941833359219660578539053281293074707046003641213477051690372744204033095168491891039933792788315524372636557538907396952249353108809823383081222706968629447184055443808414662831362531933183735465738244827445628916526219534294835828024429813095330515248700376859603489063654067540316799287212823193006908823340485324829468088997534193467713243589071966320604348050778554390497827326365519778136114500532421486691937046618213061392644460005382533201575100528405622177854141135567235112201429885673334395361221474894008704723498568983919585904906075353016766878977503382304960155585243859465784365090434823474122191685783605096933050091140144166037693083021418485527366978418492196318701798331077993885855830122561460964210532076568790791393939167776223767133921477281799852679711100788058026715991372719908060077155022169669851733383357403926324950872605440603527974187153353533858597925651802273362964401748347022343539116095150659769037340926532694089567053991575350315418001151504078255012260074750443039366916487251475233570512962403307565247340029180607554829720103607043547350773481344833652973534413861167496061319205881498075752006281216487387587015776404933960267793985375818869075426778887560611522878891537247012043606307876552420862838218650009469515053596468741245144359040322724187196302526153552546139704290819834682963558440059767618870699257761746682303279593280118042817273117119639495106775033882456931618220557064612893756441651694607735339934491805071758276660267804178001451765438000490322869608384774031000307200795396933049599169183944678101826253831370034540291436855876965459930430956010701021803425477143079835944034558564128392320977713712310262768885241761227562878660453779442750002231249248579651438912621816171857083239516787520292557731197919635909924658422724833172763410791985908258128081362502221983142703902315936834496839751017340046321861787255827390201833593713189377822761178308977230744870551861503514261623942680682569791048926383348647249299761345240612833422636169748530324996848470634079713250753012347003821132754803444894417397428800622715503871402944066899931368348264777069353102663155760832406022086798822383306123621578710193960423473487251120677865981987831647207180287868138622971192469618890052497046682846294104710793988963203233022288197982101568595979372076514018321724746970936031541313172118248505602849085522067780437548102917336745606269476176333928501317278286804615901891289120226212782716153692082327364350987979948386706445310498042946088129546302716897426120498917371313086597499716885140452711590128860121996144181198186197138503669886380780545329589245400756667037704733937622624695421722922712970300121409549435289152565031846095113401141076367333928716050135292756285474126204141001006395664334525711720462111746505912178907944861718128023815235186456546233186843628018728333061676686507770177367126188638278558765292745557183204602685503371418182993625685754373800224783838972981510340343919683671150132203449840605338408888400617020856052432378316454462503132386614129464714782658470562688386852690551047432226423350922047593151801158374568105598448073617921332813553607242537786291201589343662314638171177088472627666457349404671240591054957887752123145449772206365488241735759249098917789875844498123976096696029328377892802248289207397750789067584501302109308704759781729128576379792244228403459132761486993370221100237180918855888878634749242031204110252785871082795776853088162955142792799500346614704061283025373784550513445193372321418874571235614307415198170445794957353533483228875611508218072519603187960354078299351070849983604483247132640086897991560172989336894564358210948518602487233437059220130055993084911730734385499886591266868479810376247902862504718789798892261094583386782858846457678152818970405977528230189669887286789594115492831365676577519446049111879737781909146629916596047784590194959303021769975467680847886239257707982860188546331744568956230616980531900640480790478630739437780843143040719814228162172509825339980727483871845297855060592861334384635252052226379793954558066337356825899541460063262276032557134261847648714524005081627087835538905597641898164380203147011007340989456966035075692892482737865903792211694575238496913261161716213487574562400804967903438443787598830282928916875658203865223999849315325625390436019031530276293375664547388254862207834341801065812133933174834359632937092250164158701846853516060377881663419415323918381381563490217818625986242235044196993610482006250715803385881223337371407519699294282986454381620565059079952589781717053089913760680416902827040300669249783215162049053228420601519369073237548381698264607413877340094984535491761925246261632267564086460820609584528900578586119129061678227078761712200070009144747026577422138791717384299536117270035248827708343638789941654704617906226289067283106647551357596762765677433028339788395312186254729317032089348860983835468971199956738979356489222626908002749947598042112890416005213110264770298940663171748230331131498564028294445476098908864170271670610578478646502526793512795575978685098365902196624099230106087469522928360493054361076987225815902843345061974484015222937963944440956858776764344483299237736953774623076492562104883789270441331210019541104131279086859487214024884262204421847429145993588700815467241776178260074793273848183019361366673940980304396043041895366505572410555454944453312419182704719886052473950611950134620707011136504411248030884835641027857108591572873413890041842567987429461699229520634304979292409348592791169379260777684313867571825744135531003472132849665254571553884298067927323347602333659339900757741252446356515768875335375396639565687833513610628226220136968380956871265265488920329232122040114221919515432814340443140820984498423812759207298589245091095521663413684733846865250921301261574158712283188459277282563666923897985994639653850494444105855449012380745616378037958179334889533252406368337473380463804164986633896563296145261857725361711750786155975488125924970133610775307226367668673576199291306039625493158539957135746024422839948569597498163669662040672745389638140509589828423870794523128711505362891032081602832476944074770318790630020281208168125072820495925850685256669598224949957337123949505652773830061232985170733530366649353844281609506126015840511277347529030800513725573920746556487199450268443741506181353021240483907694801188607307654555437372508458081708596329652593325387808085291247037022229440781448348705030523268943770374628026498932278996272374347084927539487895802397239832047451975155159970104187144226793452399883522891743287230158230651381799632685077876335854187978425721469664482271068103366995598442473654221885616417698223761690843181469001637782563746446305647532700108240672350635411372847280575394927247787746893635742413586244710276706143845715578520371716612534608869196466363516951225635729040743069365858392854594811390507240181790041328620842468566492471296718366576023522860136321912153606356967892260561026787027932020347240140665954032075923148066932917588061169686654776390818680791329133492381479608100753979531695752327297567084186330325317376377837104566194606860978861411619620439645928650283994815903753650401407704174806645953471101823893669505137087432916921496869199255057247077548309531529578238633840247719704871304722559340473350498170669412062087018513856348298185275281994242377062893128141891922681872219363564896179282379540643941506405671702757368426850553917239184689288684446221782329261322832492357804525144177756478915681158966882680799822727892820022584526016385909694828673483575002100488167746405933811261590246181261912734402897416499234491568232179864082815176811937413813552287930775803938794030385182299561633571695957292709299209591777171473094639485584927554689437311494405746585701774095694302876985612194970134630803589332093771232860632675457092634964572526754208466292665550042266223028842630861674925051332654683199063287964618813290411535205245456911950609795589180964516145717545815136619625843702022516468921225167274593987438953629522105133382508963165100260669375312436405842827261556227558014381296257168696357738024653462831079696592443800739125967185516375042341607941994697088331416914156110251773068188898979762196164786568122145167609637638398654485903787649228663357966312434667635558118111607071022789971609198169740534696524999298395220780955977816367583397741183835792541086010815668706154487910234235478363900092854266866626924352298859452057591948034002693452460403676310377841693552567545128132346072532416679178888490320099620504427583694166252405081033632838516560924355418114031443052239363929110268918994605943576830385396775271022512344615303239959303119843787261346383176024827370249503098010554904070187324677868084770584653538647469506722387937711675562545493589917166657812829356561047913296260165890748277375331813194137442921069788377423062871469401132362389115220505398696815251951962803065871193061670504549874525874666559575995311456823231708438626044800808030748084964453162597819725818102479002536924261403974884205146078375176740188744809835972117349130531199197095165663206673528874100415205447700842134921370536041845217769227829934091656523941391618400887391136396598082322217198100080049216112550871761801456317569429750347298888198440370271189065037946485029507845170614167855271694690248589213915332475700824254275568711427026664484389093033166975271928627430407365017663063070500893762920561527229423500278179937262627444292613542438928367179230300503387773748718038943784701818068475474047281463592326632956977345093721258379943444540516562271767513483932015904552737907852897592831628210661934096273854199993047063217298555151459000755213578276387571686967773338608971042035321700969698486415993764032382547525142221413336123098452485962044185968724685116492271309661167597018648055683237247535236680709351946280154091099651577657328241192557892047813647148629179924166655814898474324878008603721958135635459846491642526319252701805478842329903337505757326036396326634255271944926508704028041320726923439189536230290306702314977628332867112517022807061340773689434970586283360128795189772990170192312345078521738931960249213777755061996540398222942938046586379423819890795686315285803430617169738388052476887704962450894512576051705608251347149634396503854779408630249612060577619926130044819109808637758065860851848713588143304596311465948738305377922616671615228411111440893880915104464023715527807144687655362466839574657724269132198488328788517537222537202677239519123535573854884189328347943210496478251826544021178824303373974706246028211905644310292228109352309679090522191421037673675880463138346788165970394181470644233984180987214418597178353707517635756921935838543780415864533259235479763222238796415144079444823004311634495764211365150317279381765909727354250038875813070580953697352079000514244416171001307719711991316356539056276754409309626294522161861248130921572847542699086390948523971274899690215558738908916647229617215542069565169826539982268027966233799168859177543118145966608106055254194873184322340084503141625557052085149947577622632066156502066499054342731487418063678154561863668137524668630553345929338788557787193444127449524797450329768107453508480336568589749861291915516708266852548640236299240212369731531998718333527414188281698039117905368172900039517688868861626070134188022230916658804186700256586442569157250326498169491568620325983368512077192347861867551820742380609974865034329460641733885949777583044539942342469020645131108483411700495016134675883913308402318826768322299279193214638818898196616861326759602340278993284947443935863450690147244110762160774843957155550990017895410388032230269242799093295050788366813569491168432630349930604875560528968821177297486136625906461896685707832300974310012224810960011130931925455777479669522104639731797027907247048538948490510520217047703470205425033017151473812964967846392927414192815015837266168172704091324072051944927099250959472218158052255558538171527458291575232349587857723650480875586585034212480814169517254448472999992973784632687825093545143822200452751340330916425000405162827315586640939309290206156574283661025025205103977104764358082424047757081313646512833559870002003352264832714504395503642507747248399663160606151799574775051634795030461542906484834076016858200210000060186604828353498962583673554779779004956936578243563331384250909337880297048468971514846456046937723144748390406617861056849080676898812642541548146573933539199903081130285316291463763125497381522566921115103312978275724233428943897027920782428540171240640930432584523970594270722051881654127476889010810921687852069782954791683125713320572811081154176149303742498385004359477585395729250292048460716419176296424739413539586717485438065485511044776231766766203917562863915061299125075078891943260877335851511852519846459664450133843749183743730017979390264265651903075293227232341040987387313840929974538081138049108875646408247155209479914060530435820347161979793874625295375824370439361180202551034379838770487497341409003071859901496205602733316044429932912144965537424030561808426649423705448325797352340893898410177866071576570862712981210606538892256077849319445047208855341286534445619565621496804899753096384902371749694459573061790601385660521912169882624543712633288389608978545155230688464971718672630369946586868404319578048075041668988587236726076702907131731365313021757640874698415651836814079004466658133177145852302840750859925309802331669728515168769900524920509130832875938853168398418042036426266469523904861100793335910707999769639659839173652025150756081329017185840971175885192391358548572351671514334448637004194477339477000021635980515268044957362896194004747962745722905710530138283241039473634316146882421234558004316860343484820083701065011510072069819643565865300890221508071403254052768388159796856043664906805830456188635568972753400893491111281067260402992052637037353662403102041590985124274522007215758618684507795544338267348400950813585483888348493265718564088007223778135051592190371135355437704748173991068174534306155996787836221953518201074159528901145910892590653650177500537013713941476386679127203143016993236332249411549008104411790986180388074756025355474214215952238226423151544896386334722529802526708621874120960338809518158928602322329398879020602726460255259119064808378513593777228031662228742542827315633436506808527536290078173081645512238362121947110155301102086818891692392730186585317367296314263124859520634454763831244434784532649143347621661842878355531158869551281459053159704860170819567513825557101362530197849673747001868551054781747708540752114003201398194466630581477635577623840228032140589483802863457337318108475897860954036180469602805657917644702726802712260527816276596011485018830853149092412950634757631528302881996493862999672015041278046780698490509076832843419007230680484591106576244737171249509635470532040808879627986371097169198234470868387534267587793673033993969523346790813797234115063017577102475250889130735354943412284462392410532686864560440980802297169272981075887383269212271405735036980372598120231109846553047095919334231032518631544567621094064791554464146412548844120082572850152585314957532068959547925669292079500694082851883532516434767048835981339911390569448666899327258844725055677327255054013339281499612349239478086857169130943616661551991873093629747260391572092415182864730154416255241890925097946852828119628737611591508732408722985610319011997033705369956472246913248826504885973583787625662941981233733675755027986679315508168158650636334034899528475379755034067189014896492832257159676910609284478450056781511090588146934787209058631204997951050496683088661718428261296371875714200853291720608828457361590468477090815817407722499047250026860358976478128166405263568482966914876003560400806688799386570455844753677550037014069239986454650369888698574014105490995073200164913282115627321291987390222453248926377691613159763442650741471045210933153669867541769197566191617918508648707864996313619455099093995434681929246380094814782970190105979823297334522988842290771792703670674166326522788194039955991215918409308962652757992811764327028242816781112875916360537033566983040288583050945298026856611431660640423628333535255391882068658227737518373700090577743540554115261302011095564604490031995997288205079515121496227410635956173395957775225219508853061480533549811219423634374029404027628516493467121382822093135298624176969571785707717379697754605020763807721924457567332360682509669417379678080118117407135499707690314899904929014814236478412209966391405441281189603514206852665646364754165421053017534275511495838512789257774409349351974441434966841457189637402715882177531218639490669881072131511196794378981122454196609857048691018416997661510451499887702571463717288516450835509813827465351289396139707376884259862548968028817301398505846752062800763282084802536885066431744325244274222864631193371694758712417609286462732657934384876144362432027638400776314123544629743954703588681876281939428313248021152411044061553845691897844499101768766809256153908101496614515904386613712348015912741008344860642049755531681729499601874759020534687997841804101596567394350792432643250063541306585698238900397584521240501759185390167785680358832633395972613576417880429740766476688463087406137056153730801380350346923045789074594734275557729591801360088341675799537101356300314281518953136051658715495371811801402977172423792973931009267031382049620756810383086290671473419007234856416419505970013858198626129635036783784436632630469807937495973680871261456775485737826257953083859054594782772475998107424128342200626538323046043442155196617315447351813707685712243203668354467123903925078604682094857606483775981504282119324647920667622021717220973763029430154247188657604219252053512814186858331492336344061269194018349962746577620302324869924654328509768879962947794866335211896851266208793790201752779918958103945933551148515217555294976298398405817905369401615079011177794017547244377371328969144660858554968267733785196523728180584511988971860294041947726192147164685432132785159655897844989460861431393207106241769873733868826018083930087408576427141034001031377303186968766570012013108840528824089547753499082062718903758796573904153390718484052313704807132327640677407768083472762806358468231816406760492126293140114082848906697340962287973192115141795335339239273510482328237050170844065460614068485015296849968127070194860393770625872450999829865516687670992691863550864014037891430944730573252463938530326849212316676985901009600752024755499010115547726823752192374728743224926900486281770490404223471848288827220000907473195014533889131763221391251270625995796777302713921968627247636886510444826762992007003566629867797787261124806328822413064262748837246845424798019219988444056675591768187078086168550793275524161416816922598643565605241701985529231940283179474914544641600439085914739091315425120543750234385302535971490776904699425490798277691694579112347168288062491127286869693669512925827802365399800712728618599466864373489369177556962195186697945045563735474452530931724518881775498334848004304810025398510721079022956857205058270937543422852137972754497699034464942635118880850257435045193200036097966861596532366457277612628172613071395067040528918461592186784290718964235166146612652361883620291548360165967906035689520885970392038591628495767516143237737032611416518577153133165615656791811386965964579641612443614762076860902481636108463120715531294794503568682297984243476935911705675744839556938818357426718470318046141510749595045882689371664041619477591388319188987107503719565990353280651066590991073873101354571783366281385089670801062174581067779995287930997911539718564532230662339123835843178270336124355312755183156390513656894735724391542809805731388308542509959642339058386649763793520970209766619129034876841634470416670257470491746688080228663428910891058274374918787019575076335310151543522157065726469523065017150860842576860282978875514206949777716549029264541490162058512733231140232744046133269840803858606200469600964122308562221642302470349317816854898270891365091874401177677056350560458629514225974588642967232595132292246886151823336882784425579137209922445886416762555071020178911729876731406701680407266048802313878589321165575752803524310007038066327333976617376200195254766091126604734682658780760971744099179678555244819581931983686483741767501647975742399426523401195486615845615857879326807105222496118666176517444589358060617206922641540109990254393939015166257085347157718419806756506637617318560281131182673896270518298941375225583044219515147701033658585524235296741748102785217157613794726216250399943014995347520673677274281976740232112280980537767002422482215296114628129332456742872840161537469369195963307230310517381210270592139669216360353707396356801901676205541263303795790301063384147011041306671958246979457454632834405576870183376769530179650132761199699347950685920651969445828324032229396587163213823731238658267882590483261885971990275400769524731109730094104712958104862001038118399958348660524559305355362546834921216833975095428902295659650854375292444691841173775302056323556180585994462138527971670764298518772753317873150877052791382303211178539882781171161177121394850169523082182731350137224108339507513841385949999593747730293187183780283591866791867190307498906845712803191876534079199368154373323791362181531593312001808141128530620018355625471288041264013603193958217670274285200696908326465811076120898627308503859365386016333952737076184354995033684661634095084931013543446465191270585861505707854434754802997207587857550071998612131625205686081220957436637768741799998916505466399826720227307884582679369173612149372570884258539852354730937544316866397742596195865981574642051354993425539669895886917298976578286318937913287261591337899403680913309119388611779937619194166101515684846797046049956014917066809113932760753437249458292119132056493708521851827054771517633876704266178186321747362129948301046539710506186316663735008204710949467617278318486480669736431790595623250269381204971847781776448293802652016328065102810323971538121231391705565930455064052203183969461852006957919489213088774600154955775042032577578918465211468930620469416090898042474200990395914682287565927401226944276127386449534444471795807625698105573117272073610824066534885271101150079273407341859389318165353202501426986704800727504904203493095698156504535284333314265652725080907090290616436391790556419171618798980628954199544924528855536178009260397513733721796144076071271238444616031842469184230429018874069829937303471256096197185515156487851092370154844762638327092434565722709630952150868723874286752637807323260069768664550929708046295960053853196579483677355707626077299542067859715927312769955286210186268061344154874249908148918732304171827297613258049755086438280240959884760155265628778436727078129924447423203029258880440521421557220287725243857815220681254707120886341109788510598807369695425533452197692381865429230915831999423112552869343923033522681102863545177786616534158845071209810503160374964266861166595050789295288148070370037834023132304256161655547160639596401084068042808619747656894154286174246716696071424261218627765547257760322125983673955889083510404805240864361409843360409132881570288923914012723049017754120517327565542851434436192719394047663753186154216621270573824711558611847216560181796474171785859381165980669749419463114319279529693734748391099016931195950722216018484840574158113191271898154538938739579699286722865864808928370878450469564536515733037911061565678410544155631090382890400543074108206126665560238788158520525533545504242683636713452862983189302947545300949692646087770706857508509151132806891186162702197828326705359023863481526065947802665212761710530879255767553551018276159103642118898607145769439653287187083930068621300336954102858928583207546077282262345802846828473334816941794776033498028281009636107706860012140500170781362018803183990032431901806195800909485276239336649915540497668309939841558130289546979199909498142672635341751796031709987383267140715689617343117766983978472372061333660997580366609261853473439009016795819022869007460163742043016707178604265421784540987225326751391774442988548539854883617508001263717668006701685497640244489230815020170046259490182200577917145956777542494303886450703818229536747529000138326652626483910700939447407494491745442135509492214968407767047430642325539228886732559680765959219623188269619929671797817361251411671340421178259161537547635728204443658424222142568365096755116511651354645797226897446369094463684143596055819514540564420085960242119422503744099587265101630707297700420304739864214184972132712038711193992497236859390054904561208739324766329519649535169939848608726099971404213742724363039300628114037706397119789728292929740853899723109489723641899707585882781267912967824269797287762706458316216722947128893697232093933370364475111795658831437160483056119356068030377661778774038008711592294015707932517897184572385260038122560274287025935069687958750928368487622322113036722063869956313972310246235286767104919161078371655617325153147790990699421988659053333443739201949939490894254263935866825217760116484732755691295640779297089652294271617488668834152136719004786696064966106309767747480323658929456458655351192191009576958262846549497897167245772761272933625163649333390395729941715484940966316646590715780648340815276545483001094026879247049440036649529644338857949849939095907348858207176971652127617593245068964839991004663736501795161226007138823133934214448374879940917180313656583652217075369793110390205227111324432230530299239188677139780894846250498487873796998004916013073577162949269781362048757773931541575145740006608435792317248631962874742445558089213600948472759170607936381275148008362280168362361490315659494759216664020826658911674949661269033542404995618835780516260469139991046542973978317854964860732407764552886005612023210680653371247381304855524593240572249397598419962495461272687397113090720750418924499582881608674227759499905778077788735855867169212497084538432133748010134133456174475398437102647064175193453430916603990438145043879473081744813780840053516068649793757953756864297422838119782979345890934048955171573618071045846760293352760724775869355167545188710612648323656934006707959191536542183461622286205592672229288670997995252897974402723003145380113459091788458069790173776439620618358314731238393889766776731084015986206120819018629486464390644082430970079024175132382104416816025877222780667814266435948614838494132849479954733799998094207406080410339811657965823503193254448793828688111541286634765453547165815841123568853561767351879130618776070331818256258522101465362695528237453119866749957567495059678836007369386303549933110779197010122383251996628662517117818732672220802735892516965474652873138183653867449231571952608207106971778078560950504600503360013980140335433130278741206684261208301323657962413943047663008289614603903621733997572505459193182860463185695411131547020515687287536454493604772035086662810747133574413911398347436840080085729053368251283914263060049808097855618669012501214084608275348984984678893470477896798075098650541845600015105351406376867652870668174076897709023500178646319351354093231828853195020484220132581320929240156776140378673394514258562233255884713827997170631348836475440250907552125315366484239901251452900188152139430899014496807772289651509461953160760076421566765544217675889752891933753042163735198315129084918974301644462491967440423640346163661533356256071629469680647387688071980030155284710887469616279814432532172150870809033646649541934859292066229901842966699266108135046162988337699606223599036097117554072010812723361918462189753529107718271023567420921626348547105755092574561096306228821809139012314478732970083686656959181982698268056428994198872376025067143785246008922965765374669475609993407416319646915070917275961741514914521064538734746964029840124318400363396018198075991871034914625093664852414268176131342370225369249621809154925208572679337475467024619933640244820804111709488219365193572774444632022488815565708853605105812246237899877598311532148863922928958089077824616756626534423657438155607415679672268828202217240561741823881246038149958031713041933829115954349518080071693018956550963605395672236992577356841939011609092800965280344274514739561688593001302073940539915207589757613495819547988511897289549558909420342092002783802647046896358510788394972000683931114129071462631079492855841422627384363778913200228966589274576849410571661837744294638987082059967547060545531603588668152532316722485686693455214529548746483457537050349940379059246170516411669300713401327500252898207831831025565586110294562295438095961322011797534366300734307123535824884554360384868628704088265427927877279319933328062425054338421282084391726119706469794394040011449457560290797916658921918214966713865679850501894272398258945746619612352616730457026642265245855143574089116149800995544997752135892340052632880906543826945655530392348753885174095597827809481584119050403480549866917172938242722884735261952435910380518365003717019077935604942747580000840118892017397727024710445250879980199891390507474210829121871898980036180354342972811660560211817151368883882273173833889547868283321676235893449081251693509062629124408398434432008291245869987337413020570275365153454549429909172013825063178361678216600825881126740542737912448520532805428943275771093140584864646338964978151381035238329885484141399057417350175009010180588035394703409838010384322261874191991436276566661320526919147852834312914125567197410491377973933371918829484662392634591266530716111798088499034414355216146820347714185518697657424000049159464613564389613522361096581004401434019583027423798672942573372371017515102987490660914423433968044394785947571040503950400013009398929737515432691441914790050694627550914309596632911775654616390957405196007851462311177502266385476392698681045756487879139973962909182585397848598828462261649346026865450443794661133437893949867425687764732121433532885611705630835250065164715679361412180918628281732303300247544169487073751626582377551536565247050694005195328997455589710707058408651850253906298700142300165264390406741544338982370673764796262670727701581880719466454485536335198350229876977139216683633333157280084054468869090092352441738794462651895301160945033898764728414195302703604866875242310614907958118475466293523502808752347077426893662100034637458173791494845845304341326536166540556641892161365240252212761815862849844027044522807720362998246727973740235762449637768835687249996496180929259352424650906104885308124576038078877326950530278708041609609169375140282695419806370911389977187954178429137362688834993062942201790728176262635366075840459245108381741190849707674015194504355829797287298259795099282739111734876949128727113805210928314165758218757390745998322808165528864309148587402564476125512145421184627696473218056451279007056263016882503755993328185203124307719759134851049497592468319201089860229967777037756192657365627039023133886200337314380492818579424546809187623394358757638100109460765356836981103962171200125800698730455897646005909045399263263831862517945796841697852951238359719321906072962500033181994199793127605586142306460485087671121450076961955085659662524931282760674383066808923581025491738206675894855277600641428766681966123343209500442582517026743968623528344054207347834367498654520581145342882139905953568559323626332101971129378599817354606069411859735351897758844828638518972994660338402713726369715595978063077598340148919229407113540573413674033169435383013978106002448671456471640931741672190023116643822268615647741932812465479088163243436320793581276348697651641487855620593632240638175355402334488681259516123364059494486130569668752220527710859162442125797776313764541685909269814132399555420256927709689209019049550529347751150155303960362727783853072752883314657320407229191898295082704989981430708509645237633342084011977032638810995482920486289815296936772493024290598745590405021020688592564292853584744376143268024009080634991064253151119298696774472250062401339152377517915194161995761050614862461292233368475181283782025807702189873859727744017498053519100465459378069715927452307028200544812668824635769622998177150347976596129930136337977528001901981057469276889017663375456597799449315945474493092603326057827270286845845519522711281767380707188822621296779267079109193114488841352583995858719130877911824644889681291967597190756918153887763281189457003178330287317439605970278026232581590757235616482179691372433741568158664456372621484599774093488014927112540810671715287144775680667383137364469158009191664595762127401590481071064403731093626873892967689880850928926911667300549228457397933924687996488887074291822802334404137063121751909626457725576156748990549677349788615878247884556812701386114559128148420504165828787920914721959226808369177733595427956309752215576643980493787906404307344254549172899560660385334503146043952299726415169701439010723525110681035017151707228615782163662839412895173223528036239143020758948865020888835659607249837976319324003640946586626676607863186054230941420441417414002929034224620269957829692675025409915803231089573788808573996355251776928773717554940832387918537395170581566785236877753065723353299975642927310105285912404345550561643901358825953571701404819569253642296209249447144632191476728257691631725589302285212626080776429500335555388505541502862319761662322081406641979939874252090730808481196757470964963919539066412418997581201144371297576732974305792113716954417854631576499076663693062170288137880404476215699888202636042509006691189608748910276051688994342417390844702967782326672101457623172346997010598696970691380341140441002883785949117661635023031282441871207656335512422347633976200911161020392844291721754735026676358091399716306302646297146306433944522704937035633692190020129462300348274425938503772062965946768896497054050709475117040619168815814905198335637836789280338829421126086603087096920941391510602937547300499008970745698580901706470792612066113751181393444560496695896386754418454842413543523879569298228578916585458789061838927651369048242029434473005347380394812888066761792008896692821786384340708947193001983983736409438430101210152837351340927992147771270510234602227259283116343703699157160519671687180716371281083568819219345773582326222331516419650063333116656395808260843210056085943327845999375134912447996620058783439869866879463525516663923508409638724983096095687747362987660989496086658103345058619505483732781824878255352051422049964589114946874828086001639243975717144394170799637693031450573945658455618355614081037353943185551782722589735707520183433167016411741499487551190061436185522771418739795388541152610513231311513166937149725919072609057479419208789480285781299796334083431661155798519321724485170686719813873547224012634340232280768335881688247169894123581663960796551048891838004484055717962412152063480389809987162287292775207835259926158353847946779055211006671122185823702622840075646543913665668848563776294855310214920073544135307754639861256454581909210663211942241878285531013606322196595628036533647314662728535933063699161274817982989913973840766105480209998829761150616340755522871970366357246923226681826539942329060615690862093106642636830798416919553994395978094332719457800568950805968447847666938569191717603028504081088759163933688283274051795905324789596266115698593271979706273101812470036142189674205882531485219630983202167739525831947985409707505199899126590884153464666378073109916024859557300943694574874927601707956943724197342438750923994947962728488307339089493917217267033145495585813920586358638807930531484286445747795756368388421294503410154238885443793153777988235437454440795321158148119978571946320524808416927995796885169763489677291684811145967618994450989331982544619767978320816313603807182726640045938674059259996346984407559595884773127793378475182787894898717910253826824768572629910912741708277894697317817615645920479893446737058202995276203051808084373863788118891094802059500027630056167281354329455085219872610578063490050110286254559666329396743285688609624273945089878319811120822141952767655547146589067025234545865655816623594486079135262914920014034743415496679466830680584032987151068370949680158524606001055169212868303639584927985302879297839751006286111337577578719514162631196003133408275938903394889080241606864330488073533211033281049922385969631270296929525010782578471827802715408025290555547137630158877338863049485190225442961900618678552514579767029463493829730782516667261282557652230085992846101058182700944570785533113929665280383796084233678024691999952262959776852021949905171647854679375280489456884350617224784221378061939803742498306535582076614464608863563866589343130138938874206203772621197874772260691685289023715281521269964299257692438558051238186372410861021590638549038945989917731607739570199235600802232305935686144460482474799070002765369659543174375966063278905890498014780541574072011994855177799230223581247229405013434699225323598876045513659559095139329436994582123967116857439667064164349152081994735052522144254603582352018320392064949187644735998664470254761567926608369648939094152100077452212789591185306379513037110821928790664300502340028106486202471834579051373968340866627602739570348796507393422738754509348509372009359856812645244281520882051495094190608667923759156202104963086646930478327946887774701253714304893736463847908014034357217322773743170050918407394372433006573504489067756325436546677455366025220496748784930494938357821277159882535374142426957676102437938124004026673760438613707662641547976266179388134090576124071705654865885858401051238516061531202751885636012896117202003311029177848460357067690350785390337293965237557792157777065245547776363284955555099992097172692757821284299690144028152715161074610103191325122039228595907753259603246448788359178862035922861006448656126551309341595394392034949097626352649538923928924269916355945446480633173941961796854315760392324209389857033521099423944404938048261494734516471469764448230005432994962524715544308192284530806776946155683802860749008127575948470790736797595706864178730744549450951003180222195154764195626570500655344520942228011244928243756739820995349246935156276537391352605669534072210424306255238167566287035676898674992283753812340244011873535195652989833972497900890602625637251997732181260443979881812616987950576696514549289220932961316252525075368329395806226969624882980928576410197260220040794932754530845465637432980564227701448339202872340716283761451663934033658950356502932565759975722314767352755255893263607632372773415467092132156465211685418003405919282522382042776020822107096271006343026923134995945263195054689264713726053839836290315942065363302550350090282710533426562867468195079789997252928309532339129614966391449797922731159832189391118684599066621889086152086152731223054455035246364174826061505025170568556149330894374185653590004811988278650637887983546741386650609016406787987843876383665748332255481432991859237250878564104045888387538840875529450492678690513556684345382116916943518171011958145431566878933171626587099705412660827845380222785640802059880927152205407926530657704802530698865171310091296269576482766462417378309461259187074488458698001904551208797310952743326582747105082904545026014421945681616401161957037777119544597382732480960285662100118214247332227599453447186970376282851498703068168387499930737046222298145294134511936304780243377183236722727464156218995246630363543502571665755401097360838130382309137111152620299323556884421980570096190136697865812623362216154941275096799262603986516323476379824204216361630836619503678490021084334961005071334527520605585284078218172339724151412059525753221258140521557798675561384607075301673986870723487856123436524727752755311160604133094657094840446536326719034333766168225878362513974981731281160338468980074119016657626551942897613161280675215643532596797452595878595729873295546816720169234904686654068723335119272618656507763090737522580383042764007412191027476622530607779336057505063501836957541031056362429991440980641392726780783721413105059125819843331871049713629322260100384961101291633627691600899092455039806706966776687000135656715790825509852583696667847099140652668536949471021880551867488045279375590965308046343237253803464307538753811446638862022821557648407649349287044384924522938226687542671843437948817282326091596315267844191807717185939734670777350254747967773274998077851882674560543727454237214186365311380654733115565666595494915142205975125025078389414175416144631781638353439723150421138127519758766384477018321680632641531922652327353927779474763023226531750985490002869108542154812075923132187317354323503646361324949756453014201207144851106595645952643533004262664475153253256904769558334064839369102954918646388102712503733187300138339825632821942790381150942625463385677586993383260640929891755853750551916684408204180614303520620075062689590031233460310861551729510545021499839635414200618665011757799517511869053628926861544391340792619647746001405536273508092681492252362935604078379946445766193264116298652567597237509437048484543620269498952498444985748074156617909041603068155829170280448566464969749328321365058595271454389918658437835645388421021646629635291842379041963467862691576842050697675500797027834351934806852384199572870578677357088245973796102540688095247207833271129697213432079594633864435092809643692700309371539828176590924288483684213793506068187382750024363743691966816485857907951862247619026902594682361595321438997927438139852475147982062497967171942567630923217107392477499209016112336693032833879499258298843482670608401070640140042840419413671819683987206713504364958119537710394994300619204627255072001671121720522084809273492338714438591310216635300952625936495839554201586468556155001077129090404908540889057838151195443879293277810863258374130505966964304714110009685673897732962657352334760779269149034052346076739992375217196694538500638067420762072543737594893540870236797858463147789364944927116931935147880787558280138518465281875184137287861142194308784288179527052828245059383160249829854723363224837198322007368280553730945618429372553395044426287649228681181285879420705420740757321675454494691649023105703768574926882170767755036243411337758210221511767497842560674096082900515972264558249724978737096330223115466465329533804117506337750209080010918572530068588364591333097948728783857364785682391336911889424124599038900323452473975893016893630427513686887866953667594071044684396780248645885190053709386415514159808036545926289895977832748186845300850229728810408293792435339246067242350912432066932500556618002419151865891062719652097560468951131463253763288026813351847738897462505122606650736190625792008131190124846446466531672823064743473386261431042885012133919106952599366493391599838756858287960596012872550452628397252726563289431118891880357461487847676233287336108328632023878764449151704098798795786540680774710105092632203359530804053218805360820322667004736661729557417591771670887088567458450029687120581614126362569574634700598405674701227546627921869983814287386056193696894833453965165433502699026486762897028380667737709327856147269029871295974766139993835483086750366418842991291493633113693001418053485371269971797660193576598396868781922728549268187607264154607705534423887705880539016909733226282184402737586003497234149337087429974277830026991290479503222839180612820267229453127395691724115873482242308901505138388188774346822799507341077814387179807376561066001126851893400635054296014957944449003192169780902608942503346900625563162170498472344653471149448630333033062330422126500972282194028789982117734925952646483113117173255577093148714536681185668282374255496380673169278783758917040438799281984187377414739927769002724457789255865839805562569770465349823405040515110023944237546075908160867186711406972322968109506362068327156044631229029150257860521227447421975626986328507895625889080224877106833994972946306350957659098800832895805875321214340278869752913009690938547747253249492331046493403467583872894971357527402286440127019280287328215228525609380204596218668222882025559503392921227367096763049416195082270510776289401309773808729642340525711815426644879552310663741306034643584521011545022192775987997333127217736997728723215926582005686681227094788242824977946079833535836236663726825965115646006794089505552157793308983737428415592042661942075387974651087317021960296741153049305852329718099514305652343722793931301503751245716548132011019270617806391345731421689343924879879808730196041517953687449118328300978934349599971369836082734230436968236872171006417540283498018606348327021413274439672615190480213028258337605415239343553294511400624349257849527597394353084686343985291398212525297582583204761149913862434136024583970085278799184795500735905179805524767855158407250781607075822919295089851609775990549295255340795899391931886324435808159451482315059609937125171989045379650641651823834407427585947172009710534631345623164366895835451558473156053282527699583314286974449090868588960383561876265713800898239958013330807399896359121534416679921753999527377796920721910846263596986542343908324927058308120221820730755981835018379395557674041466189969982182211004956599421358484203651226553356659844585605751077244262116243867778340883815839460891347505506771456917206959347299148859384669411985127833567818696026142303612936024394405397085694629817367079995687718440560376764915565198663871090188126210004088197342482546557506373343433969006915921104775797631770609847075907392490591577965541259391448591156691585046083556476684254743434326612144619189297757616071100465729672269585180031193418039778636770729933611750735961386799407683420105213392967921687062644983539329433309648659967111031789359103004619958326568613461787556711663266572033539184671581174793965809471308939911017726972122702479852606436901643627099930742933762476350726119336010662880957689459752862853560322137221818060826182712195297733267180496036598782523179572723068713711365147344796736771594248107408014586747166941408091647052987559065296615523372553959010327785063141666572189359998473157258113697971150276725493117846116116540166123618037905503843864207288637208971347076791536500928591065816885510974748594881419920544396608593068886953991293996831821756078475095485433786304316150269284295440211913849128688775648262550044494203490969023689880363577519139297326405404907403046994366131024024526766747347310819028836622303292057744415746321502218408435669198484071359615823521827817251046070346770756829343586172392764864317282325197415322463788805013272410417896004947659601678749433874389106427250021913711384829133405768137123507857761101603335694712242061874156979461833079916997399942875839503735145688595430194855919694477504146692174794253611075317920114751538703126518931459873595200582103746513115651465113765152138580853340342312684746743199206185662000849289225573202465228961680029355812272914654048330535307134519480904741045406720283578982186860813787159206168872191338456867532306522738592411629501437573425713726605600205421890243147745215765133908904066210711303268646257122813916414610923304497523150975456973079714583348168141352707535966870119843774862203300617673626803718178184646861604963185240161661508837748226573916421781076350947230900442990155283361810134919738254193606314880691835355592126253349963855919338496068797132940426306999832679327789536097371339527963683795157222639130191308647506488995013756777654529872805378472440267355026710669117127791907539800540419138886727046657448556048710059670843564427273512755076908566365668037608334660250981122135930586280492828706816243653808686535232305590306634243830025450027081548099845503555152358558564972816315109875121903154994155648416287974592136981377399130358382817531768037038411236247594916687368251375229327296871114915257370619369773835765651682449301669861530604943860142826567592639315745333286307910447030896992029956178000847164194226364136979894033754924738018504405908633513333738263078406393135342466569952405633537529823256969407216760670253325472851820521425015574438307970639069661668716110069098798004703882873093747520034156731358520197865738562126699119265861712412423066309063462464115086662773863908640137867120813155008398108192512910660284506322472175484616642002999383832934517775251343930260898141210617344354087451349153561621901419820927326726312452081346959525279397117307283751785223487576141370574006084105062918675641827088600669262341437589795082147251264160404363271227948035383409493851859402823142753297829938753189337427985738605779725348803585983759983565962162205291396869249841625316387933003267827331203638798138860682584968909342579409457073236267922671521507202366116053444320028932763344268079963883292625195829004969088647844937250237385029773058566652210803662522875795543185707349492390900782597725571972399691072659060301248930646891477534753661552831051998027834282068742636424140524410360787810410489782438592657140162610054162831828892581332354941712626693695703005695709871806019939337184518463385581172575182408207627012853253344920245251009094948543055723281477362583965412200696511039305850376903657115784472076909441863663890343162748652817635637610478621968793931088609053997492791062219041858382237490932523003309690184471341153131719283014947997958792211882235908129146637459359840047722679283393611162246661957062835284282289922160268541672097289835343697635845706940931117737626263394776293876338894477721362662661764424211691127033441710615067331686429388323198841107940324581388082401597221783751405886167021108252668651838023967720335849343301539575938430551093512759077525770446881417214336702435389731571277890381557778825936992630766272499935965090964596311294094629604303103096745170501093105687526675212604406509055004061527894574888967081213148153439239457667435717470330990887068608946231372607236539713902317456578229232929087777456598539644148225354894000346332799988781697093349394892781509825906533368648887467076609892504012497464754250040027376694927292516543412602692394848102077746705665874104547191238377150523844780507963497923481143149635345487537639420075881289308134126638248981553064422211949601385326927741507845325411080051738239978621619780942268668767876269003713507239008781414012533034174430931235698468580173329581609085362837344710502570093909187364800138198450647859371835636590589476663671843118591053179466940697226638290637952928560283534126059312587149782682211869634174013649498201854437877191404759865049364384838589596705829578928461784760376253476813038355912202449404159355836683607764824018525211585983062870170603590858282321700051755793219419215844272036231383843757716874574511920457109293314782758151344874924888460954643794307759998906737564378776473610031948591861499254340771858134875181177788613056285810563319100672794662365895102932525662853418616262785543334329604556821465230798005931539949834132666401666376700187095602023731733520384972238070526302039918013799547824232348648026494521162925935628582229227490908709012948258213771362147710139955309080297331490654317772452191900936827533072584307860911427255109085031902519759414790104274035417296334332761230178584895617216716998164713361271828112522705311156807679636632330541651907500815958860238142608927149782596961662446206833879673216038133329588235365287679187937254287715168248452992359853664695066509502374418120285075180394289696760767667937173707782284400151366604348837391836645433284277103983459288855516569334147537221303364892726889562556052462537308383695991779558815996741234587760224711200292911736900699054862747493463490966756566856214973489076394004013110037493374555201920888705079130590441817025071436096839782227098167791672151912510759773688595545565511775964097825282144122369617134140945304615140983138590655756235665926514305728850861224571826769614054204094686236483202836836420716268439974731212995794790057539682052172199165404806086318043355778183314410398229567732329303664051174669691128445870457059739631868196078725510989893321331950549491126299299889121665921870864119928853285007974561271022608261300448169684415366921579514703743715638974346975796305631200428786093094787777943194366828494120710858888068776466427848606398596983053570252093449653955242795118295951435387235340277178330540270395526566039900671874162758236128469964186816572646548019607046380450397629519308714800012939016679069789799948961781067181269535766040816081896683441700120898272803054253675950999247306385168228864914885519061233729736492742850772653186463866481268740139320979180220633355646494972933883828980850925325364481273967361183531868046202824368881066847319365345917626256580578633843606590464275240178533904334124566551282927126277411391215639349543458704593061787133207280268177281120935595005290685712675481472445013812745490100220278127472892073799121481757754601760553906810863067603806754093520868936331274572525641874103974620193219121363710748614691650921973595269796825172931368035642444819623696797797681185980803594008241401178533866647736435559007245367729281956400671225629477831735467999292367618817161973330821066255931324662832198319402201822934461409459191849537988868394041819917819003385713616788521179313656190509161604417097013487075510603352775737837715219433966152868992155321774138020007947097131012126271729270280365595775878419400859575824779731057346399589955975986507009479105205699604933209046818282740836754723684650448886672223869612281585466591358421274925115436085766638525264662928394870201612020764308767362394170812142326175793941802278701218079357939802629966923940052592122529067844082903828324974525202939641466149243522113056368629708858178842862253555880023235062242768322571825219856692380455963769342050402474535124772630073702794259944327036752437017433738022969242600845895790761073819398951522485707092659819157229433225527958859479436414614365828581601225416939827093956445558950118336511047717317551438475164182145433078704941445644455594774402590286249592300539296074946314480096678552731552480515267013305405179100866778184886758813686775259450003215945753169337534349173878466301511692707720582281476198384506476084454240841353591016179342063628564487802187524888315615383726684823210363769297403173553659777319423003963195080678458036756871618021533693731763768506665493235343094966808339186704965498186481460281658230279694750491258746903869354609982329842819258051762768326122435897942558513852037764314399942299643508653420247126499180349429096984248233950215540846946229886880993155356803744300733183918792927125704974603163831025341986778753888892020049871296831103693114131492397889200810851774379867016635888360634752083667327211252246572461683243581669415415711746427655066445728542892601922850178589512141009767880639529969356407587616703002477252143851751461294819709429897464796199772908494217253995704458109603789461773212747009874369994459852648486719908555048363635645877140475906844680710256890806733064865952331423186702274137632532263143266943669041958039639915915334381513695106651317392346362763389955796729841400987270583665288847094412829059856110731372244427223340050414976009131091806054828161718073877695865087348925731161421696667088190849790294450246526473654558736013919637769685793868246097985712469791535851178986972060070586259576491249357324252914518081417406759552531814595174514119672399666841453230581278309399712597056508586050291350135152584630036613147780505779026406905955482774010872468240465804727928217754281370533515783277438606921804340284474143215326404621208234404577565120131928781644369541944582235388840786224216245264152152420530536948457281059668568594833171069610115336040156045719178452375707694590193935516439712713100091049873225457609552663464546432949988629151115072737140571724072196583485909165237872623471387419311208120787417490144431094110111101846694338704042316794799840195157526699639210699552936432472749003098787410581333459855943117091636323437483977163088185906721651319426474928843592478053516985593855578189627653682568893796920015954184105706881960604986800587447768658396842421432061215650573341419888508254027292181138307481779679517574459022661691115123231597370568254170299625349996524280128540684299568396107809035052758765817788281314861949536839742784900430195201432543614425381680684868513083002535786791731726266918613103908743433935633691432067611780223405791422948776096088558920117062830818724429813037283191529010649002820135449213949125396860977136073995068058122862658034280214026812846089008007574634128643875230044248766031087830181900088052404501070424792818000219975734890893046455324310939384723485520876765413543372663684459159869398974555308942628949996417833718237430963029616025549753291013422257018712324184850341401887928898754054287117665683742523293446248779467021974319297315325556221095431299782921507644293973737449647999227600684471772379572604016177432928177925962473344046539326815443073534781652404392737653662710636449248628936603719375499439708218764431048668668469498519333556158179078504842346986009961203837510098413412850758835327181521076400043457803102179176723240233034814044220889790933260189500428742494535293066441934944006286114902130183786285940138541837300211895592195417564746892584051098268334610903423920274230982299980027040908662730103927270645990754857219950426530432188590929205578301002041068328831580549396831576946727531429980278713840551531443595322476545635762682037787969989771816368140174658738198835069312063632983679718476951887384213996240683295154517909853547303869838027198296189078976859621936346689975948046994547042965992103896709138087734079452888883974383858585647341610845409870459472521640894231553440401941981336299389612795879392254670140039000421628289234647088942893702085347247354082302030467100961434584086902747029663199871550870993775259297425865733597900883155670572521014524891411081204110143267433708535719630488648939630613643497893530654931931237039706016325578058874116095783409648520823297534435929735382963504220029449931301675374958252379636406211893835464063766975077457991400657054081344897377127357886457721606916357371688275681920009806838239804904126744423022182892465991354383300068582169539422433689054426470032794958596138217691918833532910811857309341783776480734494530544981503438196546558293631987258072812899638408146721876666763113809066543384304025703436893664252072614229461515820606836657815993249818556239204709882677857238291651463146520500322048722591926414508365704672933254449193872608833206042864145824085031391680842963179883860245505034085101240436855282023228488514465024997572263606511058662609459911465060607682073359971416112331989641905087644258503570067841927287453431102478133277179667291374537034811372917972812219680170520295307166762629684062092003589593963768523702194117347224238345736472255916793152819745592879041216289473124012527141785056476782054397449722144929760136479801749434420353411189954594776998318966991057864141950745694579587153085291694842302112497073577666266256374539079584567732424242919909054314742510057399094388545161756505007379273729489622082993613991126704525825817940305707097646849065323446641720936769725647963323616189536927367795165976974531088112284366185220666256036270688055598554179985360146864487088346934436328169660713741513919413031621097817067106658680928340750668187255266264711149066564221606692413153073698886055691789961920857935880610447186725421075531712937914488732560083081179074485587848777525956175801325451447459192048309838131514453306526650858449385577166944305124302886256193337944412874413804646851866002202511787773263650465002666684770746287339948650405720929822029089824622078307418198298080019000070848298297800817335634400883607221661319075283861358546139838617055344118176076457524334046578612917957513230148306156151436067158238020396014972267619655756627478935743362490597838850395809920457823376768299545363423279298887806138895726131600110137375132414847391032922632581245182833622559805131083495288193446047615558176148531126791878625959251100422662146262902832721672034929742636965394492416524430059651945095374642877517156035028300674219654684800673284338000123848029321922112338613051516431137965476038298163499999307587571893547380748560862589654574191993603953025816623867118169246859899955404783217814471150455258516859839270429505152259012905916289327594433085111702226443617732023459450110406349173018605790389856008649762023758318134423860032883076782947781000582209809892413179587002685500776232218193723882422584999776318559803687173226103227497004099426752036599499571105352904639564899793192162322022534176372886613520298738058110529025590236397056184630982338060419756487113466610164404370317662272815114496381272462892252479355471194943087070661699989571123557861872120766470246140229450049758087344857990104770349868058839452447831178335926418916512204556763528866508601670742048944820272315380243700206042711277725166122875771649380427028094692059342760432051627002037672107416402896910662579724150482884309110854669893443280519522968989693109560735455605955752577796513225143940004904865538553003326717157739607424817552606797418185941470030193548981456625015014855364672359027062155118376059579302019696777893175954156794530424299821212558828310177860790195755672616696491344926899442682092402930897070169653853310479231008136320176055205340467797559381160660634459924657962332737311177168674851426930291622978328027005098783279455987055667648453595384536767877412184637349682961497881388514923616336641445698776677970272007180966964572030000989395684900085315495829305256637773614557965968998008749231264184189674861370651775838505595106469401841725863136342013128165045761141285778074802914581569964664147156917416914958603535671858342347742260606674220843119108953198878555476006322307712795060405064683219602048516081535601734244805541784746826966598680124339432167376033279155469555438921943842781293387444339426795412696010551639463272721148441638819837215354463006586403382886463093226905984591772840724942225518432376107203473644872699857024000476152272203381339562821446235721221698592005101289332855523642694889800178180817662461031212151291804585739349716826014360519744953641705985216103712010814153156298560412325801266407530221436672164525979069048304453568116820457639534613651506667287200116687917011745126552577088006795005339465796923818262014869114347564211580068760639540182126441990839730096952595342572816788519371596731936056178955519486490450441329515516488652067539701515216752818433185248722002597538374102652462605265730537225330620852317914952445142999663703852461130388655134455804525877314825423040236802972295624146058844317138544847451014598964291729305912771644856365550387275743323236453056186821506777424745000300819602421725634926384788697559214727187472762447483270033467833870352656263841542072830889683209532614415276889138175684087814498727962663112735774387934345897494514693627074084797558875586513654621327941462698168693728696253033428827159694838132510395462466534953361348290930560796527988782287067583747813530076011696911010320527823831485261892245974239047651249204829654845304134648221044238851786007657800286442164829221084994701628786838581874904891188350037934329976399372895609678751756752197200565458405589954034316228458982099944615622788090733731108048330528326172461707617536777571143131613538072963253353821330103369593094336714519494977772476607117046304606419306805826377335944715104119602501446782929782798657911741776069777870215966597892076035841727187660013289059355145130159690625002007359551669493608820078702688407130359062825139242876786634471485140546944649639556119014569841128659679371302223896593690827973838162550480254845771310748709226823449883434981238938444234192703335527406668921409841777438743547846859216056739783376391096667615548179069467126565252857824697657250209705219499008920516119982411527810074711490421819153920578361174256912510150161231645542270907250138800662879008039357482805686266278688164240949470898386513116234749859168305341055478316439268386953100091356083320179970887999921467886901724812682430341903498797777866570059263322987764690520318909132877182673071332649660868033768592171809352658683675945378817070055593062899016156183010921812608317674635562146746810496775179856754324940616941520560757801571519965194601304382942479089220494334178468627310630665532404562871181739228008132089265297776177962398136491097899009669084300881361098818872908336633999424123581562618909819774769694879282693047426025673599107680716647850617744282840949665597946277538207860181925428906589839022892771980567341807819370442051735091064420295217021106490787063486729758414742716532014025158327436457336976496554355391830786252892604723084679530769273744355719537544115608127034172768744959366229797428959526686511064466324014809367836287463494768874152878866285750093683015378780444611383480657960487047758939000690717729056828112208552401652998044591897697912994072175343831613329164178076002224608247675986517306505346415320387130875840610833959382976024654638641445518428244767863407696793864153927395773972721621141658989104201222051160121079415654589246259304292500165082676284408553096311569272907554826646241314575980219799743753910326503448030577226827648737094340296702105366797352970085069100731544447439852254045073355074915466184322676886795184898415087908018495394832147312104244502308941658052543062046368735939403976179471628629300518096929296756915473165628299791786102013042507953075476883228466456460280949629213449408864456691976208353539404338099781520517092959263849452258008443817521326520800363704730460866464375436251707189319822668424596712774574884220147991385931832728354920402033956713535887932426274674841029295805772705425333921382694859702956993920498079707923444031380499878929116575906910475002948528763274375242874739237204424995726459723880819397459726948371071887119012905556335446344655665475824067594124877177902118881170961917986298084790793376322363230562198479292523585041275900459066070472488578966855049138587679216089103033352986781649668927312464363052472228932209841994195913984236015860548658038326625597009720359136866459580474463825337723482614130384437098146073780468053586784099772813276389217363775745028905605750086732502212481506268629679010596278146346152383174573396758358070079502636790015402441416270919940414609977480209565603630802073905291566360720657153472824507558763873846140661564573433742781694126830239364168772957805730772871058872403841577775027360675164613150499412287050323896716160091383649596389212240939120619619901945642118651041977304215672845285640658857636958865166957577056340380188925737946273729774249111106455186778668253803793420125627144979528898826195280858086154944224405017415497789424111127850621107667241306286408543370222903251021494883617936966302305753236584177419641720434633010637033205836196852302495390282249803497295708409144429703433549034333543052231725142309933202800729893661182429939157224592199875302995863338707126250193770181047444928754516622188360676153578828767260430229323078436694510779037866147120941195348164637397291679594193455386239153247951471682045374748281378055677561206718558053891293738914017592768603500150425133125658911217681298154846815151718233933912486742465103902082766107981236471355661505417240921328953807854500898193165618438804583562704529351106779351737079933464034067276356178847986479651902096422538013404312323340839210803899300877637311086178219902257333232807638600710608971960447685622203553820668482980839860996696041610097315799006433441379851526859286096746586977831702272225893439047205517942666151040372933453131730407666262039829844474694087545760074640793363875120972589078737991262935271576663270082042258203111192203499927435718587434744702423625016145827034072281213611903899685640386856948497566831077359701404240273363652952767112735691400116289585822279516865200845163426328702685233690752663146279208001903655910811771641384931199356517709830514998944655795283860857244940940185529347870078086207127843255139429824398059542951571376090908725186174498311630577700537106474127484068158385931793289036249046240288680098989525216376309619338547564972186716840615488284947964822072693684779110066796151006213114130525541082851121914159063493644143855048946627165371226617691413018149329984102333192660882547945953830542524037613073746936602664232495716506952536792946759369571536664669323414364907277858630081873036873220616579825316827240756154042732724298196789577202614315461966583377441229520719680637682245141164434657918006731856321487204507141774260415008321892146834229071921881589814747520603776809942979886459758222873294727816167180213543997664047109709631982598040990922205471519424467404690383292234578424215226536025182703423003086174925527773006071474153759099450184523367871322978105672925621261011851655294200650928622714636054749773091505664181905498716533909245353107381803276558662607891356579268860304063410021684406731313183603412077210306863365259654670200354198795028160818952543308751964621408480338027795843551710639328068529514830474528473162224962120736918876837697403775069550933134528132165039011958049240449375406604589764138485020457156263664409152222881883189887703570413312917023770419014305302360300732078904221736358891591343542528726200490497179183897080962964980508573843066631100316345822428345392234347169161578068579663569630885363126669912211904034535893372502069995709312690618895417678222834786738662053479937090049497111087226151197680528968879408686970826246302782026310965550407386886263989030375306044140620378783313894789408126144517761376028360532814138293483774840554025279778366188098393163428931869293165774313453915964258523298457511564489333422353787912927370396087779693431370778882827529452920969150855141762162214381778287949999531004160565438925103059743411822324588441345480317957789534476204212840538263959657627607955580709357526740837261686752770373537650578681507212974484692945476041988639502413866883505189216887899440743943157674611328016595174141630568623670532303736579409856635131266991971661131387811936041472520569061500200809303225994804165105333959637489633666430572024107209994332822082441309204640960586915844345108712396480672521506201159704226338087433229122136141642636671573098530680712288472956304623432722319524905041454476314679252267637526724318733053835061467265833123786880282489156206518507887466114620418961482259871543927930564969354098629444167035025265811782320448246850200884579337542284316148904571377003882638526602594710211872501686947739464996456096429803803559697132983071371597294402229143658140614548235548889409094045528791451955830779535628729571128881949990013615272445617436683148472175799248396435556221002575760449424255287812034435620211613951518863067849532957921121966195732374144316940633579552670624141784256253518802235040648137685731237619919892703061035248632832897776309910075015740177688058494733233849147001873834565516858604988321612792677522933532895733920612671806897267249098934288395736852100961896958521180491943880015946745592776747138377756617496582508582949549233526270380035497102792452719107578046180936906100636803487074069694481389854941258820971646364106081675375930340689621478326893936856948091916186758623593672389303386543472609452534707287310896614664274359244003276588431198409230562605377641422224489911706570921486768551456782701658517204805221673250910579385556347142069972821923729198020834204551503273689391694079716555390131840527573118233261122322508436457157869823850970523699527445448287734418428900296085762490349849652438215151895765790456901469734214149285040498003918722390460412156327482645169095497648297505948095944214654145289096820463574460517084254824143391446566388511497595850708897455133556495858245880608942093697541711353466517602498983421169200204951008718696298953115597589333649768378321510355591108225498453073164153747758489510673634789379955557596681281497176110120996871832412068767009761415801303651048684824671841221122733027838080903518311084663665216042365555212926071188880749877088957612231155324307066962532562173400088496730125317865952568435334614423572221837078808097063640088840279321363060494880463952170040180342923941758834042096949907484570182578945790860810620180651857615437466207395833637423469096049257256554238170541229512391014787492272913158168700117410139753431250910765184257124632784125127592389588978757767758229972613703314073398783031488447675452287780299023184795478877714601323998312384878394568071911977397607259791094917287220846985867400953154239887325308602634691485799325495660260092747568462540840402969482488640239475751260695871054331957389210809751488553021705480892720166090390944089091139812377698484799058960573617430724042075785684788598878016983517317688852379858101408924287988409353508391366775777972624985865782076874644630467113031051929308066234909725123848023187607355274784823480727576687538069971887578252708453501921097608805104450941062523814995347876259731236642547834863016129741053043246852909737927595211933350231336779653503813089813178437898462766457640433856624734896113324635183638162281795016054849749278183953662699834747618786516331387237008521097799816629045409270891039938223778127759207633893790111588486606307193592195198004992169262422765936784161369550782060863023083057631974561347729598276700712477730600372776531658456374619789873113533065310682592515929584651933498657177379650036966438346180279366750285156968282151904678153964337836027652640016142022483022679907179300596607213835104422829207108126390521665918619229675195077257758318167890605076641326859021464510805308657080849111267351011170501818119839548565952370327430278193518368650182763847985463174802942369745725054522073762888977625024955955269988820095861267291914663104385774276489394243768087709087047400873826781096882805100523050821128478650686642593215303906577083709544770800980216938661343101170325697550456934910072491470695459367610029455420193346062114228289083391303491442158955169745865332567402567516162941141594914936679456148612669066814000187401834827906897260986488634475113078189784997923998567788844605694707549972212700176341856398323187737364587049791497091346786848411970110072558784592482133702677556093801938468416362259731923863486938918094721936101103319595701409706405396953977223831968840417761057133311145515295206290999554744247696913409577759432620621720730712370843814950704240572984522056639160080705648896959044542876004932169604991679569384777688311312875206934763684883321699169514899607157473335878830609751950789945385239413225878955123160709575699801260751233066609336970873379502719083398102440904829621789401689904775920070031163331152184011253301922039878841529285602235524806947198877663731180550914011212296367236035314598417411766781328950248136961758802520096841424136594216358266697633618107039852860048701819932785315535332460249143352796929287002848717537193866041930830577451377457533687243484449037786007292110964527012681020767281508960617451036274706683421311215307541473775472029572590883484380093781087530095830058096083301821315143236688190746851324070636127467495165861348395070905316105205979300113370870480051764716452984119438815777812766294058261538761704104138846412341372093961647883561456009586880993798092168755628641073145809134476476854081687433029876865006197177826540026836143238315747297236258197637065114519412096915102645215208684250984113671307369520199589366583358959850647451282776185462191068809602921475114005361357375328454768346928812235295066834561612524123078562254558931625829838818167359878761889224840224605031086020224795117478882621137498721042588797218558614601476011785417416047532275862651164907536646346806291133052034969910719008341988646077007841966467241050054315327046904877603196012386909597511874993298054828937742000593129854402033806316656049565965424747927358105233940075339940367253177511872755317930875812807150178623148019392660043078059528308028884975056240066895353927988626206542978450165242209315723300434383704674508588734797498071944745337841070089833612297670062505688316357523979725792590351904652311900862470938341316456414157516520058638976539014542634598834447239656763953699541568505905664855135087327900063756952056812753871525531552721668077704337220172624059295480251371460685630078231495009288090799741105492273537454153269759328540564564997520457556446148603784806025379781975351686263342506285117563551520147575163004266826960876399655139370097101333687565877911460483919592802218497008596134011355186111556885970582738767534649584979573286957264543765483032660713822727424565082818258702445783162272011239165378209914616078657100098291531066565685850216328392583474050878021804877775539615454288486175691273234235267572401123146305349830195924314370127115153411603113837943880632632459877588939244494894912546479580641128721425097039609199941016670233408103286626989051712493533243066522426430419728560945308935951230640208318767804642170884444810942337877896377321594114285266376872334093503836038694151521720408300118775226882901352039275929753737195286473936756822814491463587517163027879764190704172285889276979198480746138922885126818358819088191864243011819063267029891568600103607405743171163054554607396564697870498019352730329083534407956820752584252463293520360621916314132726626521934122510421299558673262809847084414915269264388044183871242583122366122035157922259830117504797097932807256197471707415598777670255602419854171816094505756789265438410588109854985087558977739832777847116119797422062609960522091365642598409308494807676253035231893607322663868765631807480171725771305156507679256901201774784864368715123294233339971173970989532635211211318544338473852402308862487383544433696392727045350127782597730994263058075025627848978924977093681887071852346929327100210752669423215839165127205731953777533247216607035572807151156303243612383871627902100819774457793456774384200938580998265982690585297778716380256086489443770815739115273641347332538662547246751639924779680969829555029588877493857444547291586683329613778386532678733898191981946562020883789202384080710660292445671264624164490009422903901983986225864114705599561030863574170177846119472354968037609017404809952320845053365922943548365755840636293519663949483876240284576149002835173670434154725851878733531788477127826515780524783628845459281995096723101518605374028447658676523287550550847645588119824091567075230743298861999799111735493149256612760016024025357942730920085804764756451629224489760112021903334948333750983635362060999239300415231662448656849641432275834650132858798361703662789083733395621424802280389881503322801838197223990803883979801165768014369658233385605798321720981156033841256643281908593760631566044248209750661001874806251795282357490747984450911914032831367135270820575892284839730231547491991930558883230314610991876002395481215204914719773974392892979433800946388933100176679031728052967285127901399355609661849672358147071127767705084529506263825356794112264025163161392298115850610263511708666768259120882223016836554569266244274630980150807781205560312385920487991179191585757839404845541041964378332315882866941213862766033735656166080229026093723093857129587188706567048759304421620693232632292848593416687539408718202608162881146964798144679899092048303446631190103906565033675772820365454724896293603440092699149176696164635446891597044777340481503763689379542827592625971626670516804215987251052258977855026947375897492697402292235314810755920518298858706301630280003459682640303958847735203040578870856097563643275486059916666649401308717203261722840523441976398730162803042017502403167195572149830414686332092395619686982913427363018011951326617285729550997050725914224734647280607967411696979312098250509719022017770515916408720594367167931407979970893562662697860564812937775211246323968998335741638641876098075075296819914391032109036535233320218614315047039060620870769009543201279303276589740018597251764488802149281215188011883198527674877241463816283232145606492793506331170724666875657084723082731940713975368647619208293783860039418401052178955564629824009525295041787586750552639740958722109412484727488250125247882805799013269646955923579101473451402043486752948699678006113772206830841058563750853445641688877525071413178566446215315334555378084749656080469029107320418151970129468942789680325120790396679681504790268132628864417960180485788841797104654988560667945626464882957955092421652464170362114260608742828603194704972949495914400241987273037542853788631991432157998185120651439046714995178629589559772447463580295841443511357238212624760988396691843582200039101563020226411090963906030105869095182854840981030460333223200921298520138121854754255338871745021511084822398597896201550717166791865332248196663876847766448011113060054752905394754003050207342386086291277257294820282515078472857253047949821512781265959275411531713972719800227192880574231031014988602293710682944991918869306896164935679775825372787515416253234221394752087117046507216236168035105655713353547769190760937939532479994334288104163729202856995636822169461002760263467006627099563908106256282304345020034599264350627680668332123925796499016613698668196212787964355475646410304061727107329983639301869078657700580783990982360725344590979482961024973159240340642758821311820633948751230196577204824557977863384114429354376271449210851270201997279105599265218105831194472101855467335891918391285391301753003555223057219988648081621882570240437812585946818869105717082856060697159033788586458070515578398195310960484903314092570409834591921102312052507432491024200596745743003610605494511983031029914903150322651923283999451718507703797424713288594891088613384740700960718203852732208311591168789453656457718759923567630102724441296195066931333839512396682492274650139458294145718437722702390028138465985178349648399482805988599405968950469562034790340906369764976747822251122331537156096909947213436343471308513165732776440976260063155390258854407738147788226461909080355979566605889074870816300636156486067639699743453268351961522979507935260250966869944507414727454106192786242997578670387685192292550679339957111380928832387214367156614230034345296355083621137479833857103319257862438936864948897716563479360771496145771592898557976041127826358594712569006768784941290590414128117089187371839548727820839712340888185788502863718457133968780224649754952488941768121209692249352460766977391901433240816115936691560727713197883197230112175952841489059527221331736770658349252194730562537318863228114198670954691311855236481588376999322737265710329229511576981400844078968039154048959891138939693701652959672984984342422149600215878907454663493927690564102792947557923198898914524509055095287522117548127599811622973593640023354019261512858368383646876224788167784129784584374093766421952676976330293055694795894062901644665311655990238751469990428893524308433678461316618180620213286785751339668438625302438426232095422670863861447222226792693358247012828008772787282134804235002844872905389437519220557953388518916976600709536784007914634926699493581641467278301511555879737267217137395849285557567023821981205322320051005657007645284036157563965453947607885058839251311981249165736839912175868006596465120877685742531019346928454665935548618459219855647406215833038552195492192539840740161864041925754562370638614613500709349121160409865295571762137977027707618137844284997660136560360568297411421300216243318673578809663692229846232483235456708233268216015549658924234563230430541595802646454923148226071101474772919206167810910521283638409588343068860505979388594114378625859738194172721224158069191044103830330261226207909370931173252700656946821190429270924450606380046154985112003400464747619442056728496212125106036753744629106854815871354323351972294091235827770069061340807067182103035912983623927774374514768558889221108286187440555634420174580851570172385675480967415813969359437833942851275965667702209269266141148863406041314964336282929039974087549101766265798290556537998036732669498880362572557606730379874696847353667012612658877685734340916779660425495378185656250271561942466520849623163179210540191049432217005612856197783151926268214203976265158861924404401522342204001579301310004247162983283379246706272853533517558734734137206055098138063171001622520921606725056580671786034544073695407539757521732950829808883187668261515249437976449921027307124591742823080131550773922497528600189365182995416451397153333655617405611959199080714414620825587974116933678040603479145891455534872218548593623936299373887298043700515278032375503267161590024831219463874905961579183038916862153767527141616890390178384452515357104878332143366755093343849794349387312701183675470033227224470850284148417246233013648434884779706198711553935051859486666172320902687701204151794576045908365720384304981085568879598264452228189066599040807222691055376443179547750306966171250637785539148838351312607619982539503468736398370391199152609882012358581064937607144515486042200003908670788962284988105216821636061320613969982530567388178503360696522586178937380289653470300556750057210729969143389323443285135114428604355373542167865726751237755922815777992618382093979626902905444644566200555163407366350152406643825522088967565991494512689775862393497276108950647949429047478485595358710648669927463427021705757053196501152160569577454406279385351448904529029343441786559991396498130164522232196632278153840343550246903477502362445701261238330055077469390012502864318851802279228093545346669052440143170048572509961939039472913894929755615945120570465480284554315460794961991428896705962334655615111279533200070752239146389499500183857792466783751425348053441682320902984416600872823940191323291975800697205417346607464055958421334558470879068330532758545494495047944212528730902581616712083960364791520729010139496782335550325942179304655753135704209387524333636926523081711042772016895946234883294814846640607927573816951965374668128415742354426689656642495418936360043681877444893231987857774490004291599887387376131037855822377657974212160628825069935134295685044330679170544703928677358392006158812520322770183214810436855808426998970286383501070338063622628857944967659448589322750376569776578300831755256765806997538796257347823428991109234059420264423515127648753037542386767736102195511946861712538448604785318169207006048135688923977458172635089728866497876256927135237555052811249164393599196615015257222268263694851445287335575583050742799063742198484358900380214367056383203742744937394688949259328617251339368873375834603870305085179533366421076765917237068579707350611510747726679553380162625240291820397770594056317642627856715307479645080661589523350870972691600317948732271713934203882154232655569062620656785392209510189728249367799826365607486180963091944469491215307794320584752908409374887695237598091014334193837175800302494933246594926277030545616167403380447748170825967006106349959606231035857306176007901002552242222260003408846557819831177295721212648293216267083735159747235025813967223330291075276058999879377772122380101334661582135199708189568265978858960611242043210751011011004374632781769784425596777318551924721464414507117426738576472802047032002931410053207013656409487173956993732531274748731868795708091824035069127549816437185640749191867946122463953719171413074145037943894670068581027992729276954791958111529342726040946041405176705701393556728130656164690750507361823347405522003087927546008627841714874123956666806063160588372321894032775095278163428272709258427095675129780438848490111394236360400709156197743255838391355578894430478851929690886804157301294530577259753962431147138990539446417881304305155255987720622853722337675734154900740055622938116091629572291487441201422963398032746685995608545543082695096906625813140824100911965149848067727199643597553770524381648941110730102514236162496374395327183168105636593352881191845544873945108578277874368850757045325737722951743789040263085338403870785811064177346326433374615582416662761678038338298837626288043348540157606382750947552068489820493436899033309971439846475714074665653639336686144752625745538188788267559662938713055583713881040785696520271047862533040768544447108511363666748278619609909927774965301810539034441919808248751615807394102716953684308222978401995679427409413575476371589698558142577023407913735021352001952428296162083731095540089431144503733621936626444041386438648699217388768318067488976290422732234366895397975769587407572427262571233376982733114084217818643439213686514993921601851660390803505804008840880086451403284905631272705411141331561594055740448861599240450430659171038380692784068225725789837306983450322986191878339110274012948556049834063854949027566945737067556731371642404743131515911454610999939209188893865702956211324719046359547176821531280047681835918517096366187886640232860012780470493318235293759283530458387586301878116464250566655154397846161665493781905816702111343536713206627311892117152301661426878317714065299579695471166592362984086255828165166169452652648054955554775108956488934500556119844101699650190677405317164261210783083729639322967113710366512455387911861709938741136336355121520728000995716188975405253673564786160868044939913016563830660562427247355848733557366939433290600441977911221962070018151139168454541310573080928978025518531192510507192162134582989045671362666232563680152814003381811803437658274189573531830534287828045731843845164357956305569778738502659570189533731037743340976634610570605542548031146741520496201841664526098170896426401544733741049760573786011872613340036570963596950012806093512457915325272655930439792032905547557506526886811618470586568421558057494306488659189880109059438838491567814442997744492080990718506187539507907684651102160720252699592885522336294148051105305445991875443803316544887442396678997594935709384525139243756709644216110156872251345972975997584390680829096148349183053373848816785104313724939014289424653208209523189464768761590486142780647509523263728376342460027012334425059202873643932409995398022144213486412546702483488808024858595985479893991690298815506241766267281963881991041213950879339639858269904527691678422735306225992927416781016459518500001549123940340830252573183092199524264560914014036615692393623108757271304560054967187490692879187536924840588301925380362759410760252925301428052336777283889143684501147950198648187155406889102064357709389577357115690838344740160898218747116402722622159344106594986537027344641217416461823404173834843789207027258191673528489089520461073536653124756192566849191585548436748813196482175728489310151270300887176091291664721976196315639246379077522232161872793238679342179264643762129987274431900644944165452316848824554134919058687108331231048875566706313198928632681295024015883826806182586486199018599057065596555663549427228844493744471160456269918429050842794113392677964830420559469592723235641653409412403777806766550255714103501392856523157568107124148662947834427004939657898406281874636101799271673333111963351988563415163393773318963175618468930911838591501489119750210073452805096496085555705772217386037697832379191118094929197347654016060882131782060715799251881824474026949928707729981787005668406233256507049298930841637012108515310416034549847769032042777230078011447576759144525105803556832104407517956567808815676247766987102743285384065606149425129579831793239220103868352339791481973056990827149226483905064056064862644739659418012033874970017393332701298513662255084104000541737755929341501232024700367939567573023378537747717484918051228514221105127598477356730361247380982132584580304693018995340493743697869351857946494724302902712416213208678589931900908712179837899880865292929672807919363813005640604997495886268355294959557053252780221090857928066075596549313019099544187507128925160172345544598271875312598127100663359917283084240136314298827563996576257359540513916084115484520607774054021703663807143998022953838321809243913181080900414391902625810410846898393212548105507379292246390675844439237000120031894830377487912483865579146014511427962776297101560326977716124487625778120657447395431171156424270640191979931562661638458674303779601416930233932355310727718837995892078110835499103233081006333398735986199356559370447578737695679230769913573664321211680155425306714233951543284177047583931971894854862675409890378749893485936175178512573245252253870957670704425727682204254174087543723603780558586819799558001111604784946929659633671294660135713611279407775272149431396623763692849200829338908959106770231605807740576441863548806854857860330722907636058567489587688001146316769970241378262772874392193455053107542252113779794958800009839312247829285678814723122029870666303466850240924506786500328478878919860911101830201260908815698899302564019039429226621072268176328410916651524054975187290310548788421924027521559666227254033001184917253234973743756938236278697460455854893897134173802043456133376235951637313843084231443042562129969449785071474045164005713740801986736062235223674683680586536558119459839526269366300719296685505520692786320591523575453172200559037833659778894421986995288285588891630041525224485758343329291294011016800218826116829707904516172455567795612157749537662773145278613232628802656004295204120433613101159372052173261737634215179588524495300755726396935484957098508281549219949610849612311718033885698710785070825673409286142078325606340200276621165508388103383908653373037139392027581831229024618263209102895434222707944418706933442486658445612332056143007370841614948540646556748478780254719486050544878032540588869507818942562263149164291285717047900771151617198231064244463980351130041057451691909855410442956918455127160201932070711673737428677866718950081512371908663190894664890848884922563426058110838908272558324278745287334543124296261863463454494973142801611194862964000842401772993830001932640417808300598931067684646799351884470163975686408205861353127123357228660941776683289786398316327377576273656392048502236381886635811133567411807616152368576869130231594491947915346500429019830707540295998121029062991636152877215473821835377735725601735195776103308941191141471086423428612202095511075654829559186198996443387305796379991232630192656168015209951676147764619355343490930679932293194101917184528659969821702667690476329693944194052946806860294918056709387620266097261188267383576756967152846156016529202680263358688953918666528003222339627060684659649661509996165546442382359868740598007021503417061741106703843506391006089968331882106095511454075693475052780278344207139463630016432560622956447742726538066031129848366028139345383045829008280924902179040064485358412132282105606766499156248467699625054616274633369536800150391798340044654904048651213284814008228809939968210351921043095922753717227120924946650091576540548357299980227323199564430109419636711002695699101374577144898604119165329572783434807780519719176555428220941006267168984073432674368615027441464882231094950769183389790077075226293650020351977903608717305198946730224506688005584366067576743422290533663185972697701180279101704998399356107666731339452944432224631271809234651581503695075962675563311755271814721680978300539421908006190350800368390015574423338715465639770314426595533382415045774772736682913508460230970103253784143747647359562418643611470157907409443739055742319515623206151751955894087268714610181300015736009395740251538652368487024504529011939231972929235385237744907541789461443669538305869678023904901185447123531967353744135481364008499892068561877447573349503639316468634966420562588827594396587113998154359530071955157809873188722025857753436313042568671726656422725933810223460570298539555577919327033893185222250643242479823077244961509366490958236504841234889444830058239933052061094973830923870958542636561875634356740817602142441616330932799043308293606357496215215916239082847972381760009075508979262285387075909203851507686405577976099706109305818799360985944438249732919456096085196697611620334828563253732650316383373651853578799400128977464297428663251534406696219744312060666216542308971217921113127167566338613301176763015584581650500953388054427567849472955717476378900445954332892564614433869370543055429078585840124480946821482649440230159527857569631648272112196079450725426781846390105846541262958747179880103874230035772395276056151194899486095767609843092678741467638770853496225290995180015378894215718318068662119594988898379727205860968446012332071064204654395084653900899885964818203602493040056617447253809362548815314224099490175698451418210276437531137313347449283567871883292938474434333242789950958401514666253083046484453213338573130312277239101605213855773860458071988759420042907430879187479669637476870696399173036985969118670607997272748963370296126074960658558783119270014174812669174002819172887878799990318826605305707450660659856368332965242789273400332455821562770117358970384621888960916782913578132904208024820080542091243081710513389943495755530598898109671377200724768994311568998411430280927858923471089423442831908203652600927692508266355604529146645084318652125177797220047731764916626575259074722884531671120240530667475302443692404209457360352201477660061735276066652043894930853814259623467476941670458216081607118238122869506534904594327209171884891299220632236234471841057390926894859262114681149222166066986679495720015766886538423573926141216530511082644513338401926197958885005898822387934631060009925458145792944719071436559501904155873885625292655168758602241656410668074839165620088155899124754715065829379375153283536933136278059252086320036251670256124800740449282423553540240210784940776121182928691809698662870465546564595821033887556586616033590973317206385251255253985275173620337647540798087083158282083297896551292472351562192955709416024674452134505505106057881232144586964930560416015246858086807484368090189933580811821886555927053962917183649973339355752473407004044138396669086743959989877211828099940994578896649384473282217631990580852753446852348090339375686008381012650605437031909191374158302787400671368754083445681267386830378284979240510660385770187249918387468824978249248178572068696780252002408683648841303994279746755644150016018717423138883130348254941316161550019943964512583520037112368702603065350632313933618275008689296759695916164681113739264970473813140039466665961905539705405105032413372272086341657811163723415698815174515046461704702744215922924845168923049348269154167085561445144219266112315642688602413856719949557380398402956880612157137208726890920982088865529726936239414063133174988280989282832640940932182626407484749068554755478427204024819845119083511281660406142953957101690428012632808629714086687891435509392290822237410645221634954262631375164020359637458005057449704544298036472572839694556062021605382328331950880800028039454586139450407733021636414568310288637416096814116139741401764409509773672691279264688251838250411044738701801588217972238702161519581887836596375837760856084471153527291361415184078795166974731181552775153262542370812854044467511562534795191156235878301294102667979211172577601754477130829162160674898927679203302860811560407827503533490276309315917300811194332278223199343727383337809644981096030264201560410720325486929149646888450185286778999670286736163494905752489928511896990580444778647520997251246468172744895240157205502750885552106463645269207611239146011852586563876167340422934147249116461559119086531832132894732536342960469342170969267285790349105456511340030307329196696501988556681353033120598296785529713297386416369480573135352581624942624199260376825672526295737039805128160989080804646201117746507416616221658348722347285250331670588069058605457343683646040268437582203189380024410377854600136470438349743194346042561221443812366351716097136331286321887328237681561382065023849345562916461325668251059981470326794255478350864746540104753325105149890465626929565250981403014040013942208652334912767972500549271733013791870844640335791511901362897474545693533077605107093099915569123401640638865059899708939674155031805262067700100608784528339314440067415358711811296083641686650996227893780224878513965510110669123393625946908020341561182438593403114284800686180474639775311382165495733950586128293314193327588640401310096506888411329132868013102258736490752413080542608044751532602821811943566355886988336277555498806045629337432019945917309965638777094818122735412440009412298977284337489193233028170948302647264786147814881421748720311735286124575892715147668106634462356886238225047341656058801441816830400411411620732682799529187911104706319840708478976708993300378678100139234231051470049131761179849814353150512548119520254919788037174003930903292408603528632330917778248211622479226470177464322161529764393418463139189448029865779903334900263710479207068695739295686791796786612332117649128099079213670689399136085404213252304722533733789302286767580042413701375695999550608858581868597477212813006929300757568694053423753430721926034938913014066524085500053402661606222925395231567161876219494910809882071359239054106906278782163382346141133539068300752977771365302014824032429098729606073533273257610899642317214444624931057014798384830585061401525273511961864738829572691855005144528079890776670408463953552769774954063585840806458379659441214198948563426754854662108837585971374436399230451180730841681224607955879027757100821899195303529874956785998115943498524513936918108997644627611311649844389403971450439454716249950231086590390675709074094771669879562487231797964292815153840372341969039698347936393641147667599483002939131203843835357217701355975444761604978676997569384448875858377145425751411989232981192303034263964774802848873650560703060973505905015844721169658100048956985878424440344041233098190233503459814079457316996676166914399387520704127765257204204406561264087747341091864326340752773531766299064314976834371340213345291100627165757589741941716882476239574752889436630577672427307581510867491238906923000045487745489224504928148332482992436788267148882366037518978601154822011161931991901181135230716936501815611711757436095219269168403404702062607829072486501719887833998650727423985882064710505809644908126466121754242799145027601920105046292807643720638513280220787444175997420785834284369211465503596488218753668979599463059890489526586425562944862641037035468239227933385763326735188229158721908057280939212270918638973728421741100306612767296696017469200690618809302475485089689366680235737065566843108139277046117510769184260390194813854050240620256360071161767833774961419384279987784584246775441844894547087257997573874885593015465933760098764715922519835039927897673293746056407507633970938039494335643677877230897433856043647468752395883774448990505213911314894598376675355216390339431303986913440460906029828304585266825446106124650610046699994695066544459987038164983130998784957215798358751891748838097242396656601147474893730930705314385883461446916188683522923486435857812653601242697288035228009052841730745718024299638732377309341609946352790330158731866578810481080654991040878065300923749365703174802972035131156049206013600799082899883010188034158982868504000344992653480472291689880986738389884333268317003680845194563465785647250251712948860301240036110684970098599559646722248077130084841419419930910201861090073547055444612840787664767739607257270478157200854160484563294714738528386014610937018561626033738490121999605004695985619388965355525829390176265748047273867200244579691833375184518376900938355214327734214082736721723110488551491585707194200173615965005967247995335827720031729388911407903141574834833836752025264503163049927192619850257530636657083705398099504048035921273779784262042258138447969171505195216108355060473305340424943802990415566022805394906417004407516738665470828147446054597691367990907592291850572270246492885321488885621059853124872773386822359693926571783798431956158942901809842311172486645735074392442782317923978721415170490593095630234599232205153209089295726183156763802439350084476405804412504516948152130074945823260016217599161465428526851107605781461906751513287158722170058938003175555245510380939428482137238473441226890690566958767785591183698435752955142950070002113855313563105109160607956846336313559584021848388333933900005369115868665776827058832016196699059253181328080328463408867518373113863934166014101777440789668454033610016956311700637795716979462976141842474236761571672050547436992701644640637548745876965887895483502630160007963223955522971829649156299913339545017143453957540190876986330328561369229097046310947972715133661978071443496668965708230861275320947547128874206517124278025323485934137150358012816138304697655841825304978391500898205925771920373155571646615929354867154546258641110500615212300452986063764215209837712746779256373817890213746780101404316532147731361207005668091491661676971519537364625746540270372254155058946986372642522677783166803983724814723331809420611697238775790312327548106720520059693353059756909693495840855661108454632967422657828093216866392031546019428735157685951546888643857636489544315018177433969987100703994568971848547556591966895579447896523596257095618357263587708159556489484119319222401947059007968040720364192655767270652520261637740856973515972062877069569119000121556858555917085522482925871101281033298623590364524909800358096611902206602509906468310631788537868842615761943931221858096332761811723301641903567399807270248238448393914784950103931471896918324872076760072521699631469622609615187118980964384497493539682693467152646394635478508226321423843873761745329471566100919451173431758587010434162081788977171401924387429737169728962403536799556963812234936772401902373405044874766616607538837395027428278647506316065083428439165247233325493913770482934730106101674985675091172698910344167124137825559047839891159498653957661885082264447510624752438633358191959243945719055475598750057277958153581683086935745199941040011974359151342579110733086677816648354611231425921727470235959462586390107734819276394377463909903498679894815888864586483166618449751350647889534717472372212817919875038625725136220635195936903174864625771575965177529227685943423197764932405209171739905669443441052515643145320606187298252047608081760515333093723589438902326823464398906792204801993777800447641605440194603916162414592286306205678366010724175814749117955114441867007826629464137776440173119154681051962538864994623201625068209410716014057268853069953558742085077118043922846643312599310500726080585487887116192128760884254674442286540461081963218540963615382533212283890808511780686964862622468662709185859658768001605228831340226999278559233988796008635747156760203001859543595304903813175384285076440091502787895308734645690445110320669866045487824091265990998558719193101997816024039079195397361734437028897606521989967844499923248998214197703236451002836872626824797489345469916183199909553295543042592957690539225680832850621075995477503178187003693889130653645629877813422751382391469126175435532825592617919160189891151642369720685338803516364124604224436378741535424332687922949616172456608985732654536504671071305207471830012857847353058857930563402770773516122834990054742583393915756931948287879086919704210498713577949443614932294238508571762805465134001494600024677975827039669944772068951900777489192107059414371050964342068264868190335376959127873281345905694843309797336971727721425207574845509535192248209322112109039298513501492176247206976901075395582380149918699854557271950400570048232281469350448276263494516268434815452800572794477433220660483285976487523910851243244378147088649544939833800492853153675841196646844540381852886460630103768944260865669094295085987401223688750452649704599623556676405939079860113180114158855484665570326215192748260218777975646360143377067522876642232446116399948082845930120519760565901725398138151102434024963658689302195947072204709302470788600275289906064462570020029394766868429215602335702171459811174545184450026948785583992948959054546519026053967976748085832169056890326806731129627514801293239456609132011254207770623445938582766530207394967285348528921687222964966437289415804126170457351412630136252689257196751418329085092696527389436623465076647823064253318897437317104058286189428068177420031461594607650792355240660486008852104461672758783159409385509211512684330791853844133803787818071097933523675323501655454433365299689564468643763439630690797854454107277808108991293792210746274937225110614093921774305247199259632991680026970843720421216281780595652945791958600624701186920598971564431633183002379758094490437025833207073406111003428639165214176745508399785942664587825795229590511755031174669006751261038834618551035031339784400652062038366311171654435439004819963054004592007426707049874452592940024232390780802484364655576479319465541923055322887086863484040483442429695002077344374147158611676983400015726771338511319852237146651878783748697228604824310475244156515322734135776612543950339471609512134946673650791159887642740832415217147556269939081172412192114770478910782996419534766714593544448659605599080790623034800867009052869223681056323792926436067138537679248050468826021187237164175244093818644258088294434153361358039400113741061212332799160948760020367542522268337662622016106285971788575378252264113613078294337494552543830058239210045851778582849700605910547656098039959279368432730872701865688717453708680581530891469674530357854221307350108118633140723369177790509138490454400738886689986508057883461152888284306680565984845134824057236919935135917326639918604833916332453358725712564261577805492892362867358302974452833987934857112273786663505947326622867802511119642592586696881053778796759052251817736879087421821872424591647018294847789228018199284141010172517089550408942611163704257580925404203423926337791103144720267587175794215306687786295265915261258815831214876143857086629134918231942732829098671960793840037084172839235431932998763759664770194615803354251514220967641880811099925572722148327750071444074921517320780077943798612107784695025693002358172700231355961509462152876359289734135567116030435703659800047110901239583253992600163047200760380706393698172766317433114404804745093731527850778332452950978678099052150931395963657798166520650269986582158617403335111782130007568594175666930333390193808186061759774261703009862703934980758124100269829514300746366447360297133958392433159930961228971385661583315415676755585760798730176158616305271705515365200483955560272736171253981414097880765670719435214741055159450609357218431516698980585351780923393457652323557975784347716490449843753641725404653948148962270927315304410664389297820278385151808482733481286673689533420622115359055304837791751072152771164214174262057215281378874529804968505342555131038262980357656539114510246360251041121438515549526307193828924312141788407191750029216862431435600054759871877779810516064799362175535652791120928631186083071760944750475274514495775167656771056056661921675886456521889406414141788800482724734685921369115447651791654163560146164292498635706401552692097749267139051859141765246197657898781942495458670708511745605689280038640149221102955089195675483925052035878466260283649585689375722935613406772825940107541016496810278313616858371230940290225645667661040244429754067470984352262573978381341071735448698588741989602428186178437089797402722381002041127092976333277610789623117730490555404850510534989894883075163000266599298184928540911640816276933404111629605855052098249122168334237162038840757484916731099668896369574398438122752391613473694183242343398624191761325077855136214663762891685871123590644741453316060358436385635403553030660119078877000048465444125463272174235962417928526003749842818670632018096339738886511899802090593417325397417188042760183988831772314708452043735453228636125211451349922117770260723410086000919498935303683406411528434464140456032516250059854614891996825555993255342155379615851861426643516274040344054961802197871016016185224379296389301777349301352152726675058730497544579745949932480425282510317453252833616435948512198821722833041761299442939065486173584506308003176184284454613406389865339660640573507752860883955999914938573560554044064434422097405009043710558211814526322945738229655115594955163626288978024624255091731497617571579473107853364055621108036928312097471529530174970182263016503740117606401732288256882243471303940750855778765267215514378956260388642393958943794702756429253707729837656806667427602815401049552782654874759056142987276768855921406967730460589162868709264887752915940645062252983386515671167053434400720328729618588232551206156247453417310824148828564753282567113662059915653897530920507542144138610855019007445009452959498136415114557176544424880680426591659709396523396584594172225796177007266806982005728093942355851121892975077879132011283632146137872176480169290639628170039408575506112863014868986782998283596736236812522804774236879500640652048081628351978056163551063925850107347430180353614366313713611941547707436812057272974849453144153954094384474944460341286757121271543532924129288518698207492007299874871967780150507036364527374050017561521544349563066859080152060270540839342506908254515223490026600961988019174077221713851411904701148010600580392104371754587761759381613455639434590580975459436011075221759483747331187523356474360866186547062194805276462219047775826439413510481817968880255897345891587344505464574465719449115453799778000775545941032028913286918746785957360927101772035706834460883526072468778241656677671974745738173772187400865277560963685780872422196975861822281836949294499962229362568894967297951969283484526984983535858388776561066861463235903009018075525821056431358926039844407581521414797431782121873049044737293395383009875559068555949055176506321283347722133316983579843007379278402675456808498016668134885658522706246280204711705921649176633026870286353315173389561000802317348743617458932040237073212268783438454522902178532323751364034303247916118209789792086438783568314299424376208983017351850509458482863296045761446126346905102883093853495206747637810964737258593888653370515246173921922892642406864929423096838652964972446211455229728693270105707208531073759109457737517840807628782755232030426621832042561838285164247379643113061905944384861880279729004464298019177224601370315283870134447730453728883652753472247620118369922163041903069127596370523548651656600692080469193400224420260173057544775262937716259317673661804930340501950119244032197661579343926673911320396556693147941721784639550144813544315317093325469246430517321288136083759100681792018040137162804208514018711375376064010670469901311006072654444416926975371979345920394110510671946547857874116776109055760827947118071409034273934596781331239709213751351131360958335450507704956624333253942883504482187610436576648175194742375307005677576068951875278651676896182631112465851279173751282135725765998696733976282023127775630864007154978826940399517405572045097459432476148321508676772893187529691842666123352358943664459654026082472433200717229027311576863935834738631884612777914675989789951292829713202724278762366376221633050550582506989462485165363369382314789177078803036628458586519736034365953642013422856165725842268622297076114815133416711724082842639848315022241998929146789808235970844325123791199035966964060397078439505126449937075752134888426754639914320139785370911430710337791805179041191286983088111202978117086336635403258180031399889363454411258823467987349819057537106193040390816565945867544484345077549544424665459494888430339631650805510912702270680760455364637098903491497566135927081609364325236563473680825852686010228117484877244913613030127264918866982370983188092200456526121656012919029035346578264954220124966887934524494660550231655768903274266026641395608741093271930460519959472726423895017188157735505575848275641206821254336375941888764259503994235877817886801340134618919400143107869563984716346916347197116823725657526263093233592430470044180904837446243133498525168976402395527825698394203487645411201004035680634024162673564708857306597630431013070155538621324747563745276583195121264929697969608932345458610616446830171773419553713620064151423470669963586397444174220337378814444655315648230511963612856600381749946500014318134918820018076070918376584792383978314477208462546026698935405622850266210518116805296224773651132369273442615790337614686185526068461321673680836162376167560421832339096050361428535297707307656038433576041701799162767126789518774928071538726795987267892216397038796888490557774655351487740226981449724001713759947370212135252524528229512253456447727157936677687833567121002685076712857232192570493652085867374735686109364266278718917874090592108574164129059841651824946965737184972455003873217182381179522919791415350618768192673313871397230199429522669632188127960302051863897469945372696308049260398826870733723405747010646429484759981680619984885670228774210143574266274471737738526458920841501417938716135261125633868260926448277547923594190167626344012379379139585639210125162487743191460678349798110625165515829357082521829988914234822895470556161414562413047757352393301442869807599849706783856635276481959597041284023491485203870893420306877551514139378343002651906829198170507041515346044454564470929317151368085849413167136413157942007344515639700504279062492139817416542557543213794458556562195916449126806635599866161627232683878404330491565135543227582322758409517747317135433357475659580973923190062720841194137231835141778495121511964402665176778548483273899028665228309683814647705380743754098832272225936357434725806688110585026352604291555467851034934300734941249991942100869029445019965759661920281237136037282233376756838226170893632981846293534638013705292031409560369117728926264152566616372808707626883715414339791313191710054721588744355466677342871908715263410578788434383356886440438405152625355459309138192883681521292158284569560300286783184755393555756477303935008207253249952060517202885237001053938926322594512796482973326476603251811051414947419058239647098269705760000481212124599181460848925608006957004805909969290778981411792915285416067462810919870359233145550012998175037934463351978477316871073742088724401983391372538343820437247846756681554561777386246143221474105471594996416472725882991062598518212356975557349129890811108101000937698260978179599817858401658427657111059675297698748373153513564891083197027970019405185971386282127168339258682295684245527501720716098219123888502052135388790841833828793153088789000351756854347596441933048442737023584997578038780347346636845033743905183338866131158322082477072883812544160551378767144117119502350625062654511548818068411898175060144057351426769950357852958556358067518339579013519863364984434347655362175356400638657890738186665405840430331875414339887278695846010668841427517867176213821755602847345368750342882313052170672102598886331893090403452573072328374423938489357921920881982367122247992126976535180542964026718922345840036691248888648389307837719321179263351828996450565060768515542227076359652155984779033642970058113516018749474278583531038831443972465400559261006105101736824873819704548932798642533141649300956763030161932767858666723548352561756194874320461491459463300285926128784973480271316127149759545995947349261714897336778693978182512756806156929093197928841824795943075814968050735367621218386557528427442347022871363633753526110358346417133321363554720117477248720571968667997607530474814821976346423198863515881978453440598603802976522031739235659860273018904420326714762226752151215821269431228355287224758852352664351571375017377017016229662412015794243455273858637072384966826472171064683532336413402192662144073538333070078281010255235239840261228890229432735429707445699335579406294639028289641143271872788425774395862735603918597331527423711565020275321953686282996469951888402766373080081448503149244252812259045537777925171252821032158997596755993095597423227573108983010805036905565933844426579237660366445821347951739129958671446659040104697414569798252392677358986317014888652831192135201492420028074639794454458584788087160693174137437337219942464743941661919151057765576850711327425111414715171945926136614239774554000054240169532032080756916611509354831229674061106156390844921204723973049856693597835484874844441320639132514703894085379649186379491130708016871414601920409121358283408407031775846045139438967964863386001930621559173664477774502400852782643643085807378047691816315084239503738969985964509364080846915832297324261453351185111718956786121118876006102559589798022344137048759613472794902979724720585288027648423691296808684538979030310486566634663250113660714415675667761929689493643585021634908345956260100443219432594485023425186526439286953479805299380336616183691745468120216027615397391645281637163960482905152377541198805320251860905600507810608730194430008004661659088402038771753171117808479395314887914582716217897455507378942026227653994564943496737004744303509029261561946168549196688989119361462149439568938149931000019865787036608431931534361527796650676514368353541588005645970394794954710400064632563520149102790501310955555558082886968905360490511504590460692145713274749342749678504337781968270593232609658096793866245045127033686051288193028832744302069041697281505591943283556419828123367634423063052347147222024757968930945075710494733999675459523899402592304570908773046130112541996989868299956997076026924003026161415377329666932522568098428910660071951580857201096509586010739590789450136422733973719190597030616084102110986242392897553132054523823425080040836200016980251033470882510170753641343777811127749430441097523209485028763594164417744873295820050554980372965920952776783013446911194206120283487069889228255546665509011406539325604981344143657146890070208078610920805616881492701662244274534667730307071883829777393260751037853569540647168297886218434058403901069952887729093302172706544894274795488363903808268279347757772871674372068663794997695832592855060461844831463907888341425939548913275857094240906216203546294576638212526461377232119259138701693425831131926705664142612663585448917153656078373544062120352910883661959818111440261376107816674433394304372144705377859532081729987700599960183600636715278160572278892133951911808615002772211123933029241330361639335525715083570411765917069616746215718979325884129916818394957940075271859834942653349032127561560174738878507201011619084908801737624237109627162735037679771113642882323025153487468085676667358524342285667948636790374969045156052747050604027891035376673207003379151342003225057556705935015345595572690620863190396050117430151481512309465717949792707203862220088928909150173245697018307003495413249186726436366175559086558710266260136698260617198585389994068565568235371001865865736203071349925616024786481271761417405548265650853011604634987891628089926479570885735237931346187950864975503232350863678631276996035705275919574050554223097579394548884602887866749685102387451692230116740026354782626455563135208471196384356283070169689570483860042209431961641097571138158246129895640170625049162165604030517418285319902633889185002960567508536777035656059332235918442241967057405353975560381564867288697601827623996241818927996861032011035679809916535332429852938439838137667399733283202047594358296755442645204015568006199533567722453861524023562071239824630890598806159593758350978012348663846440232561930518873475529311424436666116638039598505134222715085430705378628795804806387379006938689613575636499204581774066193479463927254129295469095311799881203699883475100342984852759341644531452789831695143481850334691175456474010046400866948246174812406705199190180525094853945605426344096403432912771297085044130428854455136019300669682503713055840917275015018744354679124348919335332674791949488251847607749677376732498698986988422730766841828929808299892511473342372099529864610731389701612769168967755986424539354635362502108206642268299011520662226397283326278513896897000400903631499075284389217324562702920537459768174876709701312132025910770288668311640316329752595931917520766819492028320492030166029634024608833121550896313852289417086503821277368902936622916917323353239505623602695480967802364487420009064414627666148634334908271940419102820908599612108915743737640966879578818874597902014366152378423221666665791944177386812433066243558912226353108477868926975584393568830254792280594436800080170103129602575398465035665148598635786200569554037892052915649531475509401574826388114695160314897476724348485271281125835168387429281757544367482283759052603098614235642928241817436086717156455930905497904772763652732328173257192592573945595144469852102659522260576438458417585352776007440667377089716136200061393599616721179334551198186074118549692655046296724099427532282385955843212755932375285951560569557724849770608162748003960673211233176476277135878971136993815416047983782490185709027441002023675961975958401339701488419141024552126716188727969759254746462168626194743209226241635764267492846575081653845669368157767585905049641258082413621336261106914058006983120847882409375492116510904633378563158858271519078627911899529156395235904106948472177499077679688283030070052315426599213178013642915744896353686002431493093433002848967145097636904750527086510674751769364130631140259195797890682894311357136524543891962580210090153143034497349964932490081666917969880563512082662124859233015034567698946578280772592268893755796523773179844027153821309186800086643781437766541433747856946850591179996895721891921898925028856471361531559222746436004324851737906589233332989633840122950861408037741284433035067859427431843198760576150300051157491332656334672569909140009322569558680788012158324373016248926689908425252699155343825043936956051919949087840558290987986493021330166862649357509799053695106473691909937911890110526286337030568331827931184842561234023893045132044296927213190988663481530380151815998909779010438008723594992255079740509912454576092455121355392229960000393464071389768198823100009992150016916425835947651823123433601619305713772641155720487202623752641404885859202932359513801811739047881852582136690254503646442317334061549729699723417750473755531957317460566032354600694631346939822770123066430040759141341880053311690624053863705413260560141214371264455274918791922192593935565200736484929865535869546230907475835293178870846628910034782739960028972478102824506747747537814701870311122100763942099173812943927830484175399249289124245586373425142510866351906799248051306057400881326220472031714915767151836906778474218699931026662379776594268377772586285210738181589238576689250526718868539442067848778064844086306461894005801341708951980998372415882700665220738964753862594539650471264148417780883944595184237294676451906449053172317275019412399829960587297901188241246571147764427607448429652193372057874451051024470426269026591445058611186445967604159063472951576645140167075621984985913326408737098228571398496612583881378404046579195281805685268973021295262849178255355970697326711974475400553367400872941606414072607506334806934236635195929724193857161267131907189428377018869024520468966256079950065045962795065768254623349271806646064767663116678732214924018422975328901932291008459077593985823207580809484394269112537132295925544125735676390830910075174652263093800839374875862713423951695047299421263343777340717160159615259214937297523317035349755090781659100257853666965000904921243045437874562100867064934924182027501625994906687948545187513644417343763098059781806234652517309354546555775333789617669285512608590271477906972962050498231446503499738914677783406393709834385819224442765528337169337794551472611929399866300245405184377888749632408723380450037945341565666494942872842458993196719279350971677732205593769875007341451708401031673370680269761477964678409809903213774458420803705747408626965629890938364830752449657070133808552188539855794232304337497510899734995484314104809766953959315395739698124321924608913500742468090683234954645747664633060992379691968935843991892006216434056287329217717264972282950083288431551382391838472837397016112729551330203095021814116362959242029259450094492986578591075613535430711522534706110020362465738610376561799089604221034866512881203778661307712386048880286584436005293167317486151058441580033622982627800441339107175186198394933354195025653239949721886192716542803940389201330050242526837404907868320321888101994984186994479745997946207903310073147348558772722638091647811855198079992084079347951938914234320029823225806294947772899992674431740040796730844992740630389515285206857517872310454772617757003114185979223761463103895189617192555833626050608958781911256882027646130218036678609858271295782875382192275959644134345731141063789994902892131005579577518026621929286323251738340547460832592680593175620211562794751925999139449084719852157167346699587588296886696928064753793121543105002385144331065175008582059435107184717228536104003493336879291209874615148523474937006184082202774949882267963639369075862560332801328054361897206877956259646391974632057492854250871262348847567596857037158229099189577378926941101311971953575481716852531960383229073985618405136562473258683087527461142573744590628591161723080513046316501325513741113140712699035099492904251264653876254374561234115149106148458418033225087347878297975610355689688016699033639836238407910551873553525861276659698060479600960166996654546844619823299606513639296164951328782857031603709720478891164500624509864712699999437694122409804619596351811878695613335925061092192855394912152408139504682465127406895365102435988592824677149964594559292024569363181673181135839009817684503685340256755961499761904584569702898465211445354300204371604095060055778823640928322216441879542479600808222870794708926308438531248649226478436574630818431314887610787610468057658426408149932013208603599413169592482196198162072593840807259241865040948990277263796790287992253007949103972041617873086941324313109136112467123778501942446813177951447001333383906299499205076270819532883413825443319071861410124183221185124671705584474165188826847757949471647343972176584021500478423936774676181678098236915345931122471326888109773040714778155308541953896246816326887890772740668092861379651248998841326749716505009161913400774634802137133845182503910202683425917728881788717991101746036572946742002932251113021697215427118294426144319190309722458672662423384347663396809413564285036768813018789871637835709826132506501127614377052531986479279550364245596494657865954004194391116630903819951583140517292352192663026852775987851157336982005422686226288850639733138853253059924747193357993717966523291877447141980888303691194257313911156234644661047096055195427879684871908582060880302338682557480920325879516112973053445785490569874926919807585802882967943223431354247345888625627183067535683851837107918889570764659902459727776771587006470057675882049638253056671992960467192885868254137768856305912846885958912135564871255484796773903376769837013837070836070239917493430350132612046665603366960318889979179670657129029901708833271531114813105981041856785767685892647357607067224745300465070650667469531077662731131733938234814837960158868793682871429358443115959502392183148798555810623766293047940692456508306016881060634563608444312060013574638477534148038490980646900578728964528787752104113344658426261328720550046224595986856980311074664314697359411832444515710723100582660860474177453914952796827447753257766414355305504746718792057860119448684145548070043875183120096372234516954647665226794917605740503700877189741665692830284408302177831067298675576738116523241069195894533178028538546868951502273619177897296472203008018987217132322710009828970876819794792319551296655763532063230222745348064278987336440779802440040266551288514637704006682511708896668932164124599407002812092687469357371134719114801101418034636287924594275089634024693822751910625247773367300078923971532628724498034877456804024372784381503075401601110211839996970698108398414275463071256806340350673930130561514578016655225998814806545943075182048691283794449769980236536653450213997255213198246194167911256926126663640913177307564357220291063137578098108328244856368117810758962661886604375188396483246317863748099807438304608516193697338324304603754823078298402818599167248685341419678464953590916276053737164340568566497648439532318719052592034283238847558596842422206169112013338944767028306892792027233961247911080814898802016274756729286175362689784523105501400853106819023156749046985817562777715718742839775559551591151350430720460889747181558157973607284092744786812522545682485074114784620153424899310276742563854424003053555251777623429961808009314310469689735670029838512338359212573300518058962009198262858914163956221872260154095689586725189767725579023092694661468345800287694375099091238486015415604923660311582217480431979007578847604521494666967364765745125432860441475268359191496733937499160836194636963158828091535961332220312131627831187545213152458033244525636404646377612416585379417769072355544608502231860555610382119614867333298653741222397462934240875273140827836546841932424245415447185361729710543386289378309285820323630994150991392740789023232958277456162980868178092252469494778578730268713236855772023510999558108250502599314572352050189509098827200690337592127983327910209253488412980267669777536081125385241404761279197067751171659663282930608213429727565630789960981458726563491050906722040395145718075313893205133750449941602983332598035668953290066164363292474017056233397616503225491267990883127189061329949801404025002458364580669433443012575567733508034931599894654712990736058324724852447560438276873542372215322674212644998334681220023312973282158407111702456983158930797795063617611020498177007849713604055592409394269840353376728455312992518373180712263699023696539392865692302658832907775883625675417033251909413627977277809004680003729437621726953851264686535264464572249867331121050665201901924702589845514461611248232487309590724065210280997350997189462728713322851385911228595634426834871713136637712554098245954588637844957526197724597011205084484890820760840781039872942689468397123168962035333109190299444658109000885644760494313650802631280003395292438360945928881797575100923264105330490210605611779164327026651673627228743262583722167660891184525127120198287837396296613183915600638729081596161582827833300976216003306915326459655935117736205881967893934041116549766149852872383960789377554073973660828862459638499435741772528825620422548017307918026343131496282496594365454654568846048700359100109165222440245127134472333667265305273930861717550851616579687782338507540764811920488711417173896647937371526429259391704934086486438134412001739365852875970011719827068247163552845718797085505161717685151467147683852870385151816273258321730212260309502913423816407222927281419057908791216900844787280034150898075421183236777043626920476732285461058515118308721827670715553249331044544400410723072244104674292982266466240692688945642092481865349089745929853101998898453978208910351157789016147424960855913178302568444064273805631472123825720861254825990966319938634759757248832042333630120943712238478457536049500777544191129603013225640177184982804642246816360019242648295154230559752443994086527502456784028404431313738443311164227668812673630338092565648614923934921682365430552326765727259263746132735988205230699466572291715606123223507546214149261418072425378402537009197605504024343887811027108119109161831291167872231081662784552758693865041740480506187128676745322615639166489785181520277732086212563331500513093453004884014033603760018014240957351968453058374350868804643470976723142247675090868446531949162084849678328135556781084037792227428386309267053036153648170964746809637920904512325612513480360327528054961613611619399751563072960452011528148458371377293366860810684125794646798576084819509229289990816594028143549715328611707206527105517028135805029061816765793743748439653894805455851453865773207718158676003215900406157849660284398387339385627269907381481257230345608610256157620683544545022344201073636928875684799218570388069477836657644357886925571644805405394953701306799775965957898090942349836926489492623649280091930480578790063912802770035906740553139307751048945008452645168298990553730074517641364523866275709516885567385905062854135146809557129485165824836383347913617588217461474164746910314148927558912057821346338922487998260182890561340376929839232892354133402459863785547917387232091026439698358980712886242322467284575206951711742663433631128864607917785031264821810462484328658860627270680477826804383425387658755402448911018113323774344784189820065421442807460169029633382235420285688962685038355419201155197842778072083978884991432044759054125034490168943267980303150272726371852819234659759884536814465913122812278929299203371188874221878121906564878316310969605817025738764459611120968218287219386942499072886401204924886487984188047449299325669272250888762288489228193985948679837336994378282145825591320350803062277953292869896524469466059652388245480614123032318857339338860503547460867724600411834782162474964241555524252405558633691693809983694268881080731934899563620461262682602719655700530852126018300570981992657513892039582493702579351272371132486656448814379044521622692469173271280778223871283015924104608934985035613518718399061981614290551497735456492671806387403382365158956358387799293795494253523410198085730979375005478272130224648908059858118032052709698650777450545404059761907652601386873519396522524245174345921958117493654781362629022614344219058460648831378053898566611666080444366114103055027732669051722865074939089150240563677088825375404937589901024518772023828473197544317653027132280525975056863639584496763508695478529982234877461252263757870648587891734573224070572396856702030940988243841104410122761517680983731665089764469294563256599675195599719367659348714568214302578935005199519628255955869726322557947548548082921399230811897640794416136552815058790802467301818277106462642771613027716152419551454549386680590788195602587673523010573191683096383894186147231248768399521515671330054785784372198913822557291069809828515694106458605471515151831951198722854503291023347150874203950625382615086617082858082466973863352570931902650068232704935373846415594973173811681723244721600745896089701210933893601029688862133150954848315255111190981964142343368554386599485690801305666447665973611181710385574557736460062284526809305725379594733987572828804579297620411275814156700133901401282361738903715536658872836279594713321552075898701115048961130174377349138750260273669949150270049091396717505304357284573302347794210167765992739204671114802099578844371588711724309519055337707836748864692494111507750357917526688618891611727656760706824977609512346460791693615020961521294091713569760860027705510839447361144765881436859147976426227894036807268878193455573634414380691021443703255617343150470737328655225432821562124606521822802816773310669325893762169793309080183960058277848456669289168038360187587407232450641678566588752825757580063510910903544876491256676136514469120823306361280809570598630876589570030726876384355758466643742436738441633423192884197540475369306655001253820492236888680970172844781014445463243610734135231448688882686479786971117901681416826718806911766010171092891167151327843764905295658399292100551629554731034977682293662237765157119546394402738625082155640900254929818176110431913408452252972147366466043405712712723137501628085119182349746060456363720151831947675742969609848015267737859531532907999929063902318996396173301483002988110680055934955444704086240242723250588897814853457044473256325997589403535538416570907251896005261068853049588550837665423021205130024373702598196692096223127584279163313869157456370656431448356817290909801121875632135196272784745353250582173626780363303432688281400201383039905713426017936359051751107081163996333790885583727419742191116972668848209368412675731608345689295012356929627443697295583108503266517595682047748285410554754311589491459914167937886119679781859603784815535188210912721390981906613330136293135997067553160890322336522952238421334160575761323332737568249065994898212782143404340719639495526574448699127697856355039283300924260778081725398884331085583004818077887750652405573522780134983048718893119732016866091817268588756118927592357355274214187756270238420054940941982877597328934074826224316280422286842662385335581850831012788275317669950678276197658411714808248917112132611831527437999502299002031519434567293714664828962636904068022804989716863681893070310241686381324065447657373471525839575358419688653249726386382178851993080433176679513089129293843143059795201542912438899979624333075802086771042530724550238761527197893732061551164339018883063924998247036111633949714747730662481663425797040741706573412349161392262971704956820363663891908322249069394020023606119221138069149153786746954600285305211356539594837051884593016357156884401876901587003011025547612754502436815486997583461555881505865857753947994572161337668378029592878620288949573074269319243939846637508165436625205691124380667833255742085293895206891164602075128259605652324551157234042993853196652674900010127620102665284106318259936664364917209072482456846189070194590458846350398230314998553689596500120029120822365678724138899214903357929188828118771979624457368386299034671622480586532803915699519644893261823818728510398716687396996657118643415687406776082473281754601104728029519272333672286824653470518388488118509590655086202846400603901721112240565989310310881302737340701101693158028097799426622574615541582819645569384590478349367871329350431103345329650712192952870167016917143845864522147064885106452201907153477940152796831949254233409886203955598127817265599728996019814074089289850084684640502184994689624100759881362955419689956864130799301778509361620798379018488020145060621308654329424234791607125605945464736577755167133581597842723119428192415544427865675291332955346174671970774194377983222510532811146794855586277477455770560444445701445817893279843285023796699885261454770131049481971828661598584491708138353646645131916944327268658961325558973052042722562716913352472945298545002094037550490532214237265075070580391129853709141010518663284207025942766712469813666432754074881762419358224920485314653539413343339893606941328755420072979836222003869194684077152719946659347446662311821684789452573868823294404757475387124622747109409434479599513757958321002880627058253480217152324211872315644122106457995978459381612075993469820881781986564619192100285848791352491775287157002434642863444860458672858894888083892468245813291038642812101383163504317939792077085385564278560470421539611735473342768284634360463232268830581445365622497000390475065074757555121413116188185827264145140726885712314865663834602275708279873387033828103676368171368956984088585330828305528459589313617555811948643293514296876446484850684088485691146562937862019995026021204118292240188327102634641247548240210820561672271147331257953168832809900038577111264549356421174147069876047321668782269665869110477364268228229596998347418061094929213795456312342240997738272954020967473292089715970274525015046038044928645110978602135326967812646908462632858051190664776656743043542188672555814508666431868357193920562632204584705448730384800223581365077247227192395104702883044693010340066971987213005929034752231828996262716324528472359911758465750556253791904767345288330654931559944034975368894832994473666214027494532264215197104992910496439167533689502871540732805342542188699469444002415752758126398536002582376414375348366912278301647287023520828874256267869525566273288120709017754590603353321209730871391653968954620788178649480477961010828375525490908852256082846992693922204709883401283934244865426947904117910611618611106560335703596918649572233210904958074928073428307996662143316177628518445787581333389775261286735610547865117786649429059656565180984696358415526147887794500212315619053147042832688900193900784305140479685503585796896687441879951113815915258081421228803487905934194023420004736552740866235452870538600828006969336693441743499183084136877044697570254591562150000586101352290945538530902783629670876976968315075455967047307874135029015525502152769784732495590948261332103103666259926301763821837074385437938516675188656054084264581702930603136884178379771906147445028084049817180533256560028486523404427115809258698026729940154717614078857769346114064861548412717267619083939673565111830931583734748384014367227507247121196514238761388563248803798617863204864673455112051734525743202111626957487905864077559698970271938559902111638026459843551024718633404019284606558785849001447605473710487498821795238018982242366978662975925159738244931328853478480558442682002186382290727586899400137425531812467735446158039654659792762335493619280735411606262424452927260731443670872545468025496959334788476780460254058319736546918214410046226047356741127918214273658454222181410835542037478921118136276709956469245399210053579185380216291789285002819524590076047624555754103565824217524429544912629897268929344057571426823036081011640127873515072847325441905142232358249804613216258574432933466650148192927729336117357363222481951061896809982926306169389952203055542404675194505020023211209771742625109021083298402678039360524204886562388647613371481733374367404816939424716327829829254542458092475308795389792735332327874074581498822317729326219210789821275377697929656034305828724446042887687309497862259013790797454937035490951617010629885995409896635940447251241821646577164723059492266109721921603115644991793053587070864617649739548826244739276898056331952632700976679040535452291716606767400344195066616546436220678139673430384203758352493509909868096696940112288111661883432256237321239514853038946336945441134193124351792637221654246329509776028824882420854425056440684423090213498758043505985392087269518005447028201367654867143068310046491305624032252672118808652945921844666672883015517898907970274942403796576119930555328474808202411945401201631836386477499302839422154550379808415050797630086013596133753328407612457946594790281348619919040291364373706783631127685102990280478665781634989869206591854473350738830555229097961350796376183739936979668349858074291758388994733229661910718460091886559241047382806941746209214568934076637449995155611697449481984384100741502489447978434728693130689530308565495563022474985435079780624087026952354594240360559712792046126943690141267787463341426765037400690851806656993082184538263103764365383303177249734346262238081508357037561582201840930423455886033818187347414562683772792964983314623779634699350820063356473564890501806727364717196032446467349904249076349450783178766809417514827294709143356446476579817309129301722109595561067343105000363034846097904768108598989730073269801851418731357967441284718062869849369984419446099130254322579382205748986086729570806660157390582752571474531476995745707281381656785858787442262346280614204808535038036888047011244121726874314263167519768588230469506000638008737936063063022999396388147830503362421937103041238793758095765404444563246352589764885463701749760291399669044638195446422956080929444141655875162783834935069860552786497880756411141311074630678523917890691446684924699346807302977803274139546598750402703861947586880640009870931584894108358089882553061775831237909625394753209021428856906232654526907982298781157869908823902901178233094388356560271791288794812094443622867862342771721063080563736495615359896058209146146027674577226923270168488119378011097808961183792065822059751244615354827958555325670735696159291496305933553775658909342898432355329068214243680397658133252885839387430327959184203748197176318103198879058920114959442641020087285991896511344894104162410308039796321510737599106819992149526217664221902115627971184485212369385603603455348779828412103895270515502738504383131426244355890727202156618682396660596326246235698442637064568842284096502884753881246798665189403597060628840794511568102408833746329926797535137588378072654462929783439071586256870517645015465768283780695979779037707159800883160892442181529827935223815684308734600638164530746403556802198263804252412995110339833445897975774160143001993151944947955305136150149628867611843255451951335112064566691928592882755548744340446569213523913308328245947936941522256442519125954364739258182594998226358823441131430762421204440656713625512141944628974934134644187480547832485040550587136109839244123114882824154221032083879556163084539697804666709418970622300939106310804679358461373691995250471719911879243726733157258197584407835690114380953852868622233047346461040324057651109546912641820230641092859454986235398574509955996990331675269284922331895064529775317137917197884617975482342487251432118061525645113524765742858139762745096126306351634591515245083908193654175384177968058267676582308568730832679100150134595440262541338199249489195628365840301312993760666317239949171810939970484662158891608966777508373810669694521971800013966409696817339687464955953417418440834935943631369328161620849812841457893060800833402519444724893620671521034780491857475474696642893079351335913203323986494204385110753588930304995604252844797935733351514949621326784857331979022872512967825246921224184592645017648292295778302351314502560676421471733538243219780775937559847896907391686002441725790083035721725763045514077085114387983963142830921860311901417909704384959229855185002581406083610659272020740169866903267296922758916029429612154838358126702229366091500204938731546935310743190212002701302837793648581693841992910564856932825830847897284911562565936226096467930510853740341832170724179354178723659324211674940337187061604373398079728149196539677836114987578003625963189787397288097290306202087062013736541930395481147149634941007931652725879241901593413616530014385371100265059768497873166521937588505504047689008753027034171505368583290239825280546196691855739559145458331956943352707974462532943350888774300852889307900179097646962442969455544301591166205849518277813936799229750986735564376087129589239757453659620035881334966620642618326175124141040196194690951437656712037460584592728655217997375833663713448114567104327441906648566480751510357086126377274262117584637849218407810586357238035608435142097278310558032369929478497971376655507760364677758205638767057663150243421721200220805469464578457435435271131201825399549352198033573888670941595589510865825713775432244167020378271013543071582243199063282404159533599238942579720337647777654928732782873670237527355228192062816410093507226157728499518684131261869490563133197372707586995198812309209686161690752516080845888546910618985499630406599635182573942707913136137678053771536429748664722742814789989652034702760305547569881608947758769493540227609368846984398133253966485686206225445500645217488413784164637562272280210572643318772277260917152245107221286511584913983230329352465477540257039134618662614647835183956578778267843509694376111146354424031883379941106595777331403221189209280163916308368256200607334738851468159231646732230476107193902122356747384215029217055879722350668249588939746686380338441886253176907938963014796508781029533305454160634592935507720978515254676782778450306668425074755060676053530701298542792926085270903305119558353670986154515127963885322227946734124967563707356373157563007268143610242846006890544833305004424953567090416053240623984672352864114310629107324268559430388095247417814188848129551201110490958205662135318591956291341815236004750698857264366353075611025970936581782189820078191051654231749206091582948598443476322761283607624371361697138113644819766562511572033535293633362069559128545268273002200479014136407177479983798034997490731635504763069534470925228527180474326628779007458295899536264488038135617800670704286557202699843529608562414007709874767275272353501586201527360747678629732834546102401092193135102129386524839821755822730677318657654296394616126940343347931486492968596670067094238013220071578858854173118430036807554092674541222060051634573428431620466021723993371304503116857732893564425468731185773231512856644030653633437754226393296695913879591529293214842530859967185706691733284101505981731060061593165761974359718118579498604325829395159302866016799448171419496904561312323124357457551279078993942476513926070635101849349238198220721319778076335165380871371098945410641827595823227510160868054171582055672277662142226341623714486096372926411179402455865819384204210398239296387458819227829600712339299652387981184109197942376592036279504994917584389871707859344023875366732965982193336077106747005944055599534903621845738804143461633811731249092580784480958550425350682236257965607166133105221202593198914137068316565634791027222572141658636543478515112957242769685953306271959779642685895973298636198704526655416742910044078187915304715965017134338745027739114689363197956311963541704693457995358989499536398940166976851829590902885439106840361754860458409501873649939723619955547736442358249175951136870237717236505415539093136770351045423633140849238644600755569906750939459768241066230249049120346499671017371860390435968770837637686501229799887427984029188182253923653424650549379811139778433817636480041553697695612424462933767786515191211448868357880415650913537051778026920031170825469600279849415311440983198390697361414553091635870325965450181962086651065119957578713173971968186663006406236253369015737004396551119352180231018964759435242890971870316395910422207536364441612293554365152229981407674801172838831830389114656483881968714972185673752959270029942850350114303138208880929569616382751553124969179612519172973983289221200145532807552927134920540925420462702474809215027525748820366981626007204827226400359375580794996497314289554436455775898180786306243840765845547183051174487575162731542980794930560800584331412945566906403951310944620263035257881801113347194586205476907695754384893810074457106507832828232967042253024069243546793897157350155752462662750200409766655803478076271309933963262584904574005029187886948261354025216229500633967493100837486371382890180168970133932158231074229493540853359619347910014301841506952634634364168717283399413482529414505113148160304832997289292577441077805122519864474553279582872022440690164676436058941051807076192256966700131719817579105918132657678723197083282850906074557026023001013077928010181172368829848683577597926314371856658253275194282807948860460415063299217592428153499044418322588412278421390762942646795707479848581278019988469752370501636340904378792112167888699143346389939467480582321919902816455322799788154926762371169351702639353515237140460644887854403377798782980435304639055631948197545659385586618220163294012908221729519611968278940153080782740606155194221815943333177802449657273430191353703748266368124418858235006271725839378030282679204593292175033189858874949354983987784698255358573443234455633633329573182869335113212883207592985580946362453817927065647499760206810691375652824663408020738184796781716210268076479896807175662419069189019304390327873013308555242538481541559831178616903649943370503512952619096418755599958883670269190223023850475012912970502836565915247869084296260880002480151956643059562526637010973219611210992138105882052547181610396115237778198647267243833978539222371665888057529029461148843240607674363056316588298807611904900890228771937201698788599273303553612663353069593329060735736871404061608642180866999933460247303203855189091593706598542191219524797440657803886767570351675367348381020956373816316287278091853450249506860082846676502810368714409030881768213504829045415942014591225320280879826454277298799752188585917868386875868990001475998548058251599912335402201946284138571842933232403941157523198770822319187723771561194640960113103885196281817691089371865475045268764080298039768971195314524994778692411837956898917101692954953723014630524442994862963052036019022105057233147478376245693944415736351786411763977472790672943300471827011292841619339526314233746343570037738561044625869433395837545807691519471698270844761537233950617818750393066495381988839272577663941236653265507912029933798734279603856715606096797164010996311014934747501475665025513930747004522773862976872741549099073207298968280199535274360938277507824654910277856689470032775739942849832577311267923595688041292986047937804496677500139449868244688329014745904551200410262724138954302125586172431481861114550913024674707448112928833638394691511935865607959473191374470256183062048146158441647671280318679855475620811382483330183714886826361517739565070050776946053847744916984464592641887822415214283166363112895876031206718934860684519242615281362891029376272567503874536910167992432707064784694509917998877270687151497157521217736402254385904893259596817747279951343368797854751573208328621253095957922816857599546227611721783073249359895415142300375562068052051162397245894152928017942950473223061894145731304712282187874539690818101904580488401200733329424377365697579486257735697073991511234043930188058611193429572883214927571527559915820231255811177472440667686266304872235491441521806407605824708996778355028640302934036441493611723089398326819637920532996193278378100771770228071805256898062515615136502350550374380579555280851123257637743157957377524477945770839531613869164535590330995622927055634893034018038336133879676255504933183618686090269945510335686119850358553793486002193854512047039660775557550114992887700774075078123513714684897892434049837397142188603630508503584402462626040606769038978321458781829387547969165526726837267032007545684631272600359538471979895548853225502134593755666864805163631693102520548777866598090155578549987111438829306723391693708338311745607321257168247148794167769372643809820763879943665005744899532072318380745553424878781829716112919872048064794355690006708569744959654887264626758075601858117439381311677404523539511353269261958722936885680838941075617784612184453278074826517857881639692557552072502012179206763925613637008648134964936665755956138112716002528085088728632329476826261129158432212945245540724774018028622634044607460689223543384356568081277364594292098253202024984994482720104184247674293775471432853603326359853816164864768751135518488058536439197219426367232035183829978268723996250206845949344463319782848931666908115388529791676781971117560428290429573715910267968855451793545558753442885063977092729272445785418251234386388794173033613908200043220169888109210183158691607138424691697889251974524784667110612800657399967865040855403910919249071314072754024641680481521983252622994244305589083886335497720937840406435855702547860865639565991344268996202513232700204932909749282639914847142431802053667328072949498701846493029301266446616978051912471875133436282847247233643029971966898155198026743254416835101646569200247427880219133642049281024652009695281524408429119594290872571570334324575743708583953536566648902905851626613072806519418498631158821301001671899409349246778741380704483744822390634416224602045789590629879208981365509818823673676126644795590864868163141941849209516991966523638712379962955342765831107941246226909967780489950261877930879218724010142372404181744623786758288368657309812152336459904940004403319490407558850700721844809021660734744048289041121254478548103771370017501603198081532892786936520917444655522600034530812316021466894143677478000523619633258948179513117378319092494684921540286503193055160697987773893676897391232840864506385554158712813868714800538020176058610901402020646938047492737987508806858406370771391464755275291904544507075886565117549452418973658103194099106131426708275443039068373838909936425278324810001853211211182443372428928716468878077353312445665951834307964252724768446068579470750941258659597404375618023845238295280330085826120477287750497634500079744385859474272852258451729762093648155521147976223184419679758004640635135723563772684306468092546598576521246143361811532419809420782980438576957570970684449825600209445863239305477509392972112099818756479743894943263752611828709029171899668232258323642997674080677481541757742938899716234931522637640392985438972419611705898036052703867177812353459938172082634746547936871908446256437030129925437195694014153213891972929537232005252049964551471211641145927058494163610755560411641423284507455067349466764680073454032643738244422496552527279092934018261334922937372449705928640974076935801373066717107217998756342824200732262308735497599235935735519036265157252043864952311342065227249401938514117386026015016609691159353997087635479582727669040450968925088948049358476332390350629237285210731043400078663270065187489686782323875281994636044030351799501713261923481892791804713351941594067374899728679215385859038453719290854668964227707839877728967667145434368908024525662284701504322457115013765966764942999916126179008629046376063527495012712854662628827093052958900414042406676298647760935203404886605830741617372280126414839044212774767199430012980015934828546409910157495724957179980261590359317271362037810760456069487527232345236643197278214929450131447180918496288307334697058738697718875027382966094259979361787957562975451431036831898570436447693169302001677828243009380813296035106115580971124307493492924928912707932921549537281824409320819548824057115960113528391568879698986116325314164640326506791079450500036700640230658127802651789376402034080590255230095508623960329105476726711268502288497183421455910324303276605283807776498664681284671509652093389983224878092387557655676480349568069740224898611961820987216824865426389362418500077913287914491476865776677359044719440386553175799478433329320731605807474501863641466102816533556684728875372282527782231731984760678934084130271972510359917371627198638898747027797838112851589586894321000108410003025615374168729613286229668447951720449691857461975559475186071546386501581453746548117410354053086143481245131584704981487254361237949837112335859981037777514485761998063165667544764672448726035651854174163182761726600793359641925890406720730303200302521760330123792987033323939868265102058557602404964762048223490624219970086980423817374296568175887502907606762550112650696810118908418799755319105647692521159179027210671136834283346084447467472551057189637161000072317873531094691141001067517071722643862839107209270521363657081701820599462533068885883137551285739612671919039458300029817098858864297412785632405942118489496710063905432291677617577961599324847085148188151989889939048885483130843281026793621164698755563448933683934276489264626956953162769999558040811011667874482931299627833296535312326802992878772866990351348981882718053485807274211324448331533410558990488899348457360442481119626651984448815952791133808031222053160627258168733631687336261700896381222396633185648741917013505582072498135236090765437865330466604811599686195291482177192283837709632292649555713701590117663085805307187346354696800295420391169351684791439536701533545258967825715656442269451611598968997508086027910576155858970906220568596892307646317546785834189805011925402099439632389808528511071641788039820665403397311967574777488926830357851448763425162495744675479688304154467013003500711664483049667061537474562575071157256069472893271188486507238609934712754849203970120566531472783427626995158583201518845809070488491960309217371353379695604398507167154873342269624726587636173889298362898682518150093661586191850804656923830896859112609133215253840180681702205074732097805561345394721624119994673266788567983641567299836864965144203564511589910622638452106916202492206543779512731709892947150707293837630676515533599245035672072449207724412886915185011378398843822835231040061932727148896713589722495795023209164631865925560409535117548343963499262930992102235884970939018414556412774993343633556202547505075237993199988235064370542237196796106247063775041177747560752696890952985341351813840445440860493665578323601024550555662452764801426681427677437990147656312068263514679998850816043941150673038376580812460620725856194976940984041025952036594718058316361050503668706000442132148010371796024332366275350953275654612899853758814580302710027762877639424494979691982253949099486632928889415425585054994671454840672064898483833725701779517891431681867474092325869260599205147989488752336108749400698123285503445315440052066359967790342550613523670261023176879569853934147986153187258847397812882837148325148569326919575812618048128801501693010341661507982319704944050803609131085878698996933667187330392447696862609711898114756166728433353099337881779212870416517771658636093937332754272414960912211071588619819047888502004600650038018581315168760443023214920108777104411921841316258843292416012125869256917862634988663139403579409979156126482385534944177247383451954288166592733407036817906580052769584998627169583478962268414181258062503074121110286109111901649199954168809807622321980744277174641474811547606586690267172548196695880976224910409481608936506555369640243817815236398423828527027291044071028301574956420254960840257216062725039371026005803499229623280358628978664467868450191464806970865632568785545398177712884524633343172551855585002434033436734492149709347118785778751657317846085186573162347278304238912788730011001064854868775512969765468155792737845589674533689990873472241822154793531217398210370759328170447168355823291193013889275076491201061446346955610868593269835350905293324286046794267908597628373401338755027427332387921311274435186549560592305411980108590341140303434487531473224504600527873141527249402197792864353382634044883397118160707620276428913567411024433142737484043233403541949264994242546093598986423772719421464038782846968878491182344321074918743974171304125511966968089486975489111492752284647708468721339767044687833870663120278249726953120974868757469919745238960976751249987339343821385051012735948270491738863442605408253835748349875001576823050599061962841728577129220248532324040228799877064678731872290957494402711614032103082817540653507791375058879041543608105687348703751854716426845626772843230777419546730707451805821953065943355348989537525857467896314909002806847676712666788297361936257103902226444353938749658361060482289529230168952578502037668870754109007308103009837101407478321296436102569137665641046675554586981300007036165677631471800160312121668508306121452080102234136765022288406059508409801011049975241115532426669506427160247925298009237512520782381533383317218205436648518063393926378815067627268085044948025245203521816328895959737332702913138782261746809575303561988193150025402414677862354484362274277725997176634296537465036512627918045230847195643675133510816696137659982365838032876237033736494094903531368622863999846809267046915115178663538342009141505462181260103759951207671090786314024368536744984651790584966399782253308026022009439502995265014179892957584544777347472138798683780134174107426512926282943543591823255219371715435257368244009438171342568845017877984042681539431700920449310159342827215169791195998015577768619153792179308853760962115163116795373740153335386684153022774989939379553198545910526751609720209037480831195883557940789523498252717012365743725449081395153013144310156533246126918389277728350605614202529803129914084337906990353724373683051152407249936489322926823508338807261015271594754747509193900848686390831636273359862412768671216505071270536136939917502601512003417137739123338279875499047778310593124220249713678937344104625806213797077612860044150415825568746412446065927679666904879971483461837838292738136224536918250278587974456927566008281595463917265644936106163968334175073738062231095888049640115338642866292472362895984962706082782661694273898123776359089532117625426409657484570084471127206081291185504444130404700738548808843681079493953989100121328824120533726629416003173689022490435739179941334789064996630562724439888447137120024066315808750596760531139934171202972035642023973761367963819006163742613633870162531105104597931250797669851812664128106075004998140035396516589315612373703861348745183766197698168991454791754187607377283503396441300101534533944830086435543046447389116601615700976892327521543043966862126424310096467181332711258468372119969874242521653334533270378642487651194847203115812795726811031111971885308924232127724559615609486241520248493429466166348146196455735101980032678427472638676134205684820363753163247525190182587463104386850740493189038919681535321720085155360290063928281357589901734393736664103699885368504025519427151814333649962940000492525990006833683684944053772731223252417393668939070290835476018025605576757444515234749476049788958511388459733744010619798732426013950902958967673542012658950077288327589588601909525584188853163991440259697271143805888190891471333042688538598472617510969447292909608715899977388234971752336646507946466564645809861171319747044498326394257718344487604244135914367278797668349558247394469446177281908340427790305559704284576807356105835778060798644307404311542743090774901130969339141048516996816177179695806699447889195924277369472360557928272670017127071642158362948712108774292837608795451002146006431130354008598278350876777992812620225657765919841774003129001693009288409015189786128649763933862955339773687822495877489840203557240129777543196514036495282103790909740581435833753360571619200760005228883220283851942549808350102981062394891295671345418099574033578865462006797662410536479579604649870969427368379471260723098495488610888115560216614732214039923475299797332815301909250058370610273779849953429064372541895789542387582079663315377703532438619556033549978885039695556062828130215535754676504048513685144682835926409069390073801969810785212018241807912056927133447684771292228998982724520034917080901853084017822116063075915461665969276543890023936447071459981910365536232449241597004077211644615036414026161090988425357481778660290354793880536215959310852602716552694227245971374392989190053879381537726174663156068807665848671948764938607687457970278397752209349485844826250710011563489943273042154770234040060850275647471696159579711543948818651130619852697758065729839670868458457589589443612002384312060040607508357895128774189940539749515508699855064780396431813849631669947577652639192318698737829034506675462145519408815551429883160026176560348229538458191430175317538844736621289086400269725081888335191620820293032869116010508212725195579433299069771345260161572431421054287240339200749607360473641960243418983520896349431965179782329393716444045233444609084705888737468459531967956354647475176277968808402985434693600670068842485525795748489729753583681452997351658828643425113298360816574694908834256119029929240233704229765959953386835362345008604954553791400460777010651127327349215926823018480401878689318209489915863953420767578363129753842037583670632416354437216808234089843856803637706230020368576095755268687278746052273374377850340930890723361074648392500097310426379569288862471399106303144437439545910720208728632577481372560999066155583734225738799545816830987038301993244006071835028392673750071688809380399239780785715887304368486044120987980703503715436163759654908588557773737867177229597701493981481257636784239392259879568825310630628627661816649807153209062612273138095580247082059021576438218107978867071552751052126886361604538335594852823407448374681772431638040327669329706127156881973537374647183900635794100920930053335201619425268338107008644004292925469930353308175322616583906578930770227581064691406360142466351647279618728803711987927962848962086632431544329485966645056687858046471847096144821014210709443052445682598539824174307673917133675640192488924851204056415204267443273585932143069805157675758475491638684021184391922470816728797249694731541190044183846279291281970692400719246422451605675485999873559758830003527239835750257968004670388555562657300411212199346460836659665644619474137553115024079623678727433048509941373924952159335930026662388392832711697882899344732757023776675239833562120822996442425392143235914673893042836011676955952170993567562098852559850629686844196189362057278753623304169112235187184924372141057433292172696822541977371500660244217927462726860070195440426225268938096076081014471619693780421033259469554184144907102764003249581158745537398855672240047855573915393340245374695865766631483600970656176238049484221598244905236713281389323007973462455110017676303062210808318759879843244499259343117743120042074686139109686239757004459572995914193987980529741879570279779579915875671257534361675365024526507192433163322133839876655120455467193519471739963460618531645652633906316611964161218854887921187175899843214152761728387698314560097427290689316038497302028915681166606189511986052859604071503930292364428933742637736247257257471448360970545025012038718721821513863180149808852165473463490395692125335679727388537860786756366614594851819723335344424299782190361055870376711309219199101207824844602184419361569349404567762206737176180674605894938788783886050640032431676803859535174026287039042438336167729468040406787490332013431933018034011263807067108907256240699588373753514588893332238220639026581769826029670639214499168595142351134638849577476309507104960367454237677278529809652154592655768133522750373423072668454046377492176654621916524682608436035589185227533962859637694690450765126095613664652550572782735444866442476031395700442908509675597100348723753862345017855138648092921661931690458669038848195996008262961069834238256795014402562751592722929801240004600574823835305243156185467084988745439235202678527883356095578101758606356078481842228541963568072468202311291431242788140093367588257677554907532630078552439289234620720065771543431093070652024949002140948525950278110348986026446115044829470676104680599568189219316281177526720539074885878591196667618867710289977498067025363517143399140103419853831321322407718432512993372466857279991304746915942906925647045450991555571383301790440632650193647865208536907003827688464782302302416892159531962359389011822331671449679519994147342029554291191027340151011839981043192082170228501864018671667300466612425492774670641919112668023230044998408255260723199035933800622027468753227521092128942529462285683903233499403241233266946731886691828764746738462962787188018545326351714476222719621489051773968747740712093012047778213611200136992943619269767650685383240975009701150246737847517512683052099036988844279782586659187062475123926614296974267314993593105815825519410595269254054000351586397742254772079770821864088657646342314238559825866674480123634509758547542482240195745309069953214886363065848066370573503721419836905098234578257796526465376948471154134885626672108919441457022029736835719468103013391841294050427874364624517644835141431197454181027703898443614493255482978778365649416354244223729393703264855627252436350157748905376849658869407406437518647900066480209124443073094247905916860939797531356366424116891763519886722588314547582527949019338667777605284682514345913862390986481811993987997543203346100887222511996385398147305507224886180385448994698173139161251155069035502862479998699629989881441093368945452894633691197113618981980391600192775511874793985031025180258633678177499790165506859855146376476407197285335841552673989094231183003831518285880091665866109169170923957809770307160900474096023326894869565602518342228522507451743739246267702636655829645944481539373720504549491306469300955299845055611483703060059065918098885523121492622705143140076039442167580266984329051963297670409974913326317327099392060304427792537163176217776495718726351774442049685384214690917725662438224764346980652808645579006279007020639234817885550596436284720478587872773769860809562166940299985456318509878695345312542353264100187698956380086747905081311521469165490611106349394125894481101443513743622907741880925421289978971531141565398720192405341412026105576407170178217299359335916604531995949280872996163552455930849599497722562148621240312999675831297352020949906251167494331346864383876660319894245986046216310054400193951916756514143431806923620235807733891355836882711479872480019106281153187304834797699201112492928424843145333936006772529112604693178589554361144846088087244485678021907323475495427238668087250852688131233800256901344209839799032282120224115933477662871504555999067210471001608029051252324702988813026546998670001213046335270184697942261307396795778134887780889947541474125653855806742226967626425864674426406876898563871248391334137060387970391979555116141789482967156324255143947805592254893144157973288079246563255884043694638301483486431182659248823064269893253441312246652819197347842159313928334345270018955353290430753487511519403887683516931612333800541965132083244623903844995549269081318598809322085632911054213998070245572290395484442813057690262853570352125601956442065707706634494418704865553130184746239928951286254169611499681753671131616195944793359155863508623354568307590189427858658055332268249517126667172946733709362743904415997273241174617268574039894545080886402717333983896858334565990743448355664854161125577031996947255769263864207321080348824425987925854708504784220486803333612281547142982890113732956086121831667807595380222028547544458205281236103592639717053665484613897193879129753192180311157300864103643309138889872644763218506969190120983985549255672375788298451507012680712887159594614202859904178155325626522853672297498166428427149385652895151985138925464143384050040222780747582485933610726115425880862102839269562164753049604130869467713988101308899741598815116203802445984468768276169038989182489705658964811880828502333530770705043465363528149337559262731320697774712340052145731830379253946533814855615634321643059930063629170028694032807392287857679565639343514260493459446227988927283611672023302559968444215260417873526342914435855336441679312788087353560693880679875615620645616652585382336745261741962959175876960305764647173590402283329749975800129371687799429399068168077082740617656236918839472819360491821915833017806474502146908030106883192008630869778862048019778213721904246072737383818587475467937645391166844918814705011823476774296510368736836628114778678340889112065502110625704471128052092692999327829416089846439329239635311298349893204012628076757761926598810045246365782557178930600621249264046534068116271387364353548448617054488087161864189767645492453784769786808097833051232300678297175282666857745358781885429850481079467982287383376781252838999202075441479556416409224047293817994972432287782639723869732566749367881146139429549175717580567491120188015611528024369174543521502643614129243978529998929984896231415850646698509240587806947620631040044345833785664162653502380866186686576299107181601820667055457534155376583766322290185345372053976442780675726260481410074177733612240095594247049818694703949026701399869101135691438662530422449591260996595460656401129744190810524148332101108566347610224711985775780164259154241026428293893674560422063328210239387984751639663988091715978609580181439114074419365539721359701226136671315155243219402552141481562585586588723761978805168623022321391581827573836109750346557540434459883385115349576114778038493705640857062878737402518950784634779773648575742693260897032244559116629306326875123358091952197143273119630406360636433318218579639868392567850013011326074972030147998715995076810819331328181443672624228047430866897396140621271267910547424897821624362093167027575335260828275405641665456830009875076855587643860771462559797417441025825733968342979478351369227618119797047075275406704263294267999289198164179232979818566214827178293169514837995811696836680666963434941605144038320913356972426585864021880861151283575297323256884748550499385686032993997680179128364572408719657694707516238970608594784445904389405315871200431810534934928984014220246602652724677054248652954502401877064490704278206160061079570409438522886332770141025919875742322711448079287806757393333570395514193465267523031582414249784080247201094086649475423695915837979511633964145478286653840702791039464838108733547754681064607406768532588541546272276848973279290383632329442132263834584384761294837142899597920916726448842800073505677388808195215740950260176664101638675832029563065975100834626906609620046153788199026658964187308996285015012391402510505621691837383270778488372836349052498580468039372371775210192261045653867307108948558676897549065232377512535930229272066931719963612409784165013166861556732895595371701263160043617891957721331456385250448972752717895815222312342389986776464552661066930766106941397930657760574812996780766224070780306390322336620817911625686640865247022989830888051349923736188101446197319136949068804111223551471163528586340390076722357963998788717336134243697276390683736874546607241049744112636528920859311679474530523820960056408028548382433640976918730317413240435395692807083239238465866666400965215515950931291379194038935422486443857175652514850933347787460053015735982234989573862349559167281331545832955370755905992807326176198057189463142422359883532223949391600516147846068942151770866360197619315134447997564703098286238419798527804289641682240248033662447005927696998840633677695230214851338668203852537582823163413243276008568388798223796267559875730708314777225867250937793999177235844258441119069655326328527256263381184352530763039805409036216162595755213896714034911832546914295020409130672480362194880917942299057296659865255061022346728489238696666953095808882449266522935642392179664783802394096868422973940825743688111060052485179935085478528053735337728746985810586757377974117545823697566745479327844331678248036979808730104766310206980119109349550585838595848958799373469565954338855074486542385676601715707239891198997351581631331867383714937153577934168034390945282613754819485767213600634063221566515457728642540608131708282183524079453423244822634256807530653068335861839074536970206979363839750018446296298270526630917242646778666300163515162851100146556310782788762253961068636108740961059155879875927826836100556831147357943277401686250805668963503298945308405308113532658865587316348097404955496319880093822678056915197232843158803677362392881576436185244419699867412848456871124016927428990836983169276988298797588030410233632975465167085884399103567500281250620881690250946242387731871822694458962593183082030012531219393408000358305248868732075010568053916617966886500619748966032131976686682841718594407489795904121784526334263222889824490139747388102534617469508061232246156657647762798251782061464359592673342638673086039159932279223601286278899264164874069955577817740197697043942908130360039262489462960363163871686258965830508045769543511319714327781170920731598686230111040687262490099412159533926690900760947452735796107631501334721939046363773978675081703748872505140198267237942246192759857547052760240477683063361876674333422821753879021365818047099891892237212230021156705960526696698382396987668086843729154292400894476025670299135040252468954221301318296523415497298449199658782446247973764449545040066635506021699772747360789324542662617692625496005877714923531864024126107774058202185680624684287558218039609549319782877748502780997518556929530252670676736036707514598580953882290187329604849882184299252484107214421658201617437217769013845830319861060299471573212017814563661979019137224846810157536204134394769738275637548931883171317889608549651358471969080347826914838365368500934379162131463748194337496657399102856992732465451169747267685546193396647353227986770446518730283067438794457143120006942239375740455108623325170885266714990594123124175254445532898456587649583980959578127046559870298777449186936752449134375431860351107166514126876640958194026514159025163747122213559433142056714611978384217088369339694259271731874753566391737991404246471576508889486957357475366202458344140772072747098029521371489103764292014066198443619781027550817932389908627985490794023034963775657939599251465827557934865790379757824458543155856259271451689081205677967259952730228932940849289052685320048883830470971111007375984193462258292984747820528881480655927738638861295117685589414752958657002550182863830727253304958951424216376346127748746998824328562360821804815857325734243428975542472968308848047713532903764111798172496548182848458712763345308017095145612933762910050828932908479240008558555138901030015019192649421675057132218352583494112780271579846154448371819018009229306982794727400644902168020170855563360583011371928436505563562819930752411413667084173255628018432975981619518555833717972423078906801845435188764862729618506139802858270831972043415547722564202655294136492496714324323325374666060434225724372566840785795093520126277234143257065346848251394555931369913926598145355267038680890140608653296659056040586589878421858652442797128268027892767417213274073367527230351605310427214844899604705913927317416590105353470681856077030770681043832148267202825246662837888791735033722573433892171882152512192015692698449328141318554055639878052653508983589108138391525108040980823559013195533286459060989004919371236270539460126665003389707504444551851151223024718934532059623537207775474553757688331250898802151629027425950296830987379132304147046063921857343618695383177441735056193394982297951933072921474634060936820268972017622149181213762247246672124694331198041836069170593491774032042623939280488119885117100126678839428412105877742565725697664749234073085025730700737080775971031326247281737293882799128501848434084988547005035301016727359197425126930072477666802839563036365786879431985883243917799301740855503067486285772758323387264768862476908187088735758469824866856768790334446274613734196563139939373824661587711790312301911591848948894965360319428539537693806158329522411566531179062469573421867213611815567014902729739660598021054353772081491834387060008715471945765886371886479531584925714355035373966549718528332023218726610180704468586564752781315495798000039902123836726330737257295348159600942664645285340168536663375358385962122569027472328261736292017470904038134609227157771185716150606167013936006178318728487468433430794256108168472605438094695518388915866982349662587672171957522954385625999679423599930073929661567852277187103354439117366817237619431690995906254040079630724467928625219794855394409152086352740489990973500597168796958483097099139546812042873103419568184675808847978511829051907492764818826762030387378704937441334865017486959779441845622981991556435051494106011669128991345468227101768739753172179994699757346109382541836199900412247747689421069769415031708955770038751148289002959218579646450318332186700889677982928683425543904745871836218021547425982413228340664493247671395270612479281915733128961533197597821850207778095851564419667861350187616610518444964390754537291407629484128970833316541533754336739561391348542511104101196367529176004957687488038835982564948425207264272723732875555244582169561230791421367158148030312776090393823117820971112894392126367652085272258395664437948813398884407865275586911445293937837035998344419294354331834546697645282560047559379893155235305607021381956385901930191707967801505084974408220840906412067611328493276940779063024337539840376267579934366006212704680413891281455047253427191411836241664619682830973565695811722674068840706030493270285638404432270438786132474900971752997908437160375758792412584091949452716481843332217881622509203881113649924395335433607631360903695400754257998634035549630083845077395232361692108685330950234469958542745604882147926516269597400713420991878503053112698537723866000830082049307671587894156380724381899661415100618829931484019464781591047212701781587629328912002192019295973179068661093467219441843577078277568166479381470699447868705714391047762435891739785519113155277887475259914483523413090680646557602922728770719109058666798971941946480485818511944451116458359074981903675891102367764979973162273448556432592338995651107384951484507491624534191913713452787726794359657857491035989147934746323356115992484544071070412997124686222236131739975087083946540310147793269867611091336907451363120383700777506372310686616924793056222823744415190463377246273357839221395923271010522906213366064530370654793060306094108345535364425501735566187797977851324108617704896058454723455334317710659709620349832920442087222924821493758410069744281406369150807319636006639309839155825869244411780786074146456555114057809801947080414130870248976696470022820863029902571951536791848420401496872083487863714763259439323617616310755167248579894242359283376832889752649604904087543500569957346729141521478581647271570629003536362236397510143777060994328196549428637071430121039015467062063988042193595469158624309621198965189130574490085239548146773381116371882382992247252095071287765001310460673674516994879569997227613789527278783101132169456359032103237792627153385489487953984873349998938607822365614273899331837081665208215832872363658846121396880876691629408283690426891161615075376280714149808384076037729448819385839994734376848022647514912469638675374564643519601342290141737333114056887600745740798119653259457937308795858155937118867938031626801130153478403987221540092671417386392605171588940221846063524412231246950231219224296763193153925158394995551396488602942082449055084438406882709305110366224531911127514161058433059799490499083972744946601515959237524867769195647525639896173313985836005900366326204615915194393609898135572319107379598647387370986448840337667341031038561823931009385613873166669466924455028925954772117794613568381009576647414043679883702086466117751136934600907708383704780379980145095001655975483202928567521094291881007789026046531255451733540779531704282809762966749245473423468290257476984986631415535297460447291568043418965191281268541760150658673845535153657853251645503029936606534427275069384684370461138095504098003855964215327165515259692046929359510758451430826154342217357878252189820520318443896117757813737757833983336196042048700915054813557759396473571377731633003230235273917859310174536177193678593729139815248875713439228247874490762349734394237213411938326636110055220443007398055493359287369932193452164355858500907938771099704335806961533572653353058414517816608938489135644543216286461229120239314915580481136450372505194546901571643011625536568957994100008095725087363870782305723970224871561506990548311520174675545035454748066214559865770737820274396712199644134329990400027882025135673092561874861807422060215337617108180605464993509078922447063573988763754927374256335700114136177187875211337669536474856990875840097787999147381451504989131321225504516016760024082263562882898193641143232914859689185794132467111946766807163754483536579397253564667796105046232034398691594465127004124617175983573412502829226498416908254495292305697275447636840245315726927414862978909659259964384539893495949365483490684439457022717840993874697744361471860337337398093325707806982068806465101838541955243193052067003594819138559393749083934193056652062668917328708175289909051891806937507735145165723550308137396881079399985166061599075441706266691047913347985396268679355541472989037032440106665411065805299329316490776308358194528242670269000931196322926882222005539199026300053368674688020954279176808288201537849545789707167805053185809216163429549656950606984203768067149420231420589215049286612182083285595142698627409348605980268281081907907201968790730321624424601736709511281660908432103732503635736007438509135732882218052875131222125939170913169312767058049586917249056876833426293953306370363652726235604864803534043339038383824976251953276924267548747066675925088343492343058645418403470340919247308893360377997052790408204099353606084492548520945446707134547656207793954593703265200300263975091358631798202128985342842348034724246464115998003854500914223947270519992758042297815413546363432893727351212349675903057779324462979852932513487121250525894390400816245364432269099083049194158750672022107453464769906491885591241681063798120326596315820906166119499978391789385292432259032170297256468142673078136233761222491392739526177384587266267850975968516626495580564585800119423580532278845371778164952851237836779503710851038943036941492289546739162138270918922888629816698728660497311648649868509355717930751874133410201368936868338951934106590571819613456102287192223474543766177966633158461559032683831365943243797016069994493090172669318958853149129494025039622874206251642669333822860885473032065834603785302082602714742072894696957278544742385533122389352648573040631803844059041675228647747931723605437196411016208311631367068338395654333856188034242087939723510884989800822613783948052192185716290629547159128657066935156955341048363122237105357855900485506413741978400517231566836600900401758846401971064286951026545692419531123843002791141550088333002146046783398745808128019344887660783868090329789111501336628816968954420857827274484189681127657022979376216736071102924576499556253285522725823668620827873683619648367425340326431897221918886657608316224258413854418464196560870040066422630959604138500551051037330553222604975278458935264687881500830162636916849943415357456288388809315909940903359177949810541769214615594041762834794519653747372257590247464463026647293412631398763510814745825467944723153256514995724774903095610035256288469525644190777386225968877907880237939676803713791443147431430754757155616543807454458874796640143609232978566079291931639492640448072448592736534392232095342628692952868877574192311910153432686128940381978493810364571632444128516829356238743953589521375513096615140033041777934666549682789312821544257777283094583039092966741686694607388590770766104888548344304938349923042107766698403918441641699380985749466494011671228636036957545158197698652336886931057531977800757212391614985628206555590078936280596182179312792612136712676688092884202262856000141821182979030443564402758343693817514117925502476527814506569680082793301708835245467835169011044941434010808151512044878958451897062969684804709550458689527536503492258166210688817501133548649796817857144973044353893921323155174847391403060632301967859852524174763355409675120798458217339991083201079955854717289327956460178826460398339804987262905777494843974241374005512600256128238482116577640829802534871430520395357439746989589897408561573083785963555702487662788973300983748087886236610120534569044266153033278335967714007682582023298053298519873786274928299720831474393909149599694083894557970636096582720712910781804872998915977481320901608014855321464062491533428045740014316688929373575398373522961115586700307363814350073814060411639498367014825788346153473425736028442923185217011919217056577589557345019122077281331956828688648042530497656833579521541767014282474155416215548265245580525043549212629228332188015808841606537610819005013293184945482712315130135171039201885803308733951727913986471087092815566468301409027153325087695325684575638948639833521526741389870995962153618056966976750593233221313603091270883923021892976359146059301550633872392606023143571619169999001548885984532937284619889296069745512470563464177338249344483714992524000546073848056255234222723643180564209372485046445795477075380088757308376311694841858596609898235028697521226582567655606926722821027636713873536489595319186882728983032574487783173168806580468600026188984694759894093491188458340767537144264058576848873262661212564799071258099519271100103093622077829079587560194939219302410355289023439650948283455110921723060378725332461731291794446271410893429820124293180861929729264619800340121311544004213308973665234800348800208239973441826691443603835440182249720074630941744667282726679446552843243957185838074499234631334194728682431669329304128326830628473308324709049877729932101544601960079821350704173143598235429936508584338223623777118998896747892258811443547773123996374403495872528411407721405982779923051617900931948822204487358629019103692943381427673565797788056476477088844577946985248460518741934779580199988976736700243979409985914862750699606049302621967151457961111133920037987549869341387236013415901292652030655343532288497469705065446047725255688863597081453851119570817861376662728809236674536695412026753458314674246041664474529230891037312877857491842202170974304796170209411388806632456737687560520336406614706042109125168302171780993197056245940711352090844138910703543080961947875343209630601798211738650645648025847243507853928082689944623719299704683815963389249922185184524302566490850874950076392651236717144798755963843137714800963589558378416421405269473990731880353523274136685530197248462251324844048109150715575820254954808824394954998090870311380575947446515901126972879688980511363240184318225109075033396408828927365653930648197669948177278970763426012787618391835104489768979324421852031517928696479389965421356089419988439901259489159569961616177814170275418390081650965018268043093540955560230923399002992537985834618251070697827333711720274985754837672629032469843524512906793383733812620598556521346115340903664029055289026087660389609616694062945292745221822356478706847356181288128485914897767055392416056078714653227786729578450572615127050884772449732676075375480998685880721489999155706424665362727486365767603054357446054742078829592497953708108989841384600908175921799482333197476210204650392249946075402738076905544866351348952621504068275958067629775876942508200517706917543744746478314608643900547131732720468785921252745374032709734071644072494581850172773360832986378699081715766793051216375971387803367334282794894765014091445197580280881822589859578208422994741430854189917476172625011102314663563810076890679275571872468827492252936915000196618080382866146446562549258921119714476508762950426429499933832773995568316384194363791225929999208311894667176999239884882048395936360415619014168473568502756564740692867146875896823308408435300843755042183987874388441142717229320884787248847136031631458919408477350582501352420135649612907911008262533239487738667369506090028925923272190342797351696196811028961977341038903927449295212956174131935860129546221441751670830576803334445192297864898412964490890000516502167242816724961255188578695414541092652772227774131849127090071742015190672114368734976583705304055955604775185042511342573785657786124381260235312561873380961827956601489380893771161966753502074621631690857208915929130043932048366853379690369214546867215153184542487560966628608515519163288546625131274879722522873923722171717455305069029519531802376391483851019582440396591096202696656062908267682823673753254482035754275360005312164991524443568159038852453313365228505579015013691646641674322325453418057903307114173259145908421644016725839222450737213004898650818431459204084528175783357797709688261158551211547440903702550955731378209514410550204389849630613267452176302515828437062784953329555857816135502589564541795808549891993056643484431945263948799465760835736065159715433350045537593437608671275816519931340871942526702674502693355631486647226866998459812770861169766885489355161839850698414797056877778655680765905485790404506999504423599828165402866263180220608095937224212068440525902239478835459483854088114039227394478546395215675856561884686175750226159839634717900666011018821951812941416823378485414630504676783757461365818801333618739912177075126352995522668054839873112297930629711164981929535504485857347895412097267574521041417883704390901340290010738751249197145661913438254936914006372770847235216242117101923415395942352529758466064757061336397503220449534878115327987137152415893894859085111692401507479925304087207101027170340050032642387708270063379822639593453572901208629388734162146334262740060141171185720000367315337278876252109240687900291956262585361559865017971833082265947195828241521706729052985806195675493955680994656897376270468562073470070569542107338318765687250897878589601517858695793660874102756297115280970157679151409895155260175376356147602586798586969221795554101092741594296334600418285291973669080920289338559512178963617270068435750360377352222529700191932705180110252858348791793420769184850666733662428332036181965871515164649726887870135052652071458790366539681913567266610445141517498771228085798030983940007556268267255517337506838762780845577135448165073782563142689732534563663366997224341550803454694677589271020483903321152784173956376201154686518429524510826708739063883555124944957959731211657175802303740609926923178013577327604530549461985695310703109474416566994223830290753247488297581653405994178919164258922362060035749142918664478634903793622239575646452277876557782113892809380987758265436182648995966199721542721630016912595584613935032834294416132840870386159762770553678340391161031070636957281838331220625753917363649612322846901827318203738339059216803068708759119772197143807916570050913627264821203327468986449038938802677668167337098723882335421279923811312054481158120567066581649160511715089932627902170188246631335636502839454834828759572616788054106805070556318968653249137095366031722410831668538448785493849106633358195271872377766280950342175856679944484452977275180238177307023404358575848471130729109411451937439282198940141850059044051699925486961538846440499398248123951730987046416613670491482482950526976258588249683319579243779494216612114770490739863868496256230046812727911964256258640546095588964564464733724380295390335999340939825431745328271334113038554189519495495381277746044795409975059884591954379728710787492961842621134392620369030923567752736721869420561909595374937316870801433470238027112858864067273415071737434826186421654108720281749557440278173972360286522512460900425811890608522304639188718419383997149465066853310960112654277058806480107803471964528981179541201157215568459641311142945731754704153329442731986256205252752252731666570688572511763457364128233809083476170514247715083358687939635667081209650254461906742845468869513764792618102109017907272831659279528551394925767316885693485194207185765750207428852873837677632550031139766103326091025946905209668481847602796376738373294644171039891077655011203328266681551403612308465016826261822390564454498999686066553052287370044287477009214485493008190009485515016249989121215019202124805807336900814014562715710874558982203490718567200225412696268722306346684640745279588105442138423945792645885831262136824029633247344033160322515947109646429223693478775156356952728729246682500836295683052906067068914033461627368254989714158856658040315690886941441792091218077343876100304236672009359179952193841903985089081911341964030605602902559634829591101532938611360119772663986957808961799942819513611929395616133193928866052343463373238849100361868864123892567786355176535197079347876772851042928703622068090414129661066758700391604916602292718708732298776445996055275321232175919493218274662305960987669413304005574847974394440570362970857261680601548451760330804431810846545711139310207945342458821358781513182769511781194565175980854661712125885384487627325395184058690694269171366936364369003107180070172880775158314618778033589273332942325985099798940679813303866894363358169390576737518846193980392638866637613327479153931745367748689921325077267181506832021346201848112731725300576181127058432733796596790632377162741143932751713150413938218477545281651340278423107487238857014482986666109928041893237410736533042589184112365467153542251880275791104631760426143855420128208775664704787278984246842392565145250099475713216753376814932416984256055830939196486702463126418911542695003165747262518594319768747087453498673586638227528515593415232237111688725573761721966712784897954908110198841005651889199498571182505139150706556704620302614726860574955157835846594944752751336914858368507618980304764775704963253644528231124883056987357491366880311353652239091118329272138841850263650770923215996763553872519904359695805677527685714360275221232012199227588327750044967498764840059363278224230904066619999331540701618430204924779724036498127587445504683376789684861242826035387281091138685894685173368449879646212870888402846305672140493514149455735602401323923493087170606032396009233026778080657457608214801365846181673329858312684334231797803017569459587708818294684959084062706905105382590148623550482110358288892793534866746586224600945459022627958918767460733117699542938275797923327131490155732746660692819176627241947374014484751744329125171029582592951759478586103040543648044195847458659482206364778284203709128330625011448939730232221778846911288490622847198511172010174870262393442841199648095284385707486461315219913218426959832898739840718456968948010945594294061664699970842945581280156260336702711744877220511046708209011607697856658198542051060362961690215181834241428471959707324731503726207003196675880849209112963472234313473521132647225440228052521170524256420760261619705404788417984969600807106990457698637158074910651924506410534271382192012544817011110025075801615615816618245280812082055134246509137531206349431461384174808040138148534694312495413502157014132130732386923473837803425250262784171639116483687575740929967302502753664144286081981805255065325821450199200413168240829844186033817884843130295948606422560074677507932871893685135670926147670556011584562985856513349597274023964427340575194483442911106051451955216795348916795447110653072881876891546303492500350493219005348432112971295175458620019028482826418205672171240974514124933395170620871735865507814269315851789525393117285488396783430644805599864204577185943219698339970772144520337107153760826943387475674566000519839772317722525216033711483891443490207642785636150760145329021113751723872381123413012744942061550696802799095736538601896525230867111557758501628209684461036278029941153844962069404914587194946395050169358454234478715543468898220196610151578503684024796657274262746940197758718462548166599652637072190319816617302951718901987306584924202584062162692668743683745541452121410599514850396735223434993031747329110518105011884700417393710036214629844988608578363904967038090346035130831930216261470240464499221282147303514991590757586773512288939236311121888811235381330648027595705055782047755795458598088916183730524419092530503808961577320713399362326276778738369663005909943097318210576332010029349457182762860281714271081064936452176557273079875942528653868405980257060587248908867834298311141795987594948096175542146920036268339938352107552913619692842800370426636223760823669327556143153685121254550424982013530616081472476159847869918183289780446433868452847773471971940881436818648924832675921919757081454455285101482725888735519222103344334481836832054302432147339937987486391167510857842568711625649803863806450430060023545561024527687200948293256697593685551057492067972542473940181204662292249920222381249235291536594966673497208824660244006397009442068869114114694037114641544275500748480881732644117483019760857213023845324782423603311819594345848969013094659568541454193344354263448496523144002035224658031827922704807409016225003043630935436632503945878736057455275822741030955235115658432578334134818154648324970184143651767925184931267606596831167149194168543423048548917208956265872194083953439011782507284086586483867640040633285663426879165055601082298227792539753556056067231185266067218898913003726819535064003315788764019618499776348956649988493436253245610588851242647179861833746674958550536856287945442379191786028110150517724728909050016847518178582346452928819234464638430629448888443910179712398929674403148305389188059193407867838732964564850618069584205102643200215920115117529037972610149121804664592950612512594789489075572370063973248501551343913117191314428238292832970941049436468545296255191202955528630795188959862197999095917103962502274786467727442363609082268120680045258844190661213025130775047297264347107450501653018875644323082723704837769524243908946346222538072888353005212142381030502701298358350281501656162664767418482923145729834167810150573579665157638907291588034288064482677188552032330812374701091606850282835938059859872826813373433976035371350713260592473381483978262350698987680557219285890495195892389467010665091046405022452137490740172836833938316705126383220111233020429050677005666352303250728286992690023265051106848079012783727124829339516200260170633157733961848649555522573803561541265480524723295656438745484632151502463072524746787821693625827582979785156430243677013428083556379704504550392230933865377809463977850289200853820187482197541758446435917902844282178334618438551325948444518079722933836112329335227101835859375203775407156073703617073657460547473839141566624768924667162947570449086726353908064344056262540642435317547513866392526836001214694804271096667983390868430271413772565527274951884042710097200108032850748124774827006915291853724905701434550380304936404330125313001461907144933069904571330754357413737286216547403583307164996484696596261164576497219927965341681345673912538691901966061459491483703925312983357265490599486930152256333555995981948685910314455782390124773175792106373794069959121864262870397664433538884084980000710039028257399304964595972133347461496959162621247714954692759281876383844184673383943514502559383241074371749856423000620352810249472457328805252999817482336048648958800284331747867020942172254852881831670795823178296882922866091469417053992961963469552757035305452774249653581342839129422019839690560969362289267143157338207717592733545833434154889228818450322409792468314134106584546310907049137707293626676184312040800660118902399157976536554230375147322306587457879062304617097843395163432885208922899243288411858072610558390013463426898756443241784718868227335975780624180316288119791963850104315069031553472294322346477540660819672814116194242994919917241791107673538186266392470449037737442905878941470638355716132809713823719033758380069442086506854882576328974116802473455269818881640105715111795802036506242757450033559668450546477933512727592857585458291655767678118970280859013120683962639955326285633849497457609008698794904822965352796905217582792555570502413473343381821838736399179238918467874958789325250150920990894947980852332634391443215649044903026031078878268980293290208293597764732184826074499512551818939790258714992731500423170729376013580047716650732086657861805407400342468670483717605895004610038639594632592519465411745396768879614443032772709869664047272669863609915169793445583723357985349845674917703839190090341883618255484625048619944003196565348361566071647854943676639030336683606237930030299272999111586805711319843260693217507661542144657938243515074939150373725413482005394055260958008932553154199419503834274675109759259657950696106632840395530171425401133661123266410853760985064049029376065296216466488962108764282793995587792625853289104395924038905320151432951162373712649867938948580348691795547616715870594462034120057229138825027544456817267829729851633470849179056129526913201811431961380896414129274476070558050655418765768088376181722515795930354691127290821521091770213453591313365675678667734369131252706006820398682255694164397007315470966047405720037780465570325617570837310399643938988628986449274880528780840028099012994397550200031839607798620110023495788048116986837046507577752682033334669255289793854942147974319975001153743932499841126683105583039540794390391860962953361033797167881019792855000455661277653001297939342966249453441213910110387571089753037106884443775770577562109178066648900173295425967969287248519059185181963743909175563361239631728794192073209919402390737445902585649012038727559938574818886899498153906027903092190230511313085824377689098392448330171596871247405837205314846538642073101831725698561864292641026798999937854000252551131951034138612148541249129332561661373415871621799271780011414973237664564278641842853976137461521250155711419915128244418636856156892040949205253702931943574807075078094198274714484600536957849864671532893422341675375677215540743625891984155492872543849404523188818443459559240817217658429831830993336077610846109942653846668319611258630640296223377130574452488001946269222627537406188648425989314902123555864285863333509775412571415997441110790347123840800442716951343022102365852726004318103494143284487651695586496270528677485810889976831652013048018136748385614749941159765410863691792221448798226054316032112538644401403872190399300984638549298622791852425452405248735830657339585362946817483923165014054478195950480689405182746438186377759661351594175325814505829237545333071824884511948918376292525434834492258592577308955241111979504419171284153742245138977597111745102965108628060237697008863765729796806693524622544446392532976822533792343837995198055254050647921473502728458810780883534002206136327622052414616228240191300638546545685521868235137971278262126187174425096966137949188113207335353543163490579545642879860926002576719260088793215505133030920121181937565296771562752584271325109476108336342753331205117986343907090815922309812268592665395322905788072894919201595684490887866519373259084407941348574268383099467282941819434358388787732847649381442849391205436245392486404921782999982678549642282522491301119769055955746604672416796385055684994949442343232410729774288101167997675337561458785407792293215066617300308161340826944385452826425538161500642494337419354337987572014569778988249649207868044842770941200261599472893434643465086457296191773238786975421139369637597911244124711685672500178401651094917093348599116042084522258298588980954519365440375141770698409586494535763199507882810662072086089518598654581782481246424017252192418564797430170756174339754394911862277154167984024372873371179247079768455559278861974371001477675925646146027472226416182118687698053061854686714682877978585054991448842801379604405615875234339185237309641818626785680154657381388634417236092241458920446617404699217619066335578732012736015268756132621868134658933910717528543204866095236317600776648950761648262178464284487839843179988945699532847413701308750429098159561293813328184237320913435559786197029568915779875978346513695950075336326621108068562650235730278573093225364698914164222756852141440935617726434485292721518330790852840703637952715254647212326748055694431847243083448891672692471141009533786284572968498263737551710230438846676456348646316529663150166743992448218995282448612841460137512722747179362241625978631682782962585659470002003568691177261630345895262236499007696402537947736045150106945123488917680423278175800962499298008887418522346458345709327522610022565985367413759786043655417881068619876405113149460555383221138299018276510016211486457275288608344384000045205776307416997035661101570046281083721255242864766340631446938683549886129068027663413824228959707129682356463435442846348557618874518572703753915487177958793609117158895558394649366407831148201446925772861374562753751600555572171916982248857688513560914366517266804441214194060593872346855065630914719860354280877243235418027450196231024451102271158106537411697484918178672516414437320370049493499043809030357190664361450872834849432377790785417981929061937980386394317438790985690843997769822353829754917753572335301436867486218855885452992741625954050320973132228177735618238808467653951824576664384332372682928792356502552378503576265244362530059441692462088030326260599183235775376747583519397246296755405833498707202615804209960580686875435284492191733493085277317600365225750134890512278299931273909882965474577933715194924635562653775608019235168697846708883630875557910065589816008273448656509402730577105962955591295196246741777677486394489412530213144229710144481774700968713068377431598135566597059215301376473329181134329212608528313469385768257292034643403493514531217720518808178297031521477070420096471773214996894104757721815275925307978879223673243987926131285541171083015288598518236156161130163893913933138361937787541267765182298295473027630829308043085844900811274716094897544439622343377694963143399388818099742027147618972637548635727725610745489558731273534234744999716875955992666109778336028313099798073659835976543488141354670513776614363765619941255595341141747041751881440150414861441684769047089711422945391593476071683716159306543160594905746766782157349212363144821510188419229992675577202811897250575593543190480277612156903999304204950205168212132507977709304923516736837051862302256240439625267033028967342965979810340126725008204916583706149551692453378043289794113765796828957938141230048261568917816269025916886893707856929591438357593363580315467774539908221947660835317011583974590360352806208118936000001138857182589449861577602481019166672299925904194175516519848776838055854426204090027105792607617348630505645052059111176456235011945423314212854236942024004651555561928712610141478658764155107548088086830857532866917803875950537559059298321316052238006724184457398570183913328696377592869659001191764205163787109262569993485186111479212849353049052653094690447027723639518975346225437560687655234688216566673891757881734308463807607296108284062543212983723928244113853966419062904163681772368319878020319725334094525348646035270228814691605402251334930435736550915585430911389798573234928380569337102845753907949441398149733497753632925492516207212405148774223952002762399015357682764545616783089282645885257584566539273984020434254587041394221040024880660509873286399802819831833088966878409607709372008234660497164941836476685555128900722545316174878882271762501042628998067901046422384337713947891854737510636539518498589798770547956085529168279253810058919241315860215568863795123040736531087915764540656929000732613315441681855142557709538250242836449255454663620786347180804641667932895851931843527170227164841744253035556821692894915121097406975701136543927840880499472729219318858783937862146251354806301336036577900822326554095816606525469489440413213497524492249598955764292662608406637880655580068033854779660667333112713956512248475511483066453051570455055817036358333496235037637043776264938537930963300343603103430156025069462512175847756071697043050907929264365367004725128808630236156641571772653340456104524782203165878391239028279236105421009333550928438923780542261448373398070311319680950316136018867810145409749306992752982219496510779479389497524010516931102898504877160850804417347702277005656194594922894179303742840908275986886568538839676596165011350542108996087312536960931956601047056954519602595659288961118062029809638135953820175258894250759689112219301388516562054294616102662424314243889657331743159713274680825755178823573503854571432091401458295706100460374353815448590995433520609042741294497875685818297848187213057969640597170415584364511810053977027553413391144805762517776946696035395692728969029726076182369440981268204801711285176335758520545081507928881143606343084677247363607650433425906557573469535513401917889167409879174229594251860176066412595700078411148207568781029753277306539930700776433821647054247446615929865405483673246530542821836223713104839025249742519764088723234847008889544791548840818792579073338857090426539998712757547512693000555131767302493807310708586568553893537098539408117430563209242791905960741559875758728397004089965906342730838059294779674031828610584814085306910421419100508170170601493292583106982754473211996005073031810992035640189186918879129896096878530699707406252313698438637116574652113294546892997082084345590885990524984747855350095735978643466992108954692385596176545168889774331926624416486317847643244148814144119840532450461943645724467467240214811383126403612840638433714109198006033060272225493735454715428009901884553212507190430872775840128437416230972844091401042313308676284203911725137417322165192529023793112111064617184267617282096564126681440337852504337565135771693078843895011314807757442046883795582329576542276208766264506403977422995857126489872586732927962724175914018741013125818480320250790064721278884887804209633632299208202929062699319512873259097708441430675644502169131038452009995114829663693600567867542156879026004910123424416915956896472096934190060003845792357515185641987209307118724621721346063113174790182681436235094837215352229944840308984211011739399697807894652475864617779187093781743036135332679855838920729879412216356437712591096898563088704526417137073706460530683157932963181530487928283989287169852360366180739980711406439158012117302301228949520072249444317799756856797751083599084011464033377662707300070515209960651289493785482273691590956227611360795636455361292006774061770837430645333184269567953837764194644145852158537379773694398436988339742048148215994494514832879498212594613148479149178290693403290688065295197411391639404307388913821271613515195061594001726454815428111275219095123707302083434318164113515831298880137107642279657109391405954669694434244627225061019028035606656573809710413862938866582368556470625322452064263838363165737256624775470261484468945671447686711120567455261052176017630396045637086218293034906601933959497470612325073543172514189444187899117867598630767452456505484290680658334583062797144074524273053350789678914275361371662777257113183734825470690179903350801216968758725723299515927177827040720671189945790230151152602251632548414808940192092755371343187921042007871275429334083032015853507074227301167129840584987872647700346212253200075352025273227026101351477657083791505521185686929995931948982333346985191065233022008548252282446965805634979488746803518339884047366429550332753160860923749688567458348440434121396262034291333306715070307078218810456081413311279531738858355781374713648750694127796037521807029258359206682599114989199372036712386964364171089065547383905221582499990472040745878640835266915987408921332877418741523860423312077415615869043556151735268044573774201480669435825338066624243218182008143401031585265426825663244927908905374425663794483380694809463035750555138100987824743202795529982602232048813286781191341921103893973573856059120540417533303054540441575578483850773333115258868781554520280950514280208610167805568523911999853144232844867266447364307232968851231375343352568100103953251465945134685402029963655510544173949454321419944402585379425745855693086788379489085068074165158869500474801513405431616148141109785339494263696157673844908621246996869280081031316479810236885567653814356019099456217789621202354589761154402243295272398369019466690903407930653380203716136625476995662078528477849272680485501779541102528639128154576468016593441007180511080936560070299384716000293148596205797177994744917317541186402489489938106545184458819696976347361913150734785498997327472680658541948282128655224217173037203159689971491692806989472373685128940274730538978323499515561744132659864658456684512191638868165637701668471508155546561209493545310934925421814782008945405869699903251266117425561826119030237685801415581896275469796146591480279040166621882514225110530249187988646099382906691264736303592934823613748625208813579826556281744136671804759089286401499656490048728526374678418676220786810698265392820883827788066293505855742700280386314936377540969882272011177417407058340714898510594948683107576789627212881814549723129863245024330294938003730619713262898047449483889794257172536672654396480284052664711677230862163798197066099985287922484955624204298961972590975240709007632954905361207341454253545740483465633043599352098073238300069233778843293329928637049819683705246289818278766871130470314707375308301172471282519215966705719229977011499153268866026628051466120041890254531641961715653004440130088908184513952616369026190794402592645722133216716600437923120997240590933411650557294565690020184565143367402865722496274512543470731189313823615582699254092297941503663666674985515245478002993936409348347311519656538158543370064386665463659041747298870970305164578952771658854914853209750793150742011919511872388088208434675307051255785298376070439574162532051604984938792061052373949666097724188367394887030012341022311382761507205550156716547150782517085384741420096832784204294897638491282483163539796141343573832965491719988037590198590205472971908190715172551616222405590479051661188598164419358005153513009857546780511643674595030199457746795536564453014134084157028115136758998393630128259393546884360094610345824367637964261156713424243737005094123982819205727169138168496676563859445534630164355246584205464525377876860938351263278168607284316885507007566662280545787729112046837886850088279600402339792884097472895614890672930809719488720902424719205954596205208117056207481223376847159467657861759768842381952486448843104247826235553967532579719589907902408720097516490969994421486788852573483018491957554436436795336499069140428164400209779347563860596302653327070571273715812993239470888068622338811572786323671377774497608316455512542800886474483744302878429764251617102393881457623001245206606431323126878456978164994246943816832787800480019796216840354792266299344656527028875151707971976104937254138111370363703133497846426790564382158785421772948573688217107487995625306413256641096528347181677235413586632100919724978782242486442838963917641229387084751415939235413691891910777686590138317329806727247414694658700802568624501751639792638555334120454766988634544253040457272603786922413443035315030602095058226619187151338915727555963701794320533925618833057444719017453418448653203855083361474227200018454645677586828482542982078999421952828080511439684382461653975945042572493886095441895609165426996344601395852977517684047711332264686112532408527970577061165033986186648595896808809249121902125553657000762674529039663285297818297506791969334771168152949182821855123477748636414024709277142657950369290129808142672032914147092704448283429594878764100579083022989519139835987935360603899951545443100307616076691872097796534665291499966140696067207733122888618022151129306498503590441107189791486988335723446449963494656877893759685535949394094490253702518743390424145055497040100110553341458076486754403999281184845242835686192172780479459469879175687449077467765426511785164193156038706430472170225362548691151484071549129332401591240468947790685431761571740090142037545021605516041908160837068722057341166419253986090015539804631091069332400301800328408048596544639559207064515854147534976532506960012036876805203897812406696679979466562623998392599713452825932799467803218567824191748099778040517655836292941389811150266458552835998547858161861952237752282959376140261426422464814360860614542210977243903511976082664375708468546503266890973595977239628078773040940799783469742472595426836743253286027839402266333689865301693169745419137709420781592320485487040831013437698559109300361712842585209785377952364275280243882162927857321176327857228884799310143965442997091546988381943195641760253630970098368173243323488825258848997191330058556927414505887962701927475668245998726246874126766420838185753149602966041872496166874428501720728313372525313500862238502010169504019600078191064679199999046685176716251124173635822497928718103445588540883176597422525863810703975510071268070453536969518094067074784903831681858404389540650847184063344775228764358837876884042264199996157927807395324961898121433658154094378090471575317054858720727168134009398142914860501561960499472339881703496349169720051135001566067239718617785268623285754994730049014995187557271799324047687038753702434765914571680074470864936789154362341635416090763113291975929896749438022384136224035162128920686757216498086435184530853181995875987251504412558827435188229294833087111657305423169208007820766417677701802763843180052562194236886711672779080881100470256570994675063556855468370238877781267404061512155858315721952876092119874857050980080748857499069557666614414975338401934697085024783374329556500458894852658025359315357952757351348561642132723205261563428005484518497406316300435904164443216728844632295844834690755347895916239370750923664469388010199706023984745895304876015723600048906674286437135778108369068949447767881183257662457807766726928412247414212320820789526607593811005167593031563972452199945123133585615476262180599786556449558727688152180371133978900313396431991180273916271200385458764573131359686636359411150938106052726013285397937458408367879194867060690953729376625477804524031406831414957607480288270432151991043886486954260218753436754215275817624424890249397248346265543603914079505518932033278767931531040651021533531631725258549378253888914606312724418426995420452343659838071821537968532606637210577101969579285682840598970072154168613885521424672171601225249321220947371766195567030487643647782105878802004631462681110107785606370584871942622650549592419891807333316503203978711251234546343860366504529921519522305260212835216256299555078211396470289913528608632850317915392255310177094996311917170113343431793334948362432025916680448402721340540986641548624342770491780961607815040428844935518834756607883419975199026122248369782685338086928008566393931979759988595346448150705515285818946036941564919838426555577262805868074038628296540798769626192562880747221666703410590811152508220568019131126262307640457175873839931537620919918730937865761723196203189800307868910255586350641390462853553056072030336795237627906277623520142637563813048649775818408600652252735483263198954538880067385637565230702730428261629862329720912862404607393851588477638601481717949279085544418141531900475558725133284100274803028812536120220897928919860108668296365843617230831963232755355902261341547426124714884604231393780813299822072023175797363009496160401314847607048360816986787583159446129323211775421470242434146796171879013878939218985179105062423204250912148769378802997674594788600152561591867052602602946636971930153875768659624053312260772499671471455006998978854714276928237221307966102254999584115045473663324437662971995477511087208839789134494355834663617423323430631401730546162365049087764158357089121756624161306564088686718093645931333723161258700085674732495025476055625661797324911780667829479991759498010517136312100964422606732999505548479364871014586819542125106164139531488497877016200723433222004575737685116518079135919802123536504597435712463624273079280869235144277542463199634508980307406612830330693094421133849322384456747227082134208582480375233281280921585660489618542863484659557933124019719164331535169272500365968968641859540765156203104723340504722452187085889188116421957053112025147650373883101061031528787375944936869879854455270494055987019931922735736920851871801087583330241825435104834489754363607072309382961703455651838365750507803325930012532898680649763971249737322239501895074363739814808386611543199090409715687634299181442008419486204571695184371376034562060974654729287208907519131379957473519337543611776224109179897444500657765990977775968838549284927374107419623092634114440788187541294629854758657545017774149140569475185269800106121486616149352889381540702142632036983142985716683950927236480142194820452062923400914212045736870985922103076760801210894394609792918800241074658526095286709272341498733602823875533365738694062513650780435881811225491953282965500218626182450854879870348150318919618047898066916678556276085853272285443004814109183285108227392071248687738008406260587342732932076240509121598470876587570511654653741793540381901968596509885205662484162653291958044195221589211581794530334713347373296540596593829299557874459474483913384085450718042567874952909989921789091662692534634872314608560108045397459123725536198247989504180442081560621518956050844925058714479472081931955475927801303342404051941383803577857333732565511153443878734559642925991297589067425736459717440940964868305926055285383192181211426958394073141906310079889575558729186805096637092119782328057621628991627921560129058483423118890378558614550824399398274056323152586200640039256922447373519545808583310357347217537365252661580402005126658623282801400691834755041057191600165741924702555416594280088076455262543271928442278680952133763205081235734506268424626284229587810569216198360340735016509685260193321711780124305840506826508911819079370326399726801846759206526225652763317870070803482589113013160513364523231136001910700537946189817722793007718570902767826686604960121092546484919327555500660743909952295518355245335408414389412773638409249752369491024594748969633402565325415640588425343779063488460444951204123594471797350683678478602302955116773553824603873537906925911649416971820987242193067428645152959818855280202489239357141535907267603725667058376380975923735732366673600727027456913143102035365168604049555317820155305935917076103313323417521582841919532667024588500588854993787811040154789476369241016103442198564297105817259259974819975834992696604513393476345266548335523666866625058274762400271643746263020675178304409350947755105973761794404129687403950019926403104527371553666704972188912234761763035060859194561618487264559479903025282827226394598130048488107477106629395907654282124577228405414206713808210849536061842268224963849767657113949465170627871077161926972326180596693511819556763142752891363991275163177222060414736326596035553180428060261454560253521847623890538945438424529767348415623903259699860033934081576795258396778096012172086133204104103256607710662569096153742725053379575326603765095633641858668327230292883647020469884813427776980570123585883120591216693311504346464639374532519764981078466787640667231406374622830478054469144532781950713227356509316766219820325517817302154077713947729849612719390418865929125545084730320825487216394579084237330854414822837304108925385787313022670014202011733011460545710929424602126713593005486277794716384189045838460377293333081309334571519122240407466084537830417792081511161990142667644108047255985041812676568638737054960616334397388355327455078377099601860492622740789792818642827348496136182305452302788105123287209103021172257505677591784679313688229919844204150479562408954936355168918995361705547806798070877126106416572437700108565995599882865317688047687053442797010223210787867530496048919972345824634238956465602657690355022417643364940484932465512434249888115616802794944144438360433528550311325004806383792295368466555784468384885635583958675218241766446524878853442263646064075871480226401463018031516153788558264156510155525649628391901763161935452820664578792240270912031237565279771258283726874964896830231247324961186120479156377581153312374806004283026014347534000133840394481178812682803146079559326056729995201883793893641923299154205691091701366291232804387267740223900064105738830775966989680260737555133334341826500031536304309924682796741077568654172057552797148980642182909760129407824238316056961145763401266723563579326668878406184300775126221395770184747425863206000735847409839357304255325906250086243014655664888867702033073606245845445432814961180650208773408648064173328846775553660488102166343366335659443501862281007739048011861483571357562833789552436520594574776786160255148860771397668373697241538990725345030584507579546053526328274421431934688501068829380508555361478171558663607279239631476012914087082703418992123774101775838202297175966582685086111823270831468150881644502240649311192687943060093524215698436931399338042097786365509683983868462622977534517874551119847444343023938518079723194612185264367477685929263731180360822213591660538863940522850570121010184577177004785217146411095853456340182015724909288980784500656259202614875383834522153110360676598244404755830321570776221030167709246303143551359106571558053077698679723609766276669525132117513356249427907809779884383468454070433133136595458304720983276021428991565759150153166648146594489216240912677445326641400596282851907957403027462967969372595599768218272042249039778536915865343702240936802241381399308484021674456277676978506256851136451800262629051440483469976548208969598468795175802308455872603856722985057192116919683084691027152448299091403652002446341860276918568475018116376685509098383382378071874405932610785828502334215700976506409435472083343458297393132965036502091872378195322213094573763808571647594454353968423363750745795773207893367722611357370954466501842153574981830973856937523924830646999282567998857755898968518949109328838712869830636538867936234485862956947105089963675100295003552701301242005248010841459381362366012997610316122449700271210384575615245875556310528353363229057806593381523688677377719120721235895566901196071696275158757334927968041051825768858875532726857975306799655239140335798001581596802065821996191855567099726714611483355049670641411068359782707837624844945718929961163240856246189710208040277890943179742706630951575119865761864469607343715898126242119019188717517358816930467375959638269699805586929897812195021576200665066021500846837667295167874952296225437511845186793862906038273806201353100881040591973175742511751310164712781831074814907887278297242371076776278864932087502727642150133521680238104230598203805356494388870744627905777576332865867213834393856954138495716963536504848967620595137780219229785229515762578042710621205873936450783102948008747505154304115524869358026239207499355471321786497846581303568409291918432603825570052891202130583511151324129181636458684799424935903209182394682488666524572664551671149668507750335776454143443067831679554235545146452650418408304073506932097251897322469344320873279895737791306983661653651316201009650681037738290552104887459363995106631073795377851968590343872088133835073466780719386308851206827387823202908628481732875045802202157050012461314065638504179663659236305166479720984968796237842411219784372224570567586768399023129754914798142650716643598690949815105963059009413117435411668108496918892860581551487964580866878353553244234018639514053006205330276045956448661728114595863023498460486722441547811433139717033572941502862316302291445057760282891837254869416822282008375731451449471408277823057243146068296130261238945218642360681204206583668200929765720327208365758681567578442804116662171157628164766075853481312892247148621392770973163920715083285775045250780446493169016630554281806803626220051210385536917333879987095970857371303844254609772632254998826405575917725171066666754255552679004449209464426986208922009326510957582470087780164875876344047837215207290015472775082932506589238545690835707868377315868638713529229829888147448152616212591176919624459718318417933051734426975255629253233886568558041727283230271725650361640828738822320532794028958357444729553186274695701431286916512860325152378955100682518732018773857550624000074720966549877651576881303530485750973333344674481936192408610644392670978568413917873037225720148472956940497744030229132290485152431243121911381169099838357297967800299942305929599543348863023356406505308949022531747059053536427518941069676648398324716984806215252273945259710341033934393262607045511329378277616556871455806117625667963593198755278398119586079766468738924281463995288820320649079805739482247029888153017286168210138556610539698408519317903309337802820397100212423143764050250204723217267882520515943468406050909166018551902521838769889040555551118006054451054455179153413036132575143600615151317211804935898607233341485623379858535450779101304014077415110675646095858856914905978662489019695274976896949129810582255200865699612771081432072707050113631931658706348880207375186056026512388678020307687157793773313803095248563136575669360225437642534711505289867400237768624444291387962864372947759580193897196020565967321238465655965703408929648673871487154533757812739608445268191234694807462350876955694838459570917147829045201874350338912203717119383704633423614608774552282681228706333341675076668711974433163982952818956366132788722510174525222333608425516095071488684112516459005140730775976371998788251510618596261912401767314767218753834772567128457906345524589042164000340634716174893290083868061306010519706685059283399697112933952183752512517265679990199347352429717775317880960334505305799768984077913353400386710417277543462309814702761963476681320834521614509121413725126688020787168925062619211015910115675026063376025951624092843221391274834330853535969304658246724423810585061676579455881994516804253740089035861687823214162300453406623061155534049300600111104525584972717221863626873367968421635445490198782898405664868786249422724162545081776014589837540372035987223078209247056479666603547845713808445977689786568061932422358746821158428216619376649132292826446821385552020536757858873689056602133781149817031413569354570027366528501309930285678669269758648203884688142370320999116547580062971228233753622349404435105708572055569784126835392783610691453345523853454697778232759361522711995001869208042282106028625034123973649218932963003738400230016178573550378132001757223214605130306916954908956131701343624315676297629091724661473098675588499946931205352150723204777073766456438437535050116062697664945757556639547646893909454151718763700711174503406785809151937167635753341584584825567536134704758681148307230504886850483476948234792759694262045233075558750476695207465508451946498205245699645986228739260292193459697099240580926413464879630089006200827321581945119539080868625763457332310330796195615569332094350709232291665260514330539310627610729332374305406602201851359601627060499078528798245044133943073821998935585649362798531211398503669161520403248718148582572166713872728105728426014695909619408702814117931513180651647087254644424110578238565396099386597407057222176002839810987561413058648201170170007187865009727063017781063162455664252612278353271259410690440296255905180343062329265126689021110496581310176251722846192816477424363527225027862711064700535947851335377455544153108075505821388417874144694101802679891521771576043110085162958604309843899864846703803393797094948068777114317988129161357248812678870102401071111126339343513945418595852227958863176861341331906272480195584669796801483882829535541285373122168799554252035132387799931560245137968807353406134088288514820777837855202199658098304916937311262922714203982641137331794026559758237004217245195900081770991207800956913706141169487834055990579327138593458982863510084986347077833694861404657343068391970572015066983710579262671442266904679160563977642617482853706791081149506851480604348442723406716677400659691615551730338838929301319388861856131032801917884653487320011945079145005548463785096459281349929892458487173054727628664251790915366188595558654233215537741955031354237935059220629502954025774475105851465013646556150340084264454715150283408258845162830845151679894304937111876360419265180570769570192025379649520476237844023606190778174067122121990677156087379198852111574007826212210241199975996002892497562535132605780759660401157882541499009846439345428521834356372566000747969235285541727245544290460919415119762012721310780278226814826127282406149333066751891489498145949816891318953559421003953370994770294917361533770674871137959033281877483470077044908292491301051828398489691469227531983464901248932546468242058945178377077734694886732671917695024705801793116747880591846664967178403435721990655134754474603172733167247490469318164317654605008343820963771522514471957500435086539537224596640171503374392677712436024785668488907624215919815387865985319064899439621505107508603282206153792598986843557529682735983970328941981713503834333924303445437985295171083697519123114792890616529427707451242119621311440258522485254888468080554481829709039676389173540386668836297411596068435487732640418757936575923185601602585478627906783099904253318821745757662818827829369842245286473906397294294553880428328560008551663939406470335246438640137655426160666316091914287030290234759932826362281830341442136356377505474322315590790983355983327231624267325345420154022158768579489791910358468591812116696794110715857738583630897794101263254989312716504365106627274392791571068506834082457868807166859909465560664305379242023427778289727495120562720563966720497238727911828042460401257145020675190373017316924279521356981113646141696895113364709755005942497658085854591730632068464833827701256708794852982883311595275533249184432139652884379756720876979183959365661257605213824768238612931953326864050273374176360376872759337651226860594442012355251900298863251428014684551934637240263275474408414346749394255304825781621247046651499273444180938459360593268574033223125297682706131365667608995524686937767755984084007606959402688038494523190509748042183554501085237909616592592152310292871364518758777756862239223600825508857601368912348123357952340995659874775479196115057902495136491051921407632646502057517852074161867522246692568807655588950604175301029594098678127476624613945806398405530599048300258535680245083799241888584140355673462988739378164467229705895340397098315907274342340885658498524417980896385415827230991833949592183858224303185152413424706773235923227771628240998989744459380541357443579473830922474190807665355207200253577614993824255386411041103382338832445957264317576675474356361153430582176260022563336962917669319562659321246400269236567663445604827307513912738340200018820014057292115123640326883263276318050555056440661738313510203489562377517601947809394864168861768850619761542444176253430484412735492295731575169993879799743224386967343848171773594979906365023343313227532279907826937843888070965623209963500319312989052501432512021794676645743742428428156372324293633647761514253387832098431208582334476183159961910568146546026582438573571250763696070083026554838980857974052488872514262024262642766775014982445400049507462293192452816304339932287785262106448126632730668664313177206390016711838534516036674365179828182590271378387593521470841184768833995123699168214618450534935095276424561884081023956205743587262858272222815493236401325945308249082023196435588890722718996172819711764170751770390993766378969343701646500049791731674909495812496532522842451896526287845848010904064110248541131476550884802440960920556720369761792491459693853464962358197207751198967184692773783793238561178051615942345429884924401814816325852835845612998705996658373734377596273534319221810195296349929028195229287122225919144059242236156668158912159999000578124683808163121799170237181856245153694140379961754648242685239581658296578417583062156024170654582900439392472315097669956635869514875945233295450547205781889707690559073112926345539260565635901852875006966592625701170553512816140761507801159510947886818354770593944782771877311799414665471889056173234939011551966019797268690543383181421649151108243966297463871477842199961510522613192130364410230975005407449762858895995421880835708974480853624824056856317546869056274131843711114613576103851090914484100307054764115818323281927129812523884795855557793711893864816283849952436828298484741955565139731098591901119029041433931707371813811347988188487807686712318581095236055924969954107248707632246191488545846651095969220873891253411950637897602247785856344348544995846534325230945463280598949951830029178952441747418672267506398499317462855672337798033672602960466300140134146111132528560612306523333621894655558992200046601357506541903553561668434770648654356832121121652594244978027778868794216945169837570211873073283235742514843541575426161037846472198444235552030327640149014130951284957423427984111121770244305781134666676298762276125460805084355672813100452790774977393871104642879727885744408768660520378565450782552903919090556198373348137290349503531125921534536818794986436263496160660638999532642281372268691477776128425511987436236734977019237172464018776974037736176504633783317224256735156547079749005426975552478382938423780234425038856926440599020283157187751351379401773916564321224521367593405219532387836742415995707580823108881853617014691744568586863396023024459149793938865409098837358639548445310080115549820412253115078187339084801213973817306531630300171201963719157350981201815679517566746975458834040875225501546426667542846401529056942898537503814779840615564692965368449507736492865146544681867090488811307315861545231549036573227923631059502842588445842912921692350051030888605424875204403606573980416461946423227369698131174768416055934740599677695376148638746165457428801846824296026821847792971053330597460646926900777366216300408391545517910229133169739537177926709819885906397317497607649771033797812305250942710458083706760596012740397673704258289370201219700773376075262426351526095134978390266966080380238190808613697396861972532982353218342334783084247956698831439065232999018482937903321206613170678998961784489475329200753815380229282285520425383244123139573037624214562073444095172203443369152912850123505790143527257227510106530615313165284828853118171964493802652003479544789702923363686281407321816045363562218448603067114197825895753021596116349525441466794702915982916277524360239208889086611993485097823536519842306668183241994136679905393010730164447315184211887864215648998545480043134529671056598945336787162479220910936637640017198783259082102643991800839573950601154312011819671610967815923799402626569063598671814117550115984673979942790486757024383400741181814129076459998863293830518711756383817930426324468991922778781094809766473962457697999300641577950771725167840665397652762070843784769653806074927144164997456698582998920913657266007246002173870633998999424071600550354841606895136873660909215725233253649023947611521801220056020766832692506690476965977379650797800482771505854472000306441144067389203734188362157401537662041628160488758283852860387647091094495062028580682602124146711082469462359407162052101354362611413786745024005195728355202092986129666716576972811934776565814573415453305601779834116657770634176865076095611591471665881355249273095605836031265218858126711342224151341791333263766976023748745066848093019451455538277326908235047470035598136973716130989851722144172262046895904976662657235673851989115591217844178955467613332734829953510240723299806577534805002592939949622318489740340442390152066302910420290771549953211353894611377223009908223452171995622077551114113121274283440897911833513215052536931271019283154144697281033447733641498031431477690302514643197205097606358030738513430208587848859458093870732101380286350668580381937389713119678733788457589572832265024435280356305588642449701227651181933770339129465981410331449116909547209762464093069386382524103748738450455658781108927825425917120373390973030087766919603616288736358274783650593755856603031920111041945469436995261586088943804870966066539470256726740722487326171351720815329647746905511092960319218910063460811057920231758420179776992664007142104958845334836464096024618616601400343024805712520266942182174329412018330457204477891881715752135548872541914248690296088376525867985179440217031489434379695712011220269312686544499870410819576805621339195016456885987110275776372688983916274483348974469335214990138826529891274147084495049506029307844329084147028505666205173322392626030492444002861556391511928432327278447205282353574133637292606597081943450738449058643675863579480850064584691305463512278956996500125104460901485684941238990259662185585584221790441579417060132619764675042263517640570428086385221089247460382811460984439621311329448846182311884456864689928359431929657854079221513248747246091784051186269767430036209029101740519582709220199629996428668704224355544755320981436758943840745615318077002246585136223783012053064953792851994014974824118237704429087645625202880816334053352603510910336217276293103772490382491735336250712230919365040036436598659998952484501861808273076120259748547473006947849307822583370875148319676010099911972655656788523739023088720403142935061695865681462551408483701959504081815673720243610985091868712843913516787960240123662129706400059812706645474625894561439803155361328981267507089021072107448971083215050649342380457011501708789346829582228017378262541138691146747618426162698086269085303201026456918619467367513890962286778957423893330595753293497196088065787710940105414123815420334106882744773340288228703967294124820915581347862846949925728811142934904041318529814885722767520533178841071937784359155795221811596594751309248589647881762958393052437110416804681816140897234454104670669628734669853532045823392153838320813359898334404085106695603993045759736458409738219550247505729724362564579282387127622590707677444835371808187653999099951373754635386693978385000700110814027742211697496605938345156886095791481388379225541387489501013278214239582156143240272862768044468191401966881885453010692432350711220064470199128710652005985490439641141413167581220294975709087421162763487467782194014848249411748968006676921889195254033544443134388723864820282907825354407320699049187603392889155942732281272195998360966783468698119907924825975702293480887894731076591353059263618532177903246620116150671403126467103729679288184982539877431796241957635950801833520982544326609303086176660634560367263078747526488982816437624612994347228922323091195548320384547746854303364766679866388443972829179280828392218836429514450240916777447834090334610710162953463814589625508834370580570925415954264166481872905766931916243679386900885923109411629774970858186371237162505512010518216038040915820262425850768516031670585403750394880489020142159709771310763997830408086803157215620916949007459104540149080677487207480945544613085553525140915506190363914055015142494047130055121204358341946393084389254540050696638865362100719425562758065143665865464564487733054220013429574009245986965396364542859720567006003848556955551137967008102038315095076823300653171358455532709125677109213849383097034122572834182459842850596576925152409006371807145034256178982130018022120191427673018267280733272393430406601955241105120685762319671877966518011334944997974389400639758965508135357837521495648039741753962902816956168076226456993123470544759316508218925600089559337886472359438570681109924733002488365755685212488338338593343467426922438317506494171821507998263046050745486799096442956459780240351112656547778893901936547868302739764522315931380190337037182831271723534955080430263198029570525883366602581586730324483928726078091812672074725874761214484223768001069193984933578718089666767614940097919557253259384039520057085534565467359880488363921113673373357618012937507368783446340260926046054042334362052279345924735698296451716242129354319938350715929508728280327118501509876000927037821821343596592996883302186379662853208875516243811110642206490938674227295181905958537095923912781399379269251085363029536317259075323244310723442559020493325772541041213075517120244218590527897894377479909377561402562573343236936854975712563951903779188982083197122754672870431352793577527753975231006379909279828640919021908294341304713739909391591146963054023420239887015116452492109168972482325250904140248112228115628056621861077509976090755671507992247063988645747781589859818344564510515201026487202512555367279860157823698969101718003590936707132042393984490960764394985768317546802083351273045537022243384751350048499424117438365950828537910115311407682015318033818492808581190131822466156554034973083671718180537543091605033159499855031267117371066901737720304806910817629219740023231309591042826620945272533162496029012410936719975030770468328609787038524222882271652998234875058553834444859636597310811700121035549305136869267383607622342205184615808452696355364594903103228633983617292268160262608266418561407510283442499621921408432293652180590510868898566302948396019181298347809841577740874782000887689557794705541071788690485778317858922905038700998335782019637193096293078324208495894399533941197273581959708998965978469591132637449238822859241336919563512908603099482338073335798468193832798261949226847396385674830218257930245321579051279191684710419927895458729761256086203173804521480427602686618035283168656324569262036329850381221987202736954173294526553599632044463178388711010084034804962156515783178126089894574825538508720114543562123799113558463946007083869749645999391154384843012861670214522663107403106531323723708066705789572305328184733275614203502508124443648020336452389030628426397926244199214589432258960280214334445014183330060417056310191112490652175481366623263806837780480503667985098467497078296539555765667933984380224858341128956500705450525766733011810742961954801506917385369446950180887853900840345561381691805985486571868728303113829956806445361630587079565704323290601972272671509643528948999242337524571542777966296625156976293518457821459286477449472950836994106479937585217028640647990471035580220104733167283506751285491763801101226598227825970050759615689165731096985451709229550494502223059829117431637423273711332768335251521333463435073098659428865861353660201537427469911641410369205088177461827218170613020094399862341002606736639407718067403761787763007008155792783611700519898281424034469261033026496378920791424689501763516898535069309024691574844872594333863607740082978702630078262464695828127085977419470435505519310020902553669010054786237056367953186996600986255942903348035009774748554503195747828983452557592946908497849268576983192410449135127288455318879294198677712227924007933363520942399046466308982629725984211108730409274979267737419829275327510418395726086660112300579468790365349006423170622127217293522060458639528237288018059604347985717203777223789491616737719945704743869425178023515748714711694364268168421671720184371669772398755583759971520488670675265480001259276233604083120915360846352727641080269047488177161838102444889622067504383490837980012535287897013023352632695511968001355944918580340973439257506527678775653051103623264465342779774183267114042407631189137715760951700948502804061984790712749305772899370044297535695992492322718032690021967799312718405574245253189944565657362809162734320065219033399372114142010323496099161458535653531962735787762058881199026069128251422111307686224447653179688182582529981087032673648387449062664141642717866606961180942999283368560098640238147719173832103959064384524426955037492793418970018137797470871684571745519559218476673121506453610925052682271875339632095748681655645413097071180279401300731896620551124599387679275379146503797498834415965983049435293077182091302407069652952064701804455438414987772192371385076736823972720613778395749823227059384535350591574676088880713278360593014122058208672492905762102241771155532468705205603199970145864348706945041403015023742059285055874025108357619634091815243816147472796856000022358926514257446464543476685655217734128580534490429510383262409695778272908855074223848664457581892484533897619397202480894551896165770466323077994034023733267459554652975716550987785622133324880239167559988758986545387177837105093997857115735418623747379658758338365521272637413147180015502295565502128454229291420420554088250816603350061531259986051373350026451616184599693731672176983472241216588496684176460013649755419575526084404963186128593836230374411632623593269523803146905618182419887145646874973650108441041570208127606758392841015619866374290928331198976563257612954781527199246437651383895971858287029586466190694080929012100191432640451393838850742308564448660799728389846371905952685308691311146700270496340981752589861286462522100522365499530689922504723419388868997978837522397206579806306011669612645760510773597222215513183766379980954532409753724122489819716688817875693071395763281912736394612663349811146078346330849188317229119368282000572451977082477878948250256199156690446984993588297136530027211451130745732299034178854229666753315557935566661014154917142617699471497488007380674932106617652327962264858292924566794938448994766788942180197653258028362587964289211222528946493507769804821788020307981724564840534110074766699829226625379577270594925398907619764335353771828491794752200495079937438341825278100040097518466908073906193700912363693591561606397489211387013111110912095820058898459555922867391776280879226915295213245201505285231927294641809727577332415068046801187792447412491612217099291833447430642002539140153438731142012807436829663309027885087084509216606246435930373050908045596870601583395792703554410516411959685384253953974640690746884223811981015097151589230359268801425662988415606448808924845598633482088229265174249471506581015287112573911586996669611985851839338210562376646302134649022867165678385246672255022497553727406222829766721416674043837952408657902425416859836258902329087566003006667473806243259923383652927052014205223648685783623988237643384518125465274543270451662402012599504359324735285042144127376837610725480466230915790254685737222175641042090139531354256134413604877741803531783145094800760197720983060928023577553860162812395083565557618482837039163027185915273175939898065782126021670656237609284312194267356953219241619849251276393439669500391418927010116593061063140499316835249593083339925696846173230016418451097502360789274672070093759227564469681798477852175610213115253475817345733969793445078548837071137046204546014248958286342160174013118972753753847914259662532094188624962822668232713555268537515359232525945993218306645234511818660787450946014171975041766354403948639184605461582554890436183913280700198463892917055129832599307108748691103302557304872626208545625870017094576316096177066401921118412289217164351556752288809457841285756225546207242007917697892629628726522861858643085119033553473044059744087003808955831708291204272659328328029123543962967702272162695275499747062907494888428203450524374654689793282523207292527362262441857314536265041848544355771671265798110311821010412342000739286874053580212227405076432220200215526232591341478251984755238666280148510629279669969880259055874591837497786380558008861385049732740261663999199773690875720978308584165024627914125236986710963099721565506773693952232004345082220328755577898525981531139423298094768861010561896343358077280258896630431939097408580573708260881841686003132061664893516127541426222482309582727223368106843125696729579533461398751709087988149058302307866243812613249412930759160943103116467578724575137485343273168509158147717993740845616128149345289953483500029119793970938087445871640448007550373342304197229972014027301328117469530838755952273559504390000565583312452652227932700463869706254487103234257834539083588182109869595226029931953237191757937394536674885397472928341213659118614623361031174555969081883972082264176744573772670481938965075588659380482722611988394238698641206749590075992307851283877156261182210959109799754134078971837052515371270430170461071521756239034853820901649235485162472092202825528733662708111255524677717192954509738161584847645616212115921625844749191234883044117061267442074447596634410069557106719656810103843555503222915468922268387713016683853940083792014590713394410466011097929651981959853523728402660205974321963379328602418604012605549072345469083236929789428493181221737951590636468882117048397793238842137496064413941314799434153188058280111407125680293229277969970750056351976589853062322496490972295418001478293820787728232763587111513434278680579450495155970854360640482365589911329460013606963109463842429949632631608909831953815148398835507645717494040162784830360008197158907486545808132336720872512070592461182716295019098799016411276493451633356818443633589144138394823172475428588886547950613483344821063888300224592521828717425776049922646196515504126305020900819489083196793121516124604665717958491850572564931565202325035387277787727161992939790858398255467402957431592330324883553759874257016509591614810987131678197325925276421209169151654483700525334575479684545946860950317036115854952241013562127326709581757737757524627521040100180455203524600788750319821889386775782229335272815794953643484262344203134770190951401460526750910169104440968175091749595911072051376324445710806841317204762744178625935867455629868797105940934438623629512767744042633226428276099236716737463417229183175685736766172754474924585506937702385161802126420182222077446567067919287322854102240178590516728921095652806233712713693033776031761244946713976571565062516914682002549688776212380518610404497392420199538256557968653747723176564833396109427032989320007505753207339299840836223528742781334719967399016158352132673147345114036375094286354052618144647929434717879121087054156079967723683040638905037921938222902833969405263210776688096360322012283399002937066711830022850799681435237876048619075589283952392213507313763797365518599722003866983204112954790468068639492345801760032456687556103489897316802542719678737579663504977821459752473785759212830819792004795457732869190586326706383385094014770107382183513861771485314172691875902970263563363942120846697494002415179277227568862207171448448720029815405507668448714112742509326408665595723282750038693194958187036046680909799583942372256260924024704512290815538771872973967175902957102913250671411056520853617642766186372360842826816447634191889568329171451727843617309055615976710130927417079660291284803378076809810341832564326180512919993126761759823730217857228849731828186544132300568936928475192826942848972388613282193637263937783873172040513756240074037110584204273549178152714581143043258406202690026925429441359562011509793372510512776675619745503300506157660095792543219677947999889646112202434033517112774910588221702026275676403865894406113469963633466295567407389328770135217797237968840657988746887464418981407831976301138059903591898810681814469352116870720335841990952041998217861638653604890473834691865441271861905792264697433378428739443092197941677682710602613465331876447924829038156328841260988739695506720695058528021572933871040664772542275684972805398503279451649715663498983290760831719788867387884103946764385466850131031268080708711792166008386399117491519619993936558605037577078679446086885051949108630180978769654069724066789645399646859180288055635495643982920111118510948432671567309554491879137916273767350642541369933219174005201645389858434149336376744594367524010760622009062235689847760311906937070024766216612302810688611121691704843894991062825357652081635693839280157992432525891605773953202416506518663989646181010319207610700386312265097519322970169234250841911349892609781145359653174186195939535168151274632615726289242090673288272808572535965755198375385629528579588458853811463211712567680545408334867017704209391337759254591090975125369488553047630962389466062925716051055217165698341031428330540216659909079882854729642647188565087435785195543208639813062189551820488738469456227040000783327392594255995495768547101535139301813620764323963203609047542790808386417672546105106188671991547160294153872917942629440277061522096913816106068931995297718174460046577913034671602379723778927910403040737700702787348793407403328558104790856801532447900762550824903326262638497858719220608950464777739069339241350837760414770218936552577940510884946738608799771780518131895285741670248965131222931953176936014920807042432489567217150899040278705298824468960036547022585420255896618950699651742268754999393839807369905263034416783819139825932343238371105889556319158414898191177870706467682002289453920601509955890515496237476735121431434888249055814761782929113959607045228005566888439510419059063419041804155871841779191909341886778766683898837919086080183699466227858888476818233577897297042223464028545359965574801221381113603040264415576934557853821571106580255141559916094908268845860854009861448266284510901517414650805273654683551048746330255262149836580631063107345957386244362598588050880333723772816627656937220579226556890027858613653414731522070730487666852296044079213280746765631558892264552702804846880109000814528670703028127684433687549761139731772285760963225489573776423476147426647633032058157717316252102354033692470474314852234993145034054160155284911997983181316921977959048270277655237454300021360349776989230625516672865672938962008685433731744053926339736182446276626772543418816106927613346829920936347200538066007142120827703419807055113167534039864928589056037507565634632423227523238964902642502920583853358443918526874659284150816077457021975109181068656387958091697145770716818933564884477193056979761630071903509963349742112995497085516846704775376857949101509251947695889356424056611406094301867071010252422500156857612507956890437964312509082221084866517157713289070273722646441437176755296514235870147814739509427397576193950643709528593789408336788406460885568618426524856519759830425150921257916334464547611675507712147610297365504059844060771312313104673054156387224150934357827785934454076208463284635838981264442938741287201728726154147364304140071087423619774303181364425398001640357211404862818449863680214930227923529284925985290598829303720609680363276191198975795662457860117751468338357991591838079630856630619119002181064597901644806563151868081404222975762503084468374594389264325130912668938945993380769249014706447913209119883516957331329013548692804357398706926229734914806976916641576169858102974524053930146217047298431634100968453182247627892434048700211316637615364890492272821677464750935838469693914427402836407863233417918939906319899614058233941600048398771174000252466337587222360293253447346785262262730894375578363870826735210752041034744000554811354928121447257036458295244383099088795933820097259224158710638282484664661753506806182283673842407965300208863952900047412145996790294685630163240365663389675024100489824178160139670719094062458287436801420133443962601407924006387549023509095725887871524325332406256766881146790249824551402859442509058889005540149399742714834523896005941100240653612743315886704157529139409080239749228845278385975758770714297190381425845635454424595245708510481113599900369787714833852243943890973029143521352554940396901783282785439083588551214297194424055706412855971992477210236753917805336744932731141195055437285356938202315535716619454318803961281265398786915953267053380602963764591711874545739492105620441871122186349080174026089400153503052247180995936228448771381142254700808390751441940984267653574136602003743135646273751097386769256022410774984166200358601373962124315673914795129150318766191362835948593857037395440332238297857156671089000823684658628481123588764084239618937760947026340425571578482997262234511151128448423245296974236163700015291745930809127859219580339138949149266037855871008895185126391695942864898100630241673093208730176445672826959111994428655108014182183465661849611051455599651513013227559065415781937964540384327221680318334424844255847053372388194543677413930061216183915819970490671519970572710205529837009093574448454623579468104051840110672127831678264088225243702786694738833656500190546610598235794438448162984424752021728171689067048001476275887478627469682112057570376539170270672724211638142174007225979517459381231498115523801065573661977905840209273519250296184506921317013631781981759551901397544661090018148659793103612863259859822617743302603635507756630108645754599606062349250104305034374114249273663406719615442094178164573082001150052731704482894516990871282382264220414094259406469558910613214583998493445104847445311099660799111249677006585818797725249111662107216391477825763941911412391757304960960305097432789879865172646203856035811605601805686062366686686001835162254078557472936181888522559218322325987140580842521502387817273375634368341450675143610040362271355461296954615143691279051843268265165595898283491110763763293541562735137930759887013592740195572285807861091201638803497391255598841895123968822314377904326324096656012025157460310856328312724994855563615692067743688992141983638171403273929324787709066897582442204575542244173374877965425622457765724998109588159625960061829274406009530950823802704213651473793365297905416401623560517814085589754877979739471824238918744368295441616931600469524052715336679607626420537233000474927687880643920420094895642819762178837009844938343311005446603899757905476663009031406683947943342649942771331462641184333922276291995271928870373135676235912477466049875444044817644014949651724561216875712599448152075350104806096266980721020243776862699477129257025151674283186997011896630685804173745424276769192668805793273347851774939108401571057860894165846163509393127597798008422666273823035353143384588154131433244660208261563303726855720621037394775194624157839854227183983851736767587541144711756229355060018578226541721330749323767913678755421498901890429433731748677812433267391369571712732072675724488745109617787800364009191779995823862487806407082581441555023215962800541139314371736528643241230398247997734285790048732748413930959232024397248977096645673199019026081821102693860216380674570869666314267400519163516723755674425948572519802042069720105220670137402395001114635956471199248197550658706311222502991582117618164599699480264579983848135506000130775790149895914400065667389636902704566364225114947333785429413986237241758114633856038986522050581312378340810516886143709750040113487636158325840126323046961845633765994455413842365166662998497929743353309647198549696972449045896819730726277256343726968254098337102062988768167060600346172394920437492424786076911359878464661087054253002238736075463088730246177183993953695371861851691153354966477968517126721073707809047963815880169666456892781133422891779112192369492110167675619415906855913101165731382910011375016975194762412703015480321711978824697944396327487234990702469833847583352292403976309720918368632431085255059442752801124993455577786515765056130474001278582589972055968596816248985776515664412278556828668328141926353660120371621352884489278620217013565451830986272352981958860433713205439736196321429536800335634028675757948938076184040053365466484116424626016762215739289487070182170123395700619558031437958839465831506421299334430912756141870402872169428692490545128237457593174778455157117018595522301674884943651137408440750145461677845565772558659504672906936238753037962055633008629449817068493701796230302380903525854429612284178301747052288440804987920382614373676638559781664187200564425901936276998472390048713607945435679535625357353298693078194464788691759512701956495894200654606308988596112309747329863277908344208769550678886297066373013478527878999685587587420245693432385554439319903466561415880499893805176799911443148263940255053326154158327789847738585411694821702218333900540199558640531683876019289346590742748962940857169366648563377923427481598793725325488948333872164723471442157332498529889543615155448473993423081129843655911804764774557976482523107388774569729470617948470687678965767770360108470494525522658845214957559300427258989403474058175290691123330620850378741318203491386747604270064812082226097214507956067715346605660553182857248044995913850104530179635120412186959757282664889294101172528206675869070901102140027364044248895089535016164956736331736972207661233531225247083769879129613494606634509822367469333330478701759759085951612515215505324132485077017280105816513755808329547630691618625224361285468994457937547497515498069767232538420735240542577494787903044312446281586775895190519756295323368473820080339095403019500216980409177569947069631747526864301397782446366602690101657935126330001953694401609535267222757061257640139646928040103700967200520125985064291395761457533106758229127160608977420136747125510249225550569975364297615041566910983686708127865280836365350837241847017384405719796113719313474378471298137133944952940647890114273108847351934938618626843307485636833239750915783398443738901984084919270678158807597422778048115379816347518106861406859197768664378076390746693336043514696316216099897011025890727158778725013837614901785555913484047673897635400268930029897759422883221525920874167168674645509310446396803146621849581766630897522109198540636952080678007294817884573576396748343922966925890270626706120059155161441202716561544866008844627358699159528932867328533282972353755105983541346699194756417053063015134258332862794769023246830731125091375432577840908391642044893206419090164339505231731420372595158079496710243837609653905811257651704264814592983035554853637943623808923273390219766828367252438649960983713654779491567995902496912802364523531258873285765853987168208976463190036013497081441051787254168207948868925526562136377699318909173218030723859881360373703746499898905704704327859958439360889186292758031009657842420877791236373623856578845377277156887258497918529863587318501376719795735216119865098582291587732275978837057031155439013866511976141168706046336811025774357276604123542366485392727178641248520553577201361877599943932896027502310116831468030240423250544252572881492300552765804733746573441642091088260055677617758795726683299695409335302319326527002982107696866284307702377604623589398028559493795651160331503099217602428445555609673884917138711383902234312375701365264970373835460667001471178783980735254671616147947462565309167454549896212684029142959135406952780433366996435070817303885499154598364852370680846292685342238061275749344303230326439498078142515594730214480718153631376008725025811313605158325313593035309156331514321676475215062100277280328337121072330630026864128491432693137107534827416416201730285705452613583867941113592056653284355299255613116930298185021772886809824332182149241422782971964240124119652175978475480916558361593370092818484531344736014169172201873634302101157292908900471003681051402375680151555754056532690586707612261686073121847060184083121596522028890982740068455611558445726189431967696273746381144056713304334262917460760578751608856546552132284844641876225864253729201797448243939979208766285649100172075483574652669510020757165386298031570235128121115398653342739766212633841203417507788040389949001732643548961688597645091592850863887216930291976179487212337654238198453231241999944787779483664839647570806052668867608540439585519914425591108863752685254587481388849153470382561127692532668687171450284895058000389753842650173918851892197995686222267174735764291637411922926370376569378337805227994211346391384091395517034842017686720793036329093262325217664433741777386481432721664278945969774437567575814873187734815828422242671843641645701996484824231786014697013918604889077689457574527599106560279369652631335032423007177609612334302857660698734875163692930520999051751218049696917749640389204819878832378274657053869779791880314738595719913050088981143554366933037012549669111091667421556086291996606260647544112402366724326754796804588991118864347470106028172235714544053149955437161482807525351374255790103447539105868376354628361199328036957114004681338778371059323846073605641997571882387126150263780452243036766920089926185909442891436648706107067694780187879383935142854488587825327196115103838194420375850217967282700461237590865332161828042537409999683388641384087423327521034655398062654849386577788483777469407394700832475159915898496675937310401914243807014718168525708173791126902456179064607570676622960631450040402269635641470524732773756359717935336831567426198744206687096493745851874348258832893701698003655259819896133311502711202531686493115512821704936906581300217692871111306055842556771431068442717974247333073415654093940268012350164870810932348254322633084929001035630665590515033707732274520711584549156787019649610072639935758699548933263784333447558365051989649889673652329203594103938981169781562978765972362718516621796984316294263459593070205311467663982136609287490806638610922758584809156939084256816908505903598154213369561987448172673074013910261001238014712584841658591715522763207808095384265525234952407761693567875877921847886012343642219503693397456100547746812011050933390377403631197072793207645282695242066919604055242621779628897208765322288270020541416358597039013235657954850348894529766930183683084538780305213128002478484984284314459336148235576979217601981099037031977605585395447862417718336522221284175329550167227169564385652573727388864380486414723695880891096801584306839154278710112901148141237608603641545739086949032991469566469017091974715249682091293924185926929882039791911443354150128677884049040755196146261825709439373165803168265800008276332338254576032133215663136958580944034855926131928234804434087835083752319632736387376687469674176428471530643588996755692501484241375067519854224084811998434516046430697919800470589611455024638596259891120547937477204509360229619417898575289534006558692333742634105880916877819221515790965691425995922071655374847462388693764965675097717747460047903877775334253946090415119075870927409373361883903554186261806699780192769157192828852678556063252988206353061896348408331180208345890065046006087116647522202474833618590690198699738507006481369777532819829686080100646742665649691695565321082036974012250699833030247759008511381916123744436081033242206516418224321574310806068897445303533491489068757214809914702250164900093872114384328784756962481072171802764061839472947028852390193406810519446758581198037491047786116530875577883028565522301901518974553351650965789681101227429233036313105112575599015666640140320634245038209755508651723312160755017229690303478402790657334746976832126145179649449511874176808093003450295914138336589247156304029353658414443235758850406673934122338125257625901770238848326742012145167804606410444554844483297502972817442943999150096850806614945509988241829308934452166177420464129560978412352060618587043406994506801331712702529609197401833056812892085651546416538715273250841143295551704418118072302639680578489891156315527005317395577840447859947232243898650117291009097340810808499418349233456727554091381274992710067811079833609937886588251336498305321118584048269032345245456994775277383374424905945222806862651904558839444721172781504284905431497809369979018890681234632355973270276289277561623909188522530095394944413881109665137266015712815190586583919601576292905208900400681958949027211874797129633530548793024499602088144618849339659769486371002136850547206129903335760458210293814572997587567886756691424601077373527356934166874083588481035175145909804130629270950822905936123315451906668810852769950566556234056225784076677323850310585523254630470846411107888440978774624951044571401693646984807206978162675387457456543735502941475146510650517954854686301805736763609432969313661332069267321755831590094758145783009936569277809981786762141320291584272140487914754804992480832337198689345103382841013591080824400569067179451561710090863358477358457047058658217901835809721619382833422057262511341711203375916801409695291887105993813135934168854298116252943204509251155150651402583436812120842942608461166738534974260737350126945256045363811856584842374604713612156621873344201807709253920582529912276126774523707161315551698276198255520809832091546213053118736607398457831030448607354359186753728850075151595799411293825325293125748650303829945960796316674911646028576059424095124386462113659146020737983792367819045896491887138614663355300666381975704234221115494553906998145770919313123283530966174254270632518395321761025016998495349868237114581506717881133456145369477080360009607333106949463069986147377882038445469638209325864044987843919240958806732426579923922679621099857534095086220093426262467433210332531767018703189614283397438413682007641008497649068683040161632691487415596493511255047402972355880975297172123693515248418364041104820949865162273386871889924224882579362926994732865266136313809710275556750519951714286412777296044922418917910121736528771554671816875091179463669976096068533200926573196953256405484083340636205813368543871530530328956375317730303758100670786741290533789696445947842702646087568129202850615371262198956003891623582077025589636577023472909063999556464369166337437084042072741440558884567974406167553672768920385267547224761532265294211136647111679517337274796578386865100090980535373377717356010983165813781299946202421158830078153072599158427004002213368314454812533367787648566908503605962749927322951521745348427123676751468503566310405668922577292094935367174589089849950576877861744821026275907728231805986825649585539767969556287311545224665593881135644477624083424338660671893758642481198231644431756727229159746884915955663494383040941726184685532533018879706323680938577327227728625431993269088970384614614448524989858319705887341746565866834845116584550174306393823800337324934190025736126600543183130246826898209454684668443397670806158891802336838619781301244527328360351370436344786734296123705850190448472451931206084985725658833271523791089787983093019361793563253715065191111729134448753279150533971047844154438408958389719407756260044788593830394278693281872413977249205562200678798431123631011070449723517128826731249825095600686710036933731196645136201298117520180002998196559345596656873273179686810753932818241762284751940894035304879924176877369511414891041531658481043363922062367995482459166487068615114499641989279109401785161819512793231201823548343324946171503361368704446643068250203393627712466633785041713373706880602477847895958126661473894298121075983262673253612058133956675468602539614297030689114294962647661576487970776197100846227128059417608567393252096062359919565196977250632518951651748963252002561879978514965651223163593452800010063139804933089521376829398789387004108225091453843550532703810857289411282318251144470334157846087697715261170450009776182894670526163360918292098107128981925966307190747275446850818568309522928528980403330817767443361483195756027137815217923191390651960485521346392553508645398597908698305163168414180362774316487847603563004771498291016538383684895800362411209886752563134623392437626597639248671880868707281522920945456409025794092269373048992163731480110394240270098409426043951217681994032908087364404605061190776177387387248037246374349106999321103969620408001857937750306282664699136635236391905586099188953384957706965264233553719215805692002721930808521249560987184044078345736223650178941559803679398008149555460716501738920758575805147010505901401570089571085118817316250267818663390077423461003401757452126010588640676531773354249384644242442075987522483757891287903193073922872404527008654015861855663413972110101816325236144711351341497352751090770770488349227153666719812570110088843264512508600917546751776647585772398269325768780177245612009710726167854105415901248511637072714065283907189333471133743244191550110226688829372906117799965664616208418123019109988459858125435913946881828842636246589973305881725156057558430889416529139420095366770600755711506560161308375183847247554052210038719477440976282959398749119929138316119918585234084801440713828972070813959980404621978539779119315747192570475593554435840559099847353959557453122925955865210955603876181339603750690884172740643780486045836385652657851028051000535435501894359430568364876051247763669931535236926929581609768363189746064435420876077010409554945612860978819242239333088577448799991613355556687486116217090057568887458861639149792780503895728967730991781520883208226777148091117144014078247629507868612502678372382562541166705060802380491023922732863912312499881087049043270583909965938355768873584633605658738707238641846078566463398371920402961605770670585202172421943141525714231801469277063950660275063497114104902299886903956348023195618943340022297928363985206683664158513809087014169199203518538150495807739224667958057758972362944201827435031410677497086247309838807284758227326237290843253377068715055073740715210300934272272173359561475518317696824266015587715809312936330641779101637281824512744363251315580358681698018170497437255836603836962038322829411920531104468370270149233413582032012293694638328449512699212290184068106654633673521032620678272906307639368973780257644279104147000561950376747835601387307865398765032591010120124232394177609189727441881106004073863551998968996003356000946891473784654804228264918708793641975006607774902242749575572589284429347021726489713951312917051017095809876772316812082623483913397518131541119129572639398438041211386724361819984915198737253201675734457419806694310433128276077822957153340478441902967093187952621420740614702534184784829331633998122126006303661599202353393993508000134754489573228582511095889288141298304482362324488451904497962107214351158808671944349296891329445927710956021494561776983283154090700124588596445124985261248140783901990848612061255900710869824270319003041936370139427631106342305371207478776795828137202098903347599508798028439901035077332352311821948389789869151979604179207955346521753838844001552092936680313752872714601215343236056653364783349715394998731652545525971989708156709994665400607675906492386081570387407052040494947419822671705110310555030923667361822597406189184930572998456423499645651542686624706137222206945207062142796151684202161816624194855442638797746288680781814954904385736419680586358056464211717309626252242044616516930382517126354135591332960953981639570781418884913113234949654715562911726880945224038324055529206344051535116174797589772203203303391020423097230445170163028247370230344375548545773220933123090944098729953306797930516959167316500693098018485593052367156289393605683275115278379553851108695787195732238751902003472800093324903364249918459355723191310226943055663785060953858790482122005120503771893834137513779679643752549827266281118076055208955133039799782250315307331642734779475534609078407374792373584156119988557510410703178967222632675494241758286745940436171804785247599518675568381950331674238469341819030694655589586485943442932548282467109166427193468452588867602359310649835366779980571283372809844876268034289361032350487026401241810057830443406949790706414569991536609243969186909865338398648605565257089796144684429315190237133443239875369666668260527013678323025347153496957865726457091182868165595881182445590036763955852876396656816187847147070599178488427800086936682420978696854552484572526060305471614094422406945514235895552959239897368934392677223389949260397327616541308588782021361978829618298661256382931644595488875610839227039155044111841964987642332615158464958618351422960205359895562739058669750663358008857628010113210413707839832097882737291623254990552167882755612864476152730017823321976855418576812848557344021583184923908456842336987723146293446167330447920281897027126557521380058575700175908719135700634332985111981799728572776733241067396031997918230131496860087867139148474798056515109897574815655336541834156428018593530460477011083573011159115093937272811882868351892828580878855888656422742379984479249422858946528581599147469637398288053267089505302140269525110254769247655439605012150429901684893472228610399756824119265659993491818200588657735736130616602192874202489218088536034819551832164058145416841104408513961502774059278373999571643324665063656641653700795243090029040518222202687413742818950263873221741725986757066706432146976771765522046041376639006914164028111152100572036669644289351946567967287728854908883690315883835792886800033422749216870542095842065900159344426104881953906248122093642322824320860312427176660952396253755510362671396535641022524848730158598060901039764827241043027687354228404284012506847750357791877232815524639658201428076223985515567728527306131817739981641822112087767547254055855275374431088723170128090262878631230815807066559942265737892148657472662830858627580063240582243828982481569568644078301604280736986778441330131102228582745054821979960028818546971414895647399649700931179382957237828462506717576128379324438834356537576730486781376694249544028783716417430054105674580448163766845519824699396046802732572552156416294854320156459860590490624324573442089838339615505532870959684900270888014652762774142174009479506417610357512036717141276779627546266074088786013899738094844574585754344118102988661188104513026594051987754834578801192811744190922345247489608459878060045354743228285084935960843886097781383601356415370468405210139139721342554358246683645393752768128354804285023800522689931101608913528834603044813984661197679972179373953453347802785865338114522524759005604469978295625281347992427883622576406703583292764391569683568542210925810998166057645814094760372937175497729074238816431176796408414318030275995353015619244917764453519955982900898055756863289251082304475393628164216053205583654429673240580635296091038803794081120448081561552783900597792554810351871832822755140079296626014390030138327340673201113392390040651316076059002362700727204162656392483672686360162051048198515735359512309422505951998666620684569606984091458448116115189297744479041742775449313078194641866386941115620283428034802229361135936913795411105199988205221049720877593710620115473105456351381440295953913267826205475155916960366720783283167317404870016399176374928182274627732022909369005422249854773866413252621701718558650663379164842010696714128451836333314999357724292615560105333942979734261514908799270998638841418276946770617623512358453370323596116300068442595805848765054934579370009950300887758231741343088042220868925359390432106522412021345128534061347004497724324554821682688645153799600578993428616876153378551151440009637785122373659885574457746131118934554042481523943826133854630705076630130205763335520248584591904423300512847766544071270409815967227640495404116998932225518274111365881666268754903285571161499192855384248615012687997561692528762764970022510613040000519412972191303352921201769691322824187858480800468767118857369621636467727465072124298511221265636804704246541974538842157812544258692083349403811011731368079273386215423967729754744680296635788640783350712292635109296616138095421849230731650598971054221142527855204724825982352528253175199219740934188863048995154239029431383891178051678799286423075006948872717354427301775046826233845571308876451302147282485871168979284154396099826005353246039942759778274909121804977115416752953763789700585184026102129422834105407215909890487239575017582921407873751249627019081668479126363242065280008154449612175528687434469005763225716251848904271006188582160071324514768661245586950850725143301099297596366404593796788990116653016968848124007076880983426169240259321782811844661797788737954550326207846769989879059637779925491646810790922868009251764481884038072819007380380078275050724097173767933635369544178057005689889138773687002684317789254710031877046312670789775399011636236680598075768011828981456373352837963342936529633790949067172310076241386993208173008855338446174334808374592456247334807140767530448249836261915631333835843383649732828340489002953137774619759407618599385289100513253134554600906525497384370772267412358426625787060318163870365475787777243485880733038715654556551115710367648341196442168437363283815677812483870181170662470258372690195553210096818818008260634350587044147267427222410552573381909690712748245420532549437961964844005387791915970758675643083131089080005178490396015095679009589072005792333006847186439863551808115174168137478232737318953905880309135675817469924668665972194602449911130025837423512185282957859896878937117342730183716490554267647614539326968698119323476328161074491321689503026914278905728213613046895004889583603000631097530028756467144139914201725450649631608459027457190681824466163544875127805358642276275592354761517804883624263104380201775357293395132217632241474571554140658423193757151347989772622354447118110379797946175614799622603280633401460036372122207521662362470339475182380132614613797112973072343969121030279832032050709462529642534976664147425294555117744678952741354418666737930670391514750256276623431267293913378240758350249287562676068022082109127233018041231515234183130247453527889138115421510523713753091377240060828109631762781390048911744625478765082973322674929876060264694808867367649529853064444730483820769039488962093097657284649381171856220157985035149511696080023468790116939964866948392822240212961129936162817079470940863785312835025023842836714185196439565898152961829185335741181963917412713893697298182544938536312923201430283559250755816059504391430146574522739981661368769274265114331419188048059180045225675160686516534920027587248813053681067830986150388852283642246409695514081568632901184622042094468534299523852302659750022379511059715596556542652113250572654669446431499481441792033016472059121861866712144549458805826945802993463275701447155601214337068609573996287660927534917585751796505566244806528343981160771292819999842021415241822688952860629355907624372853776115264650836801223961598844544311092122837972017095812863027747331484726450372772784083584355526072048197599218842362923902204979944332948352628085769737932331291778262955860213587019786025867268213804100276561549726346846490322245690214106238886833408198720131854874260894843261868437504098393685189756429559708940785715007422814479119195256548686220580833375341834426877191088465434156389033493170885797651756402530804231251801001050240198718465042161964482591743088819431367423849527098515615515519726934908692717782406104698819101210000000105129216206160833287007887738292083466349676549945514729252693318359361984148633877448986676603506440759528357351651936969292148444947224003919840502748693801919755456754113549274839454154484676216331426277677532656649882891949966898478528365692941229283932440994550330972593844844517400204432541742384850228173089654911333165270978599226105341089155921064122199043141838022471745650658236839547656452052023912249566630367516084516281968181594724172485456032173040685960006955220980332288277931551454234480030635710955264077220629624641518863538727142755032770632930962251818389173889525191084920041132442405440808562641952690206833241756146876076761948825895196314100960344280565705369093917797635532995772488814251637459622788748603980684128498490319351701380917629453899727095465908795461742864394656714217635872331081267470630323309667938635232829241518277371410549211605330145675728225745185135634232277225693058355466049158140778180671132615196880471461561988714569038923327534838147359109484356302039102200447846212397337160021727736991176829317363237131466492151182443803609287628709395020721682343788178286318653848242747536733750124488137521169939548921161579828425405335036840033748254123976029343080149127821689340761621597882377902998696798445369354283498954636938960187722144629207899081385726867198856220289075865602620982564120522224841388478728799584186171297574709195110176368566476052182094315517960692021857637041500726799550053025566734699906079548814094923729245646623597206675577649664323059819021792464906546369397658956667642185761832070413294148317041725783060376863555073654239147475587320493286929754564294751148519486261276161899890568295969721697576478218707622000703456825257906064579839738503787143717478533921186022082608880269351636518173713707577217564066696498681939953279404101973231153981753397007191816419229814382142670648761460408185979176846695134205637448206089312926250734684068755693535790265669387644652106952195985796081911699592715554258352436438042765738587796414979428243997057326068401240838558735340296585556944934536201371065042564607096067045317323022681641690399404969748950705715978296718202530673338838640345700537474899973752132828343951655827561171294561849812137155195587479671498648940905009900078131305214825172364712222825512955687681665301288808113224163544781438717383119061586468575722203587715182960597827489412427751230909457568104467544848613684126608512390838259888424591284199098464110505202890601127300995329423080233364349028936485568464093959219072461630533139915104452924066138002889142744375919565956127984690725840388444211393038824629475471918334677340413162554366507360651596593052525556057230376961332128110537132064185915923785908512468506807016161369377381792943214155463587499470782032598741895614611902639000044089631143398356058765696086680154607608350704037984011315986553161666419648811888488766948075837253107597929843336650054503236110342764195783803054490436571722596720748553834695057596139685536669135073309799076650223642469420636752386733681012284164981235402262718663705288084190012790639935789898203441908911823923405355882357289754886157237767806487535160139744048571826180119532944641158034694416273296238353361945098340826928340048919468154956390656489753800827924666037300487007591107731887348810041813001837469732461990270327952593515565670438876221915190673354780101052040238144749149043485559406538659816007407365345535537166765700304221340128853723714173356010595769123478787388352781579943736377200085787456682665745600952397177786353973073999333622440476242396275466972189212834152062569317368555327515913858358979966017474148361181806100852329727222544990780168694393536742827229286603847322501680766968642715063317081944171009054377700270473736267256738653737612080170434640780931700582030293354789927639645766597196210866830589033207071774994503913953387628640076380731354272274583101820047892368873190571159472151554710381541963168005633441841536898649976900646888832778654744510308323081349296370858664022574172357725815195612433738158448704939595385802771079483788442628852424974439461735358001657810767975842248388959849377465105107717959285339870025636393255278074485459638081015508491737339958460690036601659106056929492314833004470051463894444555089170241261644165673502340358468010897743477030783215775521175209151530105834223114377287471792590176363743931375675047609900838365541372604727018902532252126938373154916719213473606359869696352506447724393274976164096335478316366968603929916760442461546912870444029375741260939534647104086874771879104865960614741463532856417684335907405588044111160790484254053551093030261717451236096866437908029991832738537793904160147912552386473171308263409956174731873845155908652052000229194906761328720726966418715361764296919345910561859632301412042990187835577734751285327776433065133760879479850737682370961120936568894558390545477807631957467497198425637600348604165095606780188401233937277617429741920187988734109671273195636783377958305169859064723074081189547879604818547410918274837321494383545917357399068298593176194407338195881494285770138188209352861625358385032855437830766234890166993321262400089518244137217963429488287555261191605931187046239990902488546926512811211749012505917028187521309119640788085646382059441097079514951163726154596884580916436207569980836946669969945818524471525104175833779790438142116696271526243164159682963987985752665230700873620619113519673200239321514534356742295122372894705406039430211896341445362524402623263041777961895520496390260247884402776997920257508646750403830766270370893956075606822928115229154034559833171291539175031397571898457922419387480531804390679956582184270095743923052653813841050950789561812804012672764041849206516817683140039244169955626679577558229033745321821641518828330470567490622016511889505844421058729231630268435166360789288561451591018085302930066837552798550667927987722313566477060183697410569635424431535744049971228953247380805486950161718709893388354489343222180534032075069478871869642648535270541383166983147493041431540935208673563277055713780406322564812034668058815347527796276938483400326918659544945654421496330499939137213057741234596523667770448316304357243654526343036134920310821614938038576867491256270654708118218702512227010914281277170753978094678306777874106850370124558800142057788575287052560841942131633525637747551557072167369069380913644564355573629246230292915243795801514239439893890604834748756124964010254018961134557480796769184594288395909066160203880166131017633340362971711222844074042689043614170732665559179940204326368379462305460531048520322881936067458994733702926860389719399760212447295448035078094768802661910194264663456471085958893344065549307776866656789294259391831372898506679971134366775077082357635087322977758011401809725641832721055842393988740274739626182951226728804978079493547685782060717186210958650149650578595712040246576054229906053447677141126358707621820093145385070438579424300145947733624125508055851811083141626936157937799359457225983203962241974575713282325393214802371000470448218660701842922037902475075594420033898966526056010736715751568849194358151339746831384559450151245565517689082019856293727171882272195856392042854329447869463053254606580214922057944275202294245782145212638960646456026304690822759417286243721789406809210943383072912419795279997854039058509144696533304221382051388457548944047343824677575350164220873306889011736062298939359847879783491253679876086901578761924847733056597047022643412349287542015898944018307904573725015144934372526845438967063679679930613263298949415918161077359781269888729699512490122300807784230109539905952215481961598578086953185544667819071631576449170794022921114639329534883842305394912441993666772460718357578909779404874711713440525029745996918076400824313619501338880320381683230951001235342437979133512730648684746555292978994132454289621031957331635246302644044691429596078321808771604666187898638510195694039744766419683011157068272663197949466499598395118113205179244417984623149510228649797067493629417893028459256485525629593087169857486491475146567031246300321675714757843312431403940031411327074323433806547512964363523038757995794002189573461565726199644959112829816215226781896856112166004383108576218561574827314396514451459888328446595869557137473125443036153520418670824680153769666074812004734751805426150314488945872007891105075365742617629172813379540937399201467015883545657132783135076047206262928096121802117673126389610629243075359209453305254670135717350365718549167816768829052442342566520676287340894567092412836054063107870479897085471737141972931600351613556057981850274324352077111894015903455080465894381440300989029765743154511069847757824016933515661780252864590313877771953511252246808757393581635781212354403461527790661746028651331358562795494371573697093298606569558064730491205332350664946476555572780516400560345784076673090066294361311147889622604265429024283773056304277289045178434465848061802623058663946540646932978509206786029346280768779781284639388302080313909434235444168750598228002684528070971478284189996018328377962705400548798386586239680168789279830928624812929192574673836588445752469081853615183213734472851558946800945279765010070498049045509980077521425001762514867388689519544463322932006239226670048234462766307406995640440030242304178156262351048227319041833687036415036045967550822813590429653107661319371180830728959246984654810039719920302674272172569016767396621940004367855421637475704597451531182855876002311508663289429195626558744808791087518787445839029648718670542084732217062222826350222146556240515762167606710390962886432897951557889750166273045394057509766487587671131020815169745206982370760020492347842681715571240544991014499036903975793256768950885331708417016663724306063346427562702837761680839138540291826672295653385157607106693262953013303487387925662636434509920337674558565104028475163844991961713758311258072788212957084575809493677819081477330113375953018543878541271797079498770212642540169652310044813759004912086868107700204568128669149267211197397045442720727275115116606859293089229411109203927774952301189080666761788420280110994427554774545910242023366488919242849861468318714370182802326783666935836897871348147186938665004649707572926708320023993440196727078019981738743569882709867352828706925305119007435910575715803314202319611567831439891733251251623820936024753184953071484659378088932906506332153282204833088701589940697736383294326167933529725903686212739664686980620050402686681849739557582181458193202612969747508525460754163001559222400255905435604784511903205863762461823570627574907665366072472717966794548331238476055234736632679091692387200676885839475941865101530151284056206432315843409953941142564786147971440136218615815629483156572466480646465730381484232804095052646023707538979628894086310380633558144949646671434300243210738098329559790249797176225552741813964559319733290274974712498819538321179823366546357387845274938550570198978969667246267087707567725518908106944514310735097217355541435851926427711408106513227257546741354047637239288009809226842099430974810864853889858280852786066519240970870911381591890158804808935926942991256485951249929042060343941600247561962473945395281242555446639386608762331092904259120909282074377230903739850194131393040239690064375264296520458692743334511431098143055506555834856739518864483318947039268315172508077025737924550309692353510448512777877186162929037110180852904342930062878437489055566299357186050167123089966661746041618449466568848666563760156304579701925140459158824216092209514389041092505989194614776615539934285469945702018256640776055148335362161821384120606874313487184044432225617051996021452473279291751603415143896412274281938476195343413077061915847504189352794368264939056243983655564569610710037051699099751680559981915250563390904452369071195651217673935291260119158042725061113307326876437093781718963494411413134445861055737139477454135970984202882322350212727360422163766634717293216197500012836434204287972169650035715619719887352912679015019223586992003790991977198295809469836877978975128685445360929252472020214221158202862149724437326560293755990035192300835541476876945385368707852214114938865317573046106818553951639456189554249939334881981253364096053587217112658573422639098306568030216958639044941956792471582749501952780360865690497169465707255227321014901372337526025185585177635324011327714349944989686973885607622685750836519226228069403264510302174110269192546323006357750718697225766585042458761150665272857786892117090804447977284778515082600146805349702573880008503153253561469481742412699116570907310295339685747940705001778864229741711338012755013575767283792599124516484131213016969068436695011483232439417299941307016870374261228774318072583025208497598046687720905461105615627062828376428907636437912954637226339246348049949604263837280161737034395485492809020337661640144249865725365414953070369256817601067607382985284332762378916324746864260859082209953350814834052170490974126978622466649404113681405175683258669826950738446230524242889454588311820054112497753292378319781356362659541313006917444921965934046198153659688106689624743064048671994840529907960434529874181970754088678528520984839560380120616859101510426912053507556574797350011799283345660988813308227961558972022898511165173302736737114754880179944762821743014974060706307263129721109379206927981705911887822401781082774735231375085638159761608999229557613038022814590797031806271094192313957646217985557040433100628112787656446432415649113627621572346629118410255771449808885891809875001473929388410203526233856386034109348804069564605201718452998382920628265976904863383726442816258012858347850593076163932802243613709218868690502022772509480845603947741460288330813494203878318261278628626931724349022018068158291753412535895233413087303377115203598539789619339009432272132472278404510871774093945185565125667418433418779198681153698256797063671360462422566512723478536654018219959303689724447554898652654199360563709926989344063395316921435323258230210561148517608623848145309147923831674827636792295068370177213960877866931607401426241397199981605903869378967906685598521404392784160739206308977294829378172970644717444285978636751603065037874793764023453617230809749404766999973546236955622683241842669386308169836462834477136722065876219219658079584848222716094580164954521166579538708268661819534846748655338954052317596862920334781664332444293041273486966513467767060417437151145662595083565513853398579780750446564088755672830710323766020621127917380411097827350709555011844372619162383690585901307807607957388513664187644605623639947960509038388062230562727604849593057606409721777127607932992919540989386012241127591021963706980267731386343358868112594127932998838583951171273832332251694873246953455560064284332567446858980494094942339063522499136618536302321356879828606581731595117136859098329498515824097982227010383629307416477744000964143405913116589010597527518388720753793501066938008839683954503713088589664718802207262108237624106167982861863233966694956800989245614857559631677980632424152365011165381982150850562323686259461205707663480475973580586140965636359683725746314781266535522420277658627336293234802001851874704097065085884315519080921615476551606499707986288919860609122183235428731145600726897509778655669148071933307756902830373552847488532722109887349383186941963404400572319136216773971070873055548455814839373633884333119833912520815342763092294398454904235161794822449344344283267118648692333644112474176992136067984608988004815181687312891743082100759385221182853547118447813603679581401272199060554437415708405990021492047128452780513789585854436210723915345608554469488731529430515574043916403702509416745539005057569699238631410343647059031823352610034690283425106476422508636262471031964295767023391235585146469031153268982538989364545820963545103445738860402789526747486102077096890523710596054776478933680420409752558076953613768028024565657401577617040297277957469759331324746734823586826902760300766628897238159691143686774407036035324300371324337133717228985831216488586109417602658424916779328275043625382924997072284285465423264170947266097616920138862111018344743033142812176463881587808777524688974533940159327646707003744676068745116775124630582823551740223574580204977592348106719440965241039252783954933944695924648147564857541776471913422073886970996573261013500880009669326927961071512299049915544377912359943604387969375279370028179222974606207540774970887603366346662207024840795834727182014164264261720177022742419154138689306501724087179514336024987126962903955116675098243009766055467501414755160934641656513621781453211741211428997860598607310026924162027246739501728397252214141854140536050111007532435777050759978909072304631548131566589691000331014159160782321138195341363120121170543974254749992906642599838321997007507049556544574130938295460211460415911921316823177953682316314654432728231707091367940534801981775978364623279519145745288469502969186693661436473184760491623509544948281079896581084225048230061423054520029827059197197149052736441827708052041183531304347359828128298868064396793389315748533233944071548625276500452205419283723256088871588756625084929413449089936378181976100984085888446622680824849301362554230459109602369398064289871938771643385031949155030667067021002148145627841844731315127997158276985661080388223192258642941896527982528385966794200843719616511414238152085785858162422228419509306204608267572290250627478692878684601309906609608603537114685809723295998764146542805684329166326858694895480335527904088463356389355279895461428138372931103405645655956527705267592851416646039911854885143360346947864298719762113071006154373556302709583110517935337194447442398083848566076651537472280436538456299297466411375750345879792950384155945661973948229100521797717640651242131086790530787008056388256288548826567169380009472942058623062624615470155861117609858791683866225561516853320546612962569918185157225520804240484505660167833342933005828103789672149407262330027478748595910864874167533461873190124762792013292113782806604237590609986984564332893855891620909446042615336254702519875386344407818628061434196799405932292796212988307619313256670546497090406602499998541521789067378140881952923283117194173326006256885972637017532521978222707777687399342716387500635111998348183403044161969720023884914242848954703766526291993199731621028429907856115186506916410469579003211175741613494273471491604996825429898496596779068284401880785948017945708643825805853231771182779398968813901710021916252712412546887892445494899105159441578197815141046700326263678515108373206479740111248673399809798912541621520764278805271797510918460807862780028761179813689532885661624281411668847272773817537523029039093309863018193731361258123006936121696976580252357431466537820946819249062417194487708711248732105223801562019779148837771074308095171358243011501980813904026946865767108384258286944427165627966452219068396057186061782430769651185774635395919655920174176301711866840416508763158891258542789136359671736889886019924114437115094502061563757505343552326082938589830434320617385525607576055911560326871439868933325673445808704495627461284241833770763911088610583007016509210739596321574802217998043095363610092875852894695062819443599610111223458090849689669345345592889180139220185040379220552831295967795974774739144089323532416600664308996026770906546137292260269446631975845455806525526011483731094368085709465071222840947195480752410942609623886698768616450840625653870001498491437680046134962492330804875549559058226589102949506662060094517700147251797545332080254290569207565703237347239009878742333799071682205937766324362589331146331047909458117270032611801975705834607875067795006718137721223885759353604385357656136179906064232149756910469036716114190973192449911354381120756650919241459856923840114928445481321629552973116594608500119867355242309643944258923752064213641962247855017867702207372125652790379354535770856008471738280385982399857748307881847782096158224729590799144741091628353196366891471128552256032341721724672301318595218590991235684879353225054779519423980601468669037914814359633338486334657157752191768932430829551535380197111854029966638349723359862381769974114625410425369626377691478140573966742296708192122847267607786327773774124145336864382220280694678496891937931117099839205052654571183674864229488791809021329823732309575282010392488144803634528878423152704068966489503986912724259601828888727161754611867918652930844691120262416597893269109901595656883612272300859774934068745515711068726368729291592502521333021180373410141450613533260385606445289535647420000301016884268736349210760363239290884010879565213543520606734923837727353542214311741170527997415891929212043871428368274817017844906844634260158593900250921070706147729436485961535444799346756244884512140396859988151302428914189084081174448434345040375153414913507592157466804303475516336161964342548247272766722902788559776103375689686582453112372602436257012992439847886667848112989978659681491061202021643233981656176564669450208136597090525870675156417582458398855391511440250499880945841375571892596169384294858651955004223447827276218310314184747656891655029285830790326258086697197839640777312405563893713304105989711843990988424565243014577351779358359130539523323086928356770423517947190187421478231108051611938687180916496330395523681137306298013977173405263187569044228652730578378644475796778799469419100742917100314128068983462094760329189232262864047213833619707899692598179076563597702581107952083341997137389220184456439387456740716100776904675076568091953626436285498172737745462393052470706561736735881366466834054834941922759293126578623839459029304430456700247238212247431254965903778045279370319994661507087973238500653790764430495185838808883606493334660771196876323632561575660774048248387015718794148894172919026805309358665230913848422258235754679757631154062542718099342617559638394201727705449170114704459635774897868193303658969239988407671899493822902518760320412012412093144960124109624078607541613788054270125503373147551428174689925664565823293257252273920810453098204839760827604816313207453008585716560032922137640540038173476932080669695359675546154814422541303657884498914579264063355847355830150736996088011788646522935964474463589278198458329122945029626549459237737998406003913311586067175875876629310136647697591701099385465461532829336434313575648622724546486408977169707607820490889431556990859900288212976142617793179887357827893581483399868722458691460301269706388924526083944442550526872308679600488266567314732860903411726915690336342669261642336951965115908411579359845599901613245695032093558511829842368110064906715253382338223874210823562829844558748384962542233029744361213332002650081284976329477836971664991636321686240065572714143941013746645518153388118054438279358820307412763439634208306382433655350924077811806033246716436532906191918144647611300505403443424903579803507086399838350522795181583133423078684252428042422331757668840473720640213282538093684764534845996267697983174058434389236194073020178772905791881132378286852746330036481368943449272492898653094657781172489472544894356673453601206321379306976405500588554574130914919806902521317675703634799438267286514591226454676366762638371320097349615489581624850736763887683812981926144961911113794666138837578185759731892137768588900611121857267907798423349153668359232817789224622191293678710978184912455509404273549754840372791587578232720515712712772755160966785734858859622503143648093129104305077895819753958264324388786911782482129993450073228478650494223298925289639327196918296321661352644252750196531013073863350805961635107462534767455826331784199962771637980149572584418826906011150682805455394179995486462072615698901702349742801018751930364645441184756320132194614635382937475068515253860500247612199259464756259151952219884559624520978663459061878225482757355118000952299506734564276507095202089020713666727546017628622668884703586163449630999146552500249098157683926383235268067904379549203418843671744613030822979386906223795199674951030504829255616585510326096287717645592757762194247433633427703807377391145353236069809469598270483711663337944052875573883067853289645253164523336729803168804102213904777089011834951917922849018210942668662964467417015552977803315898697803119129484180055425636929603595825247976201630509718566653880615196393451345362423576726332907297925086769035938012282984499579506187433537675922809322077737475748119524445992266530925010108685471436841035867312045552217327400075645515273533456689428575303615347872830126079130175775766487000920950421332966330738594522676421842376387550790463599032817363295172525671905731423513563264120666792484741058944248792383038035523807253190675656575741653392708141630560354476176290681162820861315841408335895848627847319234865130108951372533136976991802174342380504050761216072012290215397456031724439824455028524431922629878472277982995133028462455750678801322327757690534900599623647050922431823561639690421816359208158082827214045922930882772403688441585123755257832228612251184130624703590972479435060990120753501185846160614287862078340277198874103851507689323352227556312517237552604952285042274628063777705506152087573939484492895571650713852589107682575377101645875051246313491261615487182330341834372797685953211939668370086300374917885494242014150883450141631691886320707866963689483168665131398063487907674389472367877822557229511958037519977789040131398407984713280826798074737778440592792105541725884844350627744135748990329240812856769196989240477723052492186728717275805505262391776478846137346287115689747628018853190450836476665041601009142297930762567383407044831475863820334230823863985870513967642864535772313779692287359356399020710903253461184444362223643261723206569295114600915764303873060064880275475545022124895315294779054927434167953504644921906463965038519213458519892348423103326653594259111229578613154381742842103273438729247180720484488333543800203449714135923832134539974556281234987324292038824521094997397024964019405168891642783211020441990969820177443326797672142836613419055817683997814402795881619835957062686485202243377395689066592454396580090459531953958910963279243842801642405838441718899019062657929130231239174921462429153856250243594909227539880543952296753235161659393472354805658361205372774654155793923014394394740436399517585366271343559402368425012681109363571654250814234802445951925939412313806233267294476306182106598353449322459198323354123914044618807026582731057665000314231851170293156132384556705885858882311618101360458650822728151527213905390781196010677187900283958568154819308602424281262409082463933388254776637061248256990216778730982874646626525587852544102761141967322048587025652621283963035930397482270430435348889440559703493994230918954154261581280219113774721250479211290795043372392458277335406796419149699596549530119186689032070988591666919596976834315620111667717070378954635402084938634070569695606828721944544204078486885583910731340382942567072531760046129071379687729743260550071831139309890587332000708386938381823358178228095893669338755745638911068100676571896202897207470634634697366731418421918145827120289672174396149145803154049854246480904245479739723398684431179180377025361997747627016488153471280744969043273361257219484684464777324562807768678778365905352542671338260855439131958955614668314452617938985172303559833037892954152456228736227362882722651460474633479944978567237359884999518529332950178043850995692890274968169741446574416955902309791066124504138548381769700723554754866473047879427363810254731004953861305825470273822266500093022593169690019974392283379298848186389336340206924510605557842011835932074205442990022240139981806152899125554649946405804558605802876969477323493052280547225921806256316792059309888061761336017121510862004602124001542769743856773355461473687626146134232969340475152078258517917286375707518748074401202982252404813804666007589555623260836185788733341057797062322750067250330995817960370829854908964238031632021831447399231330031501633066117767256857537796467215087154387633420976975980528763861501111535641168047381100189152238008231147360072266015970971384723546163447467335153762432978291765959807018178662652429138722444785362878533965025340758439385003283548169746543686057070135046170489798514727875963890774983478154993459546738550789510873835271156817927207999076202747907456635916878664729186807296654852827834333207451858433960648723649556464101751302658443415232310846410629494828531606539411507060930612790724565358504560858189355297762510959349488673873862370490970091716604192907020435209513824679712801629116624620924977718752204716671522194273415370439153889854717112727462916057183369136814962692755776432608359906761918654733149346070854754133143061918792132104072272370968002762641670577408301988374403516866026747854310671009005915883635239581343086902966979223144194188142266543718707584048582500661143291346822285496925276440566472373189947167507559340243391740316753201970551920387772232200894785248336076151647585469690269368509788033882421314520984303670138959302475669692837946027891732613885720270433059104467625622090509964136922905454055984090313463018284662391675848851369529780185573782204432429320768249975082639639142078915262210150082458077842106910776751935474807248195493699140857887116814636857470256937179046615442560268692436244305175783561756208280014128297859411980890630472639088028310162947582846768382878235654410859277761627470609243888209790653488749832358569898762145828331401329811434390973096700607687440737516735873587513211595829536233539279907919566896358509007783419207651994193222369228529487088984919694230508953328017763054487916212144336280699326994156437625317055960041400119156778669060406542394421471260075193458559313683352058072516978795472256290541509802577922988697459899909941510482965301680449894858157206727132210495664980009743385804773446860746524236983769247497840092850593383807744657417123281115711598195682536865337336560629070272546128306273341020579905811087680687015630765984141303472150637386409676180657232673095031320611662395190316064023585970548243727748698130039151719291447335063756276105252568552867561616295523987639438620198311588940931417405985784449293434422576039894806180068421323420234460987162412750235140235964525715691041387699874912668519101685023230965571432504985982965740688995211756635163222283678176854338280580680139692508154146647446376814134229219352373939936136196416542776130645807098010518213043774655128733670190390068043054767561979622886845788885437661150989079994043429382294213735170401597208548569714377279711268791687042757461097041356034119319947556530392813132999731244661905357309896031867789536040754839069904866505138787848077935586064537393662389861308149762558352586330688819409339717933790251621346776060651589444166080025074902707011126918357024832608391422708183212209132064197422536987701655614128281090635444897741747328812709889136131999992719363843367680624296611482196179327731852553031553319796978963307484736376377572452834457974471647171013328113191771082245561368808285593422569024978760328129016438968103564363177346778202925562560116663307668172159244664741767322988698266302093977675089470697857073807356907881600945094660850276970584920859904474653479907152023908632776573010194299866148944923215588961253478728220149370981005911685600396870802436062873957900841667219794713080328210023662763948483001325634345655246437533323995370758084657314961617829743323244828378978792564581076686335674191650074566494183023453144108507199119680645701930058932341060591807470877611061111637307784144216165538105605012072711550924815419004487614998169722653384704802124412511633216708668326200172996038552676593936112838758103182955099555192030623485987440336764632166244964480340428887010804527841691628873677984699965076282984115538562900722496733514607781852843164773223346210509966406017744074567298702850783008780030254222285159005985620168428499480113728960458025599818151052281974403495468652910818062643516840925149748441454566740755212554664710603857538976869113474573748712181306175547793959947765620435825181058824908021515812753271513900694859127945945067484526526883423621743022193540680356030003861683801396618609178008857836384549864072506114019506017865514442868680287918662514312864443621212853347646462882692597740990558273513988675057557753496821140547082354503944176254684215777304161296791039098561245044866475887871415668880204285013165796680841685436739369512893813629593990465762478893311782335968074656454156553459404246744615183651919092696078234299134057559039980150037499810410204692266043333556438354382945722155263249067277975861420072808018680873108571974736328799951184056886913023068049954387429097908880607095744238559483051503923497243949832223059059910902869582784516396910057752081728696504022887796077332766785092400114065140802640986954374257481488093102591430458662907772284714148482475643927878769074428874974226120015823736012824129261880831734874370234367779042372244918315990842473968625451656909016750894001775759966312140973777704023346986564624768711624687077974750667219873141927721236059732190826049986097712214111321759581159602403343262383151013154111422363864975863784040528102404362060837906827720985869275813826676738045059266524510326481077330574618073817857556730798620358768232500031138133624637512757646153947548884730947989866014393894680673610042338813059704862167764121715641209262269920077634545727016737864393064897919391875846108051413093892168466144235112990409503356351372685580049414917675998061893800024200880274917571259094803325363313938568595667682971656224142923527596864249322341153947445386351612749572701120693732245803411737816930378427661854690758451082574228911605512213851076956103294959009871578448858938806220221690938249042929272106176527017123524482324837846989449083514460589584442703419690946145614126933852852510491209942206692823353962692391558556987520100617117351661796689402989386687577904851164909526232445065298023001786977524379273477105480543499966860607638508142579414194423095087414120575774012298624603472713832812161810261738782673918984466441932075161894907028608622529536780038831007916735475611743825203627002939693976081583556705118407662672277680704045205316367703769858374961427063027479236370094681475068814438994593123166717164026773945012414017742595140678011147320571377294611687359976922455662847313978957566045835009301335717997742514269384409941616630997244134056359474368995713156937205220163434542545768223356120851597091583229806678116699731815260215503577524791236857017850124157778659527750375323077027903812268942154995433840786823338718809733204977194781037997871379110403268845576795241638401883462234460917278062583136011435885846024589415557797956097482651151022285652893657549722753340453158953769100847956730327138721088235719450262675938349414020067394442871087825462030881359951252404029662460474258508107890786916354876408666248910247950681823607227158401257381966114386581628282929206939858969496735320529888304750387666816478400802182234383613970282094627854221629398864389706183680539737580865167368585838016133860582494748482743321030390012571022954905340078774036359466042969746187277367628486958729406972557326620669592932533415509402547152906877376562287311138071580597707656803997000097868807834358123443573293695805502370292697146146716316029393028768293861794249284129714273864130541856745492420634848332709873324088352299174367451520868093227872666453991322097922329786921038906134081283178267738730731013009487952261262171976336024396055547419284187000551868662707582242897683132901998774835173108771281613273321223391648673285739075043179071181522203428943495411571225629964051165813509631840677695038267790393142211789771744357117713281495224408464043828493590456838428935600072916666400024330040317692477792327208256836178917445630788541677057814498952604733944748807949903002119933926047808793098236505239731167484631747080372001363313855771627364880918906706775485095510125083117900380794954652188600293385043993170998788995105218422357162471297519394459868407815652061366380851580743435407014863558213064027902385871160148145950048244794918998237253532807034729943962605983923101487322260663843513680739166143957836144200476720769767094925706352705223096346183251122432882621248929106981648440685701006580455000660133797024006596609928389941997668867409447297199865461394564861130476525577608428024571193507107566632132001403740212856634233763898671167356817711091223690945488652813086638254563931940289741394177053010957091534917435600683605273787810449195992036352450478620873325863552614713957977140264925602401959703280397863623704845375044681943790591892649134689457190777603724321306801217416266917268773651693652213089087863428428788889414454784615827906763087029141489807497928816453285027267067591129286643955250112964275818430454369996945341716918293370890225816376305722583312535774605599136287368195836472862049482913998777913517609924986884356735477551174763703622937527513519306645585929664168748615359680786363937951832518113063217275455806952610117480283382542197137022959562016107000325177074542789602104382811882431748312604188116309951240289962531866101053989005713416773823955449648363076049766896688714200860171284733800684847273239807857977717321220073786959247763949143582110929390861609199834594011638707701536443276535142700450477365460100631126842589480445589699497771291552225749999418832202623428715850007642501797356271520529600424967588694008647512298268796201924261017430281707537259244674762750536628176028547700377978721104705369122982846024339347906549095393790001126583921089594432194906159494284817278279916162477867975987579136324802991646817977993696192619860665470004580462620904352913530719604277709999088788159508988842810242145165153115996840737995291786143931438641138846264459100281840523221684778178543699629184931756924686435354426483520460765240520577102473510547684020600033269802215197379964748957136413687222144176794061482140466905556606572400832452166626853147862953631770903142221515892983933628697894148912246405144250808261788666660075749317975659111777206781369803518290791707428412484523758693396867476010896204145378717894503999567873581692975588447351866950093586143898227321294135088078344209424567679267385603688364952739148838438638099447871616313505305531752997525878080479649617136414651916074933445695361060061758640913434315928799155370320071083978040202857916206804363059201449526087458054660258004322460986818548083902154113383573032701850679874134585901270652940208263619813686847953407430339318149249692587669885723295893126499793456545738002444580035360089136645757132331301571362871632116562945682371570665925206779153000186626817356073915149614554514097935024117720581830395688044133777627476907951525267937606376522721811726177230138439981413455458436149009938975662194492599319734105018802547897692829347944859109771642242924381324500725378828475962579008750071483550710893767276656706828909326575710499304766014336766231098991195731734150785602058216457752008424617968225580690910037910324835717108409442692646206682047916816627986843166004988305430385209197957421573871319495658919589368504657325563001491008990888140502039154249695946344237001710505606549227281417258259194849669777592343138265103407470355495926224662809679166134295295917117272433133528494769812781616800438813309219664610367601400254229476370310013005791273121518674516985721753926863875065669273212165804975645804579379179847009379634369892415741921301523644514241261685870800702391499650224942573154047661846914511658112847418750356893810428422642683783921841459609124791706970904469038661666022597244319974567211857898985198543286079745841567909619428597217579833663064330503203177550900938021802289005412957357465694505097039792150825291013397718986746046292767258446385889542836825844623940621927634662158119324672859562902851818481142323299413114963691366467953475886948238602447207126229953735713446346280633428131428780457918182536371564233174670660458658982581679176363598344478327075987949630930352837052991319516099830983997712798983586411953881410062122950429460979542950963081731951013605077060200242645517388207423047918960062503477397641715597821985728478721400027363211000442737605775821582984285108474272421779763597785021289420723230653399292602466074931438599482308180265177381918196703285826498400987613741554045769447679921127400160111188291012320889894512996017380612553984469526733347971753182245233714887996221245013487712155390387403210296054692079112794810738831607592123524485364954878820008252685500496518699862029552026340034728385315023319297665999499857437375721229418557246977090671807586070871772404716974869833310760301622460480156908062231144388439079298603265993562296317561271725489552134898480361429104666525620441414504331652879220023905515448359491632652184930529565907351010222310639347569823781714769549491339231678998518280311220846500248191554702546031055551980856080915879693961206001918493859700922652728634589645674675627328661168724855514865210059109598585638894679101278640997409605817439522461525346115301758210343503576868259982974629933114002888125133828847406166072246147472347162600697099458868016787400839738499863152582383448329032767908586791632230856155775398980518730975134927822659851274853875870643526931445364354708272646575122371151914748955229151690073572052168701523837420739041301195318696932169906092443997755149288305387805490413921163738520917752321861647508697634585057123494157730868178099373247294758416686164492875315179387598993499390168208668803769268821142926702578812245567674161051227085059708254100364634259984117328065309792249914780805501856268067055381870679019823764767404740033417630878099618338463107798839590929303928661568674207960075876328274726938877578590253542494198288227321757951079577688139637549487718494425056407669571487082506965400922667441762848864915770066757723129400811648474593715594211616000076412583218585293211117287556247806182251821147185044485119666806979330551410757321562463694837433657488492123586309446678081587169163233983036665637982822627734716262403659292226428546304579188435075518141488700769702386605377512883920100812297466824399204622308516720407156909762971455928602451959777992378870668008249296412240898316700375390238545225180828616086067262264194347817504243731641605034700185115337950131179945282295207309598024010431150387585262457181932141547425020796789627872593557611970349227672977852695193669818813134946183793784732208054944963390669908813744381495187294129790798014678717774665884400120178588568938471172786400724556384609059399681895786929370609008056690719088587835832642898071802537640860045710970612771917881072283704418724867571001913916924343836821869038735603534776517507142618649998491177568484206469757210617298304896215314615142958216952401605028808060071346651583706618644150078350779422789307771060167905448818697906343688720810899071385052921860266942091092384700267734406158766977112412026627527207234391589096669328270411398490840451307269436098094302618389013342227420023017169691941016022245794105646301369736761304548845363386960093429082018650414045126627767591956686527129732552722936353386416529053508897112382796931708292780376369012958306464943977144425457538895774206103426953807326518582739107217478935612663134844718432341025313146317015120340703577791524539715884362776833741487278913637045062375596360949722256102515550140875167391084749383117649821700867223150525496960788360682029291708617792151436626134522143634675971103679212573987983449808950220624082483018115324473959371290182665932377816915021137134608063825815686625887599343274794712339461101235092438430749098415829985521718274447159327218468597851659357893298990314694374764656832169869162498430366599133304345849444892801357276163511459364343704658135783758228088479927508731293981778129818133964278651204985808287739675180552543107358487604626995459831364715444402094387292333575313806480087509597866484044032593577780484016884859011202696615740445187335230105152947871859366060451062884506277714159741778181271595102674931757038912782661224535460994171811450756325909249322164415676781664879688203139895515134415675737473471466602066574549392315652437674737819402452582141443189983165933314204338229057216776824751644966903803820812330333188259219819681583962269342712181758594536552755416889210225444035341787210080923201996961300176396315605473413636205961670475006226092761854090493457281424961966917885289052401439579869038036956079740759718448779642474306448016732855318431000487218737390226951287225805829279735307920262574908299111578091958621299386279795043665160100888710854346503674737869241807026663564689529336577946788268314070263234755671231684203912336060886576399927923825209215054822557183403541141426871771254996015686640194487018654836102263765116135651609179860880083845785460800806433167077053091535999284944672286180971442892153237754232977366891776911646721563541922526265159979142823063855602121993488957057695406938284972472951455983214714108496044216877803629585055395575779891518429910230412344567114220669558137545422478804014359484515690860568090038421568500727413851168070487473660278855690058254317756862159727177197151359019173801921887771746793044828034954390575910310633670538129291143532320542926780124566479517031803417805919026038550690143795731427637058995458424474323080152969341184848874298757879493607980436759069750537843730776336021884177513264907806307303643068887808425542144175955257738303514961737556277107786454570438577052947616683388816176381972027286560007601325627696540406215861844293846655004588210366588321060004951063602662676727777368819911721319952703596744299399884514094424725326664478370512723246276981741588725949803360014860724038964640579758180393936200812662242534625821926138023254348007212623092957284361683519430140280126460722191076724965785936537413360266786006138614973007951644057903797425745021333331968261803586264625276486000445939646655697628374083191235421156162109641773100478895106393915705006679153440299561542752289877633577563091626795247664207582292778946072893397590059990792930244287220685731450776779490780433571508856542269550245643548752226224163516263697361764562066485147256317320593118865568937457574899934475386758206776025286033790859269763351398054316018977915403453831489657348054694980774860320258013285608952165292698334310685309768365353218281295234459871080783226243370256695678120258190835585868644989444553660263409868549073465419221910347820230723906392632027558447788765696834935702459006928578019051623592307748132746847960928164498847879621486441650846156866373797886102386434671104100544477500524852810045720824094790579070004640619568396675542047310513269492797335253803620572783467947161047891628369534567913972609977590386297473751611173937487174779858223934452027569655485363547849790783641065416240945323450282379158086542358434303965955323815973107919632844125625515781275181853686312485429368738895731266524310498895545797424187411449328173152388112085615380959652152088096765328168103637813862455368789148879552035847114178209565776525085953337882447828203778713151248987928393665783845876493847674932597110599740766379142503608567548471424080382019898926505894576624344513231006394537077469653818078063020377429482726721012026465290148919879815621184797593149305292571338599028444159570766730665388681927871385059375950724564659288679282739705890749379688351730484396226847355737727631185096459003766366565978131604680889689297720199508816032536261130416110668582305338716911134580348396730211263557617024929564468798714613697819918769148557037540778069308285290072110193772139294488429748947346443956924138231862444111016447117519429117494321228373158285783940609188307066384585526694760503220050726764695447418747853126331461537814761558482957656837554284666678719954410311226746532304698223436295274404798234516451006751512532041637057991052073614916159332747401452855904962057089761715060772331055077003790903768341335878623985165539015511759663449104711744191838086732642161998305603519402269759935392004822540492064302053605285509251330569815780875874888577543658146018458491975375359177312103978242182711315120600689119014219647276589986397734643717644086673212025589081031242029386808291425836064839771499177265835215599513102305424593361535089272734749809346021866756443779152047699566636073460820536631001580062909419745704624028010707803522593136988569659184704331687148398087779007589679016096460184413728574654939513742600429403706092935662570009469828966421102877310104878813494679727265363515839839738556732523541358659066704490095485921635887790235890408961354901298832271674868817261661833864371204711887076120565734634296533573927143489570370397224039866950755640943212292641043368422002679218922800273982087480237448675298419327956056260417263434299200316865594083801247946946891746758921673413517693906824417250378383426837805909589136434254388089588429480680577334540765460094379816971740329484508240269152893396461583817961516417569477547136467728409422655903792942588328430927508071385986215611720190183584864432427315328732620576488173354766176594967241999228486941308896558858342479931733938224705892515195939796830166049510244939832296072626449533823247229792399354128762705250558922482349858477025018006146378575771455210799978316046684405062912445060416308248978138699197636590659416010097374244519429905436266122141788585909738475714403795759190108335541507424729829390913969765041669890042492204143421633200648281052040964358159151034309921634316049989584212112657866195707540993654129214142888749409364504462290319176633279784238973033721229047044229999925776908515643529919855005595824617154152303980399500179694150055732634305993542205882491351795317009135038408860649591410999061376846526923628437734311492071571865831659793760981631319347773749133511612508855505045061763343734689340067512202034861824868468862476427788594198041309689302150420382978188956481039919931165391179833215794003479127203892356120263398488235831706693136403720436286250757171488246730931120472733656532828993121693411028843328382271117501653065824462521430397348087474788432212354179632787583838495316010384843404726906576941726115170272327350447053484026724540136226933446423681211715482262838237347920721586904192192777577215864380789650415124644492022253692150569340831486439273175089501999330312604175347602698366203749378436865993040414827937478974729621072136592350867299040160116191572403167464492870297877246654558453365351776508216738802876029200899680438070229320767702949995420094304580316252023881936853877404130904942368489175911388424952993545636486490932949270994139601155953031676932611177365738109419083073559579867234780603559888962890349929418483239376314045436755042136906483186706764319312865109467929031024424366077081937517068635859934484671624633346330339366064573732455794543208896433329172461521751992807486288372439150851213684128230213340926989588296786205001071220304097872446384666067449758398561125595731972138896735327087305307914956772102317444568018881132827573667337946730611301707208796197414073513165643161847871837050176104682828961615136596823775094546581852495256295762191507296561885482102752913694621737736686098159933235126906491100994326874398457879726267006502103291328325766482013197391234063672967385383370913076180717943272470373403674158832746331532363878398156725644115531078738854162146899829533797222564609434209438754064199914905494728683311508768387554024187329010651641490682877364186010464110493078149949193032558693829614423028237605798539607859110591328663536901832481234780756461648453378786316022846288277863633847708296244939926045531137299983219023355620733361774013649044693098435195425848501062036149986396350670269311964662507669903983992723362884547968910789535298094391198164674244171207190927167275020845886900203384598073996254869422323373973314322757313232028207631996199704864355801764140916405347945636982730344274478699861465178638738343308682463143601278669389013190603831701588275427314715849442585094745028048499982800272176135580598519285592127772325864985166089945134464191715347560618070866914240154759706555502972413470513953527940238910819794076786149489395118988884034338848052480968043106145353401727166280345281207720838464227508659333715548621477767108018176283443334184887811046050113887921417414116341074320973302506491538301465089308198636166646281198892628190275305202843382380706976677830363416260598810343149695614314620965005442686352596108522031706534794771680231338436779928275815444174807954498569563045892015783289473045811394576896960689398796281376663264760507860454249668374631390834012260343396072198164118660105061853059201066329797410918085305794358687690287673194303520121443557649805183470776052605327586036527307337189999250929540891863371725146116635828852741129668867531924968033458527582515780793692900076851369946841253707346181478586964196408222608253546390761883805755125721261545310604949467485321832971688322495285770955741199391906741624025345802556925911249921679370501135717329632853239044682077556529642345121674354877285380361064458553238439727129735459704475506822907568402622755602751256462148680539883547655815698032509531787151357964266342235891971786403769916103842478304556655504915789627583725235313501200768360925135843242443048211804608777674006971973796425115073563297848450863684369918983490867757505311405783269457933989405469771730764193616174744954161014069704449589207487222830024850045615265151920497210139239654923033136350348957648592304026876738387769184485769299575898324949582555286066172081304159470604000108703007721790080525798804941957561347288425148838113211259038302159213177235367882141669149805167289057434031686456440444256637052913731037316667095433078195456301481057538735532956242487047772464153647803216174257370876044365894877130778560480280097033987350510407645944648067284108286275729942989163792125912118853074203283962917201386538250620422761810131026786044688891074680837083263014984791932887850598986203115565009360502779600779214211353989490908205625216908064866289967547202124794961307900736497811892187080498911659225739116895889314668975138154626749551538718826047117778299966882092627577139714761921280300101870458874436464804439050908541944720986734687740325503415867402264508944360352920222621884394022301030557733049196623340885307050704894692527434335484472500440721433385779273862532227677256106465236764928408261942548438526360357158416194296922752446868774997610592030025179820127952499525744653907122970129119308561787127156322988911320224212874223808074040371136443835261535667112056678650916992341438999528175709748866388227413092368179179640660518576977862491110722449384194480060703202211373934955405404321735297943775770500660929569137430488815211960163289069218791209242632184288335612420782716666415560022718034761066790310558255943104382843086903067902295510952363867999039241310737883880670737891502075389702930131169107619855980824883516490995939832917005638069378726852190551404838244021313989779882488621987945093045318378900100889433227855075834266511999902577360068048461969138595337165428375651987822979076991502972164977960214414057673574847955314727410852089383973630596748185737485959110124481354415226755007458631513652141051447112807759106054766828931999522648495463158989107707359790344436941826210862779903767874834726799079599429308682412022723611914633483644945114233310561172431368701861840065149778238516149992671159822208349628429504999573930850501399717499863831011406815280120331731380654293321728076211163809225896055619661752603941359788312343174580833959275871260260488672134121461842885241708091125063171356277113759327499443927427814792047843017484991455425588923614489604249100268669739402500625933345976891353787193290478903027350780413183864811779154918700593184669276756027404583126580878878794306041234436823328521065659439105253443314520180153735895636213738256594360956243005656928485643671473310432630821344831124720336589995690989207988855280371089377972442649040264222035454681656412040825336487675854117390898316417507550937948727629213057185817645260298146674533637419119218764773736675351668643685963905001865150471668190636706235103595128802402352620779947984468266275299293974327913712704125518510798317279363301735423417686387959897749993070138605436428609210504434841982064351098968273511500005449836814399816302034000160094638661828046368165226391002255206431194782806844391822106078084937076473405455771958761495825825678899127812647599838891174233903495422720252572254424865344486383475605208746103314017427344781992279664751249852983627021067057672656320746236689880554056780954068117958976562557125036429583222445342480844166132991104312633057583485197150324389062430046246917288605747215661855499833393802642641652404485492406487192630184142187637122608653384190738765472086358418739943297798029809086527798979191118714446863736868683580148508091494484481920979935966157459603500311607747867255884486567842619722339907544407320961254886179398164013641674395014727185000043514288373034996863223926827810358184959385413050816899423718448664352962532612858756707268953635043943619551825290587379944408183844946342465795375665889607790019027893143637908033529357441195030625510570167676643673348961822104214221447917637534914871964409172944129485553282406265384163866835704009945916575790487236427596518534625105698976350773201728662590360457775765990428998633043793631112730684153594484883175017592926267864000437633925019265279699686049007773062962988465130077601296069088188844653671067731061203218121326748141958198897910246982142310524378630238589660157164698424199102603817672200691974528477947895202170536080859492962185241435232003367514276342172049723815210526608809159261814207665593103123335018788053294660391733461661598069108008328380921862091972927508075073397236541731070513222107730039609565316567408220463825655074057925531550959641421995938063287748578010311314546900223527812808165411078606450811276855829916163346926463424016603318789888987009712166401463823093298156856353510496554966698152547339053408962777176499438684044215593498723266123527392590564238118483981418486489003580080772252981075006332331284385180483269165035924768262911175072596429724956184524631192178381428607549259894953146363249290375816617569314707369946950270283854037265870884310664756791255174966225851930253097616150949585688476438674355333709881653154184456377013563208619530506579940839556466358040740491857909916764738438551609624075074846881081599982297546016862007386574499807175696227145405328461398184615080255302545691875663263608048892985390509397594146143902684965918080733358568966099962741778475370756176605503014340707456145315235496263545819926368892583665099700078169701084680531543343246306805394744639238612008489941297393040650065117230498972144494111204053875540744081159808459427153313350475429005512443028698081193009592618401625105681228697813824382804339360041263104156924934890022936393004830027113031161392662722673916049918877648651711702485640118418974284059190960073762521279287965872679524675714427797171461783569907641290221888120943082680368865556402509022750397086210943350212452638020063818605919669573831850009849073767743153870062970694411006269036263299239166906152418912998765170334311553635636416751663710471426559621524034243208880625147483826360668564836772074711083648875575620711571514871183705846641622612551286618300435324051217571964026806739927523097794854173191694592374898824397929781924295551375088993579149339366588556150535154259743899052883827063645192071134282754319554021774262725757890621745416637736817343913970877817010829983564597804987833320102778754508295757947353133145366463585512019320739001331882099681200316204334717836754768355231841512988722429296064449142632303839688883711427787545250584092367941367456345634149910190392603580087575062008539520930306203414158062782899339139944169660923034777966238978093674271462881066385951512702437421883751659654994963812599222928830876872239501304649109961690763082108521781349531898402187989487651710097853763179628493503289034364003859706537872247941425827015314163916707063949466206244319702135250538169865461432295075887091273939506422749223107869989836708601771569672170068828458886932627700473739138323538046991772855681327454937851882734568448444593030500035754240496656699314098195760337971676343039113566537999696620117156402682189966350288705019329551416283828918400741200681479804934959724418246210114322799485699597107821301462772098296238407344044255736449655291950151252937017567406906923547968246816729725777960741531612836054476131559310202905722560221404840266418956594670705162379620019656362128016354538870539186345119010787151540333887037839687415781612984303198203990272287080658281184382222308754022909240002770642111963669120751404229766289154854678943581074145582988558547485025377960827954228092009422812527280484412096133039237762128598425275121814601125893972195937624484269766590460558548816796507533244940341286733010931346290796847020593064907458301727507501571884882688877706347606019292095165150127842016962676543175320595262806971324972959447355546704288601883601840489093419723063579375965421835754901992528633083025413072942719765581146719816179784074916862721495858513914077518131779540615746361573420068047590469604976592954021368512139306129215368097040368260451346226465351627058693463586981516884999168666116813634245041897048627415555987641801294527253196317275792508761368998426780087401221699271302345830722973478192154400386360846846345390883262476392385899427047185113340947172524779362183139515067659538829647907903305099860259077086209423089429707145606313171646914059782611868614120924966846739759312909723871604902421615448290121976315360065352430841760861526657107084896661679782363948899731005295645927818330969501319961240649837050121126071942985345091255263332761251028738972020208927241505344325613162958086502065848601235630872786064969634024568977615611599830098819135117375895384324946152823871059667150933318507956317917134849981218106708765308123103036746026840713511238368238617598881097769326922090432428221352119854132986074937816403128072562449468913176373259023445560610823598811519812610122628208325605177401758227617936686334653134787403538255432688201236659040094883628813748887858314909201894786650378208357831165077815842341013889225741370690797437135602887551580432491722815176390929031689834191650798551317694500478341086006680281739089020875181584829459342467223916375446683846768814155405217480371703232476822079715106478960414923006875656193007112745736207761213713395222836422394138398354981479947933574260322884866163444953139615574531494631880753688138170405346908185274915382135655812815638482147405830202347268915410600153781447777138677235020951453873436386005642383229298098881655160773898261904583581770459031234764708209582990635719626212096712042382804547607401773793070909993661045362800770550561762906956792632399309803694917955754945304069798144926052395937942650349497981565001365299162967583519826517440791677626090903504564736790780659605606904794288380197418288081237129486658402326678338129363275663092827184176434972489396377266589959692653319825471751299533489800880582453196824844192712062604189846910516414245998406244626113217172080195302356200352485896348158292747397060074122262532589084576087096149127525583384422794542087237688091620612117422345312854919982356476417590837743046250842258507681064510036265255842029447994522346994801832057457264706577362863950940317185199832132404013471057688679218719183686649622654796605400228008564565321689296780741931464408218388504283928167878967711771739028922705825773176770832311650452557775422188121451707948820193706150745946067537334976273080601743969894164745673081463866891140619442986491605104452438901373778359791417851347711614347580521922472757104499712040861835992476916883322571403828777253108106639207500015527837098112407598366310820876157847737407559223067625158640026101590030229971564341634686937777369879790626089083643725097594355858791606871183436033421140177139775522654520588617560374746988572545277750504901258193951212975878691598024636577689124927516713355004932250707429555771756521272657145619114828327038268149728911693393388478317914087349863875126070734578958856665008036449627625799973062807929391703009289244427329941066876017898328371910932227607379136273010356562451373844704266933226431443615859380407471488668837698658069833714334921155541779228786001778618586963670262912092256715113502167367913719336937403645251568377777393842716594525673928612529362978190274295010172047782907253584779605038668417247633856452409424958834356232238323497455344686820992037046486847056793327523426182895062327855282457854691475743244401955559972655352817912959924027025722927612096560224884742529974518819826256582753013843531250111827535533765338329550671563973898605839855885132185468287174586099918562744904615660831455049365808198256679695692295198562402052671342161039745378811497789243317089900515436128875912594466343933045873438125842800239076429017106758848591865484241306089807208166932112512942402470671200392084696760846495974676506719152775307862800057704706406583874608692466621524717535288894190072888351724112223962871882227873566119033260040069849115931976537393697239354211751763882922901393495187381634638537750702092132160656716933737949664139215524981660924995293055412835553000125803410884998507555455461514461854446342343592089153696711896727133685117228387936316474775685216220091005637709743122227817097263728981177439790907499269920740888935965698919620228598694356104984761153886260793491569007609360372435304719864667540253034647280404309819809373358304611559340758167079522476887920794369775681841939699331776291484338718217188896316751449294900534011320027548923343983683501063564622156061524155655204202097693456124367911981723829456414785073078917925266708024005783868651656204337551618763445520246420168799883833667649534393870966130970218741314251467434434671658025080984933934480856739368843769706274654247722596252205173348557719953385361175177507446126625434138068710915401739479278060643871259558711227477440915188849070825357318951666127630677640947629410680780105899167766452905416420830526386058973263318873707690716439881732986833001531879339523523027209208857422024263578822755424333697266373859330067647506666484403253579873902715222340050079235530208865261355356700465208533148717608563612868927505635173496236381342977765147942668639181688693880017018712722855373460511273976474925142229740600558576886805485628805224999546223463048181060861629159887474990503614343809313975500043216727321886698611565727293676844185810084371849370802253298513010815969318216669722480236341040626855973581961907994780725551467923551602678339539434203389288630645445073631430540318387889378688349970927920077110187764112025776243679197854538140580355304689421750640889842378505912922517318198332545992144134546839731648513892497677245946265275124964778332967246137725553871909920123274603385998042112807523216715264578863107363158909256825768689356708566131111687777269642007410817734711704312226239932284065215258467182515313141324963815264961608433906243031550288042816315462710156459717909616637553930355973684222635712284524774640061141372412729280692092484519528048905391345748516793260624459882321840546093720443597463777309076026232265156225431162048053647071943712574870264267616229828517852354768162503798258567756064889572448794443001793000086725191781030087663661683409285552779452179105390626475556662277853532162489307108710123539337802735076020420230624855555663010937932335591781437092697577035176731939376136156961728848904030625892610278405300363432436832257552136432651451112999468049311946291881906294603247308206808535413711735197894472955483650669773620902067741497279062298635636020382694221112480241477913592880228633517426124274857715478186022653789245933226952507411874080220681648726592791185040529510870002512105731547972831103326235594461622997437300047156950816904794299084794893570367832841183240515617142923669242171214323533426848735934472916955695155898400005069386954791479688519767514552129221831722642956709244527271009117070308810767025710433583201494808940203737198770952279681100258265410701919531542296221490593827298811359339303222646661261402593859281643362821301627939860966810287662287635531493925521635281278820352570150157210320108875430749140096621697226304101442783850660849312827273734261359198693297052369888573271743228515791484234026565348795628139529734851783333008222781384606117765948628847271516037617354533065310799411543625505337972347997503462052241873972148231485226853983051059723801196297823978176251822793603724501809497686838287247014569711943126130162604687888662991663543785571656108135502463210798396524163529819675329019321205760779687143198908222487507298949048409462804769778407471312185655394476390670353972446803837945773250493525706490502742612560007347939422016132683918817129015332533655312666734941693957265815827513366129158221058294576397576556088642603291795230048892843078706340817627724079142265179185305181146357442431039474455462158154516506727500274724335309670235228717875168630725139253901284656156065984592667082158137279859956947672602058719504066650523374113232000332490040132394551051265500528984996351093009177952298806471893338079104736251213352707531671698378762847365218923310102809885812334222436400463407868862283418501257667113386685738058135649633186090627696010116569296576625609820005883418170100549144479881584947201132524425519196089978928851133772328109968487042259026885932648411342339441505645448395521420326825045012619602977429567372595275282512812427017941704580159546806407266649931768535237200332139421136191718676855867359357593552594788355312466530954653801434141659733028630339734013038800896574302544440822744889167785621785282540812014597725774638844072993344252944056388137143025179451726570537884249157639418362566696593378265172538205478888236454372423106781706487157870369262094710575982317904629466815075063556205828214659608448226106248218912964589508487222190421963848461478276833696240370908979924614947181338104768079475155632651325596259659715751982266905921453841221572138226044519754167315191849805943882390903410143712009271441246880644317586888444269775670370467194736635938592322883644941313584737236744660445789757114749166334695199130010160703447541527002913171031434295912772092537575891778787255063708788668182250010503532910960984014195301974190872995719926527018622649791160471906598089101675770886388129881230394907793791850143402142071783156656164548640908395339596881471644672284859591624943371073224770962566652816640664275931578321038075888896951374592110608386827530607291052354926689307807008599861829030770482541043982449117484419349071351025559038916293225654866129689993842758295837432008636054966656428924750042388697614649447334491856612892442558501805969111448087255487805328484412599734247646567088705760742365933860773814255920450924805940584602094693519182305317568598263311280220512459258021138777499917445078809251846811399745911293172053083717327663107204792668138053530161697991712435715475248572087166086142929323575220873659820741321451271777868894708863808219462566508456684551023756185493181325561608778134270478334185235123740617582114022441028247192307831029504784582893569051359645183723954401595858062882828980498875728757295319714823627570614692824119950241565680780125563491043941086345976872261865868852342624637524448287498145487363174898683901639918650727730736812063201581815659405732177868016011739805448487304449665887924224343053199799757432877377925064172637452855010225391371586840720825577562188216562719098877143337002079158133506605743151797080190616985358535969721439999502251546900928052497548876699225028563506757195498200519328498241551428152751246977552137710131615307801366278975460949510125127370882251630533079989698516810560868983910424464786487247421151054166119882946948096507713511658513427428903362661505732989070668589806842787566186387336848374747992068008555951738849181890768449018992583944650269542772817694208426356291715432645052567210829881961526896926003928513385847145204142914065528104085896186965691765728740799353958796383028126580638228697405291285141673896503996088792579134968523029071575165255969453411991139171182708076019576260187552432875802040158604546961907556434505157939464367808622452785232525657440143936585090792623092980749964399578347315516738809063062504821970636144401423438668693592119500580757488650281980104061200090111104755251599069935586250326793491125777949835081174849006937560570386312183720742715485556559276128054453211270756891644182490800912295315384571454234114704871489861258487101345542421868429972025708642843659572963027709333317599737194954693850034932389890585712184852047234271889702133722033309222820167540096150085562741906127267259046054763366700024552527253869659829372207506244748918408717280334902338002761566981439532909859625065341780921320099932597460904191410576614194023203019988229791018761420840499756046146943879480790966967056998309359266092098208762715588563513685100620270717204238709378461315218912251224360905641912106953618256037155742043992175067705188323634832509309388341548113091365358560211007252851090678112797694104627683099412002597544537828865397263404529527252235401043233659549604185591853880224105592408937314441894111738275820560913195430555698375937016920968737282303258669746535067034218264365926283389140328754293061923084725964360003190277364074140197112961845827431756136008867140489287430493288865828831588505693028730498980567113316684647220984829403634907041607120659263607272326588074794274549903550504419525506816503676461650985463032520617635475272683715124722314600257724060854878343596735148948070844059926338877685139294697398278304399390921786563418060284611169021915751946621389338744353127195558145684242787894558324776862214922676298237029016339371401468540583327284940130835732789404771142178246513887261604557097333146384928413080382266901803034275676762486559638710169526051743696677847892277513535414354015559730036679412391792452777589482600248170767549610069252602327732401414362830889287023272336255963811358095456084669514075032359994671848122658951872591947826827272504276781980058038897554949504193873851481779779514588508909970387744048038354440598024378908748427773029779701626320179155834669305056771639001774646635163579904794915852622878996863147228656069805571425736847837711634310983726735475906635135964894619612372208785620062342808364820197671853594821399359385110573664533771109976945505700909623441580887214322747941909795423033042059995227986326112909360467971745308822180379287617286242984552006040114289355805717838799429104990308093947445974385953181685052958601792956628994864050618566683652796143190612527943877477106130038693368661736196196464657845061271146763002094454802535137265534231886425393967971593731180429514306329947110871132377970327226793083909468505146297331450772320857861707995239881233066977706066731351582667644612374255516391370146571481989302252693228504105916913202020642550762225407060565601228224215694864266576012475986651448559093318587676252832033622105043623178482176323717850091258124618627627082360465871241322722723836150983518051258533208142108580802476438780863670753740300726186634164062453623766883731941689915975945886884136775968220442241150973428088369938660711905599818848321422267954532897017360911671565485718314832395193824223494197230560768581195169502276621696695597517101791757243222357581742410459711963327892875490418414154853368478308812621246810390219615063283175222382546595715713579845382679426875479962066420708787053268057892357408128012301257946018970542719435187808831081220114357353195832517627169420444676168104061265523367653688338854790084638651079646724349888847042763402107357968911278916039246302700012651415339063527515593323774609539277343358024040999082395349755918566985381518902363058091105391819066924258665334400345642023161990321701603873808155349788959777041815232413317060286807739152752807790977110582910209888601096718735954143108455328650977501064858489737302946483480475006067042529219584749021625784020786855582728342152112226903579656842239978928756194149802784416133017923100416760111726777283733671032615388022839879593859000710451737759121771005525997835372970086513443267691501735454652813529990980190748555629052928432743625817377746114961689420261405099027898988614803811135294612877009911757423862426365642366034823871475434522883059509786687259225563979093757727654930272388151915245010575471184102771734939996978705781847140191548891018587344037089075198627277230140781993282470961041596133420620507495102735124418076134039359613579927883441412511341073989045765186968065215039504028317833321280846194029297410551898248034968447782290283704969846275561205062404265592845236681722594327013751611904512155633292149881833963901020323659646594560350464357081992381813235467937905946401988426665349463528403495339592612643288552062857365489558925871445441917382160694848321876441151752425264152879297800410647333041702422916998801074032758419483149684003779818274798705523094863017753267297725242069688426800499204747097255766459059512498827616161539315734739523251798411214295359370350163318118648658984669922932194921369033542281538265613080926857838729018143864017909459941817749496957469219062114802149723557868629482483483512543827664097473692995305832487975799847406226420777502111407610097571678024890181748003560148409637268479492975684937064794173877090144351868205338783640442901113540388250376951788461450465638481911155099726902823837342125591380159296802267487623562758194553241671694999299067204675384326392733702802495613724095432351293639126652261964932094044305753560672017067642504625545518628541887338836494031234829037435611775653493699201049767137825082490843044403804077609274031953222338122634409203586698278703162565066379432963501924568390966322503358900906676116197270814231749355901121385263881014147965214261567516985939428443046833152999046051261054228080876414016633566881857370001301715136483331750148915658309696418946446755952076949474074896756682489985188154003337239451375086362217196472868004946280365637474579329616460794011999231272882453014204527139669925381969601397932411910133958038796485018868072391938864470377932668267303024318665232563368440109857968526290151769747505579396077782812355738578919535252941253989277647426736019301231440034203953939055673950654079592474961136558403360266253940397430539805260268680900720487661858971022667468786673571693025401191798353979214025717978989224245482973139703697736527542936707563413561678323682101184672614722863481311333299813596549069320041691664142680167494026263209652578087776709775379721517076781119491888192162365514824626986740610395352958784685205094227935271264297232503764404292229101738988062324917379623214217458075417245344387682314989914573396303072402332623775338500489596086458684848516251997882784705428142267963819732817552454818501942476512919027931953693349807759363104235767053918479883337270381749179296077051802497686423774281271279569053902613158902420812323570314410327928143348998977005355166744373319015697865040942289085446639167950500747887372511697858375356491234018010317100482179328909745566610404389309118249306594913830007017003471547641150796282294864807161175834800509808391317898111230916687337293377284239379766404757754678320396083957828443011275234165350854628203634686975297332002955356282682540187918495490367381387389376263532302762366876670916727042190414025012049462562247480743096862414274277348493234104807657063405307608376361881899878093845495834747251678561580371546308249431378274599035842504880933665798643727470157273089527520521771041988224132303737049029281551290329497884962900636819069291839182244263997055057314023425929121835018832681380103901917479026592294003797578022633500814778764255828239573987151439189873883722680000885224408966505972459325774527411980691022959548963524832645950385204598122332189735226771146753199301840766277171479323449837240086228955135656520507601999587344828633864271944831314293773111236916690973091535903380105634124261835034612700816854530906655097699784152425305618027637347545785159812561384549774561825294607590265841165389110443533442200608680884357755165456463245117828514603455018069942090833525441757007341572594245769351321541625763468055635318831425724523265796690297552943851142340724447769805398105314435509876988267350425083435640889801696065141947216956908566403092605991104685934418128120264963088238552818501497820619107503940587077670887367030407269066789001630567033635306844380253257080563915172488889997827347946284944079302788148048942485358856053139052440875332090387716724844789880978091497677571970015837687221649789675853393671082517879664119958959377658577028328004604839212282633414504448463466183341000513857541535561021500151265974423691250413717996377878704708771611425655779534547693609113936291782342533490947649998124182785818493390258612019737968602478651640754472286496822512641254741412157911509514799000424182883145554976783550061026462418248673834615083255892731392921534249259880487917440908295174742026942800864691695564795058420496980577523352510875138941921642667092522048829627674244426390581883730723382076352427476305597365551807059260868160395525730589548375968277551774123196980176530466648874070836349273783450720310598736336119357623657909477146330119241444577792918892660021533455181501483050995149596822317751063107360696104567095210360339797048466856376772932183060565664579137890186871564046643590708562018921055745960364616141638703846560969333023757207862188085297074903320831199124940695445014024895778137151414813248853326520520777639319331961585706700243616220122292508359310398569013752558545220715962738080722159691375067949802563744392351269601874556183010572543706255261996692439569466989934132128419511102941498072209790976524784027096724977477336064789938342904124614332833378278648765006617413847771057529582233806197892214285792953404010347611731601875262938388020974055168813125363749567359745265668014312230506452990818709740269270699943010884713209048295891106360565148550485164810208641555813704752102607818754987827333135093712051646657100207999370989360804687071533271420464226592137098779955016470422571408481029946421172503088798459513018704001816410112866868877622395746786745487736797451425112232676419169230444396492506785710033941015980964806010888384044088121203575708843857007939888497119509686454626244602258516363209637438770769461873052806078157551095147842903516754711379332139741059323143209689523640685937386992965287257200861286491643260196053825977495264815205931241493049441419019826405701636562197406438095432714722130192552171869925954277598645514807186274682613453526986143816901570946338164024802014379316105539792697962485647579531309488306100709887093886069410906215352038115993939853411895101620201289668954356640455740508730046749832593289969354801044396999009805196416077699455648473300453901681315832477655858538666906106426679721660525351968393053877295150412823033009730038751602114086092374533311501004223503088833116650522187559130806446461062520425115832067670420524946861849917098854374643249635338743815084060353852225738284488250494118583583664225579297694915515842207804368993473693935935252565114442276637483796567988733585429138695471129218720112276503246822234594154740195496484043256081972275038767845364313137600252010418244616793316008056793921602200740134134258045021067323873978123512009919511590504810739434018678042536127023169928375445668663029255807754825562430602833713350606863251736606726809498302977755369266180359858331013584035600036800436241835965262465439825982690404407506248171684628810129921531042855994778265648778772081613667407418224366441172688436336330054387732845551421318080877003696467345765403210045708762210556570705173019267830006228772917846678094700716180884677200552907441367461787406227203033347994072056335965685170286841897676260890150540720059119691263101095968330680261745298154262620538741435901148210019806272699170330020164876776135496335742287056916831120255421335338381161473819840683724360608904822426218590446038122793879088184579889551499452623058999104962870663828486392789846598229723173632058509423441974776535660769725347787015378762457468635820139719485156845658051477812423480809084669673314317883398122425081120195377491502723278730651865366180641752935734334930044171024313484865216214623266250658690817487445342334534618524862730185672076477484791323730818714996518341451141826764817212687203991375645859897942389424729114510482449063344284163298453714381082329546569083038981644873723006658355243068326141108911788558305117307316183315705545150265294529083044484326149423014000874924883036519141884007125495953335826941000557839584990446240728611004741723200743926291670016832482934079146510311693367995320057891795385896332020298027883244435421651106593069075909513534875673482436449147918164817475648150106832119231803420294040054968615410920666456043558699793591242796398261047356961079116387114620931179820139742148632160601102845410053932662793871188678475138987168466888649941733408781955640082390649944396732482725522778809559749614561521260285823665842516047473077379198282023550473114660839934979111397460519184266540550097260283520357710439318913762976156417235628542592947935610697479612409890817759500984327595981444091556313387018235358147314347941806732063040180217613616648692218389920223230689434856355330142692573827379794170956683009616314812395294915513303943045204621735867479642292163980529364399998687075289466770643229511303461007538444686011052556364771247470630627136594366713631121972145798431953257056135209522474918765552102360682292066003570187053480566271211605057139526470863267743877562647776030545974533823630063536763878397298309901451808901640866560877572690440891417141634912859294200654126811243150103934612891992933574003249846108709771778415752643766248869005124258321689071813166718951579764727123088577903290469766696984503572020684738146494099637187295286006666779810419311962037820508044395403628500463583744041795707658975086060820628071567251749003121921135690910306926410535876542430496823189267069580943162339647961270324777257604778248611440695405529665311709674884328527911477715668545534079789545493395411200327497000145743389090528950039895020750140551563525490559108670254488947946958211818150439763426578335572190511560757796854718742106069231682233567048069259504428114646360591590223571677342381542148520793777444481980804051385816679900109773456934670574947691812738924541907582489104174237779088291204259875621617100201059966876834109780798134368309305815301730260214603860751654902010260021839458108216931993668213879037303839376545056336929116219933805833035333759766605423861844053472163265256194965008675980236387488606293846742846810882385915959521522794451636626465265974926277636792924675781716140368563010402252128010927882338150971880975402372089391587458245720121186178451611610469466304173297486346122502336459727066893241275252499978496881383589635881038233069303105204267301912802348448347021247266613377598664961791847899493505252528995287797782991102894212369818810370397816316788078861862259309536681903189350761672176069845736196163492636038114103006965305794043908853010028318356229109841895502076509809565741810318777394599452333695189150250293890035165407003523166808584000917672219985784601428783516966958955882810524625338487918506870875793003439411383912848716571744986348617034105429397212474081028351037714609594348596279375755895163329037615165086028763787962635852343816221796048181249350035635305921256173976234113769798208714712088373485120856569018962064099639524387866342579917575355539406759613590356372993921341327954620785466791898092780056045856658564420780893765770682635982674153146983759884814091063194868299575300123765151952120196007286633638054215694251766934623359315576278113077867995700977440764127883053513213227179868769429922771649718513635420817749076698437289844091559526087736838900489646516960183760343982214781178425393057526726319198517610176849462344670051436940848232398897859061266626563150233098898609206692163439376679330816005894328799788491902299594805267744945321555193968826421086031395856921002214658393986537363130541807380468167625149960630061943511960639363373798933508243840914582217488696742376453390795062832418682345893193794272099772250132932164611379070739137035711567162184507549318345468515089236168604959909523541637649446635813166447268160486837210975913592430127988385902106809110009049079212794834771584600932298433042463080090624094547699303692928260766502446817141510622806937043349589746273505757491493236208616589617232431297502038907879886815245253096926051676172590256834971072606878302096012109188146185608870598682618205120607589197922487174707167890724879684518634657472337707569272958638924762513379809085606772718562352007391512609856573178168259812356661863190386351584674791598995738362109685776993051884580069088359121840895972660386245985719215345155582813955653620525943529607923942213776542221755985095000529892559464032085128748086929044957756286953317316315883359272700402924922179143124882777864032419453293187604604144898686994047089046066728132993509179948373548726149268873638164476122342859455829263767414591989246221777319158039333890184555539383430368775412447972079470563808205330036215000703394107629469855788035095434038929727608967862293058307125010300619105764127235984249370043007392864861705768702712205152010799522880087240133593277664545084089613258840542948909738092686310409322203801262100398711477518850854054132700072982204541438550831660564527871486407787501359076211901692587995267145221031509347774207568390375318865113956602261416003415847805213833641656680333312299776568215292477709487611498768262604913628340331771996463598858980569847358667002089580327335387031623651002610927176474511573347782132253550190169789545176308857051098151673736112447826808011104740010886685105294662128162221492042536310404832893948954573027635829112991641370418825145987606966883720058066055394023266525435737290392622591414498867625664300347511275520796716863890850592115942084980027134290103585117363514242686354235835349016513509545112373418213255090641237320948942137083695223299383133041457302168848765732791106981374076946444752563783459142039421736634866517200753295862030711755449309905128896654382406245622126067555631733398249946755577562462799648812079514410128434133901807925380196792626798854628752463703401760013131261241168507521434397619630300028324151553880922539128916747472415394806260386145300472447402906139720489568957697259581896632556286512908133047606605289661503941837654844778943353709345394148329649144137087648197981259856063373512767583907812511012155167294688772395876278059758973674935532957861227024399874616271225920556488707460484352319843401241205213890356524400021441166829244028620096666913829623564267544985841297977366741357966486083053669178402841233447236546087881122263554634742409290802509312587181261833216942778540314659985677346941345408864760595460181934474223291779491271559445512200509842937883689857867665565152626953191289547382134185930697472731722976362334824817245050866745825473615067337467154029309848300189731793628637655220498637719359754584964120859707752182052385149427400709794882445639234465359231716006942115356989915631439065371084374370211922455497424151211662888414784649485354901357559912690753069084161141916242881452947528716428878691126567710212924295329206444111712417501584455500415110689269183523361392029738736163790796526722993167299107567371744302379039183811206974314948328002903170814941466909681517751924525665018354573008705911392350246812260044852360442621770314836362837874022212483812707546680415771968847694590120995927046395681913950267341010327166989876308373638703206697035290601116654040388319439954097693243470849767619119621720755145654267901593575365735248680735058930144769302316697678849182070714319771395313685225754433272753497126626467317938581246892952241207097678544672387980129630521650756926698666329884412485179085870605647865273228228363501826714664437090918475246526750417659621611294518822772167391704707180979993309212428765109162538984842749307701458218632640391795406901344710927647927435420046396087261161343825092337100977456138782430676646326093681363991944315495282927589141379602622309711895646635116318719273069702222255636355955502050043328809847092001926196338321722626724178409992376831536430928033885330196606552796028371344610007432985488365163518174513042856782213805339832786770294633380961022906623807738598430519763484875940619460120083793531570336603338159661643802883417485533353995218867346601060941086838578680512934391225777143827511612525840024220504249330039784822887130082663455009183557725005840719616282228041010134162171139461388920106457255392626484928375080599609492145597109239268899535371505968793871161693026411955593424523342386760346611395257291840474452943342054456251343175071046312836003465231061794032622788308038498337201351323504775062998378813783991545941768870249287468281516317950690776519603650900966099602895839148099600969153041900549921320757444980072139415428243081981983158624107011181315626506022288632093980370098332832136391604890515640267040008240267157617507758853157097026097719424732138415448682432484180851342732333615937857796239464355288363048373577310841739005181425704149250448089453691840144323810270508639656575273473837770841367054921721165834190447190349202515668043645552451932394205389506767883948119245077029367606915063693793138185575844788882423583965293125667268730205426754333697384738895034518403413889212940362723826764566181119768664921755184123138218834380785362897089579644336529693698280683290590466829562676963155111664179341126881839757555298913759691502395003774433113955415209162320284504016631040108299568504597977557857698093497252402476656907183549846248730238288986063443360729522189587315407708501909631999694279137150456352429173359946651801438092788683177898375967040847822207955405999466641908458370090018074899320986366168075617457226127336333594745343077713210906125497262617073144998099709978662210911988682539940534197972889729118605466568385299533387004465163569003310598174961549323354034531613853981088718318781082115840377998035966024949723916515033182781143085492825939215463700407137132739662456056060586735260788342597244527398043748070906943938367376153433059853000299501406189188917754036541967745656918265241892173416102098915996323817333456095606394505920916980911902374039304588693329524979101481348146188224213594854673858788219440302902522395747192286481805173839539532499488273590555611420240136153067526525535511159151490288563081853607055345983778914058825244928630223093658983598673040554767475901756890335912228432893712421992326104085950559496925850675605651784374937011883927731802220596241739512825690910219464615015685003721752009344518846946708592437697690346762956417325188372592875775327909564792959011137344799983131855759101267077757638355146804577875061913940060149513105778814929669035331237727976228796893540447280614842015212727628771990586246105134311602337468892234232056502432500104528913092099865708297204001949519033961931447743889105035796099519612560532017198327905436180983330333358297244279980335329947583019660635565862703227753022622615775475965918153407296254284619458962119248149063951504247045105902157172481735824684245364162382359085472822683523512210167306707026212300472404016879322729626295710862551510867907716394966510884093142967405612897654187945509651996222595290690972138882825697805593899757225421860756585190602894678179452675387573574700956705991079177203245757784406238612008472383741393860346588147172699550601079141412956379852981244059854162454925650900928676700250658817380962285775506693709451304964916802897390963144136799448078548291634085705102456446547209095850255288299235464188969399529055469224498247632117110854523548235627809658151132779344174214149840214273861387969981970745325350402484015966406248152320068530059576437582838836133976437795299341261296561052511174181822649150141151697780588630394968915571610642193894264780139882255899632158094365134900420763107816346832374380797683210567619902039120699250686042925031265646861343367675599078811445031571648803185134805727940777821890318498450493631037822751813574082352562145100559691391353456798613144140531672900712564240434223321071174215952855302121518201357927492190918846920677880583177510580146100743583361272547765214937137259910868475783639788838971269570390930457880157944281475731662946530187004104059767939107407411712732815903918938332288237300302507903175152304141245862108549681675976812043502077692473247520535968405119812246406059863849023559810364833488859798720945962232633049815859135361961710859843409436725080429187138979458822909265652931001775364596266476912879766108772287367792958008980453487183025071271559608637655022109117123911045929181114632271573174101551356441774594143489158549118721670200173647991402680658656233011543032854506895487736092793689833182482156855884828555727772383442992106919492514420467107926750722979882830369228659807296431401141726203108773073732890290298049663522297626981602968390025774434082210288117290388724581307857999950167776827436664877543303725156177512606050086672174088432782136000272625608984965702871133069301745450588192487686045897581738012571503888409737819370726986033586418754877005212377784162241251741541542781722000116100941780917793168356646939673647657466736147362539646762019888349589339873750716172882939949479473011969813161366696526364585472049022861616350447666581125315303072994065537590040360276441105628041185564659013544385742848841088729090723177816210600536654994739849004278781219410710965544097897532941689103965142534775715497486401278600696227689778825008863679592043705033369941146596412113490541574281822779243768437842642276956908987477118634098723710457463298458564662964160427516123168807189960369620004975129552105296900658243018495755917947459656494561862165624741741053134384203609349485271889245357330412962495256314310593371053062679261510319234519342899827185188212717064426652101725731477107717044580417228684520377136493969366339772485313615979986769247368901672701867747245263908971482873243510252670507097023560077294593223353811096547608493861905131709725886138498138428578945502538863027144311135792630551522376982164950160037861647482402740506962302156804576029577643386452282492045827465587203896540407832474530547273121382714586715609097122253704732695334902615543258686969150870116746306455284396246101138415711290873199380783373525002586490284137789484693107324941787039249866951040340353441672266217835768494512570101941976485615302707496285235223831118912199365245226377699403669322165388707765678461163954745983333210123007560445453595571643317740073038356820126670394916091892411354006819757940087034104471928516565201664816853416639618770123739724763067947253684813452027292926023078146549952387620102965666709327875503771889344038386808197828378591667529109863760587355836268754214094256263784758877228702804696241198576899437518887540191765177676363214057675032652760401126883301672110570223744919118327734021025031586551485758427649598824890267787544072052747746761458335270917946802689998852533982831656722321213931295426046880278825312753546329976028950215401748631309069408048782884586337265353678170662859023140384789557204949972887135982546961409351642436773519105578506575135401087403056326350418020036833702897927759559565098485413305543921982607547758647566316277192886703403748427589758978619835964993747838009947536647466966802092592110425857896241040749218406320247727340907172212174347010009267968573305301895364208741373825152969469592115613482568778308858744248858964405845729315321520531090676306221460325954926432177855060166718071219627534749958731328195661932598380552235033126194556803650167775255903721490717397411293540356383376428511475030194003503102962811410957377654680899907208325074919902939409493418263772668118929382839372999676200136832267180649446641165259657479733071215146781218913937351408248106435554383996174726743594088260774757643198563054883182895239218798572611987621467381010754583479291229996446994636746709781459686117223262237044146453476554428026835581980557531240489752524602902812316650296320864309967435033371949861460908234805818166361867480087493052500071990656306245876645942335125894030583655804672891123690508072660797529910243939857600615933911448264568543882963423092589332902066115991510865625260853707676038358248211565303615596139848137222321277850909845267687069126556473336053193974245833153610894181529919466521348471230585474470984247461046406560642905334605694889196311916551932235518414940655381006775016986948260462106275963711518764289160930317320529029385215376668334712176816744551930676647582579284446178851848215219333564472992160804110718954323615326138796843008953888939021169202315367061576975526166811767313766116156252765898265527098613477336248537809581676817236637191815689492661114308045707234461837149184394083426697629945747975198110911766609400308358242341422153298699065440276948744908059906246319282383579652403266500811591929885769740571300288981329662329354700429921191121189815703728251245659237972539023654126278065332520477796993351284177977027594270128344851233820125872349399867444988409588305741565215097388413930945622115690327474228267490137096085967893667584634336551358851718673970949483223556627657222304631433975761873195422517081710308383518765084016425776865785135213056211083698554007797419929172100066985850513521326365358248485256134779219363548912468928990034773588273289900297004131502190707410048295523892862169412917460327624861325228006557341484527501050841637619877711410467860321491688467104351063950280288836581285826687765581336084719472265192529409211889756356520114784702465536973139642443204988130237797840543258933619161167042019406014931488588784382512100078193287561828407690654498098808065013562894006894961310926962731348183014796574720708427461964566981216636778788891377975941884370471645901646964216506966842514996321594789199796822116092414366088916070835639961430637981397728500819696010779065676368536355942401537302916193039204611215669184587851287800379228805796459524595833002468474004373846689470706350969029391088538259368064852390442438903079012159880722052923564236698971279591566680255224007786343877937114720271941413138008837094787866576926435697137494040224839588045406549096069647859018666965519758225915145103863045012281608849953231464864495760787511163694990939026849058187089979524840756243802504774799873422765018137050202470789533619972333473674262361723792423174327990211921439134333387873020257042988936308783023458604541844512371372714545522152952848507863197642047471921813405156294048686410777475980548343692236894319075838597002212591093331447795078814085021395337551500408163366165875305461855639971577573249934369241533332715456932185614350369023799706796261911466496114366476931720992640520220105024458704609999653196607870866171282525310426592682520433838066028003055722699419919466356308574523363766770923448372937494836123889288930048639852142727999912641342614488891590772619315981048566011422846020089662597043949798066145884130225293336071790191984998542283219886433336802395460954643919486833549558335738049509471544201242906598410382052332870994287159897725553527919541816442271011988939925979927212909549485741121131524363464693822367417648830150958068765484025447701790085882983208624984749685644628917228977936984782130612596748867309337450369323734071611696074789506344482045843026686752735034643483622064729105662730988114895895932132829406437438503432236961133893115497866587677077241767860476713807732930067223259692111240894547526182818185478971322421550513276904699228948230433751367445220425703607844985547057336262326234646385016486908141062332266694966535320153808874090003383199924117789059441715470093971152926683350083359680853371967964782497659528193919900159566135932047635460758498070844934146321408618115869261407055900365447173359831384034042219941062915353964548554770467781228429049829121558194995964947122599287663510953018658238048982339740813999277233200664582850855766316178730618977533294276660680943107228607762587966041329157973735671017381956171174024321744797088267843686365131937103894080459911479289576500787797971026226827785841056579081644271798954119657838877796581037104924678740680933897392817319775437813031090858997853408310764461787424122275432438681029695512323835555865259294624904253049757582767867084669454555209591629134148711184657499045071338503636617718542041182103756769919335738603847330755194405868914820843938666201571050217950552564392433445846938477414322708347705720500559201939952971365481407672625976684450101573121681018741529847599243519164514388174969571483224910286780630941121436477429328367552951173855522309830836344473436245086712790143972774459249328891885331285367802574308397507802777733849670947085285007025256011102381624334472697333570374971608779433907183699605627577215559750064438572184825549356943801695752156703824862639655321458590776653859243581601388155826735727488865513476649882973636144821470792954623297298006169158029068398809570221537730362860006762869724090215850038063376017933008725719812390555768459986655934450275932460756339183929590811560809448190344188928387236820101086059483819414295120062504248893159289352190579029116050980494394964557238282147893335436522406919049500039296325342594253274505945318919795694328296996665502077559535633644076148318617761218299070061424288404329922984913606177493883124099333163191512324183190945359054419063868769663882001016265349876206209772368962301564069162890006096007337733773895844696423502052433323438874655797831519877156631565221016434064850416170786406841881465264589272053996126426223903602452106100885013779045212650106826407260562606876921089652044596691911109812017800512697738506140613828306824935669985309274832953041809232799209548739464123985174905558651373308536114492800078689743227167919318805273830004492204365230094962791849794819068566929236761394325464033337109949254925163532242981276373175631338967283834824094881442511919605335406183901710721807321034532809616549485681664056455654997300631627506141655909260309109995551705587513253034132540399504288601200882520095566188709556308661313697095191316593978173313696134821602339375187905564417577639885372592978050281674469020973542115689730300514776295795225860804429717837454149142050401576868044937839303727545931611651613545431792271017650004800452787212267346716935887519870434782764388799623868872691071117908547848626368631194779427686789239730660757562990432531282039886491341941602301010723481968495291169510408084109309342014473423125628389444646144416950472983381293310129076822628099270113917155695443583034122780163345701900426902667242906606066430884392264943744261919211122843960548724613802677718113379149699565898894140808889757118724100445918460431904970289838191796109540411840828248996352002421755957358098710296537365349973391776320057297205279356610088555580239688679229913917617905298893548299919230854023921500067004281700642411536054597020873455164005107276818487829781983426129737643633306404070042743169522809904855839669711146633418482292487401145817937251869801010576657807932920657343536353254108963032175415109730064401436891467345040492703661927281646316088296768787710788394081440148927961652207139669057798343759675502830726255302427496785353304679028600468757788942645489115165815954137411848159396080556947598375179906855509640796325739842817654298499970707011913736208353966852916331022873725822051857148599072153541787143719089422518370466553906963041248176989028359172690940098552783615200215512540035578408961461648143825898721947132141792027435599917789735333317622080156814825746489226774165989738571081209822597035058235320696747897881858208889267421756547463631693215407587373881466364845815691236735508718655285884505017670999249883338417988860106486448864129466761000890402451106062323115148349466076962323821979297436473244573446015238076501521587789170133220774821947925950445803744302196329133829789825870479474498342727725912869648708131757535190130339679524221896049495539702753071491353269452786231323580326377440177234976673097682440244991358464137488662294885508286372388865406087904820316884049794414673779000268690354634168294118082271605939210032656826464438983193811128449063813583295736323493246235841828829590509633576786785358102812501642037272708395233583678351102197409985673944124785107928675637018033696111154065263681986111082931297810296723377613962530956558656387909718364540697629235228550654954558211387786089009018121318790827501568357073432904487617908720326378529092659750324998087847579603119557583781237552178740672170374170433622966108686409670495926823132569703656993356471545101940378419566240838155888517307685987926319638608908731190798304652753660517110564810639818883205496046067258352827044317203401250670285197200918266429462549425207021698409257356652095952093898221186713551154526547649020096467211215816947665684325917579957201623832865290177606078980514059133407757331826942403470645161138513027673188409295341787998751046824804283318239584597954750714248770463304802053129617140277988264816098831790192273411865493167328922356947141415312489722964806448216407762371632330224876992885112056694102048176420517199167930615333158667351356791751478156404137344348562420040698586538042690599389987447497093662651851421458932100701985315661304618073324229197098454069356379009211429485765782378114383202356648208992118019906920913861114295594093700805774578612089498740522724348252383663590973023192625866830594364513448595155423401031108941833457939288949072123100701972851036330896843075591606449192163850675805586073927331652293614380225244068486948907063293515344901709381897795804894814590278415629075498275499649285670743962217570125368032297071223802135726091853802162866834416460042348130899017119876666159036881035177952269206812323078594327798933490376765974533001992769571610879742595600778784874804256521915756073254546045097825217764254772277020813194889499791104522218956513332235536367719340641385395495532271494146403185794765631192026911628851015661623663721300443170636871847597234577344852072560351974341112567115193887223208007113807766549195316607322672873663241772310783647733560599622401633533941984740543842028583562565377309278069041537409417184365432969004088127210941711754316785180226009885663221338853290449719883863254469439009106449320458304954632212977057980530926891252691131718200991021615044403948564786892512165605307611134963297746201761793235317562320150044990738110616622068753105869737301261326519017884159438461390665086202833806576852619044523177642005826296818691548514794302412095342540915841750127441899541239957801514543801172630940152511339983044301087900105083224217868901159594963451946155512295280013432661066456014355133879424923663209334225833585915569951671334770713693210777125632881380904734031147941372560075370093088295418157099865055967412733894202554177900159785214790836729714125419932759435695560027926980252751258314741674573293081631339615187992017256395271392106186364927371675401843812238310286983796631574786325225596533999868959453439338512982464831032608899214505410094549481456007945162517848564668175002632838340721866873235859034424318045691795039954083427911186790852026001471512871287863508911318169289457550727463568401246778803270236526246807171559995239695871568804286686303728143387917566357644429424388506228858759935183382484977078673117339585469823597234155662851682870279897722771240550023165303715626873890553227805743262379220312465478926530304865339115553071596558073212269570967804653335486812149252673573428578853089171074417862994984332163934000235717945172788113394602431306994884157770828427660165785222640716974249875664824740300436916357101328642653907003444007453834349221580142768419092630496695321353203233006350373725234794012997410244682044568021559261528344315318266455743799271141092025911944901805600220569205551478543307532393059584499266294031096834728214322139653809346510092026066672272839418672276113775750300408864019731931089158783230113621871220608997481857095162114802621829384181808664975389107589355717495786955762659838217835514133154469882985240263902772232780309307208600395503395272177588286618377296340145793788953718590569930983057715032178677542699595786624670383680896783965274806405546158592409312080210786447056483871545391574490574972774005850850045316682114278935951068258813392001679707760215358083380908826451209808100035608321870902248094381851196770537064132953822444486989615028414710983118475634786960351429199277883943746757239014174432332493534847358987468142220901879756211272575062873568384084675981053180625509729255599907763620564330264398411067371275099143181972601189666601102158229590674668405799653125448302392672184371818038128753126990636749089156219842514592506104365843049996734138733059279351491688388321743042365474134351193499064835206291980946864854231049050481437332078845983211507918587026094816653311686908644564061704095343424715344400245232987273269265371610068804107440430816419681949710244946571896358918857074537181012315694060689572039428688565860538389202969161782755437621088980781571260033786162263871293769832459481748981810072288183615369855592540008521343436679049164990229006689695821500774958581012466996841624523548219957877535640296365958967333817907421699438927420091862460203008326397845544245943683055089818610479415702065209276598985859674779983310626906594596524313931907139154238772321112780732626467399211146336011236659869078557308592238955409469760988321025319188577040499014150592672986530230556711253980180075537238498167020672779227483420605513422595861290507562151316104044113525433499584401355489044080297625092361736181555369924197674980882274851381016626772384487785501726789170001467063696844130218888490304441226336676752780157589919818264754101888897206800785886023880843165078854974793533904510218316893672003680152848533868953534540345141895440037671912911132233896795995933801058803354229770804945776185842382512883654227901480286587791374048918174326850931910907774244919006927315395715614505102212974264118401654741208156539770986941105079877770173151704138839609057677722376660198804382695256615004109837273986326893154257694803996330969206992477052340435436322134547028645931254077682096132872405296079696284584665117028014458373194885419038104101880607800939149471355172115187621346187983376104419688315358020874592577234121426574879984902774696291802835212543727836844604824193159106432643055519511983177182403689912715245600399211149028581205972185047966816023411186935588149218879743664391156428417073438154199939893287648664799322470674290514540059043986387980009700634009095681943227094770308101184653338279166007958251734704891148896077374576771513109153636769535739404656865149439292899668220052661984114493298701888874384219250861326406549332233053443962337183374269780246136486777472684359718060855401083059076800336710075911724610627907579117046022677858585242073896926858493919978456230568497287588488926195849958374268137268237027590518914186507835436156749855539924165924969777200165902630770516019331568576092417355075543353096712289608987377234890743100554958781659786495465422281129862270974135464825388473896988760293074455408090158182412966911477772266705776159584444148376383426148725391874531873044244513846188585737730247495819852029076427574541275969575235194955207122399215879100651199952057639244059887855231101550767628479563250697186974264517747040932705201159495219491820537919017029107426699026808963445731448635871934304606197555292526778069652343153606931742423797012296221098918530528964352043283966255426803015243367947878248550682364685460268173667704381675933385452018826143460909915135148789875641913160665071809781834917101459505652947369386662599807129232870224576146966494096353232219737896971994060783856409970780443997113308621947308638262674242788176216147015311771494673576921313454933059423526569307375064130020137862830447105879628853442759412980214744335016405947455957167523400197232953014046628344453685916574866535642323337465026417691087272261220991684435915113670615346700415284472122306008231663084450531608863963121331473850010759584720332663367193167296762813748367463446971170489894686932396362271540883305813215077146426387745499262013029092073871520149606918881583252450397088487773413862863667134688706390911733178444071274206075230768671742895194577445223042005273031826703403691442651288458883727694720590721481162544708276434925637403963534943400228539431726813009272982556982817550163567517100516016499739206981968389046511757739601715707992305819653672875712652000413197540989016554390207113109597294039076842148952400535190104796972726283899896934709908109412901787523193780156038185223925667016990574003799925048348501685963955112397118721964150559048384251240753223739484355653937382455989649214252650918563227026129246062233798616159474196428358610457660126571062596701088382012936808698092025822966235870465852346941492526480028364857394830051133019193893152222383256559139688400014126737551456745877839673547926137774952967056358756074183755563566797833684886667810555539136308122846223344752630225424987350981972293017226393109013566000134993578316805977631193190632383306451806233756325460517569278303042935442768260656365688856646201738347456753675839091811225164798135199196785131491704459820315819874388665173320110993150700220147470260456640343457354384838621943216046443508252170969255713968517813294463812113046739528070886935079592254886495295475153954626237961938232889897848043781917259000734241968201024590954089847791109262112200699183754945125099513814098828693419027141168114613828670475904824614718361037957923714136088817436288372601791539473916183793671763635888370114173952592987090108148292354450887947342588290516063613546326856114734775185596721320953438550218662924029549348777848782032927436334413470171801575206161418255230845241917270396821663722246630995839823532092677601983485650649978850552380063029797929826397196592052968316392100867846212113941835563956160140351396683282629905015602517882134772855364313234887384553477410388295443735111886281528490431677056359392486716393634819479927670945520372939684814620095912229065804231773906186627280847865113487024280974428209474111504945521710449920510079280052462313269518685741277989415502650626722111150170315096495421195668715724204579301903384493856135656242418638155667139433327656332023172873641358420976474754788655130316276518197624497423336713897650883919625317348185714586613970693289157800690962442607223665148426925337612092138377710511851822922017571544362979206205939591108525649810315409025722449128073837242625163686206639291191602182242543416945530178153696273193524932102510711211117249406181245436190604109735413144002024343282375833791967740080871475348606904964736879727271613213176401615097522845050490709875578330451661986698757486108033301598671555371035608205404606077515543244666242085258528831793355014845715145989796132098682554224404156002957804172752351289099474274864135810505880762948509346092168662217995068810958851614303050706870545153741105671551025678484271575374436956712207799326476154847180794203798878107391079699244579744196265743510728364723443525489158855118590258662379364089085440252261007409349783794097857795458265175698694579383349884971117833414142290575879776248791871774071877767339399379789900090360526908298732023013837782397507243235139473036271031543341931728418613659715339771058717351443781343868192444979418920549030798296283942176620538054453051377332592967325960086959841341401311703452238209095430515302126501140280536260830263209954529785211153671469410940125747672884569634537479635236836124329119654146820989027091576572296648804180639630663266170034199124958715091507109603416535504444682348998460829454746317459754337517950196038314531037767746691686825362071830028271182187325372852522710549012431622488137184812374919088099774538056818954703705720641444777110134399814682528970564873345870497318770246980676611727464440729503664613695255828076913866691955320736279246923960693625504335457399654381577920956719221131347694884350609601259881652486171084158962162836591005371971640961303081291531597436814442942631392140491962892668228561628458748620141755406167687285857052009941272599033783577630397824390103857460559834837074131551659243769748356786825885867300052135432048846525527422947266249370448034824773751395110251085015211790237846615768332417076642567657390062668009831501291255640353799365285612081094509243320118112773409822775654073758188793296605588807656292961813853901771477377084811994994999480961825510848663635606830018339552561684080126721609851853966641587850681351487990562234249384569612401088895630067997936833691915467964708663524025814554921136586330339881505405373262114224578428762818330896090399848752809714494763370801655074977982551342077027359853787409257427740027116526146917247204338580425274846353590595855975119358673960666026955444651132779601903699292459049311368383736807610248086559906776068780602214647834530422154871968441509473269289945090822101943741879025421093621689509872501027487480689801134996629175025925814503992444871111437241898948876300939668829957136602300762710092745678200833910441917666017057169816058040944674642964319937491218898463462610499250065740913205721211068514551429428247543121794063853722715438432182770204590144955655737644981991932255589266543910743456407217166818915588234796618847738235177106726146085948227564732791239661883954024303088377589528000826073374523835672354674437564219305833341339257215284906941183576041692993101736400440284871527787599394973168023712360814698926566236619376268613976659568729930662002858321522912574816179343530311350103001376891178835072646239173127578072258310841656618893812680314602960778078634712018555815932752833742472100325923651357821061166916209180194966245668949598776430752520690482214619789226776951012449898566315251097561696686190549531900317152098514095632996511495373192549603447795316872146541921173505873145430098254820814804035541172348334480619306105781356252074416690098483282402566573660159767775969430185396668351303874179183371912798454938733314471207707198001358353563399844590633079797169809330522889373564004364642175106307363532540006219379946589752840630420585487143329707024229202004279610670234301832637017223213868305428091917361960865022136785970362794738954620286658421608036376178219749876022055054060580239443431702855166661558362185423338064896500241412990788843691563765630400464681613449873720879799664810268643698251107271284235144408366316718383357189630694017694010781443616721879391386004022161027491747949033524498629718358967848111917147936198767574410366175626370336304191756121889228391386986710487400845003285219602413206641597493190315629510701827860911545967931923324014020127901068640283802673048699773055158744914149971129181990907355899368963384432073529952529361528109575599945717118985764274946609005655250927662997533729361108079041474436320338318181284808563217233788538429957935163454106021978254899674763161726798940425805367507401405458330934643553547423040529529800408035850994741692298229568792984266666104010979988902819287239098609858039133963227801282073909349309698607353035776388706434398153394295365881546408137934404723180138377146490894287288062385372981579026311828845339142568538619694842602663952589641592566417389152563729770514642752573367552436757385863277328208230249438685560755913113919019395551521734629533560639704983093922169014766461180785677276724346098518968847742921891736666531595122983623237964426249305744207897015863660832453109035360891192969643499968637304186905913068934926051316210996489412296822208345228000806633032736097712289732558033975594142802858773986847761382985846202831552290180527144965617841921544143695636964182862017070203289648406517616023721573750025390509281983766184816425052697948229390984077260021567615782699714884479050596675950289526100306411960125304331312255326334980326658007895979118334741268386527382012902347429879164618276142517132381181898679199064324153401699199209150148102948461623180513376476546534248400798659988086123643907920069129621520132491931783132024378699281671855966135349401008595988184274782821606008602749706834416040077751178267498194667658665048154427108071952577822656346198998489955926150979244850936978738409234459389271390457045585947159526061240682166947733831531752224517713679769099266352395119484713234314702871696606550079663427375087531158729405097224646343019566359652775696634566664162959902366611828741776499280940083177118913505782834411845162537806400910526869690009706593329631177594928522265602739432401406038225916896708988206992077457678496708534243408899853749519830277626034423949066980544394683124114714135680547758285764298640099478514460213218172434003089318686532332288676054265182078291017575446941884497863287852910297629470623400575478552398932936783979704860304074874592867436882888079354054555371987660999429993457635639788249563033145835751901655794132535118939044864111858150192336457604972963794521869959140719852329644214799934210848080746193876273555945893051665313768799476370405421433284730480761844734920410955632070983380362425202020636066164226528037071160877082231811019642661086488727279268781115105540984785281549661001083536542285468278784110374909139071614186727599462888304811004425357166265187078221380229060704328008921047823286773232801779745834712710279234455913848525457865430689080411851662975618944565413931159867698087014838632303030250190940904242970618391021191968589046056614726608975815162284763654033062039516030098221461737039807906968493494153465687702251746753149369119257609577395976415390216029167306223201278282871518421285110809259138491621745604835360220310157383165916623194716861238044837214752398582866932766781001214402826927479316994461639684077400286229299936210780831592543816792365900119488795294670573100335101461573068210533576014306021927951160879618186937913533903045103170546731868655879943304888439734474555763121118295857824782856996671216822938360068879355966889889755279012524071672469358187894048088822792521658705832643582202002165985551533181825733720670853321305237289196425001256573101163590163656425564265016973813490097996263026806176472953399183582168415037522105267697137413120635378854210177685701603486184493872957252473542682692252349876903459418778392202825395574724103938770734945420810755418834981135482298778304153096518817765070075023110997352440349939986141444022892303368708511004119783891730905998316552565761652200841013999557465583242305434284747150213224081215642296682124439181866174961579969475465883600168995852064773165246574340842414559175000742845329554067764871240540151032731059098297389128558019989138251133198662233035495116085608630902359211242519955057630697731999513298482598084829811161725999530357260980038019571396635638656782997617035093208951954477148443003434555998804746918211453212515175117145050000425834833820846153561593796499343817443614808353238614625576206358286600570970161386031226091478446090637693205059441823730502886234451798041911011452444584078500099438109225846236991105138492779809111731947964383342461544712142209002636195093093575137525206799432554564830476083459811649458070052786309563348305038226721972580311497758177709714582054956672748887824124029604571622004902067250936293715379600971638785371575262629369574240244293684921175098854333623057946942249881191213719882735002084977094527468769933907189901149349873322994832320884631361158032615899301717154688995320834749638203600277213280504225983507510443594122763102486606139336901062110592595247901010882272247750608409605579109583182437488707412586585709854123885420834819507859137242699870712527597989342206598829416840866355257035894805428487835157250720848612532883791182034021923787898435609613218181781548753273688731713870094798674408101995788137846470987167164912461590042647972049511499254258841466497970732239740852779272992435845637487212612328716462038259583773604606655451569897145282308745746625122065543505527102876167887007703355232465372427261479885121711318272830623239745276912917985450407538278557637454206569877563607974721874435175287031844771309765611823505858965424912746231242995660496737545349904138392136932739283525836242557763978066889710160754036245530235820131262976889578878647932623446232813248722018089512537662981662148282009380945003763262291151107976232125861874969812003413115491998487183600853393980147804490776498113681681633355883977110501410507671850675026368435351645045529293389995994886415185746335506920237272040192590421932643686684989080759010951457776916861825531994387425923213759719331070207576887083275510535950336973260022128236086385069376422489330487787674784723172464537445242588873737221516441933423541218181257209123678037777340294348293259761350871521784332235226008044816038196341943942621894686722965240723590847666543803104872344923880587965764509051413122197717146622276642776905131673545646195082840770875457004290246580392217746806488231051241414629160458551299497375015027968215297141743707283771923915095127688199313968297044807835478469959296374143682750988645951048695526889758293496822292133766511181435187789355540697731813277716744605228319550459176272605701324449344716468018243793637882964018948251308370781265493018834763068314461511764351604484997235349454646042076027573762423604871219921162964275309441823254575568688403449589773996044357582973131911887134267473842698960628388898640675709671571570324651250930400770414255511724096824291485613710283200722447236907936417888923554205751529304006469143847919777997578640665492461440024568322493866408543028781626745974039129371992579599011267272562276105725122812363401234328133531360026742939738753543038575138963707017258678718526805129812250994627118068983648120634383336616773241791949213375328749482075210137783772604746226390548618160886728526308395478170933726611347875649935974500972961883928345546212466016590379211455804519682962770474913529418086346091634844596678658960321888931393097099585285617268869717566467733559898109681014813952530004120399605766626127412283887339587112716549565939723291677866127705822878153649811952964053588954744859834040899478942253577100951732919162377910677893951264354432170383296802849861317062933804010606354494215359537267878495106324810552054985407412893143736358731321934944173558805551059845038557768451862579912378206509070137384308188217419043519880971570123033760996466860727755176016858776022657557090896582591152174293495154795070668210254529800929337673030698388672440634168917654046849799999285524605483208917087393794803363362479504085596420635652312131151170378508736666404307485614690210427606050584122926096149449771412536982719272220220883417562216236809207246019069198605179503724350047492356442809199068969064272972694705242182366945686787725051529606629529330409031073397373470279730442199141128729799404149401157839157957348828820864324648985763206891168393884662661170912432884278748619528816126509390328579318702716205394508843605181392789740504108613451935686587195221718060489450897540603107965318618130786499881196524807022694206364064362314149486934304538353854472074883394056078314140013572712469872949156808982660053497057424838612744570805357279589168313188984133495097426596589237869430897152384860036870447918649590322946017566483490732820934957713179461221118750613621758522254473479531628896925100707061927664627938264914607483624485544692420765181238720332179341903412829751344646418708260075026544091863840723512757595391267244567695131231236490359419749686098474303789284066632476798001074678024355536653518855460729903123812290626909011740123891116828844775403844128078127425829791184741050162993669225769005467557035438147398808723171877203478890055020532033143986790659416794891037553023154771209518965220281931391667223679331589198732599212953297318451256044960036813347910939574246974677817101215367236363498445940134076669537808594472770855102276110325263603784551267486348320185343188413208542304952347256351851283448858487344421668052081073177065943343757744275951474849404677343838460538484984067888718975866185364120120075863347798718382121578178064969433645546764640155464329248599437870891044860582474286719219438068421382756888986860690615701111828420754224154178807644378030249288458015073594497702434471917740220693546563943677796086867198397736975689175407645110989713103053862754744072780920105991266499896743748575079816114566260323417679994903391265487270444601196227944923112148204469741331511308564194051753903293008969156063562454605047441634268537809400101165546492123713475613176803323734388405213437316624016942360898245907241363192511152308793783757716558966291561786066372811196426690565467131773018655731893564786115035538371823999802584515667716460397486931924754633734759430679250547132248433849346713669033017335341582769592256605711306417640359138756772846852880740892376361431857745673040510621375535705970883675042178514372393911741376268426806482880430337953157720522884890086846835812775687830562234160107666390681217397043570896347328294942167824800540548902170407823664028163103221459063876180761679513168359011978195915775261240342399920138164570809129859245720665156856972632748473827733918028754430125783574818395844424730792710008229011766134069949230946153379093304129659285812085581481996068368095159145123548846568879418204911869337040467298545480104602758836382575579918642126894866173398702547027581462858318390895909337067917651990878536306278945358370507354926416643300972239537630771977121114124352720898634010076157162902145153358707713950940843227111263384805807523907998395490144620681829322647622684450576587250843311510063872495948850393185055413593951909463488307661543253031015417501470287979296655913829130817564015652612238685709605244893576520668275246654327760505433269723869290020720734420956873734432669807516777890707065245018834713539859730013766770519502548812250120410250369261157286564008572097838174045138205498691219520204836087386352909637349386947503960003536283377680109578360758592528102371052376953458119947148766247659859335251018020361730334062624526451099107871150745315739896225123376915437238992630018951280958874385138239210398235553908451314259480061869718050221638757995478935499527270089263760336697650028446135322129547389232037543001082760101277155777888102496455282342462336151304342159174008851388353692907049553074973629165057308959876035736390577620866158453139151679695453775819840594510130942677652494332530502668337676627869585986229033529023076541718534920157410444077515139545078709501748124014435720316275784416920866128266813749056265360726669110471871031252390301651141257305522288337845580218580196837695854833660904517701711471638204243480148307608396588134314629557254863257511246064563754302631429367728810623655096428218789772729939673583380002351388272726939194464394446922381754679295778543553672376837599435386063857436558220481014356516642547142743078337188049446471041849874296851263233799762832889196081460548576697733003027568121238595056938966713989592390227598747402331883540000621701366781455021135669675760668795469213070440357920327579229881131556584532618971719496851778468377272194557571685695353972812643353532304603798812032704952045814243389819519700784833314649462918967889455627272731942618764936957345515563095039529778515317666477823457026258482587171484982689763924865150671797313470085347246326697117092397470980070363058339042118144696867073553997294310586465126166040521170029944996308342194293269835023105077667710427124463818856702146080730372198646370582160060197891463173238919465993987900028127538080014079305389174202100249008339245612119654119482534431716528873946449752669617182162338381819327348919734569078396607083363572976833246151963633052508779189807017231868922187350024572476982628225526682648434656248889521735599801952916487793155220885719425723739782050302949103570763118837531899337422596485840533533965393305029577532234742797687312586445567161164526753250623477118691886586199071469355998049119493382484946589941805131256074303473170896153343599276011023297558532380471339300549618323788077575170129095273946894320867569894781555302196082345165349477648520861115310023956887908671326830413141571472705293579431160131892027479807792088570561230943943361458726364761976079676420588753527732544999629073156168342310653262581419700814578193688834774069268977100707393645150251521880156941151906877156776109010034589112800357025606142980334058272796921527619744983769216709560202383561701870437593321269447653922340351205794984379510052992634066054756801141456012091045804629375262996069714013974620985073191721039795277875618753859838495093455118385854230458235110503625134806384673288372539373898375165514924198465821225692027659829632085483916495831871383964081166305859224442649724815618999418162364233896506230787798076777584843973028407450770369099734505124506432404521029846471232525179448740130438375613950057451102917221848255126167323437254744165908982570718561813218772636074107523491771962732122986351673289106588341645471786698096957642691796754625989294001620083104078624602967974334744177941060876831609818134920854779647019203380285171941158079029433295688370961617754490699174479072922488936671287575174576486364046995816718394896249426901907989184910739128265848728430297206975765677992556171706309829542898477897923148554587493786360374795393139476558090982321010723391279386083316291735837383718488823080023311525230949085602994642974075305723129383478188789296536524608282687152379451755461365980889491674013608100359750858818701917222000934206062907851015266347256419011259455499451923372913997433700067172169645028170537323208407358271481707144631914875286268363603066758151113451510563309672540372338818618281055396964063363611734006366926919012802381825928922862032527730595832379745885600588709132750516884710625894108824601015609201526669753698659744738628066428417196013031333412785712462280726906616644943819090931985898406514175119861017240826497544790534480442969276621271299494606713352160605602592872398555152772978308797185299661769424582029144918238276993685515491064131973959480232612709310503904737381911486909231136523611210011910420679463129414974144689062331096264607088528052140024972785102093515711792942529595842447536182161003263077086540103714754081122878699892103868513847329003744015355317498678654421818678122861114652087294729624969004223141964166874076923941469091826012664386153014392427017245515068770932299296323717262943159109135329890649180032587929169667077159809309514904763787203799856618558825644456418950320817046804743419082779263738992723850716160551595063181079899207078078698037409212308917636818137437891484702270312645877157486089792558794356532516913947844717094223622743813318789691486755315524952283901374580382334774065798295904899282216357048612020644301777964406012415649252746712097286694943354965650598027271420570073925035165589532117324294516572212163836933307462504079545092669334395762057285537625425160961786520883190361267203475934592094717040762199019624936288255774702761583908688609169887221951876143106633398051725638048343657343083712165074452768458371796448897569015507489459302594606470563055128752916554504440283144955210585244475017627138568402199479654436171003586635218962476789331662324054751434984522236392885287568036721682972358530569345829531715005800293491460950228987135932361979329298762256725647034418962377468247030274189016175899394427954907907705230595852185547626126236552813234087971326939783391018305313736417027583435119556458602493273158193429727610236001198931305418903183390036758194846265021867066266884855124508368068679002546144090066527060176838179260748256012034927778588217747273236206473465718644096330075422230105919816420232664137013816467790970502417460829731166173187493877334662139338274660225493783134776998292680908912855284227629582541839020141469987129472339997863230256636313794434890155932163564281574308240493646857267080371147247722397668676821558434432095897076729908907725017971285846579646966648070499142121607731275277092575453886607210419025643465575331252082561561881244683132778842801739186365433476353500897972515923626645485419819208963858271990900211422218500920560284872272138510493133265291192146947377260705753415168267423664257418212457895053538454751654632778231152359832879470794362972144072010233318780818261316663542702444643484835251335558219445009670188629251375942561810042641136296510835454975805234294120486415609227421353798764419043755400099561329553927065911540236933130234659907764240695643684242786881035893766963306194880731527217891019337722145526647795389470483837097614572191974294809484055118635378624623908036088794747567347445004417592715735493687384551375091639761626078864195998157212339718442300588936235616571313074881940982662741988807920539728637342556216849710115670957877345521777725784679343873283938538002406550338924157556314859622581039132266617189589909098230996503713878248972328087342605790415425633334358019991624214345122454438482781296294272825318529111109278320367680601863024833595085474200865553592982743177980253005948027407813714228345213368365653647425479559303902551563428636577625898466158456729297570426757635202411841728165201695019452660771699992297738732254451336141191135431658192201240513172526082116188327995168574361730301545471549103761746171675691814546781164787621990245510756503079422686123935055748710063409436316422790972288551598821028583644301717906883769112818591537922088420456739091587895723844891031145557401699167493963718006327198375032358435236964358132936733213201766092777236014367417537818988499840359520256681597475216792243843685156561012944587150758685003896895304933300902539698519183002561601605588462689305040906110421015068307504134945702541278853226024295825810798635713051952826982963362276258720824638690523747779259749874846888923271668765870861817464280926548208371857118498590163142212021986923047291045904402358336066151314757192066024853058864850347697774164175877236241999169223883469315339284288726386691020374448009775814271565041254914908909870553351738489163774485577673239997300954293390934645915821494377166965888754134283134755608619508220657260207292822413134559843022227113618619793579876698207128931666715005757874250958940460079789897529364261710447413846890146203429342924050341031279791111711128436383698882817741528714386944917433199587299949275915514091695590028367628765872256890630719701201860215244912214180456001990905288987414974721853974361814395179172793686551744441042244404985375559299128823546371601237348992338103871039343316377589274330080099148533436108389393077138654371887652997344530708729471873245800189919975860707572118287893461847893461203564478248377048692383093548172018288954939255447122448773180762783816305100845323047980181914827907640852020385423854300079379752195597328611755940477279548887928048814812973303531215211742615547069231630607763196331393833852608724301715692036733325792588454278652381735211158610740648844790665955180127067383766423857257232752895703237145520115094681596603756361660700560235909135988226890217383446145992382754842142903927189499371323955849709020048160180912939861658376213929832175757959252613259323939247533973800295520503820386393198937425760773782199382353825675745541883952879513742935088104955189457548938894416277749808166507217606335063136167974372699228624662823808439859532860494503489048179937923410009182559027950776509035540905049795670669369512961714004477375629147624341443163659112276379907958703140693719889716257099151588439575603518483281152097926212555272844507386941308091730560371711299033615713069192904592851664419820249654677335492462652433379833188984384068043522037599073620377910862605228722615200181702075292545319535986809682738932526878820138404173672089324190875585926137955874271204811706713742945258884828405426241791131235718135864056918320978076917485923740917135321271360855062482700686524423908157254861880177818921111037557145738547048087249549764539968661107966406253815785638921166261461929104284453186722419898249469270928606847102839865250400183949050016493921312829295221836557007382778534193085034086688414041065336638465338046543995871138550269215412825096226466203312958563269469834816953551310092189407961807087395573094901856288113865122863136476452109106789384403448210443405367152061956152967536087135132074083429476577814711166562407122029050584962347667275593154877579547500571104714365879037408065499492506541337535586122185121931836089146483308784781959476665603212972908528990839042012478626098711558600132361138314989583213650049438355065004436180454372873929380653116345334612404895061920058825830142418454578735746034917526187145454493954486376390801092750745417645468211090261505685352866529476060062650712183199146307654412718721777311673899311798001440657449019611212887059900875544917575319821664822791426477104161256468771613474078332139240673930718823614330396552873833142865635321356815371688624345863015395896110854429883244161602347568758075018924989428645549677149780048555675472538390002011637559356348208944323895305391098283153814764125714477270950272255617833424317931157569585649408228630653448115781254055311952287258654139803334639933584855861219179505891727223599849131050087291529250647374402590739696091911182496066333580633228114792939350841061192656830651731873391649006764819868052344508808285370149800691743040226771565935764939587936141481353562039655089807011619707214449293608828541696909117555010627625085608557651180728062260311195365614782310397648559171734674837259706720685918182394336681021579681677075465540811913548228764505583892488474475013192025303709305072408168645192231619712942544995676589439267427436645521824390207453763223484850744825954679901656410299003049292531272111135191291996885471775083905421022385822219535163808495624623154014934838685587804127483862551575907531474376782939562612361748978582002664460856971098284268641264805477234164025375770469135862748088975032785078567031636398228683333732898949466753027860746573172582394622184319576731661151563152221661824037815815836197317583746838050326616993405982149937820495648278432870332300221661862172952584558618884815918434583446700628095972774172297396040841009788632539910236776419424201284663331027939014816289585535893810292463341486896622155443134403906683267913422174335061358785066749942838869592777569334461044368829336714578726878114888487215084508742779331103805208115205558292930029423902726519078556225337892486959136510976818748915352040654564432769858146162772024563404751785525392210574490345460405206349718652463005349004240205034019404657217262660732844876176526793624274588654805086837923801663062281903308859051198385846729817168407636206118563875393819388493527001767422482731459092343764261325073711946223332324106223077188773767140741935037557820232085808106122573253854108239076961495998180441004605786695089081922337114910458853976592336755516965016010127130410571688911509935052483881058656796811536948985897929617877493585313481622012799421930416108249556602941407695152019019175829886321142805145988572976698335291293760408825355213040077328694140178892862375999990817876587959342996964352871818618578405990157421624656368587987829353608223226691192911420911063781501040540658275229459851071972355773255518586611317720299114723688922714781202477891706256956679236297244345046836272847538911087940728061029897929105071331782361519589952534164729492460782805287231363662846849949767904929602723150058306200588446767445228361421399957634915359476374418782634950324669121619894527549672968298834699146861752227753684576995550295714090981316798778556695825768810411685437399300843942103687307006110948754687465679437927679824460780928818035035884413852966524684180811965296502242067009205330991061224236556410782461123625841675990976887133954957260378592799850081753335825886897480937339293167294589253598414014047986758122500412906464983358970159554826831316615514635776251704737200347941942101337167273401691007340574717295210641828305683521343797759126924278846651156332651917577149160345750735182671965863951144655242351172863403484653379064813560861987172192246700041227019602858721301913800385231436935440770962058225798313281939700083329874177769922080432019973768637507970418396447361848466888448390232329847345878104436365978208363353278693837972273046828562101250955017197552261592421410892436741785098118341677810822363026377294158195085055500975698041748641087865098686871217948934921677299324921605337861521715570289636405219933949474063829641217999684478737837102901753702761141794434640262188561326981290544160424881550293673910541714894458865993253134854714150298837570765419353735828129594868805380674041097754980430560117092210882652778840875982359511619727832234716024774223752241111373400150857928086486860009659269404632039188177405022784461497641914019120327344642351656710641197295453458087610702303217595550434309947750227019747980725953000029132946288126314562633629625203420119910464449581927768420780528325253071970911109202377877580468006064794973350787003316736905768904185461677619641357890953688128877827019031407803646490777377927097717860727098794594326998954718107783592506816882373168066942812409282664514760143170303236068244520468384433589216120703198319379348928183613021836434969953777283003138564129264161816489954292044430516551349253217546972475757723052380570719542851414472653825719127399358259379863650501192978552953193807675054781387623134363062782341699623247148722514491323336963709400733820588014217562867036688841375465008868061221432401108635936288117022515556194502295902565649912804004271570604716331543202660530213647649280254385807879171475058705261772484014208942291725120447567593988487224063512962883428988916785508704296341098163162753377871237320241540219998495484827983442697502139722156427741821250003764287990910753758614332037522912959942174199422707149711172546196219098442773893590524712337437169466618126398999366677860193774228057437383295049157024352296372389241927818009090611129986999641680240980942246602978556164403656216043116920414960576694412201585631919069349598306342518088442318554937022780194426721937667058767014718885278388339976197094107340502336033395263145945919888019324367620262511720055412699783771326880642853676537951048214321273835282421215172996537654157801296354588040439432519862937853588782782467681637440582188192508859775613755645624894841984790175078914358535631616804448247566935669746041678377507769582196164068519434618387724846651858288228173463751854367057978271169710286458990042106958494540681303940292784400710008236576760025402800032841256535632543157565262489532799944949762098636301872425785918731800390819598410218665126283750105257592541520502623491545893115589628670542675346171132561871422389992660781860727611156791707254829243157259463908090896697139487693529508841556656380313402111592946356986228650449636208016221626042155187370195535417204783875874416310175843456378089796793985368200902239706659522752837935290191311117951034426758504426099493517002561291105070765840991038438001604981552781871427151230947968259502398753930101850605315586986222662022775246426220848829148752820903576531036990945266172635942261431339541819721168014720793508384249453965469248770058268647144089647267744893723896570328129212668279991363821013107362561457970861817678445983484732056371115486422990051874516531118860890202703580574312189928137872596498430690111153873889729991949797720177250791222862909827604685419336888758558622484197474316007473846453553076998222213487654997141013121758143022123597847225969746856730978662061194890407354052483728571969297554021115657187657419288043648682251241113172801251268769587733049864575968814938409216674289716510888812823647418583354903197174475922887606389589150760935454732117930641225678669001377136530115582777739376693063058067815828576709311408342147754352214596406807653913403554714467254622550802999132014886444692233147450463464810084625374011872440515299676014247528979685180796921326542064371948572059191476776764943214492741207138262052323369010096102753427018203784410161090218094286139821790305480065248960249029161665316856913934384242072132809118732650306425211535064445899478569623352760221155535620725530556133842593878103297079358985315565294675068758674972272991668303947708461029846241309793809239842618349143917174677808788984935669560771364258425730203788443620400384062209760325761798114286536426340829510243657307926136660591795740469820966684296244277410335066221988157990030254752505072090050524179834150577388963026912246027673017359572368882655996479097227175107354451363260158367820722716038297743482846052177374075080885160196781573223604591571777279819003463604668225790166439070378906991844877313933753391246609122731469505760707672029357388016442537676294043936362009116974313058597387401245470096284932948293876671815787454745545016219092848626527192363988789939124570656346735991584075663499978213614130226972558661548101334165876814151270188580944963076179817269429750173443887176049438422160159511971477189402549221300513687859030472905620960684955658007107402594425747153888861203286321647509664491723368624627137881613922833908742493081802257963629764200505194944090139366880840835242370065569932328133203031106637403325780912987730986230039175522937656108356129141598615078821124099189257411346130410864664056872025311154765666263555214511298632986864614476263348707974260804151481775756288236264608921601781363903585687382667371898990265108646448160584639302485005413761845054634288756611007823021820092343548491900020380301275602147962729935815920233529658891731031154025798256337273434489486603475175132799927552905479369952438653900583785741142566427559109528773950628378532989194923405374722804889718319354654054013148306972149618993319065839504879100624910017444002449554954146439343822100372693294990017804721383696213083417353709173528534323094536513571053796841152928812469669416339802040316942203993385594572126532106010768642705214062444971912850303067199551805987187933849880875858970747501689976584001841535880166687465952244150532917446523902951372894591793392506596302820615427258871413539894761353883941770708160310917057094370686634541794283512726408822789269378007776899184975817078991567342761066049066097319285881560139951970361985131261166567431514745562057747681031050224613037256988125230875401406073537462028105024386767593550303632360443585985977344169700942387301673188628627691736623574712687540466110373143383810511552700464776088322198047424688465033247042652482653188799809814327246224516074690863370574236227787213442239144969943948761687299750664740670425581409761843945828691431241089117495406085173799724649766881504774196660609624566969194885383293799475832115002895346978910333396835113980264433788393107484465791272859765398596504221098394296446795796171584434652280512845841826472577480053402769977781382169075547582344100193699999535844039902016798504887280345432432352216947070830063189327552890373312464074013015546250264398786623367805779750152179685816379038589823167212282278974386779284722409921282172141214285415293134942076099667173718601771248143990160680932483037029954728047506032281446943649851874482978393137126426887379677744872057951713361898448528531631735955049923981515677229940670578764142668459489648603459792352579599555141547916941352097835490200830215497693394557187982783499186320110155674197201557044257853144278287368681803750991380396676995187074998018368382362090941005034963885747965921685312191405209894345667094332405189763991862368088980509500200871841738461225362644220389455014238741380681607414186317689162555129543290034835874632262636445411380789672495428004025677991569124604655212230579551241703054968062907163667893567687284252252565622900378084418065833907104332854506132438459836645434492534485702565298480310874137872225819444115419723519193600582379987328423603865163897565030974079505716836440896709798790646973236790261656776710287715739602850778164863452102033281960963767932836014292924057900661819277461034666294318000056070872731016026469334872820801668211916675678333141188686176112990753504684042741516268833421901898510267986067269906695504538628436879278051289453926129800971403705783228828207796094988652603692100912887777818957950360325242042398115447920494796599421831284494890772048638807904083016829376515397952084404181094301945690493298153522241421389925740300017642486148742489415769599446388467747049523461228387259742573847367254054888939298168879457538031085587796429827434152698923457574189228339820381690884047812989888313337451549877802386313663334779513641502171595162066627517892108043343365185880425629738187682210758684055467074454963447013220914757471967041652936596466864545209727349152498811214253108227111553360836350213793248986244650053665006327025060307947310263464458220818745974063526734531988149085329849604787469402659930736211394379243165815436676878633281015965412470862102769662384909625872090632730241514276524467863710483057505196974048644197716411767602440748695834146546264161860691442138104505410710182593713438184532683060745759214985608215986227260810519267056541756075628619540478775664728429368907195725224964184738264893822743618229457358249863384093293525001321318542448837489868321532290222146761860156971868830621705875577846203684987119169968020526787099562419924119512630883020768056080213582171984586371756985808545640527121889757980379227833455147534054484369973922134895634307500762641783277717735300442674408247502949036371837613516885525627192351300650716751024889481919473801328804523943390335548378616504323002231930136364874211628652799944510393522164907116493192046239245906204713682561055751936953008468208016582146975239141882497608719286572394348376432659077383373556176207978809173694847353613248499830021622830858590154987230892063169191707593827617967691259747784814807453089268947091216291638610306735850452650798278035708907975953489310814743697106461020487197832410315752508180677569948719886143856438543689538240242032278648352273251208709964326790231612062760192854320996459306683470356585884547625402005469061381640925783616660256230840278565815391666168895894754028261236679013166052134974883449353924328273864209205978462036032704620085882481585088147010241283302155862216278914602704540839704627829249214211219213448832491104715822759323797876609444082130616104902120119603907684553769925446471625226883042308414200749824433715983620908831433707229098898598776207949479348248209337546163323328922370798778647374249402842228073331051205618166791206313402316880825638017431219881598505606002135712036072330695567297589953100036220304473832035901791321163242702438745751279453579377408052789619275374109514263708060270518247265414021096309235864951338997496347968786629171253934264090322743927892810301942426748121534643860740610257767931433912020833514423052396172810084224681028115296393503093665925126180872760090246421215795995648017246999702625598745203023572472851595854202053217474434014456459070565407269491393734873574150940063798163215891653321395979586593045728112201379140283807547683294674152865111415387509737069700618247651231539023588021875927510179837225477213844701838916768708244175832187953972923377149053684687499129028073515033969395976850077306587500815866773803563747186227466018748556862855077070856550080024692881329093087025695832697613498615688261470363756387815431402444043926976560960934385958807397130738428982135252568770563512877925952123923304878129585151296464759145011558259469723291161494778171054661747542220804392030686695464706327658607885602521683676800277925902002672100684942089097278572727993767775697061084715400789075995264810033766842754358922468108891022869168957436225474430329194471687302197968916340935091431946305755661336947304296947544920929832861956479037727107388583664018633577812060304369574899084248537055572527743213878436792107071992822836861248154279073470640604725754067262346563144580056082861511833160285756123285906744605221869257408590713985460208590977940767575480446318475724230195260210260632088686859806354525525762941953084155395699903499870127331130286732528714609658771441650140874476767306852967069706497931618635208934664739773919059463311393015251643824471070202011093887257673458704745833373637546392748577716459905015773172665276996135377133660141192865184082154003803675768472902353121805584157062498009190502518595886042867855031576583658633345188543789582674039776229212247607605014046874380294164590967163223772417135223233153174573996188453487764397242604676858194541290510661048626050496640889980151672173969975069139062483912394865816064599402353526666292479968799945374910651444933408419865018295615647511181289442305028935612930271195230010713432478125494262985607544877119528992241219465653953839041430585417213967790767551653519881109900286156637105884564637160683025073764995716186577519243134884249592800848929921588894080008025895561311205243284922906303526862630077230041215265322938676796683540818984431424420448696425142321806364816497100149734891350824249678068255516802163488242342183841939284262339087356805723189703040758679258513086872653399910001220343009133994352645591863094545459638000487111771510125958762066643741238321125044977140629358541974116823047189142792448398634281895272767630528626143264727150514143136027275395459316619706037154135933242490442641184919594781348720394004146643110480519180565900242515986036631238697700944918388987300895182717245426606040294834508673911863501567865768021574762344012257362504513874938385262307410953046329262081075651532687972894978987239372481021358395590432235179015011077380597880146210437466555259487170812371153810005844511169031580665618192345446690111129824623873629241463360821932975697205929471255856907083445007422291005183084680252555496947787767331278976850304137211751658425221566509785334177487633327561242150502257848103294628203519620905493679647238627514415734159307006163460319902687321065432267481432007720279797543858018534051109274582773344751538296681371512684422987566385765239247506671757918084116292316558807070619253216562611676237770104046277927743809320277868020582520400241891803367097722973106948445465157415241904524125754903255170965887546038872276159285870567132710659186832037718032672061088365937634499715736492117667479836893527633164785896265205470672678063533101598423016557730841643853998423023300458165894429087572517740329725596244958465412030209857673521469740800401053025584009575193131517801848304296807036904797936800286026772922394585899471421988977361988416269520158898976600345666775885000886754756213375055657451608608190164671581222452560593743165080415874013020293644466800651347017619039613707616914417409859835817849576890726596669599230015557721813057583836486987041923760117563965933122725778362586264741251122274785145670235733361220498645445064466969060358350063280625926879775643947649826138408698249314902396465833820674632617060026062249243947410763906372476565642788032055779865068779866443646793362038938682428694753446659502700018144801788373381752654625712896397927562409876612774786996042123956306450510952209145551768770943358799904992085185769110170464223401786086860517221432896685100090620974046553006240004693569375126904662520983296142817506878588136004546764064196054637214754288113633568008394441121372996704332757389267888375265365227442582967614450027649095146017204655368697415210389489340568613570026718636897961197196702477089676593496323366898249364544832389978936193565244976761099067992366621637015255208724273002955150980183713332832057796426080202259326757565468634745614814316065734966370022600463894820903416124912195448167684926210878599421347354494275987510109803511583950437772418017012302314079813604508564918022246261457829527343335693229649137447176124456811478326674483605180786632653082200832923637672867145340435817774777182283829142983872399196080122162401972512817413545195788365345580683067225358595758961900105991747040033306764228115566177652236860056868821136640919925829599403955726048009447678623358449941794045450024848878103756678802622932142544875529134140350753563923110886436683925744807417313715753582786751669745680920946890956160261314476418205008809189717051238181070052145028865924227284642395876991215362884972449012442606095259227353337034546636209951574342919980737368096151779705921787858170472486902001009712395123606397092525259126104917258483126920679651724376697828387810774390105944772513740901658564727681430642057342192309296972665703391372949021269803109999580416043221549155061449949825935024270579113894066120629702063501452078234378973376133344289317952228692188521982397768337612664695365238238956160029982346642637534921023461382245229932151009799284809080356082976964865918065299425413198494540641525355305666930228019409335393722031221870946402706457166243071685042948728959856068830316420776675049247458152992949188844923480989988217083498039837709555716108046520514765568368820605681553789264143294485421739763223086264491126332964979853413674935650057779861640671229796439872097622873223826925379238244203793687442825579783569312853846042972843257868535008859009475213937502989197199045333408938243844050680347210708983326881235028744326685190678896102933592686789273017407458354466306737613158855634760323018641064851373889241124067718754090354617872097637259788625378412133254974543736169797423458011860961251554633278957290952890308185654548596091131720479796576974173747757592966032805434580856225304550801825636197917012900176426987978673836991002301417811353035205400535698997804542894048869269155764952736080617526991120245119923636660201448240780276691108395030149540772480579064011416062535485590270937458951688503441240316529492808195044631464300295662657463119928443688682066440286105989972647583820198276185856484507727161375498161015738285806149461701216804913399735140015401384795023437478888179346936437986676693496498099035857293342539081440082411975182210591339044042027335317599128723693841404963046589070073949138605186970040804035361174509159462520241082087195447141338481319364191955035634381430381919335453621548120296238160383338951374254259250118756516740678582424981884795180051069752260354245991954998086685586815065799058670832086512885331060411616859489401510384290813550306872706552715903408786598927893635782792694103901644125730827013668277802083282457747906472425131167305735961992021409509880657298742757296591808480515701535013321704745443569881980687203750233056026207750164986701519112499632039986832407003264866249140340470994763722083930013387497255259687539819756241817659547795227353685431228263359980760844929212085729353239053294272917415574704770479788039416044253466024345493180787348920603110621482621975968049812304398441613371528044079423980214420706333869699684259463018965948582156536884554696315638122273943292543353262930946927053647040693384754984196881110757491895157996141462119920155704821764318586089655161560805990181427713431555364197268546153673615864107910945072505574981247727767233054046041223405579073821109069418182053923401331843630858324499122270249758989198310341110642892975485483603578833636560311375911352960044750221510052198721088257269437331756592099427811660943749584304374734562082428534555159923948422028899664164738251862138276216739190291345810052652093906393738965705367154146053723491844979547199392846461615791612483335245696857074412205512265747596889138156812138584146214636542226481917549839422566134118814601629550727948975451863176941314666813195295139491825843285016256814392311573997205504499482863016781275409615700442766419756368347821065552566046454418266248049394109624764982356275794586061753600201732853110808722530594244327417846528861727320958866012794838535924541505658572496866016127990567624261331990751211539054744063209633267519167745590000385828512141722830466358198614902400609651823546714811814976714357113037021125923951278642913594955378516422373743558841077522502934566492636189191262149491079375809133579533791491451003156649568220423737225712874938274324115955840179908445356295192397215668676845656887473415128318444482077363996651748154256464306425744405862475000093854892046056638435902347113759957436190633724527110911610150763257405782088804523472348577643263804695011846147227311893746677512279848091489064770131061191077893220900053447764411816396704421509107059332632804289556491766393486480319589625389260436410770623193854694184846658239093877505285569541735809615840753665249891313790978222137237863691816288964474120305685458415288384032557793520488898003991380789025564113785500230063743653450984011178196233597741775791859755326307194856230825641190904153604126709340743450398461136833503688757247200456980208048251401326397076640584200707258470749921098284513054427465742734357494568514678447241177122460443716075898490418200960485877586420632773548419727660869468001763735250550235167614755031940010752990386360458348152994447364426167014197400364138027169716643035637454234628330817594997169195842514425413098684921303609688214384779221715463446177053549379073012338861006489732208103845408212536465509107427718496713523787625434065624461467491812325280772012996690948618251176616941037571286786005454261643396498004335675656027666380384392113547679398377576661938329799047909765864999232098735643192087887740032469320284943711355341553399230721762164919835899564086998954922985368726856486126567261945667451158376355610015687626477844353145974233706292076152463059942397988461622763638916755773614568115121071587770138213692012750523536158424366732911911286038031865202853767670460868844286917447190708327687451480337887896086442340443204874266107171672700198556041600017896086489099930077050383785124667226076771776748450910566324637022227053461380719329060184341752035129592024109133158530884078475968933987759084381606797719096294889097589402363909650714774750071171623699948768906286899856246631978746209966780640208449282598730456075575800404805061971165836419753653128496027471695669229518817295199690201118016264360018721540786900711864692109306753647149736314445413369385604300430100666612980693129771363347709193798838029559676612537754570670194032026777776461205578357466841666435121132817487720427293147650666068718179108437973899932455311094582133339741972204777653571805854513141168964229091029549269269561185665321714041397801801332371834110382139132475639850392708094855654138762086043253026816477223332575609730930088670582169193413139981262938792552946614968415649261666243838593548420335874634490570142077274514098946926690896671485559826974973119761869781085415505780207207475407830928833340105666285116744063219479555041595781612797187562896845301825107463001003715373298231241554160533839705645718381330219159266020929129179200359210787345908877137193547706787527539234040075808578923691140107795716003122668663748876091597068565779627091920049143969932671685738363635460476239303090521448125490018799430515412744278180582793714749636251297440833699961273036129681481026843928272700413527775546617045073220322582710153742955695267583426154318585124634311239450950739999296541285384427759054917255296751281538323094361502138935408096348643112678105440269254939096881728403459071382705412459484377248390969971483249053548417878909069158087673950474394895783779923701059752613615682105776933800489279908722846023911341938085504978074951193286942857587125833064817471018444626250268430478829522727681850914612210539994681560623229998036048130792966191580929479401968142687955657145052834937434453371550876966145451989733735106661858097982574021016875857273460122334417579031942505776938405066835819339635398149297071329248583802138722882953569412425310745459049907844812171396843571127716721480512955395486042391937409727966610442888726788078027470022111456228509337355214681661208682205521136335646940262841884004214215996230879107649258000562124673954899838989375146698234563241497766967741338714259195118210519550973086962718993565333093621539207693880604565748095288700611280974009831153609094843291911136100807019054443343728836022445751291895681406393066494739613893517632708608935463743989210599330763106034461970489531909804546160134321762506322576137057275338996822589148338024544577693004513316100803502407372362776952190764325138387513458834566368799634340530886698047126090027500219972082167992830322963147107660595052202649291673166029554276611657534027334630543462889070732327166872897255783406252800281271857040368896413886619840546358246388410856333090855299860803619599788241559531896539553721435248589038941867172656096609300124934971215534558340356381566207364192492494573362673470586424675175473222974059016682709889094069530280117001951733122926761411512629478717649764976984772714769664684680625394935159305931484977738609291179782941290047107281349458259561886511611659161379491004180830979909748257070006494455373866011284136827758147027196218392706111472404427803109374303173373447435210052416365314318694653013058900146246438251073411961753593915079698583005238987892757778417896027852592619630254948787068726340309532299806488652048047866187118253844599045407079422290868549577994158288557303450897965646164132447608858983212797755002755202344643633747185614854618815627505791512675456595473804279878608050004816310715519270320647357229235097476078760267943069412115722939273386138018584772079579277182154909936381139803013928380255506399866982022533049767932816735203145171672860083524894294835207607697344970219071137749249832049763613727072170483998885525832476032843500346987880183626701590019453315221784083993768700465861346999755854293886958217045956870016698934208481867460280066981342484399309709764943290914251303923483834832244296705928862094319116511143436765684434616291517260402280169787085557836395422050434180423214499293381180934631231588948271334893008244763308038929093101428057426200052032090865839248542962034794952095968429356309251138118253543056923911746633234012407304075639797376568224029232823194475368086325074312887852039533510042717162069167518751031945322518011298850237613717174279330816320958838916853872196494314109528064681317779021017354353487772638055915116048239905856976192069752612844363370473660943528755588119248657478319767679288366187837712355124326456481666611836795226008637366339934079562374549074204432495767749332219625262834604661519414829329549235771264158320254248057470088962796440199408437208277234176936207930512523464958174617807843830074254317416705682373526558078888410531904884870668540906611886362704236719231750699503875402727896468852334711427838209344603664996041382096976980760661745283596011444790066526728146736269584595971580388515016869227228800089756088224688533732903825732439393639688480097535654656661569777511064668412324016433345457987420901353260363292170610925304136344722781437730159099315408531104359203907145330860216894858531066713004664054899515926843722584386944827837524591050629469611698883546698092495423876069124242547618651320449866846555321551283788635051554597602677189497157283839713583638393088602894106047032206922205830037149475706666522855835891962186276929100094759489223160911858633599699365517764045538306214318849263718446981744014163322239009228411852445430404625929110208267109175907174736047816255465302138126792169179794156652519010782879875670134081205702600830401589712782306971528439583882958713564974638865363824838829908393759436579816163771931180263957761222259046636560947993738622565118750807714694937609366726721473537565715160704704562240594197931796415714275917309011705244463547205844807804005906341905747320136984455482539280098185231190529034596337999587483117094456900583293830923710357345551718140825584222537552719518363626939958121444955136550265335846091066454676549358826046664379929743854680608211185558832909482272564884859946398149537849680282646062333988643391543552493995533573725829972296488640428350412607879735777606942196355021637000557317929647719060158383766318602403891340133624707391282847826840242267743274553483947651521924361888179978580567484015416936704734334766868674254608826479837416765057044128487808809018747348272477300489391150503777734039005539499490815200175257573421330070709787053547387202838685832553849148160274647776479363346155582705326870626166937594840226114105271257697429988431046047510298250108039300960253255374504977793759477408244854803833810719501678912742942559064941933817238235533856501443349571903927743079981786907592146038156477081259946089333529206804439642348159540184319961233332204354698469839793535976990179167220125459277369081607643533916460508462316367073042165148792766294184830686090544215908985944872483973739462694810238005665113143914010391474318318375837119364087435410599207841428433607025675211023953330965930895998476009553943899574549242919947002121836227668542915432893335928457294299267142578575103219189683705060719157139091043177244171970097633942831907927167940404904974034113481285619172926589931227666131450788105675742400777564625499360373524710112178976610513033772252470638783389280987649165710939144206481401031623268442036928997486629771619446485499593558447804377390119279676224479299458562274909085229121749048802120049372078512888218152127449166413514076797619113678650764169753793720590042052744521027068332191715623917957068864653223749634782795332101412129908037704338380156843408112021627985189921094738271203895101936881290410941188159353928895337566863994914055724392758393819623722636552028021795255168366406249299019619183804624791295461848630666463409258974000233720921787647440440492450616577842193710329345825059508352962898278338055816419488432023870734447241075096350004192791339568334996770243343848535406974676442301705531437156132022161613334212260356111123250607906985360051307776027085063876136739166269935514965554405020743177484947194857358925149501488501997986937857221687723095369293766383550551202175051553260457752904893258294512867689589960150925622789169110302417727968403201170402677459629538591031600453202221785507129944630651479345078088928356825906484755340902591611845218536349341481996146939425505504226903941652140367434608146649508161287568202115006728028684573726941405076059592983228585879950882526786722390238071437307940183183544003540251530787455288671390304824762992677356627657576060734628252288722878348487032148878468109245144678317665592383659314070198869063742618006945203524609306681595472074809895172668705890916342447086480050482011350734949510804835162524026007251738199120892800397139278307950150844433714238267428085014780868755130290719354357953480742356183158397876599099082794863035380924830713058264614977833057202397595213088835499184994626196802184855599518454704520058865730393547097759753758163640930923405405219106049704011683985847773315808183261775887495784191466540027185243163282103228269223801933464630714236328827091102112047231173238289966685582323169136062843526003490725901324440378894634270020054840651026032497479585372762771680367943167176107260706983046755650956736010392795112262056587982744676313357329379125412483752464613727339701472876397921002779181365237328846150547690803816171906890450341264883651799601317813038449585372265172372830009488591511062255302191723449721465180581569658166567608715269739665866539509063266396365835774960669846759305302583558964086594739206762440745064165801280999133012029407791209989036588489337970616576281981772549609094688757431574264616678847347752928144637060637644379477664634226034707640718787388189165066272924544932723457693787600622867377051475424405565196247378020923175269416501350832646090016596265189674143140478831962219166292759563921405313606419721925958167150956283645714020838359966492081956589571328178877903869529217365204667807735352985251326464362497211598457172393699492449859382463377613199109872397047733173479489681799756954894056281677344413477663868213493552576414257957709123292070423785179411999193519785981370211468327822495369180511410403552423463777819513609811927078377236675343669712539959758507884822129921026092032981548248046949201128344874002031669629440708696726868780319708794672191685620021187735791194612538580057981768015754409268863406538542123434543227299411799461839088961591095609778004849732516333211917223987686997871346709430759265918728885996270674253318986495820282344497176344113843911278393803278950580469110409388091404358779090553633405499239382589508303246012709094520133476182507907331286373525594920256603839674349437117914337662893743815122490259978906202294614410895874666303723795278115524141965372223128353115505794407483355538752250194014996235495850526282031710757173607812727448000581843074852542954046204911584955613915897376243423184753179673607974474656342000471414676011947908571373617640587239648126301511191474872069918462709382102930257536281314332116627356875321475112886094968855526907411229124532143231518797649919619818484881266816726065295033844281360313069988595822915404060994640667756833445112479539358076250749373103659508249070423193035608957501720122549532372768533876751115718033304899907342510432980104428126063700467465698437564752716094710987202068100503801518194034441562663809924872745844770660042225002343340643831786297551491857213592712074957863585886865900560909823161062196907402982173690923018890280028100663449334453730646047702503323352878934514116378189110454924704483377512214732234210703623271743460191482168588484546927718336200484426072875712674724635040701016113201783913885166616855591419550469552265496728525633118718343207033129047703059051158345832154147021849167827212463510867669049230889630598081035175576488855544799545806974167298376277446834841313412006868631352731968053862311729835596440009721367586134190644770934522219161520178679271459344244567063789910565425163950244820382812507713699993473755000733378652983158307492037400731724741103150020689464166343128897956123174246886268437677172012779995334871272449664407310697388609390397911505066869329562323978030811232053500769462697370098847638232759176657030189501515506283001501769404786851068245955823461235690943904290816369227461090458088360942226522850336693989655786865684963824386835885459144310895558952535001338794310479279056318025195599803242168912103047062250277179218989523217424914742303069174136420930285638694345618883692650691690998410312412408157333956169741639552964020628103137257251818619957951264606615400357396206781715687833357552700762765596587122757554967725461885570062065270634563384643667224316830321575155701332329832157594233143572684907739392056344795398535004984639300727293359038313171116316480350972460871509072336748876475180797795778933834908695698453758905788959072651096387940232266673342014024215109626616522039286520344109215657829441039776485828983167608644179176304666120861098440671537680171273696500182759699159618963078879556436582307532182330578564245744118958021531244050734250912607304577604738650802594647006673790481200803144791726413600458901510504141798394792320032774323918089912616202469642145906789652348822093593108677106858260683016730936669303803999662746636548000714855830210124436645075898940752088127299323304954929344394097158114743245155394499785247556630098032288919954384561702685215861366707769907360168356038865975688275913228565823602326085790805642656295147723856868739502870614236623623413938934030276913126056586690987940850456990868177959767774440958306970552842476239618378918043103220848782056412510854897129569939212781830598544251257705776210929505866398604475825137339607918262224953843726908695205315688891013473409306807190496973161233372211258326301749233595965943399467026477257248154655066288268020065692782040195522137638896438107683010690830956462819034092605213002309881098097745331238694128745687167114126275837110956821575397241944430913231779649728801136304415119315837750525194965795361899707944873749556282051155120882391093106091005938129989043974668585933076506685792294632576663681852557424237106468172928207103950563914056463563096459391969894944333563964222749761464511188054801643050889825109220673904631238905118721232026311229912401148513455231651072285787888025686229338919582688072903942660279140002523629947026941811115220309251006149243647345307142759491399657476457419000395353205256118518820289877085213201512335029036039597049877190970338662986863015831816527930619750037773898429247277186753376190012814188560171668771274399066308522991990223565946504257931350301483507513932087125908523023081187113047319053114794085088339121374242724068522168315466178329040697548653956451330010911740028006247531715382309775276650364346857089112386158516918089266039321719476711092898251272972538368702332890663283556662752000603999353606893514743959249834618724212533397324584510598709316550867810101069203882240781538320395766784720936832549907673551077210168591818601220416396227404353568993860626053679962001604992932054276281030258626120056864202069418325069283616553476762859414622167556628627228694441559062298177306059323694371772247660240401462469452500485246037151711844219633750748299242853682829547906277595068593248136049919350299754299269660523135099924131598526753736960616119204888371566156334886734865102559786993366097472184200622636848756843090086256575877696049574899217731316288090704994781962111345483734011211667079598661891959054083414639012959579937304035317119796400735509013313096224075664244137578031631482203338156303070730809724654427655640892590525967594988277279980678813789173306398071331713775628095344147603122156376656306507809868225469521886368108086597107751705640640442136171891272302077805022419725004230501355969020089772688475362353948185334987028995672122907528869748540834774747621484237611774647709245615984531073236905569700136801815258770549382998519720845325777799830102301212220687908490218304468752772164300664835535005759727061556340576908563404921379791141020915918558692464927574278729947961666281715841691238500280930055714495537570069160739366182117352859878527040328825488725380870976426480712015770430511862971705612159965406213264266840104468595251342631040275947924220898206768570112508937895805754587135552795366870511863118060679106063424645633410182382025962927241190849602335216431142940648177331401830796266712484757448218351917133107730412559634947647600484740593009998974467075896231897491178919434228659713047517687253997174286306533945366154080581616499205166857758503098606910078728909129229657082262063037400573689591414658139240725932069010562928286979329939715475705804584510077418028986387944405930753612498500979972339880998685732646320493127044986291887124482834226716115882843491128792186409279265889762898506521496840252755588625959026120285451479493951712966202250958228733572469711358220377290429135532640727229982633747745472737816672781189654880408485597005387022326240522497975336320665568774092414143192006006986593308345226570016134990282640328302700329296205844570404218124188588049515486618895384308109136775194770375431072204882986775796343144092004071111542578302296048870829007046248404753182915584880131860579210975884665994062402019110512774357313242135866340491507865406051295902151245205438323957737018039960281465361400698142105345611727391969857522346107296647925785686187449161921718049532785731307953615416883026351103838787642377242108306558967589459732817090579357727096118470766407974827616895538165541533793278913177384784718922986284542070456401265809071380484851834001073285845725148120230950833922753332098145812510485485046420467172356678311685857230796889764080465958580760027414111098125997830646586551773004039558991581057038512637639327558926823660769664768871916707034691978844817501288515110484490048228705090233616532159636618892720060271778131376104152155135892891668343527520542184812174569700222789237906066226520522371692315352437788753922464719406198958478133093333463720915537023357847361663443090692611199432988798629768965588766770300567575159397049968612093981475385647406343644861050474656900940690004060549069045885193059162460369638425292222595531790041604881575987556062040025984767480107177113816539078652761645768527048550557838690788757041063096801515894986036316365017503955285840889860788206496157905042304942600210874384299962647051790601450354663321754631208414218847908394511508467042630963403471006386424746611738035615780176119523778994581822679643912124801284292855820599602368435220760068502207749290566031604860008582756507270232327158036065715545441655831461538467580618292085360628518118680415876496818547507489254965378280675116910060896322285728173219439458716921227170322030022107573187865600477689248312911511892129717071680018198879846004135403436072979380483736352536683713209330227186205771486855321633855545826151538944744522387814345105680862408892989102758663851170091156675120050334929443271547816743119216735691810687908007639256084912750473381564394710281426029791658677074629253923964265884451940868770939208526749709096120560554286729629766549582295139402784754467047457304157303909347743140589251186610407537157305236130979219843199992386937061921744547597739636725378776385560931871656092109902953118623944227443222250711043746592170298968968817461828519248262674909529389005971403820064238975495076064215855348134268285616643684653825202827842665517188426403077106908068089519103195787102027629878682412676041802642979143268455242489529859467739418089071074608286171265116637002060319620335737126052149207980006552755605826563126157889253090461516257838387174781130571454652925644602616225456480592219842161882142193979608698387657063051050731378966367439956076776675101606638559244615338496762125913912988084878901125363316417901405922711353187432474926496788980588360191624436836038328424718265650733872195159560349166206798456277952118784626845555991176727017159820354041448011743279306978560289130136566241874145775609169273092359274132445626386566239469183228392695369109507404977506369097197532735821454884727141993548431599968677233381328281737584374069905996961715748075939648489265546504412380479583189794641157792527376606103935587193271801057665894226506454559878621850115949142367765599824508054071065510434181647597341147334750308494115570703382837972441173771631880929238219745023825734368668348298182029088485181125053175312422127749868886667587553242107411762723689136733950288499708614458221164015603175087667418612052615999121805636224888946259605689054659237382608263942415825884608283883343145194896507430883142420596249360394664371947055679683463832677574549418975178585641128758364426686568304985322514757075598856469951702198917325749136950210206950777138613109645276838702063445871166063388104321803301270248240725659742113496231135900033467561593987061665107409830886373846347907866041756254664715135282014394335273975896361556007145048516539473349129283369144825857290163120737266764031357346788135314583284362118034844934612385354750264288194744519461766173832973927682575004933784254755489666750674214662138675662156781758318043722472258742121266170261355250673742001690608115968281200483608225987555891572060223339829536059038147552457361629524877481730216397672562069350867142129826090241302170329076717587863531241582691202809189998729063343799942327922634824225581220759086909794587033559218294034726925188086920348426375263532736698810018201142844242077681162142380915661632307354073169167052617333163911760770634802955883980107004031478497665870866075891966499541169742509429293855930996009333094932722487972797292735217617412013056563744453171426962999122194777326174400968417394974713494801414415258130908221282517056327793260673697847155517870197982380571512456023328249820687036454212835352490913309580853529038582427960890990251668563152703244424245932774417029781540482384111782637448064236826696801571109347749997729326216946453742495293648474336220828525636277739669890773927046366912071926026937409140806957150717524467609153649874666024560853285272579223019724283432310551780050952562019458850329103578115964662336690574322518726075879542275341253465971242285388996306518801082032432944353346476781889634955734802517111747255966785765670603844320955674722882942628146336237903864367182867413329059451616346866670378941235401609917897660132770074318559088542991997619705983976628288271697949317673764939868766831784429086741092970471269078676342306960738685778485740817331118833672279162392921225201111185344443935795350259647906338486350134528511247013816966108004954249651840485363003691829823984261251792165308225334287764882885966384411083157576677899942124872429414584039250862915534980923958443643674283091251569332758229479558464821711860890072423884898877638002148495410512843553887698394445238443251817880543311182409047975638884569003062750397435633925589019967319756415369071586830408252955928399241493586373558475695100489853977086292916179996263662539806587072778752491650525088366115505128112261314198058604849278620810729699994209847933537739287865168508871278004083601179693245947763479408878511601505608111620285454595987447208035765749944258658457510747998527785404169102206592220457994116487310061315833218082749338772847730908295702396696715250179184694984565135171491529534609661259566058829393863116393374341212657727180477335248662118866805682920473360519472406110701692387842639973370658970158869663427813000017300282112819393838168463648838051503996376364657743158507761716103036449520495191218205258884364535358739329644365894303637834378726734309447093226530635071200210959666087657311408319287789659815105349745174630608465329856428356334904963423621801546182014540170457421940610742303143648984641718351437642101144609031112297941586943300665561106211002814972366059669340141237391713870723730382039024775178858663829013088789315952960735092163020233211440550076879388133603620854001266631121068042506238048656824359454295684923186800796124370227311170299160563321970051056105859351586202626133544421224572938249776087619521162254660366495692961658256041311479021731449933098654601733862591815182471677886688766305311822367880990912782214628894562218379435926843039080974986575566082224622731785527551475941260353733852459614328771714193019726637010092197792596427587849750941395073511304528488536592018662297154016383174852432934133207435311210838982719266732075224777086255713362097522795279995391684184076352752963300061583381581300162672106473721472571436742034503182484288511242656229194891374937352818010672314753123207331132870988409629516191525645561917995517905014241519138928292302633597794702195900256885521647489575177959420382934554985987486150868980924489946386151235296627864805353344548615143275893020523543235946327748001539552809353730588836647638063001195866984322854119107463504251276389715247093235754677752027618139710978308034772052813123197701753957201445403939431469734769008746667705282730961788287786058647673578985727597993889842953628224366529469623552614445092166083930740844151406474778549198110889119635624194013356739003682262538259569697040670464138288509913242877702279277583749810204448200505256517949968384410104281890955617109488402985098573462504049611001078006293926231925816767748595721895276185022894161560293787817618939519426310168553971561338201768143757303897997054248696275979576920091702854399074843041791650926739072360832189338361148251642748195672820991770971973241689603863849310847297658893412071955562184065372471407939005278986083271408427082424614401833190523414964935902301448841206292022366259839752509635586642199373824871817845217517554858755284647188567577778361530506616299761711576052596565697114812982628303704931755731576128693623321636486155972339418269756635472539018333847288945614082923930615111607106806928982488152700975848266422519771142496413148558910255353944734724040205335424227160406140959066848418691200331017766414225404797103577463138351510849927241703567931733542922360147600551850955359318462478919467911781115892176710795971247792304863484089731379472098486163776896721484989645128621358490672874784318997707994451885201522340783746667737528073838149843470228692090488461166651570018598987313659263089687846672360140251147599893038335264094577297621842530700207693539681768824992452153036132636165224858913701874199893913950694874832545920299191898496198744138912244635368689770778627384397968856875538136754475776156753435934881872428601756352568923897529491697329625337781205641134601171946749501367104171560967235103278125891195186251983606697491485011874901713146858077258706451749102697897531853488350011736149066495328216733011055909057730133989625208079828045540080786975673868649068759642908493065087506792093210153139413972864006379014300899631674347153693561580798716607015994038642274934033288990319894529022294242926304211120959971855677829376369547828468350809496793357144606429658276577759080379392792360990205000013704108479690080792966679079876645161979325430922872664464192102237277985430027647659851117828670162154663217966655753097519116561841235438708073920130277884729317731936756522111982680965083485681406522935235648575033938649757183425368808633466167702065278040754966357996079376627204213869640968081812314560113492852147487844884521959142588824176795905690876508517007838963671298465362167124161909839248432843801712192860375161592296651004046475134708023603770202875332903860648227206329123438510717887260963969100877163898450139404321321406872856576701273182989448839803783289822236438523608017831108910332159222332753982607567219928613260230156267037869156825631371347137606991809886159996249577123271639889459666221743077369989435454160326472307324997987438462134996753557489170947661957402965880543129303174902529601603777598017259156488205383010260851854722220655466004862412392547385016932405688202713634593942092183974327399207052857054039536929404474499663255359592235035915265895790338325677991684096997239337216692642024634035317999006318656235632975903114638561500463187135825210488693293267377083788300188420545875338826741119791577463236936769159731248398394551788502582578254013276648524500920090274167436317950462106025132063397739865780541083803091508180537243070787294631581776220407779247918599326704818299129020264056859985105676669933607729304569886742307843896162100920286836734480513838606175437445302221521180297092145661355486698380064326138090910380035246977714943150211512450216411476590909483751745083251423717621817114938953504599528620468052254592848830480320226348291729658721130611288194563743504706027123004999872932728482224892194305715717754912486530781720880738964568058689323742790933130063683640257169424796821976281947994982136353043079444522766800248453541673459327633563703277207213106471794987853785836225626739395666100821004230581506768689878361888370906547270945600094398547414215993554614611539722194614563596114046464895507265463800368861403250905229963727718985748806783768172496029946784986277134434218327187837112179952999387672712120241129674896623238048639595323967265256011858533584315767064662902274067219377251914000187037348302134632976802311791688034540400541272419373601502650858473422554615001009314063982845447072914218216691646868646055063246871653197315303820981990101439024775814485879252271878513869785965338929381438587161268958119891889675812643281593324356155283301590639893265166149390914862782407142797080404653575901180169655079195580406098251163469760574728403056210174840243252197413180607847394007722311837867130280825188698120813182679036803077247797526590841997439577891450407431179664689090875467195160531187714315380079756111391350942067491736437111273108823127658656389136568575029558507134038268559109659632706424621077711434834122478168129057899404709175007699351152434547681472246773879288546322710637821064254327595761126891475281605905410769680190521877935987314545334399243313260788491214064238237421679203449197412987554142047145479783177533844175285240037550571099385571531470798718577215468307194602925225991936884027376346994365450993002909792448134218084101548066969323329824883728121800235163706933455198298497935781727604715047210248811605565628920256474055030908324936037962000913216101427558583606840659536557250983765603446062895743526050994281023116480233961453778168263102087765651588596366524238593307181352139919609699660534404812924349915685200438869244090723036674673640662544766928611803789860431408544513527921188588945239574929227366844693603747444088997280661720459959018065199361943218882414116922545345745492485491272623227109841985177896876430014468192699738539263328162359259783893992146555889508149927264907713090793962269436782273524128268062258678659136070105792121410518804796936014208426697069429566241181654150449852324454064112791119336432288808954330555758548034691344167265379533516195424844625918456029205959409398163513563462717122374340476084049128580131399130324068079361384905586354521518088355988777288171714891423605410988283354348998181943429911691367956822370771341141061850309230640662184405231627507503593387437890299241653853683279414291630609346533643853831729244329291588182233764359714522477634961329692056660347201937596582298299183053201078149752690415290954349606165691505241476791234976576169687289399862491986174381390255791317601796986061754222830722611516749387624756503209710257872596510636208825886031873200062210392128037598376097549283626076409223010531710457790672744729561419362628197958646616413063048278158224482929592891544197138892082957747054141872316086526193075907581724743841101274989589406811545846553269834271372704009991280018218978626395996253071414502434827309375673368309573487318029589232939616122374540938195883237730784379380864284603439203238203680730066474936165352216900976551267559106755731813366014154506054738688147594708002122808956306442984235307029335377546767865144018911931653421374199723912926435430093859314834258164760325818411458716611615302293536828895168315249488809854781966887991924015311602614480064612051202754574711001093021302291732690911646982564647488239221840512862191497041659236039433567392607621198862349005102511885568506545909200871371714819341296118432021654422102131081347950005752324250358705640226139856688540454907362362286060257013919252982748436077769749550321973702178434838918065160794187321430220079650660057189394134652644904385130585727208480997794113454038203363748047324157202759958866319842570132876588382588263668377582443202963194459342482864355222985973214373472783386105098553754768433873085989747008294156145277944119841123562473639068681376748056136884094365571102801573292835222672715472720584107530949170452908008652533665043105270512457593677190329168351950376550186976621653478289224023388147291889525076669847987270354355155682801304159429385186868191066174728833606294623328390006803932230855579106663959318699269660531609635600197846906923790502689009739759765226312975619094985353337068309871095410556459325779699298590495609848520655490552919672875401772052649703630840195734683886981272823437124148496517160584102514923295370052209646155369119055237947608922507169421999888468172990559417892798166177113377823072063605943534279879257275882241743301944330225632563289846156881208230559019856903065389177070964185930307949610893317410369842602372020847209013116569962265298195187273441707760101973378305386593518890984422292754365423627366308924149643842018854663843567456995792747332448099949434118804304341019036583173146959205202652227886008207429172223396626079741720363849821182215726438842445594101869938552389962609092027585094072959349241470494409243166673879893181510298375592172983296041321974126148135632011183177948016459891710823740254463798519477347937300302153233995146231208091020018837044018296381530879484922367373414358365955973929641978966195616574069560867866744302896612949083705661382187022749541388130629186884471999349735424310174913956014641342543472629214218646841328460231796864223197511632716711404739832797448559194202085714459538422910475932316538680385840118610794323293507343935851564457189900765636310951238298521223949247634445150428668050382094422371944677770514563759490600803222478880683995651996305684384481145564798787783313298548833962011842543179209878171039418287870048920130046805717196860606340582555186486801505897031067397884050095796686827572057497897548720049004396037979923985553002590737350730291334936865430479233154813799716991112035827709424489055411415625035126848050100381069610009954054030966639671144345338814718544947726076767005917123845204317210671905752608528267609203226244570014667115155739240385465850337421580917312098756956524603938908485704224854700879919865730008342146300966111489725403568032598262759800569121853597551121434191759678112623214529770839556652368808970934986342257271524174363236795142148813094703464385315748555601344304690168728239328446798270484604663745182286686789570577753353765150315458327632581789958772293114021291290828155939364791607144237110771527815727433201296651465481031199056160532151658896178877828767600395012813280814003367148542179209255880784687669070437378030639276138250274940985758497465165374497097115844562776447849023511114952834599943974853539137808731856700104503665828258564068043493479374695550699150163226663163788671203198419570483838577856615364878533054097602902715700982430241820620131316627535297406587063532524087384247902298495616640780905264593765710955633851518484144446123001290978097737105325167899509670346011941601361154887172303318117098001011727969234726266099413806364936517435656548113258656533115573611522089701249999872237161413634178634743737868677901564238049681258585142198075054837067757233023215516472227067172584747593351274231899329671314467911852513499290783523483466506475902313377681379366853497714255396176633700777198325167547244022469512154012077188560137965350304598752644496425738874037983344640716882475484381115722264912552841028534430135520649747358057308992527125127295439618225603657688234201029316751405292804705214851901709886437888952639920202765956907365713399870549405378593304242911669200312511466870855087022643311571591404154954675351080248002001937916791719125289771962742651851156375746661953200527356999829008627456056380182221121200439867926461171803154296209416821286401764075656347456786297139197774564752179213888726093819533641055638961163522281562789995762167316186805654315715888632164254764408971480183968836151625162316937198126779944664940526358957794623825901702344844964610635101586408775069691762783114040441151364419560242417314471753465691176370740314519474153907887435359113771823140429047626907644975031613830413482225881985592201201271997725386968968278920723053055163032067401317281866026885418971116220091019308860692550467175972019473516781259760459580120713514728895140150765972363893363652584460368121433666780598953378435479563954175578286485939913502398273087194147074750425956081683915666074710925874909824664986141876502453412429520885238547092254648436239195925190413529228262385781705037879969200920957629665011865646604746710341437244128920468929955816450362081429836432742889225018071191734604110349960611483930095069671699954174978808304870547348154711037223339591962591949272492526642546980178868641431959114775017120436198662270713867649419940506244848923120649309723301939840749862133192245027881480721823672894218541427544608215198256361277251786046093104088302603306197424530955343547658469332584907742008018568643178298642960151002881275677042576539694062461135705771365429633885740378444654747330678511597037932407546922077886225941688623366570491187646698590526677612898174919495600916928033078405366910046354161530673800174985678366301650083463564644052020888315287942668386597192184714562960200211548861896555757262300824205825019096703430496493516612475279007368095179039345397264014793084757741787412318060465927537274583594940415514792949240166171732564489481082151653422920910095081584435678211910727430029143218494423402174120721210537060978458755407937077095304106388419224503508364678246031347158799790527781566867958490507980917554964300030432523030641666550242395867965082396097123540646632473468233142849948313367351907036157700644019587326701857736507373437111571984165874862053954346977278095291162535706801664081626545231391476964898675998225331188468988958070249942190387530379367321991335591314595786095351479623952525886374099883846677356492644657365529476961987753852455151032269499255443290432587016330772336584574820728970176501666881920834253469962095123779963205520255714355548113582703290522332381911265910010759802971029570912560930443250653800052295970041714167876796505280623253793423106690962423420364659090122546800140598563660677010167810578049781062234903455902099854432409575991747977537660330134776909299364835902441542465359095250852400860548970605427069649366138333683639829730420147154441345757473660613569997224354747859640700166520697845087206723052640200658398180309992531372431206953080876612761320869751502527557484077549531402248570684818441486766680610745003941680885382305827540284934892532420221321225878528441982035757380339249751361944739713888024213615034861592977766252792160869601596906351335969117127445011369808944120508958510523654614057352404403948103558498616883479100439986293887073559051909164044855824296949198335584588342617529905584175688650997460555763817786885322526296742789941912254489082031529302459978243287028716615839097409269412330478945011180976056129491816299225716769868717819977257205231449605475461827997863966915379288219012284761990750773674787752568468540116788736119875617961622085152664814229665501938488430382549362567030313676849369227706441057235598889204417098222475386642510176409355005904402539603413388565600443528565478865202263407952883356445468240008482640525435257566730932728913648497022984322492539599621724112708641704111764212442429722603877848897858213948332223508070446522563955215681615214495680723035432305713204594934040625840706378474629965071459702758908883407068699142182877669766554215381977422113433097889521730259541768344494211804600418443523853395071741895644660541714197412520246145462741235559542706364841178425659639211649584685887657590909234900595077973273175820880373012821208108300960226666967344554841119463596739029472422741557016201765313198066982211854147354739415662785779788771014922158329819689773771641507947771510896327338822663109006938420649341311047727619179693779146955327300830592062719773614157930924952677240200842773347601596639407639044134797012366378475591809649320784941581067278311740792379461099664787746540807443107269746526616516203113183025861734109945850712605326418990553286669440613750596543127043651167391265364106092418342437545700040319109111843381275052926159726855518881528651384052250642019014357385845333854671629209107959309650610097272114693596854537344789688204393057832014546145098840383130991694700451401768374302390435126688892560355827844565565244999623764481653958861527061268951355093300720707393357719804827403248117892571391554444947641411869388151651927354019410910543486727970406819549045786107902779753317251356359072030699887153280499815314630940214185108933129042311724388505063671569019681726088274186273414448970166575288657679423347002413863183145138855232467101915958536307027377780624118043561526009397183055736435153478221585913635194846325350503328013131595570895232127177469383039541090003551736705576087818435149701392162266353288691319056393557381255159271091542445168433476407509327113685169322425948393065354245908981584774969614399187379859306146542571941798469035376078271120744882835625266986277174224458736798055703249919293531426062295285244146483422348223536234128373027831880272222858457408475369635212119125655102207699044069847458139714507650539087018542403781054258521415684861351433793640734911951853418863427302083622369459464102450322453471891517642675916643223833187616786302697476752047644242983905480137428268137916803261745176514637752271320460747343202307657539660081100246017480956334510399346984036842991275204184370848610402478297761550123116929019218541445725180283705389958186401714465463201847456140262725449514183125345537807383616567452681581671676001759100505250588571353187799326701941505779851493992171851788780553898806977564560351224367160238053718980566994386487774227216587240461768226874782080060892158776799790031414464751775576080976392248203019304565069356315802417535234993935492663227972033087609888268774694675493555493806348318870212158828266621838264123746644254293354526999286390918990932921974752298008862782768731897274588784442921969560445143420571326641221296196506254614478096785300896541648366530269630294229835712987959370018592253439710709777378488984478573442048229694031016359112138738394600422366327513017383177821052797597460306649400342670649029974198484223777131873800684429086624664351371483834820400174073499425199848250866721949222611421975309162565544241489411385685147389169999079039211558743014128703594194179049341644366485463639121662106488313020479825302916555348239035637414616867357488816314579325619501815149941787891985255493361803721952883774125266505909576512270922593398246965512374285244765936835542112879007452857466662858634767739183080149064656335416746256755115638832951405114714821481741118191080558718420859909093235188586047472998251256947346773245006396288351846383217955000562090702911574937047798679806771612804914348047244924402275734531991914448246627568849337040862846608203053382734950491150230309019126339983777714227135219393385034313610799660830381330759510049055298350825793498990323389930101717664512895970698930552104212348864517779338321699373065769229603384760018855936593915992534284415873772910504020623677736487614233429909323614146531996629348110902683091608707504308144117652789258307447340107120220481546705562228580207991000651494756238048664063229000219593796040517843735851180036087795189645542558364732738044390388511107216471897995276817856376076722104362335389044099615805014165220849611507613665652454993595320817823855019433995378419349886101538692185241582019659025930762589047763741625025102503679341016757520091600476273298166915573909537667283858530438030822219263573360313299793432747006187721596634026003857645264252794767240296517866614850043491946169488378754091566246946926538038627691853905648490248035770745812446026078624000414001211242284690191286264226876908534628059321642284882894473623692846452915846645391046371379273296688750410513980282532426107517104604124443121719117967285238643033845902706225558886098163591272012214571354074766327624105049185220515611380428701256586529299837520075775330926763338756256836390880302363287525931385178623774086238303827528745109623020618259895236746066503559488411838352340585700157320416695081768968315429915355817871990624180908238811450694788978197885829287380171364700837367970037133907583876188114872930066838683631285419758427070633831630699705056784239364984144199362920134596517663785397201562270556443216090090202132015536078799470681831608408061219666401303431414308005503127485317174064789390663653952038402708229176917349029035845982842210928662377933569426843219988624214311262554573738268084960515775382297082537456917443221997772869095121518121221203845886408764558365092422109601446597613447120252385888670649240178626314623029243890926995704736797765085068136913433622231061044275548912373055345179592975376993021504951809725045576179293309384298829008787722951662993930011056095367846717845736432931491109711009462146113270653570441578461431952107806986924053413033123624639711282864051618350528024666860296881257283871461230192985197684741423290396274700511089175519260228267819313462992348428007951011372708156741000622497104202308850852542282838963727472140684365986990064711163439180098266546285913370614429947048117505206959493952543075236450909115715227735617155813168784699890426313632112955641572896389608998915165079517104604970062339960074306815951897634369960605926566015439925033416477843078716521300393647489965154674644012422288317924181902402516362823101657171545824401897155365525131241664082713904662794527266835694425752134484014646804474991210090942199255473246716066992585185628264551712044920374397402387826642981906534325531969237464452238763099586280252961741561995157772008757336398961304274028775733107975819421613070089466741423911210852125926788800946317058933289549823564818692074091526288235858576816124761478179041886734098617437401022843801492125232336229964896726670955237864813166020547138066611333055718522568421819697740356324690711041146349427653463132819435605678312842548049161321885362950755933845665712589509192687951924305103661219834281899037370487376279994253799884090778170996695243031562951801971508886740190725705796468929159881793957934341017179018811693383809288773653225243624044558438440626841896597056356984914775282111535411810609794530060765685393921565636677018480168332912054893512762394737682709854865200554904873828430037547524217855885020475000677979846053463550189068656634464180077068691411611903182275493931510094138485939531328592633407426534480462682492302140327058039897390082066193604546823848124219789323254060454417627929120092198166192886439262201768631863462076054570105742675641776118394342986486439608610312034541896936569217543549832328212572562728360609797644416100820523165292769025435488712735036538806191482793910492914554170535997717573878231931058628610374287493929397099843445561383451378445786000695290362438447694409417581872968911823192874690327390495806118131615759459293862381033075822921656112831138558490320295059045995603267160854070007604200711422170290621900907518293418887362859984474834838885238962839837423136619321975973390865388114817008927691638329212967511332022950453967543429324715300428117056210158474398357751132155935018805062965642455710788271277326251395383679428978795872776180958459047853664093243205174991149712272823569338958744641618099381471494310886054724269857277109025005073539815408221284641988182529829497845611476425808273123775940867041847050558534951986703256071036308040496811320102021712666062853820119536270122017437209100443781916583022215564313386044373134985173005408017604824982282978638159130888418877388987383272642669200594230505129913904827710753536166890010741922089964881818278418788744149950866268279131992109733907344203177057955450892438073317958680514540065611779533484100658455559365822178650139730392955519485418419883893828097913983712258357553182982810579529090046432624847808857019146079781884627871200171266621368156287614913818584567390345607444544016588835615757989509178105684096585381988445013527856184314325040853962851373806285756574394807450175748873847515168622888148502777432974563710288852072220482776537257854691907520955990122736428704152448070245016585063317656641615956378722741723602613009929924373042788972595659886109250385649189054411854707434577682094217307321785821358805939394367683012908232289877152232081626568309477608377741876304552645342891434750904284457259796075057776332874806158549065532620681319446816875399356981523017265775511724121505664753484730246634744240645746056854057052648270644573893884450558029202339959968406592662854827740711899432425368633899356824785030096192180804449078607309799026546489602544120973481592112088963927495511246110718978406028686563028323511511190616413909001140227072657780536909462328143566718903505616691451215686697088850704575722855484163306480406041052843862159530579612369942361710707874702195712632241829948994287144250923903415809364605539444137464762758148844487920825816477459765698899707040402025397267861765103560381872333399597516433826371544404455782645344343742720256221105147709673560494098523137739176020216935902177294064112736294710660842740955143153935270722642284184130969096748168370249613502095711230268660821764732118268607494295753501862495878716904310072970674828262027737035190091229837417964911454813369496161250709302636365885865172876260012292528430376082361371055617088353580731491148802190677602658835589955253026890345468280179317478666978229679182322196499838370872321161650835752051531651827632611749042901508553450858764166015926886914385630386502461515162248350227710199414687068553662961289463007593171653770877276819928477124615310318082636324970440915556045682043363253555249972639916634434065212653942800801294292186940993055197157406239853424276078096612445906818655353020928285559934413027120110199801722268751608557534938240811819416582610837541510775145300857156451207649567502061779582678849644671726881934584796440034838598114924480986196458375440776778828710352413191369142195067637784495418064356195077292475795905843233691744996469484853193899945673612790130809495511656460314175050391066931913169543467919547448890803771075671105038485918316028075446618850127573138863486567069560279823822343419480742367914112398498534677038627047533281146520737674878653656284754286739420719808827857141147630021851981471911181996992673204398741853442443192306845321424652971522761936815708631685913644750980996601786532505098462239267647687183806206756083378016582195257090983097818793010636896733476995716220468922173603804050971618402671982174298975437515750548082760237158069195214437076216436011161464134472661620790494474660416649593196996508000371152167995762714011369283861335800538911316159354973970997712586632297788433001212147311541452729532506731139579264954056038524371152344982274521986701401494593854200864650134783089728682571303149948877943021726365220641642848603199073025547103926463012725534211064685253186880129273075486348768150283814302962466001365343892907169657176100615311077097064217675423220091983009079169808283884926485675345515688992577131832702317547908981184842522894699677813106709865265614993474253941480896158435314136193573403075993297227563661199805808746211628073420569663294740236558890034140682402105664664935093948797652962841335103545224792284858280021938193133508379936065852440641658861771913345799898685965221782842775577451966315949802382039968394685958851731493311761482675154374947894839011458386437850417227814496127606221542090429124914861287024051302543215313576056474682035272901451544927596456328498745359015907262927991895606254167340786319010775036570930049383652841885121222885985761913206605359721602845606184847879564841496542193366393780001717915697507890245952533886582822134052584675473915896295819797483169572993650653100350069159600015908524814759236784546200810713815193504318808719181508818209832749194383335079464141778761415452830770516312450138778578013768226069342641745521298738833126466939132444635134723589247748902894044316502848041217556211930881281956690729665708536522401979109868153110260401167379819389189813522858340346525966961677544039568509692780405050984204790233299882660954559431303204088129759189110689376627155925287985276295561161460958947865645733168992301096331651896903445682675646066885844840281519614880454008971476134629714474402368034428096913281386761103207494695454247117807235488815759214522965797283373893449766687608794284899197967816301402765429329574966401485652736332012076547339751389021872075580748537770661613782298007261030791015036219042262490359891818914572768517572755385141035062288787262068116390117041628752853800989585190942377787056171424227247927767365856711263987121645399984594262392639421229606331776450644338369160966869229752419556272239042632431131749677843571524512165741499990626673733224371739670747046409056210331350645013453732252851489625621072246206844297923586280771339140596048590411758312258859187935895052405514943016693156443492640956871228816131268033406254802259108352175520388647733114408981973128083071561884110038284640844112930536138150380290333950830703854394358501305629860110266220929690059299999788836147288753642081407162700791746100427415425219368844259576221206047630601879490741753784955515598030383370703628031524070233148036018528518671640331116132757603301977894696347668546778339065164037241135120378595386241500380832614675283504410338379438365821310941398832599544905355499921253610018454041915641110529935996925391022380945312285553629069463273071418729803127422347654506771986942944488095891517407185685324585903392662832093209613104396576547908546409564583294735188964894500682207236532398093984978910282040229898524797483531684582326959053649484400962345961639028349946583567503384147806223093701728575428528402640730272766364749295059143236335290483011260852166500337266666992113176562060652233095260910387298318495231400682302389537075822066928745081617562022275698823925411027711777495483717356781667064115631981631810603933701661879359604631660170748825510606508977829655693491075875937732797045249720556259531810693995490967285055172997905330646944166889223835703706202516360389277373947833548764002421083875899697189913921462897098500085138439267764920559245951615743540494813242032511794370810296611198983768423047177841999269409361635655263927097343312904162091409782847569374639974511327512111052237596333644449489195267130585363559159465969179886234022702650025152748084180296070482452720722635772396220403014983276932076760653992105081369375854823542470876760110768627371149540949440453632854347055836524182134745347683045735097477041098401983222852878198627112786595035174211238026870659662365343307489083534675474913917454788685198910319423179698436391797396266429975259183384658610152304724822665176041009148560087781349757129966360622954986362369896598497009186233521318402040715033775035759465785369188731725969601081721715796259930028599404520683395550919607480198386474248183512269355708218971014080620063080150832893322206626326679884072717096540274311781945018476588189339732129659888780334089857815365112299976703367995188683323130005518331302832487468556390387644227449559776395931265012128591333365052171570619001027611258148681235385049511341766435725402183280637364379026746710299168456677806898215382971643339091712005584718770069164545478748039405610790262102857451241016513627899790454932966961824583028660498173732358119580885058149975790712506797970946762289204205155873829548148216354295096234644694696877131573068177883182373227867189576185289921608736163735567634324959429006094975177320004328267947844083904532148480880231670402964610296484905533502916025032316227913425723838307166296399906672473709696678376124323343492744639423048619790726656896284924324168084414263158301929516184299646395912447310658613474152695015540312852428674925526084809884692520275123875505761302097501528069853914665327894691601993117004577962981282985507085922474326797593896978086568344759697058784239568229565104950326982631795248925406210772298059787774812177217922699081955830263186128479133536571841746559403253916799815851573614517472344251262453900981813642712260612226360337287127702837066547327940983702865981178523935616009006799055617769784223189278487892348961451248993788519959555844169494453405960585904274989767165636725610262154134992904143345769619490088305490147434573536464518927504327505217129947848852217261528369693081037257227093034680860016316461154503536583222381505649387309182877308059719107651157970379716172410526812173080823376592196583139475608553792422010345378382181909380260032168003492070086618954636995965838885662386517875863784579687168023146560353898868463289354305139746474330931372905707568316851586959694291275426948480410017356888142530717932571488149824320832040719916702529841000901291929744254686595507535010363432571986952777477030882986850777456801844594001737670323984496176118065299352426910359298679360583392152620018542440291737008879524741193238975248344406649420459423746753176002845610139510627955894921710052126413410114430493568506332572817169250249738126136552349796132674090740804421165137668565753952264745327820518198110580434393338462798629646257248742931725337745652284440717945033379862172242320029675311358536662946440077203040173202292192965350531306106871519335889421995286932225325863275669591059872324820388769692932039452651041139140088330478674012373053447812519863155510676629751665555750293334939017567038183678097457333854391859725063096605420706719461488857557799213326285962814564503355443887398517274456538988651680379169564049101155556115706540404575430116024778714497939337930137790697638122404302783725144026661702448563633209347501023549485229389635288677996680231781410360780497312237978882253320990534905783688535947377958178886913695947473245576358334084464203977130523048436549819914566092867454669778093136068186851178158563875580474521490846627914823341306840702118111127093292384010936586073816142962091992570677626116371747292105068774756333490136813945197374443996874775710221186089851907749043944298746962487989488380996315356742928986893894505113612206526792361465800398110798054089556914512502455489895701487048057743212559589849165507063770283895128092646601784523761998032364070554732343266374881399863677309560537746767413565763129598196866485717833602586471909151673908372939222464884596087712931212760320597590037644055173375019494785094773593397865912361833093059849425722439543900102252160197996870471117178177321360432354918989915102831786779301966620969612132267913846034428245299385664854801121395789473250511768638919878844407753371687753271396765189602786479084280425454587946819641732101901617690375085619639938121022233242171898528337878010308427929700314532175171745976366341334376137483469380842622409880948636036362038282461774222739338365020321392460307310685446097791755705892384133284265495598128002452019849579216971781571910430827871442868928509501480399224565932012978106571677086240608824219833179496443849942490554572592959780684971903738057143010744263735077126432535410346737980306058850704968845156820309824175724862774872793292767659851265370036519893390020035209078277817808065908004091865528616202908261222589508334732556055165980274433846316132497610735445508148969720951066642096478290863972657272303719491679973490901603953734902568327040856627366156431942932988145665991132562842501631021882616210111562587679757882865015678860253351794548983605947082797644064840853110922924307914546488333926242182351360734602395267850060172902410545566815501068975322609220223131314919859834200952580308545384616367376271327726046223369709131256641081680661218846244256003049357870257146191193110785655634359660502485022835815075395309427963722365220919256222443674969989095177872345281841137218022876259253908708682470276256539629035815942323062775692992838848905991293294979574991994979652523111343959324813875222662454428954771658073785633911017359464521452272817123010701171276444664459170692726461004024181610533288421981823132451068949214556346349511777047642091856823889546899908623444693224245472619576816675916529006873816203871439827530073288021056757922305968922646197591807745287111910869839119065387530824437308806108464382337104618741840483208690987772612352675428888852481652386680255267966138138362621095971748979976606604880945791111472819512259811403872696769917477836561115061486305490947051447945663950677831115178075380278258808806201571632793679078491639913045583023066849569535969820454932342408325846508980034775819015117514829764945742480226327271018185311476783411858385789365847019255449864300518329966073034794792246274446168288894650296314218478629644113852088270498182371136835266001506820239397801362459923375430381783805807231158070370431806051327021220168210597014943929026224568727771602014977384081084004428338775716282988551857939498020016058295374978562111879477964122294505156599486501859011400188694920443727409381008768708990273022601442977453986911345255113522435723927169600041484531934331935169537395543089018498545176067624704392228781532893646035915156386047890944704675022888578081864390023097267096253616039820162267126072326291395330768382693162065282857584350967263103169161291332814998244600596591921404240706105434719622550711667565432606117764854628982388974109650972838892496273419723808753553703280180653560853120987583201592167862688119105201434618524726743924880442513421894437021428379320051568485526290969314201068078090106624093671495008365379772221252848064887832445288590738422649730641126346850630405310295939919585021163957702049947963432695668705517533382218444539552765861114903507025684188831971638124223908686608548751186108111866760980410512285914313744766669352829309802346586864809685619436075947330997508245764710108671939081012844089659518834930573636103906521055411953218313922814587326890957732091912506936204803476477974060718828507317363823606977386172285726438850577418499461709796911649040079014895911330748402583155809983847720344905746705619634074487280145164691265492029452535515766291763802606832507352544862202117708808958185393828954924598957079641281744066127234609272395202627163570657469853847212731092648877488176012732996966362151733782441672019893812557023913548549504556446723160934566819461704595992142579715420736249678065307104947030557079563734434740613459838607653438934937834513901420865274327398811298695005658447030127494996192464833530451948399856369469214484072801498775273013243521998464040972875634356260831442016397532962670961189292119780148012070315426998218945803203081777655369980183193437527181499382589429826160918581766195368411760190607629366876153246455478543408384189303752738493683425832929921866455098443358711863924402065586626214332072080534150207221201120109669757145722468113791742931549798438629595636385301224128634106026920996144804553011556926900051679170815434808547299140465808086237040883046831036530613654917413510558732699342287448609896828445261345122888628509566245013356516325947810627556125269360997321912167269415777295049591392635784338891276864801365862550279406803990448947836720342992267179560082003163040439435021231262656041461375939248372133200291249369748697089487021777167866374865813493483639700547855656288369677161335316120144001822504101883543477166958159344709631376143241260391800518126745401981997254892413667933239400568728830485964487313990226554442068395338401813124727541594828259229857357311915653727239354944615916402504399418790433555283164375536226433771404178237157425739123245386623530677677072607968794505888722618124231240715786048479841018609610815503412026431647688892041770898745044463116066330509981332869002388858286235944281230959749079623318664065505561688621553010301751459601496842713730613065754158070820999312434265640042821196780575312429394655688547950200675840963814242837171500630942147756246315872420249954871095864704972875334397438946350480098237786129713835301653112810082062793815986807437421666014574900115517106882176685897672896852346737842188213249524238786396303806051571739482041504640389453288141047137570468981510984619942714838314137611537135039148112016431447611771046993786451154588562927820808217066133071214234532151324335151788058994836166759591685945915091491969996863128069262573162166580930099068348407781791067010723488029165917658423584585324116584422999668960995054752925520310514110265613078909972135103609317101966365757060189062737971785596345630843633354449083077908759049622166022787865511553710889140291205425944719903694772431720028773282473033236754492721537232018722483166471077468691732320468908832715425342005364651173917240194508232959474469252408032792254401773541615859247360427961627552858562316857365576440232822289114570554408446538919315784699748751489603691081347630591129843950960329328376511418767409225034356338394321213599757419355392456877122108989970072740722713947309589009902443654647165958356052857775299318389968086877464055229398217112036451889412387103175866073276167178653437066446752823008572797124793193093756033512647893364159740940946385472732806010665202415670759571128087961683216193137360748812707937904917269635465890372461045326345407407626218732037620073015067474739786160045997258118009280461453183124735049392229175028826412953326459772524591280153729914636467064146492762134944050809093737199535113176201476970801734465023699767697787946588504618565460941522137038734018356210083490076842593245077664249140087459059040305456729955218690906701970642658239672245659133876540519420334009981660499323926569564925631015614741961374496096205932269012609288295891497653001531401858770297940820216572348802918686471644180724136691657288156642201413403825227254578761477459668508377595821044876242056983734036480144467064008336953554274130732783011106041385334924024427804681203512148829782384227099450879602026732000165577003778194011703348087120041633354126746272594501225265947405052464124472770025269667048021899010277450604736364407258880044495260307498477924759837835484790846488389544987615099304451822446606084300044777924584382630897031018645952007353674935270560971472720294819679629122989188533770711370358881634350473860857015632882587310406943598859868197498412472858485564004314568474992307518519555725834789371682001385943525326195370644531268791765472694604862688397004612426252616908449263265485473523839440786369619934359783624029235865642353527306815837237088814986986471378779634403163329112018810147431906173928208706998884316786865577710737856298016052658790551440383091980718114157378448992458631984647517893236001934585980029664626450271908914943674477908335078394336382835007031768512338230988551481372111685571693708727836101596797583714464795813933417826428078312781900813280266267822709932306141953343962619852712657204368971074171689480010432423363868517312056366321222176618047206200399769627202440740234951979653513441544662475385700507435701235485271043490989826488204457781156342864884676419817201725984457359881047040100711258615330620804487990295671993157880622830613768051583335904334209411972269836985484509155538468047357133674717712200500769601745789421325526389420570599487485259465684753125036619661568730507496773744780730064813969613561026861778891834185081603518497836682118802001682011127588282304735801967488142962574950360788590169235849944668969674034322290200557762559257125650788754521431202346665667795387731731218319506807608584116901707044823774930306801014084806425949101797610343645819237716606181735378286414170410201211042646266289687993978382778504536136454700304526975979733780656979445958166233139935267952747561892396082591300626026236274821072663950559926309518630489927122207838156080756207097462236565376239428505463114073339879021710875482212222670570757182352568019708215358208603587480629647522611849267551401676279106444544052054282199920223496827412080311353805172522745246643365887811655038871675733440673573690386220883588758745087368270265204779720726617019774939536079353547991051673123896730965120850142502702655948065394686608917708365011770323064435594027069001066105828306656539640882094271563936065940456259178751912871093610576328208366271029964868805992857823290460988570300463489625099778647987004958421525137605972209402035175022995002425878820588506287078593921348675785196233726082923965858885753691015942095441783297543632507015616572030554173206869331792937487501384255259280197484996639864295078667682010658565579113481399516032133061063761132075075950007220835467173327822496471473234975982820309605970803557839759842085819390714675089771908666028453983319211457635612304144855725212880470309686286367032159163975307354628182480557951038508906060088139325329566464332884664240589272335813235637144068316909843498078047086299898858462233986162648459927832034919117104177707716123705894703052828098713787680582504256471465133584742668493613136772745589511094864225126029472835727190502641388724809892896868329471243860977102661567105282282462661884540144096521695572716365120417532921491817292963049348285945384650536268093642770346921904924769400535970420668104640476301769080161070707662458712321009829632295801849356205879653314131049935912457947520329200332360725284740764759605216658125310454818767392408560772945509212884224055349373558340260791293929022585559369769034423203147581997368062342952801667859536475406432935382788669991692727264624793200274362143619456086842848926365701939722410319478945387955263841578742158074633962224670480153149305274011385608808091364474182714164747139670317681906179942200540858119079111908584232779816330436828593031639766774586751919362310388616748732449488719758459399585468299266257677797833025667805222608622503617361557411910141194666246370954447277854131547159190454597254614952109520309035816714007076314649828143994808477352512216304618967998170705182031341781393025156098397019356326009482354205985137157259052324353900219721152658514078111408084052944638386209605779503563693473606749712045552045587815982009560889817278162663914793792898879348424241196599767078406146890659160214728154405955600447217969425646031710677078325519874624793274846631496433570319231434613108224768567696008254436684261656191044626182614374605042606777540867080532957296312148964614989651492677867446638043443402960853342585611720879826434183935224296752634501927502801043073034300174518260674535749197182930933764591290585717444691366217077302405556938557174869428355136197617143882141807018292367889295549756747144606490997749153706566748143208036814800275967669917185763011128985197246118336371699004563186980651138733920315866007574999382911354574111359058837880415873225052644128067215421496527879807735008405786608576619836928232427479205319514661269426208847791335774405397316717852289960274920283839163401092795718157684155873973035758299676780549742138072043823244927910956023974499837918876285726669927767080824224478380087768496684379993120023851454551595179835128650535175576121390808336410464730454053336595479494580407973755948951642072927233319054705636730012384676819084750428246466706037365092557462814192678467891099190760137139695373119667258733175051387527350749401029908897044395918769250976589514144749774590721907146642318669611848964064535643584630991697803884856218872541411766894259367441514146886644998153566305377498807377195581011284997883365810793579828024337068796228430086346693935427572564715317725895864905172124349548295365294577490243854800616491740826449128267034807950603794119935436048845679416290095514075325143875899301977558998072611514008686064798340900013149368586333418438696602233574836765526620216942898430799032458005831758605303271727545670586900192416555924825526597655285015286973872494925698608331418145797943719445851343009609460076856924808601619471314879287727392108327175292618018283555653684366811687616881822081136905889148853575862819637849552670586828654975723277235942339473739973896417040163183104349322427007434314573906805001522985026252582422826328642101464063279749253841386218370317563401978245163819593682624620979081075882578655255529368383727709046652791700759790411289340375153683299018091693311640474096601424494674052937185539562040298794567844665222937433860457331893386400913939083563891733460563700479815394674138216128250321151626281177246704497796895330748555558065452781927319839626371331802320720127939020513249739183854170963840430914324639591625353200991880474102656096703183493331884462779793158944477710213175500214745916558303162346636801384458000899275212444277074572944807509206010242399716830138373845261329311615153249257536619271325044854162035422018312387496300797003774833494848871308157671905246143989614873445675708787441797334939613830376184345645687163943953776625013522280276690787509204254824524817531841273928317616888707319610295668863265678111559164196264854961256705980215976410696304609284377855018038760755742565405068888551319110514051806981633673803958733659400514711341060477133676377043792267748282164223627356977987096170378021477547567591068819626090844576152016349618707805725355272678585306294126228297476422925647109920919821445477187399860622031694365299707147222687429204859043647419857347115437345242620237784468294049648215710453674706677034594474863606104182454910515936910012478290195772879930668930755479523597569233538422916397741115811263104232014657499909241332556503282130894065944129026309735480668372426825906564325221515881985184171176094041083148552856537491005421087526874719610996554247716399674171003343639868325328865824695531908500686461574894879052163592793738848007071365909438144193043759504544824587360685826114488920062274445475315876087338261198595282512914590279241153116069119128474849979468779962438759469123237770904271646785140233030777570966845354666421736892211403737528612321918933980770199821258211292534214832794799828390804458876252445616944970128058698119046364000641483480250477188012000839776102241015845005217972884607699125268993208829543281776099514911357810008619542962949946623484646616018889372066150773626710795449140748889741836267450863134556324112211448488303237956664143182231343071941724797918516494941232869048622750169610869466512249875208553967078798499960009217572551821663941896261792404651260278995942790877446249508408460691053565520883115283459005543949787028244011702096505194583034258210016329615366405906877900978756233454574242433593763178341473362514528992292018491940802544656962870479154821776865783456844342807511673504223591306052003817490136886454442894113520250163468056859807983007009851181721376803616041847409508441079649124875021851757049172162920495129029374684294694041196277537276751475391428160829377116133060831810065740596459313200070825997099522291509376508158448443814574585351924907108891136802188673245731027799999359748761091496882103744704027328398869126255018856711897832763747812054477193149038858325482205087902101103468943663935250568924294588030299981163662281430733861083905860055292057975490618847546760246066085746986864797048605204128874773984949304148390346814871749518995625434305133125932156915955596445873625332538755572671623235399092242560412041875905950718254900588123021207584091525297097005310084526823630495996111826987892236122649956483507340933167761850778759239625979961233321135580164846626275588351079762060763777159749831051442492179558207488244222689966060791573484874428818943206555074702233245951873966759170109620283231571213815146961425104479870147291922883862257142419232068185910500678066234302542989101499403381647703805092084247156847076174456470541202954518305058591589498274823156271794597847907728704538812774223609490592702257424821806369228269725105444792959206717832876607379138415303815292829220858471571360227505240305987891503407830609141646137335509766222775414541198948679501258025281266393856416647569186110781466786632868391398381748972443356352442338484346490838984044296743776554922470582194428809721185402166685829769461664352398232527316295954451171927074542919619221618123192003932707539894852227145970792649570514702593820707760352222611250575850797645763406983657103644402094803591815955172455408524241305773886473269631681569237337735162282070014043466669378120147531659316542738133266700740805996410231655519101336518881420537892567728883413037038111037230479573996960036629189995833543915819636050467678646750213786298944325250219625489873240922201865634869174229757289646619721614268350807756910118813984357698725238135569618581810643636460932367760722332408539374859429814055101219259710136985304582483283884429715806645833816258374493871086784160191715299051497092110129374991963651148655363049256886505585663695305180305333804867189335352214230479575703485128261148438745208783457708451072113517067382780670034897562279158445675999216396160071699584394678534772630564523015315987415740944983162705793945096879314860650636627319152069338533592115813683362336855796079191046749150577735919943472102088900423054314947983257229940479982467903049327446010667044553114527519981888589854806863208357106975542104940386694046110829195348360373761914694832980770812789264960343783651512452009998086486671105749757394292039212085371535931827584561234805831216554580485242203869014545965421972692790562822792937844615237539262786359678538721732719558250041944555018124965151245965171184760154587381099066203968027545986706325864450335086774879383001371572961754610045096469691178038482644834663563626947021348391099682086607849623502162188222937116364802549400949190077631978814685551549028659278314740066647431192551214370605659029773408133299928068894152141937659255673238506052208860041288386581720711798419700297185094213965120334742915345665757036458712968708021243981483064452318642191443102087896269273836447403100694849285560628217656085401956387695240560950278738693973880908154103527637652026114670469016723676492148457263009880536096584272025634708020199802175873114725830126078450123256907823648358306813534302880482745525267858172984711924357173556556953859051689924493603914670841792486164651838502473544890595194800141536520132993646020808239090762745820549366529677487679787300873911501531217155087095818229129583921499972579056876686104462837410940778932229111667834908430945063070689715420020688107709211201489299598195278801477973337164220502216170996175164768832242950046945088693233005976161698241954440773283244997055063205719257117909817113805416661740679177116283356835615883192798642668490433073946752417386741833019159502646387742715649621526150108045727517544283032197686196329809396909149828721715558381791041205455491764329835142107139088696598861045349456764777984246612762411409506042922975067689851251928240547500183573964817895210028616024794625553355701918832268860836573522505912239666696554558728992933837225131044582575417888139433698979790093379350335217527854569799814230874594454744646061529927177087829306583428037605954367681263324666098677973808024848891591147296004479039194992932101919319959679958103180855961378897602799465246102739182721708708478328666988297329998810235567975866742043510734080345210214949860076040923999700243631069797562295685961911513352213103681829988018433848354186457029348160280499966345221080144594252660851164530784323190549017134968367919798726427554182501018842453922311375306987476030234298482337517226848460734971792227283562276812671720804786611341117423197957550557572037809453461041409909399846740727894684844995115418503026842871250119115087136657901044995726868713648734625845906202257948030204928079488567680081827474187474143261164968864714721259725676092154135441517360364137628030281033717943135687427083250610302839209905201327467859635535724470004326832098010657934929862333436337786493241909482955248655250513522356007042192910694372563947515580149529758982841619924191097672737413504557642181408872697096672571912296534819217976228605125743321536489271013801138600047857991768828828614384856460005080223902608888539176752685478871554319384551193980878547511818991986545123028902575120407843048086404868418171690491965269174273301112840210383152141134647054287550914748518066268333369303398045498924855889844206743303585115720141297037173355088559072039653686210144151104270961099669187099312812116895391451221838168587390715857350813712077474654991825340121962652064675512596163011626025136172534739984777013346918444578014942751967963604922177735257321629178590247988916677860353301489076532217730210602796003131466110664287288972693501370758924685511907034858211280915439894655885884470760720103036741567533592665065168236617385969478793899967911369456990846299464472543074184953017398874784673484076570873232027024310162952352998175107179729873675963513135043979491632037569393868687414251098262306814554323544398656664175495439373485298484650617016951042404607882106148871833107441501817646572111124847011280720629865358652519014904593988868917275877773229517019651336993342219100560136472285710986091790131912130449967392966811698826544578922965387664858194656447929845218111888295214933687589809261378149446055279242939124675650374490090149857925400853660026353418863981094964769158905042350544109786740595152017360166945536192318124420600316256355213057632126844538164296506647820004724117726744128876019765008887133190272416573634068129622033645125994559230932842232848857355413554170716754639492921256999474999848152928983836411186841483623299943777604510521978838420737830014560051365270393328944237838031909836726121166906963748011134014621306522979155505488813978699941659177962962063891565534164648765847894067583583690253317979159217023152412218940252155650175374960825922349020048398777013194790139909347740407886978859185177890583783976425221716203126447964363370330873304729030259482940128647056090780824668815942126611171756777101649380359511200648957647752315770152612163510716882342414251956410010128856645109431496826522143924863411117310577096672905579387301806253116436930630284418976100703851492886007110093330118568841907839100508840552593292898852829149833228076203795219058325741358126336517525927884908141176431547641704927454785165778993896464697081961851693231756893605943626642017000322168928757786838992537614958605296470658505114819039736203616555439387927204366515158105518448078199466903900207400902124015736718132156983111906432853562231782166621607464392431503576245307395538859698369481641151953524577193187099309294348001781660112555510865300454120740703918213402010206236016923597787547563364987433655757494966560340935370626564746040875211723927616089845330333200419026805423470030935140175258924601321712997647481501675947180268776653743083558975576023051621319721648691349927089828321883285381408046365874444716839422400148946723903773771037926236677914518324406578156351889540712735588274869774606059829125394055639654303755437330494916851691795953159128692649057401783826787918555961754386078024868077753684370594311748548299423590256028740419731695126514953665358313751634268212591430129075250087336149821613334451435368694950010816995116820987591245418073129521454145553105955963697801009602627874080069101343225587427606141302156761624489368967046139348786167862790757274873087099382322825648205395500826046165851247715571976868430462734776606907930702457241949733776997685309992818596386110203629007409065437312712610955466617045796108104047540371473358357733689961145794467609259932571483646377792038172307526458630381002016444068264347943889191647119592051927340987200349591778301027633845676708426880794846660324348607976786377737086347558799896668678892697989073350720372086815080104106717361187021588889022745781785237667429035024915203125664907409107400920424451593189305356785898129393166891713043839227463079379109196729151283641835243862291623112914795697666448792643184130490200787411439683772585984305457947725947733629788619466380725335387243748182953973446842352269686182466209624082403758273742288189788391560937806028845416842634310018433623341780743338035208549718146680031925560813987488718147227592342840107776352955127410456437945332552989626602558647321939015206124962804558192936966575617564959676486007301783765210473450476921930212151334488186494550735612421797703209486084012625032380409147561492754445714562490165112667141272449488739389006207687181555239096780951236469291419337625718448864805698498042826770531217379514968327797350214249099438430479290013375864259918801442938652429157642537907271978170098264711653993131808322425759270860745765175029387979942784696615330893904611926200170921862204747560077786350933625453683313652652713137087580521366304170489556831360901051231694194741512569384832169002909617955990900482419948872210042067212177013989459221795308413642298864312598078818509147464081408638365611016758502992716700777997402180180190428024321349955777410021821198277746884614817518389068354892987281713011695027401863044965106747563245289745905012098958826785944468590687815608668126003474810955383311514526031510266148340092590745904950315568352810731346806795527319533840217741862728079603918405159180879194903634726770662240668998720826560019821069543021907521780960068307573860819975798349280507977582612073176960199419068406370420264803890771949421704478714090397098359176192024375852792200059730146215448020539075444672942300716041179061927759170548619934154757485562916625596417122571942336310363238353067708627646624092542123914015639619193020700929575300743628322199171883389309648811543486015244378628071786788644449169849444073792525399229178041988528868666951503338819588648746547576110739384354496997808062808490200527994124845129511694597086325037072540190419836791002410047160662231287328757722388449938716076418501184488158965203916780332933055434775491507078438810447583285327802006462590395109131766965576584277210308710958982434961395197722715549613101373495575246178615519090457785170457707820127335392993562415262506106327514493984428181273224122831348014668220247524722882983753793453858205275257900028627995506704329141822471998970155339759871453948476837782316265899114959933584855846503560840055311593444879919608236675700093044476519573027979104301189908094422093624243790330616310022761009659682275011835063453178496252608422432020857822588510627414685854403332820120620175670547965761918889772738992716692972218486167137455285598708058808367323334027633660103587209818042917543765626344327952345170148226751071948692023230401913362891596959600883686307729094939185479561654467899072078267598025901951824391618977530072588847710696516072320466895148712500415315635152534059864648451986415610203970800586913871457105246611907237910671188922287084747572876141142783068677963785522149220898699084960844598342082629101846818693662362062353045430155216522127233419075812226773164341148746884564114555980440028722823109415219087481953856644438883193715544695434428517587030075035780408849403143636302656333991899444175352189234505934520930909799882658903098554910141719192219279849748539290023546596726551554637647820182315316405563784097348661755205401781725640514124346193174957372016206287276429684881418265703678981777439566339813630256878912168622676263125170004453334907252384426461561450409117807578946726091681429902122880646107378760005984514827717408061529340526142296686141606714298926247032706214915458709988332305493860279945006627870313559747232252812570094746190063326202026474124426273003221898859803689389025141864179857190828381959347722746577412749761885464066596692468261597836186350644987015931937227369967071046079918686206432557662699166662896341983032859829544320375942132217769938840908932625287913601419005016127152137612012664643165503650580061785304822232763142586371415781779970425519249866873034189695922293959620197545676118298162779922093453689448950334735999174199859940812833696808313370034140505800263332600053413660047394257809025963099788523006469421278359275731663666647364573570174914521273218289512455235934003433368965682994218261193075594183539041523858537252409596349332887830117857348096785501015006738598638558722689754204076181521016082889273219200761314521853080984873880121362238439152492173557520761950964699303741416090863529595297670364886872058289432895177672012798326192869725044219069463449000446885159436768998818426382188048148729136978219717471954116094347272850043257589267054254268153581223305260993258104788926239387214156070628006627327361296669771372275326008253485600852532497380783306531207632537800795740402502661551910317795589302496514369403380933415197493000146396689552788525310730015618050391150653782881923763117088066512748816383616237885209856541548938344715034490828001148482497558902043307719620337355395463043458702806394374868037592411461648952229065028993781744350398552519282417574377763721475022410775253534635680139317014660518115897998497994976027520648102032290216762495596665723604513871699692403870494425446041612449001027427987127431591937985932282579767028849002789547079557631489321025279197747062812514184772974803509169943950460340814891208609972271260477459095691846587443753051320832549537398396591549977077064534379640413483279864814869792358439068634794030986349025436648708102888421908536973221333031741277181484145453657684655761277493107722164623862398508198247363433809446544207977242419079498624784298031214801885277037647832895618026807638370042879733090924148475591789642424347185035423571603253082486133601706004885649389417236449742954585066780813799182660690011400811584243325910336028056771808102670447775889072681814812779484647697582211985049133441089754242401973230591603959407305976510399256306460922589033690587310634523558128691247719343728400829254736732006297417921046102763544466897471230492906743599702836473527369451468258063359486417784910289617866086790921824187636002048482199002002781073595709681776212944571538990497617950742408893224908907621381314430670020591259732430666301099105017104556659774405436295957652490153459739742182897079142410007373612527732053966618777553336341434713799615792341960444245819920289423955354177430275542250729366131897742589090461998866588007684543914154989034529537951603273277005147407483775870258439035690240270505279919790257532233504553667734420097201373387168849948722589569732047124549718737967487147330639842136606302775685253979650580919278082428863965183815706679644505031246341794959245111299519286408550257665155049517838797075091535693878900557367806551246787920320642706574845420171865062500892985211357934745155660201576202177391803012431388374722875885038234253577909109636346450868512221996395965408878139377965252398449986573402987040231168246345522379746492472615400110117322883336367283151952821141459087568571275589114942648054485598991933645965465045084147416194417514485699178046120788064175707920360827149823870341958259224232134618282544466164703374590523565640549304885505606465353737160317504166833555665472941591026042571163997604390101427529051384985955824731383597737990979658225503716398384986542053780186015322768982624045497647477027333799938646273232496357524269428017904431742062727246225160675221184545290551585678470626558275041425738654733491348439234889592267648185964650465608713773338000629174033618619648293319158282359103730843842209769900736530074807179730418871514973137877425507307807674232008810587311540682617280513713246162274693705899746842709748116928591433686552800910658278391948660733598811208818535577004088492325190873559274049072521185156523299956083635773907096335928256425442443705868436328679197288019636386465281337303545579610224018853829229180385229504643529870478317964362106582905417211075659893632910334951964705123440637495790585246892213920590560179156660900945721359349447043016757630038186265371351505165134690020038729199927850511334628712206863684194379048684062873830833631532723128409752885458741052469791900626434338990049223888408391600976356048179395313547920281423747660544799329163804881435858325992419150832981326154341222332733305870418694458454517326766799819683241069238384672462332339033140736011000675319979365734945302593163666555335467907840781496694333056820900091180377622246821280277979459859706124423240815280402437946038456086946207558599344442221417784582832046641215062934426890083555677598571379658041869083347960875610606147081994802259239252088441694719919209559556902332232112944913535910100078725429189148030841419972041921819367370703730889964476923254200541131879494065395730103927189807525842091642517027331323738332535279551941381532900771517109794643689300011191390779451842582309068326318240086452720741455515301383333623055465865153867120750217357608488595002880880309110033757099593071056142472436120336667433855665575366835805243630099098200858978379113979832796505880595886092844693435556004896991327230897152386107467597853467940688210226645456327272294352677778203627722195730044003712424519033197016938029071785549498937352530830283976785343410732970217785610648375962786967568508281314673322477021449248446833287811673860680866867900426856211432132557635984014511761313335944890304015997556393927155646353908747534045533249551046602314483524163027916925325178245702298336763860558397254591023844743067045721962541548220347249847138406794601140450085664227805346012609296651077803391713773359177725857297801623799827411993208018161407010307360606046423236061664050118487719924589438425837594694288699545236703756916549530594754525763703405516738158849515409469985698427705543493575832917029269356632924298694638364921084445088181095297682526260026288233614360914185496461852390550704888455943246361435778220319945490455111756438370871429719651379428655664288001225053632360560483320528838087216992518034364257280689995379283990463897899684596520533235576100711682042726824246536565247600337014518082208879139276361609193767255545732329596148468944196073076550445534910374385884122302727130097571960339172600120026799740603014448964527088502413641377906878114485203592319813095601173570668691281506629522269872316804531756505148927822150754009361538521209002188672627037223203541553295045205815408272589561111547804175481239827002930913845741535599200860687305091118154546010964174318959254981097147240715602433296359837524214743350808677610410581688090595102253210821684666580589499080072190447721135499179029173489375241090712227341828502196704016645664542403427659000758769600613281988392708754024615036308792353497098512127261618008770349929791573019713765200542455434901624178393132013892785341550782190984287658044700189880424280579335183204312459746825927676341217264406388162751178975518519122878852528339955998527834471125993113617745279841158830778285613781966139145717590480245127339436511763723653363837940516149120510745463778764877375648458466131966507172223663230370973268502153158302226148251587738936898260890676317883258462640584083044049324354217595000645496981406379372311325988282659800121971184211239242223851488962115445232488581660839043649055817052713387619352672421814372304810309185083966162024121356065041204916465660109589389422782594227493161669982707599488051395007417516339053574017449528019359074806112246528607870657223947966160660983521330980250318036057657041005701114686671674470694515777632052011905427132267650739246961611990474559513927025554658888630969866752237705236009029831603444350221564669130895115361600465294599465341060660908688065801870327472114899850106597425447779191023187640566625001429107301783637128229975313896992906288699545468126701014282024131585092825313659677964701366139834947322949310499186220697063300253582036381075195026729298358077953365257965051883365920449812380810620233259982382217704419625614535979530843831968092748468684462637405410745387025766004025515022763223668470509376028831381473947904719302225243834714040292189711392378170289586177359912965218682014358296645706019960780242247404041734976011729734785021061026951692472048491425621545940496714892801059573209359647685955991221211471892321753121554132430255304564167895780596184217389860666078579724674630709861041482398294784978894561920604563728512840022154906306517326284704955877375806012620038508098732797069212485695066677372923356509400847026859648054037281380040392272330139854670715698601664983316938795817486823513413036016475050339277226829278803285204522599160184419886360188589902331928861719726981845460521333987725801813146044578200376220224429084404689818550554920272665343200908423292887441841694255222693113681333179058760122884516141525226750199915965992963075877608817273420662747745408335899464809467195719100231061448675220411665040299425051198510686503173943239582255933095120942071365913652166653996580582416747002205108825036901838949165879206635830772234466836789599182272984462678004636877960811751287651525894481114743697734617452571346118383487158706235421638676508636100086724615145150337635947865081253888788711838206200243788195554471573110459568544124416558775678509459054120350886744532130324884155366641200997754301000119759975468244830694428667114940745302712188542328719365013248937779967914535663669961193382162744157648941242945155148039990393527191299872720116614448850950883548230528974793651191962222464999847321478867484867682315068032270778639212316084357010218572951967897428572071247634780605519007088033176677598061511256346622982875997707155423608821254378916235189773855566829470960296740988115255646170330772490846377036790125188226012394838897411152176430346779581037696815155897570275718466158559222682942862461403875461531009435418118338777493479225886791417383810291484272522369270604603493297590645500706353783352698338813977782288431226494340363992789290388702334171205479788134553077046998389920748950531974147519060936849049180450247511079837323878612568063515149196177858571940124494049669391166398936210675808887107607924545442080394197024725547935221865321809520708346987692120347488244388593726526348450875770259242926363842298643409525753133590427766998078700824626335754436712577309506577611459403203997350466645213191092286743478738160134014923752499198272816846126630130186841743997853050010837938054060648646270080567055778073768304388633004949945498712414724186846093494947228999452789604697010828325734027131747084070370567460491490777028079726235932928882443455917969382865542128696124601624440680646238708969944430548766195476511502190905494552711620352990192463799413883616494672390191995800363934928182011640811222507677140606235349613029119670335701121711962782199556041753952061380971080885191793913137623205194566833365842956729144292115954204452743363534220198836325226513359332721359397597316156610209833431049405204844913929920767361564342840231833892435506002861623535963150489008757176062407443161797883038731625051411237211663141235658364159958001854362442846004435890061980749388919878332670420344189693965522092687199355087564130126224030113927347292056265082219088216413951043488464647004077603284987317609940667882493648100600481484879648576141864017938321454305591163290988470372921247920145263556169132979556564351562010998160520122145879299895584699701509855557532111697084867092529310742789553197180357511375191308775980367485833436820070742594539443832942410932940850495690881555028890226688036149479366649352071936312049691812278779162738989195603982039732664351042433258702205310947490046021283379465321098046632252371348919697022614790705057161310261001667200604445093341648797983273120737572429597025069556453636622132741650770995668567321549831377557038787644256108640882089119489734634690338740541858189957503304583034038959381626755261273126666323613611029930597455869289230405990059270769485525806252502558022187448704011958711424222565748885577155714747339792573264455132558401477948218797292421407768093695699812630793559597844939095757859989737386810505586247683692412356260272178010949557417609219525676403893745415343871250409974236444588404359935689106253856421924994118601090884943062340661506497932741552447872711597684647476526878616601618515657439963683742257400802757049440951049597696184089510234924328061305659241111062521706335778514269185254605423585599338880311445227882973988300882599887384818364095763729720224231150047586012449620879496452013843584578975514509145913005486665495091842510742052226147670079055929358073041544468037205903592805912596766864298621824609731448579475564014881665077157855089159252787647081735022787071420478691115287614605465190381482045527105141354400918765476972710353726168303243500273792671721601016809836064389383272758506001497647042462478221498665117744944257807030948228492667267551564570058480976972836703020915266474671535576582866720459718563609370277173270642686173858650767087925411836204407181052650211514878178936620322194874777601975605725244151919014453253453370810506381676121583521716563709867809477101222287409016212768254857412791862262266352314040626879067988475251896250808063069857631394055488038370014125458525089321105160388655220723669289239444488191336415941366348469173653827035733156330619955654159998936247194292722225326923226984519295717428838002596440220056965812472261505282511054970798255661019634816265285731425371407079229226069890805068912998588734716210879766356947671234688704481139462034777904776416667743792102924405741821862849499194860436537786276415333717554053535835689908846343351866492307638467301069674038057668698196150551880571897607435451125225944638876317717944889056788786407405826457919390412725762601366768752817012677657632234544891019815908590717294234587428405315785344986499326159279955095442808942951528831265947977213387020785531266553236634411170677625001671493824213544626814111337446321676636710030497974133432423433607264542194802248850654075791168469481952415688553982292707415863912644904980494555702385867392746774921660187599778256250227537762076332273094105754931212928981285424644184019744663529742119221359160851015748908741870184901665821045936254612448024649286128554280097311775393061256770479558251683236202043752619657280911963979684886390989353318764304595262143354937532016492310822975722669587518111975779624477591341818516466001010750733393544667393329323401547676951258831890714491120381282922069588742379464080499030799084952611118402145575930760873182708417590906469645213278394451326583783363335696479957063697341190426082560134428286312401600614118337278389000845430412536315413322761643592489011892550709542395254624972115923478977218883292445319210016474363668888095386627456220616339067293205864481293540344384057017022468776281438352896049223470135687834472420079496193071659123201472933526827071870256352120754719035339091807005766754094121443957842053261691000282759781439273791518620110482431852874327911958316655309237188271392157160924310851081293689641318588821464010884522358079029169011364875168772587609071716785038785093753274966659638846810532449794125367905639506741824532165008131314578480165151563127441203124321611864076659955705486197726504340321896014412045322459049051215030513852125344966284135406573868430636281947605541933898821907141976678339359628695562108535163496372802225524977570596684059602720314304912008972345832137955554346900988871588809826010871184678581632889487394045409569046497438647588880746393186434075282597812096323402777060446655732669927208503167011750379080486503366697372395093528704206568642271182388554747543274412464340519726896913518757454009222085205591017150180591908789654941172220915686493177558465674185840130754458931876971277451064225567048423972170006744607180330912445917184923248657884102349638365127670688522076928828372464961860265993834658792358906967355298045527753821793798071042769281946262087606440226327598885831121282020136435991573982227758144079582132746735441138230357511865836881549016409511659482344540344169517320780972570465335498313846409167574307061852323408061312270053628370614738027046802358381974453810220602392879543272319562742278767583725566367122183736973598692169483034265751307708356719286057071252183485085609967610934670097887840177246371894105670969470112472649754412946335488118230791229176014222099472956362662919909998830969798984401544354753114520899908858933998450201250757863954874999974737022799875213570054053708723570591759789603887864650984301672087208743892635805653024435037191745682104610703946867798282630138294100812260717218577115395544073821547625629837026791567914278145807060233199791168995050575158782665576062710505872265191946090880593238883475062711186125711593200416916232130044780259565357537315658627273488029311573622348753240874017297957669970497733266777203894422836423978247567261077587265137200466903242498132475083937869057715802906248651670182856124844982057775563838279650248680644200380879771722975152364270808987054739568098779709801973200542928672895242765232945867544451663160633676705395000706339932691158798427990496668152736349053896066364079237710253789084767908036278520916574314223873972367713826668138554957152802708835770347464711270390055098343078242266533299523329128081341123083335720921446048922232221598260467209692211691318949299130719839819867161506063022119690605123613054241530413716881261940457017880830528422920549461702575462868454094386004363429098922070768211141060439988579871130940849998231947807573006458773329828275603998977796908187122658470599512219397425272461884734423138914703103246893611936551919232743070758387417000640271245686908013094789024741338837183889596373284636682757703046539237114425850142167895538741608208714827428739445932350715983615783230328021261181356290049114124371616929622748780322090414355163056834872701164214566533666392565015991404342528904185975149284283242120954772694598809891422953049370811730677204115125143594957704150995249146783796832837091049118743376960716023087725647977044206147825209852777902053672667418396839904311536508866375792335816007325305560770787294398987221411155549579195884508320873453358162966263471109309529314403817491669739211348709982033666585828338644650231465612834972971617312653955303077029941903280902212011168311074555426531840337750562795494870021517955099997542259598549175748353278764854180844559479344965593119966875744662360235958845892537637470012960220200232477573666496185968120556872009893467039462438221575680569612922185259326358949645548679674887231570169832042971223247077459276825649571264085575693541020884557614440717661299543916322491466025297853585496150967249375854611882635404363741464288223168943435544022073328104412925202817759622629182903898650587743414506586361191655740875503284196041906987519506039572341318172520757470212617928981363757974940014404926826978130694147079030744156347199010017300681851748468979571974536237787231894865330512724464448074441559649377886896506143398450459799118689749366456249839469310920560675644606391427057891735159915630480307849796417793957113293914305358665858762819413457131610229492596843498657814720299080423506290697925385103267467676424123539750397880149641141767677781142623032844511596927452375455299042836222475073181779110769471048965754020084589854682952042602827445795906249574271713967435108022006103836218736682814434781940348208306377723093671120922534473782422534065104155995194286855805205684367820843234554365287901480063529541681440637023756331633856883193090260704141971356510991532398938929629196946551426215994515770779500999653492552148312761041155272398968635526063598317447454953237379793389265119069504384117017874665941267642273684818991964043521092892112803180928317645782090104970428259597845085558892956181186295228743457341506143337529798514093779773620582437659611924234777137877570809453955754665459565450370836731751608664844402606656072835445028110888615330156995126308811373905891336371288737700436074760058492593506028592246455839588398559348209117005460552603399617639559722673911584547854791114356487565024463276980018149089315668536917666414441728697789637182009687382240103211223119092250587107180904205601336897264968241748569986289966703662787992213100756154875249838436200146371253139853153525237621264270447530059292931415354017909693008538266356699895887843989169846507800289323323723515483504875413632588562216516220262223030124386187036479416279009174521808980350857303691450123020868529161710597908892936947496880788748660295812140700208821550433838308150453197229974408940876906967982012888081900051713470433749636692494953575013212337620238803691375500092958244301439505008421734178389693231112045108232478863458025624648475960310623987868303027183683851535664044047574117953010727670163269811108735811404578505492367134109405656795759051129688542743098577269851390530971384074696789839682990701539894809706656275921689437490117815327613043161939408389529825086021351740451349717958571521685216483853187219647662530542048879451790861423963805617399090011944068640288735910603284811745321179619518201102031312595537585178320525921044059544293370759660036116988480457926880100992754492622436248975735660802208939933360475193796769836181845880337977323992026429025203041441276297786552897958013721746674592346368245143598702328424399117956944379122745627623060337339515342252721726628852295653638047901738149310536280862266610845640086134744712645303071830855385987462909403565448864064424615783720760020074951367511230295447887336572086510045640464767900663384518206689617889703756970102058150988886212795915972257954323884334980184681757960198249696575128157554732488261210581734990675020927913552132902430733248353017908426670719042226206732909065360742324162261334138128612699292326264025417635254084221851227342683673674540452800635849407752375969370270370524453505413305085705920091079248091498274548382378979805768356730607437777176366160379893393364886034545941814285597071299265624700819616431723055719787767285896236812634544382862473600758114994879670280137080405154590500964387477626717287423522057093209881993482763241473956678667380501195848289166606801489763993322467712878548125956144525309713691965679649584835069170870972912800244271912389501189358638434960561209690787396360497224780121298057073005949775175050297909601382292524334965212223165548673220664655263693106013683237678879135474522692822445997223299842936088740985094819038953560523613783269132515560520664722988649042939084051410828310349171168390509518659258677626911750735253697551409761974320946763394433811221538599704515937677348413784906988112556178924187683983950041470132889857694306506199412018021704115385446289281603301822801997035763998599649501167858257231993100413136619274149583354917354439729112179984361413585836366106110398370978976941257885615451718526207692462487621727138019901492130580985342144045391419184390576229271914045250880603401320362704405903432594766825773963246555201210971506040802573486210736597897243129651415893773656293611736515603374266316386327552942957952011277132296976010535653977318605834587477494258647335012076878422071447185545990431000958155696813893384053212530029465088345762952059189928747633388285243061668243324598019671522657901555877664241251482188050864429573601763709895541836413041345443627739710610801520083993333677076442911582915634478064658207692937949209820938971227160997905328145384293560000633642529814184270611880494225291668400905732955727157599877382803000706302825292048594129670550485867405824976958825700019067682486714358290329143533776898076809328614220236412218420807844618310519099800858926873540601076305194425498794452611856978501968539129016495264905128463147448754153227028603549021989683902727003781561057036094583824616827225749630048031069822629434559011885685704261754286038538050759523971024072344980492288648556436194115452511166480992730081462643770296838315962417672564897981051533352397091483849329771459602478703313170580062790268189058354332773143699965223600229651182987668999058025607689782002827908618410028482884697562758977731522009851400041892408377814530343180848231160124363023629534776430357477823310243006668363371630925349743542509168526884986391986777741251279706584879589355567963073508148542502473376806541880186027905850007088296796274888000219616411763344323996150289040010697804349765029807198865669672350292416681975484680652234418037322797721894437629049138534284480232196700834292457165179602788537110683803263471770216073281541340724885267319162899766426797601558287631255243603854035735340427217426020110358246536359063135734627334341620556532362835468216017700756512953914594785353355978009266755523588184996455240430428773251976232908190868234983787124925522436979790161414044289109364386009957613166683782268387460642228409389886562462301825555413628267057326843277204437436898215305389436654642216364614196291647590163115284595558356716110988678013347808007658033336592574108956854610119867742151940508617282119676309782580872935597020009444225571520526046625985091246956461278050865709476409652608349177540812091146580398808683513983979650817670476305230224473880468198759146060011834812201350865912900549698722358248362603460436453735758043368817362592548777572073832818135727496961253227836891960214395540355923836641474685010314017797208874058389576123054287915984727303490433972255751694736487170315297945128092232049952939796815944861504406395820606392174004069499068709306117103853146457204746289888827916741510651420690220101217548273003293056702140482920943461271560925204681803047211996968688262914144478848050528335265644198700861106039445415081416009779772540123739838783110899466796942074814058106528211935165106337755108691502520013023084530465454205582462954929038148683588284160150599800143292732216647057840404049548124718705125283748205093356009262997802472996757780799572968703783131581049693434613052129684739620725947846528116001819131265158932272238361539074961176955078748211099611048494779798828363383432175742560159795569147346936772224694436997307547853021755202361463104140288620166550566876542818115342007198650184761723202580981150457220726303086258224364837868537869847035844373115410101985650849960833800836956801913649638835892453843606040041462082719203753981424340962197247899302116615518921636280012464141129336258087194025485622898929669469231560830239231749448598641289760691858044518417056488218493893199163656243110689607472090697181956205840914757143658086588330948679695161095342329022843621715307360117874403158627118787385850637026038622389513707405311613348694597885441449178514742777848655749220989756957589990918708146607382006822594470368275063848137089864012651375087233300553483671084941292415446019592255700227788100981844211752957383890353603761660484859778837493623360391318175594357790921919918161003288489744179986554048205637917797087571910230064222872894085914505621453891124312418324629008829614187781533583812676549664870205627090026225389575677784680516656593097780368291401124819068433546327265841068283401265050679553209372633168057132656744562714051413038424433607153893899486946931839732920151008920068087474307450445838834100128857523338623062536255830091966940497852985015689433136722305873814168288580263339194755961006198205991086264278494305658997492109832805589614726851997014783541074261181516012158412811622506008011661074302058335584324187456101993500653628683929287667371854529388009779140540619071587415130533726990157339701837694892357816534887619233352412813569895145251253670363705432489033299232853569115364348149321299818088328890596081042716301997518876174192509343641736110773635917568000948404758647699247262814091226215143057497259799646678836608786429296948546246219512937595917602342517602443056952908948062705132665369363918416395292454288591260583152987116257276144451428665518000159938482361546281192033632781161639317592682293377948471382181044730718809746163256110372454402475042429908498973709130797842591638507406662509744833511720390738569682291345758201749870121522079310938422607161103766701501691367085089647704188424101184939145578501203685015940618484736736579965975022102315508690005301029048603622841846132744720517838871158306903503501694639073556284557378373030369023837492420977934224822788707137039825773067664202608825046089584992254017321127811988368393209403933716752859780083353115697823135212805240916001963565770184023848850099313878641355159337688853065644053396274317334959164002760294827055208130235622853422106696745553118939459438284440724097481664391496954738302701797943611197473736077207848131003056716993433211012039531364265734932108293599833942777054703888500986849829851765139052252218759772809422755575414264915815952395916316383810584337159607389896135997369376573182616161891129541114427224535419720899590681862121825863212895483442809501390680587597004346504971097896210761865024192417182971285727776097781646882173367235394236155370432924276249091246721953502402471816700045849141643287032606592603933160117637621550055060743769432266342781881085672444949929554039956889237596790891139868201126260364644751525972532226893189069668350083189952715141007567538392834456174082707418451895686560968041303969641679948629373876734936585602028612416871129406776550892542703391622524943777999191213297945846665806940925100817907273890396568738270687428253159428077381978312499401324540648080598994242889235998599963903108624033512023008565957246420214760944646209228630909048668337509503183736989774290591125877513114068464461541386462928485699874068791095962093321622607946946334780875137347257259112695175046477845729418294634993647251878958992754860368994899523873463652035718512427189857231331907947460674188151399428958092234808330361116111841945838558547483910885705418682969035850875335647382930601785581518903442307050443217145161028978043149740050662831943390238445180923233266034557925699469936341032643366990878143102874521639708992797765774298541453643699413798902668161276648009534564314447637445166806490124403539582004489634774798490765184441233187841233037382513883907849718905995247210763003986945229895569644981685319058080128095159479163792081760062844801168587911587659398174471982081443568566787518323996478190280386357898417218345927583273624268444148352569884265521884193926081426663884772592504269934453079929390110274763856542364694879399283207796865977681052971548069235358902124089605137175782632682999029352588480056458466559409990466220446498380188155879420722542114449327055007136057610612999153465430690409904420680247506769778980127819442999244652983879193003694362480355163578378709254638761218249258504886345011619241886714326845505302794470274132734134618125111000239319682131457808059577448753852054617068949471200665826601484135818094573932129635903555651079648603429699674777899773505623568207195673606541659659579264644248157715030307035926111305450116128831291531796752383483786435659235546346292712323635650396526275672990422978086170878808425945589837109528813673247031308324758714523832267649181870288181057963795138958452204888425160989802403136322704742134683938133132002418544625747246006726589975264816312469634505976301440827133171179702048190902811474009693363766050669096822897556493124076974537087220165227526786409512610204419045837660700867934275604055945293513473308431512799058609919969102028977672707393696805651490491307548194506948356983297669978879878999132579011803482564376390288623730342562512226199084806322848978991925473173788822298276313699956815921698207895429319543793664686612617604381097114785528587534845171048040980225202335128073211294401424830580502141033175310487745497883767551582358400439448519360141017144146370302925620873589508361099834214005379007663906844800003387542955504776316587003677547346273380500950348304240496183042370597453493977918186118335691869957736163065675021591645368143297000238448057268463013699501805535806035333911096200053692375576805586077688509545894575551526357990236228564398992184151192444330849128703554182442463331017791171714142986216537337170938514682682895471752253548805880091243278571011511613835069528785650684754173388706131004517450847585517859464986069726509003668168894666958224334949315526721165746889374873204790230683679084946791144693813890566402308174747118356504571916385427550379298857327334717239344655520856611269580413175094134334095929236648352774228849174024412898516241471708793733447036900169554844813564646401974368101896602196668482337139443960135311457927444462131472177936768986518818913472625291552996253329600983817316802072454084493882943464069883316670538791707752689745393653362665450937984478408565358384693860513894923087968352455574258842828053908066883377799013543823883273149483360992703409287192315817110372324348949917563015047444675588943228437661653482666199051023062864359601067720863658536149328883661538432609735719216608174866713309749793926423539643093428043342388883767926295629882371458960663753058556239869293385645057151148312408108169134630518174378953611943314345024108193976036833663594206317200382583235618336608320456450735834247256521211966626046793603565575305345553709969521072642782276326821691994958975635115711943952291355731242213543059186333569092157306926721702025163184057595890111469595389247530356948356800188449597265247084817638634647286494531696535399947841773478689417387528031973789222609566827860379885543261981888569699764904519404723369211627860172795439715950444229557899447228776241572770273780660048962472070835481316157573743720186197982746827164353322683721047888435259001048434001990682180258189015663303914752334899034911416029897893042105937034398227093690947753740491788201093540830933558363165709995666048963073882394867921953531956304008875130109865582561679509478070037629529561397975371630667930624429420185776326675334447151886632747634926511938989750716703053879550067159568123710529042845554839305452385093134088409063202746097579966943567193910969815595789534763451940780728018342016326073557200816596229530488449523424613397318862284289975588135823071748200349066237533857181742051646828218995249436387442134374509239466156797484792286965399986003301793968791901593448241840867127917107704073254346528349317175230447250774142278081942641337059848991110116604598260932174807138082922910244584349803352090850120970329293318862649240666109655752212481602690912027871917738930807580839658177815877118055657392457660025206942818326693272403462509099642993884547126978568162586756557078942010591284337514942184949912728885653993275794254205196769956387562066895428111283366173466012332384046183001377071207088505163660436790590312280891703321887630446874840945348371904731349725948104990047229838934599225453428486238240341545084483055378669901397918242072029304999318877431975987260284887202557764775226241674138785047158697919318835123755092278496501852858227133657648670312361485527800827740958678269906563871395188601229307814236310320571895400567221974416735759540411129626698219602728568342286511019308638024485074332384186493664926355950760779548645352877341649241730914702438669071948443684388006172093995608031529729908563643658686581458432892803808466378034822761071319260834357135392863833119196906543009260785610838415362219798960398008189191652408653843609364515192976951285431771445406180857471539740414157467624010319941094945859350508086120964229367640845946441168412665698220378860793481815873638250281784690562225342168727877683364064493080401853525122223754402451269718937879622527796487731240736998523529925215802163993801399096167925359041688455494997870761181917679623135324607889624108955420321783492923409103348041044067545246925418257206180662571202101003257449709724658402358650636612756389499524488242072345854783096270729199814899139386213997777555795085997931581165817828131007438897087616343986921172959408624957917231384483895902441431305801751515135614552544338688247051365415318841747375749447337974304741492861832053665099674354761763004919894263330745005694633383476870918429835272394084506637590596219086188947144738618047382417748157141247173006308260229861073283959789900570872115409726028350258596197982990064297314017663082927617098119887463123596209348521444461934622245720789836773326797876670998070456675475311092917978069200958497252823551395328258694592832016742669355350550621803018471554126050347829320884121631579728103320570436325130688194360788475450663102999508014921056662972642872867247651118148050169108288318401952805097223840845933082267763721281697075128400455281776467412457736310683391491271923351698850651880662610708005541377421353017056099911278407365491984202346363873924693040520873407828108484118464880278005814097284315011690036388582755909586915299374933326849941102679377744764821370970925652361233191167485083613461268138123601124071734332699050445335500904506462952215391994267533789325309313225377201469260675836375327840664051724843629902075831552112037216229287658090493181476887471338699430639133435882994602892746310665697408959023939190958978644770542012925981417125118860022547371501023728234887088332722740407843536648753006935222870687180345386222661068758633043486262589516726439342099182016826012244483887525683733265137143104758431552006989646250414828006473995376286296890608199920496694002379928963982652309217561424003674534338137736194271399493979411221590238564649070842318641351687830801229098935784185808397605872700063596249529253172277703431658365142718477327508343752806587785812597378582487634330238338650731230448933248776927984562796587480550675934073960397304007109688715443290304830096739754420650234051591642677058754104893110649010134444427330947901372288001021346600664030156091023964690599991569171440680540468626409783700540269047624033504501823908822979152833287312346478302366733762046234815111169928321632846030505849383567854299689870579750905862014494596534784896103161311100978861908962271898997434998497616183882933252480458371872704221702014445612274151314151125005530459826832000420780549177182958904395885887536951878591577259448373463099031696619496071036802202409169755833831012555187784151852631034825064466429390337704290217016404968493930877420454899371050871727069919713485854319953306636195992079512273830216513662515220709020872134530318469105795976772154395912012311039089871684223708761659602829879843294400526855122410407830593141492835196999526606824007978709176379633682563572338330730914446272473583072817842666384047900226709342940881338963915009261847894669756071314862033932529813174060436124792264994448871859640936842797832509989752157007803882659803810152064809254413480626538909659599722518003149051086598484340932497687010963583481971785624895856769578443326841121358895067591884212744531363773886219772876168517330859921599355926947384404632122476809718573557079337540712413621436827837214395913911572981126516318101654022195849882445573100574955834225901486356140495584555837730971028468766422882211203724115224127443710052431669771484439875066110256843457652944900098822114920746229792521576262130136115282000148949323665766289535131761414969213962123656147692600094452489179644054196215034051627215597378642580400828630576468808871970009661071253020161517607500713191044837442565367247004550085867259522981553983749139458285716893516383898244385499427758634225856065357363436468663500482678486595362503094218362070925866937027051788955209445216504156542775893956111467514245108284010941645016430290904244903591893813795520839945448350973298352011661514454200229950141743801284377806135434054321255519492767050058762582271349524099445790786287796343730886568661048486727268918109784179310785607368928803932200432398180517563225720799036500045591517989930458115750657775921816154314917515518364536117057300580257034680695665436568781876447482446551538624525977572347842444634603896884623438358865461737652139383635664195558724003311518661607285463480339989042236858937997962660720749572935951837936161996638104600604050535328607930103815799327190855973564655931453227894114843212698338257417206885405699506176331841106930365415031045154598790381120932275835280842776200733778752730172815002369263088539839201563577817600575477321711711415026957720226953889660099036703548497298993277386322078279770171366307485669606027098921944673142964827363028856276505238213420583468237459440468324190206488219762921544589323344682642767139476600091316408951846539588851947878738760560065840425942087455595203147184053608833792059154644484185105031220052826215000408573555722058864299292266499294199659668709786663179661040883718689224398017163779958122254488016115193141035258928239161157414483944181381436143392384785525769375648302153906224108803742838025501060760123528954968723049259571788226306612451275145659047869942379076295867937093305178848683170566945104974962419856906665465959438750762617311927242094523253824897621062565845173560915039742331364119134862833422082145350218554352051359953326649716170841938064061335840409862268963323215419094247508086920749976369788409294777384621521551218349168586948701696600097525740259981259612695593603040668000250838902045112758653097579737787589479310016469859865206378173873232169802190475586445820791843157601977221729532776716760900459628395526826859690370283394663521992682574660552918749692059592443205261862507067425046153444002565549306033262371118431355816428675269032117991966544241270604104739672154264088842777172177995853706213380443592157916825878029465835739325736098999045287220776898981978116370892372461049935372439917375355161674511598496432197575042796456980076600556368884048951499699241569550131749878967987165664031047772838683241632175184740953651340103052580369612902563292926762028512210701270054460949792440265015484405554793448753306792232669978656272413838599521178463003364216188481660491987764657494456524454673309514896952768109266814853089297123858344705925349020140981310023246283589328452521386113145772991369022072590553759024613869796452015425203462009578169257433675428839066102397635275684597628154460810033343567702890879283271538750217840282081422051785332188750615012731527087388411778900167888646524944828576006221695281104699157041047742952674747960283737606028063355850320940997601396889893401755825299670199834605871615903011376859213535100240417759305746676875418381178792986453048231954434538031146328834827764179843878576381086383385114418793379799939994600780381592392319589711747868440420477754730184799084587654378536927023638645503781667211090676827735898404000611952949658623342727051172450725623173835834614644395351731165434151938926852037605129664854983412878206651044319549852634687377925640519651118370524309190529854513631331485203158614436068963955025548253839263826252749935815110605684311594595548809680058315020966129203773809180829111845382301856898694587692802583546077656887758286562586435561988010538305045087978378038938975812182302662028252729952858986373669756207632368450687089825793188982508765820569897227350032059586222476572196950966291544097772884905491477609053443055303884114232764535165189927284658518008436400599927073033326260293473842526976293562602121071735400333697865592804933241551432306832233191985669750490530490916977914633879660429366341929768312305312996544898086445513852462574532308139689141175319963142110670221182465054345305078175533462277929064791973838296575059203246802176886590272605608082844575081142584389848138680220243888291346440237853237121189086054885431787938170877765670323397613131324418700607560397975740310520145357316747263309573461397342036665886359993925511016650723843334761506368326791812491905386270545011213586074551012281808457902974187328476971063184138727000201832906853217914877770352557851114024414745928101163585574331934736050333454166521340536216521997120786197082680995667325168367808244623097421540339316058634017414000023260685534206098173259562808686544802732750807982977464984362514600903488980764741159327216953629571733308422447598156584755977770653482722890016687584681128360429497616383102144571569100706889436660210174971888396620202498797338412690495789098973924324743265920930355388227889846050955480828294290235147719595572659707695325607255877253917244065552364421388462861884596273208050141279308500637968421581297874095831633814771536562776802089741972552389566049465198015332781703300605702956157844390144458162926171335883036228096907153964045410917973467290895545554414108863931402937240696163008047375447771546551774475238505957511345787644823381894049532777343533112293615336093214523226133909327434914236155921382407194413286736840382055624309042090247520687519099663989031758986183392893303805809367096431643298130777624605516539603786888929323650106643526444154018981746546005330299663794649906556500086252820004102400180088996558801250090690818708267151202794902400619611165430584334809964678250091376447911944952045027539764396939816556117866754470956744148478540849219659869375814196960601592673382880824500030026910745740865906605261895772228494531567182107068659115317934906955944845987974723288158418455001009424756128077323797460591392866100358914976305558735195818280370082214808599382775526642479929721303284906387969632511109336921682517119267404258776495595416696635082098444910985620745888815209781690961552149112921474398986748574537315784088402576755281420128642499964614651339033634854238957831575704393723915959497124104792251681771122436453759204715431158079866312514778176777191951850817553927163667567366157320168146682590737825124136855376266605438510607950824852144383650855540104320846273419349393259660771813052369143618047595253637895006501560354588581328131600979469661242314661247604127661972902416345063428573455785317600133370350853231338297695046767123639141692953625341545648982425771971096617341443736917289119611201935751632865035110750735423364880187419411991650230614419564580617769000706894076106237134793929889032366373155238851677389764762956900089185424027919310928634519632696665768647175707311041808137566183079873458066399352261103993726073446719459367049281900058212587070653965178731610040254091917225082356067267648428069116784457523234412791874462678583911315415973865266964223942784788061917098871445446693912810310758173233389334627976235890271941003532788569012960551458748256003780182471074246735857962914950602285922950246298660453111521780035849100093554150766847859500836131577479489430571646410227684023217328112643104433742269148311197749497431479144636241202340502362872635278626935069716531053410617510584799551886423792570340725303264279483151600105881518195326118743502355187811312765834196761413772291291577334554117271927614263777575488412907571838075317998874522241100963780823501496899557264966029531674615056345087470855011370895497285494549733314659994298506894804172103026935623430184394252078130472123382314404210186274783499380789759003344539601169892445218359034434806195198362807837857495683675346712367835907919156241260463165958176632731234901797411051320514224554669163210530351780641779985909841519849161821130819175717052210928370883840943715499735519811597960743422650277048474140535773453674890973763731836219422944129568168669393195561447703730272075460930195044760796413082980339601649318068809683991181300350347536684478038770755339900788990716581498788431939434336462267857776850024558932033910682642281622891505941666621275193670101100602710198954013166099428386430919047251550644105157321978091502054252915142992080219006322193752442651206527915101365543988834711289831844097414516483588949996888205636429879689684123273559362001516247195102221742152314046636605863860359996416739480296624739976346153745085677076340714507692402275180955609443989985630407684884365985866703281614641573845097547485039693034825580023988638508341759650563601602329130608275001664362323183404002269045791424173835652940844371996347812266349641279931872731874340939260564494660108417418676640606848366205060625340220816606350369689216078027939863843061684605396738189020163104069383807030083586499381118212520190019451872539859485383302032089515250780335006381556449626718853106484871781512396979766973148908284889557284111121468331332638083460728879104334213393436367242386636350022553612137844523225887537157286060681189239792765701531490497559568552700797977485140092028822327103356476079241404460355130192033270591688612772911432855145824662687074346714260624131221435841098242419365616931660962908809360781356941872913065118348250729810869485391068993412475868030957857361619211488196078138425194423444259060545929966404054694676814473397865861252703099191679537823897215231040839271364641479135244701643321768200109426312636850752811595361796265920088007703328883402522320439922985885662036001011100048573198234831484970400566484806425140669584145398433895644711768331289385780924481332523848175049259361965639748945836999302392930765214424630478245304346168899105427879916873073782010904467158350659459216487650889342427602572866101788761924563496373337531008708209832306647419091602620325648886917335406197671077051773510474625281094212644499728022555346866706522650897504285999142117344236703147912342525803927767576124787114275151125075291773250380447877559499546196687585426462723227308058648984037134372467391734114035518096168310656013711614797670803905103031278578502915162426048930902085428645989818255640482550160579691879639111537842983661440230203283342660211168317998180474116506715953229611253172537201540957958336321501095515759611267976171355787149057339768639068100036994351796719297507291773575036899242882965772841914184657167423067346614888002841794833126631373210158714502720058127074306815168367472626352863411016474911287170964548363838817013818414577677440467173911591152944160974825515455029370912208708251435424112831711696999181606579576176570572435000825561417267273087220564533726966695574384621690360945635429176785329429238320275077715397003431554386039101703543531774868666018829730709743717763339002802293662657775636363879270790118387131538333769796321652107136690327252537891906311953711881868603409165813346889896498198867323068007365365120259808751628281352921311765830741746614338822337310024586386168362458341353553429535565045124897656628417924345044652703936604122900543935466552918354877155090300620091177899547393190756652894153298780467247081661013519200574034097237051167872982953745757098793573472841969464985809210456549253854484001422134966334066359864103148151758336338372485629636565569617373534772050544163049654342282791955474666709730734438430665255991642062015636025200048543656848587006917226151701398231649739305868959070633418353940739330991555728497774133876944527664270897537911574301965992843218493941302795722834167545244265474848350270278869389599220274678780427068749493021693463251223509392760253803898316126142927420233390110301999633620994283283968213207427198697114798370961660763035194850615031179444459392490701967209211476620118869174479404620673456943278827765226753453954962039363880479008448469253996137476252444516747624006479437310803946252337956762344162015516931122338071264404075822456078954646648235733828990572974860290747794565470721528161657243039787394767480279560740714215767758906501821140646997966841057778507301303461893448665972381971381370592047208099564646980608137545850678603505690847435786589723351271022595962570237787683920422894405463514305032992849478427945731275851932934666336483270887630320520260155082441404533015527846694045392358294639838985021527114012747781550174678972360524183826481271313896104672001394065768385477649772346268449534019447331327313140704480676800013062898268530613562959986488931227967887544776555021850278366802422541379896645470862149344830518721210497719652879390228264984547738506743290784809852985171096868478876298493840300687129686544020492847825749805431213559428113926875625131933162049951295595993935248148660521763664257543591370793263489641077865289926782837996022455500165999572618212845225137605294257096261044297001188451778138174160009612671761701248322802045906373867633392951259034447219672171239854120795336175927215047825528716844766220012440617427087686565914861902329106286319080096585111861967164659343213290860085536927332444912079943451000250041699913213380299802033109074980258673797293599375315984123725882722467659932268980906331997711702184278829705488588630866938097020034968017056024052018046318986306084560751064378148048483113005768799295530140117358314409816755719693088260167267273432760559662228267167583273270836482102774027191501827272149621878325964988671782756548815950499197862352474451514312927833500826853887992501547444139764264803848578789088869505932789383259443155564515186827318486292577684939184228986584165610130683027666356835890505060427378594304334045312632733451787561314235932947695490161513186375491035334849953252276265265592727933397325418892864160514671285513608011456033233109470005511689242425722390672135724065655785381451558606333588480571328361016291705294154051338584798326471677690031763370365979016120056917292576608360347777049447852227624199642967753734836831941515617514077514324248554267852485595412820170473358651207538123830937678208753526885178163600602585997408019495816594944215220388833982106026691087029727357164234931305499274177703618557453225225836970379499151600359206274870403900078135234663758813040914216994568769070347732950869220328373913562238510060370553486811241014313928765481525800514653052301071735766575945914346101419458101856837652506169686801027632933912818804330042489305619546773726274527190573089446171862365874310196326815351198075576227491360106815354727456435475523505835104047519001987901152336539742067457503073784854385743765728972308490942950431661558964145052018833871710601681051607279314256968589519190947624735905792544193673113552988771478332787719016312754413664854788745172534926519880840030142715376484395840391272420961689433019312703938377023211420785315411674153728290610328123579340464133671342690369199195763808696436367268593524249512718051327740474975890618241888185558050093351269401211188115597605923950473088372702575373911630211660925339356848300206204780514209589214512098678831176818431553563161249821200099387937632398746806117265490996785447163822492263349131514364624796588202728853141081532588360195611676383915021653079407084346235320491221108778511139102811380654919264712148032453317162239074016553062375174583999430305811851606043026104569905444082133464320000689598103876080095038672660629315039126058631891457302663743609614067105635283578372774544779558200083267341591563508522703024456367675518698707202340976050819117501929857383886666069124254644786897286278293595535993501688927131241790172689831730243270773357988998881287068825825609566872202874304672967073835556523595374693330812065085403952079515901369539242342474789743086819178876886962523089510315214499875073563730980476509699386446988207795274975006910567507891276953708590689805046661955053886839739251524725050340089879352004121454703341503451072726754769584653871443688754479107279761046403103393110228086506786822676944280713829576722201939092331507234900993156621179374207567278809376104019438605084082782949091721282156051306941043958679211377994592215782855508705280566319614408852925313474234912095258249408037197475719561319168256485194204161813482011965287896323205033140431257112945949389187973674241630917855640178486393575578080574451430317218219498507510520415961022990090470098087499088122365512745931253798462895441043281329655719056413417510231646922468031465302753894598051038499490938045818877946509917939019210373287826485374764962248203558849006767447106452151865120018408606404023575241211455919511012212529085969056726721231947984502683777888255074483558059363310045953311903877830288785124282067446337256657666941867093437749987883627318580319786501638328320729775100556270256151238717973366832641392849003593736134430629366061035183180198645382528015730221022202450367352103083857669509664496075693021876746063089289503832119552876840741913999501771699918197378541770975570317859277954329881835947966917081876952609097782703139174406014198307048020262051686937882351596677465844209640887613080758496776923019772811188225200055369805378462394314624703089846562918073043867157906187311767402243114066999527490000035786594949567857078518427221630418725210099218459072548912670321591923266847247564821003903401426084961001315189325846054567222755755620752200600830870470930352012773794748115890699518570587814442071486989797491478138313454286693357740211481381430596629775108708184094115558270757482278223541192372557135925134176061690347508076351361122804842415726231750177040861476367147862048209402304979452311823847357882335728737714218375906178126636965609094010438109659165740402630623114143938094551685973807161460832979197955159794078559549618432570118449498568665752594251001328576092492694794881761046042613003714033775786309478549571051929503624718623663721912736789216213942662997792358377359934372516086862962135711108678782289775936273996065069629182065858134716829758919675750395721202647141580876550281354883095374538777931203491797214390855690447718233610780599557881167527395416389807249488552343645359967706290426487904088339880918268698561587855616606416674921177111406356945547160144958473741783397445051870563346230644555182677795400383181162682717800260053476759566724135928374325412656844615430132803474764936982958559510874921515986267676494877112555924279832539386597903441795094299443587196030795757161524717133032092832886529432170475354585747762264256689388343558904655945120865649491945350698439882776351351983050052515250076405319981391572289366784573994465401317596054710352370227786048434611470100690377314863477229353019005195464033824461054656879847509082973796851740396983224989665332877851803542928979948392106084143993173083941689817752477359775963800706888415574546340516621813454151066632992435782183734190763993421508312706035952869556749394898864474145110482295296496864483115186979858311696854649489163417500860480976236710595995721283925191496947673614591993910735573133543261292342495452220686883548622923660911933653258101760344412027443747376440032193727194451593674048640578703421662901496216686275497147801502214478968414035332380669929187445347131786364619924109597994683966549851762089371658518470596566770767125803907740416672885940417162245721164670336854784399221165979689895175078477059812352920238693390683539298067483027003803880538567693609246461529180762663595656741968187582998451342320180084897288150179138403962017172177817987411186665474037097934602946126635735600380514043282784456692873480208760907378711708804594266988932459071014378790827510627980566332843163445048311299051311356567495224018816700307604085402157291746053379469848634640869647108570576272738540517788432243349742770588871586103323067693038787217595815608868628283886453924698741345648240875692425727267928158934548377030211324155704500781953455087056681333897936603561580762804729897767385169430379435250617047509827681949533308638495285963093362704491858612152683259429371353844788757646100175889266731671248634052314987979106961005240991088556127495759094184766813789520117886071692408721620128021847260348394545440436926400008297323325242767420931533764779889238877241100712223558589311463531268045394942581426786292021221056159863748460107723288705288727405755903865092548317084860600281599061503440497491785187127782434173597532119232629721431466301653806134521682644838129542473816357735584906344239342975228870662754498130612927706881478251534049850018111720595327136155722209009105533692544454369711855167934186229507992699550788076012539704614389394331650036230140811643834958422552210916028635239876575243172376278228742976698680014708935805645720223218779079450879724917975248819297917554337368477372149015781432324040214752038960126772066583726361378872971312643822681644166972729449153502052008869714274007343155581239990810068606705428051969957965054024572038077259506716096917829912769755218983803839294222501675841512377768743999692105107925411058070622357346086109239710868622564030781761567616099501302657766346410299258945035360071026197598943720137049692650337182307433292038760656833577530194098756039787693631135952546432105322821491655599675841933966856698273020300595385137265935395934677828397990130701003384203006241821278543957105633722349426983779220211093048317709476332725483754506934524575750851066753070292117871401554640794440733613092261845479639437358849376818334057137607013198882272170609906821410234671595615276382915225044284401047254945977022462855533602068278803328442022116116777863154106278159733199486746302251459703226801457229335639368335895004632516941619236442665219956631147071296086500856592985633918390011402753830373938287277277907164838082866814631871356257688399222109840143719652963728350806502518120051069127457127365522719861375078473754973856699213826139148501166858615194954746981061513438824121142171714246877314024149197840071623411477840240401169365316205023358430455486060665647579653877747967682962495993023749725903286281860235661194572094445730679857247400171367296132441735974053079807144013192336362143958693010226597819173880814977373301128537861385356557724929316333699542543422934325576952586659153805061485963876184393204733884338707965387533012575686616111988697367412059830164927097760486736970754050998023521986985135515791692263529873373962001253988189596327854052118060846874736427119495945456704397292136507545762024519928580946502270323911311917434127700319849435850870047502158328871797584645665269295627844917256585058933160423780385836169491747253994555238030063452691679273692984549094708671253393077032170821553851464941590334827804055915543454471097502500107608270718593153950606121302982143150853513508199936614540507034791767165070630098880176833192064919076198947679808307722790435895790756351108793204581068875903854373825886315467171851873965753431065039622979007181304209062028453752363238356920168152685023772608906790042229852028584901373383904342423789783041153556909426958546497365944587754828263752103919046712466670604810883996834215585735749592513984813098024992023817622062723848065863431840499758739162855022003186410157847624240836039065397501363054802472563257213908235215918850563122459962644809857769605103008130573602147245927000307908220579789062029741528715326905120852360296020419592189034148975842937044374962411910286348990820425028555991338786417017816541697548219694322452206154047105984160577759996062714190490596808655869368824146901933297588736944935738665530209714573840286845249293270217950354609022598001647791110173786796606415450256585946329050021453481766454593388764413483475980926807865309916823323468828914761654051079004107364616797867877249030083113138145193545108442989924963121666500315114270489142921046459277736312412887299359885336291865892316697607918524892356482257356193178003425993087943136690603121344496278068894642267397790148790752803170833181844069599382876715762391891180540569734000477794435278708602764912239475842349373527353341600478168070684027307158113444330601776085016586832362191529599283008082805968665560409608149318567432472365049682686534161450060260352496874805939385425314135655237590715436801018880139968443102509760653143118315861094741938769827920546399111447916836444891768597911444109062818180679774063101752760283978681653291501319433238417852785075960312160783981505432695678308705177853641025878592139620276123420834706510135481480694609332280159121329070574659314952160691068287882610878019484543314576785595773985373734829102908477534562056849886956149375735770348453619600787461407938723807217276245855771518020635774237879518205655743066459976660625755508971633747870276502448673491485770257500267709877884761339456594487222132225799884546488337787936466589455023214516585692762069763655900818338939614251624131898817797373142087814058374873480731363511327347283056351826397054181149660484865188011886978967632236357330913219806256985984049643907911014955579382119266927289087913965363334929563838138872527843222865954774267020248642942046700049493529707588384897273134107592913082760689010344308978136035182845474562388136896018695560816027436738248652545776023504153257602269739094174063947001821578355042485919571871614130915170453912624403646950538145033554035848776433005182417854172182212725361447335028840573327599585312334581047446641471560235670505678634757854413002646035635842320740252381662703679496726498741553806404129954276012068348402481460246792795028545609028647018542135069825740144217589999117917548863074920111462127152885529778876472455791524555622233725098969271431828272854141180634804031775575070780531255193952396600767622831308669079119694273803480364127555146951261186056473571742803134120710431289167372627667100161653376762557283657261479800047785591332828236753423103291360479333104016215084020462238205651710350922645028617713208612535675239236991597085327576461808942539726309341678722574765461514997350927099809787674253335259232116888650872568349722846890622849277062546282753932587718174917274414547433546436240104718675492205933895053939157872439213514754220789398273793744523009711990992377251981896325078854358063051430516248517825207545945885592695402630799933425150734201638274125945273011683329049230992967587346630127823505427918985272428146815137433937092687017968670623078561507735868260036777153353526831729576245664584421122996766592163284583614212051720772080093711533312066469461394970511671356810244738586325185510450091221899610328994040455622339489357186849959110733515447639868346359505197220096998679367969618374643443746212039294274025119536057548923072132303929373411477754372126500853462968432821060191220284632489201134582449219758537979927107959727585801075621340258621091694638916936022238024033590411451379580014866901528674491770416669689177870674742768564958221605280464551232426012964153517078499097521437910220310332612048150927564830100978121661108372690527284758261901514079912884491621387045667781688732864169235873564299973147661240397391747517928053980312453003541176936959530939479674252738977205279923547751280014486633740891700978306180386331434627842538608749357921492389795499142356696758229885836475607448412299656024451370684902392098508779073030478075408540382608944646587190176638487769127362329092188264067957036092030524871198195715212003388484667294829882120490778053377835751427721728569675193376541942966745718036936925082755861155381335737959319818634585882765799773211294333870957961911488212726492764460076573594871940910583441126115124161851713004321922133887152524076111011737719611713604399150875485961752693819330947552208650791162893833883342269028951331462103879205375816587380186600036755605956933705265181440773191478523019102214749766512724971721212662911303162670881768188992188747940124994626576025216010123182075744503211236691600455964241305440684993607849843396948292958724249027343390814590213711502631267909157132341287820008144160593150306506990349307858603497559908285049470726972954524641538040539501858030785270568612829408153818951928068052987162303325850662106582041656984190650809566000523816255570338882179044488326390058178924809100508538889548353626802346100523487041855938765134832317742772175569246889817247407078932855458134528617426468011981704840624516424507486946697084194262835811685895071717283564824956397742910786295084213719926199013048386746679525700409564157228748624823358078473858793140671703521762168262293490167709583540744189557019011279206502096726752836746378129193506225984900058378144131212909841699670603919284547804624136801133815709993875607978814730971784223005478412787656481966641734242088233110117036208299426674539291259224247664838300238715222844214878747361336946421066616409714336510512686827126095734982245965064609937150393594680198010476170348543518065960717341930691344646116996745800959858307339087369200681886184917367625773806758828474748361566697754549933335992449562481172899768303321779344563137953762387546664587256204093953139351742793981457769435479025450891445718366001199365960354549560038777405341874763630747834360798357261107734347825948175519998683179439657151737585179998004932581367531306247555645455996999624856864231425840574118550288412835020980192757497135924531563746320358360133177050791536476998851207127707863859092927564743648219312643671739740050956871872000238405954547027132711077830306920711470867742272080087999183328561395570934096591362818184510446537408813077611250797226354125187023283762880287427408201324906132437042330085715837262485513898654245679212994869343397422336740724670119089277068739136210164002224528596558559898973824802975251751133762801126209115494559310683012989011397357200000408960656063176001891748987040835836617124612309655809523248412970067762811331649407289687717464287794162666537138204574642665018305012095628904261777470550860830659114795005236690824525093277341839560697120500780245566224919811598881616091331985817709158046565165578096316045450072434825184731077764826417415529658911607419889854082108210093331417817753409501730855035911452740690312751246027016984185314866671012223238230462324635862977884976471609757996335636010679238041443968715828553077538554753828451707880287485536298203144790156814936678563768321351874255360866281169751455373010898258819050200449567215304003593976183261454476949622028342656265741413374068835190672557106825393473607074919187672670191022073689555077592678109118662016567154259007881435152369776685204306525399987531739807161861731947162215968104807318754465006585060912024475257263180294842848522892551444080588750267431670382144326239335270749158302573232967635100985773453078072777979973258023540989994852629097671994694451032396429394766643833781613198226379386632890968724854562324204019766832152217289446070634530215824903069739104443846780671104513723005690629099404333144690893104281173840305214395093559835512807638807170418098558887290945366286422468552653834901243980455562901234706387118150853129978234108365342244310648245979080861510928875740822743760665406797060522377921403522212354772166384318642709751457545512069465787095180452649446456682138538531217911010586585426999158848553832404157470520004493107945240895487219714540275712569719227992474423843515364949397105347178806264281777586363827509251845990492460223927095983230036505351555814027916101446785959838013887823099178544726415724573077199169160541175101963267215336034637154378544772418425044549160896290939139225646850715659241352623909331671573086614861909105653683532341485726506453278150010952603585285028932797277109871642955592864429232125962861579086932377133297712238762789285805099598032608904199159034017385135058747293138136160245872932541154664618832788419615152757294416059571239999276492949501768615860820067563173180023766461247866721323697427395554867761183509046444386364269932383515442343919871885344041992412547944230564718961670420847639832567203664667736148130329839798809388533126472622339250433010121147481803565714661893235107054928579767225966658433621709903084957597527047936541014358139013189155810811909519972120514162418817804522896580953557393281497791928317230263077047363574791080657155229103034254691062401242514717229255715923818028186057739655492519212303389407376469294681028557611493474167881654375816458763814913947393358428569175594811097820534286498050014078635386419928405530540577337283342043099648957106854050273486050655327882561093595733224991935089731966984401470545693365534194683619332023409329017903714971523778306328521332079618829785695171466856111565812029623858724611998767302960081945840113788886586921059715382048218313043730351033064116143750396840223410435470065744744093614327974558870073833150848097291121400515757115759078338897162989812256513308410166037216172406553657608642612251785392913823707085253244846835250356481821504087941631329494595755330746919598435806868023794578567449251652312176622312481279730157136488774476795014959260247513984588984508098383522111385200425067033000683772968606951434214170350521973456048544024375333084813381590754929960860424360594846167922235388137434735215619357891853263375948134127422347448909272804287224650243185948021668276738059069434040442032183803685927805839829328093957669783477101521132842590914551923830388857289825607058627615828973065285404444932374471009044561646855922903341089453508683099461044004248903975180201094362643420806024812098118741038227475640362686905867497553372534700005857262158380647681832607670138610795928429668118248841145221306057159130420807264573279505546395480480725781059468768481620609399492363367531297656964671446839009776711097177880338441262311473352481916830187151683668518062123523540319722965641394766060985623596978245210607799770532138925173302359249255471504763876399335064938282945291838646819897053874431349848158643840130144644951454308477012710440932233524259721407458779877145695388228760239174657311809191590745401141122632758702219477229082055933099510080389116012936689939631795248948184266596145531873292518372399629343493424259087453404914621065542994806138278673359152859384596250141238314076402806967243259327272741383167205765309048221344776658951852569483010801290467581010103193606614128388295846463992796320742578309950938785687731318144248350433146319258905074120511235139190045872685945852300153084675689105014127525422745105863178192744698383973481642328687828644429573477495846650761219883785968006415879728884093974014565788485646375913033703659493501724991792713492729881452832348668831010786385723020208848862466363110485201891817249004148500069364769857872774965896418531480755984470733291171322655116165970145093006050953797797790139998171935555502275680346357823095162544724931359726334468515220824157305511421284176881860489556440998171432767340701159813648655940999279064451248006609839081744282729073550387447668432193158864543700313259564129493466035439095288297111037918982942563573968265654802168837192167038690279843355200102365658967369420992440378769770891799773939700346304655377410074621331450830162851059337274070141356050715513442958096871995956395395040203546163491377039065837534596783141096772576013697902232009703009288742883452613269612259138036424220418742820297362852380384513260119963634216263047049777502285668562442078846716005517592632158169134193633839153980350830507306119033882538666172347889146498582410471076664259661730599139358262267042629406507570902331009804314078058280510027634141299859557045221102022196825528096231586536863166991756128224498161814472624180825777146383121944411105050965704121455770723591847122159260632205298647072637800312562485272886992552510028380377379815864905684268271037985308590503220580369983642737201716823912017936525753900333416453688859269644841764652252424705986763640630655549167492038680119964630870014566068774593796906289913953379931498350002952153739640215255584238187516901302437204671192328895064473316623628062063203467379862126757934456201368610333645608612552938663815919396573484636936919268081688282698038094055801498535688138820927875646804167469552173169048772081588150482980550468036827520190474137087898445778067720785989939130566724089057834945632802054577955957226690499547438417941604885364989848721161024449549874133292774507434884499049180330271580989298233799793490971043151272081520668835226255373026927171247783408532777343882296692751682436719408133258692519319226489811641526087642850092084603019447392488926813183237321139955111497627792777912825850198410401914658391895070277462100123811918067871271909771128943138300136915566226191943739486025380506972709735856652623318638068216165662205768964760074088755210204558240885694812330425757796320048144201302148427628565063782225982080703472760304232999995743744173103100928865852959400091847649440934513641100905357632212136136995368107932516353901832503220041155560495353150111838949011665966589651055645657231170000363069230678578334051749035045072279205906339521756437751013516543211008540205051528822733568475656600347299558396840352342141435089542352826013678985899843554592607217053821775671255764981996869390600535950421728284251956671910437638725154722955159187030066842275979098652691573264009148814707805787920970384269683472658252031219619206995558057428195389826896362027444958695343315241853700645683212942974879841192203184398363601480386098881827638296755715827964678668369235962137925370200079517135634384065791284166602993876166304153374161892004018344562289769493708258738309270809492156597361098513263912874762760370994908512741526316726755272514764241849290116649504474042272692340626193581846914977402606653103600842294416230915597803502899335877175595818475736400778305736491233246775198571218104385624013148048368401743124794991950729521140940952579846625686720778508741096577504309740823386089613499669214089597826160984024505253220789583963092165944073713832117663494359033640872012208561769871018146074323353192898537188148576826180917574486584911420769777984823914050385210409288338544824889478911166713932135527464854976580870469915276755483424198619218076797329861138484522639566683295465387918925512761801294876658587453167066790315933074256448108697382497757624632059590994516623966891195205277715956160303157242806841429603795657978429119820742924900656004329930672965655795343834053849147333374534414986836470856271657696779204828875164038500682397220918028751560850267554558005085685712838169393781480867954494886156359209661555944127675545773686935841361771832742652764666936980267396875013505141604709099055788014577903440388320656823488918146276547296347182546187153633227265033250700792839983020548833172080320578742080828850970323971640197851055496552191863139410823517104116095668914770255526545172556715210508638492388705640464803393890576727035443600062739584805910726365463187895907956896293405255351792675828362785831282480881429037033423699674997882038399660119051854021321194113343153260642091811827247757083837022738079935075581693608459284330795192185313434640980945727167120126388632547541546105419468731422796144332210062024941329502981424713169484136295438428388912662526890438212730448924718765277282268914375982807418690197392654448181120790080253826860475772129201290792479220420610302739427535236017835522701801589262545949099700255211409243778513521368718003621220283765452494320702257498045537101376329816958200400699921111193016784626887084035686506235859351550289243814533060853260474914915203253437670153778687616998506142170578821729195848033265569823542112311788317040949461592813842509775261100467857593410195501359582176071019617004898253508096606008278240870009548192300221904378286744648069979891326619700522836986422329491097457314618338887710539709117333637682577074543401309863378303950271053954232075827973554617485960116160277674844186288055945662021733576619180935058629085395128118083605663598216331902754762788963114839197326738583850719294682511730027786134875726343243898233964899139481699795020712601383025795963621046288652513309660115894276342237304653416347249337152385706895046584701158175497080473864131711121932511477519498997638744372444183071695555172395373144600495468690032617199481034394505538105130492792302033253764742739874377898239167574181980000883525846476578418396859344726776647136564511426540356536207884398294762055989726752011667091854061409067164782763552953573451337669831962088190409388017011732679722419273693199158196652458236952123836745691785005919831543289620908733278844066301212194711554435429737743187213732926547109685103235533939035224682115501807659572819147576999082242070244641670596637738448024816915151818592516406988681330364953545897613219789108258101218705554426502396522782564432263837089099164525126820131642986096912923761593819723413686845271560435158797676442113812382348962894389011335776412723633532158226537888927793193067363673437193589911889184583395976654698054078336412352278586743466453306582437194834646369019127989392157113736112431105168588543680630135158621551971254327435887660420138745141603308833350211557013620312118329933048309470745942275965413178238381251931146547558388306408995796953863092608517813511096060406587635992665419881328645308440732837665732792083418177669431348787355536897683208144821201403096168613721355193151577826114682764262852214199587540583501922932004952066372284088729611305206127886210240497406718717050857193855009893609653517527500848370253297386272862531816781780931255591952121580796868331570900865001013270268593556394766649886271568160686307663099729884495927497262216719953061306825759532636628754607999374510224475865446732312902151377981134700690829764496888549048553837004206116547133921079066139714650038420182181457529633909949116348128056122685795208973381074385689652170213254688546446286343148138449906060806494644781456713259913069518058085870826851583811282229618223190295040283216961373222999796272472864652867824449667336739014162142136245173356050723538984828070884290640231746417328700077679025401016158431696942047791119796093698039747758459140452454178907350802934653836588010580381126019635758854202908791530578020945480132846452404010885652001241341033896920967718759909547200590047286694049636073775224918353437391029751044935407350039425729240207476869531527338169784955571023173096877480769509451948821392817882753945896726094389103510606770070604994153819202620224480930744583074849836571566700251325741932061300690252344427617642614827392903802299239304597935319804826615385536303012291520193062277774821947153266390329357500438412786697392586967842210713899596881041791153061334057821438277258549424727220060810699029872798586753223715559232833716687742187831528021135479398078059021462120610908128171178064545677660883992379688864453308814434890445966744263567200010214019926230992856902315342669251906175498751432801386067819880325268551255280734329770839428682857131652923353036689273487195389209742867368455133471830305777526671852315187545324566188366055705738515621119612068498328599273672055885671833736632241280910039705238370222711820318710721062814067201779769363466323867637662923482876513918757054441795115795147261506207798105770884922550884948893071896293760818361067683260051375882598043168296378260494836136550340453118889087161516450896483013311072707189495267546509840164229042326441049720410486421454110722761488428433865012180317789717027537853475944676172960555094349060141737492933408071947049504348218750380857182846324790581630842955442191573321529097844336317162077891360829621865648131708443364960695696289601432711899092849934543150422698959141040741628858059901330059417462216086459926192013775749639245066734169457580977951532804440681392419024928957248236668845149167568810615513240950285565502485210472970624436935859222435525972813293006352274831884661600734527461174017045209911641459930372491245605327892323582800264425010201027083999047629627928446084618193218901611006927034318162216716603706992049708131487550646356848581842016622621083030876219399528196075147429779070229564391742672604056550453383211887914561468694981831805819841047000776966417353614188930874740695432674209914343361500769845499194637920670716173783279424889813614972564093713676462012570428348297585292635422913914270494021133104677551884765013291924949292155255617426742496833942956397025661640560660459174629780126353800732895186079983745709794030986451107777165213341384372687415392395186322886809023453261910206458485672949065758175920228903992319709276756156416667052283946908399742538672401125428410981087872857994894280859220049042053643570768279996932826994370280389635156459593697035107865238058395101318313203563872197134852955150423230060833622545449562000668283676667726534818341833342933845726918321720020886616768791732352867903979126180833129635911549008160795082382261431135464251484945041324567163821497786253794974817609435623294808829914179851221336528787700386140805542508588955179931540004736053526747860989953124983171017015261548379616927742819869958679420377754771898621851466118992785652467927788399415255355689248230760739051118320103206520568727355851543505894586945409172364441031379266669537559915319504404513553491939531933207273645727616313244618012236892980841453039337613813409829689794855545796927130279229178424126131727134284501050695203397455197827418903715208509659676605098977607558979810884639427426748283872250125978717340400245561419042353527346822327571141581232270005640179615372593402145352734417936574487173618886098088060530179507707418220322248085109345461018470690363558028039727727896260677635204876645862099567575252667546716945282212935284425433054490985311801174115309076206997522108940158231422468991624758076296634983111183909015343651855289370471195735816949074524695534616842589792553369781853974785156891970090344882726549720174190306592796813038230712261289234118451736560126850627409465753549605909406826325675596775820240896534822315589991960495459305239766713950207330345480794904718334023961264808026016496930651091130221643676208180096116990835650487968276184983033376813796383726300335971533952672574201627908007613025835087084373874464862155688478305786623335184097728112966131339691060973818308745064316184023973361030451767327829815808676711652293380456426410857017730159847258429133983652411283589392166098589606819259586692221017693974143546393140667698389909547620318462605207362884087320255874542549758802687448980305832697314068770812867101450810439772255124280161976011483561815495421935705240650749004072233566918921483947149239869349984881287713234520330152758905951959995873445088846596382109077379949549007699509986325002895485221395829050455714929061093479784444280372055183323341888444236951602988144625992047419722881510612828424288004715073298898151412599922453905133354090629954691171941209124859929335468001458340700150423015211207399900995586113145826362624948049286481159012558876874813928795759077539273554678044570681885601366267747005239970497939586652617651756177152455279585399634779675755948662691422719574802638526598068926371628127438273928642921155423105593296283931419957092222074306968852284061720885343683706401628849107703293412936480156734291872880710370739743742006129645334790994618532915662157809847518340107176023089299137306091674450726393676298577240793419456852325315416010646042488832039314239376991840527500586828272438309835606328552502678368920453060611375877918555563301541672693000874000489976730925284590787561104303991028714591013119945552486229783588556525933429771203419423407244944875558049691781062808916253494615298851670221368904963407632099138557489591075715675907737033502777091340442763487344389892467668626272345592961309310918679676238731429626542298739777046944259859661814349932187451358015679209706520073917265439185923785447580902548041524105190797826128769497469557066825490125882738279743796450536200993060802656216054833200784421614514286312090568013136433593649579628430708350812797427109638366756102648417803437431008002865554738699941563555400560222960670152352954045949070831525592775081330467140218789447647468731743707289435046621647022390216350992160364387107513325739822978312720691142350449638987990246576712117970975311320392815065855365031910892531671060840325883515441080624957031117622005101803711317005669343973136171428384591931598092025345748290855822958986272079457013495961227560100820691626953093552338245565279673168701319879653405003906397780488648827689896307679936898466201457415386744756701349210481777084722651366364600274525927432307424216061281097623786646673125130355244879379452795607452957516915151780141394854176878395596831787044412490348976716063800890148417319082138108689370685214883242252328828262150739779789597624585943452434713106946286717008506332837013658674815760520821672705404170177033334131248390118726068848062955540523814638609389282020535746522838119724084138031766603177789020148320294477683911486529790292864297174494347753724113117490778068296458041606102224772169182419292717956186527549602124109794875772126633596614763626583359812368486781995026073214651940696519020634614055060246335401606458668866859653097749055490371335117322129086715351788044610007484852595265980352613437939417849307053792790004947861284378130382231871867677056432273644949607514212306564343269901667973803928282147722118940722510758252102045880934113253053764719146419906533502739846879295785504919432496715388079082045377967340250861025003719964165927740278896461280166080501514734586081311654670926871380116147583158785121272635200320619849071477760497479380417606678648404865123784096320423747916830169427239546721080846080823550895774194280399173404787217833189271162117383405582874978974523729805556645500556791916562687261148378972656709189400410497605351333714276368840130269942748047217307630165012900977342699758165513396480847433735155349439901061861699209572364960977564408167204038722804014883173988229736865243090856204689943739949798112385807223681251188577772860293673808289804745615171622445284548798962671302226775464797034090433991551757345194343731306167670580800272642199192860639188757661791836312766640172193070926753266640061574379864122814807418849590180248555543054665166901029390267500169713673733170680851401279963794539566834413488369679906334665008735346351509313085323029016486055943379717653251020743012418504118076974070414738686325123456944152358390424485681382561137759569501831560645715235990299417362388291036978303223729011625017352581804981219805995424089859908127267399696278567212679529366076012785773469053779491944177628423782425626859538955484786301230540578956161948537472778776243971845147772467505830303217773705825377711642089365270136453928762828322859610687522522174753782378912862360110051157981171247414670683122056345930109623663934938832766467347979789564004987018253870606117632561136526214447685177325565897413383429803050876673439746708784052879020215473749748814372320032812450289427975193923950088983946150377315345924337103867398412562763267410631808449025008115976876715432136211775391709933068241027671025725455849079493339061408576378785313020407531768404967096193639109651477953990657719808209432562121712098339622343159250923480235234832562378143767923948681333741738864858317345906306398609593249558365707886437649033243244955310574051886977704767158766431144615377806356716202937981731480639152095614096186763487324792046613402484895787263490905026621536581342871519744552839009644875091254640357022383533408457244118804880782290939028272802368838885397410277061829240339257209592000530454205857589273695879788093522078862344613535475160284262667374539521852771934737558111447021918171975751699272891283002370497703545552724791800884474738073468047166937858027592746917293466627760792742757234011228212545270285873126435055970719144550034532722770995417279943739657614538755430242749604397061115072957152834872297771345183055167335251446965783220070038741682105287252949017916514313442826483616362295060111158057625145920906424566929705324968106920167906867841943037216863885976256551380083882794788252737197937276216901376278444672464996777879025988539961301638902659702066628642686809828593846232482345214079241663899409232155572956089129781749070230251877529202764243325337892022489190042979384761676545520573075282468115586807729818679696318344390216556552562488825223490919851221865537711999866809639453140917532790182191220031096236163257905643087239430584177499721802377405814284587182582601367364602652346153024392912630875322968710255588838781089627540799285479796027129953298046148709085573030806919827052134373436398201218535048317084924595342569364413530757980675058635140232123566117068543145270691395185568694960240644439631192389725458289771805892932541848708653284288889994423470274610720048529062971124532606117149106122363488385596977939362357007933008989120291787473594518836218722995740613409611043147723889649726099614793235329267810355520472341418739491038666137407568501667755338403813561427570266057217024613925931061406868224109215210734939471355811941390553095073571580463424973721929678336480616278012504766007427623204975512022691759258052815003482464037285757578935664361023024710162867091461640989890889417685190907248335431267377157748855458378237166383722947003678438500100440264712465361142032827080689660811558575700163612899033645329251690526832616353715107531639424719878662529236881428116900661980503001944425208621110410327948115855998395346297793040680759067255781175707925586033662284998983800676368157306019772039949696272672932160622366268285067920585364663220449632974967861052710187881932797996604246135270469732437093189750215285723261292616214387755156623031942442518619007352370640111359797995518544098159085222898606937582503424671747107439513523206230198017090372779539583732490462427375113458886068440735013919692011832497393694208504002746937575054763259849317229584319745805328098281624306008087689200700127010375057045764335520210552407743396492070861829203751833022984421186062434849864691523349832473068910069225706102193814614723838906931289187575127825740008943878841622715241104775117700727405131040858750301872047622909145034809767669797067561555660308876845268280658482226114871622140699813476409893164072959961661813373749298385734467328815533867996302503753089117690773148629130831405727059572247139795514341414975998576407246135858893255917632797987356424521867301659994933985435539899146604156107243266544851850868168782417644330583109991989749738455044947894886340303078808747327018758340496999887230899672528319070044366917594640806335010073887919680539653807836063857393794425810447177382478412458622707612301108749384749192180893914514818539552132990607752375950950575222236093936912488368411741444665584234916216404706342906556235014864512961501354007956513645300403982209815747315013641136573487481837819580623151981589108837607581939073195454381734902364420396389809503581725010479065420798192386931235456041331764840722003362870732271850937249689628965107754060374081902298333963678578249960348207661099993093805007534444749273254869121809283224615988166009765035300589606963664542203030150063399064855944077713966044114292346968020454886237712750681654555217796934909571010145983756254167603526013380488587540981678047433100298701747431715614185902754710460820673627997013697100057385635910032768107187180313616399006303931286278654588223245597441618864721166316491333175467564989850435515472862197597058840710820820171885923866092471128888502379070832863829969834233369214531434630966446907820149207372177227640299424060405633042455706578969794285204018073133956768010777712541611715868317756825443843008394788872952736665608957124168552589979162100221761795603145888119896844463411175209635568085945174037717300542638788153736458881740113663188551442161580157607292695399255977475696530411115392776114899169715043998347254164211001421779624611195700167322937869124244152964068360506746173031825206293611964360036629909779478231806718113980224311480424629391526664844795282683764642314627086553246740141204051138538627100237392240074868620063065830786396623790469539643235686645800470393093092801696383489627932099490734307248023239759726336252857483020111049468982031647855515933449598285191787120703627749380169342342242414290174517547822279564916895782276209256621225295538848756274309969572710493504081620245388362273471257279356632070469650431379338880059077849356825971214790073351785702909519269587698722981392106106637771868098456761602698075039505617891227581479775412755366779228923002974857835379573771676447111997340918088539150074742532872936831465490436795136865859230535671048175085871721488443139010129788853472080134380055349844534466087507796076750009359583806581802168340162008682700287031125219125117711200016184637676181657206117413950999378240726270185550935400271809560701807870933512859971457689549524628711809275665739338787361913143763269283706863622005778720427096321768726463119516274903365100367576108803441846056048239386422505656357782108956454841093212835479227999668200537535499262450923772723404974566391800625020718926300527243129461725244762415777819562085397491059172931294575164499129630896693406050042859448916816561369334330858679077563892067120677605223065298231825424050532553843952022692206022500072949613083715410089453796459519908021799491331018455306750667269506216706682179646765026953032960817970889411028426441604564786749817765750895706875605567521775999962544760137976588948709865873200981026984778760093375945010192722987472622485923848836849067766202254324173467206655171755449784652661136188693896656319826258222691433131178341750134169513365905580025419138586942092346595596260603582244562310124483053991878690332401449412089149707507093010709231690174347733343559226692838396716260389507151670182599307442215574466233771442825507701043240931927173366277555264544526354206960024725365238329888995773219069995608086447565939159639495405376631459967435555218726651272889493847369573451589221951504303306472475065561360874346942726125691509513643857614780979013010518461705475355680345358778208456006711332395274728929327060363420095092471218392558017142589347947351334602122488094569495625443538094474817817344255807746201140641684576944317116066906098979968741105810681929109511743353878552739293306231491662146950169947847918395118991899529098904801268983931218352623250036641801998558932008684089270113525396295221059221949156204650207070338953266520449318152078707797598141217967438814940177268084857466794717110035306202999408288570079935142591318172448773528075820935599450823171358944543677283808673435857661585146006983991721598028464820539860228405200226300216633964358428465531110540508780550299946848986865803477619169424782569770387828303696984545829348275072309437694017648252035260491714307670071196556003983343263732787916461703181216789476666667896469495686630729876912640091993817054675947595955785675123470447061565497196285925205026703899878399216825332041068462845890001818224412727468050000900312663620628335459698438269324322301406669444318113786657593093292540593631819848611060692649331237383994860033375038741118293709682754559366467398704932896201896892445877072148700649161252841512386927703342185215070784301608526099930601239494750482272264794288126723641998982013184181136272572395282548833668215799151229035033380684197422465030665432118425129566718968334195923603567540635775082420646787350508621005830885220564816331824434262870319218617395558371434654100104273201596102700913073375575802773408714736003427762641197725666151538059072484230615281958181996299508410710018614563561515119021952658359459878161106351515704287519033825822501788591554143851998377341090270778159068739034416834916271748916021240231294922707227111446511651339952960965361924586643512049084380521601547627147849054534982388589142361408129045247626458499015583694372461088546884434637055894177755193956661580250651141351105342102378647915505338981049863257596013394135569716825800473178943097154554129956655989829612641066350531525470837783381686890863158103732614108098166958976935310298916193021596048950707713534951821484576325047123262167610876198431536310289126452276635415737994004749323695433894448274031371356738816815680308338074528932718719371884275628259578535597352219151092363930953671427212399001217560249457152795833301252588562770240923675467888742598855797595012811037043256602136991929609690799300322354853700826569677002234804251194077099218854817040786122869331625837210003534800282023232802650171074646893892329464970526845082750137747885858871835954562121074186647586127053308880454860638352943966154400755266101631652281729470255061574768290956343680211672349219613487238925736249834975926940928820220404307280658163550509339008698068123299341530955416380515968412605927373267680509777751996602253731443724654358972397510192312248572112652089804207107908618828940287345561183282341260527786540286131101928639876769722248863764326895271440066716982438310580239944633771749476833715291865179179256847307390175133666668016663566229092501703838203051248897893054431241138534258182183507768486955968056824225482401369812433475069946062938390745199524193977043647941509207752971009413975915796495864450533025724052711116120825944793797160422388094609533163829136685727517737191886100085056070186814087575844884954550467239689849735601898964341360441187166563667824624586586930549607538401798795348546868413709497885232180509870375075275608697910941635058275306242744985279155914940337820418463041671696722723306870507670538929998573512782548592530879329859941445677486469929022446723115981113440955649577878763830132741150196776900377594618507725690611304568957494479781111013869739749428862603182704464070447598503377598730163557991893494531393201290048720134910609326179577382128601912410873849945924932254378318420397923770024111713269081073187589344198331242770822236621332525876692846095107364293015074968181048615055293591701339243938352262879275603423304866970514634470331729960142265379036258777025038375376372858222735520183468862176869913669303419139473571593964800309528247268594106593928753104032740264296961702210628565480151635384672800039288787192952514506216280477943744254036567590554069031137213773178961824250560401771679959061642587331188341906579975530293611277976198583282763744228091468949905949087620472026511607110196675945770122492701162918547038292830915626379091294299489905467732882059332671342099157358906313695577570225345702152502638981017527100096610110679679606133766369646164343136543558390231474486959253439807856640639166020618552525066261214595962880762970849083719871544305247653664814511112369535205858746688602554794432577414963080184809060440388625109915657711045497389290269318739758613222214480885903477634453710178920870844193989987367746485497866068562585944560085282959058604533734178684610308075047567683788219575274324897400038165807392552369748046794105815773273940648597829201964466837594739412878103900303757627439714231515304883632964881780769089491959343904107395117085376387957760735855806127311414961494873830891880476711389863945463695673336891377556235617263957994931489052178431055249912509244573721269036582018838568889833364020866192102459725844256055672665564924366247891922788610350392134688119667658090903157245904622939751817938429434347293069056084314626132416641943544306344332963145391499136804288697994530177001004725728634315848906984260075256957182687062732063394669584223119733316477433242512279172736362851635981345119482101211275766175943760171446916792993217162550857943877763941438007621619168348802226733024987685269217506520213676429159626425426736168554205638016200748172064043202757590384860623867764625159980082142416444860360457515131001981171334401630539063696067985760425567756350468044248493534616535965987608327371578161348589409177068294116802292066648183907593415968419151824923850343965326170831643954057365805945355825615394654549277012102221110848077984651652747729985784693344038433502523486775116086034509573699534274050823426715437435045430310335346009272193791912579067814952769568365365425950826380818634954069787319047604193306996584495878563026070383520548644180869699369551958104330808667408135385956282999785275717384239290746590342369801789271366803098108396916195360872320967977125491001740618253494987948782469475063712900285915662184523729015718196467363958828455026902860536222412408555405844188644263261595729729318020050931871988099135904844593785526244652663464061689057767077312778012310948390747994979831572324284352220918932724412622709370005316561694727053978528472383431509077985759308795444380502633666523813498766437514718808965022918993475978163367684011236358373132281645671748327371131546634533196140133486579411727484659553106298098599430952848159504294440018067609349396453532991289414838150415484048825388136285963374874335206574614392893185232128816510954040673418129359014773446512496713469279301626497017135036370714142812616425485444575154616665912060936986915601611404224936480044174222746044716254194627956319796318147579004797086909761131942013123257697340163088524019108832267281461383677265608286215347364124385073823633470839382729402345129600241691158252650138216147132501086655057303419699461551700085824212522870333627230419858789283408138287487891760438345889000088922572889745055918155618101485313318539234124962560437945178273614405199804984211670797465072061961099493163244822600986244552497850110992455074890716439922839108320668511396700650796504753306723032381887029661878969972800385355581911132750896240304538938430639981210685130984218748044234401481420949165664936066114393348894088298825915036955719546819173837064494312876093305927503183496439367945536043897011268777482263580248870076133922277783129726837309198437053390952280153168247949354010391010576782776755434352474704071200615802651398598391963986486037132712564375442447269200692365844558041031936747301444665073890059674122683583003330087829080817897929997013681440717076742992149235963892902706605536177725248062488428051726719554112632890075277120047456713403267040488574218466157406200742703767985226718764900326755127317419171836163090694438441272875656726403626386089379301718586220776766728401192294567006391945984846557958200845673221814701410557877047134146438984590955661774141028906545736918985131313261053854085924578364331044509141090875549508768991862367246823649548759278724281113470805455594296381985015589807592463337018194103332671871615927723875869032960474836293909311175188414063153954114522435928548375072699450015567086208955599922657899530726294252080442057375452745989434760545904239869406027766839369843304641590041686094675358703708304397380087912712295480674314317096563938949825476257155372718444398029605492891044499125487375639359420768423859217890737648390387016941851729098887730661864878441431675007037687648043051992126276736945451467752151244853089394061006895441704925881946521146966717861742077740831985700903784326140901087806020227530598840305362170851143070320267928292120372602457198783626424794800957441570813086519856726376526769890814010460535050684331966905739232679725981056227389549640513707295680363532026707845833964644639262364916278469829516385203184273641515686657635350210041432711891848632781810302923685741167547520235149409684528916680185142584375086932285914029150295126853679696844389619092661582075650405751118034067739252935349212007889035951120641285143295122920578133409918172158070656765208092865218360321505721466541302461076660358670333569188369786811311735263440583082419375779868633422880132504857650329918111749200327335058337767112226334710785470935125678621161280390309705085041897016175140337074595641553550460039835546808319744210553347988910436492013702003974681898320543460765939749910634181313465892801418820275586843767257688756483285267250568798000324207851496625789666777694137003949945422032385065377408792907166760390219310999784597897957974362437425409562296091369927492703396750551908544452471116969346890952955544713198717952395569070793030815383959209349554475685294530144359166838040083800111328123907704016627923759005938183977556188771845668526943834410552205124024309108373337925867800961496978512526716229047503768942877727516253683756176597152790305883173294190921994445551377025554989039325493592020523549957311198464519502945458176403873481728741078305981566281614891414630858446303553233572879278794128700678933595316646152821688721192885793413429255278599958471125905615627482302070962025635883772026444585224592309803797657909383289198226186371629858641547181688644618500949593861919015796558162406509320151317776148552610288841546644167299918825977219061088166359366917191144773264530316319811024372120742375750959535325597900447894353157655913065535991790913082015523178961764698776882585478470661589348745968563796573303549716453640735702762710475125279838456517828823045418792561541701625339933276397707539904819643062901413988492732316597674309044966219023121452459780796502337410618219970441436478137354740713187768871755649569107921673804118818075789102846923435371143879072513584300000645009503051786315377606593795562125708177114846814977518278180811819958747832640811004188394574229939542796331446462714402472099948464562709084276760734690078768514949967186658660925585733333370668160725108871852015059912645253958831090334165755040436882147678373132952752654847075571187059231536190452387594475329891078009118877855713832345793222572878649533492861097539649473053155198896372149525368289776497921065381492790768415491265125280318021434346898837379743834290936418963502705473787050039177104747925021303835900529801174507266989073068068400370907190315755692140715621583242378890739145336086137739130360515435242283483985441344149500030741154817953845696412014621051310035832293112283651506691349396259510468334940059370060829870680726193873455725129488669478739963926372258223222551015430381465893422487426441192775303910444530126765961012170407103484845754041181290655888375333478282540046354031847701721448750780503664398020987981664057980152714430057598629547083535422874258124634921808282695043921764528704690694800110711399282156645442526796139624445404852304853619614468902292486296897027498902463856813298580585327017249103314272103565658536335152819764334703942978645123860368285550623675271375222875481333343779582865377970340440713815094687563757030129960511032726148981499155700778878716772201715712673554581575180979419166991703881117569399789812084713877136924452404463608486242160736887821863718640313921856025631217578543777578377128235579375891093878403470174776457389987627992867412145841749714383421423207237830328386759553516265730260393379475394336994264583461707933918194649729396279926662004797595922316537416358921815562024806931007422991851768977641983251267923790405725895959439269548131150850672821003323428308998112158316516969177081165197775702551682397608830669395432918520938860654207575414774516693003523536799050653759915849883694038483893215836188537054889444306239098353918685310675611389656979959248786986026549611814452526911505147373904077904983255906204133712524649364008314220676672820532792607634886941794132710818530621261905828383373599716792599240636293577598311101190269551608218023899257204617447010831058867343063453003524230399294667186849525238771157976836444655160165849519284524572168813470950372326290622834847544170929769186159051913954161102311545763675605989523925053671156337522430884874119470901660155541423013012935581919620231473792994504726056767258269297149428767630469728377763864333387737414999656611677712379283990907417842505606131441511368060987237375864460611395022049196945130498881993779133394461041590324785876520713388544137522399483759906393423237937297394452875163091241005260765155255229070169657903531028997196878993133896465546323287716786374462582077235987817984411755673452286144819236665365339693607515754479883607086045321639076997256729342562428567825452176427845360992472560892025919175138296326713792811844165922697039845995187675298612662921430933582976607042628299658487002447518133478680189420206066149669270667874757127079739074882541219885882619156161151509299706112424426794338329577066195727230980679172513902371561042705143934169288369621352202010304186150042265037718634288650270271975030888712826376754057387637796909931461265860280830226808309810109031923720156612434624541470644331011021401599075697637115662978539789507669408757035658586738572511083581239821283467601835104413081218107571377536815725009313374478841154842097397806028320014197571923005204624803668930062993286258892396028698250734354612849086784483349611248151986696147481120311605555252927841193366454425290865964122070284923634026895811901924494841960754211949383636058804965800291247825740843150048597733691671649773411455141644457819677385003567351085056668755839843465630819612859824574106077854171033296215374779423982289812521605161199870615981915333600373792599570574577168171038064399946693239725368152364190536353635493613439510031616936438110510783632891994265497352678138217847184125415428485230190796532608773553737896570317984482179033970970947040518822327069418333020372951311786997760038913322764759268676471408017240427965571379334372118691441849079295509145380223463549278988962230167171459691689346311911203913140025292111152072938327532834530312637293288806156107650467053299781078755154005265556125768767011440903644548537804327928886436162147142504871320285309804249419192025325566823921215798128218462738929884160135350411277137777617668828682354319422770826017456353967190674262807313096012437234465804307013637683170116797850119791631187801115387033789142756408599568456733612683037601776284233978423842986215294548006958327220420682681465250503550558394355886033304658836125540881932749309006872865952185676774257517314254500265676349048188995433890764465212284421049150673690514171611821899836435123341414476145909867363143393725655305836117428315732291054243704978600175055942087052583561023107437935113311672834944597733954797420952867987059642429995314727719379812750075888584258817225086019675217763152772480739533445986074509218344788801950245414894420884823275738710344279277818516710243916269239760006840042648102321621862199064823596918459969575862578993155032503201333836820285139339640917410180100961226746450782094903980685731858093302649814853513550451860493571551707351091502531645501311063937471612236211819121977247866005190450777779494173285112821564050712274015556328509778531130218058038219696078102131327180399105333288516925834644301819367868803288485111255145895670606999161951917268096069336386863643322986033569509871331238454583648757693023901689939741070157614180257200132064078939791341643624771528863891504329596023329782019095018477352637570578390438652332024886708819661137883799153094334414074262711725199868518230906165426525509227619157229257331436405177498834149179960014607432234165211324899291425284115651797982003829054265401088775054056402202211917899950497229601756210009886226293606062953639507569282528613034736677834282222673630029195624158478341744011697026619714677902416257391181577342136726419634267022628027732735205107654921097217734952245309281529012374814156184895784225849089572270632028828043308502140758450978731610301103386443968203368338911536074900099671509375319749323486132995935733385862447438846489232726114267972731709874602980870670043163844946518893284772042069791394534773894762097494976087144683149163883735937741704743857891534804163449865470336154678863277290908229207604665744903723297515760470326083001332349167729899840280098826002611358269402153810360821416543999946203724147033941752974704073521339646081302862757375843461669916458145264703900094469069614464182011674269297088245446131650905928593981981209808737816152312163489748323435242470117224201477032558318078248440852141095841852552963001917644387999596244814787196532241265628581744180632661643800611733279294294351092750379557578216748194952784435332771239080965271031332042057778168245169912661246465375586224333529642160096583332425180126117455454789958961504519140238074835404727990452793370993193330640400960100076004079586947403615507326359556064232574003393291404419962235576233448373676181245359719645181469262816514427758034063213081246411739289950678131390139919405993977388345890435327600604399298398905026337578312171349134749435370584537812666645441125339123317554747943663712576169204590953565854157659410593940066511443949805672405265222137675709242587411567438413725014105008913517023910244337568432762974367719367541200563723913576503915958563113712259069955733122356753317803811825235138025391317654280576400082658744436581470667194588624182196245681657533591743559284899564898528549500147387553757967853367317348853303415721981162283466558773280306571882170621856706301213444913448264603755002989256286583906968546957436594168181972923099129419289735097838515289524091053230691684390429051124323795196459354168908873086521245854689096197588224511518520439427033526246943825636333883101702643099660619223397164751355376604663176014441190230544006760370819436511294748632734612745861878043425904890275585250285213770723728293436670393959315719208417034528814258707034149387481009359756928296182468282041939869901921630462650561707887216787713423450847193003492518486846966824529739237322310862539979024452163740437190654387171952702613476553465249128278456860587426663732281407214404800580868438641420895825274297030691150153136526437317983108746692630309058624418675391751459099946905291914814824934222091423247778823197518618222987991139734284805349486953977945653082139843294982012268757300861952714713011498371490032802598938787522115801163787298782620490475188168893496860167946765036099274057207526116659330108401917765832090776239754151151310304638159393949920497534692167158789183584102289281915288400008454292411641728729311381087788373872726827562999361019484217285943573942207937294088779533879224419584779487706455558828894227821008618493159796317451734421926929087552740474570075476521918825266163750961369689856685993149922542369799518778856180796479736884986247956914526089705423519290139717756143552504540725718411047063309320977201365104110300678471016560323540397990273955322328826607892004173567128851575006138285106658156962164377808142294423823653239578066990674578018594644419551475509276672867514364738758910131959080208286696314599242635243711683554151881616357335891280546078056982624183664284488293256456686474553733196589849654462284364885722242213518184078500470934367304375760662370327117639681026071842301204744571154162044640380055058783642126800617120704552042246131165996684712003877912626127036594042935357405655973142608849220994448598508351594876044867508097000961174468210346140005174201000981904648408798162837212526717090623338516662642022252184939608590195822898325073294190705407452173478779621927471678474327916104904369104800563126913069928461790829954074750393239231204837663513963702414459655083663599210462498553050023861135441710433631189292547258141696104153345652216056866133659553068760351728639549017418303797860085002775887100863046168681893357634930000303363620634234636621689771055356164631585291574006828569956849258830482690582535682182394719949865688709704652940626582079971600177629878641863329654580727463454826920563157339463846834701112963414190293058874411664784243545955490725343949918722576630657531884794210797509286877491567859990390974291453299736025648184751031013455034260999250319889145969749045974283181584942726857787693014188977774162557680434396078814733223325916391005106614919716892588883299960296242917475686014013855714282448748649059277809071034152557483205487309759134521565673638037365239210667036505013545911836733636906789653640502178774301124398498479928191430118559461223649395167066390682785805919131876922957185771939946101233801966241501856172722393599972633624075355128201137335397364462977400199925953814404136785042466814458521010766158152927085024571028915218178148969343042224650190317154896201541245309954401242537741999153838384018371609141874673205554360985739318191056559486546411020047939543505353310321493115550407299015577540751503365516369379107841809218566292722857979119107703584030328404646686167056602682190898513970706515203335727521216023060106201438057558065209088989577360848621485341387293743815608305466738276853809620773089445370676214773563582535169179544832584256065754696779945920565691108382657567193384733953607297123636218995400294392610285966038062009063374977717467531582204857884589613251434036577045740217403601609373638738990774247361322037344180074002724741962848236845578284186963951087648762143971902372003308985850872993063684772605751949626635488543459502609022315378622107907038578037870615630585568036381694489594869251111257750065783754524954470624457122983990862150953711997739291599996940686238897726634809902812322707286536990048841938120753857613905341367168553573997466329088461607468745610114371388090170817424797834604472909060262972562494895993360143288842441327757606759917593515962637084230193491168916257837623622876445533499177484058439384674104725583115791863444598986657474777790063876929968676901222052730158193159773103069010088028501670024814286426883684847181776608164673375715169390452704217785706803832326038747669556174771769153187677656694198710464371022804584532109060429469774283822038301544575227165136167470563020435959380431357663478647877992509717171788503843032846647511443307546755607224433212473406100345698859868873725210120711955834808254371632612668448893154367053299698786059000746390903965684091412635232422738333838134782065244850535214863316867176168941527768399848523095895254867311802385182316315894138302887096016879477431269674209497881351461141164216515809682173807066673334800936069976210802896467987830776179164360447888817272762171307757451710011078521297897284864154681195029515890452786335884849985453748003780845400211715729485398070875076679601702711837968518566272321939949851209105473693391164594320250729189605421464786918092657486758939746403746589429335875997443172176447011566183470713212923868518869204452704042661185606913331071370401506757151069014025008711304987634794362001624756111322261118616476072875209230059737245840794309539806292072529938586919717532688833565635391260041198083704082334813400678731233806275924292679974513428859640508427147955431113262577307060970527568660896047757205267360052311402461638236433374701456380504862558108640186241020605625884611096065453713732703997288437754891563197480662267277039992375282913395309643736110569525742166647719665070384648376534107233824168617417385025854863418095425750934004507096716950348647910846252276231697030592592491256104805207574645964812935827189219540566908874196931439453625218418039538434986922069955407308324764156180054790695158332055418592374347205037911543990263658337123666329736226499583712044286388636349822515857204869510412701052766427032862695534890322094290137565245417447919842297097418169115949029037046077778464607280719241634435224207095665622115481481632422700498939247862029674340144159389448077857791501097219202502983803490775387425733444319746750176062292586530477289032970441860174267611074345549223823080776173497058412642260562287841705215496307186420522326334293297589772948028335481579017604938534471338199969038528159849301041779586913799912314759604790103935541373705612269669901029328969616370548316642919810843119329210333623500013980499003544375279782423148891237230918728621183903353278193373101941202889730039652823407122466799070786860333048678378709915110524016231019509693054421249855389855871505864581497180856848918725147515792920411964734833807187934742446070756844235328753055229163947038433266333511568310847142360772075294333414714666934779636352213343870998558329886088891154807225127568237443139385415325412354480735922638810146651946723265882948350982870922100773049597967396848743004620274555602108267463130687300538320879828695979508532060597988772898711624389606521139863953272975996904144520193190376759359173876143100791804535509835170931160782165033369855227726919228183441184474174280502665106809030564340347368115209327913271190143798599139063095456494327280484528977836837176500577224430528116538271636849602439980553259845082626199135264475133933354622209601006370570472077066302660061289696868777079136129022331795592099769239719878816708584347739604622845996124493371531239348412927728963995931664290793529720877307388268874262291793475478072615392890065725197406356410514368994677069291169334649224162329921030884590909646925596674242481548927718100298797574796118063690413028872694301850576154694555773678692332836908613034847897517396447586807761054315170356597630565643901544987184903634709311135826016129100084687056052124368869873706986724235869375342817904729326908452255362418677072817262038541220924324040136975200191349426873846632673914942725306027125517529040041334438282243462187058460936679395930315887211481609772845498735130593919991279491865113703372527345432466089138334798202073962780003153705739415294802570750542743873655247533233930696269592669832267900509538435084988523990770254243674265642245500247385307193597420545730056977359098951901872187243637031359577575795677531648933676156113715341972827320602802712573557325318013341839042765363254746143978976616225082105322127972553182845393466218856751634454282209020719655110877642462811587333307217369720253444549995490704499816058766127976433703009424658680173948077702774534340837127108424347339246105986103165687481768505939943992813821739697606350976011128952737035991516759271231959049750027312907275347356420447987381311472181654708779027352590349033011248057305115381415729738694421930045173676310757836686437295706021264399935498876192822804958105929683372956863855792940878438530689164053559279851434552155543868639135181149193493067056145826061495051168302860819610318985355953960147195957855973276956060835867957448234989029665165083724105699771854777940910989424368698113445059407864079331284887709639740535157152766419980723929955232383165726961211263787500805098448563484332468216218250614570534442904421749439761051937828449682675270423268040919109185239435881380385743669543665140995202504097648393579788018800546380745747139594223652010180612838488061881706993880419780875967143685908672221028443046219924472917370040458620439188940355663160597983754171836826133214793550721320798230695040402739766824045068967200259891518827773167455763062225214258448109264312274699320827130797226806089364254062644677201134211258393475660949178519566433182854457590266575513959607522877558514815481881770626662183706873305200758440775535905788434101140601861780763116885799321332189317071821756032710869206414667197535306551485665870223662241744494726998214258938648082808696578081660583741999264141643384556612288346649492841946461379159865391592742153907043715863460993008325813403916033885463921600951339392040918844162064753358467597984890548786343915432059292064387425456530269967904489419986570705577376470273431210614475661986899657105825628222386386219083779625324405810421646587123478563275020196603642337979541736830977290510209079595650631963799007310234794519104985859680777028638607880373523038700986601606986206335833428404838507397985079941058415281944656057571410783601411272022117598985364590741008288216376498969338196596984797280014971504647956661458253816790200917936321653919794817331614014414850425717320468597993414584652944015213594376196360005249486191580061969161245333461722214676135229666485912556078829897858546100872965713547966710497803570460056526034283552767327123880821266133626570941381880936540348388135351042823983071123946176299999745140666804181257563435670043788125723810600926975942229976924383858506580880869729065021064342144904584720575331754079581936662409152170627376022896944147498353763410979267809823754453973995310256356971870981808450556341914907763932195966337387289638905558679592903403092761268989629031126818775952103480367070292225834517317666218078961306337581560594671109575241191012932898134953694616763556105640680768782703172758373877039368830687325518930062967636531492745877465300479404976791671069481445251866568432801719900482139154468915189580094956448726042530578694376735843696853983376305192534427202077651820813729678940225356924546481185318588266316445282337268032186222477445476471749717887970762366709859799290910329185515934068625670989384000979759384898478018778039212149753350658069508696088724804783819412405993628621631025029883557873470120723621998049602620355462736470961779118880096598061976790174909941822372877307117476196043839226914564341514869592566818928993286280768270875612672494789504195645055737112156030365451540359254534857221807518556635012198625373526229700075989973860884187527752361837206512013914543620147918662729504420822840629757257811847351177615637690787880789458066179018977784824018174630636362844224805786072342069988124115021150790215291832585081485773421786051909625744693065147221757856770809291391736039861289575237704247950121293579167678351912287017679723551644849435809280801463744833387497241536361647312800411007362594760172895252601885025685212751975203211393333236314991090121913700630531488396650660204329860799772939466767280025999147458780385565956045338457692919764415842334591083300851266653952404395645576645069984021409846260600861501780307937535142668135768097882898074463366327050704580818604998380707642909534615397842027816009153333359563413548007230921911655373530656956564644300017185731220609355914186277836464051692186397175425636792402209955457652584466888776098382172876184585991175008791870680612379054858672390557121337385312226419327630172184366318275329451104250096069118757006368097287256954933888163134333829202433994178931493247757140129374910027122816390565508580689063526964049491391131225089337974197909017627561374301291681054128185533287793112701193111147218240544366626373395940955474678250525838820539082172912553433311727508184757439725310738089786548916041683781952652842708486170426422910090762696907299315560673760461794030127779189919237000897168656687073033066680563854485112189667049890069212290445277226765163495458467430908396671220327341536958990361416189965449330179333571336681516190086009760527203350867278571967582355479242164221552787852054789776801078706905362903647637109576616171868213240848622531914488329862092221179572724754622494725211987247646265089167912921137029278213253912832780622133324601062776743913393526627477138066619771647429121533966134745675949671959597360984097661199123228530092636247392243797943872962968732445635982851946590015497375132803186589039566255855546127559560438455022303086902604049168964049021897429239055528717483847239200887288079879663091648149096694906357841301332358470871137531148168139534731217601270928033950754875948134571947268915287486797193794884645552707140832285629399083874762946540040356175339884041679858837876753105704389952698503397336796973779342137595131322494571459520833401033305391178507413554026940717538800337318956693297267927757773923623458823076249102602493164897655242116817768819740012049154602417410894550565642901144526825120979136279551895561576209334556928405374674670369338103872230013641504884102240360888011626639385632444738701846870287620590794900665446686540685791751602838701638819590436842291779249090499231070614473843258790877989375392238352192376908961837925843611163278762298225126540512144085878220484982284302319123094788520481098789184853123551835410365329181531593556671865477750193026871360319746512692454954423152273638634271103317629920048411768033298308936015164018257789798009353373454222521261157750951426069026784183492074232394706018559008665932258288385010706468849931396863154891179832214819766318672499515219716141216016036870153716673838765263259006945607181192408453582881781578717565241332184198573754358893601527227598459273358348756748680000103172871670973818224384233630567705878910757529714436285867619696196586209238287798635794208395928621625388504725079907917380202880155729380723831790508478851165586530094091051349725179546261325700377072335038097956302381847229575705672104653661900014058210843274692277204403846963341876870610307322455182635244731206576239932835551413463595976637487035865322659171641904325880018676970271742544468750615126665774154983218161686850469235988698987283009074635666386206085140668465913475493460198871090338626563181745301706759848809681634388119342066631136430292288493902969014945244228313798475801502838933970409234600230888173194018075864893686946437372687599735595622921478635222436462607770105834129173438059743893421846041141530428217751628295789315395933477995197177295982592019850738311636369104063255965978961329328575948437430978564733992239320241138381994650405826694347521954979334268523571055706177065019436026511540188640498192333128399935554822619330072228500833283103336224349656166529130699521790121659701151851137653768343684199313642406102295680754528586230436876624211976517515325032769537529337998466593505272107936327440769098765849316043485799141283132976581402866885852721865831097191757337013898603543156044130744645871307150576482154305282884345967116659500776370269227003452970424344980983832580849445398033710204239761023197443681995737194766711639717413411923369333354148211457293783465945463997862097979636973009885879037842795010839829253900226142111318546079591781967086591155678580611064108025792680557722095572485777434686575542984012453861591490216908852620504887093874319529020293737873773376260242736193341415872496418032183412702564993428251040284153840270546441650871068062336688166547960770031988774441568606546603742485222935274758106908941530765047475573650344896258011626432381835808710661534869920371906914977027314005815013444502076082869437591561315289513324628570675001121711828916984079010364079900001954884843929395884640252840031614106174317659174170326883137983790364204900043098249866028214839374578397187438947461953900994906209882566113095938587910674221027062663603057850668861219518626973713225712767214461223264032183627551414447672146546951051906750443528870750387609280269233018586043421757907858020735315837087628891330828544318172691478275303306666262121113462451013645432290714475301420889271917137918373405699518094619058459985912478614112662656059365671731845499270905545325786173011202490347269298230319213282335842530442188454304149001236864722612565531978509665183593016155755319072165310757815313451215691439586363163603131718355242715501539137960859239483947350763569203694657181485155801152868897747651045609985178178595335532369410911231507516582444035115247085211633415255499541171214440717453608456983659925036698842161488962096703992379088682718321670610895635676868358201862670025707013897538642981111369313879343712929757064795581459550695239425968364135529244535948380228085235701502398080216091352237462281337908743109060699675126692965640966502322013645738166313513164277569120243851059679391381690925646143291094406495184328933026565332217656251384282305839288061771650537909533909449380529001192167762856320645103559229274030798464560745286734413137395319528100099301918234426487731452308017695813337197437738123364122438936581352543473081836350406035026744773701876856956163038723077946602253063940888793418759279975838997892935861635430382285737246169537764729157049254113335639776939961220124240033311854559469701155720346594269066209574768151480746085818346164561797980938048716699331330752355015164161710684896314374581314059356230937379898097458990130174675702025342651888028051267133778094294984765212516241116881832612756740426186597393918689300565001573634020792294576725732920891931913891714772111456893084047172811939336561359646459491509949585144009842496001117304051721325062390802914239904654279449689615962967435166734665638823830145319016212056228245582843650691160276614724080247961710881326747495097954724395936914683210326121430125487187308059564727657875125793643434062936542853332264435854840300124143067354770812737839208323101485715273177727861301446323697908236587111903530933073152582558103034750029059190184418044233099371006207835274978983840037771715263544542124014704692825177277335533407930627525877885416545059778808354485394366448318124158829101766435183305616503627818400365457444473869357315942453165614485738149094917967649890773104931559140833208702440781547031965992909968815830618934047913275089830764458215568831153322856874469845005517135054109156078933448974196757201522087810566040217955620076149261336005653892710752984917197121951183991064636293817853876514053857745720135747502079559441034764592324531454383892923825254230068374481303508956332320845977973567738904410239243495827886456236790148966744037397785332001426240550296118452678309824928299814950331868126003147310268644782322621351398180161433352583043564114949052557841548646492521172648272225835791456329266467934725896730431076102985879294880575054943861665075213306418586147862101644529550902266124446462631039564192450449575079689894501145049470372624550780199080301526484949001856471952202895670533070843028795233400374750910222982535008418061598561994236907921797532760640557653801897996213177084925642090865563015814428268724003211255646650030610688875375288779461472330607619874004644563556821715355887263085127491674025829115999630020814663453060116634279679669463352734370578925342073869490081200224672040234823200484947702780762190129622888520074738371313629419207985176631918590909980350156332149356447422886092781933135942888757089990434871362329354912781813794571435605114980228034951536130619020942009017159178431288874031506591765626666163501285138464282946049966838932837390093837619721796254978399998882247101443039861427309289805764709345388646515302008339324712907973938580440342120745869844719949365356509714398439986918621249013353140558870784584233427254063280998942107866236154852156654124463115628499519742912078854728785733445121129028951696259755126721527595211761653509594369667514920905253876561357208474722232935909913240290934934555662343060454446098810277407596057216377399906883820786753873710589359191797280688908629470953512855708693252786301998115459590100106772488699377773556852887901225933898901202270757378697084224053196465464468508299873083493093923164382632703250023249636309599974154688406024352238148870466582988211581159231845349509618721341655472028014132710087061606674010332505864007983661936771700165582121071997251077586360254558105150325840158866386428842996837705410571297029338126555478323130406840250957352085065719725131657393775964511068495031815582016350649085080626188370938973754161197076957894582744749687354208058339285132390723359457422832445050224488361265853167799130428025698041266901649270476641100600116078847469053829322751074163550032347690802467459995965999207661640678510890761184914132916723489351847124573136972827205363646235927613360935539346007202724444597836326402781813152515118096846296777916334217155838194338120529279138656872797474299599441346836496196751991408921500499691799767533350416344034679404282535757083615861576503980329004031649401275644655759792474109241575399439688201675414885289945373283194536624853576538682434796926760227281128315330897136371266900714151372960114427062279846086546287751215392301160456466958198863945503039446721923321158695918996890894003608334814342976068023019469378235669038293204509364220712441997851649984325307953399527463367127742845525213692929559366542865010849505788551983086279383243791204781037183400456666026248675161556785062584164896281089201707420434856184524675241455365855055849130750128553522348580454343625212367142972994905713370382378432195547436019750781444971468565425812471647602119033390545191100112904385141445821318550000027705627199614437601944610471626410640444022269959248866256470170780350623928136674855198315110005719730616624933982186215554423174091613088681560409775415984133032552836717596795693885155929706115724578212838547139121484252762177266942088526848232164066882800977645082515136322326087067797973169800602672109881505101199322752048881354468459580093486953028549054847643555807364230047155802813313104309359992659788846932792739093618756209049705446060327652321250803162461800943920590407402243953106376394709674253105719973310062475837508741010971634615590749336537976118017437236616025958206843483242963661104879728370795875685769790850392428940194585820883228560892501815178792294691733504066402551957514191125190869507874859752217388034726164338126279570783934745524722404986842114726179836077732818832417201902531221594673828994604750594085500387167608047297333211063594623109654633896710546965787924235661961959607750904305746596746551321458723446015536059383571482902257739097345879899805646283300238043212535784129320304758249977828912641910823448039604208104229905399848661670622363376803692909504613050703757568379486184143622210029033292379331083161010877004619152941076264738235577636539840223441962967137903875723046887052916351678032712709930084801163464747260409058169861077152527370093308154047304936596061967388420241085493410470946864132551557579606190327986687230310447097912882181489123022212629663168345233830857156923682080635514771585232092184041361376348269211383865743569268050741790070026175672130378565051075791248909706543537123799830044234212067442422913098144452608985307244527637525589101096858572029037868177614632364980056215833999824449429574522059860446762214682641295158671295930637750293739137718318828969655144330465105817228778452007830431892879084107612739258509644067293245719719829382826041382523598475794660289595008539766593284624593346024848004310129234725018668142544421302699691927713796741290731630742974468776674664661995154331106585226838827830789034162948148838329304079649847555227426120336314606959941456911052629627895735464778952911763845383967264399477548763961287058618394405125322328198973118163307475901974083637597406686819393190877242057039793190550328647516261055273313344159392648413780984822431653414921444381666244868042158773090336891587453052421294149506315277085054372804291275804534211227828348605199975758804584293629483573169151308103476993001248937172019846603852427961556894857870012610066206179800369469194035537767586584191252158504424723213873663399628428852345210377730115646278454488814057711872442099399029399145275284126891509052787673544831910086786076326430783941427668628744795439472243597438657280347068010971362339415966134159325151707262811908542221631812940798953528398933344082480040001704585210864471155310216922960931528000285071397293132342936781571133730540792967957435578387764417079788989172531049267180199614549770126250442844538209646579224236891444973268252054753332493929458938660443771852574286916151096570483208522063408891252375279850269538345686197872289847394458241955318259274249789160415899196701514608638661348656294784721548250576225881046913001984569895038461213071837627700860621186011650144425785972931106707508034651726787899488311290401978462742705233247881060839982810155583880717957071962473504339013857095778140516513126124391869934923354607284368827251093035504119036092173929329784271731636236471526942127142939881438309675776725655412629503941226638896576699896930975055964029861389865673178294971315820278040559809308065713055430592618073245898303198572600802840136825047259333456617693703555746848761190385705517206848542494350599869087909604206879728899259771287612092695943256992334278112501636730357480910671536461396525424242379291286320195890628798828390391985064074438791406060862631406192871572996354545425451119005728119193461236959451180177723050283617917858869786870268309581487469166167626593866065621514672550908867438710307055273668837127986057567054171764921697944644216888321279796098250953674587031298204675609744636800200336975074157236563702262372902311014832122514563009329841465302285556511591422198096147838782610366503356735417293661079627561859904827195863456620331110841621068033536769088886717029669262783229913458590627838014991743387509255904977419499594454216229795941146124865466644759252071586698212273935686523715749168792276556286132982604749002156135763505898342415461594636378986947341057813190620423210041075946405625798802938891740110668795505531957223958870470678072272986933410517180281219910160604489192296253644914124401606252865795271713331304786677125054794633028896518136513792565802877290511276548364862090085284153407862531610989789720742757815491004383903171643891078486610173953684339880249207462721381951828312410416249909176219937895325486574315826606515026976486229936840831645885987053443031054065995130746046885386337632861288355128565124149576197383424012051157019103424295150302504671709316090590242961788909139741215975920595346297086191338601889744939752077818892787956422854902401421207311117770649623855455735320243169029867039344597847993230587110580294033142791233003572577476617136840543379053396159025334325083355606253283815192714926810701569753787862563762383334374387335410131091216718717139017488749825740130371809250308773733922116200404697670833537865553473524611338178798685501949394359686106477558163881948281959200055762751423041224197891108316449357300271216924618092840511975386145789986094506326442032197012353652994635302878193643977941614351780933303185322844578829367263209841964732915036622261376691463438243228073946944890956625844734065353583937623226399395289085425830304833709614544807702507820166169924328300933640772636837401684865410159856201647444171702430885396966912596497748230973158947799984707339963301887624755877546751612026988673276024238970731578349146376882107794527055210884077931969029314031185266798401285512889155155935903507993192344528619199604261680436563667942255549521042383253979305301183052973591669721807207138479597502448187354342636945271821055351582818557085215721493502694131115952683934124431380617153920288115346102381080705896644216054800170737296597496443407139521117735376218430463316955762223749480249859758489567761956835532951735759138278041672008883458491165605795564107999786169803598618594024052521769406704644147003951101474584413644862036022986427762569955469078764848233554718339395449346863058347836070247148959593425125882127371843752513695552027892068633155269840858942553687441082427815332612965253702523795805736361878942570461892384773406252694972034214260420758800679296657473455445728689002683241198426584345742508167745365182589033326226583751467823770093732024076413114515454074031149967426454590551391485297078115554743693476828275244295036850704823183002571766166348563476092254018605693810196670056364208469208201456472733413870266838103995482527658440880595623759511847587656735494844789449923288343609935194498956350052011839918042848667515357659451322122379698290987741002516598734956759569392463021284479934206366133879559915872110488877089447612857825160438758127739385166643712295512374676443346399609260818650422307097544665921552654389976849663127213316918647229948898311277625202080477365769520706666097205255747471284769010007293655123666724014078758326487556287916081057509138226505249281125683338253534981310491638076445445161588664728936677324746798909961943919790642596860771242319775520325522109772970680562735529998668871583884544944274676554776147733442357259359418674649363621740729324115319672844951805835317000437989575344490365167335935783008545198062206032433683206709015643155812943215913791018102155090751247545144348933086028330866559384144868116884308914496878338772142977624827163761445643265258465189165481377134423539756367016702698008331187576532526198480226580367301833806834227469742372896854065030912718225997848752540810958467866818587078020144612266385955201041901978574464854715906766172533192845820912240065317317666434872996985669109736340817773991576399094488300859194299714727681778680637915590780225126224718547709003318095024365278097365898128957616641493068277858443856668757380166509488201437413493857896140409757378445156379716197447622823918401934489783617982554568565689886109410510683971224442056372678769692633284566744479814686376643478790265591933074388438239690733816524442728081089593526579571829347429541978299409727631501987613698287674886441237089595105975639440521286170950401758807542910034831631219191607015145559284690088877305485817437077619923657897111992980275802293529613716042897382687086560146161170166769930070452812160938643666195735205569720228667941266273907456408093268528105633936218730636513041729234367956553862927594293018025515265475601101844560318041846638968146069676381330630109396401629307318937642352265053536940843071138305336668506897061970819574190580470048999733197847241189914199475337617512010278069383029067662545728071138003973067989137576796746641418423454416667142484785458007571731806049517038386936511152165508558376280062002485157520032381214356854926435461216305913787162545266505704119778693541039326967077612809057856625410584312835219602249317688181980006885114022804219425057921692454091342696569110766404872386690189813989732649498521383850713190857377515347494794667993310187949317151302757146044060719428712687675265084925501780409678697235102428910751472163224529554043886435522861295693797961262416830427845059598987513851267432036040202517647593840453707255211812991474080534324092379437352281353006688725867020751831404051130847758655451266749127754955695099869940018964026861148242292597782331256127475214071621407656878820702013569554391439665562824825674887725495045759338747232550540880191840131700640296697176278204228455844663197001383873958369129124661657205836090725179454334947343096022943593865802855687189408502022925428879288604245159198542468261195876432689747944359181679153659481732658600152724115581208503354018525211872611869136117752706462292322847518551362235792300982140665981507592328198408278066935513113564613664668553754008659323318259192582495206798235106732757217552544546830072902217090813819506108519596830463508467008232129010780853916663340270408794657055577845071600510211708906681233616714440908844090555300284805843082645123385719786817419049158193235698177653932221628508740883118224505408294038884726630473192858726032112919918983670909795719463053260671784982730769727003383338078712253383344409413211238086098383210622549328978659021645888379030166315387020442364203823350836617002548905433042294059882720112318050728593260770671670702993345546446398586286858258543248214654912434539200225218169576733998838857563929165153310834636870238349938465289352467753803143481984379978049474859290857851578013366050617036214782984133769864822028471160040322142699905906520506753038937236089399839202471735228875785705371267779274086912516993214911650059567949480062481517919745680784888695909617978170156591661035501237310735297635802974350561827902794726798147073363206597506184785874987253886995660572180873160525880006427049712506411862377555325115708047495198803829904674014642473289856957881382205299722311577199652123254187075619630483123874542484497281294147425837536067210252952575700881930146192038652757208280452249822497717871407963392168072928730985534233428651062565213786607183472312732943631174747843013459318337018257482814110072282028776898805030811403727264876823623679355014993944483536072244500961687087173381168889118680681574533162395061153714079015255127717273629572167022245729736854639092851765942307141822759690114869110157576698429516820107320246296703854404497579733463511820988027068962770821729832684164572507101731175407338569911865827643954412595542414413298495164347227626831639065299423629650402540426439398439622318614151777292103520995957686121469950899655489839865078000627211561404743035632168495045684977023694247052675688656540813423732501388464778622656277070724161388793367041079187909149216617354413038158260077222362160898661820760533176892916286669863556230594390876336886820241177421611082074926091903256501771049973558692454430466934660945042264172585940628937549489196414015875469129603751412341329188264928324675525406684766159208263307869297203466113872865499232375567223573462888281664571215454315695202153187764500813725630647902336616446715725573846178920785303375532599340593013319787746576509302505633840870104235632273590800656068996639806472414488617394780530266864270326946297594107938043785575717391556736654164287984627747494349558882734188147918933886000602918945479401362315150884404975253375352156275789291188544003611856468754316445434998334276826908867340466880419413407019149386137033129758338742122291379907311294974355752268822396099241259078767866147425671123336872842383764525229671661990544789369070834494184024674370308602465939287032124819239035204745604062018973424601035903896901677734282186045222738197505200153865722547510092401998298544171185257728801161691791710810142998620006908446311296319777371475493006234080646274450433434507402929809656087757847894463235769873965688582817339479955852267706131542985694074648198404050998194006803921601137262644155610494800194059845249912888200693516830561490010887416427669508191623485211295482578931499872463524687604968206434900064200879259052587082189906671498412109758856419685002085976922803411427122524746211272020937745079124710857949234902216678232299796343025819386618686555236123719154181823307310245382478601647579458437372145304324964660402170844850747455124970814249978315422058154877654146424752030255120182730621078258677413990141804072943919953501863708007590770870185771638311827903794325333822149572484052302147287165527693036789624212316917812792892230669243387163940217612889497691294643517206819606640722972339560888738101541395156714048238143550496803225371316495068814613746116777373477447831896224501089764936441620107162989607350693061440465650895650756475285375161023550729331462313443432653338129528034759993108132511292754472540832449245294603587107748758886218514695495969086706399973701553512096088977144512415778258728159135112580548433104375218694533818103521191138317300738445936833091460632315504705953790707229730809299918124891144647915174262502924794676179729875119965238188283875345056586620934311556233083620862784676879609437351102076665467991863117098959374103880982363742739383277620883696672420740640192411295647137341262708350653921765381523311150974180159349605095717643408279361487014563039251592412677292089501024304015858581033570415129825294146219214240713996444906606306928011910534559846824500815112767561355701759726905544017235345299440909170717073650820638267969716838627625422675807148708715695389000995623656709397143256822309586423085923794722996287736144435887421796599695720157716074654883057428280666301104067673715952593850088299337058474574364366557359702313599967391245463456596835755917068973330897247157256287064897858689889917239491595910637027410569008176760717276407190211762065003418531511176764805304694259540477507795995062514573454828492733885735896391051784225881963554953949477419503130957139290170610292802043707769081014869484853009937526766276881053269504365737030489191199039508450270979513260759692882850262931123072639086590991926650058437928143370974695422811500821538973059857320748259432875304561982821639887360178767430168991642069493588415458180086380429059496584381550226258111427779724153809942221790997099423240425339511818387182314708928859954379731587802773029350213079069805111999045560979440899479581941234591271289184845879991945961231701923671898745376581764386566425483745371888240747004036942193161638557574912805105001161326506182164837507644025981177453827888686495264101869097155906600667031320029933345969189674174220415576508828628232029114254220198536684287103479778831420695879809994667913038030274698742137186443593151453491324005082640728762437317058298466286852590773020634105544495239294198295812897986633732056701205204119988041634074102308689724044037090476496725991192838808823665724558214544072047909903343459338449918297847622409264025118143484874387042894805764607317558367394053527956259255340790343267829731928562838811125374670336644896658321411330744099124406358657811356859729382334480757422385763382660487345122134290246098065150640081660888380748614199826094209123396043192764218435396980620463192547552774362672049290356746481926483400808313470521757731212432000180151800626144505791618960527163806166515494279158708908570638355969058432756917689278948939621648565671218323587490926795369061121762561284186693768159809084379218227901948728091743464028360858094849444183281273840000159143237485181833584415060254660060158049849912664503684559067262068367886673066398694579914144354146091812757180202215105735504187951141239686236760299602650637401886876489398864033596616264593867850219213136932481285524645606481366177897755522774299013872795063207887916960826968556503990750669967191847648238032963581123660656199450557772605021439893148388934974032105451153056217228157388017355034400873707789845600310011063696087634811416581495051960640065186386057397921164486920441315732892134268435260290359365466821966830731921425513760494198210408568382485165071883976297866054859173705700986301746474107627082702130719921593339524265489678861969434248664289967021367566572780007926167006238028513682903190667790105306792050689484726523355245073018031577489207912573807346699714247623665822067975705455634843711848049258567932239910609202212070305454458425725795592840124920115527620189890305095678913554664908274888079365157399943676948839259917639187885284515858349667646360676806034054709202246580926144577771530804873400615031195413592328535392621612226085716341575780905403557752328330863023590719692415305415854552518782813291353266954712180831549851394281416513008250634615969792073086074969246730872864539121774485620335615765600264666902595424230441877691456364173098842030976645997955320286903353972504474902750160358854308922523880349981414184407871402060716796654194455927806477751153137993379100938508124623686402714182949633278163887234875688039160267477102137286299047022743578749824901016073824793506030312278528340128233284715678916518727439003478202304639887496355890441881937204507667403410470233712279160024409653624006508444688585456491787360747865135698231506157376260353542353596269074465366845909861314260057977399380030382204264883855696415787492879134987164431193743036642882782639777252385001494771688582660259808981418807073321550605196575384018452650104641446105700013442295325215917050033283517796046175087511176000925997676816276936660397841048250191214719908802649043672216278589011744430787484730729100296549089263380745811452958762276298279071418587017029632622533608690397227353184161196691434266238513198923381118873664667867826114432178039131828689885435371034834473707165124920765646929811027948497586409910264294824835169490502336939985431293569026800331058545649432687222637907983719121750052747132073925932875181267651851481941429894086522388320059652296819378302337711909064402957773942705040182715831402648961460074667718559406054599551143708587797415685407814868597333965059057564310425214168940269330602789891601758058294644688887628210748821849771364763082656614185218932662113110532024753580531141234362317878664402753350136481735368136686156193170724835061939379025221730637239824960795376208493143904874039383719597763127438209924253994502072707200952296493416063625283673001320849670875875746037361748596256738770068028964017880603783211021554872192762108440964609340081118119462187278443876274913370637358923769547691277869709008952980978236028761914038431786231397740700356462991482119989711657045598082629942624778468054167948037824454526716494881863154043005119688340299252239416702557942222339181957771526656576516936750217544468773076231571795134153186891493209189734531045065547589671092261014932274255906148013013875745779194901113517837237863651825358999930125618969784851042073968842137323351768236332480769327170267483982169312413128922942684721071352900191981949131448999563606723930609876037904877701617607872660914127183394934756659208147717433884156221338343555453541651031374776325938728709306041428332267987826968241733022141692325349624751132667626083836295779080040124277597113803773736215475279940574315551175408624653795124529624794956501015031603006496195836145750211975086579930467759411425386702514622192085956578957915682273440711643284737400357079523885934155257651355384811981945130629562196959516707375124786855441113037339597313728534997307495320785696719594444931197277171639135637542482432829280425609702591877731057508343277159555930464745162326612088567169684151734779916543897639280095299776317877752080819929540267253640035560997443579542352011640432486164819985857991314226908496894763308566268810182742358044955995370505388904145686837950696068690542494229643688656593312268229930429223291330496001536491229812487263192570762014832005528976717416576384271073749023763334898574169032064585925565963791922280132121954830757401453247973925404214437127326710592130664552790439104997372923148315789755764371370091750578212410431550061324632739430057793395073069286285727235157987785105783761780445092989570322640904818788614590891224878834267615456785452412317852436460729409062828789230859015553182739755822572307453693156326746113566192058442807054270427516224892908631316546407474311550359839607062632908074377628725761670135039285407200234247770664036285330743334249620187312133075138194814300979593724733205088977015137319269489188356395385228801501957191102226245993831688380847060376981046640511786147940767224824364441504064188419400530369817091372079530960720126034606343134054756118068503015909405533170910260585126932992628745338125583145383939632975924992937359157347232513989872739121264024361458624376796153320534389845393972902139809081544244094413230190929954515941953067816555990025678552529033506528257568314782525054030322669247102217521835022231587551369133631895346773030153138970240962507536519314333169847528140263012532094897835587851131377740346782690921250561537916546722184996718063783120194571492562340051040605250135906061873738625985279007953615037222799303658812827370872004151244952274162114858702415624613380474891609690381094749969254770771458341849466192806757591316532791955763165214509043797059977140798747156164405281770509032203184925905262331641697102850036204872379606022541991454037265246467705523688277348689321647297335050461156618022856268025307675970666706594178396201853969244772396414901317265957894387454339899497035385657815735415827469098176767459199278689991478165115593949028914031926099636354008917602715973561805273415243693306463111785707677639154282073849483096057858768554081159011496335521522218762796734539505114625362471519445120319276184377249797217479949489254430223481245953851787259527429892008044663841967942082601838435443020761610002981908083876474501562463995934062687138843715349064587492109242055045278982033481352002241758654281933946732575140090791492158864732809732892358808615550624106598574785303102321406750602706573124568552654997490150452593935915642990049146499429113323891067105902235753592047592726927110824436081498402968647808555133174073851406230111733187605197470803497957515992018204823431716771334120738347951013856678483037632648205687279255506043430662192180701178888984343596650195010787801445931837002719900928799420413069367786563955929491822768193538516065645972748645019814092549207433941856955079611294418325178238191691151453628838532108869116197394511278635150307191549886707544734138949439544698110068335657195476625130849297754130441411584952901008967796123370315697816673724571457622942854184931646909949849965465859312762734138652534514938726817133415275311694935341756923394190320945580604510417270075263188198818609001006627790112371443549506136068256697258291898683994448926787280322196799412142213397971951432963818600363742910790652386792815636642054728255251892881862638907636800437935269303462697831793958110231360483192052617890069560947371225459470016358435592974218522619819884438406347679025857749468963072475602658268527752614127204700547686488916945614381026994198234225006445771090793195696875849182806275820716321263289810364454286828796149332857451812705973113786148407112644782387420980920145346160641967730671726276974162492641729433833206132595609705429694498299294075819141377406292223393648815749898300743390325565818821935126048730723063434910874491642714111894418463632868170757759287778294169181710531673936223037868241694310424023994923380106123392914387617249060338148100467568142278305262388794054991795037096064040054767604003165978449476023380469118646185322212291661979601991600859104601585409172897885426219222504744540094111114986746332998755109178192363255778289545345518431174940307415769978757399004504045464555039385964892911398624489151214978309206952532493352259716378646588270509693207817617984377650599964840182235528137949612640731772017290001258479481863927338113837452218660869626083097303218433738041510496760769883340389712544989522203840789287900956729015227360286662431925062813515370129700304109230026380472429219876474680805570596238087188761583474031133242339145977633856905059775699108136133834582170172855171765855632340059564587440052591787220524778905232077699437156547384694360066923529781279896103119154028582884157256703741545987925743439552129854085704716816383144457842885111890086241895680120127944519888413126820571694475630868440355671519340565101724443690579312767955886374630488699481895816847674840358409366106015166993207981933539549901151724517460314963830799213611235762503071049460943419603491332767824120622144325382818845389308694815400924527935961678966387025720144972597565171522703796473873651987049230797415325319634045738856889349704133462177414900302853153053822886856689490956424598609619110304289723880108224173889345684893213483192563333514462365817055905308582344927625270075806555477738594852833921254738021947560836460152904065457362666736631773536964125896126572648311642946987461299518299746126272098482908662475132244609552530968102056751420732616123978697220217628093817939245229816401798154678253040529068457480191931206979822682226936818433905717610813295809686649110243005132628948987125638547300445335839637603800421712064036295598342569934198085152930742756456111273909122594618564471214496191634914821088154272072422454079756204712642877609451686134620597882111168956370686462066885245107087875583591897376431253577520820242652350179692500135449214587284439484844461750637088256682149275603273661320712833603083843367204016704428395481494603872039187920628686859148866622473190470323014064450895030179378560432692082901245138840566493500164967606419200294936492613128991103685473818717276312077638870040728361510081264861218940322965524986821759329164858141568156024861359700560508904091991947935370278755850854596548273279179617006950660273889450129912171042029675527287328102643521041240535322505088428292932107993504840893844117192580821689837417095078401282538135475242863690032685152337759233812837114845351960393049075079404117815360586757250443062165683701716145852072620439690561420814775072833476626673536978342371533623318606021094317251796030030907075524572962168132274943947179579671313120060747487593079255325239977191032273028700168715021954214882094316833739721182622101368568672033018973058633527021444051126626616690246702200589724122576842080969650049831570759140684255811161577807729717558834455411151555229372839435754614166304357234333693175794681150591747729565761307641930147318394539792193679824439850586743261153515790094381048860575447842514758906144527288643802341676480097242939797401350965138757449906320450538769844839200707420559295303575065761332950046515554330852973210223303800854754212548800378723963457422366646587992751319184052576944590880886965162067930381399945695693766104493664627730154969522737263702586931579737594696332615843683598772355675097810324185407240687934323614301304629518516088427747932756728131931054152914668666497865832691857324776005285055275395139000943449472892774336201300730046170310642263988609404061663370660213443629563021006166104697444300378015590556627381519254786274867001706818562501766525163103547131484373130722640702199590737605307966451465122597380173755564892231030835035009617781281662054080222840074225144839789275054398331551961775071966031568260380563434882626182919537143079537062562199557039672115662574948734003921651443525499012181069159918726471970088094820479054936645338221084172154313424975655015783456771346062696673769662050636419936923438725534847194310560214700380380676334588400871647217272483540892694496262190896080343264106391412276706017854624242776388292361386157264255585545599246886949241168698934234187833636857584280945755250155336233211088307922578387018071410779366414665349006799793891064300323460192781185326287203630670787663381331500303182498993293245237874229787761715172842666456680851257848089986661573230050600404448262061791643149900296102948268258354993305174553443470905555760349522930800964664085692326421511390451686646408081982389154238505707202732937972765294835220249011101381852607505840812269459718910947245878114062893562687648544199714659562392578461803208236889076196428124447045242168026597821771121909506943133999763535171324509697675998257013927509222370400218362209674940277813554815240116910813684602797500084845861916106252703548047841728895859165810003097458106430778447207675605680695451898727474458039091565180364580719616401996679318850352462764207197569229641591658595850570466494782187601469893535432954502770808080310073139155208158001870882713214653918753557112257606986786094925973006784542017746165977017440179322648514615941803580747439671321654713217005845752516394938052791814492947983549567075558649737204913459273196735289194504342464396421016158887068007369464326307787684499626698550988710985648070537245399686676150141429867670152506957090833419611793795085861760334687670465345013388519802506614623770045875551948414485802640671816035871444349794112019035942346883241725347207398961106517297973262437483033600592494566717813549205256779113665371202435685305569725013881252930302984620074246755822004682490641095198841611392253345217288324642217665030460716282786377273728192139461880902139947227186148274358499096859037238553513498577062009370766347602074574460914292429537879804053543005578061166331877172691341694432751849825683881612110542791509644834168713862150703280421657632964222422665778455114780086193854569817439623689195961185854863477237623947964642898892762442995638454935231260068959029681407805891032273836507491779099885118868380402024837451140972491189302039729543048878591815124229172618260042957948601928745608461516006019720520691377038383195955630068216869189293212543169965875704585860836358545624083082710435065314311397005286545527949895385112939601417642164668608627376115322811767761051353785358887421915376431782332848216684044305362664195658979156487052220053902980633589586107853524199763471169517238694221725827067382059231464447681524668140153968168079382065004399769012860637694033586678682875950561367149065797037171866247143074257169411257333100307847403256030298432886845354305572980159340686556879715594410299506783466193921022567950139890120782501768744253441737232462108729111573946442673733187076565035514123575973274043596200509235660036593096529888061275746302516307717045752115256181546727722067252290570538684572039386013097251636236588652259372927092762238408951714120393349142893345657690414495499728969984689555464088745566348714231401046987843484241917801510068161097701209117206164156177113080831696911634938350448586209845811159216286613267492892483100736341073804654940313666338237601288432501172136272939623831097934674395444585169277190797739831087052154920190111687941814559649234363303369757216640976435736962609448887439438395699434237793948207188790724207863553849618475973545650565277011237349551478830768434577602515929332024961889006808322688586973872665963113628796605539084452762751789651807273761297601041258615039197827766297920163010474229119688697733225018346518064599011284983461264832295508313254900747905227526146477586865430640192812430187025097255348778413583357236758540692894539104500071679882890012038235793427818207363385436737743566686138798017675485446729983446710094637819316854685867843510696699072229762865302077724802930068231319693682955169377594375216711985521919947034285830968065851949363329943377163063968676667257152266914653756274516274986388693921088597859623334198204121865932547936099601427369463284110616870650413439986126300653327709117184069697746367821667269869336313527442989775343090765271365329380703459405271096683116852437717919026070483779624296237172192657573375650259075364553176801626621384305980795107103095334947319828026200718839965604743320693789354465754746129783015802897992949548045496267723484089193856296195751692876753818597424893387456920060668481770030561161612046837311095424589990873602296776701831501138524135278509359643739240945258762406706136619589175572359354690497805018244053917243120276975042585274698251729034048754077509330381290507874697827981831797731319768221868850841143143856685666488690333533720159776827492812048357302808910622385987478458120945421223546863309505303948560939261194542044652288671647883169428384790990211037678372938699305574681619070013465120996367662433754780015434525376103284457623998203656846635945487953228874685562661873372917409751168403165826680431219960494741994605845463208757265956533620915897665127157264806472057211643286163951442827831709665315362816502672315836280719789503252064586191113348219979521131665583381435615875067722328968261307556023035785491076256796273955801559913796186309161748842735826739358042594859412723214321747629467120823936170143309256801257004654389617649901559206493656922078467522867403901049480476221789572146948234358881523582775580357519681808599293062977465740625432547892649620053967776157492465451495980836567737404728945667019126520632313598803264420310548980602293062379465414547555334806997738124775574302746644075987209078802931773220163257181525284668239230142858581643023633466742148097543071976901448451684507277105987232914099850751679501917088694049371107647339229127965643237522502525961316283219861336125952155284437022470837158375677914491094978219224839023393355762671815590937510779609021386540107129698460051724006331186428443958764110101710196127271854836076989162239715052165288738456803753793188042077043140784604446571546676869045093221358462940274243277953410785959297539136794994186512079214972294352292408155901906263550268104069064851678483067970049932604030274665523850628347947912192074650030397175519444168593110589986799807452761322882638541610292410490775982988714795436856167374759340539802583826815391352875195871054499055896494835629482509654527972039239442943457219079270313377025282303447206851020143484778247295961264124990070435846838681121725461771387839062728553284548241921249882173428682135437496925091874218982950423250436061178583156897579677695445884343862152376885933669480754695038196672242562131870062015284172971130820495103954110188823805635412229435383763891627305987344858792239544897158969583895437219378412472965158513463950920164849844015848501124552994547746293089068137112636048192608249275170601029075461277080475283782655202234962095840518390656840297065069559551065344371857904462904143794658092279198654674536965852983345650112325639462449121600905565049657325015601355744636475863176532190472858319593450115197419609267728198060189819443424572802328440756132861861412998506787302353841920459548437246672446568454159598719347926768716799523494495215195495428798558263605250338784208159909718212129319168105111209478720505993994534557732933859042021696543411300120809475385355940034798579636749042554818949080495514954887334803885085034564083757896251792218611639857470187145024388524470414367267660745659258304940008777862137233307423910215785901258795408047702093219367972513321777324126246971765124176059937703280956690286719550563523585626893091769120654481328538938241510932793641454519544533461858397043984681022922139803431350294861896859744578788842618057777425701124949254923411015394197982288948775330638621768483200782343048371167886925008983084399383560149326024709276993717489925632830335688645629865444688594496755428120205839173848387441106199315377088778352496162048068943942220258811476777490707964006435703612337812959014548885780089684251474184500122175640012315931300957278498135311086248836342275059473786824296033194399155389310575430584820174984419609257162301370126481582384482844181374398609885352085208927739804369805239436097008485282322173449187567396341087307158107729063476538151136334359163601302375296023533493829636705191727172822936191059438466949308059704789009275889637004842500106336663172727945215177493336413415723869392250436247003512192590005948221223437376697976312588485687548617985714434901836276629786396055475650869423724710040510533352544273361919759686396732629538860200686713508799934170080754234405202181385943606151475225049131649342732823083391315254890516804534509632904251048445166252098801929019581167983640239858604303995963083662832762435796985144479588668753470207035295421181690066412769105819453965130876688368356827203815043747478366850445077271020841250805951709807732206784867588300300485756597681413887464530306038069205904702122311047313499309728138530564275234879673736369065343504719253509529856325274338079227455570932994523996991455930987389292065774561639639809545781195461223634881919578180032814783371404832910160136409487484915185195542873600265026240826069759242667596749508506240156124885184642097191565234476267545086451408908458022710923841857052638356184843791498300212654138614256889294411286265387367150206400973606883852778655520584123737083378897185572547852299114484094317342785194911934498125087929999405783015941869381422304577935752043442939065869422909826993426850025051815651048004300612876607470211030815256369015578068654960914378953899567297396884546521621702794167426866649431772346224840231451452973669312753561244803749325790962318051303062987841301077177839463607148348335213567428572197828007653630450396293791674666299446050726699214128363116282124525966515479699934824714762039924199974222999134279839244457751169057191144782626610830553875412237899249189113091945906144258851154613259475556218649317026682250709043433050403973303164567933861497688458415661368409581942687272803772904346607285607143601690654807191593151457613977284460166635635775351402260077994641336434164552270645210813312209856536784106615738202762929987868832672533717906455404622120129082310428344159806927399926526814787203847627131073542660116420590042013341513750865898131253631408599726564474124117832541663761648436709105559736431300527596978411815514998811174188726845660571622067280906196266345507238144159045373307120057940938355025269686424393899063709145294705670364462953630939094726822509893971704190776562914963601488101423470579448318871687873553275030027583438508817124734864458167129218356337875462696520050941685434423999263750564533010578888285543921447780379799265150553700541609620802293150014645824087649595983226733962563179076226312508373022948070007502691162523412629775474270158430625637205065173937442390865154780473145004918152312739598297286677554096568178879686286307550058092377831125632649423662786130408778634089217579321016960497893716310340853496390833127724117387995337808341461078464864309440224419550407434351819020820877137231011314631076181506392942792189293903638230551363714139131605489010237507651771446628399936188934977979433888103119033071218464321248063510216656580361433190530547858095317400285838649166143829091745476061679348445977028660547022967757351343140995442937148659319791209105417027147771585074010596531312228987256464721151120043183306729868226838045808713746324793838495005316449883745547737205951706558692912281380741053447828887718157223197880584946100830097286008237030587828045821377253794377110490554581393213723188025726932966967806346964740846758363932901298031369920726527955940267784758363612237421867253464094184875375726606946112768635646491724530121888784108216938221470202056900574558391695262054677174129735550318341657510714643110108426805061846288345248435531107910202007842576247267371350672366410453719746066300201816960005468083705768770917698429204735280155601285868400174002050934514050294620208228201156508223725214900210660515180922015724894203725926980332071812595743039458903595112456066780258320452664873270275632702532807519904614939101264417405435537982387150271771168244666847206863001030478945842010517513474381439520448307206214683352103122882334030642771460659395980638437082584338575245995429385854472416124580236389357532689027397695110328588328305750713948310468143778576702163178698997102518237738310065473823756314647973045569773549698144815659637693138459063904353943236511293238183034209376713621165827368611212734320970628046405014629646214179780495543995118043076582088982584773965291970194693954150176141733253341394854090292904317842498748644566472657473150465339663675034348835303484796295488113951620356638687861988204959373429526684623353971933908494633578364138778393756308562336377852710217940704930004159979541633749982440715475648821303385873876155393311706415833989045625348529058283414452757632824443550821213672509122533778472883460348784202769316972091342144237559924148347702824617735923482583881479812385244398766955632008937411516615533835299022936437954752739837423089226540038417280947805799547687367384143254793078155220116764356177984216137291069467754022857104550240116796403205586431019323093206610247271578613751023728794506301519418432595006758825884893650230064516694720498658079365037663470394929894823362658101098612287043757428080490807959250505902530816644093707861041002191028462373210964034687889697575865994802911086735949712451379109050582225499409857887099525697608020228386613546805103158647217263452735260507667253590229673559865102116199807690679344163830935778673123246810878317338188904181662844274567170413234776021306183412744582373735466345052770086401815195618285280618571839814404274789143281077892992577953407677579169790850216885166866896573939964729996378168437685418281329361689675061441117295271997137300715179861577859819755646967109876296758296478115790777911303797064850222340160329287317623777599572288497194121476481213265300253151836595902421713417970945005320320026481684883183651715669392554649663417225351358400993844577003969558317575884439288249088933747021880245609561995623458531182085374041815415043530695971852765279294035571426602851748579786161973815871652879214942473939030528801976680528908233440055841374942798566387676010849724941797830867473926273160557119415256771277223754507761534183318117719353062159184250899781109878814796752814687968543903020197048879840942841341367816274981463902554711836780675407691020531803206696109567769991283348489245963098980467366493392612379874313098464419069803810693146474103055467643747579000886627763877230539482469459000937567764089982142961779050783276591792842358356006164205420049089414273206236201611584054016693769153007482639026683641757396324053688065142380182180391903689446488490965219712864739012600018675149672161855696222178203223250261509607406599999524026335054489173001116987665613499345091524791113613813758948581636616429286231275225199852538292554104879312988404931519591831907861040619606468769467415967948196589581506294838563973209470285881417874753694837254502809066975523188951731847797875689684539954996021170355652120768124042175244195204035530949704217163245765793699249317230186354102163076735977423701889519566496616915721154150034720021182184503479861550874644737021708349694805149632962372736907598194248304535156743133514360513607911212862687668857378283314844379583544475627770577570597102258781119501718933219568898530650822882716684914620077982160545317603659403708220768541233740824612962565890190155280227315536129206279309740017455690440424422969005894907097527167671277100108875207650534095627036680621658450846812300214834265531550614681821845897555610951444409181649101972152030110960337470967064983142625177587145937794377376245779556833122271953988985270188459556080816883358134785399885205476726849792358710602219164041730120976312416801867914982622456412980242976697177346336763314074328457678056377794762942957882245344713848834224814552859976201306178811677627134985712904836446929988685554854661464544751708986727683817733839088260974884079650763673779610926153936731176347763592646912747050298321245015582459697812360045096428201147838752266104366951674219409693200466455997913619977183971435673821548356626967017466261832896763792222907901109407032657256350232681152493012909021070424572290831466421206109374594367767853686304011584066879272577899720727388996752596969561556198964134759453899428356116763185615815175887094850238616816686322334271695894429625654296074791680044797911879207720023439140092583243210491777124837596160049864931714308779036685840489090824705503936316885361568554120939321798690232569302284546491553484546993051503047698932279859709369154878735403077979805397746631925670957538071711098730309299002141345299316054162771714157546674445112168788080380740458962327399501596875759264720568746475627676127842013705733972275453093458132395321192019900755345207576527644759143931154308654874231641602209163039405448368408301599848109395988819846202737293837804241291746363837763587576115932219915876528646075095632804950994513724093351392492156991755221847749880593713886284082824719890654808661573321007904794875296005879458997989402397206830574163625828838431087661169922396129685095303429443392286127194060247980295792638085383435923176914681936426533214374108756254955927302661107735824269503631440333281210927649342824569807116271381574845802050507295142650267175201069257676257804013553674446825519578404178292449894477941469854583644024458604907181196987847638222803126823276721971713780109947491909047511089633020423032239979141211130929409531261622608333726520833847952058934155734506087603589982417856703381794701975073112380854919864381016743053929030944818439922655306840988469573446138284343279556345750855548723022727451055021620256126061451549340227242581352111940734152690895005721955966300358394094120392043251953082053265700010037951978375426829635526209970833620724020996604193105962040713992178590769863478308069864253210827696097020312760023905774624638300832459607771118198922599419214334255507540767842710742081880367208356565515334097860182517817983249637472495399546523942144868098137696959162904900741300140240051833804801827923798975923758659177893929104812310637543069693878881701742177814097708345046283916732117744677400582041714640353149938192506099284756424089198582382572430376744022107446613785480786487384309285623582301760590358010165810648770321990869018272402721949827326205878585330899456562860261514214530803842393666208158169788773955694919349757765513760635367095916186958206185307864888441478258332974835967704117743721134773962209741268238630655253763097112521639437988615462070677317913446770480523656124809488757271967919992434365908164666275562760191705992863384102532843150517035996175759429333040652929718323293966646768971776977896127438086601396062549648935624936362671160380970882687628823636429437809628366022563368430461168538109901906507195338188957782291583939826993860644737424482774162343034386350479074057443748869501287980069872919573130089426951727412457016612518598991830233314118218312725031642773584188913460235129412983684785771933091889891336280811120617958080387230137066021486146584246303790281354141035259461811713530536144696143477568351633028300233967789263794780418572320711386507671656549708297599390158252951950674759834045184361765241223260271967580466474099060054500169927596386191293657763151481201560798791009452595119844272688199422114579449490770016616903741190480673125894211430561416456758113946851353939615539172310485530891941993477643894547794772518097834071299046659735655069307185454957919061513272494947509408117875913264374459251900323340152404840623174897902800951577192044672596214370354182058074342986749819729338352724726759486495656783245468551446887364456655411452465940025924962728121396715027943012948292298401774532358495588005792623044696542898868642173415778909886414473765045143721379279227956210928148729893222861168928688295436843601122961333129410370443317624367363685511078472625334006387723514575940336997272167944012921348466224076591938621863916245844728619049300314927245593437244352011846480060750908497734271621816800278758884230875362254853061532576007955812209297264179320134244255300962635947014591657811676735586476453333377349726652504884702827502124260667333237577867666751802077775522368492418566740605931976061169956576437568470975894516288414491212172148488737348946878525586128735611034221823056258429567397461508837327679567880586362948591035782701403109046905802556559486373592177696612153854017454547129543449642717149130450219180082492312087162280758409725474631866261222754794163630986746514723261824222246900321700285749454663279180308905095118648559785599949795139883274253896470730883413836158686548047217281800169669182438919636217861982005773268147222423810592064370147398161783329304074125183862308161982381012133843796780642483713834094074666452896496000739699489565522694868674422217957629218505489063152024826266313383596072077057270387249103651898157214240291361995154572854858476329783100973354598758448457336853655338312814482167268203441096594940238143842093437629684843491591957656284619492861375917593518844634188262330050471225325475254699831024088134417563806261816354443956684540230561826941494729923021436337291796286246788330939277559287740412374303749197018329315110386848459478371575202711684536184477453809798470010115858802269033766337674481271898583127357612803110058088030705761853493226748369047115229517944535017062943210012343606222593697276019609488699945885708333663645771579185408359885387006120106531373507967017914969224899388825884852737063198515157518230488368892440579768626040575228344770463305981300545672373600434529968559903740797934108716455856490913774717749445281003120134830550854666749784599004266422595921188971436449176822138066717151607831730864939478049654480231543225152794715607109651014064690206503865169019706740503700632541763690796059263487515131427410606550943531893800536923981748776318924169540872259343401215035454712044060726081349558228890213361755527898158283671001415109232803373922839543381775864991012504987481860240672007099591653818094298077435952372058722086002144942274102712896526898270971775975333825398012283474312233038579455102124541696415552969194330778455306606801316170677468976179273886536924409817456647321611569682183160649002979633742087764328561794954817527848532963213482118230696233720458677410061568855863673659017583132325506328402277371720440425135547769910396620720608289229813712216762727692404688501337224872007443145227046758260698560213869262992720702010723098051505660915554274612029514862790673832701936843539603675917180110166452883273254759021871108166220471579285254012231126751986910928252403366635978059521822167205764608637458214071239730970014920313671622113632293045244772244754576166649409232978946552839082117687614386343980961051128061215849665271164342635604250546834131485581967842103090822813547702480320986598180133880046373046771258200470792630417632470902754840292249210630237401803747722796657731513696357275309274932829221589440035381751616399558798008962367557272074949775539710916198426541818963131048936268729363374439239066839286548572952086795780051739927140003803996767051116713698785795766243454896807431612708334855076659751551753142395443573031711135457639535867730388128775014863380758003824858623818443158285110464505967222556252814465229485469262705143377514787745056510418675570620396397148608634930168669477211160061719541888899577342902571207612087730555090457857533660491243958478236049428805790113427479193904764313335541774944940866470689440683226895932104442652462062408509777397022995820145745845858209699873899842595460299704082996635285598430085221030909296764057490497105017844454976204838272916412417511313132513863539856444843061714448884561188493166646146792326999647621637032414178805753964221992382264791849108124046473026804058838392717686983443172881780170646701144088587527389608170480371182432538072137177171470117417186141720245482022801049651896457100944796565110435013849738994437533791298696695577194929821753412307189683745391235824968700858527885388715970352055749274512678179145629908804700528925345234743140396589166092104166034257268783604556804770561148411012859655955974674285155049311777477262226967815598267302597705447098358993644508526634658122208859167018987059296823169126401516276147618293757763136772214702732910930689326367327986744900383817484444850767063021936026754063032360250243224132957350416909249811156817952937317815604778259623368317358041173119155198403686645534968390915068836256276517558611721120856286851314404911088883745453821545073668472394018942258223277089378752768299890073448237513409013877694043666285279743988065020898936944691173417377052110265713671688519061254532380452572247451913432373933520927807156238765806609919013045792480481690008152690884345478354069159912475054575269664629859977582133376588278844177319175235232504077487331589952306572358805823650011864224069065694389384654571288785342960508459524118427073351464959843619518284007543562382296742965476773235917170564315581933338234856531788109634664789987823116851106584812292859349896620028691485020359955068188306003873164132314058260337011759444628155174682044872609330470682187198716892784643279348200937098229569542845566762278422969344611468211642994999164342453694561243934808935505857928067854063732951762832056965478313530812721873786482694372264666434677678951411612824636475542769163223379645762261335268709284888742705989256197093267553057429329259861571901101105106411511134492370999717240483163190966750845832752194276968096326577242729859299430984348064682609755712661226348631904469471058080713487908405476379186279095741809793324016950275310036895803465147989827004275407834066514787023313546779295269399745438660882009786468407601633388021572284959549630741005876376045959194589883660260479898781472445190340324753711429888166362779968875298676514112658136887684882513774738828583285323911256811298781956558880144805293752482267400757371273727074733800223423485180968719273570191506521281608943332777855813334607165704944737061566663057338492613363719215533089769964840897016744102320526982907280002619239440400505137539298176974798006537241346923791352225481021278587034999115604715089886961049758888124251464888267338276158043044462522568433766370120171944938393539803737047763797088257468376464258303031202406101535122278391834487962511693912170969392757660317536975405401817807812371929646701926263207213043743530166870227824315502183381587396282149338470607104946423205918702912553920270482231335731630104879975790019159685061608652452341231797026326073208760405048198515883064216948210646585330119354894191286189884339290656865419369226418336794707284591315344464465780685172849784138185575593446280128348612776289118547072211364614604926703670935943124745368916255273258114158862502431224600597789464319080312536361495784240431537100355318313619481709181219951873602677380959592800559147047059684619391607433327759789574078965889814264777886364641683653104833154816068124367720664355719916627981514082327681605396978187806703464486161766388295213566190482762101333688343876052634233277382982748972077447104256804091380930108155314188310550157161273245372914725081877508404334365653959607903964519919778460505503562474263743093793399741350777776384017120008548650192676102643250946293389066543885735339965861779603728621122981886862394898142377866942669941205184139639124870998988012441575625693252024286883357814086209365038696867533211809723740541990603242213710650149967454530165778507476654833616073171895471970062940115586083163854648715607458440824493485670257251866805084154126961594111685099938382542911149419203427540496555080402276571811326369928093258291125781301700977482605078532696423811324611836510497307901700593190571003835979002458359678974218149351363928488106784109835127908945208704971451835132007284262681333212577479436365038603607848633053373740576056797826642457815830966210079594007694660235938004329785255151124095497715159378987505788593329859461866249888866581446628787707215896422641733079638978380861501813385698715308771886937862889435563604534012899436049695892243119501264352732517717593971299693738027434167115027013383434864207873246575610036098102900856881902422386399965881021596615394587187409452567199523621515328598666627103042055677328934071284142805717266590213542049946055014179301965782351179569934992068750512039744769034097801450470684705817848447694916250669291607124246090459838109123473409727087953643656041725525419989025794824307048877630005542398459770671739140565127391637896156254411656332283201686774461562147576234506587481066330411481027187729182801502913540317299742272599120605145343542298386168768689729926408801175613404287805831443276033674100663580151560220063551214152251963404148552631524130865830316851597416223710142381023904572655248202513015749479877191389355183011894524096276100805313106955401261046397859376108205454611261310325157016749692279733195672880780052328614140442988984926914228899115856391339418253480388524738354735492724862639131153511491309963236271109631624102754713717205290424038983584282717535440715312313064794842330399909619706310845492550535132670867837941899767833253091220781582644367918264886145814764179352621089899738303371494412056574478374939581192878414451021088136741170586260197038958032966820051716161325480543401840376154769458375635460841762851041317348683995806447210905236015732113817592581046472335425487344445880543180991131979394719570209316638564420149056851630111033876432878408513128971046778645087163869654198799855004029893217883218983657690224392989915196018877042927401536033011581774613187983361935751172868669389727114606692448069108472655339248548040712497715014698216514364752581432014610638766952905160475382418357748869291664826624366546389958014048220070467207584007528510669170116699767779868188468027144413173307895728917789928173202916017090301129852648620929298917001921860829232467587632559296359128599929718251849364263056001632315160059828742675432806011353705773516585970051874039939801156097571954678762765603914457423743185725687260641044137482323220501954461350598758156846692454157322866649972859038083399623210057442555074992782369492685823640591581269840456994999620996319444782239962250123991807690392379878270642940515209023919656391759338330406872045125983124298682852338180997334227974844484465617267346780687700682017557648069319340077776516413060103214241422978581622440100688189816398366904439597291436437727853565641383862660488111023838756495114062578851253145260668029777272582552637239247556596442222662362440850537538187963447454935954133040776544413157715219027472983105955917596262088141411064290936718984339310027284010654997323551894018941871665477327952169423150473921311056500081713074211316259282587247084534222214793283315754624935911156182535193141036455195644291200211736709949407338475901729627216719190834384164815705377933185460852449973431776197896971598237196439441373127773910442186019587745101822478753154126046644510759352740821127406371944665972955484503987390913361445077110492646575489135169357822058621074472384374707900941072220217367644574597932582831811126383911462845561748733477114773876993585734219108878559858698912078246770250666200998465148822953443090756013129401995123650339135572926926850974003766543516813540477507496254520425185350560728327220087381332898099770625278642280753147907820585078626686827937302018538380438183876906993012336095259473113991018318831867082602737787277391673726835495843832795469478814399984839032027375958579083307221355275585660737515549990380405534672375415887468103745508146095500641729168698070425187748138114392910801180438890167128333435396050514150867037119811284854319338048034669337153667283873345631294036564790545363527809654266043998552990343932165522280000173983560934629312834150563594255226335733473727725887141685097083148153215312531366182973324720317692189369873078693325748035591979376331547473192893225621217326973241025395593571756615961335347521947345047111980867841102779382139895444440543262357190180893387607898879826746028199306657019813598936543993384381525077456080394924161721565158026813820493423867783996417569130224031156784852966299601063090574404254605593197765509396483065253773680662734987005922939354851028582385043402052713380954426810431590688458256865159449501697835241065318071561184894033834215021941409720833245729611761529423028351034965762093819607936344884490383210837588654198331663308584921584647947743747121669303185501883655679649263554894451950385127924012897625185535739831835493909271415128633438168785748913923390611279718378359174244974052407840988257313836666651009502583837657044505965469324470922866304383354188266424148507512755992812013225019867313724639673874857578168686141408006556787515725894508096594582669216320858298726252916409026679763964280146491053930888484673572403765462336211809617332608421135320646243873770773701863885768931138106584758925548684199519695802920394752234550062696607129564945428931654299057835482495927707527401281738145706429345689393448584643250781068042226389819594845843045851270289973428700295384072691431717376966645815267324018437472732767034017321306935570774579557051202927735539565254694745363311302766473878494720742605553304775577631193429189564995833854589162342521513567630583362693413455474778580990168672003190978885777303439046950310136919029544056846910046203254822775862018735345259319109459848579754370069058027762492985694223793150050419628231755549558588755994899180432534807386886238042592384503403021067490809051089391167330898613810353664935396878152903954738245601326337110455103908610608396140471205747956874863836745145635527658446959128611704891646187307322647636859084670568028929752122332974912176105451649563611980799445860245491932594715394918404217499691022806172573546436051520997674087071997877796394027084462749855326599654009464054517777253723028309745233794625684199785953894456366053396137280824292499625651624637609231424174436578090319332827750415179114888454723164043941994019730227290448280599413519997294941544120371610535365333310728395588010982061881636180398097239910648920313537841305892868255845125644050355619848450518996634638218088097579670596475567687157648667821578602389214484321021218761846967223971781322108007253325639645426618398893344696417099935461019433710339074905964976637836389979177413492926065735154481751144887572777110677712132567708672170771687651584727638342877963791662359665534268410453374509340352337013503108020823229251115398369737548909032303775056197956802982683187112481663885415278296375750912954361170221310033114679633464716832166079010068574287305841856067464633473255474683768152739439381235416494483185712701455589420834672815016030954805490028306669892700369293181438818268762629595946806365373426660158261938961779551402221211932536104298258754098579629053524742959537033173309139123642307731075607167003901519679043662840501900884643054408261665935771208364999257939426934785888792050691575053545566803488357668576033817012838085628954043417890713712027025829418290171167010329947913557760316785036375145776745068012009544612677833302032855555970571660442866366739100793848603581833798869270397186839802770715868959360007545479535860055804790309086115283812211794976316244177401054961718600374670376280996926986499359971586303343165455885676967702373283840458697531226871794652054247136437696604317561012172431951219695901781856858783574964596528873492607740684172636693363085393384335273176201669843102013047255917712763581080609712761960708513596090273354897862346794365508142769036260888935620404742602532259333708630899385521414445227064028677171673641058724337410108025613256482892613364956812067438278152662435250247828641222116216139415233976316851345830056324737005862256480304793918942090389257084691823073475482738784706392859335885693746008536645956085908270691555574963117679905735132789033929041855364166700936777642692746003794630372202370375392058255102390737224137552046103620359042708131691593766248750928792116416621275809224364718654204655234280861245946829160110416448571351140839032047978274364673060666153264413133054103757821725426044926129510028056567479260915267394100267619376001817657748942613165024575194812275030744707359053541082253980347286315384836435497907638797039591856749302098974115595154213526947086969448775626445627065780185072775818639682554469422318546256726483469731019875248890791675392266978097731146147141236039291070877511671354310474863717990389486102812403034753066970346535938997653603589015703996790347718815122683695191019082673436796829515170012789879888700071587583696499977430348943785396762700432057606624732271327144792291875414193493670394750602276246628393227489686234540231640744676787168383508506629866138936202878516742099729234559720571652657006332818531214204644879299825571550072836137190144632015950113169576522320533009936200229955276962347857115991787371128207907043346000730922880897845841410311195891167557088454251914935651062043948327979638223608460485385298240810769868460976372489574214074009804603640593939774178501897499297237768544702487196238020629005911789301312104669993810794092338498726073872250012754986569612535490318605060702212120995204431057138197616172141798098476031012554279274596306306934916999112770396182645797335521956722686407603466748332006708760235692020976972412496039019264180506774115743296095842029338504635022297880052553841037222686553630721216922396617298734314201872396141579112014013280644573798042757178686424908923334664455866358938182086364788060412652204235005415272438362934631349980747704487771701417661886083717168046711918609645275766755262273497971940542424635312836781846631126801169206622576779641691820680484544914222445287771443200252712423888120007114811625345581339188151540122986286983439081543803059559524954933664351115446664327396020228991011812234922137787818675909724606006772597432220932736027865618058543696370282684748096949563093210122097506585509905362095808825494627631471594486561212981606842891108789905658670211798229062140469064362314456932743739659052006989665927583635331032033855971681013300372432625818055115430257588986143188414002997141781333888625406899679381189441302067106367200575397944957047139750852512298501401588919352426113732164592623347349039059747483968465526286161089096583308921666575399819336316209384928482111039313143349647121415853799114837550791166623717274837577307398591977619613921168956116493241451501447711579081509706816776747585685991014077807805019932458552143704795098526139015542193829441948241457030169381704276229887676915560046992810285352333082634626068205981756072149860127583451104277126877895313369182257175219054188773378416048676047301179100863324064740090219386056972721948215307789930088798555455431040317104766709895132549929437285447700685837948306085222912632768624387580572312673501973440009908506504979715321505187550005552184238404309964449986689394290714307203551163580190045699176733681067794414966046449618988521664800351598169941457092782688228475820640837505208232327940675437552307311548331821933392318794502269012615614501527895322379384413723857688594549155499074531614188065682400444847190764146524212572223428850291042573324741869737908958866182237559216099744820427215642735127873100397901252338003611516647263363859695411126197393864472754231519514861812611080071015173159314989690307642981641230998547702845962861089395834623969468232134827338996006954812530930077968666810935215154180628248447210950396968873089744877227086540481558493379469318588384306807432657907772758311507542800001544994020218713341271003301111521045862777037080311253795055482538207998801032425708598160045821971257238996371215326039421877170122284527878497995107842468556769150872814960643912235966998302168663132839410315958999321480480926405877170893840502240325879644962700902887336248492079285180811813298684173320987625698204951955114561048350151723698738689832050977194710859013862380422584147570566613600478654197276384839567267874199063811279390144265826760322180613077748617202921047876787134850513734586131025626059316144414560534253061346519040710994118551143109883960970606478896614269253172365756077096234665969981931653654616896160338715925432816391149417169913693573266275223377185834669115669755422052807412167837580989987268923949132657720809594802193014161070169659969273113461357016626889853368429722441955307557310133068342491771809793686305755018108177545058494293739396842477947987906149325865864583027459404628754133242584032081840504717611255859820856909921855909678009186910944278006329411310084193940150766435865891724390807481724990145788372741479270191490638181876342692868872406595082967344093388917898260039905006604800890697989712629717848526805206553710114412702759448978109596425013305776155254929195142401926963624513011046130127358108653691497704274785491995554825026241238247412663814227935898670202871268666232140620379747739214598968644331722970690192708320467788359792370663201350947330765367789600632192994560226140669632220391484803887930719767304149498283890289031280515056733486215688975228051910820915964021864885871638630359878325034006919805431497028462266004673600295638549876935120910843389769789885687301722338034555336256575990253912909297041017309518823534006918416743136185116750124430710435669081123686639042511748646225110579221308819129666095093830737845463446362309437979091464864792221057230891695668489693030334877136097487344195586500354128529851611736874662555561330050612525494948648628085953147323295625076894659433523333587231791165713037039400494648477371874307953414562559337245441642880913805634147956095381322041361306882778869081491636027586232975706341607103196618070113902223478267513888321472814200665207992975593354265495814583864836014377925192009728874212615160192497826294553977117284285933602966501876265585247461281327799266434388855742014159002695956737191922600089578509909238146627138068165765108186528184376835057654168937318583365930665727514718383938798225778821276317484151790678739557937986715854156593420517607637578475347985163862736883078282119181835658386413112203370354918770005366499256945584715473442060727483458125423188328695198880606281453865859062133524215423969797796256295807366791115429410070495110235240712056024407762235830302137514040357303750028064231806813497785808442411316387668631051609781403734381861992834750970251605266629944619353163737977477634132689610132550258111707749226869868674145888580615742534681653026064496567596608499634675487034939240224404430445457406566548344684767979495539036664746985128030685281455841192696699596432811369268718631353737878147390036702199240758713707104714289232971536809225650293760267461074110088555074525713459756899475047917938555713714137217430038096322559091970294286210150405097490877188314750745249170281136242273622659457561772595918167792527925672900280233648611068913209325069381176479345351653046612730941008221848326407828859573402658998170403774468492736784929294350139846362626817610041502126159724666969098388939184568366666253530820797425976271309732070920128595269658955722441677931407945272989748334150150986249166901390723334270501705491307919064186083123645330411197719857181625575102098174064793814262027564340174869530192598890373793321459773743154493953027459948734924078846462512946116123888607165296159170167073446851956866640094866232543569906417456502561290255400176825979710805736314877079430404786144037934371998410542684442683505624032375120931148279261715137767174676759748357006492464257635527625467799252312393358513288472232954632245285710186487994196971263585545603895707262115923584393722574942350976457712260492359468240614032093460183877409883146902624113156350081675832728503752583604339723955441121424828925388826381109696081362283075793268043804122871752080755050487287946383492665523760075849871185678340973538331749056612665400683285595821074860982957143491689080028153582039034780412262828849110285407992755837195619970260241607081471829871370366229435993186474100925613203661497213981767169107783037017209304630161219458348708850099763913629602780503828995539492263881465193101312650435006599427660236564899419980519245541408500853734381056604309550946372603568237081944920367646572561979793534002168983738396736009401514552948330182175214526188173024364158400875809942359021371696681459724298485546399772977699366118406107161878481215324444331919925476905959308858237183448608350030064003060374039280019309762956047418492997332912867015735368857219123856167885764988628506258957759790985796598126793234069073878041004600332740058464869994529548447345723858818372395731899910823617034841474544596721045031816572541963977185585505557740293885343022897902530144451252013055126677216375663432450912429576339862339467593452380571259149009094167408060328635822464041584241040246963666475707669986491967685179336313602743835397639405530922432355823050700749268808831292134994460099516190388850939130852543703281912084129023836336852393906977237937965559141711500973778172142588674293784499619093253736681392308761025024451516553927215111750817265794092577847255951789733764688559766705686139055832429738825709645976028219153340355177560624222587840791857358250655425395658383811244101205602106118870139739643323136242996364638409579621361175803465242673956739703250391217085481632637779594142158657218427202706973363965292447556712674679432514631946334922301538360876302585024246408612696784296168414336504770175086474877617328758233303627502333808195464072417432111095221335942567231802670014218337042678116595934721489405076675938790227393116662248609596294450654213758685041840613233395741133838173512583466510427535433610310120214638824120182047691777836765677863494452854641890196127907429564240083491476100273016753405051652750482322856424367235775178406976047372305363713396699677038805495089412206104423997455871982110685058417843139902097935839479406584985322720999024704385899846528440726325722640185383940175883102492737710567554221907911119732196728858477922581550575306112613367891345024282411500334471355158025598917690204679512197251272301115902148246611496953491473942205894256149272652470947648115358718735165460348492693970069019470851682145079682134580744438948020356493170953984770366479003602704052294670619687836711118742069354872414862698417670609314300240001117816877696980680558923096807030677220687805161256539603621825317012626602363085271464744047935167229595637115996450366330171758866026300325940993890713657144210046056999749668106391360649261531277959283773356011339387909403902914030754661498528528359430717510229545909045747136497581299530234865328370608043172041954194018236233485972609625269673944833250419200794073387776854059176724449715379547067134231414487291241783746257471377869967515828127143896349116680152109432593810093733375317074583760260435068868186434242036062491727287871431989334927407562959415025916146212542291623668697083198780678595839882181170767604365247132592552920865893851862777847542590273090263233509366247692551170635129071682410123414197776009380017442552319059109661952303721632070887554277064021182122697843386786738799070825291811801879761647330674878775877495931563366130691993963845270739940179272618055080160003280482387048264273038982425176348196963804196617130189897591884102299190591316866547628652818537193880690897949008453128562063831191015931001608304407394259409126341927610312775803536567016117180250634523832468968231001869323673863799024962031011499682362865414259557643124686443208704714414329996660085079738743687918653901122337960538050296821778384191885295292164107565807910538364314731228490475914583949130692591147522400545749283105147254565204206557720831602056393802212316249604674128246801595953836349467076103182182293968183115546084852109375779766683613578636715198621101418967761295508827014720534381635545527186772852262744354952964167972233749448003196421785540326521271881455936751867009984303391159072050186858675065316373705089573822910821159742561157747191096255857935919430113396237053061042895571150772913541831689122216268420642713080693668154289671189312302621373692349641100734695237077665863873936170024153595488958794199492916112165258136923190945079688861839419831835316489523254258166309453568840004777842788898828578255077351838373708644583110256748508411288445319962876577599821034412956609975106716946523006440952475126080297537182243201804234127183783465885546294492735462342677811527259134444540112352220154757612590387891666894119443393309294717553768887417661568393142407712318102454582546012004619699887186319288721411580211762849697217328547787686094984079830775150966677777004761552407846521140635314298195157799131268190300705747927126754906495800994514194294564483772232265210704461755313839302311767268528493042977550885973684642075566281814292415729845741288762757498133895294422221755696264305038466934446540189183223019013282217416758543366228924127044009551344407988977019722536155199057268436593625617592588119849010124181563401775256238974186389704303042048308040514919593482226290356239601028756002019470261499748585529002851605121753680831718876777037625070703462834495685462069223602793910964715906045120877541101063085433594731431048303229230061590979788706643686829941455950914663838706903859016599481648008832843608198726292850196221049106638585778636196486136011230534509570935555462303676885387024552269913762314570401447559134014312711442309095702938841081377929964566735572197093333386669150269660895151013452225855519757515975812522835771238024373006736619438078023259577429230709892248042205291960232961235435523205761841384412559360947357898331312908906976812237578576188846280054918935231814895094056104553795264280978319149135084415852396215917632038075883320904548303716930627285630674891494429830884693097451865603679777083623798464348066701984091629140323937784214805103481940617120688447595078928100335402875511885463481218421915741825462624353935687013484646741725442960730345967821687177660069413922443882718110297030482603538610444040390545738077743115281800388813340053160785325269812927263920697856353992256717769862001475036360997634529760289295996606832079679523328513749765167826209338729453724386645160606678692964409807033071661146050548967974981933197840141412990738686275937405238565611189928403353081946940826421547963952110459191274577229324492904468872717579206090982811927017556406575823491844492303428933535584656468398154999220633391493425455510102937530472263090389093133787153763616691228163036351662078549624921224768708952579337724328049376150979013541443441621329993364843745923078505481379280367924678720190594714557366398104265349616702015929217574009595648256998451767812467294637591274104820424782491183859533867629407394517592034949407138163519970517088142135484837744292641164486066239038532656506455841098710082458670415377059344650141570675160007493938767441935965627022015016132761074575802250369172457548011960990231869539058032649149354805014920885347015855719115302799173650974305379315630405529691639697780158209762659537888462509865672466763116345391359233231398997119033790047447057407437580575732505620898984087537149519436686991910641390899099122459545907551675358126477369210920824335972939228690409347791713050544983369945152464436600078470990220147939984906482879754777799809464172122370988173214973256871435144962616531635727563220138083239639681257653942356550664650840788735292158515474899834036751106234760151819184818324224570109882935747316039907112660331338606350287807663375768615464263294689514779129709283977804225305025569373285732410584718970968579799964209519459728188663665335803223922445359219593396544687342380508073531321482794959684112280010365063617705484281541400639371653253082767585151697635822137596516737361004615477487714723976981373283790930460463673917505251047727553780908296931698498139561492769056858714500361985854288903788199643463383578901976586829573334724389676672053286337307039052358353588565657602038860939828734048922679545502350522105766201745685392864592349395712444803287945897365351003139152949014243222525623481049892325105674322718343620977472048250456366304231247316093406347635350681927467580636293681982607875048628649843945010392100749671159447277424671585032571146467506510089037001262668253427020794654013718026619506988055469097424504493073191067400887517083213051275281366111793933511995160150975527024871582347848404805201087194658918954998827539059495336550894897908788947917013525993796518388382195421534532484501667553068266072585579015312098233248305107851395328126954892689627208188230819407224441592198341588519274899506543551836796520398586481281091753375612176602411945360886944492553895802918372393509389949529359244871000707972981585372932276483181692660001403757704823232301366893965497969560876920466159212764207519895683595315145582231783631313928529309287372892422536604129118620882587385515517890772942965259859326398223370003174781589233658847023112876376517955939702236664939662771725961430078848733752434726333918545998209535653008150072471320082074378663794958380895655914157307319341815742863899779998352770702162623093457626292876345547497265247780443526886178514475872467808163716393714517344539357110602997566598263560493632293709638175654578484298778945469166304794216388809985660654453178196762596699403803508777415599188005746274407026309611395059266576405963407955813500928389388999991307241482851670173662513350626244812164247482329555468015344088161313914032485332864179652900503634737519105417844108270110905416410816175564680196491207294448281182274400995796684305086761359395638232279909444100003831683327376872053688958636000336330974395428819172347849321703655852872581619239180790846510019988341025600422463402425253492257674244036393820936156669810034844895855969564516963613242107584795579351060173491027757880255552964576687314025677513727575524998434484214942828990120311503149195708850160312568684454757608127522152615639040790627239850351285909986239261205368865429794258635000829928746716043426569499466800597887866860999513568644861649673319765275068643724846492179946469354215164912260125458148591665427965291086482578866666368775844718684897601363342532601492583066620301518522683485906751117675591115023000492053106131430817402219907849689912410077701741148679490231362481795293012999013132751466967828466711117615524483408986183650534799638365585742243521192595496502317414825113944912682704264875996455590997613577023818936365596903306029520188360327248033515472254748435479396091658667404124260971000894266338884453318649639024199978702865238782933041119864264277308991757628361852694233242031600073868699000202894338336231567616437896077601364948599019012274692767938143827016511397098637970651668286891599488498450340978610592616149769413586203517506972506884196708517187100626856222776533335991647562226160028335729383731627632626790629480559265422174221352968653842363645335298131823343890797981134919805666866408883698901556812231218906777777497478909694827427948660417975988326868646962455783876030169430363693550957380042950223814161358006628862875654614291040467790252199707836345688755561310216497841389209341517963399362890039684572774500832458339252006773219790228277194644085357630787393151451204921904824620642382006390341073071479996714880646089141956919037182297111945015980110538347984925238741577960000455743440634392680387630481404885497126254086478601459267089763469436242378175382218890518386090288750623999772209858643532545932547734892482647550193918413637430108487374285821021620327056905034699965159324085762254219271368803684573354907032588877647224972487897401294993980906923175524263559710922164009308665841937416851713927087043609161676012927724372840957332702100466442074680741050668661924783631088821934141056424053095590276027579566299547518846679703838975136749619014365243496559142110380739809163985513022877994127926059066280400043809669327217313737978213826529294391338664643812201214976026513636648846741482379297604797151840111280166955627546174065980835568815450393386940401092433078907736250716410644294684565936516986716844805374663832948883867168187002579289901857543793664216656726732717048549056921663591879835567550522471180991392356981724129992850823999851287691692719040074421856919108665897969992184217702693303860324744690776004394598307201753328861681768407925048417697422799349690134797016991551274762214678872660200998297512476015965337836237587058833707000049572168808326768731856069225363524554236690858233099461293232706300749024190825994614308754304231762722619977210405424244035249173438089844488354532288178372476128231489661431916708862396251137464043174703840715894395448608631000808558932461754792401163920878604649897094845051563823522474755644931991497787180077643046157680819789626272874107403317887552437825624014197281541199355064402192788397670102670379162542497760371370640955100818708240428617052575410269989649002140903120015360278583546020233781943310788287379637625936632179635703231945812427187905577920026480429454198984702360028862003659887281523272495359566102820626743656963305143557198095397842432094573148785272033106974391441185375491075976382656198332569496318919483514775970048695168403258681951455218457814564662792390653717432547554084301427910091647939773333462080457461561117800917486329415107544982345457239792230997705823723286733588149094460658642164607508735403736265404370395283222510786450892360866707634254801864188470618493059956364297295811358328851594179559976020549255171144496271985332815794136002484658531072793742040814783488074772440724072282960716448073843796774017959573258229089571131166646577290586272310995304664713034687883019614296469100306287488829942460222164460719889626754057366995001781438099487706670573007389885142360340580932862666905769839327859227693548365873535872954931379595527651795467039001901723923597206315361006659292252783743565578898273329866905904469279192202337944090958978893818429929938160935592601014511019489206261979049827032929468899280421199379881265908206131810846417059761135663193494152154890915236749999044187689450314666308947265852588963102731746289916803227901301753296278425661451822466325795627205274560566586183597561589812545632032516350519219670887512186746185927678878489674939461384688512339367621503483464788722188468249975642960097935520075902362129831752648200314084529313977756134918019921312908136603035923169919584784606139696792144629908679264834698686646979619852751110066306672030610492984785549298031784265555889155742368670596058221437216114472496010895346521266580615026973897153843940947406869182839399665957124724635940648991160406318281982955011280729095064820491225464245140455115386386214230422432055643312572073232567260398091507238809882152224644196217687071481502836707276043441002948297928710338789723299605562787464088490329475984602969871339236449029795161089064095676773613016352561980860990720001569103698074000317319165920148692458925414380865544261687516540212762212446435630019504293542452577510293892341982130868239547414651024054938088294290874817494366999160722247575509097711706549404049731662812804283155460135683243337572362761133169796042439899321659491839223768760805366244756572455548979971875870259238508148645759760657289866222137172053552132584199936114586490260174223085773693983800566172689372571089589306871731118896956432947338321143021019597366155380220375140418167348829230042576978861746097892948485724344125694481066976471880006363192747630717650464092112613588566939599346571951563854551805318473245491199497173047069452993857798138660293008641286385197702049521901867189784828421744889437434875830135527902194755055798197830773370242383450550965552306665680947670651923113996338642664905009013418720344738325851634894787196874790845441945879039157533175264075990967848387251005528319429091300494034807246909660852637111780277937096041089347896759666502087072592252900780224922114581949860281805216133943887288651642890438103904505063918863461405353322461082477343554770311773911885405476689054665491284730802243494181735015568128208899336307205366931014523345734529094253464659844992730990638311166743955817011582401829247762563018206094839011308011045225439696270987845269507085973499788907725556152521338908949203246230590550732854514056488902155244794744652590953926104475024132252977025461746598942728720085674901394942904182381471280405638751542163258264546100960934270047349626738479956991982735331221291739905693536136666999448368464172048614675422561710010159816892218906524009369232381909822205940660313531766742474288363597008633327356735690560920367230807508621696801565056845340702167550597391169087837299094555377808458486542179911437945872224862947310313178022433462582120761230777953926305826842905986631180160617880274770418186559623583001469419033331257233605338263968691284249172519275810819869847991055225743557258182524539985738528541748345672745541177480204962642281900951044376880930201950928701282026683904160822596554368668822859692528796409789255827999177449317497909084111159390197400455187368943084036795381491392094004216612979662015013097623593143096226905319807788844964198912511586058479698973283277689931903910178689729135355359055348061785627820350054951951173004997300029700518899077223800958431794572683748771302242211357239066328354726881135639027486723107766044030976121227353121456838806060837201967990603197865231257856458992649288288706237907029540027433365204230741683426894364264409563491529767623670109854672980057622363094648812895505239024096884615023128060662706621660384820268149006094286184724770391320521832069817939278512046840812813527673346347645702598628435538120682570027319961362654612235076416494491079991274688191632461693289736618243159482148946262453061290619464118582784255637674316374211834561483751432277444148361866333631904536812038264189119060079340089584132729071053597410129566188232029790866429856662880198066694991969915036739381980649201895960267408365764331880076384502518534116504540349835896403504742196286287013228841129452039127704102738470148488745717757501807694250776693197737077954932776634358825879031913117428750822019877294049203970478247814957234311586689489624999614530436029746817134300691444243294573371070597739533578596806976316498843279301223763546064990551803332211105572745085623819491946820160617914011132284709760373125945096562481458479216785647648057187143338094784450399171176850985507441665852996267124547978413012917746190577739504879618477822647937989502287878724108251193076619260567384188644530393908832602958569611842706154505655249104539264284449688304073567005066287561857867647218900159821539337117072568276441752754856218300890284346100789898354289610833612322627230041814643090266697134264902124227402527198574157279431950071817999899564933601629042007577473837137163731364373035498644045129557686827589853520390684889863144812162708591466858301625580050435980036892073325548207079974931272651572425657547474598383828162147693492278049724987441628642048030080942201290025138161071790824453121734981301348887639422783984408631851950090119293166247520319670523715515037034498695395706642918218825422513682395110850814719370236219433686486294569369859402044584361594085961734111851586105165646374731897002351022956859759159625053090064773649514075689915351868631452516998773883068953618587151932559764384656461759755676607679457208639267044102740692722494403771507565011554475761402334707627937182377928571399314077053585879066923957838148173937528548367909952797309633387474937393277370464970109442017931193395917258805177253801226929396954524188793966432547671326378428758244594477413267874237350844603351645029496261019977138482411747496615718119047646163000706595907686742873706526543399576667638335310097744558809918926380361118721210331731004195223390583749785353648481987238951362714831141168213697719416343691973917958379124868749045819251469307894717925670010632621421120135802500419760175819852251187966365989056728814699397997450518954740212028381349761461492889684313128548400039865433670101647930184035759165809198215745686387184946760199991181498705867084839015839863108650525402310744365459556125930934524836553603721759917359621158285416529759176792904783931266854854301644760146779294472352141903040765928764258378602087142420758770200866167453074567511496597558014091583967186159936313365819329772542798605567563120035111314023689045259230179692721448920593211313495583836202550533506645895661501512920638220627153095005609492593074727406221231717408955453506278811928469501372636502505086041930099015440135066497784745542532759467468580533918910190888398624164450587090769467302251001525649460237514704534447476034821101387647023127278816186538287755357718325985149681839728644750758663185839065806852320549204074681931490694831872305484333666766399649654274307860972957603381301415680734105486631301968353652231761624108703759829137579711810409370845525701383661426024619396197955089920796387997100439542994530451365305925272390766482332477611410076006512243600292075094900046141386365417850619178599565542107703614382175456378068133898234278059407642232874694941610596120483330629320046735819625134804442399830980157230057289228953291038212021922801384149877988154575028803609480734879398358736491422054227197615881282317021282921122990537144614781581430977434554554417769808803968767394869868460089081766211780782899607840818266538852937565577207840957790955632933327121178589637821002355022474186822900609779430766997145726005588538267705007141876631426064673489588133465353380083676392275368487708845233155582122597846478264186302278066043136571383799834041785850696680024881748694619556724077536453190458646459300376542277660233850884631207544708194301481869366765383601807141704440371910834836493875602556101843036680151677270333032549027915121421124319201052660833369618619410232692483688220570827412656931647764994271864517389855006320890191302209827484253434481121293099476524791029725777723596942147654608202172973470136348036386868742609168111813167655426226776973237022129255377665276670327852287271647653821463440535360502978573819722017362095182147552437958244884137815235588944577725539420164465151149343415041706137278785424755139439711792524107616792788583781955968063950457122104838613964544823033082835637693344532220934377431791732746011602148478811923069484924978673668755019735115255381276994138363343732439873436397038999797438040566010657058264352883726982700545156839152642590849053800439688466420042253385086301765967355396081030327879815111150591687152887882047049679947046437501675340736706281702639395867281443261864002016777673870424604440046877492087083772993570391116768714731507145027522489478874262783398966010411187577836295670401198222946097948795008922033345690382904550044591161209376805728498109857917561253123742213051169778808957344548575158637566773351890899996663954018031970115875511232388532444291227737347686679434048661857537765524582910804434317977687730737045805496602683868607403814436169501474424142800913802272909338969807062853629575843834560122118313886968951279297147031330142762336493459500568878693581679750943426830877623667916613948432192081657141829574639052560186055564740503509076581842066060128751979302085674565723429928347251260647294070887144317595419892984336041586859639105775503893651125532409117724733100950325751460040239198612559224877931159512818900724378742162882714568278736526707482187153800441294111074679026298934678472136525404169283123337661570798154668812873497176567347233147183232293915963755705463021414522816874101956615743711059074319216338580535458565814223413522015293070412036047238778137310998220989315927593049258147663053243014825819853742147817979561252825388158620401421068816322567330962055034914595184142644768787243628523229408032860764672640359563845720090929460768414182104481236188460449112470204860902079738138808382489533107281025752362031265476751600095568384502000895962228667954138566011339557536212982405901183509456649134656135908761074404301541486955231770767964316461322867337397117102720155411395639501192398104194157829899428061617874004684751542587289963986439961977397344608074342816408390233409214103656621814035124103960509349381145426904546459381739376938387015531776756551158102743880997456391977272155509944586847867444985509615825153804421420796380597840326253067050557526134746270017441529202885007473271327292497054994107052472479531282284045988179807971716318743038692529993763410216295216457792129961843313202018823789833761542083076660464321117253330894811177571116820273219247580688818126653890042156449583210406539657969375082630499158347069213219737697616815092715250760811554427007028628256511809803390734841893446493410504226845576659318140197956915224684656342642711835394518673416475273148399789694859984982182947350402987775817435106532690131859781982052014997284590227439197687320950596590082897208535847280861494396540140307353493727006398853204234793568209392734868522433104505171753737406520415055300528859055152521770280984103763379947973357307614126122258423660960742179727046724993406418328087648028199534231016565311571181464343332504787390824523910794487564514547607543595273160741118588935590456649995997357965830723387548296003283982553328895906191053993904902543581753268133405307759080609593550080444982456920385618429570391768274428480622587831493760710231229588062852638423952914969055048832022303565927273650103422563198454172521100081782945624224050965908211485159365695053486848131865370930505400711637771288883485625532679851701062549942774149572292872643687665390060643496418979416415397965484850339190465677386524631613223568636629642883149039310150807696097234668213889811806865557396639020146411400823242852529683936063849820488886193848566692649516596645569134745384119682209143480232838362163052356393412821498806759865157180613487253611091707009935603685170806509993988155929927288169984324897563185986758097629305370678363274004389522346954456097185804476201281328023776451724048254768507445312517983177842907000682952511361855845224330029685264696849883791051541157657938746445766150358769995006999571174104052509077082628730335367915709946971769591189515775881859508810358623639843849637266871133759171445003081113475642437717939914036440155125176612116946396244482045987396670357898404274859539448877135623961220052300975944250977329796040973944049917242764621395983528068518522270066238861518586273081751504003734095893141484678132958865906189111133094172583496582346059615512055558805802138297181108145978768295154159752837525132095708117517756598782982867709761468563781605217663070824854018890383032844574507308103558209721358900832096571958621958160166242577683616814123675758554771099832158908841411063895525309453049398632061821225967893988251029280711829302997466657676523899133910018812821251187177275064322961370631959503718780847761496326816556882426050926534927566026284081338088953006582500769444087716842422826581431066750499779229225701415981331450529769850123455092742216344843706516566192820892271641005787565161892745554082629924427149645520445288980770625880674448346522367868204709070315720203915776329166052196259719523867433419831033304643956153613303531931270773045512454350616689188677755628918127155987851527905394198967176539004371434126056166651819780666045681608529633325485567107107774489564709375478034906797395669009145189161544895776136676922057894668404551036168304486040610120937075817199975424000357795891751129768288638153520800473202471641189878927293729556959062704006629726617623147258182014512490930715862560274439776672079773659405584293184791714762093184534794916893949955791469429411888248114493658230707979497733759615942533238060306798175587561314441204023423566994669611285541467411476428115507826232489441050863159697605005025412694494380218099282645875891884124034061020082067000402554515404628670845611365666289836983021806552960956613294411702247018196936479657441895644566678532324087675610337500504437300571953313181136758799666009787546915639214928957790965555761182958364464349815067225382971948816008720751667657526143449111222958134699084178676523133599638853295057456499663914165299902304234738764784506458838766421565082962521134600159542551713818375200582095692530832740509357703064950593178564047867855256427881436306376817865319945847018782311454897100531781653349774821756571270366934170622397578690350100101205558781003945725654879395369511799138578326224589789134866594623183447612423584094121228690031051672598868153186503088422030991502354108093253488902595098624176962236562947103253373179819727304291473555743328773609851170819740993765820867008216872270297644946149938123608848875049206310221191097917915976476601685468588811901841960723187737085103258098193855662933502347919044729706110854886765339119938638426621740945678935956222550356193006280095018168266376945504529568359818744344006308455514481704354808879986795388759532145259841473245249085471526264580975113608914623587346086857545790915643772463777627722300165696114029936386990566471218836328069670794647478597840401316296490885779918429001184282911482265756692360120706369118455112982356036626102189991762874653028914716926429644771035706489914008335518403079688839873306642993068093160708356877387054339895082857646359381831010352602117599218842553592771867659083443138938689708293771072602710133484482354026589930274335262342534801838313556445448388238991537876678632726220906595547854983637171575185822796020000827246126494495478167536064931913985096221926279801459472919446181864895291334937153701824605446855932454291881096860818726129814340117113667377670238658321790294128008357633398886282505812033448758837657673734953248705597990215592792050437699715818778518290373423698977107302895614792191657718557538623493978076350238855308831361831430114028123399518567711353583109262876126935789626842945832319964430377198887517970635976941984211872036251539174007289502590909706391604775442193066938782715674193490248433358331769441375889075239369234905767251940434913327156082311165903735409118762101808742163681061485572115109611599945705263300099309220138866765612128741314820704188339827434547386956607000152167283411838098713201489413786263251594937555924711580372670139179382167035418644172516215330568420350511798435813631368036515850304327107875465342822993700266536116124260924805981422846137046635663029391578950746748885815099970335730602917198177673992872087625557536399951826639857068928993678868539082096341860773529861501194242305577531055560891310281917725917575107086928382224288523807071479765626484709247334976558645928328288364374189989168042603572947746578685380246502449247269617688187998212337652719921953141330030922992451109819302084396554585749876791132367930692216092685335800371568643765147376692622505510738166742350173247771502960994031087341743996141447110309321289969966680661716031608181313519450101614617168639594428481049560121641674520063370271441351256282323005561525326990881493126428072635520119080693929040539571119372116665496276305880108535375908883191038087292572464643165730417520487705738497500231880639928994425546651288975981644090635570391513217233201413405088788055245399048077104551795881742973791807436663598872398900353239351559920448290751584139215286850850628232648153535075154289505087645252594276611497388401133483951765560237174662530638928784934583193626250479592403489578665734357058032272344592819150082109902156436936126893134709522872580719731555162179959547932815436004959267961546597189474931445992449698040060835054210775665030590861950469553231656301649218338035716544437133401931489189543646787151028743168079589021182635358419517066430021358920000921447606192823362467047546417245771019239567386581946794836242942208979835885833134133441905771706630633985922791371962739039599998851734746855608771587980902964437043299931902041651515452404280137290422145994512860819035899667661541123559045192676367248223374641403916972506410482681778139267031785342603832078150565949805400818045750386799486074296456795075104975301358693962510178287620374916270046560987024538981410842200537638345332390717500325283473922850941630269879432531708824573835257988855207069331201474946353348043057318606449816922912555674781059151745770930932062488007913482245066768194251426423703952082100079048044414925388066151617255912293127427383277166456301828792490461042329150076169700349544029641794457857928869960372629831290159393993527433608852357556291724789662189512026945852003369118279304606335030451984343608594261741120121652750980523689876133639864079797864414220807812191551141245082077713725428964627870562519600383857160530656799982846680715801815287616176083488975951426832153918452009425574426948485811048300107395264046286790045580687183555571005666454046940346638734700373489102438375346662193662287507870711227563393863760665660489383844202500633966098160173869379135499758243812252495336245885684831040278578501611624434160292617983389255580101614573796353784907826703723841553371756516246195825166555123042933799876775339037326165097039487736723874640182151859756412484021098334987104383773850284992676269366582760104675229747418674847409425375157205256332334570375467330460704950418758986390282331095248226906539671511542879336715546600636454249006733973576263453039329103250210687719869545513206344178020668079635071143491652453202796600049962850360686894651336885289022914263517635232683720105128235471373466910707226351855445364942165750560461052225463448971143450320790624827201894221942422365319751099033060171098282060985527634669581278230833909085445213610385503495730357475074977751638166986725099918185412840515927149284651791066389244096291297751368789175524601016462810839097107634491299415030778607030652484305318782350342192323111642320852296148135222734995053737889150759809568811115766559640705210931330600223679860309906026061828572305182594263816370177871390319775922759201255592896639478860009059514233068020760725261544520257547398470462595730824805865716820178937796221402505023106336461638027390633336856145141505804183556445214420989616117865021570148843520553945234694912493556319909756181967209218416629119831458636348380127377241756175451978614236710382546551379031892485406194939680539595420056810737225341552119559283811180491511838152462396253726346586324780985708149538460841753665764258482576044709555684855687681484023505334730319582532982687947803956185820635977458966841912982675615116129884103570312356566587483086009166567545687352644511996868954664007713046139512446916978257166747741306861612604216950672552377138293152589094066156432652924130027208242566369758795699877078364039484785082380188758318957953679857397933167260257257477570671734213868422568284806689760920267369696696762518051812851196990107861052123260135778377724467142043305204809952914012241972136565878336497081655300142757445529986742836822670878676317863552724009323978267237103988266043992236120854174893803362461606002709240492331064104389675528716516575072144726128094824913533543437986881088857243104439813073581314376113549588513781263143432051566720170352106030141259075016261486508470303469666644903334250038332123902939845832842198529717346015797239193856875183997428822660121118913669115160801968886949371637621529970897926732263495110665621315743782000589100381244530287167863239534669348691457561371036401964499991135239078154529214483410638213424030005315166217350987602672389104716507789294602065214732284596747041504180171196355983859751971247183007031639325587817844754172538445264117470646918024522062665543766459833417321358160237672925505736037685597574947504081364571358846404785161551288554227455571914716302928960818493029631324089056198605639277007056702315540018739613602653800744309549797107692080169424648763204064031127519724824147282222977175861640130883181442879051280585691781060568630193587175072622401799869617216782460314887733847124421303532715240723103769755950920717314737096402872077463676121919959056973649100368032427315738099889411123174345170552863009777649261407445597373916050109048952395560599581145024206572683469091874420065919348019049834130133332245932310796054112755815996622892438066965148030203220129056755269622740064738920643107733927961132206943711081776967308694321300208214760844413984412464221564892468718230849482564494536479387383810447994417740881533642883804524052724146299396933801709834741478709791609306791889856479473749497030279335945894892732423706196197973402691289254063976470971155923047611817960000473092726764705858198531302612529590941829727585108861233477231483634925652682444688718031914334054675444602828931926508751316562478294155717670166237903104566965726791428627759705801893232615242790076281010616866557730598722807827930272671530021953357484717639160006425916119072000774448363291402944052887001550822973886292278314127751051545855988763932642941618837236924103974845211680779136986221553269583429617718798232117017307335367862178583397321077553507582473743631717350476853954423833112926615702998350476904770220060278185351059770717092381258774823150752186266016462478519528025398147859679586285425757308982313616823173765255185793710953091918848606211270905753473769976119040524933409620863619931512332691188470100065124599022746511451168777995928790415637675178230004404299337697260327303767907098159842051851166430874067839755997712397467231584520505923672895313732817105848647442893685207408496409599977242419783086852241374788428682269659489733040690540799483489737897049293166770665543469836444499065085383652424841365778404728819140809818362666322474530588010684783470958864013793561161601977257898371921528334255351662316633808640589427113113040984472729389987349706419144293426894390529185937862106823368060459177532470542658429295524379253596934611749587599772241797862841172247898222418383801005691166240433328467030138242871478649156163562711365575691434459421181982104686176965064441784856377611834581737900053823772633436607233847019253707993736801157342674125852927852254884005213470017201484638026307326730421531306085822517143466009320801645967113318586735509975755166827672317501708584660195029994034681161382327810935812154217990135305898382331691507864457714855093944617208844991353430134988984023288526653108991028940963398611282712831559303847433276539533497450337978415355066609586233873271173616496027473953179327959488096479659324364536409945921589444852347721439667601055025478782237807697221469487779429370550233722482434661946975531219772814916889075190548268479982198651331267821964230968913346530912393524807630730169099878913646004975773870916547751189440435258650681915995017699534444791169713414058014956558812469372257927821588718217542955340056863986397539506925419554664134320236550109846686795046069949460668911121932031638071503653022415179773016938000964883884267219896690568262891046565213687920363044011299992234127785701616422571355969566005293410240414169355506031829256953396492672510339014771541902485584641718389646795770776803521442808523968920376511482678314929988136659922648650749412161614397400280785766770825222716206939773835836711342328442225530650420210197042973146839962698421032461453895670110405825767861992470054140594167531733268103196855381769155002470307888611020471236464711914454566097615363015665804840326385710676517038381119714718981678275748305902075877630043268712782944218587740954002922794414031093640423162677783015321019862312124895391953580087850785613322030473349568398648372449023625717072665270538419572735179796918898064054844596147186444341894502849290476486994261462274966532077403021003172226126890613373628510310959920963994330039904492372739458432377710019050170691740831997540386608803301225842409586522231522317100932995715594794853518963764575167443495205570274909722827294952561199255161266079750469169950402618827264084812984459444911256684580687053542747241566188280020440480162031652408063996234590577040575091003435534912742873291010099534967725041118980248981497888917533053030812506910196037989404244824213413455766726384144710894508623838523133782906733091445869865528233718751837517171849157925917788276668553183738852306403130126530520410275133920320528295600602292480224417983005947262625604226726291604605514036370833528473841074459964764093818882552684909623608397455602951480749794087726336623515956728473320923177222531553024229401377201344958563580644777402907310133009244823897100547094904832979996762365849729071743639192657006735732993786771146813308193703711700379315771795565965532684511446028287198853593787598813737813954793363717705055224019456021900724719747807169670546166022022562241552448279015914108078333405476777558066648908957335095165706919343464598054155780376361300798005284185914468115530816374457366306917980357977889824941919941774539701658153510273256681279925134516931086927567675664535141661508291349126271631525242245572542445457449473332120880013221763513333320041660830518857947385114813441210637450936891913802505239435939842453710529703368034513447665382270084103050980487221817338733974566944366913781648451147227910948896487801626144368217961190982874796221173675655183090432851630714508488160080000186852246948720662299136529010477258743000694930541470932508763696998414275864440801160324097694279743563381508288897134857846788661776072367899856754311547444842363771480794570406712994683058727750547782296692635980904073682869102787068905423209093823195282312343836513776552146645451396517260920803052365420856585754652415128364589552889540956305652234625118604360288241354335107789481699670652125463698523471734972607179197792448610998788095050962925933831022847321900929283614535843186535215225717528393851730338263822686055871287065952177707094719986118551061252266294917773125164253816643202992471441129213161083835798399201597104839311361996467807462076230452916985026690524194217522909342997780352940008206637161342055580034579410308525511072033802563604543166669221952126136856086653034087934538895143552410398784968478852767493017804235143483693932363601999672084463299772532650392630914596100313759096299711045111671146121420780950121067481995987209504244880390833062788099613915231589893016783181933724818597458935457254365548222447321537562008998855154725714408038016573901064821605096865439450319434075563229152012075584207255935454528285967347239980885650757493623413683981648673417861472102996526648087775163816563901366945805618286476036789697999394497098394047920481882781204059699429409671930311395477876417771582177999201321306448648411215188289493878522995476805467044146603397140233902450011044158593431224552919225752633987689677156913261325764941059051555304048619519927057711172952865835174388393297806240479768366363797124270453987001063701498413063659064383125652091551284484891460319188228491845367175208728205368320964263496413503227854758312082873929659515131195267348505833559227929702112171034370692590538152906736756419903955234157703298280332013294639265862690731046721561568953901841986093141902104788471472639826077417464263191147771456602679946128668628268112498023848747765712918975948654754041100229350110152609263593806565335632136107336448547811337245143116596307251370929448279997887783491536035021199076943696039079255645363211715472427844841631491529665830730332269460371648500196036720637322384526816943273273735696394752180861182209176832107487031197305372120545584207149916296242149737527132651464895650961212334935056264635554820262566943449899302015335853559411151385225114610173171814657162446507205030827097132676660904920596883846200556696867294564555632184067405069025928213678695228057484584409466567179566487954226918429105640836433782242900325983051825666811275030925895722385974687306719338693029316057173359165591655960744637643854596336448885509276391125981643494184280561794010979850907585689431027134294380459050956862753127428187707808036726493251299153003356501761307808532050740367129717568075465077770140694761503428122170209119893577607465286477729172676896006722488751313092159703086341858025794057099195918884214593717809497090222640238178913811056911512040917357955341500739757609063827565474172200169544462922409463853928484212169953772699492712183045759860078110059246866465064693171302248012541034371468896803283137032388810830712730426167239326775141991418355924346908798282230054907204098259785381659004434933928970805619781295699604890178273228125164302329818582553947175801351410033498611698333541919851711827071686887332697510437639205467332676426774967253823380253928742710519473308077457267657255840918727604547764198184483568545605852812290685186987773924436086741979351460669450295958977747558778953422719401349590767726559603940368911745716231884803854040604947442904353824256388556751525935247694469248494718521386105227790493795390162137849687392174533545512417893665761963352498174792349523995214124414433011916813404863758674364855427439712753905141531740957827353521680966007856238006225478767529311262326716719407247107302083755514922289737009367812736495707499998806530600844257520261138995794121881589369792459696534127145252274080392839669411082557466597123673920233767163566137181320609368075218017531700721971094900331037944280635626107039513248045652306700653541614512704869348749417401365362935331192619290978293612861566058131215995694623865039190107964883370009857826810638886395377080801901337006071268647613780709939052080306730697526392217773439369903428065193495681602244802143569840567941717496343041093121213011990765961406133240891330621909737980312408411448337038226740083102951456060009529592903267553207286189935799007798288918266144861353482700326040540409846877746394353653079480650102679586412799557084544608395383516098346457360053089753209301339089611484637633165200267556401195229140008936886606009576575171477777092520996608965639479178429626405488657694480146240018537140153038431844455302166580376622616252771875036681283626849882306927410321805282054198871667125738713446670611068907190345492377938484431835764911877805003886108781597896221688947767858334729117467175834411159951009251264105781734272882053792490654964127827269213453031450530915235796214677732774591108634903592708060684350640522040855359171234286756024217664390410667031534891866631137588991664255363830436171888800447707607222495917028577340597537303068630455317366904948713989581076285822377923399791106116818014023796142660217477425953628287963024446379034708739224106186274372882979735853548616664745577895935875234893134974382993446801061198468861827890665240277959051105244494020878949869632817884148867021603834051514427673974958950412311993833956006232200043746209345173624469158753109411472103475679964316778564989273798498081955869062168269113385046630659577720018663585759748004140043156072501564181020348253222811150694366548149621794201539193668300857094172703238807299269919911727292557634127890179856665399740732557819334486524747570640798911926406068213270497984541192801987279889611788821809004646748736017400324633347460205286453446265862384867316508030321144151036479347702532423584768788501785736456504107280177563505217194229817304511293153708288923349155491324880943043064546541041954710202729672869133415491464910202703036634919460665058498571834755738256832554646785974896936803635971898304996984418881824268524381895655417300165247163015581060539659554369402031283448463796222379600079435605738764845250808213135042796817439577642158525267459193628641062982402229049905782558417992012114176909171749700524584080086926379324844259918075211788239231980303405688361590652353268528786628052444203026753717792021892684384195987537719734888216521149023186576456245664439705499823721421203563330992853074849714327841808992718306322089219607673566080049962480216414086688917862770886070535660452680699583789217158954227175975658383313673391612662413310231983781000742963789610025103023151044318717062576103730951042805915299760434741774574400488736542800119601498951824998242984371014800473982406557742657030294208428749957790330696370739799273110435399388686798220047385113692044269727087348353493868747097116824054183723583058945716704125079428644672853267971587959689710778856074302574672267789886761420561410080234267470661804483085219178771514712379013269492797765380439883187258182874622686876743432546327402568760175714005088539150927729492618633895932808121918410571685275424286954739428347241850967343774631595955971684613846930353739183333853526908467208417633629236527044602088822633560688654121358946625651544088970678980578356967812403382164792526613705744151981582013252169427587404143168192000111121894486223978896964422165611059563842357469107782629345741066835072806788589906607173170777871295656329709447160006287801252608816187758709328009426270744014199406701239376194238909127011759877169229822889970836679885805047757486079985823097867957383399565785311456164955062298867525223034402476495612255413010038340331207879638317511461889355012250032740968858686516963701706197583814149604579444111577963805672110439785992343523880438560033807201206427546600839277465465187378244562952376085236962019472759845581243213870634598951328362413031862736788351343763989424664791160506222267656787533495830534727187293275901643404884570311708770180418089518608680078762371109288262736779206759430991725509228319276859646298820341514004628337863486797533607087302901598877803344474604084938591135128254417001008593076025483352795010275850250146081244055779974242353994141464131058105837421684918958562717244154072488285011745979702081467272904372655847239253187474127183986454172675190923453016143383917207702319850049820855888841668615557569901587597049433946546580624242430977121948821704077650889565614841834037600375110024766659373081079150810157990341002196455467361583124179008914621633976117861935174814299907775653028330255166422672385633195739500889805561038796708151812451600877842181764871998774344970345878656518421295349664215440040008696237186168873104850880438933819922669861197054997600077647867398740619816714360370887931626099997778879608963195389424518112188472832466713383118966039744537822024691204994137087360512335863523455607982376170928684848162859069171423644827442790408615424477783354672310904811769448918261868547482910867170932044871366544441382790669543961885613689601967347273893521137740131772450573637296457825021146507243416330339115308506832373957087324328544624150767596401370563389784070218995078842979538540999803102167010604749547607615725977547693566762776426430628411513858651409039961965731289130375702201871203745173246143506492750251365608717346733899987010144615936412623429182864037356475580847555871888019997125284827888807902099740882316843084700060806704988334843394588026434047205171565735488443963139192286816045994628336626668863575402759688738343075576382526028950376741450083039651622813226003049505654347022896998510488593098464198928492993916055000177746924558144138413371002905813747440401211444411433764758185654685211194287407294674084371960639333478938612019460484457060919539988486971057152841941646419531920003289530217047852767516754804466155787126338347663780487554051488785432626488467930939595497061167679749017627646898138620364581667244391832569341969638093481513570332769792936988050855512394488326937070319327850199482191845097465658812211552172727158927722771514897787637785802135932759560218838179475906206841755269162564080010489738603534814452298913413256966322201981073457182667804034120216627596822932119848730392655013560948255234436272891550830847551365817114739506507605935171165851430464963515054001748220443566177717764350426157234954751847117729433349836777196158913707773545441046099328740155473434671455201372105690318159989577932333626936899459317756506900362202179183523940297856531526468578874865643537619794143714377462091537216324376246381034529540255263934592975104136383134038654844607812746414018274414601829171426078270308249221213883810399816483286831553756739433759131455694105955353750071023958116345894557018910828249621282750691554010419466928699429475246087101668496822851918475464824605878343574758813927741226024768329000814681440308711428050194169495470110552263964362446784607499685103876201855664565766317461569636523761833438186300746032497907377395037692526313653943073674538020363346620977053116394038253905232109257827734797069110911266020095570403576752310209236308419861411160601439580235856251361678626078503617073303643827917264370195249716707932696620171994625667392956432921784040609017643344986772633847757708323047793931661870686059784911058806524435089911736315861244643539131315286336895348808462731027861180742270384621094820879785365263561974766616988318510505388009268335252443776607003934425240783519772908623577046982983459743199006616672827055033353927718585509402377894531173992248863348180323379722219624809065271334052897063762989368179384638176568124830503838392182928700294503357109867153885278654084471435624593648561799183891773245987035102518548505529422165994182155692498819758736704268542925275557828213734621033228816515998955474773715808786910314799077291677891725085297011940424371538047509277720878610924709113604020863224917108922711653220177415541025565596345553163153262354597662542956647544475812158458956651202339244531507670794384242839956656211494548967070671141184130870525366033371593757191468707080832770808205486602596796089455159410673700466944646007786754995916310723940975439615212212703890973298480121353774545350535264245370203767752399155179513041069251916330960845216085200733154193979777544444896434807141783821865517843903709836952837226438700525989520905509948119638193924207979792741035429491895791397227729831886406703869629995706878718808679164331831801615698161304869215281889701887970956818552358842089847612791061199181912095909838087112827945823699871463659985542439270914704799178072940723500462599118543811186135293858948767348071555086544549406597502769056309769531616496178688912347409509778455074772862571310050133702546947778595584264093992807402627073285063131479775319800337421335513119992861225327855421555669372283919572514205898377385659616747716800662232605198270908971044821722226785186281150540645651931506850675124507692769796039035425182231943187020646361128566282123506656279727397985782262307381778090845340614096029406224863684422333296747529883896828526697422607249957517563523003854337224735154905377271550554897111439969172254875269860207172368897616438316112593322661439241013707500895983093080675023035808824824061362581390664202771383414986577120267188175180034659529613870269137870902196805315321736543961188871055868575027581120713015755598112740274207946477571702310771703242083981296568618412832367541411549166021473909160630763880267757052497481237908513394403435010035091295272334991564653127995500607281739220855662466612352589475089102587947249495570707798786503920623399868211627772093877455162761931310822423949023114683343350348963424098844140050275586855974717144372907244593467172219342449184425525458329461861880185035909085703583156159761769571575299509477193939273902047807525762268327595773799949622397259400252808845598637884910432590688621123937240741560249143950780012940604869538331043383637018162439533199017319830184022922439580556875415614773989889941039820862075957879371147329588059423918524813007766159426104596694974362800900223506835435911196547083908097687965499660268580099038373506896230800078926388645350646064806700445079179274861373749693424475804803893803122065489131046411318241746394948739911231919547542520699580629996067320955906100855323021479052252101571704926726860539979703673387678808176809425386602342917984672846832701918366668795675756788639061981606364341581837252910380145368990407693418966790032947465159494340201770335176302254243364354357256284151395049723175757834881011949194816475512328307173677879138535356591606415903123395770801652213617730401021921321637752015550117454085246027429941551462629534070422207847564537655179217218696525087232123158498496115138095970565257899263623815404436114722938476148554332786193648532550053697267565886189866727237942779005839144601751840679387708913928305442003413814654947405327158260769277911541637276616105849239863318360810781822307677363920533195237768045577890806808594608477991869107940149312131835982660608004766271864610692566703673994939220707433115994299570417231801888946832741515111646026046572699409086296524162150390275888060573443207720523562521622604497270946560019409100613132127893279901821095502778602422022491162357369692675210706217138164775336139370326437522859843351095018560076928012528284946291378515254565098387561225882547753748493879923338212055758454640920953436179548537310655204705294779594481515899624797420671731257263536550387921225835563200638600012303314294586267259987388398667566594160245799705170781413698421270520501438118237964483700347163471192823479249289007112095778104978100877550979019186888476394426049480889205562079192392025170263949178652619625306372220508898150794938384455068093419897493848047621240477296964688125185596846170806182517885394794350277689152896835804515202618635077537418267155079138153015212577506719121076519431132814377271565444424630464488103495776515046107799067565387891151690543687778064264437283199061762231041071619452172651189942245595223260454584484241346473646330702363251916462648121063716914550604064658667562390802775744792960330157625968393905334402738386194376019397186934583659924667777223356888645172908475905008340392292106784742862581474048553205613882347761950325462364677952428152759183365612429746988193860061596398167069124631628779831895527003546254893407095508495091251097936792689113610869348490121145361093243839349533569060999391835859046188664109626133577356228559673937297141680033793876541590419738349932127481941923721089291605526726697168310460003701338990670659616994625436004313677407939944700573397359763357901339567872693516381573364174442214239998442742251934227837104887678911327016833417086591961752560176775190791577914297021632134357308519109187960433804961680003052623749734806360993043618316448146149723156725174567902953091612463649611823487052758068909581872679291158825620298370468162979815903382820231564453661599853155042609339505569923486034570567058987644387686390128993270287442600804943369931309753546525564160395117435804812217718956873458848634375196852531937289156859582092541663374417266529228319921001445324816236277426600164731507514378172789185123323783238031327912314817043422195836019799639717352316365164835988496576119945134531012689703932314101832455509411222132214298295148425956969085739063492166896010538822733099253550393899188047164877640827164280643776701123492109969195514432451187787237375221046825565603268393717244798960633884755543030057739467192508879512591378644635822380783208165643748868117539738645675647953309942430692383222789691935874154849946083470834240008275632379732393366193816897646506384148706358180760180010861951952469483970675652811585388073246453675783379542256483851182783143033355063594147271416387654036474481159961524997294510344799688486613284140783142683453971993773160325899743799520105198812549483337010563882569390279300003330302161051733841417617576682928631769299544605999498133331145656831187580011335750760558178451907852430178320806075731895703616992802548645181356424795479209853910048312630174461713999193516126363325746384450001472776900468757946122308227346724285843319175477163959089051102711897589558275474643234584206338902389260017250043673865585921530783714876409374925153627012887461494464659944848158733302131493756488254856578727317656060333145616675475935052380095333398518508904751550144067344451194548284101990853750888834763211246808638375082297749376502584698420055491954705452266198843863724996156345184473846387775465629930958653625873908374178374596342611675164385810507937603142428310927430807664420149095263299634064954806158093278366334187447267487368112647902297498113948130635854629438649190035501892080657745899850377130634039356970578423316734203362461524534524651806769449818681095588748831015559545610430781833504172288357926143713699074030380671209343797885098919062819505471173107433743974723408310182137709857494882743896991671240221533609079751209130607274705346654678143660419145695829115832873058571819779109423015849456393366072410311669503776365814625050870629670230309454896133279358410670338735184475765910366141503966006867581473447488041175187643682562011545405705045393873149590583601695859744994691997300511208240339182531280609429050943132257474603587455410852842641456152870195585319360738514153180839591825634549079830657356971358299953112176519510949463512168042938549539724302044908480495206481674084249069305809279152687391574844512398080746763663281670348192691774517852771801436019822194304787454823522816600393183365256210918631952463506317417482303076250462785775638886544436490773990211099903911307306032051937776253179668253580624796756948939581078933997921295250039331306515013675426448969761871899340141010983277012545853410835767298239881908815215527117347361942171614362839057610298552851608166911683077702159457405785529226943324381857851528574607043665943752176182845006047097171505889707964489823487478935850139747546551714654235208001616416369019760791938437508148789645690310418452130883499949147729089986961278763817048232248016510287865009956768428965329460172850681561747380434620005767765995109661723227643934011155583666071673086114205625349976163450751035879326992483933938813003354212855975404639271947704419892577160264103928264015950652115773666382292764812904596260625337686505784741683255562012191712190300933592756469834374030953656311764335591806988227276993824243551488561388294131681872257094621469866779061899892366497331171659592295807151186284110218765892891357574039956794541613542116336733172422059548389803785247026312619310850219208905688032569336232825755929864972866482033953318698383681186124382497101424773549119288882660710983141007805030556664390915898801416097588492294162662035828678818087649819152278938632367527913208849613884811627492476765495669353317509437284428016029525895647888056898928052874141555951490014285157638268621669173157179940720792887697821970605925046871114964475269702085072613641224991995614557513599356829560411601451437322223702841902613526368271108230284573110183485360262294891252991315023318625313021551322243444511867131454730048307819925114389342525723282192107958438683060306507510014156615734037214109723833954142317772437453144662198124892548745052187094822512446745801894732156952322972348625800617190513659988370738005073189418418161982892725070933225593163730780813795659068618729918273428472173938455869703548447089536364902490055784815171738206787904260757023539244076889311727631728252805429785195525830946502315823159111931681843858298784990639775236450968896462226106451509842014608425200550758259664097054668820911763255404723315537092457174024283801723486261233552425328805280412112443977617750305117088547591217572536523278675021555190574910432301074295446739704229943524949278341107774824520102324561147453602773167428082985128325643733836785580315224463531016296024470498809867299368030921233874168274268367742237186276108141564317922780340747806418788464470343549297609052740783865840666432338935173696894420872828790503936390566945253582596487419519514077115261912521736567674934600370656657348726680981833201998109615242579349537778695411937099156631379546609861425588070305422267315840953995924780206411173955864721233653284471351986665847701388469340198276759636750089141099008884920409671483197401733779462793549347161379969759546320338438732565634549800663965418583084258862590429042383307229586298664855362464974720696888123454532777125813112149975713183798990775823676423982105853647426216688527550807268885194948885026968816374155904436192289424392964618614020835477194178006603365588266716462276656002677232518456008144316736723281261999845413572510449854338903362121142564107539280033327010934347622210387261002437475827252594763419864135346103825380641567446393086876429592497562456334399761078659361691958987033829100833299467184035095966109436988076897996376253450051569073607118730960543335703343813469829583257347335665183381729249121770854993122599182985085009520073072318770311408745269504048370979829512834794264476913790622460746442883661172817277075139729716036605090141707283677768730020926391029304290027784203232596836800281593533015510917802894482213979604983250565528343574691863257964994221908128986148156909653340059572645349942040023786043748588483848657928929059881556689464985710841660544121584334736388257268015290087097642695624263053976813016470175611691846803354764488207861494421323253152083250576318266914723560859534989569953192866302532182538659420581759087360356901057887050797596981283725915731717293770656439184340124335067151887723002426419384116821057005889640892884365528253724107370727081359563372824699492886393306277274036430593498154904217141715734187834863711105377636208882529200004150916797206186604315726937159863595191000817126052332943321860016710755077960842484147153276637068756507374892207116181694331381276935561094666022511825143163939873334257353041618859752582931896955434865531596232869207781876922597311211075508518410217408470107774530537853880258112190039830444442335168825419963230814029246363172029412281396218040953326793463495550278024953610228796439738293618528235727969522719964493707618649901858749604775145801136699883866203214124618729750086906821300921794451138766420467276123145210220993905476765100054562091305955281725026264512146137345851848302205440558206743535158781599816584323519707112978421972782310141208630696813934333515753491729144821743282773490451159380930980654737104917229257440967924517797461901923981836334290732560674669158445596625723861780546591684900068812135174805062902847035780004096532487095894017036044179944243928882179573801446444564081989065330746957281110423226188997383230071766815111950523537915222663604391647000120347843227930588207478001014120487625487254440184965619693638914906529459195119254357469821243254054527526344040308224962245358420714400921371814478155890341807952563091553573471930614460886757181785043707836649375856749993205865291389531512970831387846542078233786506686102345461904468818674021077114529896192469335846943490040295744813067508355757315401381615481718438126892611342570977208183877600680857169403444804478347448226927431915735379894185728920217773378948474101315611290098722483690605652303193452847038997869612169614312675787286672844428454843450788969872712964319646288069432264797412867572225056130577233618194645439861416526388302006346470021574098798447072241889261075314066347692657002623143957998441718153157088986248326544418894883866320144878691819979334130379351761726491312771770301700145975804404207218625359188935755518622455422818967484064852958164779167833747290634311386744708122529435644967491035587986237325132606281885874894284179275905880596236573001106869576564662927649384127768219665589050545479262452004773665382287872590539406926169947400740477142057024219221735463270722786316113565983462963437944063508916585661067286186591090092069033138363025314319702153295306194678877509893160962103793462365144790383212590328060129079455560709298861789325601199277545490402252077856416770540703272538492273909026694933289438456524443334219561408919884242006731562630887371124415522591778347354122719420820998333984156441898927976145222643885041687039651612262608080715471309745261757862363776359569709450804212821249440624982117200632530068199688638606512188011940401967345143396605878413607723902363252786588094562782011984081159802548624515980204101498583729447103360218811856228408357866674554469962264174049452866773433577895728993299414354790600267414368898893088424238017089851663917508210147426843199842003006508403459895780950595298122683988855625197848657256801132128208287496157158914387694268789308122862034017655529128622355170903023639691743212502109014771049769250543980118315103349418398797781352859061584242199095984790377010529030844528641486479646849528142955825250270311057828704753067230650581774292515169192615144228967416280573739842385723871721114706649336801120802384448321808970024120381730292291804532083243210973538989602653876839717486890723552449970032248777951207419296165704399251690938472057065767978287237485780172601737038093450698692633684573280205598807754527267408402589261670208708514061749013668855846824971389953714531906133439529479215231090984285994987696510529026557901819578087099281007897289425057552958775461090740984063594891353301172206382904887445779574887767809601023252663950727401845151651673823393774546691749443103156772037020462859606011006286943387160105050079701109171128355120722342201603460932303259843242356254033692306708879321847714450553080285651780729048682208385627025293183828188438358655165788423480263633674216030209439044322616644487049722418841817270244742596629792916708632447716220337512961830598223396094317475194051023358355449052791000572332653106661137090862820229021838057454826924546421541842020995305827850715861500451831774616480401419419463110038844209530452706391316344401187018521115892212419985894240852795447367527638158023146673636715299841004485606274513418246478447323211036460872641959419516456242274062608038033905732529914964777363212353889969723969116763548735422670022492650668012430239559874066677678366776510849488195148495425309799338639652765671505738780383963759942055300414226190641762457961360534729345673172328578647121606659767075855675418488092495679965039591213827180598628321238289621418094012422015391252574882508343734281506520958161092226285999171744089435535520852207755759001101666216242895024559792889135682689836046599887972716049313585919845815269005840027174759865013983895560632876647813522316994257862191918981987415213456245701892727708339153306002237604267393261605825690034513038536268769085629498924636869827218836102578018118829312656013047407995587392835066164443944915002485971783162693426719946555039319540229624599746676372702708166119204125596721414148958441463716701853803831945024682946699560645382256988580978043396776723648062028696977128752419759969420388164327299544225409867493410856450821184101793487866654827850910658408948700920163813637133927386617648545664147004177271724877078943781519338585466094059659158228315604105061127160554110929360789438948640678515880223105796274723851683383136225553452814606714580144020147332092335523453519397315091135883197057442186538917989818785038225827859821699970596986731889281762932197959297313736517773179105990826628371743251150128825083770128019386693801391870596660104914934080143115287361380898518779985290000056592428985180027904403598674544027512997496685383846806750114465114591677176427112597507697944751796266899461752977927996637819992413083950658628233146258476065442141023114554688977499937099874904952487443485085569986368735291324942431480079967485967188159341980338793229943941113828498665650547178414102653144444348595616181925625630482475649769229050081301619377010875336971543221161774023494481737267520043036627081229760690810519369624770117159310968425422724679210855987716902710655349615414553715917167180353313470870121474296234815031243575592320052374071069370809193044718441474518146188762221967805056174055617712233324755724229332118264114979691902969883976578620807303984706837948834213640251750183558582391251745441315208900602547456496809136583991921362800732187940571719517512831359842543226915826452404618292062503530079186783540031951523190453247132138895584788344026071903436551619831860531966661292515421891624731161470666715721821655329429414745325296601302769097502854445339254750394958873012283758471303153716199003456813037234871130728742558864176085030744043065191601589302408000620310660673174765933339703777312932351992767542470402087703816603719035145945641640900394680828852373468895397989878403463707133817103087015855400806907776639025492246665777767746528280229270239444707642270692299987354689715612472497049931241700801940687235586052480623160828001361159279306586142844525065723378142759832669731217567611688234010704702376570351906615675650412563011601317137496448411938544209172516075049456161892380264132288686803598132425159374350355140399680503150978549543409667128384413921262070896307681243778064621222652059568257263055629893407585521599831259748791352471940056886812522591369820920392749737583644812333209759289462668434137545003341891624918992227069439970327330303967677768616795453311305304449657334093639725827079947797036273074105016023934375729431011289073532690991070702451387632581988468617011481399387982956376886556765022514309227718828252715702962991016871651595241606736948311233704769681874700772482417186003594323297294860892369243649675446202892816776064160992051558787901144026911907274089285833095872178327633048608016657152882087265648102130526109855552163655242857925567842239360859213671808132957480526321057572613657014907454527614964630923864156106251218986723341824994714557741746356683544297838300905667089415800611326225440752429614021643050252059668040780414706381865426750287416237473488640266496980502060543482101185616392225824660398180488802845648761345376856190371091047302516121432640651985313190179101286783822910259138725696222499440555565677506418254271345479474887748583559796530465438798953243565426961404481004097549060119636084636378792272018932645692448896761216416761227810034261936304584192076681398501016518723101414157542743538933160190182234448363837465221028639607272407516260230030433279355964128779893815843830513633348223128054392089542246866435755453238369335172891116425659854977862311034220093555892423192685951618960998003287815286681407129576446256167339193752904134234577851244138022667868476299195777136450618423194275053327027288412511327779369197604171107701610375103102926162416526185808539195506435410955930317691859701109553294870483062916699927627270542560296353701138057130003631328859885273418586359379126747730346961460881300196418061276076326278192320681595057220688643869437887164189407388855686559108827772462449351197492577117442029756342449737826720602188823706339348753002748832646416036881126945743803528245162773165912811500555899246488783386302014299329292445907081675471253757932749950336649319124510650939674353393200202307680247274536791211136459861499568028506939082132420861818454317912554392843107563528360093219591006914223768380453269162661756890423332494569405629919129327697996786901411136547712953052176534764580352131860259940081243964715869571765111545585174913058381143939885842979540838303422045913934238756052371568142254921410445185451781459762381263973798953191653219149470723522291998258636833707044916426289393607132098584755482465903190168826709684721625782674180399875770535684069552817078425109084948776396568090339899924743230837702848007377963897077573529309182983513439208247003049540204740401452103971132808288577968856939037951852211001997172106819878233734100003857712252512445697838104709680457363824657167879409072833564449999419156372743278999333116394445764107913245731407842535868721609484459304141800468279854520174537612857517478970825768095533687115325987792618330868711919315307255452706141672431197718316767143198357695553868921780800648581485366026759257214331083646178023301989195603069367541024758352982319019803812278773410542157846677962517214758279393355931173101892395531216236276499590308516864202383548619845292268505497038387322588875979868158575976165690993958844811071581547707689151343838909848611555410491763226861739253913327337588214851181234639684235250622314024093286278899110823497542104728143192740490721099113936466411454225804769200427719717960545457007472619770565580756200238990885231510291621387848570705908824823643246255991025307945358594181696518928248668200076642417105779511426685861824390459273519955648209364424230067028288126567999872876264405937468134937726414455789699662319655457977671476470205381534908097025371368916870485996820373227982024515423594110953643294283060997946399556897439729654614833812341577292678244272357563563780584245677715475493751007333800738372871284374652335667399718475123857349382055808226744910062008873146001778841708253096603214873411582632111968971571581130478084984105250103637269179507557454879589024686910909419242315508204683712182626456215440290769522444042443424738846038769934519995564396840908509985932555168801154762212905376379530635227240210690087950077449383676513461998564132920120311239011046590131553366553166628647521284919844744517749528301864920174128247912338958591390489965106560118627355611016676552393535754302935481499533260316393404459441999883858333794836732664958448194911423740904105780236583429650150550979480443871850208042634862060826701044494453186314598981166877994008021304054486938852039174460253632449222932853286453883198146370998292802176611369534921649643792757641887480897507571614091954437384863225954667221396790821764063089722214412043657706629657472182114184601723832355392039773508119011810673724446362092805983431327286318879942831818292706491985626228607204410746849812974376400436977622256845013061464036655837004790879713830992386519340452409291250780833587583331273559244598678814887707815502033996152367640308047690844826339045456463742163565005161196486512727537004270318125178728827707440839063132954243143350014690985598042016356408933261332054603241700793070122357715803001814333982650689250686044160005997590654938564292870316924645852709200931628597770260993900074245683259839290550630226112847476815819502994369324520429816386148532656059200426969656009248802327834508834914339842911997340451126289866811301486362282311891003050111789361285414190179898166444546544027002871908802029324240490788674433767070997574067483419708646786773793585439645064245671684838017041817481197733299988411442790099727169581952070498977026343427811815588785601426507215191532971426301969275135414956998335200134923998281106922204897128637333003608853496095656922554665770350520632175702188784881503265753720572924743558548077938260845034361775262056925872261714294825459041876805519132691230826264270313770755545185655500148375067241244534534117248778683931494651202394816408760593981163069708541586477999302116189118607937146369578242980007140521957083580813558974285884644350069152978310688509839950132592086637023323693767106767176672922855376646245169170306430706000537960359843443040535756280294695083969774208217635562384166298953191208835774350866902588824766956638625664135646260794261080306327034976300776031243536513343519989222005564928122859753199236955477155380996572875656788458602624095619368841683789012180882456815421623324782011459019762303779857306739305995699148724913660319542453588111363405636286629389424201930828271655131227723982352368087959844855855958050707007939457136833196275099923219600332893546693672155888848377882319399789176780353144143784463098995749538862163496335793783779154813890830895830918191320777729161310263471559796952403039531666654916263093581537069534778604669817936493251423374753401911042368300230174267583652752986015166168982913249262052744666942611772079402068546211154426347319808906505018422012187366917745914704977065117126257683266889669342792873802439014042983891545820959399912788922227384740621852013893165541400629189145736807732536617846178359673126774557484552007327246220257282421918805918762867452832437619659314145774046850486576636898562585160535722970330203903627986504868221536821815383891369482996956259294316417366874462972959547954450937992434623774031774840488806614817536218635138161356843515979843272165729307129595829117086306027668295069790483208607190362354535471477627021547489153391532886926789929238318913555847552827951078659538168897747179116466109879304910130342332634632726880364971329550053908441097299745410692917050984377716737104770472679684750116995655055178775869923559551713468170165221942851168418154155478872175164914344081720156131913522489838471675375107070102299672138068836406784198921182384400262736590957363270544466144601403553443190278795422802169338220960685919841046367175668844046517215832983258169229671964200048420505892956884312943969676000091145145182380398236292882415663422597870359469527583396194633392361719363275644186295964753988852092035228205271531392924811026691477795523540276427136620393540415278240688596838082463654969148066497093996329226234278455909710335532797742027354944053755997047623162831140317633131396743226501173384352170778870995436972643859567645527846287125114912274049782941329227549447501680302885338949043256008128599024158622328885439643396044108334914301498994366617913392077151257082676211603311684871073666927645173715722324264675321013866117037014840706340561748657244459330843172223569141857474438746101202072424987517827413773349063415915490785677016078391673707039987176095073287576370506494786723280356493668313992960932766289656295333776381320984383614320376572190344900166172594088513220232346417420926170498050506594219882728510267149334459885872111647270889174485150705045515091210805883171732862483790880963246349763390182224680759390466180496603968223407356345371623931546093099717442465479959532532106064440385251927707605739582231276692203656286944719718300257927337895129391624973650923350780955338475378112803349592354623434395445381391556694380902750179258948080479759625908478583962933502390221050231239317294372769652513521328019446530980252211635231499068356288749441702760433268332578474240518487922909039547854539007569902041518500696904315163483872924436762235874591444907216227630047562946150887696253878577742184957124588252825643419197752365319595118262631314770790889720113407048454660259452534802747377573348417119779417038389059830747781769670403363709804729140203029331292541638591389470807610181875399074732362909047963375273988546883900497914681655733830807757408603087592288259035264545042031495499758483580282987782321456371836351308748542604036040074461972421211936824319315100898527484553549933304581748603182419128633874851121071064394558796779636688750221271449856163929673767350574142165594846108372885782177359457272518146108592411439026618238969178266593070071928487586383864091917126897489240235735138293704496085828526907282098579752338930834359718877811105036432286884333893930575144953328403033358256849711415946635857957046457146458440367703203633908406344502665824702066568746220314919557316150342159560558625363563397465776915313734675303149750692845852111243108904731282161456933805774278952761702542831229558578783372431258826036364998451398480676641401647888019821293126701456445542049746059744264881468473771938397989527215594109807992626427624626249015524976442943415268806381699556155260399304779234220294157591949910670781454932762301619769948110727540461771567730630225768969100500138739469383723997263672506589486853026944339497348211553799394100153586937592727701718525180456951405891360362349697887721939043391019127973001826845301478427375387391483531291008065885902150997153355719745502101609636509469419414145663037799321908646982707219694302366612322766139606386900156548297918633164074546594710348488755139754712798245659708905859006993331419608437887483775779949671204486790002129147874565775863712422016790010425116344096924412476558589853260919269840730653569290072981577375068154417863021647318335569209276038660939147823927355530986155059151261858693334915126323967810233367184381915616877396675016430784923378877492849273927143433361296904280942066295174193559769319002452672171345088991750003330780997355753640306558396179591441422894691333976651744391850632484922623950467360112768675894085767567054385775502561518580633697630078605849524731920087671553340615459003406709438667644390236885606526226811394254794127002600799317972707454226808580673298804807119706558135650311968305977955365811655128662003524790899578494834741335055409327661157487622717489348411291471021046351467605731218581235793811921668910502549355402383634552896437558090897198084472321216768109183491174535657719242105904133869341866774087129327209069691143882197864514698526793389496672525083488740931115832260158771959687308663863831078773779986620415387529928932844475713070833451547956062489907135494317446957740577504584418883801456919403506034632425503203873893520250867200350916658543405132013185776066537063487145132159617650480948189234899817238743632369718344677138389269178180481293805856508585834610597036695704588944460618313811489696479585030585341323494393898050287426334535555010193648591467915008333496358371328750951456570861430347904738464534248593980567252020065581193463753395468150407525711494382808631551719743870418401239584981242999870193625702161005813101363106931704962663052762597519824589450726379826475711516092008158475616418151425997799323861560990016293758722500333179778773977253971883864437337641388846801903552907394052251306428344883805048283733321493936961188943812615152829122695546588036976410799882842142944868071205361125204309139455923578251941693807443066640994431189424264449414472630863878313573834229199872334969979096530179264502558665255858150477696946918763920367845407635974795676039580673611953364395544789719740653646844278878960445840512540364514952366439661120990340747310161803431648136985975366921764602328155591543290913124086131803878143510065986273460533343681825868930819185551139135541244243414721900164292699315283973521493772521220242764860943724377619084028431055167332652519954516008471210783721926247297076022348069184642008992427860905646466672203678317352683108311133687984303006964597749157897569006758960212948212980440041978752229405333029576413158746413563665785022433262915106054790330218332984375339710452969188230707416738119180250065287033444634694287236790606890531826708983854227857363294482061075854015232998788982836262360778932450445541018658674428174787954201074401815681004637652434588540151402879852348153318745436268164368579932228521241722150179838376887979676627653088176092022835048068735776589409723976653330273387177750643509952963001626931168025429772139449978288312069339470508096687756978794593979736606757002658626983003649490095727820521277004666307493305559062125019698115260872599351334739056830791181915537121728028571545944291606675951668683220441698169346193013276060503675946408598205144460789571901851698241807474592304452616207718565827125682116012143925273849468277762711997729109023266292468076969974239248345505959114179125395007898055193436941789965583674344996154706519782273928668671917974443656601944588325729523587089481625295020059331783694876888357877251929693138695339295392178777803465157328758992093990918926972126575334011363098550353060190189414032378796029854534542748639937497136577513852553682317387413905673764621267118551080449597103778817093877022553890734035964769401778291320360269688514308651529636578484088566069299358382926301978965681076272678813947716042594870947954825170026921666833329614138483032238905790880135798628986832794104093303005451305586765635870678219669351080977452829015107410360278990100560407395655757705428087466308686609182262015014599323323542065921004402842368640832884960105220827958707505427548141168067033336017523398315661746920296040087442931007567835553322492048372336323950283870811110825609229337330079381155484215705310140687617019225119671398548559311742812469847426350603993864056191601797915764728264005367975682821810709156623702219600727577675107156828976279791876775157191787170078034380387452731236501001948025994779569518602218055505700023606390284969920936498457050345958709888731465447681169995344635802229679790279832304768095456095333179991956000576282355770187480776902549265855023723959059884757001859670626766861729884743153290413945345843577098405395717471802851907093331966178819665816455889065374119754237111587648743571428460900598153482844338803195878837191357779801269387226733450282567631552392455852076914268067545020439398019140211451785103752022718479085853351560043059209988050366077972020378111905547886133485925722566851071920362783222882986617340800184703682722235761245308363992822689814980396942952854650285737934164460070909742059626183820394829937768740099936412239729609248473506140439107952191849420463898571019621666075420235118754384286547540026535138079345341831798303839013645355203942676698353086284319659444231727687755925361427951153075042043761369158535941652929113482799373572672483137632328807747821685878702211170615800824031319698211861567395824947835770675682916122376362185315748132720641744017287562963032946701913906219932738086041997784793239885611148437956000571681880954096746634749114754238837087143109523689163129095598720829625076826254055927958932678043082572243904000463829556680796691010193867892586467230150590181976987087111039404207912200281074965908054112686805522423819660881105821611230470043186644524153685943156839087401857067969355400670713541879145949956113635523562741488616462020082196055869584254082129949574948964536124619246371123567654398424624954955154258612238011316989132165595451903681484079439026484379047873256071704819295657569871690720145446125151152393850189013861925712400840049133468441661380015118852116733149106843606317454281466977014293685467531016274578289021512898898950699894493034882443883808995016167036823897264902494096999589031257069084187735000828891529583619086850601080389531522943651328972732137404934305419298988875861627827737005798123637100967602931796934251990426858459887111325085458288642676737127131333133669156962402414165780104102548834051807684301162105866792569973473777118018855187438197445666222739329748927379142056892319811168414699739168702933728184705362034928789328357338450163029445625684650212149281550756936654005043190889189532018716645787530915835510048725651991951691279639780247550132161072535595588798513475679212492228682989262933868004555181152661057068163179784944144359620621452401037000448747812542159792493089758703525816765338235210803451795071892329718150888302579665707962033260817420589454085633273892727580374198779910713842010802810950819421867423489248894056037806786872529385771778486902572682193513482683944148590253852191400027050746437254378440554980598998451099460464916351984904696218140417387498550788353246509582524412074274410534653260862051898724335937857484589231669393628568880139874655391031393101458730119616609791529047619116247933954924755269957147970134309488741179379380709671995384092607414700062961110102022204272864413317434382831348052216648808706066028672747955900804350444824623627016330355394883831265732247244272965544491132915161596128001977176566050487853721272430716893126096795437861262159935917717190802895594979317580336835452064120684553018645806984366712225845068684308508697373604969416156259623341988161044715991447992806515727141328464572257294052514137841856229471860510057814073668246580359518248135561038967535347209218238203397961249977330301141451061145732756177315076957847496153023376949747648465423034288455718395282841633529755262922024952942098706322187006237793829270240986128788613265944099128028336743709901939933248768579889454418138412259913542006474361528859914398672422037216914618511060396262995666595933230457486909965107689448750265748056068233057932210048822954368951503485725187139957945437224693250514605202802406806507080674842102185729446218390439179869225014448223299430749402082849153855138083552107748874652184346268213934020931210645864186279160748442869052547602654414115655561540075963811369848896232630566887395106964787215980157372518668301410523438984387880382400782752773890616483846909632742740786081133892262235100587650066582825073448568068963223916160492273257745509096363205183938117022419471911207098678254286592796152681727819872085222192423423310607088996797489229770912107049740324665343943480614021886881336794743272645565718785356624981923087518529368464968809119165279318040428372617660725323652544219226465184836407065191781295675766179135361592545574818411595010487029701575474699922720589865511501504437150623658643008067930846184552607489351747356674291251816051427718630381891408553405410666241519641851033573456434357895903077726026092410580204284017446610355556433579860543043853646066767799121179424577186029565303667204271734328842998764337081904453043849608041470445600045249988028027770123451855941772441256074161689362729174713764432295473455606454760271510845295450920035428476149664611149720062661432484559428845410514719375130839767022666427286506109220289318073732980350325348361436309249061423855588911835678395121818625965287973216392748559133990528042303573310647130738093385849929608967078233151463401321774523889197199498322725880995563842532632547338030319993370062972740698414862210952864525588697099755537442155894158108610678030859917946310325889213287037670188204833386200836190837050810825960340290660196047033035421341351004440937450754343532921571585476902284547982130657124713951455105063650122974685111468590639675794787333003780717846186194562983975836277616341246722863616492355897347486076082577517323207853821186157878450771370647846236545590609593571923435729694791238734529075910222102905743981035384271049996768968101805145212099446954547829394428277401251060978303551146082313343312814983008740990452414638884296854119349798811590327665709392985709394753633409451804064104911222312773735626549352721806509664653350252504703938586401748739163217299173629939126630592439838961047624386976915640430360036835103170392300834330781013656648329078323410780751543773943602226557853260911609471000841840070429734677964758924666260967992276574658456117008875684413164169693410524970891849395745114924936215088144564768643453202240421999683233662702673144738651344104374871944199825552491743564570942657820400382628297975202311004276627335218616533124424289772040412472130842146392748046356463136146500137686122561010195936051544146213567856999537396115539146096758732802005690921394635812966020172892327708008730075826078853075815963006062843623475968732413192391974974195234187427606632422381209432676525097725347529923002897106603492067917122297183825023970959142101165442772276246777897907135079637702342430908733533637246461426488561659741962541465691086377592854403373856472211026322166724837128596731491184890614939656636213262312198742612117098987956678822824472018200810231560929523561214853457677276997081402188661472147084814300471576573347617143192439911335695201936694387030897602658539295785947673824069579131915301482278110684187862018572390014453161699465903029359653757242104738318164010952966300887643261042899222945615380774865507217482724150229794372992627779400402636248657336561449761482322169697059024872886937233870319092056408172246609078497227004424398054964630629270251988611552967593652745798506459965199457387630524524445049386109019357640427776779631389667912500130035432687153477415257731072173815729095189603983981313033873218854171915091181869578234542320074141404694906664836913371977605290137843751432082701680826168815737676572688378971599555270101078223900801489861521954293698635665154879756847418299534418372102062805223114764225617722421286465459358491105884148922912812204765047552027417637472043556725142798148586099397409301609686789130371375185604437249386309270494068346622401312915416985282711650761404449807691465156093160797518142222027509742030136489072195190185954950240265150689329431247593752951299079530186290830089575215296666930717634591381032006312708956932164977207529507588408720380391885416716154412835399115772210921549363715683396352617907816369841667645053227725350447197495187166300728557023623836477314150447973564798828020055955289797659537673992406460515090110157236413156064549767419504389996761142836533507317308142765652258886568753132827231078319844827602953460091209011447537962986655919771136459759532750214024746553643637917723341532599594600012940516925404575092647408999565501714363435836597580655968531902315408539950541229456299990685534908180212505729052037196392989027617647681236568819230095147981920876241820572003326489978358910545952429134081874204291691029987917046125608238351191787559408279134114343837235493981224395251059387942982549100730597827804113858800176244856172391038120782652200630598262726513319582596129444738086878260588406486172561642062722012335652372658890753814017089856763553993324126448498992162802880302219348204914694267204790130146662560417637144202206314499354948031916231754163390645514901670442338514051539221213081116258956083136286725518479567661979879174702619884838429612070953300033869547136042339042519008362667923908852199089736425866885668575951510580937693436486079455555964955839934704343801604887759403971134919331581245541866074555665217891982599253910107390313066310067019346228958559563861605842922869211474776369170520833091464331427086899022927846083022122436489251848984145033412704760819559309877271641226641503662511894548839500244790936861159635790533982305849761042476290534997347691889279965207997432228895699357888883674324451270752244323478343817109846656541635580306838634196944014181392679989030817902911029149070939043900622365438936004630065597116854825975403874382244296304862479070102432260722375015409268553804048088808883451257485093523705577184978177087302700533250629996310621794318970875816432954775703951580691688838872172295669050936573854177546007730815839032944970666562811665443605030141144883033484155166873041469494105128212089748090828213684563898870194426887832540109088124928793804779206209276975301472090053055103897544801506604773914503104910463541903715987161887520522866364052309212496522127398277939341131886802379748942937866341465538338728567071912044954157272550189300426311251037810964247475815812539732609333173568119793424126419143200165837558778231925889931820629228228263946654329151465706022511642169888964214195918397000965673613989556943406210052529294190811777445609197853225457789579916988368404939355451450879258132452490091137342688621445208200259767371638249890452485863538974927038865029133987485400307331441646240317534018269405504274072710141812946579010906479243726005621796815301634607633997189008671473216709736696674395911263903596073816596648364017839614633854779167351490374231094808270115319461088475741338971378048469007535922822867473459182678019332472776924959464328692999475719250866203010433279519315678939324321873966815192707787928516177096515970667518281464537376271927053776224554113174022423325990734207406285179313891844016687760609933791067553372666409737263944714187564605769516039122981151252972758774149366990239587385824229819731083840010364908754519390939749396187049530579757431962585497440306146209839333137624975270500750828160603903359716161516491654907540729367026111717710299878739395292905539498234931882118080413811571065074069035409888170344616400015736457544662657491017945946946352297289910439356069736044497169626469466719662126412976962259061369301968088511237546873469382761289627225043351107975616099421324985377161389655609992676747586869742444303470586167261897733678940208761336058090978779683253781544852553194659930954781402821510100910525888637126164551216652194766283763466157483393653826480341325923913264979003584631078441901776201718955270522336383874097191527528584398644581504218214307699872684289484501788977189287473380355072094015156611040555749129705153586511035430661415895850870946292940700938534790737574937487582771144422627088305950050593441756567634034016234741410555820152081472977601547948122600561479472897998725858302148071611012045656986170249889790445814698828625452861681029776337293355130203339182802784845567179718160501076437151126317105093749165942607866164053049709206166374272698597898639702820378251475031217103149887906470744604712325662208726970278544388119388832583411021432814182488557830406506489606097986746633407817494122850125015697390450937262145302658059320720502562194489037514364740804233606867426155574046854309716683611813010687254949581730018834796949264085383058233262263196793722742257228507710904967127915536729145981838899519475239506950497435352429333753481320314265957702630051537516127003703473086459027992081484228573273471708477142220811477705170349980216409646880795447748184404634186033777906642298642073757090633462061093985652373330546730327731868193652930917132319341481719254251267186646664851588979732385558357014794669162753769071720111884108307758487267337450082148102723341254402804180868630503030444601937566847500788335859220781973605042403898653451465843189767102060954802230120584244519935277760290497619934414721715821083273324505064947252048207999932143270012884411141019013757761000381980581478273218955767274414790326737757266557818562515984971675213791067896122749361466662996827192816330575410388607228225800473645310151988095250348472850310325082729694944266118195331454556663156775461649163100749281553041575561438229375930079330084465644397179074049863841297833705292563266644187785310000127397059156434093438349468724595730573280894075043872266349544044447994922429926878789906915619441177049255314215228505366226863515352746728906802649616716581724225470120472706153107942144465899236981750718400324583887031753378771910939040871141347126058481880672492767671118397617732793161195600506326109978717863977149808028949888161195645979218420332387036141575408012221865655986546670114091847143370753977494394155706226269426511708624452472381933114400758288998593320306325390133157289912982359445635905072759082408004686411934241619846353592263644450423269683805375117977524280715330274422048064032251894883533198680043258512587128722039325658509019675035445478410764952237403421448138024380747362268988546342864607825041923174997590072631862691115956131930490121978769059292647411774311648907883311117538922036997433787667841329545442267156323302140501082126596106626063377369631742964668731718793280067655616803134667689155171921377768912320419046011426517541075448033072034262284462954336988011047077273695977873149447349884370400076422881581952683339637589430103270850532915772960869207774377707780627462474771011944141097074220337577748663474661124907849288777198787531194063627785779080832033464431456379901154897647044314875690134212932352368763080755982276693361927756534966470258728573546122377645180921519799177376475523099282307704770095834407926784255118164219216324089594128020668367757791366066234768602947506011573840264091516679584340365745882796040503116751383099576696314061821114212830912051344154352609767986847985845420735493175680604533448597297492880202263647201341840939784748258657069709050365719953483253691471506172802507166296567803486360180242716839471560247310563358231366525958234718589607559518211564430656450723339334797456398389607379388383257783249600943196159639255485080957389293963477001146584846964769296611003250432810962206266707405670972717067655737596307519083418486551011850579854507041380873487699664922142444151541451954097956563851834051789776198578168209971492042617589893250173023320785685802338320606500326776476269184591835193331805450187117724804667375202208809408947729199834961995638759861339748473832261078324371957614789255263503416848437395394203623829250713333509066228992696261360163124585544403897937986964162642766569265292626156998080734128954703738262044644952101479680844331736871047215042757085724029049670885490535410885531727897227164302920857890136737548136861288666191375730678546856259773283743892817547049552735774878810710816037926847258118957844604836971988321856412979186557469449607533360366840279046982886088400192579965995057241698121818939618955479041571055092358112935122614048885058585654241837239428535170845866857730594990934529733064631637295001900894826594819516742397288838091163611305350093110817075693664017062544908279537327764159207756179853207433476041617788089119682475321117693664940888118462353008819287749258045223388376752984530263304535899906204228723742689153962911827149289372451119607433955150578178025456693434189330741380182968468812646583242016950311766237460917717787159276359592649846828414499996254634827322379454553605080828877095205742821817524313870309138062739613033465466779468818420644653505061759199350559146151364553765390346562877511309814232056589709973866939512867448005512010284580331290028465199903108168709009264859345204020173302278855715687671982828955828964209665353784297991901372268201478020348558731979705249517083097039821519068464595878743486709640947156197452550450281999803034969097907787494721950993231021314153449788111564014039510317251687185776935500644195885694732275992204215595730344683769625134236335602065529804559509305105359726113979122333551202889138416663964544768513106287950758688184192208521691375268108596754672167718370806626324201599030928674969191641812511056248182314283620264878104950471565376161209769966426450265179094711195787942504471823889454412677625453142936540137626068663812880565122016617017898608939820352045083557746866344040454440210266018084873329049237775374188186131698677011788273134730214777330379670533960097845126207732903933400938876867636980827352010891810957789209614379894366316927198905570018400428385902574277031509824170406618029353888524582699507383064167934793266675850560226609853174902299694190136862294027345961314866225857380346760192833997861738901926216885654401429231961759084122197235852788246017040386663198053771565033733205100810503818730943194372779276162205764036453164727414524223916771105310718748287432331539161846826322561030801831995132754214061522346864182260166633942561816697992389502447042166480484240914902123602937818976321518826351042462816208008583606401659050700923605903121958324664782854467126800040482999120060056939789972097878606665329180826122656031549044812190054223555803222127611635097268659362841385307879681781302697245709347410375496885470755511626339303958844637253501155874231740933397398311155442856006145235839604993557821316456089827298739833830441974067472498389440769667857594390056104256912697883485997962814122002635996046344085138717587844979683415183330966880229643937882991222428737241204750017634610888013848996838467901342870162032346874671644238947622812716475501075645585488683588278042461246745373153580819667665219029350303732781948218769755217527245886202367910470003219415613605793139481135904782489067704549335183440302730273363003052042766641096431247573135915529945952685101937507989890130730173234834375964984570787568695777451325754843844262038801476002552489052248154705622432549363028003200208202370303961727311917909518935992823888345573330997941479530845221631249614402699824476818653995186157062410893864630412794174317465585847669085083031643542230205212730020716394807265204102047938221410955597401988335249509372929753745394949616423352153572158360855983172301091128946840108310553736904168177738065419991274773018983651625156701627963325374155531959286119578949773735838101560924923823754472511183345109033190312632468748797539188546750608154709948660803931554063378419777757239679713103360839378646898806323982421594079827943337495007913793769742914963887575476382604174041238496291199864467769706706937379186796415813109369351338930606294061830077047659710002649646395530028025803895860999105033432218145134078826682498055086685735882943818438556511722294341046587514915857778499625940079742032722352301792140005532443182570407994713495838983282848437215725433880114519750607747752291926039140542556675596012136200087500095854226599773757783879136061140039200952595479024258152677160655652052972315743449498217603370845724509274858094276828085839339303106071224293555879457008948876708322324504188373691751439537328443303157567200046806899193001643089674892918646034421970614596104739686762676938827813279266292489012632195207711434706004410732728473857493168614629248310559711612123732467031753420217512548274152285449931543805543280321998618790952290024414523571994603516826388309196889562780720421368116335970572457876735031513648871439846165485755691292980717037897198680557176679844758536706356370517898610644510246646552130497005535302274358162175536869406631320776854718793285534775681397852401900279816142441047917933609881058926331457751447693913375199575415696962391463318659108407134963972725053420884855672943441715817163074872844309859494577361425765576993662134464821136685776475474643464613969268861929231115780842974501031025298104881631959790221335004155199057632521363725688075818413905964652053312773467683668915330346656331480504496352255353869303506805634014219594676187089902289280690954096782284503811023073029843895633573470136238378361482612308508253117490635629711154172108447598436103990809966613002302101680811308645921640060912958179461705231151632346560836036687426265151656089041648067256834138024362502213484475797061267265714954270269251797554338874435851349172645839331468663939016731022160331617931857711060856168667644801456500803960844646500218891241533805154669175377887757811638366486200714799690850709742271848790328162163689891642390842955266736967547756778580864219808686921916827710070617788319769174714087954882287318447979975309234875958958444961016071805182888295222592142934060887366654456344041015052892069925280547366534895148344379050705858711177834855226208488607874336431399582883575586898598239738362134156267412101139383638657943876597607164576809481730666115897526717972641597633996468442508649056195408371036680398752015365126213161719715132154317056994592492922804461305379434556910096342529131107644128562372749554849165200098388615351609536205644663043347184462563670814652774317164692318388127017595509907857165679798053202321790218101823279126964348210059111371099576724064662075772442000610281227014896544851532573666372041944764992913608273351623554811110848837674350219130128852509248449675512065956480899391208953669467306401869281456130294327417478595024248777170816331195145624323188840974503016150644033809375734812755126013293714986022420055186624686020113303683465644186108199533742387770084568330139385405514823951253483303650076787624590941222534676449254829918067179690383033177292968186734087907632345882144567613806090207045955805765917649228635420966241737626271145215775687888256958761992032061805465673385066852655873779961260784301939797969843396144704942184214698792326205138885625887346888326474768952715619240468492168257356193875584141937627745746918663366549656007241091632901524891554993821799682092802038455698551071781413897818836787528423124621045296059353458021374640720277704033141347827685298394206908123576998514210600401024553554111908164107123087894373880250931213182473274423991533035790789525869715577125931633873839800796233063880049063330039212954396721111930090238127801602001409622635003820596128466613225325076360608718142344923180716552246264343607256599041261736039353437034207297207745703450072331626905675498324151707946583994150099809925371021431556469672391216047662538719958265024530767708997962980379164514422993241574936593259673123026357784816265258985760269526633183373778711606147689157359856654386062943222611292457675666486414060956278574206189630225695944277996946285766963927350801998248414858454532581219943105986056024257971971729125744241530653622835892310085467815441781461207804464328170527034023321460039384901295153863835140806888174067669442250046472606413626676680030408453415810487945211791070943217409290396754273289179485573226270864889706588770063171428896995238863732960665171213900316585394269332574202536780600333663094248666065454550963220475419633328404114760818175386513791250480853276826224583758575494172439105589525257308941058448597535313507578988874186653402908094803060085662564272929370611503051517127162249831322526051667937008272941586564159371204504052816823899753044646864327752202069661804861010489608345455378574224469440235424137236005827872792193837167952725015580008954329399680144239052945384601005936138748755752146650052777680669908708882946793168724336893477366677077613503416089807365205805227163630358741620043774604490081539997747467948365956158736385716469806334970132417888617418954565011463859625606808460621583128464085714733409359500779382567328225002991664516342769944738622086675581762206954666951296478193876355800040585716694276912090337556969564586336574239805114624050439494596817509124627289110924595516111848659617713237453973701461745394447551877915870156478541366365110474306578633151830875849266878454804691256525567662843064746811191413056460539302445901433257076726232406409039776983773209116262637648201883711301867872867047200588681100974065860341923208149675007592449243837844199616689657894056499840978634944859770012842375351627987385009608620512330146585589810972602219211654857896820156790004081078821272535891445482242546987540388111229963150140339535422500646955761593971939887485569056043642686770655832753213080410043138530632745098739394798674152630291747592742496902418257419200046949053814424664267309431143137274341639579849540172660417350772694344454807381390737650980095049648573287406671384083712787229962043298633804001193572478833275298446494047915550637143848501230783666463170812199696091909723382786839342950608785996300207200503412398259122593537226723849468094505535522406097194742178899775534000865661988632196828194292409078052292684775049358358284121657787200479506198163432067859692131579847128798802921495300392864593897582173818275100971312796925338826995417117723882392038565571332325045447208490507730038415285272722039859592926193851386647721373147542391756606869302991473802900787458918360482608069659954375201052821122408545142479485080155355809723869427381792537207986547700828089971599455340432050686427819561653944732029176590138182688430110473733000348783085837845673769935492134554777461428640918006990781541504233394013951216831136241696167829909336739395290087110317007763464066257991210843045326014788101243035172543091271681948241821399639121404147193334697777604945780909677725401421982182284292804599989421295746359492036129127657789607543998035678490385559509186981462836945668232061792241233378958060411035157372939280115330652407713294857897265617604993115799550439058931970783042562576408275902372808534572786388827242312003344072355846583856840296361303086119348467786749922742240396435686011295360591562758616563451973031634781764048284558273279265056773930177980166597582608370031374607196444649510192478248788661856675287767871415841163005347038781210563700535818183670355567029368963113622358001738109877689963860128935165990320029353235695062939648219997285039463273041137169538068355383284997045868140059234548610671480456590066062565367678702911821124520431111517942019225225953528491447760535160649346799427980909988451479335379541036265180438309956876217063365281137340572919735020495270420239684630668850104397346056807812762035032551386743007284258223420007997888999999940321910536734447986714444280924393511490413908947778451964030296139467870912708615134646953880026740637985363011393536584902626288940533532490005327891805181444719094158806927978671894724091165407706602213111487540509259563399950830143947386420551320531136782963148706447928691612489721291260133782620819128419810946019141061514434437516414300830710163217298617486093954394027212497180904306511783078215928617562547284153279992276817265329406817135854228387867407712765438833709431462393190045233217306040665071254500671182877516860619328048209193873399271677539378658176614494702152969421685363339752338714319473302639591352391898583064705903039312066918343634121763163323341615589449732562491075075559028558893317291736682978851997472241306466034274939394014170517288991427216491028426755438981709580203587279117660456025571363786571503996965452568134105971911188885116574613662275664914080527845426444109935595072672237013381346935593339990291174519132021401521328748183767127595213471275697402858683592595111983278952594930404029203933404468111382748518696347115118453152933419256992562933803333149071620425953299394579528668604359497806793760314787539973689816173520090710873492034686323695274222742874983863329560236548900059251942672253827228311520923665060392119921726524649585211385912185214567837108955137571458430177568998848826497801238020980688272249954895478467826174859895230066640410834996765252015435807470737306997971615023650043144187301751378559839403898278219304371053636553949713668564463828797167459200987364833948023776578750368556443608997990081988427646530668056584827043253033812641972654567400625948718024715938048313801264540640618601643063114815397697048427576895901940715947641337571271406489002008579797027260734722695530939057454162500596832498744575515143711722941507634195464113534095043134605225417550787218465069009198031941808064616579659754954043018035786195757507189375961905008990667933971366563952375893037037503780132690434780307825255332109910217253507570919837748723652937246857722252691410535606026597556561971597672164358369051489933603475582216673879253130319717567864678786941759213033702730182524055320091099182811749283669860227290166490432360725186797428668239243839072905357360986765283531558476188461060333054070812852046631152457630806653157246905424295866842840914847146205726854977882552539992498619918059269029153128568317840134567675149542091534515133648106101846928344944773716086139999579663521389213634676742658989106887273032575920367972632013144594104582394754987555849986810348663001505102555861004948344180960525191721682994305898466461056333238606378059517594317533244422260954425622246133666594616485064764514856146179680062411211887288400493274386634457609206644197963086773123889609914609046663492353915955398869930449605713230226766789078476777889164765249738166641323654415249265288260707995080262297861515480254490321812849815268902922377860635416426137980811769532459375992147467168197173681655847953788316766998175277007162625451607547454314888375060346987371021312275521224307340141653014278194456982735441814586421625218110436552519088318468539464301578270909899701039889919234205061053578530938854622584201240895412657074004476279082462006867552147958729638307116102421836210570222082883553320486725016075406846971527843038495055891702423083074873830430441474225342813136101798288299360212490701765593355843162276944861603166312084494396935384328078199968255669134073770178571557687882949426421863713121081002101457373977383352814213952960799326052750918286458287844260042944088156406862077373274428465938034716907644708287835818047651659784619500230104635654605168129341870434475577493004803149501815668894112298006966423305970912361838250057492389276378512456719400886323881006332719482641205026849818111588345449570035106303282008082609707653139189259012876038570138411707891809999331645862068371916233684097993802647479108225969480478137892635039246307574296905103012141580783381701484755483356652539080122374990404995110026650030960485840599309020604143844343035976914954164844261533831172937163637290555920384418169999881691140457723440361328033788442369854106240947296493418060790948578242119831915792920682127371061278699909652802355028766671143004536967755349473948460461210844098742102022038393057816497439133636556836871506725665084900684422400524316707024077606773815950551638196438708233574312398671502525019951118652796782356006534976945475108716499180794611304605805552541647400262788667909180180458916550543639079965130713351587952728489667473689413833129658016841292507161906090008504414955593796682917750420479488796895561988187926807107424819076117917978990313633088389288183718239069788151236898526659533983167855340056263060243579227005187787369833624891174529821471203785162486545345223554772101887408111599838202084263570019398317027254115778192739561647412157777600077621162003098382325672497735080844584178714829029762266972574498858392670967774849918782303905769650821323774788832330178588157019252723654249770797651321890379223658258037366657421942444831217377296237230912782704932654513996490129389621284086034648960692496444781528841350149523207077026431155690884251976658751174244968622052273159538729248800796327289388857976630608925792772734029907449056996519985405322814710276765979725811391027650474684580350568872828415247478984511605510071659687604330434541399409070831850055327324763319511454232787977792101114805458679890534561755969123029075683211833868377700537844899509805305177850953176002317137823532297230310147149312547489470373254534539751441767353664755538968521195987880113742982722709411926794291868895711090145462240985094905277466929711819024454699631396090327628641928894832986387213783957111241228244751725608269958222428660116570503005377190553894827021871437276844247582119230823167210019960078211561774289513357140435075261894518689561588363875596885122764133341149097473692437940154583424048417930748390041806427879455435327286554166860955098392077381438357333004169732857245734915124142507029375113516747520008415650255079297128020460956150937784801753158086514549068614903393319593008584610114499507510956779987357539202962354098764952023069380850302588007250735923549060429285086789347264776832773892501289799724541188776296009864144206266216121396076291140465984922887429642813143120285455086875386330303303487932400148745508736239557878680678946154939454134106331030693791219705759280358896765178557345541188255463244333066114358658994831356530533336008363072416622272058150608537593341743898748480656897000592254456610373642627384158415363944824581279352427151826252817447281388482663242468390136922164164243919315746351712139495725728699812496302160707792184921033187172131617822568124659421754655899400843697551613719027559892842271152161927259209127294507123672749382799943049277143847652790985243177311446976373962729634280759240909493297618938135766830299587288747098995049137362355308633149597717759701551909747035771706919038573016606428372631374842574320334317530070423664768912800560779788256851144212165741571468852376747020791930527537020506640129607559302476459356083789854508523399202240762597553504718153134906337729397286390371451851154940854737815574097409711583489920574191286193740675469700438129372687401268562687141914367054151500326379364853148172326091287992833452082695006884467332346413082164128201730531888039479527859999181571994459159888316551865173707982753507877232889609374222308429157157571907475709006373644727727602535954460157044576894265903038314427458133053832066990622594015913250268957380917563069584411645750204764428216863487039449392056216109592826797638679710629559960154346512506413937127752960245310415260966983896589063981354038725911365372098053454199116336347602236590276781069287110296865121894961485231018703861878494148905511404356147233729996307940229834654177480318162196199802054001475944152035593658185599611998736817045445837266015588819309907993363348723293803731193582825279924861901348167770101883995597489904992298173635392174331978859121428415516460154651594623216931177780598868417904685371145934357171861917015008759316702339679635300624684045997354625974793464641021669165376774382004558015820805267069887355411108788832031774339852614932769967749532092424790001586732364139535672840705651933393954842290114227378808525975135609789822494900609227025179427599127133124937212509920880064381463531970382005030775787020828963615102980064279612664335405150650648907354087584656094402606383107712357070636519004265035502102948850412284278273219462894455951923782517685747942432261133006017025860848478618974287396031700181783622635371822330070712370309838828618741073206730788912687750840858857317708748493434503580583993541032810478700625487346567013741922613157942374158947239201274007303509536598464185314719658353801693367093778108452509339202039051971385087393173069504645357216072050355783786751661256745945689426351831166303305601245082471794027832602357607474747098615002240965122546262303662597782397786800843286695607895906502862657657363505975254779840903520558762602536196127980833921033209043506236531166667961162041363625991165468924687019120947833195613599098663676721115359954562350178182102670685454911670179792311204301190109072706242655343701111647972616867213259752298908507239103781705386748314718709421080159367671436104024274477816237137599608849294795334310054605079706538952885293296065061171266077642733415730195253271258482262303968673507266002553000081686628290594408731413930985942324374804465299337741965785599748471429702671852357460637717364401306058825463207421494543640464660450732709812942154055828909777368141827875903099710019925287098092771658808182204293573290198051337445421992613293818574341393863044217165111899547634868426123990056810472038965903187619270727219027059875854218236180814218688442414921458479871425333323140546450871841018705639983424334373684814039136682905744275376599199190071051191032152965281446014174596535169313603464591743148054164382351209973725799410129543942242452749262614259979053640141786975532707438297230255513419942802870290841577200991634249860658832329973954024351129422335264327854360136728872700328340716348876891873565512740244935512164110955312788871887969233492387008919695011122155921217794438022646557012203811467150287323178809234692705974340526925788655190639093365832447079715593441214585428641442351030251882783851020462763572340263336646584493472231540616210419624258089762663121687710503125023819393290536499917047648246912687429998425379459095015036271549602910384037171571575930863561972757878983629033644659124576057554263968599446281354378651560543873622363558150174325968590730002794465599523496485668065911536438866329837984091019607574152367656877770545492420679603945915542550549788453652280518271248542548207924979939454703229705312338333599520343120367646101692613648168318969947387138922972217547941440823089871695021073460223961820193458702608092635869359515443483238119748540278577118982258097294126964837038389178201016918176372572293162126945873112827666277302386615815323101826333755020113874134385616528754262373828957536141722432107105396352798362596711748603058179196071282846146271819257440285583642880211239092170244227387416838540661091492166691362670094106021325364844689574665079310053770473774080765669858564574563938164560716359899580632361354452279987532352310927463792654121917753175025485139364058839167666468081116342690812994412036840454714682252355327830784117589893892561511204474320244646563352966003201409640573547069728158553208295104379036791806203214390434037795245489370073474778965535744971760921936680295275778563637500566006112745421683152865878939948225236254452660166261077034696941445409895639846936523124898541834495231616321877239327985321510066041825569206770515273397251983641684305587879543129671899587511444113631661232251978350138994857521285801849309483210149468434680201024601922494929937373450258228220446073666282619410283065073728590246186778026172974002802793608295545621117807305852391693013168292066054286134256063038956637470586171749253989884444486364494001193797697308127417734227649244781092558382509011071278731942988252811727040636465287000756130402889798293405082616942076402943663432115809216589938115887772490258451690031269841373559846663763731480462675156701346482554059207955497610609267142699966224041926348689711488781915699971117441705989576623088097628783633458699684981343515920623099876738982193043938675730316326993377568849001207391687289791036153212337671554654751794724446901176491896169933695417003025792572891640543354467852321162016416707879663367771419201205666788234841385197361406123479473545224006435691907260388673487962626151964391458666004187759572392604825210930111198046205285807749154281891336664452789283265139659485122654269791449600529414529759525242951347978666402269020205382613143887931786757257324957184347628337580488442402040773028107527850297283192389150351023196970719647387561537939489234862378149648229312260873421986169276340412186996250974550469398109071524908538413598903813228637358533241927849722474186136768196129779303628467043548631633485387219992899499916285200699945717423455101817104730947056188663686722184618229269362726823427587818595456196956724390700307453796505882179866933487749515899500480227748797685920404584508478447739126899161346869866259989793594541866890641290782216640881814709710668743543758229958806254313460768662148929939851317956737637692500629753320931733383442845926966001857770065324613743785736843705031030891280883568228922041188008285116456336653953168412169719227949442401420564096851631667213634517055183809730247357403977101993959181862265567713585105669446259046970054421080649722872840667607438997076245791176710514792810056666430882105166141611346387415822439605668819291124472165998469507549052712618056033931072792028896109629106389239572726404165617203063305435060885319625846229494047638514265654186559764861848634656223606025542022470136353515101706039265292565062191566898369802896953561061871125360089137829550340158754973288830151235848382576604805765438854596762218032654707934061117002953993001813795937711481684185439248107642084999743876144387688205455018514843672858554859181620450524155803085676995271924454204371657924518102952460933867686963033374143811296690846950631925532276970208564913644327353722222798573152784814717896914379009262027766763218951336108830460607021722346246499128730761608204871427455957915847128102485353188779554722298532551005987175172551503494815455753373522041042701589275871608865138818148211698197812155970307120886572931682379350580035854521433174530257497431662634882360286384490505685304120051501792372627663534284271038312907310099869203113107671063724887117508394805963724880524128409331148425038040010321291524322635068734564578335828423363503907445730985243164124380898515091492470556089153360134528198845863341368610944726649514504930450080883151711223133661673156647204644373211674250801826500433632368465237968071574339976159745019097549716638837294202220358999666172038997829596011753574752095880520113654085916885395620410579400736532640501159585031520523236984351623389932078718410490312404100326888513005312439974627908763254221985802527179433029890935415709853643003494874612520417573549826158493814925939499671249291428840325853681562162953845391064981481915784290696794312644472564018315227020737381507161878030676630661092922998974192710731777378482486316066283725336243224827218837759664441239350799102689581723384874211038539289294916917313440344315274960793934476831963427105951090187396904630846730391697171470787248692737897335530572542151942274221381213905178822225692999226174872417021817889718494331315167618341257140533021875367525343164172581220737833640977360960068459301782980539211092452568132157645570126630472716712639760439100365337636582513692213882584073514743852625329715056055925061018829723777804706640270520114562015488447886179053855690286508939206900562350899904366797344528116462268657647387646660551406137052288808476444668892494655564632510597899817838970293116168469271482801974409847740496144691735018218370548448137976797487907059914133625115180669163041703113830527133988752878370816623584821887298300396309327837522371373491123716049066657079855479707791909199490196170818679911931983200557855822555875668450792475475032072964391143991293614265349084659276329642453932892189857395810311296535391786905292281792511814427425663883874408436149022240940366039973106104549623000456788866538011269989124358388765923782958612468435376559986613090207735450711485367306485663076401213833186822908055276430529958604282900244867372499278075000482043065605576394211490749939143133871123334884711346698612644588985174194583506054739716096035396335956737344061294174124520611948287708851250179139545981922223379023553787056264000707597697796848677856043409314602079484746758381665943393526633983757282972953993424247100719079479436106662466955996488485092722426978880739932312313296089804358129789735447698391714378013732917660632706698150525528491859641494410036929091328577376771635276973964128553570508576238940670004059723956825469323307522277712586115113343664904756692962382720626685615632566976688644388663035524442803037167607792011927537550503337914414591347041621892034474470839578557997084280425361800037949084233352337293828282869344054231317180661564587933783268680482106825368523336797849472889197597029909206303425643709621238356575627113024846673699321261244421367653027885057572488893807411279158599104259093446303850655545379624258760073033667385935085429899691328706692838318464859838753971547204131437601902568283195091942255281479444331674869599339719151110710144321384186425101949171800213384410133479416407870691828395003236245841858467793386558271733608194422779766874396504254655758822348628060296662011171609743155435752958817521679119876424102726499651731159607787644663962715929712154375970585020257744847371962406728354460870626956876724422195712496080541525725676325536665163224958619401104881718933995045103242053734720584201813172421672469274610931007574746969261577380920747933824916579893022204754363451517835960239524224147607641041260077431060417847890710790047954550034831999812111648604785184658312968757214226959350112072773858996015782234961373868906179046037825559478692014977140999872316864255671930545127393663634469511375982268038066523379432592597750595909421326814637742111340071603746533495795863368453161347779398897817292506413887115962617496490342364248730417208835479974924782702090798705373141910020947791002474034810598974063528808988954332422326654036486913954016822250306381661837981499423337982222357859773326011824080697933839854977361664666892897825909991271779555479968588082849917225396684681439822582241989051622641656257828962260840278381365728251374736682881886445475100193549046850708205576866939660978526783570508255716048268904220326094155635543805164221010594814943892269943925306055349980114503371611148333662297097326296593386002565559235271314416732424282003031793843435200032132385461889234734834106762073607693804922796935656941356425675188781260483052281997486588835784897433075986221617387722610088388564876219215689370825009318450706623168722001703407516221270366805878000631301244153479522032845667834829547449239131449685879004321752415726784440219912921306633934603532078060609162932060126130721360910382121582709965681587546427726208229439167046888847256860215927654727733304478695773107003326661300780469840994782059169359335738638757136368604446095533896611945965094245993267900998580894854253010354229138858627339141896790302316875457843969101569343041665559383646588397487220628711221079662091933827544639003277140109211137950134394666508598797018428237670647244056782128244704807940223352999564197620747238017665984466428960117641456289657064312227849561427466964770802546957906466380665075516821572012811009353626587358147904180178018316875096471466773747033856590408466764076314775766031383363543340334503271482670946868912268740471445099481984787708360419903106440412840608371804837148164988907899786716245689399451780578615635743675619628924288420559253135599564350598560162376683204261571346652680092200023879343497730846978202784821430303714546396129765355769386946505064902638561426172582056599542446730715082184691701845515250073894129613696386239238672069055414862583891814671815839952942115555020150243513769931260409968453849059802557445956159337372738616822211472666991030266335022352026323182225980422634308598591178891378379494624326612350869081752391234071437692611779799408034656198480911918365977925977492063809744781108722953632274120457346663479816045552337911920549876756921870342610317209269638291999559219906434736088950580629105228327939064099646765958895236715823931242256469560298020052882391778420221237493560168877872576491618799789381500957235798458999605067491266933660147592543447290206418009745944464062322373964744156416141599528417646309517936083458329773443372957615727959404170510372307301153873281129300698783999774671328448320393263895385942883939733752886914165886640035209105128634214376764706037343251225121354282790544033798600689052046186339223447867063452885839806715247037964901832220403679066994618994760960532415098445684362649530731244139994202831919834556936409928935823927008600774949024539910878578482686769148121777886817325340155837082024625980209707733388563431473899437925197884359681087487060370552383200303302026838193626697995425549643688751751833151043742276104100863120676533132925148172730291508304804187337865117227203277786465845014875520624980738910556044869619271421908252639271960184467256469120453215422361306268111637262290615307991589964954876324341220537898869073697903204799431145468460209995905968046261330501888994344134425723927493616100358430952974206350698587498494870300461868624477407092977548118946459988690934704212721449197183417624487827664849076005960159909691839628806902235496051516095944284333141007647834185709139556425557526415351982029287752763292909862227944234664364882548256593049388491472191572081693387053867099870464838115800815800761781495468456464644157904593350130730658065997167829649382061443611965175257504677003438564267383795188155810412213815813591933800854419831885255731481727861526605780068556741528301568441167415701230735255849167050484740218127018159654316103460257146368965344771587869489464466111263640855518228767502831405340301654273407905684898651399005271727642038398400358460752441397782685009095991206767016572866038545608456563680343433843444003511144464098897313326800319805755892338974376483502950416777234714371725583802452105348084693330578091790427006557450922660894336371093817304600267619871231929924890797435458790924485439179206299602680588507409231171617157465419278704427380902523416680088742211784297199639231674923214962836425664250235898288158068274054904584663562397321864764692343775016806068059450822879548158963623385716139506192730799502460012004096037780069298047749564195882027453951710072930285848752267182598890607975658659429455122256381582006684762890792439789538680952594751887136179083628726798327678052853274293690454268939218283212060976995555665346039672361839207152996700316903195827734188035684403011127050375177619344337535341662590761992190530905379958439258278035114698989896040182479646864071194140991313539795834145324275686081880207774205815490670170257914816091192520841697748015920106548655075604090812699305683804719403903476625864526471528322140535436125216661747490622422071373910567127666571322639488736163770747858261649769226686349403814145847791202370563098279043562881586919894080351922626604934038730986327726343094569660156666368916414079561019128816451620881108371970411120796641345373238273847625000717785819825183066225670281220454677852322213223420183587487466613129628850683361846498034199912058598686172502091304869870135918595885001716879910492245818563679876926010176616167866009266879222170341745002292861980919761499186618470035482530727487356453926376725741564897814152321943425633152720391955268647275357265197966215394731424462962589710248288296379399154458044075609389374295802467207795433037811116349963885395484866134710545374870467667264826872430537991721036781587119640117084829917106373301914543768135164778140308572390568979760378743073738181149891222920105117145608089481558050019139985838929334154880794465046448945273529762273209317368344196266985260978426508307482259992437616308045338779071013294116286576337378421682297069604455559676196203765579783510553401556477806191402097427140899007023171485272041954915810668812311208404819120746774702133025969422033652661086762216212576354320839144797561560481962160653619181680771981873112858875177044741019117229949791836458263974290689610306134995391795540199057294075010088702689813861636476001243340736303267657297327790424226484755339979613373913819495097563840815068341649328529995142773753896446096343309892231653012868809429090285479572906403185262168084353218274192575834700015790506332269145402609642370389026240504123312757217084673974510186010225264081838236584689861217568939902286854262951457449030004822484014774730937815201712967539712936389119313800266452851630863968601668389696629640903115404857775144900150436517766232039218868929589217027436333875916266855302638167442020786693067687428279007804396455265673595989937187070503507197992183265229682746427621284110280887421897975772298129117060975086907792103426713229528762330196918614636610060663591230387886672980051375230538199010213079933999484315768757416399551126541774868512679224778680646790532920232528613141684127141316487875846717432850142002286331374605744980287418307241232157574097605022742681779845975299246973865570432341651539597139828806611292145260735010567664581847508483472133188890224761536158231339067261878896067758420317275675823072520903693592428837713924217977801580595553387522103988226757529757563652217831224851693043624857085945471669918614899594452647524854096428010848567468342593091102770176295362285758735339391369603242725701227462275624544449700799578822721661250261938751968893485009544454207450480670658229396016661674756071859376581041675107729892940227127369001900023611588075716716681630622644317082181486337997631196523019076366971558286047374041945729506999227584348936502682547760635950403720767341156448628367887259413426580274647425760222901524268279990307013002392119874368558112409356619500269857074533279437177705845417139635944251367105641487941433158359209414687984297992141795778010063131496998824760303461454118620761683027608071119849733013918060962137992292659543964983159207607221016062791514487050027067163204229671978950984307580287311781907270270688763342500662432967656398580867089293690681456723856876023453134867043498670196993527015909746875108636393695565677091900646012764001617498645325174351445720123875575416828248440424261979288374488035779491575148859503880337941704464673723254581588908115205865632423505397997750618440665269930797114095774115780590650241190724997847350130810767258307060998019263334609644901845419480939038214272368288000310133894216585063555665849608379069244661154658809937778806399749884436643092060375187494760001608972617557122313218702470463533676890917768535033311170392894209023647104320496414931405737809321097194342021369646338297674036002675712921314257865584474378747851023611551337881363721583509921699027116431588704061397366140170619187877440777877838023527287740305883492643549032119513749171662279668646580265292310050239759506251985184698555249663672671936969019194651396675534483324111387525002287791050821307922916109352607678524124943289962497297683300940658025588840036493689757058810337029842839449297971116694799787447095624080390563641455967896438045076954795613133106477920537471979589341593249114327833281747878071259891575210951693021535156046807537359092019536665455368222726335150669175781618273933150371055614056745691259434210513612471432734603623577000056200301091366164842174537219719990136015350067628635576500244996972687475031172838113778741343506114061773409261665844367874522345632325377947903517370686750834054995287223274753342227103381540573576762261981514771809775140983919106700159468646491819259606960529111860396859986694576523485898824429700618037987741612435903203483222660671817397762705762815069697422096587939949319575596102198209558331139275068439646679340659057233378614880507078419425279602355992528620423308943793642306887711128831635251450838163483580499789212332050723283307596201260509217551791754141069236569254353182683502810299843356291136744922008348542737308996068133614827386584312810005467055585669209834918720773788437281774347995450180105058714150221979307481503299136387747252465229783786878634903762250858669351807400903015098710362994400031510515774044412385007038975166476552745416106079782020746370910733550487578670608495672850062994874124326428246168019162009714373328172445185786578301439056839700404446636269568492864548167962072603596997359552023137106549722609470848398155394466854975846565902235547100395096537643344128957458196271673912322875124461760451545542179805014792541277123296452168942402532026637602967953260164681782076688539127735862359915988199826352562394289877342272055345985778597065112665426981015352212267127850683363490181526326430262813738981669184450962097254210529559541882918736653897902041704907961854771162878733596982296041575096896814544464234669549346315648275596763462893930989551462516528155015899728973241660137736886041476966009840825295610818085417811873994272883028107348109555398741857948142910288041815316913184547819803508924748509035355501936080770048011873769851988658955792287207971698577052223614729236136917797949288673503331217809265045301873485932605305485352270881894023533860018994427027601284318407405306853424212821779827686364515488790818777244344641495885487069207585302183103639404186480212151449181571786291219798447305355041824791016815139802117615364331977620023429864342042562876961990363049799573779002558036647321761211649170209842413814197470154671010063353421780726224915030883658919186978048243522186324526213016061644261944919174939676554971537709956699288165933789998467237732167269869615105998221678548592573653765870550699999468932659138303564426044068743810095080040864471181584359157718978732284750876315773203393856002676527498601851257098481962134930780330803570429435487245304739953874448522738957300118703409598058549618426825242565530521323840360171508530475846619993459797230868827799818633889264373029815063897441779580421115245701994378535454533421059311719052398580631021888410811751097609143490930721627453643925068109600417970015961016263372741411199926327146044100644242586029810159996576781532075974335430133685657994643027567153154827100073726168717048243856889867180517446711739045698752342354234873994825586296663485073038472391001439141249123077742808260495807224803475243640308858742433153438441717340740400223574501622483362516377151964885221602684696442610947252720556804746639662383162513784977657460977806928814182397451227239159537384831866847050686833676738131226836194641163973677658923758946116323839409593516226013261248988708291291891431698107989783739025906308683625372367189775549719165820222116083034108226284173451024895636889373905945007122998151008023361809046130727633959510763481952026441518451195236183328133150644141478150017952937127323118883707244456870326216681542237225143738666140524760470355874901110526017564633621382384923741524894066329071824589509826828090137534975662790419844421259408409568338784763062724139140732243454099143772665138654632134522494602691679620748440600444569730773208720864261375858383617107053455481753220611535177117595694321333058450156187877449065701923037208312715442754207713662869563573481196724294758521659484724048753321761515238573124403484898688603312705767029413054626997267367607617839360380978410927640435495466035263339288738031820271426876598230976723957654727379085420269735592999996655079396212969551526011365362832672534037488964031758834240311868709959620507272140233695988373380173583463701476105243983229065761795168065700077448689843743086680940138599519692622093874807182070903533570159286419130660393205868363726868694022939459421606789418950127394995073679957171261431214824247837435820589299245630894531302333192935919399456035487519229573868840592920030975491629965106274316327363536197982506939745704702593010035032499829748725806535291561759495639186976503833906378102731090261119688718381682905663397006541852117869608002735043432604120127095900792814069409548692932012287272369483281512192576735380751694744203335408830212726182684995397850066327466668162577853806217418366360912957487385670150559830855063475567122805819570361920542332238025441290036867785892384197591004011565222979975549660873869303475629601628802285833623669879236557422326727771227334961612747352491361998207189954229961799526901742626148490491964532149748275259108138251763168943645849335383732374533454680504359446639080230729343979688828617276520319449172228755431406238073777344678358565014569516454741739074179670734676496460559700331573203081135090845335046542100013998591061387889211786858004025018705498465029038120476957200695655092826504085125628838286179576110739975664303901804682910778940565816359137329468797274528304446371282417926069850508203587281974742506485100293197262417237366995267340286871899409342864491454944070581536880466483653327100241238794284302715173675413928062672049912997819470108408564150476783701857830194860141545677887265579346864292855343593060705891520797472769157295995173728498956387341901323948165595438949190320198882157888374924786620222363912328714672659999776307663445939481844861585982675675729014088320170684124648499809215364801668267952896284098299281769554684769559134472965005766501179354351154873381107756154450554300655160884353897955413353657480552710389408399644357153074689316252989920236922912869334433683441474343766282124870236696693427508670752303568493451721462697724695425853241864827309782610345244064544138207625145090349522286150884675931150267945906010505426498418105699380321962668874437628391657721006779163941213933182050922398783931840778352798335249926827361860711831181609690421627190943917635803168283273246643718624157287332744256144383117835834558753243408166494502101113060410630253885713800048894755817707320788856253980652173364239609486822825460008005166592647038159848751768769575631511661225733488165517264101304505513427688339381780016860012921665282028767803906217792011097356667499987128289711989347426843704821056187923029679807792778425195418858034161330552551610784268176912580276820310783670832221096386754562872628651695167299327173074252960281928704248784145269399619780864986869067805036482450032833213632934194440281953158384958572773156704175321691965622047021927836507755500036351584625867766155677335780383836172741953566077057809417680655369749625130796527823974553269357494665076397247194835377760608293916609779606075611968980540168361969199561922876924067488589241655600753339713873582799076989502948794370879035084503653588118169039543691130554769324258531105525370768119975522817159236600489263466191103892870946926393897977984926343380513820139851024889664980149612398433636748728561322677603641998489002355229211587711762925081217379898811255008713501452246252893276058983287178973774109168797352794921133625775405010525907159864365370196635238792279060022602691484657823025403553229295077369055553225827856388667801633710007009601371623873424761629830602533198475370672455929871374064891641502008830394856297525381410576465564662628153150687846133683826929282413830876004011895684408488503291313658638724805981746513899316860857198370095681375889507534166097563500721924608930937366858947760561272213376639812151091349378585508278863988177002418907213877737480054300198985716465783069955675227731165013147895352078352315051261965195203429998153680930828863634586440526265881062432344748673815893986756785938548194710812886526792456516068722422108326740305346171973814229314108427487917469992240734771050061179406434233121398036683346607664010213581318597756192645481379098088910445950410547525308833411539957770057709476086768799160424816859758681953686201968870719767174217453441469153664693487415295480147384526752082216843271686765465885137217905452086996951634225773441547749198185498209145654128922283006486222505315311973381208053194524540067617326183158654142507319466733097264793081259384414630092101546498605567048066672078473681468662636126425041950428535597822325542570340327638600776564961911499306674760084621323197494364873497886828117304161363525011571075733427737784850906260191267346213532342326213687854010507020208757317059750246475051438611161524643539859224020592144552563008475599160758882268407093871588151325235743575752368977353816934787758257105062682622835894931519315780860065236772649899756464737594609752948530360064827466231495722154960842475264165045283192160295124953850074770975099764959301917397099873533236929962307397560509287825905954097265086107917940970669394478833660084331804160853487233669486253106968504837503938609281795774537439896719621254046638996847581396573110270398563305767193345486428569684946418457843369097506960154089960866698112023497313356845484471759001506454796925123426997426403110655879158836487775695971571462322557361395903065275714224273139780920162157656837689449819092937980002633143189968553408404761483367709377366602073230133838251649223561280879489135818234989919571959488462292829869761838325276497293569258428071928582750903361656014086896971964087845007089013700735006381258620002589495715224790737786909869069390275266972657396040996721211337471318000418242526663746009047379521633329625170599518859436187378137895555167902744457381928575600282182630456161371450573916596893764885193023041414896017154176448260327926704140329626171568738448569485609960162493144530472856203550064379707324683766527547105004989944187097501855126458027803924930634530766701493873026278493925549571693350396366492947365636880389710558285516052107260367372383691987099335690485463262628415724746701835668038007400776905515065162758701339421124603283897306005201285969376415617703088545116275275324167718969702534770801662797189460611956645623684579641646395132921945258955554289423165963042136986017189711390763173515940774671747009484603779941994637855383936142367194480639456354344866373665239784604816734018587796149088951646849727131797279985600848027545253743068011625819870439363874912937563460122788539921824176877433029533631598345711921381055816363686425741938340185037411719961968517276190181399553856537024596342873682813832348783156011440470626694772897984434164562997232641697263724324098446082793923513630036642962649859145052442364093295401285714005499282021524789131063813317852656966340805526190397719930036096590506659870840864907814341531605197954580982533791850818608487932395982115224800787763553596162534776991744875324124204605112141151497127251115944543776148714042984543305059504086043587596933742587049664863589518437444862897995806533575654472273954880843153649822259603256303327387426885305275275840103812474765563284040165010739458168800200740677002846378465042452083382786131952629050468973717164813995958368659690141066067579089171664834740899655274784239317989951373512164978190896194420266719635022439764012327339372475314607771328994346825869385405692268517570867015530612097871352159156397784726619867958024416077562400081560590710214238042854445446481894196884514981246027355382440233773734490534416827773598654243568159110357290070600434353189733342891441475487073512511746113589124123998471524442403325303657798846017884205265683922071778432634542268763857907008776446830916631853014707090636884053871241475704766865664644448699275625889802540471211935520963119193111098233719959903020583274730618858964139167552025003293832205266093610507455827394949441136179659685110138767438044787117937693155924254969561690932703391432016890818209897892604861746657542973880163916391258967956619974403358151340634928408709001050712814771082570595392747640132084012080053537252560668841287480800205538091920886362920954144267625365347075286659997424231470234111068585637336603920135557830818750391947591813163895397032236061766697254634871365962026169737143673282214547214297778671559543972135019274020046853444643469586500910122461401160327934392585121167639246823606993563024401001136414121781556927754720410587887369270729453340229105896780595251411100752017791744044532037196990546749428707320928887072687461153538093082169110792417936334003765947608867871296986269504357406778286048828091652857244600762991415673183719473058951377217935259038428831077790349151276267593570710283636554284223484244377306212443894317665106908469935348447307036034237868508065389454630616700216375288723999474814123207237937676568762679326223422725961345019994626074929120235814972972073683616189133337141331059137735100588216535728454281687795527444831024629914254314855710704513139843692604266789762261626382889308113207042533735846854431607646991007623276966901065891936341987517635698429753528093242674218369419140828625453225923738252017757224591601675539278119602227304471928813410677610180088908216842276205290301036853289568083806863900609880044860174476452641829654973523261846241298603453211570290929981056138593438674206457795858777363029758076545569282721599555249282289359152943551223264823801918571626323565136085689243014020300856495980073257849110690487600033455415045745720538575158585893293803667734717160375558661193123664268185915933618246982725669061558356794296527448642464812728275259943518162607778017881568307647545329323452604968044574582619267653145473959222038798486352539705341549015480475167640758027289627709614616117266561572958483437762417647324711099390745288311808617174230626247245775441188526642516283740317010191093887204002012677591553940760874836647599019799925756066522977003089418621414534453721835017897345968105447821631540781201614472362676497981107130490501890379414120464022211427913128393114575577044455555416188282358870703365612487700998797098501708242628472031645118528466392333467482616480176014325571631161934913436740553538338207878494405975732314782640023202539771898184748900185466300580268796327308829404014111655604036902088335107475436692791283532325363549637656485018446893942681748895641836742565276963447538711619570736616236013730942131750003321616778831375321246782421769555687302481763439592611128367472758325186936894447744897753186190901475157617104352620381620723030710337362306034556013849405157061892450440487502651949761642056579145061982899992063644265906038156447251456365973727192604327769228047996845344369329206971711079948550658330821083743238188329250439692788390689434957282501058127351507188747221302009860587715563911192485687950600326746116679393683498040855357730940854970739922404795040919304759554301466455891341162881557777866421882723356165064007222607035156124317095712529671421065202092958010084412784574150232853694516698791150752383689007780661018759435736187559292838996107857570499195907804143468609503103330298781583643232055515319290504892864821668308072338713757876245013374138650897823989197120043223392314663864292432517959355453194930654728703710798260627273755506838496521115389083055754013816555088502818089361043003973701586140104895088889114374267146609789435839188606165499110246105988046651009562631118014018691650183559170924300266876601216410276599937805034073867971621372036104200074223440808853436111899134081085084579152755095855075753464337658360713471768879322740306792939835188467067180600699973392163646165990117871015866662484946160766905070889528975684971365269613951650162294317368620725458856773748703992439522760944290247648223691702968579948608793809296755135378835851193097096801609255567143251030806133142138171034449322403214666136984176014490832098228654023110687257243730997583036189885322166092443072135147577664835800246099377092546192251895790110192907320599294137153321328284769220918478643820656519426153099641061661856284325133690934165295530612015104671059360866608732320755090941490825267408181286813843373629436468062583682285842325429102183547086987580255613283077968442968923519606369930085527945959689582296308938133254358295161374708882038401942230123592529231450870223192486265763292834209622376664576805376885848510861519350484293457129553916450054937652460947472531866257190659169584384005097437435896583493892683278931545714770047254381604899794531626824452290815658423400175552582347586478417305378530319556909603637572776099690419308018881415216581271294955073914681711134153785799130845077378958475905912447397533021388268568299570317739236242545943585257925986348715029978128515643546588020019916932416620262188351843606113416448008470529038607168453805066670283009983596404021794039519462312817741792187572861623306578740769872298115710476025218629157459442441375673525470650099423342126425128988858979917518162213576578903444071695890318688158694105175079040984360993947668410659588287539954614455243236714700371443378208675184459943624494776996158774473841514950458420868217482307899929012660711712615312774165664924894293379257371624260874054563495416582920637458619513998515673933515291790516793264643304930417002911927264637405792282186416644142241492029733845893010216303145519421297947511098074814404987233848517745927346168089536756147339921928142626709837251385529897371577414016991952580275736257354538072882749157037217494226292559110165271251070080397455017506793543582976474259993126665963035941621940289443770950633404371306212196975227521003568398512518727340881142162754701561516798407087372116153644836992181168507867843225250209856860619781441519530010839413774327327700272388983027882043994246149243863708579778307849201703204877945585083944624223588150960634986608134462710211228677817136148897922648892894582360485353702968897096449775562003010068417927410901257853802511373905812856317727727249540942223699950652656157805324017501646915013387800446128303994656721347117201909648042003991322845598501160970960707963017682825925405432498882769310534758910906575876220010679960377382231789143935919774016990119041027567105565314837621710020182600290888891095027114146471262090032058299322317389526601102744825750192050423661741639513057286705729651692375370578832153010807507262286039376420254242940508354481607933968479207527009897513758225748567906725607072116638685284917443187128898700928220699102194677507842060221201735013298205204294396125887333727855095573348272109571784321189065896332298397272967058317316766718733788458065557737119148477445387550997868214602075475119013656978809422027970271484480442829036173411442658023311694283195047414958532183140788096882871548206474212403721266920977061927442872112899062004653638932250594752249445235377613806249649042775903036401832443409325268462014347246667604142180440386647331942763532984252650498241388860087730050300137821187177470211326086130887175645435434034677854304355115383867341241745366425858523432035226606508048115231514794483731830469904324657372747951168239728731248244472513902397909324698786108276847301286877768477978386613937013108968620095511629841337020446024857758787544800962061914306469367232860715533261981824411551540899309918044355858662155862127804526029862823503372949402625567568911055145547169235935207886141829937597959889278114443703833708643781499394723803737588092764360909979687092136302867043658412577664977041187878515022833568539761891858194985096799070316239677333723969956080502914130923339154468970084867981993303396228226980594386615057757114519329484164425797278937404196883321689053801876349248301047826720502496434987086199264502521802461444081659338969226881406264681983089778189881632950897814445993077000007233312267825729785836940229756799496629359814080817816242161553628262791879010325629559101099909898659437776474968755624544883325418841663533062990419840603404461849783922418139148638814627923105149292497738252855705228032329283955469442587177523992213659075312593655250582530239363129069645845091415119129742920312959884247183371961251686796527781859676646799342581622776556136518980113963919205680489151554144221020800894318691097189556463345740805657050317288932403383272651163876774891216610172684421065039153260420099805529689989870848490626030237675363188156457806299838255997705887541364202643236442912126709333320425311556580177354367802426532168156328051924424868124133323876854865067735555158039743650948815548704208321373396188619344090181152952267680090247525196487053425988051838681672909797657713199776095016897223075718952013798519805202952673171165794888505018940207725267647651479166783130763642702100445760406322719874598428086628145437559575342228237051505378401844926175104814145938243605716705541204397388589611592537711588557048200554235069101394017998840555500631874131358336197842882480876423560039170325853962996857497008920350145343720814260542551903214585712537968752973537204707981854894132141238563929631977750615663549266428396426090570953005933547734577747199021878878510138556572936642395574276261052024329281383675549164497548978667842096887004728371880709265150618264645729736306674216090526833351935797328144244680010769850559855731872000459985260294964921027813588050823202845527218957050949899626843038588596671862122765214629840063600335640370555790439087032580292693375806672075443805325616762513241766690331102850979426297916273816603710935388836248586859459270357210698679310787964494605729349962992346696499535192428976940540919935453798000167163239749941599750928665431968829965880261681521073438322043590675697607401276649374427407345344375516733982711502956708396194298910777272198098864555551692949806250572092464619121536225923961664804442243888752636134077049787528070222527855926388536522801658545962613626765117891635923899200053486401363842775716916813430566195619606494361123028891270216462053221276434056030539972939621914534171832229734688537379313767104561290161955315200203345818377979670453225529838496296396450322048411463051105148748294689275974998850793450501601663191141735144244065715543600244685663002882269662296558589603156416409107145825867782315142378562914310266104820692573336778364347007108609188231136454579235473926755642855652496866189939363239520092658194172154835337547977536962976340491814629021555867851121961447567267515812028063474344561720109990384526379283605333582232924726739485279401220092991227063342074447843024944088960131067095244879584206307788532130103697728450297693363244935960224248186338359884769138618660573968309422449304933292070105582371192480670352481850889578931596345338340021367135471490451795518364837135765407528615508273945139947588339878524162893676331439897713902278221781816712185235089725888494204755106762538812715699317984280297285054575993232342447913076535951074887781563071445152404469427010001047240235904236678678188268128950109322600614592916987959091612676043815188325856089539189161419936108211445505314955334379424975409483639810025268770062876217307377146189330685085584924414340474464528525292407379262379463208382745390942098479564088602373899068398096273687389181554753938774216176401057447595867378123797133286467747213675076071924683249294377139558599990637216353571268324233493548055020760434852543992347313006198896844294001270317440059819574054276581742505489031278442961377219468308686688038338218437538150623528050727644871755719581653812855632967476052138857295440263083218585315244473353360559708457768306844082307207230418688931997575426789707939056750407464836352894334940209907975310709319061731674805308294584285066227205154103263487775733552812596283066364646166174271546264634098454549908478396900322492442589538077287577523407257783966993109274203898332370869827061456673308634479430363141133883040640735349164596997772843423690536376316712296578711454120406981884193456866990573975726739136442458748464349677797434560975280625158995295997647147349800639568708111379369954920632267193310445668330466002496756251519120004542232528395631502090471688261104595731973050071229809304739177145284402027788372913663545225431343262309657130029303923764681853070846831619529165287444157779874440227287163578217670671967690507904865137788420017007310497467200487458406882527628523628886207933094644899522927372804153309621388541139152846305237826945340432892742848502526197088634354711122703831784190463564839472500288633678773500690090786444858493254125083882931035602952575627999614945942101713375111386894858492289655747997956329501293411857345806640058114386791833873930259181001302384001353715994389472175044624112020537292361680130802792566531211676778014137521289494493836384543930543024221244925827370756021855235878995005956768054659799195691541307072033799174786435916122172952968473594920060303541293010540475931586395023130176286707939708050460605256585040824736770397814385958073665644660347889408674850770726361568565235218208139150296265398328510743554734717334046627982288365533974015148512437438072539115120126078935849984770340805995384552778575103845293907671269429608189065957279705700802180671098849438200608743036705134778405813607190559023874304684430725863711142465516078164799722837550797543043646465402957585612068837192221343849889007944494537506189918718265125255829953666003438664199388402665954211840353172157733495466145582781854816671652390600356856737559692123286288395598702483622486495884082419487793132031453268233605260780459757007525300821879231150910659889975904522194885457780298344257806212402676376754142257923676104096079355998023190002339778597706628752168444141110744465404195321495369479824317006524685274399078930221449183910199060300906392849819722898632495199699648867133885711597172000540056572173140477132274391335043319319584957142036913031441646038586271489161656709849122311630071883806139050174096688408707038045166114826718189902245830446700866814197187457644689678726164283750215014948105819541700140436888725364268618026363822193092136213039893265141326034111105421713594629782347091769306488594979634860442377210862615973776922160044624798169194878213150811755003599664760472981947041076238738666741198358993788789394226463748508412432952721277980600911194514291764030237171766669350814310090476555364628993566211732060258698838757339464503674548444461548033151065556196632259137546676247342625568958926431398627838303024564604372826031305099419343892504118401550818649401485467623563917621224871166870844441917832349116257765509120625236291280720974479030025162103394832362678251154415472187085905942455671700923830441568408083389914287210225233137859782040074317436610797411516661735458245826075316738308234873123204431706424786520204844518377079875970720687030122080966904482303524850101747437165803034544650449551355370429518045423486265518831764739633620567266200624568662564855492523952516724019880748103963599146736851076397781177665910429399189111864285252604596242607145781582938423662531741703820728749814254029642878423916296820870662824343936957095934973746955199395071657199364976667462169502048841130459785456669988527047551677744237823923724077115008818322471825675988110616709331415521834079363735386589497242215853800002119061197962267585618802825455116198188048511519205631012299116013589719255014814127426827934289122487356322295860135065068064942204960965113106757887661924580875313795718610643158133676004254105779035401497091085285327153071538443719487721063274663531751516127059213465449253514456427855698955014777758345487897171931912849178542502600912528877815370328858557296275144082775269612746712215543779826319748778336379272520560019118560537574840456733791981213026143880725746935157272038464340339425934195216091287795245069018908083539352366370982981633745065686094168276184877246198300532620106173874420054259037838553918189878164951800740976837969288548850252511497548967405606433018637714650278599085245674434410929257477464431218917682046773548788404777035023550547541653225567143488957088466772274578881683834919326178772985475828478924251796831104452493769388406970794651139002180298547038349267488661976662526711864822692812253619047108080931094570440612898460539751237967059321414243983620321950405811404642665216703285233947704821410099963779986704904417306292780124729561521111399731134449508607260733333008677764354492203928473747560303370923393185436159862322601786761855662950015702957436916781056493018663765243347252427297367724305423532541417165189043106115232227651911478816568703247793869045344911237423913984688180714996852163594795699753293954386517804210414625839978772616679977903499750977071019780808680260677661631252916303017159135960859336097627527301016083150961501541726531008077727516432278137069554777516676324063276641048704315320259574337031698468703873333011421810913116629046611748761402615802476722569000047703410365177628224961744429401434182072290667407821824341731550656769811103157284256517963105854800607499484467710767216357231849569220733816085081181982668594119999902082047438514343897082206108651331822982310401751322110272138928118684451261334418047526595021662377206448654923912690734000152851952787296646687227674634408539685910512384073475634582119602011997935590663825647678774728743234519143712951251704677367474025264595164556167658384624919515452924879450769896032167798528476904404482900640178814290997365224808144162439542270104561981527496941854394747139094325880985084612607538271866737627689425809176337155697137830711935313949433317635921742954321459436023830188929109769458456395245177057057294856783947127677419039425731479274350302483803887167384894052812021010931701826937912235480798394676461204957113366094416796719079691908629555508817389874112610973399427965230076065754242796238417741155418624406546862041506870037563181826415999352436914196798069162102401292053451016521747150520621504565202872148137090070508233610369716548208643854047685522068317556674344013455191291874899157851794851082401939468785496102636986563358670527434215856775510203432749524258768634686219937375962906629255814672146931398970455708518828288022827588533446075680985593525423049107500291220133144752411570937243675021781560103865196273210200036959613171102686294126204550698597772163774430092859947977128946773660443186310493299810014615478544720531923815779224945770823350948921071556421015330655358376395248867195676555295981556200648726055989601870306665421785119510231799191626891623383077124373582520208537910007770545077020661004279452130656483745880807496577250162464614840519483918942648022286375700515182106988329035002744180339580299075426022819026954358383710838959959455075059866450489162017582072774381304386667172537203286910210497817159668232739769154473880647731856106595858232960251297464215592072212197371314474147471860617503625276422679611737785738594418309931767262913332616632868337305850092469250431659557924965645232741977071538073545116715274743955367410346454897803900000310737756283629714638434954612829893743740806798527841634522470395271220841631854601268381122792328930269329934431819024523449648888404760576957202123647022745932438362382596613581451784003613907136375876371706155187668251330721356873619210125688427581500480437022257181128012733921153383966395069572350955292960354536667636846756882649476278312217722718161853625731637901636984234631989636334732602253349676207323936163209622690093733352075524623359735175551556497590274118968828493387859594445559653771994148706888203373413562337037963905249286994619499284686322833801496083867187751777510802551259892865530623446931682629128900266226437149177512169969740542446867511922335163353393450773920579611264652008263165502708168635803199833333852497861767774837678084478855238683950516984668061846002933558556248891268029565115985637042739015288495278718499169826881915399599239126798353010771242185174569527989062075401147827110724813172000989898866142228765253537729188112364152238914485175011066822031153655634343648676578406641129506720342773560607017492597636089960685425402246719407007330083876341621963752787728774241001827247635999170606010622222014494774018627227660722699224898560553584999543262592843618768308626100289355565671464965618256808868597459844813765845474781791049675306852458442036607737721868232844894256239476024202381243639519032088805112383817466876956024051590564471092691782064410621256039207870154489088721980164052798005579778010689612605747658976933237177707040735779804651752693890744243357863792568117096323341524802266812990211519926640890692046374218807903917862496624447864803989156086527434424644859649713476550827524086968397722105862873829507496059686706298930583110475333499357395918182962274060240249708149723315772209815005976116313032838777630426101152359840594373798077229342876725482558311981591271631971636264386035102514544074956847386477939309736417106293013163208778485582627973491893545727545183878679229716593730442618680251356776614568865144190759441405946398488260769383715919042632537330558911344464677339285289320540079730525937309199262022884533541219190961226176779385149096145796785954370149047157743069829893116305592491959646398149324778997408689908170416915165614952090648988900449035001226663189272366633378466364575658349710953011387526369584055887941463933192882743928235480538966643141126417188156112368542616831740894191765321588998076090137986855357181359098282979312662269919940824053812999524032199354639191235088078027747717213571796351162642295270661761906264510580585322547681782611692980618383892049592049597159964054438845188230362996509014435992101362030519232290382584378700983534715241108570166239606513610609098991498821891766722746186124845646810717546728548651407028907944280882064004939186499660907072064776661631137864275817577369035635595795022252685234377227740428396998272015524387766486978985309105985438814493632403437764921393278657028876929551047364556876613719385652289808618439713212601335939083350872736071073572877844365780359885323561972200824837211626403269716174116121913026210729195362150331846068198187523879732919623258009262046323519732792336027642182942029372980041621130113513563688885951732707443959741067523219735460258465671023889278607522505761380513038912196588009068510488749535182712597475105969256947549889683360188894853868245509265151622752698526445719757197184920361262926940973346068252865350923759025904347462843251191761049433957835906336903449803919972098801992932118955332237765632296584826968217213360121024129961751998305995468757114650513242548234533039414420974472842774902013979151734479090195959097832532730047863522283312118511880285734771544180987103591014153959656122642262014414078122432713497433616833994910717775827620928513696300102943663889621252103200396880993194604525851396964583190606637106602740487975641398000029016330933960528138169806373552097479419117313438300901333703170110428253203639671270819178787902406210350746473248339315712475822177176878161849505727839214866606556537684631168568186666430415814262531364011888029064718612388080892596903288213668151268999991700930147037493050710142142343302520424419110532815557520584458715258866180296835417032185412803029110544872928481388727218382768072252030859175107835353839799000066009076325482163002952614414197665264857168799416955980200873430330298803833131695340941122632661406463265534953020335429353235795428004471116526465762339263344037043488017042063995217311555662624085872854494010464550695092951413486080614149021417615118681585435052281688605556317074364821688363027627994547343995609366036636724886295989065187475549554760572509601376449526133086494891069472310888711047894074963025326511315554555249335838247754513584385246791912451408804931067356991496126005814745266100769255613608518981704609598357496559237558144449161150234780837614454511698216104065600751433576958583561648418864313676172387682880763126076989454331012681725122118797067630289450414521654132797907693044661131881248937164002402293652413461699107611479587990307400397056613562117247707766338848784357992495155908318092170898612436117342894354272388811974547213754515828449000367934722798456065228360125750392325437169822530600166621212455038005995811375645852975035814186044644049637031515862278903785399969387010457884184250611066091158994513947217928723389366517534087791891508602545039060018936800173892138177823821597268518097784703147295568035804353742390238535786472491761129394788638899998241860067126995376432689827930729275261844782336888015293555652201412738200680034446407485712679408621679421287962068946830349817227409775364671789162268226213393521467388467652498646009502124490448796413606192931074178086337680837516532049930404499708385094325485147856036235003364298116294773359372311455371448554825999482590326625768910116211124790791445224161192950348249817496625038586065034907972336578766288995092993417740837503843351594266525593321020094487429592863879753964995973576470521581923386090021595307630808289764679412221046945165476569188796069139265281013273123911054224760155171903250458161688444465773381307834940343590410020805267067069064398694696745225954350199151848070637468591075400220251600453988770981209632724717799259426796655514153270716398905996048233616018822872024261942005135284273645799672026214817457045607886029891653660434127954308435741307359359244034927784436657248834758988991078761537745746902748384368034055359060922768136663946861983232355897400295383308896390307056958991600540485055126452201340032356829707408041371356509828649853273361030676638500449701677360825732183174891067799249656603870447665715369446601087183403893643403449062033401071268540619132082664247543655549526651759349271062685969940737570597046412959151467867254861588540836825706033473211624411067151755419944946292397173591921349703393934272566938411318444297902840009651084418839443242012836638213486749826058985856717520581395279577404883675556180549230796684759726073438284477781252321326722851479015810174747674114757252974769197020193909113068549053155086804122525799205282998677151383045671618362542389589891760421675207138282578062816360663853694400195669500062986080437505848285323029304587468645699439049681258667035338417872666609335151816034893268241292104977192837047732074655594453222263489025128556102213239796969354515988120131890102402253096244887149364917854279578723060680530479188714573390949317532526248557728404859996319534042131649388871410290935436760322578895951503943445926418583032513529693115092946409128268611371200559205940143579957336750420988966205770669244414869519280182616799177668648598932106580836500968404672358310574428388146687731802629467068283827981253801083461277252517839549760074456497626861707707582331519209242455558681470929117406868682448831881115412771131633600318122028920640781976127830993453754808836107035378728105524592875422132493141812411255589069273386383014582316691385456393193166846701572088875929718336236964896360708801538726109160071129721497030876545814054308328815557141876907673016631480135396800450337298405506194009526324913554222511517068733751622413929312639684269733568911642546559870752148577705348644939748855359177782429439394556269753705339001514928287575948232463560991372921765205628723373019699235408128232422011767181873469922669459948098175535280161835324406334152012463012389127355953170807048176298732258800046792910234124295113969174402878564452655493218603115620577759186882425801834627791943066924569564142724183053604594944241932276436775210681716298897617062883427766938661566721799621438129800459166870093663898628806596804008302355716683058323887603246549509968286169073767026010838210421039553311471757555266662333317112070879850000142731304929902213125598131163814566347734822194951601868528839745431975352792926830180435962476077993564328441062355433039677452280823371658426424664866981067842915646601841985508481459224807763211021065949078304355531751816702277605197763516992740712066123501897119746787987203367211248071715153096073009226672861880013717055714123514920200475612994250664830119336491997938286428806786429015387478235172190105401703156577581921002971734647981526566181483225535066982419407551014554494650096359911088669045767135960866408476467805930340722591438242872064361318272555578640020850594313186239738582023209360506818241054316704928404848290157506876549275962417681391827784169448073574179580588367722831208651984010362493884504948978091496709452187129922959505422857427940538033101188046765355472547662946184382398409983337384615602298544237404357786186435484900506749278923956920067376494570525620844358040773977563275389979276446811045302800040439719026475278846307392703440647996132685005626466535008593949544070040913457755205968352355179724113033599810150571789609667767478879454178872277637217090235729150642055268448141011945252669728480464691075098788929551236864310628117975045822664949449452987179271022597595952652680465659289041621656885078966112892712212157434633701430617212112392304382409575780969871872164574733770084503207350018590910598904876813413995313066044241876973933785465037216164616754404870567229761835441957916734136516253322005036028155967651384050507213964676702951450288696397471702467516521176482789254776036032666807840641705185054930406519839778995406175868646670079444287238594086570524473271972109346514089413895964988071005162016625492480523761483841712323806226192521163497273587308477618642986935383954852823427627518068542359535224701737273646596967594250456259144777668889102749426208146847551801438450589862708346999126317588129200061676497537101286492996241592478013608729392996548298443300095979692464363650561674710040670247513432792865353001169427130588083610619239347998501668721443088682023475261535962147708849812398490462579422019385336586547314172061700798478354106623282599817672113568197839268201542959847043642201654425984547484037260972560417452471939458698397407265483811059064662635501313761145595669354240795126883051774514501921410210191211209424264193521186949370995983138080444776511645220879470980524272018622346904097819148336129094942508696665898020845714022501609918446704807924172316162132692371582957319504663077567429837586339778388048762846766239366430326250475674549281690178616680482009291421222799441658705559589198772395464997559476774798578165990328439175157552510828108934308080716290442548931113946709251708542715673171183555536216747308107935774901660652662416441551942698415928051800096721863221569852340214661235631207442932521456632129728692188893813690583838069987506065949497561699963910679992850314217325461327719442692433046459149289032540202939159066232475225478503666730166238780621541774985502850288576407021145728886719732409766911654207203066377104468309942647726435651302525542428970004683499777191515972270713129912961771662357714527636696495092624466890349892522925982125334543386024765294730066408540438440180154301645373024310796961340827973078204442386166500707498606301372642538695027103086697185925309709697313724769693747883913365290804575282389512430988266984969114780019736930421765293679529226881234114849648690140276317740033751660886017712660301464583019163850028006894253353997270092546321371473738023472185073967889245515567803039056985162801849300880149360998408356203099584093736856169801589602480293650806490543215553542842642281884230031200778313419722031280264292418730573620674297572229475061236630746728703462051098211485258020350214272360861765255859818303229380873315656689812417466492952925903871837592940284503415802573127139484490875050837331519155802593673794014749109557880190067796972973208245503825658873437355661626547056857270715420618884412375602131287897522791266126684969657961844325004564872000826895300581360713927572003908144208048687528094191593822926021713551957282641468674884459844845707918151953544477535646861275413910967937015209509631521253515766327145747573398875427038189741666592639739148522333274157000337227236841343133427150764501304283187982408125357172438818016322741607139956599885401409176512009000359554752537670015857115750522331502666777127570477331827970724304121672283302338541909958791422422707271618763370151424021836626425832052748441345050025719727138971218327004642356962991136456280588124929073866344077470417057019487173335605444685207439977043105690640880589958443721121567323214678371638932937565872901930594824342593662929471190460855406991135303754316111547758826483409455478417718905565822218288471252675840693025400919294808751233404550754478443113722583658167121889875394828528801609221461247129457278043423646806705502520096363686885499387713088730569869215896536382908967287258952400957682877066577476389329650179007616235619932217213604659397102871251814789982082320992960749714013282387200198400909031244842819357450166427605187835976926655827310387653870000461560251477021351117004984958609539236648200586718050661353349586477617461181467070690295227796704961168255845222145417369844533250488942651602969987386418216235065768727007799490667305868122310915265231972111445739972210443060514616410588889517259632065144673290351307555543254229155097276944570994500695005570157423310902652149710299604506237802376004463557504526339569293259049984791800850008952941821640348360272771738916418661050123769354254056779014354309548669174755037005330499436964037002291577769872404916061700940308365295472417916465418900890539710785671406532849337607519428407077997631459365406720416167600501802532833666425927803902158145420518327451550696528315874049424876655361982309426300067989622779433083302095436439837353500069056723991946619083032367456114177712487863951538369925038744891978823518125361559525963928128613559260322823184625732244995449043143325778702146770860472203000383742070771458131447507071264296078188852169866858193861910908923222524528036009898971678620829934122905847973129345308965863443470312850591921245771703603357758460383726248672519600291342429802495370718759632739275074246580559625531660483815527898312664015573260594536234477161321182092046981470845776902695754032594344480892238319344741180371142233811810452432967695398197978246323666893125843037296358887861557267246089611312175642261777052902373929825089780422666410089832744209050705936213307568913934847132379122133992567927522397631704894125693530931432662187719810640025330947673402840374137672498292318809013514727067445076167176737803265436349795308757043563893817423559277576488233261791778199951960073208439720019404887957211347135888988468687565775616098790876703737941152644388532547081616853997934739373188924680029127950037563154994553239481030017583121969674719081089401665958295477790350414438603180286963739675643216681437038874941306323121663245618364132034622246266373479418556343827650937533947688339056520769377346114312300668923247097346044006764249410010492668698215269665039563361823316705525630618105932177028549438100023635789481045397974983478329992628161263486067915585886027540296077339808020692029837742776462976626758646138873886083062752182665875519551460486934945011914375570844078877592878637996734070037833718940565827849161428403401806439579442432863211895482504835445259432078663378086997759012635635936740241470791947191621234643503679581777810126012078252770973117857811386999882644789757113395032684895008316531059010124726599409660379278467465014729894617030417822961862115481377901833253453888364581723212980729872812002930164350791337833124547458943826693537091806988833714407892659059274097646457609439232111756272153066995470899669873576585461853733906064915073350576729706600719554632068427539465814593197420737412849798718612016195518241156979752984700477078392643053582651781198887439401849175596969889730640241601452187063474433684063215477847995672667852712253648173643935795973036593136408169726190230337605097159782647801826102272717473298237311679026312963542223860922979358946039378262726866139116532005163189637420911621082446912777433478175187013224836307008382516846651864492039043691069429765858031767022858363542333467865462922044409058518649940043908266717684935624346339737941748407836661900863048070629081601317112580798495573230541990783064695603400260355214252992930569918625713874898955219157381067872569071823671432319202082367899111350029239653842272119750754335274633200618591147806009964200675470947100183065415046058164807473190428273329186004640752287527342015453770883552891971397074793133286040629349951478387764148890693598047100024813669440410328011798433456917047310126874870331185759823329037809536678345038789508935745551243922189645630698771794201181805007576041216831645123235136946818140527622449958075684142918789192629703356435847523699259433488749795499304062786573236266476163585967336694056291978925028399510978934117682602469692565988012714670022331561162795114073192794144217784404838831672357616478726202254583698630845714968901186220037824098565933414543237462278205577920274344361794977346778035566202503910172901515999209122646237857028045838491494569301638230553025917815556884636855996974461666621395036256646183392969756778627014134099067791181971336968263744710943305502522064434541680111214189948848619649442392427560231273371709495560850562262212619739041210203840109180086172269014528318148011913131214432325125622640550505254231305045373743084959029544806923570989593643533114018049050601083164482914159270374448735217953465362190031502471802891496891543429027682762831468218496105112773464698976959008943548659248912953066788082343059629922511257699487739309171231439478443205170718058782128824474136766213540525189131276837829950490656799236526748467647846556357172532713809389243572320686992213392054649842198238419344754062408206205928563140668359588984633073155116506462861111256554664180317007213186191222063339365026716150624472120437325396058118628589965840743968210506122957851023524238381118935439467075368044533237192522605009073491549727789182145801158596181769745274244230472787298748278926422901001906727009479975252600730166641660044777237197272047722479892781518521994536928978271244599341611332436203187928737596877486233953829034872452648897007568600884010810868048082121609396515587438090396426461760072327486720850272138677360438519159775216779439134883316854456399205703538352081222524778143627234772182765518976052637657583352271017912180624229316203315492911465943866467576531155317344925414007332142656655675368735947575123421344829949519866819999720053702062628622398734105870392904878124188752480714225403972383175795423498247519217680581284596894553855378489109231779018558735703995368329944322593047419137752865429787651444169686715343988389650680830576780411802653334780167386703556677949702276562503863223081441051420868792004084819482413658402795790990142002270254918973879106815944765894300384459588011153340601666492841247772580877930147582635951536813256443073743609230651986333678730848396566986295337979491568570936886536955823315242330448713610598838025114508189084278198137048376341859479116421341912199376164999426866165081766556531390108184464539546028553813938901528088014579014433681279880130886398347262345953722852647497680036703767763581836351665397079283425839396289743767706310256062487987680916971573241879600590773676799632409425212043822849632779763868890175101861388313949882922011521384333091716136171525441379693150324979378866205144705717081242530841535966573578853365341905187076547444102731336361109371825303365438308554172569719139645509125587365839319994524112741489706235226198104233571967685765950759796402000509897933423975855624611516675749408026947442570351410026575806537788134450995243200319507255064685141970529903369539066551405232972528731478326982468352027261949064309193052978945413266684553556989480066168420164069597925722333845443792218425208835806133575701200601138624859751654933417482361242293356471997018613589002175634604852690230430793159753314614700358773486766836645442031978723898863323706897099453745856531845764632410972153849737910536405521286454173013035598502612333425862511570519389449129439421699125095175608146516402628452709471975148043456658172345534480529208588711612810548048115199805363803101661251866120031616995887296736903630671994747475672146460898145616443338035425053774449497958651827317575520032967434747118890336914217299656650869889303248198415863821570776704465199533299039098481348252287589033765297241679784715410283855947992539631699641701167243167178304946376309264192885371210050806949335140681302357933715719164579720336118094636401109655302278266378740986387447125924568067269496736860128846919982635162480165766882365750024506212721242760030597037330871733351190343009595848920201132110446406464843676918848017042505010014545910428531314371202072294224577833826103200454633361313401375810763404292630435808557310531785625172082456506243658066710416110033824675326840542201009545334312225629548652367924914643137524312253214193990625130000731226938149736037943215070305473143057827489168574898041012417798910974745791196622463373244267453415349992292022214891535946801776997533957457732229079239635774429973158893926255992995628524192019721635270174743066093106428654830437967766621148354212976264157924107510217444657446889815218107690040657452303469157269939649970678021892072382149855699924349919611613981667854456364212072989851028452822642863564355537799240465724170160718398515004206417715304904978923504450051603274940460041962285265908295951679304233992788563499423398079512981306060885988024964812785983781301094401021617812148644927126905955380113082824880786682617282968371230455314456788334709026379126560043938271760216085209981511173421595423832510771509189188284602436996086840009804621431016634750174372068065924842914255689167128894579220566684710582611348355025714171059113904974964526242808197653477990632282255664346692049447701948440294187459008084971694243025321659421275666440314448003089153561327155457627179443973917188477566157311417851171558841967316506108196881006182361763529484736122661727871487848906107747892537136631808075771150821697772237003359234550203468205935354146801684214562245540403314698652163723402795521030168846156857160243172084511697296178831270879615428876990773041315058337320800008956948904632505256913959314264466346870586669807008530046991922645944513745035444428555504929355606850447438395530521175300517706546412685658035761168598630819165897802780125147221215299681819998278109547995043542801807283654362612374352995214219207386567405756376716510934866298450825112054661877074265396582587812347544304595484540113054425920426721577583630866634652583861941485922970957317666836999177883989377817688581468420861372000305795529756577868113952953765826645825068189907827661401761932908220343972145372191287015176927457315235111013779925559366322871184546445935710467239777563493714905555922431420070023075207159042240578650458040183181516825302017267245054939770346213589720061248201068666169378624445630996973124027147919251294488865871324782504197625073662142194852903658376528876465588382140757858369952086940302603398243279723144686456598755984308702559282375561951680608530398167316717833328287690413257885817539849334417327880376649090431280819191696302450723944529763389453458386281476360557130123054208657431599790828009172647778081387277032492034377744965617198553768615120773590717703089352788853477353722923068973589852135664379622463608685440846269441644085686582496524164233306256157528448064359934176074255887504484171197919602168382886217539471818142918323950280847855358219406437569244288217154010504604519936036784017720287594043091559112063656058026530626978058121510701756412944599893821304583575182136021198905670457220693587868427027493263008758086498500587937695633248924332694863019152460720698907439074971506833003789842677871867301365159377358640138510982112949841046843280562909860919622809615915902439425275486198830673566057340686121469651917893090054910743373287419233865814750278393905143637740968846236559030211766710789160657273827887854417279135806304650466964625825299349481110456681510610114562405505734756176668260455296171944991149124012786371440894299489407487863989956293342970946653395214548858620810225527717486707032156132182255424914832514615384004829659612508919895055324773993553578293536151233355447075414950919731894585766562786718363883742609128723691792026125830103796500777107201228063485858955885941765511607578427510044115912057572984583244773398465673641529609160792374075674019018097963260282104159901332318596686439421835076838802811708048714132731570428962530438974434459157685336458188392255795685496730997307045398118606795578110632428837659429271874908889787960509223197773065520720175936835406830766917753092562240134470942902962142759094308840276658193155872299523005439429002846147068318325463491045760578460278965200131315114135184501759755093061689821305334311606582317608559702858898111622547445659153908554621904059018254530598644339608576011225031511300235458603953989170881203826872316407159231454540198546075601805268902987504407672085371233484373549498284799083909658316746158106079027689485423933099797072364558037504682800838048411711168263883040751069821801995664372425482701418451636691031801039945855815541748282647092969179938604040633371602247232433564493966690642629622258937138719559749745425505464370030901308765274929710059144702855450772129549549822643249230676403015131660212587097391034708105750253585709678523625837587551251752685564654033219381793118545664585784265995005009170390089297608938024981127902805629179551561868295035772331414054030350529405920230167636785326722321457334783024301531436339970939509286956808424658586607663016041743416740147446465439481255562980484240196759869488817772911504635840887444385724190167802032084218181026911325182828965804049386025898660174547105511919229043168867501638651488261048552386122409874347062394372773487164252674068151349274855802079298520658460793512785394078822553622419448263539271742046271070200729406074865701459857462209847678970964410662526604805668641992751778639071713575268625732032679847729851165782684379471496076439798748282516363228071279605767379681889135263199640846166174479715180633252303911631905665562741523653496393749565493628827247351810816711031458061530434438387496394823593179569174660000365946434907792276479890850762171385118396701510321996578280383066214377540900447176414065380075777335508290331664022742931649894523945461119689752078315610540743418672472574788969578872028016794218070471238247933293383376369062249109476335608816474029676456978556424259949888264430078482593935934059404747272472002691458384566188244588191033995060207953852226660625780309159035221899529347405471897548388459858409398166866952155320667096953078276252408817020528948932020582220283984444190578999055644239402845699439377874649182816593104723144815410691455380018907494341741128673174965509406311192771462775014710680453943683288503309454055498438851529308084101524310595589634557358340067525169192399193911539726705988469441459741580383503508944649248173345567089391087234195533799008208462744320912909626995819167804850833059311390024152676220922412797194354323878525113227477710515032554802884030166202792686861654232347358976035681248907137246250369759345157087600399659807771817503527024192806796801237416054094630907850680139769048939220898036103731972893713010093072924142403618729244883306516658518308597915642185175231232404686734657994103820965652896398072037476734058578077723123457530163727317595501929729295372445531329393420794614967993901794608397251905150378558119877223892613248763727803494983139604774124602043272371678952853843478716622665341416645292276970404718285366543106709661302536850843138209956041263164627089249595077508274909828491846945350514530682629444541847816862192905149785130828813487311862528051015810872880737318949105781549928018169436646499620676598676413160550657406116082393908581771959971776562112054300977034241882723725611417765184306839823872437895051293472255458377769601109666571353365075200300352277529398552270389991888644982911459320789756357450828607189149185148147107332602637662308739549225519138194020824764960367621036325530327583417152095941011533464231702964558037041030282800109768147907522759992742894738807437018564680495330598897439192848695288919172891832603818212339112990412065626775213706785258209246442377868717576939778203855356210329759166917515629222322436038035884135976709476808212349245346383344145755528434442734255949561952783737441485671347389347142219803364413910593973029977992418551106322995420474121891708935955748174827885136198415163253514428216864951587711251737971124930896160752669075836042099734565281199696840437869533263598592403224590263242410193008852360404401626150341329739874658918955118455170827612324254687382905756211245970934272008462367764450038289831155681010208482652919563015057855804410165441402178983902444118443764384103928373447119093509223444270945513196839952994417532138306157064613579703445053931625054236952233452218793324993509981207990949112994377395781478473988718662375234641916312628252504944203122982758972182655052458751690693070556108117541081335884052152893562254008780082817233563266408019928254672281010586022263195714981184054189512971565575724164302692941242404647833892877289402047936634566776312288096816394557801939455324265805393769691498831799137388031274398764010324866091658531045597411807480231133865067421229329961253043886049899566331623035885330109545792749355945159629814527385942931456182971720787651764245033695901508112655498896740600228524311587483737782955013873530231970003618070502461593050544680183251311010823336113297590481468403708392427070558564690023999238549903615689632255496684120996851798834557587928448860927593902415360132783723195098980479711306129815850447902243207033538519306462271765728348140612099735016735749144178128300654581416657973589526962693989411005973431881709116606319270563483491393146138457644724437354975079063037651430751171056393071894385612683509497445137676717140251121149221227357188290731903850124485212858570040112112893798568588119146376935067974313588863688746250593792523588335857939891769220160454680869987501970617324931664507730504946994017932495510613578296290773799139179929426845156990945606148723425648085134244852167891754757926890708804612492324756550296269546487763094631882421266954740045717723217727652202483254357756634720715511205297070540189183454437347244511543480471534396576523911685724311794921849614563939658175587004687600253830997103602544859482537931717973771753428695656442889023332352017483999798924337748643384664932573251127796303186772716789756942980080157927923472739093810923487533337956062821729521178964503506723437338051125294471093948828622400959402785993564364437621370104514440413100826450193416912987217868616007358030475975314438809299313506718341302431672250588204580746678125936489020358855318924521033030708238230457133759568754787801335073858015638132482302470159312733574006830343666024629692078517458251040366304616736154093312359200942095522183415985318257063494389278116219407020777173773697052028995389606793955106926883899864860562746064812130941167525317666679585306335365150295241962856393960175507091530655866948556717132148425144912528573879725418482393390289047893360506666956638688582015937356372627543461071947863190049133718278483853431938377977482665206468828578968891174031782645692763544234871173938141376944602273149343659619730889404703314599779069463937711103062615779420835862854477646572342346156810836925176832358891544582982931869670491815879455397835651078099211458123236313625294142123040380877387920297201259499100531803290493423519836310686594524341779970441489424348701163284322202182995216050352146936691252830127125539418573763505923520384761070463619629786453931356402104555939234590273742889514626446381997805253234379305383058161537460922010790080663462926836532024811639053057871504509869744340233244327375556457206165359019702363592744485671796581568460112369349812677110804218801479379666057774291173197051989994006432381249948737463811219843599500487717174627795920404199890374558499912729932495837371404501951037283931935361113903570542516462321509505869005591120545023404981471280390209674914898965589186418877430603638909968751764288248189852265280791876861761505040217755291366608969957889319129522748802291591843511251067414156821047804031879881866470324880761254932455403719902183389004205180209761202783391476570290957183460541496580313456560889325055929877187128637450470946178627937204908210519207444133410044049686137246976643755332630261666754666444793494203043132757101082533743245890832003072394133628246019343729864464168983496201374620101119172745668104461613482932645137434201115658727272941827362724113398142231813003921911952351060994659139110821993407935729621277018143192270506588751833899403943992643411701873367424825858294459795567086577053944348096826808270644119998166968591232171669637117038452785415958470252079608294612870414173275774095649395481569603334026819758202875743483697357119787519987052808417651174159563480852554850824033266662259109160310545237646016866861793668204210462605483166591696680300037419955033296946412766955774972318697254196973180367621509973163978407982698024697804990414792662413294212449143319691273008787546378343096808135198009795959832712974314324857770617453082085365679645122503519172966305970207933064147639147238440179145471693224218659460616323435778245469299478548292345079248978448664839161432986875890990039174492151569323730296713616047180330520624848464078836492168116602468799329294120067220931036955326351779251119183093054822608957864115170469742737679969791386011354565820037713164463405849656121275328523685500592816730749057172805023608287576887585440422000512738624498013957862046419462219156539052023337319304695147319205041602162144759389117297757647036031659718662299064497897815554740620776116589222167175969557801354766249721038265209666328469834214247467181799527403624876315014522814777036490969845155565852944820140161684237672894404922652979445431799146518648053670379335332896313005958543525991974701797616266054533919580982457315604408010722446635583483566111730893439943067838740131099695424216849134363257328559651265122581556680430485943653692091128679452592297238484195116913824973469477767547206641985538693153639293957033133179658857044203554850460728557877587697894425954500488875291956064718553774412892210121760188212842666066298778180045166670289691280469917707654819510055264016259939460209035389776670554981218250866639256738057306407423506369571180169273780038343578866730245767828392558564312815275126295441109110659263591399394122722123030574156510055428329428102319904046117675582105836848014277650598565228647332427063914140309504126527716851408155602294009648900703842815907844111499619552649174923829798240751109825480018583757310006320186950156545184247794045151465299685954853903081397730861754176210496032106336832387511613940577432460395777163247764718086595456266858418043445007957492239316667711234561653360298712590866083711084918089622535924880733231509926180829467745571629545460221856498339532927156171918891616110709891401139337410535473530757366293576708743396224521602422944684421474867953103574077005208389017509094621897039275183432540225431810148554011025366204625965242509288812642326567181877952623551335497239042421304561919709927426455995900575505261229020256035345802771178043734840921948971517582127904109991475507805706577219638119263742759639830625722027217672121238972391628628495428582938308368102613763736018433356907666141409356415042029760515612540556689745421510475647482645735697691985154797136540115042498958896909314879488508349202050109474524980168918858397280723955314335623168684529486839866086615487705929719950304293216445889804897733155821878442951251589970155059172437646698958950286294447090513231985017199223486690139863318327737681230890841422725337459720422494504533798767083490011328688497579947039047518305167900235011760801394635390154199394943168200997316263902021155951453724363559320939587837702978342563292919085528681973979042475276341602770736219180636398881489245439895028008834757108622354057962009993650486177540307447409584701360802987978125995775424269986927184329754605630078602661962454012612715323316731385617512038742711108099856813565572277831213994310900850102193277402690942888561523483587009604325524027345845186892766256041001761401865972070317008106104789607432668835888921749064931891243359280865374354132859165059860621031295333320647103537014699940359529976628387980844576284876545128135860966203092688061650318691470294319150533161081987800896590980754946195072247223715860311753333963269782342460803746583982026201008076278982541676571113385029280770684255464105224820464668031647391803795015387606116802611608347747544903181780016658821907379067625931992401522139284302610575870856420428723336860345858676778762084148285877283317236226034936767104699734904819517665840206754091312251459886515113312040507156316683808277422392217377517195599733678635805409231636543553261648616366036504603473622247806664900432864427507204496883890729127419701329824229386372144247342140965320557578311012973914549389059631414670624884505380437458346449180746489401436096317488528311846721492077695205471776980835762579174949472387949058574971895865759302496783841446617549893178096777463356043827001271616271183475854847449574348255271765359319484183229962127565043114550880461725001561621235613791061883993965105312309943003695662822884719427564784316604182712844631214852386794657684444928594925335733150010649862634072477835629833402925275980322422556483304187641851857378821110355253785053319921539178039204409604733746929537649591624138544393807944808579979672615922530916467801305211143208467231280955143374548327383746614528434637905282680344517998556610071931270199582723484840128028529462958795492272518209494948731822184033972450691541897491159164198278692891311118519268814687035183791358047860719503288638147515050121972850118519820862267441625731191370349078657225412000530686531803863286849158064144378320031837005600892482297530214861988837658160330023554524511204753451865060817321952961081699950731659261280950987547135847901743945491905341027084658584827299864424494216318150445198435115846992664752387344284417203558695460037889601436893158509029319499499647495447373779074895682045187908225077360472040105444754609195834058724024588877977016850822341158077118270419622203317481034089891427672441037786739790793141841887342183297505416546610805359401289657391250116775528896730310446277771538621104416516169596699783036290178292241230583295971102557806543079934987903470553362711662298391508661236103736026601436423140515819107475512437981958682712121808189833712324342774232871955958296098055859365851170923494715919832031266568416051237847285613858893700778896296204155601130974578882619702498445924411707007437165862445653940088699957414733211336191187762902916801894477751171988610599580162691231393846003179502363209347785105413932378109677916474893450407435623733117759664109130140264697084920779888106171601710610553861007823828401437763060153924253225523593348706416954883599962835930330687108240129661226311207451792289435286479001625385141229426322203651960183077659924951860869423086531914618490700569496148853583330088401479285093006978954456660063233734017623964535696032156187854011012065278389956086353921422391380126105951110983553721167420113736141787243593079942475435657378140878783188923230432119841071803351781169220314308829200690956458634158850546429249370438478778532894396473374469215584191956936524682256608909763202909023215566644345501679688127319093908207270224622960510613751494561528330957721690292373727796051458230347910644287972019338306976535863769979548029369872102988169437833603873760661889789753004237082528142577303906442072288004590506715741490570568309772215574613878042716600036970170641905030040850374488516396115837845273980149444014929825599673207785907250842658513353297098740878947207153334567184661986269171232167919392573507059376485792050157032582805984571591077610589937866363789794965622298946065133254700638858496967299350496662329735381770776029465821881026811270441444634788345545523756802423746475773758719069962758039253234549858952272740676906415474312048660309300379067484101494887960748347981315940829701611603936677708274575011133080614268925915879936117599605479147484460619886889195882090328074727375659406510736366222762546586599670734758731275368361422938349593234435415196839787255399742659533059842878144938977299553273947040133290120170296697680451921583839768343005442301369051501464075441090045488157016565155967841998367742749992863423481478575574152974553212431584027486232104162560390274569638080118139769819501318517243615552458268506710753529617062162671204821771926559749183701706046463006435575663661593501490649252304684410586376451660233695153950271217971466060237275481384780696766370670435812511173416063052064221412132383980954285254328832904706582406417749689216787292444285885086796782984125998250417920773623086851286385641570651823929520856139290851927780929896393684470519849672530934425893086575644754304003350217472637694298524994235908373225631953878777893573814284247542200849157949288878033297998475332037771521942921480898521637784027196909331375178251321653360024267929308621717544816815056133573332289136274023414186128302100699064631913015129314704381166200006189259049216272957314405765385107527407651255887391311103091919516929826202820274106633158628491660171707510484547245752361986864180177831254600861630616294615760234025120623393720967064231825448958534377929261194919599529157033403894157162734633665850354801959881754125296513777401412053621837335345424545742580459095754553895215962016220733153700115897088905206118121016104740717560880717099351285262214417934793829302168978496374536833538483874502472163882350401695207116540662976970529274549551310376109493701708542602350366808168997652445439361148437682072659148072204139734898083382991570208290216896892151310401617411275427520930235362678680918197547241685760531196844077807144760466722007262961567187795190969381927515649945340158635563141378511602265915074563304889743155294513871645769781837162541654010855526073551189591925617225387644432646043814521237188466369482206471230578714562017191227707843173738599317029975319012790880093586424518347380888166447613860857904387422797965692840679761594288630317935758255614771453816982036782813187152231245093945372241685899082274949114533098329583909489486010212632375903860504448521270624478689655029546911621985084510229734118686444558470459067700501449137114397129501439717778948137873978537545022220622644572379422554429922147594071718002014915005015453745284704730657942911087446212639599980974287665908950707553420810480323142227941916472239333969908002504778762555117301717993643661519852375400906966906865604187807154352173057695102573373361539758369936229321350638068282582186247609733394496665688650255673602273840038878256225508271363339658155314289339862832068387690191098812626741793333525566338161243477032536605889547903611931928132965335502578696756654555318025122122782636654383133682240923997363597951070694348404416776502341744237558388668225669590820179624262879678425410861425959118335047029816752044730201376657786930282070693523807216069897979810836597658502927601385481871331326548437970135695035789407376146096552841537576259569279461104993533186384580565470368193952065183381130910152146297838902733377670278987642992179249477089278099920723012427749053735848035073365013266543568007080798432191119215534479695680142148401539391856201733543746545348482129953192508547360271636498046334009635897059891195646904616895975780792436589181973591893548025636853792060812376142981212701397303410256400386198410327741905213959654265345026394452560499387908849759241527307802720673269712294739448532873737052124049606768504344141505190605063082870559408587498109300402730506450831134716739604590565190501613174023790028653593052457859716734537109544171269348918516659756919630336679380877233831928200795809300117990040289706401960829690601512864134175069798173171320400368039034595968654044675363155685258053992104577398868664547209936251333940672860812169293313211934192017796410449691570553951129863398409434585160082073321653847054131034758241762913555614435992178074477127901993387368083143698015803327849930429642430547813318645334889805740553366879291551681679217455329099484407471002352570883961710610307622626943323105160321807938687245831007639857638058553518735018934558045658598007309418716776274418117450572575325804302695596843664377017097306261330643327675871864665693314711877589584665813875981606212079426135555226459004529831277372270802306637637643006221123612279749210357772173693721709489320167194926306965055407334529083680698694131080291967081825414623180301354369827427288211463763199043122093191834541194152616883212664516611744563711432530334450160784276459689185002638953588570910163700931110427178840964996088863265820365696938000788632261531467291135291565316865973759324596838505569740235820041211319945246767878156022899149795664520784485214497347496564021548143630466126697938525625141395049413984731166130624360182128957727768016506476148130039171188475257391575693729434055731010748927673770097598565275329511439490215968675468701134180553657623297616837334113019437178324599575524422089514994946836007612447230528264626714226961073043524612844432660090914755641931631464177847063997173073118587695667450928391782837965318432011524144860747841026641814235469940181016346490351590704333588496180128565012661504144070410129021594678360946863043580675282629655155519628709241798588736306414754227455030713736638710481291311114524101467454508550432327812001316325089109471834798316501133542768946093685716600697263491387226746574398609629041316081963741743655874968911480638773087979199906220031031892392855964066124019627431866293002594954002642914161770003667119455918472136233659669286491387918881978445625411187169883651022718080632715502630098646665443566247116633745505182684672705292229011149275635127158974872119133641882248299754671051536424746706458944009402124817524654159801562224583186332307505813872239752317520595546613855439858950639187765371364024170747073797939156603151313833164755902244339942140547698204455597946624914263928252898036012050903249089135585802443758350481357716784102805223709792413605866008335945038498156443419343066843957792727628163178497012457112254687630705744593814909800051788788845718442554107951417674983418784432939221828930941458465954479598570686701214862151770022856188937043535993020354286918817177115805385928390067729862610491653322590894855943470169936724947663086638783564929019839106135972421301049434362040774301371940491075834118691590571033122895359641008956336561535638921905563218369506353506159833271783953322153575917211657859280554155320342865428717627990698503682211931966568955777250216263166839564244249140614782392411789569129739390765368179163324801055760428833950405118704551819261768173669075187374273179938018000864017721434361227448088005471459560088902285700995663311413108910646076097262471019875557280158521479631985248763289579255050549199581637260319650034751606319586704955687209045157636067169091077576896831704482699248031711859934061986205886091800430661817800465453444956699433120050895702437410087974544051648586080070772512296375514811749998651398816199064366941339714641777665021660293308152407708733654740294948454364354711680066504958862943511096785504425196287433819410105023519693152094824019513809319701091602952734113172418479486641969988598456786984012860858023469030100587864477303876289340948002402218217703243493111805265186048196076103741296953354809132262206755835749391109512754717039843074686643482280767660202744549288584759673493206388048408067789369334989275018056869873047425345298394597305600730607503185985669999295433658947656518129535530761023265624828770476403533095446762120115254460467370575961940580608980568684118760686697127877674348855536729654717214710998188554138928866120409412145145142206876371803525846927782396134530342147377425844195531177858344941719051087310624124745665581290902736347948203619764393825236440273130108190653780587560292132992534696696751790875425287685687825599240331285393150581328850917104958381458964763683354631321951985792727143461390142111158257471674192371718141629213260845680324072688822960134816193897944428880366369527258070382710248948105799752035388500371482667170789009295890265399687288083611521045705163518810510077578421638187238026022862562043625656930709603866672481544235488477042268826327054690850652374216502373160142105121282484050642528168620740195526867382528303609783416986761387531078419049955446790669069787121466098094597363395064050539595288811651521854069483447911401521853489548421050080448197839733516935408987661848527700583550540951121181586434919097176186002434479831200736368705473533660270304606231179620529571754505685067624145066894218908300534185185351928116449291972374169451875038041078559367421112779011218071498372633810267429531747021443785907946756495066609765724606981823129129986405097788559478734741784838594226489903484387524892875637778296542252562633330468632316605707881347518942714222436530615635139313781741412925717307580818114755369783111429369670689181559798901848185561204497798729437138375621515167221806730268458700595519156846238857199594590601340768979379330772268758685492536511265677469265930110187235123471580500661669271778930128533665721004473369797866814278257206899232851763774627618907649280143507975169995967095532908916148551611045456489009552427661726548353557316243611112215198913723016381676602841797173629577719357751550691550573720949406205194735387660838332478240763807060879288065183823371894927625440905813860431836233978554644961381371844513018889706496024887234114810903582768424702574473232426007618034649629586556102496974766505246426314425257801628291219493412485203896828577814048717513845595978525071981617232465392810058008963854024303987642445914250087662050394201352482529194753859513327373879360501974043864218563139270200505849664527710764146971644174187412694922381134409783342027187702650848440924389279741512670611952250430724101413197597178914768604181147443958048970986656574310998041132763765192201224815597149673378538051182963797057764030134179931592474792110706648876289206261866851869310516989365284327827074018160665148879584496910947687858699990123663089664827786300395793403963046084587571535677954489858294363474815989808209581958317902887134534253479760769982657172132536050191797785583210744719529893021492699742621209931992776861933745412607576151294698187096451181222959658901853010920734215634311623788143176651639599262479088588336709757905085522131588510283818636466845951196984669464940137499063495805460803534624843849354168325657082907520892139155765492934317572489530978629947149795200270945114631566056434701109157929268107170820091450992024135013608151216308144882665244136438971679253437783473090669795844539407827401036909663416475970060389420023364033357026313087086916790168126210792388696425500870917789512190077083603312375714664995712504463101423353695784256347129944729605643812846971084134942185075279650347717241216510032069794712187067128342349834314562692556973530517775482415359667568691259837874731826961626690086008431684822494888505155143405078706940298065107810048830730604654651978168892131223326570757760698055465491355377238684050116113478357331979512726414485251035927556350049621296538644473741470734164469665416165200460082633392755887828725146190099231708218476472542281639102031638423728385714887116487391365269027899072994267434803204316357990042997898342507489247696584293451921254949032866518702934981143174055750523262867323237822925661857640918697026169055987845984417085175152927536479654083717726207507256279915175399624183618040819108169108551075616281708942870759525638221741753050190439397574929661098626293321757329632472348130495948278181655137175980970362726791783693004563798304223448580024805750023585488767039899575658324073654020634074174726878126680324312383065535345873069256982155448361939422299842960912361777436488419252648601531394334186230590779223899358719365767946789724642496230315379302970669111460269047060024299129671825196057705102979781859089968902923208481910756178032118319517532053919497425805786352159316659466827222032361478061782878742465853252393093005833590176614797316192629694302698035898237701692340964147297903715578693175121361581929343442800486522622892070407912077920682263108357418307327463841042092995381214124125455868129633066571364900572517777376238837671073699744985358388515218036841051866829552925164378945600063727025297601102065633331023905687407749946522185674343026645463608728579285550288776192651924938434447946568351403811987053371649854383676991312241907996939082676361915011735390235919707261741474889166299268975598137155389575587982447215701109448007589905128836416542080572430728697724437742979159705462150196536768775336391875810744454846616986504521801195699944945982852861309118516473525078766360775419345253430645392699893957500862649269201673987349757738904746273740693484952735231690313842301608676917870338300629543894387797274670477705711242166243697194000003104700807598973991406820712285692552207639090219694555272823881814852097759061909260536532517733791578575603088031948594965468461963115568083973580029285555712298236285516557568915989575995035400310336206371028171124180976650157435992044573383731302070780375110375071711117926245600213172073441121522387759908203660020030924738650621343228390336228307749466074240551686095580065987334809863643048568455769834028742088188775368373128294200673244272449902752677963697120598046309331335182934731735679302180911809150881725689979282369005872641316409753901846245798155226287676617039361966559591793778513198605697550431278894640881770805992686115489363366724626652455989876125906654827215593741233326337317807056715778965453088020364018904044453375187438109850084824106581211716222352529066319669688950002378148641895129599126208035239138885868554382694645649592955197646459137059317557784281853978228774004998231593811581685260958166636152162353879974096502290344412291091985043981570528873747942440557058764225261412939996609321668586990132184983780906911632347674452216472794490715894539646000562154830504465644846388027691012942212885599918637474126076485267516863223212317916962479178847024210845416729462100496724866352549790384038272072374823332898147330105147794382084764284527464313668553942439678398466668676997114292318042396565500805523854092177818536691106978042173764375813435192331202390380063655936262816123167202019559392336261122426387410595887670429195111225911871645393105025282277783568890361946640166395389763099736961948457336725705722704741701929940668752937278948302968099088908038062923853704290493233925960413034110055603752318697571158210374076437400439258265955554751622676247049826017731811091607934525018366593487841176497807852802086056170294549984686248396277803077093652964361142992010800580896300508697708579780935488085082314770408224570802429975843936478738944931291955792137962211592844942004766379935052331623220228419784533126162056134139206514666237304028017413128050854718790131303688662392902551162508604631747020927215062726592150493992622618813063472741600203298643116360529080870379136977426648220884199508912018222532268613431014647673157855001606508789463652256982147081099902790842315673741966775085410487529105261113963553072129341924936020215653801062062793275339755621433179260549543507773799067744838554382874813882563768505842434826292060634365899468934651760174946559144420494630432790249919668154665567859349506528427968225712195782489865040846966373242694088751108368355705535486624906951909788411218464634001343053048711441557114757953070899205453994247986153546693525387679794396534751711208194136200814032992316048967148552426438127433009641572467943968975380815700701432141131127896759791407266605154389282501880726300089393623499312441548711870323003553106787489561766985920518835755761576049181529376754887930565567047085777559999138313599980820798202077924291803524020954644044170471954701962666679008378952870375562201930813524270573187356376572088586438352373239494444772572681595819129763497870947987369009810250601472084063545392005995875642506419705056824703419356652227336562207583523441630695843912944401113213356384758868508182073332623887173718523255437018333763439539475126040330339968036264209089375861359394732295639025807333590341763949553511213454947670074577125336314782135410584626492581379461432875674501723960469969507928796985653243574715063546629145420629125727830764458138613644014194442665141521130387936443042869211790026221589461089314146053996270150520138689360467540521471151095235835451662142378965689003179619404099952805586449118960343887624244765480200104481746410650317984401122169490228863774942930252244858393931221553642453216452418663520210637033296090166453142212685195364080412023275388873807106777060622020096671104317768121206792150927881893266237714768887656365504495173253846159806489889051316243519483618181272429520360339897917509865734016331984938313782257747795925057521772443852029675747767452399090751085943071175197542702154889876511448719749231961684494030362082372247670927493741520211162104349333475889408965850234506171876144026595687083794828243210957724903901773440215794696919689268641277669080828780616719102282527548473773870318878655089719466162542694241069038840637062473888868335036551565901365475650134703449246907205946148738830366311178797501641670158670786578587132614965328172509184524003024750675766076019075659933154397896450317577804883458899357901433532964766011925781352762308841838570571987713497699600505712958007550680588280826971482808084709878162043677942072836495766627530326771136993783473919100733791204137309277532520954914112059852789186097807969370728512552406109006204163039852294329132612120528296294500303712196075560710275706692439453958455747086494359421952782996000845726020530182596166196870305253426207009045410882730481641303476828290341560262208216739477963106111172801438296380594678530294483346978285154820556132788561289651360147274246215706277639150346567512250862384876073400961370446676881038378444989708366545579344342407396571004109695847956342948879002835190677225534986527084998956050148913518646704968415466782627809122217470679354675819614549269122576587070586493215017274498348038167539683499826461742161563647080964399497937704199582872563781575170113793592865566105477721844103040915132582687139712620845155262104822386340818963396507105971093493116417488838882143008190876966390398083208947761850368676481499587728441948386030292396569695799297446916094357311155737108361959862377003076214034828827394486481219494891668074974390702815712139683331062121089308771341483554284963560395275557409056019363304908644594737058973685143830583237936252701904365771841376946481894972226435722581002152232316935257288795819154584724881206980405836061852287602743286232671941675851758774324531881335943686001971460165955199575592925965285441083156462345834877912312840288522612948233180945969338162842661718464643257087147581206284893269225402474183752862137484100680459256189052369914389622615257132249286011046591069288898450913653316453882905668293214886918647530188865041589330623866497490281859224190175705769058802235307975823385073968412237161199787185067601763208993916731586237334221410703598175384663733730668866347693000346067609604569885455896963006813131196465427689906603220659912000971293169287051278923265331768339109870599175718123795838181882323294972819882947422058113914195760784703438957992086635637259486855183057469837048549756976527406591403231679049395868651616539960964505087289777327450396547634008813677237991335161351075457304365597194380278398494234346831383721354379091454166274057875425641257446396371281787484166241963928986661318673829628503670923888579712337413719428047802410851174893726775897373901095909843846162737066244801300395843510587034369030427390055203787931374282361881619813479575018330061228095323340251285086758856443213695502820787077888116768866001495045919160969565412781323777868128334933984830577455214377024061333290560952276055655999036523919094454607713765555751744794729383496600115849519306460100462089231749510861007618577481419811906562673367510155690479929883452866990796917196916043643990738766859387713411748001505511250905017256240016059842760732805026667538054555981317370863247813439568050157781997334575456930315024853781086287894595240824235021393946190876616304447517861553141148185345130399343890169261661589707173504527560049094392215824561680946039974909091403341095243241124558897094140184931754261010179462170322654624060758135156796153552687314422531086474596281994583764167736526533132761841555836024035851859569461552688366114304132326009418510126656901056281505646157790357138627449173891476751462262272447911174144001441463327821715145746667374998701502921458867972842699895102164539569803839174909019064724467260320459870467245845946633651823401136459521650449345395635719052275445342039367802546966575343593185179477379207998869488024516706414241454204260875212764469548596793008848591793484971917718240416298450190707434894007054932117304827511761219228731423975350080529374416034220771965886864034918996407076723275023508633252184186230126754831578792099061108859015194205820575834313444293778343457973475986839053518679416425199026082995137074944860304149536095326269328801053970786293770624096462523490690102166956486399296911276924911434046526071942497760277198380803940645351739227798472694110505208631083435570730047923453981424679028121478891791282211135538789616743075890662042263666899185958151889722999013288209402418451682716063463725472949226031413808265275484634526109197121572702490969863659421287159641519833945987455323558151146563061456025987688008447152867222871209033150469805268893386794508873412484534232842703939503720944824619106730387847590816325587351132675457725773287190841819863426266452848179880980714090859817538691482084813007044200223794932302466599384073207347686982384795922515255934858198186636773878827197241269030055877792543551502270119625648180844513282770162572243221491412426313260065840025984262570564571206652384843596336229762024455168200576933941792249945014037848059801617313129758654575337997262286670709547272989652289795193839652302285773120554565682092390535627627000837360612863879664978136539523494324096273749372577253173744106373787531412560715766308866399735519868965739293045066229204817677552181434319597781222413569474108872230749350914825472963413839367455027980225689346350935964124583560962825790235227669441293048047997148893909488856531797531209639065954132823341997465279068330473512329682657754460755770236268646522130641526836431229326232148226784307578170867135949404767620767567625215106740421057570924232417936419171999733189088089993198664990585254879437580115379670926611867415804853469492735866962894411210486192650552022073553063251531270492971559558517851425218717482922995716177797453632765369741066249879100038548576560529228071831702419001381863435547176733142713776870862745234800602650403427039114308878782009592713478613830426322414127010104244558610603861466079540718210014905019854112107637063821419548476373527588319942622812104328274476785529325899162999495970625937756551155515557597940605717838320491799251736513982690692848079348658320636737026277903803854892636526870616589943017370958537822678118872481423093058977031728101436534598377049585766558175968120959920152136637528624593609709985036314519672174869248125064265501966154798760455274797493698667992024920324390827175629430449980195779275768636494647376622784545837586749391709291489327153602156543715322298576489229392940312617417283198938822266124305382710025902156974440831788443809201546689007720057204356459366016225742090158336910404372173244714241724888179961437441216208037611876103811575196168777388895060328946431966929548034844099306981489322586088318372782293691405393782523332493276397684497175328529770581200995661466896650184060314257564694290977512912576589567854857725645161698802277158516925983480752597248272812609440092850539267361610470914922983513071096933402482188369765131054827153876295100349505380644276603968310727577002512787303640809584168956023468173469873898297394385272468703218811295291500205562289209123263704250170464796584633417246462246273117098022978660526248504101602211857012270948401453665722411014563865702095708336630753455540123292724006079309808118965056491953628328441094912002189918421831926097781502230228628428969598586830271034360923716749181629374796131228537611285849269007558250197340135123007377609568119537607151479945591635981794477443309446341235578142126765859770047236319929503915902959232868833776162181654590281641601112987607041503279376711653748526914941689207687950814578693457530309627508887020930711109808410087020127286348737930734604813432153350116840260168380113076717813091982174988821365533556107297584919120821416346055833096484113253960282701636489651539310940671905338582495055019168330093710305820548571955433331341338034968856106197791860478707532915324604453031202024181502594674994582924257109509585412468581136939236797804733752355025227502952943376238662572864026399553137922727125519032656508555106982712469875733241472327022771818976355581655255973046071488308288331131575808155295193320471849662436240445616592157727614891047975808109514031394485644929280777517648319657484526714040655826376056636676300832827212408553099334657830532371065351211711562401072531485881569541511013045192312810567972706543641703846403314797890517560660311421644718403008114534293552036287111182440670963769123961584026030539120003298695201670864183513740473415577992429441103640653387332026559610128817615554765790780508839237143183016425703799255319190911811627128653171252489357747649419946224051612184330993962055769988493977607740148331964905731912561122332222748640589816529049957250620302988427651889002968810468956607642852553194718511845052679006517035411799611418908439645908912169668808896885471125881840197661940305127484229061541173909301632939630645183880589971773655135437288540139221963461837781699929994268695962953229301283790674587860959684848728540837989233706620141543894286415627123112789749626248941720105661064887441719185671153814647649122510450361207522098227904228477065782162675899547142353466991329775704808942585849985654460395529606510050035849353472437699648395642149601535812462514078984313887325749120656205631947353304208477388527099742368008788401433138417235669370157878337401296063008167979977810798140486570647818507218824864493430447793880226551141711306767820513596349445397669210732233206804742855273380794847218969211197405675395766495147316933481359012967144987593475996478550868452939149106907057668868977187691074801120646094109827974302950413553521843638112542692518437046186825103057938020590963261266281698095351152634511644983279000517902027849891113145593066650822676704884279510392246027797736456252829365828850501247052733880217132470620073917746799998035924925253303796774652213426668543693568222890310437899827598529042308791129549419676654049763246428670666879799401657612750477518175761746738140693446146879797483378484517332307845336188931252922043578035755308788830583900644025015373933849190387466753592660104047297012385132113111862597250683401158089489578613546429052296322759286892937119026957939034457403797803370930072867770753840254763696334401760033493664035585714362577758870174617521489602449152849707892177566728514014815274902858131658542385808466736727972807687207068322828112606886991154968571759471269374568711513695120493953534583749860436545107914635961387448933687458477256169588502906424273354942917346493976268280140533026987064964810499206022114616975665589211096137908311538736327372870045768513995847869623549634460717241063877494889336259616435698496990134375240991317713675972247756043618963016892394548297538476534626259612189712410145598012404906315303363375848902429142184110472593229458630540901630321173347351342677407130841106019948564315016835574856071053077511868071510875179608234327575182797512115052589140703918177055759447280688946763102376131229473346940486984600061347032843494057451912769117083398191188872753331146837830291712405666942172191355615260729693934328830100883079095785680132167536044617423730826136414774052445246572766729202721678060713907189043916829474333785402930764108875953943876421132056364100227495086663308440568484004528926531069829395249937919636787257513312930589061803574834477465285339899360716924879901882796008160753689663747672716934568198810038254504771928431508519771153880020643348771448730578353148582096622559832998167270999292493459514431429663624554567863536256075792779654192267079780322854098025229329427271426742304326150485371412795893497240083020266405188775814357709555907313209322777378528345541329345143768223954818793184813997580494536065491504581519168786616480797364751130266812944432943122914906828999446878267340203984512885481402561265290811559311715503316624682383592020927231345338813949699725489164219045887853335299237441596089338219727501328532784872802832586193911279041401079401552423977905873774925969617362036188486006018790743394732777360893223819489597654213662456694949604068750564251286143257485059872415628878959072348100133811594977706740192065764198615408128613933112955731952852809410759770688990584347944547258233799678780334226912389089914962140101340993773545321474449497443176026832158553716558244962366844910083184689736175581986159384290907386834298311494201127071274779386723520993785455632924970174487286514126591824478175722531314710343736445964875342707387939781619202863936659024783882422266441973907033263314403581679488227889007698440536787599527777572116864890572101413506385538631968170241324123126165117959428234671336575029904844115538618451367332180121955232872937298857814459538990975698301687526608340690854739595989330157229260933704899196246051709991741810548843913432546932996039278621245587905240888385483990562478102098363717503249079181579630626054768246675440019856584976901027108494940073284193781156129561550997394502121745436596296706632894025751875997480107014079583623558454324671095037408678625800611268772323955292876744260623019325733010278336459395877995792274036592321229593293116823497874114854488110700180914824299341625515585189267886586955865759776683039158975088657660684329044261498721954930551276968359394908579841399668823001965818088640843335506663051930766964931861790862508911327372160544368017966820284152041479887573405606032463645895046577722849712091871417012804182140753516453053846658404475183707717312328687257109421301144250098490595514610068225264763146602966284640013100525547487570352488222761528757672593768453543220230957561178544551729492905427007199395151880427555272023377113482871265962931752906940790803972870180666396014823107541141032355382969871694393511821998725867831820721684625231726546539018102223172837675520760221375692756423463517424543299868956845999660068634219239558656397883492861232274769160394426596103552034776328467165169566468192817090892367185926573212474739625201077630600629788258102899619496086370663327272834028798575422243032251759375966636765926877371446910942187366803485344132692484908991341081488765642261108365751171846534554523384622930021677822186813902317251425937880839487222017796501381490669996760538642034972111423476282529284403646445466676582447916370430450775559654366871655594869582378258363346913178143389315472744717715826682929166165418146098817745239742398306301475279876082819484852851508829931299503326095741302644704577539350272311675977875178045952242310988406667116027073036246779215082253742778507301715178590565532161078063811874049822156924711909581055091232468085276887908696068615149346937239061244164495237700711218701440455110322729399803005137729067957581071777387146560090313061935171131635580037971813636096917827460505321835036405036226516971757919594638466521023522163925136617690697253722280589591061489230299912426929709851169007038027496024285765436783838349694438561048103217555720336414715787033645881305255918040410985048102030798429743863309638786674221213411289055147386444820679793893929451407932625775570026635613049260780685762092999107527674309187109041683637404216640526612098075422237210242082239443211081542529039515140142248709989371279490986315440722626911220071597667036259104633026394839865593147431869759285655155050389706031949300946641475410995597190495534256125394306455438494115815861746212790625845720941750367565708577167538759790238766242970708042050799985202683849353013762141364959576292426949210169676488981231054827136369483302397486014088418295426295715154164146685076991478519454597824043727727281969907229448267357118100700933721500464437229404895974730766881659407137062144267949400464406598355740777469113737871847799729562781217512782653349105635698248275087194488664179153093918043350949738330290600267930976092821666016119295296423271686760703952270622739232765620277600168012058017543195160579907760534211033098812647728779789927634117819200001064218272356775059829895682032556570422134011072894019163468518613556860683679297049008107781091425822497031461202039884449765033419254049419511236538900102856232992403671835660410761478087549235492923865878278050798273023316125783720213847493307638511887236034854331069689863297884409653745481324205527462937752994253910176127769124936389480282347446931792907063756655441629004741964720520323287289282560859574458653426292834627917981626282472293705098193580013292116449630894753890677549379231662211722986574497521779790951887827689089409916738287485458675869179861754754753518994085747253081453013420065588857398059439469657980908616239923906578071149653970239996984155838639112233364191961626834930196668535695730548383389446270929789009071607417210598912035579599787660037682754677905250449678260231426985317661631794406105693499876652159715506392648420147518398338747721136434592770133654227597356923047656179667409580590298810051870437281467414295104740116730841824236680864893233298925908532454373789969336972834750901911035828734972513695324059434269782636506147324708562521934603893121227712870578248572573680551893806565715306053417957562220934930785566770158968698257515549092423821029681184297311641586196337400337541564811571757066715737331619933845050563930327759433872659384571845588779271667592882729548658492355851515761414501369431359837272850637638344121899534570493361731665444239754647862858439061139271905386043321837710863941541377116838212734969607433640719409634074918093441025610860817537643396584762274725551960176730553646998996272868218710509091592342281515918357462517778646043168170333662607011691226603640108922605854541595460927318911358857296467736877783035423305480187370564845438187742363629569834090106213036349339470213324003804416229168134120699336568718984591339322546529834864210240029702846881660245703727102411324701190176854055439954492138977308879332252283520663922668037926136566395380696927902209679568126706654604394458755542457210401672643974943033313431062678628785266975211834334243580642193202546657636340329601110877179120246367881164810443228619266214125754692206368845590002016833891678622369059758035729823311364932931038930050544257902465286666292087012534631310249142139497925191656027840027298930893124458232396537623258867886466856921564678066892602088821492100965180372924401377835108277445094097377046420456762346050856573016449025868031117456747733151484074970116471815798896913010709228149793303578383558402640121413967607051855457736895013973178517200028397314865659770470142532059189169554712980837247798492087630216268324807657855120777829731004110717441329598036392939021163837163600071585370618051797021964561322644435297843823732223577794880443065496501253616316924109726622362021098933187648746293085732108535401588324726919989475236787585145664453849856078887453934253624318688908677893034853949655710715162528126832876383746594050283321929099339343553394863223593048227512309937269105285925277500311051046947927453686502027303710676334568385664621826010206019365572496192909686745407477178107909600902227606436796844895085711017701070135539166528661853762195355959247230493316869236520876003546411583978010793410276849256135843459650306123504550626366256028955053691272097656412605263080894158499233017909406591655284286738274437938962132378539560044171753295368695976683279524407593337543234828154454635453731489365982557518476759455309856586835513171477742439394322092972461115897941545248786339952525547478095167591443444703997621415467404913723666308214415820811527815921129177170578204913517500429440844787037959467233283431412097509118822714379701438387265748688468832758685989969644691680282871465466132782722854873799065245624588527085968192181643043785049002091291867419496639834216479290054543870145803434513949133562147679242214460489485799131362208640322371316360859329760524990484612558674492803097018612179241361666095628404600137899701587473463397388451509569873901379703500329883705051436575346241534555173159138138174814431442333319190170223344549382683684100726630130763920809363171712726143122326674076045569462618987603343867698221190627797208542652611392798415895128055689967091053483962742571133623562577237275135453645122798628734197866458587930393213219855775473249382148327804023697025525916882244181096457780131299190331766861814884030599673509129306066662998603285661598146682832781726074869724868422243855184135751422314093611515051435841887113933898541171633858066441280646866614050640979870502891812666908877902857736749641594333381097089595389896435989171050977680857388899682920983132863277484587671574669241617386394321842102402090724732933774567598633508512465015164542752541526963322870930632068357095777789548004070264662250798527738856826601424541334720423616174869144334003700791487130182393486091177340004190887194629975773590381835174581816629366557806345352276891690964421977921263800195169778566388094011790693317632546284981440540568491569958391061317753594421676685051405685129886251703738441034981753859305046784351417037329194365191191214494771878181989768104011167216014225951535600316783462774028650942400508027437044500896579572967323168053544202277490785643260419886445736019143931823832897156531810301824587493271026778845855868917361289334009001279884535751972396350043621297878717344651661303991129011406640383073650410461745103253761550593325281297296487207102447866941243907046835132163342948658757790595207821315363511911491300798917897939476322074752953358931866654431183777226355075282594491744366273980932577767813640020822285039879258155077910818088361894669986478488524270100413788625909680771582248666644771198599034405609799173425374564818102141472020992748777211022146748654306478475798752934246697613047097614866702013062583947251833910362355423467724440558087235195163524069136136239222021610411816987255234146568362174344359021992390718871698540692968361235797272779798478789435697441902158360557992957661750777952655331073072680704096214035868038752705956102767046899200536047258056729919049544420485562153457958983005532909961220736816725564530026041860432829990549522664051988799440626855379217893092550520736201499333147547378500977548197842672643020399033876576116878079070463050596309314603094173287187568822247636225125514903144708213648619489317989171783914992285963584853050338274074511801407380990884692260483724856897303155848043500770118569326940731236831259907532745558792254785010709943028457882661619378135714984398177874271235410994031484377911733471583345975355520448217542213062540350047918943731232575557889339417770540770084890873012491087232026394379234386362322918404528933646024999563393364561768390068464667627258192532381322122738285558311986402844637371613121561911494309101749010637559876752468480976978773262736263056255723837641309617609908634467005075786286863249458925826939874007454615226633346862518677878108433995455486973328689449489933458782625333990118961382009308056657742352135926557895489203931311627414471456019985195476196183009707702822678182966866936739249589728759008723421081981748817288501603604278467475122879634396612622410224384288487126092664749014818504774184073578239643005877964622238394944768806741473521668276300787522396995624908466377266420393274544229525604050247944008513670053113168375801602774820729766633669714181482201533819890335701381724547656239680339068638866552091075400125792007982178529690252349553609019690560047164606113615593724492444229421638904399249981432469052252539327695749137412882686141053116796619157987995685654350707243582724061873996611995618344002251606084913905745833358122105082544007790472786668713567593071092051213012032209103879659769091214989959078181283490287857159413813963914434892924803526805189789387498454134256866084274107100738751849260176024951746185614134649705052687761712763238030613280402065492060158950566568767019943165091732469645801859688551268863510004936095273151322481369096136526716879452460623657357802156203743540974013161184434737859028169984969027308136338488380800857600028822901649787327631761754267768993920758038404376243003765697127274119464646788542559550845159908174507400456130486080418144303232628428745066671061534815581846923889272798986857364494080597795698609821573955884808097880022899272268446097854162118622388958945705194670690004852669201110591033564004790598144768570549148067064610088910968457831573497302915156245987629235353523892833989094412386470496953779924238379012076228802342153015491635868587505635405278547699652220291365107676653386468632385087563324099562885940611202288048313190087186819668380675202120070782650732256774826994554102662289781451813940703641856493240852309859288035458841852000226051122788961177922155610523729558427637148011027667300487242636870850347410738147290315166986634918225108274917698876724333121558103762014858213620835553707804055973954492539512265275614512932063663545605322312565569685456389068206412881174247312709748536145088089032663269339027024761999102126716269516574553429329863042200620385599931610906708366414551363714472963402256590272202375497402258705847952959495680887158592906732250207662726678746826568467501124193877859533543540146549059229203514678603029384042301483928605065637115668614259631160104601626455314130387046506196918732265462986957459473260408579978862326590398559851403818540860307878514582959424361187096914574209131148308758169344529133627680087052827453888561043252150705827984357135080614733696984777635998304180786567217155138248278056175039405247986263326571754753536996498468289189965195841364298362284611090838288393460202568127534825523609923609086165080514306376678740194687084337471201474043336885934818223820376202569740693724602631154426988888403579608135753514708054482302464547996342416473400750645051129166601969004556790134090820983157973654513894496232337329540319109211053335366987494794791659741849240908548597553364753029687200475545418547708074666960676533607855418586587644610523650019153186751147431649281791474466941341198101042324110967079572266741658935817982107409999630803750926131486499481170261766622177910123749545186197009111692157802058883209003601955089461698108258614937976306208068458660212072348772351748737664520329126696049438480926661514355360420979606415986044331409768602740883916841963759050504322734037390912768466936271151677220738532855501810605693149418907749816034168160148684946087921450949778815181186176453270504591377882745920622263734064202514852691117848283924603268312672555418921437030865335886189748431652497154651302475993797218654495595379822813311740803939054818885896793533585900297225875363091765389051825478791892461871456324554357950082042330291527950093904668106578938881713039144044954654867596468144791336998995246088988649737567857544073365250491116358708235505005080110956785068816406244489968410101569185305216611815590355174043605259341252799886418990751775133922649267252268840164409556036313168642016736478279860701243977140776055699864335842894717185036130443824823214785042027894565367819972936914539916446493433243015857636389996055715691120030767728700821267809123962880288476244375993202829183025746131676960743549926628743278613193457356422530790902846330294537834338825158205219982016643418522175540769840159430172152886808876994134986448365089862564066137409873405218938454708223067606585437120784754048503157586234199117694167272458745588303001229907052119495949487773488647367880516139030115415500138484212886993481523652607138978387423398619718414792019799872686300024381072198785149728223998214146658449051198272578396192245665797241827970727355503061632136737482281379159984806802265803473823566117929510841825969332693592962538474899735121178634039121491633377229915846254851385152872219596351412674465384522273115043838020427302311926829739619623753208189923496705247093716913986640619960741926451733367543169278852193733248646402721108103123163214019439920089584362034861795600227356328438942106018769207438842777799829752210054771109756263132634695898504428915464033772048519627913709656625896127959884060240091942259113885918337581724254688018773536608107568229973971842776948196482772886837643679809658140918829919035481375501548514377816360818703755877737045457381267524401473667671444137867527047262313516183785503152353992258016995576932718413588389644326131297028190609633921434357804868077709313500890809801109942566539684494985148957228439651842801612652307059226917648670737405714826195948848059793585270051670952925297961939861069490366173630458384438543779746601987829015061819865212770643218525354193263444569885753786846285697945819061720190161221240344581911065325099235959610854142673431718116355805789966201221184675272146717445264316841792755594718639205721748182197643745587604472441278678992291835858839599920991402214461258808594839498986911703616206630961429945291689275034281058590694691023322259425722411264066752140816096136297397782084105687062184465025585403466076167867933386725719256007266192635005422608554037980254452663233491897524532186983900065175891315793029641264264627742470413243936679623755084403445130224813716981152202303941058992810642455523588712428253606843495770400271616623871377888566103520978969159124359802561746580961124346590256780873803059822869451238988219375255952056295369005482650388102781620102412322713004373921868027909979956006456462877421354227627555135281835264973225782802201445771176569956176779842413559645004653260915924034480716248711192888558441040667300070335028880691758483832153643355548091653573669283754864128935607975386638036442144938572194587449621078723368885942132254392451811291570481839869697622875394600333001106884748807154014661194533167139508016735656362823486323934210383466652432522115127124276687191417882040076157684750390235324840413158338158454021597549526661654690558081729056165404924827593778204075583939250948435419702080899028187070726367434193225248102399661869850722946713527906885636411886931835014283361344319792339586989398843528450712099711979275708287071952848273416872486835487045582400799790816301948253982349397435919131855452450904460533441790451691963665798798914523266020315739417269612432128545284843224041638369531294288085740976780644733482450277921525252554938408219110075274979786133766853588450604071411171137185528075578039382275614309749726287519278639393888929387305582208137484090115924021159123510817467722646791340932277692274082290925840472987300457631281199939189329830589426768890586932077161944505789060195275037481005033037009506639534867756872123343728898823095816077878603315361830834534109532905117466933570897605597053994230183440553165930581381044601512744173596022722297486853901443569908840361964714656405247390108202794670221348933476716594675390607933518677771788590734507866868660688972192020384360645342873458777862729102312367786426396146291122740052930961008489284585178162819010326485633217498902949990549738359145371707532753399090993044158666679845920301641158645830016201436439818928243769432349598796837188399706855843188227854026709840610508614983418655346694728849727352750257339644503325473782738729301225716809363632516343669774829598864447774951337056790577989528838685572940750123725234939956746308254711636590815750740155104205633477760933645508430005820042929863530342039466772650871928948350149305487502882647924189374970854587227027125713210065034705286899619528153025398414027573933757055102246968429404595266502472598952660913189333903573014229664371710112640247049320133734405628080016827705673155215369078622924567593701699012630807327654251537042801186476494500724231798025845370786439413239528899191569074144109043337736601971971932413174403048650571782673345677863926903287334898721087019565141335722229928847580236763925220563930950973468846196335337464140836099444184506568977221193670739377162143534324590443077688281598602916025276392393420233955307493196367260821963590923156079685982774879901788108708035693320867268304996296492038206873914847409072887070507533630174670827561442850804480614363918722996871855976450099353717724473198250768702527572791612762801575890146104974392649723267564141681042175122281805057847856863056554217188648847870507398421058831466133913155079582419045783739145828211666808919398246969802770706967118407753451539514174282801815664478767616663836470618836746328714429979416205460554066316752553093812006405487866207818347882951399661768883513812656595206261127955856245386813487759625419150003584204200201825392112959926676059500891455100459961471059740421726836766010619457767867693044504901025635814534725505337791684135526256162544436425137494138302074620563460004990800732691447613337097402006051005638077372550552499634414243335131613540987013091366369893747549241368051734299536028026029081161370946133775978113458798940982567655791120665268398839105722152699937421255882634734351171361139894063345859737160459143603736098873741412727212295641078146373922272257497265086554902447499681117601203998932083644464425789419424439030108824242037657688168558782262029114834114638645688984674409042053758021642414139247943795578857020770735128044631114482430025753196735904652580751647494201063514831183172428043188644810711131582415117129347619084833754872674810715689121761493424444009547108828667649702889127901921230055068605217508135506022548915980934028506804561726452347201636766126583926147037460950755065375780164029793930656217792187254290955786060933780711077665683322646997665903847520484165090927593480735680502010400373523874989759029007813813606351338069102736478410134279364560400320198129467574904138396014720116307268086403136510460708537905655771301801987085671080691148864100573692260121461834821399243028279175990654802786632531197664940978307358923399305119179811333729840121241996053609164333315330806144762274835186496576012478094353096846438901525101721307031527211124077105022232119441791887280531163500630628742854729518363334702133816103733020533140577255090293933162901789189182944319314211331361152699457012176303991312000739834645314870861745138540341050384967300525335313707432821519580203361013505631392857904236738287330392352353776023318332305622359350812636525959934015973545198287969313009207585023705764787138508093216835858703785754690799134416761347833821978717976559423749020158177965091930750459319676477812745775957746858686820878701714639865419300618180612041797442694465321159160171658025855011364032796905581140906778199287796225886174328717397204785886835910479653887123808847902759593992293579507003653299078647548182139407901754003099609717678380408197392349345631020007654756117395220140283691190795431287598425922062522175083192940323609784981267519612053012670495039646541027104813008951003375104389841952678776174920569241427615925512367856955678187616906160438832317520607293580751679588498529382834581764643006403861435378767368986536366027735630671819074159780463262278765120617473501260379674587481669978566074604940555494437201537986081847552584233995814280481384955525921220544934567804090980502551189656294622399298549235761086460023500726707919866441193426179255068667284627294192003058523072572628487258692500548658943845347106455103004750954652474925416406752016611604102905268245406318141181157435095396007358965826723260770217144645817796983931589687266313860583695518163854107244977623122520450855647343245854160791494328096831376640925914046970299629762712629571687619549441794908550125428193039947135612779876374681732296116144221714975307496367246689485791309989016464001926942398403558351721990961177116663105646747201829306845682077130781838347868125099735856214212399908877573179137602141846345756462642511951019071070175584387702195433953842266746542182864687617275348204522240954155871412442245985974139890325037776968583569145403703069937475233259857166499464127914197407703148560135723361197927199384016967607671176589065662584694918046103030609137013832331267444219841067732835192545817565605856470966015508540161371348186589666073430337454574913692997872483437388558694915717302498804664376363577261853485033050783717957396792887366295665788527707695035807995134048574555817829792808076186288536362262027996807270566872465970538582014806202406915014241574643906352102248800957277887679702661508286009058751011491278680569164848753427771506100471475979458278391955793830281734543765577746065775337049293363111754235992041284279288453648685009992500445368615813568804840320439707410139676235398798148324169748604898277015302876806647647753605116207184297517970957461702181833737914394434778315043729764563419416644168611860505054818559383067507317741663048513290709268863017745126383706085820410965742828875161832941457988198485487251764164318330447573775190101701765224281646340046684380723557850484698736405393316806596747539591384376679603537940360047240529446897563018949027051384739065793556831284153936831818968655971967923385118888889961184765812983344058005179017569799484657984608651976227828510398059139447174894087781064247220318213487316211339831692766682615639146482362433222614808952863934199047220339945550640301746115446145588204649323714931573488469613336906684727969607007349306734561008440625668933229806878826711631664616011195753009912188116893461024476179016930229967193953133894853185032406284423745626151570638431009264224226186937829343267174402303212753224683893861940664351876198122233128344393136313597292705599956390252722709989956496061235089978064569444937435964291979925782674306487994317660155722887963738681608828335194411176957729458897318366870538193311670373376973482114603614474808282943786729933901927231930789045166497891544351315465679754960572652577549062400102250278367567417428421257673401032121885056758221621078407175164983668348458957054189783277607481849542996823321143863672015669112001498822672172632095915147556712629437832075592700746650726018901049356672514891844623929392555782202526354022571396502296626626929837974243285113342981670982023727170804444017079879073478219757860211068817350690350997668455153086045566448043019263604585403107787597056250845614970367865581472333227433936522799115512195318070841090269637992997653735223559694366093552646463436788340292529230855616335105296954389709945971566101810630727923651571796133536028471932918363196301710585520414132946606909888962076823772314382834914624234865969749870382888819263757639765108737316868121338610292487265714949490244099237145764116350311135863449692245416500776592235318583511161403976496696937521966831045719290849412491978857366125718776317610715992385186195740913059606457486196817809446943479100574962440096705333381889873116488239692689197649323048653721334977744284386649969016510356163420343443182149683661858336591178730953712704029459754806925129244300324243381183291731859060055042531338421242692766335061407314210878545138246279110296974112931830706909411963569340567706083038368919939499810535629718830277359473076955617923541354027369056297873848624959934847131028892315973425801868533448835391346086724456420502827390138334378781646279348024113944298657975258552019572975333918197954505609511378600499618892647544738412228074046216156537889856946706942732050645973871633995702148424051919267942579020405220729275930567050363598824640070977146777641737331808819259337524519916156874439119848743173650585241828131011187178811516855019517932283511484120754872545601928664931535735549657831780596077540112395314098368799724386656658167441325041758110918147729036562983713005939195069420652903834994003069418883811527265208805011090817059383480351532587129386578747163289959561223856594455624749764939012067782941073178891518942063580502436301613273637327015697120359804171568155602708621204408679157034812004511436258903242023129927504813601879322143623301377728411379801670275968612544875510395130354118205248859394888362845880377299989313600608631998712377133278390668638863609026384560325702341854774143066361494204661055430863865558006287279004710031972254894987591229869776144786153893310105873286876905793445167493651754760790968942022890268334196710018728392308834556641869390267784537024134827101171155762737984732254200732062717088311759276518314373324107776818701747953027717045960086407985983700628474861169660131397618205301457811937863926109243046538079740445373810808552170353863813164347064945268879052379949222410355383306896721126483342219812297371887631954381655725581890249475564910338138557479497234341706548684641704670792265974111920023888638306017088398374874580328942372926426221396985858093232954031093675826134968044701004598481623862914344023665308780056595904226297953785642364200779952116343655498042422018783587918116767587587406983182998457673321095537462727938534544889853105113724142931825336156900320815459660398570390511836158060417246549713349258144284564054383023532322780727442984564137801659673542283394605132713125661638739939839438674687860178394417844734346078010866148355415752168095554061853439438951359438289902800874052263305752572014330473002090029684620457543223899743734023057812955168702925843117373137890986590447671942975178823760961948709093924592365081476071729894996765547487941100547169746752989167785503044127391808036027012708799210672248378442168378189670668883774165508657382857596530442833086816629747630622202974367008863180077376181710000766230259581129628782856481824474684145946528258334447585562286295547285639818041279641828529462904341618553134803849671410858046502948716171642684434871964292981878325237803525245259433496192971638410699471938900495364955552221923113754023937302408867641008039822675063362327996552478754823698085451507551168657626582075736502878520585638770379429808756131293035934514471664371969627220477172911737566020079218968894388566781748796175720940354314790579403924054530916728743398495150041403653524100203714232855272358685579288161160750131299139543949469119709402294808132435418763786874262193410596177765163343395261549998784007759382347736501704478196091487223606975043793410284797024833476270544174812084412218018929072043847251271437779832978273831713891444154419212933221259975339975917880173040484921555134870212396173364888141283888546560269637127095558611665422210271484349937925785611364919296644939213394146275400220740800765701031838127069313454390050540279450187093129836544030756005706335833491884632867102572636321377494777320542586443952550284974426054461064152066560595387447757342792246844585330995880750508933249798753747241866615029503864721646895166229433632858700881973979339095237325842826289087025295127916482764986080602888345500402756508182696682177256790832080704955150913145746207630350048719422160858907838833060360573141160116536380324407653010389238700652041600778153988592214121530894537602513688157629664351795406846755292791892278311223294067335773931108197646320419581258879637222910903555127982702131201315617344869339705991475784529099950391216883664155677959294476696454489823074553271621728956807535459669361981795424724263232277583802691785262208160310680135625990237061042333319840424360242527652620758591755579011025515421344058798772065989345218655276491961643855110007457887998922060792293458941329473924530878610057254271014535013360864216166154659548580933442366080427034131423050936904938017006820782609341605422539794870147321232732590704922958855220858094016486899443302579724293787677405865494051737904628785094493410754496522500764739671333265260758820703416730513946924096675727268687062580153881651947356535400384760624342479115372193295682035526886375300913466237987231404128890122723713579492527591913353381778752247966683717120153500989092071583871620361789423613319051620281788982586474222542590239311194230278221480482345102279181234143132398782141304580403993058565357886203450807748185459604267413677032097126935036012501514009759904876446507777214027222540604996052825666247796667252708960896353919849055733175739485493645751747296424244392385106548562712911981646086949376647695602887488345485753847886178479034446568825301420958763556696801339447710691351573089088938291739411349124510024235867380676944533195099304928331764171404405891303369418082173633812968864202662053328563744205114165050627202576830106018794386569495420489167913486728906262447501322257389797703563239383130380278638828122126813718649133019333981797853371503141418729680694889289375490099307757545464355318697048464214769093675427334648865000611908552536412414905504325244333422753627146797933872451112572192932376690189713535050443174103575179263636500437502996382604063269415161970619024375451063180205557025448472055328348654600362035381489152081308693679010211456728231545060297534760837273927372652893216574355278744624762497928280855760051339838067400282230297251385836016965529708907572495086971625271940199640213859673401066830655231553731119627722282909341232475355113952968633499891898401921527360821988930443660363613324930572891532984835872537857633451848011572269520956400968569667963252019127352794329350016356363301202724264556941802790147447820939012978446402722357611331169880949099799201203742139752729703761079319995543941716476361463737813015406454197926155343831348274457544960758822130405471589656133480595104228239659317823960489500661533092724267035911885057811056909148750800109443551769028318976921543199692516127183084814143744821618068928012364417472382155708758019908584823574034414196752691478890079992058058907638545653375832505181910544126856064470401186528413389462487851058689510965960150711989123991520849021528785196979413227438594398403241591268095975083468598538274609800834216876568665359464529127335073662382240351926918733227414114184519361185109023542581709012443602403510363087037439683662137568433230528895550833634809016664483415215361439179146578169776417479499809026308841952150236000462145785858603873824983727630855591405548012258946526163459961832015682691812486604508644734093363597976587055923049846351823595065909577982338311881674330842641290136938113667919966561308543244081985073090695992075622305296035682956505420761075213388469304067358028622952897767649588115997507759072683515988731076097754907658259443385430053227306608016127028005203602257034217089538401061994608223371900696025445910348576550360294748177784690792309594149616786047460334210601083667263665246375164642591881262431863604199440084836833578824434782372681563706116198379592199698496674187828652037648066356896437499303299648555059897640792132798971810890805795170821615351910827243762646256910892041953719981286589033079265583014857110980698909597437114844124616284159968343133878125381085739060772601424729394198257331082969739843813161348230448169782910006456921657995671713903755837407219602552062449622680005120745543165389720961181300878171296540706131709853577767495817342150669397499076291745088599498005890969212967622199793590460117695877022430546076312622972879670451583908011337494361482525877166566797797208076304275741545805107968732213811756566418458243150772917485009199020992674939092866474828322242745268030958587569219994319850781639190149462904755678344277861233008175608137505892862008610621356575065015657193600572242097463967021319564509510694897242801368001306267322791092140189108703720298017699038478929215605784283186345069802983621402746562371779899355426718702505443078276500944722644849173031669687120786273526965359937414837591843553504685718965660549020109333489141206094477110146921517206673073818581361385641588399666150238580203283483777996640424826055512302483821197310181631079209920121964575205371836833920826952004569301924316010108116057377287251459570547662846799990265867466107936730043001956195074643859474265996517199520904400444302884441846282084287296742929916973722779567780489536109537845223711250392382394812968409400431016594495847703859474199277182062981085075076219571897711048377936824479934890020841157046286450296445212136451257099051666799732450277082646816063219836839919077077381248419294134212028780319372784429928205923547850733969147269220163071706372135978935730590558413807650452875536213153366001314765583535475046570531625226517971209857772866986232797749268028889960896645989944223924712563388073262679156725840539641391131302654808421747387325976964180321705553958718234630658625479070672694066059511692330561253190385677446508676575334701827357096101270567701929076823629079841783482924927762979714277428209638354796358368204832815366488773464735595135422123104185042266245237521405416491741692428751874391768296419826759987440298399947031073830476789532655441878076732233772324051329246059337264123020776731966431450889875712148201463037389427768351237632919132632230196636409915259083684485462467781068380042029738487787858956315795926044560229092905924822668859112713085839712710714368188102395098510873314011696522573736062180612960948873673598041519616114818828375495129665125740023197285746702965501411750940074185339615640168704203491026123101791863553596717179408437584500693048033938094653381806564673992039225279607592075741438929952832793048687026450458690147347058790151119748094465062334325248358946631523325196673614679347556822534545477882050440782738008925623070993296156147887285648063974140278280374831804181568189923239422017680668052451703217937085512178330215112930843730941385188152078945302220194213538081170247129138035745625235130813169369673438990807877730357489645742921551638455634436711003819720610594730420736610474390282451500216868348945678744530871374453893651312739652695027304577595391024661872876427427629403218255459562223251447095040590449537635288381090944996674180454123597783666995713515666335030417136217703609566581437628468656216656433260749478951761553580505626101062974996604912430110626125282790424906349825440890975236575524998370654977550701956758016985562389431514668357427152754071826840318192968969289017505072647149174085897554824391730254190560984636571731742055622868534419690106182845251275589283105772490580360992239825415636689736495387129203158776725341107163063149055511580264986969616598178539947536790636418845501743892673903262254195075520994145418201543820918780494277820002693062984863378464196363349317606600232353421201084004107645835304180465704377728298045155601478275672360954089298258723352244497443827259131760640220395193252783598836573508927943912611065282888845164305201448772371726750205021714118147331310571881762851567149336168986689812379336405760510629223464404122640069347324011766506581845436972258582558786988673734291593950052564049242081393762133967074407923943282720545949405234727563926982086197709320953574634929748779635670022333026494240453806352496848729796719374719683562647363134055299857268627855417014340144876331265687102533003056157588944139853036192748214595577792626670703690916656052970251624775970895604046448470192537105308080222498338285983174826822476837188314504288200668284442436221008278055997635239392461085339345239471525249330899075906440667067985684336104818988303913570266199614628664093163250910084413982363068108612890553016068923716855559165752869240653323205268304031841470561720201573516033019429226748710980786408380997115624150799071686884268844295367403945447779055871883502089566669831040197538205385866036308579820283979848571040185719133932866388391316088349387207886024623026919058975129683989247457160936853188258072433435678627271460488293424184495284238387329561667947498991179520059332924239790870885195867478810877090367704017922121029306559326684687054496103301251785114246529380181892683217850728135296261873001899365649676199702641075774716270619396171762044893651766114244469590227721808340819805331278603362704274756437775319467761624890554545057429132928488396305900294940195204207135221613106745135655998452722793819461385598791901601388060858791751726266899519980543668712083280866753725054649404779105813281879746594041501219037117836249320543792364315796573774929468814689642249418106124495413576936558998854704036890058138758917955340576004631163611168849299356534478647251316483514664643626183653919698072971860767884154791782430573327666386697012720151430855080611727574122653176967308045229666071200433118996208569541549203027931603414444011907249660927192909705686618510097772954131931373144318576561744455239547047233459282712077457378703373767093455552264288815190161383316973304762902481628852249286910429369540571798563162055547753081685074317780565795502055834899607645880399335869936994028834742013851957166641436953899260600769649784381727306960776141476032620092727770494473433411233175396463176093213934320040307360471526906769462819302868940863560141497027664086901865014942113390523325437491464772189137812197328115231263403173930331221279403746981248084110216902666697423262324382377173393570489269385948433376693407177215116810880734134952093218173968164334233928410315988134405171128044876197462280654051430209829600296712598704496328387495374739111559453522376813594074510272197891811015676775835480881382372817718523030471851286919232074547062674638541229340722878528365062393904781041631751064612908818234554333129700134476824295739419505444891351969736929409264708092736788222089347205853075439963488330112803100966468597074682154115098050587111765175722793547803005886930565018449083473097874391483369950660047712803748912077052417088261233942297247672749249273984929558094498545179790941965541204794478044105388064261091366961644208918044638353987849719955286816910280093837330238646895945966897128862773066789376325319394419800377547268382872638215513327831836054892268932057222577142747378974102932996202962525377660170731489210204007201417743676324421910984136966189469817946563670955792945073877526523537143006936588598418247858646252187649452059577122737270651487829693985295339267039661590497599566362712269452776494833289953644336673117299654026054266525521554589205862982766644553541045972031066847681641552412233067901806822931018546747856901901735477280814589146921159126460891940859956049741733079697664619403481707702967384431402912641667366587132280136830761168045956222550941328388598287374504164611481545384974464904451815905390706993111188645274680273140217002992490579928658702174992468321189639160081476570596884276974287285532145681683088235650948844234322782723941022743127698379709445739520118811220410766442468958714086959280379573709078071399844538639136086186963976429928735604628998016064857836506826811903113782207682963001240374442072769884126854274366629141546756578104444536573512145850715768644447158354791253288083215607403699439327710045512358729002688732424560921100689132514611131776401791960816729351486457496496297839523354832196770627807437711764304760439038407115392953017484985816515077504012256836192636426513445001751224940173278512678524248422282497674595710927426693181702304707617079371991083874636523248464936835737821086409333006414185019526766140410795129226351792614500861975037894244505550329541330563643256678392274613799502557750815602098638860273965979225050474112159166985606527643097978633788656537599615033678394400441102602437122136508601890469193526089130922199871341641335748754135936748195818842379812191034536856007558513318434363169891086274879189236000946478603913712439395962097969517966135747465893215438567203054735191726356255720776885255902045047845326790208037310147483846861826164108338670452309005205580868913629524158319302035689100633737988393207688958346923291341767260007821928827723978757355369146425838658424133006991215530325754192146770235007193113988546291245680298000244716473259978083106982028646919478192444548303291171234637013692871868963322764446912499177319178802050420005779685307323459581200260530641173553184728842920717627207674221617103488210249559726244317773515101115243106256491472301331350679281214093902911512120545439120058909469141263973077255090169225703399898300379679242612412617077726954203570056264366775641766758145468835788497878944579909433262766125337105693138021623555108674075119683725542941492779653895616831941611276584723597220786505182996359429488892533086560401864809868794675581446925788064250089438438743225374796765580285228355257795515352886538179052545069031598534571094276521277691878588339884302334668358748725068071964666396500990528546787171517041576396752189127379814644222981146350583626852290057266224473330502449399590663684817853085621453115504296970266606284383027414276295923072459802769793209458559123785990186722118226337076951840666890425754180888379432480485989769463518654147831551394034758746641416386129627476094279114075396268287213944146711595570138516065121737960841530754607233420951876207862259778794798473884755946159322310602744632665781652136167462485177390325250149006928952666367761144314604759898365732212505237000423927281066692624607888533308200846969953917760030754673407964144863626736045493066878138991728634131124525139893867088723129524239212415178908018516844997127903635063693643753388305130420718970924450127358002057198260506510792663622476801766987789412321774550493624271949904832362501017085880269256198871534193597061556043621722791383659405930215730837177319066623958353228408377979362601048876039271874189385537782291037907523543220980985238751436534147438915553723077993200127049061437249183451795658010482057914606484107711223530165824550745384062068635585911767645362273490392126822821172316040385476552127492706504982530507457521749396958456889060969787676366838072589559242665224757671354620402670928792600296895246851128264121826687275327586424404620165741800454718250588826302552910384205762822033536459288126182235404959220107270023009345765126052005671101404998886343404497411486725520197587109053810673470671141882775180556614642222010605259125561929876993267796362965261970421113488195335554697546829644073106160367338330261797546838106027847414651715829752778967029833112302593748007797697039452153891106373435034915929923710092414624467892740529759481738462405484720838678181123813760017201300441167944188593014926661517318198146705783054933560913802910386647304243439391137688980000957393899595896047629595530093724530675917293458511225071888267915385987047660038249868081999923547210362911626151121054216329173443298846467112385166343944312033203403941084744548717138926352871584272552950590030028710643006023735445492852714675150884728046519969211359094554000849739997270802414903597870204857390469009623469092403572980300565450234198325404594323782922596076471007239550442820388874906791679939059213505014209413188866826430881958870325364079661602579915073713881964411948916185859610407942381437794167139985686947229697918225116100739381746535114642301926488479634454514773189959454238688463084352196551115253855671400506748440904312991229782867107278118385117229472362184143019985323163765204180155954797917904707317292693596606229009446089643225842110164276343216628119547817799232096889530707503459282835474305522512930528025567986090257382656935601951287098022583345226258494780554947287543094640207230099764105221425562713537793532445467071609237583533249445064320648017259634852377253235822014967254319652171391892528469026850795986884769381147693425150105270189716112293071443180906427152547300392467360261933993093282303083702227493386459146366488951577237067574840442038986950946075238525122234490554568930126101165001360986145696508933563452898727765737394727913277400062834063594966323853902625644099842915870804884453967375443631672007471050858811657399286427671231112236083743779230147301790484968461668828523085982671325729185278266409925773662721162845264162252211962290484315814858928268928954699252148046020905355527883668925990177664346943902142192906350213579687688346593245098468159384786756580994492665261847322935424526022233221043990812449033070358430705260050264936746489694180504191540313648257145779143222142176313513102702334249605541709087623113547344284261154169150962648849921156710328333343588232359900163947465514859613354596911170924563462474455548163924750804763990521392558110042843315787207917578590494623261665273331121360445473813641847660410200809449541811192926269778239146042124262601294790538068788101633746651937028520783083219260417574692818541267908048909247352159592125450829022647114211782727031111249106180531105532110934929570339887323173997319068372832948133299855564934473153221037957522473991175950154993225429875209077088173609942703377050421651571024981992041765641941054382681456605844520582432498852811903828612744909063745720716045500836880821851704952313983400967152654475475871848898091496482743826931362439967963956723643871155959232277569604121659444740394876744767581208593866574799689474400882234017829165800950761660375431669709287165129545423118218074023049164405810285688788399940347612789574976240322447377639146832162396419609813516650408254510892186663147537156990937195690399775729305233172831427243015435752462416299389489150665890912872380061324330831169547806844788008989027203280452213421176015983849246164164677723714925728409615779532357852212167507322876133649120653561198387519781175743624814157504241356449626264626942041910424561835438080251041856888165088094463679611189538599898668795473430114564489986914951705473803048944942052891956619947144521313545243738931711233545497014985647585238447534129904215428732069695038948486109933098033346531819025564393731452365913950435147478269467031500454838035388632084458662568532412355006497916031237233139600272369650608342510772465353230808114740264624577303655680294422225107332183075319155664598755427371890043810331825366336650116648619749148192643735694027449422531035473634035529867972968173196604975379297663108210559823581502864462528411424496722963064047341815302735076202734850888305181203990673716572754541294836707882076442607449876665544802802767027512919216790273532980912033600888795995530718872848802313129383093277302399966428346322620818889228400341938654542952732880308159302862265951187869422875376139493203104704994810935698800840142327639528667063985260850746169498042468035564553343751774054773576351104491410078188880443520655913885742053102331822097718302978530100555939386510529710326547374379328204430282469219378459176059057373836405495516185144386129310942589477854850472331759177712681088952729994487960037155358434829448482616918938968774469387758676622567200530894033885744309802113756763983142206589626200188559501820147984637117756636315969466681991899062672129220972142098895265508455363955106586279414058475815927949770999396465761590974563854025439362139904208647595445321104064177215941612035616188177804377074752072338083296332136577153268292530019240124542364489109582511369308113281323184411462356726968262070179847720877476315420134083420627974089644665013316190376583864211217145769037568825456466502012804686379139663811802155838366624682837571468681610470285530386013421976362592231544725375708139239616670424035302206281737542666636294389873883644435496665478784904397058495897676308078511324233902041954740688470134822521357100582997501405809834152057317575829355916124241752853589670397147994814504601213102984358636594710522647068718872646219716329460590040374975559702739597846566557297363612637762699729585173326351410057798120941817500108194272788580928624142853158913787300339946817602710894367681908710547043185444774968531423311183215719481282924906578311927100786116576257484079199247064200962143066400320565787716221173926853379387005572148190223651536540288093157376945099273677642154202168360279438737839763636837494200081192453740231855613747479070748708643116437741692444284461520460325946395959741142843821508728928169374107361833548402712051649734911083694642528639861322526415377013278303165253179941870523767939128499784253092952609090491299804206278014034454299278143653699146531710209995827718569325565154374402698269939680269923636408674219544189088738516960641940497731204481059975062981233577736910924887617565209136577625413009341268908571959269886405483788138979732635639241175482290369845737047717801972941455785818908759423447923381402786444174755109377142893042558255070684036659969971769254024744442638538323897318321327048893343958889707984514910463320052299035367750569050964335906155859946010315055466687769315922070306276119749592665928081833512457715198530058840522637668681601610590176949680742868239417177090584116633638989991552795606866334710085698697694194847319166531999688848995203427827881942227686943935361761997930302387387942947469954786467096462508863812211574368810451606741455310639612708707673133876454553628456469263955727400300729651851614316701355735832647328059782329101884230188309316476580307397706650068719941241655595334206867385084645591018847506756224777135361885585926064877731972961196254350879422341404723259321463908790399401892507070411466289261212295574024469354863861048482226252131844503352082700502265470550278836012431571902096166682545792594303328420256798794729952746217408011368300175676165606200077609584056624526746695035004720637513083102245372261504667927303711909067034013064895740479205591263310149098748679315431645809557610762737587468157114615014260440328010764189701139242837816548270601694565323568317252807199767125259483771569604509397507080053828748610285023896535325035338963667655233212968902396147122783892902095519687938661048486550756034255103822850729497131279783706668082055341162637454372825290583536699816933364661257392660103076269481652697763640869550041023441937413008023877650141672457366236357053151978586672691431806519634592355716115371433130833945647008319380919639545461268819542453465245555453436704457218027810567467705852330393582226255532732602733804411036416764687409725643744349593917810124881417292250824444523484202785873384680351765600063639338843695473129305509751372247560546889510235379912232163161600741656129563487260395870610748956044113418837764640390971786287521593444248523604611414183841520835866513560942877315109181570116378301991687716832187507135912921253793614976186333900131344631810692674447946099050861356391884812716008279704306731738645001807518199139611460348273099620720634578220437130218149860911408915946949970018531450572494098700148824950555741601910102371989051596413094679384430191979289292681060856206437117674037889225766962740716750938136731380772672080729835416650546076787565186794670045076985634920941036817329201875075121210837422263866281221498360329557223604907491554200603712435829430872699528402155726669127984408179119776258994257420327073669777742983357521384954167585367654438061471355962228725585989767546967345478342498550361903875099831600779830465515506000558307595323414794862324767041877532731319635121317855028488957906593831406443733710828963315772661726128017611374612393187768272242340806356477469955248438138364472092122618205818358717928203378033958702368219983444246046044425063979308492759216933583591947094240798189886955153054178219194075507666073929840149184869312953641210592753434885857508652269935878432277731706072557772485639450048518917372249430177523936509882471626698880304791453551348170106873711778881724546357592247257982024331453370647425843537453072110192022343360794151276256762641999568394774026536513722742826350592634846230147969722760139511333139760741167913908212941228196596052583229281259844180974980839104218248159757022966416891054361713870005164784029786130252729058784736752345623344437697432217466718460864903862364700193162388788197387434888021489823863607749534691219152454141571801773205625238638554192274702025462100381987272412192371108144788478078890115174189184795473203027788345512320836315685545238186194136354785569123274418608522388616488921104877276631945296246448266025832394252350314584681631002244031561559531984299710103939821060487649696051971526883326842305552554607122546347456582649068270116966870357741102063475739879598082124670614924061361128876256279178360559995029806680502305551350146242263925465188027532225801598294048575184392918992712900886220169731543797404850263462064103678787192865299368516428171573014610881560659226595915913582491958357013110375352654412363353495589474259615515591545505949560470372077163901399203975146572037435535809189706613215765808515601165537266465820845265300658900686650754178308647862368980883391751947332060093554311780073979069728434548563170877012210455275506770536413768747797136870481447221356359980026010474426916520009419935419676265278383404277145091668788895267927815344274220107058839012594952279423349104308276329151575423721774965574258898144547424599143706493618906116431460267615813347336792899385576000710895519308675779614020496869541804641895004475258852152975700393550302572629927999874523219656652904682728969256493875023100602501556265936757023447060616044590255717018412777034857700360854605008657801557959942911739009766302307175235194997237875203181012352219750296434444941542541075121815384957895359291299940761984795597535692826660010073750074697806840647430641430244305445891879298727847418214119405424364839518494740549157566764299715007779053929801954032857350829032425627027665107848813555020146640141394988298803000715721020540811438752793252069371774161831413051039161747128431146841720698740415025022768545172984329506845170328917744606315304062548327125229514953711328249369037893045803681154783558542461796849830733614219485325608102822584288442701675466618943969798148262932123260303030209079179701221554293966514506999111472346886018705077585938115339838927690127050277985591310832653422973564667793942869038177619166035946541331874715928393035877925443252741617643992512415220256613185620303958842661668568252251177168432959914794148674234996618468522979378200143442212769086222489952292767129030776336656334242754822990592942947845542588965009801728872030245790134672840305466839304101617191597922866160978886491840627058939504217675833768504571319590295801388819737947735940250940745438864244310019730232158401594373276947919574867373008987505120595872677223591139993185561897762712318578955473121178465776600378115208524575122540878433310974808574648369781117902482937475602120009196481142418481287350721329969063040317653540276524718950347106683334531646733969653252614645046270123791539625660277574411137809754720116594153706446895281644953320437730002607088936812982254447176337852568147553299793102734633590147398074973006652429255036312314564400136460473120908371098944420939243947861558876631067335523073788418275595905665777861094383199893771909061640710635059559446175299503890837233499540367678293514203950168739322790962110666320133322601110940642930005338659082999731779792785705310309323167800526293854987198851495098520408106130173749631352524350249939070051303633998464789092434865576280386234980297520044218089388436426868609682359645623333588357426367423889301906411332410818852731972510807387696297667152550562640147977929411698889423263375387624169016321234972685105381156205504134957621613097013910951659231057040096774684100328970890872427528963796264119081908349961773766807197721134674282256966727668288099669850250582883590697513480252595781793749426818481134849229042817812165783211516121124129051706941467663288070146458100459174954913362236043827907494613024744305251936269069140146231574813634805924011319209004033603330761070152484430605487559243157212350308477483209654729683662988260829022873764845436192631760510327273666359593385704246979903998619840563765061604901145901001376069451564079765984632449352550445569206592840149058796489861658163102248276716752373330640509595935714740689383426186798330213755321473681258831546147664553075918397872300101986145738887996020776781798024955748499844163032109488975330030961484199033357931552848793347606168180830389165713748197642459161318216431928434048077309743256272989178495044244337688631107772631143491636310505379684556381732046486160220528331270439515094820238393682380371970124419545160870543201258144567302587204078228980347815759314511756546235129152930871775778733370777830795677316467726953273444631809568270927725457754122401572518617268574262866742037337782427438078062578456093540082390877348238316958850434705561793387674473102343351883057568616924952066276651597800685369458361547832093334342092348800921706533653783136850084225987843012930770139785769080377467004833561958325463531813981065231903873297484403224812867249520900732187213819931487465353879117447672995089958683443908153509575870947644231325924908489845247462293101585882303387638267012822360073415050138144828657623905028828128997645803621366588913575590365863034435490429367967010035667827822214397901046504114638836785681681576562836132729691583981118166282454100811995126421109648625569724690478440751526434229916174742633363593732776101104203605120759745100470737745786968402273123514077094585573903797887138748471938282012461744307852388282117204068769034523305954559045675168450630624838251449130941312403053080381390344032899625629509307798009728089039678114208249742475744642735698407723158371803698318300104997507113944212396463107806787720923392474322234309959402834918694516731929188987658934120610633322307903052182567843149280068560650103111849036067213199144300007150939791843212377038457641916924778556056402764958403840945094393052286538335280946267480226934400818754810663272357394090643117202392053400780359916163813099610435839548906422454279616534689798212584593045980466771990876577193007661745886680203850773912668523309783002365519052917607118421468444309330693398867081136636744971779193897859142010150234335963232325859285540785856471799207215726415108813143469631332146555440090939729494615459853388409166659747943514360944710533778265939357144836098736510777182485876759569081606446594156393225355408045030881111229812206619298481625310662255592891379439229101368488490751253062666274295358808148643864802871993675620090387643732978052236482643316461453068684133688886099705133340867898658958598448227923621083164979207992277818169890383929832714576393435989089193465180060961785357193539307870880640275519804752015935202512728868012681243684780076955246433247348158786259854894774979059145170223836732733819543874498252660345002018937110348152157232539848549641776841429584895152462804938710448048649233412675686927628033730874704771240089958065611231462799193785053639636710710034864865275448269639951376698534470293522078626692703040934872418588514610176974070367446519372810143377422614057866730190401180878849769033530778650325869851387861406250394607932565018813730048829073765122640352801821533249183116958354906165826227610914219404520807155900143196737552583246575350659356497903882483736579682289923517457700857986922296637681356230991726765962351710836168575695445689590993352108731476157728151176041632658903303038138578288191498022385448287297222321308714887429366633696743995220022860523016877586370310596018574835083325450403994429588796992146643568917801118373746874712241491665277850666143684882372674819732139084737050752883101684381607210468887492456956248826430208948915829986636293185263508144160576015125221692442586211081362114303481103456234771456943607116171038741973092044446648038461939601297538940533205678751334727516139634785216861040607372921557653856486093762410854438956574921922897051265765960094478837569741378730671386482554905448153174720224944923236809022652094687016392950939831793030338884731656118612601645263385847799405269642463470266142816462676263615559785640340041050632947520012043118684344557913881437286460002676185300096339081033831662646091117981909689973535227687487305482237883818129894037730588570431285872481738691311063608928430069106549679312385208826259047837357270574721508792904432821504650781436159206601119700798576632954259203466543976270134998634533206554096557812796745139756713712592026466224721101839611478185384187167815176520016499152513112707477547304832840120224060424079711403015197316847472871816246217959747210193386254073075344012221882606688585520489174531076038186591464098676110723790308355499468192524394305523488316227565235025258473046857440733103157570530942576574503472238887237276445226872066095651120845296615452766124431352442146526824397119247815676558192852761667935352780747384159265373991564475789622016889232984562505431571230641907390545822441724206812211235397005779690144943031757967362953930509358850454727111232584190571742393081952035218468626657341421343150789726972988810402714241419118103813354880228187245917866785973245031488366728436726488645569450176181696321903804468594393691173011579099447679075377682073982893459427562688260243644238401207691840952469367722436559754698743345945226784736764185578613102417451091606706141388159717763022404941733552663059209947928141047124429919792612363654021405952099438322553748186664057601032946367605352539372797707532642195353341482511833965547402725319127431177535295144753581859802184453913961608350668342622538198000289787786047843581688009360213454413659468244576926499670545220441087312153829906136699371200710253794581726555933563286847729533972995551171127792937758880279101857401963281384415054766210366120036916255567548932388835260904363942625341203468415122840343432855913894900961010439384921011147821347025024195157040390484346629035084901275025007638742211758655651997242041236703928539301080986236735088781965374367036649749808649718944767719881331858536177593826097341028747660970551783517265451129647927883437354986007290361738875017176369794499921103606693505068254523077367092155527985347803238330072245890043908665217959336101761046601015396213155394355679772876791405329294137989913284508981730123659532546644805178010161292620080284314793026409364840368913125038743572375270751885767457954945484534189230616477843066080187984673636941407928075885131625577822893795122928088928641908081857983747929644946382940417470858696661462014963253711214897500328116253328507139328617950818283854372325312577217007101681290524290574816675805976568304192193576134013790615779137328524173239704548718571602699581812508671347111860038603781726628706413772690568189316929580433586110183907394202989528454212024955110470966783022106304805714857572000500954320436711660263693137865946713540054587196957726061779317396047025350881271950903256640691560692943864559842661297714269454753949775200795835563343573746483206148661875702180025778927912325654758329089003219174438116614100370975371852214650628754230802428973125927927053111412562230560899587910891073351760859109850096743600191154034565300114518620436344048180703199634349828949278462267003988841712601559329073833074567252435652521918433205957395491056059800515623017872070134102115183870618137385412993302369554730430332784897310837868493329103073517930312670022307147882915838613712035390341636563864541826488142079153573236846723926015790976292089579198836395976192991889117206129396954292488505955412783255900034709596007180217108278288756368073260390982487068650074413334737704593014709314616695838348650793953880503373751607169703157621450027208944754140855238867779566589244842156317963616684302330598961596482161806488612112988001602246020762728849463586041722803962166670883347621783543342024103911162122689090048859229742418759323671144391188872964749504560498652303038263243071569617658337203830384219506613996051731988222768903409915123801040816559652247243582734406899898708657851191809541952035889101902643195487055732907423283821912333480939191062047051807977771259720354231273967509506736697036469118473783253849533524306646570139513360177022248255701418705796821638915507137750255951931404522042014057294005911098548902246580857362600836005452470893616383808955187912968337949182693547136659394112000180554613168238038315964322660724987989461379538895205323583555856642563519469692847147232468923888603165498733390343471439205773536838537133159750430709736491204893491504061252730829952535159784405678956533666325708863188757038053116237176946205879146490684326821365609386858058519567513436533606447551372247662069161959076360331421058322266176196347486173370625716651980419204972803821614674547986858509596511388709140857556097180852697935375377178344140281329694933789157913578724483341949319164714532891980991825472818525882144985959037388300902278417736076492257993981512391987571450437880335409183201725312358608395894623021305406822511484855287567698336794291578583005826555366138590553583239493241184720173073130896471394241678916848212576810352967750915767876900588076368684160209821409393711002947153646231459606015694260329570333227392143763725275455943169675697185632226168569281014930151164331302629313949744382235302628242916864527164028304481759801568826955591119890705354670715687308928165165289886473615955005860933002782808022416187629903183707262957571577937323460644552940997304944134631872128282317206155865800133612438459729805681480086417271111302487470652874916989418552580637242266256135224699917259929281994452465877948054660430573802945976804888098138888134925122398778797534878067033663219478562040680453947529416604692581061367407564182448343499509352908727159392875319499162204366827074371973458050415414813270853363104738249925711896276728056951044603624063832666058036859128749260887640215382002848769934636931679291701077479032622060028674924866642865933455534388149609689732690389974958980047183537219587805069173296881667570203417104177220915743566597669670126164742127488262745268835780423160680634482368222903635324652507073043179893802999325348612931323840468773657972713449898538911408407141644453688339905993434264048930390620359351057687654995763701674546714489001344457407986022439744061359431917706578694362885212071408937716978288107718376828491323852124266782854591660351602649402390962295621417221890288598551496979348972134012328613202398461872370136593174408344966501917222518124909104229892508724486751192846371706312994056999640913317558460768454704859301861025557179207400580627056176517072360161401032068178409932977990970978767504394854660863617847751641504490696099775247055770778307501756720893643238864607130852439637735471382470551407662906160268172297125892750389700264424500053836027079634048385651883818378682134500943856248103326756118401995687659748736186800725809595345139911069655231091952962043246014943072060155035527353415527415893999882042103853834521779910826732843478554824205811009918057838037085320989168644880532058253100068982797228977637547736007920246540631358646949751512569256178838218797725836890401796847993958261827192888050632584065061916309710194420975483368947878473559184626164640951946675650802193342474945603356916986709712551285146580686649256561140348515445774426885155025448412267230359290579853831804958103229451112388120788424039711970338971731639104859496243410855031063655500411475173535894864584282749232779717706970458598162789875672484022772995963668263805068279474578756501545961171414940221991364342990951407417937247625024302143414946418878707688461489762851657821255848286078652684671989794480440466309684303941840276865368764994617997933329479456308920614509278672138666749211779317582511974475652762692565143992582437067787426197853093350093752545152805047723603212491009936192991419383407773486371870772411964412844535205542329187956224364605771576810551242367135609836236532549342569372823329131177199138100465318490803110457946624160581673889611145387319560808655337630965190261417748013504638675092249846407627802781865917646833459944324147146239024202717496839664686831281511610792952124930821723030297013419866694764946834085035298953618572228186268834821144581233884340682462956465381030691605477664255893380251852462574888003040216992239331837052779686003899738633776453705379765931300241605312267976594480855900708314103607831380732637281868767271737350402450142167890789558862460181672365213265417318220470386123217136241157475305240380999856185452491039268356878922932573454145707480719136848465104113293419088590374388845360520358202911308664304114666144935397400941690375249614522660280262001348971878403094008922461486812908669678744105684739969608172347189018000520431520324887077233324784436124538991901021806013977701890749439358388384843747993255430238487384834483623907008292990006498862935627029957080342485028374892731779951181022631535301151790368241348958624795153281018828143151163006932028889930999593281933452158683354249674625529879719143218028403037482758398019751411748314742673775210023410078117082705956950019674178024617874173144973135781781144062854642831052315819215376866005843834582725474080792024311525225514012229735745831496009144320816854461580687244969576597770473481565125169782464240700426529800603992484239487224685444380808921901528520644413084124748860368706408701325153515228173669679304459981933057209576718442193870825964735144479023086684599544389516663280235688666412296236097797201995031234634954128652188358583839593187024559335320739373834640107019336485529935847280182890781683818071133617166411275590670342240824193955879878096160733404133842159970588516267491658956541194136873729992979707800359631984519559828462917888776946573940173518266257132514129942418030108838363299451190476762973489073851266344548150085732035485170813440701727986199258886636897266408931733235679878656110987733637719852999599518158267144573988946154220825061617699822845087243186290377010205409970216054569921626475147480334861979835313362359998954778856059308162070824097493110956941746936927519761848019463531619288516487730909847973716683394549894839959599399438558843102254096068559288775825716108129091348902940908244647642842283038322389939869695438736053039556014620623613288368420692663615974657965785304554867351265972940824387447016015343060320963027323901777841753809894878277096406184534083011929276661001693056048815286348428065226272616076482998945628755804333078707372209632764921258551491266889613797544594756783155208740325554409602796212059690696177709364094925626550103790527949458128742351286146120193160971669832851911628584542567039084778378766907289958710431884184170579198318157058170546545798135846673816339267902938372190360887528922314620450810870324092647931885882744788132276749171379107892122445939585933171689625247689976668667733198326784432578056174872290340279727780226947444517970020242215163570293050774561399362876456086537667847599287617236969557259249066143822133274085547838350812017867109444543413767130429369309147883403340016957748393149968311659161336533397601992248124054925246276684964767013650741430645437180745068983033948298114718053683563848843686219577420753626965704257636802140062246594842991759336529520341285262286148097892977760121258421932928463671831119039227680524101713988560755925527818911692227049900480100702060978364488753493771277142934009611132143246444993584706442181062813868604812232865416850828735138479366293049745494040593387216449100329711117130149029947122583470730338146539173566994218644386144014437912332468521195146150192241943550882497849813556144893114367852268816802911983309052951963185879256456125707525089273846679265328351178353927770499451774884879205785711615357371708502290388661974478501514519273191536263970332600430122959061082800564489753409743749337114901042711204718976775746011811183817440569994577139052867047636582342302792328196205657639601615478880357872786993184118329767656643031459167919120320096714491160753102534308227505274019622855789602767020135266699543980166940048681213730763894923662699596696288144759314413119862190068734192100804179900651180602200278708515608978149888641475607001892073171284078272590231495112091605205094697281600230172275404176166189030048853006635396293662041445186218227657505672973243248919830610524846051021126821637087347082249819986098016639378959912559229375680197698905961149146277536822306601637801089642268504690920332311166249803518555639451255347027291916620462596671562289652915474835200822255721985877293247981773137210285177722230695394778750890800681707231657513386083256278053909653481320245893146397008788580945845107703198423189098036027040965318653684500794858792340876416029731597284700277717776554908037953080378326929627201314517890526530783570934382420534252282705987646144555235256299687149429661757418850960891625073386629788922301932947853643724335995534514859644420652010790727927121816921396314755983194595453854088701890942579919367727222611274647225971177938168543883698793104750960854463703212621257210762801441217474840716473095731453418390668871272113904900615488979229327837101766792065763618941233933763451189863856983404515628000254425701808807700756601380527610453174814571108455051777926837778159164379411548355137005227000229201437338919737381056457084284713612176853712659260637528537643280878992845722876109437647019424829071857525554793459349259441887397542053845541875499974691905286754789257685451912931043823817336699435323401140326239479302235921172051129710957242808753009068362936279151691966725166932251522048228944814918547625848922396067659496302982434168752979386629346140337142650101711547916745341716753747881947973855318810786197145488932352071843735646777976866338229360023392387561283082513544363141992852938198996414350177113862664607183389339833286419809554726124174010663248186513704851932831341412990008400864334602387182498598364331776021859698824384427402596766846333983163581778034574022441167962148322212274274502316010062824266714368594741342804394425181002804619360472455327411212760848788361587969289329192592086757270348690871846096957544419901249679823730001176925670222026956468701984346183265175713110236312339273377071768872520371971100530054564653460921593294470448742427389004796412928861415912061932254969641315825228948430096846399743049631988279491900357351886448052315944954286874907126981648169856894625377752915542804593286051854089738999174298666935474872724687721505994373483055721625423019646345356205895809443626141551462582029805225642057144702272343454033224845046547542316156203450220913935243894638629347250576058896163555363244679051036469039421823366150971691271095360933482191285843510280530867044868534947756289875314286054057447427206544926629170621496685175310878902818304445708179555057905342939900148049862231159526055293637034266756673529644076282029492975639878159659004891192427489964721446366542192497107858050806191169609244552651584287583809901813347343396432011604412219900218138896801801711354488138131681335068062702745450013301572961378601498686471295975054351498509602025340043031598762640736548379498279496258949689715859636107463374619199311274256009264691659478467025525487202193229483774773885393342191951279318634215364601220916122656193864054733939805548023011525653377655522145136949874421769026323646608625949845219198394434335885424213116670349711969116174922280369850122985589807469894684917328940875040643997177301139687913786410091135046348869331972762132528606396860422084037265502667374970312217675884764090712500358105253448193805309386411705731774931366320683158258177209475303895175989463437248256387616110041597426393409484392686823600831458119909883745186144925287552376269019350870133270027017940631497355269743465894607200572262295047025840198069809424431320356038901785593514448644374658481125721437822011840430735787056158914026054043901417486854501722168965846024064517634704895862359818965986596156986399302771434268614139960144368300051013409699495410340453128251498518361745144302847284328675305852216135011080265899198037310647413713094367047088123889316133323543071159387391631401322511975475073627677345207314812402997946693090633255338303387353390933228935825489766699456179753252975104426956957332316771107071958498057466912826305145258934968487249145165615154775311446058002105131998270420191667935668334516201967480925052157845911852727193575739137770401089599944797157859429302193159262848656335633037400972867832078262697838504760191285695885900384342309485967673541575761650206848968170845790618238275167700214151078381787350332410734803844187535848606971763769958444359957930818051086236338541646399738596575589176308246400978511682870345936256274115250653840286933004392089713414428416855681001716283472959467838134924917334514920644704470778571740944478095334746308145118838657666337917997321947177489393267955488264129586024057641690045747410514963464126153579329834547139510710892676516981801916898441786462138500084491112210278922839399954839746170244785771034082070331781664133913458588067973953948298725085482125648835373026515685238172026819554525763040246694373215534403093548278159218152391962571527747137183948914329869229834059712635502309621061999388845345853719265629282879546021529330060093616305337291289182891082447627771134842295613860233467145707513238157200585774949232591575153860695060397489683722552306461433675680111427750985301015182759183247302702451727731980432908616151634855142652257091838657589014253381174319609474165305004743403287364318827310609495675971647000615524302676573324572914752480495804126414993983380094463159716296578224175447688391729419888201379678528110154823361925220384828254460237369228678394636320670815768169431891590269523682467991388823119621512792949828351191482160362889872636891451912695729671426938559684401202560825389479900455119148725252378613401126875085533345243469889198030107456021561226713920889602291221645538747692461718010569323803766825562221351549419749172892796009647778519141769614487553033298074197343384381866719443533209696854332672601914695972255094301010867983946703403911852259799330736464460524018750890017443897060773627651533552251727520613250434419348571373520845219756481712832264729364898465624890060397284208696025284591893390806030264374753993188608852959594582194780789845174412803374989646800424130862232945594071097794259355687153139578640096412295263328813281996505925489974493496249524983911889547367426540282596806529760105046052814773858907180111947755989821538319849771698257611400371246822457348575356167592035896866784377080768858432676768894957699908500199319520315094340249947140969250701848154706136371400467205361336039045405162574753400150339530859360640642568401483886796838376891556033158051690167522002746248612916201244252284024509988208245000042673794832591097132077820152763207032067180528792536106535011394985182394093879113557754795913265861403730934045952631869487359972349262071269182122390997547286699097073223836275974403683043141510061477119152384114753864777011985595735111602760361128761770428839992855580493343287653796963755613149555222735763940229867063652485247606496108268211588860293649375906768962342399129187880092789116472647522588294389471111595877591368219505513687989674168629402655779957205972395409297722304645319835543511756112172715591236585941220529693300811902110428345730146764379161140991305303447024819762571539531943870776572870101015974392273466886771162471199350571970777099470687628305089622006535666433977282510241560216005608430265510391703786162978440556217476938236673971219066339101453544110753330313366855125644935220321697291704629194861474318365708833090338240854998811597140591185029482958605411249607314473023811350780606880014402525865435065476097208791559391015302110374554593067431734933507558092425670103728867564487472978304092747915386502282790375319987532818097830345984318919558345492326698018126642115681382881352448791068553172944461125306902211845241537516108651189601967658897497424661351796569000047613370895048256571086470468238347477717036956130008790002922834806746592485024775417858303091268283751654511122862121441680082272827248220282737164603185039267188862554989979911308364679941469655885789162734800764830803265747404519562385851636251293482766764998554979077106990393234542904670195539015618480732162988431604396970222481151393796629808150705368440791727694430594335734583288025266984468565826307872757556983512359914695793610922861055117967153548172548952191382346958531826795787472920128746840731817595564303713171080284989570178961868314631339123985586414668677822068235846247133625093590898126930413808770170176678964356891214358843600849746467671876346695129492413810639721689537999568626326576269731818405267282376835312995159204923176772537590978339891216867921287291333172641179444777951669950417493218386879386142378381280627124245744223523024950838937458423359020500516415905238028878684526103209214762037945249712561755920740927887831551964012247003329583320608547842237586774442783760170165898920373052200246651568378862575136629659445060958848454284317415976162722091154435393907275705360640820960266397568789499609429022061582856703081615139685746597548356529588530043999885620171232971527522935041085810082564257491461959982055571270338228199020808723873549637896966845597461070669456149401764453470007579575775016134583482698831357501777724651197959139732768081615835601104685437312502859739175197048320735047363846116869375561511594836440416283153343264487796453183989543446006125991933693405403681918178156702218754047655951742095058930353944501490296773195261015342262429984677945669510650754875315480276083253218903588266516298945702909199594243482355308818041145772622992756085638240033560086806854195380888286237059468294760861135298333700402415612949123702414112771152692120079188605718474155599625375737033578622599638751657562284359817091387497799560679246007013739834932949269540328359298030628849516858796172976470897816808248683857350475507390988097573575358324076385703691842035294345921224288640294021209381257359833797274019443311084574019469562878624607843253623047883332841502595227992389221244017416457632004814883902135031215317328900847595815347443575783668640082453578302423015861563781321208677486000756252137555399392645719033968505299394419859572085244620970417397110867940570722359972459873034921008956005449434970873159630747765923626778661907172615340135741554631073794104885779755920639460429327980111862449192764203289978433708577768952543484037439723075215182906099824256978272497169245815221958335717977438471684474630367223766754900234121749885357815295459013242796212434331206695512490813260560603354992866670316154332927660519151924553181832184646427943458390853517881367155772403689264192376026748108272751807441883244607334661723429313407024947275767424023015153509354222941525197145578688232110479131252605234580629161188629690212263203347852755853932785798361932139036713649798019177643444590664307245099402060704733192481176867728167526922427185993466304198245945179431036816195764967433589333533763191605839358997360064513027529580282676149189532394800803230327849048743809347671177368702861453171270332620914343682963309943004807470945543065102489532740954648651189253729549781509827724808307336163321617364422370317265816961795681275708009915839182749537687312159553962701984376291550532116971103570924676281825452849469742400797481250361877456678248264572191356907805874190678056238954202818769210678262474612358149210199903435286024992035148119776756373461225745365555885998945646915599940329184944835434054970128639840217100384254286871533718701836779995349310056795442965405685682874093917384286961028309101019791710679344946858413920298906178257632842175220899422483347112216944348502236253146556466094920090457482737173447823582263812551184018897343780684062911166658778804937793220756948697941520525935836516523773723768764359978384669839315666471761950382649710111644199071903931698443294084805090924658409144985812557991071030175532285496381289062181071173389272990548113823341121104465539748640443003259147719550494386179256825336688131301583608817798880443518489082309774667475099347820473553458672651388279306543480542238377592280496636643929789322614202060365549465501416756332948656613261476077472838132846520952346181814541367630309972945070072608189564090489511485509014704924027796120723521797639854556871702467419565942059181926028703347255455106689381219716788267944845513007197654676292320389353676022874630301758261523243213802409956663846051292122810926448295643307629700399675166674541138276078979423680274081187777185469014513869206068044217113357842795312757441188545837890927252499378144852341348699098951711953716603402660165826333990628428319870416046827827490935922464605548084202306067708430910752947879380340635063049189162992182478726507019195412254148687171627639668413324220458169745307662586324137853949619615069945053706589780194093086434589563292796539793700680150334387388563885714055354031372918540901311818682524503284958004898992832709327090372956675549692822010549114380543758871279658173312639161298726150689321802569493777401200597236622721096531239089619099844037829220743543021814422047689597222902077154711748073203352446093246630077381047810553636776272416805421284377435289379456713539748055153434333797022555853153480078279710079627563604803914648375190189800121296409056987419784028885125349821316930571059965032071033185800955615812983840984649525635660716652630217046729659768720775635395575687874431651172002771633991415621009739172534596559449336538901142540441426753261241199934994383859621158360116756845966531101001881237053317276138110122469370492724104472767804212601418795746946738078283574234983219993505157439323933436667008664487403715340378276185826449243680940316683516145457672586323812770745431858925224938745985400132248359817527947843017432621582609264843839121016515031345710214026954231181393857965643399415523929377058259997193467074155546559891981987660274570962031135952768627896212590149075049598616588394515007615932438554647598318046170668147640033146548484217648267794655391352212486814856032073496090798102790078939218532513149836180634865177665354687799527918939931934543647733577278486049798778040000130208725620507069735920905809389392853577353542486589199675405705522493594730639403336408265896780750976001304431826113564517231092338997284756167050997790607744684041546885134775195961267408665507053073913397613761664372168067794167489596412609465154355942024111675048260619135008088639142766440108892747677799978887755416736390231605807447999581644529128102757014801032506905319834207186647566735676537903138231533171014421448371745891299282745065884103836731415225315062151958686896602113200756488328499845880649492862456561329075145353195295485022068244863720549779601885660099633552523519929678889648738493303303974931302287760792360970979371085179117020476042909222677334063220000872994706199039242113273963376818409628065350423561101357902978549555372395800075900175291796587391435718248937789429179583669431814952314478364062032443789393660307808644077742266745229544871475293043850380263882182701391342513384263783343033433538235846508607541368116670988845997887095299047853846543396681234607544872741177854540730364198237211070787036379937316452638918691697834035232390180850786644349657523272610924802005246653867669619379313837636872564267283216512035685037563174826426525696395515274491111934049052195444935839390864035223136044521194612623919679647042561833812661232775320909166525769591502328004365032751916871374332416953337458887999041329401329969368928640416042903772279795242702834752973627524590781689651445200381160717970492489711949744973940934326445759137672875149579480657565340646930004362812744468369142941258273698610425314513283902941908784187382899780646585395359294214507712140171332808690010186436230903111626446810342014031276721108318954405091164206816771073839167922513768231337379422536617833835106471643382927992675911406563533043022452472134402526107855978433251297835953126764498588857452141977139742163658673953592951717317368163393129584662238086508393762214595460919142062540563758918642708581049137739097529965943417927122319870923075994728200860232410259887680841369328256121381346272276540807095354258530376003219399352824369792576808658194917238669624831521642993910916944175186109505678603337853806254489960919663119760487840662167182953399654424106368612053900788755391788475374673881535356026945834653528957365400429444846408292668566756707563828096742305310438415160344216908255901665141672456902484948429639932211410348381199393192135900107795188076573895862107903295933159413307949089391277750356852406545314521057068938783663574828066704018175304896586089044634237004939095298916120279278592574934983971928629118586062220603160498964683075613316215003609921167574168272646493233424315708034478535703125375112093866104458113335051242364493568297102081311090117397635807586730274383082709009006999572920366814413520831840802706142910379053960623687783967298645734592583292928129565486137394520568895567742474181896434546939949035671160880509602073790836591173918512045588663718988978716183231326031500848909446519178965861684222543482666173029145143681477698977372347846139922750848739158454210964691465499742456372685637886066771215752442250025630305857433111091895493131361799077322954276385335171833595005954761836653490806426643497954452158029812871365980925970013558782108879740229293077608233275721374864066866725580737350325566551443570101652295949537352309978527478815023324936104075959356350047740013508990785096120080304858856668899632413045324240662576472816024899675900293417574103330756105986100870709407912135290705256876049231990641029273158316672728516577088039424705398248266807737348976139456146754313728951948036332466306326347623730166098629236167260857215085141513773876351238752913534829462277367121700167121843319539974837379997493055141738686516278200538521548523195286092330067556376726784665471462709449082563720466802350557293381564282135031840191359202137456765307519513102174530598439776088639095862303718329800693770926473210882203241713194155817748361141418916606388449752914361829406922651644614255812452216530297081455650232442747722454906243274579193809754922923252819216482627734629696341765292765618901299016985459860304921283217566026569278834420289156130680883608821994028957827906187412698877247369916220667610472746483990759706427094445771844810865131431835740678533831791634980876293920934079870586904244703356568142554013033631978275447434575494167612055363211508732733585223492108035446765143144567859860558761919039685100710213486551669290556132655833809588167622322771189356175462629157398438294595205362436505915805184050686095631068825572306045928343066270138221902045005021417762845115284086972533487695771226650967439765724145867550091784477790262258858741586565248697136317498884633638445746109997749796455531245677006081445589369132518266435094883525414283272123466336982822689682634705256445933824458098658121088414353368581286904998435406353079485361301761998955345992928711608981496145394738851946249884885569510968474565694236449826255150745768301630486031300630493167609642919028238615703401135337747392746850063619960491315274126917049098297638794123760520559966276815886225462873017791044187181683149017798066025408203441486286460733827423427045865840148221907321093745820281708522110760149963603057208617184041829572996591173958896967468025213750661180779815619446606628364304875836158451004762406270427927441967655258067301349464139571367891425282905864355805369127740850769517026396653034496329558675892188218702641972723929965667926174670972261460792488633891366109408970172795934351979599433315469042002761847391389127744117253201887688876888632507218233870812089565450135931767916988764829205384034803895701619996346774361403373852706555456886145776761268771444094198736530225332883875318695102212574980627053836495876985466297499537017158020100803776602869660723466365125730040089496393817958771329461470698082413514932491061398571750005233405500057596484362216768803199273050945765305229834405869808011920584447373232649789052336051153486350348377410160722705673899170180969874619685314350658030421655932555836593420996641524954439262636503908865743657294831209409551867148881079404611335435219968456137587233568918116108128153070809263807652912118325470523050918403232449156854352369567328947874656760326074721573993702961321981895443923566169451194001077385982545385962911370042850217556130512973175603892647356609779167227726227232493531036578891677670082798715840293807726164550272314999893367310308385864904155620917766554653369461294686569388917820694854362177592752367730468071619698115807771896869034761044271163646253577481227638223538960300653320884990869247201140191351076055503453684187494323968053222170067744134180256767887189685677507922150208403949373282337725706494244769457590381752270672370595338495689445798649099874937752885362613954733138546017002364229749207481125835404002855123672517594328178205892641079514815399135701747537453622832405469378126697870495747780111994279749756439342576966599362857678526125162317864241865672555195236204011032040663185059343900034882399381872114920847348123016056898752064147608863701261471237456871328993105655488148339253322762740099427950175582217585107337784167457158182744627847829748448800045394947947389086358592793949404410103133765223565127568143711193703745310623340340421556524706545471166756127983667857873278471574388516900494171614391910190311156755577782593667714376216559787329837809988945238057343139781312406734893339712863639580383672700276975226541291219768617157719697029734644791469781049364635057167831491589128720014422973166896003020725069078113991120617439702036233122022470754968252898006832852974315175540201186264315805736123542270216421436400749973127422260261143052614348341936348135313416939563552383367301680753337809681591641834236779213736738603134087248421279406240383438333077334304243216031715938558629961978905863139217691058058093442020719590602683670989310328563780936316069899474326459878352898911347691229190214445205315395478471845543442665507845319212144265875469904643539917318613098903111517198813819914126776572648677030750167818000839423356150014075897521051129403259079300247206065245918844151849172092219836970576855047036101522328050829170870837119323761298625599636597699674882297854784639378133354282750087830891761376935807584699059976772064617378613555196273107772444474633015837633013216624223245914955334049389486259404582900381819943960136910356744028753466338837644444189049896599142551969725168027613380517710600510242287776819013121735332928960342025436373038312378379007048159664705584966177119068977916644653443224738431638012698407228563952936511979638956302913269023814623938465788448421871681858223914457624542515214739487925286283035787506006895806554585797537686326367649873512227404320473282041104271163968947183406710013233671932128576449683225434215552959891341173952137015744557598661726797713303178568397646412906240732579795698977790530365665742896945048911401380805413659888001475283319978023259070094742612563440958083983803356748240944649872150882501731545893340137868423237465172546567874101817663845748811465889030842349122237289291396732929376593443304117189785303558047839309099077440729959543583245801350617113143112768788794274218129288232975144392649066061484792754423049569742243693928933983564744647104499674474546293499770011599821302772985199422550491685245161838635779691104239886299804221556815332318871452036610331799871283536151831203325434374129268340574831663383438399209179150447955993352321966253447918764069502680456785866320892998549395117469251362935113449203340628421677060197616421799687721879089963053206701367202877537935693549056905463176878520548182171938149088368715423195421349263250364747872848738650775193276425148712347814357076647372845113216261814535563342124223323595864489178945892355636140601137218592324278363056897857890499879510829153303645999984847002609926545134085956429290671377421696865075077611424377310228099692141156243580376510683493444294589005315642035994331090266189615773199647523340295394169957076830294208521883228116313727051311316855618921640541300071205758722631889761982554031490537510573465881051677832518871084936191464217639434439294527313563348985784087434429923110904977157327954138593655397148006735023002660244649046660528835046738034879892581075014116441733398418753920992391212734546338877043765128157663353128460622343578824327465543132312103742836893836664663608448671080800491450272988695892155119739592315694010939505850311182538178382581332315577930021337697958762019362118778509675235261136320609670882855151810759305960710788389154634436008143779139867018389225682021079269227414219159618860804179450789506657517103798748096689329266125596466350945776766220658187392940335545474813138997799425351808947488346443009132877397362549808957976456337955058359815381688055347703397930394047749050136948058919015535988186443689182742571561896467559012278079185148375978481508220257960097737353644257173304012410178330957194838438593003696455737549888157121291779811555979910110411781240936179146345592277734860052113077038534496765286457507545209664167124431157281054957519559568758754679880218265272387191296703098408743637555061279041828756688267216156656912015869893511150841233689691166844968675826884741460605273622002329566045723157255286949980425389386081719913690797377939996566483396031439455947802224278843773644440238668501779743513410985336663053426442073040353698406727524115853543131580552700541146863989866108596228957383420719189185438031014917770780232525990883374286734860808023675568226852268786191556041108151889644740370234784989481418092134446201786996612925222685125256567358126725837528899773844673639438736595981834974398123695570767878627530555560928104473847780676350774286114778432348227193099514143170066933232410062248538692120081020039775883067238091793988256630932407935005466362917245281178610505909814405678600609295448334803098401992642514729370170011579196286755935293183592510535845215837351390346631028940567579045467235415773063911135302862131565157157692095725686738393817959401309208822620592771668587621761366156661851896717755180152131544797743974316074954039956532831895032186943286869092481672504819727540564426864467180085891865133087144910047157991981460760409942470692253325681252253653974092471534942043753722208715417785070707150431611489379808904214419174188480116239995081423621785960139440174586632235336609247604910035280563906192664680205895160908432143849924871497244390124844910440984490269509621908822149693854297764627961916950630384250192017268436390243002730946032604184305770749237254879294926581342519313088946941522105616470680203011242204658908060528396020604494217390331612044720603700007937243679193811629214405379978519381271333960128090529980976791550048909464718504980834300279698648663925070923818727397022361460257370482230837037217099990179411243243486582933740448406498894123213132733893297124557938288162742228898474196226869858005268493693871281420945283058610180880579459167019336482269651981020562285075430503500994003240450998183060708329046477614647768044895315941996077373620891162433334667214219520711227577914091520243907765537854494729020039358417144981387390868591471882620921244437726014458608504554880724456108550621858022888667229151497188616022449608340321058772688380188685819039147549616922430644302052173094107055100409865697967255903106652853933318090162826695611923060625944382303097243937253687098603669770828189550447931361946358121714162052363892093313803794550673331370358509450730908152109371252627627996727085167702443252210722106551539604917746200168908404189405888981235037315370361845122531517969804150487881644492079931240985701477930830602537407184517394308949687818170123775414281010260495190074890619357894355368627332788056507144550669355496462844960294995775094251092703676108199575771879591950106494233092186285893786529006808346462877171522175521555091630015676283274066371874162341565690075467251071844036449115573150449916779701603219198741288052578957435006982281001698718780323418292909328672936148645664160196423302882628473397038687788316581789173715190806910151383442233590027142512062687922277684932613160339954709577847895066879572508008304070420686972787614337041377686293993776356803715145594989620195920661567612321158599614421855612649969969257378271413680666355258051674188201024666693562092352329504611145070503392062467579182953161808782099591566194684354910767346150934115421848676054286711887095037853255828040995230081961091346690615439378811525285513015094959542989566909243728402077536214325103136956694195622223844746610718360608271179141328499426469561453763471752744665664961259082067911557701140495159975517867165747157627841837113602980957347279826207654609354221471442616461955392252927119191918691194230956559150194652594511705085447053855786266689087532048094281718402167433861986260602365174999774933915312538745152774393758458929710660590343339242413937857040868588394912324358572655719276958577201310105343073282042066511501851212857819613074183556906919423736949214807738404296924096531517895045924509367761317739425386887814721077702600942770549261801232193536565035746741695181768835799337042157857576014846384752154846320672494541705138729545298456703411386539384644625526309086982478985449668254306628589649487412606240682312868671373115057661730359704549771295636902296045379308615804633034464883986024270858637887848146983997577106694724028633674214597849754924297678593475402674495026652113716501017945566976201637802579619683148098950451012815860679555765832687692566387962902430096282833124472791216166842572227623540927380632770593586838106565625355121303033070766594281079848233025407551495583972103593862533642034782028560608191533645219918219189771567225021490203642415679821079305466612853243031195381080789607196213105273066788292771890123574522972912515945630392496426442562912670920474781263560191805468780467730658532286322783039362992384098568473165653259163770995565068532395869908511757427435304344904441612665492883202781742465507163133225651765678299305642831388618867173992499339467100648599419156568767631271566496334248002268124593687965787008984278524878459217523257289694603166382857020553264668010285811941828448475823809032016250687798436825700661398615637152080458290901315490212066495861924214509634059632189118751917175316367139374458909711768176630197519023753832881177629269630216869996042342680755996015870242196281466384291572651205183361712821338935020801628834656384402554349816370238340923962451439202921033512239117842043792506351748765917289823892135908915323969008667250473824721872808526009183324940934480849329823026267227476503858918590301618214987060077138251321303311038515792692112639831868249110545942654908275802690843836672958189277013945580534920337883021736480781042876184265639762555559518360815364777672818488620637774087651967412963400687041339468566442383369840560902717238968621963076718088846588921027446132130803052364443922041830770251380394902925565910176704686322941462395879874842039885466926288034717282532221529384726216896030653036036624063954438885037196081319163128849688298622449105611287605932540316203874499308051817258196420706148800096475290740264106714535241936643075032162246388786489352780542784488398765253814383286056717557041627597950729721038805694267500081536387672078837286657659773619365967522187966450535213713112195932616026108164072099543277112775954686105466724919971302065771078852075694597720512625639250921807752610379299809544708906769393239504758008531626876396777165372166381721898005313689742467026240988898910925861831843086641263201891011850256528885917222598269345724130650897550900128006382131746918631191318799281590408348051734643821933850318811138644830413220000805520258950784571654445786075924274995484208008357863888813165184380787177231542387317941899890646706894626177137485922944776456456273890046904705902640518252435560527334040056259640664833787921156937828338506280824549329682762075048081407282223244749404605882522984335399049447315982014577373262782104629406097246084821673049558375566418594812990281741117671637390768793655903308677927238843907352763430825412887841253933436598438454389115384002127044891337550226158941140262273789713023235171189067977515990411763915783753775712549267968660740977834961677112988457159888663944114180604829868818063832169288005572241952056209781233725686558537232401711214528709547936587702720753805236013838399203642090093878888238947231596990452758268891028990610040524837257389777777603310199885510703452196039668466809288148778494951895081081199030715435002238405400035764166811773058357560501426678621602963646671842462691967462571602123487201026368778383623337773168650742884726310507760268732505212252525225831744444667347880262363587338019501655089415883891822304407706445262124083771647463217872361678808698909823053478880696727152683952557110497193184111499964611585637680419360575590540705352158719918662910524436899062502533064976924859178985627409337537453076421350185936735132311444329625828304528953828618917392169782663082943870017481338786074308093585328448122055940912599605706366333175152541958064562142003065182279877987751175163121095312800391502078310736753079237418095903206007087730589116674033951368041150030712474689719484387936116242141286123656419878708051009883533219615226287569939192119622092787303537803556584089281055196719447393549224426724933006456792476073865215979509302579912296111173638965319666449014063084029310063369435840624380169587013893440805174052633677142547889207652661566655113812437776411892069815544477891104689884765786195338607121123064290181497380158559719331544025555761786879496447011714027685965438934397268799326202642051762081969828205251495604026713042427674002832732761006476564276005901853746494711173856627336277935683061316628875901822598456969420261571652280766502627572901894649176347538148566039763469516446734190092994642998820863471689813792615763792174995164284583340306791049349139712967913078480250194100701005004573256789430757536217416127557636782217135018565039281826974643680273559170056359949553357665220204378072617173204524909713624958256876762878842842188939999966049081073186884376409280550156385026559288564832607139824443522898635043675421861884784357510818900074062331575321715055507906199957604992535671857208618964718089064511929813431163548387053043149565737270339098495892016795191293087337839538580018900204042187271505210340589148268785865596220071890094921872091185022357278956850725440474005725515877900759327316411024925323464592085365394133659722317124382490850977288704808036248111617030945200966037323529663270845005969565465983678240669267834865394588685522140641622582812587134107683167069828956459336160031299646309441177370745745623328160325393138561768705041485744412088774714892913396600026590594588196298906970600944044378246377562373006808607025719658929611747295964368938644604081124704183844293237729297960153328111593052195179303427411051247533664431671977653610352317197816745286879953498334513558774153282633550543934010881927515360982979307543582226724126288520791436575447728569687442314080288281568296325809074945780794321282947322243184147852461491929699346377552184391856783369968148877938298968153473779283387631693891963243948059464696683704559824157909628458574232729680128934417395149889381722958237745515309288984038051318417631164951312830357437459006200990382855677950248511880539546609789226304547225737885847595561819400157850272882585712412998727465130142825477016498058305426359951067132708785517239835968456636069805957075383055643361564970730036155799623828028687711129620850366540570018938199723101198029700469401445092309497462281832342559395590739613735927347212308052860813612293091577735404472763907052036194145544368338846301122350297239835007261841931375563514652539487202121105832957995587232666893632775128132027787247059233048124970797558742032105127961658693285098722315333926967367964419725694497252569482266116180788602872691405040154560285526584355767707353920137656686015912219931114329394296204371947586428945065059070082107398966303508620512452379778927620085321279633005933323407411317470269345761516148455097011372567673691490429584753116004300542923264649393731174789746441372869474812644536848717633964644938322235353332167406272802037840542310200417723846316827318533457515844295545279542837215549865053897247909447124289258257243829689079947344412482088641484179345203233192120388033068501459143356191846440726039767294096128067389989385660164820525978103135796217349949527363459915915556798606290879635822489135125261745835080699248420734328409981118639896055701558196798393778819497644234304662784571122082187111987017035221798945410534927403171977050083552893331546011612955556469048534749443526074647603840037114544213741221499647236348828585968677596605213981992715916866341622421488930393395389108095874845217286161691533178523953551246578323492245695754575793470762337708354297115659065793972004635913952426999342358373093447740923112313402574417446741502655695570256772517419158263557541812065267452859673678417746855645049358529854195504088118448202147984002224700301369433976456849595456445835770919302234451271878446136496787580025769908189519611019811036760105620980121801990089285687862695273935099745462379557106148433076467300524997376780141111626315269547281275814138435857624538323263534571708214111090407340434934898676803845219768424842846747276350772807603688857777871853686547822543867367591456912628899225375105065680381432064473553241966737962222397749983773085376708236073910120957370091610495042498808761349636363241637447891929970606222726366691110767296233124125674388362210515484481547015668649615022392509186438520698553435481756340204913910157691896160368458333543463875383124828903098317414495727183292105084134091444998475811202695453356315049279310879981107023973931587147875052434332830046345623980716940155517285669802816953650100321785388102898671889364072367114336631967309498558842856998395243770670716074333966236336853550037278966448813859389305937278283231334473457617556429236894727787867492360838378113962025866494858097259240488288396610229962982952910488829710246634328148829354497287480373779541716412370653092575196633725571032939148193590947815786165503175035853534321324682767819219529860265886094281827229321586735080922781661206751047684957037718577908094502811379530155732137408857278007215471014108865323553755502697542289009541557920165181253688051175561505684937462360888098928001821608639211185819380147157470214505359049178738013874126542227604543069815499482923099839715832132252740920715223778411482803757364808947087056613315012862646751249884857352753996623744359974529903542601739944998807649421261444002988202552990740199130773477378926255618607959576884249391941467352387837459175234985768065398750377438095168047381947796824236493206673953269407703501642020283466767270829354212560940661848863844742267981189346464006843763125133966481696798619330189990407860537592735140068378102178490993506458177918176948635774115527300784832503274785080306890846350420489326405183371380927818748182575073549911866515740024056605574332757028318020483291593031939960626265664445990787694116439427136987675944775676301370301547927317339953156148115107743048944359964233949537228946390007271802240277339672898013422687731062019958232832587112346447500871349898941881994530985082014126444921610544629507037162763531215385890272631352208320201876432518554574776070004071702048857594173656462589229927352360320660116775746554915777397115149811991857267414319647736279702990088837572376690806220192724692587117688059939563066264901776849430760583601788948717198629309457183305905049292189903082314764691641371795884731748474357675563884394377917907847970191792855742681423822722908273149188608740104704284654945379447457058133815181800838271172108822877673548593432911706194892479464575358886370906611806246205920253433114083345688553331698871288624806675575503524585683709472534998354916530617454328519032471159780977272927517601773152388604232132714853199332242153799453978811186136159517098208175292340840204591728495647505505020312022878126829937393473452991396523385870630511745412958469056139351630095695935684990282406516755597444454698016028710026170063578642455140289689223018082509277077093010230074222367410347524939385148981230234913034643223742729773092270278398078148716553966063280677366828412609020226935176522124834175084578354175391151715846178581854843834230359672453135382316042787915081797198209514083566996709826507382175061883435851977633220158329189429906167444130853658259653840399052223419075260052332319387168048372984004140366324534954128093137260951210971812475219104103025297270257473781444895849803758556620724607286690633174667577883777501538522139602259845633083768130286198764672571659773702571771218949433617452391376623677517922482635126484660530628373920989555985715072740611158435426311950801367721335932993930799833707505650314560929856419423806712582239922052925105282823296757343894373542935484522128867192522723444606915122544597699922161992180948227059204108835428658474653242880136486551222127046627422017728305505859289745230420244317387419873017204368762346082671812458672387567779315841158168618968667779796252532227889714214162513895676448548986102609732013647660068532157077347729968056621068886340740023595632593705229237842391995339458851619742689998690088390859295220262261167653427602207952498476019781311245358029271737431475447936807908398025616075373630806343509396827347217686090216466938499973503400857398502646261487135338900896022706953975369351540782161085456887120948994526688339951207690782244786256973172986065201452709630278246698218069960240894204046048468189671431897354229908441077921057014530409453710339939120158610824163289868677511715075690561105782268948901995510155343399291894700111100343182373744348643672643098594084901724366823712351027776996296328436660858154541952063315459824885432932410778311832792366472239339785197790359016054448522448846139879552087056235813111665175664267321649847723140440348603815422227906923086480461052546095325811488678946817018355010798244170844557968618410610287543578783723654323657602613410468852462080556665856225643049324905524689930886635611071242966473745861598629868685390628240280452886989814917639297791302598559752420262465291742162702720255843211168244059247628197738274989361077980119686599447043823362148649933116282728761732124350617139104241426935391307756777670803167312679486923924639537714192315699553025360331898616320583767175413355222186428283257505183831712333664191063146628893875211271943255759154274497647250445453377270163588250395808849098431869262981257414493661019156708611623504669385208141628124268866836933127651116948058196324837864213632156861466122950103170297974812893141893194510091444121525495016396110302102943259432972844912019331933414090271204405516409207889060422941876535677014622684348668803187366624272302461214780950669030794655031198315859204707361122879377961082765642718418373391580833393839421907428821404080315244547565991328077434484556003230357765893663631192894738258452498233050579513055201217797846889148148262239796094631012399907811166917406774114568382335136959508238915570818415019961926196049252204443261820350129804910165169897472659246220175584339003081204267099931636896259060487665647310905652121166310224471577642524848441488501600852486042863863960743974266199876507033130737828141095128217456846843069689051214506082309128096213458407704875945498622684427176422853966892483464943552432822112245128489142694427342645014704877399241068578456640593722070410276700768567416883033293391334142595649509405968911338577092169477005268938237155111998833389621131929116502153559946316641886536125876070116229729485554022935319035149000136383324677159720720213219128959525332283777360388927740500313571525427457235099476353116406307650908299661543270675263996800580757663612852967087389197046954705421333714660882263621214100238229148109466704488177256268496765887601191539689648957484479772901499875620700287194830355624285505601927908832487910511849327898275588686534657946899593515791648225582366944615411276635524984705135039991142476514042817331390798982525658790204143774520229009403882268712403274508971546860146114853722209954318615607749047694338163233338135560571853594628576248143606813616966844158624077623004034245829025247755710897977274644886731482158482705143863082066529263034126631117599196277729408961649799129571048162225989056659423914060658701372709455457793894802546125427409350552080561649156293749400113748452449210644030894959486935091567737912467604142694935371647263031134301805298405040168754888406078994256756684292749871528545147432924875103947235782587553258883201795062810993090898621580564024659746715174832161235938287731072658368710629794872995221884274250958785471607155139237261704161988264790109441840741105747868212054022666603546228860397164357966833372579090185197035901029735488594504631564628415708103627170334370104010920172969793823522820191075392727235249802813990759455855544308143458903947676177768490660028697177378486494360379750606175281166999397423331432224053130569978740862018107011496633075872201028290052320218547245245002624854206015118660282306125307719345586942443953583644649246877540878738046072376907339058903790325356214633242831969395313018300770141384213356342226368203476989550198670445895450558805128174568394243167385127304232708320027752855981313422506508800769078887155128707758524817399229231989228922592291633401302073807698268754216368376434707739358823149294158421183077066572468113040586154179571875161758974281525101178847716899417303036693213353794877950200474676204441616227442841870480866421043570388980123341950324783874442421001993301713938845195078629337035967504964493725837884067030267305616340255017177183249849242391888143956827524194746912484061033690364945098190303649246848706985860795712089081559911589978746037268687254884737276586585592264649849526863489114772924194132611720187750673164430525215370936510252978090176206098136963146658705547017757688293605307703488234384899404654389366722406836597910821597477771662990938892547113275196057675715287688380274064367415258240738139081426847321050004701992270206066942411442386558253543145620723281860212742981224283243449223543470297580355534778696611063288383291402666344971463247501741614337553491186323701414770496223076916459617471848390977052753538262677575147262764433662983704862374749829880125844711678601080220126690751864152158450415092543479035504055794219411318612999529159420270208711341491880549644438543544366022530082118637887908250780749980050707784195127790677505360217026556621181524911907087815819160527136220191407051081437698811984385670225611664882092582687193839096455932541364781911525193704225315060318911257720386205196370823553252841557758733217286382067165553668628526811427536706337352561000397212649118285279955468174095742520461965726074090873068384659927492040313537972066416723465750207932734214446283077296552855367347455674108379215769157238848686391239255108614350549876048161346905883061296619113491835872198182389498881073795153497817883834165877867602620943343417513618221774001656762300051843913671415845855785757890121077566994423445674277217949176831374068800992626918513813330652057881854864926821260035338000362320637444455199607180904559526361387828046276847913479692277473478175332542799505654675287483558188611028997886170666057542048912944603352781705132185958897912777278802430811494393015557166277460013627443300053471832317496792761175967315543222178842318773912004404010291411574374591468130781153096153731102132740345941350513780968642500461604351854807779126790325278641663145805309605045253836611012274719347610370297172379036929777693928113278202633173288969412790797795470755456486661107144334715529940743544090418476360623263545408560675049558350689781266898450095619335391339462379789135197797283183658500461956941211012855987198564423711439655001556829826840716759851183191408015996870370282391173195033122793571223420426576160693889884182266237319116605143852188861905739861319269167929706791500870840571287756003619994789942645529390805186692161556853556860958734762468044395374854604922409899613932336948862896436675088780324567479022731791123606289025613748235164237013621725281920795958850721356998368111812183194972278659533655771738646495921821629874454688441977212204608653674658988325161094211101207442616523437045480371416811326962968966750629416399236113747210005048319537741452488725758118235952513441158486655684770922131624625886015293595423648228842560295405771731649867032302499321403950837781255460133721752276757962932816458522163203119741398037947269514842746114236535023467544191192885696660886655552136371765729922671223795445171428257702722947700156535853572186037842417439707643168523022547459156710461451491506128851332003150627540114181237299040951113633260076724759769566628316156873180918010265256492901766332113118769055442466110261400782245670714770833303655276904884900114187501698619006077895761283896769431944473836869273375423730124177019569230770628802567667407896552547566899481315778739206759418761128929220758366020678777757293361846837805179010573882024847785599867909603534854260556467823555463615293214782319860566227473896037107402483248223005651786300451419479205882365173247776758344604183726965028495771524319345427621391341659353252881350171158757344921769781252009898513989957164015455443966247405235415152581871355754354336961121837569054716615676994541186621441896529566191355893343745445568547256697142159903108575791104614472367278643147966107753937396977795917293086306323388334306413467602356034878507016436763551507076005427491299514587183632730289383584030359577727116463902373515835436576009300295500077466628677439945077639465159358035018824994566670471947257946444371904977617988937553023147745904891466145180055655317568381745105367585135486978625908281674453016462242482576267574460282343164495978278087116334189590792585854740283738960817587946718980117232737502439413931902688038111734075232975346347761976600525709867663160433936219718234222987049504071119762562317046535827610908283541483758147584641953439700323047735726885795798303445057931249629520267417128272346347075997698178209632060955622473646345435310481757457729050120100748434771945209475766945617476367539178762520916846587865949196671596609637937004149676436106643185123376514132028538894424511088085315396109129869117643005957235037474998084769318598846096117165819315762409697852618683197239556975032414260718209800849877778194364226046194736674967966450215198211580364695916562760488660597679133837365658565154934144630322497664701630519248262292300839847023021310654019057978595286747404279331766221696918804670318840909863760588112503886180173482097924434402385248600247523158544192848818658648910586050092097043068840583720971034381904442268490063954179041366750490784909281939897354989496757097622228452419887911583552406763304209623773284906869392965206506224584734262168185340637117291409817325338132009668583810965869096656593351054009717178074759113015150006191491291871899226713225669785664915618767815749867369056056523944649038907905731492233244571169774132194420646754459060132929258734580540290284721821468228072235214399430446304508400480146502142085552424499608440950633317396257113714131279234349734551183311997450658031198999748668279099682105622596575272854817169629141009732411557044602329807958602133806476261069779728401342826442886720115262521902788125487523291675110880759026554760675295865443905356148187832905363165321960597798791842968154077102118667482497652776833676982087922828288827877108790465335424224560497861311731414397857435829183655174430357819195328533632161699774153190974095863472384755352646297682965949639547562534280615972480316861810103675441465104479778525415584031786262450923731962931743490458332419332617067180013261660567377865773027430855626540119038311334926630134733284402423348899411572670500656678425863957018167338143731902010753302525125386829788461978206964254475141701296378194011098641601188636331143725319837120716442862107951973145888857723647445420908142247678590558624716673971488424103005109963927202947751274712746960175263658204785664185985986791372184961037192735400698648148635920874544043687567070347099034590009277145238063010465549553135305388118011491380757533135273902625700962551068471096544386637143840634869914784455083858659395055301966181820004809297955884026676458134795651001605174081507577608044241713909397394847889192143439693985947979888338715743920139451089516966830043206912001501567626115789439920448840100589068402636249155922457618907497041770519277885614873829369345461929464269477154006317260303011853241455106296844138404546009045107286303533264182933412773592389604704385542871931700028589717235186899909767986275455089852609774760500521338903159002052515003172811049661721390474437853731207102671232727306128670046105739414798659302519539791412985101644281331602031493897103337634789936131474269863491356250402771211270620045561667822959274978148039526647487802148593529355641901648365944664327847123631793798459390763013727683755291374105854255038311907784024328530558896455089680765196837027560457255639564449441140224454401739603048385132432110790998324864446063867119400072029169141301739837129994248632350187823205260061118782099045038300483547589031321267237460685185963080373107710009234526571864266580139110794102669361984023697563193013720221323083022764491773349487399395245560939128860074502241880401820429361927393206894551534786778415714250125280615111538045433152322193077561511619692713935032285258736737044240032288725478783690431965083117979164520545837558699489898725777411328155013491774816271102735671239658669340876923179692644531557356297408352510308832115596829467435520954455611957650349934642086911807657593601871800423898518268263012971466401246221355117989792834648501732191779034412882714254130324879544573435363821104500960444321302974526674483558283648686066860571409051706038634470179984311983449705882313788917909809889307953439094174905087059577509352361740054653529545878902109366480361837525401170155335030608452775120454401698870283145845592425778296032254069142831474631570128002483039026978167531906945202494546607914905066194168950433592097851469623562946552779742955409530471233057476693469297877846121144740707080646835652149474373444603868714246753231708712412042631195395016404875909591459842781048298633821010212919218266022038941165841131610511436553297487170567241803397850131131153611825755865550075356199835591398597198228557424541612514547424019163548787460961984291160291819734077826968166195193312363473225446390798416328629786228149953959838861972394824649469817933695347001176958600832130965048598950998911007802142671370463021467822536173436679301174257716045253563403377357656741849817476968027281942905532450863312506461978693578253285880975657719093515426940670463444175779135699934455708839199859110018857085263441268049661918300205794059871655220427188155874211894167152824223549895240927571596484128906965095400118950465361287400271620398510623665828258518059965111898324584030994648518503475244460957698269276584953511576236662338198297595877531796898314096085385137726312562214913514389504802008033488626208209139483898215717405268065468168947652809566175134282150596142740550597536758929892638900618366330529120764401482985101880896458194077501237355568972741104414375350549607892116734707455668505377544499630795345991004139939586482519547605145742032839122543151456623529448619011585488096162695749797806801965860820041195827086666144138515485888385910921469162015826582893671080541769081298289639162037238178129370757279034734377347343584941676519949181203901107130841721858091587542323822927139055250264842482460166025945295483743197666572935669163924457847777327624333586826683292999947700781085721419697876857624895726152140673840129456570601106668561182495376211943395445258883886113161813989813351577681439939415308364972473938792413832364460953189466442529626450179146034278120188397480497403353865149970987436347643496508574972065724784381055444320640494655137961540146047730196001972899848409778693062885715474868663427051663361849407951677423882790442912634888337578410852409077178020322332492347707784295159541980218139295807291820957882262134713972339496619523037601886845262160122905305359722998469227144090354654410400919406786252280964958759895440455676403566987706844057003576275619540987841800298451004168872600434311297869043277420492300132486556488408201137336573456136563509290807207609973930781316599115639297461061383715030028745083145573201564654697587727035941337731990843014420804054521717841413211176002946359928723488326991336466781335483063462347522100195718885730760236061615911699334615355606699897167018927579674642918395487380126566294153254781980941851846447913489904276287862359769074650594920279496027484567758384245047151084264841242079886435100330491237366175652769618172708919307620760187100074549889273778537450181056437256004640178909924454579592005778731047125590017075930812431551931093499053882276148207104765662956906139822495643958821745005972587936977910280907426516176525763095040075743101022127203502438691749677316779413196093714935828454425514381643552536559694359159683818935927396227791302378248049976328172212842434347562276719929403058922259897533375108519728870872478009579967553921325554176885438238352696853169896734300913184108233789097080541549103307805001041521436928710458858866843402922638029685213510453583610356455997660905247038454886514250246808418928586090557207321068534283941704018641942799457149941848230188718053831835827876739899578793260002862414589670117635221680672715000646055833806227854596227684556260036990321619174873313986445300248057077811496366910523323593636084852950473025138319696133029932688633755308826464954007318859007023225990885749490301000456670661264465536430389958481681481182139192114653510891551360751817728618553742607733400372855328955476545101363954317165344771565454498880857670057936803144025304360819755734880195460287469808016272678165540177143268835968148617401580708122074114556053954286127177624211937872463874190363250300562719308265951548964818577775206862066045714468378116829925809033533517722941205368707569792161115191068170426003304293685878146387371341696779252972117061946865340453552079175476691544377170246021723613119368734643714450435241037798905841223570286617189747050511912006835019862945747881503801432655985690053361428655219818822651875784803869288776354427867824819120181206078580135346994021616237527039762533137187056157297433940936321554400832878715782297533038584194484314071946330889660095595580755769969936985150582600351816346592526936803577123268884072700159892677603360817884162618067979951362009103353498028482681852795671420884571287158122525689642078749400315477795552130905555640436237883061456633757397502743640535064323259321211007448780515131583797027779787553276571244431180744486418828921452626468534620670191786418207598146010580118024686192069475603228331117878238636107805161729452105381203245277192849599980962017861723333810121468048474282794494870236992324403162165163997670926241471608638731319022828994512299144162768955655806246684431546211169617774058490811068236119504540299378397874640991398163791108827247143071354783332903950681167836561691514013633741685562510627700347813561702744197437556313906014591563426208311536889524028124182760293467258346368926689958888212614345584999179992916164216544739260032443685359157713538906696691943648179400298508355475766372036893047627266332432732555363997778810454981471130826701366956571970227518471958411822703610371031124806621121001477414075578487971242941123562521854496823299461523757785340073935366635946897370138312752529859736928457987792433886838197164144222679297727717551207558997422663430068449732985606787707530358353149772725668480550593876179105896449078738754437824331742182959676174753415447630120921935028448619952375622923450918351069400645484368349165088548300051951769073874045824597624353481383003599188679461459107546979758422771498820799402691687040485710957572948838879450488112624321214187192718430481859540845708176668195799114716383865365132468451631950323666924337424982252802062061308278003802945336975178352261758519037996131765860907915910789465927947680068546988972477080653235710429196745742353412953556065850367253057118037153734200088950799034487805172815844989901308383320674954408330563827096003474543854048155223932737648627857155579575417875143909444866995335542458363951856949347279815795378614659279334351096314816445068212484163000141709875034513812182125888895966735573172556993163293152919134767846583662768654315372899653754147253960817140435340005993380304537307645962743524997435591873855718722237160068952694478890457532192711047169512464991752966308879549678890417495204170459920618172956656719489385840106054934933008844552174582723123715360729313158812058122664930254917230895759019976852538131838547038302755817492142046768378508343443670456085504115509499310367084122507213817445798485811575038277136535384332688652127373958020813969707102378913548631531739666893115362939319735837245114722195873212371326489619719940843838029404726660505035311651044343591757345428422406523454884856921989926181584136863788749809903443289267249479234946373167954934602904192605666869921790145213800920643753443849658798063302169422367284286438087046307806040763188655671538141409986996176116345442649590495726512800535352857648498280987926184165212784593880022910756940249437167332122451885782020954071755596865141402474973091339979298751031068304318664539797761475027630131145573043018322126978702254060654304496933468184124332093312165276707002977833601615736914315717178840400131585836987402269778752374014312384988054719811722498896235314021240725010442692431554479351859399417498159874531465636063997692240420893762629200815923830362479082507819444453991791918315032676974204013696806057904422306354947398819435449683562322308127017761291267652697715684741313171209162137587699789942743025752880460510216789571317862098435614402329222939424252749315592241910784096469177924137306950749043787486758901069169245155652004847343843341442178939724233712815887380097352372065871614637938028630770534820073967785560508757106500814760989502280270361500810145459347123662132321398810858773459564176919736268511577037570585274958149906883256651895730265817245858744268697310363499674427174294206833760664743016035507763603406442308265816298692777414034050221722534508166700205856402566718728922884487537328462537499558487366463151301646511089708951743300630545559763381466277248887717402297739258188477174149560714802866532817847629703434562888792908626362468986309602574634885641951050805506295635110370953874289707785773156117086768034232080918194798786106940579900380250497624041108412354484905275506027258667408996326275361916686324931818537376656938604630833538376091906126034077851492055641427190943289239157286535290648812446372472114787595899644948148298245025719499639709558587838207304771443515098514879960190496241630972881423936972190444083714701729110275606724303825767969158528899893905289749939743942119537847414450737512808762695835663552243275614207221214395864178597129151204550070848935309477582829091095517115482035469018208779408696831440945550947163205295213892318701252787299501855909671802764293543536127316018970708131805154385036850026269614542633688211923198362425260049405173361944933083609015699089062326568348110862208645156034510925212216599809688708650393004733627971558109229627707684211755975327224376728512782820448271052335414502296609803977461249318631022198421436720434787058600060971018128921884240541344608150944500936631472836440148193461467903732543041755753145710410228494038497643359442910722643631553163467692976011989169796279565594206849633194284577420677453496614362231286265500131734809941994659102357039709011449669903636038672783226497224159230897567012507729183274634289119483064575954754714565073858117315227776389641177454958055056728385568210596152219686872126114666549027413064553197604448109479735733725006173588128464205569679372517371492573499439863342582871485890579015377222254006518866918323441228782975463915639208642150898813220265363776831528270419859028434674478993275289794058430038934675375465828031092252542269303337243944985587958042179040832617405962814802839454457201242924166116376434583239186731525644291389964365423945208751165911313415360075575875641310056250557826500403526951389913460068443183448256257113347815610029657315083724042726036027304565145511517430033969053362318661399655583407649900922736449848113982147883578361598097876577150935602835513500914566010813514087133774510977581703337511420671099315211509895762479917187955140638133469958983669940296764935117992715346134426583598249867383115313704045088233649542811072487241499249752694750355482761939732329089914237743660504675188425081944850816059489552602893389320993414068795291869622267803231008650338440157200723705592043598563243073919548539713385492541089023808768990653166164670309529690521526612686602646426374623165263241925087626471455061143300316146264238196236154813975234515977087016525822569996643780740026659589495078443519788042230064284997794855099986368521948124945343197811848610710799669399644150631574830395818583733218380333947735382741788940208463462361109104491717791153938954376038360640788915998121285337430461116098026814942628339145676359759892873950412931316344451330939256800551965945625238399393292346195394845782858238393869489741678109830797766120710935918920572636648617370218050432304718474189118726759870274463189102984228052851023397256303537134019761963285636775507804684696883873081598496054508049211234970631810310741657831666665495308148874265225400866594710579983602862001582699479789203087000159011028989449292398603211480032796529984739072671854464028002978227809667319996083936373318899661898355944850087325692992109294527555079941173457002159548958761757974549118509629526099618788735326103125483326987606161606780043790805923195508120284022263781223115841811206225357472405065224987724718309181699766063092387979878521497149027113406475890181340772118665715984477353064580003372679323507670487188845286219993313613182135976770168398524870963840735777870208260206782035996719224242487536224644348964795683331279414713677508206820750629954310103970367834621013560880449369646541304644419242845446300378925753179809356524278757439457334287818340130872157251774597805768507251461226873973480147863504200973661882269646978851613888025427403939768984370400388565968058167697708428911312221784680091669228859290809715311253789241937331463818849226839870442906631705998588721704001184874287290971522783613940826147052753538882997206243740594900558862384444933250751608110350236872250360139835402506012854308493801211607272876759340907399985019045783221531617931485063613229364993206153573873110896717167140273901697496199562430315058376273878707133084730991366295408459347321921086363831632030447425629044528870047558542471511514084887354898689998398022982361755272898077646758363744204479624730254605772467207006536552276770269981133833512670379384065052008238998693870163121628231582398758043953449034452092278230970872963069289303157063679134783492394553661074081168585635435886492085804950220402315794575078052381971887030339723643962286424043900611460802870702979480654134100606571416160946482013406609240061832271998875765373700955120522532193216741697694635200553846215996952049117318611862391666914320103796753890466360931678841392334061633391628200189264541215152270692442760390516570509903536124572299820340142600556013451524636569999473943733701949214330093633716341736134558184756539622850003726155262416663564256049873118050908037355963775912475576724110189391931916044793532740778769503213999226640997804016728189883547178141693666305483252492075320090817149040742914498314442783385352576597834579506863860333351055351630075346212535162516418245415274872411917549226297715194900891899174704029750154814066399723303146109586160579884197339254060660393359942988112419277350209556955041180464612146694707382119091888139904118224652497086175291748634716856288479767595291608410315451196156398630618177473327564089212521941977902471086399943088499095584779814312112374564279084881831423011424743889772093247039443967104263777278021787867871302499935811229367604838175297234855428129499966913897819087000395527847039738415204353228290714783294492437827202963700428643537235744760526244554147732354978495585263341239452445569029733260804892578723312560774066473738598002339087310409046948424030956093583502815539498926513807335760891130333141705860333652852660599193874526217070522720034867317049200516047751777766542064087471131107825734170165205151456564847102528671248667312100443739537167869275634374623166661919128858650343489696440652284059720132817974167712014729588740093075031947084227212759090220911412858580273825674475536191433959249359738510730501903693982396785309279751691774902348894181743246581520662665577611075369461256867259507101076358489075493478691883860375531236172035328933850653373102423011800485330790096105771390325260528575836009565345904732721240783371760460390112405031583026429769746039174509662806700401360307364966729663136578007422820614328468812659322446758408807268783850326807401145127905821114382005059854124792845689777739753073444182525711517778456807122775369289400537913070836244661461713524975554730784101720434650978335319387050454660463961236023850422351552032207697961587039568200456913457786188175293174000316176362156090392565402310579170019973297480569551625771871887692953901163824495964581478971550736403208556773733315278247701794621586984030378879488219344030761235287526320279185303912243574656651113787995437771241558768422598825043462201501385876076258277850272397733096502693129496849468122196583001167887236484292428053907369830026598298691689120774715409267669159175273256418197076089573781463651588064845047761514368691665801074923182515917614898004930465730016867209460143442328962049909287320300668039905442539211213200992426414090428856931633013163510635368605251995737944126193633679781053127331751302135768757966431436339405140214277257079249089711176032834956753662429752594234002318709664136070708957735431754764966227829616239473152959191909660210424634005632570531742503332801624705414645593983540915536999048794759986846549830618784879521110119362895281329544731559831221662435845618742764608999315153996676533711534880816471706154593284804038985505489361878568442352352747391369694735569776258432743823941532288687707221703529667233115406677915895262538488067407739818043782342490755641505054852364262205461268755922459626558325339732541622061716256879141490663529005992952310490151754217562157249241825002272884972561755923602699046110535249433338036563065705138370806062050247081685771386241630602529900814725607584914385272374186927345005480687236485654609777331556744169531041795658728862127920289767872768675116317357163413373024750238985466497240408777302983621117297066875549528332689309536781238768458859089597167933841060404698283876535555096462955647779072702652714622870980818997888712921779521738991749730452597361176450069428010666983047633102737280077523918943195490124099616314482857191188333682112732823312125470875455855441363844045761443722354092952663038253843848832216569179840849124967656472914742927846508350840715346291183346105737356091946716298001615470658154304216904258088779316495671056386873810598528032243913925147921548109246502879763510205524535175073883245788344872999223841417893505551856628048483902883591763943514176170886620830536978071374917994032429662536504762616352500884053873339160832983804737504933623119963363784560052011399593627577568612593865687024016699578494817829513865449199356431593395785050110765215312310527220594686255665093590825141380344418178093598656040242634893367265780924411197128923227304483650398102454459838037801201994293674893207302386270443276106239417770082382367145863992453770689129777346595541811836070954364030408529300549733263295131174056970533989167648303885917699299685314037336055895745111996375571787582329851969249341866089733069479600214194105596010139583252320093467888352894673313858802436590315830635902534003797719899275872682908464527982875980016721474943382730943621937704513526822939907308604754410092027260232572886935151706988894764569327213285051489230649992527308956601240319774571697976025146860053440140016672461535091654649317043301393614812903126866578609785104892771492700798917994373503361104005424407862923946292487277736608934961054604017100114311079767134898129389808660648778738126689064409576352033760242328767845707690636662041779717671726514622832574932152146799514780235693208071729130031522964650455705277520908155725411268744472608802313475213415878498155555773513108108953683928290402071682976091890558855753718868991422107055661124331644456279121220545305174264160532203243767153982696842521515434567474323453727735071832758823322683644652127511648601897171044438115320235700168781782971043087002419394303034109026316543628109189237545204505769644647425801807548475773230591506787129517437667995778221395864053696106347624228292849146483361044336163734862072826344526583171936192612116558855014982218238439949436778876133444713863440178988074040731971943177954564417333310387047556966235990286702085045086733632992785125923741639129287122020654318020310637880967427637431468613779131697744330827946112125174261445895090545833171700928563806513119633708563426089171900700549572696066988576746248977559239300781727868654179057357957491233280954738178741288950650864428334271320131445535927178539217516292130002577720702240740851877155879993218034668989003087492553073447872691506910495560361190318529986970919835339751260619464100239836432976977030408314907188652391456416465620905263667952981350922083403117460620486820562593249636449575066387457804306461498627312926213913723513583460889876526646252941060428338498607407031902130214024197907987724366265235430430635717880107144549723849749688673507574602142022794055245258271130584460366226062531936090901331344664554453404978152020567651589574959976667219719558668819332756002739476077705935775297166471698721297747363723950069934197908168328344097023626470913248639952249060860902396469644469748865005210447077606590307689421799602073643978863909268089674683715533747151943246161336708608433825854376480141445008220662771865463500095617497122852911448617650200095613999183367423707265509875201689543904123729972727658642688639628382463749614002597113510894977708230468922896113331335038661975175085139447935554348031313327867654789878384464478176638476594775436943409811182487653137212350777167283525195888049563338818019850333304666012426985373945371658750158512475615945030578811157145930901587065340254100989072800428757566679615196199183565238264603268622234277396693976747048213732349423725413104148263937621880845687062954700475071038017752534895004150820806715737989670212945451182925949766907790814831052823501690799896427304834950747720316044255472735021629567737847796597549243063335615209864763491158068913220842169337555791090215855018934581756570506839991734664928367060543134410852774591259247284921193090001917590125944367278033239467132039547815216694485873680484570150931116097436903947555014947253209182756903649177760613976414449117462123241739436908790301784782404136345031799646295963570756759501501238282441559906225089445789814264615020274793639750223283191639027830973415394560202551069723542243443889843904594189277447521219853150980214041193885840528128235588866534713084405317975367761521551626617017007386151068446422335776410898754013223418380793343970650104676176782448569624244987461291971772155917776914002263722269626532599598589444256206643461516885386459388620487751147019362276824440597074951205322042513264064386594717029349009540702266095765891494018372547481557901734220286002553799744338341236793037155113743139347221425768248557480383492064707051981828327734937486220125703665439722999685065800381103443973827085522862804843290847841293868172651295871161526185429293041669538584851620563444637443489454623945623271916275029581896690851689373701942957459154501046497609304470033703419731632606940579673067174011313119550811063739945305564916330039553830137322900441376178559010743973936296295491839894942035478909418470401293360747210806428434036329075828467528347775913699073257690629762846209299388725220963135625010878565618350705667330312075360041439143182828529715010135509331524111893829659902712665081930712856780867713167887411036857895150800119815896299678704109088099832232371197363814925220876531226998188289151876868805682022335986106756900528987747267559325165776576157512176624771541796446801585633258879902638861361805337004707029770108330302487292380174539364145194577388642929547740643615317775232748685119574238553703745540036245245340272651790252947680992984672619871673914126488684011954281103457214998991314275671560997668174003111952159851691375388229573030071576646622075307780702698945766155799578266179228741181028179331253925046753283697027001434184696950782910317595804494419730578478274197010398446312687548595740849062062953354196833949618777934493575262878185605742921271375515044917308587508742919217283352976632609288130966714315575997675498990271514006857452434567988689690306276603247607887851475279082782862262962895360735743990437123720754642577438766294976265739383263519426925176456533690675527323992567277820883893080973020631853667261936313127222131702959972565352706294093681776601892693853470560461550892749472721923663848068963957375690507043480904566690918655814849303534183534494314182114602049233862480304408411297940474822426201006815671392548460047644003401177041166156381939617961597172410470814219593817645001588119557110792294089609236179917971507378992756592776788246470343345850018801260759984492432720544487068231592090460140688518771218128895872985100805231201564158115875089566052209811232783970034276419450580534766189629884711028251126659930127448582046961799857536741178489131112998735536961532083196761582576992867811818837068612643399992046083881024745793205159083803511365764984229341053482254693974620442421556262558802819392664986458320917001282394182253349592047910374269678719753989313756225402457540394389215289286278146673092811635379439315465034612980506952379770374558395857497876908355803260095856772594672633943396397939873328615857011519397299983677731560445731213182264027355410166581552107847942605654479310046199820575576222496661751127148625166690865573096131273789755631480149993366248238778596380234600632786038661601445824033149651803505511097674967960833519034056798287963809725635255330002991999999273189668780007751781267348197537760781531370830906470909460188417209740554775752468756282605200691171419205247846034914565463832969919189250800296097249876087474063784394306790364971495329653317032998185714470321610947724768349100800798526707601119698453787509389185319235836794398996875869339917941123530351696886762700791541553451254614099691584239295742069520171493575828499136577731100422588767544181387968684616575785826327738005818095446386910965411307139369823016791769236573550340669245973600494274113753280774414395757598853802655939917661737385739292649309401984114942718309691474207588172238651742600168496635075990082669316022881025400436574111962465939764097891086438403897640845942779580834341576429079189084949424423753310777823815913879681800695129624106651349508215353293394400460484646909970060049298059056570832156853323678505173714264011127155794988297075068680413520386618786493620170702557633238298850070967334638143224160766984576574367071917998463820301743444265443240216653735498058872271205314842531547687504891962841336948630894432027671168187478338272750284012223822296767623896373949850376419996313348073905924153698539448582580269345366030087790524014818799353196007896035244403269476851747801694589856178168079127115954472681633597985479259754854394716534073774108335278859152802928381882201431306161812498621122927077015314478803260833480386325929925060747227710182772618924699640737887808942533747864530889431668309701318890874788168504610901645846792982166779375764450587335347481923248969937080235354427143794518769860587659090384625264984211361084090875251276602660087073521422788329696427168094530276109089696358458853448443220778989058097944090678382138554336338629203960242008648699850816036318387432066803290305577132307022561798497954373061654018361106932265724465945841609395584174751204033732998842215218861518580460433998518638479946004617487727942682466002184160296439003582316937423583005133325833588340194115552515260756811559385240731663791435044500979713140468758560801966525538690710036093307485362167213770539182199957644431602923080385049470962874790763257148507879348416949660297853027221670503158889461827546266928192435116299319324190050460221554616968114318715998651379867206585204225532449992910406270355258458944592535155041036655481111030784896691181192915454116473696394194331459996605470436900735580583241156850009813138758712664967687875707444035645053872178061763979967920874759334754256761361904235494125647873438490037867002834614994319698519311564365082654782553441156363639295450253303979937653821547733784349205947686128507841650795989563552518197481882786513354481721004058055796584879794111335652481043303420146548607882398047995167578527888654940166129239022138928645924085189003547455557595391796924909131268741462136988594278082141609803591825074452884073405289270481834944902298025036955254111509063040466582032279077101141720184685418722322226585502453984155574650719635014177019479150995856159982866829456725586979774241220892557583114604120763696675428042951635062455136249679781601919277695650536165034691760856995836778623349754249721022292882584669448537272117301529317948927287646789034101153057223038718474786942915877854210188597083071640327109675067158170763448209617081920662619835501081513962738408897845831639856499692945110988546445775403931249818686630051581074233613978627108691975397321658681457995302683359975665165853741621173911147412406094918664754191583600462209157293819125740882304193724421951785173547496352758096031066394554167873555009332551328224355342712982891556761385543544387922314038735769110142068733623843664444796474700971139695141544428217189090643651561359130620716061985032577201145075159129682564276608495009872384549751590526204698835063241960415561620004538152176203351057750957958605300661352121420226561283017464493598288176457046460524229713026874383614289489658143053056747680596691288616168451685711736049266124545005999790743393141659662438075328590325376147715762162571342465524508136386675964951222085839879644674036286928554740596736437661746410841109906468618300751163795278519916734995727556390869908785214308401923127915811749840783105410914090979453835969217915220422402725159339437954440745287480149689350278629661463343547950361653895232411363950307823760167578986932824079630446875906095039726110558238421432172485071906928316323479413945924257246662465285057965771333727973419277336172456253065893090930375244717498404110222991002401533228633743159623757533104063199350018376167807302714800604472532727634386212425623863716157513324526778901403096557107613590105065269766943681280179868798976514489361368011978200120779684392355207596083043676507165727514875139885172209481834235075912748963982648982971443063062474999463747721304286849595941962422657329677922156934803266524135647655621269172947340017225249055507005415517073696670410433869801692605344803390998509914056792484366275698777633698212599448091891072037669669299826546899088342523422603212926581582439719230322110840170866817184473148507690423153201684896955677273740923675184662669024185193734918914934443010455833628345595101767198191778108318348783128304677237683255037150779320202977843293544853291823185322645106251686870274908976056646878310557703136183675906651526388528620772778432195951372368333258712907053303291968852337399624652647336483564941163522329217811880355305077111298262521519091858699164310195523626589555493976245966720504308515718499381079802215017405557046769511801505125297082796853697363005299186042579112649849793056014308312548189736967616308490033647733045684940972637991688259845674429197237959374728957979209354708000440169682656695408866128836569149187343417971896955678748911729482749683097618432679532975092876971097787733971109185105166192617458267635656918187507090078713941549491217707162979067156875957575518794669196898709572155169258226161250176248158418740853080343628174803741193759726124649372948007901413420798495432578908529898207769298680417872441429250347454925871703722334826489378489348748109040959394741676062854083908474490038429982671653267394481523749540240632567716413015952054090388291119234656887409491464917717807282201125373586977959102163160401732698704611123367913288573696154720622083144953388865134467409583084758605430035819204854126679597346173067872642571427814669863086633920015953432874768542158385307456303670598825798972825266850112895139947243737783188935090651865527021909048984769334440548378135374350726531141398839578996904251624850532739067484863451797751431108973818608403254057895585408865882359821087877218259058104080500334252903463488901310393480621355500338596373383175637987012696634169825720433617691382820168311000567488669004006192074257278044880676700995335261390563091779409640722544116559336823925545371958184127067596291834904807811809688095953863613942023379579471079028291822702988619857227022322560510737106956186259783630638659780499737563694007092099220224904384258418426920384615378098082479128163457667159531150329408192895145449093226236306427009648087417955148834096610928981796376663680755147603123372764368961269721199045847906741528388738435964483021059171271649476408664976017807648809003205464454188223934815022155160455355253444243896887239427545935909720732985685376239558357913078577434027715005047142906004886848794020250341870896524913497461049364205399352736144115610766664319439362156036111007727029549480631121776290205533178955879376457956739479078210477548530942314820069021479291068510576801807086617557998459393907900917796684211578314552276534196711651858701682720503679774779110150443301854823936627884768564534706790745491622845156062037474437760167630527698519694759080506300714159479187185188336592759287549883833652563797771726474132637727724880108948612320948284064776363270341398086683229382369763985488271688185286226239568850316030237690534890298228379636137511591090429876778091493192940343359737745506740751120984736714621831374712919834498321416612104525595932838171127871107509780422351010190601781991922070259754075835794264564896361499856441090491623544580181835194235901127069909496337028164312155795754688663697557384882377383656079956797306398999459599821934745568093070787307463381087627965872822132483003253848791662158105140913580223089380328025885310637880602980618492233522824326409830822319776188503565399355194463537211160996761093679283406540080290858381504313481630804053783826263097698963536644932295115026823078167677503213718051897075684615730874358503835875014387488842349520767471529810720613491393024955939694997202719230923986050354212137765038580135185723015683105268023933344000396232823975485415909382156474848966975508926644399059209317288479746987152789223336771437202473117308325544437565377559294332976728229620761337485000490775754381186749862139200321866306918677963307400047525205935627285725046310296909974320369437022185116909829059477429821414242986448314661407899877753102996839817365506217314781383926440933565088234111545687080593869558162128106043071523839166406270170722000508674105427812529209167450740455701897174961486241788791333207710518546584877884139415783161694152424827468266182177385131958086171748129859099753987107056577743003771125091326655741579470778787925563734426509450063821728289455178050579407282737024233713098447513579778304673797210341422810592979774180795721796306980385673350670222935802109879842655594506157986193064145437914785646439913397062573347666668946757084901556043172449453151755237833685868774411351278276781989197581968477561720569273131906523241295595175948031199251126446312012743732365021725951128438908273514119443937328399895282839170174324057812955438847423263096770558950751753063466999402407094566922680349955303364825645637437195672478329493261832218064248241437199915297644348893043577504741202940104185491463908363766298799222153704231698357240381238755178435841362065811258560463896163978043241073737817019776549024403241837921998918491076623914120991888783285391080326396693693148351302417594658322467671138324530375992720095181696108365093281969658638598015369114271019879266970864743076761213057606721133843073712146183274889587544134639947030355554402094793179074418362921564458156564496323987760777533284325823300886907233280994429221246983550692556351140011577716286564081123079728182064989984877815482955455430028633786339282220967819864223557472083059328257457291910048580659747123892497191077498324256597280744537263537984847876466621439430171489540606569782169217061838073828325279318130973407967052232544389525973812635455941938218356095633130234122142632784290503849827415898757597821280892719856012991323592435853824756688423139590953411447255651376098576910052104950848509984996594912715139446600914799192773967523795551475505623225033940888290336118534042155096293910481492269229009277141820329505332556788718356851274803445291494229195095218237787369861900341059511329142365966441223470032720128147000107305643939179685197465095097098075765694551217256926300149005288117268890480326402916991330191248354907547264897977481381537516251774586518088753708226836144606091940392896947249208946209386765586814035375055638074253469490285061334808950243341191037455311077433150686231748246761574397732351523425154540676817357700345712287811961921415072592681293495499533252306330451206326725335396212333490249638010570574031937788722085503758389762060509054961457161179038532276048698668681768640419762632637124192389965270298401054344986336514319043074910446991158224191657547876504203533688558921265717354503393283808765387746008002727847104473059081172274735687258047980056890480462429197751990310983868991594388847013212331818291994369558420181554022428098967671860167033833038092018241156283401961240117721628417625006510720322754722590086710015930937432773989481089438450401616310038585892885598382080980476462969270047863733096391931022231958340906017999990889956096326146591650926848062983507236039931672047202873800457970486629455799642828574941532958847720937950378401818883224886474060504033962572523836011611262937704914525581086711055880351034039836492945078288875183683345969290100246551462976115797597248533788945358320399005383240688846916690867614796849143041895421968321073856338379609246640285553481650447703925757398634403975181260224344409675949041507619076149161455300387002091853730888057490668976108757805279108984239327546348404073133484532309903154301283475041535275735918514997077030240979173514198758469410164183514562283369545569294534883157659292735023287938054707857767953894167258435727917711357049790962228073672945112822140652217281460207063766887620114570584744342140209985697633533034243368163814142987846204213417624887012199827087375901660068010252782168831316624733509720076300250768868640353450449692914986614714653634394546547593778925462912333874606241126675274244291770292694805841280575437615390032472856513288035185958645546263091158960540225508137765295743084575622876256558643054604623010213035719729167349482934943772414791166236452701786325938487914758198452703248614518459652961012880995027868905134512102330458127342043863315668862107622745971728430404881488320164015463733204628270464407699146677668014811757509797256427501582559648695145233212034571999882524739173486405834807792629228809836753514418008295396004870921825913421926827484956219354085036693727265436314643511647797391791139385583996503176201953982535809807183869684024723724037135254262309786732899828238923721375032142014626247040565978257113533299630061674623185641822617800320468725604678355610864366863478458965517409836113913933017040790181719499300923877972812075442390499277595397883205965232046441018979353899665094325858574706227383527462833024849851311710061305631341905316292440961466750661281684255475302278017229158647663237731942321292434476188192469385938836238438582729183750093749242454223946185972017273463728682590859571846812810251039530476482998537684207194683834779661755079460232216785167554589532475179469862178480406160323185075717651943914530915179571277117245045093405335031534763094276294407748571974643542665827874033276276970230749601510101791679822778150003408353400948016001617509754242509857966035696317886340210731889081753111683136140278334645317062120826872748660726284093972921277358267866160946408299778800186437205864287663794710605965260262601050952780865183602503927834673797391696640048494792871372755472982026728556286791814982780362874347542637585435572588320980283689166109799084687295271197097402287359559760652639729127944200290521266499789794903224899447355346088707626578361802552514028083597311640494194450078575685115091478911498299900848068091356602924114323253404405209417881677834760082174534227453949650855340814375595727854489661131633799047023391078405819840464910516064282615432676396903227042186669596055579988085304337414926649530948340531265406540186630552649390609465140780541327477420646064261255658250920876762800146716873740950447897167215661973520130889857272329673546713222387095204609643614051659429140439547082729288080098526977559484479336657956578781319749188299297848161717360191010665534284741426068907857084424813714602632146052197549352874893450417885774380819995491717445891131077531728042849899239187917421590636216668130552798281581733615648583214158672737145718634564866511770027869374572079376153643721516322633701236811566986864553234401644845454629001057190361473727168238260469520149831474462586099593362438077152589064550776043928596890436191737036538274494666386788879647916338806787450928265075462869020941097056470216578975012123088668017669512914599956314606339722882210974463477280736525148556773300301383241585987874185282970893562180742752641296192794479996785100569996718833368787969709098661022361927713405861555789407187515195714580459909101801721439515652308585902162549248678647111347576298404322679677287740037984034296128021977217861511375844998438625495583102604731740077789709434841948261233410622309406752622125835072898614469068284987790582097351719815767528185053004284002928925394086748197100005135681433881236887943787946938447907855934013446755057877042262544736498979134337074249521590091796750506594768612541597641065600359358462310139288059861825908429601943531376459341289223049323664439220147809413240010180646839666870999348336941578419277624780413083224016660047669560376683254588069414948368104061681752829793909026406329793100938045912247428320181760868153513479900764427838137753416192183467124990349034475998940976393174350267178957579141863966163122617387583066046000961547920291345247959970243572191190080654950333011159258664228168116840823973632219562158943566075706204133927720332697170174948265477583230189941725647590656929185550928027327796920335299201259543628965774201419384935735604701525111993307067960195862388252116482794106264953622326712192265771372031246867802365502344423292363973667956453676835993914118517999617562592601657094035236725643993681717772393549395046098822979579246672089388320677596077055718636197474907511395644554170947062783257923212774992480848256599146234830340357100985644130245231269834484288334643491000511108329489455814662490511256748761857102693405925448508434302450119164316349111920664046325435494321158232554865286851345669174759619793699235785987932226199817513788044105412389190724122834593737903836924265728056496242089063563012035570431122371542851889138880296525857689726953384644653339554398811086594296035569408063931723117358089035316046569228238778451057490351730763761272212655781033420329022157003934705264547294038183508938093594389895143723252633974597435061754220817477554682698662558419386068958325052835918600081595973913502832851085156515240056697673944796476141894416932675266102223539584374769625656368531122068085872962799548491758120591121495164685774087341327896833066773087138983805352305869178050672046104595760345526211774592238089333941811060667059186456260161027095842175267287025229919651428890257901561191187216260736935381859677143061813372867845847296096252383100635381043515970489851398669942269030209621851129867632361519338138754049194691959976507143109960758799402177355760403065742394978617864414162148163186310535222776109866536193671904752349983426262634482983197298754522038453202733668698446674380090436075426959453161936064967107249564587926613174145951275560784273192064430311822646666714121901808751335430447368070224705834811012884789964540292026640179798477983512357885460401878076116607863234449750605399859340700560552287334861133941294567448877427208694040626182199470201024787109255046570450420080975853880105244550660387609709764021878176730467264034962639094082515160670555562694641629525461498596340055404946803005019110371026287421734015238356192735408900889419748167677349041800624362368090111009829787743960003447229780349578455111570010485216587430335743547230172838130309733622020121612163984432313648742399042698523771626068698175759696772180902751563648836100536872432737021057123481736568930933204079559443542320173581715567300138027859133676883508553647093284231057476356574504935650979069192832407706781001915800905290961209442201343152014897238214285859898822057823294308481474394337812978384100450378892063263592444199452265006444303072154922197311554168727442708145328649391261531989457783289570279856571280246192460427301898766270435345953246341776686384054966122633011602920551371587400743932135509886332911357392308556708126485187357884404009247354049688676023787712111388058100000144014898670364409027463625016961906146237430899629674121078945826341857623736098496571294604581790902707430137633949911651550776682240390676463711661979976700721411949015123966596072833455234635912368321910407605203501587121545036020905866724560035784502008932150887793462954270023696862161330851932638427414146292426084476641349592797200978239511936894752882377227889492900445141502818734071152724026998369692002503376084831879164029662382953407806765219891372135899897469404565122564421130186253696555843730133206741668565156592628816662312515533283612782782744117176300560332061460888049638064276233227599976235545210691174629179320736031554385019974740686267292553717936107776401706875715458524487956002061652326069098120866267362856931872850411083977803435173388308907432850252684817690327873172272582905521414698665414784979112682608789417616196675078747395803040711677443696657711875648951194057858048749954227093864398009963884430466810149905867113574123345716716946287618256471815129780879841712778723461087960079303144109159951314101284164099152672836077338096263117537124587423893684583866329383117217309278806632529440647096192155374982297318369638604728710160726111185725651430115796420256195907839743782811935394888103376151255644907932259667638887190944686093161962654694261307566156389624512298222366671569647156955945783438033740414227418077500736223506687357947400075631605112764699555815699962375914281933682634211248792750371164983289260911153553362301017970107975588340984761623978307583969018152480717803633824433127256493637359959468228419596011599779502519470491950007801562123830443111803241543980152731995288236016604929960775901914317546604462494855851893699986581772285679564138736728175165155579863443755118930159780865126180586941490981172512889390675815733458516153719169830769149957408425550728656113742154136577552618429864270055395016379856323164283819300854818260518158246989096682392306470244653082921114938940979457173586142098303353858120579011537398926186078307777071273724201614533889336662589234473865037351644260546560447542962644242951959813919770073956011252040481857658228553213399588032662760656871312172793304749488979036520923131438406952628416089539669791929695158205864457065729838869522156234749672905522020402663135603022443626278110725240538316059210418725815756889490512379061095081416150846894324118419657483065420385079726314428341610977415018745880621064451076891949305687007434513439069696604298657246605740037028219987625278593357054229693395376086556709490592511641864829531336496399089436947615039084069399423954825384450046141551441901798266781878244881666893654080665811216855541812861981326194763735502802419875046547468760823357795008927761933365169748382850684262145348844824815275432912854211766413798764085720519172411533612906405875885317666686073859131111228172592359712060323197009987234725631068227195310927734816462813312398197241207402830038717317144879503903786526695362382303776030400307240451523960595655259030911724401768106176732862507931859764098839397473560458764244015315939233310872028564795835842170508938145824955769407602380659943175173289293279432103500825492943867592276348299015257216282662908431838112692268022949201675553757204537728252486620904447115798044891736361943549511495971013279651214852240579774884921158055384727470798222177476924975973164845407984571558413070735740756548592853824802296311772906966364309489821644115179337800694951093750229460739019598145479707724415645651559230696943168133861959326678732870719405959893893057474456566620821572337056246985816788770259339095081791085402662368828792930445681974619359710868170152409902879517359350230676131016162299145079063213274522948789311695717518135385585318104661713771995796094432375417911216517089277304880621912575379620565008064983326116904679420239656988985335255404678068107421877711034173465524372185386123137588331726409436194753581214573439501800904935015866485640427329312813801593306000887365309400920676157858474942052271952741524546334025953476096213291299024800166175799239205767742071285851480977840673042065139008792109234365046377587384054256188870720923312951424107060616696988359154488016177636163368281309076170800728920592451570616459839559194534490933597567404256267695762331049464596473647734341550793779160030929107140374677585220942509575379437210140089376183785613185669088122703677926359862554189901920442413462320509229495707518683770215702663283252377426547399360950492417401501238412199519809320698360403344886118952645897996968146313855037746415505107094682346617768541684595693092280859907389369723525404601153078089450208177554741983151537661902413754679248009383128936315401817244113951565252645461359876304906065389453014834438330928924060125257423765334245235305371786793399244750736999799083883744361848055355693533636993297671874153885756216933119531908882445258110899405498822965933605474040542131267882616714247362029349114604075628054756465853391772522810930337541558586013594947709998305806909445530943475558103819509612503395410302176641786423417662466418911597190811907954781482249307141689475726092712260120805164792197894353640839862109113554762987888174798979239041658983839611898824384862310219999633825268907015551981321665161954334323305237346076259032640424274566808027018675722194777854696109978014086271504818066168372505775417327651974905515021473491482801095804983081733154309605214286539619375764529547673337741228090685101837919586992835726878816472312964544590134875988643773669656237271589969152159550862277315075101841905081343679488386825012735120973311258479088943993962452451815654717757787334904233226696926290810098474641253324738042082851073652208697373132452009629415135345660306607781157505919629962009214016962142693448825867827477571840281049202627274403192309912074562776869277026333888450417433668958725155784380455311045592745745017884743745950471030613459111468466111578139190889349387032917616279625256345288968283914600972203317245776488674914859732292809420823691458507670778925025992173682502590534927190793163613523181423641690331008519152765465673478999881200032672392655013852280178150365159182315726556443935728940041731695564189246690036460304766408590927611112832553573044110571169472992493883579315125080875461536800412530047132336411699493969773659022647824748002985861114680822361267948065182333483816851897467678215655105643656134612648906200596280037599482703873886502259905164552881107628214601924977303602761848127071853856444698231109103252341125184284401476139869421442982162183163762773135184975864750959021093705454219517256096677808443120547952064302910751698149794136320542177011534012688427941159410349916365790917555616427532246603738224988004750893713380561777104772576152349018783654257865577592656975007947912493050606132022530017612487340807715925595754186210536907824350515866944858546731444115275026827238855283628620550519918199807350764571650455978019319401405161037634248820558996119282067620192304329317758669563488433737473324396657574142116211981145873804177206147310769067350496146384426987203758155109072544138891886258217287113422599197221730531801006990081446318717623755169286776381885483221222788756993093063566065403180401204333125893254108925392548143948183457760639936943503427939532361677751751437268743326945034970327782243016116405843383134671814534710252130472111982404489425374569018012791098723744207757502233031866507968606752855285549411683153633867688897386326443204900457630729612034382620991531751454021278191283464889683400328275477069981171157785927045118640178606643682107178343809287943870343685778730428473496696081002463409523335270099339524655333688254929611110634965623016768414099057453675427988167708654345194444996103331726982946306963517522458254931821072970835318696503268408332649349906106327495495760417238201299330313804799448092078440482382039050445376931048545777854095557115989721721323577937617589201982490374490379570994260751891005519925636649177191415143300004040416887671204772964111020239176616785538991755808826251946797998315761118366922052281328479214450613940398200600554442402575410222256971878678502541414695825321063127700893636761624777678478442200270356187296833659477936286736895270406372940815706683431332869740529906229189137054931690784970264531688527685896412059628185998160699778955520644217911464979296128605626967337378349690590683913220072698333734185600017270641471019095523745860581464800162547467636213297251712817545164843145799025029321756065219450004255457588333945957387828768760978714349100380367165493452734551779751179564665996338274402348993541854854950133789506636217212426752319381696210973516873623026375592567056426672014743345475770818790229984936078940658375994952483483723907766018362032565575307980897000543014282281289265799434488431781784011488703596915391701072506628083837064955958577682389893795767294839414034470957466898517330063312600927914066375043739146966549068687099502835842832456626363721900764337618699434276666317134752303336813203460258824646642680420135545077537128258556947121517269025089983661228389586731501863007287224092370386859355994778260544140635915366446241704959949049886177380683597097154052302395799507422439790346638172121452608550159056038058567173891219343512973223905149204420872217358055952385149522054905230332126365099833204713127349963627461353553897758739125668697827133787170181993373969405751950272811899926308248257077319618337192205298046920182273055791360582835185319049801567198437551833266577437232972312944100510879956817599424446770829267740088812507484135072893763247672108097661062072829541842997391875076665338744295294858268620374502417891809386463941091934766626694646299065067239660824823432377474566022364813630984182253717366402782380761555204363448724719624271954470509675078332783521368503629150809121763706480701464548789567328984436045926163748528406764829166389182668717003736285880486132747210326866861554279700818987186631126040758420559569735250352574092176772852680984441090123953061560118754221096463586300776603646145336369657344127814746480164779857601658117551737073563203176369258186006399819353810007960683063058070881146459458427001971419678474498667817137621241542479372250561754304692444266918180184468595300322727537427642826877689585306575054647011782973896036237744468468332547132170102054919649109434016221538957665470362788708125057626408738138854578798643015212894653871667739349084721714332596594037488544398943760894305430262765140317564628468710186766042193437820118849371762567180086107572384466609235718709596868606740605664512107344574677913048945149627937033241681641921025094419873461307268780640691630764788697612835391924959992881116696451526981447641395609012417431738190134064200963963248686633932195891280453110482494968474375578482785501111090596476504665637640924863813488730003558848020612646358536764980075434219786882383248673952507412147892376968244005017115977842622899584617324829845203346633275601774230059977352169248491061171294674620602242984836483548410764437446180258634114351772555482253979832393313228371583069496109192312674569526041044718118631991917902672617574432801954354302939661919111117640944120539315435123394799881563370613977853549508521707403465427260385423877108558108071169685842588643201456779857630956792630155330333950932802992370459822101072065192951725212961389006456473727469655886412767280211959381736498997362073191572652511674485889915011772693512565881469170798520402058684245306369919659504427884425284425950287127039332225426086262948161205600251585069323435005726484106728304771076386829165557804272724729766579389727025897201064568857286808848333885177496279522165414935438676248304970591900362827836040255784576551904543762339202170715452142205793876545467494910140388458092844409826452412048781622278629291296204624255764786418037730593679170140917951535855621241656904135656011303076209617553365110369709493993875594058484134970477018556090404720972213326814482197520548087615462992259443658869349514344469720043485688038416992125300528997794221192618471421384198939909013883650200731699112201886337205542381385826690261334553673830439802383286770180848829396117824024856138567280076086589175245202151094553429297685842844291267144491379425819108869764965869902612399153662600118779344988477905714382273062907913806178784227963405425382945655910021695101646202035769810267185519748127334362727266364922580906784101183607542916825931426909361826597974438531460779210848315159227782032831754023594829347424190576471710711288925797281024823881639850779997623140965443073662818087617917938721156453707119321144375484487145362322873201532920654431144065894504468753296228782994315005007123207726466967648649637386800548356961212208103861675827586251353041650780549917877464731740251235272655283828483907081313913514590528382445932838196169101944768088700157208803701816787913523309388302293479068296877625264321203594337755489614604462645706952832591672041963373452630084855841648674912530811583133935198497643422055669465934558241659940860306105791558732935947940836963969763659398063692210421969672935703845586811985047482707375196999444525730126751010646425808212281106604502586414378010385531292902312608150481612309300368985884650935240778872317744107094353948077460728680545627008583873629190024264172395113692337162218523097608828140249567416013043287788115078997915287130950260434599193759455945022921552304011947188494984590361162010127488717235680396253223206900693613990974650150761008978083680628932502559445611026843424744130154260876156552341684366241398884382097639497883096969175827869252250023828495371699227403537129564529902033174443518415568653936253318833842369160697008767051111066657297435722967605475417537853991529232930991937104402058625420559802436857708828965342436835511516213156365941460279584015021797788831486295965911062670740752410954517792673641332167930141175430577915540223969419060108432462236600014349115610549060926899608237780333308741290450407190012719840634276160354527137656164087525106732111106646241531982789510814565380837713523910653639812378219250526961925595684150964541242485833733470342592296357344410622972227014077354705891002915445334963994915808255246328659333714784815068214889906539104968506441865059118437039465675381882788606106085566340913657262076546695064334229110539111078177514518770915843622859898443913234827043697761760577543365117991434874671341603036789936795976793141483889228749544401527271834356358642621058379485421684572718494860246627002324755295167623622671434713458996047554195364915324438117148490949831182242100113189272370176935754076780788761689127347316891514234124282734620113179827283996257910367490613419867095501304681318756381247098975643387577649498343173770099660414827937901464170238597307615653976502314101637889408756290963441242128951348944168489266334990074840133620033458888360912849705747608195356645458936937638630262116180821854101424990908221218909286820785670377807843177639635651915838001391355835584545643160053519970154106938498171785140665803224613127553744770683223148205591218860711797805433950327245894371339957711681539086076964572081115413939568989822919628877638152442214124133681830150919976653080056360877108822374348995998839221590234737092466779758719194052484598942552061787468297946639968401440931534609742816805742713892868739489006112433910039374141439576128985940449429623477771467250711546009865487777946306215717689129602685559295832443352292292685121733943761091594761708379686333870804375092210811336615394479051299405070925899334032565452605016800071398537828619114807933164821149549090384082809023375603368574007950262733525994243872758595137329556304604977860955180204137347600834968181019904353076815578204594838141977540418011735013375841441945000164972161465492985339313217597699050430552999182161590278237668304890445320512427675020815408427652746075168628203052490412778897073874826280130178025000927107465961549097059565568338040928224623063431398484490413154806590348357445260506349217282594769252260976921670855181194364846871371932684197754690406471058412772309239167211237412338338810600901149502934497870968028017307548399696587535583499433206844929251692550404809980352878410269953216630914757617669045810949073357137812819165771637871778188986479479407981956320759757710428852104434510671323572650807665775938938310832805491631720973908670158716638643171626917809996429928072708182883796544042330744341493836892622048816205395247692557296752775249621276974006067068611574254404118358140013764717179392509600350717856844395015003424072426763140971426118081878589410759454491447393183174634139140811499484421064716041375655502090357442718659146271177263050761242193611584927573244861284715356408232240424313049534936382873247988265535697417329461267465396409741566217888623111571342257438307777175734138404164286423740837843462139235430548179504433924613001529600884611832811327122589896165934931465127888611281901487603229624448308115126182603848112979252049216344916079419162298331573377236105747472252827705655906022861131002055120502734197274199706482622410015284830483445599444434373508066682234647630386114563759721698996604025309467706611858306687462022510063843135121283780206051286247465308171853455341096201393049782568491251498697924297414604468297737330380668404348982322445054610217072582354855514256458120665648420263831610671701458138535903864025174082190789017155483201064871872964168471464953280780372964096724882058314619541655047575701149322992179036223920334041265741994660446836347044583206799377109495748797385831024852506809965510640099228110406315209373023123530626071469099953312490724745958961331395684581231036300434916469592318364017228514313402057033642853590485075784770570820676325673143742628979168098162142176688442589604982178692243429642136865810129217413240468000399450985992273994907130964322193826904696478342214718515934309804656429101407899232028502232912310092618222444377778709072416509116992222691125200335989509353097092949290271340659066639513092602444639547850391032888448906980184098015498845203010940796297206737616947173203667936775005306355895913135401379218387817435436317581360206763909757314618005116300634572730005214087693977919293619256872823101234513040113252510713272618994293857228740539273270817530812307084464640578098756010274648191232662023212656011671276587435176114519501140342134365346734671273889679754516776776885498188194515629916455460019431546041042525044069326942456332217242472654325516084469914450414831893646465469319042626865002323249200239866968829888205919522624495566379373588264874488398584257010693333351233975880375052072752338685756188841784842005429028221928016247688482545429260248569437287171205016327673500145933314048640243990549607893981366128497054505195710571612222983263029141156966073513210789531062982803969233334550907136775960735562569478681311250631826622601796119893317936756718117872638266086661583487603466563636260792040528781186695748879937205417754382059002868292896934633366455484652903072934399740741630502585931904439088412180373548882049028729213274981520504426809540207271794954563557731811382725338272117901739095466125368259282024259210167897117025901237762116578474594908358929585772036655477399689233519031419991014589811714026068271813957267729144618138238346404483284416663189333507464163176861166915074141797635597123023278464004427374647436057039598914290123686254500255500120423049817154182774940285768353966096014675367463840907713166185085057424556623308187986568208163448722063993194205697006249282959198089659963532905055161201774627084439668404550806081880199715229089267566140658362437511582101700959993505955621526488273834039362314053089435183617487778195777208801434625042624228374690196049390476645263371644426360214997820391140168289296834090429066564866766377790669634692098779309700376683424936954019046120470630114800895952844617834520874857422760934878930438006210900565510788265428335958644835248207548238401212019268372967300517280009391638350603469161375102598787605753744530725889730283964096824738601868824454659660382837212854220856511831663278684297995377451679467422012312569938223792551964999430511652485652095343302889312817577497946995035438946800067944029928783561884662976861503247874503738958590981191384701953001353764789647691862192956550818272958247901590092207103015821853543936668113866136692121408454897417189216149466954132052887890834676196703454468582054592529551422601586644076976392431296273159672564740511161583297411920257999813382384002978019079208353970956101586450591958888565825716832622312174649948782330394223949935482053013945105719659040929130966274624985788169524561256898476114037124896336383509068138640465769960933184941848286576821414360344064204560027480958580182538089345114304557820255696423043931537552607015993649942320393479707643411810235479150087526180075269791908095581760895621826579246594081134642011450246997142415784155801300032164405438628346725670196563773679306967363942505988106162438800775244727122981958584103831839830666985294589213297918775403433804631721288389478160691110836776256883184169255142531454601207965952475391174800426454332091869119073249237562132444405405520561224759409944000132193674703781131587055977578180586294317349302941376302819836513606253187179693214126090156680720109705213495386168452916370283318410201273683016520939968659166102926989795310301751360595791312674932506277616654300907377336725892543150783638920571237776630993954262004526799464688808098300943773390595052424090162558211914349161126309866014453903621290847245647012992082326962066615340806889011505901779922316968391937639107997921826068755431480493925905141490296402384701154961814096683558138482814801253984587407262415902657703202756625658485513495396342052097604455113693994641518291284385167039145153523409657609130156007053205463961413571324475764158804860271188893028098162694494858461715285787530293638438885722664956439769355556863652700356648122989296865267820881142355755842964399446379046517663813451060236327556320998345863683354268571345606264763632508560079994418080141525943601615830059124130039774434818302329169280535346364087723700177526748603667665821157073245691548886139924629811854547998378987569689881810060246729887850336603864291187887634161320882915187374065097702596163209311127152197446198271400806617196422617621314823309653119052867202443812355870238645455313271835794053564754544565657523028153133845098885088132677181649119862252819388861896672722444583011911680805543542880649927928389545968080363821149892826013900302683376055200271854343916141420048631558384217517772788932548474359181698162617405000324479671398079376822892273323877383851333153834480539577470946093231247882308815944822445747470677121349653869708688351664996526148928028545893050536778959572616342335266636394359778540444777317428837592003966180205482561211315880901450076248820848491318030497449504507737253183738419322485840797439672746171761809119109679413461157456448439603289783255022432638890960540704836048538228302396172666784834823306441672346707022449222236016157131810152028913631359358188922687286061864166197114401830209355351385441267454120642365624548424842483627124421131236917505311243907033320658550946092124645677867832032268344176620944739273399114405123946698508470053503606431804548011712177713334632751436211158801398482036229714463233533448058892865789740200461570605716836425599177446786374406873239548574398093008534334064987655762268031484176638248830740384327329124148218549662830628040571215607650502685883196268944009869724929394088202671867942519025460236538161714312783132641669671507450994458620644733559957753760304117239002806332747277927381865181632045420732520093719281767637844419410310342527832552661979837067143078708924315567606918211895336499953462335226137207455136663883058362882639636514083698424122319001607456469170444581436262756934356775130216367872036221923169543128109550576852010597527632156815936173416731240772713348617243051562098728684343737857938304303295536969838718054395932997076319583050437602648285502817450069521356752558236475255156615440854746579927159484155231346590230548363761231437544093493185315322994420209819660389757424995818283630131116715339789187485266064316438076655307479008645504648136126961702904229416999639957010784666529602484791158099736125515244368865193666640160167578454982191319485484990235256911588002252995328152270962501126244092617575049049767568562678223685953673112491594392409950733960020263943037613965650805322156960715826659006344427535270893170598188523418641071890384925198883627897833171895973601127838269147481406823068244921856566493602258859068126633545632593944506903490930594522405404414533712477432603094030358115951389354278462167334949881798759151770036694522110239289748365318096061724486182766067535694883653844034423642076359650888384299499927185052219255611203700069427589038453547653601824662003824807263398124861081907098005253634508893289752422440187298107675348692275022608566224681756521302860611576450566882326433414518019600524914457493762646776256331171232805369593456255777807856020191230140640712907814343237356920537894428322479747668072537178389835626411594878851948921060949287787146851295927485085425325047410424654440106176816425970898852453221267829277044339493691880468098566277444304119084531241875970538085411911350977869164758625485584871299784656768345292112776116347956215543675026374990444468824154085445240813704579381908880470755588542328301651484135738105948544463252655393588540125595798702146703414798572325075190142157613768831545710191441954799809545027643867855729546273385334353888000095033993441113501208877762319124949315202229380298706073046239042470328245694941314941310245606984903367828739866683415924225639124104132933120301925828506144982011327770124413749765414856770083438908533493694583322692646567187005528870005671431399882637173826450930473436857531178745854779552907528039607393981959066907949956852803180414050420872317218069906450418648343984271887071911912576387463352020076503080977098651722140777732490891301705968066737714341851904011713438547375066783432715026451366857360468762676711131713199150541659377625780714371461816526370958693605277482204902089531548027794189982141973364973330320284984583107624967335276714078492287565040691753110572771754689563790361299444068524043080080175652671358301580130191418691676588268603660357610487585934840085054149912373952674896072478491036001541790483388418126093922992082260778761248013718717734602228962846048550946089625822706710760379417974974672539479232776182596449928317310657104813205029144432247163069622084011421300474241516102059806327874946817326013864745278118518227670843861946321847818853273622154091944178191047855052567082192948823929034352593238292944339632976679067873732307284850724715912479182350852196244595983466430641531700944913414938570055125412485779161889039636221548845548887707387488166979205861005589912302611608077575453192156078511190203051470914090463257750416525621612519112334258810402378885326500394152670291230617617398167936509425244800538270647136872551264978698287947020432054534096613221053817833813828449543089738545477587377661269920333717202969450921612970277340141626134611660826159772868132554091908597943355458278767036186949493124269465625374046757801711599909164599784860349601257065217095256947867686402204404030540640277103510303792791199278128115055708880933205073598743704908009725922924398708426632217594156083999345963758834133505786250673844269145077482116376599252049522279151587161896115980377151083580143503305928874063519015952670696173850670329870112235021294121217632018328656141164550356285077007103562518968144719376713967728432989827500537060728325967461228317301635901499777911054554401174935452432068641981002647701441877950075157443544378152570215823610836398033773097770652457835058787823335509720264392203325996185506373636947772630195240619007188813477687395251378520557361240963408130964491416305420596685591399604828366302336627667887755794459513674390584776246931481554150832042494091354872948528061085320927216578644081923987127176826177982244836699587612153412980288213594319524296718479222069597758093032835991215377768699391124503702712619373126424166805632996052339431530599103537370799567433481816044031570586853815914865192888317758311642806359438525518436121654338999909323360700440497659604837084715997154684496360428655101712887304843781648628077276921682049468819925918648797700970828330015311137198585824621200770907691217993038929938337877753299409967485655587043825726112932018641873137393292539904791829467934256160785688303759614288526606237569251030005214757267041921571828554480855692028804509602892118342891187256196891131477665630528834646604911223396852791898536174366720106438597916668502950916528958686709531235750929589901955055940070217477503023298915812694181106493753235574792382185156440228197433769064422080742740587621297702642477265364513562370176735469812894178912325632094819554732936094892044967434005027875127279853271326021884086915147143025353320424379205135657032560683171999332600627574127470685883071820000419101969619952875478822984905218978420950539058631917148540835622117673545895774847184124929571833335253302778523763146970614701402933846087365518119486245923868900145357786428220982189725459436503113049389985998550584205778780899583990855473297804585413527079556760134840898894422974588950448987890609402674767780390883386451346883348295391848820811065259968693528655296073768964039382205135157563759212391773419165706168643640453118950909110430065079332938891321522596996718966970671189973342788937634386580087137384013139669470117542022907661330869904414575008576730696077543244626166441600524511313789428161024887235415197494869408110678923796320797314560275438782827621037160284578284586825203459603631864166576129226414207823402655274153364760288897705136861937015592622020204426535052315296435555009606806535910704051866372313085177477957802661209791190525374138895445917377733669630634077594641264571107915074262375884674279409691509815934504608901663784988777889439142890123176358542047374688246554837509781893199967247192423494140518530335971246930839387218373949991798932348585490733324700034645784172750564297070079552167974295856327443688975549998897671922821587650266837123205009653046071841036182402342302285428012939375753737420483774351408415839832240722516374330404661196237463946381278456607958169135979222516913501794164750776375449802083165781574647893909708422450349014181309516088683098040927799924887310379546936413585424868756869545971497130936168963092209283828024095416689124567129860273940335577703255163555826467894306365011713711343702567964308076027348742136539851025433616523786151794275800041449836221717337953820036585059664415064217640484590706257599316677749523353140513132136364332719048889814730988047965701754515182503455118589708409223256000654483857968363096127129050383052754281677455863604943210176090916158654218651779606962975258419010330732278965051753404949174727275447547828949093318405485691588815331147794627618154979910944323252889949137186852372431740208439368937345412626150374159629922261681320321008034375094206866768156204089581438823501701416619890930984507994025938360816564746465661798997859725388796047688099065319056775363241734375765247001947806602330263809422277382975004314470079921483957254437914330914462467469696520419922700924344540399906091096075276332094769686738680652919664987233729738376616481293970340944251073054977872064131829261306157181443950959940101865606722241627215365609150415120575134207089701360397100455051117263833026933438906637818927771522991621459884944388012163031997983254636929528450312979280662293776096715539260121894705039170697870905212246555725871976075699102363335283842299742133940178791388212884440426180908601053758409304685223624554102732666020957582430681664773099902390429162492717497933279156107173457716953345397661151299377232846631867148316078152150873070278031106786253396865983016210834034607410953702591554107373791295953413188060338590738306219317552128927915948376762589168648088429914581588707094365895628080644756382076201323374383211689924625547132855525935879122551324522196925545609998421061069506232937295807282624793740482524660188817143015434570627509058587805281174300070819291319708362237817017720194626666225776787238085929821022363733387462464832595099723542408177827071175543585888860929447955576884239488650083004270488582475811403114618019539395322845442738155735327260711179591664750938460059771719548619046700612870337834545699414536061529833190963886863342579093946779350927576214617048076670219163720847643591791684640271990196856131636445071807355994490960382302177040366719383470568094567265278390563752739699727337100461323456812067925472793260809224531320370730067062446142162590584747110780686914397550482459176700310117485538796277414423840760509877211750208232657082277441821592288605508451493420332916053204390395933744643811048630838494025140310293001912613923094565113587130775717268312811823298718096919170762324076930852976787463772304862150798134435686448971667134482240315328719012107657114491362861423471644895671463624238298905365083563774430696682552923772942115527761486969626496709413421719182787833206703621635501620866209382579330126697223907126072893138963824993524539420461840128133378102985798502906497309918922627414997322840314311647828213973543258211665857189262353237421310925728382189806797847752889548862243601597380866156553603109372377588498381811750526185733515524544426499111534891505089293166684706428148517683224106013764945391617240385394485375285987605387477300506826387801296317879231561799323371548499447668975318948244142588308195279425211911416692133668177598328079527190874694619616146653306728470634561304880235715954486236893854327395045716942727834357575639454568806886588962383666197874738860363422294037155126148689305725445751662331260364740933545453395220950904729326675056064024484278856406904758426542458712919477084904026862757030363802430004303641997894563265445288551811470126800773551834350374632317552530866385230729891430138099150172929685793735283710010429850091385614655778840306306911649511237363730018476296833950265364877481580838563042416130835544325171792750164250466338304407956270799077429265358750130519127338128806629840563548298618778446421542079507995774865931954057324192895751660832041693387487073554275212676735101945883119752644384004394010314629655246978347380576360373751784711881967553285426184005119158755626220340398108140318563393714431409981499457776684571176246008319374757747170426904948598174053767599453164015588987367821083854743064465044902524602931038139678257906633052197396103225044108513236467317515981395385472308149754123136891049921837538570324582475811953074229609886159918163289895431813045831621165812045445771143669482639053911283522184752063282575161325504195370768949091080076717279156211276501872029797391829816510357685459934709745226455886906549550962409506024662054530520942695002092081348898596777734744643177119442865085945264827487954081646816881724718187836989243329538229025699097955075504752465888326430607553210587299451520574059085104460726421262046758874866797352211728626463799179022690550792245119790492073258183767949799052365960462675397786879272847619215236775333300094047222930409549601596313698996908528333570127129614646363264310899059095153494196516335695816242250627471272873044477531084005274472448563609714569286917241518522241950815472210362683348316860090515271185606433578124312762827323289656440293052492755097213605786543978147393397193086500137246593690314024023364957796034501614320198972764093486382375174572541079221255804367147994366601583727412889065337162792272719954247854565687840125564244927343005124493484349914233587351424747825616200922231147739074835741693867216743951042252119889768312650889250893194330073953162513275515884059610953922753287852140013776039312406160530190341454904094946088599427032298803744804680865054778484751857170957266849288626435093714495882719077331051753721234261230679701540475347227268902268208971969442485734149676658950303165694145687677393794972441665767623459490818753394837045217762814513423591176425734641303368658870606119025277339715465575855988483425886018947912047609361873272410547617464497187067964238954551369761639491292561557054244757026393879008799218645951452294615812985023803893706789570720155426098304534297323616786171014600577748981540738571426504072670901709888269403589770928596635888208665964326391349560695853282115126761694393312381275468993329991324278478661638500357034159316947879339878459139808615794649054815996244939846990381154733008310071503844965438049723021163028646696937852072028902633625245219831320616391502736891904082444131904284807860368361831575907171776377296731949829298143440539920191982200255935537748759941052367621140741938716990189700691699883408648932292116531168812427881911161139398345719783822773338612757137671557453982998184640585905803674049607108774805422372741550671058306971740550523548539552519350586405236358430557308582085920107979664646604358684316702262765150443498306019498074731194633777137054536447178975782824581335317307428894940861777684024042639171255160596909029167551234026711524684531248448891918309885191152035596136046777914447769200653412842968114348756482513587397294643652654395862552415589878053452520194171178504951231501718861901566602492339455274579848259258912301267945403575073902684910117991444195367252273052204240346728407557404569175337677340545904088794645529456307971511650381587929447492015386253871310454301095171320117651940498057918458035495900396689764591465335268981358388055084183932204500382235512653547005237256462050020395131738900345108919489078354141562570774495033122756371986194403500422513899487033676512199479405827964438032923813722603519904544670152246893426209474445852126116277733811385225543283595425864954320369885978702772322206836414173898253051455608505334168668022302975240211917751329487040140571273160556444859526856178923283465369495092148134118799710520259823799335059717481169883077516254179461627966312422711643160174567064848346480078013419356904552189829710809922329792128995969463921468424699977164660472072859246267269721853145571634963382159007816475799660561302355599829951701332981901817834118212100106814101679894358500897438909450047216614661897874158978644975563701538730415097118254870734263603158779252096096149752485483646633383325919600798686068861864116725787787725208395348025279155975599092043551381759533501788051260506595579168422495058872468489553582599566013979668708751403841998806728792381946933127340991869237465981384062730089296104420424220270459378420522857512764348816391387279048034808240682443082950397233246174434758991389626167600195724249604843376980580914254744001797117266451667421363598405597476261467199281511040176502563948488066958035777373355371553849470200531621412585657272493032027413435122229728846835320169091642461467420716041030279936247891805741619318760355173518117400481203061596886041206714993506070664105309155016749004962295284651693535069659362538964360770311668651356000526546335908137918168587615924933783874422388882898228783211887558352088549631682972462166409508875591126227599104422361824890175509362106268811382915677210550824531705286704641221910819622126703692230015906305362457265781656740259255081012450989935894414965432440340067109181043070421730022121622878192866785615491721588965166241510980088834580337297089630254444121388744206762774370406443436104629042960994917842290908341872343042226742045000932432333260172394267838242921282780998789661386752403581437256628678228885015374105486209631412532346991268429743688240076449638660261556301950116961139984529543986521204149703582270783071655230436936906462631810565184710962743857399799849149883892079086662274064027062856310076493144337126205840546415996697627512551891401820454493670151194649006732798320979117787024205355043167213760440007934692113541824331920251187028786409268217885690550788708674332615390211594100409563255833744357252715260417968098226523607315251176983384470383671797617025564084501662395939341161584696581798138831733417750679112991056784659410235451618130666228235160048919848821261600128160444044110771728091097759355361996272931014633757772960985904678027887358781470063300018267167770986131014065554384927318407275428521662426461298709621360688752578159632877683685967846624136754399634446944676229349675244440078871291912569967708424151482537400348217153145679676649376217156075745558761446265141692666994939764158888410728014761580529434790718290645971670813331669232622445635386591391573115479841686223621550768327369183089684834601923100151179827039181881103374613454524886139777774627226814573702214480317931512162381597726317019871497162966412811437803405243892725094275017852883208725292251081282583290228674120202300328472436128225273820901878083027143529887510434194821066290670487588123695965635197061745996094692376905905840425232358807057759139123938349699278008260670111584381127074934915452542385998249389526949604813464674081275684508982862193855809725001057701881539645126465453093982456229251879866961262451788750329506191203869221397441195669656381965880381423574081341543032718204615478115239382421503192156736294067006061207972667872936132017612152047493923454961035074302478433047828717493268940445674024857514776771202987506580325863613418199482695133729707555332060459762870980013370316838978564602485597491427207824211553971481236355647475515527647640724625654928801988680166288099694658401650989636127785252661733611286971452045755594557785177657914930723603779581644992336054718475811853206876154452328240776855816796758737281795131247088429762466617543006312813106325664618416968958402493814883696917779644187951017277192251911868847450519350491862686835099086915741690606241392342251185831949953453170456683276609940587528793694110238785426505721110771502909198180336991405456496537344989296481893480293277340570614685050664224649694988445366826962269640863525057563767786776566423699309165714352039391739734804170047122070004143394295266049812183396434712235291785795488064533301555231163836835989166078328520949669402661013899928843608090186377589973867335041647209514297904006523456582990253982320852985223619107187782675808409225094406253901107048911130840243134990563465867221717142109500799851770814951629890721847136666382982447514593317628201893968532066341392034129523071746122215423639161376954106835640265540789419647548926097762719909496151106224410986071637623201707809442902847888689047182285576931164019040146033593615101768757958682794051239515437369076167878146381345277488120405646086428034112645418855006304913106512648168663790766546946685318710433423847773714509617158648383204864317036530722638192970254036178594745413425326206686855408210221292889373852442303178469850314345156356003998353154927555817142506556193627598496496700957967425627705290509672784489809693996468991484286597610984838843626479743312211327854022286615529951767964405196905269345258630635734241030251412649728357663094498250788333470744596468906906893739101659998168542528513837037961969625780028853778414139448549781327793303095052328783020576149092146456990450995840518623637411082591492317136415935667638120473880856183259679991517954446098400901008537172951381188003799070018935996347166282837149590122059064075852795361644442883863746932882869579524201653587826900036510255287800646264138337469973415458450983187036458543073528094810069031982500036808867683486306360758688984990962865122095715941692108074642106279464088139535028392922459757501643894571598284207947597348848241990865217809473059366414259069867143613390791938827104731922938343321238319212899654156759361229180921189488383653292970230626689249244047369838106179244113634040006456628448246237162707142607191821565627651302332772111583791145691002984693313623045555254889761283139628614697488945409870622890359085595085831617178559427143040827420727601492513364459733101623186352352533413824431287841647520666916489125474795036472281315207759715393366772291488990209947419668074168560347133626897142914424521465926686155780556361991343118887734547584558625547845939926832561700512742890395766218686189123906049999283210958592442492635038614320287664023667906203465974611585858294879677694213618615675993749230663812715065805877863250602917759509480478214636508785727579816743792380543644398054990383086371332815556890031261481282763169521365674658711979244952818209885262642143940208909213157476029516872989847269409100163555028508527767656631407232070972148332129058917264934423502025525472280480426425167355035509009671234738282689784503965970907205390859300703901125958666545256231409943330234268083622090905180524026668978534987658942444119777192430546725288324395853530073862529255957085102130820315938105625558775104907135832841228903295598034384818180646620650894213472141522948938675994637755048663260487457303324242613884942137712720275747519058759906336295552750344386458102687418546527299930319610472962681683994575884027493687217660794656630909561606101849703304676431460282077121828562902996899855365420064469896658126888876772612295833895056509368074739070435937972645609605198258510743288158248130998930995740381710587746430972342056263943697342154125625709746405210405847519719487119354715895492151123683858529020320520586922332189115358708431096569475002551606034695445406659219315479436553785838916424515263504787187945853352980364226964650275435088859213451518241714653295466091894581122228571367300225604834790435004176565473371434025866239723984424186972489997048418931533295349497595505811392168858452613430634048977008751356008467670394214829770033876651030922897698735256366543165002309627123439949525083203084382233165181875959233738083371772424823930224134926767864858561253603111146001455210402673997914242670212622491415618285966178637979030533472378878265730488132890448281078015384010102956419419623471827702510152392738149705436259544861479180603431854973168133757704242923131908202726643431244347015842393835060073087549681209683155361993930906151233705610628148815365600722918237159053157121061577123945298699266181547063707687445218970524327991217947450039727948469238688174481598610812669684511356738332983141030307982728805905176952612655740361803418848195776879506445463428325729580590979436233251966795163428726475343910786743377726884587283160197624869527572375442777824996565003075787811193200211041162503084690737707035212821812747027926346766632173071846529504041358757874656466911946042412803707378426418565132306269006136205061545082716999112179726713063090859062102107255225370264422978728329930332477193872844605821757867549641306437263081158091231219990502395221164380291211664289475460163359128702508516691478931498312167963594193985906100244442780532630562711583248635062598036511888011172107717031624825539697886056182933407561530159152914674047183678540165218124219942759186814610593876237531411387158292034093081087066297116166998859643190721264578456510748763434967174576784757150621936699578241943192072505354631852499349732613130695579359896814801548235588278919101985733520353689623192011827820253259802893792144530718382696867995257597859255940294451552236443127121733386313591579166010567211775286056339776213539544249325143663942028608650916863560721652113747019406284292625915679833646521342933238637286034972750848867270989779511179626320062965660812221191503834644819259237043508670193690924802147695957735179480645192746896229353072829422246070428760785236500573454393997960650790414684013229415728822152703150747898866625400013347076325896073253069017519286095782798943801043579655456142870077750383858279811548365637245263264819747063851396313489505782920517955127359760736033765624548801368304291986198001402587112472453260456058886386097584826960883835847895410843056139271116899522183427868287177263887497576746568967869233332040941003829618185137346751431362030380922478421289245069346122377334327948633876674725496813851396286237649009019784163416702828282686200008861710072808473780635370611776474128299474660860370761099629482599658876280062805749958293195426071871960792922489002484978596990565121479743729317301733561250933722331747291071164092203922863156777499606125249158036926576508993928563324038121334421396681945772817164963706632192460305154075385236911567202814082182438452746166274471345953471274110944831151438606699095170777515321602246670815430777620959769132602161797438964093962716053391762894212898216777122047807098010700749971194825190987594642300207845248872717498805979233413163081835962187135011435948965825713883263928099227125672725701464933340929604790685486794110985631290425460393336749471343710357842624973800134063383159926294258909078692208326564389280698244399154748307575797524009275147550249497827457465623332148995036548602530908154421866770987262580507577693396417851136291423952334320587200417294147968264055280846051028136782221576705526050668829125791679446976958146808472351427191745452430309640113837587120777678504929329706282262674104140197130475199054226651826872521577677675976596214730959641719163503202304197203672911599052125381474028650485836873530049509106278267088503056262295205321302492279329378585317627983816280052699015584716827246371985853889622181820063073108373479056031929658437786501107643572635792113843499848141148032500451649160859574217520946949343501175703206022330205698353713926001378673383015208923340728211070906788347880421427553439935810637447267612135047375126310383077293715951366132506525432555147740978264013814083898270470841270386024728983358853522432378810967578054216584852394820422848785314950931851074347332344883883176225941819310047101394907758752919825026980263036647735634315508701666331069082782915935677635563984432387070864304763957107574937871490452956108464873265778901800794528002771806707755952559056642155012522329162701203953329142858681662634971234731662626348712045532860199735812150363460069876870305846753334494492119631670880339737351458505129818345456251678982390858707474744431441590761739478363793297075850060637756082892147894316731014770933542044079278933942852262180108836440410037471543204433372794803053577745877905751840138661335996626081747151418402930839413036194599138513633217408322114845502942371600888358532395599728778189108171919067825780172907492523816187370456462163055275887764821859835179466262619504610187388002602189610639410293686139947847888199405737866625068534545305574696750038409233974580621978328950125245634510169059220932724659569935716910704007912551257038670714921938593404378960819089389214243906673829752368582197680162648342667923891688842029992525157202385273450728186040093233307968169321867389826756512287249810457971448604407076926741518003996229995767551783032314681116832590624107865799018514407575851489256222315089717222153199174572290518416101424439399300688547450710624067281118684478615785925469163171352469311191429669301313038835885734246115945504380541299583262766152253600902865076237592738841425123680858790297737507869550009152897487519597780565029527580518249486667583321010032367722580294940202128443057242037545329232843929575852183469413794084322819398003213494643034119298650786968341201441756111002071283198297664681512494365672387624627258664563566736489636578600788072186906481434158548934672120847344577084121449285044058405380355073588331193115676937925244395314232080227250773327828309278206643903952376244874261984655183331666351643708324720024902851852563229785776349190302597641088939627323935030383081444077203199501131677847705401255361371511752617805848516408269615382135716414813090312422143151484668858154892625796407288892227962893671515122990189241623527398397477874670288815955404304909894958776612640393885018618983715554604490839118406034146862622588442890825110333851074980231030484084078783336289723945535903940043457718443957302864052041383880277613133881219594767973038839134754128532490435586740853215347861567683773706081389478623616125656584056440167741484754952098312166029256610127753393107322228890102081861797732883664424863979017575207789863264164804652624083462081521810093722351841994068591740916701663339522068611170662112447889544463918792945148786860529180824710092880403735751748991651569377395937849400492113643038677001555388278496960392245791712492947727424455174636132557341776804743303842646790491139501609099276944192642943256250482220046255780072405852403299789547014852277748682273733481615764746864413261539909954963594098105935513220081851672894876449187814581619791752314124001288618727595393282390593034288345266163883525985174484831841290162004323587603602808400101572390123459898343074139694414740545466422102271032412982227752023836308505684151710860482021742507965166443927665448188240624971014109487591720795089565921465466444735161396174870711180643887805714112898564528489369544161988134990265301720484777278815722232629909931672808487594001271594813742586183029496540390649666974208299765584285638105105909773195753125098425430133127841178196167837705123229013345136517452423628391272337645900650564763555774492717699561276204230173579618763931792447398390410607957364047289172212904081551013546670166853727823624664126854708574921525582824092045685237329600687526033760926999849265058210840730069733531569133501924859183096114682283677584555285900900098352567269254815818791964366762001225912272072968211753166922660637000471512763405388047591886536114849869113892426700611943999037682779615000583286458917687154443148791295179026864812557340290659172610418783322805674892408658508680840596619041196386760363933102481410503163493917546828197646079924898569535230589690904691396040359118778559320122390313949665559040508169650327336108279653517321109962390194205761446784228418874084417587462227372180736786640992900003728820212547601930510840402283497443800957962661893682481962566969155366402012970602667816535495403875057242204183004422800869195587680067460121483012201564217530752343679738308572037992644307458861647740484273595916838996522793440760983798079829520284143245229729462975750203293507746804045616387664037358412483383605635829778754595977330946278627628836131023908200257180352984803145978984103753918369268505704148466502074181126022463206839278976918264756551575888879659352037414370614232424495181308840559326708194574096278579338939756819529271897262521610132972875613002065642291509682726858111725806106516917212662939769244687284654034418782328113826811999357604390713214907698105635882378718876046665361329101327454161120527772790531349764091141687213600107675682682060250833732580193724931926188147763457627308436344240834745473548783916813557499547873882400214955743569339592924845994404344693834158480426718156111969804038733466467134840200295815931431752641002294047736010578027804992554570865025925391480417941746574142417044082447169599827826060287569635737099588687696545986928002639660689910030386183824561471037674327556681111403005505058715015215203179515546058446246855491625457085993896139266917975853588538535991323742017055334497027912947869575970578719834397716207120688243065771508436249408409836090962729996860254054863457360583673822866360458657199356559487591849244284226294161132371361601919648903380067979011779468357674895122606607708627309358227726582369685277089383737135145640737096954979129952860571443645706740315109294421228120633184458063493855968253616679332972024216358028218630467400867628164955310786159263311688689749241219334743353796894721214912879843191920131427382735007837260443453725606764929728950744275295482819203604959361077638203712550971633091549112066098443171283118761979453984189994383840032051784898990484595493288249115217528485456905036106784369576265480185940490461419706308904159711750708579186853434054104447537325522418542039405738162878463929952128888592073921803187876304912257002259513968286050439407362268235186835437182727330651068834871213563167163193298103228177462152634322889906468295984736592162352409988610603475950776999055406981545911301681784862625199299726580259443094964122054652719099939197532266541357123188515750033741246511392785111812123147086054433810390457577423954373735984855128506285589422841966441276049815670741996996349983637774774903386552952961340295121973253249077788474844428027655944518995895943736924304185033231903079422816560466461972833404135208964034158979411008934174786338371410561740250493134434578202969743940695919459754899510916351092403747693601139798229789859409056996520331655122454987366990730087535147406146536582129579426727532218091056978276408577204204412348660737647337313172203892061891178043774506322591426889744259620646974095606933663239637425715465557331941265364644009459909255152081884939853914812603101330305953456564465010668965611295891422608756767111162361311080222865582013933683283939920529971087758388307712393489297659135906306177586657873940934365747782788324829659201410221087725176020055989503140027799117331570129068322719883561306594794786857775039035856392900220117819124981624440645769961572146131402097544256048832092132168018308979293303932940406680322025740264714501260907387546001396162033930597190701283441377916822975079040214643850094410375122579439701021491653414598017980352091152074025289742549390112955720138016321285836422016642490187183179719048926392586782592333870919597963595335464907047069439353644572443080758646456014003736858775756277751756048923045609810308650481484535301662055952514348357521452548658091937030852078825225654445660328869514241237424879914365943417427449117953849234507337988065558847312383202531075005628939901113579418064290678180876646408721036529927443254278621631248304714730053968023502527624488620805982899822399268213435979681248882650789827499949278811245762184298597868764402274508141411290780962165942342773402934245564050130242288799418002216720162726411003518124107087788875926270267590488764877475049334957114935262402457862172195798151044607648127945379693624654855928535087923437230096768831980051961779858364689234918171815016635911377991597303511423548005838656222481786444721481338629923767513173889533758850060305386975512772662376226832398504543166693307589868523830812983509420007416442463835187410251965339524817731928276560136515451720588216593160698074605029929594403641080251689699038999806767575486556585523018096148270556871186670523532138713688633360138896591915908717678433631002763679238639964117096319102105725148938267850669910747987250053380737605647195749578295698420419000131136254115366934263207679801288445162907055522753767406969717179506628836670140734582437119272001545533193493118873169022757323153074153397968936002118556351955588505949733978485452260789792049025731132050145749637622776044624044245183343055948337295693293243740533745003411877374345961693555143744418829588589507843327530792048523109952337959057494189677612137381047924761693411030541589517838412348020744441171666947069797456354685549847665885603698191276564818877378491661773704736520409112166362973048802607579096306750356370279350960696038185223224138256494483898676944921888938213664197034541027375834048427658486868396087812619213374653823717427520161909144909793595054623010146977931492156144384624421537618851229768399575178410673874255191646784105197351829779412218863936215946537518651294641166462349165245811921348511238653688425027533610987781862945844564054609770854641007468205958119106272145236403666920924256182456138979438213777878264953901599072817328534755977969977520438214977444634112577648050797423057110643079816105444726174700528871600861400881983554262032648238726885900495382308280748360770384450451005813882331969691492572399043751018355946100896843355866886212294040433558007351949665228249300530685142351003364138100291684436944488598721921927989825402798994506046939114195825378758613232398880865185128003826835698051951029978210746129135822739223903636121902918265000289932627553441689706636552583798722521623052418074212077642860079664900460785939792371094419511173707832593655958077780688599853247490202796267723012079287382920108015155851714444780927061105040468793804930705569494371742689941189467488943214119936921832617260178121757264698063625259445256357865551100925104016151719057728649986465383580421790236390634608406503858235270011131257769469186334166200297870451058717514949301171525707720968785100950986809583610394315625410360718702097420837004307132645687038013811398164857843626292274079648113280760936905455827052366518004682173840374500006912059799308548688327071413440889693383000352102838330429161302670864168745820576524132508918295973101392000016494498023640390033143026048487811204497993820514271391416395693711390428706336834821522932909928137247505414474622301350537379509878879073176817152815511987853616095771669632197757491667255451911640768684404544718681482970704089539879256627039798147287175588200470193120528640679131114584205428908127571476878123579524497547532797847031112716991903230488931481046578023972996633611310844963577806493742074217147685995875209029758214174003559810164166795442992094860061358269879838311364297538711377901385631777481223106009992466959308324834377186790381376634184961886598732381432760066372221393430038070875429860744114102747263022774438599370856384686636674101609699617037615442573826241663539042035318974984241757893698466803548560098966576468831423869492790444982141577056824476875101189209241645948544123931561772895085907800885209153405628052345899149919347504656848904615382913961046062187954625415587410180623420049477646083268296952156981227580042094301798856531389667577356873450520716861009399242695551538237126818467945638841448599304558373779737477455886721149622922984344412154768159041435168279674343333353239700981299977333920221568254855623809036352836399172164102666008092054240795393070200151430151433823016424973257030792223799098172930070046854208561193481503535191162404611506131550654348688824132719726662647457805359152835412899821850118604235838767736404656395015437084775374054491852495969059848047924940304822966733211138951155737961485844783823762129641649999375639616929077805756728419643746516199567819431431123125518767320066428562002482244004769584821107627515956017897860217820084351194709726820366290329711489583245003810179111447593331881647380958846702572150303351862463269384690932167035056371442181177511179201032655616779328208605389934407043251904513457374687213023005643411982077353888694826382991797523925172403060658592458343859026940108036706962233980469203031274035677665255105566103418286203884018896252094747310787704557200671418578307144608422543098743702560928895898652867883800547324842533813722803074762588838515262314154752216012175776184326367690169729353053422232140199913426525993757241084026949035172478595933806988759682125273580569407664304934853380813525551691478499516653350298051012742440953552246865278475310277253082186079689006819398159245714929470066849304892581382330712213555256377063230029748914876166948144572693100528605920158564131803017813673808873500849525326761134190785572641824368712695143701793755023569319341266946772028591980011044957256952026379026563788994337181365895514293423645138046360139411520734987934907704060972812257551167474550505478144071579333520532869988392349142876533564116950847923548642243217171302848182854944451368324850605962765747039740134268689745549953332854219581639186484154579303368372678215253399532016570581839744413390368523956124346277274282436224183875854475658119157522665106655881520156160782281241451368440270081275672367594961008008768321007049275544773203660298211350736405761244694159980403508605649531839419812193358363749949654094189842657157792131942340641679208083294986631531599180013595031771251544207000880249516454707343761231412772895527028933333774485586644707581360971235454815108329704780153305861951235053163151241394875056069018204378607015013062259933106465895054663119173530472171442005407655114316659519201085976803747896096140435391642745580273949519605668342137846679602322723346588997903073851151436119698304524672624256804907084948513996921586397798426654932498114505419004894237319650738352336346476423155277398800456790359151635501847071986004182254794966565768698844048183370555897599317997436481798304770431968931935558853686038025654320756584679781238406964092054813427913997084276411222975994271787498560374814817405979743319727635014707501390997976258453658566515513968386670768525125073154037079557491056071479420029822394175132750460362797569386720269480099573500136460789053975793222968691933972349217054163971347808263324511242142336223707166925320959711256306549552932083291594465432753961868560888810371444350469598999000400324502563003596150957103649555662532917668576168459374194896403352455428891161046853954219739678014573359593606892179486491032860734572154338453939572871144970061635181022447814367911291089072654830842553531596988073448883300194548870253235697469522512824858876772053592589532467672644587545344113503172481816730495598802535315659913024055744625135713177166048806427095924224697056163242734628172619135239015034602086815750690343093337130676053992018698780195233668333764904640632280952493911661568500982627213009659504711731371486012226427140136918696031982993188952997716017469998810017995747641465501376095864206170700405371390185758510108092464033008260912279750120250775212302507958435835387418813036030653922801925234262689348429581372989362799211834473727492256488888792353969603896961419439887222012711294604281626054899806054657280358301318539310646234296233751087560413502296263135223787423812393723930213704719652139569960271470271540673977315901598777315004711778602323619000614510052305170337647362711918545598991172425850229866975695345726580396751917808593809398227358907205685383259992487320900807551569465093391239816457138533639879264183456808298973426654095773278283740703451225189626171413279885018483060199328301314505658515885466133044463919267839692785533403414280805763272401912988544824966720574230363866285651223339586241797407560127196798928533573496316160018149959317856995918463304562313417811803205282443394309576398739793877550985764937116970084378779151608189198014702950224652222830392079455265264789530722934605261230282661462424737445073820353678683812007277944896175858041616088744380597211506711649749123006188754513548100607763161862715921619585197708103789650570950707166343123403150310822615777494074448170860730432588469954978902083298847424971832251765156531771221928942765530037012748543370458673548739683635785511926595671242808512065370491503134007630796308602873304399229330779737856107993396598298314298696497637754326750406541230933593338816455098393866668557734933138570816271939209808208377747571572718967775239976781914206497171417996669203094242347786349123394087980055631568997190004532120561266494393046537737475085154118446136205127219584519616908941233517062755988277708730583494354342150651069419569339941112310873247877654787889758074391611992848109252195551193080305263013308522207693188375136013920485655442014191631666630466224002879966328665972296140427360267843246145812851003927641246851881670780411088064394267869060047542748992457075568276859019011077310767479625481472344151526691972007143111006261900178080603245578097790957507193973796891515449594166847265530298418832028611368334329104056361706890089849457931505012779781532757619677024052174120449585442566696505200783611865640546748991830674948011053987670115910785922971424301155489624933705042503464285531727582318353272759521857430584911582641108384854310469855787189258212938975556646675088440127279953214567425420582723386647331723754964638045228431796555787244331976255215939750071026035259694147410708783601347902209883460348093487984149817787176724379981015641232323436967262478308490628216734826827337450514389605072171599656124371180841569706074678199408361202526336944813187739076597025796039483186259785490682853503353571741977557127757578577198582205921459476251289414320147163971745726437457710827272518196945118848726949268911062734705462570486970001561915887092001726037002829955273013778828111814573567323346924481281789720460150955761495071685061102649380445605806294404637798761214348482257409387620086522118435203781072536422198707654050359655361746576208761767527944112623983520216128579806363548794710642074975896565826205546378038161151134898306558389638305300388462643895026789687709977233390281964610776890693531987119944821118024228680655467816499528577142008678298844106370292235503415377025797878834238630224942539737069710835421705280251322400673436904694066279875094926971018166576703592098289688705482321646559382369804246514388914713085739897910089633390058239391614698256648243038377214631919680403175786821157282572784851656533110184423188034247708982342846140964976571637084747460749997925690984719603922682020964046992433464816776413590513183362967428612351868816966805266431001342988648907173962524721746559127777615069832027326051027327840534667322582174025424351714767237463734459235371538951287298738314916804787660484448229708113906511850134005609844964631833843795779569516467317546540461719465281210976336898221901832891689325294884118030131311851956652277397726115925293033170675247559390542701707300160248360818601066778636487561198161001078368092689860606553727638347104158965251694039870452811547407336369667735704831477788612834883077847727557312779189004215120001499164442420225400661964052328934351239879787361673479156921345349233783824394761438930206994573664855278669357290218064865912745759536684273071098473119061183727981293843428301197278375327526381938228969309949824051071822386101744280957645732361368284905563493407842020840765756732335389677351749139806270432258632936886180805770044091631348837201691528638944634252734629552657402694645990725095763968322619012298450064122284688023453105920451404058009560637769280447921449025497655757877503544663413393731992418987017220108582878307785863999166573504887043934307033181592756577086146855631001581876966766004810660923487196989264957676005141597142359088622786244927899769068032281233329724240055164730205854059715481952570587697134876370386908506104494080954329066578169331527331099419504017865286930622117645751543308985009078928463574958293970318943548817071154859727197243531715149540478867422291640485685009306877574482468743318393722592502773191493341123970027630399611705003034479481795637369812377441050532320170148385367127455894806277696048868641479301137087673288774535384649108498295190042137648367224016198964391018390079957117925954743193829973993145639623506766686390482250916520884206293137076640085552982454808781616469800598467229414376262388155301626517257893083798004392493563182938046161844083750050746794673258169649880928476594364425864461586709499911762050274806534753305748890303099897345651413968917743424289933779019039789575376936015356296700636006295792269829820914653228305186409647658331618790352061138045745121040294158635061079203607186474556008950157418056608747192945365160878018293455239488597053987165736595490198239029548169635356284897596799750090249793478454886581781691303444963107398659614219010129278050929762756843619466308071983842166739497700618892104347097774022101233141299703443281550382753081032409166963995498316742353923654126242516919690477841180377969090946614314324577815158045201211979693893732365103295963498214772102943956390853565909123431892809031951680214082290907433294094327949221629227084189523021096345351835244715366051849516640399543656048899517028518506737378454201686004284106868843590174423782058185749238753581041972756909319639809213774284288269544009743030304498041790217715932701518723631071157895282794539577468524451954970315108864894414444260906086434633330123104371547126699493205024731649085630237682410406606838793919128303493507494188924816949558808101897274579300939330473255024422165348843693454325180966199048901589590946163511843128870979848716058415945713121830246762663608525236250014765673558459990302906051644360788357713988587676863093494382517371351906006910347548114116610425897174971040317834938246664800020633629983939770754739558182823910068715385160841201253474433138750280452955841116996405541837621874889454502774454377811119052432508383525674420746998696819209640896727198489681589556662638361364374908612043088916892866894277161857520046293930485951325909325223574646879536691436060689716718025998562747088149560832809937504720230890640973677364807204567506310510748083999110293973575717922496345680313318857235488286781779596236465606061420543544102929824474559701304141918212121107186088134638677481938803856764452650556977592860562912064009274300760398713228703740946007909889608182888542427052323253438997553984836098489608167772492332035269356748172300979280557470763620494545550730062625902341547859986309094069594345401636472357544177806292839547102096021440655535384371192970782945031098235109853568298424420267343305487542413185282238015667961440787606759784116632272456655539403178728209965277747622979934708557615197610872312717959452234509435933763482521364042467557751539201260332583419437361736221671175330184843528298088647808412995495396076220774745302617166241140121471993407465541715751249494623846588269899823450341529668496592542281917018456254713370825050457353622705571056284942885883078513649226825277249745447408839370108367228141627164907905321040762830556818694787042558059253741945696884263316622770781471715222008630917184930958035123368611640799428342965681329651995713107137189554053376881428911541371261253729680259884139702865147139937479155074077725611434699491853372584385420532854915310958164132037526631935207334839431720339883334869612257898185152330422889034656326477540500790661762014549724228443587736692556750952985723202505695897955391900766981694157094987741986547786317911055844115981598367010501122420659489067460046988116678815912692090006732431401726856332642045895221698584327604913188404179682805685540434216092975709523903722732402202254680156695473286636069886578122848566906503534031880646870664104721385672083456705709227752338443722776322718234500056754359529296695999586477371564794339992705267069155394765543589706852804003288695383469588219931099322989752610005204710240737643728217039685365336922177122737324004764549041283979428894748668802439020262928945224464915698065003364443950798509617541777236640396960968660030147155774648020869221265108222941537714586635125044785847675905854042477702799562214774467887641044133801512734638907625185333009686267835333074502849880032637729835337143108740903406317499516155469028943230559897847036526496976622110370127825211764876724706673601685856376375712708678574126699677761568061721950993233706360691610304804807464257619427455553197499283480350026357385339127119205724879004919090211676806192792901868792324661492000002405746472200239464330817975471860823574785452975637968678365935848230876107443873549863576773066502790192238098051179154653636535500356353183784036314521205884437331358697214703613209290617583664130714922654253881426665154130836487631251154288193756293079702097264746932718231708398212551885570915986572376511739863169289860073865097178903176098744306310134280115549839811411124322532180544089073868344892088830527481162541780855354463414116107411260458685457688006251577681747764783658955960195413808535876169452998859324132844944096429689719708745614431964118224254830553737012090051485050416442853595366671120144717955634766013181232782819195254443097287994309131031606303657010100163278011579100879557928866646837907117600268981768805020652177494781600843981556087641538876142684636076820231006773638026561698135547511902362358310838259334130608240243372707938043229601802363992873168276424367317394192305679261367569423587540213174541999243149868331128618889162521443189346670513029856876642848447044828476182375676158788840181103301002110310267435446716722580014297774560223775665336022267237039412366565400679188275542276609160849403976213000637177449510696289680650008626855754006642410647608778283998977890105147731718783308050078694730621137831593194498048625012919899846556829900913719857314550163594906209189806471651739136838409929433892789123351475247987227690859631784509205828514785589950552873585294703861260798428462734910080797585049331442058380949746504749437066632503201090519729134382352370749188663644347429834218517548823368115830382256184580585588392569846729982149351555714020679924238457758104161683810835646548647953805691342634480243124363056761060060653966338805112462019647390420458575892908502308439060127732536216696496765024421917616369908860429315112017355228765277424773978022157616080503171871186909472727403010858708806626444262749133685228073026354988969537574616072624678283683288223760497424897180806882963631761668234574245304382762419468335682262960042382212492601198366431545033230516535143489873158462371336547312595633611259933615453155194251649345991472935142785036035403424311376818699546980960726539128145534144522932131189002867621288561281444271894213483865618689497311195714203146276185313534573888283889481087393959020455982816753653988696832167523613784161770061179027629178843816206656231494633710243887700520200088237728890198998681276737415456132329069016503278063453797303422610291559758156342270062755908596986463697096794929468097012390621244927606046649707016494643771634132410653200160581581434500313124000627012040086156668266169944772845941314983453314816513335000212950444069497651545369432128747575231202010710737886007994904591732418367579767602192744286065005037874631149718775075297292972147745455971311733308172733233852639645750060996873555663680306650656444420525627940168269600502981785800965417505853872633241103532569485922095015782197198585472778033256335936661420587692560224139339068950990217864720382837157507127472293505018567813495354727486414872036132455310466114859272587606213944066110078164544859014825882403519808003909572956554120884847086517725146813611723907611346804726967991184191667785551507000769116439444660107261396996876109658221484634861064284306542281256165880077040459408664918627108521108867093190407561031724178666095607868298977879455941786993587479805879592061051237014642754797754727829779414305588148827308648470343415036372151952960419736407748791398992823829290840935346263243510471401052056911734232032258453116114494368832713174129408784168707187464331489304009544054801872904193648772144002885571865725554368985728319746783688650523462810882313099546460855809769606707566366821634435774445242099049814331551450419093287125073619290673832022036172482105836157722592605958378858084822399305369599095341751201529025964664804079143282773018663199020548709609018294993283495485005156531646319765510800205261237654238206581050366961031606091043298182075125382995516513238638959463797371244548699090299008092516493758097188745663355550688484810431635900307523396689760217289932509437363965503916604610086804197127046505123669252244648371002659621896540517063615569100080948796255135680989269835076527856066186457544902614537095734602737887343312395910002340193504733539274436741960737618754867909227927438906131562019248183041961930790117759451802513807269492259077819560955847271038520939849539473033793488661085611495304825647274842008588481880355864429918956549381806207169815496793723265233906638668505760005404542626737580026327371034051699287038351662973909418375391444978104714935377202298526620737656085295701550525274961465412007872702811891611005840535081354440665663276744063533977816893221842197025180556110045368294119385115560836403761857019867132016405903072059833820081915938391047340305712616719506730906511957296929150288790298581776760077924132225474519481446769711384030575289702434796531665755632973898812474176621839620328081234364247985823830476341252788735926045585854660272129064903131162983447425729208393518603510017882403371457971814564442307542903139896220160320874544603241759698947586837751049997628676375466740098573369428896855820373386425544294604414266191310119814318896424917023936187609318224291157001274631023289112838103231048858098403580425950257361914327700292836622020787054442062592036723540619957487322465646134873149964965806735084804421721116131833139638968374231544383046544792156145442095243773042156160978930850731167198164072558882121728833833837994569365470771286800401106256115027150296227021232105297908337355336466753257519021336118090417284488197653538796060769075222189267286962120092554480918243037194106477895761439913103141406803088517304570301027783633440888782758362695937601258628367475330859682954943650903942233276912649222061576562920007352678888968391216338715589797760391494161918329166732082963684322935055355103281302482702541187706787040565573243264089173216661671628530486456665986472222218989545497386181418452421739213915232500328364488161420883351967312023876226716874782764804472745817728617029069376124062999541383059935735562822724602467654519134372125636222872243974581463745921362903452954239192662873464756626205684842580799662419392403101127802423527508167459240352730497051343915301808132071627290286965546704126886554444408192752278388249490405284343119704462051084431712024893976945895613127070938182987785204087057574890743637429552534434295786647320352600646658831705637459388536424327377764235639136828712557609767366946796093845013687436511944100289415213989760000217993196280083412280851430009024667716060327800532975506735311924331765804970236765873631307780484173241485374789796133455645231316013391373508921897349010062598437510813969683627051803176150914123011130868909297035161161582560166490880972181263756059443144685837690163693547727561327067208148356692944361958816138982459442654209414462503796413258569888723507604781421241897386158033316877675012456887892350412695192217596095654075664580278581316231158945335582589880378201798380180520604225271143876085988001663794911897102719723744249001410681561335178251174715564705716407200754209217680956213180217676176807261090481533568176780516949254358752445075197697814995176129718093023493588075189208507589748068932896818914856032015822133109892761576025115616239443862645974660258084565708248223870415975291850497159690495758531594527506084326589150009523653105474647648603749732520975922083786972901911324094373851235391802109632896940193356859015305473830173478096597825237899205398345531668596199473116058006113821105708939702803340317563929989697163914203629218858744907673252866672018599290035354285146841605821711149281236049520449515312446764133316049576169214540917064414116079209923133921824560526301083430292776921415537916118514131432593594842471558865063513225304249539734065226627502698169722746663415815196984963222458687822937356600685338138614143235608073254858067589446327696936883700745495068557511525644152520162753265718833373418723497629493053350220899037170760044133968908584710899140900903171898309560977644751750507828586487387368947079851944364479245382184217034858696591287090902768211041852143721776508099844656279112349450978440180784845227807220121899588665549650199045406250773597017918989677668173361566148586243787726456548463540315274584503596457850167852933294843039741883770315065330766744870238835923525934272328682135057724266887163787014410756517914429605777399607631376573060305527790353178070398325803195847239662334966012317908705437910509043843995499895586044784646810825622320056304805368029817106230370666851658946805727677607450599747815045034108104722128253961723044733589236288477092900951826277681328490263650091417569532653594630961491479294563139495675702275609179369948410728912658092424027675570760092171011646146780305527018389411684564141834894971635298549949387599130333937487815516897797344401790306399420336580254514941401134433697206771650352216042063358874592733823541353113155364735066846841269002641504735861365361493357814650332720465171889948258596429193771803593753909748199703215763213692439981518075894669864751997141201644010403172642694764381673856217062896229249291717005443988693742811244416776193439526246499929890091401193277568801562737107658598365075071602400235456484168781803225432152639215227444278712269787492674238410188708091294501023216636151175609871450861604412826325398934067007054886651359813736950344537264550856955495250239723148986489606874195558320578897037079069113648091890876311088056421895141912813613421814018718469693465859302759951188748736063771623454552046595546764883320184996122632190662710561933910502827935300447981337012048862530580776483323302684394789435121209561136715676424591446859174406528547323580891918480154611203649899752558376156697253369845134290600518823591996473456556497960224208940808471894888695287379343391306207287682592523259209542346061268341905215902491130216165177204817666505713094110017202740866937600896996576218575410221422185442258922981064105703757910296983797435274442880512158036899768274865813399292568230286689355023882971833937345333352993625314807986659702472765755328926652820013500626658063747072188751181339192189898558827265772635058542712430889529910431917184379435054102689813703945672325420952842279657019059765203504054670579753754006154672341432274937154250794819720586474122237862802296651544460109951191097314747034880017995750125110731006069425762984189214842364197278967868977262984532294818829087003511949111544785955228753846228214658380908270679547861819993284427161878159741237414591860456190757398823251460754197727534017728411483246411708219903315564589046907863355337857606630568738039758946881250653514841263365543963619026142538509031037857188489706449177315814204602012834895649678376767569192592971058018846408156277114918136559252676172858875119457930530193951990101624611535869194802669855514451989049785754105374358307627964623979208201070603704454209979142275581170418314666980835747828358154037211117278292046008383803023308738615622443617852368512591084317342033081760694868293933463906337303102633816831506358435026246512969757384828827554560037220317452038358138986132568014713393557757406747525554537180178649197992250436205915807067251383779056030609564573124909230020167600558083104356190187304198744991340639424647560315067375004467300115845433709853936536478830254018434167022374407726809470838684408054635338653042142662804307647489993626133714883850719593809954444765574893565773421825275509501251822394682019722118697348115806388567131475258539720328349555502215145061968991240041544680739129582284681862871725223338508955153443376638864255955862757605172823658379968500618927537692641031034436450554670291708440062344395493023847020656380927768651739977952117296423621187622836102406826014191590753300436001695311870369083637267947525827863538115309384101663525624334610882916560802356475811101685050068643741725517923616212946400706906509082102852971408974315261458073489187821937770619968351331167476993820262126946754617356827815654398216605096632828445481186822115054114925001609361585701568536194339559460325385930389164379719111312481891732194748866540550879942767875597330213058464623350416066794316350766243636255908473820682137506703401820486902572159887670572122010977146285377849553800189258136563663444341052690029539869250804983464656375710326848443195241616280095955086077974559746072137302012931341783390235776568886909683720947059344467979492217124024398420639093037658888037340454513803269946334523199697801196635579632909520722441660326355786304886608618593708354832157071283232847854580344954850605667793234828898520898090246275978659677114215667801087821130640621814334814613551417182838307524480979868878617314778281075974020727925019827972891397543798903413923674291185478695824699408361653614877610368607270401565303460120476183325119104226845822562774905216075597895801884174922136329399599526918615145848674120413402810547712741992900031375273381047727634809653222798266679209462455332552594781241959940673754280898528573304947219904212145601640577519770525161732459502027121791255499455100117287720483794583192750215387518781132132495544787992334447546885732889542874322798003317028314917450176147481904549532011499668727065230476404893526769520152769758387760451478854599714801068393893321706109228251987060875708079277339030478163766527023418011099735406504199221742703055056727939032322581257133794129490121126675951796825889314330755903640061767805527210093932095768557774083361592544565828517077307465541704865818776440857684297583667041963116930418241870586629846037535042284712878365024800465995772100765034198163358201838519565552867255438985924939290488524491674116807688158847754607118341336743185433230387303306958152407187861417938608980558534649129758115904202487125032101827930963155575765217030006114509688237119844812354441626483867805632737208327727119245366708254419673815620510296806040883271978428403044586764807063787430761969603536323328483941116229030204231032328014711748942400193835192250963822630094132284096094171656850582350093147339954040667508142656374685427295674943753140803472702950723456195080452021418783568640277394510962737415441744417619774082225624913883460045638956863520438849439186155941126521204016578630530081382768484018292841629741651075324701009695070618729658366190242831604361182585025398712379435017844331732304037856636051830371909293137630449550361533779191944161399974634328098358054909588204132072624092996373615890056156863496461966400289134065890935993075313098824304922409389196365233841985232202808907962456372348342926455055405377402058421383184874620015678598678895679170745417743305415790470150565102610623190655090129310502780408162479783500676961895723238336741711308288864687159237311788642045834360406986211805244032183056833939289125766524240406362101925779766435296313214661326333685708288203241449224208271961161798242296658213521968058906503909404716662788621848129597582213055260717278825697087776263633332282105672345529618343898588276564186721973699898192707727842020036301234805357713022209733639359052168695476363143762510944701708872761144068149819813088395244325245912331946380407430333544001680540087302857034288112345951723109503886163557977894429801628918454777634116998045183462471636219033412736774527399478573534658163710085395639190778295478618635917796745484297921311905630456221847018564625753849653506100325502255177235967883544503162397677074686574073458052670410374927414064690398912789181810434065494130099580497062684630103943347157636942090997961639507571599308322112279379383146701922390351332355407344581892050531054310475745367978683860600812681441539593496327891493828758834904639952123768620030181281658017646275799899617150521171196512635175510317173762648032599589824017712410439478447167598147293672645037037150303811093992161943355853528955216417846141722118359318573089978269971402859712623957835699420837386860775937672237168338811515265933888900102053378235186730372622178536416483035831104713225150721793022306542845688708250136709990638954671457937564202762902724889844276615338082459552614923150318685589511006109652097779807541068266328782757534802809807994253423919035879690157421968337252202609241772104719412923982233117192612811657915302683460918951705257442697838692975516270589210417888317984979813374209129810571768348694327417272864544485548330317013019817543866021328932074321089656357024683857327085193378552054407735772513910768939081380435979304291061082724842218670850339818729145238342146951554545594252512386912476328374533036488012426907725618725341235925601611695705578471779119447838806301724488862973054244732884501442531059188177357966820736387414879366484478053488267620800014091773887227548333497147990802972599141461445127743793162479715882808738276145586548499534036146221005698133861555174508265773674528074603700396490433991989378051090203335796747167587950248990565457872231082830285316929670964974928357102480041305913472480716623006723662427415643617374468951425048272511981453304637904983266476516234559561156157060631717696557434735271005073396713984264076568392825672303539289011476440378806670619804336531113428249705743036429103046787156686492389806813377423028557790289131620860346558779338643523238584360672160394910668600884464964971949609107397386841693068523845671926988013512218487803275318434317510807657555377801347343909977643308010170262291658561514625412656464481642985338066831774771042282038957732934809372612237964649724225212866278687390744043218575313512517211161830293036458251833034499002519270182669077120111121644855335456230303297927300090168836880631868865478371542239004516148329229604579995252591850351848152696939886234997699271602298557923847467786472438139092386774674405994395043936604465770785338333162978571678172758055554780364766142551671090098482474948061122333098074105621945160397724886398772366094288133072483983329531717112071132708684920429744482464039191126563459476630184028213381352790531840484882878991707745308329154963326631397508770031369667451398164749932014481666492731827302605884348604727508528441940199214229397066754796063589112730490116005226528244497257524393159393845622813369541369208585484816317032762352492778218222747169724909842536756053552134436472122171981482055449185227372399035287038212457249003209857965814506435957824071921138371936581891922982285922334456554523233658761609226631343914233820640248066990327063355040889483178763361156738648680366055023859145080750212146402013726448383758580284623663667488766428392564683817796621603872963267539225235591022260612604994489033128502000113335928696510621184256441404876781286626943289468240986227765754008204002314347587754845824711204013114863929520724688352955369578711783074663319704027746511795384017855833373509895777983046367691339041683739738443929469882165054637114266502371795719028925967295511694643362706213481213765976330125693746480402152337874908189829924502022689917576065708472476671622443367709748892844668803199550996077358749385177725551557539354473856151558996323994996375073143672407457937521079239013136959608918944114523353750873747128614881192441614804195565874584260154418890148983841167626923592424091362491005765447620963549927263468606262461996709511853429066569396542369784310813049275387254746947074020727063766501637277440984003091740123043416764416720499330043363675662416604506593475775508475116442506967990626772323087048153057401983795817044844314620193172543769076497564606118447470968311776378770454264942504205477464407486679617300233404865644546030225919054286016483879107480696712700332639375905730692407602012454468815093582232055608272761898321739325807901699382070882212860696865957025703194596319182549228690188293466593471778631632724990858076717064851957543301746351304059048949018665074628200091324205284663736503597620593860138524702432809799169471589024148590140532117397836907360950994581939553989296181215592231050526515122244062461929161810063379084223124687866192045929934334108901401078249515855320147161160788352915458587407094566356238994201839466550997147342754301534761466049572967821433514096276352392674334594430883042352512677247601084315332252573635526788436574054426449716322424304815172564837919947182404270706281462738747222477396810114494210022843102532730104793083006015071606605145363282264754021201042865003309980285863471855938202063946382880469161508501209396971808113270943989599765992555570409673004590904644972268431524043579861721359959701289192550637604767046178616875023068398861449503597458450432708302205472993667670287761886047500898434267253766522094111128025639074422145823501283832022467946292614230746723946711057002079861786198790662602633893579918226162645863363653169814779983847723253696341964290111119329899885981447341881426702410780734341041067199734205839140089783065752711535675448057311254723030116120544650262969575283567101579017988354641186652484308731896994347714718330868654777770282776807465330538355310499934731405705664705503659749537569432392626088654087240733489865433823472895288799605096105481028166495998839480580615273694603273527126099083407927621819996537815402868691537042345923346927912604262198584403854156663379417438255936988035337135233725962722920841993806938313066684022101445595718030694834652705966481061567509752745660253513672536916815394291354862571999317279990151991703157028526981038592455722325825745854485851843380571586617472098001380519231886768212355108482628441471041504333250202823388515902917631045457904128486500753682929178813495855322412741509798020789558223904516547334157243709476505805559652742042128292704165459140610884882190995155891127540981597273098090243053629919853065803960288449523133610655252581218877805398037551220086508188864055138196753649915265840428752671442595905126899789678598694492993922921743036900600052830777923773364728274457527108062597945502923207730959515048024069223763366581403150226682227185072721093732584591480462217518296309282193521859452314820774984661551065430606160662808063425704859637602787695498515800922045375147398061057811113845021593257171485513375171661675956958067621662466698636304336086306206894476768008478926818070249366855306485121599966799975356998184281972927992773304890953153201110591000122751137645715859272010443450825097953363672245769769468675991041848417761034090361697641318722507526569321140171683498748853733058296271339582371305618711658753099997802103242199574007815855145422028461761556278406401757290696424413111746373574666959225392714107117619166143071502955595967300062813146788543137925412174137165510402449010810731601606636937069332470972055429901351875606271219683511618796425739160209805503156875958620063419452725226881341422904643742039234522301671343198189090346752499445114975657663572578805870209054636866074904423895383603056898599396213476286713489302817770131619804551249875723997599112622174857965981294454797332577391395893535519111385035482347543062819765907946670814422113885581446711229145629312940978394648338404050490970943194868957032238943797351109139175779792084688598885978158009232293750176574941063289301917801438722639102389704946308626954537606878052831550955169827597171738394343459476483519257830568245667079485909983691488529993091912139951606518092286929700572100118841553056235036058500761205345853384483625129717840416022298652454404500291246830055633056369072159329591792628292682694894125829071430965373126310389641717208697838654372808987418821602095021693507735215983991841602485145433552250434638457945920459508800896194736368209572371698009934840504971848184338205657043036122346830428818974483131851904537698587995637233363232708190177345793887162341766652664461488749394377646545336327188700584299714205536796963951775467987261438000786007248452916019244886020804642531538812971794590966270198529678463344305628414536379798334869871340256251430492932405816564192243961637187547906501622226214891974362968767098389420002625664702176108324311573780415506219592900294440872451798217296888022480849639518148381686255447560062267102761157007922991829869547114535731981585931226160966894922808849561903708179464290529274673735767442763143376525412729802706054773696934400260630307362360535689869918158588976218468422730288957653871009031495946137977780884108559582175358305922681887216060496619726299439920294117088414428935320733827463663237782527209502129414844093636419045795740098919106345227681369974426923680787281476840551406254422119842616945373873151651346976418225286292629568918098901033837160785024245073574220078809255526078793424207252284667155884352893339254679537035393100270386383275704015304075579061696909804835400890892457354248558805651073527093658181398194439652715395941476768690835983443244098888152742633372473057600747432521304841405314840881772942597908216860812597205225285929579956203887773357017792748097997404993315599406438551442877497692701206703114127182274477639221946372955524133839606964978247448677580331784524665246469791066985796522260671565227838939006329528362652867162975995408493289406395550386144652805588580193704810994820537869070295541713247792029713673691801684464869809775218242618604298089473628592616554659147816079986846780321036966545430509147805161052111734886492597119887873453485945289600666966795018060082832567333933922174532930890143494736861972060465619568158541960638887078355005966379332124663976782287947848210588297547281687716224906334020356585188295262846537764868223352667842895295619789907238708782483082619588907806436861338966938413055556913303669898876295988609036555179913912084389983441207225570485138245334314970167894054611159955162262450759327973152235447694649247884097628390069117396927704517671996371024413494423145417815232373717059538982296917160366812621777747383826680226958518331925447825573383310491834524219075676406682549186024720871887244089114076278142719178109690917775542159829539825200297675575545520328550817048622002539724842760679930832617593705626972297316081423778607263414958846312714767762857741832431575107860102948571161005074628021990358521168236947898611631194657119354296714901318456275900657125928317494855655376503102114260323021403823028094227059588738216071558151049312065669261225641318185807800030803633076313384607528796705670746291516980505856400838567903304525647143414057418746990174916089911255488634626423619622395054831209977848208674830612437491549436851548042702783631779343548320697842289750986414574285970277371587419290179097480709131793328564700721921342330471912287672381749384204496381241079014026213237315933598627550792645883205473570575346996327717637549516414524459179981546132395251263616298850679134366328944522065587275920960238131146421590578006586797639809137927970206109156324553269851321485515459997996486809991066001315532007334459199592041045413414148991359969254734098863906245146473101748891604213752268591560562439955916919203989890650824858119427554399642439440980698352878487095978678312768688466086859571541557353223068522686886392942811364133667666700624813423580268295406711100171529014896916662005762662289219915601146754526070012640383617629467582776008483022225534041997331321082563997565906628279935293352067192729678666969456695181234415495593127859102024030493009521685404085779491275820503677587646670789028240544476319628289560470837040966557581222695674726724183229556151681991748265729511832105639112728398987158558201259930321947733928077352915303423186887048820924118431595865270564621495279904000495012627256226491019771134806820982910991666185639018674447595210720242029604691186617478645984971400469009889653512224373070158531102237052763271774481993692480069270978569110728418472980013451315457694341080576147588956769744100472879787964039111955784946806399066871154618238596307250641008083663336419649499317716294439693234963143069761895122874315585548630325587125045791014064320429148800894600529042486651423109191013639473672648070180063634497312083718474849634434288238809004321774909903114267325113221252306678246107624105484660306704909435092020465559540726209185806854466534596908757546810874004047505778794292223230177932385488261722811667194701696827837871857188923386341901272770891826163675129226504225519618774914774662061918068876257739306765411475552053538972570408119682715031104365966104066559217913122777346521332272476077296983536367219089057361576643734581413703474486146548609486145010446670605939498221298643287920138129994275412763368332124127605933127415720113701314509806875037656443468239361303961326659438671637493116795914040078617391888647759702609400273744749906654626930454373683821705003881331051963063060858788704575655838560057167656837744362125778059412120099715213405163220605153337754738746798078899998329247389787795322406760433610623695412802946573513839747171872131855580884225140979604069906687801640867336482893057849194025160142712990961781540892754566830919496186935934372355687924690281041588733850658955059792388632367345259038989709226135400093693796561273986602339405727401154846966314460475964667144257886371881798039888844795138564807268773206825367710702332591754010596300353826510867192772951103522066422795609382932811489666138098063475267826900496432024122920083614529438248773382728484184882557304141857155943304007186729068889074480655949055441697194542870132718515940425546342201680438725195306161451515742624942778414970296748362883207888966337680514997452140479098925074698556347813398804311518300091999125939337226973634073187151562473974332410060038216044971671483503278902549520219665699859772340034908279234853888802371211877843881515646992230409779914630989159012932654159381359278026740105446923056513905873504559538816413476119570353317518944222852989122930942660655300098610886937589146476038814732963261066316041262868263206237907660895808024037347410040390809590610553143880822138897666241353338645545196437692023093692000202025826730338253177078412580550709491032457133707980295663320827290087367265431720422929889728371016653043334712895483907329966895221845546181887389231009991883223877698373531589512657981924727428384749353140718352882389390788617448828718754553264228153603950763226608958093288367795046590007389426374744830498805763538054959114647866750714369788739841704342847483605697806879888510134347071109692413107248924667977278811626478349375072398567072190932232737865420299070320615794139945899096715854389648415681589849128808666668849010349605184108398137984514946565794701611375600493745417896973566681294662040076894293303986126395513251660715673260954508933902029668205699599503266108405733473728144077241412742974091786604070842146108544769229184401726706309105374469674747978187142089964642787792877153987755641386114038456314099841625959596922962060476088146698359458305395060705380478799456621191363085934695050548595631073719751538348561976330227468959035694599830110496854836462767617645216542878175902157404564272722756332316423515936313867404268678277152714338653518795088539501417062701872446548080978534008804798375997090674223220987414004234163088582103842835368462709394356512150653073740132641285565622082481641602610878381412134209476389197889090452486996792778820255749035997461632070344595098562292248657537012380355448665080025903983802072413500361190890966583176651627952313099363649166527732141344183526759187572739067040790395077137697121717584185145172593797128607498105119536961146715257138805572376394294339119788306724837058605304652051005406565499425486046929895931898578134068201503389982381708294538102778762133951588094882655922385058063730857713225335126466392170357438523692911557144066546752384789774533900952022371155671692119492366798843287194867007751946045663788191249224763035026125065090247701336759645380951682994059957598708021901760323123318138821718387949776554300217632609260698569693519674724925367244145934718017564840640149399553237015558301091650189383092636944767877142267360512121724899888637045030384183875044881497038312532102881600029846862306489183421461719830309744162625704376014739061997563409421320395495672757508187104496922093381011712218301333922039919425550451783553030345483837016263894990521583714110260137636347137019681522643253608431810759004027131464193853907766822252173881000722272231306528938541757168564593534149722527987044314910684712797648386238073779581946659414125727856556675010536214152903422198376710576297837497079367602438654439994249483668146709106781666926303667039014176419280011608553351759365666794113558296681160225823838502336895708187059783486173307652776517912476407631053494635385464537123317858256456415163254379131109659406008104317975643370813331525890067710235040202726756769254003852626674424602639315636481452518647278983822849676918015105570222604732156924254552263916811719722966189049022651522355785844919590514487369037824206977043879095065689661097056872198130249784012290579075291045955507317041635663123182323024837551637615413788710100367824624693575434197042329903482467262066324022024303658779169421379860844004920749766195142560407235770766068531548674260214187656075067840459497645198419288613192673902084535684534666226533050172541760239374812622111981356092495246399308555358582846708250974084141903291357626742671993764690194045412352961258380218742572858528613953810383060728886497892577873421830202357738066758647800666853259747669220532906837013263047759679605844322363915332650135036222325334009311786292224529340201011121698387672074699191037150138669396811515474098326376566242592841056642091274397644155326404957349687283452216563263172296070720259285631303122280796314050422379171820531498655870761436462122165943307769125479292817935153251059485899498860963934144852896389143739451847197540520495848730789369852910782352969005093319032678937929302572205106898858333696668350965370262742824299174427270701067449482817937489575249427101549849458327398258556930080877357366144692270199305232244116887207786397553671851790614435329864067139592649537141974424077258483738325984572354538473046197602205716727255723100782482289775342009162632937198018311298614565782450335628269068897715778028188813729825244765629037370542093758903863226625425510324483546316524758577561294753713130410748492430540797808305796688383610397587483463265525145198552474283700390976338409357568790702755694673845263283435744289549648197727706937027421023557840672692552485119539090001583997582709578900414886538550252764005365713229025940413342215251272023816927132816934641539237935396175802633905071675633479486517776870025533332394114555653046943630581263910816405189428745870663066356558925909314726620911656536616820200649331516575595159756048626747278435165660744082728359420098506324528573170475630158156448920232892358402211654806314357240947397649635583264609717911497841641327688735706996892494722612850062434382232447747176768024211783783972639110417281403826444579631105151814248753721061167686535165282853474158609137410506500682674864643162762689344214205324735586919521093738941485600904105046904570762006395295904925135424478541112877414558127808673646988001722019993418561419527456384712087128206801735209668213656222972583795608241047263922606480695867301981928361752951318289905194077932932100710582930664104894804665483647957458689335413126769837107209424599910694667149209193896348816028963969308399892643444887300666747033668727144507473482245749900711222833093644018610962468101487816702023493541214666817084574886214109077224642657396107912394925285942612765937802235528480244176928121575552351382311878198986739409771646312603066765990275736657403508678231072031869992699159128951623872901012846811992483558261409773734317999209642817320590797055704861449794824041637433263586824557794415704861189528868803378468807246443302837568617528292101201296299382369949285046613989585772702379188693361260796175938150935039900156929538822757036080077420662251331058905961875395307344419225365111492734120102858119201083549028293846819190667330740370289721477827590748416677614247510131433419827691362810541751502857183483021745977835584597127111432332399983376153520324332679789010073005708466134631375238297826066274087002028983060292228300342132292735700747803358373778986124863853792902853447731550852825224521708825723359222999865416786653821151582048256650317166116082789287345807469831284555387599069230861606866054923892105539074633112347294699276402729661564262590227814857201425128406355969661284433500197157676951002885919539596925898832047650042643151671003219937954141993787595053805546477849785717731196353838729931837955998545846688227744393813511846708759700764038065130504295195833651707700430190148893109119122006398573542520987540148588673650590637788546117151500177779659237492345260398391088145275239949657972471338822351111929379381521238903558765848776992423193686770310961402306209849379174455896910484447029894947417747240382633140884374301580308315465363036151363395770813505837538879488004153437739409882689579724531607195334607409060836173011211971010904525575194733773203239334634522618696642630859684178006217882949550728090250364512210549979613836992501678622286009614912294327202424072713173352808396082043637335773601385260010432927056404508045215140355391855741754544992158756749702764443463889118013964936148274345813233694113832148295844769062375904781603974339285485961753054662847523789476067421827938029521484884580019475910765231282956822083641046218142447511825893179626969994598609593347011287197079933126395052716055881548128574151564730790475081763012074621735745032641620980214072536592457910758700256710668795057780693523078516874696113716247172627094546849958087440464762253510795453249232041004096193060099175713814722419240973626521522394527163960313292496482659848030780661533772851545755787146508500956107557138279170499750232475076704595650461624495377176605156399624735330782375865022410546887820221222486990052137137119860934887788045555803554795765585302709580730473478619187207346349042319165546741196934472386204907885320647245209496569349231940628102206792744322965516951689259653081315463851598142684431839085481437978041549126394892718810667560334847512151058517581163805301384111346544347873019626405609787728381993697825068336344032302993123847255110099019694462963152313916165814684522979227230408969478924270692670457820500540186172670640566030369933225586201806712894633309369694763893488368549396800054029942461968581836450418687324429469257813119678127833442238093497371155345928174379981819550764459575308270690561763096724015965180486612980984303454922661972321983112818203032643623635647199803703190828150854464281065812743780248882054655058360651276521401020694647166861483540757087133974458832893413205867433087036913959387623819587023585361205068634807585607073227255768112242172940791210427617621895350261593280653623182702570361132828923924431120675179205285822246948691779666821091408699673589524624937170366201754025125088510221803120046258161267734797449091995763186964460262372217711672477154304119525526972574745422646271346395220614222237409900461778871280235487565447979257179943754013313961343092293701009918811963448125691048329508139720871683361057992767021185973959665955578673869208903362400022943129535611785879481588019105066317735259254894019448359863338555911979349879838104512799234704950438226266057959650025982990601208752516341002335708884829773659933045871098844154831274715063010368579717923843528412986588482849402717362199844361934369078696460713369148709699159608046891947908860544581130446175039911524806726156435077681144609940794252558719336036259436539368188736388617667851546101801031888972995692996778940321962205437753785559237267581158456135981683819140319433583867293231405259682064419585811535484463522008831670059444374077684410273594871382529269551897113578984203879344248299528896144654455686434213239827880475179502693096113346274650148112805229000042441381297415601620384643331848458322628727015373652421079975334614720008928275176717262662843090385693214326087561272251027089892265712917448621138074669792054842328001316775286987010279157093300240051039694295035932345680285160047005561625287971734278662310820014618222621648043674516093583680379704351487736770334250053399571107701636948476830704711187148511041912129184268660122538296718297320452789641504846230060864800726011225311983642020166713771711830014224911567651749414296109839267329768871618840479493075279800955977802843339258554671308314719830162278371961731530853980466247478155559479666790440629102939509046038246392195964439834144752751185157885038546572941017415406041944783511201332938867228980720836025582093238654245076466256610335749154300927570717661195728905033791187342232354360816726084281665897715533227429508822904604360512508557452656315623764906131037078002750568119603581742904877484645256893331922416769204048965659348634029524826523761375911986730444629845615940802677427222703403581227287470411007107660510709769328096773506211217369491943908295194607064999439609272142662468268462841672787246981441076190527235354075868585859318450811864047806802600092337194925642035994517236861977231693596297453989183211007314478162612949516228311158910676327361524165302168063492046682497230858531305864768416707151061501405464612602636483971491787729310081974411747827851956448129322221415699597472694575406522384772923225855808756103756395565123389284851720038919024526256269868396189774432494727551844552795033417620497700644089141504981059133061113026370050587548422577832455682167603789949401123572700414135272499483213459908249693837706679141850445843278449247247592575101582877782761329151845651808279978805350011959066353040469554215832026527848329175646439058833557879887995432051954481588875524319628968611610329021441863950864830896670557063238436174426278438745710393076787170659295405171114734861221403923665114999764914260075055896601002552017314785195781242227180843768572885032234190999020661978761973194547072500526187863068847240389073625373923781573339647475988192621831637897875971660401473655265095467113340180853971276170583649729968829058275301212203751041299716834900608563055070044568950436789195898583227463868879876025466671820488422849267203923049329585386812391953908374300728738815215875995917438220144147968983451638823009278750776176583255464994736489659814719861344010088074085013341894905471747168231788534425653757673685886842419269398423516260739867388860568193916302983057428934415138200674161223961594801475097793950073499097267106389146294789580844463382778354948958025370648417131709477666311851205470966626213105922120660927445913370237712337439354786013489509926079857778202304233926025640763115840999851521163959727048140974879558590791905004853303465351156670210879354319705789740613645454467076187669955053744868902514936821890699517226401606187769913892990978538160605751668129080415488328920850212211160532919686207694762919679369220940435644162955203697971352849768754745751410139684006621471652827493782672960833791450018168274072841998634266214396422152808726095302942359618885824699731797893410452037518972372804323768313442563573797768160902272437124942699338525732408160252794680219433301501459107205517460150084393005084926720122305008632606407211100071177422223352480843582732203251324019091422771720810335192047504855729790025833108887913336484410708426476699010333462513337902910412377222561731016196995745414053937458228202590722421664612095408167389907780394317999328866261654027461059351777097373840369259835734513531018237902463984898642875265481705311812777081586486569812494618529767278339403093734082930487012663565824156174192929795859492437885779854494000944854564564007490505047480827179136967874139419579746543058654746833933812424191391948688777239166758808439133734226726262128146638428704978989649876317418444173433427088391389143892987914100460674768066707538859136097681372851107117426528384498989095917572152109736885284638356202798742763878421634509455642896670521629773129837316026014252241309989501106408105845325205608816271534239941401646893031906441958391467169414554546563792731699559811319102838934580584159458846629237165213825715344343339128954683549056953867191754894083077071371070257426092989753390337157019033377222045994453933248262511059880238339961329625673761882402276393938040572928107237818828931051649609404539270457270284156449530892085022362370507177596864374048074442319601474060279518572080237708655473951979463144079269090681277735449671357598057705422980868952845200956915228841392566820206414300273260505175051251372116807562236488376767884710635191517035743865051356285659073982766637789143591416039665246949289683155514545054692570861304464399052001982779032197363965265601637696429120844270122251095555978940959817584399144238885906872835301041738209319040184792383911675504426217726507608700794771532772129940920854481880536229230907522249899407772571040051402027720985247833586580901947360082380165156073128428470877052181487704823217994034070079080128567178505524019865916178462392242850543036885211885634717601020360767124235697350342208792444623105482794766710641084009404121271592378889648685952132597229581978705014611792277703165039326205756881697738497748751072985737079755899169541362535618654656413755182660819302739722696704703826880169342140972963072883798146619727946285400594832047451626810511561111441841361736604871599910561242043522056104950121852766186968775051613114243490466473945965930386313173106964006310832409090576440503717905351778523496255148387654945973467686305732048450488316351633812855101165466442061565782514767583546761153690647493063174819510914093544691900397511722104014319817680773263457202937735632369353175881980232643629195749548921255051012030900682978737735205026538614650450387816128525131046066490433391805366339368022261000792816817065869898287148863844106461972420456023122016306953076244164404785071816264677051482143869921381672043317157304610189539697838401319186005336390396077482195683096277611541327935863624960086665677099349453343512203596628121465973364812360968846986242274535384160863169722683305119749549963325735562758595198586623165330331408662711708390844536179068542637149553095188067868813541666867355957410383850568526801593253039387618997848623711229857226859106030228867807718797235987410229126380446870969846166213803921842047229789163075271552581901637670480051940882263121808343882484699351723541247418875509936291605446811437821046677661326847399317536967606131560661849174805918866659475433742176340826132654198252651819816002451296897146118191194141404379411791848615538930605581218299131404160492820834088896489353601384215157064971627326864993981154574523371888418334292735310460382020536860203784931196519646446196766013099162664184155241384488537121756087418286482269460124386119175048398816027788897972359176981112505810033189756855848996451811624696632425692953270391159898065755160612251485766795954839888923636007752357248624257964639364774392382265033915206699703244908879799609843137309468939782145996851748204295150659722129857860375642141062213190027971132769397794007186123310472607973611153236670080342867371093777570808545338936990547015863522315054921357039495283151334027882611477341119849903856656443475842321510360821168735422826742735699040335767405844367697544058568426186507834659035305987005312711854707424783247890936375111627052845774941912331055698500136666909977529981974596646549266080482237903996093701102632140537253692952196004496482587457791826501493478273284263940113438464164929936663254427203160751538202592030862701839316422577720749241620659565530016793386048916168771516337225088471876533332948724954136985429351762854493072763553963615742779845185037089447680564292555808365966887284479716482710897599162161542212046888911309910832162945679143446774810215511691076980914402905869328776287737203688269379967310488465164795159520428805793342404181766641080292675002029167720993672585225708729594666933912544765867356379349077017203743451534630303184669726905537170993771939830274110944517938797387054934375942745433609866853014788790707891322262214198310632168016913129629382226896667267174000274392434033204262794157310477550542590770905401294384805713881769971076522683250154202284176886401277032257034750987086298274547320886206686453895136986063779294575611632625162385632231841821095133742744537985516176537310606443307064007851333354448083010687310425200975160874031681584834127610882889397394520533388705074036519171584787123920864058037488376314387088788644409219431104017009389875569620013843224168494817022742678989976401867881816497929184425905369617683081965993617415477387621295576143825869228537431011518922511741819728951962877380794957883737182223482037659684128379419469676744838149791498017329439817118416764533007543152013248150201111188425790212607508195080478742153771784943259082046052643737385522444350610717973384616208469134991123034099007570365694754447856342269658514428841903902837261343963914017146147607646317705818057370157835973879469990181376412832090444982468518080302699441563126944088520450781413997331503441663894232583014657045813492897109303914193021662988555584695222850604323839200565649713323196252293331967031527714769114404733390725181762682076038940816758770714472569698459135424543025974245306661748649951171030463919239833063374082493941683815159435285907560550907655810901682217593997203329743542537737516962205843316173679721479042659196075073685367539261928992343541836330489169526563046547018206713315693961528824538828962688397372995887779449445904290834082486307133454289593222160102875692843358383499619463171722103237839946073629692418202731893689406373548847067363217206586370966694239181860419373165293069683929700294404973275113680160691138430811598209582419915019902069746991374926688507098311685012829707268201494329459050509238665112454582103877074266247440050724850341854303497137119722172921614884482719659538213986997679653406545784094777792142316517592065918725733505623871209602909716652500952199860654618162102132803205920613901213880458668547778530756386153237929605435302798785527505253254045559729730236176136983897822278148778716347826153011786486464267693010753955980966348772873152634826226272552344184568527180434095857677383395379633127315134741689864077311803326376943461005178590231528758182360141021932565079621597998824916840132171806427317782214107014486325538328213010009919581384524850175411893327544685885075332762985759879580425401409897187819922976469976533681885592038608082946872919077313960923258770107437773732340281327952791572224485534583921100287697253231824198914776307437044240748761101833779972111228478952553372295588508306272753441651615283696010744559239385833844099261091198121569139747378989531637040142592869702393661689096973681681410596570900025251441433963133361029770943464625176171309388947442319415539402455571724603604877200737355555532896724063911218686703773756807230574294577079187516119834925971977081292854501229073723552992487038194496189582956245907893437687693723055810107405795512843160340924765419747548129267392793277100319914900000559272307242421892351626206138039136158701057884472879828454690858643081495490674941826108478581569376714270789162249872728765284683051307176284400523834086117578608585284766859954177922594511529984580449994377013644117750722074342497922326031066230508997054746286506285837057152200340252069437310396027000594358474626565000374988237747484333291292335784736433735979219913273434961236609278161979184597447346673511420510536155627431178283134730588088736552327346641676106063292414051302144463679789820993312898871800451877509624204906372165361288651978818632476353827723365350761241325539085103781980613733026082020950826571151368731179382104246358884159636487256017120439561732928734391041892297810897755053146223805277770334384326329427362199024373236383840844888519880466802410410396760510847598532571296057458876810193947612450767977335395708413122270640123667250825222029236761906098055561909921129082672988508782112232529885564724454031927620615353114273802526797361633951097779393937529698761080146974219259549158025538766515811871219682676050648092831908013601393512484595403798045544078669355793711056170738937516555417305214105049579956413563731136665730614693792329769880984953370179570438154004617810538719513981184791272912491953076451224254146156867035498265006223149706590370804565850107286275666779888097384472811901738552946745380951528729040499202824022847855040087337094859042192050098573198735959733974217456509782015907079054486270986704289097018450544439922832007157346932384723598398693684304565768118204298424561769311110298435810529115146521703334231162365069734837209549110392502194839817930857109082785212495600962844598148514715031928014719335522449597815479266624930238361265594525155297416886659439287461478569444003923531469640264394441399361634235697115990388513183658095615137387681176602473090425619325797155136407601070879539962314682347306017320784656790503416833489065359563884130642488858149663190747583060649278188605015577353485735398846891114057681978789068880191164410341259277765860395395361747431477102432120501023227919286121850008732511972485845489447977093348561899568916895073822675308602149826825650000408992301990611787464521905970857391639561706749381243879661486140180019420420316806770258195244878611096365734853518380662708520963721484785958113458399229989506468125898745496026453079170499673628446421298093294212270198159530337279999432294241394797769298606076366913852346810836824158690907188763831794258733111671646970216870715179134581223944240479772114794467697047874146418243348809392236909519940804735730545968126153222013880538606907811209278710521084584479601943912756526980770521857157452936120641277481137758204045297936874685364147862421762226122318491204018527722695117758548519906782893161779594712037607351911464367364296211918611688240746752630372292138646662501265914853990729548474249656686092917097353406837366915343662105987987239454964165565958942434905539775427888124456650247882464414660187024056165297424008863152788482035934408560792659100883172747588464867083227647209107604035721452022821295201397648924469907859837623775732369669461423442663579225891281862733296123225386644636282833672632942197608775493948456955696265432986323092326096373825973513084887104352633801728633564762997359770360761005409657110025681454606178683308258754780174138887333995174262820778100529734253041328928523793653409963614683845535826327484146934045529566968880586174593138102052852260665247059887264943410529918538832908364755424946994127305534936456377927990078653991792961344927970378392226856293240997919708004213653831726641084646720702534850912268820820974986167459354088595638849491029156575461329764640274814170318275130947277418005487858576139757029674973715012007161444446239114393009779667459378996152116164896395802878985756791317021736986092313622645186904747135436421720433310296547455264171927977186932744880135411410651712924714763217274880959021015156493325887432854890795319646105166300271718964347259181932683207181863148277259338396820581366884482562557177946159800506600066300281817552644922756310651063486480643296555286333785535841295449464107639466594470932847550180143899088778152659669437413702557308573239509026733928090926670830027869269152471361819251905797238441179099079383428423770391783366417254180733271942879056159678328376966205301760424147874148736019219014326633251326200309240998375282434157834266583112096430316928180459047117590485149462051618626823066459638759640947048903253374769172045405747082737321145393738755161519280562833140335053628359366966439170107091853640127141918841756610120110337548970088077319389235526832845358891820994524804375583152533889467763605062506804626512595939702759714438347910092062304298185244603949030963164529739770115297757682377900491582521105448522870792681994345257709361420699893511565432286304748899605302583725421043229480825692584417001687584773545712362206506199097317214411602096246645958447308190156705293641329960932838606928409543501545660415915378006135452719919279746469421784424411016757977449766912085529184080485197473213146926901132044113631643782769652047398789154013759403926634288207971215580283427387418973659837935125300633006401089930190030697456522820099017083561024635941086372608436156305341591568632869704370242720711347742642950310002250503208776091163714569514930615027875089203855618330800506038570320807622135120925730032870105084564585806694675379833498053082410494613508747769478112156060235593452335107347523851565316334261669531138843588688456337878903712768319805826844289702548757037139972845218725167077647766242749247461952680462630959983413035143110908073235816209133023036458991392236143600603480492948115756578679120761110652351882111117984155158875122232798484451887101597118637082604805627006019185993582645687594294943447137082201381107458493150120442042686536626646435536469017375836719246702651235253885313166601160553712444944213093365292961019913104796572963089577818791299242724236534217324603447046898481642422302524169748543670484815472908632130362366575070736506207888909677342671719546736992941213496253641350830898817274573694399743770411553597558198644840756268030064789410038067630700283981902333519044455138486466683647004997923434949138927787405721193022586417748077450036477600729205342214396752631826357728125731745811830295551846704101726243663145656723529094614305735261055229059565621192556154457960434870974819000177979473666662733931244886608632115319728121945364277971539240008799559982370424455512036855726280834896603940193445513600707731604824745904348028694319060433928936538608545555883255532070983119562451902709300675564187730008421208555914329992033807620845868241995870376717814583785492751873779018708159343358658500536644588749838529632787107982412962898266551925318448693213714955692853468778906579164273977036324619150995031265416989575894419036975028244310123834780469214025568614666712341572273604845412789574108800343420260622102717323223659939650831038890841138342247605629205635398966845682418441378742457799195687847473923559564619015257453044958137405458034009325537085232055974872607639504236762322005523662436941894171500275433893537826900675797796019868473262504995220694214689072823662337865201448207055445739740776564913182687809078770308338166654608374577790798859709542875239692558639869692992210414849267670476599281659730394170238808127206874673888861461373685710437183185059052792677885545240658781890580871256295407113502324206662602851790058617482597219905533759551949264852060872357933534588338453921101637542289069077056589184896321912291874968624514515833206375368053281709575370021355977511785456117283697309558708828000930620283309386951287897736677225168343110689223463204462089249435710942281846346119444236341722862439653350479298642262143397194918088047619628097466481798551119559314539400837469713776619824721377514580604089062016298744509195582749286721530020684519140156242168106415569144546753478577946570285372301860254226072456505365978480907471365785667961686697722993620725950710401888962032827593094208844918527923050285293859713990040315020243334968329340588820783542286727793293590942676652632003403816632553479221609833234884312457032906194991984686408972719199324848283482659156901597813540293427955623408986728874703794055756936890429955761734491623055805653924515912307577861740251567019255353771881031263031060024065848142905433563207628181432369582243382617468170315578863151734634284441403146171666800175001394743321196157191218011236931578599141276540442083181017948476200119141670043520749577907370671182021417531304127722360992332389812978287290143198519887888327272765945536692242894449404107354628149352164646963263091091937345908380518469477906439038440691178378878098395082505163175626961885118257981350198397241529638896204076280166660306205562605645655623033161867073697563310545578822598696204266605160241596539690729970185147121474476340274319598124160735558786673210617019715494519195672592063351762346683006293949696613842018168847951600737390051883838078544063596806833509522984020842320654945730520578966292042765199184167151293478520117632198265989481733137290666717937739711743481114102626861482062230438062281704276493665733132300523931117442500987284652573283840869382450663888650551864486541868862297091902966249421919910095289679690148287226476163715278559518200790648796177963892453938373712766197848133462392638881343740318834028241640849613904237187555550040887710231676524062702255866321891841062434092351938630893002192955230798058679469649133914469263420119148200865091130491309383183376033576416287985585647303450969228283608109299913946764173769773636356569832056348346361604865947052897329574908302731229689031979351984516105101495222577975712632710114798015305834941436225529358865801865052872010804185510595874972250934631386113720801394808221153198347677357981185904617359414013860130458468956393062739212971461264458052726374470856595132177210321909830019438883908581844432651150720838736913598032345934291750623891730184532706349797613980533717706483967054513958092628223314451597588108850849187321517579632529710437536915876071125124886779441250910932958675928195849425819128486018618979689834567401421947669426220167485233759266941160464851065356076115898109949269083151958502009114513741368863345184958805094200282768340146884694300267507927726981537963998159903637840268201378116997277588305450230808492022420834437888182636230487333695132117398553513992857082857372145870322049958536509013316445067824476441223549994490333689373237390506832610417014731374695526455884502925586100801244760440226685222527655424605158718557422757239630896935178697442730229342018896779178440302946100264395081804050186021594079211016613072264855503576067031285458963118005108944780781632340130078179132367982939498091891262947001278690969343186521610142751063584629231478811252112650518058949844555493037628819362515017885798561878532705683136791748850241948841748205073612884548637305449439966821865971291422583409048000771936437485280224909503976628800271610862055219970330467909608843942094787459249481907880237995058700712069273103197466830238429541582058053594289880638244339792787544841041181973102498378501930358889617560336282059036072817350662835232075864658872974563930307009410075579436420172562601574936230857680552833825948629012656680423417320465295017191055118975950976449259764977764760544317114267893626869803874617179354830731370960923344715153646930666288950708036399772740501412656426943874926556454698060313877194861856452689199060967878056499956250211794885008799349705726675338878413256597586629729331143542743695198423311980601328508074562786293817192166179136485716816858261534470420498352063892803298469552035033383633758395999529116407541038673332188887249982683783568873131539710771502695904264435885810252249442480963224500865395118013131968111248699853923974278438826546594835690959151484544486300252842247586883953798074816319501154516702175039455642021337606565320288514090809160262721979968592648352310916672033899074248880892887986609876302224225085187650604270386937618525559837409248688724289787055260472275479973239427491138873481989670093947629801063975058276757816883089940160630879718287838918738047814308605036421369876394950166644297588106610036963138924859323210689695470912064176792270173523710924320715195995802862254939858423053730385350692903399117844700867722046241181822462514111928871729924529787247233205213862041986075058232044169427591030684557113310315623333743633286488635553234012957118143267215920213726354973877697678967012396751904975770053756279562871397694359572856701642667549795939947928356412578213150250113199583512338615077426443458406615690914882958764127294225612861739223289715467865451130396541389464970808152835288423162921723825511265701380907899749621275652747911964593606370553597201081650439822888135892169515663993779396634929069721866565254633136753597299373934029396799319258271770100896985747237269020195357534167137437662967890465498502193963500752067265000821670174659516399933335950381151412833231464486938489334750631593077752079355181396294592565302830783289337933334123194809781017936622527041665490888700968728934949569821748652776002347476337245584743910559149545072256412474077504505311026802411927547138108646685721889962092214369537548751280937837410506353177831625374820903947166927652174647068703578802572115360042201493765724821163550647366679360206534958418619363889363590610585821530779696628319752539015548962189359225608974063029677584924024110846728702897956302028800497800520782106079030909482320331893401905846983497075853555838056001617296042170670963785153560493348925502652492315619389583017325834894811333378537633454231712728122010630553722414543748875009286170281878144671531091427556366324965040681388857198597724739484351826877266068410694192107379283165858005991819774214580344004808622407203027164181677228596966325345604696879179599069644299451222944822248327896596238416142832431732443323318457560831156191958522075701104509845601585338957397212238623640181327464244191445380671646433405902519237486521609290518447138793027338263402381329545739803774512095440503519987722766346512985475779861239231277882476994402395395135022250621722342189962651756694615933635503412489136353364064771822654279195616481446590376408715660740529120141620206986043857407793240264446012463015823724870794591503561006185477867332645222385707036881507747451211058995428610001191464464395590542202834211295313391518075181623558409435871206516958503788266932950707999658554046388176323332522983562893546132938412612082925093036879043446358582085916955676156404535174948277040053266287430453200586498340091019908576806797254394466272430408009191724690391182627800620447176315946213303341350215736477755229644622773086758274837321782726642147249440374189004099379531471951332812575363483373889457152679757942831198561608956663555368617827372210144126332550044736744744864726519826022644699398970549026793200091413064345678777120857031300656045147562720931656779592121353937763457918229209131938944353636172823774941741904695275771533069847669404143510418026630621715125143390901085199237684070170059198093027189467773712897787282626267771611841008459477993006393180214704190232861803134871689194157899781794495580705593855094640417068284626971451741489682699708850202069833886282656454498454377876092954858277237353707108381101907570659557231331939698356727154816718538892717732933329591886636389354345424471359031577567538083316911163524338218782578712677813525065683439582483137558185045671004785479334122453849331932219182948747933384541458263032068176331872812580168352787559698012865095311087365234302047438325391509814370012188697884937072471101923651488541135008545074316938162619443074647226146123273421911818393733986851466787416064213052029448185068306489176432933878580986621216301927821329817691484672721076480108626800147566337900905239046391518053298315871387318248160316943252245801635162126324438482972918315769244621351597659888725966184802057035939946726458585559117387230120659663060007232642571921857985832488184754979059158154469745085266395459986980936275705363445716453853998960075571508509270401424343263190044843684624726970573176062337158125115452177736402068725163357111429511830528094159705028697172542361594962112876339568032790227346394112353994016344033539211749177491829312979663527385351730950849691660531851445372008377308037560404750741971265648094250766088200778713569740061447135765685476342366154475156758642689761673110922683238177639593581461609265864026202479433811335982756668722853583388142625158692044309328701208969867992975126650214280909578009529117981327306811510056875936277315935562867001212677005171204485981011342886728734492400491710146893560724922013258775646864025672331939069577034836308343529741341975070468484432361435072629709907821096878210682845578115477708996116988783070814419410291763841386510293156554673094316970706934748234891893198415293358253140688175249106335495517478526143463611875440049427140990422230286163663984716984984505568181140317391539401388160735344894905291557026506742308716329694249826867081905820487481418444156478559835167550724877248595138779074694043455121413681149011532021557249778304378164818995318992989268241440601294007457284826577646611948424418692306495202566260301015531920613431956157098718045706883096028020090302533596519828997237905462854503619109922180828591232677248837607709313372448159134176483459762691164860414094910560614985740557709460114080942802695152209731758556317415425011281779058516168253318333440775872109816355141769948610183429333020913806177251578768801348509684779498299571873372564525122266387971108119794982732220871267137592681403193456304483487930346450167904844991521822185415446860218340688147450691720569900231749774309352984434118049221552219640508089682805368248886319187638482795333407928364922080758340211758662959023126525234940912257534934279758668175489705159734220734268403714409802345319977151690947366574074677781814750020761497961842507393604871166512971638755080248909906003217302448976192956421546574878281699653680970676845935733796935052704449635002600632658280215991904326318779594055683217356103740305274462001914540331867417106565878790955643606956753131522733057224190199294996936467761331598772466836845442688181973791675568589900145262577377412156594540369538674863658807995247923531278802908850662727497367110306588337451283996188922288247489106394394457995769380354131520052490280728968899077168578370084525431135149067969754069782711303541471752726335606266856505816739432555697172534501136851325048119479399094243984059932151642215588203278830587813714951685788755900195624615189635172314373928657620347656882309857026513249395142322599804936912961001202948188673621374467471654210858157787994321808824560774129447754096552720939423910201718432178797066334944766829884499673528047153620679601984857168981769188174558576190562711484913430892634611914758610032157005008895938187659373523598582211513707858810684333511562961044926471132032604740722477309591346021366960680491604960775753730909136095586848816743255517475960108885544202657151067527202765624826664409580254904620092052904901283397394414318310618850494988430672923365318670446150683492965760435013622197261721592624765252659072054771210445161705835792118359919688534385823620352525183122434030927272395871009524659369147025993641952029377434740048507069170272675806166696674168847517918943165814042777283243705001436654195731373415984989934782530678500688091459228756549088430960572534929433491834422485602472915396710200119064485018287005795381741758714785522768274656656490758769999204317521810110673801616247435433082723825618141846490749426472447781899228041337298712740337543137455777501846973098062577253038829264434997760430488705064987438736096242599925651193493814013044959637914168837831751736074498867565159224969146951775038849215806477594409630370922251289305636613459751676418062269855909219284382424049446363900078332756613568838709525551166862779387493904533615072954298498068055399468756896541003011251072198996066793238356261507692737827242501654917897902052296214392184484814304115246340700394151036868324338198795818832013013363345064328785558790783707897545745566561019385249470061098623660281598824658182791798026742704456184967976679902351007179760523180029306348727036723816835453848990279600222004809195994375347640721184289635552053658993047979059631765756656772887165420558114387086458090635993457506753780655725134961358826743057519707412361913851796035176410273097457290767451501828077037797633232603615017682460517291169693277223662589483838646041569314606906704211761325759081556842600821250514304954091232384612077888060012843717063616196535594916374333920468096479468345432670961996281494188626112495309956982444199737337978864515232523566224638166920389774156940373882523108746461863891759139580167297744835746812521564429833603792327250985927271248588626120865697488297842487850880410973789551713584787248658150962527981589629337620385723717542860694449196845717815477921860427728056273321091043176784375347740099060294102732884616125624794863993561852907485292091953983422160377688309075944839658646321137192473946299726440650407007066358992662876351100658634814165004633616310282610470876041955699836693843098877145477716628376231740717767365821060128135695889244853449679612197426608080598599166822692380022346342408610378702971398948177033730061296032927374999043534747029510190019979298685538076423761587653614003979100682921344447621793377100964962136523782563262734035554114683139944529710454747214986873579122567712927155147411777500622287882074356402856679980104075170745976204612537403908750454495647815294190546969056932162878089743094252202492371518197673849347118488319169727956968879983734120231846593910917816159375814498158743087600791511596301459202323958740524748289818857432842703017636121416835476589230683753915983615195677281200405958662048532723260261430325622509008137088333137808240554205060305515373251983205027698160369751274386746910117017660164279462713758034705755400154275828524194894383401557478331931470084335908897201452441698178018749281249543857279738765875134752904957236086866377723449451248326102084620516178839727376723800570661499022154518903860249503467713343671661454658155210863222065045778732695066991430864335010004185049386530739708691006874281897681880757183311119924316467951607907724476103789872184119107360739334843568703567424885905227110707068678228802192931130401525215447475322016356832528161708540021403425410507133806881336418905639975179487906377099369828911190947361708643333154314161948968578902726533569728456855084506918973745115574208930953002114637847506790264250830875722761943839641390882601922918895369859970759336863451272982147215371014253132457820049298667405766358758605611620632816740573034283809004061606348675209586103642005088084218241433673865172111716554429547778143262989934879398853347741522407197316088435957296750615326871704178551343965223039556627969338429966221437881053383454835571077995133432376296459904169406543893482558747963231316193105748971122100506012200136235224355120615393125928651996267219414821721460881933746815168773570194078771915653605907602778316392868012459933375910146196533794099095958432842369456945725500983379487541165043978542922568301214082020935010638091332233135083265887800813698428683146931144117943104765811547093826412780442069385718078324094940552576830565761525916646604395728481683821932172198443119998530049255043741136880490531132698513966125445981262275648967516577992691853175900919976845913270067629477090789478922101675785099189802614195941779085544983228927612565392007688105185618069423667446745781141729229337105456002348888104436436066021551246391900061373531664189102900939910201961836198236638019798563670955358880434491193507095544998864470610099961870030938207734213064874104513995755134376695349144029444296711277027552119002790103773350179067379535339241544551668269438080514759725060262864913041709767853614343838876824336158564431558674780376645070663825738390593809795873637884873847607002111726283216886232159225487192210932585203782305247863669598473860436589209476990779698899496800774220449324739099654411864195446279208705579187767291856851296096065088618684508161024875893422844428417169926595640682836441867099587889811945448681140338559418220281694969624608102558447739535449757525116281366893296401439006295997640919076766246300815684152539198704504773511718434012085629664716625056391597019586225191762998225468321010420336965594628325821744293625333442167110462473589927249172560706239872496832664542833945126705707210718685900134658310514203983320948779113066503747309053317415401782169405299845887216426717914042054443115712920481636256746607266208235204489938305674882545476992674729131390848840492872745545622505781377874598865903315985318619241025908533487917879882232725995634643121980870147251162529281703021548302526507820628058974851318822168757025555143164970169040461620849112886051552255196191120900614309140247294282456683038898342472132766787911003145250150301714418428327718772461513143449502122755202813418805370549600410154308132693735929013518600815231600018726564310909523160772681334643655125894930075393850951901127391922161087613145444674842876214572902606798215658744587985362138328443086044975239471771468034157889841198010073682058924809733104157916081518759933199810552103381380442134430824904037388089076245626591147909967283427714097381699545198739597459247172280521145970590166103337344033446105677843277307155332890531888610132155601355379296744096579214743263573576740240167413608661390709073085337671336307476643149607249388114729225211752467915761586607285668889780494400164440986310301035317758751731518544195489794869796840693767554215193315688472073257801003621820278176242199630678827993989417352104020599648202540397598543535146960850093330145396609487867505374084728535672952825418557338996722497298917058019804849852054478567349975324542040251113644480684727079561555879694920021920494825076712539051964783567744743618789315314978676219961881214272537892662482105282349447704388387626643073518126637478714523057787109317994256309979063558799119934375447077187726040333410938197168377118885090596770036713014752466024505382500061493819358560960487324364104798492230843267613685786284482909332505771141032907797258605571702800920042887804887840875511149245350327155898153415938899531720078952059338307243201540065194735943664070661795921799840699577604333865845089492066279138004969802659454344061273721176992716290772967271401176795604876900753244719389344146021881462861057752524732511656040960975352416313578292513374916994858126273314011154682629566859053598464087093168194855104790966719975106108614584277985971104928115544540229941475511880324293217806919188159583574760977217897012010408944448681509634156729113247532848672979467818465039154772972148121150633520774786282620859400184846107716638371697662346768739629752072246619095937027697380873883726736979204107493231831416233908475165107133798268982309103310251232239321159951255356705857844854965059666985935079357858477012680966979522412543521841814888029120424050460805580430789019256955391736305951485386970216539761704187203253735774059396612742724903077639623213795649847693810168338253984115970395079853174729359477073260692758144727241679153688989890772326535798919429049135519713990081295047610887181719009756449469666917545298607551532633133614167027750658526760869863841326851515629902259867035349962370745207197622815749612101059138057106211781168445286733726558906361390240907468895243487201516201778134633865027849428493822861448710818308267174943765438520055299044952220523553663298173193331704110917802237418439357541847398382884882168195020103135094385294449713317021624737359010074059794762761146858715993426596615893280507526086130347131059255291417586788610650537579210835476267910609622281872212595447756440135664180562737792771344159618784309960899641285936554732875434490280329169466903406561345839285065045679430843353994223255019096454422908789112705738892631347978807189893752826166393658684607958893994958667504142072162920200040827654202420211607977099686018001969603471919621994173990691020878285750884775930567936840655698140845622227821880243784580092245953795909742724175534103179476554855658607860237264258499873906058185151235351152997586580319179349557516544831220762830220345377782108922259221901213959632003845938279718729239265424122936242221753276257160651587596828214890579311370941431881655277906234419397468079596487872568990782703587967620474064830986446590143851052758181258206652299178705344132566420375190528430471072661058949115002104967444615594328617542237192472020239244394184253548881251202717952486387159266184331455733673220962515269533941428598978459633971331274920527102200565683829276471767869770885737972293361146874634068272362161985061711262767315926083530421408612872969317433872186938977171018645374872242435314011614679331775023912732483010215776315171984718706270835051919722669257235693173754073903556247132378013404893696936590304096321027289683867332680765676663808740330347966295797616791600666811959036774010135612538861165128350759528771921343448322334978192335135524705272537109147153512785792583557306527638166132859450581207321985091246951201652009029668939721049938369110173336945562727519740577135713565822072010311019688146876792263442407876131787683067229979520125824818370176138333743921376349504997154805535983771026644514160667088990701088660303045518091246680906926417016024741574541261452258939405094008670170119257972039359639277586659894844782774533889385720393173883282655204608776276257398159146884107729266437046242993749486427191143042271414381155746551519816100598871136886974797756978203460853893052759110735333201718601379982067169600862702765670495699339834401222357114145312746732030724971396209569934365842634757536806016070601143601700444863864084557509205240967632027418450367670221829655607486926969455105334981764667721840502771411206573841226213650494643291056330031818186889027382464178022198246491759664249690465986822344725419066870851043341024846827699775614021541073154696042118985490577121701510592631287085816244964298359250177193059836947368395081835196362633209345343539103997229266430547689869695701576998865287923278816181096073635072172256414885041947340985262693222943802849844421749928371097966824579441781831034712434173989154169700865402587372024181933509801462809611665246977237795585122513835020631168238183369460202610836540613450204263979066890882014544653282804544019009445517488254103256684753187497434220310409836705226178216032701152002755565828891785846819529634869894234264977625470442579523664236844390576245449832184107566652392315465807396798182430870920816172008156846552043063737351319357768350365082817960516294328742413496927527737207861409683044153565329853659613327231256966153821858841448895563567506148794888011863955988009887947153530417376460025179704647846585753642675890343844888279112064597960348853891238492190017681069261513894149790206183446637888437843970294902189334387091264086050464450387655504139546613008906384737756592681038448417832888611699542321724823100200637119800379989248675721838702856817344794753170711699828367514503381987437715757463782218947189994011892310160185354941151046497505745635746660577586608042603416131871545790508259733648774215894855908048573353573152477615805233280853090746115080882220749774993050194169065120770351244900248921691358313268840090808308098983642869295030117719117336874620575198590871475455074423171317279454649421150303275384957403039777979849068821240632167330826476448674882225636537245744971600358041975014812028989754688385592086905454006708777829895766019674999996713542837261095131309971605255808005088986258784029944269849471785194434860878724396590298121053335307304197739805634583800398106273399930091953497195138406088625297518113564836118952946570235720475255588921894570481136435901117699425056971429975807073611516404583911143302699289518205074385731054000776392506263775204111523900838085558433996166573719955590143249528326478510919651372607057081044181627784087978379520930520924056493685510951697555880303885392348536035870175231813828200774833980742727262015717345034694912712120897744923223893717451304022070262688377711791968684248303222083566789429079757874926411811894766297153998933523759813768407176724373704359381963159685735334169178298017285090828109973995195206356161843360793119810554438056988978401026490991931737058704428903478189965853182146964235379030639306773322197655063838330764154393346660743810271356589530301378852035255072852566018999314666999928373740761580205035736618066232815787573748783375888678650349418209256034927633237664345241443604030402128508180227393386028704414287151877523519531986353150472578682863256363337137821306877221449713789478885875018770465820468957924742087670190756523659932057866001675145593507664661676915768321409624924468622992172157891567449752027602573819593996781491650712080768201740684877798581090033288802399284206210057205277627746059729944551033576638248509069130206024257174649107193341581028989416104197399836802205306048186332784036606124109671433732276886567586678249607124307488878646710858244264321044507520634047193155428878633540284674759111198503778395323229165340118345788055760705986773710459378598670210425292391802597202468426749987850782093371215881950394986193899911493425127051796435920141102686117296462839655009417776084561983998853532762444268508025040186057191181203462387625986056741152525780692229752045610523030984470684981671618313904878190217739095405225656354361512490959874907380047653738485232679696685661906699324325093910937333859262284311408024874558691808320871425428890120806524906123831497953620335599808122931558233346442369639667778216797209442500260650206222753930999729787226402145220171580771898719142206112489781687271620156274234113355914245128043484556636022998032672770754907271679800228964942649034348373258010690688576707601193473716602657560061634317379496214295854083978130806703145513201448634455782371944799918147830563701953075520788688141888191229131254686973368639196149620682838730511593952203412714189197034582050158373837526061160060942495460526890215577538655074789344253017511845078427889023716996942792361463455606901860325746886352416593973477927424361522897791660607516671019979122366558924510414609558987447962498873195323390490698018787427612361484965497292918461134717206603859481967720020392646690372747507799847274537221222409558194386354111576236039191115753051028362981643180904180553100303412338389519169189120904070155957973974928300631729982153796913231798188814554795172797007110753576776300812165780935357903723748894175754393370090096386552560890093674268707354169243183341791567145571292950348418404615425962425849041472149072072069933438167127786693571158748740983861085933743878755083944800067139664966929029399705744657777593849946661523660660479943717855012719990074907115212295933783947358213490752325528608917478495611342532078414061471505693236226310826067083026900725612656997029957245692878385043015591067754334029352820385436543689610151985373189401564085569908266324557771008171186457394654212850387312660746320531573188003718880897488926941264984837185428451236142445896416236637549905220580259424861173158924556939264288373308754556928799559670157613183436881587075811963234979900044221137080552688982552889209998967789250112024899475092048066005969862982552019763383501126129011442631570780448988163120953076565714966556102364921253373329666150444304205752016094860988950053089065592617583830195049440692956308157007823436357897973550074512288798699274213646088256798302865607646559324280051631244378564153518078016179618951891881170474123552095034207147345007172656443896794944696869799836926695979701809559077538000030590830799153700526458697528086276660089721548815040759445779745584897435895052825322569613527799893173998660781515534920827510303960350584893176789695637107147901624430095129358577213721804698784074686848037176830061140823681659761641784829485459210589966167863139765215098002814531554211129779310887453846472223293553246540176938931301268486342165143001787529264730674925327039053741048846900740986572300492266778428225063568192588356530039414372527205532494504189914911964661850617236502110883332662398062422999596348526610413668187209414452493030053864224772003138142610966285523073092894817614185367818923375495698218615737697195374864260562385026913853062469387223878652553939489828857465205407810678248464728524192454486078170863705468006497174082074531804754272112750348963082674693852838842456581710883657190437196100474588410394527856423432929969364951960338157177241967982750682752839511268953858337823741669855845269521768356154178161598460761108868521614393906973770019432325092648451781309436238482418742031376049916991632520331067700345835314774890497244325318132133940580613553335184889869968510672412338648315039019345268726180391170153719826887290826132816757693689080407167316004607011425702487252469992589516752267097215120172204909446744208067489611976379408201540076931521466508046379746086760662270448332644230545533124133799670542095053211245715358493985560569844279791635138041307609774489543482585331658233172856037593430302211338302687678832259454079098086950906799814368282417411455733415177740001731866543270877391392053666430233682146721400693808776642242679637980788572257516097898647934401708163366380917779647081548982114895334653702832444696918620178420533340295629881011466050333674023899623214933121155539075954875768491149911848515553320317569687873394507967165268379232770935916905628635521726744422872997630136026830555333410005668238978699203611045549933546201776255522382204465630323009703302158896211450822650103178844259855410214483484376397541585341238031822393206412374491053494871372216570320794619613235591603575714492466116081627047203715536834513971592361772217567256740094068721870451731469537790018919860204073598798121986558359556230385005288838299843823279490188003297225480864963924505232798304581882721655778826857643791531088142203812217417128740044932006235778666368085819416751610190274031538454557293009000603459314149465078183567914819392756637147355872969848755024175516510032741730537677610127652924451361962790012448968158802787419648190083250836825085737085433881871024043866451267534642521151527097262765746957376929723433752672844753882692594812501622948839635025416864885183426888098004378224902447127189064007179000146608454103811558369787255301659104517788774841710046251951309378638672115181776021087879572809832020959637253246667782721514871695551708707784940568555613101559454202538661928799581185216620786273274918446348286139608751662824458450162018691182988737271251586776851335516902118245966935978453697839151471038428820837032167779880487532331198488817972801036975410388327909713295870384038553028519065183811547924277122755671329923930440365116590716517419435934419534918248350178288932805488603506739591819941034383050270200345611961530753614487487684305441766710579427658202597542183244929727875653402368729782647500928765477219335260163165465853200908672913073667212137041537930343939781064861087157765929679741238092889430220275804928365847476122456442420875197128754820106632402991101430836970007721603217105972512092981801509061411831724927812714403522708643214589428343518618639828257851625940358970564459096052925202707213889700257010318362688688169167612964233536200227592710669498783204941590961013747282955115240588844371430650375236802996481794372847383649557456140695009175111986662051995251816840830156698396665433937787870835710319822746722500999428276081447735199942813997695207076956159319012874384373894984810145529719681504479752181426271576523415042313660074242346531130560329670107861940706728779001606484870751491800930207159015452016505391500650263062340440880906051563580641646390089358183756899034639314740178964821334268783517806869173990402042064707193972588446143571273768541906207511405624365015442390579086921095574920662463270081429305890071312702584936821717889326646427589909559474111268066501288535570092236416912708201479182608059182450127927577568852039086521313458516307650607836748993106175993922040923992708717093839100618203287015680661999736358436875698867052666320336743933621833318028189886300407121257706286044986658324300495075650727661927813330761765043411271967059061720254524807587644829924028365011037736619732680182985212447469888146756868492626195404168052613441344245612424671985174674852104660594842798892849723284739749490314231473469392917159405945999738577799267936586912139526798002707086143233101711483218633663922264875152397954322795348789742049300256638313535747491286544218655946098704237280455199201965318907039885166033631819104199369499567563692778480633536601905027670928194362300319217217390827385241661066756631217090913180421352497556275687491619838362392542723219831666104737241379531760330501904452704444233602903143603820083899055408048835759516165914765209604786249737100769510447827412130425914358021142003081774945745228521702365562002062914956933091632797856610514186903561945108483696576720104690106071192153025371644936121704680241841901079131141830085682341489832281182717966789386357437635368461212437898886653171468700340272002921341685680304035266583544403605448683611580565812334308392232945822168510617215750284360653037900037244825921415183933768696048093645003269756083177560755330363762894828036406345288971390698020938108672709280765619153142521750626902262767068087412360689736645184438968606819937586906155306561231122772151139211711676661715604251135724084442883110595542256744871944701315520229382544107256827486974077466842755455956264795307500679560368133191643921269316112821632093485508801179588368564425974361792739021035342640897709847678726333070540693683782366312886558340135159472859443175928275850818405244223277603157305605160280969248212809712506407327243403900898820727913174136462675534286057841102035615741102488230713962610460694583242508332248803388227013740283523860643481966006014911136231121016108391079908952425960269209634052497855958712598574970541632770049204694431650111210627616667223243360522458437283692243675993910620567868447557312559173237578408828217620461672098497952009810472223821993382098666296827597035397858148404398348692174072581601147521480900341932931572306831655565830891590883189780128402422417990689624437802726177503148153308322026442881050777240298961912924139833819080673083271341130817038400356761434589438515387576740405720386389486672433264678392999647605731312510083704892285278552633650352813693731111548337593668420152728340888410464240245415085502317544703719847302444317936676529771266302799478801994746339664658619765771784506145789664291830342145611253474215741142628491885269363135825097503768087419883854716129047005841867492627595491274319597637777431328294672984774695367994951862865076703551182178836552340011084402539040048839207893089713456138695205930494272925789375656465833589890759514929792008878991166859413709616012713522662890765254275255220061721707352988283374834866645265768538259086602997310859411279506179040362838279001773853900825661329813994756198121202755684145341625861114703114254216465160716621639906683579984272321454241967093561495906758941581219901119751275098346508397233575225446893723120319578817431916119179973554637554068731754337712417944374789701351492827001452381551445744754615444843575235705142791000629658160387073018198526298470084576797021494164978065620803857065583684790134522773344614310040162144199695414294157251794156126442469051986620115858121324714227714436331358446376265904762489623986068414591544315491737980239635769083937764868998782825720165079904833930395069017554044119400286800254352038295070296928343937204926814680576103404418173247965761924172913892997079566816685174717260371660725781744533026652097352502717036282581635896866223705079740139469956052075417405050051364683702554477143622302395972025171001817066127551663503920904718201236299015380194507389158308511744680901062518342911330363928719393093628947631134372407312096640607847392626625622887521454323967022292755855830189290485152628993342210576369356745219407859731491654724510539877163537574667887161089489510023195955320898409678894495471310758160867946187682646148920838438987935255217992817137529800038892095340708086406297912733686590916459142604235449216969360956537494843157795732108362569538576645347316140442078720562861971054078025822994539552155719154978847102091555903661516856503156944644363651182650484982459432095517181594475735856368774512898967883687823027123171607705665203310151481529309652169138317545954940107214620821021092558775273752839423930637625626557834534148643663628293563684133160382140432219333315715230914467898278867666267352258177294576399829886100815588761285264460289450693639756224646857165364444712696261207622164052948240366938888826153654437652040906827126319215849935183571178574194469032090325779960817042865119165240160083296986101349968319251569409316096093320159387849820064340320209374039175790035886477685489773870936616135708784465808202209038160841667294126270604704576199066402497072864497028334464022013120963776982450931566793277818910911139032185793094850250106070419409904709186812900093307251799363069763587601124350046404900242002150768226500924462951262688468293455173288392153096300678197344174170964891980737987271085239818304920107886248840848279984637517143181423116045684020779294517657091391072605506312793500669452905859242787086136537232384581482538321718654469381394921633442282366347877030225132559540000624527551063691462478315156137749037490610527185927164248933490137712354210142032414960796269748242337746058602241528592197324497217979498143501269081558165545885763307616521596544002341358789446307266944397272740296836123977895468292809484608955378776114007269793245586390225506299709769222557322992424782214725306366281587949813101353595388084952826466313717628513492275530600411358962713971120281981399296180053346894918033993985014895911210702668466817335289945803226550979620010469901108077013466179149387863621344313291739321254672872255447599352981028873126325566675884248879448273961420603421833316750473818876775223356022547087126225347188874072938196667934221477354227125192238598759577110518520655325218147957430135015142764841151803620653334336351386655384709620260442794084583268441086312036019499390500660986531964772225542010961488901162050345458671729385599785863865430003190764109888563032739646284033638060259957711195572993135429175845624425403208985792754096523705816344101767304678945280464619210488948913593213520487383758631074986439871122320169921169641312374599105091128772128457080640248935833110134252237223358121323099991194013716616138847615213487487896219578398244306159189233343927713014295091708303729708114787463854402844516108616302604548106093609605112756525089654609604077264251996209033509621238351049757756180671441231511239682647073467037339103200767451742905307311573269972184265017360287525913285964520948075256216633187330595627244536048744104183819393204385489947111972152851770779554778298128487584906153400225694037849660411700799434052742915407865962273622319424975268845909551549320609871787256647401297772070588048013736439328391235465852797291691894000276349642508549442379565734484497765242307406141298017259331661941142089260320482925247355488861438991565240589538889818496317522083466156823063616065086377822412930493790346159824437452996017695078765540498855477299107799850827205705099352826951664588614492333157398170369482255974514167902512626484086994290713980676809723210925129449877107892006726559448827035010341526292697903401662583757738636401467968850974358790597825637855514530656347507940229650497328336467588166075047163171951115168186290901809296065524868630319515755356774288906776594711969173737102350362641874309883381265180989263325346375443492096546110943889481409774267831397652603977697483757152564462342765123609040985251916412305262357709690653612284429144483552847309183531016910038501229921971084312293884891571407597503221812295287571441319125913563314275020444847861908506489018581080503415947543488167595153310282213940540374616670684175135366786360282192235629085456860022278424381420875352080511682307050388046962181881664155651095719666624287620597577010066427151252007615047081949298820248351114439093377805814029821302391973813067777126480457869841680385797135892788484160232494628455928452274465125983768380805318802962111062915871238365682337070692260156407347360058960073085728282929630162983317402137718245808141245724559708908364782683625008740721555100357336554823165039778085533472685367626255378915184328619521279516237310388472142012200226279906408250589797580360113047891758712292247661322712669509415828189326187691326998536377788499900800476933855355371951896033226341659843409703636915201105525948322103392638857110796022788918345712313093725545294790961263572685769044342882853327888075983804259737190261439175725308566702621734382093014083017414555345539331661559112702533977304778797422305312545875272974172626440982401802590601053848330506546490681565964129317630729735501878762420351910071029427783810367705578540450562147268430815770111559419990187711323388295914617486926082402149888277414841950017626914919426621562972673763496099358405489066242944943546022764372063851217046171334160597964315096409030636233796897183107407127112420192217374082507950877613989803099780359385859796012587171450237118309834268214472658068367418651131823630219314921807566095023554997244487870186880483554623692685491099691242245124792603170700365043368698729309053194611970176903366918302875699174622169023004090422195467576483412246412214494222219668150610057064269355806082165536312332063437259439724754761509182432547968922518802631479638908508483369948408154854650634810560416378787272446881515515683593133767395839785408740694538076183406423763064121038348105741342207813291444322343246313805989713472611386031347419496541716095202704412348067368924883317796416149127528221795724789616834451628214456290159505705674790355916034579683193236336090019120203119681189236914660163963841013835762867471759468376461752192982111903856955362455605994731118217488499918708825081380853200049958565764665999606383608791867111206730217193929144918186844315325233140254926547942842493934035998991475688525164849229382008573225829252963423506155748110839317984458128823860691133904029028123906426694614389707015385006596004886449479294468332085514461851269162588069051094863031075951862089839494041551388860487504293774915617611427955030290949383061369350784175689025310565027481845299183350615503676071974997345983957300490534380290193815714373757232701867621006745853745391639730633900229967592741275704445449317559880282751109071548500801186245061603016780367167549884750129193843867822094307549821543439982096916772435186263524242951480868777941254632637939494235973605213576245750267538139898308135781192165316679297269194214727869189834777029957641404115033296641609336139953989308121475642243157530656030174082510482075774202638264977371303541149528432329443686603308277535943080745926250563625166417498048405050821104903426642602801805327924958576610229449721576521937903304286620637682933078585771854471510997762107033322617909718613334338382454289618375149045187664251866027894854042075763679463454098295237565208355306506615861181424401984615449413858092149265750197309131751669691063093341259219226134050738195236210053480131589051681923928564723377422049957537109266671087508534755577656770488026700601818614533887497536565297291032183095624023058258658799697532566434604560093731402483868623472731581963134299102443281256150883020194556681801456547844470713308387357665662606199740510836502726083193974474215309100549292235561214847282419359059775864196030192754327005299039174310183130928597065129920571924745372119515168481135399222637255938382318275730720192582034423696952419293127285907861322043058680750569156259216948943048110571918689184869707975843009439373932854692112506550553966338151855490319150169608944138022644759071456087929071283048950139897775589654630460026610344228868279656991769681521542515830820358130398562265866789728382727272648197056593858069387778025877039638187874119360471593840173305842834126311969524324011775551157584056971995071900320258275566333706763608760506420500029703205167030154230655710689923846988202030991036442367859279733185008326238216188186227302538265273939228874891570306833970301296980214255732490237929138361481294748720624915808648420752407362784971192564392749467961765936788737115443794118801400060149475888046609846352401346568935747284516392910393987874302379046177854273012549778198424014856172589883883264417997766639852710033083209552839467179440347697182476513475775936821515227872413578808018656550326465184232339078831537873690495415108192253290182758965260556984341117484053414588286174273975294397156460095111466158774918022208865550060721223988906496532453240953123922168024393237185249583433782460582642996713948395631268242879275685426639271173221203244535546517273829938735813500487151697531334595678638015256539040500229201218487880475604466479322267400616518301368669659449600339603220512044533060956447267282297779669982539106722222724664676343198012168431664978509736368110621663874737537106008998185839831627401617937961508688526540621130288822774229373458404087757487084946888130445712082522932624975514040584424946986955018234855219001925368815559594007612593253881217546074036503906591537382295247058000407350433364223148759798168628031380640655528611318059906494544315202983430133889521688487612604655969788148288340997364346721685808697251650708813415559442429219096733333183874034009607099814641463496682772035349328185178597495288527970130108015782527920060971854135047293381652846938339820487060496415636744063397899510178959237147848811930824549658275591221032711619603544092993600443961516918005879136732387282880375188138559105322929625707151594681405796903217581073219012067085264818375709677935683757481325192467634892092404542314046824528980018177276429257861860171181627505070798912630844548462970778297138902751885142590453995237268308347931259989935965605698550627800527246483769236755421729169138546229216555044729283246539706674701709945666946586937411934578433534905671543425638550524474474308312674701035259866386037568379405496404836823087398386457808162786756071977454959594011427424574865943265410906627536718221668688776518265718245360345099877419989142281881998938134566355908393702478074649926911082113925024929433788864784415043999584918756163228751849276573688820410830429093985729527768574623300513916521448085437716113495237739308712367867915374983286151587328180469753376638923476279471873075046645646714753203566488177517553534562119982562810562550345616296811439488981224670984215451256169453601848034615035428836784885800208140758954495038582907241089363719883824725685767435884627029262257942657943396978768219153694936183088144645586695851607483935497074652661592790814705529925381911696990654264158393706743976440316624009954343742960883014173728393789429856640098209546038700230895358092964237353208282582630790708544901193494316286540310557621193401739520807453516636091688661831491573104098891917991129037350392952504765972400614605320101435240066583226275343711168569892696615113882421449472634622438869781609883410755815782934679699670777086877910753367695061855810456793429870292759408423652457242722026903759641704322549737826068845833971389645150733283077358391907303002742905884122355698545948081794665253821702824276462578884166802779881512161689860584646686488081400905364499939272617758217360270722874992003179529948740995470014259749612122781390253940367968290962766125057467938776978767995573070737604949382698736121917393753473915705221307541738224378772786649630324486434419573884083820851886665763795353683362875014816694021676408770793072477214574146054442470605226692346657330203927706735949432377162731275284481904377091056033586721259022430880146290227355758402356654520007294494557948494030239040910406562385662746487433052125700239664219394762735381627511603594512219045571468798897886720277427074476212598999630554873704539914046398867788615840744748860185783203501945197439332405681538561950081048329697197694055274844043568733150474561265652474782999945981878666365230694545447427273499401091275371296088496461320891789651498518816540423031293428227387588748269003165443868613295650314886512148013695335226935641610300160045641603773583038506716202646060521309423241159659730752602649069348117475071461674898508635523539430080733465558137456728820169199179066063546425935028481503524171984045767930450531609931962287183957080832509459272363054560482783576079794266228156780766190480550320988303166496873360606854277411690745251723951412296118992264120702306444456820264247476626442191211266904339277388197185036572866239753877382105865003424085734934067677504689455104156793853847758109078794783214444538372324907628023430042548085698707652219099126403245718676236194418457285644312106539474935100031115394223418024199527583216833424889627645228870757782400319569674826811387632683443832693312132262530920176462922886610424722438997597305905175503007407006255954981574425299246639660881358955271042831291445571382180523113473958213826566706814707652978861174089762636033780666629617368191768009660550442190322478265969666518921158016264468540254263352713805210274842600744234167750080354671289788583586284549598287506132396732979012562112005123352805716531477952183146986443246448521162393613631452475749103373469961446994090932951710601096334964176381553806955028562439154203006713455242325730419865094738067447756683227093155955015262742786152478311390050935547085093289503426685175114105549982414039935543549202170363117519351478164752392883559379322681118895574624042611830058317157806867695011888572420090086504615956804972143629302037052133332654468938394886046133757902299571858578502203422047358353211925033121052332032226359843806457295081356773397057096063144205923002908984747093426260073901355161427247088050453429233537183519847614014009450927701912657132667835351234251629937318139731473080150328837809928168892229618013081924612266922255600462764024311514773007340219695190382045485184242139806882504919066981901448146113265193861316730374655351465923387563179275236072453466959854710102517206502900314701577821430486516922067407013822900656932806050135039034356214336137068319571962647185149276293752027785208854796295701209634027603915577901672106233638813964120615652263892929763385867294697829258837448226916781692023217642421909871550297771585694478220899469255346920076719189351837070461086510064386401311167649602466223699127648983986405658024961308161561939613504034576767019178769395417273013109845837820349010859659205013286786977968543006063961470237167759566685962038846911814822034134384184219583563521874239679242263778606627865914041155030217292101462666314873944366994627347787159303408710061629515988143145573794279983078185271741170300441674196079772347327974156136664943393284423964211415736655883727803254306581067561333981231009382422708332177874942985115278434894202864784160005896676576677921589141864499646120351747778479523417001946995440303282429557583971946700867925352936468271085212621185988875626688478427028376307996585166670545193493558890636525072865072592437595891027361811512621402452941140126672205839035032296194019663079846582985350844732457792883763033467766971331486654181253741032613395887011613524909999891684493025435566161132465887083723484643380409027412320375421319644957276902372004706498197008669312211439556729221812364022958170137389248393938170689238909270138794462255567233076060106790798652650226936582712062981376526153123537352166570417627415748603956484112870478685054311533525368208092705839337814196939325921787372883149010666880802641115169531812028647317126761721200770723049216863112696140645244244007960452512179475096839387977522425415181540932244924288696640130354434736175561904066949045753847454413975113251498222812148223273933925713425319152135641524407689073340635577832464363315254909459479984733162516734073905270447633481982768916777977467695631372951562314898066148500447851049640402593485128670328832445373778249446578268039975458814361384256301908288755873748722884600622295574059751188631531427453665836453275116691161214746652302152521220576614699961967025871013099350782050914820650661787349370727559652875403300048259609505484508902604033780596320138817044723167769389992482429449970917368724602717306616985890876259096186522616884127762027138843908422624397484155024756520431121095638091647171024691006360406460570373820202019975384318888791851161328562088531977689259813125156023314122254514295891111656923265122672745151414629890145369600115050091683682486456762938092484697607426248740263223860806197895793522278340053102889694705286341454271382732603460805546122474683853336766994307092390318219216766023356596283098832212358942925462230189312756381547533068695865959433236198244012574126300280935264252760296306310798815009509398299531642436909093198544842287837432789031964438793657427375841231731262599123503076891552662103085330748333119936540626980470163787969026099253806303182879921156314517054486665948826795529868624068296964512916847774972646358733986641633129469998763384269853974664989250444474912676177697209445995531556068613962174757049310117850646637535975863899754188727385305874484320430091812796557396791287708586463227800447889963986509374308411624911609683981706132266319323768349825524567770746651306751212195238300013443444067787734278395740933018947459952663715440821252340319783446059826078889448074837379919780450871588574158657815434078663809076409850257502967510283414185408543027626892793503536350815718914729555254582534325518906828468017687957574834033596467228377379435168513713634759199151379757273079730798866417625460241924272593191638414131235927970100728076880924156802623619857465759874692500571858794244313624959120916731121029291203979752506513025998500408871281174907845108431823206335382969328114370294994113098505359587603329582219298872389140477254667727737493459930745580375139431501422095591665593754181800062831111917523196782221506318206980817248779018384558542486827061894641902475247519766664271260042057282935593550850471658087396171577632432725027028343640873768084714695704095799770647690232726297348972085546404535323758141258497288589945872152245859731069484418132781041736108925309662093499372691952911960204548161068477652174340944888097921409073917420098712688503451554376400493983166596503848382090718300934667149197344267963433828123979650195939418190245262978844114252780178237247265178948949873489133043448001319548982527011478500784513147258939643689531111358290260597499945529436950439125340873175358848432178923024580468358193604454572764343085735026301327764209117327546560291081580366575428945607738681514809100289677399032881632509513283441987876748889622515605193598505576786061483061834086401404090233481185591175144603920555401204934766173043412034883808799593643933036983298403686967852531219732407710535185259190782601614976674958785061123932973933746624452145189879647197954813006381470083190192913573731992661392107440850689013342258332630963805682430137804269368669737686446255972159361123905817775879555830083092663467437423451954723258575148125682565266824530511944791294713169700655228451215610329876782757569048868848993737606833730109877616286726620252451726577880123719567174701548648022091271692938133654498788403511536040607479842149157648086450636610160614906156804129114630600077679411526976828541257656043297395419077493434158024430985518571783021942666630363504281440172037333989058299331062874462499920970937217312109979495080209843110748234032624221974508720830136747770712556521565746968716488640051185326269730415001845586500042297875614564771820740310550729017184170950413016365312251455778633937940181825106019014418766712670563823920229348176697378344978192814176525440663897944048139984666829768751337145037328380555198275821696294982328740534152171595791331498904346728435071256196664988356977325165424263712256575417634068998134350506536252231058422567501768604690421087481878484883301411953314696496220116087594711423780163113017605013439908666581277308939701672566648101586486396183221023236563899456979249926576710997845465016099622485020212303470334602585802949708821409954961088246885318022974448618111634950783380360519952933910018778051389132111321172131954006570876418660078675413252053041217495700795706770765667219498642992909237772304766978611026643235517755438899895083655562062317464500512080919563400144017720049646115693328469996406326030197364392878534617142002054383318968884448535621023119259518823004906999968739249097398830065554441331714024313018595671210645062307745013767785576285005790320217845823689834473911159593480802521486081192044139947169185969924858815083432873236393665327741266437336573144736703815183567882328099569784831921539355444480239255148973336679647206900966727911331423676265135831089537354907679536083701358407334782168490607869781837829143162431189440226734734265107794062224598060725830091235262735425693256892156547543795183671930392704083952668956161777704926867050625920295747344468486082972867034399941143453220531650886788780154073486872694735096169480234400812040007736949557053709773919623401875370918666217806510113826084470976039667179334360773034555526322885309470158484580588031592879576439716527742973976581016517082765869420643000679576412214690840484220536745020523633323215008729700736127628827506507686443893645245922827016455339041942819185945227892226319578343552061286479135536984147466203486454688065211511284316889167137066796543269272614804451342524806260046938071229299365010160713226976743373081106355463602054306999888013153747795130690513470389661675797311615867387636761522444397932452839267801781154992799690038597955893729410556345519845106944823277474515583063051241118665948506314019456153490213175360503945573833028872386154941828822553248798411783089051732270955616126196533384252235002650788091887784367405605907205027985963277556483181064721073421449729824257446067611072456883319841233487293505822324872474462092714149381634340166365251632955853304075305019646712363153827560925900285619852612158666642175012229405167461937848597193301562481148706594737053537147634138033151524029361923134672159287864809791867049657958468644308718748598917588342561951383018959925690769604638773092144678342075434648253282908825542709546443293837093761814656179514286506667248792252375004771917815422632134558194346646444137711924078058365445467565676861969085121032178336106846352131164687762811137513617238156898819967345690725105951027793873543768803934717401995638159170183776595906749837765885320141285045057243664461843626338291855160205756830153528658942937945887021565853181205692390841402546788542715881179209003694556531595292248145482139127707164844244404185161574201869217932084822371765552452972124443929425304532317285438546592008529476979258236385935577822390487815701118772854023310678538778564445830452129532589239352773988246669534434835207256711019685496815816064344125677027917101069677032231358309789574685874961102625796529512264253920081859798534821326878148927876489706304576161007307126190263981170010335978870515109733634033190277804493578935532243734001250453129599216031828793896085219566422751266374585708567777547456645660452536812301102284652915847391282397752258893201708879605861458516408114173690747056618646282153437155964259578392679590401086773516992680078208225857269410743816999508656767476755769944235825494680536153150284855346177513686234514758616676560412737018471496505781547570654952101041387537714464397203215457754107924222766363515880156939398760145502940606150900141925412117620273659169369459679111936220558635892047045468474611464199953704664981630350214337832393619759475025085226977486209050568408856049392807848671091153109883240072992315283991975812743058852144751047650831971497180816116646777579632082753801373051692388240330318965223636129886528774847764956728170589933763595920018103690293987234483954008063805163290767279239727174993283614403759769393344973951864055575068965480000488286488973158290420665790664922864133224700268678506224014934640192949041488858665880702035502857689659937705019977947055567889790422026967922725315114649726142774853153366834028194596426370695087345131739371867599810801556916937778678424410759960365098127477515385571695953318040784546167446269694021816583806874898495498360668108663314393812759682531807827057921982810618092353128853023856748613521415542433064332799847181624110406090357643309856666767076881420640503278509444169158012437261585643663466601627208568536147937141982425662682736401372847308950042344477720315116846254451727955035653871534823923976654807749280880367464511352905063957356209172732078283832847933648721348628053988162917938531957698308744743439430490693703827110224219287329726721848176068334629313298965739471796694560897898623903503298568211393355225968350746264738199759216795440126419768332173669327188453024217195939100507550685041758751405154134457164937958212800832265112224019771460148000101372938556596542047543442233945743767447184476224465235440607412904236015741236022862632140147405327848907786568772085629864419463508992984780597459041230208897018075080815557286302152702033094251698622363913734732586286067488223213022567563898264552329007821927535362429492466965496967741143891258145714044596347683108780237003284245055718707497334717821115673492120292183774946952540106171432300717134911873727644493408142313986451474563241888104083045771885853443687369208473479520636690579943165256394008856790830255357347702066665188600664898872113420463555314799209795962490706794978867397544365854450792395173709079400661719603029504320225262806405612991901132531286663708486349440665580571797237150581724449889994958766102981584328153221170840403178765416636268464653904049725038722425063294099619148913362366645899804581604578917793034119856658477068078281546501184457166044347144494652290598338083321483371375645936348224584448534963035175445191420730615638493122934326921752310436592018304368117410356989636510265681930950639920267133998294149153263627001176473497465208389778291387924789766819133940613408354331754726290261852623741892107894498153401633976097700492063811729773962477916615805102790156168572233378629466966838931527951545702754601167684540572086204286103941674198308139121592265665055302127497503500804523816118270386464207297845239710385733111841963769761020147994680584403593311651434179514664988617773383435412992498943521144784425246663028137935243433280034123589112642638823351249168158968186121297181359349814122728455019460885115858777114013409634350873091839104272836920220288028641638513565608069674343646919879150155496730227434285452365931532460663894746356724854111243726348968903764893505612648860100351916683547691769891961345279369993525157672954204614172888973504884328450479379237447616083529949710771519371627857731861798020463779170451986510379169325591422738554361512737468036217036500521840749890147687272577731368017866073255618963625631684033118002138801546014989238191666626292527982806120897218644668583787385301417443910670523827048031991987860313752560098946042161980837703194892961461768611691272093906719222686975772725019874439693349814345091192387006509716547136530176541727127040210215493591108948590139622229432185539688143692255564312632979373032949628084337598980511086044984555056972791606417399009061603467129658989759789663262695775643415330722183413793533623940228566766936509731567036599702040732331573283498898796690654183825742791100640294999860355835098256037225121544924100370073102161711715770714356845132533053989717758570156762040594215502708336943562649966876007953728687424392830611076396975111700818489895101551378876365405339219303136107233657005842834937804127504216825753967434174251155602266018041300182583041936688639059652850272555581479326216280939134857826702832672673964559705826248948140202074640614711494548093776350202074326793162632407454515548613274658114046582780528452796922155740632181701319764063877072993049048273446101706422816595034375339362763286979154514810777787051968939542983731540586080295179428502418449478184123693091012580725890255182516191126117209661999116218219758092205346887626167302843062787277240692434055636459669004361935447317489512426320628727771906266053821323560783731921013694021670445123653442420372187998794540178112234028967876156600225016293298851592482710776674669018069959490501211560311172792618281741375792712833532127743843456554259617416677793489632661158943792031357661427280489137945816804003389746452762363880637637839226079582467918705779644957068105923846388836186210336537484450507531797012367694365513761291211934243844600454208792535470625393976278461546847695273179636657848692089867502441568118756557587001905166285417514761595065531998145406669327639865422418080354002588352668907958545496857578381518133977033801711819045839408830795007631030673220068814561991816039627129910222061289258418435040779745444072278166686946364102825695124440524491017322201385214268489780489638222023632843667507064171711673795520134714054379905710293108904257664080771791098809528845227539376788052431114779478878432063615782948210120758021797642046135484745677740710834736954080999949476926528470909132028947183484390861406507149663679079116785347171757381370094001671525531086153125601879428769201782501321093804716863821034586176889080825641788458404793630336737266991131256578342728349533198960333568065025058781260440394578421542977283122476458441913850260342280988905667668911785852601813010735093751523068783928328804677327284442923074952702494166999603674214968814854428130424446708504209270046582013526265880006221248761844550936331970844276213474655077426466908782966805294803986368160264506882195344881296496969472101562735280938781427055483134338150993936875164628629697664580576356744762058289037744608624188592894588622407052117331520599441516669694416234630105778810102157825037473728957415961112983097328573526847244269576479049771212127207055551318729790671642653325957946763368679576901249658742840142483301257763731372018353723384072177475487924626511533320322803327740112589100008995647055363876046319695075631801255132347266576412313875459341442186865781270901559864021357599703482413681730610660251704662368988805270089227423936654100172283683699656464798214290224386417255073853201585687382356779631332333013554144696374767639730199127288557591729262795654328925338527384268395483896710648112859420896331369749261837558137590541053349267035568544387393930663890252005345146007614585491503989000638012181526402239687513721340404265234200936255990719001486099543152597737784197209627213759910225725805717968137002775088041253789000640825174338240093957142961298539230399793708762954855531623214406373469642693068816769613215460334503586240512653933698240320155615681497133784746390044325964040886606582222808587643005125055823295929519364668159033926406289932553921186318593661128899708729158561670215286703244687210576413364249969112003447613921723126829386482466363837258194310348705652345000983384981622760711654338360767335143612026872289242640815951626745219129589426208309729462213498501801293018021348925538524920752160430423608347250942679700852182644651333137151278484773290360817479017367279934262538668809878958481530449381441754267019660685799917988406051457241335437612798476397775834972929747797547556521659378505710002400707493477515333238429324947472051965128617464829385671054973727974314616152999040429340330131095621360919069785910388836864296489109844831561902717345202242561402871419277752318280164240554620922473024941949462170514922474636051102735437349311098735193815317824504219267556606674261162768248002182535097477129816896000981230256787971880063406718762932002082104083786945268459870051521359091184885479719618837870824332658723226748718162041365635490834778375049544997210850869612813594707131433718031862265235887059596927079984997040921482327521230087382660290511453300654815743770797049210240902598054431092824277244176559790389567779475633516687962810295415282914313477240892305270492285300501184225713921848427508503777398041778976458358854960057092514943848690637215017382154319661685528324676975549007326159309639237793655728682509330496889846268073469316994684472824670890758085342323554340762148422117033252361604411557233849630590581924467426947415997721344955895042174068140193897151730824820725716070032134715359107476907464043381177582710453435568896572055366145360650508732172207572811349315297965431824356290905021884779251322358977916599161312999964792796002735428697923725570073088691790415644190346988639877660548867980071843072411025980409019853465554306977869238210624194175869989224293134332928655591867609547919028320368577818350806245615973021321233862635851847275622901834726868102182712005775090032829422084660856927002294164406363376437243411636301667311977162503354928955649107245294189974461129163630101787916136848173521096221527497749246128379640261107268415035010202772936000265695485715684882341058133893289579511191194743019842343946654338677338751524476399772124658539076808928108038977298187400696511327813895095150846775030707683649828338844141843805158275905858694953740068304397943656402688429739481760578368499762317202209349896125799751297704213960464135942133718598854825405984145747956463416998212369735651958894364110679057749260518838659206378150609808033086423477998151217992189845633145530741784711678235455402451118648104786301695039834967722062769815952503789074510785963716193865532389860315560749210415942319751977801367477049541039028560224862351698822120302312728760218705168948895668160900193623361752274906729761725720871178355694165693641699483695092925387987053286002675869025822996989262730539389288431806957745136786887425874335639033357752809740820380407769207556546953507073788977970601727859038294472040317198205553391058194989367617170521165162034195945487357579933831561916712584775594764350731941940005047470240315096494072132576916987637585498933289476346424057475722952511389744641827143064153640976486871231373392544453817920446257200904281629241819704996067957045275807071622287305145387734011743540895447165178453541499232669323444544927566342664102843925425839257177114822801419204474814103990440541554231082943307071415002530989379999218949795297239518702368708853992414545368115152261072590572898502006474177551704891352166015206006217616896978953404787232381982029485521108015134737768071802870381328812070184943697615904312895874863573080042356101574426580615831586393803711106752073411831070890806141245143907469040376627004902463524476094909801866153341168137378004375132067421124015621179930401016307771246182961028400886532532772242062448291042006574993800120872174111012986510131480532486733950221627605832295714464470478982686674332666302947461404983628621817716129311159956990981760936639561170665148458532895586932319244731504858412697932812478961743046730383988044792783899006366018892461111987165603217295860487611184271498917138301841444527489327632259970423170414966267391539776724020008712675047585753214452533228310936384261880117468267305278040465842564398658631254663649139860580904365942935763061319007169952236652388766655663796385158430917933941949330771178390823764623226307559159116710258590251155981410415105553359334148562075946352581144751440689763579555045110376857155095132587581404406645345014385039293184680347101056795089007920132841064146468769183045180016742849534729538241662908714145732422358275425538455361406654788227384481189607718012995019410564993003790312426255494752002793120872955671204845005176047149156502539348898595282192428790011568697505389794733606358348477409559228695750475306404844521870127565952557746993718883921225832324958942014116555809569031740473043757406302404887209667426324180608450124988596401901098372507697875446108451365152014413140884459249049036860723354836266271076718383249689503646202392012360565151370926979483555089508137576604646392049567680125255350936339236585012050293220596822297206375636488003203758950611387505223733458001157230742507812699232937079558779517586803223016069258884017452372365827319654194720353119359734516984397955842307704564688874109481656829939791732594211969471658997814794964978331408969283712027672826031814344250443478423697754132618230511872148136208493918960754399793055673249376918242672666988802364592845287785646041124523800658611292014828422259441998743953679849280191478322412278158736891117693746403273404075296961121732962775743112248969897031720831055498081413314555851698024286591151344467882910029594847379117467572225209395111022107101905949194761340843850282278086759282868737760598298326185579758691828788296533174928958183258791532331225638718812010717594905764893335684465043699143846518396354047112310520807350408136443754859746890388376928094710471691414366198121653075653298569054925549713017751024268857636008315413242556648492689352519311070842535254528944954571101188822980973048693863104417236229317812072651973584258623033333966487042711532978796285776269834103144923682059392130545924993456981659274830007179836340438790393276347666301481664970133849933913024310763571106244279819140712422446107818501305568207924066435147646899444421577941231623317142873356217445102452132470259684408445572023707481014380406868753752506867850988702970760729579827623375965511994605874678268827985567152264349362588022743030097873485045025831155137078851770027628576822338004531442928124807652122585353974628294923474452517461543442066021532857774738133443794464070429991539826831872312519426098122835868472421233486921934601503750587885618995398020893799787983644874928640847839369412636705815734508359131177793327004634176774440203144411265541096477701152337854034698960489465897817194011980719749493471370481667206213324678700232573184725560143252414784590977054366717644593809525921724976456513947418182278935658862888089731644139413973881982385387388182193254597655915144150065309304587794891224604228369296625048742020855634665699055779898965373776993107519946187873827820162701766724986675362708530860801166695453721341226566775206519733886658524608228635725307633941797635190011332948875681263337454229219522026082401691699803294899371584738636578307372053402021745523575884906638280555262176463085261374039718008469639563683155974976693767509626326337745718131500118935805905012262372523061164351155307375926392709366845497119283582564122558430402938536458428803065032920571969677021433811369537530045622430356010905107506616307088136468269681832576817097892532536159436806725820689334814789462992998617629283796894708161972271451584874365864703838272611890068354678240972434249822926866013444322461114950733102033895871171333029840052277942689059965775610376320587778324007204000092771205260963986256573074058371452643153957142781270659056451831637203703984510570190645144327050104187308865748801455463427352917927689519547186801207712417162347725017774564917864422478205589701227243683931614787143187547769829240143797964490993156463306207781193713148224422271269768483312270806248134508079382449259576172086959214177216611916612912480153174333619253375986187130451128086645392105782018676924286755612122479093082622342438946720860674015633497200917514870212472887307361228554387960409383169511665220100950824528333784284294317112667544153417583865208329020909368612201148586298818423627217781695774985009378425458646273585518313388316934033778162456075803467662542347447928705886648267667714262379517919542020716220537897467190825670898902068811394799680730315555485551130217281075758391238274756638342967404855825860950474298425628275374742999477998018057462060756588548514118388349595176139521873504522083384526656331557709785397330961935921976157011818300817949994161338737652607423327410802182318581640158309615345062367619010932651094981403381976887675764394994661652620897168047477896869844682046684977762258773212475197973620089563779360481916985393090356161193970292573005476591081447666576512912089584554059034501701900442486168834917910424445507187395633032793969947908463364803481615020466798983622604079635444837362710120966925498550016849974855417033367809374396537869824914230109655024345369021916396837186418556397882700221602791979661009652542114753158708989367486499684160256208472730545245346709916398710904435853708012432032458246416196290018847800253783052539696602303947133125509957180181123957979193181531861896768807910835705632644786540290915937843636934994388459531447434710371549993776242303624222550133207688171909123805321443765579893785186423671518623595825671148677493868355335847031764877876457127009171418929230108952121330233682656187445306646943198716109186702377088149714152994255896254867311552334582162886304351499562850571827104602206357820557271525437780565025839956810395340035509210087349794089296532291517001543719540925094581479023771360661484153398031922678505693923951652473303834053848795406991276666620791240003521810197905738591775144246241222006489203662142873814990046270630780067527728328826729913171225689563653342070648992603523106090184773827012581317079216635279732339712301298599693870624850130747054086469201794171640627581641258298230082705437207328330995179412274795872020728702972221393575676143084590944826854337040594094506537431798025447762432068431081256066771769791251612794949441751972359581552666592995156665624564497332442021063463799364227340231266443297749751417962681825517573763115611413997738629932450238477010571357392102741178796972776972871133531993926351784652131503587890263781068992968479012807897296778997965769521363096588238196861171364793484926742971224326751599462099168674583635451216311183600623878442339475406263582591582173218517007625629999239546470654819937725114649532595114451198424572634037590668535494484644896809742681474196333411185603740543508374031112906477471976985665629936623853129515544000029498217316641575844760525994409608654006666449608162152548250970857352199242146658239406811420391311577369578360182010297473703308103445251270995736450444640157030392259676706178061341903955008166901742833437539839859127286002172758250532894183184021980754094768498555077026342671032515689788533032288446771171177494032918901086750459275989896770909813823002161929260520350279529932414771183042093947117777782443729007808823156620636789491864030814939959096978790576410733099453835862087276614900911675348388706088021125311187813499185113744178344316572022870991037966149671842385774463980399863001407614073241836801492734288276803974115294542708761013058127487084092095017025818757613916402998162607128394137169033883246373009007712051196513264708715426151134794221849187707451435341899900862169845579355333607384956212626953490843355882306341400782304920933579803230141243137031958761119781594663967123065633326712393855582268488273547173778612282580269337704623510490793553590920783429635027896148307048232273118936794968812402775532703788647283531631684449008582006941042602149946456276632484952207966269436333763863648678802021147639965494994037519987499420282455409839586044863555976002800136207706032190144634329163480114970984594730320624577442230686069889870823056392428042522007929644604128519075577508914610189941102255082603932235044991136869911760349466061562896783836655987861035486241418780638370805201797039810522602716384641301805495355309660390266923127487733831509713160580027902272919120000788477101831059311406961923022873066589396950709600214491823044940798114333203415217434501210960938997821599309175028202509749402352604820557074270986087007264416697385269380823608006382787617195383879860229395515426369938596912476876402108501040383613417621464425933232964342541863864376227011102765926660726082700786013552959689966091207398652809551657420951796130926415236308746596817359924734909054587047774550394638976935285197666683640353747286963483863234477604473719774271351563259942228761132486241229470884034631033270526484766802305086057914277195456035129860136565396434672159322463039384984146441574895764899741737785788995310465264369254452680816991109430145011721523218175078194411224079647936264372884146099514694780546157906337691784572309411721359236783083928396614713730866790870531166098045986112517910325979551647607020943196643035521539475728651815940987513545792296888706561325512293131433642380652255021947315717512406275112458528682847193152350886907941976249553754884309216045117637559599305826189937448287931913369947606446473629518145395951037091878409660801625305196056167339394404833792265463543051900860704177668050058812060623833983866385694963176243366868642550537781771675053026420917265021322578996686525841538085974250730565233793446809339682814283850445650866245137288288064497636136158949608292617555162594254459698604062371412259424220678230579171236103383339748543133878048427809889669840367407403615108424766144109999278978021585922840911759260418209848000742838234908251729401987453811474033814563945551142162542313015622651190323170997368994317501312639923892591867983019373710819210975537409033231011974070737539702114561416794253296164401258424294340954785449621756889588189846081295920274411078958731116723717436270301508162670674022248272513942514002638046526283236751075385164937550302030919272362087951396801697474335565323784154972633306550568117640769259758023329903163262392517289786531957687488287073627686921042459311361872285744883744409169970624883682268202029491233043717338613572001998803316170051915828811163334971494022720497453693699679157026398259335845079131423674988312231282507614220428022791683513368561432779205446025158369496331499713056186569532025509206532128359913666984820965165255940492610704114192831856927169971353904286838326208136796074348370032666849945423594561764330961192998231592395095143626916964401581007953583315967888870080672551203641736335187578993950714297678883917190443959918637850170886954385288956966244454005363352169873753349963541822763541831842067147984944415363794822222881235341736574494836191790162992941803266814392129000797349581190894032507810414709464676422644151684265905664354166112179291584437704396474548787571574444412243684619922635867304223504800301850363323183678184304593477792838923121182222771765187528004537583074050372295362071195376222702010812155622880146933468604635230498622901745047877298746708501594606433918724471874907679378245471350507938104994353421850117102364895746843055063218223253872570843443289169177658311037233278580855829345469382482458394918789081116929399894267910754416442566988093826636052778075120028961542421940976709735685659722600120064869947840473731605119339104487103944313163709137903076367048416870343844182835675993999094396298229777665339132480445875984311925473300121556250531222819699311073084924185160937623470191847649742317071562294211945307405946192445594555853255388637652383813973431496511830071910971317268817418461725770329203185224917513116444396309646496299165653239273951120481513097625426388287518843131895392136156490188728804255116403870769386810697566167019985487504866449316259739412509635663430281357336167918788822857353351997312389118353873400691352997088496090720480588811162700713784064591784283633702840416747635979509380278474470881465690924592158424560660463679590766543089773745775194299216717338181754823426591223455755682574629067246464880708241507146196177034021704238709464627576369597337181851731826943958577495908528808252949980919198068737309649193711927517674973270779450902342330935771981938796341285911113338677323721120704616312723361632696497258571028053630825569694960349778974363916418816011424050685510637803698075492361541066992379711130291328531318376332688938398988323191714988603166653643444585333359884218043422684825004953229206923411519619869340500153734047599994413386808926287745895647404506745272754083730707541101581049219300692047926883164908326484897042977595089800863138371678735674143243583006026730344450033211397780039305458355397418762650500161170399521578937567004260509090290039961175081337091438270089256106632216166424480302648483530774095893546928249495869551122581361527592506631211891576590399508277321650200184076476333516778832349082594093879750752133274730244507249909512816981015894253042113195670135039231690432705779706571449769312714623276521197636579813364793266136134140349026455996894977592468856215672929955540450570538909169140588378983557106316109086106683785531566355589033369816104540613567698194737885590095674876404381358158547053723990191956924798624005262962862672639890513032440964360298145249579447665049267807973115789718597844490974825619374645122634166784800007268812538122281519308945639492072649210189886386409449879505579486166993080109338483678592394265326273064000773291869073166316914732776459746313071940535608452691331597720568083228002876929697678008974474733186064530091668533462766310933087001958467400426055074367667475621774178591441296458274423042290463797945467365453736654715353408873951009947137880033417467823918464289591141514307647464578785979516840599759627139725882283423099187687789214244765197546597720737720213644482286500825770980655760912522238267751779285572039515184104289800019885618607993949419223950980869363047225060076635024632075143250572246052413286213818218301614654733558069742706900294600304031110129715147635265623087185978586166327138007754684048747231946810997574861580901618483707337442002416749969780512103065516439056495499711101952819688363980877694549786967094475393623468884371692628378678366050077256335991645420616407117174381391762310155967159261036861580733316171373020018920646568893847010622701380408734869759696245062017022016511926860400879904127261297707826701312161842896209367771069915489534550763680809134196591042784925900269267607137147473700840132399804261685311016131160037250733148616164086720733075736545159617586389455972404120113996264245009067876200227902577359651128053555126553220050938940489208451012948770204239053222400353574652429597993197700516312749254355874678163414208211406112544369641080831139501385910815740886411523989762860967417604239206666285591306644679757813365510713465251291570733371763679366232296231387215931161242685282699503037019778358639353925234426405850967128219895594049908654530636333338086992320593502334405412715909661601431360063318800752419781412557535330740464924642089791413995005318005023224974795314599287506742183346302856141355906324469971430893146777413638548717434399647338473563217701420860621948539834822673116328462804998964776108883832982341816105949301994832236309389302607070889670421064988721515619248911983622696648904912352658906211786204667121836590102578877636435128784256838235035730401921032684418902435039104287308225980085143217846001289853825924012386000796899559960130939341503502032934694476651141434804543091629361082178302938923147536723501860032036535206787773261502782699905310799494981787503201130101057359645978254583475434781910970863764595226671488510456571808877525199394495809232196632297752017751676123411274517648233496435152757463150474064826469227579247768226914363773205559747040941646304224182183409400827890134989658262592978075224048358806947550309682745610377233818784575661476431556663356777754502843404003454048661204723158680623009034019238704124575520221259683530994541002732100022224893661916385551273425784900153045167838211049089460301090822879553605543512906414486724356031936622228375520023805916718645235232596740240477008754191239211259171003950898762353176628050643456802132544649479801451338422050432515747821048401262901880510501028235230490568374679096354809560808205745723941374419284719724039156832483551478156510309553575666166248966695857913678878621846604735703467435540663940260696667719648852991555238585597402639571925201905796401282360892537374457507279870695134334041619192963310438924886632273389312495007159873851261223280130322155613447603868785976985118715120127733734994102552377893102397800119645456175790585586298633735907557125973471278428958179603490612851942090626315599160128423422228512803634960098359626362674360335364050575905819679890858523420948074921880278015937894466884485322991989960358141879261766585921642433391760700916621782595531184718879817707038161683916667754957740645864961697275614858007253168539699603443500182626360489387852239450612170806588462776927258716903977845031510184949919931026934196294156619568053602727529098516792313236585841642310462298901713619634654500151227318186564679121576472112943262450789944184800645087898370362707864362370070261367796665842161055190809394447948878140865402834670947488100540612033436478089398530632502040261390328358069758279944379932701100785158718998975292760457321984153185422130055890202229228929285261861877694596378934064855061413125790212871975951835060792628797909508138164129849209359804134411459298428575229778293697049628088484667025981533357878760472834996866257848409170592156853250564837827862880131881657799798706658053675055011058409395326735184797956033029909727656585716299519215444770656002158149963799212260932844712301027411024739465727978295871570484280363223228429597637033090931197133349247227781455797666055965628216635734887824480015883606610479045548382436717760510558725807689969381475042346514105710857693222519892409459992816929853812944555392875713748432026765908973763012924876401712108835782692763809758819600024028219788033175227645786021482657014324554241679330589671017217323284238198825908205514642741573069907681429343302456170671391494436984645289182345291930556423556849028091542824130181238924593957449382895362758978756193095046651472076067025340906731507127001299311948726385045427096775501538833481749767996537506056581313175179209601877082361661569730133176819135198279702252810193108743723969735101071435775592185848988506007852404223286410415108155650747113676713485762809462091519490530257216141867320312698398954839620271114232379241815894462661959246944958653614459593207775449290479596541076144915041196690554044758657448722346990084230378680807676631052577822976633721362402281842974203807583955842577772320211765571184193458656262521093165323104784739113255972812006783167306779655023721902767031606028074431965511846856920141024416531943101107363040006464031677400982773064823530560098675595791436070295297156501589733785372100447112544613201566184843526055456348789107613311640272261799318109833629518221739136508436020974750624175808100183314671660988227322745786809441042424602508953078065759938550440561075489117784380064024157110742644723096654696604607632234987906622654599560157962980350760080224657743496486945233067033905854745914175562688642698002089479266688707134131325039997474779496503346745073995917130498357085562261401560895970988550736851454240542990385712331782289693647019034401943862062299686293089620755876546066797449567447612639671790398975784530450585006882547531051188422738339924776168006066698638868809919743468810005637304926825068135514977580332337064001256458953380436625116080908035749923575149939850052587043793381535136194067025413588433836412740372001141000733609757660247585643407940780620612930228344441901487844510178110632715991266729908056627321948660850712384125339493365958102921419531096497314103639954812816060186574678291723314746759510909186106991368017083680127020876083111448680397763903157181419190396756183003054031979247983174151456220220314184207718750423698441037535742128562288511805702343971604674914422485232532716019369030971112642163879992843116541815951675227581620814684911223145571233133298887060995764675202866443223219728162556099188847151808522981729493841555922944238990289900773680318071116033042317267251897952963822207541405081060005010599471225311680924400249466628714431198373914826761753483694699335150103139636710151777098435289474019569616673806736222372525662852343538074488900882501093872892565095938281217746603810238495743318768679145767479197866999732301936062061237630682715702197015575335507773644366015535397411414939175694292936177924050837688787836118567904590184695066381519027987376796658526332357384982259182271835736203042187210433682091459700026728743907779430876922278860370333413039186677038566772008118669822835158563202973720259252836291788903279227075165385149019213558625288686675765163009263008900554157257417363658810752197758126633137121530729805556312410504947556881221406005770644493634436338171053533597154097278261254769437998737530684316460599445576024579674903770328387214924514608209029338055182473596267164797066860667124563090473840529753707417991033335997524376906572524489656859303553415627046551067090435075204157648371482333574084865190946000644865105255945767967051463931904318901186650442444241998870875719062134764034494447741909591048840148422994327194389994034688523732389679876995941904853517879320194593027124713966787477197897679712217485475374703343373530787994403759290469782726297229078033732920532242028295658320706391732123966043456721213945458084441373679251402906913011467601203278955730186689169048117331202361458408575252461004023957977438883746243998378334484834064003617890636208227334883014140300254979886246027695663142093669982283959052726766772433539928911517250258381230726365220041453303352251472392256815228411168606993105996950851313021077830148333832395443049468885906214861451806066677427092106195230084266562293813808882725141445869755659220089183310140213441823867306179236786474960639087245363302686221015858701825227428057056771487433414649243849927903726196833313347392849302302215043703166816729738128292569484971546931762468845734981747766846649230798384514100111392991642918314818608507618874012991454161011444588521395444022430202585111549629133390470393723430167120232627905504880398965928249948995543362481114766484657447888602016787098463966709664110176417932823466089797778357245923002360509709806942236597755162164223247719991193354225045630895876772831604830081229145874071951590620628358373355980416409853428616596416811439006996860657012903748638273778946356935843243631655096108376869348145627866637991827137419221306331682599156166499750751722870617842829565206785638859029162042205944448855103676336476754390114972705192983017322467976081982880932198068539527387392509279267961946793646165008029146396838122367480779103418378372010256261516065782152567961126777603306772629088941924573182707060350262177916466167936727893577188802515325266655869018875815288499126899164281578931899074599171234191272835763471315578521980441644071504559893326458364461706028318235547395997333965030335397221131648857831439964906764626149356610379642648234827162010565953614135927665892478654260095331119491911521540501144334663422456609458412318522749038787440365336943747377080218610652490914832698541422457681786176637992147334876978874667725143892344917325146201084218162992334437585849764339310915319823903402838600273387742968529230123140466681118490564866648810954663945094834835735879719217588793985169276393097691078895136484391045450708726070665575709853310498557456263441843085947513872866542015069718017345828240744385231203970773434569523165115687781824874749547164790491021403918548093968272354153659974521270916197544905504780535443982671600620712998892616232944513154654302199846395175195423840478608279035739106405151790248002859971439481158916104471918369185149077099754426505420582404047389107610132522805768373012452781418972080467274513670721899678181380129611735928574844893406218188922392762146302650840831431177628113501831977944248468990057710436912355368687208334877857556373554191598121997797193294437174730029644577792293015745531698086473679281701429886295742871434005869718638253105308323221059329033078635620911563604937116842895220766566008604915638012978742794657310367703102640625890557111566998435875786581465641693025295235386561922884337199514755785187402114996728118104013499389237747115263264182679354645763400875804458910639698919052291729447509765733881659071505795608114683845551564855879777988256114977645918006418180329443711823945770782236195460312835720458440368941077371715696407523737600924720581785099556105709785507051289408383518358483571881856445775315022760065412339973233343161755156886227279103452504152234213954005242861989136115131731382543365635964853644582615204882162789744368476354511781897806860797023187094091197635327683818742171967954461220825546259772995940164970615614054950681684961336960033583259015048078269679299761838905464813698970947981130255979230655776207555468160943779293677735436850835919882998915893620214766926396659132370821735472993065152933747646714565341287027797776888267764880819330949697329059656753848295442190049217005084821442883921898208065013870188895950991580512853328407630257020027506225287064225726034360979524360744257390094568345415428021208339452900299657568566622323417556756623296987556753914686944555633193406380409842889018595914718911870106959425323990704328535007780672620022116256420746611721822321518733011813300215301488740433817080514044311843236155065186150428144348639803181761259455118734354903643214184396015483308139243161462490205186982092759375716430301540920139461953454197654240200375880894444184852740574409903745290868682971464548447140884796290801489176826861436564740097795638817040092150658924207594573300151487380382526236456129311664361967641852939057773866995578823750808714081712073461477884539742894627331903615709783660192002872605215890266895170885952993025238671447969408901087595177416119895582805501286730855327722023690394398829955097752421665266530138929674185215616911363407206913873693162524524429766310575666608215132950468168832065518414798811629279621164303894013289739876269414959343914416947341126585622513866223697603663028232964653060543235319053851463506989152266182536076981874234784907346798442720325887635012748492016883439144476176339180519159777388699040732614006741168626670667682421318528616400187196749583480284155457073134776777915117109352441034708702309633221008621945492370158344086526456592249742890354545619325178979537872161114439633478416384776891589015040377718223139435272149200483857616429569726447543061960682275335912937904163379459992912260546968620823952122158335773373433162716690233670852483502683263104333052556780450172372392364084544115585830213110451743349053705871614407933641833888031388678003881212965622577481931273873444319751608277893536241255561421206720572309381113987708678856044427915132312268238183080670437296193111168206846064752110879435356607666563843176501710105108864046370906779310864509913747534708144768074940129787971363210203459575374841717081091941370909204537669073777719231583470105952989903475716846003207364320708339612444355701591725456145760932745274051732406960144530852524294959050224800332881804773042239739337620059298174180128119321881313554751456368460110430036010772537655716351632287721045803019334526586719675182222655500406486390613163022351886049532150261976100424979986206959479390409962430416583210105856025246656419070861806137509324517209476295664194290342828307995966677561156648949252893155481903226603164126602659856223881017485204543600581227414227714872644096214972423607750794330331177350641934511815188092786339388945190921606496652133611057432315246940656341461671159849058609023031882448309739843244602598511736431680467350707520397548009863965184718400513172357672149572594181211770321676421873848831843601258894458560351153595694901016421768179244843536975747972632428766463120218757027664054102877071118344550541764378670761339067149153747133869901456748313446643809232783510050699279209863239097541664722683655136303338305445861377095285298403590423676323832038229800151974121247051008114155622047008320678186633704637131935767990012789622536090974636559211829817939683345018659949152755227458567541497569270347055427275699844445215249791450624894526263692373538277095011688153617413474681709802189308381306684711327777171934244302749408264527554669004994273554697224014149124293472768753964477173497330340205036352730519874859288523881441348409927402396562299666371568461269721063381166509590383386607386858084648862842685256162475648554423029742510112051045329741003074944668786057637659257314743973675520926059539212804142375856959813259548378048590020411260992552858416436987737656940864245832494851448751281810540956476857503977656273264788995276116786604607209535687063321869227896287784019789197517278877121385789088602876705929070331389897580113300168630943851242728136382055370435179021756077902532584516601309082206371774517370048806628506000141513479570859294686076318187378809181439831732581297570169223478720386850040645053224232463593157769179277657480622965106917869576346838070359179142171371344490507477950386721412829907577184528707887490691702909868474983126987621365858898310397185566880834869737620212362462343194374650219128687070082304385682950011014011480969248333124813517364937911435051293760787616248198339548414525877363166207912345970012573545348172975551438681278900918123521661280673966475051784907781444337196768109373330575961193614969761740888649435630354331141883109834696821438856754720968586038034890889060531297491093583014344359717730645574524804296094631827274566806443125525199914839808297437607529760582170513730254863481463821640584246095065236043974377202757320867137789384474866675356593232477294315018972836285701812745476682757956454517857391293262586945474257211286323224673488266783899825383156397659413604020976250261732348411621243159884250509608288395665198016642448330979966253381320901195498533481476318022050772234845869166422167131019275937015388326911564042059815399499842375615826038974021496217926518729147261118152150875649472109848180319273385823826215034587149132258352610402015918916229626742539086432000774353767932938463371578638285553494989714448940962465133216684080015600085169506798105253583749462921333430796163483702786524860639030586237958673237292812412140066730952826614954648410807853541385143720234947019197923925114016844134928899696990526396948071240828924115092273766751455177551271378307867649707156372453823192627137721495054209644565209689172919867721273928891856685921843681992824458981640443224786646149297692983484530360252300487229140293006376512739335625989922009048058664390624380889910016185557793380926825937090429886739012833776782097481099523466497379627343214160312675396407189151829719432516693378788900693519179805660050997813381627331240679743636914784688425469197845941355903391723308692703819915616969688386226317707010897918208479007540704325452137156342652127939206758655443996371756388839025567956875213908545624735872525143373053330224673644847270527439175185648228249187975182099462067788265493245833635095215330129936551811499225756318520378019319838363910282141737012119400573207242871816291882083833816984028234865617221145391410241236264903482607787151020251902092984390409188681919139965546365672455151181919046098983660927870603067580318110374695129813150523313820669761664052038472302347496729754084562383852449744744132697797967157045171858685369165588406767210381751282534735858795654097745212220509760033495682745931407328269511016995800262317308636626491286899125488348365024223204635428719621796292147597858605684549747556733074648685192025185926014865259030050734953717968093894151212518342073958095712317173692929328022679356369260159772350787638129031612155161571433380100665969194581243337473695653652952989889766743295524590482039079659971154089708024693998881887918390037701433447999110618007207641365625622675468774863734659391394844141686163202026474668366021386844311008777660031255322440650837569237527282131361538480542732793200544407376978091880938243075635252478235857180243489954114018811620370986552941477203121508960671695619558033890568400070582158154575924711939622558760465760774949378956854969726539488426568141364764311070156364581122862550341661552937593032761691784528061826084552510413589058250260820346960411002349649076798999661463131085457199456326505792826776144559850197815726463012229972561823019556085558003290909914044589454688780892293373577997521658164869280523969833165928640821587202896512845864708537527985076776057140437500930376756024502693507702502948086224397868960976900581832821711731896778271262929472474906185275233000043559814879972944942910928546890022501064578058730923844090556854294726704431156767846185787994786928199514174645549306791100204993644725164268669685005591855431181160621405282911643105429946266578155321822318594716690137215028966487461309943285548103373954169695647955035699297705817282003882344014781086170669325427005101206979498956317114226108250106472735857549246440343086627483871228162494705659659163168274440645920885901685210285555556411596196720816104006418869983534460203598278738299603362418092954203742052211404849860784633967542023599344563063611030771793878975630991492393025891981804668158017273495422072243495691079731167992168071870415866201201641889074060915050131010464362712345870070503539382806263406596487148076953695967127354826101517246304948195641140582570072059472824094820472266216911756568695852893639265796292172547151855700305915252755714839035533940363813287392260116912462476375476389286187480067195351135755313747135125596669790823054028099240924834063385160221905922778297738587318996786768800588872673967435290485447381294791651411861494499952485073062907191155964613546915553771888098839327153176040330493320703152166041559631399561222557911016904089035475747279753014902430477957957364407533847591354569994977238546425864052199366633207168816138729781552924353603489433050328413423024982023414258677004299539305403966690852464816923496653723292506803301677911604867637646018728005293700567189804971487510979185841367121811657304014406381140011376877531895160918035076269033003219615584252194154234661833187115909763752499477379203375372109822959677614662651407447992754826922447922729287738178556173333642493604436785114325237473271211376042157135363258348783988984253736510814816321041226917069122808995710865407994998028295658513324481343261171022577791696259512836700396692990787701772619662776697355991028278628675177005938386505142322712367722811169157466114582037848443703900099648406469799677809146255787797991837837324987098725142981593281407955498244375580573760113502530549033673558180988316434570978332437032786388634770248035454210682255475315965108149511594853553662626192773207462005999178029069535956040198531423946936365347937949283966730413589362661333211791700569836176304556271751240844836988706556269144889589306008265100092384523770603196898918678068031850765954029994437982564719319819932624328146551673746109260990356297236957768504426933234461388261727281492049782025395752079441412907571565447634264868048982786532423625961521714828700622291713994181458294433870218589443108003595820333250798785110556363554558010415678809712966343542814911739649918026939964336867037823213890908060576244256600548914372794738099874744153591207611326923648864064031726617853475299461304352380245069501379709943820848400198887119609668785769346238517558426560936161926522798641461866279223007209754274124169544659837522666369761595997289082634233681231832539990985012346790268812687844766372775151332422931389556717207996904122335977042356964456682020338060454872817630548514110536193441217266266772737882367230208423077394221662284751058113561400948873113830111263474142416658640981234803758482486811841454069864737453347456844222880161604243101236905984436721371566625054823266660966675363127035640504947391600227868579994869149087836712172190507665000652857568316699530528764434385728146767368405067541660699062484099469033328031951615771365299221455822552078140063186887483202287887957589678688520277262873088109857357586551163077777949346917621776471997804410228193725285824831766246574644412861719999025186261425690126199650732086533313445903656880219346857962525234153982396686203799057115898133673424961838837982368844128484665463880393090893339286161337143213250158422535886124366213719930818938228053611040705423832245005684484870484814470583349064270069795344856634354813502220222508125340009453027494817085740114747142256071311661880321919703076657851339475970578432519857805391771887540853180578216953338569158761744147894823089836463221750657095556365233703437489816917448057525492997166271534249037347467922115344762389845462844250335174561439280138893469099056209998339029901913782989249419521109101192464090245553752658918211179598802428114599083864257645799975683759134362217744250062311465825039693424542612426934251267439709198221989715008714540611144491984290968359237763706662416251605410601358470128805570042836794017193129698390485125397775816443553049476916766203045918038501252539647740707231718775378388912789422062940431571873871247150708311391761649555596974893812064264916432244438054510598151682780312011598447092444357702514947070618911480428498405228629890924685546200980647080760606521901743447299080823202956356260018890509265273425717327683008290241770709373834015569193488386513380152794501841601408174840429688766568597717616098946286703705189357056298483730124012315270534452097512653621507804551725902024926144225254853837708543357101616091034948885672611399454653404898762582398170646751532330856892698058430875869463205861670507878021073023198068108636077383842325023119092902959617224693678177987829315199469251253943689208706181770501032712259599011282691229299575453705934664714652322177288413732644553196602112891109804270208311139813417074055963670156338026197254956586572770171158973509476969356565672339986155884173646588039439033751474008594573848408761819106489575152426048475222904096387545377424859241188247757310660092845316094577853435265236797655049261152793883396550662085692662888484665647972589134072242155940785000041822555218916721282402703547012423225820763770242138833419378676201550280235309348035482354833685833417451094768138970808790486584286808653041255570961097480488003766162604082906679106294480384653954412224276145090634184234114307031947266061909517597232287037339700352890189597291911764142325453016042871351764190275117439700660073888065655738744796056080658954723784584317591232526214587082881838564548622338741793115524070376106392784702328678787500156710240566629626362382642232497777477238668762919796438669888211139004810434835090946532204261019110844576714326650794346143493831299529051884565936796075334989640339076135020578091831077379328280606754082085839301764207110518759770768995488919404106817916725492264450540116915262891903225440349249172843953573939490265256803239946781294841904430628172355372783589628616298167320271723960726903039665366461749455972473539980844605928291946677819058543056002272854217197434934108814403351226036053785564546746366848244773440735157399731317529024164320800006582821096252913786803185896680908544148077741040058175619238348592971948313890302629865684551602470069600702897301024397907828840828149940145257097763116616150653220671319560810302213913118670709689842280252707838969054056287774119011145569257318216414975635887873382908894563624509956242069440885675069172567848604445468248234665226450069740427664699747936139793537356398940490883619631504325097107201671086267456054566145494567095031822530885290714067693809674439513609751094302085712540537145404359644655534438033975924323354091820343344786978824657069468246861065897824902931299937306908141764456958813697816328772191705725427591431433102619801460524569129360381079087063024139314948511897607507512365269029008882098696430991930638466567826380409142546550714791423803882929005359259304544678485511541073740620560477365985866062755811942360140425785339891431058600790272802405586607782168298672665446059003143542337309199102530129143607536204638030820445586562163559226108117971261299908319590506614032163138219960193518000910785802808878983912883722495481895490838725772428032945961190435724410378348065146960150172782606441619674743401447006021285257748415395001099397100514415173112434303001187816624513280266908007635371386839096430005443823573340825378325095378663626202156304401844449241125025343094221551094596619234879394024037765695894239936711989683550473033411873247026417360576213072032619000350521487431715384007474718428416625042036538097859554977502973098000441321238009508636992801750077606924934601650055532426772896525773317489434262073478683001978636565481218088151274263236360677280536941359340133884221654779557982015573604632307594027423588989799360750467675348167230695135727128227013315823226385286703142899840634642826824103244186338756397886201938312733002249582520671263990276829933872184998751271555790236613794583752315883288248261057634884289319592125159373228799567414793546332570221651901560765043422920508854141056189000327293839335875752245905466619857210244506638851118152992765286410641705859383633508552684733491975286825626005069694655573193361624490459090663479040389222671033494856189037173102853385304031954165717810484183367471999232120285358648070798127650010530399279981198567337648712042885371993754875885111242946703006782833454098611780950011690245944606368094843487768730753148608290431266582460190479510755811638906986642641272523983169304913103174285526734470214309183349698278313943500898076463558930171759930358848065263196413593895604981261182003993728765805849851366217931835564024039953057082588456849547208779373411477416914646715411116996352504779317687720871925874642556728999859899860404649723291888951391892995974764575731173632487747282815396445954910203886053612025531564070219988721469795807675417100883785376031694976979187414498912421457661695090406840534196301264702148936606021692375519655752148260091268597756789683267427248126178186736694701628735688581037733382496378330335123018424663228804877399024642192244192286399332224450168836381247415532571455200088380859596326573472282809219542282249043202347057059515306261766139840122565645614223345602892437477091657350326483447920124845823064793509144084536397220323291653207919475806685704207640352884450281006992685325654487729411989528629445420908452921112271419143803969775878281574130368882125047032569844746719135611276820860302623604944189146865410701676210719023899292036041190744829364372545956200694052129827993371301563085523989071896150644886587677712239335161968460684459271635707042803314629169124947418706867598861727146554679416875537799637967705213086904054575260574859782652456548811654364094100704711834970644538560850013963164691024651786683332515515554773347556474901183684345782228111876969234529928990379243770082469150077979884430082533354221653401508423709233855205099859071864767231851258350271353547940927762780400046503421457719773728514455347266338681834259776067698908030563188427407354959728016068313238554500920829834075509877364516998684471602456911084695782412790476373328561975832593429075058405563523443439892050282376050038933515119382773542752663720811968660335038094736672213070723219000057733195400479356445586056011652236703670858809258315836219052631949880490125738636677719693845020941305392055256446856652736925370681880802931336639309617008847819221714698915257228037769346565197764540952085742988705803210967041243914917346306193090454311559247098718089941331478360439390319933602805598852686781095231866789427189521717456394556030000681275665237353374004611486475601461644192839010332873703441703351409493527331377177417139062014639979556249629812253414338623791123703427349260196066381694049981852472983091702575369794004015934589446078512395183564050342546655141475738964915754634248064159275917921628673281263305492791349478725522329451598892560403781355198180567071651852812254565127943017491013627789168595723929545608369572448505777125658533080647338119165576696219260597397162997005528125021970448005934105640606547513508193622426019683023424784091745961275056506448317632421733895385127066485071862934615613890226717603973847369468328965466890370809693448701255308462924156783131008326615556682194433699956201439532495337674476951403212597212142887529301514587206847799571409272602059150538626484043121364496233335942517501586964884067652878359551746995682127328201756938037633196885210902078457551487003839695364653343370753034273364523125668426335853102996977989356824140326277533438613358735790958208560337043138571833276514857562712207455023320086869163530190601646396400069666533832115422443232508219981945232049936038748205584720917300425024576640245490608754185084051184562107785149858253416584865151508776241159457594190624545306489363430082713856118335917817116011531274693121347169601094320805570035153820779380799609596030481533314997831725035786158224471721369504870352186930191558862131370489110668782154084714581784064106972082415240727782843961998604603941377160670636515838948881120077862985335815451306162789782453068222129389460196238512967160173666397176558809215670194893341919261408835692069238392265158395384736249342786350883478692295152299553408551311416337646704955098136520504163385869195607121868260158769047332666097979745864188873714670353090564843701075956532448183268208909746197327821160104005327934451720287024784691357130707738374777792666762043699344083481437033985501297957527191107721716559484969191294694022517405434775501306309458203341520429533828795105812987151073290635609699163741815733597460016058068744619689040313854096115381930389288876254028974987802911749476510080770048198804804364236843617328467411271833632772152774779878638020277096796028577866768231823478426465324703016071167591401670484567933733365407690662397404392612227732975639711322715933688749834797483944398388055885197072354562282701522014025359458607722106483380483182347252589971258512350650974148591052041572596962773343745827279850631258672180109481076436375309937471423665043183218638475784956461538440231760957059400081263893610400096313866149518671403691371949335536274526498623585313021540028881525602586320353284359294438641988504632730137547725327925370577729061976300916200842933793399173902369898652910423791718394970009259860238928280806015162653783448523311808085563221577856541519506474342804173980850943676885870522365613411539453579188909969550854245741515787375139867512609914804789223030910263930489710170138349764398993201172169610837769607831518289725915344672127399806197448129780261230591477799750451586349739285224667564806052195689311899080505524811887411706559876892191295907260657793150006057988568037979127224782710613846745441714332510604327193464571008101525073337496158889662914283797148868729061050540835379436163219074454384999094569241675706168668914470817641687304243463509559265147915676464838111625296483497421134762286114625254471022031383433201839882340132793331938813320270300884421804386723916006965864956703988474177013460867910530488487271991728804054003116681547213918115746301389919616827554671366716738019200476432611829707936284517078482807635377551514280362099167534014616157545397339762888130737643670404940252631918029101231835495312506126015408602659115191641219899463666279208017635402668711178619783351930108529873224691088216379864412217804713315349978752115013523243102361627784180089625661721853705844335809859945115908507254804748612116303854242282018781767076385017505385140854952116597003697236289083943876415535955644994665257756816182251747948379874519732163877538273529077462006856753735325980200446560897057501438362101228236607770896864843134533662669461179722869965184222277509715505169825379791736274360208666038865161427285292211899917544593668768040298706516059147997962943498624482987804504520320589507649046887276554438323176437001903030364342546055553824331744208117544639438024488266891347598428784902490050252695159577690333490099608992091235650226343057757417983245887336445993178813450462583712788542242342232323416797173350793219820573408855893063226767642600838542095175207363397132031276102887979174608265888436004925147375766096996847769954457286443821431437363058490133057929117812349515100712394890996861758613542910001258894644178458840492860102470667345042280848701734954941418464585895569169397299021942380354868247884207056787711156256825417754244704569071320564746964122246038986389676396054441583605065761409645611501305244526735250113226524771880407371591288419832002423275077244669869046196484022489055262292354956835215547122147824811724439428855230569379671904834915436645091136274086947001515340434200436734329280187357328750486907066024897099375017477867968520203783502175037021632874888332754693013928665322810228837936866421751773622422716780356651278987293091593715733951867176168827772011258568445942584175604310770252146821638619763268637229707928067733133769765105770374124105341869224510454289501142374602473502816214962472017127587681718299178849493311615554755311436141094230876105356173795549153104826561107643218444192683937977303268646160872575247992748805431309637666223432412744187646191524942192677296833595230577585175367447539436169286097529312634546250196256847141872613123329556291924107451826371775342983383844763296441612127372162894303795147289200586811143788354611766125663603726317475037497044656230271710659685534008806883085423726500463420216372090549100823975185922402628009067538264458308437182657071018197763234243653793877344584104174222422081139273702906384997177354432146799245540757013770355102747681939880083099158493448048868098895199194408620413300037356122201817471900966845663378570616498928799737390770184698650345075882120320054896280973092299999522986804279784453620781286603756655761119991763996762745485817694152559160277864975031670888381005512645309380166800319284087293675838399592284939638523786210569044625805158859504394317756931388045974862366556959646965669083408036004731164109831710247360072534785281848209161393370587180468234563642834757956230389736152402265681117041982928796760323771738145976301211132629811699948581440507474890040961888225289743550159438703201436494667031029389750938041770312137097748806848958334235303627998316971644410809335706042533336276009105821732939779443222213729366548358126154031862880591320204415687952172774986123163724142553081492135149008767791566448389760179425963789868450660124833859799181400112143677475130887875839894931154016642140098386672592079560247786775658261489451412873845483770328099502312660091531433722447896246146964916269837195489812044383849955385099456757499913491644137124607214986557117340335827952874169097904039930091703078366071322766298008893187184973487668738796096686541298607617655023089030223895782953371171209052289917710266302768356415946233715645142127734641811940226762380305901846692720614529444537564163614330025497129446434337371537482020946993244801986833993711608882666085525994534769601921600105222166854766178049201865547808900481021343514928371909269627445570949221561407788708471063590232470970140875744400758792082003806219207295132563168797747729550489780900784338528798079149437031108046983187462306822059423828031582245437233245668019249963287865056575614858866903198589291198158456548893705566087317680439344651639358913994664131227621654978315033189523873981458325933905357005844351171321459572139746347595773478288258270182348513130717733297102640730012943422398164372068429109334550754377549136827692819155885828261623178350944066429177551275586905230551721604292774884880503111104653756514229069128082793919901501168898354421306483073729374872296641196797579673220794315335481991052027607503795027969709750868840706495004624895322286516234088402469621096981284834953268048712062079704106270566427016625194117563533287226082678910607812678240542574882230595399333831511236851367122515461083665995444568372309485303087112982159443297958308491577347421976706718050194724403323831994922762961952012391081080266356807880087067076969968497478233343673763598678362908800044715836096264403245499856432731642572892189718437454868325704990092221416831860792768310444871829095535373052692622737567837898386372678908968570343880740387602179944852425710905279641854101126110655252066339314763227205709133481482656523066901293585377467535303714033243804761675569223185550419250139784686990733660783946971123613537057831664519427990586670707432426603623515896016364382858236492592345568210961911698832286444578503286426306240131181082480291884584460727375726769376041354241483998001091095165749285809185824952515722179227018884731996754520301931302401899357316196814738068782419643836849678794654952609496081433713825851227672375430757945578233554746749169803317726489022295835538812687929072717934674382511509067346871653251862404135116742242652711007284459704852663168143196454499121197804115083054418092908267437667977083339055754257268945467452369727480777119975423582982064336139210423738555528672955273689352407238737151370681411627847317206217819483975701440130815425092139451240492214266011891003490321333907529324009001314620685274634793375882077935500238000469479779396704155613681315259018503313776814463423990071808824816556181140442041312800364828024641518916414185309878923619846311258221039817151432670629384667419584138420580819839704547481614443229923168262907173181727096740649198803233356603419560617407436637049384274472035876000488273894303055408876785738654300589108083533158427472579190707577861547014529906973246402181457155245446643758033741903183989405299812703915663403809786396571224416009921942608887169053011584886542777038949226190075885596932967268492635282490787521312212198984828634225223921352884544173305132806469295737856962820258270486276907740321210642301469088735199893274973798154572433414130817730543240566830189867816615372291317287830941940295539831318521148459990071491610112949951958371914415478170250811102927611026475685631131228525431785622570993476718956591694241279046952310925071599145376544676238841985851789270433607679018709869540447072583366691405846089904647150587878352143258265186167587349653817271416576890188810139478477031960010355585084551857281926119654243579131455309524646059604301646643619752819371942849472659258568741530327394305546790407556731925437116663746009201640699831336131733107085888809921026172855828579807256042553689290710477226436897122107971789708147235579935132209833701943438687089903723774934605909717489393939721873139654188717008839469623647204066895632042766029835083838071090148461727493616253309294376760611707577688192059807343916055907141294992273270956883598003306244937643936249011050198126137916864000152538623796366384184708877284225884299205513071341788863385560213644878992423342498576848680190194967520769592009959679801008949667850671669759648372847487929344526861223168181301199178197308713964732728906394127200564736278586590211339809002432590100815045241481554556877685258493879289943845242581823989614444286471582130013828603012934589783841826454342199308205606238047985098491773312227046068714345426327561374875756681808150469614742387057155597381623586520269125274087371143072989238184144479145508871347008313223772287963804799137122650352194326711338167990623191945353608871553410136297633834712265948080601179205163664471585082953771751940123989533248174019686571713549098707726690115734941796462272081549999406639706988586593555902056385996731344273106742153647780238527766863910313535733178478762574998165821029229745492160774090764204215245175455565109807349621550757518099075176392476804057632793636256240903906185743364137429683734593391535038474298992855248097051970652682958483552644970726087743499997692495336338564213230671329302552393659132922351940904957572476389105009974556217439025397958928988836776918054202270723729097256825070691693338888059640287650817273163833745829627355330800167004675592995270614204346090769017016959531487947016553398304376472740755145175393665249697399467397752841066755973511758229761773262263114862162339220453004865918502905947642960513803977828289100127657246119000312870540405789718305236922453655046534413750846552021019378946759403107741193536701076765644832354394741772344257095597300564327497658296576770138066756611778665198517826061572574515320548876394892914034098154124140772872023974736159715625740833866346183324605867150180252220388396677251089783251210115350471182934439918696522694946192516910724250412895700278091718516159746597395815399045567223271986048758136812643573271848142564456382503327212617052843138830991085477003756707793046681708885253145995475904088347595118358549671196431618878304938236508527023341975612073881669620821368872906439818516268109058718732833626313274847516769335833467619278885421530113732889519597450944043226204188418782950410050600677119591293412728427837745618635099129726278936767369007770229229925673201111848868660092375964511633313227439719554175073825550626088891194637062977186095831340625827497167019933097644671516524337232432783339822241559665204528696432013208890159550769379741052821804651122214848749547561639523996536159958492550615027616377624445017531300877136767894642655047272288042058317701895830466562930158638419511254104998005454708017520210564130381091581741697074631151769453991622647817795740901505457264726053201691652107453392419285966193342562415472385763152572184450953570558362750923791912093805301705964377638740768427731831861186979475945825914421091997523225828815539861208213468924927210426675513394766713281066299213451547733513892372757408131232002408011140146399105436915439865849417482285129178834755538981507665181758546077421798631887465609333399323983864511302511301432571855079503125950031481796596363510096542506889477605211342257443637377104310888734398044175043453233822896024022181907576697337412736201532495823300326228933511506134928321891567486204627923883339269243554882244431091383342119692281443165221545057925419652379078134631658082467023238357051393207451061672459253777869290791898872420632284814893323672313921738211853391053298871701555708112748758985963295697896575829597956164196494036631135386984927338512944704234027165045863965128590553362010510648228849962441007185596059724783189581486516669468540294871302023225399387493021680410588429348051169687189994443755799054917319454378148399846532448098929879422153655555617879189689755818992691907988951089011073120543098606682232350270924485859614847571489730694854897623542524675352943202343545104486338863458625288050007357981827827524921071492937341206183899090107997935217818132912688361381196669712318012780503930053837487034940617722803259489153442530141354147286490077911236055365148043257438551777280675159730874845700330215868409415213809549877833638124677415384190241069740651477383158178519714298440730616302473269920331194404843358575263735707580311966218757642297204093489876207938953536470524557294798318853259196015715491875220733341005640412335940033844414119590438497245377629832106196052496424197929435971803965842058325459631726333385985976097728219797157683926828338919893196160629444231149882679993155327764544125567093771805322728679462692300755168827757963062204721405235471660993931522943938200451614528073489077615651769895199937939390315133084284306917953296567023682628032167445121826379837517609645359265234344089252683271656193148257872347505649622262786666520505591779398790663095507777529166066744026663802881926896574246980991651924527154692823372501185793160509948280919115556050894389602496632629011862793362477320019217380682359634074025980914526993471584605828835147693155958105907185364986155030725555921940273598253417132802717100163796273031784373314416761323399883506862650623698393590766505405513363753800006896265130773038187150673891249238596794860014685614955838891400037314914149824851509783740811770082040598556743427280595088933902877064417400584255603297987887494622724465894122880283084868465943775348717641430842959031428715799707871116298991711819048829528245982919604176296838023554050382754577310370166960585639613807470026704597859461685811310547173743981756309039514019158293554466887179226796009140050099334376481277065298809457378010697986281106471926679083051696395094293966382702454819580253095183641964908722177893651859019715066504174773927714419172646854359700200674791928811956626438923965595228322221682813729456730291774509616696077294271703351996806615346884222554605446946999072188819237162998603274405754525593029897147728980326015775700752542679294616637125882438116092047780387271371227001014164219335407082714071380067627071248055118474824638289693157929344810857290328436508759678975616129306592575346421069515338511786414571453658523894694151299340899765055907874691491701157616729777003135698633563718202420798176099470827349179194062488751477511603915796805918330028422712761234248131776748044192945625715351231185708243323007481713249125047069151949175362657058672799915379722645409827133542824696503547863173736576027428551251099960082220938769944752035458723568424910557998210526665841903171110902935663018768169049361260640242635260205531731405314801690976166000291497626123460188304316697813740133378429589635731189158991353343447975366395823260767530398609966568279406061449648549602788223906804121131708886703774519613074228700410372065370225509446882720654191212059586737063945408547597351904704582472489630830494919736998444655687986611351120464775825270470463513628449529461620079666768195799495974638415180552043975943859426326759576174882743677525976837910694645127276716996023810400776677576030937615480136677507112181721733552818169592617065031114561724081305832890272704933626754793768089469320326071125004577873880586224079717397368360549115739165642842854036417520578748687335913346981213717398576409054503772747762224177915662386323880460451846762855989799629992409917896301492973489173734489371671569091768958165619387286939292106922324541636169851663540558156524018796930771088026278291680158596847544950453763060874751967198817939335397796825865581527059816191787020134166106576537200196587657686597614617555253261179342616372945431040724794447096959672966660855111817115015028076379738667267941166109145233152209412446881192919542741460699877402207863155067827474344521204615321034215251784559471636451490252434571123404402001772616183076217768326631599300907117137207584582786526240371976142775851948280678487685202639549419978980071401785330360121637111625553230276670975533487133013621655349424396288302126714172646298931433273612540189090534570981653607292528070238582816053788960260274355380322021558692521533428676328260599427016062823612283878937904414279704535015498442099264511200610852974894252890869855550068633099833490859023360435028486541817755171623919661872221873711554491000239323302320489577889927136785667830477146634187856100695922743187939186755204024119024118055379375590904555972995430351795308317098327209742413250879509191919159508161652170380845289653985284156849119779064250250938918967681214674255424664361644083173479019487540779374599800905894143437847269192707249597858691602580112063465793627448726421122235618727019482248788218823247867277062003575398427118736893903525529394525029589851784304545538477724351601058624277369740030668744400501486541131216908210250750531187412630811712211455081127287092633643519902801086019789589542279737302940402649727146871445939106368369125451036762996037342176384738693198420890589323135393346343516616755192754938744962046573849586112497222519982825709506296643588931774616244191155496608426645821751323081454811117860953035137862108126709851777200012317611658288229583367819836395759372148638298532190146923806474920759532568667731468380420531980018869765606638405202735282642019584074069972918296827804935546559021326253761662398354633037069558063873274589104698619235203544181244443876499343092592256764153440385578716193592875414146475154397878924391696480515484579861059431308526215923799072463866313588568761718163339249463587948411831736622722119036226460941819678578064747643573336425250650003308563356757480583605405886021217495364532389306120806573351648639511919646014728820094931803628032279976082162189605526013131093134170682972874704566343152705588922281285167432233668069389540491790668782615837104143396461964940216079859856469642587481385096148147246924310043605406171726250757177355127573293986546648307665789856816484011815723812970820185861984098560199779476727135304329033044836786178107934291590503946724876832763510077901249542006006018480780178676539457165855427882277820887071976099586583911877300191627223920408765904133103086179778861382411857714954677837124340146915218452709371945335105925092561369772063769315065713119131498616942843002308186166047553534046632441915094851585309937490065440048670094730201465145837144794058154250208989677050988958904743012260585159060384960706486417252323098663003349881382229299258000195382402862058483849066061092699017023556517271736857602373007050840699689405351625606934700724541763216788505432287377829719974920436259100249634040336179094107125209925150926437056213416349983321539151406977993999167347090969194995107479037446894016133463204567753835843710966608568085435278924058590031728326366547026462409211011787344349024778974789737697104751659802093903784326495403033683188196328358919162092420110054360668103207758778473983098251567013953614160338307341947815914662909532063560379604371419401374522324213770825248758509790363259865619913595163661109042186428686531090191962603033543908284504911558550250514872198062166144840627237608005688433579093557142219292351191544356976723949037040173660236223600404968013421582418047474414700127883228735456751706023436984817566437172485275737677482947588945916083923273088576515681354118980175344015851955244703457547508017846125043771111007491552132975798054536506635333863884671211504788658081044199292041744245520864831954453242267006872336909586136345887405498036987287138718855628184877825674118023709145542701051170015046727305592112714945057156663463728102103469093413339622437061852724226324823244838558487549302658231839117017906586052679718763876293321572823435991293471469961554415120377853758275844487045428511628933267743433141374102751553909380230553635482154133650909345683034392177809396338881810721020027302515964301972620054505721646274183183791798806193805222539293403830162976763358397681866318231437855430632213621031423401184737322661597618268765648847438660960160900045317831791114529136499755111995966000426115116405381909423408129425345158087248343097689728544645946182119648300608766292879996330428239597713976294432128809300725258486751533262364654111420501117881818097311624972342593942594964074900254623891827998153287963585813081563243421125811681005476274377291339213144354830126117397116414722788719040074318039459660903561035043764339285553282845260350909620224658338064639632303343451364728824475141076735637542575251237590054235976636369642346247297497050555097052967682496296362005293551357101172583458652583935864453208104952274496854989833774150006185323354980755374012156962177690026389709039291156019262706228592999347335536773966711287660798141362643069730696650128677414748257833585397237982415331150886073656645424990645404929892959537403842462075886209676604009691421602020640383060177663706700123669386842009168538969143048219147721080722251855704910772009605436365296727084649652705583346262608677621651238924504101682184084675397406398215985511768479360262027796206049401936742895086736547082009930516375943903379528313249773903796050732836077449249366758132805781262175750376907723266822516824279167187297522763989221411398664073874409438892118105591085795779290563646691142847866919050161417751205954822746279383359652078241510012609897022180021897400000583529371731919612233238676237533749391459491925250919635658348107240488799301253954343588574399191901049396551437262755596454416928812921702948275190742073108852537111164376328864561490806773430019487377854812450331937011251386378760076006253408950434528054506745932032890567188342918074924233794179379637988872385973944381987689654259243052958399178170114066663333387749428730770457781983586475373602015703966584431301466707695215884999923538318942702325343526644546337959760495538558737182688557345687383715860608124105039288528214311177904668979545512217635335559076001349358849677616172426443688987779765600260141850435207565839432028997697773541844854401333477134914788575639440398355163080471776984583546726247324802487937872562016038261552264104235220846471741300162938763273288980089844982152681740639608678001349829084662879263095818750497410212982358725312726622565378935666604945325257013336213069701325133534951293111336020452687507076967685964940402819321498305550475105859785577469108707017348586374998594218487977282574211136356629529033706706852062009445949311511765660208020547786180713077058308453249796001611589058243167626052639149550864264558678789936868971225566378085962931693233125217661306051574257003632386548440627098805683289549553958530565653938064993880310776690840796522858670294451834198766490849062587043127240203770994148036820501518477995768816032857762843065945439815176696922203523757647422807759679214689068084821549526807443494922518259549444479416207255437701532210785284042199030702318070740689391841142225019040885966878266642719114420516935907303552014501543997305744246285758255809259183289575494121054476658192368163156805610180304862431589195530965905191073379246298336795898721279413636477598041359170185275402546320242559767066955110815640957468367187933931753900923800450440988985189586154146769463311175006699648669451853512716304067622727109208545477978786998602222174685889356332006229686805740887841470058504193649463278037427405103420644986808146960184636076136140669162771640993769052666178147647379327362370907848095357019853699055910908702282761473184812442894936319516438484475466917978691693308320696715340975617551721856257885664756925650851860196640534606985598091772959216651562055978093137705004813756254899906628252359355191519042687348055940622061054356286087504321343334491588494053677404309766586761348110830166282743475430899830089367238127324960591773700267635248670830050229592371344610674994123640632463660484412190576111878775271644281851735930947397745977410896834296580315028887276300883101459011923792669827682047750743208470800586165331747728581796735304524526573699738995356388475922811105246817073859631067725461790065050478057037400842775670573242244027646307475538320790401509358167687248855052389466728027456532795706831707596124099405030270810694526308103510029699714940343269837265221447238453443597256695401734673618446263401204629336037691181465621291638800271763983998852504596396561325489017494244507663134720478067789562549116306874402195968951115878680701805650722576064954205388701610206389622190456791175166121657505468488367405536343425519473534881066192434616208862517173777868468912230345094540831901785532015229786973760663454111549314480789315998560128031578542177186535975351227820519627454815653790375996383803948202237310053797997651440955353616198656028030974102294723955825857397496013808506661183230971462894653962199056843508312313696288570120231392497794255503022075087479108729691762230999764749930304073439656174564592952268644035998929289365784442323736221214407377747225341263386624111239019624747614380585142481133945998212022126164665909196437857984929616742820227332339851967233509853074502406715144802790282476506373737102326109719784207208273219806841827423146765834769696191555481890089793285016265584729764335947218189025507482016385940259625657610217815353081486242887754581960001408215298105274411958984489128743206016866321158117296417305195628879896359146717351288982698128452729104137097228609044615713457282788226345180212556571379970484386299772155818693501096349148954334124202574743824321380141944226571245096366094623510498833504511212655167675881982639071997155152682614254279726999219284368479345741486134984724462244863847374926520851375392579154614575544764015063134069454106185070947836194332316797697557140606317889615052798383328267131561838849901836552140632002720301266851119037082905838915833017277651154429927804148269117759670745366977632767540489720678367693645457503797489542965423020408808991071224641676027805973338289033423092209094653902557996175528243779355687311316182823434691285224783951293732417849673388010331258761746172889761496720606947089359089797511983134197241907019593190725800593868976514235862103653440615611897114155240289235451897925422165741751775629676440800655212230276648733715718268603204211867140575476654675250249449609754027457353737899318707616601663631929042167439190477830137212811643641568421692920803361729024265828985862953038069222394148007872531812911731629914862441741702785595374927762108732034734866366685794553698583565935612846294115066745830874324797649385508011346190476185633892435778245635340427882290252112235298741444276018747278761429662659612544213284186749467987012078784208080184802631948788217490058292589991059936990431510561375597781582529826928526408518004039744617277045980416114260806875024535903828441909243289222219842489859498253650303551482577870873553808751058690092060656765671143602336537147092575558054572525363446502561773407741403638109630575191132693908392069973313081735797011792824459318903440798079757581435907934397730590415515909845189908195904234167772956344770344291114591507707220955727281284977117032828956579250792793086143402226519620675400665076637772274805834280438038195003521195321275002759230371772143296538512911006299378713829802181894402560928085702499012659800012033731789465866392013105938967515906637960938084596537072347111792959951165937774868909801603795760176241729275719541721168565724990627355719969368518222752160750237796108185208646512497278919420371883345557648400885773823786336653910699406359970431797018874830292691265662041690393101173549112626005911629072251203013512242283486153188503515896810864917116232081579887641933358556247967100277310160427704586446061283701726422230901298984370194876064007324517879955150359918798058981535337572082140838841023998390613461775800880558537859728391624540560954680697943389767957016758313412764499352854890156177113539950889393368091401779716174444329606843988193611882678697838498862328165269686781728117667801844398490361467886177550427879658851559755944870219665752612562657898903179131609194516092316920762751802549678897040306505900840821251547569955676390693179012866831430522443062846570231176159086384476165528734144746377740247771425149148904504874997471101194923914399300688590724961393200854505549255230003512599842036367141308755598249344037517417804949828322284705661453058909043452853468714843636785558840394231218408783348006925092958483886569461003522334462946696073870013330336967248563613295161285045652757164194816105709253408210500541865976464170016106112401654420209341503179115211826735035148292552919159650484409445266624271558437139903136291461916960027481510793377222790630134638737288257440045911991312702102205315336179437083704406661317273411384061332153214599062052714773044904041345394937943987498731699287480701387352780405381638072755254090738577240943247242835744171576548354853830147057272771990452647025368131213949313727487826946005256665598913154864218646501246796317530336706845256673123928992045825191441655081379603448752679438530347821992250831101728676068234655270866680250722264715499195258590932973431659575651845412003954606241808637632106259732568854791230707592168212248051528980244408838087081583493201527711324917004555018939450604865996430335077337975355197836469431822721606442673613118613717963071386563848241763738867211380199530853999367425710671750364529496414075933061679409935434655035325488392389187059268365150689031221685077801645511714146822956130167110435416667648392280242404149857335671935028389802483268728870268138395363105575442177770134729100129224076696509994361613493621937294990980862111094187708437698338190751209388826085931659933419193888265583638726762559453199586088634780494455321490003737642842011083915486481733659446857928638997610412420484353657195526657471374657076722547266880866401593523903247725553529787731305668614234189550363486878316983573937593794651974953096108191001629404328883288580115125765781312640680673122443609380242993403838918573006196912797080250686685318383320042734705806739075600353020785302936038806605305810834340297021127322552461010949567551606574158874119287212489034450195990025875518293133670171801249663555290532391776811618688379518600683943354289847500955902940825098555747088430922715111420022223871558369606449321893198624384686892311716573570425043768844631382204075042619298985628254513104344369405314143615704757067244788841898701812774500214223135058729226979212909115301979030376418433681537408033530830111895788096750298684610770643192760522128504643978676922944600994714006243643789131575734917726778153585444119447038975683137757521820044089736048894713086402693920081146980101387368134660263074189347966322855243726775734584678415266279585383060391235224073092616940398328489354523577502640249993273995139797645539030628378658924969363155560816301021630853272036586680356190489960770042912432607543586307529517207229389320968801653257406254886301112077545091311309589019841088326449207403625962762665286145300209954424209018087582190255381394086975147453059145732812253331717309097846169661526243917868147168096719717457676346061669628606502672465982956520735204252629784685875341306962937218269263416623974334210880917041839532683406224404086715647315176175024288974338585607647189170681718501919684440873341524235212725411216381298114113958435672587232661510219912419479714506222262908601865452681099091686277746551256265096250942162944463843394898318203887489517111678702440512076466032505883994297058552125733200973716692020988783835632169898507533525960972792139952116836016847179460461420794675553410169230627209873605740183546314969637559480232843940152396599361423618155263245244246671698375532147145409795607926695934015909119175430739821792211505869396896810906430121099193720546029841845696153662223338688122582110971037118885108779198605151679808812607624061421755370342813783998308145827108512700073461753211113859862169946100731056088175690452197145497490893993828872720407863802845603598958731425692922706705218403657926352148723647908098364393200161145353094730240264687900995964756058766853794771611612227988824171631401712055425910502617291468541013103073059309635507540722548558497551184695863018046953750938107955385078707026012111562549245065886179954191615492954423409137122782374258889435886216925313820165080842786267392073416595975966600421845732893227878928057223951933516043466906755679306569989038879210433941221255872851423021824240977914888823803654395817728899907365616357400138592540527769676656816922718041474376130826494901136001397913151939921128758968207954135914470146945878071080152892457496216578053750974742325815851063220286870307896893849515347052951603254399584617048510443333947431846264933720968739790531572626687264301607072339246144617886684968025692986487941293588478048961465062135454588723718420635322166984591678265527343506144064436399186283059230545132758913345204311736433330484799180500052916904692151312305450724067494140702127893486254002575901851127679647690386410837056328044396011081188283725383622269039039799551108936036863733493427686538307919984757718263381699250627577065026843492299529163526531169016833884237039902152542976013537833487260026921574743561445689805291802307060014973572835371396828800411361223915815915612222575490705847621914534358561011786918691797114303827574533553499169205363828852861329017785125686462545533180564180897665634641389973938161399795168588696659999626738867603393946669758553723247310536531073603558096267950366050851662773587590236706633510422698561281864542769523591593256280524458804009754192291275107199772666300149702465099733683410954775536139268461674117764987900278658029882539622341356243207307942117997004384949972035131335932240750964212841757421605593881124493187601307086209271679150057842310580609301941705378184389661929116371461102029935142885221662231136867496501151374240916670032171533931561845628351078506676095359921566228905782234592050280594318284608556076494203160932647439632724181768354904962344940846040263408768364222111618291228829900242770358567835797754287697689482402040142409924659571502629549249167107049505408771120916181551039675885692433328595697685105279343310025108954396062475958815871378522984912680356803277364133934204784055761253754508538974623922510597708289038459632880598893707154630388496368609595363178603810947530819720572315241386043308985712915070760826354596125367672830423447580620242933173317360514314302915404381085873882495231197727733327498718106350970342562653292210656546438466216010908433960878044709090697782013051782758139866692068045261958534223022485236544407691348977120591634097753952889330169782336015701874036495034983808618079269336020675044361402261187049609540331294255936824191643597059717161477409297867542433465630995644719780362897679024758458123284740425671075089275415668087876048913930100082126881153467683404538222836334278845364489447409105934647339747656938838226976439928753786836326511478044404421899011982058809105960145680442630736944549486687360748059928901414900633143248737239213559519886118343510142733825755776962915746192006366732427890231587937477133884811586340134817198783868956808434465400339520842270517745451372155355538408696644366928292431440773227918968379669672201156246194906634216893515876001218578631971857917700327755567375462369410215039764208880091439561244750910041041690565097070190368487164216166510869344189918472336674344119225456770098207108267271590345531330352146928036682009139808031455749565189191935188250988149917590384906016706044992256214739939971459073088751879430053240848784326448296442167355874814731943068184731234498465203326202605077282082938575267958226989280040766975728753314424298958986983779125920572080181415868395249077194048961097808173390189024623701592239253776061906434829272998608992842959530346311530186385654904958973130312212288353706995889076554479211432626325043355873040769198503351937794725531326495856745389402622472330739780124661664697034126559698676459584305605521468721129013230057924461152561685748485978470483855483677891086291893001498866113346752586953691111888830321692171437128509335665840038288703436470884623361957486464328304840237634926819692729185544258229950943302268924125895784080153467407844659544245785470192458095385361604423419578719099546480978189969837476936586949623163723524332983407869499496282159005278849010569807478255697031798753183120282012361461961481087690420866733276095109501541962689124106036640886517368470345348497218083973386039045393916921132599810657989953712202898759505402236548583044196514708580049445378871959706049274396227354260960616809587354781148233671469747367087720298423707878309853793922671791196065633415766182714897116965672056102702036722360563484197175954868686982063032559194064213156630799254308955552248014370661843714797810123698978954723094308234662068494468058342259892969176244345939310699547980509405446683899880862019027245861504561061402676441994383495386826464736744893321037821728521337400610359228461318374042797384075706662772144036712435380129250094212312157367244908538267665811228483364189664334960714702225991691491884913865478757701123723777375660070817794541934613201609644457623085241112805976882727183175696319501511306380359581590867586100736034783713643542588158944889089038923402910114746574738327840558022782945143207124428437409653400686698322233742150771803828163484817761539467839761040623611318309939886311440359404327812241684140639330882858351197869920292901339912165777010907638746038310887221935828740250411955045492677242908658086557539752524032797393300707333512001689936835004243640306881992479988264656927539161237021579929173504307372271344732584158613299591832143485240843955135737699676159209681086795775575872583119734835666844152104448542769871364379871121390029119956425755401484771901172768285347813045090941581423231268243146321978420914085048738619811296086636213481386350794385629324390669938026149369004679212005148211488575192239360098524867832556857250917311841069333386258092294008196384592614357910422792092465842941645031979674140911892098738118858662406372287329302206276763165307429775187993644455346443528153715290263924876348714087103665009902995537097761164528798820697256576947428897754994007705146932225456223333284201593139527224209960159651095990790130159523456040663828035200013708600424518403036248412685871850549678037056935681193039702219665307322269251811979326671321004848947470185304676129216377390251004013868831655248350538347302229625750908542480798867551523808602870641210445190866674318602668972558051958840461538429718385926727912874385617008723929735910531473443781790487644112947957513469064876677467777577437888588356831863152815154124265499771940375158970139980071315383304446313118950465592156152190258684897489978369289367348589068613447634950208873142624016895945420035995834889213534718315438764898601290995458578652738774025116543638571303587777831771424608641128055193399547326760924830695673123853294980307601398290462083689046053949806433867897034862422783640846766236931474401086916731227230912255055361550076791808991552500040615641193616248616469039588125055195394169998973995773308190210641598230902072374137347005168940584685888609052661951876603996110562744921883064659041654129463335827257431723530879112707589933343500384132498182049930105749706007646494340454222745649898556197988319667326004603157430525895505748547665144772422221713460388653549208323524385499043527214430094193738184106600977845449619341504955001833759921241799854753486901493389505227822912826317354392681392988521247507018537126856090323300450398700376334337503024836399603279604744082460734894759620416260485844215228355097600017064874921759592939518661252133275429159291529540932344649248260549628250104278073832221913685147294928342197424225909665052382220626533770584102264419674044554386674903718831997995004891304562133726997090198917617339420432631815171952635368615341023431988733170118480633143681660052314474968957061891807216087754263294522370861424791336208883044495577663095103392105256720479940346689605939461322064953623258045596111750999614308358973696261329241033526759187045965384938900786791487929699688610121639467245005755327906711052702447638716840205678921627101256497614101233081528533239100031986829119972541810681491929938506552801399853947953202620140947998162371456112763832446738535631314544246536495999235504783416723135324063325553738713275828268623303375539652804551876326816924276738406510198711201971253215815685347913602694783045724994931219329055225289233071186255685939626780655612500146491029856240968277022872140983974350840652584336786149356756986723399017707150126411464819329086779875491601397740213565792089996558236509874455872993446429160789201811130986488325312232385731187936366261962413807197906092254365878323610166524533806749798006682285020731637601413040829814248382131950392510463862378612433313426438327475661968729825415382843189036794124588024928460049223770179593416841995957444936675832572206675588419797276129094608183442629347133230650367981185515498700508601516104320663462783768093683818932964488404541265524374059252991489030583562626824666164455069181944293639423499152875802396327576558494908620541473089862936709908496991260749835990163498865066294456337331781839561561449181410352092944775442625527445213102101472751862690417544580396104830357878941238184530840497246892288050219240751120523310258328730637088979942528820905581563693449063682226247706753304121219368716543087611817713287408860792768638637987534191670023855269286883458930581123245843590587391063189098495146118008873569335351757815308436908999597550514088568999397913011547142774470544862347643395397061968829491368225901597257900690519605876031440024258798956252360294226739263403767952181937630968344356888008916375254661285660760506289101758239786592457273360722493793219467020483999388437079898039804917856989242637269565679955130775791186048676932070556117026293376383084542827840782779967879192947741852496027185744071818385752890200246702652101616276246367644880704177261265395576433183435956311592700400646442476619407518855115432469104173179590344204468765851684796381398531564514840751928039779940738139157683425458110446532664043759509373765623274217592960488161422512375053925177745965985966412097982462164394789561334241946716752999415355695722083358513087460573358166582642624412350532179272924979406259313871397957534240719977717395837549519465874192681940585972239422956093157127402926648565655136134694239586549082846714458453546273108677900264936618568876678010950574068558828445023487348241460601209904958654304459173627706422173090822109946788484785080418613308610857251429692793684958843444298878068711317471577097494047955013361326228594437646633816492802439549718000463579058356358048380698139265125180000030160794925534756007813379277031085680310874944239501572127137418837229383769407878444200950738545140879740364230655317539241802671963034305553599976574048694302493728012060287454472949597594596067647524269426409581855303282075818338875795369419989246346060139495857262246151022331255277850341747379405169256337318939832926040900550332510198505853075128107817770510895331904342783407831631713053560499897601381838875247791876268094180410211692814815346516311165414853157747882745732427754148923727344366352114539833151377320445082393073371946173487983373852000542721993656118092963027129651139084067404761405035190709324126433060046710793587538178400906957036817633806828954157752348592235215580863778456869056455383794851989012336048740583266233918409951369440920649047427963556975563774505258565976767999916005259645457798396023433147487006983714135175836976395000723738910036493508653588906308772082158376789413207168165384811685197872327357055985196498539832788912210541531799047961312434209766107187742110455458821990979320444360713839997793388748579452084045857344844177825058769408027384640193680925417373224366950607200854129572141709440605996802288870142330410061676542819579928218890106919396229368391239143058160951467928569104816862769164305089709645804775505330438546257522334079870129765486891125309608336039847400807816519532284136312903212091697015163938012812825290616499348686416082739477882643585400492142722472538401223428019063639217665444971255721245833670183950830621231955568095571869863629329443519716685524807829069372801472774106525386336228088306825855428116407387977812011451208588517771287189958968003248524857941195107315068972472527590133745886298969064440266443989571116860045544019961366237244926615991504216786686417182438917697466223836007690023852308647506786399768400249768735888618603919334028127305641466662948378577991589017795155274259822026582346600371770780654349021107293984433908990288822867814318790453040647947211665583932284366778516555421330647356247991734807962552801854659011100155599010573579892725443022518818311751452142419987149139098125295297797984938914762251477021421403292993773289657538969692363470461942998289256419628498841430191992689909252298897733453967617660601742350230140789390613802019323041010213748318406333838975258817539745499143939405107117100171507739560983053223284795599383981446199318678182904195025608443103802121164957189718991459442090021124905453914100083798563869037661402236683298826992822274144755935046102887679315102404849984130906065732792571466565329787711725382454078917892811951627829279829275390800779313367583650804727318531902985815567645555379459790064511609399207614988820181297543708935228750022173295774894177122164208509164756695713276110018609800960903341329985173969388811313848596492100650670680812060117947280741606740892237673360939402551077691929281925092758580211460803890186200628765045105476438567770128913722293722916484568371508886443348081671616237020096777680108646303450783436666295088609253361594313139826721678217375967777246352249403893122530396232702490093338682452602399168428299976161584945586295744870864099630649018504310352455725798006409029044243556679772646259398521720333198358583343683724676688557142031689666874404010399996781872530913035280450284414573424573433538902935635614252738928164248978002382059800505927065712222564319764514301950534593367210405131150891870558613462714663433137833785923626509140015491769132462236848875804098691934422324517938751444508489676428154268195468505960566540569713920231232253771157719243632728406140726804902498131868672301255115695258105033668812605031065658951611316697021741005140753169879708732632787938496466908282579287716231024805962141980155986222029866370818301923755192637010194540774739904411346608778044096847067762425847277498915147186255657651978004650990436809484491753746027417573204573579130682646232292435205711269395925984159309418090165287556434044826709238701001418579103243919657209376264896188085377438854468151324434153141654673757624949252381687930479087076043140731137402472947825506863232589941058439915080416544721811211116154809478889353220666425097941677410577220754158358448314483044102161136659392175901729887186389834150328584307528954777362074948406231334808196196758801245790358127530163971519866755839065035881811847616175830830489052221999754563679072799498306990196458664665923265142814895141862152218767167108767492797087561909375827704296543645106182214324281023301706213709322670225879596453715622900002499998296319512258449462966689387552587492227994313178814111950079412676549552202825763064348114692147029170069100932031422735385100513263829898957179655559464660498069859645537204392395039532640586435526804265347397213680514036410219752404273659441338933178797595788024164966986755179163969702848728566255623483761664592566355431104723407080881369852902053672591136038110310677436681212755817334538258364948263915318002229072669302577533011416579364333952946665066215705362999103261523830717436345012978156446998226971921826852501182422137045313836127339939507236886849896518690299075183830652187147003176382826654155509218097946477376666291255197131878889968894176439015667813007909487883874970401411819396221115442016479469810010722416694209012441661921140636404527107130493320163985044929949093696297472575402311382589994018798510748310352856943548300141756238580557769834114970039405785790900803647479445980279301279756418787228837345745271760797533770222563210755874461526940576741109642283621210469098362397999470430911985109906100583352226147506205776096131942828827972581763824146313453938163095023012465854054565740264145734331686931419599019038719265784090442710838053594352558188983257483397256020209373394708003679732130514803332335929473213207807561257168325919512775368833956667472254822822286974938305316436666412157548367252818624847462380261155864171969753376091318153039593821981715206077846557092762104400668000203184523939706258042407121513829553419149530961443089871876461268866872248400066431365098222109785350301174807547308843977883577936852653987803817082890941164135490621231305616319161712799873257906348966876358212424336278169919741131580593835436680055018248084832327591788190699112793264550841133724882479035694437614571811746402925813684267388416964934882833560738913565044627161915534609293306553625792198770683131864458337467470863321780803650709875527961712471297488246246401470193111222961015426149635483014057609309594490499490639084249001798111349801666012883593128709704907385551790107480597044468201899670158797473686041779394360159634580666313385617867898187073829780873066462362466581686682530963263456873062849322085108334092556313399232847212779070814750036499962523957609251071086365834661042023637619210366005550076563543076430924699490174701725387159185363886805044934574479927535810252387801836038589404359865284711530098972100541001775677019227808683025117412653492900321383346449431366904241238694764173188606818482030445050502677081242365669900536689680539012912891530311980993840290430489452598702286782840469980871479577139888646432415520541462540722244626880568197951311837277139953117142048953473453665204851107362198578493099477951914589690026349691377503041396500867328582864140129618227425295285015374754050957223285212971928690794606602668049884001255516560963810471892738338911349299284126264578554835022006619539040952860147657643210337833521759489160935906047716340817590610790731246317505559909099164098163942543876945386874591464196398032443269801139389779804765974385052728823685617565989826503698814360187803284973645942773940828636981103184740076186293388643192410938142739038814165123593832133267265507144295836686666181324735109407627695225677084458087571698671907866326156113968062340132949782184254660561780810530775521414144344542227683339221837074911847849083071999004498865298088486197966628076996710596284253552854205911847984619925515518633821017231295739433001459732392166942126774657168511638435568467027451780723978291396193328426380360487810491038076353597748459065907422078426037373015230676057051564495784830267975857727907562371864549146427609233899058484602995496405407606385831526748118923997097574615664652024410846093911534849552928022164327089773903277036996622343519093969789199031341140769052874976053037962586614153774003118478922639611050344208860708909502220898059249220863344831553548629104275434675723746998341764440338602212367583192923702571836266414401341645746303871213076683301406041676915618092306517534805290474091122676949474144559161061205380179493628642824690676352084939389516169265519133409977590726367312478696732810051596607850859548785721200760788156569327598501784381325012317913475287266731815629991626692267666983892972790136305958108934384041984452137365929404833056855155574369553006539659793074769373791486112427632172344547341489263828388001963371342331267332679576608713230461276237638370469528785199970565897707101681875554146758783746893225442408298638393287906006795768457472145777851174630735090322783326621964479697008434175922514991486940260367155411604880145559120912973789159954928083265007653519146010425468603343379419598053609036664669939546923813720880108703655223131103273827339416185417295941985166254408545203433234851354111027734156043598717389650639606342600837784406328982670735829056417191698339028219762066474773136561963860881293623540019585194182421931148669808802206789496818653531675421830159376364465394630170707188599916539157973152670978581755485110909565240524283352676217740780074485245806263579774762535365135267910566921936126809264313801370523989170546926002704243918182054094570156408022370275393304424840692042439895503967591397930998347036494723365878965092271171098618626430400967277265143000060346971186707384824721814015122975074152949458958859523608810698458103849537449030067428610416547710273280173302785421409545782480814839080438952173233460719105352069444537064271915546346072221958335477115770360235408807635584680862266429425108148836365578704181529435047437641623341007040420637180583785258257926436565393849526139625926682208296419434685333944909032901927659220194110864951267478867735771517661642383239960108659570892044432956531227676364827848419008855508939291153338037739778853152832621051612061882272540554783973015225526037956419193937580978852051890097045378095001676215702857238232238915259437574022525785585408772695290639223609025895537601231036983862352164546441259725671083612679262607921566000595364216342543430808627433446408575997897524087157286696374404488292430975922041184622187996381791226003305428962669916310223000519123746750729258500647645305481006561778427497855954073870218436935066649901035641628985091161874452405015883228245133787883992828867771617745947455596379887260863576025708285402788265726185169830629514349628181561005417255391957418738032104914079450382071058073954543378631838996143850706174976557634608335326461688869842662226109786864388272354829946073535840720271153854419273559867823105029774087963219376796114369121891332273932263369857004339205785468117000327967350297630047845978384597101588690640959294937007502651681818086225402310397040266062285356820521021953604130600027315423928616507787214441345487233623950257155526658344224667848091267645909167717687619717690912926040707833689622764976541057897537674533107916585308734434695467683205664597231317329627865742387807627177485702261284492137440779068972760977117664567611062576818762058749421919682857488266280323000871951580389971965171636059794794636911965588495282346981437595487235486724604414532548161452143966068554655185897139334235635410754867427508593142119455624841948334823928568890075117716131174857970328221021264224560699580945588564741766016966036940624792968050682300037497396640004459478188696230935733693183525566402852794246226020367418677175882073258534725488511676089882586916673990371702399790319371545975347255593177364949910459373929506686289533787879090894489406266150032633253256519561386938134494749481102857450925555631714064769795029778800400175417545488542086874606618553383715532294996982953318452458403386146606156243895659840350736704695509019069987722251684466047251450857128957347047090520910339909969653039042784020860468178529112561856878314949260414825868484040544657363040450085781347703656465193618597948949857509284009962289527681286590130758781880117814003467647108366690417704201084991440771408342763222706510280611421075867316481729022006233562973237897978391433570851179800466728355771337994663181774753641975149688453882547873062162681450823009712711465584882052292921691694408620224589399442062360515830424494075201603172971544413145319560689552247182005314135842023558710563410075264661836031296453393656066722471165699603796030392806584126811799095682782526858612372187104932565814622932792210112214883947164072275578425446342724200172166573612860238717208738375712993483556905797468891805421627270046166676401634058746853642917627558888323511089789249184355822043771428596140462574342429522532832208496875482374359976320005766872129701261616621566664638681521964716161547363824283739744308550558874776590456430671847346456342588619872696454562559284518555227350538410094814765036461753445068141337455545416007893030854757968834492466593314563426865304214891045203660724566154101643606010974949370101959362554925112433868434204546003032708301305524579571006695790333229395670693298094106806316588628717096278142460609441752422822945638593700121842592048604020634169260412485377052925455475485026962015545532355502343483750906104206758459312235612159750572420939619369504792096095620144034726355572745681337399711366147379032488284228798749024842585882358147652186292330783038939422605397794398345725723888074645451865486996863926272617753559856009109759752936713565372233714858966466838154172282658070300613147419760387299603417560760608489305950857593351957716347903829103750642281069325967486541531010966316155878099840475340423443137244594810121617215337059081184191257262951145397973951585354087548831954623142476066797256482053788047117915066176787286442064106863282072494837334495621656583308244288506834587959446429652056804785318053625725050401706679588259161059286323300519955210044171875966266011467293061410954218197336786200475009580610426248750785325086586510232415970122271644996975067180411657442221060984431895422946815500673543393921249065614240526354137313199151152348589817660332129601716295620573918749023919867658130046350622624509419461489902747530446864789516803274671456652211352255796239862106786740336828241316112587905959699125382902386827106597404720279253876009062042868725154985787138887329981485268631828730462164391871633491561793071669982735077602546558891823102937985700234732398103001953806308613226179049349714151952624155794193274456213224659168630988273978769266608580058384959336587203585826242240475047234861382476887881116771773173560005773341569826257691719388725787800760321502785430698196852666289709178921435085394658934888626423985296931046113516556691261964853471983550321176588266802115352129536621225671309897536420795384942873511030973304607854636706198498464160975057058095608141324116712525595080133134709251608986018492415001983198779133205766770059383339786849408094661317691331346087780672132749770131072645129834905542751738733564437280233627817466272690026782252563731493448848777461195339810533588750515198770030109268609320813162014296235629267206436958021457737550175099263374948623239394340229867123407052076526739599914699765560724243930882567730222849254851405187906632296799651756284116657529283693703402306027387845714018238080498828972195240419711327089987329242205175127437409992601961660490764385256351990731909548124181525344694782742725579047420529288506718150928070834548114184628348264347696449070724578574210232499866701388599426676428585078132065676706252143608254656693629717247544669886477102555961971375192238155253455055272471013651113959164373671969475350912161259605117668908897891431308329033623057414688957587142479004879650474170530110839975497056421689751861438809352365060432488728203202694949787636101567601231120547413015796980642356622876372847732769044752554987900190620684820869514683868587778898836365574580233117216100394541710950310078094743319893601062953631136454828541953884377878005103559195529962194634049534518602044463474994840767756847058574892356700226481737564606623529271664812223686362065868705334756532077005050704902430404705667855063364595867261757840744018800918135275515539202194287371497777581260744138500827986162872052068020193327847453303092915449123841940746459235054129828916976079019010793940928228524710896065416804898060553278566125818952466021534648577796776741876468801274088102855353811684791048269080856344506781092245892651598383533839594589742434824066064299738781191437239051042217459163540445988514384025099989340481567249869747127872474378619234320349498032711414481448402415613012732260498774029086593283329943569646395661185375924222953677503650716998397629467325116277450348843350536202268927229704842841682704204905897344783642157187491275216258433109171793499542285660095421976826350575037137112331104118238501327580274531835493577139652078902112320890137182994833445792265509221545170974185370380051961872493678846967091315323484281382484502067243512279284693272008021682223799565889167016890231961743853246973098808784957759514454132745929302525974382206152132024833270804661034468658690739145642611351653476345477023516505593674464368326542832697616477833862358652120588622944999057186458989199819177086288569543695546462463740425703789550504144875279162716065650565526409648075995316003034020850539268192507205711774062140247922247755878107991644345451921839351626685016655431296021659880045925200242918595114189082690146283648665277855573059109630105965556544434518525973826081087686921632592140297084820821728226449911946657284179837716484989315838429059918323667999029087966902311663018904789807617630396485078382750184194806772859809968691242211334436262913877493985720736622211442945137986058727549249983828372345148560194159789779577275170206423378000283806932506087096678364051172581998295310259097830049790096743898808156438951583318746879489710852597764285864158608133694894008229652464497437160586167559828219705114496956870101569116353644413637462447259447939658414338806874693026986673054086611447374129331378376222480919167956777069846889927731313043903966638001227580165575162344074415093960373490662643783243089359282107561977788294613192687370792956323706663409083250779119983547077526153913210556553637709146022336072001673926259879070364376073003957540997565817869526051865999844434951805965118984363698102772571049715497471182440449494796061937164409235915742685592342093937242370466111930938498724216524298861101280994111645127690973529293027522854674482867645037328591822198023312089202152805245677430809121472733851835309153183463346029787384086057089006311338327742862636806399776341606042596711281730654375777234275974677656992163409293876862322896354320683500069202628817193516518229008785254809920473811771326622914746327176923231125879736956317991009599803079027303682445365020706842152794328709113750514415090490112531164147867090467224436185749561184013261192977129377135173766833675189158416580901872029254986107841575942824609714921731155970493703640048451820814897756064363870233983715818676985918979204295092164416646157099407083048049066339529427337038973788782941402667895426742231795431120079368295817338549463204645817192520220377516113697918946698589058840968684471671066928763499318271948761832474236030886902570636025116686016008468760174828957877570805889149063098660220923392189229171770782449553098423852030836178743180199740696829597145256499293645999061399037225517607768533672566751326918058963573130162542118738157015098025952989689718514362006742122240183761594034945798475004353543130555430183630332073590856681684730480236702446582937932785696910084826405048368009426919847717067239420308548392464455618752318001754338387981387231602736193705718824049627605757940604930022380679328267451580461431693313178358666259810149202962368431873818099922477137369266966727074601919662531800694041764218126818498684735765536589917009201910194975779161107474306471343547470233982759088129375906677482770462636524067081443463736550960421724129514551162376522959701922868998066570013508214633244173483579629013934909375337538902100289026080735761157924056269049832274429176536445555402913452012683274107389476186094500418453841018493011869693806276594008702419344818708708774222181236092164951896196186620248849615006815860578411385429011705787931884627383284474178858882346451654252139440284276944852762741627290566375465247569396143850244407517796249901058557321438626721687365571396784826987261136144743860940117076770954738422351194334554975795196187960004294729639961755209375021144706994917352916838007819033095714595302526368460072504643507745342471813694246571188140400390902248530991596852880448793543957296130619844684668758717938493342299684904691180051384832677855603489222942414319383233083322942893345049521490980301032548776262385198411590118140629942450443726896121025061572455067709453890304174846230477106075833073697310136980641119062844051586730781600491683812044932278677654145924655113712127307396071889189829339415833943396850814991786925348285568520931575281168459666373778885698554774662904785167735675382925098914109526439725903449222071089924019258607322391006261293187622005123574673084879920645943656484192922771920139081460673803445716857186969854472278765248059318610001024967582356646339576624925122081152011554171235033414909957421492364367969111132779734432853046232925374080575062228669801282423561713670712613308593270591850041344993311443852265268432967858902659178315126898301238799389863374854119762583421950863861837861207655558012452165400757424813720583639909292776438955627905328094531718843816340617957386257826877055473383512215280100679017849538480820481283854484634865933984179925928662289457272853845507769968644042782726601758312781027782298206479563366295836679849818882550935257773771107359264332771785657170033668873933442655517910776111063712017857649723236807330303532848743543720110685370396543166929179950586378434901570399314289673797978770097852303585970641774457011973136424775218071628272044838169582968437100933835948880667505175022367085328615116597037686524259010346028254567103720494847432540915849692703138449676375630119159718514765714100848021139643878076197642099086258096965431025121654882676765435495567626460545494786366848714774613433162208667460409545164363944573671560250849515630276898408147463707124541646348095835661141745283305410099886004394233943556496929204059931388188204192334680805283925700266889510373633487722209076190233517177105379949765789777657918956166968299157717584483180983920005841886698513175077448291110829659544541728690268248696087276075094191153380605144693315113731288711463734128338022370900606297647387316066452573133908129696962096784767110752542731780611347654956062274770446675394136009172061968905049641156296751568336295458186028104251380575952039427749939754044457756640604258358078390833619248378769688079836752491925470117734041205253458184642519574999441838602783739671449697669608254497870417894617955857473916610182111931858777891476221832255535832940866356390102456720031461664946546544435051904358214381984331853706645485111337255491105710428236064626080370008078128502840527780902615620504248899092124098930140369301272337539317901980175080990925120792549795645299534408900247167718406908593998387999104422050083377671860822848923866292627368173509331034703181652811088715526558206802305130227179852796685230319224183537698634113015983261745700578365649000079054250355056863125950796912664105670009670792850703191238723273012725333802946301339598985515857486848991108141858242435096990608024658721575293929734925580963337724924065088973149498981671897880466780678033720868076801738927345749488298954411520783233749058526823852077243136655900874122406145372341313688806069666125610751138752788393559316422497384500677206839454360134400226614930074935540370725762231378194631350204040752739144916880596951094106747843614855673141887058912011973291136215691540785943610654405253780583590959485177731618634413087195957983456305015212006596595091930556065540004754625316571912616228624176433743598554890499074308177260949807163673007962016698714392019164296156089185600352750957845575882663044112267764616778320261495601208178931262080201334134493731110725686853981107287810748847623823233280211753689429258148711514333697429146038263022480029781202187331818759060452827859949820495009456709092324009371976122973265705074614688427148124589603047483123431528475974706136092404305917499364484877773509057231718750380511047682480888242954164200619471878212613439945891635525960381053196646689290364641463972240060929312602788635192846027400554528228984057634826946305405160915942891196534461995059719515865924373524189025716266923681851974741025677396324565628990217865930945057096624469124788998543675439389636670950631447627169298992191218264660382918679536084030505710877705913761051666534396747820992127146090070169368208703961680826128387288368895610718412888261328174103844429211542455166714771999282403404205631299636224386280526091828461013708940345415588123294295514939936659912818624721976217081643179638832479306488518741093401797199897014134980996089691384299835696712849015146019672469411260953582346729290940489858508343779795098240667637656185116127694849205045364241864256958255127524186848635969930307493348863861612098508720820824363000674375643248860849950663237463900483174043101737205061948408948457714713517578487250196601816358482860101981839670829334071125411173040843697783578023278145867921644361409662188284274717776212150141109365513738068998226109648602244435296356101663729545837478289894904396341863874093846280302123610112495501745254308641653447873339459589874364053749111893104213841965904902845957018595684427237553751384399542340874252752016306876534591315358407653489518261122015306654241516928257220791495967227555687869330451740698338058655417349728696141967091292752152496910425325882895894919608972564365608031989919337693379305404343976376020672144206481538394844296714466772036554518491996093301672085151736619028079762084439137454488759502021628702795006726352535739408352094491129368593188379666839364326817017699226700443781679188930389105737221923360025885635020133951674674759400660369114413769516621194157879029004499086397450288275297908613872283953559937725291197131045356733039155972181267863057723568288287444991465175944084703941466720262417141450559364353555227298120796854971197548131993373345440421816838583195778297448231048930544480161607729585878304795008889485056994452251706402562751768017120330179725874459371311791278042665024284573788002955518797140387996975084300421128070420991663499658366100597909463604911468736544704752412198484177640134505295721010961621992167804753846619375483425755240263721837579670256137059550108221123682837913237088433126291985924501066547831900657150919711007217497286240815447349228511831554737862723659340298745226921648419074239863459799599226307278970698562946476869715275953307489344335559131874859126316117975576453807564906395976870928698641440245130850852185832816816342383049191068670731389082044827068804492407937906685662647580550457716692194676734773104846887729178637646870307787678245924863852320806597486834193309260008848883300226892676112078838221293146590963370013768232024110979445740811824202165691505682067458154651588593959383090527874369774252020334820684838192500596477969165403972758177267841256279186336929669268368910735217262995207655698973875805467850657909878988848500323677701804449909040043468462446905302263210536487181943186005375680932349324893235220946139009543327329161541469579286748969583045730468412790570887781789265467712468535934153718838898347597415187013409450707699921539565668008506660293134637755501778898143384300237624928634095929661501751921269311113923770771253010190081697179735467858720035485299710560713389316326786121763112339708591318604545615051937154171067511483277604376015428083480306063267533467908756968403355657290891807818341778648559204098503854162114169745010180862521214913168956312433792616464246326830999979395141758029399904717960059597441823581764671412680540871174225778138592296181609962963916928122725301266426421301107328517739719982524747751712500598370103440070275835388124699019508120392295086410333706944850452514697635759162689451470728722233936690863381052559195254503477690520391843499300226067039508449221457646191530006956524420215584335819766602381408593562780008708521870905809732559765610828805636061105258031882612877561144543285805899075066865247905325041337112807856102994554169102054097200378611152235979058795667263112518464606427403306042308135738326520812333337162303929139863829626380562391571522662384888301476934528950336300724269813611118935540566699693026072959608402192429727819639379669974167299783018281803902186357399296312920673719470346355190452168763101211582082346712552949002443701266388484734764501852808665454396944801851334647324451090207414510904443985791325497098741726867845435557375631459324634965504048538726500797916787461003011588362736575337768962605226579313670845773191289218896537680303339315260251897053917294673020742028311178322407621676993051780501661188013717579245001226471109452102518224526103854558402993107190830800837575438992089710607290510457319702971367923922349977290846628816120638311135124983988325825096964834669080377764730805180770637315943575280008299146933863218648615924074182358433373734215258670679542812209914416891233055988562022634526292938257156935769005253946121076246965975266487074498996430985998875116352748954979121982647626622752891858521381197740415636002380384186454471556385923808664306938849687888031122083702229124348523579481069071660947330457492874603005087586973302732378961995296324233946515093603050509903282676282632064104066498825744147099689217473467666429511047128534195232708263978870049143678435045099475719044834243615160074529839155395140155121587889045464242176808547980317674128572917075547774802380508705993283163154632134706040781976679564793320602947319351774866427418919357502019538693592500522994430434070633563279155812572943361888277450890631631434562469073356715220004970882375909905881892581565243005576665911992247134972680335249139023558367602424024692781264084211300699783251218354805933318989060737486140597207070585697813023918908382036630318349293282334957672032638080914404953931255257386020182089172758746808845604191409174736652667749905872753822293751710226097353493999538196327052817803273064672834895183602244626581608633760624688909505833029970099452415190280231810573412735567495334832969108702420912760912479700699802079782475033733143394751624034248838304270362485834188074311454077120221543166579097240440621916670582151409198186507321545882312634065688814961121362911030458413399487159224315501122451953286860026124376773281412447606133041092133928207666629888296496090996171908067044220078191137182427988578872170219427097610817921850111482838933318727997826841669823662169283863456853635407074951957536288499815887705007908158056830962039668097180647047880263176620049235591506494110448278761092762743153961463764172552183880039497453492746028430357624891560185702640978535494316481304529349002327373218498565712660382484384113305562332057811579699548614760390824272007415604118879003672154813786728239565113423997504499418186710709434780378567093702494914325033405015059517708331836689820420715019807322106467476180413499073859780254163343583948628836942890870718153327921656858617171500171538170776883398472500987785541758479436798561855840858778092187042829261759214986580431976386282829175921522784078571712295994650045474755936321570827155496144461644762705905029821685441015893637707205815520673641341355133055696822598457922019671604166969660411073362867502469354217710287312353656421663070546428960510641668584564242976772291642554881927804904144784190777837288802748391839839151958308804508236876384059046837508263899292026444768059276032260750446271331097396810418815888751365203061679634272082818532207777132908749336286807691958781549168905631981991902252457549705659592147879463707921936717003282057595197873659223158754141131900865471666834083189087382066172064797772001516146759412529275095463196238914017354534246937859183494729862105115978712980902802577999662887918870492783997563436919154529596673066939832498352095845880672408716098417489999286998316112239253595555937086435087454118879466998582393014983152566066741274711361670442196361578471115564560122161361535314898403991595444676056394535939700017840095235942582743606918330338614418537871708937726391182872346758459339579082767271162612181774137211402009026880876304060741233637542396889722756613804661596991694754040288168531635566689599839299898124709104792563666824837897766582028313207285073228387733705108871499028724607917705653484576207750845447052119316709709870714982558287894918120001971125585638685176040204065884359417550310438064412810514543027289496528199938568728225651242498957240964057858623344762362869316511827896764124349942113751950215270076802658406251206726785542591877156936949102784969767459783101816837168178591421010347788073724861133085240920574440729561698765674300345907399403273365266802572501041914329626658688576830534108378449809031887027793534713718183915872721766947676589379502872605021297302476649837727296794027133021424720406330122252371981351653342099306757018041764767590187633493257650045268599429336873403405073715353802040935812759013223729071248340407761892701682006553970945653539498335490173538022731249667843576638026768060595186041323233389609194293182275840174684979521908244240376948128334538804999274379732657381707936606395386758970152844399803605568577243923997253070006458288218224996660735730252862050582891350764567124636110800116035650702245160529205227282420313261395117157922183613508910674025175862022165581409953067274589095629086342598611121602816296273239223185930628510706306765423129414826431056848886609249021643972218886438112414311089098226102207046113079022668662187321117406278892180980555231360856557578776034514653430079503745815669430690762331853794508684988067896930595984974277439553916609892127361364141253502599493985569633270031378221649577997836269162684691946830208185484780426184881008933512795428277039009613714646741753363345360534535708295408949833773120254192255665052564427064229721804090653541694187743720960452645325415069243319431149748516357249247478381192952735358899415002257653485307519715339098178398912754773945800266352178024525523285278482295294537115373237533316554638778889935819287971229302033932523581785453120971683386069300123688204114546603700721927133197617641479714356264535302593784443317835356336160137271388451223647742834555230478155049764327379846474331761727171086613579630171383063338309266216961086543187773541497443019910774088965771873699524542989895159634538232892703397246835747474766607052826509570323642668380525632198021256232818429474361769861692073161385093641549922395651023312187316142915037536237844841207505442772217828792119013137970536133159334176100372719792417476422401141004161900868014788303954287040714201033386219131066142400288986238011891519598815089530542123344627982484863756666444869394556421438262363778465044989650294774416324573356073032496182010159804086771852352165465459063139196227872663605480133230769007490324371294217407363251861829773417639425416953137978274059014744515120114070450561052575602083912673321455302133596880614653539768979324528403987254398641390399266678297713430969306861611340708687214514155229938602144067024011555737000260309815536809850173505259943563819716631472330416894424139055901442825576157394710484803842263193979893847524375791842450036578390850198594410213858078721487172298547706482106181167931953894820911716255888802126361328402850969880438200941138597138689050615782667397182475489477800998528227315865861215161296924819590007408158198070785867168932141042730865791293239178401590770952230446491889953478437295201576681079790361280903283307954443910431877350565532120306066729647985993032271293901894006453042441678007436486352022949369392118267245019696662508701565581724050582823118067426797815533952233192638346467957897323160304926034449090660754612730895333530803594841830195338277119739089928035257895836780312839358738648616135918622962982690614787939504740559851490659574397040245747337782223051019554904478505071434519177478300241369756005454819359211635811855756215066915544882516190952519817172776309236947334285591561128427213876451794908682387381871371638478460568383585151151266997405820981730469542374530073933781945705724151718642536298745789320817640184842683577231579748889150194099854197604029686677876840224060766190721932410513752861283363811541861756765222514659623566868456938645098862734028511574897992567519339638283751219533449304745607343397505806096162221703652709167571775107087755816646041898813365252265335010652137947649478909549350217071271549188793955219070451911696820417176184340631896287164158302483828565522579581001909300299390722342160109177578124491076279357329550538019639999087650374481459787763132835936586805545395389804547640514254596887989665029445162432811787277242004106293666480955027417263898165638872027082700238017231969516717431308714606533640758566566234192429155105575984909601199200746002740103098302139653810733691924809756389028674375123912780420861953057957948859213694236449938742852692057117465569573443941419721641560136194386157449186189259478491245655688595354271074214738922330449464600436644138838162331411728396026837682868078986006770376914178211528154703786004726650289091433062088982474370687265000167507072184561081538505341751174903039056103510615050633398180006361643999860926857957785926245369826323863278330301427282961784389798937524979502538613126968760214476059849291835320999104630285156128738545083465391209482511308003478962713372240096274804095596154426007596362579745015770276232771389464891848391138010163237157338457595019346143733505348776992987356968854766989494335131272654250838520014255523960325760746591206477971434460269840198135334811718817706206505185009043499064620536099295914096580756722269239934706319515794019456759612570759222314607904886332601035680356583972204849056980177878196139855584697860840699493676186464763741464762998651259067402909001910509344523601697671586331931228331105171073751019080473837234355900037203908900213833732918616401619310230648426568771233456054198961165221224190151358359760442077816934121091216751495903313998435937864419669659858342985967999498681217103888242457168630694510385856067629863377113089893592278789606389239117702721952257923002642436008213478631837348476797206178155488858552225543226472680191226110935989668615847493914411532563121499532103289487953048357909132343274428906049830128409985262288162566972505186407534406012008791187829896959463016277301223741993422127421512920296523127848153618308240932746387432054456023596333288114778116699176435780525403468450800992481869549531756602340727041048939218199767565612808684278604455904028789507848085377204727297731087130030467078415759348534102420595859618370458822165777416708294708627704592185027992731480180803173607678953649731823500076055072709542453811627705228087742284476113720425312175406406498101761531470530592882291954542368911748305846860145481248726577224079222944395259679876128311942991211943146391803355481085871802209720557935254746166552963267417278455985951428021485276404924129526250687779795893805434365643057424457990607190371122462918402405265494430666457507876650577316648384574744474962303384527696446000011945056404415452062013954943174190300964487575353543107053117826198602345648070493277172913102226243437017852263828472982152434543740514126490470152036677681631481005148218520056188536169440914570442989694626713974651846719652937873834045177228690827848318555033819043382499301492596385239221784663439360322781319205935362168980331332288513007476027474470412050243243307766975323906437270014940476869357611210492843669545940081730345276276611211143602662594957124642863864540206122925080179146323337349273464689980080243337063764591647303010595040193870862227369395021250566330101330698603365585020543391963283694175145267378744276971666744860056533479975288718278634454594825279042778327869927076260647501504632406474118084847134034589798296177970625587100767525962121637725166217399186481041076092137014296242094201764438297534292864915217932972183287908079369291266608798360049257399462212021374978154621143392018122012868847840453747942907300625872608174510680529850779062112995592763889560842929964922278151076093596391991474362594299131205691580623983684025049484847265338781760319431351510916636176169558327041083749407875239796254345927434520499466861065322660759680760725241454388628914760718776324970018351860880012033177960362250398565799052362110802106947873132642200448436431358506135969083170358711716256361226365359178795878304265961111159677322453817990757649422004066395827091051076453916185540591482236152774134380793197778675484173891826689991879660389139816816818342303436429985227846778408588606115066667175149910735725415713265281256964206168333163386677628703659600061246069310822378949812492514289826104119175603692966331396816710115121860854700901383579014545498844160331984058539841957543456284744535116173862546090513091998877803619017759603191473231264281969199378069398246560318344359779159076440162307123832864574228752910180663820948095628661192168145871228431093215686941482395582610159050558472350544930296434408207944024315890296645356525423265284548004016234306022448429875925193453977294598969988573249550557640644678605441606091153714300563692798120482449006760895869652057839815278595716222698520633077484483287664503709714127479074836276855521503652553781563291554915872087200582309419654027268089330156364989890557554317634581651694978014065609637774250448633644671943630193405170633121944881043435795050247298797666493534637971425356425385269187198533041703324321363768778181800540379717235098392054973853420273385995394589554241057537643740794111885971068889048889722162204493508983780779563591044846868603393441085921474056372179720774063343383876295026570882783638854749004038577852527156619564262078195313845783473118474980176739939437477086838463836528402394483582967236766424505843594611878384241953461167127055909403753260037111309356232172168366469498448515309747074888687788053375711205109364448075430015912411471664638093878935157690602527260280830583482880412013021934397621405296984083015201234382350485010339887039252236016494701277090801739452268773342666075470676706961952385829409380922247449402472133674289380623460925968426974158078701116079012451771669454531872338171068316470233870781695062577047027008718034538041472986179528470130665396902680946022461325245775081946498811861043972869286927623707113764418575776971302802406766276391178160248859252219621488628375566971731957482868223562365274044497239519944942790019312725016504131404425813401220552643670793960303701382153632905090672618995834781189339640283582635564239356510011433498637986781584482897516005240566401240200813421198486729254236144062108386454549052373693928095438532682113663980436453928671622487266616097091181280352953587894109313578150775712607720731560624318832794746906822959905318099831178534817179492703462932387597019509670747993230767712542750859254438049283474646153319374262199729308768319562130835285733158957981057021977477462869233158383175836428697165313849488665087293739164840900041178058514271792826232241045499986047870015970145056600128865977206073295519932460844929253202630774673711967221263962808091692557063179801273886784780692003229889782278009709389982097111183800106205003497796559234317557880653567035126842365615141704626086245557299848660931871541233975931649244129000421649164130566828635905390407597048747865749818485144700940915784832551459481978228760956829450436570653000849691302788636031139301009571438455205860603622492398485377315374204696865030404180656384857325988945055836969897902431884088326619041722488932294716733002667556263750906584428752023290365418138840844787569706755200956825790678630493027513820615696224094854808703996186992135613591856642429132984813352229694087223976136595153658910786398454869962905600513222519892956417710843910517994733185810764671398102149701476228567216868830628693418932093045334832298409308594686431165270804247274247985126512160482649795476772722581606860811702193545736418805527277209753862674807969890485215763656416938030508658704309035674334584952886610769742043863236911048730162582549044590798408567810012924835917156038576400732211900866225912999404948378336959370292325843735318675059759079785245220116779933082453927913418036196804466319869296244368711208975408618762389018540949217175946508438382711789249439004287351266014241008611582337775005532769875030741984216090726713568246198998212691702228643761987825431054211600741859960276500026426308761312012707510026989100258112391859110677194973563749834778732023607009903054782762395703077970717744669129085451803429591467548874043851093390044908949255840394380653817611525026773634257231640261281502119899211258493839475772191631673163472333405256298705039688382493389493344822453218747466919894097334616957203119866813665928770104694998996791587477152151616552099365402593134576123624160365565590088118719109926816410965887640161367544580585399592447561910588951699277418609477684227924784902402469813844041468638401877147393816889848499924389756318573130229741275052560168124733470857995943968840863792391743613202347985302950776105015986982809739477584648367469258743244089019715169837543703547442745654879218757609833146396148357349006005547485572561693990070114490618391731089368056982453527973106025128291078665143668315335104953471787434372785828461372637001426189766529937806685616530719181280275848375003393396051968503283047326938363661956174006622484679545917897880438868085048047663687858044418372829781769748117620264249522659988010363960327793016906815420974055226006689958822292280064738221919756547342396802452545130580816221638727554398718386176481583271716676836669759233091393204536519152009722085591770591883636532461844482928539102827133698632693923166450753673275139122547929739390917331425302810935717052117979558966470957159217782931054365982267298048566898242679411633949812996768221762140339948075076180053373847027898329593048784739314779141684261407125946328224852722616199492927594635732289959917494192176811131596069396367405579872038500672518389311033428473830435619839411064199439312057429783848740299658534790089386457977529069716099767489989018359913274681096341694514971620522264047380244921880167554586017409877532715638741249729810350278781997776964361952009199341463396916715245396292965598481663738605337963462869076825344956207651092484919738554447550605999274509006157817286371573890298839973122771382765741821909524499615047330733656874433060550604971242037358513615165251371339751114312363267554359213875922780385753887292357131752592969812827359329634220263217461929619080117337071487589579317768658337011804592602804495199163690758259980965098893741885647969852139564029873288452162457177497619899285878106580705165498891732866876651385602520043504183382913930885059675521790902280304836014254100696019309649096767320065007598076908909936162540678225081984316092350789483936381525297527143217590064038639001580100785032437444969465993240311055995647710487976718880088545737185969766027095426804443307570237767481737051771617204968337015347158005878470709736491376110365953460059316283019741739695081062274730268994857630227907639072259760730449342938885083643384095125970400441186788681074995412116970186580620811150305278452037211469538262089815137964221848412305605319907263750390297814685450930213067007076833771127712739873558600766283196715456584183392593586088504119521647748323454538764205956751840076217337794489534563931744391697140165312069263821386098645591951775850137869769682154320860072035420371344342822278300822189230951922239964611684669602079327884338913500387924790741495288683300601236444321516809719954653036882309980801454032747448791498618823876323721001293449983100362600930455068484934506275023759193169175951746785928583499451016475922417512679424459550242205779886757716800321160602035817266096483172046626484270276421866792441769902752926878610996351952555158214831983174809349949240478767878436697856732080971004721781620302143119106918998018871426692139179808047567783977344804624164282076752757766406121208371025434669214943402550659999240101424204443863591090138323485343280662957955621662711752078203706312586872256803305535101575240473546049153873083371425214564909177213800522477798329840343338351995585452971248913964519188887804421746390882604162204126379647551449179363625583089161477196255805439659828188946065217634367915442397442929347474660112052836384724288298015196337607791765663105723585912370041695223608790049441260909044761951376464911174411607921817157266579422522286212153803745039097843199955231402595503549466543477430409699213763849187687499095589837724482536962763947966474473306708557847015692433534749232699392453235526419905493870558619263185168516690878982440663832597510395214574828794387817410012355496262506238135506231305125135944927233972606904600726120110430950102021272425921272865715160999406535253701429079538120156756900991815821786578779392998471865270482923123860287154008927412292950472065856160989134752498410434936614800339165512668596748936738497809317302642575233991755205882397984916538581855005634541686285014434597637547432683711315129887163701090291227013827432661164083952146856679339500026791415806640349529283289651308658257614483326059643721441260774097231139172160954379609991253029577652382901197672117139812854262389152305640656699322381976205631435201793847484107508085820430304247521174832514232471043558455645066544350664172259159435259446780142093738817778842066386819031741330406060848872989132167241638742011163766267976061035609490842185091567168891030077367067898191781950395965939756328325385666958343467930087307194288691151244702245982193125028467097670938734023644332405274907875038494882779680583401652756426420896136677548584689006940825980884106337447907074238466097493671613723390492320306704461953797070028825333102005094950655904697201681615738930732232843204106797486933397565580919114960396565720264748649194081655482051160117086751811633850905440289395808539950995617243061524899397526035004061832613048607066498870262135866530602630968256325397769600772221905804881766706538593639141499648578385209872643438252149361106262367142192514556446006664536164535237693046737714102042124148536062743446507360893561096313976102076397184356547313264335830475971118631337215495419179341808269670446830596671447551562034338507315759103711640933713060043451343087967243050879236242207893306297360810895394603932210620444036318886945066171656600754435543778677123724294607166101988009210375702774490450535199700047683343776378245017436105477659854624936018041954985663492367931793544448299199734734024258032249759310680345508716815540302856193729718348291601286176290194498611144042886763902199540994174015686008538067491120321280386018404018603876097504143666741751466313380075811047475339968559524644125920242207913471757120726413905853452907194143405185976273486728878382907656506380962003651143427346784739776527416835065954831647661921515268451875609604266150215200130688475653817791947398492803494826473818851203318174279174052008964411260188912059639842826974243906608597628657630873219226721322580170718665332370590028385233781415979146321624164646280369502466576935132785745237422938941158109328371369045283127026807203030611785057837778686657115420545801814325788014631278341186943684982204688499832159054678294919883490474225326344280534734145583773367774205774827336837631174861419823724123348372105778350777532767132951378835068794805181422586950618621156596215349421942538682333213304414736456132239652016670450459904355343685777082134604503325816703591430047460530843175309684546310661419082519225272781468838576391689039176883767822694814087099220960864601338202368616217453255773612992803136537707091009803073988429394533999104273319028290361291462307598162379417278760969960992614619783887741975171334045168931720216692044768741148114076745060703397535341252804056808409363239259094353037170821674455936315508625410716557757521036603666785845096687205752490518836695259504771012412786729274344000085314873906970048951823920839057401041418018075944039150340130567998141918094059468331640200097828901061464779726069488643144624673271644129772629707868928255230100564427207976681670977932380139858312894605934071028213439467952634360491570856331467144390081579474275928751822038907084098477342265009175506218565418372301220143301262083664632221452961572626197763192552643690215393845095143522624319449978904848972032208006553172959531376707910290308989138706952305056719758081878378182607258512478032580927344079873237647514582892303748378915438862724443180286418636124971084605547359130974351971599089686443929939282468944961286653079072925026191095130556841115026740571753994697527701121438360452635596444721525691873070141984103893720724371571564284105438473083088861853182605152529343502303892008890455967888124424674266084901908535022764440186802765477602894116626783134320009244904110615118513329181870783744010138679231859503011522088153507925040120778428680227600191532950018986619694580948091606239509025918087844254668781511159184002766757670167249212079456899502526694100823043679922970878833890351196223616069472924785841454378807820263338473723037670196272191795073826756265835269566632052943886142119370220503735761698915411057775411809239992621449634279196931934288487305889903196694673221321665074358488252877539762624828378369140763562475581307512770952732876179663563809448591166953059093174357445374090398300552958645501897198967663576048661774020775504553459438687379828829496569052341516747601889121489091987427951905072704085559351995741719655058541761894300497066855127896094764352031275521891041385687939198765123222927614170983262371757211043323282920580505782517035940531045897090421714474332389030010105560705144875876821572457895880405350586187883658745108118560269227047690740884788819060556408840752414523541097561207532855500893735939106531806072587180892886297553028549767798284404326921365724187607707377927313123313493611535215018247195757468593050241780724182916333744877959996371850661866103405892231321449228827008749229904955836144922969612388890018641238948776113094431647079272479139341662997697322661580156464601192122364890769816829467371132203109707142177717380235779600347809152288328435926837210840591574732880760965373232966412653352064795152691423840561719582358464013875850047680864038615018918275843136093950912690328693482268717400511376066067150304634637113046661068559204852243125991626872410557896218204577253455191709973620543465756754633194885122427368379516325294311468447125774652945048913700783327308549678639538764320907388671444109931374960602415258651477925192171201674100355534968484466259745788174455878359696241219030786178406744184944237703984889160686668319961631588779970580942126997569428429369884072822344205899540976088699490725420287492601453553068842357569727160440275416279993180267719074935000152426144258578562705893039362201828026748073690869186609194999922536145694345338890315566763356221131028405903898249731030908328833325981413848723046790213992027038947857502153667974439800754749277177798925603741862336838202734441549810846848297984834485019464401935598534287475114271821772290918610552490798364299012912108860885008779471907618984273106408031111217865595316977499055804970121441968465559762870405839512892588358440680150184025891230432318551585082540650616922795398028139704554099896559680196661455588720185636943654225876577218904754869934678889840349303157199631808792500907666184876896065665824246787534598227273576770486001749580389249537996033357309697336682488431861121082267643773073668488279333458896600742172246007718965969786949666906718137897272752114089418266295311267948329198172378261497159130111939715421438284804212646672133266452808773324806575608069536208808783843315129576774282053615482304118018977750995233012681573831958565028793904775940861135716856106805564348157911611817447537198532360937080980404899104833810921433555246417847887436367522284812379090654168009569140894638368974720272670095221845944091549077364862860882050800064234586205591812320607694130173137840111381028667580274020682515828054148634408764701464531837771324244048723385055603888849516447300816287083625000254984840368561887777955796920254645619316151665476680424418259065295626906021115190693661103252023137761136714484042233218141260661749580236162757113823391197234403427576221530676364319969527138783707884321702934637272390019881521740608631028705925825193846885702044009654972387490312009851852548168077894157716624235901960971539569229178865951783521761062720260065722502807764523974755260701922194533525482772153724521986778759261246101152478916744900709592113359064979623565771139720001525570361819795367266545701765920170550349938260806359552900117406382889334861170620774819874378322092189796274151087120429121626140397599674631464748220739214083707805673066651204430879648344441605397308586805576545983002352404018624315651273106886210368344459734828331707751050326651526025127408892213552391932783398584297432933613602144999589851954602747444567495446126042659489777591753356443259585798960407995910522513595966374366310236319171768966215633691909386057807306871322120141616820870062628289761809020179748277575366146535450126374953995926205900756537143713300649899793638967888926652163392916721935835620311386937047540529418180749669821155829617597620634671004441494984675493817449868156137494316020046574976843977117493789214855576549739497787595858293852258830609255350929756691296458163705614425332536333756625940593272472642767178752775691022077369653337037166390967948372325580908224188923184095455182660917413470906627209664422161973454190212480176158890398728797445048860528455957078727299212535206017951572197242652246869558612083889940264942934206604907631531524875633985868415552095904997307785697253373042929231301985357778257405545779908012966958053454415778411157154934196681030168002044144708147867584274096748932412205650220224605419947752099562909447551104624177911788710222854281096409208246633032509628777807501671887410636749804905723242433101568729966524637496772538457568762901373203015739865442493840808178179521478052974692964589407412172029038895542260571978196962521434690817894080235378285558861331170027281371349867174114802842733188215574717196533479459792907129981356008811882979068389156320413605851226089282745823643705718192532041941394757065183980499196041365669110038888330138989062635005686796078343372743774372368856825909952299334986430771213674072009163998453021316879480581529792783055046525337212471658748825288936301868367772790908796900617826302825588837156334867842223066544205611754820129912540191203061896459873689548938478493680167839378053573140277635605719493274723142003086798619152054231815964319065257826227054593376002373682832017656608927227406891905749176379163653173883914102365878608563583728458820320717493512155354272582236155025554635853954609013740783322708749791761816541861818681762275286498785545499536181618138957636800391588914397288349336466881780265119005442614769306399081863289847842875628602469752916346030070521452233370998021747742653719335599640253005619665908680536838931757054641957654701669704261967165839930279552359877695163301851556848204536208844653622564792647161287014281895695732005850613167255489855585392822680292808286068012547668650619655821496486491590428164189629553472132172895984795211496342252137310206849197966983715381363010981464364301184093027297545425018376115195205654968678479076021461967418180857230621657604864060060900436997261167682157120092879198136523864524756519370907273318220608206539768050974562789888722528636835770516108287764396225758843041359666102324529607231583291632957520906943736648609230719082964150230440654750650776591534993768301589268603539310852511602604911855681121484389544580544957186591276332328478536138501016363901133239437958651919223761440686402384208539334433809621348293122123736645880337429089812042535014348606445657956442037118056375199767380580601286107233173979036400250531408004853524818946320276958077657153505995280704841593192013129770360368940171668910933352335193773702693123668410305928434021590300865295569907290437229645378964631953394961070102494111555370286017504187630156042381070758488367457316413197902399575618552117070394430044082826666612725424703298552808803057609251964977140846488789111648117850041093289972463176878125946031790673200608817995337331639418760725944977268357824110661880683792698597132101276095249707024550614862947051548990243274773951987301394114929434536735877429168882376412966474519095763830706981136326791449622930216772344306565265141965130591743468661818539643344081312300595625035144599707000102147200841487499291670297026412828243396084961358568558919559415818482940631084221936481976313611786025324292781425531315923323450256053446427115941431451953670724058882682024178072660275050853817135015024245221756620012081233718153905400999109457917850627355238026200370506520131860221258778397544240432909873091369910965061870494151993953510346987767362123954476428211864910198237054196178065500906899625050015436928757315569989842923606521662310944840933954679945419352116785327686530764824025636408814926223522289166066544778198137473863731214277000827826633737276497757261283018218480279336760364837815512172958479730393078031762503683484337380706061416405669409549526439395430907435391982562907379303700580516581440616946619179592908928135630642529228715495208764730618917296766516435799288908194882425887650356050526554747329230697566602739600523999691117055526359227224256454673122427943553681648851377324205431171881491721932678221550096406818437679250783550376055881475375552717292738295697918190811446456864121006794314251353476123060449581194788663542463486135509202364661237161738965515439921026188303957473796186268676856066072368860359547595235767528070746944339995854249469361431138686994390519929411442030604061329878501380371009659902820120548588977607470331334027684208198545581978913847424620769746035631182510209878411330441584395449863479759482134743721269210102558704418291223190136794081273255295154769067389719272833407126863986708528092816679698584431177174099200716131134633147243876878527795072086657725645382551808467056256395713996620520761308460122270493209868191090551962407817400077924926810771902791238855947148689514528638460536818324864459726610072388531508426134966904476345007806337487172359059886704271127276593964074644317051109155572871779561987074044693404283855936773939296581232051975752729215302943632575721327166842264196286034371179734029054920584820243713953969965370440487943331246395324320480053841252013632577602911675550398720774018374954200644890409280236821812341440457692712608868348841814541961533568087067185660097931090021625174868405432931323297104192983720399537695721238777401952116444424472592750529323771321112012417877817395379289407204891217016376093673046384028195803572726382641980335033066937414550196021410837056444427768363090739624573028021398803697670952419625104871992246276221491878073322911747734780470106230012442549627208962792854779919468340727705519329289442742713230319782164341864985418538510864240958327440984796445928509981972330904551480167162902799536237704825609090037322295916419826885452404234473078907503960570416087123274497427534638158085062634245370179209878842371971316637965056529978943210045895886829790306769043986252441017959035588210740589580283111347317474624861063564793939649473000277114859053645870326819383926382148976403233713050267079148995603401692559845516217256911385848108177500339226678867784046294183779336608623171059317799704337794299615098636910440293068878452409392914592986566824672518562409455716350036507073776303002581895367707429161274370335149157666623047483415971773130081544092646313975341198526288979644848327398787072772172384751334113100987816619610519454669594869861817121754455755655600262565235160887328875603485138854792222034628092971928340133087776313654641525727623155387245178301854718661969229817362648399788987394701633316517496807157705437081699486883639181598757427280812888034066127922600320900955492608680930884771623392613635613629603612307572207880795276529408429873567277975608657975606857121320908912236194856819061879111438004990842514411915173345098143478619491811417290382815644175107656398376941636650448889931716012524927744504468623631182152361503534137691111009396917996778827988943560087339529176182889376533403208246955372582093783319856547175039839093299108165336793761836010993851415657118286533602785742885988568472273107117967159509864468499975637772261984045987868409859383794062332846643100653391340057252673869653370322036636966708900482077116028268411023849887535664716409986427672497689317881558091989560505543764791739539930514078565822042432326863421654727707440232937158765449969072651123820425817253818046482857877826094931323518840277376064821920272230925795974476200019625784265530149682563237345909016354646444798140774830308044742169777729495858432300274767995781277780905127070206471796867317432740934427700576255284091220179215345337687284541374853583613751442155233754969612483616120790041481512435952626593658827924621276183471004053557126821788505909932207611295562526001640393735740654754194388293364294889760816272921446008133900137840556240353490225025774915059148314565862487113264168518453085324448365910184188644918917781414298444989611109332748699156332378266811495823332523765075959254313182254062697219760710107014591324288171642543636436213195020424891972680752527821989987662407638835244672610216572593841716328003878117101294416266557765251329645212282165392464844277948971844966271681123249515608305916676132045835997301469343323037532075643455020429947378565447072547353089086212637750369825591348616525718749596350696008795149371739888597016285277120535743964004943157140393982326576979422199316744757024120999320188848803173068360963061640733197850710233758363389851982514577647029830498464739931718596320147081198648511766734580133521182174473881187022243588360101959430503837764385564115237337685946232743424098575032234319691174421970115813029322577285983943241307528743307505006286670565220226404607252472895905057766294084435076384065774887146472891980952952336901526338056255137091257705401096911657488836090985878651398762263528006467296149082405628808401663617615895868586858038582220552888417205943624874587812306420958508582516019623376797818365627261464106046917544290888400586217889615179196692302161380094045346081596543710234700705671310869804815139098952572490933066366175734429410225829168214708266208430465581934172807516588535658863070739086866358738064324509310435023346574596067922172002414212767835326696710836383624441426807026331999220597196755442903696873141586281459933782372272469187251269616463403239039852028714114411256707900487990915013676946753621302309362982023561890027974211864772313103854978524227700340663735538921160330049500252180890917501307813757707030453806583090771033503308015609499393240097923032585236638707593763745311105403468717876941093358768117997135024805938099488536971925938352419655225164243372114825315860377011197551446827192392437972698310472060848300797786975071528841465684305417738508564761079836700694766862624964535462264086109253943867602283548618321851039685139508913647541971312654811427223535720874450379397604622615968952425381096368243429135961594925276549042848038988953528884159893903002225204788680448947346697882201413444505557067482711865897800046399638068600245629267300962428925629331788137418119700251553579307328871137651482904789063725932158273713771211149135322296176886484455537063964280178919929228374923763663124091206069479715303949313569678537592519310339457033849700579844511686093643815713861241743702559716350624299536876277746656708870894553945850229854389218364422233173066281439620510287096496224132720231470932527881394077906431895036478401673153542481301962109157444392329450920379555334923337825505385597832063592299938854092935055523533948921533859402210989791758197958802750146052192780283336455463300111461048327099211528354137395086591771225598122562734665934143599194689019765753681494487803646775842831075797831881974120436792282109341505866091751842310138025820712300699942635940788987327726198791749710182356201901422412125627216187724796624343246312119936511338675078489237036708062677062223471080509712507139022233654124999104804270837985126314159155306616218881119239253249621221860682714119327500699515145966471329071450043685697704361697876592242377168233140687390465990685719350029251070873523513243483222708820454905293976037295889227919388666376805488903385096248806429799734289021521582179701808586171909383372098258799074136038118990526841754748072740663469953100645085533716622330263432282135297610122901284932125044414294021775456439916862402962190101910376001384634695267874561536837515612838280676913379963990498818246718814002705548070076248521522793351007276205681793737357590300799895533004921098917945495728999488487090362585707860961882674242077975596097062253272087282713100593373594401655190788725306658087904431916578238524411784325563330165934619692437769270171036060996397522955636215661102655510591013247930245952241038969129395317392532835133666071228193986473635543421912903345279959733393966093630320666111056552686147168604379666328181622442272937334550539784860025581609652824623431853212236826064728266875824948480957948913606240585962163982085677382126567089934381789756148152986548018625780178161815605166379731042548224610632318162703111207343067022619738097921311373461723526043907878560984278869945658034487135207956234284357674404699262314825746469022943645605391968061062050112292652205559486000828445422709389005748481026792738339017450449590798827878967322591188359268677663134899029904689902403449125011310988550487040263386423090590199743274708395493696493315838706976738614545422216722136855969998565675952305815616445578234517725128146761059781317795813241470286438365740155382554335259143407060365510578464017377391050350217467057116620273869189831486437492716501095185616223881529757945667521308376405557692115056134327259829122841758279444432584401654027516101129834096577872082267221037403562004978563266173005746312338146172848511968078970011362137736230364041624533155431193032563160593990738388926671367889666798046534746861099968439279341233021227871487276049441998704312036869423349683105172717676694303021603774658816027826830966957695427127039511970103213880775401773232946345848802331079080094733816691227662234890943502071392815684465656058685127702727230546571376784577736367194912173974315198184999943144449200002511361962234105274072980739557917652706096579878718731279166892634139649644250039089183064373935253003516711309881311216432442160213783757557857248555525693147300065262177007536424291434669938170997894180685291176287599563107969292297392732548270659062611574419493494628958130766712467069773243148254904217006182501333751090421557623658764710663943681125879217650285439350189270635570073586017960765426907339708496885006468521876907617586250003165014092840357127114511337560912389706978273219559299690282369581532140896872696453495120381739674060148680670015026710862132910076866025776719149211997237244094293317990983969479605586733846664994565535412993412218094517282885567265390760850741283194126781289954846480437367317546366054555126913064219680956006389331927832678149053202222864615806665361603824798196792721233032359030478225091782358912919489083363263737942298558750404939277880958454168512630103243506619284849494207658023327429539862861049736488322434587764122927891139747350243300983321583425425542342356814623000104985845516186513180074015089771408731190551580666011270486222358919353595742794514624758477122955354112009407777666001174539802979477719967188348536408737565228932557169146195923584613428110646509305457705810164965245463900340738329694599503152714982025378941577449136615189572447125845232531305896657680876326235207043675378288578888664999491584175364046452354555822623234738426332990016934010630733493086366392923882519428090308840798724657977974115467635059561053002493951998775048994159784688417714474395689348323648326706691994674588932864372210133207204677863024713305844849395739772819259449350468467601376421027821718370175606091698646807378565881345641464601825736552513301542891896512253108351397318017948876123187499037268952984551891686085478499740623899086594191834416497718732555902397429640707489770948676693043106150409880581692477203849387956335242221140608109223188327098846638300145819438682263208449301591960101895575481365095171624589404462760736233416414107621671097873232463670164096619729456002638011777103349295300017575860488499061583831483509567731312297773425513971207814235517432583962403586717559003753407127282211745758949616932977463113886150607237096312467387982121924661886015658549020846767854126573858282386464424841172518053876630844565308583426030925234391132004470839683551037998785565485109962956395804554438234283617961861600898558336922550037250916403004767817685789033791080558885469073097101051780588173547047772930323329781229685668389032729920023465290011389577266623528583764506513035064920744842564330978701705485933532323319582830066338567654434847930450723831769466295442003454975589800897472167839666285841843062988394530583540853327754311311298097799009321323728416660698344986871093649813553324253008132765567799627478608334914507535991098881057063536021853514390330096594093894384557964776145028268650464716100119038749228455370861019868386733127613576159960725148418511958535023733851973156036251436024922195338521395408242247891691570884664575762786077961501590976342525870363276282654617374009221677689710956404651088895569422458326352833533789508060624863707072775302932959164703430595953984019342438592299172048795632128166666926965596813070642331166148579110509505615871143220925228224207167410350956101921759654023529554680157736036884755087705041669307048508054935921976669920582519380362682867402707440060265057861817244535376272961290216630508146768360244228837086531022785223427441800702122834076245860057854055749698085402083073586650988557542789736032965219555267084484428895033156207771498173004922932860453125940146820218014835026392911209294529224801099818683644564399395022404519395579339738123840223946653758437187894513050804564482783426344262288450644727542908583206967666978243251230391737372629512784980238587279174520856197102162525911293284170295889381142269034574159071734581028313445544645899209269113076340636454014942359816888287909411478079098482348277452044490857717098095787785557929050391845440054800743819421525722350118951704623750167154045435200008382039141320531706971810944916663670206553433655442558880369810568624571214595510753427805945353726191944712744051551871566889556407688306825676295518410630173563031955011364334868037514276582294810001954962943757801547505457426638504873544334887229197028858438275838152842622226215399896657725861368003515423809295091889174922860859354436741837005251484138117195063383384309690048975564469030041503823985613536629788978294259365086211726765897282957346978105486172658210259525714959477215981824480861915296962141075684001500455470881915410086883809141076616579402731897788666143385919185527074929517599183984241678466118920764007344417805157330936576725373163420349495169931762286764032676095151224205460537616112757487277640055992841533486989622246441538144679971497035507055610669816346173748046875242032186273757378069938645570494018217370241513050913500007467970213311918971982662718739949997820064913762197251784965799819133674919691593060268698172455243429251112973191996531431997481093781064738592501246785980510828218767059818070969389847050191470633917668054973298787615999684552470892602479923416472643491755828533086308631049124476447841281725725860662400028260476580348791770313873039595179734549762192527565941109138159234069615930119924278699814285658040429595441375619471578639373662292597111110416234268822644042476285767297148215523392689465710756258887511956951120873091619589674125206102293559007512347044318792453788058395849483157011038559584435536971785872556082316706062358900699859411797193650410440351422829247023970294206571501513992727329199817049981302037153993508949316109317450370013321736937219304827500375830555855903199998152927030505378847913376564696504434948373447133672609730425739400968450822442448201340460477559942622488766844058310232552161860443327997532226680389301601092673015177138274354157841755262421615085253748887369420661346830682618939462764825610977658895798805185891814177057646908983506300886719566984311863242833139929359613888387649100579892971781129155435989591107332405717631363908521094368097828632937741079203428955277706365102751537930442710889815037891348310140547825822701946977694020914957664257279845353714428463868495655736178364397808320226517680337079925007498005476455312461106146511943548561203325348965672798359820156097838620140948606852521697295558379863086796886285244856570192384094671530135631574785791187994065155086552221664459539388762221504317186292595250844012639868005455390411049585420396178070424962896299121882315054666896765425565165645403838030293188427265502205437091372339791422053997041090104970393626866930105984550407488590049008207215801901195857016729537044260635312038077910090428716055693763061488491127099837309470200599346200610996501994061067021007531702375288372213816617129647812043356264779035175681784526888932735783160531861216653720751400436209892547767697098096682839717465215020175774041409407181791154568446714841201122866450604683766937703446302383250621982027631503305060415837974365519678282545204609571097474889977398362537119850938225565773012078407081649537395890616964072818191386142426984398821497295944224434784907308271883615079639087926076195398083437035326948386203649121806681434961918286874408118742081062620582618678791771907968404655064634347720178279443925099453014295924274560302167743029202853589106364981128916568047798991570595260021500901133812543443475242134332194578642009892565881686537707663022490482559490255583619683381086297543301531133999594211903812405681732759283818554433300855002693126522239302822478745412252077880230282660017160932491124411425553263607516010707776118344965083911863107243476676156786405067745946161068998207448020214615604596857206744928920371209533622072968722936144429318338144150346512220580989144616573559375477692678327616897420814058826057025214775220757227109222820164273187141462788079492457033695055626032312108449530422899471751834446361228177435574506744224431834784578495315432879634569750218093948757068697340601498756357139857684197541332709298347596519308136878426589936495484969765536468540953242973886045004374236892475758878926133554223332762372911322353406491889942067965439878174650202712722881418521673746752921621580639441351652587578974920421478322757913481498513524624873273750162661856562160534146917052962662571686154679329599604265258853389294659325880067607058203788920506704856540989435858680261376944496033455248592499358253269376810118444959696442072718581120942571446889336181880858561091225269763871431854489976857375968290912764873756477330355735153153373803193591878272637665324928242203049999505071601142550764001833051820684138887850215459784824349072491689788883345954345700519621061992912559924483086453081322317956121114283061034965465244464520792146132420061669368245810700844615388361290970293606911032216166090032601140672978112473101719806442383625110586315314769964688365864634978089716446785922489878297204370705884574931845700382019085915884399706450058794221056486965401874791600597399300719191484049784751919198720627293111111614777925827097524899833305859964667847267974821573319112772591809843366465871401566312026831045706802794694679257393900131519967886659294524061083141601497659444653086695527983392947994865373270059548327261384935886669749552774248872194821031038878811460092982062624939038040726819758263895777231655984096112779937228336226523252921209488984243403565860383788695773586802718255788616457894014705316291462678262734193004278688463236329857461992243448591712228546190270665075696330428741427158217915290628481568346484015726795967559706861077395441857722833010053789842946924360556862897234920197013341411350477021134718004688223968981548652635740026320278733721655647094903706531973934431101934251749470867862416464875204925048700765018173948314451511604606473076102009879603234940327592531624355175808798940810674695153530411056076409181737578785645941217139228307453525737863262834066848930638677928578132921022572194338774286893259591393855836391492353698496413526990440492966463446881470415932892357539676485330295038149097831082165458479801046719352350305897602330809099293722538169612019088371139325214755114176416665380317518909344098986332208341596348526802597721380895574497186864720890428877402866617985045873015375719863458974839519662314461445422528143906537465599969661465651227606327435239628980518149051848753262789714381794550111528658638937339860446263268873058831933499829589329417777328257724392224216786324646884778222524266544553196577751372419234573891871867952571398009125463268680999195504563873859357593278036779902571067006163381522597369862259929817711039299026401645844900046787560542757849050154769758504668572295281567927429254206296936246116909610474632946496204812890260214405559023168666085278730899649336906861657384264926948904242643821701840845299681847807519602057745063820178645168744038905493400208884689699456020262229253450799867188859253879889780325065388383787722420655967468935544988838838852667200442488275587111625513493999048036781245032268830617607332684932733341239872457928172398003150525732735202274464723588605679407589590346286625600842241290833808486464622401666869639096881309536548974074706040456621253617178629845461944844328942613878419703570357809545137065109864717999090740111067884098854840490963292603519466555555464838351047263855917211000973769446365685854750754080458857051420661942433332528687920943399392999418274142679787684176485261415709574910740266138595420606503395677631431490924343779590041517242258733216768706916432276754946476299878915745041879457687467982047091354412677774252899605254569179639911914351121610852601145861837703741997256570374671412700087527815133161780919913845648550948727271284658027676457036678899371494835599175518157182456593029982044651145857384614585189861007553156114766031727560342517071731649996265893157315891106467146307090720469176811104422885505783553422751326295509595182513229546924741497256899806437470505069515884864445771714839667601977386531219550963985825672069930458016519587250369994903314173379293238295634246664390980840190834763580654502092247502064477023738708830729107267272276406838529186634131083871071423848330392759125663361152481919487108677143172208904135308636252004635315942155921419193816738348140862050746498565744861795615730324616927908395920406122191983913099456672614263112771962804495713934294499003453164168904499804581384062004569875773896754332010021963757154809374167670913669087118502310456485254872565568888827059369965148444813854112548186940575645415160243869548272902292455373010895563699867617823573690337616109422925002567612141893320473173687959223904215018539408717189992184879475731728538352143391124294453697421368937847848105876811018921163573476179957551558876619108980251137893877224207083820131396435283120079671874220223192540071245445166056017605570585036187648136964290777806946461714668899611774018226953521801897159583283462973764265752051459143532427253987122421402930551682513038814797099397305400835173298868256762879206276851746498687299800411742961306139189792662400042452152367014028940908912439278465569220074474564848930181459545282888578369170142286203377366244161352566848276938884730749951838814905563767699846768129680459479824894660705688136116667267033982135514705193636505972981583020269721673615400510814234466586354123861791502362580505316280100431107092238128335338022509253289098171230243826053502641002095788288008774432509839875713817912181072611091869867031615677526621490136150798445152160752315838561896603809665988850435106535483535376573323215326772080017491480630626049465323363211297220568306093790541187364551523579577600953788397695933498656283657392980362943200471403528875725528710340042744919454761598400047067544505423764084843709846913566602240005363875605461754949040616617290199851832180064170761250219795442855571670047376231162275701156701285511104993709530432604835446097429739839880722960180203308855577065765313081285236150912939889229859962890318639125338864224806246376280439986321319548308862870516537865374176916562308842395226701270670124868021311749052917847746921875118219865571922267624265053934509380698934412284207224491324768333905341814098696405220675784015514571506211222263865998665979048210436303446631345359951166165064990238807701119385930560513553645809861247721393302340546835269665222661397258011668037969488596332835448067107396978196809980406575837905208203188198337051990951126073017891825888111858739951473581880774444953980720489887020489501422356829153426493892643406110368560416222772375482874614876002005186378875739374909869170706194009897934942540646108196318246354787906126559984157885261125634819490061880994617345552167992747512901720640438516440350500965404035258417398792530846547037738056993781852246735020735226023959571590803571027176281789161153298816759621154360533250047770689244752638953944106360744126560452191329372958723520485306263606692956118974657744570417842111104318505574887718277953994085927439597321503996481822613360307543973939729254738791424237679274956335054110551619800115417347252641317273552419519734259648932031409190997159061140082906557284538593651450971420824420518624238975759857159868311414134644987961635819354603415039044147737148769441537234601102127041589070608476035982885602187443117372499529439251592203086593683436642271289646709337173438142767815825057038788088974578637807360616968940101551706584604899740796110051211361901597256818497560826929367343853811832603394155565289823130049199964481575361355658870330478297242431661644710976523823048402553556508856100338860825939633674114010175423525997907273847421944872978803120164994945661047822184978009470135726921296500834469701651886149736152553738821460550136658399066939745850016538986195552801715370044392102893292032575854864938042112060410926072613810128356521252467591671240307636529883571444923197100181504718185843460543845114544070016512317923156011084166167548531749710622334443813032959802330151006070474393952642541574275684686815971502533950351977471336245534945696315785651461596758795302045799344161164318441548868184534530918977470024409279795020537155836824668432865885520509922301912878707547735053781828664658210981861829954361107402637021579184432227047636586484659328526722256386329565531602250571044026853151891842691960377606440957344346255053644029118211717515395596738774735351999027937341284980424658142741591029891929629815079543696829931214349790130968974501940955890904948028681693126482772723456317387407801747438322486900642597301600729720364204639090446670162516657231617367992113649596537085979530781210834101793425253486240680160258750782568838972791434498280483611849416244554616322361487939030713669686954153855732748314746063825155729438849286906353958433819403733648205155206920882377395700128333033107380955731816343717688346129152292915592721496408661057719969805550590756862505181423518339082103088116916909471017284860768252581862445226610180318624686696103802899146994380705344884445027354984220400694628861608930625923825382945254085871093148364459831827991016077472406986664737566137757113107798808018650230537228090679552529390723945901420471473349332811666206790686266053338246041279322687502539418162798157069880425637182909014771639640651127392982238073709755305106222891475527939599096887081460292673029445447417566807154336425125158039488810181210685738532302245303142165525987867246911282810006829333013853570393439152539242093644385460588982429171909877603428557369211903490307589334021231231469816618187931562433346548924296930483316567731852482539028985382612654358222851004547472378666438770053495772072817262884441544039224513628733998853954099701822160195975359871945990164515030917037675618135714054464968884080158069490096379934891093430951109298297706414691755254722933440299672473811296585172129807650379225346539793250102240087243698765377372305164924753698857109012403824941966241945443324743758676576089411566486185705364837883748615876289883050970628580662325385925100603755610712312018854119276842894154676961058426580506259571618676291247036332906200022401578007719610166709129556930766277302927126665588375156231828511979662317745298859639771946290727205912184917739822387724295515015157296229964098565023777354525745845610672263378857036233444295682751441627346016997875808065775281279903243775919692482932004550595370667881107749030366760217949238361827766527337101578776931534035126950820196685236307415576577150319812041542484901254829894528091021019495686800718967859134563527874028649612409414046662799457942388639069173218567866000111737685936545899379914131343291042841868554023510049118905601510967969026127254350973976170393925115377827046235302924979425073681864961202502749137889266434582071524852906777675887382749195752313312807468907003939484342179355814579642351856240891260697131737862415946920767670662403610341568884354459371703933342740161511390928707382570605117292582562156474756243750673435162756257826748242236571151379831495944299061768479057653034578785483834502580416371513198243110580220241683768908338670609899520516318092510487925131295349705758808293089938141365036754784081228654910372058608401123829786506606432519443078259880029018680540391454136341385239358891508495067429408169436317811947331341257048462679979743869293734761900952969654624376642930998023530239474629208782860834981100786025945402453946112137401146288077420191402107047787118469389093300461326299927664002913675959376997209882923173596251847745187207862094473159858636913732275220121093951941443310420992279621169784775922827695929535262333268458543473101575491651475205586187927203119616774159796722284640274347207597116961774959380654205971424852576840671980560418786104300732816545536248228477949787063184552416783301663646236304435991805757685845182571521930990744667697565927307117217485184287664860991919914222116126482239114382870166522165321191378717496108795562516342598842247120498259675292118975968441613946336972788263364769017789926504270581677348966287918825906330044082492248058543002708353220219047224842830030005939184907116773005082142114743503426645998175979049713523063607537084730049905849948492875243866226603845715862160000325870693155302006857539509868274435643951403163212701954455106902545830672115118833232750395255022033782039785664595158691184103653217874192407887194224913473995557308760164330069677705981546180412522147550569928811559748251301176971543775851569866647885317314388706867887044980749370849424617492275173895442554375201848308520442710337026225945608461764477457471081802378717562760834448699912935576064669562709777166891142161357285637974796622513374258979269204995679964086018708665258755552154818639691352212902731654864711298087496520766944044446356874265039010773966192449051759410520540959836355587936310328572899887744808507039570177062989314708447344292074804539153613685567392855589662195655789627226834080990360717821104703430173733229538328512628942288206120682846684268282810052175536716681376158948015964084876619194584609136246122170684626277278845303165637911202543186560954163901521236380185844539814841057291710174236419800991611080133931740184224673804697931407478215731833487322221538799949364533002259858140829841450383601722236093202211516415161765127340586902334174093779233503419974424438776385550369491228001793778522580716222798542890858840520182234388142597735730536495992918787110961422273266492426586892611206800639814858329526547615789142906206631600530870062565721102711976576859588379101683565712247876971830654164031606873845102000900591151446775860511623032846794671517495275155015617322304509566097777472018744495076603738151854817433577789607428664448471934498943720611085830462377684546990750886294252577691749400919861611311965741008303050080154709660233976419424999605362999572987494354368321824292882923083928365877828744990660685400892085306751175740441449738217712606436515832987086609668340122055366271282022576824874508755181353070843870924897559105885655236179491227496293714222841631957545781574190303066758688558745492792745199534756832962287151362712063798959261633611273132072692877092263127116502385361604411658111516626288643762983578466248563304632510126632886111099570991883913728020749913147756979264657935939993829411165292810153758835777522580939555511734799686295534642947371413154704562798538949430368979005899995001569199740286794957175795858368286844372808631266170448189041280145613256387678809042708290717553904591651591771351029360691521024695925117414072963034289960254244664871953063988736927730045031062808902671248859177124510044233707382932959157268785871388381925438959873567948156805386027584104948175767312183496724220460875831990249286040407889259196965471482420477535118354698395839922841612815219034072600655040299650662805405059026588231460587101020990606514215835934984131139463805204291617309893494368061762679716504780796469596342653144510360342047038110074638303472103884195284432683788360131187307630769022997447797692477769310379615554692275328607119426504494845651307617000227873704955135285894789796678278083871769187093376064309213505235335500964695973479382636433797999768802253044115620514358910403963057712314334648374398016005535632994034869536020145636117464002103193886902117362329784997036372705643091109078847214672403925872517885230821974959217656366360702716542070764670726635380292334373564355221729093469677434626013315642728734887774363767084955618214267959472072787617505161489063871206132218871817171965479925249495089551287303243611594684103467161291948270010950488411844798933376088857483012494589683515050142625196093670779275936358441274290430646470358661962900933420911508504405007072730656985108103811196849820906800564327547689650355491162162134197278941830305779308663269973051905084346840217370229785004326775122610541526380714284544897078363940548054866527582980218579506385222675373836922070726509217920702067401041455069590090940478459309775272304095756898205961503866403848645994144421977186623170043596142667981915340269170851233462369984353348584866445595201626615542199951518618036674092306834639229627870860779809126535816283790785184029511137845558298427919750962689273090539957849086506398444052334660736555748861670164131337012509005469969174090603335293773002388634058603042145236301605904451752632502751407103721879767911533173853562076864799460108113020515861720724028954571757764816533330943693995862707805809542467821479124596050099083780506413791194273492188837592063765475910361540144912115393866768582455630272761595638042488494862641286401806375004030307560492250387317639346819332192837659587461665924219107994320576882714579734354491657902893089115024875817072789937807495373977502539148493008611540908124702275031026279625594353230480686781589514158516230067196788887798998605453714658245408567982963050464653676335965220254413612826492123596877676491563480225216990435393990950878462596312912798144428877389220545527744982242487442160231743378725443491412113442091138485533902034312472098391743518917476046129207830316191557560779489511923015475335923184917659068731884729908886047238994784102466721062739239008940825646021227998650513692860184388767898272498038830102955975789041625330123520891904649851043300073136253791128769755297232545038110962800320391356146410777389394360573464181124488003551649790592873469585339679774312804033295754301979143752083076066697954189730338935384827736049673504823090202712835720943613813094194689985431925083631316673167383653903261579281550038449350093090127639318580836969935988776574324132242048659712628268799075534403569568850535406561907400469405528523440807074902956419455368481222407647330571023341542917804988577209291906949069927511747922342560040409899451495793821890186267183948045100676600683158399380281647627451211499974838275368775095516310101823887998864229693885492624826322713107859181927348651101913154405449865417849683957723099875849905798355241852296828026003796261895496761914179667447514260135719795222931872241743372654158524362289275095058850245102816810783331249530356001270217026976497207148284293210372437586608573911834118766898349364921539330717708589053687550815853630918448587096328917085981266245963725231216699165514919174302420405390246413628683210248101702261636684713570401382447941816473099302365689950675219707469704297633605498714699630405656096489576318406473294731211578306412066075697460741006703442787036665853964894960474651896672122906445401328313632950205475809943447417349903845839901288239371608382577085326739530383354666444713792292464991052254579182591777949075985603564523239392601032369917260833309412343334969593446460703000172008218923419223353647747536790798631753878226390502881954894842002408753866842640450667136361639010399108677078342018578017375568745031606631900881649247678209868357898991496148926199873140777248242013408528113574884718652385975978370406075532098136225807123268069780697191728987703833251365288790268171806773994899980789345238639040898398544070577746611408580942818601148851577364857703657926290111730129825689643924629754255514265748340429752229723484279047717147935616627159636673755000775713670526702934556858988175976912539931419351575043317262026953338838562750555973735442489372280165483166863306268552462518505096717963116634615220031973181568393038857177413837066650449838067998485218509633992297585994595596293022132584074569708633175747504962055252273497201042772236086546312787377605163727136613140331537194352233775337145651904661887074944489535405688766629702596206857927663256501784159732415082790412619691964273539947572706593605807276454874007468847388505138491884833071008740021613009792692988425314150172374635146082497590873930639485060386082603262561375895118879659108641443797354509520092442449159290695809502947391176787212353369999556988114190930575592490615022231994396041266755471989166774455228322408718329265459621947029577243181883295361567758093227701466978572136441050041001724563202275528543024883853192802089978719701952167621690131970835787923792387550618191842309189068473297138307738607336290540304689224293342941940487860725403549628223277069209858719374348817061604815225078577814098028203120731873826059597074628002674529023163532145439428676914049323073201639570344690907134305574993243439070708828544504065189872100859024309624517062628577813628133129195027465974121296232222513320109401713395353010543199605666512072167229810294269305955921325670444465734772809130167116071109545616714902917450195940716113084996786747354332509774549059818079451471164684935590485409213693435914026834029377830666930641627014642867516551178853382885780326974521309456580836203229089509402508411256494361774809304654823237868701886860459971121423553517345066298578331978591384200750372164920864694778849564713943292105035996055196191732338094360407488215078909697952319164108939225508376746219175419362399894963312924866812355458237017831393802011179586396840760923027862330398713631401827936048838220351295897039017635522345663851627766762026084302326662076961304320188545964018907840840455962029802050815771762265555333267012578263765665732128252982714017174846394153024134423682851252797575813288371242514023903932319484282463485425763337203610759999652421263612612188861573979439423162932547696213985080321848182026216613203373257975424747806070432687035659527183789017856723970016205814753788090757282276306168200467232621603710407500492748028467169828478617003785385210743401048726275047456658887028298348771815177850269071407608833480310004254164572298950733115487800764818223378028250482271807192054724316253420293809851602512312499100749780570624920616637802834919093839451252186007805884633007906540322596398085618559306416674149910345076428798118085437530726866175102776257439784353096850686475312662632623370042952809387664308403349278000014943993352591171790534650605665757459656642546706667839231254979093185054385106704077776442666390958579770089002974881281315252979542174606792703368016793801826031597964375918592699442426335522682426909725912143454583163772392351985178069284622702873574731730055530246872614408622820747288979602695408262877554879866999460048539621724391049410490554197980431683225816522961652224660200520212025651401524919080982375754757468618360676858769083223963438706330441980521728575904115541353784922495633261720619688948882644141944214357042506339031409495195069336721213635898406065362509122191919620386678618888240910842222938931521756717295066985359171551309910159660078737113286652143429254311482965979871495435096695434233758432638077237446334715378152945692436125227295480218352085112514092242389105672540902014759881671783142817381625247922061079567725158449423102990173655231906403169411622702341295484505627427836205363308691716018012203728577529730629074574848770034440333438544778978249099931033087505430874744491746858818434688138657514228787141605625858197064111209171582077566492258697234655433000638155021742002328610119837161034217077717468726819914219290714225429506958221312881339912877577970251340651987884700985625211594291579718191002724226326497310681241235330726210076256069994521854636775225687659844953449734751489026173696980696355476586498091912366534284339978804697062343553326682408226490722892391217277566121506535664009077262089000937661781288076657990941374687970830309360906799334050910889218110504869447205394492174979352122734121090528702447294947475027063079859438852495140256677743062573623774344505860265506794535191634172051689570813140029028107727712295863776748021419669241555280350224547462125074978156440929407840717832475431115355733446517318896699602753255073126179859546001904035818093003675091512481093111959045647512680414118357889987933876202645124809321364339766407899432394882181526720881589671206648899769083061260014553304509403666537677351418596993684409584818171002521437406458663445043626812927468079883765678819179575202385539636159926320483313723015215121619089720225230055525001383240020513037098054772276740437655493258340505387247646433194816688137764216014368292040361933982881130713423252694956520743611136033340659863201437053412543998713487141949058490112878324726490257150132337494401898193126380577129677980502134515387094339486685412624499779872972414274478996741379332753083775304130297410804317016222701979339614627662197180267106919423627818445911627601484231738436575379507714692802030587069467110768341161084247698285687684053377518002039214318422333265765674035846321277154737917742388838334227973719313305151831349286413804552155119065018761704026934023334453601106553059692237592832919981493135719621917256183944189154611948062880869374796673059464810116373079304507829293942926608214627048189634425669770949175502521554817734564218564309068598112837189319394015291520357237489404554464634996767869845701926820930965822293387559881890380254829290449888164964727544817965140261829002143851289288804509894957661383242783071904081921188463407121572625847280030227343602431209096636485485236011511669099259826504477845407200178033354971659990517178371358067051152899427099651444561271444346221145072685133064852669494723387229527354822880702275806434722577168326673470418163096371601759046934596259941757129375440773297157842068785664353468872944608248021767849422616550578195796726381021745412897702363537501057274708935130858337771625885796615783636693685836278993388065055358059502291080440802899080099637676157133938275792181388522320990751009263214400061665544956363664385960037981271239881471362189787883978046958921575520472540351489858603337719980515039171292921678373762255153302597577044939524279070851275977431381728436086289909980854675972429913562634181634501541774336728811286823951453622807552793949648024720562920979627968149926194207965249388401976364611378922190232731210775650753623204766981911404068945310638886412877684682864384984657865015861177303306685689217253934113512035935469608693404873952876094959023791767725064685961293807756166690704850391778610348235160491898847483216190577609279778700823062227729923822664322127811197106866732761684313415832485505918674567314549065236483665522434284734426826181767507074232816693010170427768886275557167507853691496046719181133539179238522266662892011665461404096795446149982146185104348100318353448169886754436832361795681015263559226314023779055202197801808142358877350492250499170829036062790684181013634422644924416579603800439706786268183015317077089384770298312579742060556727322784938625479456227383185632260133017286869663687328751373308780241250059958591690182862947405460979773090993957820464752854066139111433339936212122948963017747288196105035003179397469205625255638800581189590760783031170558985550019690814788447687963387374190636117016594882708472492217051283565970265101649234148469702206514977272907006608715405959638675517047948912916441320308704376069528107870296026514625329980853254714138518546534042327294934828442577485742336409614429743254591553287420308394333424666866782374575452456132002895905362299998257084742933772997472672635086273524789917370920147259686826156542237733925023401921905399802842292971562412236334884049689898614492594780016470508847427156648282691169198644140618907232638863382834194860592211487919526032112292940367051126534077735807097329963597990445236645658254985711090648598020031915890940984677022058636724127131320700794451852503717192990779353748580944215170613033207766549530592057010490385597828544185272043796308925460834524078644857959410113440763042469007125984855402388232822318410748070112891595508582678860071481216930298904330905501648398973070523963297223071157434489857747589159042414181020286849631585193723923972057918790410300485437317347927012844008428155575504206891935265690485816899268552465288263967643351685720335740331018741291370566426907829190643058049802765202217874111591537341185162177207216614471605546841296172765947727808609173765275957033232157783743731653909260318186970633129044882250452598767114793506649927420758967893979665479540992952865673022932735102945496216558407488731420027762371520340641810396274608095593377007535761405872053469987231509147865308872187382310012999335498258194123553167298478579978956497572128322616208586208952538672085141152009664346042317624945373665664325688028794968678525815772893386589593824780117462351024356018516095245597823455296615837893802303763927899130104677534134154495611315222165916418766098615813723394481546425151324669330741503959260559439804482369122846996215685106959912911110750260118855479636383018846722801065700167888807864236908243211169031074649873078723286854404532378957653973274782494190645828248029732359433555897822372552335295056387750501674587104245944690417057310059219232533251496160699349241030090578330370263219995784069086059580128536411434271852920788842137245755160972134374514078597946256737632408379730146947481431555060615559129287156705903136418994008682226701002795194110300490128922907559500407238539726811779325440828474815698565752344677296893618111850828596566057785916819209894272108440403271916128989608683409244457178214169460802262080623718698154713445273893489440512472898398627713371126788470654272587256666210296130403176510569517481335315818209596029117411824100219228722208120383691447446937911552616090435719655252981106150907919881580871415456446455619722156808804285933741941366944581583485368438579499326644884226483108464820272808856948659627887950792940536755671688128813170775152186339521372139385204701515055776162975723337234187695523644545143870864967895241700279898686638677874400709894696399128944076499466123645433455160474968374989717882278006569824606915674044348877465761029168523194899639551945272873313885303432246924627641901881296848315580985905489918460161564124125235267109487181926103107142721761016466927142418579807217072119737699544859933012078762613869456513992077522444873140404102319932030897477921507015732516043727961413369373855271514016312065724131378217029815135652612149486749156141387927176884422987829780793954193135930003924954642754158204948635859842135336002066728804566586664773024211507029338882279586879299481379045188136321058461538977453831566162206614204571592554066989125054817598382907540092776224908638969684535747959377293708179538952383840510114315611416998287477337791925889683906747678442511739812747609067634640840798017952883486864455387175587684701701684041118499458161530562405788578929617232980476726617168835516892643262017011639894705085244096292969756134325959709509949179825237714491960918507083082906374179869363308431638598831802653232767226020202575890206582012182849686366717138775119761202946655579745246352431814954040890814291069925431322912298432194721494704252748021873761876245783208582782830161476197042593937023973951358168174230827833691917430271577971243787463097745220939511052177932159911348074135542689161987997664862137360128115707049428174661567624538705847247245230645572747078968646479955747652222693915879345695736619425782814290562237939996549945780254083486175794057889096605627377097733357380909811341297491331667453318942457504626135966418867325064172832747059288551506732520555351642365949098357551737855334332372095772943600195549177252547531518214327743803638370303267917876286900246417604124044618074659592390339941796082575745792078899844563817918683191420641156014304892154501563034878363886469653247074014531065294187964998662013597856862239771134018709456625451419798451249870136017457818426924623946638339019654841713763653224352789611274248975763606737161349937675469887861270840427058394648464948572855256708222170481415638735519272596613093248570826303040239964762585881311876762066155881236293889657329426032240794958458167147803473732348494371368893834470266614879176883160865765819550045075173309536029689363490871894273950808088628011019834255724114666129567517625443368611656606422339085826648267477879028588260113710194450330292856722784442966161431059100181984624417822819636883182851581937393276338090842342676261431342348367133295488497207133422309663067266706144032730474699361005531015160443514274231293205777628217028988378504327258017992575996919619863909401234393496145444176578615327118497792248207682017743470125751818886830910969342890642339647085295384421653358602444882420964216700662890620573012605929767996748793948015154028569758272779086586206696895899796904957040839478981015472267655922903489086726115745511252435093701915400228752497259017385023763589327173395678870619435518283579567252781445142390530211265228190136809772810524327407109720235324053661254435548164910882723430249699354964374953433528327999282336289196354933119725149891146064531544370730141784065435918597113806324123155018524456452353051325959454968069650327810806862678049346936701072491928785629209770636893699467313085444560073467765898469477742126793992830817785853915874060964605497631549839056686235243855531959729211715124920814608903110702882619247106785284341492557094189895441423709193525736923775705879958267468862419770769535213210728899982465799217011219953232043125055813671073197593850077750211356158262806578947474085637667324350233525155675327252132735597970388090021841252932660259634133746687768771420590006424184569319220817057552255597455804938122729882630235503752616192957620298686090431782886659514003232532217192948940984573470877230367953790129425022987329858978470282389903799514669862297465493255328297868055227318280234249601678162403119047101672931142182966225194753914250212734532105965433701139726893247629631523209643583735013289282740609764916121050209040158082724364458872659977661504386306937760588455017596827550861083406309186968102995243821035885408167879591417736730618756583605904588902015038737560060652159750842629233122549687231633503676313765723262187353449335545295280627014258641712961363393356724487034247425115947720169616961901383572015656591650922343867353044862549424377597964837529196188118061596654763547512589544230542291767761200557464311990879261873980987272434067328807805580059186530671918603761598246573878620661932273208294464592605367878832139265324269633150697287237690140587103970089903990104281490450629315573176509766164239728562747394051788138745912466450122802145238520615571515802785520396491140377938618768837054105110114804760217834201548784303558732385562968824323591379198865656808584611856179574821002195844056702230157845467754331244193072750800975136954804384235024902718738187200572756713593861235900498642918593224907663469919411841088601816004587453999669103316771427307709689540925577084817595537765020884997296868215809447360505024294881556761544004861616502544745281182381682730699639729566370079543869498173167562057480025690569100713812404119772164492596071188356300880517542846332509089549195086554334900667869481543112825719298663078130088354180235221625606086522915111786181868253427926022879197305693138587664286630837623535309584314935426512424916451495356548305255983166021150898085595666676533622198268860010270943097446695696595902934949562212163677894615684305859154486360444805759413439076282376807195437836912648722553137973570905019019916499185669622151724484901103124831073112671865214416515043579686263416493458063726071862221956945011532086247162022695055023501652682211561838522723759956022464986889173945977731765702656290438398264935598007257876631858302216921675217037448434423561451985954356359786121223674153426062311264368869549722747367733570684544659186350257064997516045583987908799152086311265336387610668315954973905687893139119687133564400638494803738553664408657832549634456592272324973530630992807039109209065865553867089022165605340215175242577240413116233612776481174960545842208324662283621559000104842786802243655436171174530985943887270365231799258502088377868384714180088879607020671711244776315390111656780360547795478890354914243526044111220102042941221864298800445355469571086889926900709012551502567457855958043139885037621091685287651110531673324945858808749842306417710242758917149605366799714009017148327753244037526147689232576147436526381908283875113248168331007989981359940496030158069863540124929212805935568910976701457813095837906392767801396144308468317335251829033487584468326438189740959079942795550773359366718313601685399921040891413163256085474928669813789974098124613041340303412438813026166501604974229223504753598953825154315388804143079438200732290527457538275568428792198780033117029855807511201755361147235817504852521400417503841307578178760277083824921337106901909699324299119260130572856703792603720303914601099494987423326693849552136911769824716575555312343455847718236346374646121617706389765941499950834954639888292309973297855495129038681735462120255529145942710954322057365503073736185417452275422857294204515504351795845326022789528567104252895697891575131460159845446301498978960228363603711159682633780479005823787196701400930603013814598452787006230514906367136690867980939102950390365756761247696650101809768460240245676843893217984841816937205150267100341513864156110270878109695296695153430740568481371786023310732351420508835697120634910174845203909122788151230207047995618767799617934556714903073236883068038178015959719299421226971211693206745193324104185057715612368186436664022823045999356221288210279695146403266276479962404235086645760113191502483556307543958881441700840722478132557910548649576643496380766716573540601904328765083728841207636132204410826094477787671935051445899853210216973695025112173986726414317101883047223711025251160078456736143391453567344609040122944745910743591180319117318074551112172170861896780767373495679450719904906148697705341092629595224935304167944232053794997673344081826488894755261364673784226604708387814102202692513138289262452090870605990759551759141903255435961120571580396900161455133881593509777999667310402787355715595434253415408433399914754066987545974367359434988010536574115703140402198657428923107549251152088989371788160842338722364149121233603309109644893971593857798471992383853549475797990754004364153902524378431715832024012987966085930951219682322525033969428109415846596804262465328512417127840736813315150998444838440263778155338578414724150034525801967102030293393834108215350971049667139132296596589040618801901601615649744950419575541652840167080235768603358093726521557910629436424177598960526424113991546520263578946731710229064067030987757825718501797855105168324508800168724304216036854508403145905127227956098393236103162948904260463298197746309262436045716118879968353773140516754758055645410694549488531224284043684487795523908267189932571139395000947288883039393576341420965844490884961988456658798688684963905075747983014142762345044652350164786962699605692096690990213547456665549049116575693116860096563865565219986913612431574151646066685487237738014850461485199760436632830596886365812260250333311085610707543498869221885074761971419646232600376230704539103003568200179932764529252563790438600919198385378467083996101943121787573467663376181792009615746312111143754170434848245613779998086591866011077834380108231838897565443579926957554549863770177995898958486108523560515527534783235615965291644032261238712789550425720426325405389366624720578046670922444593980734091457891620415434975522513920685886170856532714043308366046657455246842358262884215830267183261133624862184077302070313653660019482136463809601189235793885605834954158995903375889241265428063591618082697219302259189563572742923264144191028085142573066646945528484039987605617486724875849397328513293108344369750220411839827879839172163740910854891978937895791007888650077119641949928629283020061164164650581122899236589144514132685212660430261532743404117776466135530306844983324679879266594272788570098758199039290061961614497094756081752774965088586202504165276077400159850151181072876809148687687987138788865994126346020795083056070585572823165052801286043226374717093086361135341266808386812993357039592032211159853182088897393625931492193618210976301209040818918805549715231192705315986505386319337714037667121739328222995427541969327890912860931134559717443966994299992293421005404419293924163672212573128500889635144065305772679240638844810373340151296868830233513777424074193242043547139973698538062842922207281908617789492657704061639203573240942499958066534596320953839850311866257912992046371779863652072134265730714190387370084855768296287112331713140188477952846075460391589905324279265005688028944123800384937819864555017733432767792450811296855896313258160898565887005003961611020653451833131682778546457371402521672193236894385676805661791285832689985257287670917126047291555138526680137260491539959163624559452840990430067067740588547848408720540267121844859874772477139198513405068595071845899690974384174129458803732286494304168042820143854901295968865291584088801299346152706082462587949729757678390786169294858616969578511329716912883864492585608339135055523115311948963290959857510780563583762656800776290542145996744767844751078259507626863928276333179652041016351398543573564250139091563132433760054592494927715402931483407575908333117312156389137100751709902386428412170472970838725005963759669054439063768762797435007681872086742817898182944410484330953751284724269497368187659359613348594960787244946045865835027465302453220537466267883848045998090813845160933784630490479161462896559196498150078621524315236166632068088118980969755761152904565577575360506239887000071999165516418031863076300983974585416325036866217665626886386388860102462641845386131196263929033221827145657941642755267224482332908039765911980599748440501508882937107561776901128865935052791747776401143640269773052042148059374770534765956070866006240328903236929754048459356783819838166425585498920846259129459217739191304348534864840323773646408211019746351074175333064535832839362349288016773111061408528778693501317601167824624438407540722896521403723397302858441895384733520419084300961835765065227298192774922955991871783997889763416753119118467705010612698645853552057395788558863182334543715151172987214197108325008788174824747278024736825654086319648172682259089880837936867290080684536616488030378056065814917778381500981102071254828803704427884824037973997634151444534734232486669291190385716646505812359246935181898431213459232113758933109052682066547495934525840685005493118987279761011654022955990640516892354428731622347418424891457961614509059915178070216685575512963383312916639724998462768775870048151876716451016572143089337614180965594022535738149673969102741450622617696811720490635483182371895292382535898400101292325799375267301544636222539982109564707091460400022304758068084293192196329294460365085834015883955844455004483549588278587330201033977287654008623947341151990522091897096978059852874086177986087700969587215948385466496173078777617765609537383665604819840524704237114229414612447244838479854837972375515344656612233183914390870522265576148624726644870434276174749792570949101071385818273967840191961768694498089187588387419778030315035130367579440234292908670372352074967757824321655015255435864191936051746804352171991554335868384133432910932634303346884657566408530241990991861685657284625643662105443769780647132447255652198726039456517966726541647613479593638739356156802898500823440792630488190828851093859466926699750194095602200348689284398327359777837179044345284778957494025205609189792284309778269360373065393863725439856673731740939553760133742905202288733383333923036287450363472955694507886456799071508340129155722900825933832685683107278707076586638360692493417324751003279850180100214957966699053138713981328387740926874055616658314879577823251638325079052325706545100710731637636478195769888078768391313023339086943927309630883055692739391775814566898242619760107540881714661751124206546689844677267531187183863457317039410505870294743571260493814401388486388998092907641191276478872890835664118751737585823203204904260890455680022641931912653651448388248732602309013707223059973417440414952296893162354295277253570055579141083515391073547253879764188302113882308287518780494754148347218134265319341920115530258519197128668377252307899696137578815639324945313333081220041184832230665522905238989242569942602971955789856959376094966351209404686877050355637494947464327463887206938211564614930768148535307347580395959584121657698429197420459353549927042765922178598626682952682698880513145298223275855737765539550287143385303704702449608654314599045399424012394801398056292386626007352501274384937516247667690754091303892402502910001609295123592545351595777195780781894863015813287609331223939338377840838344183304069600176514578252016519922438911945506814350914837042847743710667318546359932584587375237286090822127951637291749938238388191516541709132603748546969295012551926091714997484747358163644435136788021113803102210200805573298224373077525080222816325186781648606194132781742447659699712935812345860331570611382674222129156599627984362897889207948756885556313023917657237452467765405131206247874421632001056906139715467230671839847035265422270117315346410899399520626646066763169026659729227744324693847499728071210690836519065523067971938305458398301574178417968572038395440837070761483612025905518455583986893201033560065949265736918516774884921274569320311563758796908124930553680760090365956089850037992553667584576377284001942770091039019811835955181406133273388092608438961393344769286062112731959139970510313361643016043470268308917080762722565859082016805790674935022383313760623759682078816267017757665911769748454058765133389572561399851934851462292773790834434096878054879526063496407545032786263720626252815730220583219508149704110016982412993287510730898444316913906054459605244217749925029546486703369418685361439065275859322555728175392936148844632761052645976992367964501430650637903377906599708954409329756932439416238305023892808686436243981188568152777855712888025281992144339056457136399537261008969262716525929175994734185349189468304271506871882703489768730203517637790591940897216929440078639099145978125485097215436557867362501208002890486612744909215188030965707200660283841423934122772009943990041652576766348492116995093107356657117491300823171965054787075374744044612581470509349810716327363300626380721415628060710715731817084579007255837160800743081008220766931061048279589383585671062719674903869743025084668690059389005851370834403359611055975573075784277530509834949373363730046424640952958100843584245535784580503755691555856402539119554543676830889173112390016719172234941869622795442634326729155880162845990180853366878880020703144609800968440844983620698262214315859839599826046166039546569993639284823707355370081832404151209839785159351910732406892946600372583320324370726382118868122970633508448476870473333735617110655570337549364688544511594748497771390449775512619046033549564397665801494575342476989995326112051226463100177764500927465485129684819594339814871031363602013112866503114730506421648727772355933576425739495318129569982884134117291361545929013585894395005865941747153169959092592664904978244422186129942666649641427833277906567918643090996400135294153938370937299399544947084133264833414095898843126445811684595696931520638181087102640386907146506572238275273641704463322671686376942125198849478395968967082901481514042216327564804814580516891782223960965158710571731064407576932816980185121877728499751268392599429055922282629916468486465261776403991626865366646571823804342232425969389297401814641779649544748637524706553142861528376630320255647332302154882102375147919839521519635981353316719237462357062394235130317435345366968423605958241340758389199347479343566293902746711982235690865985476707989649603358862728691212878383646051142043934028638249964903653343576065413786788507721793904027153605276741172317782081491441689313409204478629161713278789550572788504488532024409079657959120320591969415242758115860231748101614842889569007787558904526493780093695825187710355155548035121093525998403539343022241320883071124754511592859433441910372332379015280978829839118937994537190768049327916046058805652764482294672335295200804227253473897817417039570465139142416510401989102449702907898665019264303786206628841389780229511814796379929592483429203608677632727993128236975830452708055337438043512575506260331569910842551761647520178250245480701342415791038150777860305801743129799037015459391625763971114509334404067108764031746160979534562164589072694426897670726853328167275858352706908634515685143664797800768214550710064813605911820344550560218771009201040479003887192737157657322955496725762454348815870270721807666441637005973177345681405636726581456542688809710339297459229455270560664122589793318926095989350990280312429629208899526627718241346942030766089723984383091794891828727225386361164742613553189470916912774263322895381555808715776311792043027029604320914898815152586874387860804530144075063368667493735285539368028332757282031332716245776856192740822361702663831220453385581203613225453695709310544377867825364308706496521530043715308179791804156375318626718680229696179032919084116598482397813556424914409530672909539143907979398914521914189371024358991323077796938013417866888619406305528615831972908928609267650441966692405373164543876352693344364543643222412810380394896964289590734121983851697278686500627846266733890075028077150912064375754160334900869422596049301019348328603611109310563686358791577045383366778344586246996594771631882967977306342670325164153732819062461019672415357003786334064617873584060181417523322341841270639291742058773408381135978481648301191563937550510033805335524327252376645780463565734074406328423521945352090586265975827079134930101284223406358378752461728567946659331862521358847902103230048306445411624131911296433041311410199531650215706047154298930039835654620124780288845722444175433169173398312433991770799639853847638169323340223370604983281280583407419272674136807823627714435639745609408684534787511873899978720675436361890428175933177551087455377997471640877232644730860412627472827194513183860759266086160491109587306997343717419346365939678313266443210229947119225577101414108852110167462297768404853913189046905508596897345389011108182748121982446200763403754814136444328166997386737158935214315473240817859288668751357685888319032282047514009498500340626875913475844425486859793863654378103165929706396043856143514141268695336154708375016024307100833900340249874800170044373506818243725127292014436953115896748655657097979687557226899283974824951258448130587347867819672312097247939033123010544468843748622489897324904424407446187275077014795518993093975931057791590805302204999017016554394395655452492717377704265988550140993202862050752776093416488205750506120083678732353321466190480751201261095717470191262476492833266360959987478579079646105039971091285495450859951154740959341461764685870743613243656455537579837595340108851372424297579272392568220244184132667344127099201168874461485712588719342933540693474471917625638425833764304259594765659306789875716250930483619578083401592652442084574739730365378751807370229267384678235740948576864879385305645210535121050447406334013094427909651992593608718738942314795839967313498571966422237118442137039121048294301261386994713337650694884323494738251262186129085084572193851928666931975748226138828304423641477247182860468932133771038768521292238888075309231054369300047879734708667228768905539695676743796604775593747968709864698943569051086569167891560695450442597676983941864248633745023543977398141072220831633629105626696770916410366774999127842257989102194670543058959059111041211740273368498838869504169659776210656990347054634988926104945336593907375791669785034204558785510777301206720608420883406420866684552133082738746388977049816453076589316575410392633793121069529253235268923175151724546955659842570947974238657538835108899745842673710558907509429842960755859225942581135308245167008935485485043740878389613862514293233630856070064655411783010777039231043065399775952804262576651605784017307349741665878213628696260539683262364686675407495975334464814667179823029730221232856553381373229759264028184671793875524295452075835236912790618261952535027053242706646507007612108539343921846194408209402525724800286731765022953017978933173774336148513140347724124342880176132554631604181846846281001503336754116419195065970257112951946020706812514564318737911331957136892930736259550408350601482987901640871489949949415445943372397076801713840333880918181027395004523604241933798524074548794357857048513539931892717018074096206494628031945399976542332687257273366819176241900539943538119700105443435001797033762368715713659712420379527825761770803377107398371795955527313537948955389783874388366957171550238554448410372679782423383679772609159280929945832505661557047157738244764812763492050763623811190567857891416568646893434833170412044881937731415330707150646250399964574988985907297937745896177772279589039000734446610259210332836751697048497356708666494293011340995437649646952699613830346396792067047168012370710202591802322220242515537473655807078625648209198709620989315347525125616921411245469736222193213148680248763118140771282884379301259019534203891171185617478856988812688459512151425824626686807908472687244882411350222105471309541914554203386702807756890146737126114339024344846142234914604856477202189680865239665057516711748251660555931803979923148803260111922034260623759568973022676432101606056507119697030328752579197404620335730206313705560034745249903319087969520896622287056359420882237558621552200400274054946665123700068348865678541074911863155932180872979563635286789980906062319366406445783735091342096289475177092440493084859085076235786363628810294838136998420922910559104594341477313053032872659990418547030176145996883833919131585880930640210435114792330436113033694467884137872392874268290719278537988657464718511434191182298227062356281398249815171735112096790212865057339595451478941634347158359763665583028919470522148267958521286772715665304115234208770119631013544266772404504393836080841656559789562673356296067535151753808865799843720812667296515407587272310375353145191198655897077504584991956688159067259569355250128567141891942358398846164587341561919769417043213777971934964891934423059572959351148498098255351364761032462831539758881786613148303276640046249618491289552365238988764207880645485887545689750664496908635088588646040837807625192555899973549001320481075064691959688667062131639824687272927213275215883981773999138810055275641923621681845312864640362106283795616848774022962931988057246145632660495119131537009053851005526872116427007316670630284445056534628599068431786873032421846058059935029696428624383037554208106852060209281103864001807145906197022115069922182030914209811960400728260460066713661641545155249815234417040281011103818175970666520971351114320965492502474021658545619742160135290807442723858091890070010958387267018806309151405146814739620640337680421427817880641875514550566450796274136381468010470844892496891412522111458255908292577410576782009070600731863161019877313806616676838739922153083197272779482326756509866869933274200390655070968045298939178275483457204199424404631683862951911463726820645768122329732956757004880052605387972996546754592179733477791250523818306690791243051842773735057824332872337137518764715720690213016498237979657954905963139792158828465820658891740595671080532503119487353098859176708079293937964306556224251406964183937244225559229640460730780569169763968093996814419025019652557067234299859525585029004814657494052293968136577917101378323694147212459514433173077951386595091182455277847370090836652832003297343231271270621759733314161112696872221285069374406341435787666028969879406660331685510976796222487010109529899566153298063126728105747843424211088745019328939191847301459713387714595607996258843839297627714981445241147708240629289920072612950337603317122378468720933290710590622450685884978792787773450922493404465371918656534776151643318336864388782761961886285811053774129635316880856371450427461445024572399267928126526766538946684749772099169328725872065587876445381821917828375134373307469843563073558791324163110007548072927907490484113068896886909756859759948303450695418494059615718897655637016251091768078739042380816400242689587161728460516087444798209176022787751535327962480260678303463299049321439456844706364311140203845861391138788477456984779011956028925749027923396958668154000652021861096175645613670839776610272664117339270393750578888555335032542205315342880282072323300417032560800816264574920662503087707201274593695803074490734467631202787843160802966400152443226491377176826260266056804563617432544172993358430386643361262447221126854723535119961393655320375553460379940847760893192269024109087280052503073611896366137828286843769778155494327071383586262953902272799699372759847946288733688857687034300719479735288467419296152755134285335577797677676335427629345636384217247588897057848616758422924591490407165312853064307332093868596423233424172569647337728220111095465509177469490421097988188201354272694904012771604089719696121818262003075116115084379581293303620497590633221364958622555277954722206226008290028423312935735842616592160843564449566330009269175136337877778880628106065581357227003931407921560362162445839867834661084790309721924134605568865831816074656401047613813459054194979867240222405208455953826370523602195548020346197012103790628961666308480025167836345587319200344148982746044232030813760080300932297120339971154064127799202111470076512358288580178712923806482195806253716680176823493231281917269536926286048676683398408403904460578991865924076948831884816313283751786324844003995742641273178991130610539827439493897533446927849430853474459083633336749009619470745697406516324931905147289233657382921660720916371290262762627831046475026524877594692721498193224915924006949884655460884592504022065720349527807457571278275096122302969318175066994903742105012205860820215053322314391157365828801680180439643618609465507341733814234362187475184669659538627067371514151614732849997558474779824910527884714512745556740795278901755806990619257595045685815122485286772073252566203685655590498949859068981723005645297698285806154340919565859697914470988111709076339819573184586653875156219612953494132537658386980282903043052384330905032231787136696569883812441030928251755309865418469592025339806025327986432070995782671322261510973453073619161465050947728487903517393072874717143520968877448603640221149417078086757192963002245332817717028089273088878179471497623302602461322825750062318434811798795825823798071521539392610737759574766950196156975699231146461829133555734524405250455519695134726232032340870323856416142361798255338988174441700891840916609583874993903310062788772904851382517793535224314042702852572505848534961057868920137527673032083296431616263630844805945621058720481056255346892128510147704529223869049922533815084811447560331233601190754933958467303764621068710309108441599303504820939354793733163778461479801084435517630258821333007680895304754229821290536431560883605323199822677382240992890838178352255927210772137829681640447184626138131829571523639601090600595268763684990480518540480168872954658091153039247135301608811270053148518710776393014790967953442821073350204963443818517075623436774932055663097348883590365101447041942016394459164952300304757225743383330716961162439967176579840088756310563428352927956072583017397560424105014698911424956451768662861189961855573685913065835255975430494293736734145173965815690741183777196074964354244202268287028468199270426279756428464777220348449483347948793863326325969974232811270914396264157908638717524648404172876951481382030485735759952644590571149467182336407248673503109021247205041761518722192720216301668340706916016112429261329283388148843433927516525217363345510437898928269719124522801076488065553471755840987590494364663640633933917899069252329479517575234863908124123735334339066022067827013880820317491826798414640035858069186880182660946108080095178459791020296371621363993341831174986134935272343901003650919368929280052410372783150408893680690088023290545309453810986671336091191185314866656600987537036731082026822584015444701849437600268954485704040786019298036295831961688009034061207359809621524841629557633381151357489475725615929949422654127376733497896389959472290657150928187831908414635052586273168679964311386329494734460157784937115058045844657216694956713757195879670501721263835793659083964208205016412212028465560633058431305363954253925169025736715237622530257194071301935974052598881232073774738625658090508249658412468108017050390200879255132222465563346796258914915598128287317453817272055143051993783278020301239479570358314013971036677522856255282268250034649942611294509802326657202881109835070415462850517368020251155304113466827279142057323619501291702203621970653003960215485621635610867013037393214121951466077157725214207244852689278826516942585420049229014220506852581742698841438214084691439964109946239838195472769933775555131184374579034738550928388433379134522223635747375767445310751332915608922543608411409676193698612088080890934415649497292503639348649136138105220036828822670001827599594120797311306797544149287780932586145138958494882769691934318969766756470134167836480336437679506693748925322194973640814271119121189521364390129442462897583671432401984936440354765080730754500747706750877643482989818167362570071329197798283537933658233657570641569697433833636556306223954328864103272039803162064162123087936238265083319166747078752463056812420109771757511446589742981472596100934972614872057448487460353734600759681998880874219812516133976273856811341265987577976141022604323593544115655815659690301783380441065136506071506992730215119518928189020312849471450358907152874217575944013856755355576861739721141063791851342039425408950828017349727956716481582965154645879768427625647137424951663005108236384038933945918408760278331765747004979148641892413662030943012784604426098587833308174096349943885114871841049334054780614168919145030955162625665961579796176289437057798524152176752521836750724472174815144820936515397551121700610015246579930354443835813570768514841177480577612607804920438183154758936560169045896973340348020183170703954704334054253251762710046416714587772064970738890773028542138702630901436326450989434627796894889444727117923910470424708824905415905954089947148394590560779445733067488592609062405034699275903337238537373449391007518624610227606525839687160225746535238783210761711761819924099651858395659952482098091734186109059794699426632270055644492468274896171654297170488185083288239517861967756177907873060345470136588117672353269916890268871496453918085633049231584840984389628082939240939119787702900139908357875561681976554235853093354370441842036270095345167920093537622039489229236852719315617027041630110533423133426904922756879834631384659512123666556543046717647897557063042612149515513393933574750835730784235584672831309571258694387201242183541519770519476928958285575213826560679462861560065708372975156492930255558121524900047006292081463479914086958264325456219668031949410332601790857630728185608876226822498281383092774592501920744575026702150544018272716740021701215468419527370290918763808771075879726586198709665433949764009899746860360437223105200847431072185426975060538306682365808657788926829708418665189015333458602995307376606399280374227349087918673657856180696437110785120259068164944029710082178076672009463086682875788051645291559684599206363322389961068275073372880750919766768942631818311383180045855203140484116747310218221419787751413635482306013860909439908803897292990656061793017747679113928984212456027789117862659030814141740287832738670140204432297498639986970848075498945468324003509118533383984798749166552121836893239497908886735417457269184905277917888640175053435405816604959539941875312997938401283837324265772725855784810993444764866388235791785931269748678185849056787552315704646451724939072665010683506713779354553472042813048193270481779942032408407116018239360332605196100762185625349334354164992027215299696810573131072508547904266890589199985494807451548159994990384931575903345655052503013250366645960452301728567950351286961310028261592774001426472009807086474540840838470456896625109005386027214083178164529522749026827970884357341224824969961366031291483686328713296634957361503315636397851634662323285279613698661064889751839614796252510029244477939450785568493986083983827348683652709192684819892867986919270749259748235979620511219238339951116664138101529807888734364527283521732967829735559511507177557097010586365193115507699286918196680166678877743038993691736541807588337041603606013643756257726562153377919748861484112849117449994133172056066951018757946855525279405434483867693198569601837604178810732408782135651037717406592643971329412164267891805806831172824879453311892494149413396611004101078535515816491951214247767218066912885005299092311344924019671192197603978033572357450860387564769963603315182771370393622584151370276549392309401501007293423694848370948255985083058741420737479620717569270822203046996491250899269173642600374200522061802598130751556484456295669945145231590115763188335402582141631564476814256080263632593254067795460393537062478842100669612145017562509814036637807610297368083673223418015014193143296194084714319804899917871923082518076324029177104080619088692769912092489942851877798999168845471480405561583124977296546420068908098008092635242745229876767735859601127539516208845101907397409898612889403800271535275129306004016502374846016575847249568115617601358821610546510877124583876206931432896354964385338449181367627841176906066616201987522830340230684413732712719887841824948484888395911403733395945321617072062184527388721163518692179088723140088665972358473894830917459418369942128707010315725697363218167574743327412375911852415133528745008688073607000666301536549165075814896808405158633641382637350002732343048797192799132183922421935599987192135996403904770567872637059088565919652900601289922147337453802852922367238303371357507052981412940562201983172511937131312570107332100718303994894062180566915422741066431170870005020640710117679213309657645026310954796850020531924403528181990259281488209487796706746066793701658984203338558618002627673819341418701575500041103688048043561485037845985363424861267747566584475292498883420809814072025469841672446105506571727637394928604907059003328374226014273487470840705716206398454913154211911610448824822446325643465694102713087556258449907021452807008884943293615754497856080921226712377722181869728507121403942927936227445882738201246902046561749224539938464957880925606476354977529767017132479297255056160043821182728042376286296168743019938142198408905717040532104718911614145394103278146352820643399308680780268838741327706499104528575576189329272746050509136334100492916720726625333145127014766909974152607370519246526782259420006332277680609278787202530147534447076420692584751928548100677999251516763840494772240920267784403468840536178660413241398523256118044109509192502255627581238998826184158610170674292076722258321510169581198710494698731837066304482151588836978320258844348984784333765888334224231919494291620930455657570247760881162623818856621893920628783161539378989107962853970666496541453897527459580648524230396757492882854679898338787690087366628724729670471972693041908100831152420448784614227237022046045636188604172979618790250213430342502323123703103546293139585523973243093418232249417912486147176554740372503715498123541770224965833467040645322528453972979952376476216630344622018836813181132296120110310668438443309725703780927929854121102735405442250457453301624161087382515783622857171453484310227323359260541697728946194850102978055769122882115320058385052190351785740491990297027124853332917093815099751601552963902492236484706438800120832159597492498663058821654455800948054500519534176195725547650563635055184947831229607676711434503052262329118507419965384964002830869421017053585083753436388311519538869223933956802166116194740695389889673719104395649598834528643223923343505996630509464061646664431690782281091624310520887547288217678055558876011067320886590493406464329632760495675107365693068397102069588652502985412344610420256171144718266949380243605542845018365247590957789817373955163677810081536834124936841582201536210391085423216019236835875563517904497429524253646677638195502281180493335159581919638497709842074599071248400739778239143777971368105980073860108641345080875103128971628016308314975816089262935885213275756167152333700872738774248376397547043062822609753203416097724657370162771270470304666960297593638129770931795664331594164628857304103396119349340031692565118799902749154670644344739816054586292019263622267382589979340226394602323821937511771857717351088751241819398898116849499163449312540750096530922355944112154504603345712656379671515876693418962875715589343515797564875832460533187909020172009637808014259523081647757564410713198759874045843546148494759695335978433238182307416917049501724571838892481519396237740130565228747390005980509281210416533172839558407366018511678259354876388918510452212265131918689418346441470341699473855342672115039379273377784224268819898612008307726588477622421429904842847698497828518229997049934539173251511059530526328820372920619776356092381072334318085644300142656032993006612597373220527268868888519165165684095038131796716519578451892420209878159257783805739680815421247307655992940173387308350881273131075905379659314055282921182549537576677496768666156722645042695401158587130927397354279940656295367299169697037155207585687963445299434041865482673812423727923712732293264869825310071320071100686463505073869888295895682995182468438838872344788300107227247574480174400090392028189759543669612563379013892795403095735222139297538939312413652031615633331061316777283157277929502039569323674373825532488989883793674939770703950327018103148473266275601838126860851448509346459568065321645597485941429871786438307975274076088745356930585483392661635890729100366007907109248755547384402631745994874659633570704371665905303944255736799758837449180156760803773331993128376011464566104266168045314858355473057658167483623544836479474154932793642362841136312872129658479458531807278961187197932873488185705874279711043102350808128260545545864479772056090567356698775119278797517645344529564115085210197796726484237432878208881254129272913838101644948321015947156847010004324880692477309041072631042579891259982974952731880335591223660654076907046635220305732781342240940079204275305464724977403978021735584117994429655126327701168124431721569811593211334230271766958106033641278769793406032382057967723095272609820816056709767532235582658590529146985294620575192136761799040665167292590949578559151296798912838221057634531586877400341449061748302924433582521258612284358829083997041997579049651948935303846661625504330442554816192390776033953457730756010766350009905163502128382502530819889850008515381707166096127377500437345619998437385762096828517890237982423974879551553790205064309361387346366576853256977713114420599102869083583849586719379307800507990912344686040349461874668022744300213344638330793063853595488842308009476200225672595790184768663354165711078911526403309196963991741475619946050676912529419641443345529145883686493975076813742222679359335236970027524285153821155466916066420644411282472598663089728282822671230552292386057248715253788442997842605317089694878810576384627996444962983460359991030249493362757780021194530412430237673868327598624477097556617664388315546929597378415781700371660804458360475312523915403322046578780653273259926404840108342380620443408114330145011989075282847676978720981304247690862475486927845996538169915540275437700756619622120404826218652522378090018591583434776078904668680388244818830015876878750799379339661664487184373142484316113195043125246338568271029191624803743462085366265316722275965975847319873046779046115487994690486561109903062721347537039687418963309215329518221899811520224584704167222787825440343714387842303347775922780239624890678463908606161147412389337519885973866043445355365271809578655539225216853342499360174404405694875929058396510793576280384053523465901157003913994582366577404566907589601393620667925637169318082625025172303259950930438146893679499494639353380267114657929203541271347517841902005987616377763295345401611462203645570226575840924963395274009189804365126594818287512145512388775155096348805312969691077824818063920503678554737347487298215726149527385677600443120152845071700516289428631665975179997138818202803959666842679420189139041052673900354668270898084484669725780224101827326202554010638051140492532484501585687443874392955765277746176526636168518218019282625644291407344876453607842625503388272726381714542371017720930428138885754872187543993470616116738407102766543992586190725879115945588602182894697854532287476777487483098913124133042188163011435038777741948539623816812754901549464039942445165744786540367215360739179974794856014627899902312981347830911795832269209965822146581756194883163220151001145208789131716773275728771157243989212891516309769946213113446486084316297257945395204659601303180946166706410014570589142313098411674811884118832666761245094981504700668101507024835921818607113142921471720335557796779267647335590635977635968502420197388426192013954580550274612952945836256753389502323943825174514876441236237386899926152029166167437588494693954509004787533610166975741907295029595606991917143155492758997384532145403012594660442918821246773686237504500754842649344166085337308769312592569466457627183820033587401010391764721575228301188952478104006702760033276191787950451922356930913278711566265355632316511091886429233375055473371565350816870468521460530584675194101847314013610832521761236904848059606942269403434071302324463528542486194890059912525844280019192537335503285415344746387873191635729669633070023002611355174130380791879445389961075245497708836306838602709187198759951505840115798532210004739441012341705073542762024803836024295084841237758493131715014134794245186772218525442876710281316554651537930649144216570518036443846530095969469785222287494223309788616923189524529313007799845623816436175333643449522104349174348373938607337750383379980374948000648571729724047254620675891047316259750412579142428937727533116402721680362966925755357348067881498789130303248082920502661291230977296746847957340840053191217478703765848768954979626937934022612132974665404645943844978289517943140363887785777389113796446660706293573970047844204017349697042654176780886580063619742115875183011189596035074922450576914556068503596782659186996571924434014451304237118049760225391809349089212561536619615021887921241863579395066611001750925178938741095077056732339322572576331949846464963649864939608105218107505521350254167255761209377062004153452577166344258571077947546765679082502269428514686683904508916848495681375161341692149334666368892551668830194196150397742636257092649957031585534835668399728109993504551312867934772836048313807229429519565485777985870249176745665638773100351995601960212871386347731090002906729134074561983411813842802560606360254555391631523826057291864597329011588044991891166572197520783755511919925051580405918565423925485837648129125811704849875476322743899997276587814215141754631350560639866814418835209557451020529355594817168595246355426947610473891087443476604042650592556217762952411519346703990536441096192711866854883385183946742778709825761229381856163230774724208718965100795643750171392336961986369752791293871024912892685910716998714329016947399390147441233603611887992040731262551898017328455978914605572198423706029664218168924223208114722462030026230972591623014863840218679572366670853151739224823555834765231241409628872509982457210561545380796303648726945003947838939360940883442176400923947425261734961177043666709429388594217503691349329170107118951859584335175712851488606958016503769743106663775620029867398449895007084612151266789493000753267156515004069403095329208955224939987223388505186921847363817974189543061417570088884988787129503212864290872326136591419358699785693184992661828028076287874871646977145255908497184342659036006970637746198580325025134150103939997254999325281118150767982282454887870650498976029283080408078379576742096899508011779800009326343208666943103752579162572530231565579176752113385997623519387613574614214998072795957859612416126953353816709380642879267076638134657371257238117108946484473492305927421894195889783007226238703006007462492523824014530419471763394819839445030117554461221203542376559205663240743336777207466106552655462140694482090939626495660514051413007961421153156283698253045712623753496188034420697449172913552646779313526905778050048119365377770388369612265920585090430798905021261110094272162377931663802230683240004340997954760970487487064888745689024468120027344684613149595805361702348545376233615860209160820722623525813091914368094894478167375144416820470853813058091151351549648974756911685921480165682659706920663473180514301416424659197305122053588191503440762675030725691789580180420342254673072196975446651284005680154443988400224710202631294593110448657055252707297680601646165924955942763001981376563064441831573113126325108440334048847713640004888670511869340814446583456507598699676811583638741048783334242958666192532780487456936736561503992119105804778448600701968999692693328148209793935139711755454263004471442038234719459244553965081497287874085624599312061843135301699856736737496320297304048384312163097390305032115595493281923899430994261612370112472697004254288057024983410810605714793466776751759330991600221594145203986028771418186084702469906981532144058818181772159525383177552511234101325563957305790490994866770337584464060497446982686318714535238614522287369212372356788655267308977663229767457343936117077018882747177482392804172103659603101237026575465193163347315266956466417354735023268646023944241183308604379444940461088100149695911516450422314580132882145506195021314928135585950505007683184261663881083671708175839455900157100434161086052898387329711374510247410856570365914595199960748962019770027359876384834987042345665551501334588744258600666751550001493281829351215128949637288080707560761999569051970698444407607467146057606686110160214508363659045764758781527142901163657244019298215207287483355431028080719654892310956620086059331454760551987431626202916976500998242686184759407817466876255250625233168394982594260998454448091823770347620774119357128400205048031355570766796410439473943333406028414558392593128451473700984306217507139333936862427422601565921587817252145607339299563123089511856459582895377809953300536820657305388305525107215578733054150622124135588023469756672338016891625814692807872061468591624114441297244005308615740585291497748285598692604004375772069120171024313384146802601301610416202588814394544009499736284434797471044097030393857121572308431411253359111426960435695235031239028280970960216533800856500667942276703403268273269839654575568158415241313134868688297815738111182855397111516395132506300278245474206144599020045259544352751088552845885804471960322220501283261003543324044218756284479631742679569407202165910592089075479485476088372476921261404513711918738979634184386484391841369992258150395952523479842499118787135431130550938464678138477894660498504988286460406805038409046541453905929743846768135186529893593728023889073925106868355484841654703776127057256522404355516450006037426689309998361262044163184724989930572675112126582154687457734737139951845618627146902097486312601861447078216276719964128417406138972897488377003204958069175648450389180220490875673628020699052319776972489851288076159237768053235659625424136483146597101995352764147097296558279999321110492135929053792884326820191863524146010358798324897355866730582170326808757528242393056004081117357657353608705577193681413338381298254451702089069874188784251306268715506773492590456091454675150197447361874419007205448404132864230866063016025411678390997291163638491415090408111027489159866241819162572563078831011198222463661593131998278451939999358413738918377030917369868174798511793856184367178953401075280269233973523262422662504693110027024023645878218783176431701900390011004991474350105601659195414644572704719787715169959262409139460518630672650806148566316018751686288250446150240421120554013142256544396403319743793205946519618614571688776247093246861066975738694683020722663334116115811365752235230585537881273207324149722637979835526062187917578262558753804129439267583153659883729515883421775392789215530590919352195798005695751760034434077909631414456362968418289367839647911204583993752781524475544812610954725236784681413176624746107330257735415350377305777887602930348324491508028930055180634775956886438518724123311340451948006839598843232244907893678822034368180519223287875782791753414676883407084551984811457693778296607620016682958052099448178063140713614828533861290208176268550968245377630001274782565860436379645109710869682680707218645409666540824596724019036256128393651284718622556293034829461998793451115447756014819853461841039619154833666288867369428155240049685924026948860387608629005960837594821345108342148803581938618150324768735349661416760817515008861163986582078940994768125233272005972108408773119939408759244516496859607074861639495958879395638007002056210561124932946956548906638524465738746669123844942836517586547514981965042318665862198087977953435798338436105439482906160282996012334606752299005600077876580628658716046313576210685374082186710628701216906337562390367559539801910664020000363122541088416042439690694308524185849505928723252289151912045898787082888755062075843681266771404164381590826375276284471647322558975952779749624904696226634231761867043117298964393224001590320544012645402344097384996504610210422806392411892733998611920670673131983212758931998317194261772195149824480654621208391872062465176081151588970967640198675375732742671058128607290645831050760614122757105733669020440781610352735998080163161822029493782851345416646417910084495838514898423520503707030271209008655936643566655418397754619372491553677921966678117601367906827340204640296248556126685835534657592197833588806278531688905095851699924432631205217904306510494740492303731770580958349224967128296672016804825577685501012773765496711230341900950795273770424750838093465124872071574716439412417421467475830898813410772831471869806010466054519114559090436941556318710947689922783858594069838307781579216935642475732966226206858697744216822457409053589484023655226569797496598587890918475301903883948450070416421057911466689170527955580683946473643000763633746204120385220470866598236988856952071159908911177721590553635780352004982614357478186804331049519165921261518387942887587919424066597513029836604214445820544224872200776435810438483903351934970597471524210656013549152187061143712837432204439088684852692479039497053718689775149464359902803312050154387448072894160211694800713361855581013995752516118156543814803780708382489193173529100153881673993409664187919056081280732266485382695950014859794195277288139633205944729265402887275008291466709001769340348751293280342587149387258751323843515349406211441262247823072074311372894433228367934935737928268038835354222662110791035803015203561205262490821296376054105673736349255328173878846749705281825996562170120757546214873659883833363378855615998157320726541979311302498758602270699934203110148756280416365383095069896396965581166432104417058271843083364816570065630600340078795644747238006656635209832348276117386894322691817557697252330971961764381298414663018823362139165200620380050340696920040458273715209932862244988883971768867293086666996064948802165562165017785127644738927289907906775180332721485680116729604758113589284893986108070017074441575693179131438117592289376495315108344934077651258533404590512521787951301830932864852278312136196081393414806303300359496288309407390594163040527325433747083434350149652081830987974360264823609867483948809238880129692347920599043139832936293597404446430376483726730509656490771494509995979143756124175494671319867146801144234742632583675471254403318653727590943372042584999255366186873666926749395152451301720747416949180174701102823345253972804214600443920074204441607125582330949209236824544470160050316044227229185103517471410001690923036777282542558797318449106898942111035462351942575382846154767864141427174204525557990192848870088571907319289345792324127067596860818298979797994057016717224962403861167040775363954134205685454714842391953355718198071582549922937829638380310166072401499251453438967329027580563746912943102280856064340907375033893726564258547089285037259499667801149598239246710914245610384501044505882261269973699059595113538013399492803010920467439047168781368765256929297182130174362442110143366386564490800424395523295659667104203798477475415373395088258003001930071548150183109395857350263898323822900688388986210057970413231296778409448052410769414263438507312195908877682734679754793553068657614104207589586526132481273421922551340670992654864430413185213466812103389986878423652706100387642071151696241287590378838240414851135024642700419904937364883740333569079727153478377203093649676855597011269700891559593434491848394405104348184449943189782238753836499382487172818330480919684297718216036234815146459518173432655934371390645668464575507790478163562063967420067432620417950210103009786942524162253369319780093832798459024654719173221662943565066867480425585044450772312499091101264868003430898624329750181942856955480081306193189414164381775480957954304785638550985030692073958806848931360320575350565187587572357842092633296706410147700177243436713575818747525886339983021234467727169930093800774926349449612595112434371421846921903326439784560531335685701247961623199621678811652028535985249684306563413615300266872821933054106677958244451967208621881481113461339903543388141752926082215460014905707150488725035088354930544136682923440017911172477894262411179409059658158869891248813529250989592981739576246628190626614293818872666043716522633284074591461622050747915514806290671488511129949222627217754140896040403105753322641808761654883317918343320560539046135901362652218075874584097632187212631967715941278986595776055203403982284956336368975569148769733652314902933460831106247737598550586756707839632997388785864759665299264705075498087973902602540862080265874498912634036670356018808980240794080471483777432574279088689872805584143704287033114050130533182961948628314484283125933580349637334624084918111271973177967362855313259883965922093363158311822300753236054160066547553323885873125826540061043173003491484930387512364987027309644946290835821969345496945510308462382750179867756973824891850612186379432178183408863605847810462781031154529331619901510918667407272316712799522837939094822348701349921173946417066245496379304644470708442407057227883303511357772650022841028285521779220697171581390428975670540003839169723461737733820070483050612548033639786479877359245223948959846226263941111324303787554178553783431002245662848121331536663467299050029135139392290520746755164179481401049151360961786998848297750647832657835853541844919092988327848031539031417973606640710812694757542720959130074553076627602356094935998351142851649452690340843104699040742567492731429849376607607187150976134115922301438885278738483063664781016661740408461417516481377653005907619054047508199441385766512983422812555661755169373886558596746783229217896361430299347242643085116306383641200033474997678798798071427518814035962722605224768032305927505523589395789208367779355368228646633735802439295985534600233560934173193923819392438057368304741053052863763728108583374627511301252582887630553182300895816231509045815531498843299956303038921250245011189705156439114796345482540652828960777694026763879310768159768298409584539301048278986514893566302121643664574212745382468409088397092538045025267910496708749649075621205714803668964257000276098015291769363508308699129615236790282680371918948875213715878489035611347937129645234309071020103449497660801728024222217474076022815280377151953780643841175029860656496311759462757014143492526608611963865749969400936639209787302044226757107864239570011396102622953294423784665278894808895107172415874367906936569628050592414810601120738736946457186381425758294484094505986486798856773357219431983062505045762106751719625516932786296852133742821853822605080723852427477428696029945978694220832740744765992353818939104985955030283693557295295682239864785033628845399135423173320969086672719577959589640916139244241287843731649051103441788136398326047828448539741627199158704801029564682078426147460154697954029281751332088012021063395328988181249810625681324831977256212338679572531592072218930260204727195681172638440560056567725505421004953282562958357699125431044418509520584384244308923789153309633077495717757483944990950324000153554184492171378163177373263916047047686872048223184056328785353456947810538973939060928323342353572273336442847137266361959619487929591042105765334868046156009797991218088559956042424579484299876881662398804852145656622750774531383859549212523819311980621433427627858353775689622457930963792962931704445872267231504322962834491673176584739464183785565538687758489641696322045631764114228229229493634667264102577328000683988597685702930263281474198008314364663756751757095065146328370264733482970347129751989967231805299048716324835655964554957765387557870721963399138875693412171288997784754555658690621934222634648947560219248658733998746126222315956600110550054780913128608823653210411405815278693887716600230686424726129495907322623786421692581189463425797300550918193484545438623697050920564922684640330666312458659854728834069077367842724968030463944307837395935342097353264454959263105234136229455387898459387699042126237635318674302308943941781263344259947896097294809397320509751696855477831954180627942046717121772924782067764159214643562909193247209598772114711916716683400239537217661486312998997535954978031435991910222977751850534502559386690777978055925588859229501827192971075814475547399990966324682637446231612606221066016727042708656556181248832917566238209137399849290627495157922246774044748819404456969780607783449084858749259771080974081763926223695351161710090299319572653015229163077462774546546754957949991268008241424241009832647011308586344308958459316092671854077507145984607910023212141342486386090483853573439308124131354390085809116158751147720831493858430386636418230118501542032099208421533393882190024735953231916128658088791664910182688339943460735649074870765290576626764692211348524247585883653816949585834862941723521275182160356540243952078848805775204221375502149277274719946031462327382455203681832499584294814183423974245855132019469268348471246186017304095360486607665247042885547775273475823738024544634971393811017675317429972664052154356649884391048823301596176815069394891783888259939619341274060309933119364465870483387228500020881642538326222517157567545057139913972333855860956871632576479475215674530715853147110365251344837301710448944753464085576208593227984717402008175818446660261340089352363122857289854304370277216049557787383157598484742364749677878182783761030723190282029176277687109679117198386812062962724840237911825388095115957118016228346376639879308419215016585797637266648159689057604766303981711275391189689143047420842493221674177031503007358109075963709363707614119958070717935542730133900329975325032429710226441081135238606260777257696910522808409193790389579563055471525922076201564639503212238419834466388183521162344999684755812827850567880026783800284557856467362134514697575716953073569449856349027048334067282327461718644140610489049771335634839606452086531333982225303784715852865977925186181637858385700110977788047895423289882515130184664356749457978486476185120321650992469668031176108930351915494217888975191279513937779551578922012968241155244447164156994529331106575001565798221445301339827486525735488816900747385553094363793546375739382309135886467048979327274169591187207330782792775268720882516012865700741801110628263617010053070001174722941834507972672897822034716027316606591510718359480532341658418315585141919293758243137854931297517881847299754615756240291482180310514862386292073456828963673867677468820116537240466661557504693691370363311830216844518784296888873391502563114197524932971511734482199096665335316039207600035173517911313225725033053048319439151126821827245793237781417706182970256644098807627008362918231173334379846528332652229888865559285957893193620264310471607652860180747206007356778753457152519033587451142817447453763835309790810938929198226785333586723811157361893918059130777645403014812586406696276811288381268951783664269183968324972371149774205660229042532633743867781978474643195872775350859517907249551039468950019854208466445371332324588415729630448268651043378161925428667361011197406473853790294400545555941235573842005172025997961034148271651066947996750992592516579559466691170411841893864410120679210583603585982533751964715266376853238551910982330369696837097217340175000229604711919778858545162871318818122464967437849875471050597290532691357148057480183062085552783257832025396482136879383971477027560239927682264941746925065340611762052921302104526377438380246127719706316930195536960161739466048549471727745525426358799120674054066483830549603435792391450760522598670182768033926867208259143836244728512910568737156901867055336067977176934271107910342531444318508946608357462523463602997442784130002999778821742682725901999157491455459416119205002350015379150907808598685006540243726076725069275141019076467399229283163229790706911385174072843947710015923895358155826584205138419727990805032424712947564756628110644380309254388115751733614399648091688415982752850074967503343642926928079408528476846109202935506576677458601576920119265073948303337784039418830531862624663862300562670473495251890454076137594577306791624047588300610746086483622277689882870851371124878342221678100391977547876563954488142225708376197295433727005183640691652377536096132730934255983138359395017245448687423728176271171272312891748791593853750713139660948473270993715194858306704485391053933066999118210910734291817153979682974988363780896586951822258621299844847057951308114154854666315687339216611463406700560687607306707737224819140813213141828424192185321885687382174946552120070264436666983894989313915750498292056117561284518042978563566766667053785432790876730469618197388767477819673056991762637781170375878559319689507209654921050139541764686484176646756596384471089151101833126165023641431934235233266198284711873392057606983018236853785545730923586035612087313890761715899596941391374956089134889756750269176074535770193943796291728313310296210158043773667836308915038391552918917013300223505663524657096800371260143970832074180052954453780648828122408914025008953814872349163277630019176070022030888581860463610121741888323656831258945190172466779798954118541404837624719605980111242748546013072995485460825434774627882268205515285060886181582490448209965970845140546587295463005011120966215775714390447966249802737688980860105523650021085655062588211018259481029708122027848306438859395887379852394271086296085137479965434468041853317645607464156975840534781502293290056046398451481660093798787050650355673327686351902945539692175782051764183712738616451557111822109221613280783953107676259135160851852973000022312472136007786195452030447070255155630393060078704565811464190051330933000634304246060740145962194148958759382524364688024991047209336199911459857943653549552488228452672138670248458510119837092299657198557483094428532329420835663930253807433910613807672436533486160223915079472216616978078817524646422592657007049052880554926824470602204628643727447721423774827739030819587668885140631542468128526376072371349677513876015665678354398258111343891912500706246428278431654337450678951847767915044054900145437441345904571403725435980759145751867034219435072322715776516890691360344075392747345143261100761448398759011270496510913110858071782915567968064087267868741300345656404572705816002746107387509175268084823932623976633064557232654801499481968994856941640100022849796424343603373634797256967321169029259042390983780324595562689698692057236976150639733441548528511960352329554746664497472308563667012303856116922528833294197383502356314248322005870405159260512502924241148757701332220533268665968774242412940242564072254381525548236080550672046058965928512411357972892593336572277236409618044941986455270144433727098846780839972839303372050593505602211288423973513820545471011026080237420494086505136635969643396197627953033998597298576483999365270800000963438881304539212898187297764632349102484743483855861497051927664702688671073262367580941281334658374088006841012868376725941219770164487263632300134825598989986910279659849090731037915645013683360079043189786642373046345615929872951533553374928261114342079432485387371580131949319141747707220758585524345973603029235983165709948238905871252627787640753334306992660959828262547010928676915587309281917681683576670049803620199952171935936824692103228761342396747503595552864475726181951329767313208862774831329709197554687327949980282611848529678400879781429618862132054360744561828368825733687356959360787842744063105737263279778966049846780706534437583521267020743840086210479081215031681694041187665298907482325334331081449869162850703585142853598318556387087972679208825308476688383240389399603200284868259208373725873481835201223091083212952979898790490927902817872717985138467055638964234598268592886847362007957791726525869665343178262879286606647337764872492672425012257081144724771031557595677435182794738169511756221233397116355506520938573582249398715009486646957755720194574624978879164297234184746330343756756860426709684433466761686315201528989915837522209560459131105356321375304626328202648440514381579608457732329380095332126543125304190790771498137660359822341536876639157649482856844481261144856377551362056474891360401829729067525043076405226607985539238334854773843053463115147885128672787028034910875304931412334086220577324826362782765029435248336677874876361737139133690817960437850397572536718116387345067339230790612972943193354940528333735302181218971593833714724087410222099359683630833186413209152082060865443294539183744222136153350447186820837437889923663069521193536868515610704144602885742694864880403479816004590679307640222266194061704745000173150045347929272111193792286346429268969207870430988271953371197482013473638751987422219139262185046272148817059302269000422138205889851834605092333515518399067507091267794410594079564695374432305492429030558825104043200117533756462674295311324502257650897874076200602268141916738907783119767302865518692627430676640489744509563211218888212372755529242393778155377393245923376862568507851518401938225603119354502890437555311832498113359633541568193365495435003584658239573305402402206096946924359640456695245314651987665098865861785818057261413457349650784964431398934105793957153741142447266134573940631759981020143821476652768497987919434715378395456320156418641313748039435858481814540389590539263362785613160340539246069241004566334983415387783979843569188936510645300040150677017028156887197616544062659952942079464231496303848825761846506282599830451618009338470806863525433039822216020375453118013964959069332090056453209032620714139715303900629926328186919770112150068795295671159719024856956744088416890055974751212513887472675078307176282029588354207510563386962735282407538759207087685422981971057873689116341462001596379007126773521695149638205590301717302506255655436925129981394144675215254210047168332630060702966590137828653328385316054510141658216614385713450136389588670730949407142739003620219938697687509738084543688486961353218619016311356052664762319243620431607570520235067426345245633960341295971827387119598813527503979978481395062182020887986308347320608141663981841379928284893235844508718854336096470171655647985303721619746943130228619067898468978843608835042369479497768225234331002671138353229704326808777976903930182477281076164879406504365208804294653075023956054671418176975802171563329191995528189612961363305732707186975760914292112658216879898075854472709076286423269678923311834896813727725305365055838047887933442858105983654976065983423636968573742142997142037253744005032198419751456078081791369081112585324272190097077264587741327737905452536925587078085484516769247731394715894029246075126995416723577591868678779316195191309496133912569114850571821235416816549544172745210633067304520898837550574026651463838604089721602731465616394306649039238080933138729258193561383879885085625097611570238766122881679049061289164309694984099562815544057939901532607011431587829560835756430666392590007375699578187933181133283965158533781560949145501783157399525410452860623863073319597202061270899238994329075256318259275858476280226589577605617469503167214558399924763042424154400063001644308420361970142416337798433650369977017124054274901400993478607011528429959410765220117294605561335194622737299623535946731983379585900843030613974385696093506157853218212252036377509230060788976410190866404694440272390150116509424442096053254008127004536457297382011718352355914762141029056255473950855931852969276359573881299708922031301019427174167686472143132625768728090023112974088287823100323280617500898736365860302352506869684209498777879060222254628791167011565768289848862777130458218420012593118270600981201687664677390715121614389587400389482805898031837243512815778234734738143571650783298507619424515762957471982713446007005402375944696861900293146090125992456136449066211842487970202749165045990881787512689597855374571325864852577288814246071329183132724563742807612251882360253946907937733851672783563874456747390902234503472112822530956004622262367669790134890505619313993718895646613727778841012838994312164751609578298740857569680339967565060565734733997400431789014552498880148725406885785381172674092580072590075499683516264315497835182841371839900066385544587653683481486122202947949901914680806868273751948152661178589493158770796619467089794288664917279683576624086290188349843553805488584739729035710505114765584298495974696341521779474056999582056553462929381644814817767124717366994637108465879908558830261618610127299144022063163361912362890731103249135240062718654829797861487379349538497340510622588154363306980870039258129986856319514581153701154483150803625649245849217293557991699478509144137759609897013091252856007573467132917988905295104114155057191009590837157935609990142667425140913076137825394163662526123406397203143066515767451578727174647321700947469173969998681442397510294160348218031904188001502892869264903392262059230314713630266497527791914641135184102306174386244729890413819429684539497742420983448206230563943836120775783239683896134069330358070168171953054386383608464630847267530481302349427213373111633185750100080969814962140181158273788230868563988518677669302541185304334300638791397522714587771573722116610513649275824427062538710978980611356175247425644440819429988709000460962434261385972367945414793594584835273746771803886499068994965272034890158278916314627271053310804205666696858276583318994407913741773162554551243144437090991162650478153769926210897807930772577877447706131713449120222228800903976569849729383207191855479293519543223375262926775226866913065786402457860762139849298907392572143219810196014259742917020351602935583072288406631641406137089631529222429601439262852820293291573798919727013803631292945312134812641499781587619430234228897532575566791801522893509768491778662309829426707111306363046272988651816957831867959815504311913279542538643584771971350849689424695761463688591788640279237157363672301235587197741466121321690294843050764874658973402035501445172582683393270922342519902935656870229701879458971149483437644988615397593173203180122775923761954449393693874757228721426195698353610827370428864924011175931249546512192154705881506790003287873806123764265837608944301792168576051140701721578447013115328864106804167704871072952350498979179553994580032392978179802208577870397156836296892587462075622953162863747966717341467142894403517506642058820374066449364829354827548673829080948915985672562453521433125935991310178260864058283367268167384956698217451922760480142042192879238528968827406651500450488209806764129543307240106317120316986433830869748544520568424512569274614594921140808491178356296808814684485070939859111580836599794319732521238990450042135607141552461702670644805341325488009386660042210153215096779867583457713716905493846075225181876484907046403082719107468542561328156454173811166597569130822634131740191772342292699890672528801001673911880148349291300923340227110155408988262325610660665185197246238423647905913899222944145781914130220804912854081424594774661777393942218086023536040250024675528458663847109196873795595070265891353627313527871011075126412293013669698777838883164907377101830619580733949511357516617004397118760317746773290718195425191637238984020808067956665775706894647740990531380744226390281818677336648956612731529570009184557422693971201559645988936539925460879214521995113922903950752690120960033672627956596682583503076354396216067778614962117754040169771304161544937610888688242575234372869615098736543790525944924235214304359294702441302566299714467017148575994407523217423795106867681460997842649528620853279185479919280206977208098122949762827469821058044285614262935292024771314565378441003262759374236134909651386377574921458718223777805040805617416205568240643264726902171334951015866689049581477341118787969673754816154874362326750902947101702425891221672016001510411090898359285972375048327064546697971389011225907119754867895088722455848449599774368529735457350199076389977962446519690493255052595729291173150960217304325412595691532393257746074470145237341689043383289513869346997960671541111218932155807936867660869399640902407351380243606427216206898943937220495238835186437050416393535235841552614796853344590515208122517736864996755601630822297096548594537470323081559965446906049381413644797932765025248593417748895715993930493553003231358160914770363879848682097956620050086364577950292776295562664020232188103558183348005676467803772075218558550973928026298674831802079221770380288954676192088252679714857935365991480942159557294525231090629248296075852863141117300052579466611350411319374347740602404314812893700447184162198513817832084274566623593498205447070347846171627514057435858386850153149674717382270604286028076123376530163133839565059944223206613434486019608129517499909097304366501527120946948899062262810811996763922951146484530270379922277482682777373570825216581875294969891404455257850522990132656796912087250301303637087473828428696486026097586119823637534828750249580263692329151264468414130894189584390260704261075045186344779626370098251915569936465285849922660138262446256082992469588403270542000429308863537896398298448889264721289187943924808102732222493531814354062164247154411752450870377982441884245879293604776625279924950708092082953809760640925442008615708112968092009892027287994921494242453257436070485139547113591778033507483044085183444017243813166494553933659164907748800232484510264389161658158860561525891018705533185409858786455429302028085837539756659050942199235399027486165665264577510822122391742562748030385432359099879426482652250652684163083880473174737012439772833554254813035883511470863650279206931698960742957999760476651805946188015266260731971672181537684252164257960176461451101532500195619452028454204579922520490665978506035083878649951652758695397385773367293314382680368078038700828203962014480495660462689878942009004029048772952982476051818086293214464853033011685363302352337468056256094610472001955938143840760503593517242391081954194106923924887145695348079566844028744531236674587096361741123502872548225457978359935726641686629079381358600851999153892119349797194681332462057205367293847943243470726215222128140219989348417418184750769055095863015421962667221052015370539995592615128120862193097817279887268957660106429653656805528301138852808044050099903477108906849664295474547619536110439166586607706445434221802819969722759927387317173924837774605936775974183139059284241448857729764335056250309354915336878369698390860615167526594422030769038157262377620327150829399754389411909509489140239629506030879945970121160113713463021218524975181156246794859011730609368785979670265467892120859800821774931079085983238919172529278341781014327187840589823463710831219699189570104011223248483215004046669350262314229714220742967597968268841271187685948646571686571633760827637546206325553488680599989904863392705672443757057929455303112081867176822869468299216468414904115004492911146010304548568000541339834375213003424700711425437355452796275845252086003047070685085219079825657988669243337208041971051957867216545843619855617165820500334821076927643632676092053655936256668060130986505262624461566468307045966954114912099242057519387202671100733444936366658448372725719961378381329621268177858016674983259310717000388570886680890399758656116084974560403121967170476379269493873504977800001363851751726836668781034119792429162754754022275378171979095462710850592026429496759062119126143485763854495013829911090790498870969206962315890392158052383000737443428248240130880948650721153324702486561302529436256691575213926087906356762671886500139065825327394394732089749464128795751208669727393283950790214671274043534279414131987427969847415518321658197220965566788375983559336151298681376659549344757170671977038714758996356971628629213055892713169987795566660615479882392316330644622569339814217380543094269548912197337716857009227083127012211994660471710471933258761132151925367593794811228653373321016159497546991244952070410902720439668328393388425663254518629845254807040120727421766529431115632794769161126463700618311961860055466135211722820002804274345635253842970920269046842096091537105171368636252130687834284219975514046323778740151701474811129864894016332667374121940629679719218882225595392932827448750688052309082752488523223301575990344748353328427562420878388779348129954833462640019577781680265689554496978276706571672929646483470479989195788529204372741220726662050554711750305421252739821691887150754708676033397538847719408472357663752408629667809239441657580049622189353676203280280947415590977977145623879835186833473445898190395383153253346055349965854058404529160886781090981171639306021201509025769674710327876695262722707395253477049704592676260889176465618159257001794132295384001210919153332924420872369115559729029084213375108790863198978510653094664180383677429329371245710829706409410064753643527449063663413951897409677689282146811072928620348333393604983721459566284590448555662759528034497061768486091773868885984525394193194404698840370360364023716312775208265767099573749018145091253509582845735447862024087988165217156040332707876100206407652390061774311655493191782624552683144496695283324927710181869335216361659447242783603150169673178647778032488937143623251971243212486242505093935934354599002554653422850142411978135787652910100663277745539632476943027114118605051865664463748623665153831632829996979469154422775066973083305408061835664612476724020482983405281830710536501170566933452206648246855997850874022473779393047563173996957766766020309393162683551539193018837801002904729234906866004240793197907328987243327922083430560445975156653656480232498025989120836051044325240542492497120542497615837952263268802788302665061699710222676142053239709077059821842303453281723078941452561488289954687575721906632572780148529542379734593607485775123639131536188639180815643162738962965252010109082461850510927266076632354960065869868704295964952752998981285804959404413455217375292082756465938642231028669768646126059819073739732720785292423042831446735118481348346362826612990034363972677383274249818927299256328937160579300325231545510195169706284812666254440944165641537855284551134351489871819829858265128413371344035778806859324299489425618096534955904530665877015548060117708648983681267815193370278845793778995863654363062258960918588485656304400570340192312153822586580703732894970722992939868011625905876283995915729622617785419091727501684442096067915659225673408968812000412409530390252491715674768421538694634515192961958824307380511780505228320235130114658829105272090177714326515708388270647003949955944876332578597953626684784046471249742683689474118162127274861380524493546260663859857404442020642245313489951632045672052082537839553419849697693998980360483977033006163712089786574095809918809390091479025509495030072393163751400439645857051254118490454556640782117433293730460550170331383510847834692054152658505411053404042057851668812881197749948555360411618594635339799952647170035211811662232409193567598116412266935250197231149589891238185601591790811628374764460344013315426054353780852740084488783573672009095848748025411300260257422734939643105228695308080040428841332573226252232321092176552891066629284750960858061541865589130992047196131186319981527816896886474766534902419773463256011936862363211862834142072928326110778982647925383953000136670703111884637479721549400865731780833054359315669601613108562420598073610750713715202898784204332147574692198078209968649661949825656345567788075552180746496439414753412777813458757883469890098386438147704915662928621965854350678831676022646613301844421050901409772537350561469241538280523766168315760991091202657305520699349319951274923680621022515736598115050780678101086618011414369704673265213515446030462375146921683611186100399554461228488861193114058739024077105768505128004474834582555723093203590481425275001625024279137487021747777518426855203523393843959257955772727431925820207136920854793696466783844621865999098263227385656951054693091312879361141383655280207103334009246570730478978229852446803177136125113418141960478745000448680574872798965799004370474080236040330051442936235686160902513282165303580711454804342129566303303879854825904706115692888943887764580485949474927514448148844599251472495202592363277394475112238433216975008418104285204725795412970882299892167793969097408667783354656075666463823959555691443147909774016059161379178280373763678474510467447530303611081027764447039065310642808435225053694791439141947464922961151100095006665013615779481442538466378485713273218228166138566164851319732868694017386561383384479521235483931682072675023216517934512075658662245705564411464280049323149868065654279837704975653969699490725577034477987609611025334295301507133813056653756212539705283164432236751950104228786260102063072968983375515952487036737539937987782811597093934665600551384739417793681869321371577322576618612572469164574001510841310763038613102161438260491418175884861397754531090552106126549809258276285615324206750396024567963481106313999085634471031939967941659825628503252193814788794471724124970825327645033551369903189983537345749507476921190494740703028516948115722739040453696271179249341154923156297155548794564618746550978431731730868169534129004729211949900276387677397029654626893183361907470895465669802772875905105716771169795378228090362641600333729466850977072788462048801566728463079426585342499834513760746385293886575829098038347220801333415058401297944907157284803106195862712656052822806712242925736362446146973845066631497800554432504575618234735841585861221538389864494570096945234541524856866162107410411940462663257585734527305049966377952330493938929376618731021174075077504318058322272938740383393627603648180083227646335111499079922268266951834291590629777590579478905487963849164703519169190628292865283532885207733746430726255819734051797755651272311939285194797492418416092487004272803195815551706967439108479691572409030296045628298554585954586248912518068635609275866180235891467339898812388959156360133156295780043535337277461115563896919309264184552643312571916569222735887105707094761871783316287213522761147140903153101625466930842696561395437021163885319944795669922832728441248009485924007438963159311665749819485548882783251977141371654508090645914436851153134941437794317555560423724761363276006217828408310628348160941247983690264644197188302329877989545471176812207430887398450317389109622075626449943991900070734323561997595051753721167322217005161139339164931189031462394904262645658312987490511687870978961998104052175859636624703219824977776776565717877737854938761459112942641718679672796946538914874890957035482439329283835758879503673790766264162889071023001011148707798710489000464325876301381515825966994132656213156622304342302173943791333960156425983515143662792262569082551081384753935688523594579415707431301800592764517976891154729712818895142196903275804496795350409089659294469761653488015342001390580290816253360017068714102765843718621954232190995589867129159043105780969451996661548970154118000734858663170715759295416824544829792370741651196918783233994260422349915111395941862129114453238645743266711831533031037956657221495647527302365539557880178776547914199211879871532325643192232593660769470087334980973157037556539650420340330432650563421751190025194801481271411416039556130739984584695392097611036142805608625969267684190749878223492889664443558286832753360337063664854478253401915165641646451007504365626260700957330869217145084424251068767966487727028194251715165873633722160275199022223733310060753154983894430149622681114668230379158592897558300059211313313484146532261626398076701951215566518217587447466187513520752204904100454425448227059893216670243652796183288263147217191439609972757857607697741402169515023261419368171742825871973584882330965270519842474776869874250505572934836805165804523874434180485362914029565394312953140265651706590919089068319109140561804065819039491877522431149488799264595423617519617478108892148012773436513428961936178749599730623309827508814183427482257481315005834128292184653581892032169843703910278833067690529265192978503322500172967687130252530692650326671253114040910931432352017470796751070420557294833242747642179193369095724191134303904337549609765611038738466837703633358277447610581711712076121668856397376741963579384662771760339331414683240863140420690099545645345339501701804546875110031027989675756397137178662445775147554334364592054529574760961030248692475169159417952959953582127381618917718582433351025118183091010613721136747376997828487368211652642484602294646540720033140253400111474788136809100422767739042349677831844911717726028050076270486944075060223655155237799858206326312938581008911687947571803247789787010482476697534383937543207341969863417457183983699417910632586731962899853506832079488500279016767231606003676881167911068553357367872399273858464932416034671143277764556241932732559667487860190453631977340323721922687331478426671995677807043464395659339534470984809353731476962256523942682398878415327026512374719602437943277101953486218298457533923023275814734600489362587371335578974543704919454730440979551750067748568004595507447580263372159489276098860967787690007797181654849711545780578160501722152343083024498449923807582372098650301115182426960508754197551387435560932209534962349780820738671026518941007516249379779012534295145724441677681507882350539336420240453897827648630978432177567092231142570185198935617667975449254305865463199715187861248335696370743584394469250404836232931270761455958407720115005868572872183041064128625930165345201444659480378947521642436164942881168959873251059291862321944807134733251530300518546483882028074912921501519789625719712741838601500966375592139043218316885460488500360863979922627175951031594368834106073209758496908219525200261920871618818409318227172651385589666591884327951885126731097853091178538350674787850292177785937707503616046574472273331796203089992077677148662429663778667749521203029312837457316938217653181939157902968158831825168328232178904290199401882874131705149513965994773382765472502356107583787066494214518336011966028126993428660571941552443318163945971107353526699667032772247431723767652715318473988637752327317412826212793020126985859653847035168761174372907289424102595474965353144035317997551398378118291484640817791001714943820323929619852995573798334000498793972584690272128127114580990425116442636158283859852691645516211180006979976416817785030815628944443896973741965716575476890862321234520517930265703834024547010279791906561587377011861676438588115721010468875591611973183787139845970553003506027729458759149288640495862984892065363587345759281452151913894673786763266079016335584432878964654756322771078432597109565981437347925875880736268954320303954136483869349360941876163251255385944534869626868253057257369412966540457568069120710429540175088101309126686049952691179354114277367351802826585710311496046829334217775255755409857226043037239012981944066829244983163646990094181047832417059982834359788284850023419645026774897779280469827792617587212837682344037167923758511535255142593265020999522171083701845111401173499661230867445747259269111290665830736789380488894889185496715598031759764887768786779392936399643470215967348282800786809138788821090709796110137823100120515714269401975964229011844793241725582633156072983124275467696635346930230758528723590968726656979986227242964861885444153419420362925216945485493386462152477999368548080875215929727091317730348729673237128049865816551622755641395586476062767743552928577903673914738457531476613723051169848639624978028580457645144824597286244929213730985593140714179258116061953074021304999745370926174150255138661171530685294045539695487445231701402341326536901479842620716323972380093600655351693839516544932510817928932176306961643767785804565702055982054833028636101564000505960075379337239155080261345627732164027435206697813929059829556732040034837995953536788344634011447981118811623021471181757513583651678272201070432315687214541125635733464932339494385703961093257094529935633229012422084319318638470204066870754418549021217443463920520888870116978595615041061798121163333598235427684777397241938001350868221075546717461813177334090680242756519902719387627969854421868270962195141079615174569327789303300370568772850347481916203093123560147005654400731676755468254577144508836559349767394587209804514972376886185699128513815409479607235764545835162612415394645921372282732411674716332293982499071871484935892899824030853667424824976671909985960735812039491928947234912691669276855136004628069628348806264738339764425290649778363135823788387239198109145410558952709067024776817412599993320476851697424183161414878177771714505744600971250245138924333267565278253627287741623877227621435753235833070099001216636534517899573608116340517705274629598233940714704907714695401899005514958105598171337589660611581384583754455396725707722003812166542151425727153872904497686710317249110188026778504621539762295550169915554670654105894733262345603037109429923027717452732681130996549890763467553422259534855263084516639932039684044740477619871163396905654224485256862735707978968401843661171744642469187391053908541111757877548552730563969069263308358574466550536619181117318087768740348454743506436283762505894250456852594844961772566454765173740160324804697706182203524672694505647354979126618893781883661909965317094481129207554123835441884682777664939266746685212559080273472063535550205040660012494448241575703787437348983412916780060463665862604261258901909501557762418563367865423719146583524059481528578258692166126211148784533600791986642571252059971598411721080910345679670724850238307258998127789580464289207418824951322311495291103412291318302990141295654676707472029337172751554811466353988340954872171476285170545831698051351400027190016350384633885362993984473503978658107715582269598160720977908757278845575101769700833593882298099673726974628253419861732355557913147548129331869522425207310677849384154651529336041286861107748683923714244415090993866103688042639769803257048602513117487686232670240386495413585790424483345555059155407176744051475524442092188153410397603241951639424160585433662363801276914313221517505893818492946439118382296755120783347017176792448385616569696134805102150575552704474318137663200989181670223899780014306996205863956990047900870291386621977512560579639684377817986147066979496453127391012066979306440689477556320796399600901810149311465602848672443222270652480354656631246499067940847072918212380864863094322005841765908642852848386410218528779285062669652660483415884336197437358278241399743212555556205389286919456204291060498826713110430608086621961642748609926731256471834534054348440122270755055257604471114266411574338610510267423356822389282799735444342685304361585412424408837542831718131512785485548001526454671925035223385226873231095814608424800900444064518521114549706506281906432776027732551177381247864972023082615974508870407259176431712849731518968434402345015189465414601365293096754184543439336241794447491426145503792880354594107270066826616602752579065281778412882783071598070578317795983997445619155467075133602525539891525508437990757499609646385037850090902469465966501874898933409494585850134779936622653600568817801974490182903545556509828191467688689943187055949297466582992941870427539473913147379430200148607124224963414372223662122397752381230999018898568673522297448278256543332898867513509253249890806092320696104498926552586853072011670533678561245149584239199808453126409106962824706616314714740024985183869110324613150322271828702132545747022794496977736426615991283347208555601775933624752505730131900121457192114106311084850489089297016791167094202340802007372129490294332747936280028495084631119494298583400181965990411881642020586719092228840130645471312719920217178644020767611003633909613273029469874021562906130102447696692213941570286819404264277933429996845094607709005727009374268875903855427643012865664159533445592218833002631519194420850832936994410628247158063386756842773779362180379584919671274991570405533194262073385452075943971544835273275638531977889818129053794604657850687234325030738279116553386028514489098213224333914369726021200121342823656229841499111141418053361109383165041858678441511347357221414694463048778833037047530604397810323464915450257834360486738546392693591046806636752922629075682066385437878632331174773775564409386568019040628398620482564473541285801234269778192391116630704782476148086024548072168780840955867799831782943982815039610135231946656466193100614273456167588658790366118319859154248352412060516301853378360426038007338156002266222193673026851082674204276362648408994007972317253359691217259332054842553076691408750478187888552281092727508371862471510736552963084560824346122075354012875214151416576725915736195826755528116245960077674620729241765564423395587597370118128517480259931005794394378754016276256523517236774784958967153021708941372339224170439246081042838269453077103867119899492654505001500459519159447579525755041704297150102688478958245473439407057708922993711547092897715396381061971482098951205268034067321792257662845065896501117955639658532690631129088239745382949785959922847199548883879318435832138066727019630893286837814473607231273976570219110002107353459796122148175264015883442271561657494391177517341646543261869898626209160775583551528975385612649934423977673964720214823468008254148541731722157078965894833832111984188386239069979783600476645328269046994683548763242957325082832501016582130918856323874334871507938793060651742306474440164434846584655980854729886420867372301654935192852895221339396811065866167740286737446778034397134471900936880995780795209145108541798948268465936611484179752698107232627255643150125724767810776758323074382426525549233754224361314418218043781508928436152080401380792852655476181074433681775734859493646191939072465487462127451928843593304968268164629173112372973478683175697816117224142221232495075273820634785285007203850517919787837298407727792310313937502774173567600307975243891086140541046672540351961602317876390231631985455934987254371875749567733546995624964858735066322837661660766575285977676325642639135499193756479883146460437765214416803263562418386834971274061252860623570271547952530291842544907335135622608103134747390834368476082781749155652992411109800426350233277624727609553867661377658127794348043461968049698472360675328286168314489882919657771608525524504331892770330849488322391187640880282455144114750971458772879700493782353300996267855556965307069387477268033547716346632386652900540471426389249744179042664744416748945535803837078220097076957064495883562131224664318112248963840647481907409848349405594511312566639914628920564072357690023362775438224932156262951382286754838212377262397776770016444560287697388730593231292986524354198800818926440493784296376773806073957587852116355327581999031188340425867272382228324118434148776875016092000566059872520041832051873993586836747171514715033345710350418119750352087753207700587064127684573083308245759240119960590218647816480732973541801238545070135008075367206769730234408066800700971878770028092177518466944485047927044969671145408954293243302130255964427984841546460857243882009288993309390011827499015116664738365747661137560740232368076166669568231177773752268454464086111087052251324285360532846179966246995565075734727246101470435774006151576790336086934765778931908673601979331459973083022385242843957091812535440718404211866767144228329450110102095244313168156689917868599813004313666482498830523774285154411696507386311747113245794613381899272229892977923325011348309968977935769387803375079958988030517365016195708967970176349167999296492532524033636333137010660975554641796136874667408643870205061028909638626828961312007591106579355250653820421942806622824850360051224570043087738091828484511949398056303230064000033134955978703826782316737163765848444817123280179028048603807889686943280483325126937931574971774304360881906658502880126770751181029981788699707085554885670884857672535242147987080912825996722837301691268949701180074790075429242563013976954630592123767951784046545433175073762046576071515410104193207150436151274057026008091478594642481961764182662781258931046092967643436795508019062977436153421674933631162199958157874889089607244150026637095138080920563704005408331811709549495524349634489061412415457808766009736040914800474770184340029899172366126018406864019216814163284191071544960444130971014717899582655838777951584836649667125246927193616975811117198822436151426916269035027942808761740461642288160369079649502306548447034098670572543182105515759291517404200550064185759480936488949709993126165191281393370920958069269030939218369510205538824183840886752825343648350725523252650697716441492557663736019934946916754933032089491117906623324604271632645501054581053357693466929006997722976795089116267172804247258557171632527472495397402364196460788132243319649533346025062531674559867615607457054460408858218521573981535880423275020248832161714830921836061902844309830718629403867218724309563999355717606997008870312229636316407951749422491989955068397478841362953585301714107997418146719740305821727636314591189535927483484480369372691573660389317923686979114064241436217505602966499854861593486271311070757855302280115756257337156170236137727706869061844724285550340253386927953252421838788350429585344214791352676496503368762249118967323211643453937306554909351456037198386332825425242792196543983459276969945265994763850127574077542445206810918462446498420465406960086028019630844799833693993091990246681840811839537799787771441925827883826834077186640867874775259241364957688668331145255816851356880908952432187807822809994545115720289529565396241033947413747556984958906466426371329428276682365625376316363414221898506770417758319261032862083622753568867555632269215464297145436310279623577945672632272481925043965150889577207627973962345332754296228409086973859057738096871502882263549264626626548717178353464209167959959137286845965775150528531015273190996724836392249613407124057877206812473133120090315546597417119245880423350059432939505679644902051091670539596297926473991878067724018602807261076325588047116258468203678366521044414357449251104634839427752809766001163127818002703988676081140947534179607545607529025176964740210734945922146746849097572386510333393932404522903544272115916420747936928987869169589475649712499151623572393381878045524172579937446936510139988319410324758407695681922654934283033100727086893444407981089081388636997175427424142921821348041606529612517226623069516655319457985495780375314936122111363113664214139503148019270177264785568324299246833170906777079635915653529644925673051915463698968083576577963496169878020442302359389954374577759483711098392254653119216407166278780773571337810617079056943510356878830058098461551328161041239496688074838214695349838301212378756710961370422126142058103326484175333923606671056991770380272350971045427282052948677265978144577844342872989366976482357239602832343258252248716252068590524236371944426028395989444841319993592959702642236968516818986377292326821529478808672480709860626115128669807960770911396732562847929952779548015644982184362867669700798964213476999895648487283089638154531619167843965401423005648123172836758231084276456249377086093469694908956165964941379421069083344377555803516239800563621266446440812220150371562909273849125598303299176857516179420367721573498620597497588402836438340765559746273356011177355378318260918880223914748016804270279290782197186297721489401039911254832343376094706924591524629555717079061067129037143226847433383787749739834692509462027078376131250438391000809872190168117076074189437169977200872556307065321455642260732959197744976296252693140349188561278499255780392613185037621606535864205400252380939173600372561330109014062581349322789363796694230339198830456891594771749998705523254505802390692452367897070272215400287275698060477639256497678166122467996063615619588520637498776200713978805766821612787728918297902553372561899489480937982337874300373498364128241411817095880963619925421543268535660666970703475036330780751458455503098916470849533539970425561255660542923461790766459814601680430131399491554789043880580100333861478339953024751015739264543909186548992824614747871323328408407283093385408989748937703325102574204958457750384491161720500614906813251308450608419151878892857270420337768632609060144270538133013341936628465052836429758339732078905614116971323542555325203665562590984993599080005352024401078597798529037744743301554693315536212769535403103063834299629713960462189491269162498308359796643500027660793072296637097889358519461051656878615693366488831470287753719412379589859643041991690759872011131830119436525601022224723520320726957715916752043674111082683896958923306282399747277509104998559775537700788251955362674135507624526340128739241181036080843440516213843784119767400151143926522040707470844882156168138092097709059736012122508197453243157438489617854239601301151199011349731996810789142191285642237822439782699469263187497520460200374218902556947029398181772758282583430783188926618054973105632120333338798226158461315342702828687430189827894146682751961537701710191705896495914919459437039654778515867991574745425993429184729538300067527921226092959408088924693881640569420427544607874664015792112461779742738823873064646846887911213182264934854496526201810297144184428098464584678878939830303558364826398303319487935929573707734813575911837022587858119533429837165127176359820319157685409957382755735018268493013747764398627723385481790592113078536291783509612206707575159143865919836022978353360566085060056030215963954862605662164521255300082869346919442936288665000183131604289107913063139012800048395531070454867647443183439147018857125813425467774999568178740118190372815318836138151833707127241680525104982708611520651210824091690604577869566743939649557513895210899213257772535367912849850186251980987017652791250565411159770468394767345379417726738340317102955850290698322556260364405305734922542608649329505954252757246330840946352384559594975319576586035567537461432301056176348395106695704822503265641538277644028656298335452642853158739210468754216956292832618263146334259493516197099666228613961003671884679066830749932787810472026071261146433256480415133202269158951884624172568836119309894370394788150485491916845496140607585980252908769604184285970515651890240134851952009670845915370026770801826893040723660892841554044445040798676772717704767427495511214077305069185543412113601356343484126623793226076151684594331103691690442079735367779055519591746815402250625439267870444694570498907079391503078500402552829097495171975708951197840199913063883071599564212050193265530147194827495403555887387149472024782613396431334772135683037581406234028798963289085462904218778935192001028517015781541859034624882976384842031674205826515237563131986674228629515964923856372872851102926294994164149882444145253097071942428171578817754117848929007522129090671221410171635560100491721473148507719322971367548675844799461753798243534972636344076887811170332352898714927922338041080499066734071027422592482205806045402327639953312496812456068803329510545279692626253172113960458499453219898024202801746967211352099349776837624196027836022345223113957733131301444662715015264299744483147190754635648104996857320780766760055853941429289606670965581027255497065934422099434325821114296916348788315063326665788605225497333781902009562513743283513497439322225764873607887848456586815633204989765791314390230927570305735068908555699754789699378501954408632103121982221222246175110926569030443422809228022889505640169018343594129541736140144186082685746037068416043679427392323698241468145032334096428820598931562021375163726744385433954513707458952515708092668922740439411816853871406153519509613040872489999903581752277287350404248408105776368332328829587055521142703686083346511265950844421415177832356485847034197859854277754131940289741691534098256486416405871153387860869491077781576301573499324304921351102646915637000555655363488329295735806496265362497981624975385286971808075126967642786279068083306590240006765237882919902031306908872486406955836781145512038943764339002484076225723014745967871498940297605420452160504670809362286919053854813840755138409781796168470367231688479642315900240417355082452031003398935239021301742751781584940961200630740488976968028635559382701463926963211889508222926947502700067820082737742759523065270214989049545798970676688306737948668162887424379773732743249917767936122088851258090260317888735326519146518416429889748495296776294976324024705209347013590415492530956408203999806034672301011771379812600734038094734461355250808139279653043976306380549364714538617474832412595000962658076512668320655608340164121431360009155963831649862068697294970421376061743932013361325245683174835927986654239205554446288721098786565831170912058033911017863294642075314051062617973132903222362133349224149180118948560531692165178279964714573076640690750140361775859287326571208319883921550974019862223738451737397196920357171373222135973107369180177898804481892807052784395656397896061847360049000048048310050627989363167916875535707284129225748502816665277694238063662298865268708022426464956376573501248507586270987243148782985593302281559119266023544111187685686652609752162310152871237825822529295172271886607692997890305553073400898873442642823141675452654607742038451408332215756817901935796940872923149039548383756954754309997190474334965222409126927508329140297691387927787441910574638207212555323178963816090216091035443254595282832614618802759038123230153594018369052727023971084083156061132868571573050812041852919088161961663239750524022852602160790588673435201341675042761535849916974894203100529866916783974821742401626443216996219706047013727270111575967975252628304477893510846889003140101260846659434068739233796966174873910901347691234214503298336256145251183532827127503412639299515765548043695262278079755160504509502933416664470195284205283902158898382161053355567173854012306282643207893346431304447422898534486078869983811478988433154662413675930541850382282753526010785765371488786929745746730748610273315414809704928084997489893114925425000226047344847386880423881058607909763369803148713727807432297380913497509562282711645339350434373261501892463567806006807239710036019760826781501121061159063690770966363519935381056595448536774946523818892267778755702857580209885186755681538123493684531663547187062066226893642417640906045189583874914686646165240583439142569909234370267164411025893179795743837238220356067894363512855597936852851715292861650476662388313158911226070995029713715273261813357701150805662854455539929574724669618806112866955961421499560943868672027864060861727292023006651240755518178052791765272472312430652126937463038106618111336864982464921815949888416872128550789406115822396853146881620694949080861982010782930035004836703543790717768174223720752033098878548663441495053278694436558519440232618122038064695064390565260939547237481771560144771809866881735390939446161418575147811143190571632302486937530237145923933816744777425724583379204463862170489299922562889030205073431457563672213095922774941555776356097992020910396362393425751215772760510758800227502018065148004091079778809135424162956813011948866485825213454506096591167361299291430260774892276892462659478221262915146234068523650505402566572458737551497925277024533778920675443227015640843915680757040092026713392647111486544172149613376320810632622176000034708470692343339863980385646177527764471424595366375898643931803793963237621874419123461606904854126469623482501823645485445191994578628003430430758292935463074895050083792207481038186486252583022546252751025395688924481730182986793701774845585534401710128893597021916819445809165387419182369391513584773979564445307069325692732689760198640216790458061136975124296211239540854502324978886950160205461221605270502698967846124421224845233204955229554917534869745140748715720689978790270364644211157683256756175383377091536870898633028853486108715825238500287357180043338194749901251862964243085992609496707986001501153052728795339909676331329408117783206775700622823405585262577147990092273404528749833100761307237768881776894886297049172435252063642593749195536055192065519765814675865391517665023796416788055115110443637153292954514436830632166963109574864771669788933076194589845354227227758645648380170316286892560780242259495067441527463472964220379872712959636860194106022500989691048194623546509065234150149828093315921632016712583237213083672853604004543068810879798748598459431099629396813694794845857752003413547560283293548584892158272839127303334706963401623668681172906490598489229973246002893828803874665051288146193788998502689595277821302451773863290191766430187501561805407471625346513295068872700574714676044428385078488118817121132435253153929761293003154473743299073946799840844891456912335244651294247977232502645496551966675530462982187030300376034748987907427689251913005676694550890966312723931362381389526557243560995953735605348967260368845380885737357256635648842551729571188731943262288730192479630908853942904609579702931304482148228884466456933669937932196910606294089824988928344810836346425860947099512795456448717076438307757633667282625195360541965397773742023863041739361052110015450956984692296505138542800862284270104012991846474367303956511140231394921423091917662290570532298644473031155499491321127160312537567049982012424533653716935964913977059413095175593025333457269769387609428019910095067898470883421098797481372145879864253028236928138096876002862001512093492099207231354092738964319191220908018648932546168919725809153914899158083345902373631674307365401165305262201126172131721067910280234252095644133609359419652931148432003382866028966731515754423822301210416861796221691328812081776683445686137484875205723610419487353300974470794357088355880054480177088950590884291025292296714133328479743330762013799748682575844696439430080008444692531148350924904434408353254361150892329776386714275741318978418491568869591364573688310467471370281257889930087875265116071819307639908963279011098346816792655960690946433885863457646894017369179585076030819538360864570366118083858584278544466453886747439719013155264924719854141768747599608316212429697699404003118205607106217295957747756922778487002803296535923566103715459949802736983619372849369591741731426149387373732671193254172781944455407860952679539181810542979507526335013344319554810711711865605096674102451948818548154380457256781006130083519370978749618576054093013559823538354432499637616947396815127382533270094859386664651463353164772087891002865997990043667176233064344389370655764728360504331389090593797115836762037622534754883369443082909978414588498141493121914563011710469225170952533046527671246062482085418513593124561174756716560823606145813195200499367607222058047519435391115020457436659679937527329251906681150550335937655033857454808759446819991296535713294481890726409326185267193945551265414285696636146425381101349535757363917118186662776125310844832288850241675517479320529167877088438536210737258195536590720334497480995079187338404935601482657923980333776891888832933778233325213659324833337786606603659407986993813414566633228908079503317374690558059691423754060224402179427003214464460328826292028995593557218785755436591568498050270858910098856339963142402241273482833361698229934135418804228634103887411384086062761242015373932745953082914392598046833888499274942420845243296925767512096092429139976568312913558675304525817712706297169648125010171517239399646816420787003629841027355254707885031745615818422721871594854590650475436762244518309516657977762633862129385928791078798293161770881810210235602219731643885530243962071738715646005781187719081629882279199388239674624198817161771720455997340818835176211712570381614753195463675380770681979791291852392874536163544322607409538187389699222017490668766056211406353729316492575962620230059868085395799574291555174903870352033322364001807111990342940975765056209933722479215787125372078245181536828714580483052442763845966030493955295289383566577171922968505828152030833890887711586885088717778486112344278720239175613284478081451063895989185643373216491631098063125228375470574567623447347934991376551054594957643499095393429028843517271761115290390950612535034935852235878588548952641591249724911656946497590004506324929706579623396253081697958786736824729920973842899708614145567920498863563751088793290373170228937422778670495652033280793073002274542850205034623591135949469905756601532706987299244093292589496961861624002903609085832704467722442450642286752001551564349081100584266864141630254507099700885070714670946869624074657640706517795551413221295617392282112960977148460655270556037363209535571076999028515245902134180898341134766518596141011944981210958100701205673661220237336360064752580310225450238615831868006531423724580618276570176581772318635651002916880739575201818963324569788272209491892056254088448113010102557678820090592333462472262254635415896880801283675532954270851633397255840779235765441912667407901572907967163672504518507714381166412436339786566507324154745849254693689375810871034279717275007040167856194831232976138879511018869565735886150660706859119156920458056869815777989708615070849923296449623422311814658822716545057914715332071572943714621889081800969312219030422507704112126773592413048139944603125063652320222429208861362227722862788469698156825546799242701696626969361214313285283122503659024310541870044704570022940351376070121215419605310357514172731842972804607548491483364580153658907475700418802374486544533552687890959389247517879802328062478130226216513820612946318917549133048983173784490874979063073781837282866471633444894863339188915060076387639082578785645010490221323171264044735404654350573371419011077369875583666090926048339219261698951533829022892115931560494984069151687374779996971328352995876435828767651947619070055076308844567075201955660976219412383613897829356974883450368485521693740756890056150209527038571778937730526465164762394218323704217103362607830900493261287501253841984539080776672853718801654963081204822082103209081297847089485847890615764596807446340300972874334670079911677968392411003156627025820479813022895407764544329162051862539937784013027050027060405505667417213517490453906559619886278875744204577922287521196284679923426711638371000859398893349430113973868512128045914012155163983896589401784098668127523828389076474448885217363407867623011245009349093910713205090998487073917858102171376560352637486557612578701664190869264810158181948555614714070850486617494418599809084017234386791175680319556667666116572277393392076791903197099875569639735646181073071640819115766039427648221329289938279318568387930840517635061600434825138301418206786570093309526694802043489035962930634784906415672727053373027711226020129517150439387358150657824679592721341717092004259246097577248106842606051965594363877809342413507988419246950470656450957396254058498633143396189246540389500028286474462494678178947086677840707915898995906401265573893228580493864429167419353172644269232231488365189072518566671445012542690881712547843288016993557545513200643811255353522013143921571000995268622732172468983941045519764145131072828746417518594351556281647066284840740415081052972771562351350647731634654050495456129308488754760640269110142293520024246197199838229600349245058434834626252326816789779434570051392824940547683320407687287609778296900412907165437015424508209129584098854696209592179364201896936437528260898226985415712824797209696886277688082539447930519992296687021000595319749386483213867975497795240186769813209648154613500512052915282786080330852974280144679320040307033206299336688270311714030714904277537299196640108262151677499025873718439230810729017512044529741560782023179389270015380563077530810988540976109323482811090607126449003542133194963978684052488360722838690831461471249883964419410078900003778308400929336646447120554146111314022933208279552121637059586406189511967038182452037911926515576297875628866881411717205937417982493128490590368292365742309808376719212291670317162709597585840084310235146796782576052943954271140537547868163526239316725306372847191121764788058453605475294801877006457807284541281503607046326482730795676802455815893208759144383644437321289203639326136428537190594964955086485212709101613273993796769732997500831703230200181421172920525051928557904611222273092445456742492172947746050235610651728022515000540012877709829619627279229989525207116827453468680354442318506799554914954923445115265132773687306378162000500430887801897195912765957403237088118523239728497608766185092582638613172036243566799135037882496262417994959263293223146959798435007539632440546584942952132815875469876164156657443944794821448492595107072055168989853293418895966856343268718809797698292774027481200404655969581927959365341080850641630668455237171828262211655232806230394816463413912153621422137467153617765953382975918723090083488146909649636359777211410887379662361240006077249080040286481841205301310834931779705168144064565224052896702358529653567265736158003101954713420590802523066371119113646715496190826343266667854111521662891072569923142432896960840210201505787239956550527144811248483644665789520562331857996619984306574982536787837081909552594542560354654857419259721151239080844465193717734795853366507843654810959416923679588937603214271677013237998161983697031889219242801006841129852752790791652692571889150765424088581739691441418469524479180677309263396934908065767267163719439543114633545947466001269503094159994148551626905524957045053594707491544964444167645000514835181396981358106423467916862241730529800344251259239457534466390141209697539590916080327292111345407498307591107834651893910218031009296308551564804829710080557401697312746644535883717883463803653691973758538997355438309022896775647358332504663029531239754547543411879224495232752247110581074507240651515236218036385188304150807521058640443326593249505705327016567986493350418151113743879718552890489314123116836236530185721030558046498821360465848996326284984460712664623104931427170460736004847887023738411563424283338029002459167950812340264415913759391231962865323840914031274362175541313486147087927093005984821002973630145006385925973785335879557782463874301372802751045708634001510926148710089383753870512309610448133093615601375327881700244809381555406924767304687124030164427661723297054498936514229114915906033149533772897481608604905189661308893930667250795691800970885996487102110029235427582423230509589215106866800522086925462108020216964385301210708224894324116365932099232395033182925090240621403114447162490439091535585960960533747700986153607109536968385503557578150307594241508593841267270532668197340866155985228768533591017239288966323258827573811944031223355737512366622585554693451927248534199659835352959269348787023307434532205464449710282354991389813444925643797274295360572365943790875102690275942166537172648939416657440403877928918673123467490665682304774536371408044607544672207730665510048664144463866168316295383758795727355947676676731422197287614583412875411489830263233087717609480379427939966326507184473434784582965066963688730523979924933889933358818921974062060584202230675076214274919822300991207050315499416258950491547802989501282377314652036979558410836342527979141461065186718640598377323161447675841086303911902161335548265992302444020083395902976110273734790731492766389292190436875343386506360092089669039388715311630551054715528750961576057901005340220895633586034919058078145408106078458660742693944337253716628388243280215176809458805406343213021598487624330570322287363269867731296752470833546424208345596755474423750683158328194069020732187292584873859218735610658986287609629642115649189707941988360351086934313927260033275088149911127168501265561290723644538824396767150009728644037621394564703440944736101968903698529208855682417199430394473059972022443409297136125252429923052584044908844236211261197253144202098107140145611234116388555516615149483316005577324492194852774928247595392180764084038376811315264370906439214918307081090032232460840765542969816967583369385197029667029157507480425676316468818510669631769144669975873364695698126792285863460524286893362016596861995989733750794528199600736840059199810113490778432726509826570416357142341252867733766798707246616348017540701497976452810607279967922101458907758516086029557944028102883841057541097510193482593319642354046928475114189135242334306015407301459735403378807223318482167189965683020113971796157345809518348575989904249712375383248101424123483395269259682305727313649565361262845694206450131343230410641790168650143284707175515707572438599327204207707298114084334247744846239977296617793701812464088144430069596100122919967661508666719947845286729966398073253000904115921845133003739012944953539151272739925510618316569804117485842874688004289593597348046477147126604017543848412123546319252152973420889482618357856436957955948421176673178306537262426342129095696074489436763035402995666068058405530858167932544676474593638151602039064388349838100745058956227713545426906381642881515459229663958383444008095828327098739499795160108651736515915580761039582060484281713537197612934392490678706071176081011089652126829681916660642396458361434694848946866744142696965593883659315438986329499752816278269302634496145116649087066685459835708128033191456921840313437769083778904141589028387333436331975912249054143841484318307626548117885951926251804945809289581890419991600552107208370417819111766951201824387114031465266359032882190497859603201664737017197078053360480093729839917866679592580891541272359969267982057255624142730060048782698097726724845995257510111828033138488508747511799240204625286002572383870161695915568176628629577789258729262019168763650033915275080769551350625910159879412043026996294464607253000031207566981791778161539950765732492228699174633502534808484742113998318669620682525968469967288154789204840569602341119860849250021703932398047736990365325116754194458325033103149361231386232773943190500178155872113415687672365210523115604876781800883479866513244638769409549413887936367739563563538241013378430548544643397858663382322932298263542267470387488521484440236268238192251007014681840026385327998088220728775431839075484837588943311995253260655599990581440299299387721574796958388318480548732176125155036017527255367788265631500854799731957075844038594557134733723012276941087920972100450591470846288693568077874065889188791427033715627460256156197484045012271162411351947418128511903508908439823136764973176103634978079832891483867788446665981723053275713675848784669281530014681112370928607963754787410012408496989081091230944124279167059041965794769616149784490680762876392776354924893107814212671845530247718735377537241891404397630048927597102738435129747522227162763352579432337638024708990076923777681715206537044925893343332614011237032400139682055949993926573101841215981544265532441200471625994071451357732627378876424135945303367626494287646310411700574629227522252731275358147053649959345413014673389454955423076284650156924562853736706406910504626729772862487457534664898004682889018213096753668312189448946569050565704203126141565734444962061479838495612028066011456643486824081513401412736568041538680055270312949774173936823248051926984066039209213784995811974658509619200963934788392299975008357877538122989440598476569572491811578324001135489639167711962142097059496177071958374669264506449987363609738321675560581837609680388454915011760144803096776243500470064865739454071574539335776252541015453222379229641010270115245431967012149129942945245265484702083551997662989949009403700386569591830417850912734579612119902335026394831986261693233991729923783846495650910121781898885797438624288728455374029744300896630573441023678957619888078374748084975202534674573101806127089046763949330120033107542830036439047803244451956060964654733812504304094111998905152542904650339085194173294612802545708093945100713206810723346684585170606775050091161629543473136977906755050369427935031604180796662043610839285759442460574206368465540750985974871674769795070442975496832662296663565128331137431683915415642476926409797415751120854300299660346440198434319908885255715293682464234416864346005239045454692514544613933561980446416257122520628259389111259759472651192092261568272423431644986016289606447374040500681820116810130307320708684968746348072935640014942287191087660451720512566459549221148979403866656242915797949989848822262185713444238825318411174699438632984186671037150420695564011595584069786061268775070435647911780204877684134739869967949044490684697315583796269264592124945779877298244045286177004889534162965140508460028762334938459199155904425661711580079357404535968938871590540019936629572912832444284666979569231920468112330501006772650340702355489055985144737682282903027757456894783986059070650980762026490862947207237754730451457916914057205516053800953684936954644488678625274948608610886954103691298822121601895784395165168752686700589027982504433093499231442624468989244075715971924998793105655361085534945820536662527406178160119685409503732782768430392921743398033220285294375503849022428619583757289990408861875360691784143184966226468032758663165886592357100119236188392410885041698928814479337189345647524646868092895526686386163206718240653842361997822081876292976527108824150335557127004126782448793792990595012203625175690109173410886274907745754161451134404907221589871041566270285280541579645362577585538283870191323161617873570062184851623633463672315404333664958562337756609583796562399220022211161201453942141971990003551297322848568733221182280214078432089751543323571214068813512390094171483393216870400588139880610964266522044003653370272160240650167632636348032669223069689250996909295787174344555500509516723826267554642562897031250057225698572869829771973828450940715367087500229478803362160914348039830845956398353134091209284098102195824003407028711329172496262647146584702783384145175229267083316247769691299208398606184891702941529549221063024279249714545140436161111958864237621257612678449177247921136282489067505355036707089371265789086450403264803736583768319218827580296638427302639929805765455627750609457588953814095482356186570134056136438051444097205507279837106318574957704304129556601175998621798528513710014038261261971833130684157936356618180644976229488607656598639128904503281548247424436292256947217924154889587959551042095292609777319373092226345670538436054815938376707906952528501107842983208455432636634834219774484312122094057104672578243285984947121150908366377124701892213210345598081354613611294240039933204752097889543338021802272721064408002513648221562785333087810795584799710129705414562617060322461734624032537380163574838164860578369335359830270427699031771170706644557026529518501550847505599592131802737935827973569060304974691131939389464190089184554400100240567402677813025561943160032705173508650675868918277812855830115149917160409911358146257697075822175686086403581827015433702072563940831499675849636314051412152028319937777381961614864064608206245632646164250627194742448541743381164841823263438381405194726506098767088446061831528713598942125201364046554969231601616621077428344902864016691138379328338568614046588932336253550637873178827844951906042196231087084129697945170801433158947851348704483968076765232959931330661600407791955964224722001464670147486798460692017796596278385466746597416473872516634752123272625108503311189929366771529886745093631770229777416028017297285776732015344181759748631900868442560220166445663794526548689032995860560349006582890764574541220979134831387985761504470059433383038215347827820316092951151091928790653668313962910423233251143208461070231133719861987096505075411549873456115669840905203797928605920366360437303072025014914804001405670022161581427279766390223369517528495430995757755059061277460260841336259089200853274501021619904546736628991777274799136180867839669377846996757662225512762338762876932356933113372352021501257632039955667118293439384756961530396164246247531005754825325148375386478406483572345787326713053723573556716278919143104372429630051621529544523422011394743019980313958480052515715288243666748418748687809411895950756862522102417200219940434365056813625135844824894955986790940901444428057241631164679246153880312102633085283793837421968424281514053509157161724192714679231618433868276969495501941904771699506095043488277698247995076477080113085970591506549846077114292308204535532488011373423631399732897022620598548617281812888392568207541656298402389479393984153218538300125841636761413175085967526000011234174793647972238433526467778708892727701478874504105287383672570834712906897167817142791728762322252049724281880535152291543831981947982348496045124971546128073295791229288193986991079284699474131793946114322865177732752146792362140534185141734951926995339446184050778760060530752290507765794267213858210643895121476936034334966335383942258884546001387953258397574970917736749012179963498924577920391424362637108711828950512473821216521819002793965571998169075342110525859105008079640882449984036798211465728648809363066559767843579281604717122174350999300404465078214896759413817043154665934798203598447280509040716205666294983389932864682416554204164292493738425293799735266364084187478169003466234838197331886579735606107581733235560863184965251404473747728341881547930888421535820254920404302636546211892430508043322498242531448487074369771026783086247646787110839387551641240026674903916426900488675824723574295532186147522087893571564461602699329375427320959170157106028815271272986600637549864308001729494806431498322484271448087660308052393656449816066591818280271126502488612101882699071304733350936304192798893556321215657878319906443666177845242224550121741344208693360517662363679453305259191505795337937031372482569036059281560070730103923225906382773798004947299699595989567706366631749653693706831873847809342488533483655584601448555212166059737334347180819491843215119611765567122801963152562839267819915815950110620358664634035877256970739103508922643104746144673937475620649015222504927029219842249581453610633164623855371500420236548533962709425817385102465631826563834700709350417012384623012186179438583911598198247366413055395756204085586522947963597635919101116964531448256572127103582238851866054750283909564896775230486543041373350500686629349595930650032372350645325104145289079533809891080546400969904977000134056286296340589523496988631166924738327056471699964565640829339458908318973209886111029698384378233074571986277736008294779221229959536695795079959598423036202278007543674643325513475137026782954954713184077385369309338331899220366431393403406893537575522314137839769881713334942867522165356138682016765283366015027358012819266953664377151994464531300463860168704782253283326640927479102200925865636091112163089346729646053602204426850849874913653987190539274614597393584819348477223590221207423223270558736298262613309488629103864680322846371484177368622846636979631774716117249014294996869144997946142291891005996765781374507128562265970402388569942418435544365315304268605470976841862163108829648007447622630564181354429280290111862747133924452460165672641425757178119139443286559429895028633639590367307152821287287047918070343327634206180053317117619400395158396072959296503783660673748638080840720236960696608931350024130697713421529944964780244294703254887624630030874494572992177459086559606990617532091296129057452099533866074348814859847857049072289980444441325937804489055928167946484711830609097572474136661566505168679056842575677929307972093025693179603257260070294049797918008555906235469730344699154458761199472898546940760637802936548382535737305760270811215421670710435287353151124799441103014828442919618606203134119206277857201072238731181864294399633241487068388238153777551412862665573367485710838417099208462634009682457478211610764725403227914198436089699054836009220747255984034851738732409360971084865214439433344199774122060527063533189692387690824975379273913719170421988456440301944295709717642385525302387007396332140452511225244776617821175031869622591503255052562733378809074486462647160304662156564625985297030384605367574736682290152942899796623647878956168996281863481678948647113663985776034670882764256835009812197688737014067935659195284474297232140984363274823334886629666258102028174275204000728923854450717392035863116875013745307986673352850477347082277950476270461261234100108810026530899902534620878452618370102392627809780037145107609749738291350125406053517480903503793369257400916387592126431885709663027733038485043878277908292554236265349496297664460290825538841550000304511645363016992732506310197530623258400756811993835499135549243069999536518626270308805442846480522250012866791209886409284151648434146535079353037900396905206174264324324271467901781582514008333977312667347120771077401820116817023913867402028600050906970524204958867201927409716417283038169618671925203039108203118256758872817669215310438539471986746013646190399044955041996735245954994856616752250053250500473309571893164121803567484052386707249962239406617603018956260345997223456683083028698843661850634885048603628177424218777624802105658212293963643713878321245841579488395795231432219655955486075274345012753224050637030527230097129688405346314199524906302399036265427038969341751781175703077707904107762370144075729092588544256945981122532206473289800407262497197599801736902031380751516150105327444826793778033968862862208263868305664797097875454890584143125162116204201513731350586196302484407757124956654549116511614071355069793450051892799441930819456136730889667280043107048888021575606987075133526744363474310544592035755442578140070934600383912628867125886589905862853773967949093208401975615475441275021748881657209893179690216403894811495566003610160813150936928732140941254152778046494272793910990709158043035426926987267973384692058621926940067243072996709895922419296823854772280464459502804430372442516090721094440871556427326318605152856739872392413659129180962753670713791314237805627225847116815760214665237755250520382725224658288237517611278981136911599956762688118776057082574835239548633774257713881542150942399840792275870460127741549381262107106592607685949715936454970881297563885439414479036854039716367903249267449453341115460741902125891753067832286411059459015959019417025876458827478102426320741369391938302382349981673366889358979456349898677523093281947725428525244902161030293889899151599977321301532398305208249994696039202396969351669225514441018324800492613843706215451810756033719848444677091583911751216407472834843506816085455721617148081065734762630007565863946658820308354985268798327611082554695777995153400307587707592828482744714112040081517888437942728601006400742258900589357083155390816996865212844905138619545725201241746264458438385063240195066216356069408434635909715650223441187363190850213460208875471113681949156667489147546628949302537243737594607064365017205362703406564178305112838252123780462102354848012620209134094989266533539664760967816404084727797356730441905947875754973919941712365412367860136903707001322373191668327024224058226624195776289567459785134947320575446333545955210632287980602250903023110163773409328643480151945189929175292208809406198726990037053408991229679395755683793535690527041368941326509043075129722881349033690618747133591167570118258923672707125285095690892565462405248287506156009301272107883654789410345290647177340508097441164102693901631129688071538965764672162599705284484817961733039011872206741977248260934937188333404988951241621346086012307483334511177488796262546396516034210452237074324200781300083942378590288441626834875348176079429692915274497761730748924965230028105417048122315677504224497968995499068703220317610367788184266234421960322601239550804638290360293729736791182200973993479256127096855094260568990828659221274846034399821522426481744450403184506855392997016313438706570148724867912214526575969330560783598737908264033194932266472734000659118987258277639002224679792725978897266131867963077849504242424707312494223488838835682301117820235447673749160242962194374539247184417773668769483040686030707364119562516379850028602016848687935333945219246238782492140146782301884501712639462120900206226798263055027238269592482068320141368023480747967710313055213934192295308223273596386950148601471546067084639883678482446553718088162281830221724687414587764423179911795229355797354678900877260599471099771520212809866121278994546529254892104247115067167723755881227539721938353068991980663793359955165141910261748578373621939926069359482353927719429596247947574268369260361123152523786543098697037864172956796990985904774618266099940012375214435583615297342697030042451457516623752030128755227171951519084515764376726492994695840071378115442146198723434532325227857106250355653373239064000524860496115266262047944448290230977080545497081046680673151751431293903524080263055860308545035228522940620638129904314128427807683546931612959980168340356217307398899179543764056085127536253373294571101626622574232674933413226054281785027127194681748061979811592276537713730679963120746634743658043917315361096627683887386117752732012581553789164774540240729164221055127789320940709785144364104683925989434040593126985592365584961135290657226055644961495264071116865466268698190934736310821999768051528272350287832666502124422297594812005085062689685270012623549890038471938475184035856251828907464907825545963406906079050453650568925695313201832513821503926141592926813148669115171459134833522443236646190182256656778695626543641026157821110859969950620519391867385935372588699546039358935600395561439123554931037474410372780347814039807359984693574185775537431447068539764903449758951515043995512276418105140196481472911458830165690528344307118673710931328334637401420763493658212192582225136813571552532826402834874415270482215446602142734038841189299274158213264109928446878024950357565974416760437565689171720058570493941524400923091609379114878163325934113234674852205213251324882600433161924678761176753112707252588400461838484814775107520632421312038211580420463883699608157568899054890890150486973851538019776776961390086504505428773366177962878150259386768769081819908285465770332396822304347836675597807557574039439827620360145296187266678550619465592350029114221405030091978483641898519422327817435372601279399793784150594538405805332755684930556638424804697653173859979102415190435178478545275328433901274222790193317448189160655144020758724598998390842080225446256940759791384113013262831912829714890564247293221046936342835351110626341268970010774058760713515897607858597256407237573046670283848584366982172586824482235112782487837840547132341534305935369685751893911820309760922818771630688777851470981337997236054471969940292303175734935385198056944084661186478468855548600670373778520424917916471477521645612017136841862564853615931589200248466511160442235990352010449879413526567749335440092826122334497105923639579610045418318403500417426973219672116489134962102962666289893046096977696748993412815980293608564089112752440020912488740435509384209853009914724112339830295023535473843643607079231211042097356391733418718051944230782171784687250171077581903091577214776852788441236682504276542540360399773957583117842494445838440502162243879665162449974596121841419285114812473312793390989234953895418306689790380868748254869276581125129839651261233925026693873002817718366219177794361794223564333737176987031875854175261434759579788345658121742888502796127075934312461532642610734060184006679049161770800805466965499815734197739046766347597404894045730027077601956227959949307521435613426723031974463275347163663803307102545442465881963497102580590816021784913455494715217244653883253484967686828997930725297033638202477761623888479609208448373647733943072189309793390718066111706027946311328083974469973788885317958003480027859919478506606527181953233727078559383977470138786634798389147260127707789129611899862359009300716813367350330754182972746378591133329133010710940851334411318399406345813991389601008168768695853318183360639640152067839445060014917790540912397342299897745539402829878504747961735174086797129893036367722326460092026698121744383368827270435040445805758589805366633707845737015586643721944920773665488047585200710704307855656889457314178069372095636903935429409175920595981012028860153199857044103864915361766494989617589073133838802009011875651484421037964931566851431347097534400912818345230353517378469516206591690281129031313949062575876125302696517666499552129113821489609039546049537005433130653378214026551979907824255140513722149607089015740009862860618763865589370311978293584492278542434836735677316164238137811160108536874656825577132996336222246457179112396506320524606819907977334543533654895969976329677086121687050862152029328434651684765209313205938632267050468736095778311086348137858760266228575161005178011496294657330334834175248364564549999852517967364165511269409634508587197678725678658755888441568773346133189016170593646402852258509483810480569424791949281940511665909775951399678101609625542527948335665326629137423086942230847725928143805358157361157965650559175005071316418633756593226521936557602927407555397395932234601888667835994215994532531195122858072258273086712767700805552162193264968774766335973682076921845122764183695824217912083229426006856007613128746603299423320521879509616549481091724084029734618893582514811283733208656759821828990314527474537796294796320712281084563989232189032121248360410267694393641322879589594345762065112941963062351624571100621029313161349010157750885793856010476633215968215236186507437991437267637457079944295339057421863038095965305159038441527649730061184213054476922932570292915617706364365562314599075003695833183232153770242694598799360165849085248558009916761704826773443752933361817873254843192940068984044705366667395205979284542158902303542373831131674361542010836617869047363820553734029231226438430259364947679613957789144967572044132470491777330424911064347626391299651029960263308707460212260682444085565822148790065773214291013732899549064130198843993151971115797443394200645234769855926124408046936842912576249320840564093590303462790310542628262300844028625411674083816738110591250429064879382181096562353451762843431255895267859918218625773265332446687568735944028475220605650111167692338860508261938272508298434137070206626395615856541298192240382295486776259010637189691249281593780238102432521286339084940741803973665321782973958306336713921057147526717686182663941982575594335977879333500224150380408187216009000169162849971674351230195891891719709217702161315149847697809124988563463996354726855926648026226188756290001155128612434513051073970944580021597173362671072832382073485408580049413561805530446512985368512098180547906878312207661078998893193827275592902483159156026285177060909062860036390209615106806301271146533663813630927309298527694194425147152291758285962394984332043701683667499895040823520926463906621164874887054213848405964565980019292348264004346917777799211607942447680194433396152168262299696570461634254648138794110683904620194485495187675955756583320244702668675297423137295961970546280243497928381731426322697733391240417159153217558506537775440374054900310347977900925412379274105545098533551044354756276765536216891191219556806168884989339823337129759059675017808314733319212190666838716821270373554877204251611204840852421270047182267342548820250715960952359522616402787838748218655166551171290443924032092267421986870234411875206313912070558598521555188405573262800912483118630887823720317173310351119060560833678589747739045252872927011233675160551167594103511772653534817030304144093115860781476867871675089648801717842252889188078395900534601664640161777087442538897364765681304427919240136228439561515861924424747923344365662268053339014035822025670397616389372154391899325669463447002519296591617581514004612868241456913380227413731241976824369039320472294311247238202573579815496629666847185184145402616107805197855342928098358638216368391013054650905856688349932584915318365070495455516448524928507315145323053568286464959931572498739912001010964032090027638523982609638537578225589193117287424380086592307625425791923852899401151963236401460873985379753928261542198098874663368024953357226131254630272190117363828557321630494682310347295000671281309974806761770913327446747937631682706062079407174413539427161251035514110421619407874356960086635723449704494912830655621753746216272246509585341706547910615438542762028898437725130773613426964516626359578249770805755851603963801523370771728864704041491878511619641143428186269031334988070452364205015472015348088779623262751235252123335461207306773568793616496582957848063562329388997926740893780463764313633493358735505712467843925231272132256012390912593755616776082416517261226880888269037789525311864367125871510857902519979612007438155877938595199376621433660707886240398529977256791412857918245512109939274353177276784157733463989867007713309169591447767539104889381393967715550965047913212748677033480513156542073824534008608635978543683204961080927337825803909629266283876033010299330007553796121226735621936577646650441831950451868549790588687990158281697546910161566581316590585665495545698623285725210317694998318553073699271752845500041490183950922828817932814779194316695543078673899226332105138627019480032717595309402529451736717364979484309440737699339022501468850535738964517733923645726759750511183974420339263337331197694292220022679588693639829946275578730933413230388574752931473091953581427376124471716681423564651074270217055751030343533304438070793053506233083976118488927301695558128528289379799244261799727214777202363682884985816253099458494148198986748943791634053977016839958017200021690706554987367120350079677300686368035397673580730568419570201674105495505030912222274351414294649769087135227153924411723504042021346966234445035552151745311786287406345546524086547664757367528416765111053528442394376969289186834400806027043932000769445189631784604960300954731057757322324249300317680364670085136280955226384862163826128790862080269366037662304034132116097140604847114725635573311766435841356796024933139406002051428889996731039229955430988916890165405431946232350449356741472765962327159373047949727432995759228124753639704672568555848126485272628599721347746205724120406884661251547878795155852186859542027376496994726983945755917516500454474307927277410331812841113595088452199353746662016643325175261217499999181141188904968253821968991603789404182833115861184376904719714401837426736117771627005938504205004051365053978228626478915547895947777409589512103434725210215422792481264873093338997311612828290846756061524583184928392587180241445572634576942120264339000606592056688109513539919307677791748301763049280886200762093182593318352061083525370641225828809685362162555157343750175455506051706926110717570189136945513793039309465147582566027171544956635995732510777709262863659074484976722225506363242571562262510578652204799154636259918146319696568760775232645205375529213236920896041959703666290528312406975568139461015847290640220224603688938428979739771972973557127130808029000870422215520636791057970512711893821489574760156822140274739849572706117111087395099408331171372008786968674508285721276533601876632541106813572207731745849785493178706690847130249681111714459884833883821181067716267035246328300382550665833641799578069248703180312173780609435508561972423674610758383864855746482086223667341146305394175461976208914411987156102368469030557912107490975044054285472708168311692864112898535970093126445608250137239561473043200774501019241493132452847000636133796296656907458226460000701863079414613284668445517894535188439454008311029878168382848423816752640935496497813854990683151484743773063131297091590778853309051909800711525319150288553301271573020866592122391953658821663511778793478874366547566150768778637922795511875007248469227356544421110829948525332486093541066279936123343140027457684776891668501996108679712332469119702422756747591524144744493486811555874111299065046146667800099787082572541987853141377656031548316590680123889429856634434595629856230581434935308012617601369308029163097641436884058714348913951943358830566741947845757644740748243176364839917600013450161809102566096359239786008410742340693172377091224460838644146138604747997979908127151702122871707862181681225733666340980859653826642768656290405753897998784674286678797265165523509521181035497201554773336587829697822565990235478785840920956482834528634194606492294870616351104994021827415090158860247033521832015356796245022427164478356498183748489796486601313958433049287304524475917566126083032225784547071539601924816752747113236324717476637267754209765601323991161084723256759562807526410712946497523530477837821716735023490152493728278155781526641142846895914127979947332690818757562677641215493111130942259697026550816944455674255714303843585323862516819468050243896193230056896706703870875303136897497923590242062504936884274900798498094345302333073614394844756545205532952646564259316479032544469818183600358938145168856956624827135974380625728485953577389052929696312718083269360642464700992874781423115583393640672432785098272217356965409655286084750614676255887423189998454137386451180329386142979489975720142787538033141034916831137685746643747458208952015897758620046602271852681440767831713960533108775737427647027083627111646717078121040495157539044315614676081381130127445924837391136599258001861446103123485910389336094063202622997601009493931418374235920178660516359262414569923614152194887691009985708298692487572075795815281073655224210362235649134362623607359139311201658091729837037695271881131088169400976582211177291418964985126459252265445407076205203896278058886940200263817866379686508717108416568856185289208330854609339677276568306490697405095689939569711711513519718846369404297800485926715465120020305999859504783628312142654362800301946959947530589894598807022143671657762586795794614479739242635533702444562614694463947016823401146493737901801866842134010060075206475051422606637328788450247944826674775030110185944376416242502101800278162009132886557769786978806091621255399269170487901844941173350179732108656648384626863251795166900324773648504788797863210727676688991587112489580672830263841410560292778965831545398061939107085791493213527906677417589583507011126421956102821922668122302995501132361279096513133201975382479271758009389875371881401090618822368331079432567726091964480825910821153225519562388899781022609085008506394438123792861746353871396965519102723495254316326011910063923354109355498740960265108569534895491750512970226785100811620505104370921005991174441628604663781977867723406127010347566010098270610001407317179141186311852939738401239803389989430388114881845102529550981953278139568566677168378899817006883663566032177777249630220242578191539925698416257852325943645894440094364868224495608847684950171549704351042773432192530215541999342619388576262492574283417230574966781584002334142696731111918114023420816166697920123336822507246475794830946121124595034340074132155343299460409185052367380321870715944346623513274251778823938159481420423425441750885666544454448278195791595578218623838174777951924735952739424879739266771185740350799821956795977804691055218746802757511623813161858517283941644400594540699182576357785790373948550047040503850612389752350818648827693588178660615577738995052164298892486554503480330357674876159849406097486420261262456662706370022936633103188252744099216244843112228090429354387937087618728159123915803859980625781737607818847108018673169539910603908214388309196108765499728801985397790285377502920103788714030902964912779988187249547420032900585230331176515820569775536088324997466787370283944262233184313917320579135073777421901054505115095939954534394617977484675774283245611181481068431808246357765649342076221213227841979544942134483946687731146236106546960803372252706771621067692852484430883947604425976773062081822804390652587021618008337678886292292006797349741635073081361803741352524804158503977153108066561412801255422835509010664554428285945381898842639788923746314998459821293973726377232227414665393116759022887425892391174470269276396575008485472733140557835096445756132530278482088100849634678025978906053102188695299024010683809913629184919750806716387520890561969810192046758524689488076802959458315943443091820783838896568077759234105029220657415782413647370879938311362266689096342546670550352592178421990562498145067296161234428592529759800462544755685877366178536981100436019489898875479872242925501674342377069979629187282940280685421702190676450512292691978856295457894572060142541189931604393457691404788324249025074055339327162716945056910713269644486635767709050062648242611746586321806339545793977211323642577946476055833921697403747615702755834094989940591391250003437780389730182076322351629388366192007235399110633614851472149224508621409139026538448250948535721298759345466604699257633624370073397418346874864393457354271502253942044604321805890047148081818303409799268653434710664474050720736566178141204328469428360090082537249061261226515335053652872844278289035700670397055548189267363681361973514607183387077276844342505531542170615630197332844963380796162009706837820793510077410817758875817012670209173372610813752963814310356413377078360559493491764010109156175015213870391048259865292508958625277674346378844019445834367416362428232243737255890529294945904298319699096588431577692150975435755673138827995202239989007988547485791309189139577388686036558100825984433447061241611438379416377767655007974320888919911755115146752774854596146073250119633365452821194440744220357473688756810022452771000376700755022478830341019841034790501907811090576077407988381176595770591199028295471862936045349980172245146470422655784421142854941121639044634635726117288070339164678647528949090750068430192009770638787245671229929288743141811453529547319229786030573722466652366834733033946186860149410329748827932095402490062020654725759952934420073384653131493149840475384313466508583765273275726183666538324457165044842926102034409247752186111657655495659901242248516679132163249879701879499275808129825645417191313657029958400929775003269463057482762864352082397622760331423538884909610306767205793959607392369958768506349226654264597588202608352558947977525701133704014977010602209629590058100231480830471514510170428433176901948701200305466197457314228339919691734658262538140669085577778182542195055768563237546883983028357067666437692756202726987434669421910502529299872661776584478084504155083315356370373938278832511921343118320968717046700504323827203222924561412188378240527583571925836978915035970269475159970790551039422384693052150320504378232050942448106385300932540407532216992970157841705288235971474289852791150410655817184718297725154916373869623777355632995148751844252835384859571531279717893667873107175823364672573762928921790158777406599315184144231699855023815357743622225942601829585578035028810119796417508686820656764501327017519408376964602212465726996765730678045346926703100182776925034998305843132658884357440154619828820847114549923194173506419425711694064154002108638387013167913228625947731861928157152749316261621788137934648543599808924540520061297678945240165363924570180664942105574569256184186522494519926687456584817265705709620899903917832711376973690188733043965129353904447176402559683105994806572041959381865448377895330456278625618643634613023027968978406449331455756262707809557271485606106047010929307749709767678837289612255420217971693433804588351651283610493363435665746697501975320507963954564587033026222006422142430308636632264508522232273199521456978508670973437890850800270068732202946492237430733518914112970342425289324393729448941596894772212928982793207808524716744896276817593813204006055596467696526753443304441131014529873610594405532268319713044895614189177038474756503284962240383562592547626257245899552794605678087577707537853798982750576043444378868873068368619027014871411159863487554352357015768147591131942829386522531063878785179074044611591092435367853479740489095983376773564121601043249318278631468999931125410263590391549389723890350672928774678766111537100810044745081348127199706508875254280593780113740821171525689277558908068352646715847003687750128989763315173951089994501247893912257673118746013351140425286036438462452822035690119295605779079745231938825480636015828618768141663125645159015187450522946082909207104482398030643557660349767467461735345905086741139895126107934344833373665886839886070558503408117441885676481828459132233781275384221518430591993533483293144987777820643638862109094330405508636043320403782877801508681215673514824785704039295392774558385593790117102251376420992649339096198680000143270051960104638000789598882229108401505407764385390584650452266091447272452249877814550691955189679507104804197350457073630222921435793976499830959384083129341237480492005990835590389031412552513002094294679352457382131141872332806634222617461883758875641909255815186009242341999319078923911282202407995769113346799538676571231434885103410505900880218021488879581094199704198241642303299513109506852545106526349819235587403399261860366338552621758541896062368074613979754018532042042531099824503561482132241957158348144707214720082133658054015416128374622886515895917274207355789184799750352663302100303476331017231333461335013344097904697577897213825475381011062271864948025628964028438967637335473877000606115744618998107060220246407037519062075342123365628245897010400935476325110373749210164788086073408610018400706293691863716778978300917872344137919584248625028520515410729667421986606664864019536706737082463418848174483262144740785913090890513779175613817891278672242850170963362160313626867547347858058669904438062169217369898746700265784840286834165526388763046353771962570059018161895599280666056751884616606029091446745875681713132382969708393784125459401336335663050150946606806141339834080283137147285931735612647154228233478102888878057484831711508592724899409168772604744346264227542935619411671152368764624483678075302094693734529629727258440167013879423731422488414811126378473951750210106194101829566181236742481985467553809552210955172676024669980010769062970162865836381627158869882606293049331729152415230081474746394576529997069188751766206294953502829057987691493137326053379742186318471470197508327210963553046753720140384097462828402443539560675880678993239549209605711119034753547509482374534661686982550023006701255092765571844916843851938549131575565084009320106722635488942481252451233338051626522497213059293643763957629453081960031144235933611604640793693205031495983247894161010889971252100869463676460218538858008420760068997498282718273384173299021620431973982794018319929571904624359415146131622430664334845344353424230736878500109400809026643123172193289032700419289464359881574265149153312565558011420923262511925943109714149768485339654973285708396283853902773952808873490764647259468766810786319089877790562382760693951255270168497958456495849547567588233672030231691641384064779358413705175531801364627748266421482653718898070956836340568619150677845979250041635121019632441943646472782146798454693338087626303696587641030337843106408877444528962806654355774708814947744124643068300097765188265131379629634351117328165063753066271910006966251538648002615203342300074381739148325628354718952958481067626390609060880107808489480501812341003548033712688337204390377751352561742582303870879975572267153506273989373218890188940866569471337447109260869302718417454255114037182096392807145662230109012021783106268036225931037785873621085432549241039801424439611021574989695095060995172253880814151498680725908280720191661621475540817441663106479429180522410001162102587428477487829366660686042721307100820324894728642740726919897507026688063895982729597445795044388884584836692116819033865324594224321281161552811205674692987312263914677977778369977275412058294019948021847401533700743069298380847129365047858088760129551750414970386717049142304959548530288143588053752798890539933089994483699573032375226715619015175366140480415617867210107160942544163126370125542794330131996325141629676819910187172715812082922171708833792925057934428211159476574747511429896340242897127277801909684230058653441083402096338415143823078188243580078694445493607053337389028125977858357894250842325973627738330510592241700764583811320675382650660871620481467718903013734315056883952528025792112733411614620052494221047433501170968975480326735782147566485956694201929012594641370733698683778999366035386689473422938540243669234027837502037375250046664381763570096673659618634220586992287325460685328347147323580049999919026951555145066597602454353749128952753928394912737700704387149434635023204236956808123759610113162205987502802030958921451119056206999243539162688552506593905682207976479174389984305277364545207500895724403644402649253819738779186413479050407151581064201567890913282230212893069455863372232679978481449196318651567824422281386943118394508645926771174815311719504672210675851904669314644701138498601293849260690468954209833969473604204532536413680622280501404659303456022806747306132213558046297436010319605259116086169350639651733865696580476968031290285598783485971191989338573963491473789659568681393978989605385155492898653872801383606362880157381915181568553569202680393007191457011632914390401967343028154303536180200148724641865174331776078095611232398221873424056724680127227150083385438194418533275918146926035597288226307783115658619193585858109110463315334245149973730166179423336249234694906807091419738623346188340471203500811688778572900778866541609850205484626612654078812581874103499782233410620492873653817152239732767892944874469529327567843466456808942001398979360997273160479445402350742027008407107052007498547565165360280788931557454336372245123788824761746799489848120514867440562502971078620670947733141872515477254267758356786545429411485816801990253128725050405026698163841619635853635265569890687998651771599135751096088912714910818579324846899144792917043343899665918227234182754195921529628200730120805966793718101706732716336226014795983805762544450492667347342865623610785631161565880088852523608741757289575658454658566102087513771917150125617768585328096013050733365506480373696955846460140504941682344957533856157272204958187465976902686360873162602955327486578503718104486432699494877912840328098784213529189759496890971707477995752137877676623768164487623273416435269941510856867626672794452020323941094734194682978485107274156046312919103132111550424607963203655165997971855073874041274971244473185701929588132777819064658883136296105299976915864488926421616791243158581446736327460445567902108269585022590103022063843309320273107865989736440093827256409075655173521117384550030115532494515640235467652827627785037613103093260084961424205237271277351665424553024809741509069224551609216922715076520940039895320873933152548336476299612525909996925949086872238570493310239442281485872257488596998005185149028198324981926153749152874964981253656202443138132851449937305293765954002360837345030197445659886726269620217527119516560399470638498260242197732028094216750554860032614732759177676090207698625510188730291235293160472431063417233792042817483080676700341808829140603808253069505498931971773712293443283187057088202190841060769215178210003998607407834965279744296684039612207273619467831591069538229767267988204974073408953636928196945304757644223913878118356370910838132864170886124897900530139203601220873400910876134852653648668574407596746376724618189380707929127212660737873909677845054424060685828830049996667568016341956530030767257549556758198705791695361527393623495795677267302306486895482728166186408756294948649746556016756233694768630456451781492354839011933953263871695399089721890349359029315035690461224042790695008408689822831614187770389489648544036636301641671742167239296562688785966187018204651770817516428777725757610555509885496491512820224550139398747880084103895819533968844375589804700602254161590955854039404950213073319337150221285922366495437149778555566948176668513786849200262020290186834700361122674133207987316617935019333461128181858121008425087556015550834154181006100032932215256446865483719944191022104870751453531812953304014321744479522603458510924763828928831252609803345007686334284237339693321368875209723789076890708163765945269221085293693486377104110779435524372751499377334338076754521004019386984807152911402873341839917015131082162332962318398706757701601928562974317590610468513662982947185983846109939767229662762083148277992399286469393173343667747466120634896298048204164303450598703053700922762917251356488602082976079075247723024174869460875793367988214148816605777894358931971087797001109392115643307339595839471722748261237757822182374490558723651942117603883049576804361679458971541411080379397987120349755553356219793893398414973693411520580301753664891195929909725976119510265875849840537461880713549092840118504941150485691879339514178683747663714391451775913881159085770110483351617853372502401803521966774057284466035207021951347201598922582334631603999979320349706709647595297161167508561971458310784539504945247635561686028935188621433290951414436672295290118527385986250348628431345763393449122133231341865864248593139885308305539051539594104075771499843953037889285436802832773612404343505330264708891284379137342342324901600445662329555369522145833708557370729167235936331723785688314089345240034183852420526599265719333044135603112940296312390352564543282504492895004745267885652205270131833386723154937353477968900532516332448624705933964985959681053900449122489211777640274339331996222502798467568266207778113588607938169789720789334129324213235165038095996645467101411268003735653059065977362735097161306450373716962148790100162390276324497666251687759678248831204532479084657467879631987382860013208821065810062858759093744692952256669631680012780957794830223859116914321250716110045179857864557294161509483992228010761938601984511639276472792013632138246629225170631971224042241386564434988554886191490586447681126777568847458451002151445661540760769022986817744857249566813279459316500849151916468873483694066108076159467523770624148097950166524299947317424178821379285125545656349719321983025105364084410724642211997855334804613034316113485972660398378117508362782838033771073443501788642501827007934604938957412185294789760812458677551052873998738773053357585885151667669282533370322636720498169316863575920893242595493927336577899939750198213594130827460265797720049001017073858279566985983814220598205338003430295006638570972129542334702530630138404755327343281359556098141887201428007122986288518593492859532274003635822115904645660869182556268036717514969736153280411534729635887740286833978136472217962212532232489122801623563293347173860801152625649110735352807058334926294706444368816162033124382968725387762587161409183076340728194785809320010438605232313882739838864011926412113033430686487240507513722973887218335439406259512967277863003114029402304101224172171177091917571533733595292865182681591269494671563772010857805613334936861531688178505678336126608707027676236215309149749259783494759422325435064400072898802259108070543656393671498489390620589808536957462711629304554448525367235849010686445372951119259868852424645999197343517423748337231524232474071932377917405543326078908542110023769916330169504608010325092321402440170867055274779090650019745394897674767507597766538486854639909701669196098563285873760009423925792049691994069164677184673359432187782407770236517630584222948632570482126491444287157060817732126722561973341777533994660786275348582893474847647856384753915991095175710161911518139436163204900964215114776647149629675762238407150874247155543319196880150780296162455126962000111325688234524868830483336728749037767208302350792606706814511234590914589449576377148209989061367997014012679734618619665994222404248065078462943295022835733003622913018837643465356430146825657765545059198239355438397601096931919187395949666432474726297156317604736672336415784533253948855561585980471617231796293064337702314976849750247887581155783296335509579491595633576849533283399378603688897428877666118253185487994283934030777943275997676162767849616333194379672508947627587044589884470000739997986482134533931931695636323709630231426092344562293711438328548191159427837061694649590286837946061062718102718215027172386296358334410016261313362155375523674802326920797655413177952847422098322879086310225753641592457772309344902000184047428000700393069607889948647072120182818020649626811627022632160454554802413884220433911714010186135659903016708350083010978907379652894224980844414158749082794441866580984005376000385948384327946688184454006101447686382494854680649227409121683299495760275211250659523228765480028828352197843463248510784106592818599334036140233659259931590309495978025415562972110405597227955676366800063891560456520255359542820379987573214617039830660723494353335313079798085481931683034063408754098553884833469357457029156472493459400186587458979477959963025863015559193578207653228796047630963696826969620021892187481631042418613180856722411644048034817016371353562983194360761617574484740683461521528866516926359810106483022637993121248889614598574042485302303014307161434912477536147692289616736740019769905717886208507491350290920081230599477864631018002383482425602788209864378285237122262986225040390214500887526885553289101070094838459674315996434118952787024955637929602030956750569334551471577034375677810649136727520785099748101200581266979895056156196348791548630717948663286407597119899381058168002757722369025951593632486489006648931589984335698199292091962952692878112149228179670223997259854637042807194349203141363908203611861889176163098944632872003546166380256774562426058896695232719195973848035541208713239924804606174057164959860026102078528855335966951051069104579783057100892334151719891340543996945522458127255769597057583171420100247605383339548024953432003796057790853370198152591980601202871808988019850967423019636707907070610762317558751085816616292751607633878842357947481977400165408602675980865775074127517014103049779291786013012577195506630350805270719465070016446844281951530163229417643488543795661440274566905017801934591394755452844158224611053373634960603390206003210602866712893924598290101637259446284099360978385613506401627421006795878319923221163779096524980556248421130969502587547045612390619109127379837382740888052239863278356593512915345391894741633713376029997623806689415281955065556656401044942632613114795052386749126273597391407277259381481552244855882862750969399251536549503220166631431898618947509665437199146235303847895959593820019881828420094522763783682915079217253001271300123145201801183649775492668261092857527366916355387623681799437825912064767816288167129410503821216489801038502411804746309321472979559073990544914155694019593182539398440142045263530516609161243737439905313207714505620206049550281620633514849964412330985134525666610009361503434998063910752948472090541499192983121452528751745117068877533241276966609068176333014005394119544119532745780892383161124962769185010636877730051526797104607795440668654552118747341929671000673575363476047120229001634994201022636987321219277753092430638925397590111716303874345759828443767592003991977287701301569563726568162979378774312966552674230046343042520130565139007240366277432942196670110689005979668746295294463599841935042030757991297030510144619881012551846496736879860075995425687965493020722222957794112714932861615225285307873413729474411809776582273273078132166409837786749665224154671647061558720213424297280389782090145172803585448892697504056352187825833377676542200804176524663544215403560386123500152971936036956911803139873722072041219526310628273246921517028850814681229225284705188403149096970085901100828135043475079195240842707269686794851245815726398603260352575075011828514115097760218871943190538881086069310930897795552044806309819644469036363883586996697308650879406697955876653254918723184309490038994693539621915221880415700595751031850322333455416154500118761928229704194586759883087007242319820572587014260053637363118362038432116879296369673744771967843337876530912677700847969439874879110929608178524623434739041883296963637751374140906499311959894767451686525334693770660901653396557045134319479255717204677772312019686236545120516422717699626626920430049278544732036979738853393667981770809980691850775485171887713246085907209779248603619952576031733040555086994084852606303685316844347357123229185689174287097416230549691418783343914312784281101218352347126478751937249957466486493680493344842208861366406512703146306542096873122051876838895067329472031420620325493562479690891416083622237689622607851422757556794723920547257622486227308231447250462692301479047980523037288730432065449783768107861018054609568620248002827012024824696623471716716867066797333514772912023212521336816619458906428495295825438977692135272686344062736673039864308935518319760168884931619571491850355063630334260732684882120093255563083288685428941685838744256824402798884365535801545029394793243370915218639294414786010415955200336444404544307909124181045192913160792942873967775682931726108783017970686725254146309623134217544660846233810918253728828743080895824441779122848912034368583279034267869678753080083882081317192616110274704298078079496035014454987720219021733264649159219941147342952770745085467516574293850329009174807572805025872102767802076026156954516259171960173813575429558410343839792020655172263620250982109375386222037554057720653545742241182084055851073680054811421349063778128945026608895963975201768692766843544610749043671392204348813388768022759809718454542294096495005226569906156937367344505876215406668032575467818469246217973982857941164990553071902065509608291190908944407579260561261014557649105348032708453982500533353648696097360663548581819571132365516117812352536916533782694399212841487401520655740817495042111843671346057445553767331139095239258743748508781083523081864974610142321883492779074774502133968199523071984173860142328464719660804421175482460535594343946930618859247376103430896679445280549308323784104485170126597353399099097600285787572218856429483325576248520428488358263849285138480802961787356527031262600176841564942993329404522168519912138254375897574137779991725695625518571541550701398755397855217526962985410294567393948278370887058542596310684602597359865498979540414837261636031228141263791031802420126299520428031284567957211210875730277771503751803043984576900382850340544293822778450778232361310484902364807632468167245691187016249829667553544816925910222350512067460633053046058161235544140843494268885913820255645176473547702552110587450864098775530491556512152290039491331376438080830219766767507028458767933064972435817454075010276973751294174981516789646310589725182197524769415835997247453306026093785500386536781812121754675515095915494405557452769210308241041346571407470034780037099265543718140248061054337442694847305994480066885307849991420330241521821030660479395340921904946402333193253929012577429185926120583322804314663183773843557332477264350737629361019495594020274198708426207179306183263738482990959051000270222047693783570346638558119946730674080054962307605630496945251895825057809840614100931905123501034452172456562650784066529580372834705712518772789281376604501790892857962044641445453954350427428214787801386013544312323871559032199429004580836999376598825143490608141491048177751250196083472626963142257979686441190923666623894509019670916344821046102559102637906644354323426986864609923294723653863252197978090857145980531045313634557490624734993144647121046518511421071756322898981341021610914484066848248900985379124783568996283622638312304345916613787281469989636642054728772155294936072188364912742739329151511333751276679430508596573379647992133107297899922531352176569274898285414281217244739228124096630619977138830239395018524715510069708078718881320445076360004979064995903586800241277458287705098516929847418689866667151778495118391840082911896665836238220744968179073851469182533248097666747418116399245588811219941263098393267241565809970647188798781300742062840990304267254049931554050537381127053180933989077958244170662571453881305689847730931228634810974127631454611191213593630213624282365378699604840066842600319704616883481434548486885470551387207594941146275262067042311491135294336481424232707666904132833450008198915736857963400155348351385724266283669294721368933887334579978498320749935080381503259096717894330816403090088762294764565303106380698414418902221052668429781477401082390499298072916561906396446509512897781845692340736672294937590104938833835651982339258679313561812423767867949482047533876623293331545189435609130728321828092126591679587578839171402206496810457104521729776324355282204827312527097067098188835716992256952492115290227226430699074244928727837155855940407884175261684394538010264359214310736946358502003279016358858401337436695693958512131303079507772045517825382394465343382192134506754067310849050975813565360043693369863302947008220472453068667898869231291978175245578886719246063162977188603543724563647078337412560317267724654952985001307788174743161231841728254441371769101516752596315755331330346902999221547765262809266096021818657450083849921398607552231052695948071236862534394451305397832128501184622371936765996874651726594759791755200012944960210576329562235840810490818675288385832525587642137004198979371613441307429018040164995733692530247219307182785498149130420110265943200826190850319714052741181638323097131606780066135417712011328154127713716850009737369033526134617337790896816441817973659011796540472741434902289793523028234109362287180802772399470174338484596910929315144370894659740303149687441879465483317004023710907371963285632123753714144733115022928742650341394479701870660647143806881391310163930614489858689925956610584128960468775714039572807693631369867888994971087353897492409479073440047579472516325638727551049609518999466392189225923502386793279490836736212292262486998690021573091967093131184529058778960630629193422013744950763436299054970436846432656416816928299799355031141945807454907055062932737772982103166709887533687793237424190236906804288670219997144202276931995994691598344376115386272622996743698828604708649208226552312757382247794944822962374207357396682018242890577701924432625087619383923651954474563872654336934419953132456328284284130180081237942305326297086862932401210338802379063837740969519718503201630569581358253698505892090358135199918610517232113952620813296658487991883874122619323403455548164683325876434050050968095165388209120489306853816682439940074231558686067856377519597406141862311130948061745772206227270273584931972189405888308145087023065889939415466327612490578925732477208958824473445648335798913997108867735368327976387127106115569317703782547784462039046940490227945669972470868198617506857893862370183287574155662340824814975441269008589556435836915605667295629313033858750223733649759697112720249237784996329566622992188427104741192681507060536238546147050184379213235319594459655203038834385844214830164452739298621497987260463646352502764097264203845054169530034015438532105607191077131642085804540805625606973930543650537281492746176464258702676558020427808363397780372189073002092857964489362329431321290644438578269445268167377565632432649122249281657598006690986046681373702091264869749146998801213945819390296703644048541429674671508331269486207948278423045750997391137222090266681055263624383868012195258667856556700188541342788095463229932169475244148097891209427983828273147551404257081368221687463314608087956787797819432143105000118121624220411221481328615494825969351619214571780443011728567066192262520396541893963962110797372447099145897376036282197575307574591482236855084220140568742192470864766984267182134103572696159319295361268261931023895239971976222149190178844295422822494462712079536673159920229772919311054405660116268915612042011897280070896055567256589036407908311898780462403060029336092809777010867858228180176610904177175014753275592162696950802605697769050440947861161521199446096461147334780574197060095875243029196756675157767031495336376692951207211416315351810893523580689342555408535176603778054851264491810301223519611629117767736257767301356674024615249213724521194203414928996152627833978228083895842467479586454309506056724238244557942738275458545358617951162275549715556367281175338025149956319486395190847979823113524537621881933506589959249995760554339277865532844084101078113879567377455592554926018949660630574635511745239815924122977505613928982498820918745116406246643084431993202262349202082250348418903043969838328421711138725160467842617088935142024898216740410158175878055236898082907999609823795461787103138222050289988031804806366551137926870944377428124076172220578959336889013184422757104144383282958172721574490083702081592361728489945971073655133746564627418752726454837031090128952743445622799774565076225321160831789399981676739805801850565578898004011456158190174721883646362160297222495527750389628995090785911446101829343453343114160353190697969952790726220304395433220087586257772203951801571903189519505952387042248961431464265004656429713822071781850365257693520499681288975066043385852457218415178346159617509441699219111680287214980296902603417475784792761016569490200851111049512784141364694013682037465921638557163174614312232462562110467646404418582657469843556831324714616747531469280217702231200034930208765448432493392227589232628693681456746305176537694487598628275303686450970007575527421571301359911915897910284933440531326590460010748853426959007198958630300078437624415125085524320646367402463719160991762284898876518453289484413222280456076420004430544392789821152138261808085819620314693386479936111174422572154619090112383536810970309305672672478128681440543958648980674282389954436010417330239618093920280048583314475701949452073627302204802200066408567580788462132644504719553163230751245431243196130382157442102789577360112226314897437845437742238707050962486102422620646298428123948301168478260071621403153897753318241959536953153880431514511305852391930494776996316588637157614079580887373329859950719853141224335857280393116518075023799031281014291552658068896252669398419945188586245049754296287340735989300319246853487527675840142763657000221062191172706298971803206884442144943164213948275298914298619073113153370249666226333761016426880579636056112847778606510715267718612612039435386028802079973255509482614774918799795029914700785613264657093968976121675207906092787740536946313259836910652487342089373511567061279195448688464218298671486488242767762731670441594052050335474194375805744594872317951377017560435863386875824973047089543478249329110005596753300970654320334679032088132742388984056987959650744565379219398410746124521613593351301784528105845567643940571427587128763808516804373736516292694187395232836792853337986578216804833862379442158831623913827220771407413055888288082804713706779615787857692023952126850951835106316945774035798463699931338500514946579431856189309099754306255043774723697975010187548702869565882795707415565472278724881282153012214878303015300969566599943695250769966511785676394137789460585695058650491873124338097942677233776813124446252328812624958409967101411572172535662390690390791504672863392255583480999610545201280308003359359489661666728245429141605642649945612124720092413987368135577399865884169809863655904398264667235136513862569318754891132657675331565855346154222213305552749286066723533062531125906309100245644205334125026072960910640480575161528841183184894885250485254676933526603634880313796873096419928107558069964103541229603376178434517782263999027298005987763340905822479081233488863033512660645162815898551032928862314965080617181791137023458744700419964321785346512392818203316814418728139778567546406154333125896975072643049958919437896784312736069389988003532932045652941428925359033118675594263744620167125303438176745104223922659937255844397831508021520021938408436176219543726920359825271891214044129459685898339591398277647937864735203205246259057777431699084623892612552668312427605133414410692003095018687887839415918445357120409891122010959788864559413501283849675889979464141293130532753618282359594674322512917848145122136603051425661615765056323375325722554051518795351280303249563967285052836874720901703574772892606473287654639323027891551542404183365034021526526729052059600044244939546257100530967424943324019207824278229467573828008692175304082292512512759616835102405089204684595013060323917671350672653979555107907667435167919185424298835343274964263169841259464501626142039968178355729430998358397232471374273335734504446666057435840346208229429077854384586659775180513003593612640687428762460483662004273265621069141197398533190422970173481011238844190378982381377701184948976081935088964124425411614064289571237961524399296160736293739318086771009740487267812126075679547777586137919604814653513868425761669414886548249440974762933987340384939482830195901243453844487949269963486941093127355452491883922608116287699339664620989911911959649006649297056871000027157815863697767914694932862661841950475899959540818330440895748412912974853845088163535185156500497135693927728756320987724678909496712094651924523029302843995938403674667310412503605440212097971548560142329908990576438837245802344357615046340181159250664002970435730323031908717123215042808781834422434954463099653325616788113410331166153489943515050452355191856167909123415132275610354803913501071291611853546357262132534140008432021936017824007640860756560065302578941394363874831241669426003818537420127007202928801394569900347474432846289822916167811454529960431612341857720634229137928772223893894674580472975004704126159443035686820540446117296050029177904806514347067013828201510439615021931457793887339394247663665683109852025212616656427983588544130828473915310314360566036487474120740517068012417891059958104578083761248057248129465824396472902366158239160273229970832513608848883983233454856873046600349326714791995078171605680369433757780528580261073747139091200557086956167912108587473416721641998477641978328235667551131768656888351298691629632582817015772969794289494548315868961082950679336334553212089525192944295730435905231481873642521340066653125022000712762582233963451441631069066895656791668001414998619264894835795090060059459818648398992768243784105159796303562683394923576320755102632832991615040084257867946578561817514746548246134944123200250807861338554942211508867068851960751219128430190585484475660424952778702657601384065593383231320074987931769373453354599143221562303572906614871564924143560417828942118526481761734052760667334745549195261778068912447471416078670294022918728255022940569141969171452017096766886666047733667064829266296547701280593995445022878954240479377778560609098686799588639356035616484880472493633780984792855333478981025250541782169254177169770932330614166530946737862442175514668490596823481652540613208210439844136343130079037811986795181827110643030177540100509530842844604647368449269274709873197235124892297705380402057467545672314929895343874935300002360337352134483517082031129568896937165622457849406189578207529184108478678439329591687959630750611506170762043320326661153978017643212150050374628591274588836580835236120461733372393246399857909829588919907212137397640644696178477086392456315603311151980563084700891905957570861464613009975377969567526769754108873211826359869266773860121895044347503753860929901353594369443846182643411499250675992205771536057691208208568717562327193862140861587180967513320665813414829067873232206049518909657746033560651145263431044536910413095366772713336507972959792954193066268111869205062525198667921399205940895618548449773829691255254396539010740082993365698031359863007231462073600239873859708660453897125875674788947115056377282840083708434864385748009297098940003003141530238347260729012729030606176041666959909358743108955453758846757834129821067338491650266340318314666190867276369020062502461832667553272767219047392787517716669545594337160808276252551281781668011821437435145633494063920104946290899312371115726666170990204784228681766654897073201934743509745917732892554942185584428278836918105209734353687057249536875448686543942094263983189134184801772567962015787315855202289943812264979778433381385394245554142294831423987342485386188195835210326639832415701783111631811806310490453077739610621387720247805646199188014028743888128766636417918085913493844193340838735241580608400739128265609582050039858062630988198194888386373434213388519189298499799025152693071093544894954446428018438895773525987438616282662677624606263030726595300218520012791172553224339762225844900194708511288405085424346150923520175031522715162796286957813066044658674778674548730125688764640448321873119633611120121631369625085540707796298137924102484143293117294122700088918219614023565934029535304153616835288716449416936652231123885735938961551203126193394424528926994228301091790751250133210549767174928454169646272318818280022403572751366240532146570172846764013115351369736550496399050404039809493178865741223212862140800807100028059778480878963144679714807351425226934597827770800309452603068448442556188219101975437447343564932502303366996720403308912468136047223137335914172590467901439134226665351214982474403908931297885481536974874314493006317280980557669387731849878051808683917712299668167610582471834309143327942642234957156114320872925854921689624101138263563197662379264037025629997727675260038643834756519990674229749547567445788005284182672323062567598654619028997569760060833607342996400825069888504364773446090951250467670568760789207532364086959379567843798869986896815158493955807149154770546971164746639208726925035890937917650981487388517605034279136230759990388368534740604490507814776848301721031147621838909197247879480172017692092552584624228233266239601663087912396547259146328080536343235885179802103313567807063067436119514390636341117971883071564148764585407024316716573553096746063249538834025163867131432415788986556526288048353259410021818605434938077234903329380454503326570309906494475369039173173810280125546199922138305366855231255654444679712533074059764006410660121913630364522604062096608605329986163840494802907689612182212910565556862155683747111539341982024637245765296431018544684733953503743291455507619602523743976610459115990119795421708854241766523673704269882498592109007401987796308772177641546251705691265369436487069844589680130626422150575887380649695925807007029621947510465085804671679903596867948142913890896770876487940924150019036611598894491010178787083709484907812385984734559571468043294012287760201625586141663081393483616351354420930878910907510300871197918314232128425765598752260960084836232835217177993338745588743810012980826494985716520518605593417163151097095482945274193469183327332326757532190588561914083060427620115004653278678472454374092770677647356560186195446996979561715847099355081297013708440710581004285319319310119317669820297202199864235025315452086989804375798795336517938076668230351114797587506418157778754324477080073734673668691104210307371285449774122695271926286902217986708519107051498672605889824705895621803603684662154441832880655272366058051291173519759833864930958811572681076170745310154890313873756654190030534701698309992057948251003853568878366191224791452182976295080144957394637328078339207080195276008952680648613877071106621670826435763305752685919939067856886245875460458687016377443513875772141948701879137608836006546196998986230785410973842892669347317650837243584662797091466284767825066188074750363376835901111120951265336535511648524343278405757620767507311535872643299104422892248414752096819383718730202442876243471243672577708092035202397109923531382491935827194516981430985028881202555360309961654197972265270530922443418517277314108281289289957653241378809276977106086644927411662729222106740515046844750920861667909789042345880916134575784867775269791386794240450953147101118161976908531007034570720701968118736875869734091354339316227035172615084858298546582684601449362906736003522554168347502417574173565165244301631890700541361613997315339533481138218424707055996495999845635620964941946796873441638330642427954863566360689443293722336214823498632700998962426376743055333290691042721586516913136212165217454982980674665788404881930450888450595773663983566117316924521621552823209337254866391594077933189422955362807652539090176660570613567532153287808321094716975026933664282210108208498202947958345921130311473509468544516796526233651166781439518727934212420221861971992089413685912335165361491146714669290011033419693622914101070105389864086411149230494551933245988930500509547949844842574561144970813705010557484298299855570778923584483059641777082852072331930583150292023661991599089856070397492022968700361414366928907430988025966957112524803565849254787279279476295693871071432948894329723139549641834444332191725206012410762248045923239400217797032069778364812449284385056404507834055079307222229151148872498297981249111903555687570658220921846930987094591582600946779937435352219004618748643445282831208716219242862746411857892945872085244697925632750939601854640031774586525415265071062078790174528515458416381183717443170563934274066968659298603765004125723509742865971846906291606653367902157299610119016608289219371490405413867334526696585385049462516557214822010322301747004494609579906651181457982553267873288344620299323514702814348941922595780005836144340898636980640094388241947146011984794301836346149225770492628549695098897443521864750470373310593538363730554712800458969278235912854123683797849559978647647027474475957650320397364077050279105028510858367700883847237484847179197727073011210655488929818266451915350095001572774428624475461433930414744080310951228910813355694471015094647362233383226009011374855029544676769430210414480182011115423033216995808208590801589967944301779411793513458741759785953138455970297128057249233645865796812925898361328725317266691165692561478949460123588827700075396225440847498977458717885373100195726314591791525450665948616069996717455761015920735413775361438945215218585144591835697827743686691158306373001293069367755595590211753425093568821226143229256635724952579574659834764870669107142743782540924703736338569029323217085972261402367291068217818209866553767728024781654796141285228620671251535681641517479618378328812447872751075312692884082592870399645773317403421877129529167729040269746312529539063149696278666219784449215133707583391389363190425333387301396628439788368588547943953125004907016480757907600989353866805685533664035563951380359965770750679966317680253188240559444550095834170326342944380201966915453826355681263353645134314108079316452606087337212573987812458297895229706284754451282909029851202276617955882730881633382947347248995696686022786847171145777163675427038422105875242007776926583678745117623869217583555949494871951111992003532799998531394786098548186903458838493439627875557878382613453234694720379363347536306452112849241976088329179900606726511384840204312831364659832541220752338665705858395895704837499404432245011859563520399629003992096659411457621628132948989706861370697651919681093135641600698249635317720945569943427653786322576947011128335651578866843421124611148117343439002152298056922084672886557605717513909375530857954507192085190680898227775159155738580899775947177606214814946268976294598486878991798174979246100415126655345887192880381007069271172897531842875014733257117327795237752098963213291375132366448844727482818054495916649813118973032218919719596089114808828991707574673577321393862966696837781743453374720457071648121529854577376428040882143324111990676955946374127922844796195114377754991931293245587950619958223610933314360516277664567188979005139872737373745072234336798022138222545046768155527424669023925547186308019695011306471787493643872507746182673324846204269694555323501625475222729996702414027714193862914336226951384772610800874272236555667198553913615630772011064495433788370829117154614018703651206168579726527466758853968113954429331579707674104958868296894197188470239367906781535183094552017578801597958034666960294203238320031367909810834179624337715259282726527753258698470750487427859933849200792944042718923957694654695103873533768257023435253813811218223385454961268539840529490598434185620482904282243978101139762379781563373808499066623768881013099966396883681470787075731768797302496817439571696803948279829934449532640297370936827044859724366937555580185472466243174279167269171429137460438789305189909116589401843538518986560194292434642369807716571399968470725065248943391775208111898655081740249468603083940509287350081105724174814130812451449591945758172360320269883856232762329830117652307362274567324024102197172701626075915079945109575557345483865768835163888645621629492374284882827914197754134983875690508860132467972913373197196817384532025873494630102156707070519210280355385190214987548954166609312264591606302981812775177186842067990556271660920992535448963030870988916469997702162790066003224949356306320088690463030001361130749984182797952957739371732989523081268922895497811768704074031793583751674205921470686325866502717662164871342885005575169812889445569603030547096408611492302276914721817673410790538609596538664638057403968988265735038170620379900256034699291344175208331351136922776982315617870570987122759613703279014780209112688503788090691723621027502241202351115707916650373694482065181985552933202968264816986755754201842013101220730532592827174429705300628081504321056345043091402386445435810755090599496695792354612938112387770146694249843181695136965052199317395367691433700136681017549266994211414022559515591722679709681900525319058100177464752999177596951108071213167557350173209803667379491432632213612571614616464472541500620874680381885044568120610716069689132839808182380446862925539008462667386356256034906959183893415546066880481202847467149241934359123703984945349344650171878243147615792900467717117386526271481874217530311657462966981708872914975503980846046362431234110756163267846384466025993272538979671499186207073365134839012936247111734903300305186240026182238992682710682570695570161625401020287341671822582889673372156548036254720973695224103726313222417660456734473031935067613228987995455579692353354690673738094728253519481304405719673208855229756421190808544294149997909217899986371256739624012477818482798572496908861128408471007004062824461567227851635369753412126019178238681720876772897775427911806950801428179111304226509261004479349128307856847164279842720157163142542501626895193389423922891379113699605815998814300113691987875892777740726748954748257554839828233944414664998692469806293561932273663313914935774752671161366236881059909887711166358320399261458671494891419065695682838101434244449277079175184218120130720548029433445019918841211931581722411055827861409469755100390866427061337166845883816122524565537137683239904391732139278661970821009855678011806323927199289616596855860442209026042836059460000197400664402028900925337115216156642170866696788024160908663418483362291172590009366424423565854462480794557169814765537185161504078772665024912886908824390082771830374730732786918143333247877168025943508374377699652916364297652236957344323988382390315925358802191623189249683686971456548329917451353330668354966321917462468747138426333433658289320272446288931293630014820517990338104424982617114336895039101768255085870016105618557074500700491963186379788004944058473811084651437739176166621660971929216287801683290326370044414615269670202862757382090344288886364627694604770675310604295967046345656478832190719571421154178559707851938660246246693604293607193225675214217369323926918029191733135293260523146714503285526438513370656288517550343108604181917254053076965281063869775241337155234396648481007902200291366242510755485567033342971449819999902963450294310175668019344491654986788800761381161206737588965879499772083518456983286228077224252631760762547701912556088451113002816421731958529947982717606380518321072463768353533756625288134151774240961855454939177464804929985656556209084660873494634498569584572175280561039056660963936055884814731323171317957204825586430775595304660460780721356569261031514993108890921845862212217598435301705761804883839233443832198906397293884980376319523636785528016206022355152655043983869465045974635533337456389907603158671253158250526026766959369941487741518192566782801563683224133177002501638856424072885607618459135684651860002204240355199090134338483500481318593016157523337474764745122958812682847322230092617489250840642464890389603977230738041480518244106481227003256736689709720495282519397399709271251493486052424997250162052420330244080158858792157619569956693295867967532198585917200455018763158758888525294461954901158716815681946562218848431119153021189355330790775676844157692734035959542729081037750244177089104968274295945565335430388891688089823856318202816033646636534023976292140711897374410203592709060339221768294159440301275920304796653897604013924011041020289018864744052941132523475428529113304434187449691294326503635202729094408110769421575160764891754255077902799437336684920208347152750406701107597074153768253274866599909508414281800907000530568099414426824447324553198658773990580807541851297324559040484587523214571852364947089541442996301388691781494896913845625919354542940349888918971003115551365896428755768578581954885907060138710068383863766108622764972595447306754279498862955101833848125359801963465858757549710811926336525117697558010939893116342102577896703877149399025927567784133691232688287051200758090717598987254597011577092165931170387448631314104489581243677353217883549376854112363246206900402753588356186729195804356555636415888321376767624552821599946028084915186508823865811418075666209331375184751162786268018938658108069640004144066155794311430821376580276123464076784736303330126984156378576350852696154056639736606128606566660576826064537533393611726630863265581535846779347045258327503277159422873250822461239383408379428620924857279183217030378230717453925076394946040136421049807084164148786334601637618192089799577160282353270606798659144536104375131726892332762734391105249249099701498786862031291278929261524993546624486874012290665850467500256378977879271798888722074344526524315787936297579925240747273259484920620990233476675310947392113549910665696340658419114044780896054181771573336813730965141502508680374554180071279164492712861601819581027378269328616907012831411223894984368556751009182807864728872713952554141555142543682281614792571869299567445695696294264906736666995020489422973526305706581405716987531440241373380489853892242380121868761943075245483756569881649622055722425005606741828359134832126762146700318320258732108388391179599470268037997540049746937007367476092911389466037450782081556492717793538645681173431647161090763196106079976519339151453011467851014547007207162320107098489369141289558450522154764238087107298883409365223032081546289763550065484991659925235102465184349579874363796933110005230201964179850351488120164794957769299948643352284275877234164389164216736097143176034134295527492205115750886123811906252092782627697714749395338360620537686256595608335523392466097080562035145862683061969555822149731185395907868548899372220475592058225948472998093911774214126312317258701587346861845856124569924711663870450157697152871859285190007643850985214428888763661264999930928982114552748023235922526041126416243876568656398377056786176885975605049427189918248096388612193596492170428269151313518769123866280087954271883527780173905134238813974318373636393455689367817126049671509802521318232245692546842858665206045169941948555125252726802883903302963594738026322314746911168961446815708795409878060493329163130754731009935560776088603296577583259509817676006619767205445906356517433773686594048419591216424571525823488556250996388329517619648516578632159766407755858507950997313376654426674559069094831196489009861591229955243957367083611942861866257035938608816414197774459611723595484645848117454819168871941793268549876761800568440150585325481340088864449134200956719425601055453940010353353860426232048154337320846797275382059249868478217080778972261173247746595643165914564599240590368449606549211113844758923914014801765778676752954495211586423098382372351739243166160789271758958949401254419498429834527031488131419081105662318131375810470167334456171864802062176209663323546547235099387762442406880484596036812530985544298841178514823978252249650814307234528075638900314613509758878129086376192100546304007508459431937222602880248489153840575273256231053705600496585223820717260064217554728552033704135282197943928620595443491023535118204593549874903061830991994717759225718611402335667574475903911401566604948679007032215656317689110079843221228147456898940407351046224996521700540618538082175179316583590596482561643098158597505858488668886279631046101791048560188347730773433542879577254412573919823756516079878157319149105569179243114504072229550956253141234542216455189732186921066795201804992265007290652866166398237128276318333127190235109834625597525457327431312564069598415025863859251667446738232537907597671573569844487751761599924010031185236598912535269815578784013079682497851115432034357410222524061474849160210352092874348486481349244724870990839718726335656104847451411234886414091750811804085221395550872634140794728399203658157553411887594751828105403024528676632779523643949489541053893952463401303220263345497036896981417549694583758625587705512169424056146524728778890172358903126913984797067343197295136152629957232519193980572587761494297680567348353442651229874383088369194636253075088606682582900849664295658931712686187818154434193568727196911245189914575936613178229791652698036796808169412466629756682866217153652267433842147075220412683707718413134503882921542820872106982906504212663362631558307956140113478110314157326487171006055255670661908044168718790842397838470845479552048964079399561238764194459234631721461528623281305417926560917200636148655126219900929544491643249043107170772483179336762064489743206624593182546312101726548640049354587881511381533551112471674069741613906050059128058705006466541151803372930277383812328472521753250384627289991421171844111764651372280358260724966376324009418331822647307055940881338709908017197884428149576012041595484973162748640818022356947324542249950537679828719146762962942119139312123818567272452580122098961687702541342358777557470844456406717841870077434531539702824812715531965378231190091405246584683142653547747077753256665246603582083156038735707381475679074977936066462734257151923245401737142770312934329255872783274157655261554031269643588827863432630726107217176639207125911985524664528812216527334264602538137170711423590941294264587186777926100801855982859261720422298661364417499290309060182177485014237348071868863813167403088357213372169333175784688631305382575399226337338061781887738349397163272200717166834689794912023850249402300506671183829388645002557311287011338583667894816878284881138016791726226003241824089717078876812574161277319425142475353920712822040596332060990411417783284103439649726712714722523857081817991746051176743833992225556302910797551088793532122219579944778486601632782206103188108384072101186534792272269323591724084973081965048770068731463850628411272078961438889845024361716287634717052498802154679864235237401336219583445393132825869517027377609465048909879608429042254473986504658709598161098553877285866233552175181487257366193248132201938724264243524005232867102701119288212967102923219339702305147267314245084445140135395166542360184502257918899926470258357788638011625558223939604521472684820309331329945297671048439794499809699133886081252645638674291148674071436598088786778772481958514868909692580003750696657541701111473121534840485935466751772506358069354494374902951488654417554178910405243317172780075969508349291601840604710357793531222530012286823892123731046569877078324715283399769975188286538290817055992935865394485230285966515540182539693670020801789293084808935150044185520941323073014973140163439541715525852789945251441570931420638066542873281243620128204412752572726992759735008611081311906364379009521255252031296898091557922403451262431168896863054233999721331713033737913092461777769360492567933578793969178086164264869354419449235556275210068325724297899535651113377187130912875328561030293422667404931237589227897688720592577114918351804107828485253912431046394797765886021796940900872235535648727359385888049209540485753103344660885221879564469543100802696560547395320117486976782538760206796281884701096422797156821986592426888213021014418664179991445919191187329980982573169591091677773356091178853481465925591804084004443355204758701429810808987106989901833099539676016097112753865789074887052575517578206724015382339915815999545868274921705653133998751379611841035730789373247555523283947041386715447453287601646422262166186505403446601275284679084642620516292027883031015823543135588656194285474509629078576322445557661762470648425991274712100586619244186947916105145352860870698645963016174550573689058073785952862562281195236909325078558069977368617523106102440729024609639179684791068381326542692754760646308393388199965126948102405583796869115360694354853391693892419136463102866329430604088357354055525258388038211508480060069966931276680871499187954829817584739514783576219391627523591140741127189533410663936050917196049292373671263842860321926158013990511205241125168552908420029794744601810099073038083850511954162721105104499727148187604635670608383935068175667004706153148234433635825751316606735822080810703309734230268408292858114240335175651351410580022617316011722554871774958154017696624875315814921533986743919801534229900220528788004561865800229843457523377881871635577769768570926610593846922219568843162984287687109229942938220119480508610347911373221088819241845078617948371640654996933921337732259179151283948904421777171238786645301462142507188863863161136803694912546048738831352550197658679124474891616427858909004129495647966436077037603848397665144509427978291071088622917589910986357925334198412757265652916407249023058456882781949049004758441077889498139564811003459629152447154597773443397811953704052652742314710458864654092284959381494752188864618646203610229563255641446826080834412987932269225022542723944354058424502182715537966519213711524039342551106543526458186301759808765866454312078265264006692887661045107160780666961977703537964963322685759280316250810442299557556944454140328612468806089456531914964386931006177096534907839785713519837895060766649108904404646458256347895510704036383312216598787936331768228127470070486039175578329350798810021645467664947445990272167186615310120825769522584297061020407121007311596371646326391769413992242560526546115240166889054038063532086681544026571620340151429322830009385419314403009330524582219632786486414383872068145011620664945550295416874372958523313205255685662672289356006424032910307407744419453896451773732385126737966424332003745471665417654367371873577191310022542015150190798513170137822622221476786344919299707106760820772752754033334239262608317660523487729577847947183382145437583773628123987553420519587284259881935727110677932417543068375298314206476778985746084586263060606420505387455300369883210616794943668037268206712911949006531160249496386549205849520186402753945784302514123487299584143441739068926134718812628155449264174775332599235617704633897931749673602036011081022573999996814440622569172075197513572922798891935758550133803489354941764593703290547414448733615662002489302312181928022410470741645770530982082149820942997602180784830566592638958109539329293556266124610094714408754600645774820968210747073451363186535636121096430183175977340065571678211360600858801943293398692986411381194758641964282989175039491603380677066434861502862959029064345718083316028728114601097196548088246560924553551972401755259166940386769309337324602574791286325215268662874730360974186854294961055102891809775307445706464304277991958297238791367794177827085952644364914387402727279363686717860161143704126356811721077852124808119247890521074539595916955751101693431953530688205101587985321345825525133061500021981099468638722586598057777526974295871891307456344077409144716117011878396578366246241070051849642618024347408074053511349046272333204121127799613200162749554776265770560572804768204917984651207493282752828015433289766368466358186229567299392510659776169518127648885843023862429614572984659150048502263467335553077930963559273156555344736847237258206116513250870285664596912215537714031561181472720602402279672358351775271522226599895602834744305721869978122424632569463882554148706941413607407841768488423974315259478371941669173382707488881282942250759336258588614332430278151373475359150414147816662133654792720770186173084314008522237511833246030841750339646234066622358463976130191476031323768305604624336370765247268468634738057129346554774043120543362782426891185909731867433546281296148877969360235884889942815711678636276952173545627630493595230946333511462083966391392978110528315461152086710347303377816800433991961877282639084450127291249378024326360858314295698512015638815454122009587142032379783515777787968194694542404815467912275229866816811709855796575864697222883318270765681696145795139673952890077463144590933125046606363370872965601737936391474963730549236902035026320102907762995134471208326204847725607781202296318085525829141943173894888215755483578778921629722944941033018742727193161114327479854638518409128769350460495379451289376993435858048291792078997968459817373302208008397105637402500956871488152007187706651837282141783135499362850529539162088779685672313857725162203808352749608729019822853264067448499048688644574063000999395071274136612535092028353304412772076179215234718567778226442671410010104375843448889016064340729745788360030338137936919959998943228842614037797243261049640319634334075531806532287285173970203027665306277043877918895553104420979400958853630304011169215307675761934120962761698792585458656158349384317881741466177179142197741344283862518077683316427702374867262272101560320553496212663790269560332996902782362419288119181784512663527607884127584681530679564433466331462951840661568451274609239353583912588191790173798852703437630896828797123797896675312358664237488346219033834030999813071497565311528378908847566905536985412108328680843385074052657710159467193636276990997826542699351629595236123676879476575367444554102836373149429480871969592692790831374093826429834944885625070663900633841258209006729364529682125257133117848369265218195897869714847805784393494010293397807159936192174370904996565669037648287906472002974236552388141764898929139207763285199005997106217938110477839548426985123056004631730535600745369907351489058630922521382151847287847492607631441670305716540156483738902403101355491011162554747304993097406743486682183419992401034541462743697850853534826215749414615397062926429139432325901783384005006518320984576586049057159180633958167780038393745619178228880430232975915751575480073556744513704806505489227197273312420685107839030316539725988095197019274598614076586470501656051915176035649210508474347409743054924296775734414944170760028751201839179814004421816573650618180115119553603032156220126116468838501729311166845206356823076949103131926369971581376315246698859092762262452184643455067559702801108582566153089420488204963753215568804540948520334215756896809153089134745629177122566965139012112896442051651955244833162667209582608589205780503462740266163410292165339997871106199315467893330280976919772650197196382213450108686953531235328715627190251297517070255082760134743276125852168668657023013267731285306482056538579716472054443823813436801752611253880080414299677534297014087537700254214506833285523124877297045538490900100612524913109087937210093637915741120926710324613957412650620307926800492484022655842070215280512909142535160514786901494573680364125451438969878831804787264860760425847255815529049467457313810949594086728707180965325597821290419514153499891912806810474348266157028740646868878388667926406564462862481192441505879103689214152350699792486558344681216165789283610269182704272569922695695574973360985073957499275812553211309346911157307533910826432687162493482102857282687954887583859573606963727950441747233659208071849864532930475378581943191417228034637832079239992891627064453420541508932711813720794705999856305595969582863935492157129008356147637556790672606171531039090243593143152093611022493823561230028629718897901006011501611187897860147574375796392419610055705150508375080326218668084702938894943723176059877908683386119886270160001546951465511639267149619561961114637391146479686450076883008911439683738103544050896808064463000011252204295339426423469474906004479989575216409247194606051147595357255341509256676267299206518304441461769182326023813780070397102023037649678758803280649990879783456739206637464592644216451655240166973876723473924461449789840617353405908571473227650600401234227932724473579028876538737819152069717272160959530329287184404987383678376759600631393378564709906623183348688970076825985107945816673179113253208125962936140432887590018706053630673187425301603442053302956468553247611790408435443199890115340261213550422081215936641743944442751483914028295324066473857967876389007611410154999540562725252289690599411084130524748601825018046058988227838102177951592526976896134662152523010670563699465895508779027842603449609972663103626341889953515838817153797611867945173606929958616424794790867316398256116069977835397185152100455381777906717263177273175856816155909638209802635194224415057165770306830321832915806941608338542291280563846914318433365641062068985260431521197353238469273876357158493360558877573886643343896603900909867893480043649938088112902245516288440183506280742876440684964424250437558174021054595229234613785035523619975990891605648605947457574306230298120297648211814357363511968866052193184591013804598073328562710627677165372394852378992806402251791591838976797725628151967686741541667157795677401755008837392023129632456415657816041619433069980859851932033972645725395157827477593954723342270411195120839329267295045649062346049005187024287357650295718698789779509070627066868689792356706543365514307960551661478354984721195427902154502155339351091008776532551690671652585998075530490332292748513994085808290100142995359948402321337919631621599734224124385143585033430460830882336104249760210439252495305694836309615329062753394523828586279414164844587572311815463814482216749963691900036641299412032708362606949468445075816682488661102975604143360630341255370220083330585688241325718281674403357661472822781964441636611465572305044036398019858281708792913674346391566609039726351497266390968483221777215934708755544328666487558011166838115411394835889701017614644328002974215829241910585029025477195877161200549341135661562093376795959870548819873684465336041964943256068795558375782073300606955564597860139723742258182486873555415501769630995849243358144568877661426249180806476508536130317261624318750268989590911390086272972472048242975837548505866465765012550072754159288224349817643079659290865929485788791700944195687079111783665662354555277655229281549252282014913176402685341272533062099251995354402309630382228844217520854303817323449262600704265259481887529442610034594832660144022916888429754695056068206141778916611771207095244163711025957857653502415570223892024598222800858415170480652448363806912181428911104249398885983317043821099236171134916942149908342444718321225184524746617918344901082861266415799782853069307877329492331015019682024626271192521879693712020370034041848289439861883116393580341009916028564153477120622315440682355124390472678804982701549401473587777762732850818529018723409803743409241947252646257033960138081942918433914098838222763534451990938719396848521569813928983903486628775590359389774513410081092311226297148102273572322092900938847491881736092077813141391554193261181043240794905999948780521580833460802209056094246501500960050248245498567099556725660210051421137824585817087202023173966322976862111298743642752272656516570202144689486109685706760327040071567345204442801610705614878919944000485650325937394654247447188140960516523435883257289078752598769761933106999503937219225408290368103993484777267411718036773916167731383542155525399323982688051889867656528700397396744177918587024237700339069200546866201732295787124722158710000668049085470756578445966658010852404747402043829346034107642225650007593603498369790466163342618869861977465244273150823035436685719527050070059128759919279200833488611245955826761696868498825866817360088625498908605733118617725525144763591842101317796883134611767597400608193897037270123061695600636745353515495099382874172062369238282604307094700239426370185499161058705212992039857210183193429995674580706010389026740279972211020169219377073647369189817220867645576582737260237053263876649675401768899403445346456514014032493532995752886235145952064944215850520715524672355559135613530776886288194201814207407128238608945167753330729772988337596053119271426241278493085110650314546902170628397682603121882821522703610968426645578623420786088737898807261489408110577976678284644864593801539248483166833586356484101367136903485299690118631812714498216458333951836554925080871159579563498585455969195994586330663987956287587225044008988803060745706412142717148024307565450030731956121974452063048437972317420366792547941785280601537913536294032506007813172818737041800237384882075668741811936896056219843844491347226988584746414048592128695860989355874373080766122520344244182732218423341284851130349098006719705066474256420981389093192598641870739456811658727713274608796104924780950134137223065821135628859558609766901980129716193934864949285624251514677152262693060574125176298706493907383386645574645938955244683216836215715093603415582625873241103752906631347876878405081728170600797518731965788453917312039576814915719792201794139817060826025710496795633007938706194231656606686947093019839678278378499183010385213064365065706408888881938568953908288838011934762479044327428107932630915656905577929497942385986294517770141502021768199804037020036627213640853565803011052779132547565989273469474067912118545859968470204166344604518848545133912180621479614660327275554357187152061072101552784083696512163647558672256602665922715506247710839007739015045700754669307446783156542259423521690383422233535875650376228402431295427086392351483229163445069295820034539683035463711676666503123141622286792186668989537633889153352592006676158898436156390702978351146483555764201026704122674370626430464226715899443162173782963097665426902303932297940288745624620983450368733468677161861689179844960361140128920999984294637185392541013253456630168211908507295559595973196082774803440432670637257633796200846317054456255052031964808870322960577059863569617856791160197816423177454950779590418482257323906719072920159974007373163155097231271774872592199008807470875538461565858725573669471384931634050081343680774960518348851780456210921799303726345678636595518219111698011810015720578105659693363579285180065561200096126855614160969725972657329987239014005626778834091996254942030302025498093940044902872949107061926929695726733825340446364940957478985974387129744678804490131079797624924143470022289967745254771627532985558794438559470656769524987181979591527590424780404651471822380598608593044663424230899409262513352269839740862799539284181698105337689164512377638218981109686788719029165193696909499176504541814498429221661935933177521490543944669959731407439572198950736885941357762223390319159462382696356547101339340457215827132668745408971672599681440795849870703265878765680661264485629985138738917744339492375725077143868144168092327247520640561073147473199656080326655388995131348044889480022307539467700083533819433123450044872057000979533353951584274597017170411746898832625643715835678539155775494659193591136780287469202055943098725061665740405007076694162651081643882723563336000495245962740429175165374626736128938592920132521381622148606500195672597702824981094320681296211978167716607203135792143540136519930790117044478992113994132427560836852867188886279735726433107475712419263099496413596830029736093039394066040861652958837868285207096279177987172075181327015445649674176650400224096204602669115600426153073039978161598899190464826872494790452394523894405377420994164184373732847054151196365073183369209510961974615732581447668365254630566447701362254677049173318653780340878993726130083080473915656760288036385361398067624975476220368784557348859052484663815768457890211941305160673660101831919046508696947437672436666299495818547190752933483948089175657807450436240844634250063494394628524122451037893789369433321861022264432217997452450024570170829095585857743151132141964042591128310104299183890169114218162002340239099249701946206421027102814821779792666603751770695366965375456944824119858096159655136338599045981444597566146722548243023809889119924743447771733005985842990853101780180803733099311273318847070602510509935632398544214099233284027546402216655115477818907499557733209384016633266380861425576215410682258704348317279070898919729102604073209162880965057719544359536650956076190685551161810596211512967252835261635568338871315740490938363939304490840648968138262782622614541817984315842993233763048720762960026945714931275734368460609353991450005672640188945684302942967459484672663176418700371224947357789470882177702405467934187447586109474657127966289472112858875064938493473470002830493437674136750804167483682568889493724406594252533228249055724160027916833927938613254135629270066520956936414325598405018913187233194821354467116049538098047744439120662018804172923353855303432408245780712535051595449355012240345395785675169852719170682689142695077615948972439084871762516671857327410514423748000420679755328070203588380610671910032248380723308697438120274705861772669452715609354060412119136667865898423225168000500422502540284198285253986990827094190529100031471232938615076843905055081233826547103943464512657812604754083367696569523500449963184464720336472524591168751811127071239318625454136900201470380017155308208133275658982654330939430613917871494066827763790898317526258367192791270236650499651453903190916793613313457972893359275807740466511780747731776630544991211884987796204587375055674701344812423898400394089233724627015974504240234021856398333589833857282606617660195485836992187989328252271310829592702328605310542730372957171790511719684634022216266503174599548557215540789965156802641793053506809091265268741497202463869839106556822905543617629118238752377100281010966654883995083795081584513141956256967308393514125190291313669652961151079675411916695566693386207722360981823964523300195377714606270398255004645113299447351960416592568237174683775337334817690642369316723496771122418997184565068215548160611394494376685474108116465400141768939944573967466248723577893529241723301348779034303812282493728076677415150950067687298313153020398621202407298025005175883158503791559487326329184901604552265313866157650585927629540122216881806812096624779983226865133386999030738998747158249839555868413189093216436251737353453702957734480201506659462443310989361635947060362627320122747177940434482287433361246101539575226926042453676455615022223812906060366580735608943230615804883859281351448630089171304893552901518921326474021724301401423816019268123253950788393238414150907147900797278611690523480759115547711263541938829715412857241558390563701494030224903040001020723071732560199298255746539000527293377356715723470337025557478976908300248200486780780323194397528967003565715990860693322496937362724650710382329692083048804055603741819481999670960022551564879400784234602352295771604912084705093864760041596366040390658999508421228853417520361618748258509131188471997969897335634309331555684832373911464598652762712705818901592397221786080218944720182986466434764403222797562716403620627899150693295917156053069277171455315186238971796285167223848152809482123987285730475233283436596470666200222669110934090826293305888028126883109947443402798344655776444460866090423031358725448813659208726311258789974054160322256411010221158775603290231115033600784081969049505264476006418823283357328885373933309638147636628151206702029886717376629266206418439605237691567416588756152186599307110796764486084283283464243298155927914312464660694721698395567973911517408887401007227109622623201326928883434665491498627953699604310595648330959069860756215143919682481362018295186008965103368164142006478811819865510979587067136208031940260280111152070940181963104034069715665241489177083444636670469172944132987829836667498110542448859044611362646763426677137502765360476535973165533845704719512741792415763084580594903063389453610702443545857191687416272874421947248477516882608309806089954552174038944961853972433777906677748005191243642176342106780839873107555877879737328849432884836528381953812525322916134797675114378164285906974410105308484376713882832046225324827166619983186911116595394011808542465812910372335722523699798037188299007474553679306269389408390465256085746978966152828781775019589974994581503241051182006926733744064523369872057275471847490225312307232797422882671112403827454486736759294938225557721988708559011578601609838673143596242548343627673172822619600696088951708209557553004129204159031359496660880271741113014327943642661842566402598835097434940213799496922403800305730780052314165863041082590604793800661767287886135859142286969573310743831672337072452436359003080185870244040330546359616770084700239070035931762073720762125910729653423182932849637866549949684155820125291761892736739341016180689848259937418236574694691041200627684411015973882722130944343620498127637304239596620058042040651173652820248484920152648067181628444413063801683449721488690601061603800317174112289711521561526089135352779558800028453720200893060867349807488326338736057585087720034804267706366526902150153678975972461789300557955179821785684418254758167779034101234910037988236136571375884111955204817003510756150112224784968800037573733461458465535009302195823338586887893406325039160321196155386057935114524869590215117388904382426283571381914379728802816281949941447571595527072112490588039835458372374209756848899867601582812338353408067944895344962734634593332379776284307380062016063918655190703030578342696054564470813850240884153867497751572667153467146881605996195937026138589151554235331993454999961800219845334821311530630900930940098177219444379996167228203922856517027943709945491184927648510220019535824654466957513936741088670286379061392089578379336375402110467224390156045158767746272339011773946237749871036633037745152167564649075804501824253048950701517835022906741839714599562767090841881472684207739712242901370149073021346472382425671572614222994575794415241760387865274674242114016106358704726074499601925832531569002719402264068478144685943405916210676147664459483349275643189143656615659802283626660250936445431248961862976928395348754655779933036431619116132770693024008623995917676477181499815084852501933264656522778245932758436626141627844680010732984851746555143199656143603387585419912775054641990720096727951256483919619519753422535253893968030636389992640711790286979909344777097702594290651980108580653561077088662737077230258447485521958631630120728934303313969671237146234540136656084509240006878894715650702612761807452045822439200329302386428649007545474470810402766156251578359010807986353776341559503947875627387081539721541935086943763076791545974750899826410503236541476580149173129326571831160041979475008785592065074906595088416856616115086939705833601605342953437777742957812718612405711763012677215632131532188403665860364083193786935887917165022065736958191457038290478125104318005456209801726949548209535742446071638597105529420005584015312035198217441976567615053715512477234435652377193521345098077772273379057538859205549256552218388117488242779368821026824018514745717145683994944511193509676719457674226780113081497564526431553548665036850150179508560199025920754976027801833668265548212284479159904081835720661572950443281957654699213573442722549865707223308054168291272439664545639751197336766752316411422108651633811090053429537419907326792295512551221600640310491612489926840163669179675633330395276052224231521750085207589436413849111318220673973502734909596526049097375779993752444362034671969271499288785464465716331037688547971226374176639374383285361779829373948652868685055079082418405691984409534540846829631251244446308107581056265679459389696602914725272610752043082370121031509128544027585850569679497252484042049869933277586075890618829671173412229125667572209540181685837268749204302640202161820289599630601680589989663764960349514188723859550750789675938796213323723171392840743213800134006624383232054203687573497897864318577061915795918139714035542293173519977001016476417151227207802090859580610638119875357169075044470262706817791133489998189084319840359783745394162803678395309283486580695807294307236428237734024588969323958111904991426394777704158647184378230608372831378181517706351714335464976308367058984106269422626144440698916748132885852551054409135498677469960277011535606892679628474820453004383591166108751479896443938022598112814579929604560815154780420003576205930790462484780505918720996433145771521979490821015580637219553613016744824036910923389887000669776224972735522583426741635865061198004078442686633899695501878038995683529408496810493520054544733362338014290148745513521701889701125534066406195834487161926119446058125781229658580875451077729412506930453897504760201510298245934280173914278047851781678458704799960078350740024977059872290681743915122649646971502875474183665965561865478653642858495179258175100527853204940793089171985946215322988265677984776523197783565241904404534307848512124354127545829315404699206835989425276356014343424486363826981630347975867276610418418126030835916071760182158662031737116970364894990630124217571715302727342851396250503597475856286512694350114014528182775171439689444645215503094289947946820483378581929049170519795220222102910894203713903453091503769998313907801848284609197818127373830393114239995106462436756337177721036432238612148680489748970024355725924910645320273672291923721976573829546222925500925713908048243369919319445970922380269775042056277116302889395422955597458796690268328324581259379784836301233234438844990552604909457514756648205225182548832608575102236417807706029833209660404228831298584029668673366695642775196594432780956116343462868483161573338232799172170023465331709779049913546126907367002743228068801454085916022412764505666753858400598439136165810012198650843830239425298357537716727482807874234650458319455039885099502909606461193300220878375583991902107562473117046153311499025888989208428356383949963046641078662532563148902636888452194214921009459004097723987484830644441429079400191077034984107168994947962644782018416863069917653230283566066899630475148784355614448213767286995802591535910836739432043330086764654911139952333029284543192335794673360092981128111263669117927441387986925195936571127697639370608164433775837743623741164357030405420592300117565854427609823211964899655910308556050741784516333267803925384639834695283323028065932622581859772830307637240555994323946566497401611811381586025400486208972056435719082470137353336205966690031134913952640963174741319060263275123029834198639898313086682174941533138919861149723316219061044443301670555553872755774768854316288517742175344413570018298817253163152277076217501399028734311400845126605849998808082688717314273063665576152886626012416602911202336224084454333766437993623446472960860152101781991755059486330652159845744536509101129982255332526425507278925146549699140268358323826011112987147333109711101459082335700958561385361433601219372484987991022013977609058582902282762825170416165563448796790081744583957281514570270682387193078807767928206864280945864469330742157237721867117167683158960863769446686373278621776906595933173661546240228716358166279746868287429589538405718442940750921241023720344128193605566838924108450459839535948754273125534246750806958662906514649955196291548678633700148537543884801300983102125336772198936813721783983503647847677572374721638143431096966481758769042241594640811255805746497253792944323328970001872975508204756227624628588355432958378655313886442425286727430503618937410110260747227184888107816485500645218306050551153896427845630856060802447496260151083371622364699008836813476262890815811038590019339919283683528966457790397250212007454646695979100023741044265100056229349929346167129236531159622528577336020661692975882219183833582680728942739062023838631669837545858848697723014005111208291278001867161163122946605371992060639465673315418352106265749610305572203235930165960109244446554845281779356502088756774345946175504775189782439856662246714584531329332772599649497812958164136379575515729659771487436903347426861986679649243378393270259110907525128268535789556555391644104190147284874810414275338390008832031673019551306985596255231228524636266515777237499328803443318682626768472352339085105506672625498539207944699796590026653777490644413450809878991721117754532895040945689060486914852389778380849919528350208429469504221359552282563474558646554134740155821973523444503310411919723697370515015591762195177750820216323536264001667269256371360360277092375944832914551886716832596495528134756844037138754520914424189088478282475920047319312837445436880978185190009470410154510043684484671048798864761491371424707961247484891455273962349826395264911450177225404609326120683731196450181640102564883894292931019069988311268470031435737050712436422448295933880665943964750005370295766415733860503519404720113404444222696186483096249462670733867641499646993423216916315811206262224055088615082986008865469551472335880001273366938047488529998580266218412967955311198313153374976736009755891836202680641757533670342882483665123611551139364591020296030607775090197000419666299380665530755734665998105933773207318216198832272426723046712360853447700028975923367939673858030036295553480054226430966627836851508701306103065752415703294498163664080258574517691757298796890712503407800029051562535937207750103968945175975102177906873499558936684351508889809779056523201252116862683323020804581687598861568668021596082392199829399190423646792885768493390123508587140485131297926498637103242807615341154997928269052178975422310125525597589853761169634443403685367263100626763468764531085062767280534941083330238745601769436525039220022406456283492371573483259630940792362292553070394038460541387980066342177908559476615238552388346103990486379109272822237608765996601442074965120973282045930025650065451291345315533230584383145149762511303195938984853255159022150151093994621689107231221672195555957562590704540546597034541097106488230969306513834976117480787131217320741614591760947952836084221303750118067926321843226189106705376031175354745242533726648820857919282408193909134675636604550926354934710457878324478997473909137842871445267342049061668517766481744788666700788951934397922520923097456249998794094334487322971704101930758426790966816596031205719336891516674738694043861255757303916603241197468327068560757071472890286899701816671291917139048955150289955659327258755671798146378095015286471953903350388822619804927674598381391855340646688371994400037808449930499145666154508853708591401620867281500717277960383583291651221354991361487437687682851480388064631010001654654066170424424686873321517670973218817650370210395179259643526135677454467263677320117185256778066100032029792839662940839399726804051940807123166864907070999477022928683392045134727559187943918503259686780062025301872760500979275937415937685635712262686715523478973562349676388154172103973467981983461157242245858642526605568813433258988461218486625595793459310374560341026613837007796701492590569256848557144686473546736762949566370089967309013089011521441161297355480178704375395749746192806047494943420166437194057405145969526939025659169119916841138293216542560598923417748409094806278358989256106836466291715327104637129061690354440391069467278812801958656713226049868428921813416190259710242041394837394558175832439655261996058354822640580615375436076887255754828238553223338452438568363797174361842600192025306685092628291411172205759395138880994430696900741793299482089525914867937636422535575485605546604379762854314884823190690485725651427837334623701774429945229755393374549544815795258877304131910478366527283968814319827038733184794571432545031475664183928645593764702500183872758309879268631600725129769350216667724785281423263968606747418980124263501803033412802057834496385936571777701480763284736883240873297649573219765583026328265932016595382904579410042952695767937364904706515365817972543322506238115684067587811778247583891505084988247258728853528942648680572272409483640375025638987265891731932027446056975865403563896178980587671071443841243004234516085780379116455137259700487909829469618536145786376147143897563912184659554306089814221967688471737881808050276406271292316199541280135643358853820405024329920240431761554154646934459664513778449428102308156272658056093129755926318158546533469994116506101758879493302748432625412438716765675904768305687230748151827772743224898978985348713058596363205654674530936604695300910199584539924858081220369453189831750362192533018766131434456772499532374144253450212373768361245789207701247024323871855192540456181732129506835199584579653882631481336184188320855407349245747153358568521952972830908159426360090476113353638623988063038514888828616662612979773370088019333459982891558406506005940965092844999289529302222491033596625876553702293233917646597284639676093352347941172415166387273324918704684414903921104712297320077348584388104662681505411961038468645481990682146503210386262678372620335051408831031297204132130150954856275966293378761384312181916760324850343197871968539906068141535651938286725153355321355838599981315724055930251659816469831429859772489708105465426171416567090632092216721042034451918360952251200762875137402153308625186847500914133321933298605109099586540354019803965183372577850591106393405613937281231461295068318003507624198823921679964609626517561089329476644627113712390692846258298926996692001098281872641379150531358952345601725866026498786727148390873667754238853551977199752311291494843066775666623647995751950502749120018803638402741753094065219229518617863589150836830389955843608918373353245852832474345726157390607269368173734446416905563693976308347845263503248571176723969908597226292746289322400238202240547558663770515628949829768716594414344926566170802272230969841426661259621243219614918686555166281630512423388972833964559282482094866882060125595927827866006581501184484524675414061362396632027089811139544433526554109276434879239713609785020794733551832945456821692905468930054441697856971976841897802115201399730828410032333484860709666107786720258123293780585950000100512413132165313058896678145017953164930975614255255848747001152336951205204241202619185343101278369895131083270303256682264330262361852516452194879905744202084267699239944282003996894000237009942092516367624338564270526930101146026785149570219723950154550142041305094200180289093730580195431198256352815084520905161300423520009129660348147481233571812091560011652800133352464904261744052001081861801607842620923002513705646771910319441516384538351780909081209652519483933956381347541613779618714033511753789378836056874918925336262307770754037569112727148670965990169064998535006115042920778215578799573239252419506123753362717745416909276407642023139746878018129641370479403358180696425536127566424668454152410770307926291335790112900716960332688156869672123860368848344585594222534716750379681229098053058082797370316202923722879659698698973005716523932469011476338629789539472447183931199983681172344635065572728966672577232200347278711545556975927871744922865349886795812442720972146181640584880790665066158834837066578372986690946580962688229971934758165894840182791704228956862054818504697284460178544802946926564073938187077503186459168929794660303525443491331716329106550549402247631530997991032676968739867465417902891095596289135195320286627004987310049612619161366132367792353226538699920157263233503388092289388347519461327963782966195689633724136472661804021449929376928631637371952491833308530257124697787048583325053418040751440413756585354209800356189748901058637948945784722541646824402719416041679725277838492538590746856621340912181803653421563629325860416224355827362841603892428598096775156322303102476780312080821664757133827080872659448594427060513782517904274637000443614012844566925179305724380645055018590561598944402039882153014317497631431248338258197613508460808660167805338445354010324664252138795926602912285630998978193833736194274110009388947585759962708251900036024243069028334840534789729318687193361479473694427653007352184065110716478723284063899493384313986547946366360975451690550765833563991756667906728871934037086163515998345778000634818381531921135832005186625736439205138421977940083727254015375782866944068139735543698322775258053652638323256984598606745584116679352714169513113769131161008592128804079228422505086367013944259867478310648309508497132463641950687663912509722115171417690877718238505974272519917709188252711633893688757290701323355693701443409763782924355910629205716281561366124743047479648048902140931799749326726148761508684900160354697458851909356523177377427355291570873083427425336972303176836863708301926557285326681933391952444413280713185853578754564734688976857733818657149030382316529356109626119189561391534030080330803924140917263982063653659963697355119560137499073955175778274706202183324261963432774951066154547999011085037367910831106052194156983837375362485852538403121935348160793711963572067921191741578512342999652660003880498853122265673655936158261779801029442841144822429770408846220845021957523651903950900017582212398787533603613940714009139411299932528775152693672558931119395985722740765087067353618447370210649835473490886430987605541118226702701566611382030637694725475854543810090398275820360898263987212706391258432098061766630976538729967281481589388834832648360493798188537836376939387802342701261911340777830115971856061113572383114606245933180572266543903635658638006496187519823428624090149411745004972963170483597501170324780929694660122993741665587106243608166502786398018037841904196738021470013050283269540497222722615187293095886947521533302927253217994902318286375010790736707649727832127888095771640937071090196291749814626942966969512404710548189626277120385099529814121258122711075733466535210463358066179289022756090275486509960962199474489562087805450477481952817962077828896346344330266214778075467784759548360030707532937287904678397078810044241607489256436133518291753346833121720726407094767592630427639103684512553320295528218820747908151234816850236368712067005666792925241395449440045445769444763339084809024331168379464531821081705901682715701401693791832713072291002674462646222231435172917805084126190456223637326978763486385055976830244700866587932386573726588756214006437544272543646805015424562932405265563693594429187218294815164147469801557174933979311033369856893320282352644722596804366834823155669210425943488065322791677163537398692887267699931926813846704465814894959631714729185791125765704204886759597752027774566257616499624343216967371924965701804334122593784555889469666565385241773842959076100893298516640041623643395223132073844289637143009022719605770417636529349111683922531809045705080286767258628328399771723865874475129609834128008873532546199993244118354042115234516527768512412370800221232208605930450930854740132211177366924855517402706119659676811722909743722192109363945631524928731379070588470866412206018676064404758603013284282382606267939184583544297706219135143268678125641477751678206916984516453335101276088637125102983688172935073484594359537669625033684808988232226544924549855359748918960915750081367076868962289529384923054695287284260925252779624169758896950511047147034365947587331233076969887428022338990077818169815266600802706977591347583169077642303427889601078238734515665613889857254673641703507619983862382582100205325774490577925729806156479432774580949565765246712509687055972700377754486200408019572397255683866545089429292267694714284379777403837393988208703309873196772900521773118341967787942895338978159412183712979321790359981245170244086675517112759760061002431725797144779883566703564777452458709513635588472626543252437926775010776080843511643683648853182193369977774539978278905105104815928734167777600649516875726746148209010242186649261266758123924237675158043077217155407952124165281841511036078185697038486424644136406568002622642311596980635694611432776550684668113838946351395457432657017943194474121396729680702423400810918010364452724910563919774327558292851346270404378848628435676906077183161217641903757235618346190230621371857327045053859301566291465062894659339242915986288444284665946547004874700692432382488945755747041541245219297681596065898533609838035917497011232230618909022873091230089386573753034694056877415164881560433497434126342052328459892402777838572513810285212722416689182149422756382240241405459273657801939074042574516252603126380450948874524971206140639193955686700985948938799960772079164379984250386089649432861272106588987580076107766581456265442211702439110197290154914540865216094719692155783938592616745166632803789572294407782316276454183390567189287163457914122703885496104344633096192370121289000016838936793293122820446560639575081671884865877020017664376547214208845931705896177936926223774727033644297555654952219027465320102523868626250932916771554710445183317869843176687506240832759218209370059184923781772709465901292585468431533635886730344253317929461449857580413006223606540235783043395360653551075382859851890792529948043267431859069360783602820917263914401438353379564099477308243460943749101403229465772799330619647165862636745659504704306518580481516145869949296819544173884369548456780805961185097684574413528927450874343003285381438848536357028620998832392832766090160530963482654148956933424693973474432127301704354425829961822338148218170760150268382791521966919865133647447621068192527756330386669109627368723549530647046537949567899888600325698605491780103397658483501692857987635131914827267549916474636624855140999707984619727045842864044685465503429613276960775720305388141693335601488583272207953928122728893797083432147818947446615658108527518622981608455981241142493252056999812836351523167215856606055180520495327039617696351667344947581166484214130031992859908203744233946143543807848158196572820620703155874173081578561017641857848532567225912999192407566240480438605165055398789468575223221034684095169271797449858899646514014842357286648491784909684293775101242846232916689056238025406131855857968442178312334723105660660708446318142054080131610341746285706495699293623641969157955980468960695092440159153411446484545803968536612883192449555251881036798453346535536345047844254146904946382291044795083386887220829392084231814414897608035331163780312379974380262403284020219546386316610189268609453094099338409242634756951813056587662213618968939652227654358050702824136774664526666303706278979308728734979644039276697857103169808727437310661528506424017472923550942658737549082793199747291823072718069405656322642016902471079625076835842383910108275689108199553907009085639393977993027814659913126051866329823607413890734716592139326047552591157472053561937811666724895413670326167977029162966429285986251027905309441166344589570745438909876285937571989733443468639550513501452732013385282818556128909554363623004380770562417888513895469702197040973566125546289760111525399419413515751256533377909761089482624162391452322646618469935539141155001420927587590999218120429174662273385565052840584474970430568947577832042620462686211975016482628078784625868814710118591956001424720747554604685883091383412562803139524476618713698889957164620677657939728916883873055036499587891308309350511473113352147552415062571389631101020710546981880533922809426823224661549706679429178597349413468356976842799100283185084370088984537360186717353591065414282511862285876259565537368968962459078924293064318657982170519818052593344490498492682493747430671378442255152379823575702588546799108886408851786392735442188048794946228644280035989504539703886193347919597205788472502411078757963279111042665343496435880557392828925433575551563076157962206875149145986086925995734518556813909644727665152569740731787016353431510017501233558755652644029832270764898916128608217125912030556162615998230216886734437578826538627495177683282851483014706536317270268467778183664572593648676996514424752892347768393017331128390178936970221833638843352214736015519461027947785739849002693344698027207497795488627259617648579295939090622559083432172507251931866252878170570990530416787810881684577435026525332052765709115127864118369281536432965742192978437131986884379984656703470774500846202697317352343966358992950932130582962146664105124714183278836029558035721382936040792560280103794709641379256201858847176300512677080412778048893763620777752282938577490906188050335143586938983326800904800815674879564987633989364692588151140342962421413190872441464052427725030036842575822311555808108490997193688749974048153969838287634460277139657135295610726580933250130537177999166589074329256072429852184160236251779819440770241898265318941928608244144972064914436687771371037852111254650476530916256966607350439133302291707084220409930577545857242852522853768148097658474529820607150514339111159304745964513991244232786146016667227886412818615805985773880003503196464208796381956358976216040698291174704113032779081032576667199937126546377591699553856117632823154400177288597411920287660187798654481480153981652287553065793787514339803375042862739857688068803193849454594777427905050704498119413577727904533395848787967059366451565290508030271539422555356571022399055767298530597491791381760347033631048268963909996803994216897853761883609623922357794196065352206609687671699894827306817404246951495687776170466597478367293818450719373977854532121317641748279183795117684411014180704767789435895729522626822261333925458550561311257307259796184702186631127660600349318211523109247655119564807855742595923499924551883777607685869502509435169036329864233228255454572738132324083337289913473017848955497832727426933558072064736942547106666826189901233866827069554959713663989291366179093341410316536579276171877239478190211738620252577697921568318428142102448689210102868454551217369310391417586961892465500725655625824320814891303439427921995720585957855869543654972060873022456725796746826981156305576056980930727978249446829254351521455262484892631761038716386563519439955775412034123741391285586885712061716095400786816218859878921402839858658264443120683913596926327158020424322901983157022457094661629594011303240584598088805536862102581830836391856648005459590515157780411740855625615339502541178042365598410069514068466864684724426695386915978495509507753715089034941062133086554365481476940285085345231809872586088314602797535999628741834039875986918950727599916125041501067350012636876381827255198772431682994092899678738183093724131840778941339904021754998811332286244900738737305570667422344267293354498582093039805292576741354192858380847808716590932804829760677371157355888254876931434409004044333707710064359542455651761261001606336500327509658605564480910906791249342424505656410150678470401978166404972470405601321243494651054133696932794811327175436907420698507033286233720323499311807238661653676174166420253951453913512612032013525899704495493263856380428267043273790538115247928143874764367095072315724871511255359213487368878316439571384637601088297673201542698768649017453867306797081727315343795382214804427876072130666972232192767383200319187757865627650502622153696182436101402655027385881488924474712148286349007747208539435999981388134768315901209301324742672496061715345868843060822592111182914653272435962615368556200014459753201664834444919836112225099673514648218458149530316289127622512407819074117672677447125525594479033591498111070318566281759732634509291046723345084290117338027054308348214606333634319427068922175726301281752790378347882172738723756575998344427563959279819272478332558919159434125062445312368413347531477950046340906095684577750284137455762933068040420258799286467346363090821802241672136645638293159239577856105111959935636047468464208591081547262358064944284384748949834838333591974914933699534456060834441876509060758106379305801564991514978997652181186627004143093988071926439272577512380465615466538284504560695632210305273901388479540809880640168502128169444331745161480252990040203959371306162027950520633739493093364192627557336062784428275181197499422120687946278195160107587905144721165343362007496891179561325124400125220956043975311798599754219151036358470264493893591892760947082174939932783915287488686004046385491408971729316981549295916161813511173690055510926083720373497051857113598152943432837500749475003701878653176198467832037742566461917400316572458490459254141106742607806213430585144983148745176169132870273174485130985876820436603378879878386660719402655166784220212254711603169428369033052946196955082549703388687442215233103444962717204267999800700212875865087850003455704850731617990695305356785815775448055558370287588569233428719849326875409507302619976715112779356908629713162923398216579340402602046680399036177978710320190466897744059619372429588064193578659389100305085024373020736163540813907024529693967243135472961354599254455266771308207299379271806461159361374430326348947969793151183918323846024688086738843673055110785921331009515779771134453489762685930599859126191796524460351817012873185162750493818250306123258861651442961371398325770814475464768319907428065331986536942926339084555907450603305589118527071527595516050219889279338158417259182633494921738346656086853723935341510516386120380630896178896919212589018176219146367793614568567270310219571455781690095692276195162041670328534167402773684913436353381220009143180951700016268703309310408483529319526058473281243605777631332270767072508050102646342765072902786046976544791337684560098723212169716625672950762540348294470330978753031536569232003037009197589576679192626252342035865441358824701431350640426572005799643344150861854533865862981160358037928937650521649244357554326211571945446094225175370333341311030263723882041284664939127345907340990456871449385597359855757828572342672876765737914618063371239370359866940447519378324275096552060433169239638305816399288119948869331254447840559792319245514494104583175607262182592834195814754297920681607813563881457854600874646948488326926189694931389610568320846422201841204828125400718953537922434861356773484320554162247381186612686195214315885691649051907534768541028054367617274312940647343379313555352336197426743036870062846550634710061749033493507698425026877070514144031681356956074054635633913215217042148628921043110107834813437391123254439104582785255028691589448575635954023963100088882332760815410322926421118150434319224812061170747970622978300939454762837615632293327639962296643803171131693526033915445630605945726149407272458678865499679081963113227429530771239733057256402355617914050766277920058179007376816947527275030809485758426529092499709290824954767294369275242124996244709025393270975918387556062294976602534669877885002290103722049601910621596469075589545463908925527224700358284735640578148655765815051080016704971955985649747426776804105543782040643324457205223800396838430020497387191543598809298037640144891433195386016322192565682118620300114153252433544105199445006498513847439175349347084372099050851816397088583633145956373122018464253818223846041787317799593771281757769575871468160714268455263912696146658000432817079805308400242307960662276678033687930098910822403318522071800800394654073648819354473169388456996654418964848894124227448444435358301658564183396699745965081168783178148535516276313488018478729853649454314755564750854211739721034502013377834768926633576597965406446184784378187558752220156633417555703931355528743897753867244051982592222751810520233721842266076162500257662346370627300978670565134221492844893840177541289232410293129735490695577917037268869398277301056908343917373304430296124722330617718956259624264979538364769237028589694922819108522938455977293793462517232010368809942243498179310081029413122882551746769051104873903418872887150392189310660130798807082966099228560426895953116738095379483120057956361654715436323943158721938641074065338186110291802164598982861684254041001769110020058123968298192808694563056143583727141821952836636260803306646496459809983650752882636365784705012110097963763889056501913326798003239965013157433773175979689613017106042113070791391130187625724095644857349500011678129950314061424205988697331256050662224349024996718186152622795934694762667411790219427537776094744106300897097232557862807944059456785541084376162690009777587196416414836750756867175419514133434620544534786946960940723247788962880109039005326701512991539882125973200143608782005892004983913105997348717488049370086295938138015813180042410022439397159617012517174467672764863805528517485486492510591464047628092269448152684896058838922683327532211860615225478304641778451287893516857734320522599932495533604763165105765251351116499835789332035324767307611112462226928839005536624332389015612874110839687992152198893221654795888297314081819945517562113496855372069442328714982049456650356761954652954699758558835781613077438224734570968085416126253994757156192918123819136832418352474511713657698555210538765006361662752473785312882330990973593415287272459364507395443928390517994695104845272840127824403975833647734196180793488373641407236419145601005141126388694658247353421803640494527880512454600597404248763699800687290604350887217307541228533153542182890523122436569637390018292573699822913249055986206471120978510842345941128212616942228429559906001055297851595676968979462596203456001177180447908338743964544169105059196265092142915231632296584365996317896268689313884826455474578572208900159243506000202334121828891857782726668143794766567412990069619588118041545982286993070641189284499259025225615536544219092496152419615910193507723977787211879537416833159520272419147410312322899086389669803094032987726214569770738196926964416406705610984731630182880435733082970497016381638035701165725343885851398089443274350661623156616516287320921826375625535613522538737167271336794983139345179856107667462326733587416711534417199468371062408911542932727845192187212958890034916338066204342339344150007555170076985475702541947628657762053367581838024196034574804909740592184259981940882768948933097725205003037175330892490580896846541144798550167360245369955705572618939593556143980893956758441330647491567863919133563128810359119802806322087310259813876733944193559380427121461371556679058865293280932376083645736094176810198326527843821105150436209050597549702297836760915236011685358315136766334003705009720851601680886509069518297795474908860810595580983782969296782127958501178053316233717577117802837346021133939937105930375530326321301613131709015767636621849374104382320779181176538864650064337107841178045581945814436967317527974572783993837281675102131049644577332477358857167030184399122920741661974349965808686184034871414795705586053520292702093706463229173726185945338605296390160716813201644240213102147867873794243416329061663605954568273939758100374579907225526268483333106368151991114653233040125453136316042112750256521046657698986851022038760582312526251457297728614170254963829368050336193283531742186637391196335555672978279255276578125200844522339339024478134499876161140919071084666401807886677041230800666739669497161838294772459657868129300055116967821161401151072226180854427271513149811677557484726420565769885668738556730168828888576825588579188544884654571991959938174475662337932225687242448536163209520238032690187965948364587624248321645096011208085017171793929092148213275314786817579923830769610782100938389638495160199863683168168201792263256186529575867821577337505298850563735326047231867566309572761064451974148252734498352105058944968429853607487823928110837148412387563233107621655354390891276775809730699105655782373856568173937568536371214175325945327903830398469230562897378867645369945751798846204414249181233569001405997852583509741962644438296236097932860783501006881690480693456407935683973450635811624335060224403883087773323838442145606625871804270338104305092380770322235642390793950032385882041817123569869974946305298106858127209039530583091215632342969009433342321512521012409007482265348492779185815491774371737700985426016640718418401144601385959368424480091650699882301411340856935422556147920586330817392620975403334261984914448937617965489821277347633984469677251370043742740131035967384482086841481795923031137673556836193339008796351771214840583102704429221500043057356397914416094624660895912899479994116588353416594544626138061387564718492222992741869937694229967498755149165249525920621604683254626249214484904358565969573862010892392853039156911164537028281264119141694203436894177623931458814888707836612953792289624913708393261574525190344050517081428663855236262125797731767354038322748631892412723604569013077825645285456260455789226390056076638092898364539090225018809504706899306676355788782279942397500888785684500392939460879849718931002672003567403033068886147300387498213812827426573985734147295060547091100979102508910497202448798327208805872799588933533013653268286700212719345128333520349855148087850921826339036608133703397642433469572439671678876713875956930073498220040758758865685285033112850128605072142050814887618918167379062523843485062602576161423337372887267530382966159193917112202210020483396829287009726949012958421849297519699618281339230529146641627585132493856088593998609194873267747843980591961381371752783092434984794006217255649439346648860545472914860459543516802402981250367566488404018585602074420917344893122239810397048750556721165347462677490667240505388279945723541212864798828065626439502285487934632281090359834968767594810615070414981081689994585903068733632611640359830939313366120180008102648382429652524763634375635096038391034791867496405726394042377839001387245797998586690451569187562929594007231428126518450659534408188192786327323336467738599879100893012599369286361692545570046749592958260440666927592006005214784284867114042768519909141617000197887839016392082580224209553392889307000582784069338461487509721160389529331574750701246712665042837637238857091380630498471171775112912272746332161847402691144841129455127020845313235408361110240363567369927269796603796957820078985042293398975043156500815153924569956028466643226305988827671840305317050011898497910375558243704775973811003314023879293691878873320446634796843507698260077438901276357191093251818287509813225798310843274463813749787050364739775300350469118401545587137701992691924638055206233372662137373295063030654570850722095229993683859293478841108520306701655212576978299903942751539032936083569373186072717198749920817750051135765896972629778116969846719162294069016811378745176048932534732538213090301929220645685928134841239936925088109909141776608976638875087425110267725027331277239412944825527159015190961448127792058445867728210231278163978741497490828593919758168992043800334996052866799941372208014530993478324043449290240086427023658388691226104742354182165185382540993014933870840257831959424046263564847904238408074424713120542907927462095958040221898029471257692547351372707754838554182168386001405693459470194034694349250399496594934937996804991313387414715858972755290022835030641142325499791380331429177142449938944712561895123024281191621077345857318353709127317709272482381150688300010913377022643285287858917571489234742582406236606722482396254607313845069741779587099045473982370779741205324753118122220848445355007566355044654370197892965197491843435974247692962613560205915847766294454160667324210209172761768684638435892253840121346947138541022890285951390087384616477097989034521802173958459178807886192072008436533695329002951984967355041185693306104207381745327342258302655730298168935076435386500787035575933750562995873347366813504487635924987665086435903864555191864172884579632554585700974659832597190495070033274602218685595021390711267185958908938929920078102442124318036037092686855906223050181119745151493111509000252025701213666806798769282752902773672871051750768400148456892277062414573000761031550721935510151172336362384241419422487523516450809600413682909222314819362718352657225042245421798981498786571358544513006223622414884995909861558517724194719261959889029924197745895022868759689182373831007427188453768498679552767988528083016281897039990549107757928013371233731334618723206730904698882012443053249335107557574966079922980346163589362648102144998812025110689412240509243220990635694453698998819804227496799936472845410046896218846069856260131740379056085485466963809693034720447163044305694359628684138011947624239914555966416885093110711320593749801635551425253392013080767571189729130036197015631064123701096605951337431194422438273269983005799071906813539474930160920836239846634682148360954820834318323664044303277706604840324058529842928286813157485240992233251873578145361647501997308253807588073657324410585703218329252223673712459471873217762794440018811981130501821927904775336862957198373543731668089877047284209096927776411309212769037233782841823357468501531729286660530873717445961028289821271826794845999953060986844888802229085908698938406908988263989119279684503824752627870722252051760731109478604788467214374599207860773608877995507609814833815226638231887160339901704773833053488383736468825179590887481211740109719431063056261662894434030153311714450120541337601165511757403871617163387464495604128616800854008759299061580263103451572004470121262630846020921151439022159948725009040042854589221879723341423099665516553212438820679447738235650333288057204658618795773541480560693185304784529274823908485479919175773365093853920263833003171567993747852835273796799805166931332983648037230208992105035455831070096397744634559581172638582880660051126241039216773415355149797839296154711945784675442097002690000588362315369437735367051720458773120625684444017371106093628809514196149146020557325908082338443018096601758762571950721719756213544451031759865453053374509736035031989358070371970485851086151824666675667443426887801775924519479399081906299545286655248156058325994048805688218357443721915777705296264598152403595930647707793973492081239306156741769000375902725690241478561612048373945792068827031963032233447262714909970447579312635145083797970261142316956356589459307742793821286302307751203823365378093059232287419476758565262527526958025311431879111666054022904923648890368121585927206179457223191019850483430210845995687644213829323737522821139645127943939231756080640678024258578370990001838135559861461857397919095082776512325398195284269742133397068361624761841743550411488527821404849438996193203975570462748241760137902313491550676459912070989513072134507292139966413707485735409928598500699149843991401705255145857033308556348598159126393316859832972820004304604040374467275393428014378312095061728855626342544113503957344434156185669999163837314733901443064512758359659747001274639434293717565040035992533943687141127770576637258836581949585447707664063666504712715546624662574764335784659595620481698691067437556583205392026308698524948463708754107423752744755437236244712687275827363149411083842930117068713254615130848234168492247113144869247197148905751111423725968538450703302990489578672211081800697491130268674027466745504045908978704201453925208975678637114694787677868658178253194753178036104348874922197511561689423876034580687577609847344251928721655488201246545330774546890486565550644909337239151550824060094748184414728308248885022032209451085163110641031601315956507616119516559156753741658706174661987761813893647031444610757499855701676139641742997547579591352602752326381561926810294511321580919190983392319800722581771241653730491141363331359110911778570612896024253456466116689875239460646349867649626092431147048566421664379897776657742264176747371881742270588965863616736997157006785740484560633593871248287522466383331581998883681608960956224869346639268383370386131294978217833454115779138569169526102087587353553817758488020079558814326578837025443716839862976632215296979582662695632163260763863001661190197349106164565899086893264539530283549384245016062821125116437025297469502184425713561969550415637928835794893196414913853797425595703838256849572540905593078382556926276337146565074752279803847503230337998081663228761764479370297020841249863913450280589308170479130957191025012737593535320968604893815129507243617678185605866485248501957626568046072033076382400958422060422941080381017414038854323533152068477372523987249397431991731494759730714475374204666963684187025914984511392329616736746608708094771288010942925449341981409806077016771531695097386705423944234721748959661451448942922738310381416563364965017661675953500365882176632348797914525382291088156551181275840038581228190506850247043228095029731829394585106866301217933886872105351206090137184715390124285877198887612482939608889759152599389524880935466667912296983432041265428566740206121950365163493812647013821909589125540213759836366694069808272048131683905999669963195861468611467077343005512859172786495578253070287070542416994861763093502601963445902131021162747612894214284292257841133583268007147005950828093979636955636087327622161717524497774250800390619022149278233324006477742648943910610009980620346882970896021339098790408809313331231428709601318658789462428137790558009667289192512062330431287269630107951044405916980017753593129741038980013681208909841536397152289653426840733680810865517783473921237894821474164895247988668231629900237896117293307735485066537211268175220991141415877005701917334380021887165407725126888372827770722181919446397277222734245916807401935726467918290243895064114893201230954851270818796327758820198903440027668485574681746088999185213482053845670367928286228468094100716458549234783464976698556877205852198339481317223845014473880480796514791783023531777310282560913132153741727198731271948746327863570982725385324453381044464635937491364635694933775124693800056841102858686322594280788654388939694174208187434534283564729609632205593231855227562496114700336784990309964324532030416923172962156045914876902409757833820413965333455051089537351452855179744191697998282732202797615663978418081744739738493469903003617065621120070220997267742753810419676144095629739349916925310503527379215244978297378386398512323645968374240147654032646237791193839896648574549496045832974473502726717535807630894038546301101435909295464886075905705086802626711465139098242010910503483955174633669678428290779193342119097464006257503944358441619011639583005447428012286934761893862492289974719629588290784670737644574966241524562735118969600906852310134763586472297997844353065459087992017336759910636245079609607221150129784669165844397931698994872723479248646641847039605246481064049166508328836598993938688814182623411743762343619392410592072932153600172096386965194176177138878829358810043673044728367054146229559537490524365400810758781200155238863138881406737322068534206177141618576572391597957519383603601516443296895715788548357706649941479800867862496803872864213016891622454005079106117827605127774884741390193627751101326560064008616546192018095221069817741886329389585895775295348635426626892473186493164310587797618232463539665372041956328463372512385090302594216001061245942597076972589033641739874739768981039512335420542568979188999519460381945286162164166563936889986623225832990115904262876666421155758057285005615352339358721175559820550578732930748357995423482628113033172237270778149472009286100914763474244643058421834888316964169275316263597986816962355726003756856320377984585894069289153239236276304885339950505318447185824159153753541186448097875544240576247063161998701675938390360217695679395156977860713733844917210078776124136398722972558994790941376281871027153503341659447220243457027559618688814253747157723805250663130246860499929739280098464505371539375795751843346833391529676908847246075638819052484973410090462717606488533005871311033260174153745277404782944583831262195508076434604792244179464140968966127224181003708055475416255670632169039212537340071114253716412211172331936939399215570659488275360723438493335671042497077364446351005975127529764016569437505905350687171891770052624824060524390976385363796715793236119905389144411931173051230177182208566278437242372302948864518722557573661237273163376668690675898285830398005572539912783737755802643100960339414645986870661647058561864646856588591060839795265995149917580789027182741565998213039591523125641489910836084308353472897454534367189455289613107356782891746350791025061641586120152919201710249305682172653128646403820395683422003880194346455175017462669564466734027496848809942204285201506834673887929159198882974266043252053353184653919619748677713723402791877077093357947126854259385546310789841791361745830762294758587926727889574522439345664329633392729077773879341959390147499143250351177900997828039478792719403153752245675005854198033603179771262471824081466104900178757495856836214953438909487262121543665709115347314844725268272035872090027437879850414651012232602358325779472465282402217627662989339608503883623241282057051307612888360823989059130714631136055505432353746192852398623988127635645567532352681165841694975011902978587904109530417496033857184486823555934375419490695206988618929824728143469819027299467927177141340518853631379371955028591245899768564521817451432180903293171196284522078198860332284943603495455522802788299041783357290900167717690925004768890362733317652639969022017429786231809606636410005916863478681368950714479763939785865760994788671535040879983425713130377372858236798682112531197351300429623364859811513432328919274180269686261996154005113330745997854439651922339390439643544145826902298124718560787893601319925193944080733677326570761949566855486570939962896829497140037248370144120005419113479063054575508078922942127578337085303051717800924779053641087941793548256378584354527534227114573159589032657041905863695065403412851227923731410044806431582027336992733531053205700414687389269949303264425622408774416465762342127247809016178086942804836681302448330994437090595813412224514423464020815796775359821630444514839160479259390150614856200849089243194207939446023308043330568585101231612274644227097683482963070571141103637776047657915037177142607601425826084696808355547747303802727717241022113365500519118490869416757278364155113357899940640785795538730729978349876727191141593607299022957811939895054777998158529274718180098900852681651122563099409174034190586997748758724114670472643821443339769322662626004426054270159764693371903395289458282025464947234831712478991198153787467858768892401114409612906291902704320055977847122887266185466652027790650832167901810547440982583614047329333992747927507030705848170654367444744900441707179781351086402031078154923173233004894604810747388218181219233161099913150531340660077763688870309413384208790199945940187542124030326084954942784280829682315408792173740907940993069237916569211489284340281464097856771621469264762400862093546306964457186360082119543623080677073317741014609721012124243373263803619939174842705736830576536244903973296663588096711276472654897689785020562026996512408891158043320361479410231570036603922780233690471692643654218921619503303851594896116192964737530248191075460005738097632085523586259701986718140928816391976189454892339465198284762906170661097847869830550577764092264585767395605541141908751815685578090072250315976909168066210230464532870941850717372630201238806764108747065787538711327717939029804934025612037513098748150223332689709807931337537460951857604155259728522779906010943144308079342575403102236139775772860882833831033827689888014693794960789050382141446259701023480487593924134325862977310486632589799272532252534549419090521687832028873855738313688614632342134145964203543186148470436601129740864472493394596071290926533992151907912004015999185099689819968252834252367498496472064051800722140996453659742408399836940961944584142142909096130483741853625227970542910320109598965340343689586428839147046921543158888871337422001974471355306806872920188577373385722081550155700470153887671432291238837020582268652102455917717063643809423104713618770215954984882310952674706861804380772953979980594783936907377282428129314067723218852240260853902531543058148163532388543370681797802233670261033912334530835562743708721980052337920205257238039662982801201778439882195925998670557077805129160156358160251151367564094387388323093942375339500970042117803057294521222311935720324164638087426933988195904449729328257239337481232988475553557565554918270819720068620209334895690503428510282769802513169753447607773435315185041888844091940962745954341314289696255800978516007928420629241612281916119557992037095679080346015649520752384814632888131563516481107838386611880363864943994507449991151879330575336737049827644777666595785167807740882242047456779452474992131379890017911823888150414355559422173578647389871939861324413341981340427787610480917516847865141414726113768646474639582056871751145133630975023241849948887692696609989917038872575597938240900685711346170251010527968979952163572500087837457589886275151698642228886676706893106245499921547654667599937224680903344960946897645172492896255476218523676154613744079525062999929023023351071950585577170244311740686307550522283330423658086013343934446574249719524691275595789081682987718811115233639065235602579980251048310817334989137452599022631572139858443149140003100527459145001586607912326069929852765922887613477755787123402370820987620350324645416052691415598401184569372065689919102202570848654535488541554110559626408831807990325833435747442735974630589856441803044171439911216904883443768972199030203495585869495322736394566548854320283921731761949929278266410946624541263621318177036691297771072018379054331109629627924038843647576340499108109563426556932370877135308440568042949153038214890578606887739436601661193064576436445044569489345330443709830480012261628415725151116164837310742808925503365105342285356541202301299273558046866242490806234026155829127336282876233052204547443652457808887824393935129265084780330993857990432017765530399326262178797919660704144836055542572049676405879830209169889899694375811228960822910965040640057023765773091200289525862251985230459772616264784205256012020117608897266271927710202927445870558984177903557672918337756638338978928733755754564852480091377399809918478175128542452702932926271155656880590715548820871337185937616623593774834576414983007561483825135704264958965537061721283475654776582124776669490060258949973333797623805136608595189046555658589202858096440385180243721595169900958358177428826253909612343505792494430574855376897268436665700144131143615892913144257492200897680124039805950149249713698141015260920709617565350986293252406817158463694509380439598363681929119210580197695866074328635871109147127662505846393903365648847162257837928030840435711411085169229301748173966064080323937124585221019418682113605440844565705991275579636471036738647656468949524764222400959084700014709883946130794735727922686642551078011565236857386533747936626107674479675598000230718049284779198623965395965858423853167504620559339248259006084213875277226814555502387431382338447555365296081017122125731769068062899313874560190168781940755377639566651813365460423854449289933732408025121202384997118620407061551202089047712529371401545292860722149441895993312287293324838957727774558541955953728264573647657096417123586812785771703875029556981237296248141869746554319073950232704412857214949511440316855652374355608557742993640205571670491541984862926601831310071272237412132896923640120138376091914396591499274470683247400958130484139791029726173990884514675519161426167210513472296902599562406795393123910681876639726756711387513978419729149393185164917026782955433365102901309111100906943118468090024787259766923121368040484894459847386084055894854411976996149009053903267529442677258183813132017177536270915741268812668838384875962373788405130659579496276462408325618906090550840728576688705200930820675768555313942930913312845533472316359401237427314847005456555194985392295400947799838236537309425591913015299521762470457057268244918669940501485199690155112732825561031002873903090615852957596590027083426775161273985630385363325243987800606914980706260310627785690181656131881358206118965430847707503887472315550024168526093329470598274212162654056568243770579387193938443450446784882402948285649924849654240254188477582243465839346915301396201677104969779902545598111154918992579466968856811140794737497414254608385036330260009570613836386493077742028681537166672270629895412616843987288343793527937162424702846138356955057181229992217284005780558984742016162153775910109156873950223068686102077850147515485127960092588487267043548540732568685832502325353285023177917752243328992353244598300905317068802532803004059111435013446229380936316127028070026592070121156636564941288447225483234853179972236358692242192662172623122244009803378317603080097253006341256296599329696867354227875904473087321022922324226201410389736593603531467483240586335706387971255008978956233556428216969983734883781400370012297442542534915169881893225650519238736538103797399767035989185252687345578240899946924948233252830093607318042233842093524498987169057742811457336909783650012699337656191546413726309052922827209926528289657326668736211906045975822036013177671504265674534813294966401395354693119972555592514708234090006025750504120940418077372967808125872293352659938453771937827701723009698024620536608074372656873680586423237300183470653747648983780714536453296905771979114106738496320513448182525004141454654201584281828561047581319112425443230318538035140643708804539472303917551548565796737713082145452223288153332253736681776683234819850115007960595447204342389296745772089863970155075300002109559223191385478911120432561166954968663862961807463240129538155244560210392204136081001972604423673776983319995603006938303981339177376591283866274097221689286569536808001687831981323957300396153042615954583323348610783367456234058553099891073842989629942922462572127704368073104539299121256184597797049323846067369569798582187179034978198173299218441731119732802852451187871920670826460451943905637606730183226447626505898828741798936239984842377147474819684513544577233955013790526777747986453088933842569081697783205992743065510511757715224440163140421003783271182513240991523510647435423396109138613695975757674887921577809286477665456645092015475186185775584273616756970570324251048408934927725892944053902859458041320484750735128728159066556014239239554154621704116619437814432069173833198611631472601129638002721696175637082508548189159229309395960583453726256727019568081177070455054609586783239692042880293354146450678845753566835265607954490142437976157621632999362491274159475395701101312232611181820182780452545092216102729945785442375569917671133063497708690556859847329131547947283951385620452168482634897615471670978434888450354103542354754718445629177383643121812058451638774976105290982294429381495343250426811423373385204951085094741429748492393218252631695691733479520425557806867998157194680047833251469910659307495361841230833453253898782095558214732219237247409703296479347241815363201345301962255031774755782710338294445658591181911376665253950619644712184749652224320746054275352639743856282429069369172690524394792422880693031786154194394532417475483233167562313964123356235448422164826556091028377288282227074277185635526276519608902783872399503754731862459831472509252015141779533636033359561313924613221666579457011715250168720467075342717259911734679204527211374731949653996102447412998491113286234742830972019910025282301244857063918190394856418260743156072788529175370768624398966881481770569832862339057059177778281231222183796750138686908893262292453208690371882552076013327707760370576425708157739785605288493026266704214622535360669309569358724704149672047939477285169738206731094170116533308848228475414088548023700906749487139104575812276993787520755705755302350100906709095929126858817319227144059393715576811248046105184925902190784854041466303368444907312217109839188237201967772659947149817548727962707535560759621103147056225428700919020804016117689019808775167668258217968582776581086104134822612383953453486757243106816253776488066213176545980551109344229214494662756703871049828177267556162442702835516230412878388291327578551701967344100895132563021649980764785393574076827230502980807012584076479528921371826585696528534123943765650023670950598369761761731983478247795461770280916991225984778302351835747554776972065383029677905579805211172354461937911450402906218441641792891793610662249261856038602799041556850207668406606335777579849090743230148849217439722871307304856428890486329913348627441569371628161343906745707691081052159771972604687368408327636795152382097882367358579067538995168366881987916812361243712409068251684829924480646202135942280463124411584256383557382550270951255451435184182554146149606691026957879546436428561981155778503494031256121538964452426701971988952115186920785643102063184395283571805720337750039646788522501348032127373943911279686033857045125034219783562795406715750486518487940030931157054518139027454927859528009670250623402058619366018874243896263509652324742357119879995138770569632854610555880223472072835127940269824204457971195475108756641517383583140738112839690192677129303198837771795052878170791674756207125931848634742983427683721623209081817461785433382402783556757032685355555927043395264455094058051253224251863024740046683620590639945612615963477127507436836566939155046568538314859699810590250937278283071554402220325972833749687685721953350193852608617371507602967273282687988833029291445143307575842124405343464238885183337152375535884804864759370796348952291017302853069523577262689448509013634091474250912533385286374933568858241486417790644607521830870342268659446767315290311214781747587954969594910130393715755597561280851630114427320535601685077661027640744086955945013724276183917828563228105086242910576702317496491603514794723674836733022246487318465004870780039916783623424718563294928027991399500261358904610661025863713666696602681285220071028924493340550012712879256467850538945508353434539931283897455522128855807821974387250220992501855452302493652379598850616958792699696103961447197647467310671379488725510894389804490208894063970495135933190187527432653085015579975132614537448102793455016352037683758668936890612351187621175001991654695911760985033618520991161658226650743571870944175985436648941688933373176019342675727808836666012354783061145150592819626917686538829839903704116806762177919680389002243856644436854406293798802221753839748514184180170980211751962735882953751896755607644901265512623641982778653641250600525751771564039114381131241348302076789731781173772056181528078705365175660261056168055234158794295368531712822478067431364029644009876744038572289700152386720107317418100293554352398858609996866644866945110100589790285906862771889019500723111480559509665264442908931951149582696298236707318162708454921798873196731445038975234152546516265990677656469760038898778146841604214711248570412213798748965307915005144882686120237915315657299707032982240985607948707172648103746158243437669512792493220449366725505189801747929147150699849203126397055981914090489714923384897395091548755138592757584495356461786350466664089338930173552209104822226089008309231813065626410685451300978218939441162791407446950838112672360743802565771066010282795238815121994708568482591193724903584329093510336355027634386787931854815423996530597571307567473879881156144649546640488401284535753560020045184637949353912936877255908993930533675261950572149636307247550882059710654470314031605523914611335023278274016579100889688463165086672597602573456838352898889675721947589215035378655638627761522415247633891285321042933619519713541870817653537278979614982939623031223032653758524761237526237830796044606586499459997335170894106859086747202738559820160624926038027260164953716405743997562302591311791765876220412502286730547838964633668164956896871476836050790407870464613565110818505221519423065208775510289402844100179507329430734316870855402455751186029078888295484336194918065369558385043623290043729952257441386240821792410546135987641825812963316053547770301539371856312054027557443349090556573570269557277575050202145165762953587821317444661885701948026217137278209823186969460988402988102650756794196369612663287242258738565286869839590289393781157185035880370125471806659670867417357128563946732596399785391157685534948399086112290942090719550763810749535476972998114913600290764817130602107499853043451936030885208183480375428514013323192365013454259539327907838889731223929820682927677359290627282434256704217445956519302295974538471023889969581268596760281935775985526045330019351875672137416407435018174957497521454169198477402192545489188637344232835868262167988292260526654725292781179370252264489615275570092140227922345156779099861834790711354797789559221485249154781417537279593086153431601698045348163261976904477251086359188903665531428094310485777105884216108273378839433740687327058788181233926957777390218354584700513548935374682562750711538074060126852794985290106166963235403276663672290941892776325298411901825700441027539692037147193330122797626915438300455430553687813167231805160728498051238725596795536278768686505736087624087579249574896764156414142180542448482073202756877267620488799494262239450341959429694429425660970608897536983742733798257603681106573353246114091534903744485605774182479160878284448544183338317732451913694848475843183456340917341552853508413430360446398210110501928769525181920371628662456858165816819601193644422788437152226836660885158984146847483719090793108105868569971686469888936349822669170597529920009700435367517455041634418367566444784134947362617858271342621161175893979595241131373877208025840290518484807149735415818667478722451345872395371653798483110224745685746810828156829609335095678414275054419899509106005247933471383783390316008387946145411865738748368072519342023312982615020798308773813590814443725914912455584843881469586786519123167235084257825735931484944934378332026419681900557973581862613898722775074243589114358844239300081882967586510355158684044912023853665559737527522719791491648925433259343368768579074301497671178719233905113645145860419274122833527724198895439134273884876103738157344423226521988921531576999625960304735925157866043812353807905322345539893210709407002096086750764728676715307952918764300230834118747943088356778260216755668296573663148153622197610769948946816106576340513019812337154164392461493965727986485661759967118754185693561284195364988240849736410149875687097412895075107014066937233042881754551215185807820316031453461783046625752920104704060686376838894773694578312477290698360508201460606605780378011172155239757301470890964558430742213371459478504421310398280881498203772566812678414461119599224568127797765024792482919505522446365122949833327605706767763235201470922586769678091094122720494466528958852775414914464828827019145193508700292796712835879662903454314956485047112554899879638674464232798220499061226125109781474640511897009104834845042123748052981276327304349573169856099055821436699059632806267095422517741631332133866456603279113746091030810986773128213660605988578334529431403177645200768222976970979197561574788586570104613484690832984007958510623481150021431619596971411775284359972831205361923027000930583877776358181006674124507444831395298555879873193065112252251201852781847407841888849642344231961190594422920208567650655459394214660741716001139910550554718739897082067696158168218877097394400728714608438268816696236045239658109702144607209059180103702210910065606448294092665142901673583453985114611601028114143121207514883731054186216429900549643270699279077361872965662077530968474133086319488236586393939916932730980622472183870227581610208061715652121673920702536395017673885948971712512691966026827997489566059056518601730201419498032114282686449365718184709880765620747843583000021194845958529009673792021802001703366477108217980420427176857418404911089858126330100029389074373020215630310594359485290087639647428397968908215744780404396153448674540869149389558118311473504521459766411329708042303070079383026959886821092125670447720212989843340811518751203903670193238403487929905035015856591922865475577782918791937682209091594906074562110056153313223608709164573261439614000647172456360146490290709188147083486265018973899550389644150898018290147294099286323450753641934590051406333692284350133951799338520180384890193008149203884456179533214638989039142331933610568566903422575483238214966446850743148417982392040868620734057564042054987932037599926577866974092866603950625107222515175316117241108878924580678314844850640035656152319038266132524213974515273580583926536298657999207497294635847503855188670353020504149795748697900412705916736280184024884478271496129120300051374662050158358931999989341310109946552079892863829390104723232260731531142602429242163418912427183279956635762499782132516104549042833089529129408758621229985815153606275372667328065683379961362534608497636382311388891049917761234183720255533757357653538530312416431123695302630059463784733775772091006057250418298666276133976265995819018766368022328183840281909702071202302198091129050678037141025837483587098642573271994356871224359030377107160279038976113623232192784793511647180242260234900942748477516548005200491679304309544938412638187903065441383558287754805484678356486903051416241564559174835523069355912134302813381826757521127088673365976465357301642939415627649040743837500755859245490320716457054284454898048705670539390635749402160991202852258389452059978876535121589375663526646957588668204851633365299058292899493645252665295222643940693828114037848160536107275319931889097735930972312087783389018888986955157732428363970348482067652966839197023835755107922337120961535854992924604716856707248943783922898771249629794737863478160103868194641387562208174607741843545634557315796790059523470964827662217755042528368196298170853065734013423671003103502529295345832037213078168166542587500075976381625253632421643527553581751062748170935388604659165722914292947644053479095252808140243747945948437794972639451076967690414538156044735707355223030484438921480529384102357269697095773981349270612623221398225206187591925565842111004697749408757749828528598320497189904352365929744876066441480035031390517587379334415799863822069632165885678315507093156179858356670667849217172137037749952730131544507772772295643201135134512416570002236721547081371384591813112473423619024216851116144289660084126045512996850645063438471551187174359471386358298767052011682925325083631319782287091159720473840618815568570547283508999967814705893500939883043613293694886269435647380490959364003306912865272436984014924969977789629921090529656540036811741530303298428393277182438916577582061256559975170246808891772001034071415213367414516007996011496771602511968630421539690132037872785384952450621215060363591741357761632173546998895697452410300216175452347744170729196199513005123084511808793898447442073868801489671170695697227138336906984964915057728580559113851746788741360649274156606939950704144100401149718497478132094093774426891024181565151514298352659981329947767450274511257278301990882202082941502125729346521570112327816343232767460660361285481540008385868917155565433925406910005247424380632037657131256918525072139768360241908309373691325827545303974627472651801570841998468447627537161167698744255790908238094288375531936072969381398956695039594609865579125297287502529045325514868646818782070045790555727790474089484995142810969087626393115549651291567224661441696424482515844871343307526774153264748165213954564948069729483070036516161757724857053624079710757769118805505859081161400315208069102869615893029745449568905965829220429973946925953156150199165177248359919446523355038083920793010310078010725448268685935759865010967936792829235937191336258555196849441999762819426503883523013444844085397486425353998256863943975541631967996155504558314789347143052850386399168342181791511365865621478135690853439694687760079124908346860101127432069022630051812751159113236238749629824416032078851111349626353563928810630237576341959756323865876947365789201011480036845274586846686420861453435154475392508183236992498593843822322864959200527728738645766290278865744857052048409744158081282219173039903140811893965540669954092650965432433953431412896277788482301437683030487054531365696548372672862252380765073754069620788139532458215681683155599266057400373587998999158655573706672451204931231892403339285901656384106207611560432464992926707608763952769217674758543188457001077846429395779673803643170444696649485465226890112778652389228863765894803391640959668469260241357244199798826095526157301755724014092059428889338971560552108865861985378213065210157104310696284448414075784076902966837418243898465785416256517431511791346267769361578228894328923718520811005823795933315226533979678346167933137406392209643319122574342850825392606277285280999666569308684979207509552913938595158548866690887223080891452265681901107242477999102683126629244604277043973243081868014161959198512507089739759436684217941816045352139687736845869583677589027494124348350545270229537069950171130581849288317083495283568537396913418984782075443777510026515475631101214841604519024292611010998263228457238969587642062471350353810341902402127589166426431332235046070471132149259299756448173822733873595319119649943260397901546012105674127273647863377242767539827902886250595780780929216830636395031430446002735314495752533166062553502498143336805582434866269858384706615267737235888615300011464867078754454754209616631748576234875329247648086991429286310238482260115865051285987798482597005312091945372099189883188302090755129267343545883494964402759242904879841023333141860031293529289017084026849798180773918829679521207592987823696952816690319462536521048711528630483368936025156092240090324927466935909417947140559490615449352669879226960792661217096881661151484804001751373582458985341786805716127838130562722798730294525383142831410921523402147989298651961620967499498640520913374353178502426814135524783917470691573058887864916942084156113745878697490860436951523258968616924624480423370208170532341419284577772247424877008346245153510584934997946593065308320928330804499118053813253221021871954590578414060140329434274393063031585615089614595736631378133111814424938475930104457250484995285310417307743099811762471853690043768003688882519407727963996585923480935623883642199674992823866064478396676869375221471185275997041748033582401977144239823011926875726540333261003640701623806905719988153027000453202881987290669182141470145576566417273351405226317044803130198765829520642722133106117615637032489181168837442928053837914598896284429260102038316794282452200774432099628892164124226168504440722298322936471210111185743275544072475740184321522351488845866871150298202033617290740809704725043019266435320962194704980164073176854445943834562568846177064377804927588328261544903370743892517138732015405471728381725742516915214656715871233935663202821628731951442707010060432427197776345470003776171845889396942760099747310135725942173210606451934627001858481358167392637837212754236909655160295951155244698871655808164917526922110092374173057893853462408662175200973365194706460435981985009579489463972671289554034758629993736305819382993590211580661650840780761003901425775730277355439223945703863109345658093042840977565923620705636317379599123824090290171026900078900924799047097519804024269154096351314882438631165169580055665150486309147196713849414770425902580277617926985626805191458471483919220951300388114976293017870668987359571539316369841167577294871143276988205749110294545003443707536383037606954730914227136523812668856925252456008515150215118475779859358280462936760154181699006537075977239930801715709908304668911358523959559317043474341421374755206784365005672260751619651356131354995824716894807687904476115773389485986134290096248450360868422050099345053744508035248100707168573881222349558693481067379780468040502718852982679149851090421755156586206243315586872982005041424189656591705384144465605738779597236734776228632238942833896671451789434582517227415984197728629123530924909428411827537450179551263484127928252281343130792219039417367721300840872482154221776753174890214227847655501924319247198489055146292490889206963102116765331107055500050517110226316644757089063612327743725264982940508949536402299145489905183168768254960645340359048057670417746791480893385269043740308987350125513077803483715653409663493028773768869450890697208450519310794695619174146004488488688953890234308061712339641613753860146755945984932879765122537362984423828689047364527841085105149491783118659007295956635743872458847657885733954668706849710650121500966702606154597819318981258999179412219263834871694828639259996474468605511339124114542094624595469600560870053440234862822980374856305076843585543976640166279586591779938996586814673610905336291068207306166011480788393158739426797356389066221345581784230156646574906350557665496506943927353042884445591059792141150559747917776293739969114146690653372150197451547752561276313028452681738057213278080284893557879375962493411204229405729625979009369616392969064562637374414692591032999338657247904159904803395718542520891346599609942893749886180832095621962935209779196930292230543603818228289524030792801187314834725622138851512671231422735055168283088004505924050208407726767500671619386209128877640200806430446371474796604766905057237325399425274430696207543200135507068109372293099889119644472665503449785907115071039797232981053402582279733553695166475821218942449808370876160911511147044135366180022022683506699255088199431626948380450191318140498681641238875158167837111004504968748882296370304394546008843896485866656963686050513255906950830811408763335782302819936179063372313840508461141571129274727934094753404992651522393689541319853584662598255458190254626548110631132300324896686469869893702070796065069702029487061707061929505973525329070352437063715074522284252735249058688591131309971489348199434310019340655884290277956593519689823594284222499302760091013699328973955850826879417742415119502164502326782102791810055526981983996066715422040802816805194620707686921078787380289338757576374727028069786576865834178916072843121695433931351447845384284699259092069997034479540174299962727642971099474657137787790886121147734646817932993178003651478007452321244554796717542560292384896634361910456172403330719414301305359222525386326310009422833467768695114405595378399529680590740250141185775390026796344081001791020739097716887726100344446936432118659918357737089940645422350514435386402696970714071759369957403417244454708729628033889077334133951845511693907644408340674753562410165019669126871344640591289593671396859041241042181877250828428477579404425074316214458585378778056523983288953428272372917751049247715708471130885672035847016804906213496590212503038902685044284743469859346944425545692660801690019763878017894825569917706549691781950531623605528951582022721762937815916194045358131041034011403735825251947557410876037794159431013502278078334530656284311085544700538844006022644774945756546639978319340892095010286404324499096298544621313309890550216961476696962452568702431265121788645304873219333616848647861207387315875645575641800142602409514853459280566984620795067726982915824998122212374239574412698064331901448629382497076006954941210806535553201475003765197067191565783387650725970109486831358711149707221343476749825433386061828988119912102260342258717226208108330372958451896360798176804117983321973601460964187723429833537644283995861121339878086183550204290001884304859531993706913262696442681184330733833704152988024311881609175913345815601687120174031067731109120860840186840037266302410481221737533859608189750057570321182417999657841585171674926493040230510303501099100241432588927492186498584525274289999949751731706139383801623569456584078325458786555708540795316865606732038941905539835581659155960226448086314845123600155146846843332696898821442351734881236320438779556200455142133317931234754240550846909179721969138695574631202173360000638940710999493593005147174060669584611404259897164978058255314185961864663784446222671744460252658076417679854526600854368734139016512686387093740137642215446004413923673882139645686165501592615466173366161982974013477892084737071405169054410160582774193979055264856661886741052091062791598627935681836212993158181203130886755004054181234457287966938480611110292394859671680359320183977982745216205442014044173334746379919817722619055397296790404175358282237587908094158665742195770393574466824023007762580618930668354370394527503130030020476540737284733981464029698608401480500874543907374791124981052263575205140537366575652464997295437368993351637239677262210652742250089283379617357134438997139079461743219453822280546131232258130923987258903795456159863018917768257378406578375149145494110941037420313112845013739142037081368459092557744572327474061109061812659688179971777758756075045591763018549883922210188180583412998730686981578992347677696632382705351934366516587957737614351981832235192019151603836018357482032363493924586035801493587014847508726949289323022818652037973192358618767717689520986921338199960594726535990499785399654268390261070355699981124283492064331078800230217816014160263441929232056137233828389899041773338134011816671202216586299125356614279755387855631707438372021622188900736628104402811117386889934623499334693329941763493649155837672764955737061428537800798436716820003599898538825681819179766686322299154603504532640643639184198679005238840110045917118623512003511007667971864274816727295217654329678744948588250296481886626782673690278174503733157135202319782310889154526228808277199581748980375304772272544258171829949579253652085616525426990408761941082209690260854726294366995561286668384576699026176048658542174071286529786499983710866790171566542312265878746620665790195245748097479239912727430845106539846618569097623491105681648018390863150083957834147438419736029531426803926388523330566527406736665855401246060146501374305766714875896564387636397008855481469942046169129973381625539053398359843969852290805983448877084621086150321676369786243118755925516279227215880698336495632191433751838125662637792817524681454924631607469881649569560420183456251491135432087356223216890727784095711948431368515594227398720645745178797941224558209624617999605433112619342675578107959482233778562951567168236104167458724451947446788621108615109662202942717127965768983685523051607601149515896109844614305144573054613972171450117231396329446879554180762056666905655394209199050466667192237177822007519808963586049521374134544585794672506994109409715876539882130788145314082740815644014402996737360757790839085000521743197231932550631294737362347813329442846155824387658427152965847785906838095188269477318654135620580695304058790642432117916966688980647269626275513668177511970805267517381764217498063395884337502241880305758557352098847319608011816494630561366994372320101142527958462788877981891922039652612375396279305388869498030809416336934545087943926599042950893504079066376430770517784117737917333031773599509328340673442577137954971481047464997738825933109908421134551944712183306586730670744306731150646643179558852051373980096975236985896737699743521167662045440355995435110469113109881272640674043974897260833965237687972191049693543112228560038386069774286249267433005369365734003225425384731793263670931139575939548096519606223380418902461134041291923986696830253034177228518934255150445421957261835357895740704879484828031424523329783481751621692759606242008913153417166209864608015678447214787200817699889573652512006900102023560699108432787329428004621572643127366290144574380131167035440300831796311502556534754678769279844599733718751570968964003384197492953362210861170907377111323441760738240391131739370245957619574437406402745643607538105739665426561053512466870219352998054855796054011139128136573092153070027288849576614524273690886930156453573519252989067348541903767280041653861735858410800993462772688317702709171337746431318022559442833965317704094642342172630941138889470047282480519776965668232195723697038779271836753322523187430129561182487256628970451394735459530202566762710006258923115767501094742704362101288739607811489152382016412996146703413357945732319533667631533866466777869999200214208149640517201329565034235710452446461697354071158436684925581854607010307190033871259888380151208457751993172975577385453872373145268398748567548260764669088429010109105673121333914414113715854093831460258060829448392596250495174708917382209103522210587894144782685180554120080352474910040842650932911996055894242587359202066716447731522984923054606199982140023197261356950724040876159947365142933841764251053200466506667417302364494363029419696750867958649949402247810578913564306935867661467832583732058171044506699392772605791973889919044561811455216718865831730856466736777243360253789744334207182664901727702209108806070578507234323688363500037126716522407175529945776942798031680190134794971805186246765844132789880982285352066319718696820823934778863015995261039015662081730548891661165648064067527455811641932613217075667691837614633843962208605264236896973847384996230044504397423114622063669485655006396387235758458971878236242151952817525909974674246465127995636013649382007348620038075014116313294929631477671865831078524625465823619646285628534415471913463094376723927470157075758936252123597649766677967881169252694422420715703768202167072330504402799688052159809050416874639552300612845551619697146446801253811880241101486288894579595836683025678623222231979362914660386313360408889129751111398461256606463695758591829520836713405873334992228252297908745058806659904796334146468381611981848005766722325029578889802298926561671128388858865061117832849106405471015696358783748323496022845746226418015551651853927752379322074469715710494260514758836710806412293377736435150030941807245782017634345417598784934914820835923297466388662697634078072106543509197498784285143871757284926178060255742931853659332448402188650022195461853439893421756617373123864751074803169143045503339547307222804821143170898225013183788873935747907787754761196179541965779078231115393467502698664182962731497580309061436937526318564842085904277389815973842028094863814999762485258012789191304332482794275092526907469212630470179917073690477990834809125526940078051476983814305386816813870197279725050562075804619312110436765035059545892642562768694000366949712990666069579304120924887504552432995410936300738072292556472657510124525254043528822380149599816312178415464968668507481817921155618325655782816352946375184132217830152850985596510103303590311787987219440152034251022404573776017341383580197384487489806509055863437320494782411143368133167984605004760037317007224961273323863331449335818561367608747406971494279297954223504929064841874488854417870801008982955175428358746194093478398265084903231156404613860960863775988663727878562565038579746102089815510528398297099276982945902757142537883729344888940632293544251780397680790147324345046509165373669042132089769546517715686248592023872796326164738083275056870681676544843774359669786322820123670143621756258076172568219260038656882238688588832906783376702555742672097368566065850677440323470134638258094181414807407818987064966814399440410191249060453083799129054683663800197785220337191765865425154140949556811225841315581749456668530413244513648340505080601752279510756836357067374912651636105776038867699867944469169044867196030389075647919420299852768372340150300079853330315600872627337613875131331112045108239391684459838567611587922817450113080571738353036013443708049223281149322146458619265030780825540920649238606408489271720886065787141774956450280204025891141825432610474373988034612040692971522955689020753260695791153529771311462929904372534323584794818070881313426103724990161688961224791653859081130685657301610829295773801460288270002091663444908979141713646679264961137096018238881906103621557294526168884161088035150417414723760835963137168084734243342676754804839245742734389581382831505043574129923302922811445085398827953711840067852338491068086827598566408993543013245596333125705664591360894697013449455650533962934027130346308734916629068335992492185135137621011130966136870850342527851185201178989411726656912601086274723637663939666770772846541621471918179637101164092272802066260772900697165523927978214834950300662243427528879692627415468727760853985294893280576635616911442285810443324263977820242902029904538604370416373377665779317745597873640935455208585385673920288789367383764298787227929301425416883007768677307702633152638629152333952972618648277512576767759131118320602237856962774277800897707158776538975613567984589908700101414082378739013458031859215594382940626079810024864493645770303142538441691712638898352783773070809705916042266201273000479139301886706623176959000491219472704957146727019415772197751756966817554775389690108389348213717597243475758480635430578321292264342632862690912434267575426790781682600122262437191092403648705694281268589128841422135071432112912042654593617807731334563608904463150606671828330280747634734283423338626847519186346614150602071394635869979016644527708471599273722134068995887155506270479501808143149958174290154427937467131716368361846265934593549479983586218868471774324978734960740587891261729503732237798231930943540941123775727290093765724621229302118355693916556658642422106234912683770707924547908409419098900138179457046095933285805313983080164260647916152740264477805434202499868296340958673198067714358884393149380394139922716418431809698639758208563546052808109394727296402184469437821351309100052546871399507677279443291368681206937088686966366431301209572743812214054869012913418239273588054310481969797420483840430031677063702528809743337152663183432102058508680888244120418069277225949010418657298149734208732928312272368647892955050559476673589404495926965776106003263286609636033782547493030314542841082195689561159151512453100819658504858722892151884679231109059433143012938462027126928682623979783759781350490786604769773472925628767354847534752323676225456116457675067963677922153581809672412744979798395010044507332530688495959961172814108860059379510856606768324354580753274011517724999365657361648502689089331128817165994334297891674098746621258680163948323367813998639122215395309711698888389234102723535117680558054892411838931773044940944727400839541813745656392552618478956777201333470928474991364797544936878729792796416054259406274172757658461572820564460684076910466301247631342762311333451673275139598876258880162294331809704506239807132243134288791441214695025239088004509081391814910353950764584357867376028945816226553264815786081300347125029155679456802808543496305349792875329932697888684722491149219184989075020892461456448922485987852930485915010546966208537284371337330934088209438158121807170719201622546433790995560008263404215450024655415573814340724958759037461825158053307481674679276165188293676493070557032747937796717046390014409350845893954107896890121750789494894367514468502205707244660575531724247960457426641039603280920308366795251775077479345986483575848922148943642147951221304210214379426552772145220174737273369234907316290962008771452234351998100239120159149327875428489135523047626401163518041597345220521658724081670463728218398339068285058635763263448885315156785144234037434331368892143795717138807606909287384074946156407488901388580999642497482921581920588567420185709916010146148680111009127186566083945199996045984719846603182148003065181380480500750389538664357088216017257429474798938744819338294024664990362109687969053259264142046435814524934498629659003563691416256357775298113647088933108384830497199301816301124673048018582619141274241855421480311553773169772732649681665757912613217823048403121872918115247657635897676668694413315730741854956262669744854987451091585133753634526176434312575881939629929467067287049019042961147393873571747513227465067221151296171386169763198702006215781503397653674883039549567763629998043210324563220418105598865379661630564070336115844419906812863422300735218092690444924989409257855968280100513784462858441483997674951781412487464553915803260087722219962681710445092702352267915437603958783361584081866343145745028693946437287787309902043488574690504653871797088890296019543427558739880149498225470542119837719037815977661657620079758173859143752814167278882951224254776353952879662736770618405210437172722136799283931093640702924890241150727127710973099017549027071455144909422731586884711836188301627963422323674983136137261748261032712026805033777796260118472264196205031587637749775094556871866531977558273657382800804164145081508045751213919496354258525309196581267271806276875506528661008521906226120665947535137695854497596952679875085211089585229818163813118130433797410778288411831224777657769088362704081858145659154583395608212497558768790535097063894486134362089598992178443645659143984736016725437204251595720574881257060986821720278592451967953916560829070178755083378743712334951479321710514109147183500952483901749702660274149255213373659249979503284785758138205587684918226055948609404942758146566513565023074901798825165902466571715816723237106862181211951035999493921481482198975370335303057014337303452155111160087035208863950815076600357425872528681037016847573912152400661373985003569063460847516043429515858243262379010184163256705185828325732056446155124953276920185607633014299004676068758228763828120169216286162533371449128389925009450410745428485063532437120792724623268576186895869312127779269142798347536079695136439636120379866175102631779525504587550702840808164288091887701969569002969395901527884693922376152861029687324052973481983237438360066456744976433564166430631346067923016939870974270784254500320788123143139991082931619155576494397438827123468518058830830662651039189510458524615369941440235863429389598996637226709283667111164129364086795505263604083204833505564223131831975617381735350538513291985101007824955487877316983549257740882966030885064791698129262372766922138459864279665357273371630403757800771012059545979960840767899746462715678747063384190245155371169003727750781654189944229129246892997720611745071050871578070768701917970488113608191800974579624909929880930217033815575241469190396841748719651568749027351169553494490521895772796742044080715080275032970208958519329740701257705767343396248412190833467454235539630533418816297414170235201044748621683544989337808542424991963091253993722884364867569081925768747004619642973444230924991943884209274900474939863099081014343989188573150478551307431191121254769314902339662648232985247407433672233656261449359588684526338622534101328710209378230722450532805058709083933760527242973703756724478241601699770477055878512184410022146047710346668657430851685300062989860864784030703403605348748206446210185391703377486106654876011633989723480378907143141614054594034486466619317399355893211875093435623394552071203305830896482073215443658154725680576340112869026312389508584876081499048530679966490728100458770929980413445074682380154402262124418446747828570959808496261742369435105572902896499922171484410814524116199025332134370718546535931627148655525639307450769318478083995118296767408761022064380090777755565195725427224913080150578502015935019813955674522926568988221665077390792786219263554796192601606185394783058213636951118151651773441080159266660834558998405241162580942783779377403831107731183323178266478555587888596010782084666322529333272583259256662399266190613380839383809255894545645763746380493632226673893181162253972323004993034770924519149675279602280514307574710608837066124269327030414181805857727473443096258073617453207555448351566706628026083038045619565293937051499420488572461079089207565442940760238272050839374305038317604541687488677388085706164072402614171152998645495863864598044273431777050795224993853434088977287841172752046141437878862923645075319852186111658338978922025364179067839807179823870853294075055513932872284018509483980949487868186369941835167466034201471653590688352794146306426033803718739636548805244580863452048084325462571734165210844111423992680388652042482761119236360622598062744513006618467082115103444299763803029011308299660178280643388079227305272619424310884185024236520162668115472334828102340698216680111376856241044024011511713477389533364228104576807477639261046154668179686521916412356683154277835463916683833852500822824537182212028906287401809610620929250623688548264281322249880572931157205004452716755103995367345961651384347333984485544120160317025949214082034507165468475128567453511133205401025266452125259165484908302116065119152280461637171304209464503953081732972416391320053085345371252464819139154565370373865096861912882771833235137153165275571076923842080680972797117811689078667909130075353138542403693434695719739210038669192425659910713744706182762382972515366971456123096020384265960466307832015534735025972037232326622475577639264487628876455267864103860138873512348643069652733656999419208277166749276219513358888736688083587079456312395713831367200949559134016293357260146561138173422323483280766863459875749699301233501153596215297603804943131288385950202354065463229833105665731495067543397233715529044421143973271614807499901136777423204468597051003562808958869572706397265377427141869362835897028067522889072067322677410327429718877797336352748583321951656568642921938970902779596322414441767703647517051056703156091649219297457051144490232804043516119771208382878490907661965659792094201178825649187738946603869542116050591244754994792154815014258158496076024851855820133448400173414424915284407677524743324559672800538945359619793852194483080070749910862080415547167463212323846527012804733937802160271414152692685945774241945906028089108013194662611499416858003790000693371763238532842484339895952818280788266037650331246048784273929569098354576273756012345565632160713725009454661148030867661402128465394456881247791291391721583126435785652221426677440795855275742296844390618946619454074823381236230671060002743871814828309756137972552881223635167540320911921955650624948163967082290535689451621270909650734559745163149735782181857929564650894800440716362555621185939537702546477193481820095730122652124916752830449497897044096556538614519296385829814287960766229786639571645169887595190070886450392413622518612379031899564940662697991559261734379309960070601720177720383317517448616075383677194241137968555221192321315108853081954192429994033049927320080433564087831313435827768927075902977507995839876275862546233557914347905891631428621340770620752176530405245834930750987226871919149906356637364227238444406687294357003850912468419143615683127881077950673539251223377300860259395629367479233803302302077675361084377848594105479756953568257783131075030995234253256841912013219955430292754199052160750827149973483740031815632056904639262904921364894970954253898182096595157503441775591614137377757162488972183447314505758706883102089146434338901501211142710189950548376338008791012470208377812888460392122170113764145421501815142334227221666087777115940874096419518933892807502551202750359486929039195896004732068380499347061498589829277927503881286323967675090236473721777735941696352937251948469585525842313762148784923674344955068325610197961010491894904566465289852297844799695215893234755464555130660664987722053719627726154048124870507142720709949307992589716370742222647264247703564882115882011262292245252225466293521716093353498706706401540439671242700657853268307453864330373005140036765874218580807368206235157469075370350175549941652115579848004057558173278824242238178907445511016222599255938413582200568241337287758847801173722482079089364228719667901603182253258564211780438655662786892342804750111646177830555323288144075563843550885497491758251271676393756122718505559746709869589647503919435773250391568539758150083084132565224674177629891769820220314182268079711789939962943312362350213505051584904206645912471589695761270563810010708240177908647251116081190559025109748664691946874886302929288381769820169377063597608630768599611540238558067626740861490850398650007577092288655815933719834072407137850025575023812607130315222896460247026697657286429112313598837172011851925197954961595155845449950421207311750767347124535270843596507419250991404297981283278539567799041047676387995272649428005587308880379153911672822961346700686646594912774259458418401337440312398099461797466332473234955249021044529317104193271711221912147392967359045034245532537669309788082352543016634516019672249488554091081022267657306983448484217343736930380024988212042815994302597858947003015809384594938029234828338204029249294535039337766046190228348083980758943199541493337310866361477178401766628312078604258356656457829975631440881501377356416185663537177105178744365309390732233378717385624469257012626193300424733483604970338789601586145043388924434296544491702358279919587939504300461294500714240888603067279880232497668900061293046483710418165131429291357684864821729338061980628654766253753783545044109368004661673007071827412417531966548766349291790951515384746670804224341139515857541757623465523749837901441750988569740011565335686359263358108281392397449919255078285840418508025820941420398138603288695124821207457002218365989939705251617507231213369441530949152145425055003140720388849995206604999795567606678447185749740099657377436059502482652985890835422190257203113489127538041581837000362922093020904222754736065298012833044078838097935051985946509820429342183207188802653313415947455677813481305616821722191795516517778861607398009919276292713671813568031542569358610221539924723200465406654996187389493724978929345919127596939443096105329927687526337012686352890143140399948061312880852692705055905050358253034120503989545842699461283689530276676158267034723920651510660740338016284287838837853639511863942495662626804688389713284829134980733856359589740147357002208514793868669493623123775499741908744344493642691329316087347182115922094035892649455136256943808085466824129235154881017151582352417991063843865391657893727835693814747412980406207648424189983235527061236933232769725546507506848233168993116214729018226862242015043936128842510799786022727756034756567825147558104696122228873373961766139217453909669123585301268929289323130220421890761246881948479481655473613929863698701645295118309464917263940487391916248828101839670047312228103595816729868134507462718141297566331157840311753298432669858978456758381192176607151508922467404325099119321770471108376394173517875644532819885345630893714108011501122447025036436290949444728383787626423334805450505971852753953645694462283141000465418727113848329170385015533279251286136886640961290085162391403656719810516607266275442287287737568524343669289535648449302049512979268701595696989038854970399479664333300251755520232064776369074881941670747502419217194154246618423077930890308579411967488478504271138743494276466563207510544144955236425479733772990871250526177442939775506163316688258363926652926811189368011081307486675387365698526920570498618637300310439199430545040062178667757247027276045633698335717402115120128641693899007709485290652867192312252210199161166172203502227431479171142592141745308200429739077919240135792009203906928577123361883170712983233491509222455087559943294684400664727262211070206484718334590184114281117190680644553242460149749226855026346198712574584790145478548046213356599524377608284453090863405275742131867993218090853833935431972084187772149534960452294245178925278761680746479772520337396755624419100979258964643921181157371572839539721428958079547411638424054203144435690610205571687699053140053281907798039782693420261150494685985212421677534205762690717200531326702623268710110495813487572336056782951388388225435406971721719547878493270402986044232971265805746191674772260915694637834868768223379981221727637983387943321467214730716324840647319225831882313270647876594311937195526995842715483465125926463959567647223057582266696102430038757169333715870203107143129727963753474491160818109290099237541677868600185818757780814258486364483898883967781756937244646493208312152279026152496682200146951239861321612362195926660256267413178855128704569435915033254460473385045589061886417374298088257174676473450040231732523609308910101535122628524482800234144716535953858522622753332387047962938362804388391351727193186219196218379925679873195362088492569698495748588244567107136293364592013949489224340761915240763498828217700995069731742698266951959262349510144779374873973732591132281017942730655150170673618929814377424890014722523458394903922367315761885308459804494217630960560841674705359613466961101781363394567324238033741346769460805309021099684841872529861300353852509491217570968884224375407978282478897907454291697622528588758270051663982872102164390632466220758564441028682314705255505867917989453949125868915883360811644238022307659655104592981975351648775898540906233217012661260905929749081805796324925717577918564597800893640491391952031377416379794480094176114263684877154650939705314631695567118457036301519599669185891738770914473863885358055861702235154823361178844604443055904475428135816588312766766488301707118115710680220118876954452031843709918108721642787838358485506156901622860161599064069503799227583277112125073862496849919137514980914457759920648557451024245621872895495803435185468595080393133172918617972135091892663903462997251041767489322228602520518986134774944722727405350385184450644698819364754604070483623130534111114172164989744837544211753135975111010052144769717081860006349282321008866006322265492983861460420854441678934924562023450381581181061416834924168586642438028894660318605199396282074299000403929885091454284656225611084975024248336569656872162925254463713959751690209629058701920237277518807412884088275227552163659057601417690609823601469745565610583624658931068345128564705359741480850669193366739243070011172434337956664353282168575559919573426012587010018803745486720045049060859564398439485837099924730767373307149810709593825816554121575431677892814395592894493678673374009714741615727418927132915239042267975960514343888830585171223996222979940244849248012860150068419543554665659969583223099815387389232634111442111339714436228278690487506672529262113814939003489386268049719835135727219299468256031399743177144372168761222917031130174576417577888267112840933588507485925835587056894295531625284461847724940756264579011712807697355209588937841566170102884295463487420799170927707893458377540000043058284936291892740961171595261191972946374628362543409963355473100014668190924701485715389277332670652790602694254451894038628697452222596753013429926956157187851293573547527820138603115562886406320786317604598577862944406164721442086842300230824322290296252983578297119672514345089733826035289516418968487286579941461003416684008900912262601155364772656325676772099894093748915216966380576088445277814248880413509915136490674777142152726683288668317353536201094316719431183884177855140532116130615906526347946584340697385875209529136838189810222069105740835982292466820323308593185245472885765495495894624427430144586838159754266435154885712175698406170572913366735728865115377684357649170940484734910668905440429127606349620588454571102261081003192016345305711920781061558268692156866893466991834490271451369001861565214983506391684236176919152292279209022376065700508783936863770592927662134655984208314549650922263898740912055425991981220306030527148912189096793187248777888649347791868259381376947211517412029665872418992326973176945033039260756960494577663937927275986328205760692907269742818679265306038083711360785895142480758043595950044379572214859004999174454290580679971279709018311747638434567781966894791021599986591092115548886532377443531752067807010164966812712975288076874091670551541515754570184032206459180797362793890441229829717372491901512131314611353045897280281356343358057413489508580775332051645624452998736437826374573082803855379992321555952665160378712946765143293645673737974149859063476959233396082605358643419273455613793255637515968076805633135805041855772994410213231197526209522939908944488605413258255241154166842462097040984592677391325932072801064187894566853023467083488498477458809840977043479242366679533757852387701004700721974806136003211763152254888301388368034704349423349010252284299813320770042458413352496944580879815415704345664266194937326324754147308767270273752949204582240118425368840311641195774836263043322255274576052169220835577306212329987873183041179409945988707618618976133953081144192980740643424172407130351366694455183497143189025779886847757972707152786372725026951770074670001598718019210656240547953242799470443620040313237634206331598554189760815393863451909555415718659572159719580684223783806833180659448740608924077076815280673770215270843116236126880089643966494059705590207985399829550373682019846947598896428454186238056855229055123869955659614851288641251308851891147671928490058963944114541108909226648545236038435583771965422792363084530444822568240760535290879699018366209138474779543330726161363340457934289628919260707558247348041007439161927496558788270731190328630582037076834200308089676184580632872981685524522247179378806340539001680047668450713621918814798243304491070467525183526138753143039583288269301259282313635318425087626011149990465672535022219668196559810739472069721839054987453426104407947480187950253928598931919316988572130401985724656138330137338924905091595611062781106900996208588775017611211060240854888114636890882600337702394545809023371061499938478276279468892179151940105006012871463575352325589622212178573387843540231750280604786378445357005890710031853458194583479271061421621887968025639314774869171851849281554756051122252865997853399571073684242909180011498172446248654590356247964042165210345884802447882389812343361223479142774961368605358707018737007913881131324932157246606714495966395606012900978272719209317247188152814558644170398761571508615677657626678279289601906215625314166000196510734125450705659304586154052966880485483637040064183942578632527989931973276929533023190570237016127082634736986109856693275255509755624333059842129339434437703701130068047544588398384836904400531735936468135317805543953774362020043813598526576682130914578409044471715525718330685167483038936193864296420471307964692880548361224370743581752823296948146864404459057604253524740331635721150060924881093444236035963795500740062258334083768839630340671582164647777170768260501621570216534874189253452157918404876238192871541071009684769929650287373601252207421566200768972642742526091860699305481238427007810077886059514146908902949275913271526083203029219308199781488996715171118726694082575776526551730255896048858753019599077182956943640737545222269553168905573161715707447682914990318294368267539051411792472256092291057285487410461234713012873505513744127734851763788259607665678605864724656968317590889875131234644625214543796335801776920674547397670178009407801429736611658662421705063783868982381714806031792304088856788841080300672856948151430766632651283900875024197972837911566662501475393881984040250837572784097382795668938252770584928114170667901558381092708618690305158880974080900286699243234429582495961374734323218971087010873261786167275000747451950388947919466649726718211097247081666218704379332724048992048278556048471236090947570181967776731284989682282654225698867009280507139614754903982307317443690013278836318815708525167584536846961335727159656227884264298206503843069838682434181782573698162719035702289580931024032045865623581511465318504116235460728641348210666907152611620216021055421195534886396265312986622536506271138493068538108795167457439364871151293082507512962562245438780553759109972782963296831851764468024752221484296561325267568570588952241230523947121271396977349262661520264819256791378340661891656441491290648987645353959603231538806373228222590639326233877397681120890363805463651070224627284417409755299367244745201554342149038762778589947061066799323127628062446248466925609067750606444332100964022149130703400496796834051909948722864758914169573162650498477713833085352345039139533455274033560143489659179567121380800562189674717757531670686661769398949898150881278784251475560627431012561442825868408199919349830092934717371714576651551681380459629613825147835330064013769713815853177557873771511456558421214336403621438640991628795001568392364719642066194654770023613103975123130859867743987271849131251938126192502900689910765110597523043176878224957625009122903792455528703342289402267258025902693786243353615164848711255154895763043361395669412796930618669911502161719819141666664851603827971334622935110800988064934004500494170284969666050555306393503763905068495944994843808330075817000465319152494848972177176077033071004818125084260073532402731529249161161270514676420357847590274744782995320822351458808741501156313690339239960111904673316497642920435782029063694604455706143103108326671135904316166503237317464011805874458819107459597358924810442163285506344299035661569439261823362298439029004591395108298742848317733232867246881710159368467691146543522221717437666968443157319911545108353994675285199511796604797688213488764086903392319296967298149438175990732862037306655236846124495839956822732304468102365500833665584708790650097882546048473153472063729708354937236023397918287696996249665143810135000257565237561888903411213534567299420392804457072312921500204294953665597251593833958781769468164743157644320094449639422562818874982674789540241106058438400443189023041756693741880197057213687905402021576102320432314825305455682718278055070902487812299848219727603466503441346981791430349834043218771120659890495340798725364013032822165644452217864423490233250141179542940408638068325430650091038731237981945997648224090462548280143751131764340528451084763343694287030992648118041974592058675810379735203714829008364181122748165509677191589550234988471576747560068923769110611254629402405109492612641426190753013492343705749261039193155251676401335693005826995052036942983589395173264786632216684118177918407979122508865690662033358953865818414134595143376475319922409826995930587816828510476652833079460891594553332010070269619177095076748863941876381090606816925515362270608824674262748600917382777380799002609926800908764943381107356537066309493441954484378402640756363146977907152851667772624251416967096332450766976726805307938175456950371668461429775576668458909098058868161733355851276172730495061282110973556653316525863254318578917585698987679771919214928810124016364746358107121856655230739193019607442567296342391022582760071485444429896262597873072716337656320252328695340666969871028005790748690548396587795415201090895409439196704420921265910294960232114229350089642286587363101028531639503047525549348073940012615456597115662975706152668734469460989291216013536431043503712376959686588929284710504584954194647853485519660316887352787564586718023626621455556418382616519907928968820873167417182499986002975642923298456333660388728353337662392515294837729557561172301585398320102776167750879199231622628562624129149317209678861038848438367900547919546431288568111909686842273466489698621155000246993663039470987846157380989264587020497715079467912078791911143713025191699983961537388773149652186278757537144923344519541739756944150904176268124304840026206745330112015049186523878487153369801092273073789730039882163376531322250497485013638579680116972343796280187187444472430278352431593010864743058749554321469029642586812531951009328892711538236961631478655287051397022792036825755784159100164710883909039211985231653534810075807585871178412355149135376303699233203340839039093401160881836882265670637357617071050310252123950365777051745860098401600183816539243057980639794638934385256320244519033268166990027763164712222139871112392222850796703210341190730607967201992699597835564814215303399392743212214182819504339296185031679275522752940818162957930413403716186161699552634229685029770578416160552045106182394382024454902762289167938116781906690088380065517986735422447558869562975154554487795064288449764326486297973712620024824907539177463387196692808255720780428624081095244677097958485116545105296733791628278918861849590466558641040055385906243222366281937013772164086435963939440885390071564178600117516978411586316872345307267380370460494205270190213001149347225767116716139209940707752602697763179416882187712559818134509953862991870542982442253981907620782972406827811308984442735735831352683777715345153003409236417488485115881378424322743794588218733703467966031701147582640320290909154768151907133839630145030309892835210756913050952262051391926924155134180603590420167465791476737060004438023044615494113310972395298177800844516188746252864620589273689301466085008265393138979017793738931158378382777129985962897731631756061131947752959043600135077228381386859280265369713335496997931195733801040588958665105723174914168283492034155186314260410339868060186443222992601454175489451805238040003110098963255837968839999851816672356842745766515438557527633437677909252476672715625244011308170537673000031320946414798511826023524222548891707006679586631185104845419157158224794239793972971359883024345762847301748056694138498680209393925975437833070298040228411012490781926933585418899715770099315229242749534078746496816673227047554248221499569449304672627170319860774539984744498799844292393272411802666481330016502102981684043537124643547550576409064107068587612195056387052346201011378210991786197429349425939237846428659533598428897339826510884843364953036771814292094176440448510997161532599334487301666233711941232399929702516416701420945775855511275783290862112965156196399852657680461965845256710010759736923494154593618659998841417989302629579740499049844671631812171533942108445010185505666017933573848454721175530535577114345196369693872857661872496294546923340108141272369218258273184326885557798874482941591941251120106292709862309269418257310132719361935104406000565200270402148047808494759095395603419705669115267591269753746343773856295095431308287654650283230749167849660595390691578320026930306657069007492218317533609977243813909512112427125398412600243367023674123320585705988896725141272917926356523670063582831302684755698411113149003550010681559061532710987151391512258573439905425815769950909984918002811612115955801664758061898869163003918532146097328960002417182179234865187485817087001649716373196068225658735897376900944736118289064896703345436501383629043489850741913122691839168502271505410988911671471772099176300021653541263863527283482930099711225319995142991050529144082637491094493417686948208667187039600036001592713399431091142071502312627522237011560922948726133765110785039130701768899764535675067192384445647270899652408713313973415641092516061030837825932584001267121676882709374340635535088930265559701220569520112770544402694986137172689554994966197208149527873450614449486979968200626510609500863605218086971362460701580181578034797131844639071928248059946902055324764519196074164067526064531410338965512250635191739496859860749482278140492082357411086190461401472231016786348734892188491677174666438028365349559265832679000498397405819927718416309805287705413974328336024985861690844289905144814329630090156007781840400240325662510678849486331545185572658298870020275674691467468985134245694739345520123772746265580587222900685663464980250687190625986390755025234441586803321209402229909944240450880936967434507975256816215163180386567427207395340534271746564061433215043150237310613245793709728045258899843738907304148702484232358115251926088751690895589547070551257290239212611019248537496363960275993674314002440664523559145099931232869257430958386029960126982875674404726333139624327919576497956081853281414745293743352351001912594371393747000705781369957095513765268831277932492333789884806389554202763073344177535945842489311233526869490976618130913843393007825520651025670136470155338775380644213672486128757243064565938094962231845658155963540026644777340035698141726840753769982929904651045833581616756781191841089001698408124594043557681113717828409131037936488730291379872678937540444441279731526004702215755234751025130829129465595267799330892526897052225909972128274705548080096466480228661032282220919382630530429302876595225538296218837565913233190324258237607539523556077210407332100418671295118505732913069861501543873492343828944951574020346188156649582521914154162063878253418470896927308246827160939511467911255247342252467866030559158027159071662712220076411816399519012916789450559762102269963672560689178534612183361653726897712279909541509326707077350605465709779811287725112182346009898061999380400562057125958100574410375017452757822720404799593308392977668733941215306236443327396909938765811905223053655645039864886744803875860665559393676157568400057149069681054564780053973796654109113881902139232581602116719516208649219853353546859183893805362505106445510329639673104338804200276369822698879396764843011936859305923590269409933861149282875506879024478352375865281845794611539036081322562997061455932796149821503234346302056977896137234466030001585042752648860203065808006342612672536621897079584320574947657301521205733953207219601205069072575544344158056939701025524908216267404476390294049695790299898115604772403183463935777649698338919802297339315919585184388901970370643096183476664346858405157726125350263350447503563581386093761491847661354519238827654046758251720571080748615522477414256597160518945763481662147351654263569441024150280730359151784298019059697753951064323448808033830565057000795578115580181185609722877596869966813988134096995853116235442425080266264591021568059590686099699289824601424006823020477438734926381815038660772820339634330687660597204432244269038752230788900786082696393904976882784596420461868259485804044665136898540427885117799670245528574155460091848138926173433496062419339593358058926164848811704577825183238597838568397727415705684476609854907736077452569156220760826698839992427247363641161575014775708743308543212729268830077481227424472335733808707646172368902582074010221356036792254990081421458322247702799655018937072898369244557620344198635061157191074063568079106209391608314143172440990702078069057519557170125402469187582940089219663637292757684064861017648636826196501373197446553555738949754095970476475644675302392059239656444454254758904563369343749648558338591794194364669507499124155105666379439858027269415443764280307479465945778670369726992885981601392608227793938610021936409233985839954094290502290562912610722006844294305936804348035270496805302434312906695009663201450258559473072499860732240698579103735608135479339837247328431459353398462675892414357382603128250478544372481696973361495885574178228269036857623517284541433269772159684354129506807456311384261931376622379449808380246998346463113813430920412779418420114195926315555997616858365517102882561119356927134741687334041039164451592705801216978376392020226699077505927204651736485664177731688177540107046613801231724476324368483073728193864541095392303953028192485804852669886181928392072970136003812982157500432013875880231528082565813657835788257064108815529590762257625796246739524189971168435137999988280992272140819249237856044818557638710219193361452244470515231175498425250730293956245324971941221788757131963450243396151607308090048868216563044778812288086212816585748924975778120872997206295125625148094875111094106988390591744690379170338021162018887955676500228448854690183026114929139672294626848319787643469115235757984848446658067100618538857071279857195409999092487414609962368909933137858145180222621163838854860214085211771527511013007089126890680172596523576330847476522550050428184011733151803296392892411751690548001873673045457896556895750235635528503076589680349525702199183437059865096016112643133711193668051402214987695969170987800704264290482204327321801860919189214235105667554528911856546967379393102321084906202956795988754968994442979967529588100411362309097009214830051668066478021109201924466484340624777803290110793794975684323541225531259563167811205977400111313281069612755857411630563946808954371232459088950598326571982150366087581214338219785634969248431787408652984232813103087640397163277158002495684142842736059960330610061550145837998105032806879782600732480332247309706707923074293036422611040751203496695931763554847810046735606152957710229475360820982476580483395003904223444775760374650784954896848211737117667229631579670552528251160205660304026755078030099670068009470535798548560187736224024123941895578480165524409758655735873742513030782858993254931249907278512475703139577880645692782899218836894060058050891533035125243806762892047920882273158391839173403563708101362020226919201130553022160027097127758177656559102626224200351465414107650321209462744991558326903563559123309034584524426636900470758499381175940011014053884723202172225776714779430653457598447181678355195583387427872704456442514698243876269583921393855603106871631114819934344031555050956143917372511340032193266039579801586705771119467565641759724072723869483803758647145189064351135244200873524042658299937360292086033921327114201254095329429162208980755211087199766611153986022422768887933307008993888103243861078017379056007069863445872596257279745020873114850152474575547536885504586850082472722271468809038161871436701124470502614174910393574247291946351828494844400633852916262535541586789944057353327514172719047676678385111264280457951755859276909169160368415901478865917247810038990738522640960938433712101423670714279161609342188994074663179239648945046802374142309036347908027516673494769543172205850336104297548989585846554106318880316463414516625815144703834486780287547926668893422020607947282327964368166788200283582838659034628651172349892144022345221379585926122788819291302252530924645137391216401214087822768117816373381228609770135960200927241242924552522273828321942774035531183318001104563168392284968711077278110643481205082461574813547644026761922034763975942902935959462308492885581651281097844890989342968207851723874689128941351267713386328296960859636537973604409419476225232776399030261874439995749839889360396876388594819624222785292571317851870913069715373351727293102731439885764960991497829928098377011672870047718014800129929242720945534767712691741853991832473778050965283798387503946826664557782598278446150033473105052907446051051037012044423040991873959265374509276386230531682799153657390397024482950968320971835969262567386998507106071117018870069896762603099868723843445836043325175052561985553726168039489659145812730165375313944215141627710709364147528353150563813115054839553144912164002678603942057764458299386013847744298264056492263472310328481823192277920904933980191368539604577815587170295043329825243903935581977931545612480509184969211078808155849328132136872694182869805749288957181671273028442855450984460911953110267639339569428239002805707015154265567729190956830574315340976001343755039884562565890009061070530815462413854094544944687437925050031593286465877609398501331314592484507407210876742271051816628316229876560332816164904345548337995027959523137366240746058675594427820317104304343747977041828857996790432811578193280699050620843048009430282144582209573920145586595741788640921249785488628870318974042793166753270411837275811193774446232819293722310199781248045026456302370657057201706434757004183021348463034555038432336324375783004114976021265912943238463668680733740547556124410556021194046050227332413346290858081560987576767876879758584691505868707332984088691116853999804040385048574142356446050750758845725522203026401300917855764705799805511659705301278415347168382029268456745416384438446325469112269817926044813742603191774188125564501481251994064786371160546564972806502002307398209963810761618140896615839637711577364400057376607021937049891978025665184424906380863916192991760892058236643965572148672776040378572556942943171180220651768908393119189028794925127950383590009714358023061249838829941192480387073918047769155677350028853106322917229391971142563199089278539767889865376784420703342559499996440231530869485245835249615324876434415620760142928123014071166971310146000502477860470464642718550950449294563570181441869408582575143157024998841372291548248827617586079598828753798514066939862890709885453772239164243612295794438460557647438901368167737989158157789121611330404991526160570176719828320504386483311930809350198679224796031099714651241931245961604338726758841265159117519413321562734253591635632117245247135034584104544596208243366672270335687728533515997218424286409687051556843909484810035444715711724431027164250501171089901567897546265509076687602999959805191056189609172979384069989192425483330684130214547427049806641886666852332473046367663134793223478359814990594075122017207881848980726700642462736387876108491347595983290348109296379644668388118706229482737187012023201052719409243003323732194486317554991014866351011858746286721451557846860061760625728472560319602483673467219534208243443999202390422196204418581431388328825065465035889899808878471672070348793440401236807963888176849997158319467522951522039257586797117815045115075856914616836735083705545463133375546806065683755942789969764939553088744689925903996608710718414112101833100122868018481403503342114080877278231289133488536476854807631720497928979535622739105011339864999495540851347795946729456392236181751376753319759076436903159180573182428635843192533238500802118974796973153250413351074897907748062445741248938138575054830867300794961567329491187604531561516103810584480801132941997594047585567496324615265608388016009989362260550224761365641142012360449123420872342151433679130338480169686013653276036852101152315532596256273083107203293643641246554879397843007535619915563771254513660937179586920063714820470278608271325498481360765814961991333355240498799253232499452761194237856088253227108095189972153327887338792281087385753335079332366745377868165076423340372142654244796608032898930210287793964870964046352025991217574648241195874391732992642494244114434831772823703257465544481701589664627252090369490816931270873154685042676020400076072543563456209603496500584625862589069120788666602203559350179122522174113916706907186248382035066982168052163725032400811216691565893947464927801409787510196215035408383739788784184605345365106986654845810647755651618592904415038127274853754663094020774069926429840869843474273420429080178770211695902881974500987837021111788138090673875759360934489518261006809645806143958481019163777808848137434727721284742114061352201708186248730922378961286469340151916075499877923420110911210551044358119060623945059143204162874521005024563013917469659917543103779135394694002897160346062356614246495206708389916611434639738135229047443791645581168140452112937879642715437953305973451839680967163104384598587532476651233262836845236838965568852096787749138118188013906296773746176153095056349861540437785919716672629549160067469403285497147412451254407260699205501901523661754071151480754192316462758817191032591940744410953080031607479801774666243744262818086557423790263980545958385366775244232432292158954062559626389672527644734812266976469111020133076302904361376705974126071270716185384786716336252179919486820523083234866253485689684824177935977515296840280008098561419665439037131656970358846665914513299641249739187743452281416674916813046941879079784045439341587335625727307278963337781143320676379342694670414657042478911598653718394700161335500868513651476355054690517359613542100161430848182483918295633147086901380759662973960190129765574666336881658359098050299864536809708885379726994105578827428044096883037455787292619439959259348799664344507359780388713694964677915804713013955361103810463899296876200056286576107704948649459806009594999895188687905727910480033639604833820845297360713679965813507198174459042154951894883219888873315106792505625156069893729271017987426089695107856646758797621545922435290248414188407473837626832610382864713469077610363371289710593097618369381035254140761943241728775901067447999064377626015781151981386024940304121069171535876434772982674642818338850472709715032435958623441313520923602601980813267588426855422777251645518496133390552428127383257596640912720134413805481715530787659727350674490307175261829353822306421012704913406585488941638180976853070151053383708356349431298436430735216853664404023644010990047479133686484688132093942792466851122489114827335858563005649492476550200869913624475487189784170744133695173035490206923593660784781655343177684384687770361727164001001413753415622852251926890513223613190617942287384549353641175651343014790266222022404291891756245239566641785496205424867657019992518513558737094071750318220696528559981077566258775405572962124425206497723957024164421015416056790863898812936371620078956433877533949622299471050901165972623369878160217083594367790945312320224854656687469565313327057853050443797786153286028119112596254768148142629008483850268966493374624979550458616399110125970646666582484035324544131009849098226721939797674488355501831118413331493977182565179225186715775355461176132800270832964569358111754679798033482450207650788715487907449576691121832287614957063556050416388725538781551886234175623504972984349791718628443754409154840128573212778880055020156917084966173855011464751271053196965131588856306779324610857338396054059993643141062196104663394558584950557645311784101294468226681934055556292510942583256223116760389953487384160147533292521043680618079774425957683619956869258716660585545029693231154432652900818315102732816838617567982939916094402148948487224957115582947257701076206485938237983593399912220963335441817449161406344655108680261389725210159017349473870321861115222046462618731706841148556045091936441898729898065381869139000898017568390528491165367670003540763846803466540318276382619539987288901513689268030397193988831550400942047538462803249716832607287268870025284146917819758134399290642436305101314516497396846125500467573892701775594686234102869227349829702434475919583770861912138741113317985796790379128134100813009786117497349317639985740048376507539824602994107422219989459034154722124360543021794188471997616764358249875466173311949299035494796519193669552829409250286741029205909074055229513434973455023443891607305940781503257934591911485083937008611266069848142237761577145121800109300238603348762030557555888987829641548163071214349425348201243859444543993637014625289550517957824482150180133312645681709470207166860641521849098087478660723014491425159937876006337211483081385465614087836943761704172575432316899441504162060304600076732155370881277218135373020535575491971279430145341182410866006597195005914354449378648963130173515715986824365114833874092926099832109157086183871264750990612642818816650212888360439919935533936085693948648436613794717754580687909908109323867984189823887660031084508636871498859653368970017897188539544688326953022516761291800567912157638132104188092781612617238585074605518019731492326613601546580574015169565274811226463986254455934071787651366979701530488308347945343447622068323523237364509419293133459034826871237892980219516072977665435626263476797782932682033484240755402719211400352969033512202295034373509937582137364356266774634035518603442964276192499765585746173420537248422297296248330933677480346819501040817781371076591127346204830027448960301622980544874013591041877782158886969567778127376861996791001755183295513134103192723024913110582716606210094478257722382992539649783264019731884440915994435621702421430566327493393013595675633658651699983012794641040879007134881259186985394244665179018236725197018910154879317520754390789130632949434618304361279330096656662210152607420679473874008563148488651768025857797368918533928219380540102174165916669213856258234129027024665961176588697230238501107079401705136504761491936721544149571108637524275577568250798720372286931298867331719010973015018432171119485739332917452061484222926994908948694898684643446357722138744251162012434569697926276064839846192147052097076988950399309270101661155797915447768951136237123683101957988647283205038250148158794311720613380672131131367312979905780086903440375975844070710944970652192283895715088237226421314998995018196297436376364936684280752225284038609842959060458008434152788254794373221793351922203252739862747764380207530684602064588185898192018409606195780524218039341733892544115962019285864644376653728610031755849600836222432556626812961828773314717819584027607111576191711229411164863177791062423783138758572188024134202931945652378797601785932238074227618834398361321393661650027604077517882191602496537251422701063705100731072080254655259562416872274992913746123654634523721599054240458725228955204338448990753275906505432385902922609114981927474929678359491871806401963211301932046335189817197524486715164955174138006367621569728272342647014544507703098510549121166806866378003836045210078696939081625976692542257347118149119737020710897300640856671074340214359558797407990691883550628149716498612930642725534295514326974076048738263208829098176085932670528374228356933178659317320773117703776508933585461307041888536297337772626729054409020197500916388907726045289286220587574733878454856899186062672440997244351844663504855413516252301771139044300708327539459575068196844958961790468487061653328059508249075748995305982699555052864095281050199526100661317317689050096552901353879292213399636937645351600977089882109561304057037784753289217338595501382270140831187559606459210349926693588942385955473802408772579858598518849271637931871902863461610603352282884620964407272632835472994819450426189398568670852306211336650559630621209879278677991073250534874054707631064035970917172312815255820143766788508731158818001394811722115096353696555422286563553607320265343413485596592388580652476635236816110382560063645994250421453630172225328031953414032062412759397176809655077846595363878650489095544672326043942562587850799155202770693071074731464886637107283263185918138600822113080765517334853517974881303869913205143417018410641253991748027497738428650247529207631391014934684379988995212785367494572956965400306579026437912186432658351751482229630721067591715387032047403993779548477834981079894015436215498450008108329212744609080710046310329456805059750971645406374080507489399250568598870348531811797701436729347127306390580268856648490222236121859386119709983384839401030062831054637040030557662111133853690782459432509183866774599316382080994368945934630637777385693638750782334786485287457766711032995883240783123995212512699197049565618484312236223995682361116147378638005555806863272544641211266789120444215458375378447265313369958612459502925462713708097467848838473203337138124935354678609899568702841108726503078432220275352877699440711984122032763701508798863131303511237220683201889776446165451996406923367826446723138816081972210524013652067780251967818543312537328647705318892541648994415658888107759581375698527306408091431972506249784158503404869149833249821901169967301301998696586707596550506667150544888197786552003672510452424263257722801742447040992643491064497316197479964505505329314192756003739743725440573877336177146333773111111272229645608526767094967964397914562719545792798496791632546557911442325062856114201493450794166539767648486491232821794420796884691596206183882901268197866204791492030957619421392773038762062122847408217876293388657676432724234637041703291651530671043086932159966004174148040584673668570589027049575113052067169461637011887575050957749984438267811454588913830853606120723333263984115347329272116746145901812429540752608087387015819654698358837157674768792204588008314332595195868713266513612215000740658247670156235761684534992135829827183460921904022433561892864743269935558394419003337648494545366183783336258056364302394823833528778097630954420863599405285252906797309627064116554210977105811489124263044911064684320615050599271183303147649697676905479965041047136836711998074886226071237014720544693486786659841171321885972949631440152647461678647350775324911771406385018709902933488161391408594602144069515640945783985198117389617826436058079676475802457156553944423949709182151272103644561571236859552439771010867190511746889352042894286110591089830677642627001036491764420548134509961292387661377226455472618075243777998758947317378214952460210798849378918961447460171108779236166702105893543591453446897725544260131545606516651097726269654019826311344734358774065029273981242144623403644631196490181666369617029308792204082644075124554897448652936523246150786230987831052321188251470990073614957175167267759129194613290675065205401194432408083788859359423981655970704717645803888919030056540427504336817105441354829030574678136602810241328513574099372632133688182067841232332196628139475586680452310405991247209152783636516528551104457245800668339617881492165605909017845161140892793425518382225125226004183215409646173875331369029393689791281684339082583906924434325860144828065696842156815203094682896852327562622928218192338167177235981899799738103292769044849937972150201338243137465308831534813570231448208403233762755336678129365152840845019505066369251460968794428656374434562461453301089086443705146758124095702833022494060264160900948227641041457753313585875464937364098680220304064556737507309881046048068260903151074439249001026351831481602819398557945391608617157870762109914548987466254518942872074815454401129448495105984410968492973466549702910690133829092605697837308610000177745360826695118052058038908849889438694338594219044588344983599168292683399551669758155369528788621023340500103551508072537188725936485815610265656981594804815848283862877529037730324887297396109662023689862382876161350856376167533986520337703064678442284048033728712819067152530759663573873455675932848618211257543627727585563039646196064235614614422139631061625227281560763720937935862522687998557329159595420618693185740384711502014748719371529980066783547725873330647475013450382404194788615934748353956179800076982607380634807861715326033015050553258134614586667616431305891767424749716438763598578675499370224184065701901602193562395546507529971721940160384245193642752116730969910213559340473692027344148373175168899003916529039370784729023384006654524797859701574941676094991933245682194930958681390931239375421257967826296128415400286525424877460849054201858113734419097241877238364873488993528066873719598861202593788174648210869768391191011741316120525484337337436042614196236220133515689731074588600268150324471142559570449954325620699015325858492270199597255389666900429736015233681300744421153616435747654870307932227530849535367029537208666051441885035149264299785621874707923209146257440849815063156118203985146132922214895816455335590116067816035153821592246836926795595213094826962743123281194204235923461016571690147382262645797632078724750387312972386206538191820156522892507205790979090572314358703725339563385080923370279704635544099022800281560554338328286140924687014737868882100285037650969292453301751727571620166892302105584549756419222719456475808503933154133891610339879257061284181642105472582568069487750499175763905425621319623162319624095003954707445517735520855585399774227820534909136212972008009706805069229481841105032433871995211037619171831980571545664867479441486420362091167644453301296123273160319199193130913741382205853387606097028955502914146982728605374118110092178137022528158696227844600085497921033403546618914965191260990041171791243824444086480509978618271712666200588741337999305710623689130474472288595448077544887688128667958959930373482016411709859983154684772835640925292014335310648916006408939825603480789003675801673263687738366709247996791509157390121974136318452916403465303588774495809403126763671060190618175552793920831698228161092470073305496170138306607482386949307266252601210282095060722709351953632715245162580414007173106537871359014849179030978415693536205753497158047467908678279366331499247750317901856089651342461862113963733747377509605970102229255568703194607902995892189173586588093544863180145727815004625121524881718234115264635589199567531767384294106659605202922311999233563233635144808845740536253786399647293433719303760885236099473122255690544834783125522010253613491032833761061623575281822201071876006455869246096634635510405179225745391695797981229249297017052019732691606666062204282772264322862622959262534712858217250690976668679745438875380889706401712092411170727781157253771274822026589527648974086265426562433103480291205831377340628876414033713181304875166672915802716862540280823094060842487127658171851324490739749499642983427365034914574641374999233706978419335311739822354197854301395431533601018740712072286103163729990086392794267121310429745328925057826127022444756570393909112437911497411388565363209356038079542012999994564120409234311490592863858132827368941294114749228394544859461100999864233732399519363035573221578253003527198041545806520728467959427309992084734414393333163295152816042209547900834972598584001018670430620623113727831423992818158185486686829383914763405452852530105898416253798279123542258975386130458843051257749251143985357937747623512070077120452230476851774434950988174283664192325694742832618101250215130670077350378350134953979340541808805482204630550016759327787779269049993307200996723319053672017473875510446183762094301716412427762798608456130361443844185843436203926573340281302625351136444498874783122979893783779356892016622624829142278579738198675183661844036875353075309895824880287930085071554456307154219066059162748788081362007991026535784083491721502682588481545059818751538868469529179939823866930457469301911372904300795502695331764802645673738219954337310473329139741798155646956781801696628903103441659804705479890149440373287762121707216795095357103240337255132355690548201672912911484952281762948846152960522042437327246702932989541069592120252736193301697862905035044385246268039614178128932137560570251922056443543630493455699243217235211030697990531846834797566373584821506666058589093299270310244514655787345289377160519684070934184936930818442027415746446026356723356453626735685128325992046905288315851848527463840382887116507431920721667415972868496335010652674080578200919472162874692816379416096220878884463757690330040977317982945984805684055550944021561902532256617509607140510881591756504454094261537773147317906258279653287181469056926850455189313086058200037466141820301139748993144584223270204410876257931747774818584780123010011869048188760002675395701608365023736020059823578433105415503150436184995897143081938688989634768739922755767080721061193047892406687497241943211741239708167668127694271060510994940165090349041760521963843595578897309815563445559373878302979969994552986668984140431606365492045111424201009066854727387804102095303498336590908409312383261897169031321026094035884153513942855540235905746031360332236536716951667054373559392839864249237064798171872083101886400375210301139619551628983967243348709340539085950709234023751875614658801856465407442520286942962395727374458418626149851682794986379490085505017518780225900435657479476769428551186942690749376001532041080714702211530171120732074182426517852782961777591795318518313775543472562948195688362860131801288028959330848612995097223293041967624166681733320838101379712957166859941474450325753144731994491209182148209374045845656026656351581524295589577463682237750546168406618542520539539474783044850929159213757222825748813764126380498863197661544912039506210414442651628844424138006297773273589934158656464631756678792115633847797920726685115196552275386856903921700104570711667317429575451565087268976103233532034887898968258717124347408694964336321689760539285428953972761324386031682914827353356668522135060937062347166153197810393179904639306304712541070350488500521690058055228664292987555739477874494299684226800426845681029542435975284008353029988286879499039657509597182461022259254663482937063846564501468561826616641530243016326922669187642885115331250788956465944789398424900758369314744892026304294433657602877900606996592050702060639238895661214354464960123319813127526685778672120563334059177679211656993639910983913562366460996015862420556459563209432067228115510480927589415299494713918527854976484292411212858380185020812867455714243350873286934548397178494384123567595439664030131998650511043288395600749399104498643390899201211032766169656161974497455923035326496235394705921994540953580456968468624247341988539597123877270037485891261843602603977364506427501663221232305156278099616275248487781975295999641197376067560691337157572378204309708756179750061451607802106000944200482839399838404262629224654862714063811535070604554319904903958103895013350219966402784975190090885616009159371053425019577147065545518468048427846940183769937433806443561631697230496390549719063556631085655526022756140763031564933505683343367308547423951289505912064693139947502042452782935231943880636336431589851318014580853275073207251289882861586031644381882685989956927808784890274301549680730292834696363392801864216337002207675568182043111868320107789939330717859719046783489515721665080154298975897768793723727780811627680337873261968829957041908296748888629489598432885443537599503861124136430885470820776224996294456296759104970193570791686908136462368976331417745686414730685972624211301774064170706658795111912234531180284705030419073222313546272170128058518208879377987541426545734997049028636081598035896413984340046865825350350178311158747890691743049777784359704001838576344570752441338403964141934499522435959932153486138977502815925907881339369484443597990201106150002074403424713028271249414691040822933349974215083487799344065125591681052873037947496086135317770252432140703561278528721609710396775261588438828160450081167119650226469179475739617570868748647524704316238529776599319363726535100123425708867857909230071940720708423016902064561765075474481266896657194596855707659632280538108646252991852308576657405242549305478816759247188478085222648391941624825748112911481878344081264147939422519554491806480471083893170615804758665491273306495646276527246801529120797199114896275277963015321914885231447100849674275743135057993626591083991322770919934749112805552928105167833726497356985462771767992048110767150929668425015958375132441821779707555603712796017863947590588447882905917939802661595321308159967142306265830674635382892118563996678942590456435128483681946224148096112363763426238314502882015719104212793932318197256844408162596746510853270514604548095326844050899002633760027887712703922593842486129830243487225778025756422118672413256474302879495848649603280960033847502462208802479848546793602928388926145325867895461557846063848734696661482392589942199439803104295997454845931763072304588887659467724480936103151900152898106149820596868263603588826560383504748641943418017682666833509665540775216210870873945081818441566785392080170333454137953070227521638917913478679416086291662241322560699948119554292177355862699951358273746973551580069508709000086958494864847850188570029889112119411188942038186955030175598186283493652671199278989947833165852871628213427652645881119419265703476026778996625536129462931293352022642751419320077146708509413483900042493130318155243349830426886722742312069853456582611380091226794817346300163704021817899932714710865736528989992246441838788937570638117858397097705879771010351616690441456992694430623786632584795626723920339805921139578907925077194911848474323603186660785299299936791229997715461450780704031294560320691720274114526908373843475750008916062805820844103850091901771476008501733943839671659141185747118324373316198221128445336664887349206888773694986584535099511454951973131860397959622437301078530245267341850151231982267919901482514430650708307140663954488863692730760342589988095191075239419780722115559421179262374356109952400959487009475078199634573166174164644769940269673995316679445024382263211064303287734060796175360170952733480568647325802339007892512768162672477612939542225282799673007819241024979349896684813758591768284770898300804512324598740411104800209211969183026319632067346236513329572469809332386654586302449716431038646886447639497821118109823318066365590825774412730564511841561926564076712755241349568256385348329128590652606668033873746291134633791376584950395927610552851775713085994867482603765719040308672230715171539423857137593810292889970339673230333989238681195415597167863553780524809908859096525563833938202561356727825559684756374105914555392585914096891183163238234617370853320955856833971143337191542487482393218654130617540492622683616292699581290843228055859457735414666814521705822577890354182550919045930778374738093923787397273471170679632344889250818045766804362017386817961112458393517413350678002572905401013972306058865149172278085204651677892091091282773597361257735504455150511159720001923331378841720196924031524413015822733147150519748704416548861258293637864503655235101193290302444334917180956500482636950776370617900496307910543682395012946676788230343999145018983909792764631120301500878914270602911435408788143213896661297604839058220880829909682213233526271814109522949935384987377207160801221508154378980111245760010552118206966672251824035644938345809035049690033654175384594711478057059956698715577339257676121491668231424367267348992642471085445665736370975535363986094728608008691215812449397129392965071922213852757096061186224480399738118310395295111445536129888411993999508772181791747557000500566487986316312212805413082531636749630192611063153680427469020830454463216543613346365407686606303047684730158590682603059746440841611592485305733981792716572722538210103389190767145701140535363446913046272711289865463381486127039569128695012268399509483340613887862275790181289129333914470289569054509246174636523481415868510963313561980345337654125458406003033354556823728988534944732530975230232621678674127849784990236927624498557903817003663386070415098137856232965626483237858866707206727160656049244029759638000316162500653267019375549745701708740462348933947047343209294063276741838236867059146131346428414988289167866342417005901303134229471313854664464068057669485668563734007432488921865057327595758626948273501117244253778807021837261576931658224157706055782041908529920160234100220333203504406350057364718804079303205453478548836827877093870806584425358751203691000780919613830392485730868122097223352152902480196420071853551503026563566509893004289269254654143031172827348139684111953021237186129001748248103271562407509371658675820951179126611669910600880731791668116358263994854766430364731190602772962879516862606049390977862912396303595946042405808637961858657050797152701796561764040187132769905581008462331424452465779737202432226291079745843304467327230380053877998148062374734823608102309313170954024492855094405293130508770305804753527304347027373113067161276204799004467847014901736236133586324533149254744911772516271476636623370798015991964384651030411782387655277706956633567886063022726193970723665613928689416584119671693600850044552263853050620201410869079955757344436993008331061428208340279309635252043200404973934395863058223027681334308009857999126375980085147826546627734387721710773703623721245771968437552975934861739766603762428708421780634661420609410387232625355846995831759398596518688370184418109255284878272960303518649500657437275798893849285922113345609596294728660081014427727892613308320170476091806734014032817079702876711118854087043829070732536052832445319068430755424814269994158947285432532396698134409983815501460958033795619040850152951382382978316359911415621796946278774304588218753852343399698830784323649890100113198063357411413184326632433620980947180934955600937181330869078677089994873316321311264926654163396787369463207603805685793095739730526100856047634987970434460499431263863413122150105616166157962499878763087186126422203066908585796478791338153438602206383471220080276797846585055758403155984535836742670851542538025801395125948703502146910740765813466370832223109306657764883855371121309818082812437564958835872148751825372912309405001788700918063172721838108374700416487559381174693096682284636527104108043808350529364488941953619293369580870839284724203769847060519935184761196430591590909202806285454583719988329378242585090065086376626043632320916830828271625135929435843170181461082873203562956963907244682259985043570850450939460104539898470589605795950784780984873625779605924068454069176380792733584133838369262138622327376592547447478093986865774770403477789780897737745165867351603411676244135911634757322444796824782950907297593314650685325906386697754166644880906298194621154727140705333042194575486593329901013970868005694649751986921265191452462281443426908457494147939493595643060553956755495837377885039530780155536387324345411932869881669758920983229878777464797369006095840835233234376763941081091379075735824502858685547879862463348564479826405143501261573098729460567231071794969478444544725714961021677636310068731824786738789361295012138545722128843490503235878654654814385853678362996044471157161298541227917515552574182722404525522282961769124011884294530770560503124891037426631278880459861699500993827333755782451829188593541430535532591669506038500072795426408200642664382310111036266895833108741275695558122155159178186445835566967939229511445498257856774106696531175621054252957341554134160036472537392643436007575879937379063879873293087882501122930944577491276848554377726728258441063618561849853327212098412157791629347570911452063209206256312049784296509691742320055279358690628217201302762307247521203684426941386030056910621100689937998987933964275733103304622208573954638169003696376516765512598289072118846988737269856090387330947251451927546121183292584051461298907696685106718705940238413367043580763629417327432097331584577473851352932902696521611776289043058690663239538749813054269308196171536906252968777445934315633574179835900369846955865126285323616636707511327671793112920832365556408660040892923830568870057757256592362310071091292286138389886185747317702746681745273482641418538502115965433492901653895940216431118352398245126595664343858753020076909225152754502826363980152643924904267413870698812733948951482457237376988092542222891076117428455215761944163773590904641512122587580426255649508685432027244767995809293198640252846881782498597121060796681610289771873349278286342924515487867820509033685178378694781127649986369937434758455469011538061653022970903175669688741270482958244799380153227767256860442588583467018909699070535617887940882410221482827580748455525109149717375803478628403557243571561655640275058469886533029710437612036965300594193435382722678253209889909255689046727388722474631045291739142807441757683263087504736474655920247981482493134686129334675029599610368574519107205604452992361642650055852296907055654083982563586690839420214767751649798714033633055931709677982402713995675234514949856847615291556882002527595292256202288381605608508925570160046809844686927131708152006036486678982429737941783719954395484088778429377724015842866459988768630064558910782681791689467771311306700509862784370142239590833869037412196289431980072284022575806661677673473193258302376557616141577832995942934299998351285185013124266961433066405500259193624300657089069542163373733950050109186910886829082002220908043426502260345167066315574160018531712385905580167599466294159453731121121789687980161708548007467796844369785854446452843642346300849842813424713263719053342782070682542806545202611420352645568530151826470344733595172438888865819236556068638115648028848648384502374495435414641076818173094969416752891817176425692112968439278081818024479312961719897270816104899230004709566801238677247999497812067493612228587256509223159904207054605121806593087728279691114485006719799328142864217202481117319115026685399701956758782826032858596122148624143697845580896391714517649214400044922091139778468830062486246892989964348650521138345244853817463761436615287851989710927708381375244526616023640230840827406525749772468155599366056926600295607650242700435413317447678097527269141011506360826340571866680212418558306679983330960795094028938322516535504691881392925030539958654651794376667794132187775652262951696958827259488731043282600374892607223896873738151800021667411034706637182825485631001268905733569916893438346398669431894554768076486183635103443715539378089691363458237418466354291041284591588923139210208910802472677094815040207219307486093067911470545195554189487451811266729204980252775046269826637689351834442649353119261436970985123014183080704479744184276607249534381799932576035758059045573803219793400695579259307626764516702686486213612891749420936711290015420576001787106595549556969775453095990788900416313482683183462632624612071336699749954403745224488060523726770106355791416134987918619675696220116477712665233162496097905602879863137833123210462044560100915815754883101948229578714382659150112289281224662797992576486158820016983990064552937212817796616558995630909278805663424565194681566036261128861750900033214998729920911552131025690941083514279354575210936852457220539739853912307026477937099773593233853557308093267459615987003392248662110403844071391115753215407163549744473904563557007038519519878401373134113782849038920660002185877807715338541518069408581878078447661185884631412044536942043427058384269951865436179238622741253917456364664799503505994593851900350052462774498239258947005947467070232810317403639427394466248456798190772751227963239906764262461904277014480198981201617747822264083514972578280275360718197702205344091823770927219729044348482633355550284765113185242952176347754297314398278160627191858428915634510893865692651264334303792593279687876688989916746467581712979295841854965121708101203577004945902167036562977413966460473117545776892004246548845179322031737723918283129784173284775663466769112931610306194679932790960371251980706102892290709949532774284465398127511828804569443421383524693712302410610374352669437493007697243584893680647483171861517093156514912790496311339749984216622030142939642014059991067070431514907329404169643700706719094648022110980138699635526506966868886152390750425574049520337530606608035441683102542371381749543380823264989749285293628394634194767907225657487509746096939874485855372412200948425921000426398794722469113424471021724128568609972217146973960540072931185595420601417887981448822624180563149811555566120555287897957549664738480799218836823759362319871874835982828976344596562412342839178442981710806898117527491119654667121302540908478721904341261834383158094427777371258997794234372278175177584473164943022581539187597004570795843808078630154885062474843952938871969368684198658290915826616871510994577512835236599399616023265757275575693414012067508761275468102652518165555841859608362435322815788787022499417917983360611410488889804904548541797308159032630409693494091945812086437497577352658773701526795160912468875796758230527682127071357881763427344602977194325989048978868634149112754971584062067142563045223570821761455122463935209797126099764734481152955170215560707333265016522198299442073330679880470211544145399597773204501366494587457683731104243636725300770155539280540705567205010382801239159579150728453985768546238998644782502685802817432275921647882838652444946466286543804637367552845672947265606865412854023495327633353182814252289721822643457456457639118940406142345902745701154955157790628975031067030896928773313234979211525043266075031339235331507708924230841495708840068024660424399228643210160201293352133479465362584339494287637756245764990099367211440424806058356500747066044318473070657059334402086190997769140520637174482161188475155971139490326341431666471846329990268207269524459532365721239660810825234115069621976226780916997097855093368076927048904761028468851823751040696458944069533571795756608563535974091548326215706134113307949201562058772761482350862157221143726824433557114297252219437460948039080159514098596479523419587512888269496843478181852956936093268568187011939803468872835849225007073490101972825713238466110864579035433646943343404923056552383838386271574067689565203000707831690743675069347276416408396149194571313032862741588284639096242720400745059352442924801305433599806221722741804580022941344909414940622158655780200910999826094727384514922122751736303811874461233184637330474701460761806774249829876373558868015192760935525241642517062103643294472344094624203659385191724020131616066084462970510323316247936687332049221053092587111585704155959706264818988746658511227628757441511684227488987277689688325056566144949487004851794169932625861811952563840161274738338664832186719352139812057027947571519380312609214319372783048638008181064507181391735423980170465446335644167030402364386837731253232713858641145590858054596034204041834661002814102689905945388093109120150107642659510049905231225650253038730548311435890714784715722475379041623841338799609144748833366931431581514088804524292189638648044788424627784643827649844957216861912857997618319100498032460157993940187373191883143619662206159710776423891794266190025206951909525022433094203326184234933499230361874768792891861252372342283531148255280097247328777425949511739834907210684034632305039984600847894885448645907435994073008390860015090853277409500206966091548145656341752781747955958773426535449433850174476283636571158059320434675276211682088821961895579440971790873493961241470340336806523160598154148106960229475247373277788439819826303115940323188472447807885833841346241336852425639289602442185378290478272971284426297276537396838738197838477824567841691389950764422003280117533690347169437295303329532960952773569360107586252064632538567508594029931129895754102096614696639446346868791888046012157126929886282312952371628634045231498386783734024252238395129456507104617741364886728280387698034109371153137148519731604256054819785355965243425061482201738405626730554085477183434802468433006673634107527665031325554828926448099450587423785810308660112978932898548259093053784950628370877300686752207602701697900965272824791350016733845911827729132125664005665008095650584245680959923790346728158650518755935188381835087170189380459416189987330689044804719508806474971885267683166325721080883309769202082555910206876944005205624279876770583572310790884916196892605288207000424783355695605501753222815464290363412295255179351132438181111855965735469535893526646570084519929316739044808524262110878022282925085855662102174137356763385292882207717254515772352487161871933576699136137163863381373965645990191702258082629500451602725630023021065614117662616952307979353219550506426808044952401541066515679196160552314991900927510205849797056728569547342326730167891366391901856143262975856287156696123394917630834669064120185798547501253145223676845122209565847114604152118150727536637687062658599114534730702840199841494546247124771948646318002927605169539427335560216860863846604040130796889391553979234395864275191353521482194091579876467878796021231078729590958489306001465259284444656104887869080004602801892028621998826447050862170641246691974985436346433200330642230593928473760754700776731993451058351096400503174916958897784026367836319219832160598423419168388242155597743689718167613873255930688064695695453472618593221397499480953587066814713287556299062818475227732196133836326590892449149747967315646668769795149083614558137617773817830502716653664820924397719197335138292695819809744983356698283904132454605490431230068469771648470618499971758590477891072669313984989882764765715028968790210508235167444304988764122517733334128250648457682035560367141811780748423405677996447082997633832155250858149068732190324292911593236422433734992729669441194503923670101282414469669076137258143508602466810177454514257696464935523015700791852292985903531307184384813542532266431572520573291983092351110262808166317886503107619670256780455109442261464725852783787243442397474687144748814291467978617363646764039000818141769199879009579969976217224434882848208292452677549999063610770594459402611119988983146486600241071567078489075986525703995215928227269044103205796658050304438619640463208068104257367375971864236624782456041937823702141351502354491814983978400601720787443624792096947900387319207585145667771340534357721500200068736471637858962919426846161681141665397690451147182580910212362015455466350343221771378471457181722726591803602554400218580874819465927565483346674428257367799177899312700847821183378821861754731338768054186792613941679612087518616444758164920111943698812186845763953533409761508875505122106746105385481596492556820100378519582396057486864707943274662904183692839168983455774355289923094588019454743673727613953562773679871164947379910178755274842574069273486871008637407288402771836462581627444780004579038166285171915220281687634698242715396245465168114185289417007931801343237348056742533388645077196806313417348690300305289229812538803047930632396075683367437066318723704038905302582621190642542432797435174925910778723229212422020039700529011668530052081709851064310128521012394530856210080077413927410549669112202666826422663059212857192467595271362970758142017358128038121711924404921440453707688117096820947290524432228240078193453117511879669464843510954116750415267052170702929126489674177062459768580141996212118478113243786256399246401039626166380621275700610207412379989697432242948134019028263380753673771897437491983711162758717759610582932456072046698101002356612982657067538950381425674608186144853428457502239779338976211354741520171294538062308483782736598542702928478036574274203887098951597685381017723412214819875079568613972209509952492572457562842800606944990141769336053014517118326128935897440339152886068969554599921835303939630300491495642286567020777541793335098239570214076520473435206288255392775240085753484362718037242997820141277835633835781679698351357364253805641338720981530062315058454153211419314115760331299156637095131068903205802326589031824822127602541186192071317487181173700450604064442051375785983146166580986952214727518519305568295860877683987489979880402862450169963613850898660352544411185563931863871178759006619558206374007997587957481281256043516539030262894513357859915946850040972731462898653636817715667947137533133036835172231554921665320108631132272889152758022185089790003784086709925760604334381703786160301459374342410559936505115478069629352972591331228891905424799988337963944843961600758691757974745501988724275414500890973554729963333034574851716053999521215348688709134345462748374058646236230999989546009588809118029216915529941529481016235466691438346470956010181629862427151200042982738805585805451601953602328699936044594595480003333901633273971806855150667084233012462407837946100364832007558859109640149245041598125566165578213757078653248464377789844755181980127253085742207744878675289610956329069736508128574755628233966693951899233434422554288366410636032507764249257512568904670300927577353508658552748972907785094279914635136990304298130246199136249334367825094734464829046366315631486985149267862500102482005617633879707907266581015140391482583059188958895650121878122121780970589589719775606057729961662724149942199228517573080504875803863815179187999512033635999639498417677376602162279582255443092304454694242006615160612460795521568765057352877709174719627139758714078860388629095904067844698263869675318201817295981853460747288807483085880325784081714012613776237767921827142137276058149408212188188157154674833593780636599838580388769888232529467634532705940764449786383075931331807068127506843073729096594179852637618924365904850686916768142470095360408847783724284440019811228694310620543334156600274154234412933223394091131043332148459435752460867900948683574659192488102453055244326556718734871682352245502908232823144536583059799427649835026113022516250316059653616127241875213135675317825225718395704729489335968429577273221510509226006951706465533979910828065519012397291193077661366771428544951117239152840617629487027121881457875507016890725116802907583493107347750022320558782112920729457096807524096476667971776554179345843619800767581726165166526881384130478983077190130377726504969699015303829989718108881114080511251437656117930351760645897089862764370426344227030583407767576080163540477430599535174049050114310010450435324249692297797139021733028711369471133838390238241451216683909980227579957336752113075611296916185867998118207577642788463527233151148910808169396296471590994557156232998294392605740640263438812678567639432802030693256809096006839789756260257098822797732404231406120749905057440833887445024153518931532566926493603634128978496664434545852805681588216990487440621748641507926154309733946402201239343159600630714582943623374937020263030958180785582505649128863850360497396211144847998145780642987938752736924647102005318995187135628263414706599955623033716592185551716305793873744948994976900682317331310138217792025197984716373075553266727102458162274963653266403439058522395632922464796883126638429913015774865460173069350512528227477249217418434379938830331127648246698802292796271932260013131648867468011639063383908244941461127948174682737629115294605743869591125393407422485392446579846597536217368944354567882556908995574392746740790555184674683393009919589545476985273557198365443548647134235644465652816153936829732472094730530835433226950912781868701168183838786119772079717017787295615477219260752315129539651478023775229783579735085367124468836000381090074566399249560530695761896721598452922680772225036787906588135064792484910205364179923001247001299353693300347014834937960389417691397183803914660702027701269486289190791039852764361702609332508584662452500132003951593705300940486688569030086055157367123336923730441390360456132007904407766423299245255666662814254671745495764693039023991478645690948575032747050443873080940244098899382657941170252370443388878877621255252601965259433716035477356790946768398131064209218680163814541715306850996166596871218960386185576038488648087376627824909764501800605135777605542787358997500556149903882192339423658785911455588015077171246682310570193633964800900939929839741977720735302922383111250849756243070862476576280821419111046113565270569157902848680434138200667787362875163715818701186460147741843067746656932188976334311861316963175104723958855276547016897338811866521764662635425257506959504867614867315120349864386202144318447925866184058138063636058478281641809934807858815000838720321107820656538422478790689928783895551999220721317696553963417476617798656567869029059633826954464854680175477281250440351002640371756830387135714513594527587336863702209762265570981742483666492300467459161248093684502297169343916147999937171024270279960812811545898761319928829541182527439374179928665523218176958425233002336766477764993795182382597715567098562481266051292780841943375504819232416908527917106739326698843856799197656199920729382767549093518213870843360985466629103783454756822445524778948290975996550438361363926006319258020392445252502999521623673531565538734675023063877590034096219709461338370700613894061044072177435440883997611349146447119367877933693332886963413668840602105177792034940412135957625424131365944321633524898420539054844976706624827796442145818653372798521005364193218033809500075872631575771384301223815722785785981985841272024531710023786637187497864142507427589482215835532772794579911718088855900491616443560717776516899153635857706307561563331722014881596460243462653268174469027109373555647481456344103774251273781825293989890243827782400814207069646679698883601754470319208034361296177681891169747607628135523455984038186189125478164267877423269646719168376945685577259539619954120469275996414363399637826294461962346718733590900983613027103020850448479016248735989259593396324581426034432815813064737917428213616356043132300920370655174661902760172251382338639904493075022667976366123823642586325550016660854683865162809045140793214044610674323395890262415235560041568521977973979942432278228726717924558711212900904548585493024528291821620819556292340152774226792093446079775595342528695152495794489737224554570848057413641242107715876558335574592692011225934574964263686519910446482507403424130373696066952177587980720718298302485474603852057346480444604385761862438347713606979005088302836299956624965538692456199591266754065415358553723608561397653124023399276325250849281833989753037986662597544479709460880195295681013063004169173774674423568363564375250116016368359056970408444915307915769219666366238989957625380059413182380244297021741050377431426623634473733112000985068588907379162285820172587054990197123470256345961811689314497357020193173651846131023092406803459234722740774307956902400592663557270632384729601490354385575298013754203688383884449460975180960747920091130157769708343041766343355418099933399264828090958315175080808621239680750777450814306588637901160228570483388698314065145922204212220020354982862752848919271884626569174619466281320548186963397003927691909406341170609196475713506012640424134517750834556662826949022299254744018384058115351954248602997644453458789470201445418958145938618897383881935858912015549297182351849394962322442597953534689393718779433205958601731834903591599947675295501638674984923371082818893008522395975451325509941689823088835897378287773714081810555021335539305161237779345415320293347994732693891094335202014633933362630212064969180890025776240350899649762369753236207022646427608434369550028384128470631441144003810268567663853443752288251039300926029717383396562449848526901911221122854244507854527415441455174930903473273227469892156407632009085650179166229286687422684729875481671997048276459315423132458413984887385734237357169018503069156793104767508097723253827849720355200014639818798558408779348463077691269816513045206226878530830864332860194293598006411845314847837790471811821074814509119971600522487093905304184434921787778302415962268472217396965832066350956025631305235714428539787450400977999251173202458156101182769618193171361889882278654785978069007975282306108210361596298193942679413194135436728403634424571331423066400688671197806078785748914448204411632157929173495399404628089154824998916492425954655498761548344631240071646650046645569066219729564066907201484997708782731204681780126228133513443468144749967296138660853754924062115246160245686249518386226032510536384744892092723417540513016884108358451364879655460231025924197304998086242800962413106942723841673130736313599572395530897009083628029454085120949275266006943967842799648350218303534149075430381041781326791743335689408287097379856445189328247086049380889539499842125740481228783003024387630695499168383991164768608239335337227744389730688038396192313018439125191660795310285596409755620063027069935671794981983187561623992545691796488028321699717303986002155414699221906925806192787249890478852053181646301310953592915824846502636637416852521644258488726984359992417825815068584065888829868820217587949515123978667348626631707382647845304849177733485190623242438129102675626826691747394595667586056078558231167189392100562303635207197412714094123127121843718928394303735007523448575779068309241496763816351471071023249961289337943689862603199158613768497358272234147070292408223630427229009115734281811424812130108211418657725548520575397004664253031214174625807727531568891661949818370013730728904761498337805845079521661593683245448303475491115985833818135072144714104066795565332833137530656372123000617011099838862607992327531914748684635963108474146880238692175975636893028595354248847426426853012863627052818432982962282399574628042311627689405793978716713945142343563130346338599515247453256698925935776597644018583390686466068433787646265642010486824681731054873664508667136692655502985975256429253544928469690654157013272538267000715927463013702611665399744526266824683106890140575986368088270774450758304365055037866414106499319841594514411050101256127932081301491781769360869914152279016196869953746368591859823027064594082944442347918679602011379731310329306092296015914625052827211919073761651878140630452666278884917536194728289376269965404748536068169990618741075248256601265830610012826438222848285241726862618830394603110272342569337753578682426476875080034014103591844152610308111384763432594700949424762128345758265678879063971733833105456928627336686618428751419212692730804646213484612812281972159577637919808527023047644641556156477514340438680432328359613245483989013626319352945649949163565400022291251803855525891025128105128368764218173142438687823221372484835149869333122664897813686619647006049531294316340416211618895740239445450890862240942928013218727294261924438888059913728229887445057377666583212101096513594764847534550744363970142934853109056368703009747311436913738249457168091278613326625963562716606533957315245235555243569923707228807150808591595616451077346452194838725359883251796089859553558623139321675448872243016031325142468587059495591993808322572255686172769740220026410882044086135691635322792803921541982289474678969112005396344216174857901835311616922637006231244349423290201665390684412359730430888815969718986689268223182401716057929824590076121439651365207729882075892206362091445044966413409625102874534715333600941626782999021940430078998286223411671955267131630728498118665464062600161065819359619607720313161841682595708806094374964954511921665124125008595002118240316637076936961336495344010838271628489380213875348254752253774147059081011603539292113159026264854852900642157031599092854340020012687485634723413042234870008981908380352495768450219691587297157327605686265120468260076054352272063436493936387751200601979510495314356056304753868611609426423840161110828952017904345462747363141989184714666269608630330420396021514859785429357367252280317620648693610083674409878719021078172111770871751646461232560490515325795419017547344553264252188857224739532917937552768162887153385269004153700779563787414267986798218453002057631465559766749609788359330201985895203754317473693961082460244906088474122907356152472813469064538019655939730469289533799947655938902606706476074632641446573121566782888858751246476591647235027089097652728868464445589206311960941833851467324936779023285896300092822236137275561902372255264762816990282851963160152101366214886541484103949807910362819266180080618022505633793039602301314632947780885665967881605401257148284953778735758862403019866737875468886731221521503194548226519539244076224996434883883236350227224681313882507553746752330934811109303117651330717577754412270129872320682079114538630802899164585255876860979471472985507279821740270281039043490200440151859652226647785410954836718290522262900879905228061740782825108529461988546992511602138000751738226257665694113345090135755936595084489374017312023474554225345426856759456948054053373312910519443865752403578708589761755412919621943689467585929490801066882993463023015141492564483043440136316049052457395089402433298677582930274367441883055368628064057428309124126122717330230029623203797764853516089113704286017196891300919380169200282360605370664715744262106676982726676873093221927266499351274783105047909841195410606375119177670382418305056124531388668539632503135093491413318315529756401479152404280352074217073961211294982473136895620034582783983659545649252849502370795517511106191706825223349442548120557404916868995949072486347893763821848062147510110683118065420949526238119220718414984704529523704596560694531403144927965988960207694714862146440718679463958550500683767525304044365237666708047901835747778449643968628835814214031822333691246681365900758633126912485891815207526087112486983680161351809440658922372685836048014411792851192017519316311435650435985763836152222127263689337212701648529739864230608547980118520108686208323161492457643127630015152982265006676995191518909760953826765796809960571738677009538885303325542826094631156021612523158152341392305951604999449002482740793211402736031149347103655365807138530729655709799946666192165793754360207266646239167265984685952233176563414352405824800800235632057571852859369676394409576346293259669294722805571095745463226574387930582068143161460888994166806110088292605750513243554092343973349392166331125434239858255828017479495745678589895487936211255440150770152340749091025179280015329166609683820088412969635211303657804520055303026462905810778603814009131947833644108813125970423144068403555981539355623745048067320515711710271409289221479187491704653315587966599166620312167626702156077180490346656307020416127222950938315032922045526141220869699558087171196837027917281647455218132402646046224834054017110257726230923826157205573817225522144883322787792320257526207566315961333926017424050312158203435408779732864381845329543771923139793169900666305702365808433119948014044069492538686461342541057314362542964726885303573883733749366242337489563472901458624517335998978854674071882031783151464532721516457600799803513950008568694012841036880425363583903590027091109465822352962436202457508409202392807604292988012584475070286206303779098172759432089461055703549817718176403661526529260268392015182682301679779171060938680544463428300490456231429850106123375244414486626383388965589192804183208487148493917999310475818553566009723563635248770484215122211632687046475921502498639971871081981172201387525163330342677421667228895956008605360427939257602937669674485723708213842006913929241166574324918905186977103618532930554518956361072102641133930897886053562375741464092732968204076804472500330611164492909241363627149523211583241924410299366613505606129402712470146913242510167756583699025339388757083884187760595636736111983773765375203187865058039224276726596836699252454203063298467281127237413117308890189822289446956991631224879645864386197018747527877113715897970422332728730810286822991413236895385281736828174857700120907865071640583474510234391999871609252639667430758587596225060666124961164229376664197061198298302351494155035256179210048154776636996863706769488553083627018800293348747244068795918234952926838660803995097121780217458119708142787483499033537560404875757052269674185726014138666145476513367082412750846346465213069180129660893008439853027124894434442836694140545288327303983609768487203401769790262326971171984543596286120255058704168328297580856902206063570848016273870344231111974816978658801016733045563082078832047653118874966744914294129088655630468709587133508391535830614360368733898276590873937011831623428919654729385083334424532846831048376460306170082349333987984748827937628816093939846182303555020202842969636271153728542985617497165153082502768843554899412010341012214620840238197122039831319198577082698328936403733981653043222616570523932951028059493303011084335875483360096912990784989126663478803985856240593331395600717600968222582550990963922318796069775224294407519180799934584068891312956961000663165051090790001128339191542612687487398480078724103646070262885106619801306192749433352624119974028150831721285143278591057876915286975848367847402286814878325683516243944521355375086380889434031683978874287207197132685924030442257091768988850539595344636541385910087480325171532778927673693457739777465456022629685947346270688790354806994815691866068620340874396715696876566353243173402167446635888102406372316571727415174448694060231020943812034738986837527475626027489580285076373798417156838629194885883865682550954827177508491028652030142671939211835175681258942477154535589816414804605361904609902319856576332901202776550725789572831668700423574230184843665827805544552822041967707950295331043826705942326174700576797125166472942231989280981791325366198891768987015226701593793106723545280909954591468706944182058928864345230204538049315026230768080493824747842778462167339698079104129439745430940009895004396856696692950214452718689229836860879812199258811506292793657256959706886311052689435533676321508109261346399650172025100193726782953207083417723432902388155358775769692258661734745087263120518887076256512523269258418057955274190392186082275615333343479949031701343048279183765704763680780648210460700070940859274993729386475141241616926574253772838203532546427325567329252133059491305690348850010467840332878918405412604544774008547124909727477567168988134430153913705581248531965154811339975576770912288860424199707849264169638033041176055661069125357110374463265103293277774636662643133301935079158496473178377730637991860658005436878760598622833371858119978052483345092069236435488946593794530419629612590709408203627981174549355002193895613109218635524164782369920442035507842297012953578765126942385562216876291798037613175127162603079229951227532592044361537777763401786930543515873072255355544715335714320211660686319315698957075598249418967468008757059054414746660186385179939032563262538807602918190871823241383075735849841356979676138685189484338438188500074581625372776411449788703325196927619079170466494667427087528389598799238909044535628914764542043353886197686196490949676231624227771221217763572251328048274487380886465620905579183813218838787843877940243526310807817245843767470541273882673967768751283933009629624904784296925159203944779020108290602908059660378406261120011826310544199047965458923744638901612100120665346529864049278897915735887894442699092246515322338843689082647578083908258656752300973943001199270748933600879750598522043259040740554943644063807824917070403695316869527974092963848299796031006641593038399207661729360084901163770024760648310467911414052512497537666976437893534315396493057875861679708895988914742206288917579273543288045403041752739237624566340619936005254144549508157431367101163025108725600794979232262536905105106932197078857749385596045196491746604721010542308645787666686928951770260010445491059363135389413206766510320613795320373460386337002860085784509069828979711798119413024916164530592436005936488755130425140541013305886499748848993537184376900756087613164935747384632716867849634321459266455472561395752924089009782937642377773141247272076525641492782983018216768207862667353117977210728942914104092778943878890906994673298187843512337238619183740070500458008612644761242380590061710524761937601536253465961503799909720540840876411259949739765824493475803981946710576073383320315411991442494775092677897188034057843417241298799874840343996827463836692184480905813625658304184545446904909698249758166264622509649003530251015358829180713333362234933794437859466630989730608570333740166827332234591141843177574702243030236528418744719223355447486682022918491981696180515741044529836986082468441988022694455464421945868312822929671640053201600006805211251688000509259540378007100930505709172482703488511477434815905764071059901624944039444278523783725371801737214652981054798033244548908303365769824551672811537622959472874615116056574175819746802839815945370382551617809560544283603612877101070090777364507687089527674173607582156936855274224964543121765458250999791991539699461938513377451632047944883971378246948733977963785749550505280033798732458749841762170970359549856170025520550123517017133011905045810989394518848418839422958495312743176246086949903460412615850338174237078864263200970296330156951757764405285234750301342296868300178442991749839720986611329231878729123043658465985598502918080576870785713533109422602420847467511205007678970227657482961583274252219284576881454950506045168281017732726377374991048333693064196304408776942522468042871968006864849111749206159786139098777511272870504698488474183069076870102436394529171589042097967012519365967807472258532818866949252195590684765866186016420817077269354367729735408396654237214260246748876358249666062427720363834701676573531498298718067682764299951707326915162949887764443615266344568165843054388150776851587481792652518622686565706682331776661062323072659866533560082920752540431782677191900299581579655502951309466125245601253788611450104667325129932459787576757019098608218720997087947140250674663273070243579218703739202315157704629351551663326648419918139042913972524842472094817180249467490498096168093323180519220750730272390487936640041149939142440853269836546872964160228125411244451129458340899255173085228801003982709655030763959119267120793667596954197391941747072902902096509060469029187342435683646652821114912733459950300073869171469954257780459235980916737339361377247823407176043655321648751160489529285361465400476595321425690199526547403202062202500422888108059129399924537587076980696925404830360768131322768380515600699705405759019310403125831047608658482721014211160004800830008207075105190192470372182645938081184928997992386672868384654403027375119648417356953966305986871733345079858334503560600296877720181513146008780997702647369036639531500989835473119116453722939913473899621341428972899938802796165009728232488837649328018166038976745590586545643938846167804048861007918959530238585345218699191161157951800327023999876299112710598777184693028730948955051066531338092085276654604506076062193946581263076796570641756668900575780773920200720207018484517337625241743387929326157295485573972665273526758984557061751884923278170337600277301014846222768355292009584871244214340282229997593191243420876467401229343346512638387465900359169131425024818247235728267758558237934394590235448575264038638371006916546342808285504435882383138358921194558500043097939601574687156118511602552040626059708181368769506874706698768214047884649037969264306544891382751664099314793401457355798299438032971474403539028153802133872670167613608116262463775734957980902581606052072853792850915153508507256250635445578953993315987514890508638061297484792089095363799663060472057570857538258809054081912836040922020268231530290881139719988847064840409526436277549679866200310963183847464047037077173063727458665822392633666181381013684463706374295766618503097309298123556119655081535065053829304091105801600201313084195519026380949018310254440422593047982525449814236137628869647975982933364131261587964674046577083343861236448078734514956722913258484975453587950734392739534015274533618247782749955804581810323076500683029541654234795539062508286205410016014154252897329493697995977827026747829500617921389084910353470787856273289111721672481138060465255151408398811092863432813966356961855974490057395535903907314051992839545626201214282111193299667895205485130521426109018138681276413093585255321315302718598871983664115181999701935848637855388672603941949617436930332651356420478021791770812358012070936977605844081292147499328181257603018211692179759772441806210840507365172451374051708263486579953574826337562839874689911279722890680603641348352983791361689267265310116305369349583420821712535897702747487634506747186136904388817014900635126136487174583997326251312848328118404945905508088671304825909503533693109773658109561580934481971113914212893275371037897455687566037956602856233649363762664995434288075839431846129069409955476605401600203207738282492125759221850412801249957044212826666221358328324400046605587318386930864597438207568564449048800790650428446515373615529608891108263662959237387722950845280580850123535025122283001712278699373055149584280828908678953456597952546220021729554010227319508353059506427373190334127907666777059233974622824949582344359522197000778824673392915568554425381045004894687061371227764437600113107550957588939847929830709066346402634415562413524455242595423390672619217575372440995596840510346846046602363069960253476607297191579354675401706180698531116479985266390625976985228255952453330917164891394839333320403688865032508722679585675258762221490656810346136770514616092104561781170992208806640936999418604246919887167027521196590369789666531790763856946589348597286854054257948761586844599087093092069085726425561438707642335296007475343479602308679687560256507167103455739045769254198826376582801703530718463665735098108717109196903170216785785977733277131786948322917359900133853358552769374181764780291997318895099914730754283777392597706296024773787761721803816024166182461045731842592464987503744214264801265982830974022629507608255680425689233061645589336683204885365086961962578937346773668533345648584136111517288446497750842161883043922698181897529047072778798408187245807492979813054056562974274518202319253857026047488975341619518184495765271172233706797009994513699546615301506352894196167133638573880630939743516366796092413358500217841322112217785382113473948304288805829328790220554524878071690603995177318027496745615426852418274305339673015558249269272079184698651526529870463356636286713488229996527650206291384982958318995747147532231157133067941375481485487696937178723957591915528603154884199028044868726480944791121937183005014266152383561729699815912807754617996767052525405738942396352425888198307658204255577861401452793202070577709634503955093407581361274190519947509102430900763153326425306921503874327006902674113366620282593282992680622300831505185711114309594110046894632576410234640818164502612284255939365311889682987159389584181809876068796761078267031072744514346821190447164291660878874770109406757699625270950432013274235761154415963184779209099774235568084658105066903711229479267411165129021640358032947556221237932079127312962347255167520804169784325563202841836318143971583331341726093646164105642139104313326190209194775849465034183214551657039691862216160887186283784836408368563171800248508192770880561385627163388859572273820730517779140129382616236303950137007867365915491584927534869411199184096593679154795715180981957269937171630179381696282884268304674930021416916067419106030845393247857399331281645040457212226360580351762450414308831803391272548534946058014917967938682150558382086096969749447022388224605299460222505502425484793796194963265763479248841205954322992986565978155383673338982470325916746788875934305792134210497178747528852579590202668344470839682013959111044022343127915441237017482361758031338734085679198436437248066959892196523654728028239411428374095093134306332180404508725611365039121681799465890330704246987759768178799468419771045083214137021049194774161249890099508172705719756318446553779712659101834793670383344598436393061702039058999311726952089293882333670761401913572489561390680952099159315034823044148793152732946093146165141048716450696227472591161211052558904306742385600858637210204807817655475639371737539991475510633548442103000618845514459895870528365190395777341275297435329598570568467837542476409326797062385694480317448583433434248116472597540311359496904975243226328725025484030995378259069339484941401638252819942733420678984558347366699712120441012536953659544428985741564831806503079323639347772950022395838132936102221200303291772024386574044040559571272871264033729377328476826062152241039543344771081564183910729491248200335485426950839251010217223409144724295505513411954588923222734097486959864691459175293437594653894454805550740991853624071796478610019395660100729852413439598523589270450119530881093397526216578919789338412174865677750869347773754952854780001276207621529104021793189467253377621162536640120297979267228284849966432370098180556743322704637845676241345178341179461739185410013685950875226609962099367373805519075905893289022687429498297092305884494863447309890813375795685267826686651919496058488952161623951685045409346089661170328085563712420096262811350527152095107530702364851436736148589895352159090217382459320904702423321451678432283366303254514895281189493896724239943156265598687305852578190350714888437789243683284499240737398702300453933179315735118331903919704392467457159025982233188377742775395303813721586506579682128345744787831418219861219561431687457411566857962019079135523351814557032622161228123070929312699886567379177309451850050952129719124265377821632543807599370715039891011791298535520633403932437158935761416188721912946789791552729174638145621509496050513383621640937972228143166863481725679553587665465455892133663814372558141141329093513095845836175088856972993307557566966813234384139026361046722055175017377191946504470238455104603602677281835503961626778430896614490573714767751462667008876583196258102485087243730003444529738797904759938337305520164160642331674449856552105766659309442492439824256711173506590750917469615241071625879935686280749723853097287188594478341264271382457045605279409525159123188377020292460317399178343255454643474827452973799324599719290183188290557687391064721884960863111059129677906264773684978694887484532652456327746649147664970037516398206485357515768625461583599256934383541460542546472029795753685059286204610427192116504387545112736645369194928682822671420750908320550121074018168609667510104456167779949619521455008506211601599592643524272732469695401151877192804303574191690859961683434674609182915882667385510856191680656766195511368300065854570284770477726231904098201619540192774611375510519267453492578174525527244077435338043197737974807480387151321573884875711688928851669450140612169336859876794775658816815221882109088621369258382463695056148303691704667281635376079193252323662069190225454485002367413402605692652341412245210608116143211935826498297973258120457838717377595441268370758866937742676247701436332271286056668631507038115924043275030719666904779896325185846481145735297124721026236882111428932404260232184806012411572667486270115209944754510981651326026768757426673525085784678549490981661218484770703131633328946825971594756846634072976011486620539923279369186489148684949927145046512506617355316877118724233109476074767520689499212521178360511531486126379075952033126024216095936131743410355405431029185743116541031187717407084137284915602898232399192879879224169537166401070274212161595492510798592808155125475503107978725043579846654957783545126532021742312106329470274520653626869337219016439976342357697049237863615771488396547775831251737917825990126513570975114223127203842485264495062788891792338325442888795698709161930193004918365978735854864503624767024841527311103280061349530359699669090329742778520666049110989772426453754072021806851745765443194334301988092102753677860315850038383810271099607498632610310192969933436166409198776852181253306582526851812174371929880639597450072720705254624892446624825035748772063658400566003927865690967993133693464839998911852970350563644298991826719921953906795477591754092707718221257849943952340683260700536663569266083188559429584158526205481610983431465498730034415293966118810195454524811656342964373723085249377941846574663119764449661912085675618322893754190876414223445513562929199523460615388446722200289158499665915467748815270406562579641271396744841870723182184259378303835240607854648699297028411868646544257380824363344835186006123940585101225182840609588328536221570735876623460167761579893159384012259976202142887233138645399240336013870374500995143988408435171804085441378170295150882703916908162762073365818124683064703180898047688071181164149600012519380601719705261078502846341805782468117981414123846409602740931731342145450630653607465263973622044598280459092088481395680812835267791779944343295728983334839140528650714336214771150936380208418743258758159978102664316488793837600287952103948523304173016894875904343248708345717829176567678571655821870271064352322382346471436691241501513421019504408566717172570175930338386597990362208782225618553034340944329614754140814949615144369570949528862225673687870048302506423925947386454763910002822199258619729971653113922367070208961316548182065143063931551043552001172847950658019977880478363664915248146253120516937057332299363856595113217021799792587102408440766628864035859881559559165545518210490005623287802938724867317334203224210936796556603464450073724315194931984782322356278388729527730813224871458721380658234619796137678922742455400839014886336067741609664048915308053308584669260590123768431076613083923377459651218772984620637365576325629849041319922157945479023708767629232518947073469168396920066595238936315421029518332271756324856569229408243312104319949076633328228585983091646545909178721843569939414561598074760697522630761486417119739857381281265002451196599629065292856036284507615788608878405821602341029022044644482002799295675081176038501253733523767865850199225933254025430116050471973119624209462502474992518680963788380465136949290640165507605294392151543119834196694707639310532228658142282022373657207185535474579393979518531282517657662110276581603612583726585478479666709096486874820079369135829588202574806041776430521667348629856820578103409746942703286229477507373427091738730653618718999515846767621277857115142909721961950289121479694369737242220007526424456376107666437052784683023127719281682253791686366399425017315720114710821383268896310085438368877357370297080967077207300307278686835287583522069662622246646664146503693397321325061967470503245145854934305220759533392511325682491798112394057513391069503016733543296166562584923383849168206062565395623542222756820102552869520370186673787384575636008021772469970858202394777344068013636607338912296724907830547515316182689990836630531957578056141653562168390126862316130975702828915635623628064638925391571349945957216138962900149435947771689396096359885264361235486505500845532062830725067471566377690842170261911698979982679438602109552776663650385879385040600984913828247648778870123802566296092634333098631165453619990540851027622445533967178916117339110930167879658608074457503831069367217138740108937207169939900889076121330010542588888506179097096885855142813072775842283018015109741663554644550563728676351719640320550018131997877600953686885816362878691288558259367955365651935294990396596198894791972945121923764418957401411509038386361865384668447410350500355230844009336704652528819125950611753111159420325913869370229027765818076154269014002796672882109897260396104010765133869214047615829901713766902854380809049478356247587592766227532874821094226566416401150427828333818549346540156962911125563599697909202605969124724078325781236460846762306639544277479840318437398114362130081882256139936919593950947241693304882887927521340266366417494723891078475850414548706969521746325589421046195108067157953164598340409326686222319111895594665162207151986499024718969083571888074303428408495230853000971924922170766203272516554051470573201673936395415541475341871961738546505527888280863286984525109032577942538023150812238220939315840402146488027940298345674486452641162393934083058441906991639847102527409152660984341317849098822922550062223818535287547177017691781381559504340699828579824906193776205105551589342917032684293255838975994825446204211549784329305279656587394224551093695982766930196080675797370703112766490134738764851051388749366953301513526454333559174950084484506335753180094096116296100578410275244684898823063394886236003245551818372275025891383178125548858623711030847092819564272577914335566956671217101945847840759218241560252364384393020643443341105402168219547580138225227272110565002711306383563952633494612670405746383017812926322908326237341304984793473257493932600310704993821953180803319262150015297357870203210846501485968009784149231292690070585484960348109296554214112049425881103380440347284170029766402498891663093933274230867830295530878748218384297636593749022762965248227492369133304295994963766060030228861284774228828671837462900503299335303185886794464554896375362032885195214010998840818926726635100398146468643572015396903779345522713983948584038818800502385893649076690421824873245850826771579357025473254448468030100403139706907328126863597147702738449310502217885519303705339848540143865897553130482928142050930795188220360912964410023215356941901841129561432663463914623026225262304001500447248700541431663224309768444368746582564493958923625974811615759999746357906528406905453850246556584613245669812396201679233428919993933619853637321931211601919906233365989962729636176131607715320656536514602338877969829210710407243095992119406463393093983523820534416879307902465198028559594951774331991149234580372280666203238941270612963450391796166445981961295933423691894437515428332889264881401262174085919867631568323368215620814143640695244655150272323930156666043671168284074911538061808628969505804077713386007873057284386652633870110243956238551868825855904767468926891300289701055381201513680294657866349607942564407731392133479468277339411894324553040022411051522073440858187547481674105637118600080379488366736370930523279932238720622561282502873596797429068047635573922433836016499000531747251861378622206148287692534809026302833644559448671481411910505340987982800131726475008388475980840155784333107449435761589050644590798499278614117652352636818371557781243813435827390808837714413895445311513087271714743633891153777415885273011826577653756294207348088656675950220174330973954155931197810858720113145258795085069359037335540127274550807912274674851882898014302567347936899994608562162358636724085656395862239723248120325171428602111120115844706370720410903339304342147377131448991064400822692776666066351678278764741393631012616419648976268290375313349392881480225148908796645212113280751863756258948726896813470112209283553351879479062664986101427939679447070372012674430522281213338177331709996903051550045625327169846818618826452348724610225277505808474225746282635256248306081503749982738101502400928489158087431765375873939479509417092704036356369161510659637458408107117447848522025806245725092570710508523863847540650101467258465437879807291621133932011666600712719207004221800148853347152835260672915832486672977307171724068226840709081756885946788635337951310306327299395460185893194194533208323692493990115158492714560357041202682786161255497483122907165856737122294982807503197906576492928060278431149737128816773421994595301195134574871539579177153939776515725422484721977913344945927351188269989744522769158195767196883262305202921190841432116135191334804387771746797863327979936277078177105659746346504740957000322730651398609788456608766601346701039299480999075299157362469146242997387998052348985859793993442179637808077909145645187320883083664517211102559428762110726973943842474457903930616843600576263292486591618839506308902363904425352659828730213101739130693689518123266730211726254741964279989275833555281882724876788608075519237987983463808301545428191021221301214343782389756160343100198554779730816459806371672887769534339622161601707293783406109041871641081772983479827910131493106300310421517822014890210260476737111408460093442748897293924551792645862926272969096641687643667773385493514999853036337918578938001020143752433939943130363909278541792597769429251640913356723273529464841415780486076673235301284265107943098863481015714398970052375290405590092828427594994461654052492399198305433027592963501413469079751956737026558933505133248175894653589069684207944335142684785308928476660880693185850517905937980061554971076868025812390099009075031220938297615984195839231933884180837606874099345330050156205414354425305241001007900625409957300347004602281715010078440329280949666627166566995131228484905027389092440314063000197833170675825402430022863140969591058712187581002661323154094101679845355971081828609975160888286124835890363180244118067198230162849283119953169605937179273419304147187477918226172464819062221379711112459429083171057532363001838051308409069977692291277439508312667572628729883771110866951526549083555680975730829506187548114186583354578613962804435408445772653518974602536136598761684121262946077039837796080040850442478515475334340828740699875030860069969361127450930651404441678977224322021151142462388018059701684759682279291228034377809816939570712891622182929575909711804442517149561380356094445597754760698292418963668943571534597930126149124178120550070744106149829545012279919863319759365568394397776882860913809313354217516246084207063857988443726836057621161129687572384000224338039937771708273886642996246960575638867195182615169423596790476028809428799924839642131957819501679308608379705622386029380168023792702218478912377292347471988069799778897850589799968833868789770752335043321943084627067351349523010501939556849277286544783488999978768171373074859742418318995348077548393048616045438678357912430931771095204274578132652347808198074253871192320992878115713628075188528379747472591126524391001597576063922888855642993297741000003755831319533701326558356725215543319783387443086331458655202687852249733836006045321517207575948071147724657468007004586929715713356339796361891659389163128843534472650278328400961819608312066995022494467387537972785803927185039600515351371031199547986666001535671467220457565315544201835114119707542956008675162787034983300660498014491636145932072555007135086779840551643176431211415394097246122046247246804902854751569638221664186117556380395839763651775274102171573125820913879283299146630527879397760041063894989020040192302235434006518264631485115105416485748582065355745769762317992078877954442283620720381621433410602339821871459356185463745591781709994247212638025252674696585349820633268747390600339215102140655261481616096283428334724824180095270353380626825868963499484967984103550622944751010168096375715309118892749272938403072597782103939900651123535525588045740795219672736834365126631746490616707484600342020745317451720609521207604626546873365243092110724369710551140331229912608476241479316617226793513212236169967856953888496478378525516945427081610240056441709917509703804466391996560418999399236576602513420365417553547365866480194041090573747899743592578883752850907159143312967369444156326535124636275207799880105569736589469055554716750677347599171120358739310504606877955139934552202310502564246493062766389843770989627323185331107847944901973073527991722667188172871777925315694776759919129544506451095330022342774257972784336841157877655372817155623598728558789871763856337591888331504446186788878580452001959815721500118411134029117833165266611729984958738355638727147768206704717611488457631571282356375866670668829709000664255387021702171551496421256246608237352735118947782385244077675669558216853462370758613400665817169276736525561308705131235558404093017792190170523963384833420999230744341971528912519667078392334732597180863379141708241447534073912498929442016451408353603180248405561434485883916139911015858228393597543834414509754954886572547392994326931773544786913879914097772401864381667976730039065291062737019247514640407882707531449617829369214288710067133057946881044512857558150631536438709731661834373186740892126734888303766717541689790511700247583753181892666764068456631239624580989239552011664870467846239232753479126771651305634352845156806930313763990359314241748376800595726461713353010799181626391813279212004606569844027607991873244213467323842597920907361586162621020075986032285099757509331015235249239409149455665120811774501908678789759559819302769196247785741746362019154418210467776280981333137195009865770097800571625084745573912976975820106741951139792522503494516982263599745808521469871303601885988297761931821264360276168898127504016578142525229696348327615441240168660876463327690935595809079738747794972566874133887730746072490360482365784937696044619402190617342910725813893540429628256739181514294934202909214919937505450530004124748481598762736439348789620487172092794567132824971818497080565775111040921847018004884547930039124543281866014345908959921526402808110001580443103273842988376017469522075255970280132428226706649847514941007975901723110655714747661789190618271043308691533477525850066836827835660600474685709311199344854813271279655632233050103300985038364685186379710354082813003309200716897061351617430678029518881026034021560889260448318394525681257319737501637775720756472379248614590286869915554413278179281527128472205015121952061522933048102830539499295966811771615657068818066960808737928601025047657284253088556372738245223895852421108161023246610638165530278691050690081646423812793840011385154099301691869732130133252087366174689312121516870533970748432022897215654537148154780152031482025314426947992686016950540433231727704006184679108067819487853255109972753420834074394119898820038659749631245293612910741140139098972806920080670312965349355681902078624843744974669856870734194288910318492226605460766674231103349203477295170571829701746154612057584126077895987930457780140858051111923870863262492103647820074839300679780487068464893369262910563727118662959507161118317378265866933098488489820254705739206429691048700637099570785216617119553346669245847387423123846467470004540438435940777246895686303166935752123554374161655788337505886222258336830571829878352950236584560870173895093444796383380215481644141039072067224679395300975116557942538497360645258037258258059043461133033374134949277315541876303152626982772399170527687031423707304870891469738680363432417776510408511271431987537361428332798230588730890486113195740004087988629125879563335136066729373473054808497603239535980550854508954123064406193773890506761735416390124598783358548576817541436335254708724370653885896458315010275047917793688059799393419654260755252443084109465663059794608868059133999455790573661825810324347632556982826003670143093206255511679128799880341491139725733894926317435901206342835185568422975474441054108879207632051655165452292603897325275761728681172809806729884988841488436679842208370033528098057115015412155753174819738479750460189719544894687137532661771003386689433668563141097141048806127194369751362329561012078072917810946695341380700460977918045727724290563789761522675350229232687032045580912766892894288956022020972827271025159174629727328073701784169745107450917076911050746691865865134739387740594151071998943193756150607232958836941052842890800826963478373994392540489781414731594029463251417499342162675094113269693488507034475161187337690817898621888266209310307417325172325545499945106455651494835056558422849751142848560674971593075481001368700305980924993003316958725019482817217050609255006101712800077166156459654946567804640633029969789337839552084791898319129422109998591715376869897593121364896492226797383823191975330377015428260379737440404897283595915147617396354461700527512634349518330476484527307914632831568015750703569250115735771437806829959230359500005191470179244917594147174565349885853291799046888600171688010387046796820216391521019346452785174036487691424967739116616945402889790447764890372964124270811778952648871718499317271884269242978172181380936775913242596891252547698349989568768638741198033354218341532067982465517894557538373068051386317596919712233720653731125999345318088440294199666918341960571007094503643822429397849246290786024508316202190255315076243951460940420095956736180771462154771618816798928406789638121465316220688120918189970798960593875374235002688507514697497650825717989396971266229009573093179010051572728610493746799859737750245514035408658931625276458004209409267914635612882510267701141718913469455247342837371401343988991382666916890486454592815149811582082769786300034324748995252040947533118527551865306614048022953948752915211575547074672475528214211251266107895271309789768755319733466567000865407938457443969885351434906467509429821135876676649525362435454207695801219502435096646625289874653530057953424624499136124608277794000143879995588825378550436148396848374494128918383097890804488994095866615592822657974346817478131428522271684272065893993065134320070452373203124422698493510118416354422970068247393169300479726089907739758594707264065935426593963824855312810843810809242350030511320829283415575138273376402363070836925902864261759415372255420777766368417420072134475713420015309491398602086022607907259661070634437134690721524196172138417488213173200759559523746649243696068024946823407206703633141194397782110766267597319148676713215125669619434782624905382125294834899058939782579686307965241871040317521690485953333429509483930424242461375450900611870766307354258265602273553853740291778520896516173408895153915013324433861467564197709817897202186355432773830424377957954020396476223139123473660419112685538837562172690566878827947890527291934003204316981942105305892372135361820763112894402201673424835463606093737655611064119817795639351724050905149621430065751181207780700810925459071112515418744818615479491372047116344656736888589927945510474642898307377178335471302285770660439906461047657015812689331221115292086917535138868714891705965877838241015689806000895855881250510331875396841934942253880024736372333118265808193481029038705196075741238414075979740955193573971764838897169781238764937827899379069197686401846014996753231673304394315081025179051156822008644571597128002358439005202163556478095486708673667757858606853080143502340628491993405619418019294021875219520276808854290083737701229327823388172545229782863444859396365983261527256287708250831085304171481069658966256892279120771165167110750449112547133991086536825149581780680522139398400665953695560756144452603815105316788760473850881449901822875771803279134818802218945516386983638830482466874760243793440751368538609924028447702745354814345143951261358762253109471452578562790389715598635422416629759156490206331302551647787769254757418462057488417946160842511133602712999680764161411243588105008517568449508003787223474293569885548045961989717881495782999645694236333475445818653488413598032920158581429938868744384542165027244256006316597936888117880914361488629115758425105953028626693204925089491362561299498750546819202640445437989451529801793495299008461682290401409610873045094362041604243577008684303675093328142757259274878747175102942856786565423407444692134680606684870994510546076999167955579921536660712581782401132051283777215960325116032058641555029832892280960950543931117171157950693488699799484642052919499267183003239075969366944672152692562822276333499011350490164940214411273769371779082602901444436378713648730584852716334611855163981565263737496326155110310630574197185592809517873061382771596474485218364081166774035069720022042148386483229189591591658100566843290223979219067491086622973986725022269188149864157964242373327053296962831219356274001913483780829280775097136923000960629004226762297642355345823516301742711297769330201970149657760103583599636179227717801736672532087165382343188576828001764411201713352840299081524021539257260442652266373555401424086843169043309861654882138023773672945426954040641291665141570005366804249290491897614343125936051233209207551289371084622712388582048350071191289489417694212427920434226328083214863460169724903175316082391843109429793549423064964568211608006544532243332406309330476791054128444000617308887052243034120582008963779778150209529193053508348914865183613493257848713116634232304022814009318791580009353690793488430292937787566805371228059745310874897896377459821963568624245498938332649057951224669919576521887801257517401296384332943238044705925954225325198109637634794314461750937389587630039434666834940875012602277229470771037267360501280535032443227701810457171002469690200311575690717230767697104201623884075390635859438901447986116403868570012529837454219565148829487196432460701084358935369138044389134490101134733521888541827975479682754471951119543299655971635847030244809653339304196132915453125906297161449054854036697118127437764708824299120344108614274397781574793177107300447552620516818661438252536822602442258352975425267115732299360435819232197965982919069020082368545687379643842963183068687112548716273851816076437365272291889468085558149230053989491608229118321341158438113627446348386688737776831131547050653254228524509722097793077635812345270158127982021632715419179067951608504417037298482876268619496222725003399436570644963955426960834585693046323667790880213289369390292633342125405612894122303886630934373760374179513384069845241142015619825389576142643677141179161481491893151252361953032066657609082763544816122172734499377428425192034417248657585393231222105114661584473078070690343473901086856652622856473430864971651334962394544881989482983773121848481167733379343375874655515874503801506617590594547555330818462681272413517951409689671872142658450613563813420327635812759061837743623073579237995800425815843186974115572378905980008024880335985220434212861054456598056309018605388265284873153012268586767583492746928999791140331778359565160712908590955706842600768742512893654412625137119953794737231393012438334645392408142001403829441995294560401520458641238253587285506896932698771005604318635057536779558105074626588554400780158313781799864801385257471918357203244868599312285872747702023967996332274546189889844476920933198484780201665959353770611566099617003646686527494434311061963933512849956249771395180125188824944438593045395881820714243734069669926921271301617476848739103750038735160599380235527123078738318468172547342276480842748028444336042838656858395890833506943247758387886349837596420563865270588881982592529965839127269810335280386587114032936941370202161656634941182300561796223880155052714249608657100220598128898053464553922727908709810362513886185961669705707514628297308341779103677667993200552871479046541595248452600389035948335888137330903884239821006831335021559929473019013312478954041890313451353840591875683291386059453767453458079759118630591118215969908128893269281849608100161302568277786761967611216647136286773408563782277632068204929040822769052145038821820067435973884105692354722467828412783179963032416852594566261671105328133700384647041489937820487149548672504345486892534192417139996176829085915391672254977806831727184848483132621237837041656188293415598415285282791812359048466990962616047838910706060968796062645618099446568361607389755447610831218843460598357465656046990069087445820063161939548148405027950689324693386852227478382413441133302505609144361635138678700359497136814776540893881850210343491179301277115012998033350971497104226764869560086192783100402725636286080811118121775635220019371581134057891829531205053175572790983953372506664694144818853320434871313341113106072648314475423076091405100359412700904221011222966786358460376221557280950131172507065138782033397144562194476173403348418341408090674154073006870526082273720350682244649665281327393260739584371519963217550798598211749349475081905952123824423099604409075619129342859559195020963981078594087227890602922004477165956768065377298633245211769263882771842114164643841764022508774979363381410906443935322889883266517565451626053544620241979881722483422465025260686790546412166526243997213469301159205299324863561441425208500721839043685881325137569418143805520192611257062618534465104567524765578193279436863309634002905168572404825717113261207149222444955224176172539657169802414834585148837084442275976717982746505217807899334861332266543251796584224343705957457738976294162660813320025141878741372521352245118037986367588764365155205413323804693205042477519757857839525372734939259350096646894856198363671639861244674445469678435866047016752837964080284819878654618052870665709302203863430383529095792762735756825343125912116679675346914470939802286891706467553108832129260367921198844897711777208352850024972229294214239068677938034336063831364623706249678426134938611801241903811163054328272096642260297482599128436076330654615150895759709736874704335320745526145277330358206672511857098685056753785725838946203496177082127217493513658717406693283640171472259967837500361378308898553539945723590460362668690623459777989051264298733085853857929519295392133518008269420231627410218829805685793324859389137225536834588791709414029225013456995746959072990753407920231125277465157337935995273271770622091119988186009311542229528965023555356654035455150680878255838786078971587834590539956895357516117103665323678620239338085813187199562774518780118846328392337956019528378535251667693229812239638415863719676261310979912488607434485430531012300469844260446000587787296730261241890846679325385866346571598660328975564054758768190601742516351798281149563118249605862015710972244410615285270550426421294609158506656849273409325896947756978150273808177092700711398377247028375227145350783185933201262704000322701119864040796963569259062460918168484645510317230450356426989262197607759747413033783156616964083466377824262612247889469306184260411175032056673301421325722432530651217917103736524293951246315388086412585753096949150379023805331866423226645372241424521654170858088317089825988040005903016942366978583394030695706256478346829708554017931298552413519986912946502127763454429688573409088183743793135856804569455263276069539210137471673204402132913910850599707947430093399813149289283740895835703104108117317799420670718085694520548526390026283935778344231623587649370119004756778175239059215385932500634533326831941383329575452015870018711803977513475932089253798798130453560637752468193583333619286921150486543894488883341645283830162973199524027071585829685896896097273815991608897337137779274211437850960573331796474956674405281282816307703863430453948888704931266787011329879046666345979804708666158413688293614867227581226610690783298758211317194094990323898882588154001515717452834236967691447324119032457319926772603201223934699548059375897714821558600597724626724314390906596383127770280583130769249592184921727320022828372166471383832037915493582249108195252348512483024649419145762562344719474217603872450654792870212091991768037493490437133193271938654935095584386114136731460381827236392454314234378156542614330994344864788452816052612869509995253838075273740883632846821394635587921521277990629254561509245904007482815565364845945908005650489948092648022390937618773154929794953388143864471745818563599734881188331923136131233653743295155439721230930654786689485342990819403842437668397456183846485739567045044235458931722197157576202489657380382673464683751255873351074698255804125610947977495716770977747309734678580985473105512176914169594422809173174904802908589516218960050012803758651829205308449328663648614929172327401517137769024322319763892749162604231081109200497475456137105247990237831217153155889218755858802171363322860233546960025224092394104566132778286431279737994715675827378931246815292874976349081008538059670357728649432896441319011498099118165621339654325162587065885668700614401386894672596635702167738235008387405995809017301853663275820718565537838626697381246701095902694105103352131746240615166359195678191240429589293122192664252538795895510709299919882421312061450430920444955936236266566462900746527651582448840638498648322412002589470427342467940616284449597830113954351774284306843991548681715161288122912871587421107424435452524121017891629045846350918527957596088560359174171206548286223290433966497499898305927899541774077289279988316856146719468052008494887346399874521373817370026845458103216803007533739620332305678232802233735597934717246179000004609872861420227666662879296631610521464815928361844659021239949674330608830142377802177797635741694764281466289807830835108270860646946297174066665435665253078382899570652083738593798618651688834201675685179580136774859641631043320083017731245241542810102367102882121571773607046450408123820326465545578057583394419359632452900602925643810538231960429099570585405707815919370893464270047727443615170929833124039600804188660836591476576435554559124784857540569144843307271225173829663477699275868442124386316495715369505551822770650394884408811723981079875066240085372253633130290271821120423939975080433724518243750685480489221727046343841792839820303835128542553486633440381601726869106629341853225307336440649432462442665217876268584875147079672510697667121284336088370907833228407357360897567361691722460303849657494504502008840959523296019082582951825684706073798075223563354029720870362364311719576446512183350311724472385795826906308346871952171341812829475151710738440429268275694608891271735567256949106737086300401919259300241647489432298302410991028958178002837575138476391741861954383723337386401232786852048548077124168978424755667715692388599493545081916735713841348176904532387147208856323188096658456818402922561719210333939037576882914857412238336393199342649699632170983427015128062137538414356716480218582725970907044666683908550679530494179977836488074791361097259055432631105464375696190449179531628706165514181876215459119256012366898552023231919170870865078768076389957780475312771204723189926578616149551161737419563056307570701021902088730411601905492281445314006888399946681638081212990480200015178008765882696901469596313791709150062028754457076475566356450095233948200360933243308563835109593392558044782120179695233149742536426071519956440975084741274496447032075164870023620772970177947836285376321218393485151802978792279203965339865106451890887908769139602794734584732622665172070551774390622600161768321086729211998920719135728974182312743535505711449409262844403621312279877370434072520905625462440716397503007946849804205243040643513602639553133736960696863741187111298568690781434051512983674345084923105874069515741141070422070609754440902041783263575775629068337500112668400610544416849119008232650003792426243899944580530474782251866045658983758172809522793504439618784222747066181005726379716678644346178824138760510347589216848795808290845778606265190892137126317669761256632107630953718511336457711310707076467218821089628053993928614664864354595704926132289257162008871983692382864700683127131082985858602709510345833644272418426942286562512967322717957667288021985571639324848397879899010811865332614410820046429385845645391029433733574868528056681861953468987456603328421536059310058077853460235837191161375724818244717710451566770323694192731285164660728901699138403340259140449611274100566089306148841453404454843165555080877957270909159889898047688773639829726516289085228971207707945313446589767095912941936912968052562622313855453677822121982844204632466377343675665300178969545057692367799593736894385157157780960780518090088069282333354714353155589495586602476317818157909731810599465723611597972863152224112227045152638680518849813949759143815033060367975547985557153855452438791792248277921206172258569813689463361392373131344704922052800151371520493541570232706881738301942368955664199037068097891354908524360663144792298092465890766412419114327894415012220351283505574598805887540895500327957008766834991785128920150773425974142613216679589274846455405829755846617229254433161642297133728582650695395761874691482820731280376642113659786425514939460765851316593526474585025585955533340025954608618713443917759260520820773639856335280907918446068563582831724103421972440559372381537966133522720649400335898639317310527775253347342590085864845480056846111886037840319657936398284544513169208145618738599810369198659838967469896948737820359074058804066266526735896366869385797444302316559900077510539307038402065825020891439798347439725626997436468182457100545538131433486263959638128451714191766598512996153903429756127469397018240854652899919990355142453802497327681150770846786749945570452374665903729703449625631242994064815096240175364562644069281042714279510005118810956478956590028980842833474439860216214176279102454261806744554905474991117680693308378178408940206737494882087687378690527780490228507896796364033646995244663013062196307829837473722544133917899310530719239984178550396163178224938635964707735857547449396673509555939986705207893567570498583494278790878737739001357994414712515871403763910635101232795306100566773299841919946732502590636275972639182173213678092074895336773445221397766890086395752631053896098823529403083580217843060835626651516584358982129007214976073116793961663015468084290002764076295327973598801760705545852872324561695499695007912047317120553157032546347102515602829468230462574093881833499211976530099382656666387827819075845702946633973392770123112499447691003591566938634915894334313996541523778916483971206337032074572244481546226880240179096906042508525993140957748061501733734936003717504619086428694634313511148227743288863858517713868324493996302528484197077914655738190028775035261008990406057650665195339702423613974947304789053417497561785452179381054636463151842766181830874796429958693795772234704397209097630081446745282828649661287350876242576068728823710777103476484472219091277029055818519863011946757607756311865208642044935817134786526705793707277379968642207344715801039479226884062735733368112554927716783225892638631800808658472365824001291350831554336804032904797644051020368212691317884586156929336930410707084515465662731393743716200665675595715465374564195328965757979145882187925542793165396949018906425419869645559006664334974977469644886642303508382314700092073738639562588813444379722332452301674032839370364774260228386761061567530218064000738268548222120817460363297299391786931231391615000792136987493868999898691292917906117817262237652029517620337195205403777072268177285350104149675104416784100855795455402473692219303096582187707977019968228486300572687769906920147907270122011706790271978361628081531372674882903909277081003986451746064615989940152701766570315899671849825757472387547783199701453830878727286635664397510822344990489524225860416433801323608827649590964728618923368834794759495123923249368385496790163393774452074849482819805209794085192552378247558241533290501090384391058926995088571893454745549280916451794840718995088186278506232657329657139880189846724158993476610325315415344594190730677161763999809467815564951049116230112980515230086050923798626044892652331230191396006436309940797482153607715128425363587775903689743591489856763145056711484568964688941954474278599893385502954681118149027425350189170694672723777237938994060585589834004965783785017717819859717120621011102824936537999433394985792740101617796442418632353956006940145004570146778631801589671049281565383720387346974186935603490030061997876918260167568009772122476475950784418961927064738114738068212762503286446458752540530076163730605905386588812376263353865395292008751396965971804607841801007976638115540179485051587237042339354859683924443958856224386491858116263691060393343467345943644561405542135539813622987660062063103229715301255309208449905403626440711910725649318274701329000149381402809299137986869370299884600538864972790717396625971155053188969468586392904413883869963299063768018295672190581146633131800849445721630001829287453512047989824485691200746398282888734063167505413160038927375050354506840717685472980829480794682070907398965649431471545260253769096661856333320942843198538148465513808864127814849004293205628829986500168012616555198089018666691088379899808475761807472876316123014339923252402762706874368875476353680876569836642694797638572158380536208688036953685229866485905658444623744995347530201361393895685980961878179098112795820734785764263282589076828506570940569833957035089317752934134765122791913738736976335888881354093485091638874681867683001794490310141214811380796750772630084202603847692460141747497605526231797343146787833751047343997088127625763311027214084800165743509075814113464781218058291140969991845305010382143815248044136474540662367594981739486329366139650041363084708546274791657133125993164453626211396640061602750618704682220226239796618390256258465319247040455977269185336407784985764729154753865570218740935754779288317424124044173322799486355954322833834376646235450568107796201597417245793959244481857169943472721793455145199807711240896754371961611985204305063113809349118114680526815200552172448570789839702922795507217439157213532534138724666710145067787525682300090767619017544246235202118344673801053835598238215399400591622997306594986897742376221838313349240766789210986968062847963799499284996566577979387945481396409309450216512146131962096886210583730979871517644547208363501500594200612234025944023973894454508752896882116115075924757486222584187543428876573687269669884323646318197462110605391302579661085794382411027695742404267489443312563200021694942508424627632759796943121925070443753085871025722775380851132373915469907603367105952328488568122439817890150387129887962655028803654715564250752400973553812764630945724812623526401084110676081533545620113989348856840381853615979655660872224654950059097181554710117781988909653857250006038088928596196428761215569438958153209577495986350350644890043309496534271551942128295640901611414591986428261963352798845113411415951792765325580468183984265562033822009796154408882172283668319926439554998808817452148802078731147402889505661759888094020045341258948449734005940335775919204889281052191819515712486395303774901114895559769449885250501669260563959201101517624579635127497731216514756486520637914778484208088481776591982057570484320603899344524578325530073303628674636200082534991812496719542931158705907525749536267230728393888824074316072578881353593042128192976334893868854140027925338296552841591368045081797264415871180227271725154350024659712358498626995501877105952349350349548713443227706271515657859547320027767733989596641656149998428967507852651792317619974952399157196347608020536781578775995311273776204826206656233455195446544642198894385173427907779067403114422709008156416761578642502676615701782064354727886528670083018764065085304970309648720170676311522796867715352639698407296139035664880780736271553962582521413738545211780408224950353619683342980331554386798823966975111868791053039859689459138067238647532435507110373044466408120655036748046912425171736240870145460312498474544663364974988241342973741111551296664706270544005406490471005799694791073029392230849710527082750345288050420801569322498506149753443617764665830860830565356405164016480873469804362597945204190520757569986207649244158899467153818157509805161559826950325253727328608270912259652280374786004273730266715437482234955977217987016439429221509315876455481168865666641776230437778651552164186595817729113643282552857169027232503432698581092585858834962633393470589510551350661513385158825202704101894140820268140477870693235450438339930880989904806444527504023488614983401724643150314728034064685796988787786154715138954174381184927643275771078027583139232059758469318300806755723805427393423994326322596295748631579866632237195998048805022179622557445431679242560850304628571950011188451083826176329642024046853964990694802080152350996298484749240486246637456799097502497549312994223338809502187375429533765008457407435905749724332947246351426410788775660189324820144298635859609536248624926668211411212058168358708015862136249767164616196543356852357514390962682365273211132890419692373898467429621018688845646786346846753182920546446563974468119151195182051284725293794247742056443181854137756992793475291881086479809350018041040390286280929063045470032150317373034240119087499889724679393645956177910570211236001501916942398512798898730547077038444418194894065897290502252210378830346714500378304716404978561240930691303782223140003317541613744208928722635032712571568422362175500267922648319516753577318724917647087142292456604139759454258135690889899958353087317126583667244570087134016998662630552905799253494084505459006671318954963449436776009482552769539909641319616368128224917741440188765506034699228372798237072886665344966412176605653867942093457668066954247105097575102900879691047863581552657827734468673986996812290276261261264597284616201358308625377844015226739867568077428429096883538807485051251449241881837453616002397610445196094295966037136612664811090187682338522846384822446076179249762796773229709707606444626327665769297851848143914557830229520014099938881421104743316197041661428308538781127140897095363348462207825436245917486746696945045363718627435599998077320551811659406720388715188192738144602969584363410722267938705209615863768694369691337925378311418223560830400346611220024727091158776678237331504262641405970333005826028659869264600994345065188462747740963802748232393152255572603633666936615572097059970766357912391860303538081981988973606585637568780646261040867448244330551750946545663374329100006505322369487319320828759098142914911791751170970834900368734869856217082597716877424529375815557409634235579045026201624480197017418282721736235240002037479220606155155804904860629440446595305209892171439991576080258806281422806375880786069303207984720903659327445576332392462867025919262166504873535231460029758179096805564030664798675222416580082807192402378803209857391980443762632879099498386772998391967399315021127340126491100985720032219425368512473903497425699189906380022616041927553491332996390917790564270584866367645150711197058732374915282304927185624045178356827344846397736348025027238992966705115909135244082893019979678070369306700271194318506369036625605600981000169866831234944057733054618713541130188283365511668444711143340708406401060059208788425629986594734484827504698019112605906957945107453848118312710049384704284266292490819927144095474664255105395948582315651057675824395552190212855918413673218123136866062000896859935923401871765005059392156250109433339494768124861070707769404867957885593844965284806201309013227593995198545454348149390319225202844677846401222965701067929352336487579359692769058228422822948472983521258770798755752486782670416647186822264269730595968838043252830177895173477680337271624120339388554148479886610885248420104405139750458967090066031222838495478285145245328779667678210191429876270085050765675959119910108849614237603977471917980564650334631525682263018456349134026511737079926922475357164271201569956353670059099644549089582537949664879118761845484229826321281582871556252708765760355187503161315903080832551924250024550040535521818939499238362126408181176192212134345254858947251146504860872870784879713911587500286851938096509266045788460671862404074562835574606679338118278854642219075558474128520768970108889333142968170001701153665141214708777777110953358161361562834346717976486344169290422664233009471818099457852800852352573839733943599497984133809904920482237739037784274684156849278694035480655973491522617821275467107464813478222123642398020130445827537652073660045602284678091681281503450001395044687589843599026668584323923841053089694780738483836633026111269658387781456477024240589790674944084314375012551350216119695633248970426431026667197876285537002084961593152440688740709503786424665135706244962702517767589040628503471184509206946896760532657939060626784597122933298471089592552809021188532156780877883870757016684248365032741187192034677448872646414705433148539554276820646057357433428821764367015380178227633458430628153146086619624739225969160432009922916734976421022514164563719990520767603633022319008714741023879765083260643763912668862152610485635499007837318080258165493198643037138585977440247908347262575674419790269297771152427377338955097376280559411201862948024346981164603726263907970366105659540973913306942958991615773847050349704715350382306429065089182214596564254336277353077202078499431109351311052473672339827531728154326188687307088700128035652474768934761969629665265374126060285726610092303250213354473936740652137585240867756590081291532384001633093000632535766169003678661004879121292461527202664043703691546324992597456445730263702802833666937180338235837315613932620027858513972750477420865924478276228007513687362584378310981935448220216084435351190491885820635685251360494078823785958219930377315953753190248252165146803779779561093073808666852587277629612013174408553032664800442921591825358719915864420994520384498823800578111739177208116144021657560249459448029544762376959085071838785056747181525818087287956999478785889989606349276981537969497443125141752881164935939507343796662736107415741448586739049589611915814222850550483639330402889938241676509834554076951656752765471512824281363852390111962499014688509705686225752767135640424918235357707719917395752203946818792755046418068631684800793138946795620242522489104083145807251202798081145377120558341920568842300299065246899728652641932977257571441225277536766932232854886646729448407110005305170683953412755445517150396554266377587927571309420843782165038776408901103466634822393943479175623470549523708244559501750874726572202028721102373151933954290836573746549192643041714862760598221875221114060937471889140233051369338015743124758788963587027959113717089719100949757401202065794837128902191921703103896870580360518893356580991147690586279364412973457173324153754264355713213768298314909675306816987738857432680418962217762939933026426803803703916853383591080046461517997931961866148672458320432710727914091824863439172203146785060045770183061786638971495468360706029877295929057917483405845253698566462018504106658263273618506468538098241446000720422311373397101146217463366448343318490032702536899273675853872580398004604997795455670372566655981287451577798075240267238772004485053327375219723238332906063612476577667906373084887024113426297469127595463548238149168198065384421392989047186876151656424810020424139360724171315513785712614108097896221502223381481458574513168106833821479581814688366685852183886164197614067748362631209256831237369456355582186576928871034163378253178730574148944022926058787676285625981082865940905679824332381939352545163078789299303232904527048614400941990669294283786685108048313427286489349738940320104797240450746243276338631288978937010623025928111644936781403211020308032716126137151925412340802530260913673270408515887386272003501070505850495572564703451482038855768732332010987103058233028176934254470558450261694022653317339423800158269214548068491427925502688128564144246400666474058699551887731434907060127344362942987604593463696341216032206406943011437922563315162525418595430398856290813263350764528755830864491734831808953949973755158546736225195394649179285078007107191080706317350935520181267897871307429669519969673289627055167759672658672138901716253966054081078827655583945879394375649353491325482067657609192000474327982533680909754723329951279916025331812073921194638335512917692432744996280489057423104554515504402452095994302684853934349575636337054912926530989430802411258828160527419519040949645782957190500272032837739138571265732112592182674666024201790448853332372936268783134972335104573823427078373454813859634151139247132730079877025226234323589731508745515641616798823689020872507704914522145231604803781005834613537203739040694593219836297132521296434649708157842320165146627421240061398221982097915048034277235681432801136854635182859226678630442893037017308151948297775828875769747784604572345247204228476233044693000623155793278382466297950187033987240354087142099858459013248173443126177949127756646512817731986744038031543455329139314328563199169746203426483651339919924018019736760703982941739538171091997408282865871512764758729127928305529272795931133925833898419182820493350866058911067783130638433572179982666837418842611329273017130513989592659884147186305823161630499427507414246357172630503113909929729591150912207767568010156170654495063529346273827068982770348976595142839998659680007692936242958095773276504494883939829725141650702833991264339586799714380344243766050035899102082778386585160084281689776748028258816965589610375979846765684260288757280499716192405173674386319734104858912723273097382886149513206334487719851557338707670416558924541027831941537159950226264091802560487345012166097060981282776887059334203912776323632859497705800775988425648858979631271614088722579721738456873696757875919988679667880485286111625689802312317047488097458023097271869455981152328162923546204989172993237107076057197688857782606428530493429432962356418547381598025280055631277540252839356316044166704174914771193420539104559425382704517038402770525277109298692243161830031963986207863754295419379635521108177534780481633615871766634829728889605617836100022112632076347735095306493865095567408354607618789645189729795679394241414461711663840704429954542042818043565102866388505739215601822015586023959066179561021981117931786714612183479413682928413403341665399849139018174456551691093429764109054104230718331888062425381056025761096078001531936777450581865879133370079803036266142920205773593630615745755744531246672564840891603008893755863470612281708587183191848106860607263572732550401513516200148873490774990912099696759997087643673936964582917042214416302778392925801271381198294947910714766961807985998167749998180025198866293094409505385817539631302230713736155272437491672843865167628198184484638063569354563680023372360264576588561930525480000470525948747915071114166938390258460424829995106686081539377105148744251459283058559981660346323136973345295575884660204045831902229165717784954404074740776064909325405182779163305445277712075710704322207909073079293349445959058150757349432169073390902191258377982780897686520667672324675183123434698704166321230903727308530483494260397681339761787416955555628967057445252562176709988871235476598244472837586493248663770653736100273495772283597796831272309271687660079417988341050569417059078469393098799240561559703213336711486470429613793260681091287262083193167906908999898339162161515420465804220253253287178100061838551109851933412355322160920291149370149225197112607823082119105886361601992430802405128084200156843607714047811148717357253579555490098533608139936179456843387739621089935715900276851254074275529269016011243493107808588495980351583972404661711329148047330163819025974369333550786633854780413637165562168429593405540909139517767044553916890093865174639698911440335446608432933579764058076544516780965516157792788792884330080552602829689137018787821390484731376622099280752457606463078159278803540758275479892770119869099739583702173757612622138569159072765537039974622188448811585633945710983431251315932790387883125236470431310724119284170388580562155680031302087696375689246824594413329622023542066097808713309493179491576649102877709641710619823827367391508567855689694891232363717742288457793491911898005898215819439727151061737812155582363031339761898363109109817100854503652839924098793810550145204117093009708547724956127781614019066087718213028770456973749142811105069411513166528012605896768401600618974839470888245090377774870295627825208651384265016904047700397816409273581709772368846774052009516856928175441178961951621934565080851497340447968462333392162039668001519787342407282896065752309033229976680779876993487145258900875985383518515875010673253312533222597592832888669973510618631623769905981605464835672345005630590439825041167905595571757240288537526783925269170686437212299823452699003696836438396377200591696784561428122876281553312248826154356697141307304336924224125391792357962517024231318718636967405915764294128662600965821140082741516078901467201815239990369302631388178275405792174361778414041133203199050984888132662934664158097825539153719794413601059820044806272770954145667079396099876733880246234242941123802654705782181733137293626330187407353963266565511643038720707673759227903161368530687899370103494662377890115645652082113416917969988409394612783183898656069952546882809022586636213646410136327946005836721066768145543207230140334552422011794575970859214206554171035042264131201266878163511754785728259997679918296918297716831399111031555488911215912112619386022638147844298662220511814524088970928177350193843807873586279169438077610652121312231300219545694971367063115691978067348459893710071222837380075678970311486587966670739108993164302106359857353907282063107289897078794425400928980665995740768117794578784134112336040985352762884379709327141327322086739294139070968158901115307827278075281519104379571419220281528811465189820472589049986980923683801630217549599535528891535074370991626410480827281459078941806387285013839318408455582145749320666944715016468722294526873314204368791870306027210056368164718274037855678208809500537492623300786667970089810960625077790500914682665872304599188025812342956283668965017922090063000814215802872249534636559001150953605534776941246116528493273707053673425573503814937523458743323619495760200699645280790628617531445443522780543222153947710836100288062669746158659324970397985101987240836305614466265787848167932772859547704675139510738108934941945052646018859849340942409424471124743109069314072088257537218053103841243762111878014321738315510590130832176712068303831876688087850182017699248388132276280470236174022869699211926255120502929918855200033713962236520317969362131135641660112670252617214647591106588017648231513109044145439587457883308307148861461050375167779813704584054953017884914583603015144369431341536608379269490975531730680580282733365375260727788302291658126189777549257243997376967789939283890731896871223965330749345588381686960030055131519582249278689281796793389731003035230760568298635393870356237300655243841076578871454515906956612683970427910799036679304505454689043373722667898644883704137577219689941612895913344244992899239163658941810449465548964517366081980208503418462355484414917043165312528122092146708169147362094012389399390196183167046676566088639594049660479293629994776656260752864924290967858623918898982784337204015256100596136543925000897761923461682352824488099497211157938373017960267087285669001979618274566980256061616202244966975692055962841539832129772330272863649912331488768390301555766505479661223072289341317670852034630708069726523087711115589003628593770304018537340314891859498061343321919587546658897581505096953290098065860561728470914449429901276044336898610538112312679759954917749549326854939475971029199582837191685712887115975436383663302325296875638681979189593292994709674893797487256696253017982431763010335644787769433994756046499144933160310256602487140271970935553422068185223593840421571294325973097982589638225352937940613471454367719430868765226888361711808484251762811022848151420632302676839703527069680623267642794432229994593652990817335014300226833396279141113915015292268440516093114612610149843523619721158441406295690510731403393946700787698434943611778453061726215977345763847909646260691231556701420399641436685880964952796199945962883591710782905209331178289786701583468036177314476812955388078046875559478799062220004392240678451683893741148716914698403394195182537092404228022589168456934755994378445791223055145371308480020193965319565070776313350817420863301490959153421638942668026174933323430758057342939860143043878295298033665830550814219610249326713964398793945763917874188321198758547018593622388235511895530311105114817749998090859181694927097300242545346737758547214225615802732793402895232592729033868647941974166706362858258890061506135962187146625094108889218999019593078108602818838399695361216473482176337950474817283359867155340188811795500774834752034057695554112778606555021467054367712210577457270672977466615057317245703236266701707600929582552802736232142148735796114958222030008961465999321350338790368852920836070255132808507002161948537328808133117652435205765379286130868203458465764741815371175580979108147512499317142408950560341496563908150451861939659650165033955808542047158586373318857144403242545663165467926882701467891154663481278756861617026384864847332766903893817699895710701689124760183633394693998785566092737912131251593960214801820137545209424301089997877248511787033345755034676112078560797649619133780115063837837368001529065982449082314109377590589335657364620147983279135245788854504414646044241038862434373587109624911604162994029067333161098069624167125207977695305235944471855317320677324735568663779091991603808946116137251134247601458525756807093060541226321747288805114753625542912922009247347173077428685504414427639663990420664661389254712778728725251451740073873343391836590174990744041779172400479606939378121058231377809007492109854869551517007529513948359944126081723802883695695742479601924050245181330108308383277676499160634934491298613984551467429095366494020053718867326721731912308097058814554889658419344049205791238366973993208950367727850697103036749499039987369931239177474534393385854566578853918841870442231612944551016115386421345786705450858101810480674549173529217099796277559740040882190677757130430203854378166314849222951104769937328785045811170338098149403463275856869131928848490449099528500126485012828286616108381425114527158545824927554202276850465646460481459301985554091624904324679510529255062101453337748624855283706578508279851776638694927923571370827604648186865667417278902737919471910295050243201186122066160926614432405228274344914609434656719813619920622158171202120238356474104155423296723871434718767891551295077046949976743845111972995081762175869619455405716488033555481965792734244723896159476158812333141316625870707118430761239678757172648805162806681604357057306077639181557275359672954196313803643816299338664464658441931302245563708645907067596345788272043167352117559922041693179639965899569385336812494845241659516633403494287631626991644196058397386733617117737555355136615758797750146832962027611448005787031859899621159740532537049019503422850569375896038281468491918290273182045598079467310843393884544417030868583297509149175212935052011263509589953037005567745129153096492955466057062489925028724491776118330318404751150992884789679042619914747062326460264427685805218781787660088737533585332576564888662535029061345137905709403381103965312024728137896499342811386292562701975962230964534983508660536198561437548277963560183850194548920365400532855462640729896347988844171621144677714327982857851089732685813929441819172777930375213038123855659369422606116298156676191866353781957192843543635670843678139983699971964673699480604948290583687149192153963346559791783916795724560799571959610580682655349982785702422040711235891015344576000903088922976928894482653681014154640426401196723444071846530633839648730791808201479490879904369059048919169594771893952022519621682165254762587381972713749831572441998900592876578924908089891058202914233721014944824930442636974856333207041675196389385072016796274714312055198982282807716495713725382512116076867671604121018965841183996542707889547281181245324561562844260200099034983058078235298007719716752825690486192127472077303266207583311753042161600744176132432202735590719899818353141287507694754409571577182265566429935035510198509294859380218346148019433272335494487986449889144285938141269588346695966910843370424287901752587667556383395119598675955453690308512690396794615026240644832998286095238752800628345087255959839683225208030169180964679718944831178554639345868143659359660595337148712313432715215637835249789835456418140105980361444964873110067570890365031743751099910052471195665238920524449883014333006127791859285719217327563269601908648555510834252191624218845134927812710371564997998359879903243429496572589244659943061270510704946364030286061032421575192472779148626795355849146360123462142677483704086264487688991625872911310438963390685018676091509890704500992470061464326893647542505648282602300119750803152836837199593062779466529103188962023321438393614621569880308245495049830446688455911529728601962191797374520101800947877885454380582116693512764874337387284083572484147331133919766155887192760544570715497460870790163383102578970886508468818924565828732806675958028322327760942230869164394325928202199854793880022182448180915851907367910747218392959128183139087363380126575290096725530554803166624673717522804966837780603198407879586523055570909621874009818299816646647097295738809459709691160625833935684514919890290281623844194035375651125920963508714134244234583901574938068048031116335207714857596276601746028657301579217782031838493835185843299733540389447765198634924885313402057314021770305483104814565468002725837883875771013688124827190246152650340502083092304616300085828022949821382849034155273541844587283115344220185245691462662237549356910381212576409439249101028770176840671633611463336138189661821275183110923290601218566208661702903049509135367200804049558375963655274924930067962299442950653338798095593766363726690543892379503841198381242858895776709224077616159395903207811925233279480102162654797689414988776159186759417611753949483656064503736739163557503121634030279363645953666133218631160722563014903781886279986103032747447737311255201179937880018563921575902138446121772544278364244728347658013344260400357671048805887049847594991262510627476495126716506497097786907716509841953071614299194792290483000605950039833129516997151128487420285808933242798515016347147697035162036262620137414380437599633416081909686103856107552360876713644958102285938916325195672113231517381423907900231076961859234779827821624935727700276708188880734479368612478922572584766689069294830065151572863754560860857066131312218773369375306266131453948797618434613195283866418001503260277520530608550635885880890187588715521063116003375523478052570428355885321350697503042076020528229872962847243238600488236232974982381179366857429991800941067155636296976006747944367862234580315842343517748534609985974343841586129229196750046993362783887250577567586396985249036173006986541432135808564302160127728942473075157576267050315037358866317451504072045377166476344918135702735298356776457896901190784048411694415197994960976336134579427253277881620644864618051369909900273334126424014199371779892232641767846670299361170004247634070512193365166084917192530555536120257024890723137925850256870205853504861747135695804984564126524866097070539535393697220476580347936155741336013818495781872761602353266440358434462271082109792271544379722272546281062494362304864925219666524649806842790053620941340486071500821951997352285258764276291271061572145570310909011075304427363801374413147475610109710877137162760154255420252520779331298458118804714074777152051765067988065685762790100242169333072303768573439771378353240414502259732751882597602875510231184623935583561242374902637788845128840788477040710074754333783809749353403863659826101161375617661673642351727149984196528955137369544442507490186493200236738317025359206839614530532752860236273388810432306029933517983539547980743519092570942240395762805707920270889154769493735583983262655533948472132215459916000293106898047985274156455837707181621310655643872025290351863383942097781007955817576626462036913699733441715494887898898319616493854726957784580274397716222644703766395312017756401111112503820848504090665583034653015916801123845342874974055695799805367368148009300231777666020314683059186034532168068393023082516506642972199098124189544844209234710024515478028457410235225229534421014766078492060630946647577273094408223168779406076356042612342463591341046733059981217053384719389746707032784857987547339841086913218962867624530004072207045829006093023942770392223397443128913336722987221801238053995586238145203544569289741073773802451162775579116015583190830238667678406047275690258207591721252199026652847661186519974017616992553227983174807052508704199890789221486438854118455947448539087937496463749717364864628503726996810329706340572448543478338646006519883063729482999517741901132712014323502481056909184744722012043030164192616677388503288418062921544007785718285053270079498791608520119951854537784052555132070608202344506707183618440117839501745798988581853567862732855181467218405890944760811851273720938780273699796440307256790125318300045034447541971309507257329307163588767854277630903584260253320940858428977855627700232410936412549101137379623475255887307279873228067784823311731081795202794094800313551020392371734932575624630244847688767447591285639347355641777767147954325821225078014571468657501175814309477728974109490617036373454193500473461707152562151800789870987299551220554340465473973136889267983433852388122898630035706332912069848411762292671269355642648811154643229273011574140421353620250202955804395216573977859345341433209971556344117150607230746083220881815410343435212507792073474354121529350506971212633047735246718163569025282677856875763664728060270023304975514366138449721232969740522398728083324653649672672478127697826817625587591850748430349087233849353925582029986460444939982899903583959091859800750196531143119732386411958028337271726398859031083146556733569533506942550751267517517499408137988793888164130588595213574251093238949055912575907760750947901540733689852202685825673461623444339257283068643801337792531288218350520384288818783424450156688531903519784308645674845991159711436568317447043507703519268592415168956024353104528232089807172983368812771337676814945782430113318804556192705166982535286404448280029795144165750505923409220539214343587011796207824415739817313817848216689561910652871162960371270780265643901790568759532434522345592454597508392854171284719476698206613180376363973978243480676678976038213980708539762801475640886787969503469083433578339247016562531512678067039352014155734563980816182338172425703085967568093298333981750117108325079920287156076395719812955917233122129005886764349601335289739277402915385321550420308281715548604853114365525909394194543844622050141121199144523860525833151073651180828425813366985033334970121890763807481788858866734386043844723158171034661515519148056314700257361008730114780501427081187510035613445365989075748764266686009171900187891547379902475724616779929250740413397985984584787206230905817367707044370171380460507246856539808508980734343572520945178198431663646058608925046854116148158979751751277715070908818932253813164126568002482144196382762293471592922210255813095342540385749514252705374126538217573907650503551971399324030392000402488373911063973332623848480312831465049525655749148175735400669877352406176623305966437675114492067976514543038657470688695405740135221105075715211566632469820702856874287480017932087117447300569479366190597133284769922478936074094321584505240790672941068402136744937536594938805427587827841413766483636512916135633611564463047911234365101103869631246635534199973712712093276937295009991221699829818431917792772851587246052707387720950044971758851118955030653490450717037897482265031889656524384849667040389754912407431634131226448569118021350359349569445649432648182639790016464370077140445180594778337778267096488439359362016385927724635176533950318126870590821573647590840094042394479179522561953035228787752474934116144433340476419874589047650938995984170994828000089692229790255762669888196892748156306325639715419547492934750614816036950312589322255140662667717694087976037831078785935773130809187436370706810081039430652341071399588240382370911419130996737417332052613429947363250818541307126349590025298565100027180236443839747356788739193947531458222999999650777040718614706930134917457287741041403028920882778719475624246175437096324607154880673348941277586335374761260626171396836639916815848812825494022368621259423423623846271538117126219727841417266015088984393878606713494138566590437527335994460601147612798762160263328634452304127071942618579418890878868952825202894393312886920413950135609914259285039293725370161536533559687435669570501253986317126674104658702638339871595804316768445587098148124284577969161401262163653691865262057076428144773073722563806781249422476760921166306147613097388515103248879477678380458540071856958220397787077966026706835029655963395292298689316230200661900397058805416173246564889544165370712239646960829483168761906976718053113973591987887011339173257705327153583868502379127500919979295609693499221984559413852853560775125433690845617071840755582011962016153773708647042753013679179049127400701020744608435511289809136508495304899741492204484244836866757698309128201670399712625451297563784480205947543594276806224736247698618431146730788114811944584905241059277495098101050845044415196147278252015162498534979526705462756574818224044290721991909719570618662909874348570801598928786316772444039626818831342379299522485671807808215519714746760503660225441746973859034577153745150369856668508276537591361404773057016701937044804331721784117266418685450800150724982402985666140101898308894466530653152383790702080025833568010542660265607792358945847582450658093573234725534130682047714626783416407885805595884193280642625632171295450807545571495757391745546585809412702584978886411752127456263169343045213553048073444839211533161828548985595968562617222342065928832972967931416858315124190066639839648403259958675526036912014113256068112145775181767845957187772534886076609071810712011259398989595115588791418140624864705054533662185271638112655568354816632201278877995394625302514386097527135135184612902067412562266894360127188463026624601473652119667459868609627574207806504504062767431769569719153127374473681689404637924524824873190963663938269174875698130671640233309904407408809316623619769255468776570608795986985048476372235690272637927426768096987743889610486792691891651342201389565671758807688061761736218851576576130534283513299931926863177762384326986637022792857315375887494353284736887166991836555220452069677162659793966034787749292144641833736884151422535121235009265619965809696353070637824983251152584891426802770715003190338649362623869654502424920726380926153787537492861966125253941837752394042738327355527454184192620315581026533696249007256147602750746202009186610302035205315470334998084105823108948760562331007388524519865109320012384192946664650381696498649283379469456665833494447962476663450624911766767208454130454724256658287971041810490406862411759576652338484679095992432138572016635154611004917151773237122283164375627491670031759761460305840391771265771319440065528620609796398320553083043865536173331004830603428204585698150765666151117750988171848020226641686458887118817956300268844092804788860570366184764461341590959977262386501923277857974888174771332941024637883476066434601108666706894919271630803695111190485234751366419547252308029778002518975930032764098847782831344357671583499511028812915814882838642239504989219163524698946335028706798191885514684045134473012524686485957960671632407466870529929396868260173894419444239339822168492943229368776918558196695987199116125671822530804186445136874788756906171271536318634323941117391243659820209576041916563210540498118474213295382819461448694272358837933133989779449518968223036941166969605381816448835494320570543251307143221337476050330853485265856967892645723063280783368251506544713290719308716467734611919507677385773538176938077383037509396914622859581252594893224665018223599269404372605789055068778186448838592216706193179298705291949959812528674968425964718027296744706083643499300404876816866670869965197172053511750885288252364381641310205277814269829447000296070791414684640952691768477631029455923343681380467415017459131862273611525040580364382521560615511388317672535882186682760915665773266386590926021004970755011635529139875690534963818397702235766324057012975232386192288964389369766261457003140507007515708347890926868747937370181558677781386410833003584679558256480616428363053423577746197495535857041104429973089042232733316184433343566798297609479537762261288961427230710109688445325397734934058135566528365770848238619800586706710278342474393324085324965532965893744467705773466386956598043942621761687083493845956963220214722119207909433283543623179312457102889372583932589322486599809227675820747318600761396443016185208373886517860560040113008922632763061195115181802493858030897124977662034697856362411433761941900152140591261867748573252363516147245040640029520380696795700110134025354181462318178158941752749443603651903535711495986502338273030770828504109350848923749627761011941313624439055831684041267649033445975958372351487716706638501401474982428443962515502490785013825938676303239834096888300358159794923066242763018794806365738119989387757207932339078866667065426119172237908661117284155375699934595369415325394120315694651297766542018307475975827088643242312202138846261133935588295913275201862012106978333276699229778969765324484564954360110402092831538617412065045123842918764624425507993011170280121320805587690475054986686352561182057809418185465297614920179972474515927348466758173311849672802071785485677403552734836574261409656545088014874596542179540358674763693562914064838495365978167806159321667961099907785710309999850956950185820834701129391424075440208221769065768716624807867402782061893341261166262765609815776429551329939389403181532591066288136845170162087897693447258948840897319993694037973037065357342889261971396934039348311422394854727856155682966685582368787874927931385703286773046797135057620338074019184101545991792085652841173579566657640340820359581155449130817570560510260006928588173441038012625710990855223819582549282944202756076520511804209924924619223797624329929305386882571989237483109900900440408796793319934225497087729603619079267678286097428603341246276350209373532839871674348307413338852346654043248726468854995165196537759795339247743392677593992641905401717224690471097103913457964888878343222646224263852413953800999794207588826289696043914210189736937621811825516418632582503675247979663590615949955277710514086295132799346681340527635585376020611266229813802262804181711997475363794738492374202796232679236808309310819441547217764528797000551025443110589412360127210061185867190411497245643218343785042746795035002644876709177891936253205353776902029192500605515422265869270788318164738354773601276927840719739624194582157730295515618678750593645861538580213059201806129039763638727584747022337201077401324203828462671612162142753176792719260596595361899457605315364236492623317809632749795699545847665661485407144842748298534852533944580985682858505842833427835889729335570287672084857472222998608429593711083808161236239097696496874969171013399732380373041336587842612218698916724726395813155688189417352549536221142004578780798349951811356399119791055770862301426210786072344456534483800897728435471350180153702584191288159485983240473635799602516357606801641242728079307859380482509173087832104364283063220863854959430845550490708522067945416618781514771102534428495853544889252102878574116738433713603632917970486275942970414494126343701856296693651089000079097229985145158470210953139617653251072827346015170729563672916109416789987877378936435765297348283548975744433582446045884978926475950084361059010570386986085418385839261221384369775457309265169492818343468879478687380695785268171114224006518213648436337489181584081787293452477146582416984461930425438100500413686570001497012458702888880932949889928849317466626314443346227989187981471771871744299464383547007760773471564501225434899779759914800592059533503816261652133523272133526080416894344849499278660810731104910670114416588691992140271077171709805833410369178903340635329372976085621854225154187789809286147524848875511816094533655582333984736819313179845715903085488423532538598231051346447704694740135319140270211366088895776162929658139577870373107917879307251347550752776987167381100956201347331285068760069810975790941238126425654720686248052577815590754586377539690265810708501161708296172509068865544157220629087827592793414771358337905861914193387104451423511747759181972444626042847814995962412423472544434383521540656376026448434313689566543506027617510742239381860380358892917437135424769235594662932309996955438197865742290390349474860055787918005679148696871516489920554184313445848277917723840106385283346113449373938636863159498511505578106325384831745896272187311109225608068957562603350018795280853990480724951764191224165599202423192928187907906491421967132596358242213126070089448611553650073048565048052511610926069679288030315534672159800103242906679580026609488548907242771447229813123137031652911571894791216191260750018174153851434201961657162937499985063215040936660813645669496854588250683193383916937151559152869756354732784494444023720450236029402412442928100664488547959157206154822611313854283825888547927030848225572546917655762818507246336587493178530310293199510556895775809173710464808949490807082899640929826332672341740903414403545759420769774814876861880907276973002593574041531322018192887251146789099609336772440856432966964769290745599325325442408379757644027069119456718518929648928123097935320328762865275187552431599000475017375531419171990716104324327541306800650116141844157304686459721186017877050919094272127931644062115225096245993239152844662480261628414534843333514012027405330586099299887221853809882050441263075930351854424513527981129754069913334479704330766322180368140991420660173208349344251536032015435687362671597505290393949279777871529483377124291678786879024408633660649598223846661645215416816727142017997876591117758682293982942515883480501413456112792849084980180977597088280025600159097732743659614152575991884700258288528858789163394228302612358598540680396806551921950541647229365056823266406855245489225463746354962966276903846301663371991957017713597805899752869021630161215620511167435118856360738694127268249995563098361166894151462761132242438551296581900755469052327871001473289138914725733130962432897558909315986870465050137217056843532717141550641929228993858130671347806026713599924232091934972599855526970092743713391395439015157861243914224590279421236668339524816656101259083193442597353428434046927633690897175882046866418611156064052132447314006666466610720190765655623072058876224396514607722870490203285553896219384418421339558296519047338026856440923321739821697226051180204500745437920035999774703402704294468939031220906264691374695437180782546787505108636454093032644181941159803196849659456615137119289221346595918008718399926915523104496836536433858539177214587141579635346373877561472051570866245660970688527181901376789067626165871354983803954209194678903509554217795534902055325394665995084079269485337482773688609097478518065167901278890384946307437734744806223052048575093868442554800387977515423086466278903542430487707272650868786337911830295518292461450338100688703375075488145886984588914727821714118001047494186718255964667406514618283027176152434408013628883986459319639344336756353394844688192426137009774216068690930757840847687644488584856299476072015059717222870399381430840476095291814128349490914953300631595408563820191042954050434615357472414568718044128307167919333888071782814955725737301970365804342811783207116906201555843040217787402539836920824581243942681670834420193822134381177329297198406226049553537644919445706993979827910778251833076865578063241401403730330020450797971236677604029267086144024478483993699346783151686001933909550853216263342085569610006320501043269318935682265763754078553316745063579904448948429325123076901299443137145557270940663056113327118138451546868022813890452649932672577986217434187393881858510642002749499825835917365911651486483875384696449687046772145249272679644359803039892611460002659429923022365210530778030715846899698136063318984163838398668352893410817614872529551441706999999102499101889305638643792750472026515557138890856319117816091112796576497581565487692802966335570600296448449440712090595872023951874261493637449927747240983533634649329106651377998642512162532381800166956457702131205906655998034741057493869251750718285608504656133524878719220250525253821586489934424467271973646109840269306028179362530528807662093918491614693308458466872943354683165779678450431122747743150630261838648822503857427153572958556333141217630735268610850004848590254679503975001889672854797468397379210000877675889684933942083745081371537132918481012656649622296910159655604086932016553669015085459812158878166664775053270905985924208215276956483424132593055659449702432768794686647763130797030903857533927317115441201623442352074196431868033730869839369770322933414211585123158425032162622859569662901416614420289183923116416969624923991376950256637423779952933268200490712081019494233003945812290860625451514169891909980860404655911294536596591256469621254285402902696834437315573238472588411390553701973134648464683048461178606349519749747956246944724823221184297616901877532865925940577758467327395960076042432196911241183377207684892177507417602657850903474919634126161281330976967734118970827307337546437685523655917280672592689003838616603916013593061145974416540270960978924788601436515177822023719726600129558876519082322957026915121111390311639014853874309432799687318462475524394169319336772450019857167444973648046721130446383182586031745295010616966416057848030301031729160373082595341921458217962313090253726436104709314750419319844332707539244721717854447025003976674376458760572898474068897933495280400957372468268154393495192807216615097514230580058552270525543033369496657817058766808940820203986626435689448909936326244251700451049859355114592133563762624655479138954362857662709553100717227952200033313435733004072723268282708177168832661918631060675137642466473790348889938841852919936235646194305343308908219456544950723365717217042811002923602422911648487189401707566196423688346947825671154642221598962547666524042274899958037274797355697754627823661307603950721384488137819702562719971624364197318264378675627431799358810679401769117006545770659827794850768269813867184791484289910100678689115032426244302932803615113415586253257689137866859695733528251959579177302795928243532371437882087382846080936987374437742875285585321101366039447207669869468060573576353457252477258628286379393340973297737002094483481583508885147966486803156855221730237568383349131235929552374111689690980044082382420638657523377042860850724595955979348730736835568208666444421162467401639573542176159080116880511894145782146385385220711381254520115299251710295538004114472535233119322440708395433297347959545774596038280553156395847497175342883335965226994977314798048879586028747247411746131187618928007349056489160307848510967900001631352381284853858207464890047058403398593593402870552234679244492209821829901699971896385633307339726015875679551339006013586429207050509128041873936254930418276368774562878762261321967523761901446506446464626152642553265680844367874300702838880983815896932799833987993906094176179429775126374970258973313974872855228409290289463570175923726573061546393374873307784249262761586705345156347736326535549284555462562412089853820824127780470185583718731308094200278731165917382276203318892017941519652149830237221516591673827723993112438556545257731299113976292905654864920926563652981215133613781709251495344495069695364058896778309122233524504992245171180517680215998453567658035125420974798342517845872996188843798424871501046329770233591410330017057017609225408482737881131033646850516724450022797400461468524900652232972941690765444277206940552030111963601844434405623971142793773894854812803328913451188868091450480187972560170602326003183728468792574543591728374640078686844831399592866869807716222887965404073711472191680867986038122232738666006825875060437756943688925089734383810826069151130531689078503138474178529868240470385000865229039198169697020459673420669410340801220316681815284483488173820394105529096471718066538861356435475226093034355935108304821077999225150683516300975625036758053112692907425498839075553727191437669757558519020354434997711779131071222753021005131227435546092594869613330197503688077712422859527235000125307201543886457674949425236152194025604248803046952071872370353513741887975315243259765771456137647876484688645848445838216314419154021171242570432852983890155918977668070193523000951996042404055487781330345759014902101954912041325645965318059113624886342073939218086209745555758660002321676850193037573953394772824226193446098129315974550312811330627964758188525250231317633927634130397890673043452315875532853402078302772258169587604268013254358390755846903994796398999130153299537902243681454393346096078848359364759605348730775739560649366219629146072297993445184945072149832156287416717189108609075780162524424424926141728413261202790311473972931277952981302162281526696697946521735508882997073794966101795496972124284118681136459395073051305869090077726560499272375036827712784826107225520970981548098882712635988391908234334892181187315555809431412313789785755075981581908071814686349229261482938071070502192962635280352428469198148128004038673809725659852305652689610129667585281837994853049578012452259920631806627321597878480442268462599756485479869629969014647936540875170221602548696048470425077756708024251945497117815531296318620509900961278800302616625372840293998661438235809880738817768685226804187710939492899945596315809686093979787037920841835837597410771603211282033804075966717341833460087994425718548111154253510932301358351300103898189481347929318201424402880541004127356423179225493620896027038356845924165002492721802521279143068166614852109116907304660162190659969391173086864334423639694068242777135050118643239057603309365175246914159269002418383404641842856530946028078397958514055007856819751434627911654957164282831993285187823753640723804757010861679811329306446028733108293258098581572352934381025859062368390673316368812527545419000094872715720121170164659526409004003569304784298625090530445611894573857115722135945731772603526485255303224201411501098929432874467558623845395956445351589577406759469093728785580332205523598736990718955589778558739076200130898317710682917185934831897336555448682372082659462898844885355623032346506906443387439312701944097991373223221536445585594944202081499220506828097614312557693524645454309983407688461184369369125801121886941143424612956913011034332897477678072344872300828704497263069922022950612154481205574909309371007026645430466109172342491361474490714085143740263398307689624945459335908335312115453121792840751893683282441769791828682111136407875677650595966215301737595700918811979353975889964530609979256028082479166252554830236279733823232315310638018406306996070868286613047401955772632335504814930773079879567421222586981191502567506944856809349925496189678485368116674727619238988393001953502395838606916323529907278142267021323199733617337072011217731129271650068934952958747785686013647668352833461838476569567695809706976294717169358674956347608208816515662278729499127313046615724038828792042504801121421819742433046170977714341844139526209185464037753761375242396721460508930963164069124127565384438505293770091458962564293919707218437790764999122461807821970310827817514434591148380173126481735389017321378227266445322183353639611998752816465251732962291743122173388496816181062274705821666190484707843309151327746684092455522848949975754878196594261891750842825813488470115024428357907733772784627327337171140716193269074302323935915265639884948552183761104439889672195570085088938066267520456476809869236275149276340942729698446955445400583555927546804706677354299953584334898336523668454543445104783044892080454019567410727169049447419396559245796289301334624485441252416660929445001802544734726126200082234178946110988915899207010840557880509351296867502614534301092038208011339348265561828100330104915640497495086210544517113450672825400090402478779092321545034467849596835163365644895362974002365082696984834336354713830597346952456319070023888840913408325220818573975656185618237181482261509575842254567550031918406770277209392503129911068976672449569914461422635079184077491229685229096212149285557178358502814886975041880881216078081396944833891742147280492414312702040224289287560597031763429050534734968191691766720640092687675421312530936835112270117865800776236668373356769937215288238762819443360019397988004403798635404673244457407807838214694347710380457008590010823589787554440453689001128927862948667960320767253396411549095622612996497010649160225181373440256179637753280245877383913921945792566374014279543645548186301805961560986999928539629409231748449859912608844734727764624371586215001057363953638100185199478247120564817658263122408133942246056403840398107835972465359237972895029879715106588996126118518676236656681105332311069359629392459491322271453341358868956347611141186178401365600008839422956650137035213684186062285940905775517262355701930639275458974758818908347614141369931743184644453894682986824511324711935500758326114667661070267528291596137476468689506843108575128745634687456655697730212031346793588357561745217681929719375079405250452862328954559482672499880175589345422743493851936929840798859341169728422371678282504381949811182053052784319614816259386752786788358557090768482734549578835297197186169850343395188571484725877829371629335440445015905766610490074789863466962785378945207920734591708896835490578252633512505463264185515228507212823468917418113589273728365205416091247747729573878702331234291158593270086371513095804867094289115421768374361536535577154291796009214357954629536705073311070598091951503241236090032151330764292688969207530232155677721299816627726807389180578773480349596860149811525582123126338924426019825805287757379122962799958861287319364375039523426204660092797368389578096875761400588703088230394075488108853601117661597477166804879512658482540467324516795483201155930726562049291334995297653458074637285635746551992802275374180547508815889306981424933467740478103974639297108638022754101817551044144583651299135637675049498340839751208580696976534618697383456017517462427350615087170574183983459247457643388142668414590825847017914486329158351869266997654305577962565604638138259256921570877244889044440202592952471934752373809002067220461883593383870772155012847578451326905487789824040499829420956852927612959311226051045397742668197381852411456581380465059201896690497422751522146462615563337469240824652202160694312453389327907705544015648740067068084994782516224313148700296672557376469896073883714889217314939690456526063091750802857297315484444368208051151785949107180937872065380496644260197242606016403571420068209041505393454159795632296277464380938287310456653300133065482114592802162219260449849829035214194941840289914058288794826410267298467612456072932558287099414279240836824557428450910897997436469048005897848466752205995818715393123504754981531394541259875833850988263882317549222637312511186404907467937441898079846491459014928312405157163722580497237749411604396408437178474209972853805356106731423411472549706009703410139142835123816389172340530363065054052370949179808517221070932796897980799911925722649817844682550543783817341445154755075538417351220948142329732808166061172438012015552640865825401927170901175738160364935088935287023451240810736625408109740853642273256585893638734728680632280878175515844574764040433327434957605724240797007087282720118536214360276923635875552080247178620882742636902479124675899193102550968375210931766695576448084535390181536618095825208937436780268900605906891900507996923557935443232561097257864671297646394019849542092862718619023402723681600482195066615310741641245648777534276963462782778176461673321768473702926420635638768806943235503956895778084394081825830299048316884376034018863454886388058124356280320154347946320897668289406070051665641007430177805501148640571199847453540324274521668846320022539933672220375652602138617301252191750932682337638441922807447873373167570475899501071343162284160182498434372806412523554854350356046700599405505468479254051437260822832784799492437419561011133844458682833016067125702469630769659438847835920916879445160121882072355099987199724880283349144605077089955040113295174356261959950317952971683114061069577602118707291823409467126554189982841935720144282512300682719227573633760046366858124615042606543458371874230499948118544841122213194181781425063774864574865236849608709307886270696864142059010521919764843161823107070226418529363388022283769111324594367685841118804856126406109689494555372960537390381858952654435862419518590754144383488450156969202549140191912706793445845689662746593799204314839366607834173376511594824854598091816348486884318184503251871546131175045166797343608676608915032823135403926858378207157879373208927886069225960122325736502079867719286973621253353253157468138555701935324844689462672656900390853263516336450111268385406881477915067623402046118430357082249042365255946705428816573852076389806597726887224248043042745821455532266156123905983372938369330584371043071397375415108889305290394591271761910803147515460845953308465939131084192450724689733362558650188044901294678273599998955074129415334895916804120307974281356201568418229971964621803099120482084444187206533434404637532785428152246284580484365072555662302511122958000423849434792617589091642052916731195488032747794997921501200313739723312112725564190513901555980505027039052154468501506968548639111957819781134857225107833074708486298656344835825433683408252908594184698440912546638348934287127554659176695586338453715979791621426534154546474324106796110183669272595269206990629149116870526460856301058854665666503035071438388910967696071647563856507108714297640309308616446640920049182872218029216512323238569994485912638045100260889143749632011903916315526638094751324102127179162203661682430579040713801065328258411329749175225461561768372616468104838839621926909197610988907288182336026540545420462087935500419043137512420971610709434285379624487224576924092561718099264054306180236679501246608021289672858310103866446759024786098180834117923972819210787374821791168645730109607928772435036023187507962396659578416038350014046137954384822450328576569912798535478175479767241046049685756123914603537946215967831606283463063114213230710581589490500214216108212480327947200609903155537004036460971177293960253819420279759097658774575841348117471258717344880507782235728022953009040749617783392058430026000051523332980416293375314312826613210300860704440600899027412347278041051089391740339010167238046771622332884903992239425090967417051080071469208356386763260417507140180795115862284487243083887668942132196481974626366280376254926206798516373845474421762705502282386073922426449869620670293572435306355946144178019037366024260553685130158694955485197049213408981710442061825499682792508663627386760692372724805759946304488033518250743811646873559463200986709199850801120922601445249969100141133860004888902050922397671943341715194059585981949104425036832103292102944499538626810635838199751960818083174039946784433830016297565630680386756690434933834206138988431315788423732322603085750696287743884154529985130188453247378890145108883979707645315161060100138530456076960378217714599074237303060903418426079086260993857194901879564279534001137673380746879071875336314757850162655403022262318445705786285731475967873929499846966682927047765052808273299330735331440590579189990417475251228830088334614015143162994849756953199179078095964696154035193409530095653680994537742032241946822733242948424359532358721539619195494125019764139298218588861789380131226997247559449079917585383995450071456426632764296462760440794605182259436928717130381827024650540138584075502904182823630177817691469403955283345861096739271850464339945995731419826813818091975093382385621306097277593339038688297220973163088670139100452665798069795681480767583529614170680590149573099856839233577152777389475250934319762731147822431213578916178801983734135906956558645578225292322684236429411717384248455113346551567395838380949786957554426854409061606575237333158433245910825949525815919823961855283129968607691110227967297577508739293093919962514098590079639773148930705468379259613764494835728587539851209252014629874752262806978720317435675670786490278092360962264353892478223547813375780255902490370240731064869316736303498889775636566033175385413585468009935941093967058278054104312249992013168883200218875039817940497679907599400949160179990450350736203716950879051801589633600549491634678502715293749927977835238988293904788592886778253748383964261182185637382742295967752914015339281835927046050437631712320410487681717348652667545742935445550364335411052249967046935791255974482007451298248177095995613249883679466082019057456498956586648025007411265573370201471493290435327731599460960928239218326245162911197754941163204790492743012783218088246142383329933238409788587773438571627100356051822330441687410481243332956400915555936634341576942900039091666712001096246425950702412069766960595654690147856850548853185664133274416108356762399044812040149788040817846923179026764250363701892142801044707477497415662419088146044807182778849436050797499985259942650997118630605061986515464737728043208782577082745666160191476642228140184456316474704910485578613154036249617189856617843434780393004054249309969816510028782531354873013509166158274748292542726898381896486109272027798645791212910427014228615261723927758295556604139064719527796017778917762735475484398120674305602801072095337884465701882572147487189438987501066403170900034941501214862447397101328792102454275104207579449388468979197515506345240599707814320280747702691948081883817069125779040836723170353432845724377204448456381480850036746522199633161271791765781437408863323241780425416262669504971392221034995480316369628588656588439226843086301139256524863739742797068929578057654723044045645145723548871700187490003876387497423247697614903684289139461301451762970813717098249045183996991840270166478759641312479186143146908422221716733675252016452321116237285996748976254304654744229374595811628785770634059610832606005004080112515142818047512069076893785404282371487144591877576440078776435827989731282752944257467483941326907679536587327705768882611277807746765896416799157550336607256794244116400268998935977234975908963471179891924820359699409181926327408443446272739025303170863059573176813059733832776220394408632043043513655486738521211163259863919856151327750635729807656570198005984181923715552675738020104958329130606445973323306442062627344227814126633911464051716988321881606717598272653225876007709197684038900762640224133841361669199104052352092415821211793893852571682148301760767995284507949454058916934936493182573285794496794824705646486692656809080695509441229457735464582468465329964568392382992573249175673330121681408874946157088403993622691462603769045931527827421157560845009254029368669581353438472272350465450474655176889697164040340766399205593362734152481211729467666739903320666607877853728650526716826053145296384373415083978994776199533581612585763994869621777270489427709511087976423922712491240945613073109411609985469201415798413333330639922902895915477803539344823931393761568975089789734166904714293212107016779970870762102602103764713176830536396897000588043235807034531224699587716249416537287576939131000621477259247858292134382609834337295238765457389912235776767446584725082456857494450503039776391532207109422281300912590815301344277266427503275414756362308261571818082665173264858841036577102578794131601749244026748545982262044896495640252590440141995925407740568600894575070587918459452806072528660811575802284997867488010617587074140928950322077963516575847457273171569166681398033104764469671752550490740092266618554307816191881377550882225621503406504844511744603945312539193770588488294507946111636023842186358782648916540245685802692475157315820382992594204686903981486572952696717881548008719819340209522887364351800246784319282609920453129829966396782992026902776930098328278914981885153817045343630940341767808767478924827737521287598901059290702090856163211341156572838767507585641280819460939192369192444091706962606851549120777670513705479270508630638589940483216670291538768579389360173655598551974499787875157135972860972693481560534043566632342736299382492991064234913739203682971365946395974606951855649657509415670297006042454472593046502799544583710730874560072915117360019149913742918890693635510121125203421577763150732440899216176801782245296264448636083104869638266573069930397966845545158729241181093540042209600595442756808176369595063694131452844086701512928197797282787796875030011370772158435330011046270709301812097298808540883482733370250289433938384788187932233294009062506987656576601084495520137197046014514507044045818745769642505960965147671523752610052402277334841966648910835664983827926201011090690546903248531679201625565037831395505378899679589819281696061350019755658875851054851885253745225880208192564646502296235520011097267108174677364868955596238745941030163038153021828076951609007183860370000909221835289809221811243264836200248262607525435068303318139324682303522172047971940654915080881776104297896785052267444941085236364304727039631814114815736922418614983518847075359974846664855262593808871653490560812693126526023326696040236251295445136838704995962907898260116551626961057426913871276653274136461623225948491451666936643029178016366390731077182946795766875329846322129700483233854799217226060286253734875817556210791583005507824375097578328302441166134167778882025251643195915771543461916982953117391659808592650106734467774973328037643594379372717119380823932972210907956063012646980189358928713871683183148805638867232592790104051852691388694775576716372714997569104434678597789922358110267359984408583517511254915600340372073102010421630665948989919825243054229821165351962167540532736975839869910636995057413019037595212338877449783511898333439933034393504505368307288701932563974044162480979016618298283642391224148904097933712934810750321047947345907811445433584998357292407243945962552987440492186287022168831371745509691761894451949816066163762093589085548583045243524849157976710063405259031064881729543020323781012473980814372243839773417437748220665161530303174399873072513591655507361729370376811713722305412101023890684076193563322251236214403759325515752503678144775861550480464569406534320374599139842526911316772514873776766930982350316414305731283592494804940251757852160334868968658998532800197731638536822218790553362660662526212953892389308350783872741254892354811536137959333838713654277097726802798342044705847070262811554802540072557231423567366686221672977721296454152218310399069903138015895975109648637378422366279655459241704997273934946717238474965138443151849493110426310827732175518777056876836718745483556400086489045267965009263020380768609352371572695693757889179959502098346068357072677213376053554562418478161887473644120111913670431634584330956293979948033919969490102307478056116129874434077299756972905995927836133849923835592728216966217222949737705662785909015195652092852888131158840306379061664649393014492236139032900572872133819521025452139179437727713055443156696888412267840864886086004586318587003650818038223828469450229293188129975369530409824185284755971250161763242482073473534450848571014253643185431559455379449793640699652443140427362590370311438797044861212056746737474596153390468924987301976540064588774423484036224004067361189700040617974438878813808349030944467652502194149492520478245439120414855539576011340566595256885168196248368485443866467580370533240892323053155883577482521461506042053517511543091843835508775550654495553122358270632905454166507621014384242793277776763405653985845985999732900028249649143707274890355834207421756904150203779368374373232502001528919319317355189162743037143799715874618344422053425119231411034329883905837851897822689743240656793628462791668373177035068980149401894518374841581331154829117037907830371150958377659091980870372415454691632990379941182235384024924553411774649730753960971012710490198538294513479827317368839556446261127489641889087738899155929363205980742638212411802908723527995365289137531922703556190037556589078490465713235441938552788449357713785520704413243336944217369205959370222144740147342198658118951264405512560121612174636239855014475202951117418100056512603797948530103671699451734038780605999211781313247571944703881862625537264078586825832384489493657807629317492646870007728600645731246606363274174723980254363500517006200408958714703791972631555636266158967642152971859110470412748292918809838699917646664602093692105684794863830713154439614418908457497306667566789818055158116827188718038918851742497212569460362520791955502386138649646867944409303765234552525444886704288587560250339932377962646567765797140264147598594156263510844566466048061295153140408043227750182032327889141622658330116249416473821434201211527919398008110687970652680390652281233132442620171931989034870985951374031058719459460567494280929251990856796031721772689561707376131486992157905797932122277708312368540373261120554495497820533654456110167206138626203598475919180484241015530467727644667247560860771661143969564423960791944832567676515813024029843456311132955318895314429149551598394494783780447107443252948410830870211825160622341230954298824962658322119409088162526298584994297268382541876805877215951731799602328018937605964945836137709611513509975198806349331441056370748454760146724696463086455058014638630165674896149068564536353628767728370324446257268810456558704042223596835965264185841840444892674077539671226339130580522139662602839200825366845567579949457604592893066153584086918024701106205366217411155311558364935943522287614516312883515116650299485428558302049971228389732931352553405025490981421784285844392095132541325217820936918807943262605929864507736220234119075194857050622301812425220958103584694101593449252850910847198601346340826624558817244404514140525440178008838707972519117477479977676446015692790508765824930835396554125492225935456342952456316081907505448804690470895515260355671294624842908039258473907798965891111742921033929146341738305375565897750880157189156023195829989850911558359677507695453381017747881858431422699068605901470231399297717475061765057756280851024767397498810765529717242558430167649899806565917553176480447164810959708839100832871218356892606838474309095698804041837926463742803696273447953197330581694887214739850812241604599279825617018615158880279310233021517399790971790691094325363563071690673388236903941239896839936499400563454394943686625669278839914820758236262872285325438864431039742819460391255528315131819726352470974513426459449361073673928199549964559402755306334549027018963361692828843225012558817452666289159638839324733747053317049178459374624781556430984975044140017604558285234047126693308784856097851132193869359689300221138740373139781257003996360412785082826330967936814851082803286692244990877708587216625553539642737556564925653421041513234831994438574350670129083408237531147234562556094551661482681041382257861421168961158502485790728013229807084423752776663748612931642276699457460559685485569063628361542074417643332806188930302594214083716154831690445223914737914093807088362595178830142687255820367005910268688795843838608034061279004213829773474372044987607224126765896009553174711900803318050271588979649897561936840523359207913740413486023906501788584518389634915545159741335074422909458719673938062855681429158203961684960441309166242043989844900895958152996590299263149276277283945959238105566622784447503682048093398301270691183193480521760634309406629954750095141438977738853686874084280522027052924510390862639330117780735064461942437378456508558785826003829506794790804673028409086377427693850726975626376792371444483031337985138540792320521583649172028329615103124956581148650557769842363968758835495523220986615339675921024604313174685785642158975094845418743271403439253631966070388841694562259624621691048541311537332913121095883540326272661292747223975554605635717227830920701489288273781844005810479865268829676629580895637648471314758583599042690422257356353365269053788637793520101399786935056249162841029261043200608403571007203355710418525333097733623218073730487928657853417629731523175517673244311685508958936565008463819981625510214663111915421252303813238352093098978980107083734128925786931669219319018686649265220903137502694517882618731924491420757807626116645605019656588848233969225376149837706829429378304185237800675517343888983699837103169101520427169147083221975428766903713866154605580130363971539495306988913192239452896750675522757014139498425454283200444279540972669112893055647479391425712728460543741859480404588773496106022827466030128846991460127920833040019073404897360532885427446146655426927273193087390985408905406456022407302771952238425063008360447439433342679677265939877199772069648782581466568005544880427622492052757595596394809038498915315442768489899670421767526409888631035481443054259691264599933639622042393054404082706064145163314109596803220768718187319242290785651479223631040912311395520305740279449787931882176216233347894778656191627880701119349943929385248213658026985862595900806452746308818228349225657672812907425071410868374293968514940762245828433589866173348105730427138164682159497645013631076998410138471315876214603748663619539390357358953805340063099855731040764861887964050548288226598923476166715585377451081159737550573816553410913183880090226066548281294350800887496650841066184398986374407266159298387271365307899210117269479737843080660516513654161953652134236404882583346358320301517535590096790229630797513043175311929268121147682114740925346138342641986035621092897045782445618728285889836131943649709449754082997591606048674156500967009395662439433840231405782043350428060808644684329954764650820688236112543730872481593412249131281768958290100668330248801715478823270982735785618487230329418545873948099767517485637103951431654137377224137221365987815559468294033139333556768493098232703817883230458260824503402000115249769745266360490740332350407978070839505439141215872656164599258146877433060567645821898618823167676781275480648905628957548619851226931560561797633840890867558124497104084393984362091111780156664083515064590022914157629521675149149365300081558832030745386910981881956400799695042989635138326589309016890484795062217863178812221638498698509417022133595357508192088152706746165569974130029121806324024882805610711178434505408423578015532378520494551470814062113003132528282437519075097483599858729982670429198949499437136871163314400407092073930244146734671532233592915312487627802322434211367211245187635252642605635966271605721089565150091529916473402261981709496939525300300543691180809255262336024877151814347875206646076635087572788406283459537563887175718635645115866488343285835537865144814451047088009913198516607279736937136611995095230020040208336902671336876741512694721176890406009849462048513920797417544319976512613431523259959319616581298533494388805346328017091766678736660024212651030065686326222767289505502619940013526610276541542803488486953520561092062896837438644133382748954916738591558312533795021100049680307655483257746284341654385381504442036613085032257782812750134888147338311198077371685225501580561605944449927439622843754125557815175137741584725446299707907408907563369552963642402873934482300955425359432389652144076818691071508483150135841147736188484900681211981844916309561580837352682591187463147964655621490128787279107720476140007500850005216031112697244331372024750111609738611403925315258279869562005632407730102262314756423158315950643904149136596707186882553126348934986875720924200502002713954247996550975282576138469750017711482788660552290722221114483483679730888808604688920634118170003223688731081659628226882930408271985778384946639787918837559911516818164812722550054955014966694692109718979606425866261156917256374377081309790936393303373969480435354555854694932609713584979108484978032143757899349122924898382098415825213865435633996756205475600590551317667408111130122225363602735214267422885920484759652106828244898907240116619168051258791292130330886845385687749563728582611508782089793572132294720722196855893089831411853179869845332816659518644071944083118516344944297452782359454443408759765420458296627370700007027940921655860262805892656084102507715363371480289854412891886247697997620556533349080735711514256091085596348622985273588233638714427434431006803399905221154262016154426212023707811133907575758508234594011642554647327674334167589228082434811118131427621570050984224906043659974985204041813882125306898248064080179579955454371200397295901448526854433328384219956374590606567775854529604066077113634418379241778765032635987171914300643723997422641506738291878331961158719282390131793753277067881165791377444613703981818402725182078334746859617616614750833656096767288199128165833620829884000331308723670427177535483030927819864481436130925425636139050767989227539065692703539617068787855329137396200565108849736513631664585583406231722294994503809289720649360667260956412059721150065654236398117262053018449038408348967728796533374842158807469943844065085804572916482733013238437048653608701834235359353277872630596443756614384988072190812412627676686043942911838182957548100981736164908222723585663733488599230074890009049552925432129234363436686651962656670462572849628294271872687709893265838469354683367734085831368100338292380396492869232387788873264043237127746779453892775639327550015121800929902433380367285968456761566024591030580504845913773022064044225251054470226269119031916985101897009152187177096665876910548426948206201365512345725628734232795332513914573374166177212424514728680372510940578385654962402924114129813364114190435466547079544745654979418444912387376016966004375156628223682947342400490625989222516422035831014843281851215052109331854648170420602379443798323240098739910936566047028606646387387400367795923687594328996538648715206938508240696732878065641371245679121473277263963581524513513306582914315056718576946739415187940919234020141584117091488171635976380415902498321133223931939664781501983988178577201820731952021703967261312009094342431148699772663652912594209957132824166469289578426257411584896894640318655322513867069048394829244863876613517664259731487741456239549170965492169322862519608004069367863244667569538733878032512883892877621019659341620699048122014140150825235168150490342143868799230756277940439449998091165993557706664634211049913257054177715554410100416142225615553753697212799255189850462596848270824132002522483277050144023715875664175317102980991615538212601728302128337784928408409845661073667789095755069573299399974322585430962568813461458299152734159565270723636519369095726148801765882880979074944343071948705379780497127822897685119524781639216876358751122320729404619900097907231216012939840040139065241539829892623864279679133709992177035918658697248802666937449417925635929438999885104656418905267640041757175767501303626631884081669408482181561375591554765819007219354249485832417025361823776059251458822322203260863347308406579563705193472519581764533225915023918039167215409381401713366394274441518919206525315480332403639941011619497885462333652139374296575096442357262864497349043110008878769244355413551265112838280682023432584232119148830125449182204910441663543676259340938683313947643661081682589591520152912130527866480743598321548373154499474807177411064380190150054415915648763134309297536090650207758261300252083734210631901882441649891876991734584346298339337165646168193652544492343760087225765968343456422891549611040923059558283429450886004151317958575579320509274808659456977013917177594283996278529999584423210542008381244160316946010282869386542828471379913014234142133837654053629183266511872054038087308677731575981338045307886025283647357128824214146399035588131080850806206761259878139379839718033156153629921737620195172257331901235582404704865483165709290973619392350427412086982112313432355510775452083292154679624776775740497793257039375138726079903521568279374720419559032002712655575908179937133745439347449967027009730394720293524635549495887713037577147478280602866328394130000660241934823127174469611388466976322952061364678608863988358441449601777985740204767269250619715912299241935692084693429718486427578681510814727096210822305812194443906260142246038139458236216414744068177426792267314894552704841652953511641337027795935330701448966470378608510160126857597823297363935928161957118024948995054759500559847836338691696675025912341874736542438214718156837179041123146952570994694700584053424509132386681384604043955285298133119288573052237583553869866407727035460547601397904665072378048475648419046225822163459266801360868796336984871160454132624755971866900961350496023552335695618294049882764082047503006581013196419341975173868308099517667830468400140632328867197882883920281802427486873826930971880728234939866770712171721787083905447228987947931255901860139371114250844999776802049690631048031420085356636811353234535914124031491435113931353130309774509466691687438624792865188522570495411471270259250161130715821887923977522564016891155884745130651682640271787153638255535078570347987157713762323032210994021130073782805201457034152829462283135550578264091111301092952404529306616820164669494830852454225789993047283541543545856574718705229214052440013505657279080825011743107606616198696752581161237767891642624528178067068960663914704440523119402692988435135046450143059787361074220855785042234204081226317194503292246109218205928698027945790477216774883165815774686279090036555880010115300316802303518686023127972332685931131560831935283621701629009200544783867738714411458839855812891826500491395224469972823679271396243863027915750825984380553986104487368217706002349815686895604700182108332749087805702396151102263607423980456321955318112969288878948588898626481968735563834099516980074199671081104764106871329704405667059836477810394732198831165040217285584399509766107468389370259437730470068785995282489062342605156481247260859724378529385877086594821906102205594288358769801569196795686938010799683985556626394872239304937491233859997852996871848317835803272177716641749190743760202831550536698050308527290333264527856308802219016165806435327626793998748790659252691664415460606756037148031203091391683600797046274292259925530588796039527722802494955290077178087713646989305559542430082530321201705983070322467080107294917085836334255524446116061521583496263747365915384813710147911401729012480829202714221062584937296310840585431254484232249418524725239053415326821729024413700135807384080599176073860660285080937034739356109603624075415390953800524943323659013308677424921363132392522380340281580063301524964091925243620501599789380508722277006673144712536593756519157856815509486182965171116608257396166276073628223888772478343832686561487744710041651966746802048762547605687404668032165460615711220037662799791092399354962503538164058942381400105421115559849388880585795899613659057329573441595892023991024790520114953419499885787285499999675176672394285163861179395400200816258717891925153236054311513621064325989554090536902311297420576910249780350853803775913849701817563796071517600468460505677073825382507644059458957441068507157883441382739694765548941456414434224586215293073269081550847947530501083492009011636335703064255790547951609992996039223183869289865567402481866234177675352773440831598478110760906698590425295952193154918441881067197089009041964221342664356074328307140484816789203408629939911207625416796022395980155102219721135911154611994193626230594845122684157293148102739282724309096338694599887007898121009216983389089909811273795295067045091254172429187863133518826762571719072743472566608818817072722063957902640395627264928120340388147145302930605325973188317939787272672281464777866647633257720666263544143673414730392727495631375400236214781350791925559947002060312299610540103947743980554044574524901967506134262929659473006105774477801555490378294803436908427565836230227499761337855377705396294451324337705037853098658551859605989086501559745319573876828867083802933013826975839194234439591705005936520488000012893104452513261666522737209060082377809687975783195943570223851023375857690209877794594456431196740168285288089334990915481875143127952709356369268787492151661388525852455706779284799422466679595840065639664471005483126098482990431346534880497628842690363308144741393587492134033016853380156820610465055076145861038327395385053218288368592156817572840594590014826381328200318779619334087699689280499068809383198630531387374101621941560812026741980832213274197608875125201788672008278641863645091868810790087067776805273436517273035510313372473181350802687063344559175095561857390032156491431998690755694985550921282489265739965526746474421530941639970147846408344624550281319387838816940485702712896074055748450043186406222850532630360245328211344626783418834183467218636841757617938439668511505577434299335513137063412599564489037641765328129792047741653963661282826290310090191429758984788827610519088347060123552285036731354326334306687577584885060713592061431388416935268540920778510128175720914884117943921130256332881240097664386602952599181696439386269878107935546981567414638546824594628289635153531253690879269629859538605823947607067634696898897421417227752259595731970772291791394795048882597007277501418727025558782632824467245509092340424946370878882684715417485351872344109837416136989375733534477868468036237003701965737620192414216059949692654329334087898716058246729938142234804046650995878783529284199817220670151362402056494269489624018214512634115620810283853987468827487836590200533856656672535405784919788346416078380242648482828784593450412011575205011111397531276688961269557993204826351541407948697464316911260163966746905064306722684828763982504209835868714740513958503448670622501655767311814100453531979261829322681220450324333908684252311242177592628563498937965976986429840162239610797218073880799974904306053735125687689805213816417686531510478494979885250118442412472322099281425621038345831222727177172141510785743992791333688355579398547435404759280818362052596942997204541553810058310390932658603407025363859468119881450209800887547114443150951373989875579225299224161050495014228382514695553657865179144605400988754450510059579400280969502080930817644618955863691537517627247586304971975440166272753241684291466685519772986350394772206804918131713202594701822137846483431901281120557966535794825960359073436311786999939059602269991911886963177644426618232711588780457201244417878118085986536890335102107826322495163868656246152097469385408104490243938753464844005796909070071029697414469867995475877270312229169154816975595045326113482923362073029399201600545510900245326411410932281443155907464815699066132484287437301660940448817959908229241319690568618486986206204860223546636479548802154742525696952989394129318073900038539102030243235928844493620217870594070639960473201213427205720404200856611090993078120393258364575681544272442993918655939109349051875737848316557785610160391481203496935336202224163454317831042561174368646806969934692936847876655204873033807962407214366975623123281898996987386272608927561683093289234182567892899333737828179015518344410201584174668695288797125257591277289050339830980274175841481975115670360000733470580289962380148739607201220424924601188231046524568343736497689087952170193488095213025590411299102756869475788666605299109843088830024262359557779050941411635654465490207986132253562914701223026466516112095081090865451168092769916664043928252333449169049392366148810586438057856236623434943269831125645811917741647702984497960278894820820850311223291490163156314926187616033418861710287597387812629735828792080812540137075911721250578787846981745591327597730638773866777721842633963687306994909841006750225494134810282107107563311361325435167686581300950134914511430779555185361138398915702286711509864228007433232721890176137781903654438843807095664761798359039223595007427957536825906921119255169417710014030956393587623328949253278643304514258173224557609594341098711810855780362116691686669330387400255661618087126677402803285633568583309517237955056637593484846956335289241511959745099186394293316849752367842710847231870224676700987637867157092551196766736436481329080095492810040666089624715926742415557373111421202380254417997399681138393649914362630306732366125462685971474958468804502534980853221911951387418158260142536527134950698826130969056650661168709340249775080463889642796166139442996777739973331244966060348273199194415697371029504917677538604611999082246538691751345705133651663615578296595129732743096520748878633003404406347659820992838060981745154770292825363719118555141143439229088665983631082335228600832810865934116153544756248148453205048925907780209388478488020064085933308741828609058964070463832169424546156247264716582610632525874122490742460552978716654636644622634866877207527577861233459976708853545571089534483045551703492232303128266421161128892964735332957821158030030030485300832747580986977334965819692275667250769821304368607077648629351241935732879943504265177736073171250898522563909475579511372440777618548825680648113019189180104175344193191804445921653576213317858558966177465266553259336725573429495815853470848940207503097595273663936813517311873487854184945419922684299836073290694445241432921472770833357999168129521415228673496613845844674864214987933710663182090153539487213582564349697180008949551271268219638537278471085451741231813297628916770795747923618252942507305301308811475528219899477108383672479776915880069102548421054626112764508500892683884931241303776241960541392686816731693796653292321030567854469580070351457414777094963352636091526543786563474607853767914699601628944014601193712341957828675841400890723764430109577994382252816557721205471561775564436061386906572409066565038800303987562964502212512207061248242383630006710191065073562503359340153578875238075308420931503857869534345247655610958204083596247911837476270902915154993770882465434561951942792841949469929807480863454583928485223263441827168047446009727654994232390555764449533825760935972737645914938862594291142890483841017933336882156189098101258612480359766184678174826655334787264746608999310870657540371682149555335204265683105086272394104619334469952619499838214924897805978590836334746235901605186130851050538375799111419027334213562442460565876017166558314813142633470053474873862200092133053158386258339088935395385247807933922426155766461517776301093408473414963439663349168736709002141209155980888031968128734513753403956155519559102723785029360676798338993322382658700537679796393189672492192132377783042106258537709129174740293836503612387426277339889873871274961171251114849215542951302586526228956458813857628441839315614649447547065741953767842240872002566950583734347221183240666092446698225281121753707364848630226192595839772856556671913097390350513713909174164749247603283093977890134019784437257691180924920528831563413785854417064420854905144827705755300284951494824077779921438394730679751140451355776948777592304976741478865187351288264409103518343245863902113465924015153646633310618558052798614100011212617941077622702076857124823969612619139258877728434574919680875394689514883076332440287469975939229595393623731957552887386344818899859284047130470989398053857460493195610178349825761164697692331564312046233027776536947760943888606738598197500164806204608040115674664011462887709983448686254352827947354203777821543095649406391237090729530342957185631900341152448392231353069313959548780041260123322164770589195482679791900059991089476805746031716122875329215106015799090776951557091053703573119632945630439828933824196887251537315752630896096232770536877957633374244963245662429053659998601881079214959393234260643902943493659384977921481183191535864910430632914229296161722388101903488797608097682206197490795359700158831517943811626000939303157224358221270498881314483251880061604478750927896643676839385517815635093180264207971589684903380821398360435048132881352075088479189976853974396668194148354507668614706278521978572879003030193749737905525817599120801149611952974555794927142502752784844059487983264163120846659170349570204541904200358397782242229183335483102243661260941884204789806774822511391484942938011083983691395589769321033663832915360303615734372883716855114740843805111727341617571853182031961564431590979949536448743117411906813797581597183154882249328705745144425186696656005419506789548032817135766463536939105451709613062182435097616563333202163417138751361215802066752241545333794477647146559324578523437066865557591610648412866069857927078536620485284027009602610516131805724312003826982594094899456736907958142021241772985150151631722634742517995298199999034830787476561804970250527137248268568657881591150433253706350571370448435964160306943289383907758037619856432102590934935817090058336428292842661721652412038358243958634980407525297078985965859155463659601168407523613686916989221283007122141689754431702767207773092757198447928221388522289313498496710670228952337811958943562415358324456527672012376729731560439656244375338076387355434114838151983755752234759004273064146029065324629726638609188338997739232966097806387897195620547704627056805024566942076062142608860768176008134347159421816081865342103817978853452805592783662275781271211779490784666631208467591957273013474837722580288159771197821254872477066402327952958947222552783604162664069345329666614985108774204205221764434114882465108888882946675328996080557052318800449245743464816411745982424253522477021481015570330910045113067260702657844019262696932636883829175046137216214263638964033764203116953295932737370744066134524031343972724762352130329720314346470330712194904107638548156602372537125483100028711209207149351307770564417862470358644582707437445934777611427915775586286434643922658447624251337197774816319490046531343704979446015734559198471151607029498275915267114821851776380414053185066765526623485438765350172206539577019598428651886051931638850146507701464811249113480394879308531989851540604920072587200853211722412318399155473075066244448333221515170411003641099634830079499288153493010816141853769366551805953017530411297799029623042682182121200328304933564342976472923946985507526025070254134834883762181267397941145425475397229555520611662815334877420320128945873342602393009968424385930072170223792416631101305827813201417291083893203107888975656755755436009539409174235738072962504516979811807931533884686470034553198633313691672436991397587351058897548324744323937348397574470872001608358024122694503464107722053595508088724232738561696251003270245413777360189908851413605112306928989645235103810495179106226080173943595257287146429970589593027929432791101152881905776164895824463063039577959476169203346412120046863226484561024614148770750020698102654518854068264972598774327251977404304379344222899181190785560531477116228423212775594394728279437867999875188463219037567564840325474606667191486396405754621459270867362814646097897890467213542210924047709502192783915629328495769595194130032473459283320364195969600457379915178311792246173775295491869021225862096163974897904535243472532844699764375841917917139425909998834726576052045692945422893340110175110265326247486833490114043320677637283341162265767983505594669281315297815099873666584518535967582053657931634903730380059004237698349745011400088806036974668714885109941165622519996559442093690126571901576093457085847426562982570844373982212555000378717028203973402220618291456877310351532128066636082400233363291471863736951868845530507470691920323015158792601732647982592828658346009369868515967243071258863443059590521733336519938967540118712897345822004596969676330149182685774945241216175466157133027545582936578320822337844202013539975026933551024576638855827085163396855148994717090228883996059838627396443446392493309495647588718695991094976055909987967129038265951834645561672388465733576011909860634383155996415595909574879372851653854226831383709067737737169735571722767012077743041229788502110290359669975097315187500640677940349594169244345581058580492453091661430942606288825245756347208472505854188038905594972251650951506737729681656170296491890095736631751070880048156885061449066828417896443425788382942163638018959446518762418503921218509878536988182270993013529093604677322959990151949720855923228953512995973585617458541181585718841333170551129201172351926391251258207629802981234562955478479763184578410953881347314506341502408091620667519075749268505847865024547576224100673615493656585132034057609704276048448936018637150979964076457158046882526688658932381322697890510556691957825501097237014692633364409558741744398540052921116458578646299625559319395493665217868403164174717071817087157074671929149547553122706188235614959560342815967301583202528459580584151585133645291575919352243669462012137478865906391647254600743794177544823198514127067635323809128439788631387820002617958702226753178757583555928433426358176225680993030673967850032982910893664868762688674893508798949050922552870492340727570058126011412838303919737450500295790930206670824206820269545489940428327776605567173944524980240813377981779263115916941345972812681363211171218089076192180799662847815673980401706337708625280613341997476006555446348355344418400423847130447250631722993194966366963927858741004477286692440628686432314543382304395755320102176757938006601624792289971220060416847703630694626703051414280117811266558559754924175080276814518479117631822643912569691310731764317976341743911418496403138043150429950995651109760924689524177574944385124765347347934041317688463932744146276192492215313244389266307354078505808002038187460855308412414369699880563960221293282676692816037966710254245723367069093817173019072539728185352892722998726658966997430122059428027108952893580913844583039420119288423683286971921834833071026358943507575939020338834471603411407938035599061423021131268582606776966106802389468778613967546416521846219742027161368733281627039879279831524055401522955155136100769582050707350781163598762880149766085578141195254827788425745973496603421432192881285596527169140896264553033980746742552380172691598776557166185993668116092904768948987157406244387554133203469832513630427647982438776754638534238260347617711722520273215432617681915113416153821439208208435447630592904782310041702470852063771901462069250012829802679106917899294100387540061906819225457137957040651062163586551415564290498307667612932573990230444417224910472189900495616260160512577565635117366207295924213225594642487671615850533306456414567175661639856011075069187510354264558065214428525862428275311918770772876914868473460136075381379926852472973179707561478132354214021866258355946668115611517098714128300707228589742830068598999876879044293513572307585099735152994884297414664951141306072704020847456929025336542926482386334771345139998625037513109673830088500179915805215394705799050186036382053482306845913632928424465491748523088157546086719202315253624820700748446689414481683706541184281457648354498187659450586798565376725980030929637322349194878461628894612333529665313660530792304900814755353131632949652492679876822047788277209798211760871461795207508319326980199550532615575085533543099412130335659832741194757340298227338870003155229837818522007138158846503052102777490812112791560240669033720394233262646256080736289123641349767242194547928436794178413359397154237481494717789562083802106726909965527371680743468819423739583874581294154874928617241007062008725131885521867438436170567680714535354596731206350865797514468446180855208133778550423694519930031337220761251750866667951480715225603269074341980729520145440795437943939916545030802801594717191818934134140807429907603880693541323296376834016735219767656043454124431928273143053226526838638184476476643618281906638331918911012954899709477863272824992184151307882821217918671812369134573573428923471539430443684192647460663319843614205940621836607506789315795499539153459854554192963200178989139966260456251967777283647155655428831676534151275355324280964791852757989661915535821875983150201188755696441221100904264446156392375718984854778216574304138971070659899892525459587637778023556280658638260094401123863878584640183055731146299794828304391384814867591003220562735062700850633049659360959174356939274047140638352226987607612952418516603640889912913169371861821301180462526431365198023158631429669832235004181151289298102506436986047824332910882034425196316435279755788492073860073110650229113873059509558958759612578925048128311899455630851939813041136133122368511493626818075511240725145317896024900273862930469090954476390371065036019796701169350414309525149916339534236360378647938122926647262418372468006679496681590297495813481140918254013783803393059067548535459151087692478048669792077955843860868977140375997869421495077439509330476105771989115643665442947310811704462045183184344955398041258015449272209604959108524310507962553913677445530685604087399451090354491062601335070964945761670837317299975839220078031527907069382965921738519141957563671510540226270089047084819428119173218125790244184050911131508925484326517825060513177130948003839665227487487134171825071187759466326564066918795186515449406411895551716773143198252019363135245016396883267025716356753978227115972275408420608380441681667651237554287010937181164781997995893949389015980529295001276177414796646966570435270708014658600399473796452052918638730058264382559226118789924660577901047162958081257923963535396650671086673283282507751445312805160395353153876922164399373596514575211593901458619643719398836010543852711901702761912697745774117658789429208851766612070720946330464832642501936155756938631595517859698689871960894225230019353295525678669079613338970904513796805192080419905239183523567889047787907669663463513598335095350098593711533763552966608459848826679741518913593146572543332399842505854133362734067278023853801128776281702921815746665348447894875221595326903476777316884015141758877310889584400184487578925277059657265862192521336704666008019850671125162495822207952734031588095709088134877704849572456126495677483619294360817217474807549336004348648417175455074261897860962074349872106965101398562694179053714704428629399572795353922577141296848653186210467703560011843550504509624358612471866815509609333363904434571199031147851057546588021455241466978036149344389305924484147853883335341768998020495522041127625618873394147002986431064868056781889791329544643794042054820585069867429323347905091367213517013455442893058734020784549163838522417873358131270590092309971760649679346419910410119730182576860116908392013997407123093530137856791248061968128738361539874869574365903437010853261787709146877696412603100366853763831686499326569351824992417503061383816770435679134824046542403094369833830335910265864563083819995438731583779429547095033714421351180313954499744142107977400773500998441443820205524094784234132689104872836133945633146180404866640103420652088858298540983458119715989550679655369219114579528575542075195980328222512954258556868393473276081486979071269095301199777124411566344983550629528959777945881368403046571013984839529842967506000484964876068305520901933418899926616115227700808061545589922111896538609687516612488804481949358951146037019200993067698826156063511189654676168649181646281647641246915154375187695972296574259077663747240439358284069196581413140145355482868142412869183365294485670056414400727109187944816823487681846876404501197981047322075219837605111228949295776901665322295292114381959947999418427926144924789889697895810791650130656542267848189094538625095834607896906023809236900060481209992360051106207202818743788512826464015303063844018409895020709618213429869678513918961023395020038021863851050234059178329635846635207727312294635545383006076759070857988219602219396628595185102983248312912707266020290191018783579508541912682873471678312901339479675460577234683590154810119822607423738389890868709941628485297413989868998361948434048389460185426982533364725855551919259609073214289189255507250797184576918974283038778645560735817768906699053373333905148735356481526380073733922622700593318265026429977164986334909572585476832489401823084231232496502594687894735123498946447780741267901274369014276648349544322365226164044650275847241847035566167023161351156841072473185098644595269974708466864749136191576376797473393941938937749630979566368043362153896652500741484142969483448584093807741059690129521948756274270251159511072676977966144169976998024176906045315937709149994391330430878440982581427520056036399909146180687029177985075654578060178965999833544930343356266067602753233449596026328671837169531329985865475441726170436131834885766047175401356093159338017800389844361667920095700805618057086354641545828904280817827681737397424098376278893748558108357709949828840731077505459259981789781222028381133817944399059608396688983850958695580137915759468381100366197367779993988874427280221583475041222844708339616164595409943349234768606881465769670615207833633075615144484542929518429969178385655916775472887969715463691568870421125612497129749246787707681275090143230702972086826054601204660349877257885900111798148341922186478977245156736939727214269703156287995181754358259455806519971799326068688266829715995373613144843359133466839259747582761199741691408458199994721718717176157353754492180348181775378254188724319141199066223774857858877528770908806974916866842617159200706388666590787373695003642175058022105517841752724835269293890318918284152819865563986581426676884881542099457353347421811678511781292785440435511853136261560331168826489301307958266765108776501053645977822994667317070583046225686490691276843863224860145532803707726557673937415449685035267311386670787280078868459196317647080876728130136837016042019239920648118618938207572140478448289312085325868499477458680105557454203962936458694120987319680521298245055449666785877672664816919022082146192223839217479029261758088307256053489811702697490845622604066712836636617707324741019154017273037452548302170212155330046943189707006147283519005643854149995889089436791824306376406730537869050672762378574486749428513398783148813408022107041906761048906419219618712653899894638523843966182579948404631598959224613444350927885534765931804607796904557554047576733575279465730792166299445658256760956364367884503927519135710052536912455779022277640263686052946286913631388342593760594841989952131574731593504979425808946604927638689747336433086131902464770364917922489258179272649985580619986543499218591403785577512548933997208924044997061938590345127359652171259405592552777567842454744192898676060194342727266604821354208761640805626702374875392159565263675915779313877723015084791568787279887670474321432226813866423370574077305586851546558285105604064634329444960778051705007455897419497176700063566378681789531219298035224988212011559540773408568842773584504243436061506494754068094314518786793179300561588256366372863436431736420464195182755084216683626920991302122766262081479306566097947264891622567889702270862075509302052932405136230703938130373754758318301312424412943554481742943087739553231046978145002278181326694532655541443798531217322158460977525964679279338050149233575680201893445879380320329317343907806077801630074474714343875938654726506758152247447958244167392979393816865093695530346248427469599350034834784118456514851409380595775766150483012399326114622957656678638486062120200738896454908511601203334562232283023525775227065767675943523272437542906472266092598709924060411417303628309013140070538617030983632150191261132699378768219246454967866602391154180119864092097714568117386980449005672468194984927612616188404212789267451164629625980346394592707006392296443858397426664737849770304409604178287116306250598960053444738057616475314279265540651472619512546233799561651034091542500270113068007500802660070664065308697771973258724858698092310216814545336448947006699366376006577631740205200071104463391227561435360367671752002625192509804724173162670676816812848257132902327231012295214779534699999375611852497505557252767015832869305838323730372361223876443867061551189605507801348494704688622563975528670703346063380502294879735137749366810761800299596499069221256747462329890635837696069913191611156382858391750623962718098573105247217962304937920973659375727266988715965965485601541207190804925740165254034304089759322453486717580686863035115720504803254820820025099389871614100326156394450017757742086528346272772592162779515862539747334691913283969655181058010826252939901147815000288338620590020756018591799596362083678134526988268286770821252226670699749492811202967716705076896741764392153086217936182507443630561323486523319580215084534605732588254640084694830304159158625647492557709924135216050550104951938579276130518115867208811843901906300903338048093200697755568140444965953477610741277667091425198757419676683509864128986333051323137101940490235625085287766746976755887709158842339109335802155646630337941157287940931301868747175316930331721711632019003292551378382128464168365491886222594036805386569205974622882796636241351380336540406501215110508810161912829018414462843184842777442079193226226083363695357125569540759529888341536896857926204831486745626776116449879410080814799199323711885270771775374584309622238423217858129942112945323940605659138390143081495109692316548889640805385372233734047715668588108949604704325197567400636355026405052963280193238147929126849579038733524950187474799063131465394182543604251069248914147529105890071318426805166797767304512494284451144700214853246988900669955130030559776524280652444996730870058172285227512806399203810119019610809943279410845534588833569493739225963907674053506444840870935664967974839055494739013081420215575132094129163736554207110174552862578874746672252731581680128127474718692006579467736599469864101443780223778444334127672650498093033390751144355634630040556667280487334282397377538262153328989673697485813228362822520771338540908280963712082356892717327561009443726844242444661124180483308963576966238569739276266415749194709413318055598033309077992552831985856394330170910775851986804685049963981182933593478811622719017956743667007949642256264709825937163838920188017917992756871482794266198239661540026161784749684547025047259872719481084053329240673964184859164467172348446650086199955717145072456456206770304965492041081105475843045832577471633948098309668438376587191018533551960081072644280754037845307364901517287374142436887064149651825690085031871106681274297874758561339298231340998260552849472572376738988110744584065192075487783676363264405302192544647481881513569281335765605617299471663581491347772927336892771791278268328724381402798116691682041246464385897460949738346144197131210895770959463538247542366930328663597302052295873860949507894209279410393481767522746976122863376899502469633893361991856917698021122663467016784079053006686761417935988749443546294482827041393541898209897714504343287790965018441805828071811127202095178729377780045007081305207557536377026903092015477778471801543977149570335260350185431735168737505984042905195933494214388213429876186758165038580916312238266333206055803570012956595886537074272514213610638839427850110570488475213523173333993319092116846289948519042540411876959496390298206921271219135462261017784646298899835768033205271263724457811507112878074010338838795894612266406062184846629918521468912772421938879507530939361058643907405592728423705504861302114842910434852426375683421905375464710817387163881607369208348617004867515833523593123394325156775847826983777970374426848170716561598287565057633017517886083994913766582578077197394699702316757491170914332172313989655910644717260374414873082411360640061072176620059515382112696369247199060129952698145311963878576289763869187208035200639293586737542923713724361023428441536607511577832687301817485179763186874934955824469034417421184332765760012291123567376584694472410497336290356778359029732220997907044775303317437193760057768963266427633772911002728698825638267969268941909409178558285347969310654836712322065067641626564996422934402461212820298197613030834605886459690488770991187408043758861912757734899942623361807550179466539669314530521855808582024859501372164293874442423128218544676797444260358608591436968233043729908871348179948749062508575098368601658702624848618752046946304222091385447911046446318780581602638239927303938815420227395047584829338554434271324689759657905252646810068192625427292100977910971969213308054948961698118005670410974114478933456962998287763791075296010896250457272816007251325631679705275279379540323484862083822743417849497083767110246464373331674375767955053447727696583728903051056207674318890733006663613689039364118689972042846632160032144672248637834839067730127566077883777406022001227782143166665628043559362754445714316213760531437176057303010503123229829803540682936560696939112947931410906060382105001611286205039177506117650666182135203535989181596312804344353308377338892184274411720942038385803072827912778758951312051097101197635516498485147890859760683741504824228390866065774681182841388651136584070590629057028936736932748980475791654241173050458011828671538691568796696979131455243911326100586477282636743285775235959957306523749276145432658628877925072795480463750633292801852606952367620996005379207493216172809984529992325708149403320912679951377972494287326346387439269304325165606807120303835353045711167154581126353152733223578911033764760445527922522058494491248679625870679383500988103123981391764397850372058800499625227811986249559299914469123993189089259321123706760677489021587584272185979184016144803035564960976501043162273842722093966929764888540665844367452596017119285768757497586191447898695844670145649941658449138078219139707391132595329633543239802584797215368305433430748260834018807450434959462743252613353129671310229175300549294797754264097377816001772497207478279775595039205493193504391208163479038673502298971353706745773911258553729833322299411699791495709117824400063944827036005457938030574312552498173021348257718674283371714952955652087917428512860891458288159412413192015258160873858692474617762469231264520892149425858679045799923724711629458496564452605582920409920211470982862003978361145921359700015764571507331563698461563259660200341130256352413800321224393837578488705888225530125104498285540321497308408899149263507020225240333380879015732226178227500161292645192196479852757339514709870221581633751005103429657486140280954950857372409073077152731867622764725950130573329358648903654980769197724439914915895233969136721052852384692899080176653335170056298842039613288316169096069401598639614315403260126465914705445708038293888549548035349660100970402470331403924960702858018958529030943487626438851520878254072697056674853584129011083779940139215125497826484198233468561457324827813497094928371785037164512550050161362288165398050874859240438724675131148266793896057718598743332947790240348135732805007345180868093720428244342965368945232128468790313182579206481773424674530006364306598604945042354608545467885209616439408836993411546833705191036406742855607487849100279567808784891335243030899139140578611474492532087095335918224303863796304716255292423564298461127440503866446211080519509846355790416723594717520436546001513222744064329134053121591277510050532438752889557849468420488857071389081731100243309286062975953338372983005815729255255381612411234147741222744345431515054870858432183994324320272653878956674084012002762861357056836392993386699505290499042377827176974559793765923772583853350391428448301129422682377274887286296975500446602557749958962625489309349102515491943602037387474566379378168375808309791320963549694581052572400463100933697932840954715354398574775660235011505860763037964012369189905071896283363309793791581329733824438672734081557235258577786052171024274094994489214296741881571200322293082939263093786302228759614918139851290963752172008218124841550172231386480709468193085331245792205832070961432346501404965015048384982930626171901702116383339454899594323580713035971683839361201951438998233098417272109511192230374099847040579211358096484899577172121515398825473482434166747322626052137734988427080667487402717111916333298204017489689153693271389800063545756243402311558380595615375051005541898916472331012323296158199777062120757111008869970320813016863727333990534948033788725370165968151359084576397789601705547106218295104292150182761752128001685127592067037745280136391484130553433877426398169109665121612012027792075346159252290572391105040581318217543454640117789782436065855478793667236501879970639624913420982877618782324009723988527381916193731234644264718534324330042832059730144553610749540716859252907339064434276368450789405923374812771811441370358753792988116576452319742997039755959818983438924075644199180045895298883019918492799535828706191120768274537418622161519604488586180426001212111279907417606283511317128650901411061660201845574571820362381691877886299067852233744740164108267845855426411869353738148806116890404528554272402881675089997135571259093234047359160008225401889587353448394596612972922021197381154426001045220442994889716429277572388592581049809215323198243687439564535344217476885890630497376496894730381290939417751448179518611168890133350625379897256729874182732328016547609174186239222609994257675751433267484064908840795527052238496870662837799776287133882662976200012728540763449974714544432675680078610926315779046777361632455611238611042902271953273643639083457033861790430930610285786604451648352724568590991985668640297999742449753006131072624220843021400479018063560925017844144271586528977294888249585947043693245759048932834264650080703486347634941740983026117594937109918290715143147403426802750287061193002819933603415520802984473378229606914248705352197992490759371752228552094051893992711004100196162376059822882194846343075745991939535772405511447326112318488055679703769485677527332548489385518812471071458703543071417626397269235039898375671263955303448368290494505303745758662300191187657144908457267949217234113106381716629765997206010766752813497158858207155687801292527262774435996242007334434621618947007578933934996476016829944652282909988299055648772382586458730446295251954554897650961446825050084645263727843772611456618777850670309797822917577360078218854027065194670600711262613047854114473208131006640691299221121996501001679042928399366340165904845222425069315862119213507242149008319066536303252819705254902354944004152879582910869532937934862386267376338561597421049494593645882510513990963561488761292015880601808084741994081803843264277621146266336855787796524143535944044281276516209044895222793861362887237223561982485096181437023739829291845788130265177613000002151966752460078469901873396578045160436013597341065768390770929320463644097780141269548120135813417222966427035182458776380127353598570372319550128981751171679030298019827018082574855038220360803307847018277817953996577831684079478093209549383568694330012093218013201553465882933739118019210935405401780479954358591749023728756558623149882498694456642922396324055889509820758057504299368649149137502378507587053563051844209718318636050032370505039124419202263689820921298280185064845304827305350122810823905150213160261943241031663832106521208002379328522946801967195853801292052265054930096702430993717813687874292336592084419008358078242613491377797193684280629107995436297116236985219555270766242834035523430275845389405280656889196425665437328183062709434145449434766873625840850846934830833661577621249980936684572248090132092531252544062006143187351523075494881570231517731421929990472303128988540079526718698600348630083809804689158125658891670593196528277706186184103880671829612560265399665251727007949399067181419373065897042398402118212790482345038865507647081433924261573361505936192850725146741847145748020486913075449817503273353454638419017186262919398890623320325603713915742747504113310346386162222293623652795089635477036559450535640547177165081088352708783221442046497351950618436731377978916257214982955918656665494261930635015397727287228629431988232693103894532981891393548094071833913321113763987998585215013144876841220692243455319155170716165237812201932110778002672455842873974345184619684804257124438466441792893522462659685966857439952040136918594669666647197493306211340786112809275991054443590026860276159079733804408481829972485735754719481102077133578190588425853228840205531382430617502870875775084179139551386440960436819788002775737441470757121474892248570105364754545200308182389501209100530654998688785172655494678945029239033394022322662338658879984102860484630485603491307576667780619893107931091530954159384826673584990400391864340086368173179355284991511639800340762360517729725271363320907417471929354230057919424735496348069283278550390365348539433892422998608888181705479032977516489799857394146958742005415772487526729995461844251593568260011984602465236369100186223016422396272735501552448169690008338182217449338740452841023148089961557317941363122819632641082509847877773339481893037498723064935916581699509345364039368773289095888069692699445833737315074083241604396115499504589917132366973734904896952449059155754134372914884476095289471449260395579050031944117612896511320686746970387905173875498935141970552253531953645750463075213050602458104538731185264374477200529596474007567719997769990341992042730541183207358721741798794703462666462212274984237616472555764200313926593716529451232516900541441187926439148252789926877791346020272030498536657529641238706252276593313575064491805159738796903476255089502953689283371974075056522559782324739112091591368880217302258491411495293062061396055599774472407840347832611645285162807347559930932198848791163417579221338861138081189388674990010041238122353671102921720888719106267930456011653731421491080747647121652177276782438803231255991599443760738656506582593421932509194718862715918928537746974255055318951070662357395918225029434100508389039340388734554497732408049910899817940209596874676393964308030146398906599924672830102750927061740385860004106712981093742283373260426668318074104619980343001456818833253993280516030744279426429443842864271592077763516485511875568411886706041356737076454080140106410527175343004184572127380556381742484170351502508327418216382390715228264898696412405426683910901405991228561781067587480035905826716420408562268630993321717169225941324315917784379747877674153017514094165776584075889612471294545525855216646779569598221276672324915121761826344445333407750604090647141457884868190014918670372401562618784056193690696551077257962399567341797168561880898726767822131579597243578163415628946012463862227371264628775792528280946883217651219466756380622965860339525561736110253543647302752359425322254723034443856792718940031534558421459345689873949048140572758801442760250138351404452212539730796820955570454179823175354210095017529446559356052898527659263992160470805693892360213809888700108849912395043002112657412970000234689666846813680535640351478463981105991011559098884745285691644904777078201917785015785449909284243504966905892260604588384311089434211622586666079451875054323513557719861273283167953478077475782499543450803879949527699756280027408366609793648356640621047934492538077517892074708386659279303647136324400832805719275035452818221153776968439586422187346193062994746268375558273410417336846650291792566112210813837816748171117509860101039995861918921461200270545041866863228715505434502874807429913349882145323242382473016908260246898712849945321974981768099908018763880715364208817168980433379504386657378736842082197300949310760016586397106351544121695729949644697734197280935936811269464374571965214917169903191834046948475629024439059269908916860570385659270801189911352251693957477526282059783747458657113933296817996230942303863626797328450584283892102771325989882750521710858187906024935857114749350843434373195521709638297276037639532618773279641717082061432081009870733219255506904467007110362554516642114782468144328103330600590907855352609511516242773628287922975683660042206547654733963455306433226966888155339930866898408410106575429070270779088471487607316006191054424630779955779470301557038658009934424513822210649873329571241917641928784101929599740516301936372814637818874220393383274728181778986032824657694702579669126620788588620866520377470789347344769705265621058321380441107296121310480811353960905269097516318793711358295911102375520130445129370078342130268641980857181557670231296032717486874292629243878813516654331682934456672626971961442184387969999705845364998533452178674278261317523580274060245111328129456306479915781924810751502252037102424558740241296674552753298371004765844179126797839234476767726479790761830937093825242511196702135640741402517211608071478511979310888253291596073181402571515156551540432071225835218536660532145947327923190682831583012291969820794731842316844716598415993020745469155512209969318832076151646169959895097085507580503264960886287317104612423143145972603007447951772606441534821504518526068740739559504388995171855161737566317083038530892680652670335981658861276248494134603045472891167399280777942035498176467044256724191144515420275409687197976121876450280871534097154076903398403810730938667288565164619201271605316235838136204208411870913780830283689857449027614424729109202274847913926398238633600406959791229562615398126218656838956406627182167136071768315003283887957267686844658784589097648135282651655144257413385363698317874521476692447711718220610886946937781912478197774889878380278230858734856187668309079347953801701710158391088190819330865362187912436752875552609257231873946513388205582930274110183767649533552531962756797193820453340285342390762951582787010488511119338388008343378841434364344305955224549787946997214555743798418986719987841164576745138173010896288528626382150051518055416588084595982754209753080366266812873210427716277665662165255644045850510805230135296155480532192240972238817009509791959218055360725340731397802652334839032082717448594746661565357598195030044312705329322947803668936969986350130156516761804870800725528364953054555920229458770184289756440174624299880527168707367223720490624083291787930550718588168143675362941967492853107421678531130773129785440363855594214431323445063762489299064510694381490901434993547723522202342303405887241776396837865909139935142309750417028187739926943601137764885583083860783610099211314906730906833436707842671967129838810341650111333819571726150841986922629164958454106173323326226188711237629966343185401882188309139553102740187794979650200918059182220443235389417181265899170488731456861956594446534718547982360967660358333871182747244784835232228169011177000794581853191004150132403282089593655466882194085343330158264507123082215657641146580930140710858358873347133420136732993332608924922844033834850688161361354404403380473485515121031902214374751021221670334661285589445960433443911720590505671127038343399490773751078519101862744692206045499230317791871253431068652831203932553650812546583474054691389243285223443836291067304214542355550816609805239982760373152811467161984396390507424226983176296189702699011348514496331282790047245759178663046891623347083726807744479910146966646474081929166854731633924637663403413538589362825246525192999406949534793647049539475671494776107243374620454085726991954107728572453510419655131853066348024410522269873067341741467009086439219013079190005799789349941135852981234683424402165728792033464845502977800530882232092311507541157786804405208434150299598462147633752737854952207564789472817955714281729453283875816752119136432522220667906279662407389054790876692793404865632637433147382951814295021225014553518778211078282068871650226353508193963670960990333651323757973679150164412177265041976564192353612391374100356995608243108468755741893799681858226302944456796567737321605934708263902679281879186556896224322450767155529461859529291296818790411961220126272191268740854603605232627829373969057970536079311835837877376652909232386144287521230210985543619595793824274865177437808126382872215198187997859402909526447348035972989664010431943858992564872534309936042991213961183316803804387322683551149660447524636831072768525524682851906070916161306284785729193051186133779209162721000617006697062100059278583667767101331203725511780120654011590794629056259047309436182270162697625332379003220211355342670854392760562090723045355422336960060265738629527795674565434344078110657255883617687904348569822833047668931484190567665088561810373252243458955525106236444866249779057955395826724627176740414936788399625863433153106832184445275552318802342494093171489896796986077101652349718470420818586422209775213322104987654977753905358674462195655960608836940066956356026488734048835064443459872583909382111444212947685363388384203570185588086124356276137164904938926776709930382275415247902977338703522285822324091554144053111708921808697546723848698966096912168543527476045892632971190894871890364341132187685891528264642214412207400669756550827487108129256180811500431297718771496899821026066716747552085853214217291721498658408182687308663449324722026102675835101435258570438417898069032805932043036682546812086997414341955007078690976379074341750764671209393305838048476258905679826078453401836846946227592905835852499310571216751836640139936210694004608229001347556853265101795339405062400663516404525741929616643393076583804819475044526374492754815421815606531660286120783077441807100102441255528700925754373569997326017315362550309889013579839243342699356980577459443226758317555172472204264500700796499163389518780335762140509458295088066422296759319041153058218502302324601203567406706018189395193516266506827756450319709196832566679938167882749880012657004863207438236349505484826510808561007042489397177650200605004711877420776911971675578056504274490647045450181188076653742698018056911154855553530251607212009735591933684231420600415404088212571026556183948630035140715312793252484681869550303450221043491408868400513427813666116423990789071785921730770449650024520761474424592809992860616572532945446035751595880062007665271209323558500191126427468164156761188505975644854279375217242695985851815667414836565545103412081034736655843467568655752378303603697124426400732188764420177172019195170258268379666423723516058641000494765108166207642266061274432697563250568605596375715826465576196829009207035171447575133219176043443983154758363137376488415286861951298341530447434973746823742976420612126208996004043499239166871229186288427632044463368181554869108289815104574015354900484899098060395731486868875188887371646541615812929550080582545602394325376632921212345380136213191093170748701877935971848801606584416941425815018206563163767438316060840152599096337840016408146928410417434698440094180941037255986646043062341653989491745819131560409012914844277566640213334372582068446788604988159713675609474645228613917281534298653478918867386836936672976130490984291742180205371126045729364366124744141645371699128124958765965644885425016422263012545525438605603528196538628466698132949919344297520006524793847966285814621255417535512874048609486933270131838284057225817142306085460201330831883997850727026958649895596905836768700105940594186541102955034466857492751091740301090370178620457493753158136761260124518367283399734217446652162085782714303529757576510907099577279696423597575597380888487285561372528437592240769945781790970381266752803203974360168464957825775074498142433845225590311398311121541777849314987024038236539373940510756211733484018007301321273829976194578788700311881601329765403548181199102010091934089397718010643539617326357132242576583917134515405306319765020213218390754882165193863639223090390003693278900478308473989087652705426597253481135551573475239693658875475637766161773920869622722128638175402104954125561217404588463923124339428229701969085665014173763720322806651208604633358332701014438344864704907000949124615880605765846399106613689124894192330352312063214691724990309643364508163419519983233245477629456455910265467474725091944862891196735108107536464544636742397522294361638283860962625652957005754693178988734089628665577107880678944019183916845994661533625151330919364779043704296677895839783746383077046620635011068679713541591325628382158968495031409193210087197740681324398951259160593716404816282016655624191633544866085920211822665311064414633690382553197431629795546547248087053654914897713538213531126721213333758576751962599771065933131411495569990019868997180213414132851948246993344128093283381872240286512126533915066757326573629118137833695473481429132614318187656767356363476905223025466660657184234534965204721230723741958262964444459740873867818086825702109099594794867829547699500855208083737905611337891250687559526323174322157819499813160571562405367227607010099795772500991218512796309279259744927259253104738376341046020204515818745005729816503707232239563023369946656756049370310257484912954425094067572568445919787909718584349335813214818734183106441085221235191900765998041372144848970823704270693676987427565134854279698892119843758916221948393898139184236880655914465233450105963377956723566411882417215947312625728668736275225156779444811957570661017360351571956380924248983869197067161772712735350965820227529640355229650867412703004592085476062755003212260274363896911146221589258075312054681684780067454322364750347585464828267935063735585256393094247710482266986646929502492155508265503428630977516551769105911342203249412523160915475850971272471855156437428067013196204196288659966297821045387826002968969787732241172428176137540818082059934360453771151081183217808594554121378070920213946636727854848509384338366165016011058535799899825270503138793179470995934341183284824302655627804355242969093121790947188605661319447240814966569090434616418691881255437126683550824385807966210012933700244967120982752387141497184076961760162265713387203995386902587576631037849848958087826634681676722019316270665223382642450640147795056245106954808594375191580807611228307291627720243920353632784254921065689063567296527810450611959729069470104833379137643277673230951391268045530328878771888615528375828332358324439936583347689227270020633748816964051874956441634107683797665178725098628938423196465596887892502856695028947008309329717342703007703936542338677227969020996953909643514506418836701654520997003452954090459510916225373100007770781302176544363209093161441026369452648250056699156229290542498803082793479732208523435944726945476628456262761201777793790949250131017699005714563401996496473188658976253610659947080123655413068804209038438500940262765409884281822938015275495498917264443725139633119688198908919092070914894315874773309192516972066510081037366469275587279886962624879792189965689840964913465879935532279692029971544203879137274503976893183935067924500074830722980517927231812116283867022589657204973134291964021991494323139253379837905890018587407360037465811313775954151906124481131040988513311229535680629260229627239029824003808684139977413728974051822090148248090403753380540046698441505541586196641743550483582269856857833555431738548917999800194021593488480441785731761128868093725722893939912114542877891806198405635435306314407457479749845313319240998849825238376995236460532081313897085490558051171189620816046026616377108891266330819942279653943288148468444392303659178892520688736236739027240783253261147883875030925312317497463538388217441684046262674335728849644484924601389130113512833344685657342571269912937234912595044731460352688953463485723688596992968366383424842574383142818394765099118494452356922199250048641921232139530216038886085882337274038361519059607720590821829791478118882526162639775077981539965013361298309529887902727970581403459236646164049145393109636938796754244498517480626964192499917285303115155777366737992404707717648721598095212640160587049832891929315093676437203896542158855315733404476567271960530804244179912758361129180333206453382336936708522929444331940693494717527526882858625616235975218524650466905020977824532690092821565419411767407883923953594805735720969709159145810172641917675573835679397455804030942892575729259820576204631953168913521676045429127783385680074758986946235755065163740359543943927152547858383848444816766875564307024730900873703811854764313268399765231739664608167295390181007984474007040002456027000237629264523716149368590030002778829551411261230996442923630262248655698480178678173583103206065290321553499441160082898083503735533910761671650130526566240198944100043498821730636909499642648640806333131051721526981817994068956206248927282620804619123296789690221556571432335453892445201193000685137216117795143055872142610337641826046154281696795696969735277333820731916552810036157488064380935303788007276731335940283545179072759395467367868999954381315207782034443495921574520586106024659416188463133102462710670290261763819205047871043029460182245319255063222405326069974679430513105430408647361152747278912931570793087086928319194884110366768750680817097862398688220799651374342178505202883141682379470304573755249428819173474125135484187442431237305388899043456254747726179263168253527324811625724542146044524858258123793670647170596098966136957430060156104313643977983356387570289305115495782786999208482131921878878687975663488998853604793928560958882150678211228979856661453037992217436183782105845067626509699462365856315813990015029425589749470623531182117178057393722223180705858013494664184511732817809562796072720726727766554671710844892766246414897798908696437773010882674232167826949310196698513544570356575117143984664995646182020844653032335939981965376305413539755235292809037909504335479357461690019110413714821697186206777237499817597948537305563386282426765003052508635108432358022330799331852401355389866713867375816086420526177815435018602750231120273578800273606838803986613667525344187614624596724943686468084137571593595740419987983769197746971350804514579431567256333349139176458479325918688977578999441406905977508087127735066371211075713583647929677141936442435238742431029445945026785087058233553609667794295983082687492311261340513194757283914250656645096424193478440232916416164949098344911463311599066175286399129766476932831639405690406019945997235356629926195154488813039076416334398349165921483801412952208010448660120121968479442700893975466937424593774708197454530832665582235762775121816513957252062148854160200563874466665354121119553610792206495008570556230784434132967137736325498314528863349514910921544845924499129378103992988768026032162734746121574177670702947487828059581373806143537866421760496793903632282286861288173660809359434639815210124092467419899790211976578277363470569785893513189482063933991662814139419361544560519810124666782301844132938142261287647470936865869247534821391042264466459478606500562037151356080077258265847286129478424880911886474528040447811825274183086534714569255578138356429526637545483956921130872811273112940334421199680478900573093065071272993397808787609906927766239339277872776867775554434844130908387612719692641492582880584613487434377523211484273288107519817983053948183820550205607358114270075512992497154635508821191378128345194916773535018222014347678840394147384436121984489727070621959354470419343637598988884196829306616321597015032772010727796426494172993389546472880786076650769041393145336209784674148861118244022958725348287978112510668029922052680449699042440561448456154369217606384798685996810658066987268956730370556590142074570754732707319580879199875656668824912288526936862019094395039365324438638489369290883024429280585126773932461390112252864287817762616494843790124794674707623691380506037354569578844246870439921303636495435693404794054816320386877865928270418003286028033802752316399766263674722836737917831686777356592749454234154473528308309448359859469413008098705443763628066394354239587646983362579906858570241111100335334484907286110717673689913651425668749277174175148711583119715152613882724445000541398044156427177640229974981364892605743825021792557047897387268430253569708902344679014994177048795743388363738205389574080414398911965434699201244720200715751525326348960247138740249801599405947003802233845001669018231269916990793998259697226112227141359283385068006861052081848913642765510386989973569251876157325747753515715599839635655043916312862148385293612810696894787256486255390994075815330709498485189133478590456142789452387905989562936993718542371970272395934691986597807082167374792136759099914499607372703231551161778624150716228283620111131170919434073401231015707859648990578798479211844415240732553450461469717799202929823404185510226921844690026848372070112537352741522402806064670801508780952066466564053228008102154531343351333448404233065120901662131783306361396417807352829030331100004478152362311586321958697705193932129583240257863700061122164232865480242499184269708757482707229631720227433676079459686343586152600541944013893038545891360676284179844613627255143254533952465763632148742975317622725245361620872192803396038005303860585385170318538039780503632202143743734483857663289287024773947051374894727558153013071568804860698505718943899142575199023516979247288681105648299760145724214151496775077229235685435922497201705810161814869915600667575781927882178164882011758048245736865491615520562484745760378600686189869129407389401722075396306843224918231371638111658812201027441674753109354558295680828321464274989559897016368099400331425434071184626147725318538840542634260963975671486221617001816693539887075805355708455677576172368533246548594789918245807610232187565432422501103102933832194461998267495754576251803314279122639359703652057032782462965047385695608861044036358895417726275040657534862367528083085339281205612479367453105105498278697142697730234263972381244891807221003627998660144788087012470457653230413560219704223534242289730223524151139725502622600088008964122161830048861710545987173231197370412727916512661891423736515242560746997920583387148946634273526451047962659790556599095267292001405392267521001998099725558333171891468695572498251085497190608717290783798249814910977398246833131850788154633906633413245310375961149466228092584812847251688583184017998269149140757027097450673455700974915735969238264837088334071339344431136901817097140485773203814779423336629973841864639084192594543511112500225464878821094016372170735774472001541668764973245406847151307782890301717619016752326944085234498033996198071499970486941265301984812935383311785416182817844172283499939908697588130139356530526993664362233590495191982495014043171594010832417856123453097455301444393983798609350373126855220001333447476311968209207128298270595804673376480558114881119131136233376924075222823601440598942902390133393625165412977730724769234424336740821466936378964972831142904170786202728822220287753914312662896422973184428094089303557323178795571480769827874676090851099386921897603986763503470849782610008269647892275826852472392386978136197848987263320189084477061746919030427337323014123228365562677668196457200674592711447687084634001983069270550874587698889288286607360747970644377709902069867454913929955635949804483240016910682089536857918823999697357164284564172234078048373029304807094484152931006449544526542033796543588371836377011423506145060306209825433556356799432999419156156022620250298490730871365089478799016442444236725456968952976910829081034206714030798135211678431553913767216688643538579544790079124175020361610797723037226729537554634809589577225466727274706474944845848242915977272944271187353611052043005120196527908529138519602402934159803885035575178287962647253678191489645832304365429285251035012592061152101272631901255475191135631645630885642272990103667962900166425716257934940494460033827498628260456540759602277219177937924233531037037193651214132901085873341890039962696632512637468772666167900277227629695610093314739821920649257472454383677506618239003442730616535733580377905125740258686367335942851158352420116492838359968231484603435129565791894096002800317810006321098858387730908295301517587236064916806143461824711608730484211794882808718856500554331379273361373296335471828788820052691178978990168867525055688131432940583708162191791298512920453935592257051384928178623487718239114733382622067975019447309655370058372449966802306390353531039769641355540409459228677979274203998952144854257634483159228978300826279298346957286746220479943750447241547436663218034816411435308303099913928987826339311553269237491383885024071327632258561891473553789504833290167888972382185276779203351877763337238161220801806275167096618583312695705170451463292546825639159454609519346648974483223397259077767620341000160193853653803863198226034592989288695393555769508467847775754840249910633941819801996709413112430801836668988220847414652329728945618871128612908892607700654196410277262390030791096132150571929829224686740812383725867271939283448153495911313927014877120590708859213279149409886754627749484461180419316887228171563478737981582328782423998052068514208965305840762830390913446565473393088986727462809673730506567637758333842613512136206072492530140766984406555607222707270412392902834288774679737627455681643157718077499195538225250508357522522391626164652317907056726109546535134401598514383033803654966199471300641336390495560099270818271468464006868940443770785834025548068019004874135423242210063541285347714361994258753105643216259788508613010278134440349775164358953937244604379635248537048329453712466223962161738184154327669035430941266636752571736852809824307994951850614280078514653075143758349779667323913121301563499772134198802161947393354404193726402542107741499053752363473155085068006720251798106316647706172414161118199743032237971574886793844110234067238515977433405927338227098991089233536156951822673829846083603108113298585685223647872925089536197874280900069520998846829039456611909261553196856403722271952798995435753562545389481223513300928480461738343239118475033939809593228892331894287666751205186041162549600385925382228411001719238063402954068573121055030625797188861304648224855351356019847344540975443978889324820345901684781270374032551115817356664391737053857800616604823450105762667592726756401010051871568570325215537636112499375183566457596821519666295533864185892448978169124786094932523721354085178641909694335648813247165547574701255056197205924202693653680583604153619844244385374703441242714916408172108430444511637618214940991134031167308699502736791982391628995802810821750373433443830375518530575769866407253278288911069203946354604484777472294818096391688288198758988466212850503645977675736258235875612090167363897535932728073686751453050567770631935993487078482389787498612465829934666100160820978141145507950043697034052322090066559428498341626747045784399540023665752746206935590804053991486550360213718236787967752329996042666753067719682911544817408605411111919370443930721523580958363221752938499582499161768242521001924886824311439739603095712929758701356648600534516538102530998032093607052464292425963107514423547555335331246408896401147407791573833806821952843144282640747208195597024678288339345346633488394138092445999028473230305278458351196510321476373029319339524592130755011880960158128132919548309628687164214010301693085661734577321078937623600573073308943533752164116998128283027294233896954406868925263219469844377373172786022243398128773138423786415732276800386948458765939846972278813820462143790009362212016822002030376582415183230283313898211477558583721675936740425251715806495389598708781617862311442728745678694311668682841184517324474466080806763869217459176961001051022325435803488204324133410465835042525813058995173937474668325861040329260644650120242868388595879688653873458833003652462053503462651622431318414766727828953466429315041260569423333365165472471283006336244735861637259328648102885772036516040816621825192012621212799809448764328629983181976414733263545029638168622276720239802040354741334625693365991826413958791982084227883653316862057604607103446557751932396095477672746121896519558373084668220280779054939327381265722574028215865179465222176461859862038445857418112975447849774284493121656896253194302751037267638820642254613681620213963387017084625254013119185017676761208427636733211716890853959502371069092312523350379611809274821544146986344574508226481865884331594633191741155863494896398205362769033048480171741684105714305898256795907525963726117673620641677338856614056192293362581699490987277426642448918828646912197115168778366786734852971634922174253920817058449947561902856158486754818989637724649958758936466488246089415735121615481279499790295088414547756936984316037048578350996189042015734972654680544119458806092176749534950415372667556120278243772428245037549622176122561942610728277958463409717957235322438707574737358054111438661127110205115389084702559847867029020433983020349162055524618703795733275161313145111567545660270118433580719762252941479763904715135465548978101427786908476927779812933014249221801555365971281913284400438441486309919475727127689066385510674571425215815578323120086891408942211841766884088262800099808672433297753529260674366027999153163978039768710772772218859964796631950297291604157106660831939815555466246690941580817246942097177889142696435732531922501969924143101016741308407344570004406285261232798433685699965647106699596905499936086238419640218780770526535325774835889721806508212206516480980098644793245624014532027311656326968438659211978371686263853471890118963943268430252798356357395599296912438196884192241999058761067271985192377343506784498088570047780174935281917911898558979509952636688258686426064583525030697889058526585565320612568743510302121814834854052111175194786845850660408330498933747444063947220914842898747446846415747667412586665823887887383435970834890042870665717588730513506060457478619101505787968717931798155721098884829818771441600921841060317268511234297614018538492677800833392735672190418964599670483380861108351267301164277301247132950738281059738344325410061302950701516930795962274425657959956823274303554398375436027828155569791579412334754319689149329233445498301808239621596565468597571593606251986810877751564866429158362111554438976266421353586482511252153411515530701546445840652503310592057702316456773091155613626116194916942298525941519728487495667371390029385945858465235501710828622544456224667084537362842470672385775565538613510154096255055227520669143183699293973684467100305536272152158770013369132011445485652733031395071760725102368381619860929802761535472267160922221875133433546147379799135949388218107849473572271206116217834670667227047410748332340335341262318250202066466925256115154245651426460275900162601830011771162551804854826579666019514630957762203740637384993600620790552786336714944258915124628197438077770751145577226165463585929744262966859440133481602203763884240029024594624920749102078433626028651457498544288930123349837235640118173726322977866644662988812919110234668731201004655773880906752667442512953834611189453896041584250149066902649622618459995825894311950538891353420615588524335112015955137474764117116572138745221274515276528188901160986576332570760512813231853909379978603723353969424438854517072424851631430177145780345150982172802307569679497176962183287014201228959975950053641732775492795873473650798558894365323051759251369663943999631850988979347284124264085080410764659065227623369357707982429696217558832333604594041239617909867145385475989664009056950673648143965438854674980092643857143481291570056608499987255251872473280450429714461245404505461938213029946446027902396630370886052298200454068037087642193616095921398791702238932523417659958404994179875722829324091544722423664816954920589140902886414869152605452909263708244044477891274592319225784053028983878227453320169941518023250671674491318191428302070197713322467563221484027375791191866067809262312858745603803160091718540211106203379756909717191713913009158513404178114079629729041220772135673745763618780719060664748499621823212049834487348357388600023593549741237350266725080164530782016483614403356114563986496623573372668908171692709159473051709712229370164183306449714403849565222309641892757876405634032756215364571112165223858902247684095811984186335298189418251910090684501021886237943214608575185003582078636318827702751720244782243609925521120027390085519996179497276973878810789719417909456297870782447819745674051383483552321067280610914736136301502102024102734885350467338895840581373408768423267481441362056059389015138081581861408623404085651531613993421200141396245719822844465794670070202374776687535828526395333248075230386064539839141353976433484766479275202608190701545019797561013512554371921661620916141907320868496269026157128025403337343375769919181723905603190439488794935092500617082562706328697077196280620349437295658473493092670560126307506846476917769716352382341411604454566242378503014787255241347073758741789404996002295136181685498090904060003522462435291725203638599518541013260184143990023974625245773912724937368711714957668282541108169619600940704956092545106756829168299039838099837429074169787598777251521652523269799966963080494702767901930715380678973755348151902223233039175064571594826060386216050689251839013205439469727783756743384569791950313225588008198879222847261321127451348497762135404158323208499966523052842069850004355951291012538736795328950976987269389712288322229566125357778417364011643657772286623583114422437394156218378933519013572621533863317665140723092061649384694997599995114056821167171921546189680034421618546710477074826005592510656117662436490857246954018301870471783819226965017834607231301957191822777730851816339735397902692486330935029093542862823854530430049402549297357255168999730826237808693297475666101136313370545941843620827047220735439564669456389767432588291181554994304561397528213455807614764647650609694432573164681731171055583788171095579445319772101131483229361824917945772707828041090176133292772011612232334534286646001185255849076924025495308282538083994944553928377474530261060947908344379638445995230254596772435521677396557221802746681421963426711336796506173771276223338052502248093540162265331775056281873953323700151327048137643139572576372635847369902211853828096967203348396291748065892383087148304585734945858795565971985050315574739384456818069004554609508148534388746035088173330035799991317904154417701544981642807809150870897473486513246588285114570617486093408593082127675396245471486380424206384855427403140906603985542681286039582549439784386587324540637679849148249520936314340907581605855251699736644469893895838820969831854109234463888370601126185290582867004979936222295575334790742119106560361158316079564379723441828882472888037298189258464432877966365252816932706835589949797479125019857718802280062696427690910707234743999633229426838646227611681505832014246083444668522748730025598120630807182091635646171522744116974529802754463251171988242083648895341971520898200016530786498402915573850583992704308565541507644271537270412437125400808472721453714467913345539770355271430285029820213959978083630993389004611942886441302151677494393184878902416901513566249083654950413288887245400028638244064211054835364854107103840833515364744024743887894913245525182582465711046160476025115198048074860174619033231903464555879483839487797831568435262422903742658716941031729471316229535425175009583895787620748652460179965144378376093352679858615372877913729139118329220919598099122657908258567192244481998352031084597905459493012926135448333211435591969736804316816556654606270926208529108239180859385054339483348658737367943167107974120628540555062935741320647300748519648455107799566552053665903101310968072557985008707119971612477224155338314828052586120846539987622314195431013516778640309206762524214196745001421912675543861458366154918829164260627898043519780463317003040176953007706792285048765408813630701723269820768878015534883574052562408381585161911852470490572314999762656274300290771993310529747533637800536423559223861082315495814906199340545738906759845515404309399738466599480573788222478768050739192326929805578689832138365702838168401671083970115018505767423386907145287379837586939476181327958012831093200305542315671231395152194170523025189872665991903482311509930839690903753753190430155243717223471635655790168237526047037902034841082196001400620381726897876142357195457713704726904867279064461142577973047037865611767886991247351971540695357776897179479820603769878094830853288709396080165358098703822397784572207513649263997331449785681954095981232027144188420608882138031574867637563574320312753429542755951702008505058801686157583610437656769489505135489207826082832758046148655887222837063889669777255458397773835579074843753172911506356640435173850743473706173084314350300938727157642551325256935949597043563676081661659452576744824269572043238285336798142948944007905646282915001130645449491276858184892000392099704223634851848260463074643280800053905513633148292261603184462597802062909749513221809395843585017893159040216298571357828323351258401543609054874374823838747122113607808831235295350121526699727664186307574926909109896205844291561404991130578222208492237782029734781215683081123252138943224634569271092591971053253662655188589016921194299111863183520600680094125047478314600841845937358442076723816226635116988022902442789408387263919290055390322096027248644281665477195095524513967090696647383346342238596332375179853684987540017429489298484528267332784069094365367970816409160642039332395546969216375846584047144099564709565319601786566736204871377343098342171497205149659524575318704971438748527719308543018173249856650698082284025129139702237340237199651603793256384606372725250887608873007191986671132135212563652116803250576589900253527593882213585943224915425775245437014315719125701258384523233128093760439785302035841318229697439293496543106489134651701634846391668941536778516499068542174511325461943961832098569913373795470551139143127186865658099811977938728817833051640786202490944479128851551513243412395633103908545506557846018599566150088551952126600925799512406572381380099583492020873017560710155944184200655030574620013912040322569196898194811898040851309437988387989236410152781718955791484740344642794678658961724291001867857149477338926667580584664052528118001175845054731138434052454180735279194521056914470687623762861212218778482326667842839213762710915521213818704539740199511028959940618901330441604630016118628469505297911835595919542157941194283946652135118171336265355657277924731379278111566635176951785443862850590261024443385244767890287530374187825246143586471160594703849190483513534446990937641925901631547065943792966027443557428593466156241161916015590848298800061592520274883999466410093401456505569192168696081382885632642574050180152125300568907609793908260938901837810944703420735649542916265218210329360321741146572083481998704577588238885657235406173079943345956584277485408773232489239685074120567024998723738338732061118808310519210879067772500313515105261321964075767590173039390126060098273319247072328905633108623601894575095498013697119530720643733765277909989799146978244352492331906233316987160697152610845311430140432258666077052511263755144002846485285078201820203933894116216090254125574421391996311879630001194778473575944871111868272611916866068227528634414256242072333817235082704081953977092182144987074862484855075184774824602542983071958951310905502005458981575750503974039685510965937196435968183644014871194263334150011413386711630783831611504635791201955511142660804514422601906298010118919464722323299127664647115150275012289852784666983143557755328510315063090544300587451136658017214852133501007144706035334484471651116379703161099447002526787431953653198495093197463512108320385683734269532518123781233757482118500279644613690855338276033665334981757505744803878359206264564020316073818236048114592543054503217867159887606839688345562033379503481958509199539479662464485634810613066674669573440820669937506649451823096447850342292063315308190891158495797639623984226930609330316179786838351854469811121090624257799500588410320581781900450637866863014900209592294543360846637165570111065477400232405929978471396174581211671776789579485223924353419794269785347354154274795992238414837183778223303860527635071543908335250715858368290642325534014844562060055799747784012296261216464694337565048766097365846077638017742092081598760728896943531564034894057536191515415393482843254500163072592360693128247140533247278157658610094119200917447647941098411877294232333657651880703538806497811776518869653115146871990426908975686103475352385715804936671762432166420436232959031697461794250312560219565948200448910945354769489198964761020173291096064071944092747523638853659569418544775037247179119254494920064801720375704704514506731480870207524190476437703821133013559003600838126478865020102424974687010031803397724013485649155407914515364255216175974808727963138898088738392199526208480207512513373164800495957057368066611226522171542104984934150536574079101868712995896654456726426282522609477761988317305838165591686722779873425351234893316238950252298542777881982718976527224362596971305445422261571115710896032758751173177912520500136965322986051565048785113985392447099147613433199839174212462496280343683981532947644857854756929328462213174264482478535283356130596099468303541168946958528122925576317390741636002123290257242960633309711136422794847979645186212346423917824020216217671873593341023479904423226936382761732551832271577484886380117121778119177120799420152035999136153469724384481482173183198944237313525388430396300554938232213200760915690786300154486197999461938427028337752806430489958131580515585725441529101073453113877421946916310404779753007655584254726096175823880170197476911181628476379730249198988787494690008271897811640606493218995005519572598141352671330083695234440228666574050417267867212736615910472950739172485972116577637858396650503237758275727356428390878213255315011650467567816433340433494331712476735357393442992703104160250360150071346584896619356528921678396899231525399458134521109735414823873482155685917402481134871452879676444509018423322462578150760958228045171132522319037695065309468387479624257603537881969485524455653271315991627864912201338375385729164799499487423164348140844847834263845929859831013214105538274898369553031279307636601475864915982644849425075016291479379254809255571307614442998151647963731267254347573241779394089636606740721023235803531515130682321555769032778626257258630443566970731581384904073170988422609092737385116349341236130104328901511970794748175382337940541070119611780749581393745859452313002054897767348331367292346207326952846259598689104034320965529689269109750577581870079424750530964980686526570567269323716202267604929874479179917912125378568971340357664051959601119797508717395513166384654592699612255841738910517358928225386115868428220083672296635488581447673343253303156567905259037114743818076585306132720184542589043891645410410486650604791227665506228208820234103600191312530575105857316289530568277916674871719641886248040019725410520550979986658396314136700779232589811450766234472031635383257849119961358405379916968904004520236836344570114740965129618196877951535645263315025662852686627217065705477581706641728586997183475788606186421041812906476233386837140518427866184579919516386173275076601020981876648434120478666497559006846436998843867777420705932752479247167948553660695935244709625799928100646509797563594699966951894097590633315096109350209157262811857660480294743428819755029398788955736484827158653571331487841636294202850684465117482986079798600292979059535498390995157497768396548701839678975881848117508487436035366918593815828523949986083496351153981716738313243784995875083731410261065546341124404648154050022851343449883543388018331656625016037212688148196172758280952785383249620115950561919377219478049449648029990603054812277459200894047591964653864291818354308458660599058812165743795757456215311237205571438130498826256300154234765790414030687329528324900723283620932891215703449982728051842566252688281281010436593393094166673135310109630316565468293549785016408043440396357772166637849665808548219849919633989179657113876095232701726414611266075091886246947626196232674082520164455625862475639149590878829345318642599307718361310725888429059907524362278338676824125420135723302951158495427973472146642136624961197654486330901717341023320932640130630307077356563325166088232723526996443412252438821325505849946777514736494553747518441179006981613554186013984952814098636292048159406509901761665254147342416664977788224501113406127206317168235999793677892125179270184060281389923781572744011859738032927259417030658573003787350359309523462502200960576510981011157085327280108504810302058291733214231965122178991823815937768987864604839950414395245260851687983577142689027813611576013200106662873367667947357492373189342208787588820020678439437909744968002769391671441218784256663845162539606831796282702392953695667144162163661908331796825858560306483685660713111722774014902768107170333236323129891113269400937353366225826100988998722350871136615909577312190095968634746806614781634472049297841168949830387907295756099166078264825425928318846046624620169525490801877982528811525754648125930175959219888961185534822953576861235384037796623568974035427714483142060812405740522787842781727381499169580141302961647063844478151754086490931195916316435994420926342766116171407350886953480353229088192726443464468711818134137173249224991784876067590453553213109284726252997487376553785006002019587979876490143758129643414674753220109820167647968603980596133089679646384790093252312777917633391162972809233615942307652071390192696873489762611742678045537391462279010333034722624126433033070864710631217325929933418761299452398949459473992216832066044134746990615995651563192176453298267100086625034625332885699269788920120169452286565848411248702408805526569955553863127749744384393657759035639545653819263752630244678792428289160256056348168884494373826198293657942140483375563257605891181915410037848079255131968366553128396395848542352447562837595641165686360028579481140822284347527173028306905271157416321781971345976812747742438693162329494447741756467801508245394230676929180829195622802961503176594888448452922878475606339783004072337510351244667295525171256198911400570423909048765658569242730395015545275041810659404017819867322602080824356228742924560226437615818258523037980015619667654589359340467913780323013927897614877232636634106246791838473572946836791477957268286032491771094923068300564163629158821962643060738376486583282881193442620009531713940918386413060372709303374928039880649123955444807793056069244358840230430352035750390824545677149709607118445826264784674852870891351759692797744072628777204136276767646471676409704470460272932664193969710342405462095860062955535915740946812678657859971552419083820960621873251981997259992294442929685469914607173338732151505502907753552044408858411587857989139333375925587491280870320005776765751332018637944427439416963257397213826379734345171706923125555328186650675452061979997211241650553402094942871310557403277967248559342551529702904243816727930167242432186275884346678292415029966769384704795321824827469804659472338962749549083566602627687611983703246631314962977519189062890742163644888840036191681784335491485393651259961665944657813580426134185292017515929213456772174327799668969096138919147225704392838853906815468253954979143461926505965521507051429467111086942856717187115431233305464196176247871574652965963157511021163204987185507913909522125685152599284691738666259326754349117376615188473438414977786569784380576989032355927221018568880207581353010982426882968363136632172602986791660397074799122050821846292969829733610702835716956909905998226621608904756087967313305418046491967085549085610379956706548391448541574902242040978882308119391414321446192888138371933348924980168408819054225018188823485459178371792823436343653104550819904605362626377110798418172686441264988147909212557865198289951258165366213439876968143546555372754571552626640176826206053095117396096185645808219856505732908198260037075693400354790903245156512854048205908350773027297215713664156090291379536608231928976247970416212339183261601571616315307529808678535633742302331826108373287068874649474294758592300662214857631599904015060400746364102928748580455722968448869364829471811242101661875547666897072114762190347617004775197146955860524494682628696713806887215398526947870554495539606266844100804591507959213139606223326892904314844849258898886220079229136316385442717181467081303015534935401735286857942575295843103744372684157541070322095852320325542274443972352614258430401136871868343369054255120735005450312522975769787082000843069829387946659358200052333459322368798289547978360252872172691117576163992550067478432742921718070082575212111338761901040230265357303232010076001766374437574427959465313856634564202774494553207451904481541179967964797947249330510864986406008846577627746902468424511136659495649097992324363203266636414068204922238433673882045377977001479355239492013934358873794813464638339261028962264273419779270799814591748645395412381899611932641277488297935840429315151488232114350428734403800737871786834869675995747849598795353249237596242100114491984457433950313218776123501078233380665853607517724702733024499882869870777508287975492535534360668119019397371498238865404474614045906647071140712633910076250705790170457976249597615490175885117442225779099320726208498574299626602877362700704766089211627430933881550987571947591195450174568515285970049443776896876329813975752285802823549860010611258646540687366649450951659926430467248383004922642196017502975734401632662448398158250772983070991400852045031780942791971932463498590109909027175121573722925346296080166846095877485803612072008362294552975521877071504499199207176949698268704461769503057542836560659312649655556354119506435977763785869976172470195577487728464459628876813343140687912493367943196638326838055519433713216813223831295551613070238252573723980835426183837577656225609080539377866551503811101653916124946932631492931240426778354441589239788170136076864656210460400991244049049211434674808225138618216118306928923049367225189201049514533083354086903408581020650409418708682570813714087763110122923045287929310681450923865981158095681012526563388279927234633157035731406307344746105730493994637734621233842924180622788415114810119822792133042415420459810164555221676533599996877179140983339504390781380330054792956367279346893968486630571330006060358400849256774413566605490757851026196140880470769104760512221522454632914336872322421932106830950459419870021960963095655221173089356636780722555354648152112558217790050869406842039521877508647281540715791766827966718541493744075921507375454607706189839508246668065142393653189404489313978137598390323500331912034387914830091257204735331712964724371536686904123429688893693370732935456738414298543176834595696375454592267977500190400483416335821851481023246022449724682391478180497878236774684238183531790738044054824949495933560977461394570617093967663069299461328418007131391307940597930566943087037772844402953396099041509888453769282916191799727836438669673259956493309147868777657575784994836755086124016327059535702020229826326885932333168692624667021960670372216460886600686332243045566144176464718015512037154471992975445212025475025817618551169804762640246082277366754138614769651687374116951534148240792270013782255423609386725713767992860396907055632128269765456402586318985671299991051659051698671022300421883976242405925558100129114529772022922480192497830932822311097429284386408318086585215646551558470590729344026588898137457392936559729024971475826433971630842807015862719117416071701959645703326520141043071747082497545118186501117451707734414287308366727331484801005970757682710486209291406599399659366461587394570923174592235536681815661911216054306195439255823569489595491135069118567729606454344344696996690708220470859132621709147626542111047569315003852939520127814484187609716949712852337295793543609147989401782266360838429643123983327858738694319770903363630615789428789466241087072333414202863906745935212942492354976406733341612574373490047218484886924110739042106431233498100602679788127854082929736570759148084896439645042365908028003703599554459229505313704849422107204314074374064496579728799676849586426630909217437020495772335566823028609128488383169319341658922593008135548222962018469937728520538717146958420052787153039763722749810723666915731287865771480017571351991902767070582778451394453011465095579235334110919004137811552432471617605976992373489390364126906381020567147277332327528659918685896995697805307945700010703808629045369900268329506745151191724331708399955490724608824815809230690360346659998379284750804178180148643694446520825895973529489397755771191326305621024145494919493742521037211308591692197023430208892180811735919878248480311941042926432782457767135043442497501541506053465661298295131466675489379014042476491747847049632113430748366928644455802076974942445728390378841603906446577839320936404687940893569221429848199852148997800742391510601233489874571929839447309077429413772337428315447182809128652918128780391880322353720598790665095730210152282063822158992183870703936230650488164810634029356815817570405389060278798369017719086350243295099843775434534875990595550877887204149208452705021724785218934792468974902207163935158761198893082895790796261027432767521894190967738459866508018281728126181757702467026015434262057649895133475031136544568003011456570585555467027548190410372275076704897244091409953707664931970709538663978951618489710355030737798585449510104624064990579716014540327729600442171210248119621646459278171715475738876608849323907624376673839683944842512993598127492452937924507246201510642954768873222990058789690516538027217132079305769163415433167458543643083218028425408046134601500524515150890289663902074135669901052546174167352797443696042729022190199559788651235381692897940162150412489253489043925469286999721853717514316694846909117838400079008140357253882196669558944882641117572711945367948854243364781086948495523509619886849473953377126035304054314343173190289943360640209359519464796295039122869579706305653760009608885600068650775282099501707516514767441091961125707026824560238359098708737125613100442430899698551249793961202279955306065284464416216331411173469194699172018972392840647282264265425086046876636970330692221573054987512572131502889137685365731685890490759452741190527693166085242546617537036863546690622577440582088211513541592003364051357248464471721501156056178465587493672504626560307964291546736263504432156302813871128384809061553466146507152751208684373401818468470478006787000368953576073038110466162030185814688862436507943315764919691552593377233434203280060667012931370862085987028243584606100237242235215192102035267975906457005654534110992243811647339978624986458375499581922229095085108177866053139293620794703240953682783043691242153690140983149065077717637608614180429534682169037198352592797976014440743353160079964907844499258709502250288621680208232299202560377624705339802499865541966934283571501590034274220694247150415698729611849289811246212662893091123220142606641790115876208429749767710980254586162099432448026229457048808016939056329290877091791256942355024417498984849687214048509508838083269612479151073847539965253138517143134009161310555358872507955769786587295629075745788151735219506462995592265792034364225090044663127800602132188514360152606443055931458467351893509731486109898731029271449734610316484858208320259466500801511089199662993742171004160325503848709025481474099491659395058381588110550418578258773342660358767926916218993654009663213408117226521936596810187485726943855392177296830417646202713584723118888164126298291254069300010388014872290735404288886980793868230237243568379850547069323800719147399222849752978119824324018682060424372461568285165574807107354840792421442808901239349216532513296336911156193485433492620304944684346967602226595166110371281314367217055685601782896761588356578157694967364758221725564515192376873379219708728629663631175038677399814721629216723956192530387433488431096447963972261110393705506383283365729029740974733560689238854574808059018312348647989255844480914598642272334195577244587972103643798132464002344181939898790008285860003798480270130544662679940652335077534155883909859300095194494557793742171962432472128166342780676740991355071786680623555449285912193460018763160996913370484678775938218265889396442593103271185162370634109207402194659924368723191183746557850820390243971231692829153320934995507382904034343760272476586401773983757247592549887889656443043901622308936223367109601219054360468748247499648548794105788522013229294510737097707181695162620420090392485854155229881250792043843941304975175381795765365449015194646037425147463262418813919419090208666926574427091076497894571879330893105316463129944614953524850419060539322163500720295629546986651674872997761798910239095058150927110354170904029534251270666261183096639586934462232799407311111908846211332957927145576305197953696228508660982948395261337013888568958484809326152846499742874891058211239170376921478343681162679813762048033098075296014237197979709030394452145172628932235374212476364344409514093257560705412784723480379935083143113709477337797119791961250100183071136126604270426183926196046335778415874246610284306746894650318149491976119072775763449034548184213291690734708438528799075524893416120519874385597361543297199900761490763998871343666849411896459095482119275602159798365118457721401496000787935355687065577722220534365755695781176985970414461197430421954356691922206747202701663852985869267774061725447992199585397902517513560215266641266595173026632410009180248899524121176415161950699658412091677171703552650767091177477690096626000731759923999172651660345747516642169793299237272207745146856527914914112531321511323613739722077465554415918334135167251480069277931143453746894383214766857529395770368869589237319948737671877736260618732541975444089983058808702969131037521228976456577173229654829242886880485452891144875213164895098725756964654034434179640708014466903107580307410834151123448020547649465659282673509166411047583335814261111336018697473812021481121071400325218908182241692725187944021673955679558034643738106963698043018459393396279446776804800867787311171056239780166615608087774663725873277940405959150697330855426427840033789916432729334073918808022214507496300005910427933262639094710931787476174334182841933457862110174051553833636985430173944983960204577427652359163059922833563542680497572638047664588993074572600449217509680936707596872392695490673661472744479288525043070435118344301551405778486690221867797491179928137072651176704202081958640144954439947803456650146544848175265366517145651994224668922389498817185930763226986696295776223293652997245124678098740891802028243457262477274472343629449857874643643073874846676672119938805662382986646834371593197645440751007901335020467921708763509378254118979746859168526230578976633882966153579881374661728553737629762517971321585373346434104435291183530165850098415560720508636664646903406263861390100157246055969039132435859248074843850153316554547060608045961869598578769224993939766359694624760247819730085306613850510238013814197947906230574789216148990396302259224184159556334362366628578844289126051122726628546711315390919053440240229121997214131780059457525474614524455445120729553698372957650431520375499982682223324486878803537701747045369855159263066727335529609132246639248405464758656131629988755112565459034954754078284879334590593047191463617084950003943191856030261826559225180081440833407628422080675768426931504121781644802072220189189851351147973127203457761733058478397260580113381032974121522334921407419060526072817344753701507048041370912172414368457932645720324859130307629028937384435573891117737663214482198333061183088821776650744941257018821086471286202636770925802221498939175133171356396502810341306301212835873137549816764462237600828190927671090092701671757273595042818467542554816854823380120614448642817527360575770895102209969719608112044405183801709597596747435665623268927944954900602456001425139981774504231362061692483837136253192630017589832508214333202630300189534734659836783209212724224286994071748090892265300949009275235775999139373253053388197888907454606876105385603651079183449027253290987840280979240174774690412883792821650153740106832261091308022012353165399210253039543798710648144540691565162066958077810812198260807210418035088850638631550647443750915573908501035778380434181433058117548014153707966239488883624684907496995718979231553283430176777908406562508674786226759391545761149910484566537100771621187018476318300816293124289108628306500118789225693766890403877272235952472153344812821786330602797855129760894421248018375879683615976902285534880021925163675020313238756030864100355971949294960275597676416734805958810619052662192344904134798796228867711507049497815160719068313825889758687570016273725172330580126640245807483431830517273615824352722789070219581599684584142354515606469299059831516266172735448152868170855645165829372966131037371731918606533829546810676423655615023341744053196308245833192419478183368651258761239329739769739074318792181903107454171080171517935949668786932893510842181497948355987198661703220156259557669853569454034401337315964485696564002179360488470378520531932122863589149765914444638540415558075123153533489633036972633546077110056419070407712755745531219621742891408893155353954550707383403748242625530289331305264570633194338033111003360899035544101625513439533046793670819601538207440483281405546696358589602333181612302911992609739141893034373727769618144117896764913939075548324123944604785480877645290368619345985152055644355342429857959400658313000400395040550561803460302625775297072793170317718331008855735199962811911088901123824863765670570467433372999448491404743721775714806859281991591902250030232013968554169254990074124625284563992212512380001608754832667625908092751874963472703636428266216577678512443545378992375666097829728302422468900454727296967751095096199511943894292923623231161258987132098672294753483358204051314937173164508703053223874538983415629553504108142872486789546499734767286216207716312475812037785752643200097330752049299684696487937244764394125946341803869100037599898800131815710772158472644912214611272422220413152194995111507854877351511080266681643132588846661606673424151009920217689066853652933841787113285970066150097886142021284898855918894824548431975749510067794009789118824717670659669010003498595294014430055554283731918157826871473866660258178916714126146335011278022274729300411437256695417279345915346236331600371196315103772340724706603728565725716031469890888540649056128030546620370822105675303848809163841182148434042532530911805011310701353694549963091965455428547171234615657110783238868293000495136175189622190666963269176938351751893949022385651355696442566668375177889585338425688324511135496612017156259293534895894767978598670627086902030266433785522585160312351191944091414921473531262251294798224836100905553988227436644664761342391821342909150841521380002065679905754692273419876108624808249050563835334679910323939553728887306271895802925357914164256491734011269139444464748026463950337157456291770714465974190301842454238565931976322678587693866509451958913146030287624375592694007952533201045190129270200670809709923513167384087452704300924535202381680757477407957923428378574694917090523223638508118375286078970302026840282817247412812946070767380123159026717682643988339054020422985532924923532606972345879810211194377419017372886761260359957890766169249019799276216914681067613082166831937970065805485408169324529992985745935350226755075117328454218586768390349012460982635947693604386954840724224128559509118024325793937799180934865360931707639630985360698096502340481272729724500602936322811360016113883729118569999418422976699262478460065176574584204212497481028035512279481836400790755263162768315648009845992279682084005190392903145927991920055189890547301979599923973501043575725139912813906924356463103442797004349385744685781543150079684232676209368066165141917632869259210290777112549204274468800275806152270803082785381855814716108528377757900631255201458358967018659791135575308207626062670164895746681432039783719846905646574650161237311235310332954070396921604887898477868041549227965303300852834681542112195564718205856222403218948796433064144505461416325580053936032097345633588788277805364412420598702220670610031579830901080484012489627516795770539701227598924211248463301830351980839096394715735895166674884498489108919897604007786323282707071989223291759389387303945598848644351468119347067112399294692441801889807388330333932581691581049400186719865889772663502219668712044681514423723014353944929516838623520051546374725189136707006756461859160968217811813361792879593230607964210558582160767611479724166938199932258886643136307597078231401910840858068213996766777600797552144316178932875220122847558935343224290861725379268155668790395531485752614020966277143798994143211344475682154062346103525725127832729606419574385225373276705802426394830614838156031117294269776731176517779795058312535838335988171688068868557831361128422495975808231748719176742510638281143605765900557721323579871376763701300780268359862310029149995570157149800404595427953100551039308689759246355651715257151338356309403768342045273963267668798209327567275121299366433719643555566892462367138845339390195510619283408853684590310164967978096657892501469277415390058740479999626826621763179679522434324620566974515262550072559089649315061416575688984353754556125226901371810898622956366212419127254539166442866498715118445815331552093171030180805935530960105669592764316102815377051938186335480049718559215275005533976861121955698924752820672100329136179826439671748978362146456702963650695189680483729977353595661612272137176338480428508131956847640264030705269328667261511769902314226641532398806796814836066201304188690629128903467881759151897206198434890929602686301060198009498498785040352975956301527693175326537608592828788576254135238843564569159757627660030198007213043226800624701103147433423064141502970972069230824537697790756122181579018500866573859483086659315439842999639608772085186547828728993341221902471156771782859236415439760878082546746675520472626775363234028884124299423478543960918456108812824602454467035968270424811496509057587569253291608082003967570604483547548508503348155453829822689174823905392139023590796233984696368465345043772304590729045782828325774738969773617329462749444064260223823881675296594806606121903371655785358396964131951170918322099993197777557668626074286527104735471540010849968097882842419959146319451785535195788435817082680065776803892896146292815964405374272135385473014647287067615937237885653452089122372494805492307193733089924850411106174955609596134750549597803855852704451182260528084616080720362944099205684325157777511066585422083431535749435599856486025676922044982956704054448365327408122563756935491269944088829145873216209371361163558724829019024582435262468993977209824607617179800290761114394127113157968849474662320546521616526224670834064068745222619650206259277812436728720618743353080919242478805353590922094140984070455646996601661593495750457163462117845507025198086500241978321715369778483131084214587400714227179182330122121377269545649909090662623512581570235086742157242181300492928816183818786761245224393455373888550346043281009028389939653311125644541739968890337600600762705560020315795188120289192517064996034996350141846501492464044937812643071277032832849350446674032465836035334374020877416342700816236272249380359243765577778124109465012152089910045066268127438087260667571440220677651605656225216897135491354718185001582612079940179819580874630738247471909053947313353736764861197915502334441382588655363950908383901430336212039812955260510296112103984441486347290900510553272426535438109377906482895243469807431547777591490162449078089476502793922717920160994708016114277056256453098527608114835539443833573349135033951519392807259190439845337116963502999184770573108737717347629676011156167584575456852060984030198196907215511124509951873868017601413184984629757124073191426401547308635957439904305180149030739126584320121401588845619274671637950145793763517114963168315681310225185288025110295281874724668821572401418339962017180180634483252849493197106435612498984887324872688204222280869858802167449814483136586383447896402073841274680467462036145651809146709868058767262244801950858777015503341172045640490854332979026955982604404297110707834866337757808264508796323501922729139086239623587425130511293491914804728947250009857261921547647147058510496983127667333931680604367980359324186061799346604121173604282628830758388064135203133115768975047831508664601757105558101988942027571685072221378408531652913086541682823037347619391271623436166910118996257241631736303953571598847924457940255709588189528320731742961569871266552044716599671236739625619530920975507387264779898946668660368510958588821265678552768172291570272027713198052618588488574566850073845163365610965159987391138925091177788241093309998407704611349795027371614367589986170592218904494163956968236007539191841543729363864397343181328042574235238420977831542889327720749520425526252564033059503778620557944634543621902203356212422164495061762375431882923155531896462063092978691899367918187542729592341939098041150381438257810490133774065742045316912544041049122122184497312687262124383922267629938664723811363449225800855229538711303496284832085893750100989977479072940694661730192810172026292525063040038822238342573549181680781194040954600945227836420446645401672621080528674172379067479026899768948212484890698491957412763910829006945400198481436650792235545422451078862034573429642063420390598347204899529533401185825681214152490924539453776074732377079923227143880884292479174488165142127289392909674938289575155952450677112812616732871070430873620472435286089496705584236071380554963973774360667294023332249207909421680094327629136953623139646092997992460445235761560548691386109867780284990406570650656694298611062041091005843173339517512344059710028818056031760325082199881482318497257245529041274018342987291979535266833411452805968539091198856121845740616944647942645275213426862987859531571570807388497525801273900231248220639330964658800633516130250734562955578023889964513039225181838818015792591646596477273824320274811853687100997554810594721435221360248953123179716948049129661911289265145310441742288545090734778159801452169518385502764953383681948643036295214917126448984707805283668486618392170996353103096724420388264079613516209058786430338556082002223343073214165427591570663311537424077246790229171664627396545763866507337244755184856676743878152051957142048795639271353077371020341056361643388269396951705401706624438972345956780055862810797125318640819025280127784650221595584245408430189277025739153198984072127023241339177211997895210672788030579237715277141667793102963796018889150851842611506029340103404730448315386763379820146674444973530178992284025532829751543498760360850208059809794492877571480565380320456631408832176811519689713450568088794482956193680291486700137227541576241528225353007981285721795358343314591759808280198049104930395738855471402209965472066647881545577164180453521271628070990233905284288171397900659393466809587447611225932084440438337774813574752502219039183840814933815695831464800893677415134864968267987469968464870546695049574433956726163922374624006172959009972763717340575851148414606981854452574020342054182298594220792143599133341308325457931875894260468758865744222900658054518030404875837013714952097370868675941846604589166402469837672351548607888097064575646711681020657655774466610635190796247146515057039730734691612215769332975898670060302289224962815410772394000585722353642875239574060527118193823295719936121101561060417807794299722345313489930633006734566519267052408230096750848541801427922482893232698461163665223423430715941076263677470933253980103911429034544839801803715119900412615643731904669080877469247247281160753075915912367915817371355564002108714170575369418042445639609975915742330945862487509055975303075145934458597185081456033504548425316832701386501264960970816066177504080355968298338323768361740533569461944805550736918637491718197462958365251839186288362628682451020629249532675469806739362323353339441194543673813500160338035089682760908961264047337703757988026598764289862029578137999043829662566772657414315900904001123021494995052282918933563949689685675457303665105115847065192638715387819866762211291364757964318974655031248496126118275516765779711704791935866397034874801887510489281327188960122735597874936428547571831629533116207235362706770325048162245721748665976812625508093370883468425294841198817900809215875955195146331897641131366263040256888445275661800313290179943032104217994318783864223736709344700400573189892141416166503954005744889824516364034985549155209114658042845294975663270445709669344039800637847492479634117473477234205459484143886811648259131882080441399475640059078036860036559038798018218085069456835588137090657222450939952765416598382707540657358860257591805372319672119347907330430996832098396451006507683934043693980973244287658054836955781887944763279734713980156959458484983126087965700777343503270718724930887606838767538751691252708625872269892606361416585457400865977693478636714780628706510147360745356700537790789993834022461047562418299387902039138405484321473882667565915544919442654077778946989452563056504607944221291352105622564217113332366313051173470970308973372358443243531017155397985758855780383402596927130203274562297702323613223155961267584637762719601755535220822651667318857875691328181763980956278477586559625136592658544702107122572985063938138450867414733080660610387258013369721563521172091584172358438975391586720580512482287112305323281743830100707582022120024510257019611295740323025146470704656494785410394615058825549465439544718148975086216963023708635063099514077398757814026074728594604705543200499884729156954874614195390368659370314000554661349088552770898426751580563309456357115617585167714497747998669086966720002232754697957791282477585920541415954940669585585321168540182228910349259543801560228120432281939766569850214653384777153036120645529795658263175091977200855502377694577383521776797127306146467440230281474937425346943721802628777528688082669188423054045451369813022745929407345715890407092054502080752522910181825249288675088575728265215687702331341375998929919350412294160613764202409884729532677910114353288874404522773657792593412319199649311652834654047215085355228428268820542813050692744946235855153765982411601782288401920961468397536049266617108637664980002549319114268464940055598992315844903165262162051111521353540456367780219198833052993990485082235848726157636738025275400753803697154180648415252127309036929033163452402908010458523079060757800992885378274310368528078559555954735793763005074977848860901365461477697768205157711952290195787019304650060433962342408822255942534597100513997629265613306195154436071731744121493691289821411737850408934103802657724658141746403520069947864741332815150885206771827108082898122543260436153748731071649895508331109608953412119219276065322051686969857174404343738912064777627876246268175818320820768945908830029422427277870417266428117051037924799599851837495371829416393630530483321564732699534585578671043812180703125526691324757355771791580849497607927653163109318705645495544071970973531719446745165935302984578308609100338505972449313016326437728483225690432124660712719868339737360435833981048627405930987939234544508381320114206631170893188847216610223710051100309591558761857229532279105132261028992525197212699605942311508103089604717937497386601528598745772819010035471615881152231637849788652968527641447973574498297568385728720565539232010073649178608455795313089060237873525963924320996694048054218694320070191724050385412522290290360704360886139568443895817243634606043502920373642951612877929678177003316904466219291929740812172605860273588833987659713117107209676275546337537462989007113882894271711734435684397681552597978086762684110754072629945204644101600678852791725032298081635272913204459271823844239588934869184097177749239673662964987669071187244207056745225608388617044352910983880224929005662229667520612517678400118154754315205535783101099925627701536779133127204514263999048863278949164826815109792239461504997989967936062052391931940633385455519717589856757750089795829486230065320662056982075039873512452844125882994330970788549167515958218096942061806593994990339915005300365869210298507400491694537715216294213872939013228597129509638060633524924257284711509376613278588800678946384373529035955010603595947281650083615421284304747644618515837943315182617704532104248643103296059679314923030873892703561855650941856732658343548600725985742328562494175641046054322278546329761902835558231279458952524217297918201205017560553663265754880953595923214613777786960060199158540150441409855657956808043431421994243825100608783555524607327430635412443985666287377836948548063219259140898254494371350637995063964836208757862255930039141077998946895245703289480164928851143898426454148774503047518421387479353434258650590931505783443288903032692766388304642600620787614371606793618686550000677912622413643141233561594138850012551579284440658736424042936969211297741268472445465062867818079606338806794410624206808929952964700491052350060184414643391433910260610931642677393887300954422051695999177968718969500304035290508395966980513953984075790534555031534503777283472486019026259712991588415730348007373348003039205235241564973725963702541323089549268633962866203412388130967059717911993450269245643056443727970037382198980319449860920935814882513158508294267387826833191063422054915472819765806555461050150318141854393338850453631147656893553657934832967950216302889256929783843683030321044822324960421636540013701490019016157524058796386669598632316489639521366186414089833540137224942496549322256357712628727998715642160391635992876571046792902805191290153317420225595074547573040620031078589412209845418477889843044271063825154451645650800200825019104585735385985009960973012839163728489584712484170182084690996521634175446541327069397403159069003466900915846103120132745067683034274002634171444157473910534095156697307626089050570808166263672854793377746711301834229765596595202650231011460942827307548221434041079923055460440625989482873756129349834064391251889009353874897277732844500094453908268351089318156054820618653973263808346095274094394478354457570065372000033059071749302453718560397716702804311644072361021241217873962325352547557110000158267699531543954314763785769570430178458789384274237901358155318045414781627000391089677895224305248321266593233134022587529835566212171958876633541666564579946539744279740163109368784652721465530035783873172675649114157677219184332451036963229237697265308586364400780663241879997233998297502667961038027944018028760768704016949672588042062297288223637308087087409825265214094110940098751628220813507113838026681904046163186424921225261447082532032993084110856617231864245255492459002217417894253268851316512072875763175499483854419902040631356793794179693100007421185766490266618861464601142944254635584381180952930415736180249808035160373657941181058668908877052163571011326133930130808862562986532179801860435418077194642534846605794482490382902807539366001713700267310722706607317989751853465535597846427815760602721695814974621371266485827810077458846174565419061066391571222089119185065782860185427180140748413838025206013204960566035256256778203109459104528217965450921304285965906941693232954269336130384742126715788243064088576106408865737218378417512685436816714993324604895362308851518864255653553299216765047018266530370824095875238623670945979716210991840508136856919006533164029491425515884426371739322801586735857599903581094314508702669832369243395788176666804718383853625509967517849836869382597054242223973731892839833513346587535638083780092189256293094441651925141459696193498596133524331560812919550155550305816794089190337567029258488700401638093868714052387470361357620771888948451747883030748403922297167994355489868093785407211249425677476926478973435691766163261189885543179598539761873849811246979264901782125446185136748784810349906374895158044842752478547774171966247960779954294662687984122458728682441279568541572476255172214551386541538470756885998972100765632797608803806577108980066223222914594522054215931983274756189732572286179048099243320796675013504986500350731266986125953758038570388493867021568735129909224981748400923746872294304811684102194033678641780506185208847579247980637303233248080222783713018758988815083114110363490399455526246395333174638273279158085190817249984395422988059542971979517716285771046811837544666894283729401924480884012102843451619031512190675517600060393319004057371399504405935328689832628824151887674007063783783664001202677206718386883363951907470432921457927631412859920242013721546209634275446362591367802829962631050589798320586136067052285075046668003602188611703642444435056880261428091015574692602374159335905296033435410139993393741610965129874911665443290207996610166315822375088254485041204062445006895487555759692308344379362832709184146656342824758230506800349551098080476357484199403110475574507594245855807800074931062563959996154975018054995700535084211018965725463242727868666239383525041979568287042192481218259376465946477005755117623062542808905231936174433832119031450059913215112104100438725383955418538607210875147538341414998930105991189228930064871222993343318438159289838046900725349945135036303417042479566872635654261617950679398441817048471875871393066335753826241022439749077294691447026594792080000199502554919504983060861667660453610232360784717091977982202063937904067423008439408073010917752902864113662077536981336169656787488520039467743807938284221094637590387022143936154535820020101220494352525525882710833611426793143208153686699190820565817838821498983069751710666990389707194450351613117061526991100935314501105961293545205712551582700640412278807660232153590768412307711474545151939652663372298580874819789046715918968344502967426384758892384706426248243846596078002651999963075903121916516587561699441224790036648169848993229696918489656626390217857563086064733026649689429655063000700957102771321290526783150410928830215299156644401034456253219574531476171235127688558206394685288401675720047695342606786164897307646402070309893191829334022173212563778980170213665932415045715791425577751677854558396788884328082745817836291544345117326598463406308087617844487819574948528973856955533175029934450398663395208574932862486954240387330209607228698300490737900443787285043796399339643741182628958210241488064633641055182211370830505978534688921645074056129563639467355948188877538331057165114081134616381163742647600210357662288338890920123622021798477939831033663576192618862785447789593786963318786186066560292984199774654373014734635021309901984471411614990173955612079842920076763140896948475177817420111470207055968770263631035766639937111471518316990877719474339585000573223849677356304469870611606506228812686272495506463653783219165531655162671896223946333702389648843820266842428617003076642737346412384585316569688955161694625886681125422107820656311789656926080955727360072954240123255961584894337190318954110126141616517717661212583196327817340472982837571004854044892012691168916119285824247615697521078128624051585730796733974941846656441343500234051359955965084247786061547024534619286435960410294493450870258856401886899387456911477038327304420479302262952665993160181792109318158361391511901173105539807962911879378719334733321566364226675807489421682612532979274794725032649348249356082636856803159753174451484232711980121840646881609645218075221141750329773942643914771639024506269661453633874155592315556818929061872181137110997161799855403754147754334904595124968869746037588811550136677779986302116940492306779512404460849892746511167493096562958481041064843672621306756008535935126513577630120172504043812079626110928365332125680474407717687115071892547664107638490292406135227573826467018426414158137919039285725561185065004641354341992323210408792564089044161257397885364490942381832563885498608982844642782660128046597536202839258594187058821442318989015703084422532242569302391357831727834762779842240523915911344174471582100562493973741510616405533324549806486365688515554361199788604470027666562371527687643598247682693516476900328638314403856742515520784269207691196219870453545157061852587742749682409872566229924644757223050149356202871487671254099178928987810269567310031138755739154103080388922894654395731574775011601106636847113673100844470117854698902863460107061909122560185754072175531390945637899181771017145994524635820102804377456497271390163473435376650205849332522083787003858442105741297008761033650781991729403813951806794987405600821250716524614515033188724266226797774735484982851326690719531257770743650949396939340440596253707795719336037235620978863032525271599154391517174104726365983753558272958718608482353177839584504558890203728911828860928942414363856488857017925460293407353785566651428795913429984931136805616638840150551382390615172730433837264580790905881949946683945305670852423007224442213903728652635249581272538043298155891388047440145827003024349950149430759769732022193538028351800292455750823175495703627692422149380599819012083338615802662963408175006816764386743901584539212404600234012574950769278466897740114879519007526171556707099418775746017211983822076739939262331501990902978420035897883674972124855680518939281041309571542185936204124013288882202897114761986058113857451848406719135932292046879813577221864560939380979744973422267326722445578323121256577962962839728436197624129267591849470645126231494049801447655452414022167579717045223124652314833001480700073090669149682994065332321434353410986932096002960732303848180602224446933519358291515601114796282950143326717995155986334173275066680694781946121686385597346054770786208442852556840272793862329667397544178060374122725148971576026334998009648099684311696447421655960212611301487444747972810544601487165549666928078914086587609960639969967029851003820440744909519209183724081598674032614674045926542564232231258640498506997943901454910959579292283549633794103985535039088548108888915990109816889035630753929041223466965419038529434062430143637974714810754882775558159460281642101613078556070464920821420395301051789722302373160783344139771571553608921078546956486262122043365875459753070970724705850543872720237996493182936696922141632213860090260291747950188078159888480183086032185142604813901959147562811157673911643641696901040480651106456921748308221323335542698512033369043626135496497766936176591011278256195871321361806566473321938751935445801035537331936133535400407064439591329629514322711028179891339768672363836285094814868456929364571693766764805679672435782714457354623172254035088254098271773904711491098149133390850519806768839562087398433910893933867678886020745446348918767567509131447543772411109002719609023505154167278510919005529944391216257784396073633467785237166559181108309392985418060652623847397712781165113156324192844195094210514445692927125701850956872486667919184319145569267174552333075174650463506794282445896662127511780098499943547719924973720709928286729364510818164047143576712326916324860569894776331490428612052381041716932472995832870793772688664506979785364785766174456206087475150950572494217521091791317363756542546324721940741257267850908730639903530272248576170385179183487845897372544726275974313631693490927265579921962423114632998379815676412942910239656417199180841802074171816321170206910136901748154652321004832249111251192965867771648436036060728494534182054458861935191867782711737800699966312633321469749862226290006328524858069784260794027173847085434801018498025092638608938307127585456204169290237916490818151122846269264873219999962843314249494607256868262820249132875678970503197734563072209358133651014691449783184165398111835133562979580782197807602336527168556738596686933602107496475592456814615601460978746601525163585981032381014311144203217177905047357691801879489918911656441565536556812374134442471852906587332178432404393665171980818826598473225325271199981314274741650827590250302867564682185730614168381948757560755346558517098952455348769844756651162455324132596359271669342980333489892888106367856653144269019206925625756447397397442336447483571595308083214073472785386502238340364329648926860191526700117554341728993648919561114449464423408473085699684626810712938643108405234748926169277126097434871635604475350591014124749528196857188849535713391449522788785644629648042128962803699840867219027386733737924075256065539200843811601869052264942930808205708262696397448753848875857898529271319883582840116566786935699121080031533773249530026525450868472910305465811936304725551722686174891748937199411839082562357963262885070222747294083679560233527672037474835330729338133470660111986759666749522732919836213242006393930892482051123882902585119086883655981858915231289962733559680059763764785385750118980693703865181695755091108869188494671055856126702369868766190412518245169895272513938703671077375064575253143797247002166161389481898543494789452690388416533479979938674576311388210808806819525189880705762790476290980673225991688940507400270954043730118883457441211352272015457325124134826751516488580845796618511274582158535159213888286455526189391521046250444988811136060307750414491948810043291892091510838686009754093309997041242920973524749275220751296629773693796039870842140499429665722175173374331249479299421077152450290575723044104917672137771466651521824702899707755793082397587918814292872228679127268429061579290358422095132925164779135753628777338369969437851205823912714628534590646816015358616357633922083243844424891180449858807744459727740004054415117149791419887254266039680474416239768145799155609329743899488416747642738312268154461253157504724694687179147203489448838620926035821895537809234625787749753514653049206941879678541817532120987052950616876552288113995978851131807128588877927198927948788456677530606428610492347135447377695326066304555868318107357336386499801585934757915662839439371058803907082210027554136384300003031104045737530448810485838350980075868281720126612554830764231908875083142890083058166423291793031009916513390894931427682281433494279200526864828456911756215646968678511928070736822871074769840533022258627672549931946299680646453580891785778639402118382795572974375107050454253534496020482457145194180605498310741842654236246691295170131896053914209626364527739032408945418153569249207825038797951551732464859151249621805273996364507549013274054902867214017853884766158547308383509349297681665781676186508752124313730069930004487992482087393617902504293863119148255289689233676291067330824184886124924037124592414893179786585810563880517359044644090090978181497559594604731961116737156696483602950499203604824669870301446049242707288502820644090877044469830052061523223589901608057875450383789961487723461793469343999699592217899589691159361869970895045564412148414748559910225222920402282294082813596383279189212780373213643438905495605814273339744172489120811352868801836091742615614310074859008225860499631590262444832730655060455798133680686954355582244499077559911701680067193953151769767203329687016386454796482809301966146362670565496429948300956222752521199482509417815767417234715074322290322303510779396900870348609805522217322681112361852755937163255970556419020108403964743990568957807489962117146847789916385041317833204430231879401039754223304236190079621896618973822373924827454097620174549141779686637876117169900876460778696872928447112796831111851081562313959916719211428581710385428881146039131039379691319004844091331404688886327524019733501919687829284708798228620334599355927343069157515725068866613772097478695653591510639288716406698744524838685162953157728646750153207961374378014393228263570439850162518522612880130013715468631000802342777520328855252991434747674557648529636955009751864801954234494019848394002407798557770665051710773566222651997828462607958409645071269677284546393572211353432866978624061321084394546643912068569975179590647254542370235137900723858329965130544743193114028575679319970824626158016159064093331988613114889062650592654635739800085316186235994953938959322767185830789242830867879066443564239884986146561805709980715246166990089307295854687021417157903310166820500060462408884113594111574134634335990441792574136423234630763272788667790573598052066817225227272747175849129190719698540257477413237833591160642014846778044568555090487585166161181366859822263489946598949964738936204690998462807715235955808467393366223897612878854142025597843577066787703051825107189593529110774333427062291580116728040511118093072867955266261553369236929561947335013070276789642893610216575271595215007110070050491043517941271880389990896834001215764806500443768207734723724258343857343579310736462168166014075964868831484622837064369997756026559746021164549868866110096096621672918836540392207487979668931444792314206775978476411445054616529909898424658957912801896073980399865426619788495848002412586597475832002245889652006508868812346520866191074322128592194631571062633763148156426228799834898468655018871827948731266202600433529970977857375469615991855812388959465885392485115442909422705077448712944669686344044657168970563708251758293957686010738408306003648058616759631879382830679461876521945423106720917554287756863853466348656839075264109154087258309535835838531371917452856643071356879055568567447664926699673436047710710741404390281805656387612903735003928780304291950461344845720994313645398442726896060358264169226210634314190950572515284982211772488125146120529319915996358855817137833688625650661594998538252621922665474788545215504106491991446523524940765338288369819066003429558349231654621810451128279797714839488624405055562471673116250379696142743631341068137343129369722005180716621580331820553757411560026131207896541851875492093462512833813657504943797709260962551386254181429801713483831026300646795919562541730500770221712538243564572618532099907803968719243924369158936279865059090762701039576347932077737254799852361948215452752478068575897235689924938772896441965275458751635719199311954395262670544469618303441455699829354068408087449581715547089973463577690580918725557578800801335156481943795510659474277131299883323033996191891223062859835231451808218080689442993790875546961471181532153502383609500339234135436090318569206909686919266473436867157533900678518303310653619946189415023099975661639012734773136977431720683108657175881048773666476577904823570355734906100011574222448451310661139452337364997166843528989998023256648689185710074330839154680662093191554297357500819995150448847334318134687963239519364092350417548603825441348361255191293672268692434821430862068123851940045575268638830857315707595951724908120225475960252776616891282784337784507479641176413600955459641077330494665190274886683255709711237138722502786983371055013380157118191367642267605633692798231856842580379021311574592643971585326327646132042136926826105310369168422430864544264987430224049119716307623841695602081245407563066543598380464102724786368642043938448698238309254974944885008334369307175144386675731828542984986712981368419157474461951191805602460745137216466180681051191844747038794008349686240258905037593260127197712356635121794471751727898917453518775027330800173344667259636978885169103995060861480549315272074981996567839280857216206716494118164690098913192304343939908921265148465699739026989961236410279522671265215262440602734589988049976589927812202154653630723874154589256423000521447069607416586073181097841005741240541005079584268591394184855871608437145153861575350044846199662129473022167101058577094822155823274666862511129329094758423212314034198256074407238998816492233979114742315322980227833508218930008494428772725744239480981146982629904497908808662176198041243631568433386226215658162248169248309399274562513963910422148786486795707246473417709337311411296382508571547981987288161213992428809505627757526345498363563046570215751122938363953036089561249585552009713456527900665241161347744286387214318518708947583640315472659646624136837926019719402248100810936804887604747294754889360410251342055047435245350194447089271407291064026812766302333007214985104662511909077064574470413203387739643217331086708826997980832673741747849725047477145965101485308993061645941996643423518895565639631819988040303936920054534647479512338028774704531644240714997287083021779987939595578393878319263571864909312341336213797660595231604251599747679455739241499216878479927011282782259166988745269372403977567839821416854227045979363972104354588253961343948441982535766763764994441749727760141725820988408650156482874061327264858418089766816421851502916802486565002346492346047918044323890513424329558663376720349684142987989096111499782234528307410197077781708736235161644250394266759455405212943053789460243146276874051461344965946336010779682422829586701001120333874366896129673501406355252999428282683564900702823537318570530745702281846888466068492751726209554919643197830401882370052445941528473860041080144958286998845332116472963470778479690654696143731417846830964108036066049346169416575733056783903829793949815980784207775651405278711100627330599914449082791865192466414198725358811693831540970207639125933138053079279073547425841866896162788529284348590494933553538857188681557499459815244784188557856703497208925324226125617429421563225843374765107633648921638631252847816592818852185695595738810984437572418301758388613947580452009062854212053555370706901690527277518122483889630065352508144450097984322384072197822518237383912343739896443907870286199977397272181801655950071164432631618978741903220125284537077050813479026247609702240811404807243331479564879461456372080580235381970567847471152140257964783752701689317188829885131649849892272322421843742707918630746235690111960308099475981723123611198371877999837060244657539866158326228452122366104743893637716553523968523613435763025828888726499404785901276940649362824823443743293974469998079752287020324398110244135176251708535528120192242185801948787636319707797736303830589892817068701680937143308721777347453493343227108771921207341815378362588636615676998330635455664325379614692697742634733717112374510489947954284981496272289759753794040753098887662468000851881913136105450958503663471242832107877295530354441096744911176594086701550593209219613869359976924210901524214868063978466699499039034514248970294754222295969957403010242474885533397856408209799925187267986316537610286517764910145557367392255808764154042979522849891524138741698954395967544465265857199140252950782553768983251561850502706978247469371995199811676981927405623839898167096332006279414944695765595704853981351869628930192983087421565670933304238206222901770316680280183602748874427226765971503487608605815028543460125945766400271722993991491198556377802329200242478684307677629730067793652643762974435927114798801835136680068738461629838257251726968203086720771150341580781003475455717656956263973241623048404784200716449949062732664562100912074591402533653279503719879680603029516350823218128716655998347810067259084181638310237356228959003504336725691131111520000106163947240200194389209090172178194708492554564515069617692718566525109699379160303129264001816040880888828942580857172062533994400970943238917387144720071187301049143748446140158505313276713276640703055843098352954036830518906921990389173549729397305697038243429498980683407722526439727249159913717447125999942398252026222930392628575093228898150067722714940299209183347870933552029752758424275812431355501075337495655700265908102642614412738298188073099565312768685199246494810951000689713905864366442603466654337310395833746646633374875082718271737212317588981746182332634598428252566131205109496160424813619047343369041450902705464236661007642843776428936077480632728254613565976115777346826154644794189791808284678997991009761808348569732772013579351926371400892267580288218503002473657309388984602704202441442157869600802235544363982446250144683313602723608453903471838047829697444447427038287778325577251188110804738985628114853471170010150929775739943869624147086417818591630910463068444582311194648883856016080754186929297668911810693047140224831095259035173830882653589118410831317588153916349810832043256284503781813685949460415231659892360213093072782766606180002813508226281675562648786269396718193916825742142201040848065098470324903751808845258944237339439489439311092544152241518448113700591487033503876087884369722205172829540962563162235008468419256571477837453531810697215314766858924365205011980023652624246493287601445591126571499000531954409180744688176664793171253655675830622096652330080257861154507308197801847849003070214543208158282744047787731648650746635499513420133070576061520059465984192094154017755175584565094219661484650202807661203028828550943558184637702954433611552469551696165583102258145700319533116594926778437639489369694310757104847821500581620445771459761835936033173666497761195323554577111497639730938043133384833310637395985445783733254107227881100008125869314059574039625662150658859541541204836587552596386125489379609588846045556020568946072737033950947827891355806448631015665324599411894552627556479007909268191895087803417891583681946246839572868376122487189201814181531606893408973509066067640496640315504758133701489797068208646931249268764813943220227389384595398366846157023954946455884064415190041599787336524375112437256385272736395500896772575161186029255110586175266326606483230376834993840332948846878307897225909973086472150883488728173816617619407369861239493855484235637964366208820530413132262665672665509937153374219742843831654708347832548901137533938388362603326731160893584690888553579920139031091792581102394240879419132951286888460889698823535849383949908470427764539700055516805493321269269714887278016682258460873694453528627416633121848889261523786525404487426298303233810477097538589182298618525344502331077641191264857381640675758902646545112670115087940458446136737809312890961446713221406470156031427712022822566236282308620477011558354397436428155170059409485624977245253128732239822427270745524437973166357905782232396336841294970321734568438046702948126515358222288928103493117303720885973552723359280334896817598204873702157447670181088090590449375346174484959212881475191664146280259793795162743337295483492602065072682296161616295200677017405716721821457624338237437961296053218967175792054922953625282620842247505642310789932767500835735590559966269293083607020094082175707971901003406972184382230090131532456507793511894459908352867850220969504282187509451503392020062128417803851958644480703253282377976913463487421863080540555302186042446911351077641493496294996830606002886428569786214737572395377452440994716527399835622728593902304997770160205443054703101508877719798947950606962294604082487757308579406081547067281040458966045397448713431844521756440849608100824559218942749972343777079895974304834756443689924517051742369527345393563445888514263796010460897650347225881370923215509078059579060632771775093871495444631081574727832476165359658478974751518734099520678394417419704622228341009288575824456560733167962619210847612343359158551908569036015296712154943939883740520673960984830155350465343469042145392896701191133081815824563868234555443749497129037395572739583331678250455924779241982014051866863798559025486037364152783519112636788483736130563465168036423904017256503504526544774260896167455642469564907714207124902758152183811246062659278256365821486455902971313146366971341354460995581995657202974790613619340342947029505687577017248118340008448832860237857624018618233165648224115396101432412700135944954472721503066950836242227563117592139096709749404063689371611410000242462767202972874246291344543762477171240448520561906631945689434024967934984705919931676685082589574491859985704380836933768122604841638944220829926362808271578360158746329656938355175553259239862542502419185382240114574837208298471209227674683944028733160134020262564672070136695018788383608798254108516392283364393333870966395797292539585294885302775311645737889258101282220759297042944385089254265314984223825327697339119040161543857142049289769020734557278408176804231856701412241184386682253110790878537920597594811758518981393420255128171785147687621501176240987123034128815308429897929257501994994338279064097573577381109143221517285444741153591817634985875059783936016105419817467052006159366260722040330282427235517764268869857302819733029146393057928782474172843378813467748778855050553619780908959825222439851951834206885459867854724968578496581929612798089394826072718044436914374549692409192049786492781186544611880412141728008150190655875786958576500306029449776946320756738364453697386377691156346358340573371709182711599247339653390337372927295171869163975179833831033667705497895385366807509231947861893402895503539212530525359893922154858460846065633246752831183422121609846135870814951568245003843246208974530683445465101372268818110183452102648972197981172484933855155682683664458176527596421728481247292897128243626025316912542876286298077307101680183683806753916013897489030106862606294750587737988507534174920978755107099444573911812458022283733486264139916355850437162529391983449470782317156415512456175231419939142883189097243881883287282142891706291946814489605852202887223373473258146069263271458123508473400831778466692189193489391965568426460104890829334998319403606792846206201368198488598868018102630693743552983468331754265118629063878152271245187170607811492456122973099337368304677254975245940804907003631918260905799435635731016894288902583344538959567059717229574898938022306780144245813054908333186162247439971541328564800323271982407876089002597585627405851117171065561774241185695850564323454828939233813387104319555335177888140988245166348131927545128220703471956314621203208526709242233291801351842353581147504094118258677555507231142381311026488522158566929516308142168384366518589841931474491469021412292303707241282310232023457865233830198366739435278842849069571512013676792454750385193350478701622407771345180757766017680407260234873016890216398749534674040127650535399981274740912436037752138178258116963527583824393780593784620472083291677585814482164834639722031502364632552337828846769470074093350830231926406448753323444511051219255442996661417789773251528945534942878661635201936395666683807903128582716340475597042334653542803909061146203894751112803086689446596449451156893905483633091852800132998655496166085209685203065537206681725977806985326784556737722446355938365234049942829367437932793412465230270592192403102681558716274475653089023369107839034849042393669182488875157371954829117487297351219784918835134894624879333279475579220859061952544573945805708496102075068029740745023269358786249672300015239602841267582060448237156267618692297743763916256124953208237511789411470338647190516240107720452740197835981705755154191200237232419148525124204405022137980934747558239309765804249915831465501322784906462071907971878259501446791651651963479216711560764007296776314435128800928498442303776867340357472674920165347158672432816263054693022999468894563700387936808662792153152740959606757489804022606794991927306822304606164116145806419323338934327336074007600309946509615474744621152155083740651492519358409999641621182466889401709358657207937209406135240244126232969881575635346192539282038539832762060146982205245353443193259390656982340600762215643520395422639615495962601191940228461162874133342244103534916103388581397747000268519318317429804761826475877938025117986691312154806579396383908428507053268804849085921293916415437949963663571283978953551711778769599338147572955768711105059401080061936243735006330120481305864519641902507903173159390878949819537832531994856404807579638403983132086310476860096224088638681421301856217423464066109598677704426804433674514817967146928799396164892457398782273821343560850517881151670283451125641064728392934767210497435261217174273648027263372127537614241808611720742836146124546916965418429872620456251834267575981365946058783409502558094303551517287478500904576933508662058370056121013742631149165130803980187305364630983547779147504078701217541658522056727306881230639787155146508586930338998068609505666951050088096531054678322566510108430373624784474594295683020102701527120967746928848513232612429584968740004374561668960577531717730805298927249652851488306381998684320324957154572362816730550970266916343127532945368279435973034553432819118396693343119425056603177817529947990021551951745495489225038365487317680776961782179779954802552408729392166508365542488832087315694696329818759499671165509614264674416332352695486618235179578637147049154061868735873858500749123264290104609669100029867345678298671153983010440178383214444161438112307649068623538878329350118117591530214110836383310975953953131402087302274128358512602119384198570010618554488111137504461070088997070400624591758029021216606992618480777510522127861046790970592105262539878638453997544316484367523001660386759442170254491833196573097996982800163758844507983317173634144978789494503051571277180170218628118737951084991071230930984107366535734846003859524585374578379750908812605878288338683005206205088000568685774413819430072927991467734888354980090160845191176817088225708666531101794405006429344098065496584450542338715361123154425432841389282333874835363028488131468986206212322049158013518902021440970473892773709215202142639405770996527205868805439780702628240856407889374417066794518762215698754495571462643624799999591286933207253293584555092751408858376035399157557991222174026754834857121658626551040743486951127451892865296066687460743119868740181555325875367058441783737224208911342886551756329998731096518929893155843067299019532118685362975011588467832064242056877457306295729186076461202471496126617943079002205975503528551319201708573647306767186628795245033241767984033923339428262826220073493232411201494461800761318848517317267633323588814776914364214308017391011369144374455614148737306740072001710850102072368322823250840603959448158848982797726314876350330156745919799328336151275484747081076314981348309198987382404613930081399717532401008912375150665890919275314657922941858238937060934465410478233421998927280519679315810791212851316654711960838184434052079949479063853570987740074942433730644331887626888235588433352728992117262040962841972652139342297041745545455060567857863054963887647307056742754417003803251134974693241414082926445261841832805414912422685051582916541494079889917121013279257180880655668572508027301109262936034420056493352885205645242841799047368060315149492799676837532281082547866397869693184513821946672211686430230849765116633513790199285253154180030745496976505681362445221357058380316753476783129968295423406961029847204968751816892043409099193202171693076780187542106862686860583813105293452526139183338670555991131098760523296108742997358879543212966726014119315913687230675215070847932921177848603337983734346777548183124644219604831195444109885689149965563895985815144379387997267254423780234351495155090801506094180033803457410323236738265814375708141873845787735699654642058933887754811355304984479745763578076443395897004835207299885524315138715410594351825828638016437413290494133936577625578058066902784987613368470819246146990082761260906824218184372239489019001058485170903189428806499570303848766295783223336868687836891384075289367843641922171893347226482199763636501335192328954939798948188887928869604100415239393270152077262761741728094284444923563464174144011078108038646829257934167257424909600371150985662799069988696342151387862958578288100185679307191534379605892998992232345149967011197507179490692070596728441406374262816495442799735178003744797371552718986050245955608324272612882950982092899385532730128892580431835362174268118462417681841377754532298250947595061743897942785477696984714851332667953836104904869423079710869722993367184798679778707967378655617844307277114400371722439832094414815760792734309489467660700760796623187241391089103105997303837441092012598062717861567505780279721927830409803064699956006349607232165593224037217403830927264795248198223850428920758584001260959570543779222811614414298808837440385985916741363100867612980219337937293660995879462290510114230504448732474902185435974268965526563815986822051555801436858808262759168243424330449157949923501874621042497403050870433417838623206984892779040675116266761972352851498972988957467023737357973787455413644845295167909383104710608743143295981480892307085219320418585524865289787091757148629535767003876078070857249375899448150051754352337672259673597453613448717884360551837543121749297791895220384813923104737540724294606649541315728106829610820375947747175218138681643203708522231851360651567336719635739774932022371823184826597542770810289778858945751455545665689993490631365529391322292075888510381195479357937879206232368034056901482658712204471502310111332919137449491017004634465419093877591546832130066233952142370621964430121554707595941217139610599390054464918039626139111880379358382018878829717803844651470910259923279543928610386198988919863273287325833127461586316912523244408678662787372922572887854111287174506375070806173944495237661030054283359673993344969075387706620650922356937373273025142306413571631414763716663457656621977785327887248690397614797591747082295475607481789447248297303039205928686077928518071048943303472952082538409633263240257434670896284098531348862758628279045974852727741729827054496005195813773411059272013060014251299418901605880664017267616623326328482431627082779068152173939757864676372548698812769570502137017248723712097981901619182397451213420825893857289377987630837786845910106630300587581607266817799802512306827513659937705098243616353914336077526980401155070831979403835187858383810403799217943733571011832766084432709771799081915851140565783974449816652303714681471964778147911526302934064606999130844675987178158320876556390447611306283060033432199311760163957533253142061086629051836436122788391770878267979865337688959842365293491651182910889923070980646004530846523442600217442955408465114249931247821173146668439519494463940194830748640095022589430968825622986762954038542224696570991555547739251676008622201951669368115125252963363975492550099549759169565910976707227395021172704973026752858671615235710886735130495077541498906078398147522483518322318033282169485980856228714837869051925821280767208752210328444684898257881674177919548344938774684244933531479254317162139603428614894799212028413009697234225526195796870573387724114244120436063534594115511366698611679281874392662279479278767005908835063267058453821221328311293145073726262377967384692171840212732711293763054358981962512887436062397118499962608233027521074286574477340350834597699146203564704824351003987633565261413389786107027244251801876556129054140661074088302399943807464693161549169061392399136531016098306925467110665446550751708226877829587194682543330815683575955759010898980265278544633732017701821495704092513293876361730691521026628252798058577723898733505582715711740179845741446156847147724754812496912887380110551020772048810388534695222433433870698256229389104120301763195188604911268808176662977366896360721805871249495731191510175414656559029197333555365883938360816169331625823094026528911259294512166020489858911943404763666156330681607938016212646908032187207861908036386060483560753890392720171166142327571798076895638145559300987482855952338534262045543900055724524517120637985818951447345698037951420346384025363152554246697509606076377816144862503304876228299242262625038928291614300802637688216402223748152939853731687906366651131815009848298944260112858767134084885260927332043441980307944236701114941432127120515310694590162406228535735314847547806128747842101114889369577452531213162666836417793273555040952565961223380073601639592442729773051851723618613259208813000391906690506003360240209030688364585788305618686894315797396443087322933882545654740872784362029669641055115079342618442231970503202365314726186363238504381768793949162318505247015977439958721741260435813158057278303163861610892465111635118520645212485351101257727300778364430811518209521303086854644421128621164332739022119166140502753647251081781167364432261337731886752956177976582912230018030959011099311197243438143911288711943407343324287628412854103871017240659848738106595030542398092380030117640835477238184458093734825427165432914522353148552024308403609332053589355376810412330913091039964998681058884482064560632240144299569475338667742555703342273234378725901438628182708220369063334627202621353016108478485235996320379101886390234123265429177680536712860232048328166883712202465430319677025193101320399794399060795200315985760331331134295769578299275068615529774699888944094538648867597242341048578829419855842878913506664355420489368311731915967584855102216841191240660105923130141850694352873796814041376458002182609742292636543266541447449396484541786550716663690296372384222661945874903276839421303055771725704015954848668094630632889732365643021795863292742299775311044284280844605782833370513050548218674834959439160681543050198443349600214716186203235037168836980102533092344746496645737100871215350161353755146261070850446354606986165157170491663566227996557740386529770792189205916342416274955430400694317113199277919484523351882046993267350617374658471556305231236935107731764984579994652366694941795411579309523911441615355257021426830065002475025015227723468162255816101245503296150065097261552173594128656698450741044754938683181804736435866785935224841549233084292002394830520048310550357306088980025743368796192518569740967517091675590082872227120254701834982454729071275427283414442810826006878424996903476173257282140594032144550786950091151403329531076175828045434180782402224457428125400397391936648691053149648341949404934893808823055387835664711644600551333171188694898250965838185447911350342571543563721188092949129526933933966767077738316462915946618505571236497248117749028851422069953792636945043952413522296570354990431394108929534372872636970622278017527094722612548783573694475165770393204296215121491869032327933749559713535090743334200103586265684217868975898065855453560332970910221071586396030769766331711397907710112881294393463274251995388349745292604561413484657600908683161524917698994050738928187305096298164358047638111018705618922024454628819940172247347203784841287520602459516908418179478713472982840628202257080074933155852164066121522165402168396195087516689518320008698666749349963739644657666099680497717423248404446078226771916099167949759963817634432020695111384347737994365667364415368853198194282568524809630033683506342327535492391068872625033618810731463360642560537234791993958915449650053420323594044533786190676817417584020988562844816494222664652978881374270089283346521876706930437398890090717300171335640026442147560005299360450722701916269888592808050038407485648096841140955419094741561556252555561340765431817933225184588541601042927917598423416528560810262536384976411305237809069133521419771010829791253484140983316908212718547747382384037865575834306356219403786204780487638695338177119984235756264277758156805127201592283249756919391370012540639407355917587532605531786398801023650200470364050167869917397968897524037447015322386250752105255936566720352414191124817134950089053700639316174340609183270154824828725871529515950093423455979158198993989468773699956998050895476151408746824240763204819298190009023992834199814370497291621703685514147269046332339487501704327361360871852336254633836821769735944612740282763583942503334510231555868614978587751009026362228370721442476704689845221964376351579073225159611028428557482648529752902212998683622908639592605596520907742139842685894191749225869063616050308488177140775635271697684476028044051500999566542463103759909737604869131048125126520457507006986997911086574391495675335636164514174270711483443670452320765937402065805532557450659342586139922924618431438645802570549446515986465542158584722211014683203132685105390724248755129768663119930518570382074703832823126190700960723362308072559848513665277240874879010804367950797246570339614444230430773651202620447546474531686908270488205890083680838343999514553128194905147813920466065287172259499249627523503240730669131737535194500718253579378123890499188195710151840584550599579709041822418974483827770876762614154696799552441699765692006041311407069883053278251753776192100288602997632876702586934646495687931976858252808666158006577521021829144604094480562474469352347629498047602403988273949841807472830783786107709476167400870569416956812787613392846816091688890406558151060982845413175259061650296280498008813231590756614572354509502834230713284734566602754359352353311853450955570598025973088672357861298771412413491327059538563534448472924132667109792962731840112762157864082697159342652619770341936168840200397498806749752568056673618747527505284425554163510690814861633225964852252035032271633488262874740671051675777529263520988374637457503193736224729182868393207663500839904872865582422124114600255110370696399033987571171672787483507723151820661669528459469363244406142163959988720711394060737885226514931211388124356390140766137022806061941636039831220780936145108038275725546872588241934180151722455591709966281738095363030383213761473340113971760662702826278708304260605097212643039007672811829869780557248047164809845960929781636926674657474716478693930626002110742810116558937017453980382495088922975103937157640400022169797244773855433114780239860162341961895029955642902251538287904979129693496372338143048345621289604552163747868560625395539611441804070294910503923871331645738717476765650805777179916242005987648478771040430007415517181416329711721458329144200475283608318241913916495054443645259468908986787653356747738954148907956836614644226293888778758211368843394856686260858269985768705762915116736505686962957213175060671240684219949856860645450976494619450141207352190079967591307069269252042432640003477359279068383889107203230646486289838466424047654342802151832679521424783830906084846640893425678860942242310967821961049702569881669923516754538098756744701576161331719872652731274377592280147272765582564170382394918690382523622245551033825219404093340731961764034531755869424700327341464814287135855017063766096284853305705349539593222913831471334870242743813727404397549869795412499329877123098287903441582789912307996616426968121603364410973113862105278737836337322309402462571938668063554573533230725802538058369196175234864159300961904918373847284713807564111207988544549727593334844732623552175689317492243048441394999167403611016870237042245187360175653919838780899081865888004780639618431163374957566897261085877753570026067919420076452786025458137438484123113490975917703038842467127190935664263854150285071249588150011878985960269172167448213956656240238191175351415617817905643984963479441853978946761268962565637096435851342085231038705269634453610351984933359575929556568601781677558055242070847395805539291837591208233927561425293589107910171987131347704202179391955895985716501488949502869246955921874864200745652567623882297632853379359346125698116123552180906644273889409048814845844589397630851490469058144244436622599381136582505856100663310806265506463048263755716393810996117950820713501331697836461476379332234330050142411385202474959837143272209477656577780099808977992800997171669813721211209681710773687824891547600551487178513300465408123724454434800758998813140043626487834075479219115580788918627026896685084395012603080240259881831069326818113527877823882592221136624323708643791552043827628321618893080052277317166056465060166098693825127042635744606519337981207748584914420600852208729998079095469589918959187807191092012306124672809804668139608300133447351541015343869077734883615061610830941267524128047673380254609290587369255961161199475981874230543967613337812592657862311050754349835416691292248838941939173480007919982149977062137745065231395319640259157156351874409144418164687955178311334793125113678142202003551568498482669444801909855949446217691130772766017509515668033852326090826844212418942651947551123343909832217036297128979257702406814742321922635817054821647693311808471910419925212673178978143234668499603524263684191207907888304863113427279681951305509155858460711030388511989437439956446274727647135953370913170753777163628389650409894729304837393007431749629143047975739795762107464823052703217630315716535593392730068991546487069341578582552553280468324435098731869752697927048207114176657085048166248154641534067112844172530184450615480382700563967706984311997650564658022186568988913498762981369555761782424169073917079597992028744390992561982419723438370811792271822807649217248974315910442816714895161166949863385051540777474862252196013362510712390492017529898343634371434361548977460552035955194158271994059607890081090801189858926902668107740111285327157060097882151214911618359698455011074511406008214959184058321981642046225156540023873282644401739432451423793207258134762729401634016365635136575619263408467121754672992182919193004905454216664250729698126540113887917056992143532670974524883436848609450562680888388841196505992510556851358253223009969565457042360850092464397365381379271968076439239384307318382076684026179377312317199715151971601579962168841337692553059499160186748849250902792460985003340011795726460449317602070814284987540765155148291402733776451247895732386179209915095029135305384657424977334553469422308729424139014751735124467618442957579060069082405765170573299407766602529055295793207226404848340392999565516763096203274611744796921498068479501788246746533760991138238602126237239231479783968693397156913046506616198940051010519877051472531895470346560611241212159658254031568102320461950245442812190315798706966684644554007535506824182369457120152558100774899837630858570416556546185580453576153333427333903411206013057181806022962417930769393596146356586218905084474062447691533469596548053737013719430784604299337668262293517802136003977535572721911448894555769338358587073013718110804470784410274322108095320586977882184958623091386426472778454100326375136289073164458293038417487443770969091766491950498291252587543549179766649761947361229337631488229681699809929173751950089626707316490056188492854473632522244712071306176668723831330420517899744207640136669298778846885995572380832889058569117203066974840708396539093956132317767827861952051501321493906204187897420749179929853560302886530411368299950527702571270226555619520596958665713470131687368939598809255897611698095942476559147436556919755970617842724991049319173911653561824904320905365853213151091472306876455096628031008273686982870182000161383017772802077111122968772406280342090604710416317145635000074997391830832437168552797596146548960062922245483007942919888134519677975760020586332567376663460365670155518605415784024337121706498500239326769930844575228916861055245703036204006943097355147008284300320052311676408380315539241708482096935807947447226941111293629569100879628407895329896815791545579998470868051637736961115199030162302009607555624721244623448450622146590942244919716787912573528585066296979597644098925214383669086655957102209274034203637401574639856248535831675179961309360741100151021495770590938132911095524734426225252607317489569145888434436225818976243156952589259589251549913598951187417029363752674476776468695721287811252781229324669421188423179152280349787230809276893782117286574057250592644017306486908130205848411543799679674062023749608605848071633769215735639215128067328364262053756497267872329439982806407448466890290925529729907475019115399928299892791609271386061247012949629608587533170110115694614899907325336154909951394656089214560832547317348518842914870295831644027718790031762835322872422447788825050396813618160997119063935440389747297090421164327581674494394850525460132044667939847913139609966292365449929891219499359988799230863445046044523760205608642479979869569364378665398720436162306830026755238080822479991517496390987470795838237219860618102375022955082678348380213457836451347892717022442327263145116477129621984699796787959989873308205028611128925414010122617888225716679345434194718752445228129299796148961010914676847577448404105033142933462199920934010250567133072922743505709432078119108340539471374186413392832299114745784845600720950919084538718512265613221876430475852106776308124724591992147700732440141829550237411787111801570624995702576401823359393201598545093299473943944290365686706360463479298987455256656032595299740383585149539919908204289275162533938291780297175743781087197389206811608028328727117041000677026244014755020443347500379166818299840086451850879164145199620657583555633550261168771917564413603024850096964772786560724027591859315170229458697093097811259842079357054722344614565328926746396031190293820119764189607867558657502445470875837449960766833059658741876620866396006727687392194819460540885378776838009453126629845523461674746804382833198020779643620634125498695310670573083773415779216324986244818235728292654299992515568232623904373245042085715338138804323574717802474889821066119379349278018857320299065043191090256037599455348145507693007715480367524984576656318234877251689189550481901876592722699340075299545164591485746570701361927778821706886718441134121599443330741986392262819485478281158161855981527737929058579784097753728952761768889911179668340211524534937649687556126187727368096744965563134695084909452290278765779676449639532793836516825262123769368401717070663758043725778033306873348960855625481427955202153008560345120972257243789726512551726609457255630689335466459797933984441731833769153119586740860029700498313614646846405187535824826643043647548687103015445248987068509876586906671454432768682975609971911062209019716856129448679536880635481302996774908428490176208723915924746027182925455409851381514434191831212099111958136626818700721784082124859578707039744446074132038098250628354361205024347126968852082591215084182603711686822618304877767230819525915237127931997728549572590961318972768161057762784324803094245526686322888165527439473953662014789934258550843881761911017164792962290736744227749685103946072823740560867504605493877009151224795992876663137982400216968139833340145299770294730195626525421870804901186877292369198872645826834624437941207341343784988787991507066224062467387166501389760282406540318071139404760709125864084002020465990595589268329424278963931917336658515014559583779432768241453747530355287150340478988188006414984651198492447079527512824942367952353030341411159952713844716391976223980021310204241435865242083021620453100267309234756024264650795015408790416534584596935438306989957100069236489566659808557400096039480032371720189666320933729066325433400383892734165274045303698895640687899160695663774594551921426936005081155357795194746908127538027368268930072005733344898502079291382548898765753823016577970372498429399413337358111159280389969202559926725764850123787293846214926873744312740711931046237064305312961929452888067174342240559017846477988832318896995233645994045697650960916415454006481286756716796316798307421961765937926704565251430331508355011960485305816735162750558560281969182598061823616072837699068904237002229781926018896960984072667530193307592202726052090916516219826699668660673037856204507369044832401516502076637627020414586211461728732884790963956644277812423013092314963934384988661469461602607026507137086293603381431353703542169816665202900375576114163246995311632853301037869629591902665350074168989323512021191389887771108131757235694871852193495135467980665384460099862414774592159384770421492931612799121478357752071033407644142586286747429347147006189698318738307833183416576409810406950547630093026555007707845389926080748548893199065329781441529095086119636004104860629390716568781621411380681482536843604791232586752134205199905903932810280161669245805479565126680044604684796952084292269269238332066388260372113708755233375535216129960440943180566273577363668559190492612378696022474138177169836677641013120057279798139986116511273333177343014939598460148364082235696391378273136487443619271615416703404277753295628880820368122494755728567399704772260894781454981219186779605785533718408798502881793538464904887052654938050606074514526188145065564561610301084116580387881982110122853669518644993949293521428366456404613698077482587849909612880151937508738759809378864507083635864783927065068979302101192469633818585018702910508160460726642590555721267230478799959421551878758112684911189419948739436827474538547977518297764278572345491992957887191806311787626199123040923053466489640847559429694050994779873311103668531877829278297037610620875265182818794099685458611650818003776887459828926471969890410801910529622083015057755090604331649998310411794268290139140688903813643492443418347701547374555780209213682691660916273294790135198398803887465032826786926313503763258664443853809631475123147249013223789033227463018865614623723661643169213567940162237540636087803261250374124446371229044746351136527263629032449685377947845175582022371020673495516734355287216649782872138607784462786143480312885048264442385360394063972425880118725794963358017024929693874257815344210271513307681046735426396752510439750513288885075025975039192285339842171297784374824334720812259721861156755969243584672979313122716502729148261705357108065247613770465013502506347542015997023601360684477120624001988261721645768029302325303409742851225609461665142563109025840080082755697402438566405394535180388985452051106379897251979583872917431715543797101782041774690547864452051723690126571100169938091422793082321808651094051152286583053025315173018368325516761768979203508386072739120697857658950722322554417019885155082794430836077752102975272188122219343448202504843031597411529300395040421012172924091922150477456894641412155599280987757868259315388594422643986312354212141774774861465550692270959487728605419699964553318049698264368477916267455292126472006022991992618945939501005220835908513567992965256245549386947907642694962348081575003576617633814169017458462637747658530901726529804914764203310503861404485119078230721930621011487207462531991494394794128487735522784525531218659565878898661550214477552272899678692211090114889887717299630065530523571271166364582235263367142463200186341933313165614206520203966825442862132714148741092109331993102965884517531423415588298542199881800813421923735319436971611781830488334244055460384587474620500601344592550158083602982399043138804998881509699680924753421026511782725815448357036115807129069120471885471914585245868163633809061055671844113754933183632546804690190647742660322219919409145020337485092026598930956897630182444436994603328868018174844405806965339831709857355826877473007795525479205961199223926167387962550482512339787471787836559309770365910939815440739261584848428815727090296604161700257767517461471815076689948493245353673092530113612109231202392755108147320324989637878887980176737073291399810514077169896794884507976516797244863632876062851573836453339701747499985447691479099777061074556429356393987114011474156044750047269102484686765784587714148308970740979265210566183389932527838286478910033654334168369501655364534676872610248752723859039506862352982517025102329343834845927891572113766018625137245374673242669987352367511213614609699091392913382585600289472176830031156834308633619791867103482067031811652343619097683004588222072965353156356492863695730825345523537505927651511418243503852229715089818244844266304515424598987407304133745420533110724044861909435447021679196911730241487999907727748108231513500732245543591624910761192757453676772998483282353541903215838223613570586580707785764374535754838291011830319289206700992373726378727090194459923992465590106144546470240127445636605919553643893088355249222764780778921626213984548276187671410710323019232543518805905860615987028669285470844873108928642291445886166121871363162010225326517109495318170425161578858205299208607028384835175354834156218584593442429744195908762754796485145901977698558899772760920083951620208342333132701045407247514931751862903391294147322632417062866889293074799957108235298473018921389550081506573585510792585034313031160906919646716492412616030503631344135233094683905312881136506650915614531135870618321631741227018523812099768190241844453146261735445898141977842217317638405660209785368689189798638838011302155954090337034864023502849988085279873508016209165610410373689129212591782569365173077259655605928378019460056639753100494659721212204173939935639599876369356478792121134138664527728279567119421242062190076182888678826665864782626314516728770725802290227550414790822624541210743757541317753961343428719602401133477066109767213377651234500243210652515276067653332769982360587545263668370925699960725013726431499280788856087974999738582996901287554471258686801248643279544059881273302025219367912101386986458347969301436449835893999317310274691109216275570726558537469257796382172667545031505183727902222617212933403074497339917279569869788648862619356944526472350694957047685033902273318135620596484118167751525079457524810299909591173423497943943959905355976465118729467622138770217824199681150130341715092708587093885934541481757887770175647486807930946603727082868893119138537081836081781329705928797446983516122992716936604946260106176809623438961715315158099009311523369722472011082832228345398738386540571975541341889152861016952223275137846316884713862146620335754980644348046031217031257855284652816691915266666002465327282098218436235341365179411275681945779844836253820127582240466113451385329275856416027346436820583394947691715891777438086769730629936374976595654258254709192057193728265465421522411312955887635592872588722308082634680107037286704878306198142960558375851822829198264706263007128960589291547120831937467491722357851187918207983271887102029690878053588865637755818718258322174251576840683788081943817212135329011353759190271300009106289434109681736621786655287437062113780058059965541604353116051261221563229969932752803142106877938327377131780174171141447177216253779434976839750026708510558189292845284571096836038302719649883423790398957357150034851167989270329607866312037285310604870209966034394504517207057801931025416202125897875454733492835069349799092282336873630667354178465583040380274053056025912200297578703718556777161078736264794619791867774398716055995411005255152337768630505636935226496393274602992538816184017239511945454220016355916622383579337984708217878550485748848263177458847730118143106321360957508604250546529854301632255435553150726265335847480946340272974480497647486630081071780482148833523245673346589727368764634057662071568374875404189418892896257703037117784232930699922320576277839058223612307568378658816332781874196593979397577816999825295804736862242361904212640358534643461536356527303114795099342074108166956956884075646774887138468636115813604461531286799863350691552025998470829247214602266386134177823587988119420268712760222920395356487568651125704069154656195504995169421054601697823576162216286133218111837641550770020744452907660784908500669832955034206371704349042130177008357472451540496323568742135882016348297428295955041485790012430521535244614042658507421681741644070573839364227237423497369899374990874722500538293820013760876406346262581154632412352368189717640904006013708114452280496497469477545223069280638170831322479215499625329147916414485871852027509577170173288387723612330083088587335936874538981917874707611011221151481551647502387797276689630079267849295399783377135888514876721730051992449865913710976013232318456062129217544251315542123574661315007059571713232673587174292625189936686602816400494430893709394545690840200045470829481196367135576646914115821095225149429486099912174132248592342067562536515230988276197923578979368471733590991914279488103017248172108606145433281770284034292931788207713112667007393683973251846715570803786731056374722086934604618707814490367622655945379991968662884456392087981106742838405155214744449546992197587786198085998341298095852791755436952224097295192768979132242325431227012054242836504425818653216988466196858734309373688366309951299944325120960955407221656971893753196169441281155328058408384425855840172012634632587593608240165723491432482102363951904542872924606137506045130840749808736271428210958252199463862748736588704036448444922771275482113670524896373075627032615935272276875229458582936387050851490474946227055475352047251793482370071655255303681976307506953890564960041899632389535476270917523203154625143507781748634120870223511788297844525639355603087852716141281516443678767873518316736408455652640906122030834451556632556075040929006689995846881161397825824732665562770284610980571626295821137110356485547734425671017721262268871188933668260044555758411809000044952455491485666429679416259994208754897686347727711346847359747588484538406057666136845302540413443923698172829700573722829273452944139706605759660151785528256475159930289118046355617331150081264786922043071135509860404890134650036271544106724949247870010233341662986462346625093181407764464726508866827098852016009635100529627521964790023257409169762669368094388490717317904110136049485103089712091197255161765964704298414907042522314145670164737502947359284179210712543978351704279760676902194509008101821684615996228364066250058106125748597511131453847753290408699759194713790065993445855228486696547495496016652215622001669242949284493824553067342777019969634370987507023112677633205494296246343594434274092233392204678140790312167964626076400796310573508676970940903468045255776416114914057023616539268743443611675919263316550751900207291488204334180358383415671943611747117571080704674011248336233224699116205554114626689472709394459359679093396006431721825858554456458190349624957163073372356156514961939417139962117024848707070378836700810250234445656077430117690309796962744918305941549113040206764127010459610270344817712256054175342091492567436996188531104445462721508876274515097907507023022041129599945278512504530458373593162871562702319146542730745284263016915748349972888318506592527018942731628972407534556590393663227469518545851353861581387909786046736614386489494149063986633072725258037899622398243836798234067943815181194222515610551986044100609623853731387318882905162470213157152940563612913974312059630211072327102796822494100645042906544658976285423106198724850772053258746067436485907796651131975646079096719422506223630945457744258939926362599125439688871790305935197322920170372520427079810440915042736416013654985884438084256320616553915269409709364308442166671583480433641946574021025139702257043213502037447183652493172392578855750615310479175494139978221180876075220831726391986204958009146909199902339100873024640206904007851573635001266652569035502875709985054180563601359999239309166474817698499608284965839910880330092198825820553179798973056503754069015887106766681421943130743673486192549236757059363881278016639637946745923802679380788184594958765471066275886710878353477312836727845065708446850957715910542217073373480980846057581961321175808349538006786368540393805249308099816807968772444084505963837735144462859640690010641319487528209227841439167126459300171579604788927364446656888797107229031810938317989043214011023792548606931648707909729681409167314392473231735489673148341849964619574958603895810951789804139996455472019394525373665491792218161203769772072085628277621740949209033369847411860790139175470829630996878973351725520129354280535845858661235729681443282629312295554470824273677778696825349263657987687098397158585039975169661317222207508852031025632640285193022635204367844395008515520681611203997826234408977766747077663844654890179240027246134209685785826411535516866213491289140770148266817137568858555657053728741372261116385999342195740861664625240052283688358372101306062323108021016050053821827461716607441937084483361156170626902501423422040755000832108302421570113244138917585657970237035325614565061444397290254475450943083158619895054519483908415768588924964080109223346825354700021205542997494446457921883731010548481430903213773284061531751876094736398235741508393420495386953474342084990187509685176289521249539731677504684968596297542051032675050226113697393739153069816827457701098621240880934953798088288577760335077341843495940545662514511493018067898481046104290055583528991663113327811787586013111296610667062803513506962181358331241226117501891790912681675703068447399689512621001319527140804404941364308224255632377207887468325878772518570763379180122745769696726249307415923560506400739490838193440561955015522222390443987031307016580899374245757381182091598921133964188712254487065824930459319182680823718295950998537958034463542804248571918976046167839675961769111280948936606441581808712169731713615932838227920663337187893803823092421659462594538080845010198939249576459039274795757022187166920924246810645674568973869529233184162491578540264153108308987649217885955541283398503530808302679508601458843574881070151292577704649331823679189410914128964476823079908461142022167185138895250859660505828377686742155897134261384174396137025321506960503047008815735884102039798151575157590823740190191058156604162519605836646003514521055904274298773996180834847086318510059372718180764876677785463941692224743295253426885364456163061117485053349879851487626163061166455351970148401957475097273476481704321638962507027213372977403195505693567774425464965121977333249718477113604595440160879177456189525032309083665015587392687124056996415678002714559140791664519459752506622236447295321900739989869435327087060654975319584451707622394450920393886101675500058823236337532672094288926469435483354490415103505780376297391252166383718657879057438544493660907581206036128538209970372360828041493948326650464148040050185239358252571640414418536995209050422469465826593423495596345097687842617813318166579029388927158043668652905653434480832827313629369534540568135677087880670888724713856178177279068306116045527130003936449007436085165885945068807507234117024648123814674556914593239994988998303177732936851320169219780451120140722035974147736108913194915004218676716412276792347189421018247887155747442365797146868048102560901397515902273513886812060914450353930816561533420728336621107446581957372881752337045342552480366739549084836930731102980041189217236018720541897681716093114591365074153588815147427743449904477826667152291003021532614725071157472594100220298649637991834974152268671876597550851179879136611518028251820358045005138317119840251935592585951998894686291250389382675785650712235493655879608122968191028725245237120495514005448696022112661692070326282332226998212625042111935162991562090955220053331677976385668931426066738217518635872335178090463186399907551192167863600842280473019966933338942546111339707299287135583257060995553421543314495774350377899485982567819475210563970699892535109998416091637376192360017794209698318042308765826071676124624212010962371468189448153387179908644693250145385872665784843164761049253115651903109222369385560411123789704748294206292220771774644838631019887230411022459655669777249416739099732602133884892766170060989781397342428658635880407158798763776763084060984000933741007439684681331577352161482185533047344675232779145556751449339431389604990430241391029555870055594351878759503158882020183982556212815107203861376038517476401519348130364494761718421633801687533329164908663999459609737680098275983307614500956760672543377935610575212070172174814475282002044840119930875003965028301468434100569299632209620090945850497614688693551940946874378736132809458518596604830350324539048782465701436632792365568981973665089805044226376243829957764665874951666574108401117358483681708905520898836322043338967272829524411801781161777752997937945371645524467473999233846879185031438362542978946509792305730531906255959075393143856430557869836011842295750902208485316166422796180441712583266402643249849158030768717964717497950083764498589501207882610661615246651714263464336841308519754240092808940129685243266469889727766820564561962013409777707367863785130545528210591841848061556085830791249019260835861125087202607844166225765213065690151788360390466082002245605432106337974993674759335653303459665120067775579968182053353492175381057402499241538735762938549411793928371801305175377990670523047775008151784659524137110976111390667180702476042265046046198419245745549364510826435121663574703537646546110540024995689308939492257299333560953983949116644845538862976797385691995967662715209688182016692126988632131794411368792345831850442581881915255108114482115522883647885286222952537244035803126312032017005676050287218148525112589186478527599873656720971246294460741587326475728041196363932966874148680494391193699387677012199709033324771840857324835255771936128167068220472539902390976955099337754734985237445776744861167581095035438762529806701966913950350961161155504351286538311600524571727983800366761978317352711049941858339344363668821172290448328729397400905689104074484401718297570614271354035037318512702587470319000179048235742521207791420004921452814539823207742990699469110107956126085059811873917721858626790242044849307800048064044798125445611169405792665491785207405124769648475168001980225916305777156121208817977550649121221315082107399930246593951417302867921109463908455054415375823551289464424710361778887602094664769150803831664254582519705763205699923147954427105417727991731461591939238549475275421726398118050159316090527271997095735411166542320212237338309518743568955317755401844362054424020084446470975783493660020541655513473830054848301568391024710371282247306230678884268447222730490080384495260724018781866911892677286237877573106184777536440360439911554717381276442205902076715559068782823258906594373204550877412880961806177123260188152717565716379435312087647786193137024984805176852092435731258212194612277112265377767257744069371662747371613710741569715029506859276234364468746158622447732213557793702658086437897758486615060588399185652963555653180798525754884191109498001202848126174092922880206243425004974556183641068920941461080794729100787451136993000732435730609878554766253319525768990849501909743621601338895998401881511656079217843003559368921989017330485364036951554378921513979751548171074942716555852451664206305009779777351135972449052023029454473297370419001516034647942391138234142625564288108328994546031765354415319098343201256542768005599095426583035034589960497330741519217946717578561120246399936990591938784744039578352241900395000311511535673514920462434057953026374561370326286323629975177901390187115443116056888073264552350385752395186714187144170273975017655769921321070083721533527489331916725557002319321197389187677155545776485658522801586800425657276460225669611582814390846309996389303879587797683050045277144719493276683990200747532057933777073985754949887416131147889253529594021685729771017181301853053979605667043644431152229687772321116088175113365735004077511099317688177515277646569611319921151151363704416145394793390500359965888340875605065945599814868772170514553621114771773718515846666570792440988348670201540029227166837999645391547950630203193004444833983219843089698713017989816759751178611504351701849713818568054754214175790514070695257842638284052732513186148315949364450921816101551542993734875305852852406798756522935833180065687836286316906218609132222146594906126126300181755012583730312269170263678137477979016578403578315679010716828187639869997211891381192870234626615935590695511691422847666252264168858982603649051862223081320844601799664448824959066066295577017373672820340795956717753624746792979531851206574377090775332170485858177273213768324259797066150372376801394503584938884236901196366493684899249625204351358368261977253159140795003251225468436196971613595125379268947294032663085663756577465401334968298732552772258636494645797570286610660895161636999159794133611777286146478428787674472116695774927143716354638356458763305388940338619919906292075368433947030528982687231567973645160168497495001640564752052296160383051330808909147192446164096929968621441144210238675475835265242128943170996458699124287696686576172873411167660783648900466034155560419700236198887455588459296574551521724176761359160681707035317349379935642965524020177847757112481516938450554990574829898043959707123334398955244762414541823733562932560616086967221667074995752633074185145132901632678879902555299187209987524412602733431136697526271763738784486939868382995860760643829982737282558993946166585712508982373090241931053384192576605959628220155843665993663043923015705915940111829272039447171056489678281432915568001161104769980143566088809936095635122552202680426353957747265598080934790771774143750023646467549956334913502655152575754502777781986120233973733350718580466767380485432329951870278758321591442657250815819604803825087487118648654193632113697914864309725612492509685533903928754186669780212972505168259173743559654752768409883939626115191171038001835153094877179476816078295436797859438790771824536695474431991638463882537964986068319835897064853677010803683411255080072544727410152436949880346782715651297038242080180854486501284553390036195988319445574623937804542943764912419453206260836921139189266899944798504777669455387486025763029000257713923694117541529135562341017614717680878039400729294701282205710881575939528181325258471622887262294273853280534296828456927960868799130609205594759867886963541742291258303586065386323240088070087483421888698163185991181084430435603512256611204473786011105748915768089074652645563236730975834717707376977998713170997038730865923300875848292142321776500933136516788966999844347204444290069248818418517111204980001144474083349758736930370423769172565913078268332675507750554374554518224177085702045528188109283117259215449694807322692421414443357461740835995252371570220325091355859561520509840545326497566343067549624919862516316285554522115482483943731839627863027656884149300107313953514156402756193232425150963730981124790388683180690102956693707040491209402506143211163896893256603189377004209048591188300662246027066248884448087430017044877938890458208724544545231548722850320582716704908438822385789810170775015241410816312180726508430256272817905945766680168772444136746048384068499963669229318989305677284480262588341039040354626021252143724169962194221526281509231970162230761657245392441202663811516018038580002441391574261041313920541757536465958146492989926413855659275127980403631843678551545381391405529376548459290574208623515114797291624116704346469096619311130078993792932251738664666868091096851369272658439469406505598623823138698380652474602821722179170107132304873461636272494522002943763624577728523123773883203480146551112044354078629933308521168455744695132287411997913806662009988683826834459337740394575416858598174974647078136765989878967815761516501145416325257086722489392251485888704179248771955066284520478792504688085592715220629389077864455825345258809815866431378561517187801636314260060132869510623498495147923076656222404456206088386386362457795026124240748300573728540764256603201225920442107168405622759201899697662840479167007292631785714849083735455954639930265656831013082162923783792847376890894491828997576648679301007288033087440274521281463038858624594963506091628388246414077977688743572604946347954750482779525919164312182672203239049904748731180268659523488012876281648805511321490830000827854145025620552485773581072096812745376272612154076613267401934429513549970210438492315441727875055660789104280486311406742074471380727551051367897483961083949771853498711325423477702287814642445870813647993822176931362088977904439992003240229116022546204430531312487816915492328826306707795566114177470970193082648327111267209018969333111526836907669312350797664401666214421733935535453725090423778166395079266604890195630736572375990349021848034162683341891566502665934803903358735331678095104215067403168794841408625554452501378984010008237195954785663121530198599015483880861679198402222039050235968072200802095227968865844698840306285158724225742858059693282515932255967665933792379078915029644092359265696901080654170722366230298035773084045813603041091640844257556378495857741539262862070438598591289967616175640260158952240829849204595613319255125810148434990088279468500409859660642751663261246457278670975896983231632007668272628156077347286448989710559120953138650632740161319757709955617238213127148491860990127045392589074429738566552842924814492115034864388031476810198243322091643628013779021687148660805627034190514510306297458875177532412417374280711377046531478148752087174112804355835264609029415531434788907771146976551414550045669936860271267524716251403767766607849916287925941758355326356969125522615668588295327039453162587813042161015156516159895802272264682497976027740123607584917743761326405992678594831518703151884038570243853485600376165702262391823885042804165964555575982315340369139176755763622593716497569420035147005228822663007055924740024358300624644563667684856754331494670382121241368485000336799233874003824906275929363447337550298568197656877857483862854749803228750558966683972266221357462330804209123739319319494481574201275294684410407920251231815902912945295346537110475076259287273047593769143887788788927063111219260238340532969562450841612333766487939129612038767448687595612303554064019042407240843504523693345328818297714242990767217463351005473377568249833668990126017774670362118859692236727657246484905033076623908471635663437439748960198535152061013078232222570262051742985077628221674334152678032474836613455590273324311912485042492489961660027602074277342475769793408169145923954785166601173977373026977279287938709943566594266693407914572463118525415416680167560924867467246890410170506690225197899957930132321657183305636399908825673375627065428511878684915887053121830702482507211324987538723738665431042067205545944441355050301501618195156746159960789726025686755254398510398871494973032593309928408384101950251954010677008299632800627046043152075461592237049487557968732585338814248520372300342696116365308030975442636113301930387908112872795486525349580203087679448565247137304334968812765409364088112389400138801268787989185445997976015887956280103772617790071582146739603920102435163320807140003341142394062771776195032691598521211184427948156212010395757112085341399980959702391909619416649370931509652397724351042797898834325345624038284246929859293405315838524632385218764730395261150423887951396912779536989668971667426700491872598531196640277258172258723116838881287463624806477555175493463229911157796900422942907549756471663993263480262109445987742027970877627766193301819278886605293831553304031614032055731289279918544737756716086469137953420330067130110713210493790330840919335219489083364477922978736243229331468714445435647439676277419444604760814011574667969155904993016129450582951040911533154842624265474655770958350980598120819461567382449811210090658336361185398826627383742164457871836145823317691169193986252017527277112010705589277102586310374764945898405346110074984174114466751351553532876914913514071805912658493987568866302074715887914343264678240835363709450194447339969588638142626836498426955119217406225767700678767067422496385147460975637185058107891767357746002921717049762543982184458113668239996795996131570622733287755949096195517293526592451406299285188936125399750801600571361634351526988999444730109401715950287533596154218925504078378114627407202132976391650147101530692272937724508108938164595286684925910157279644484409868487910371850722529523997554229501394755752226771279835801301285127084729180233540439902773580991186056149303853877703478918773233224113588081494500653439968746461454750692240063529505689447926492015711525550046930701823963266173260652402818953294963325408788700244840140703774167945661555139942665756440021672583836898512801944363974511980089522730918938745059008437661900074674709119378507318918453294709006509005387380150163653836284896467969430580484796956967836018770187392999832217808482519665406229250758466610493158021121829668691109854949974525173032046263013310852175093357407624748306716424027881536106880895037686096908308352094796408356808428823206304152338180214742571652888597488137652702936013413962122145620675552425432975778660004881469401547355586499036975966884470720120219361545121238287743821321455382655229922856459121386992598365478695765983430506332348321283505678615122702013143254639811807946150895440843042738559558205138616549054909431041217258515268617980998997105107085335020268281874851241515770826053452839211633683193452482699057993925704260029705335293324831501792859792712309282707840015693344931837523312172419916787566294275571602820161799891795480403033183254644727545752498548384076238611234294390363772677833863426334328905405685343475423554069638041301090272943961716969587405517806838553907605007199158157950185782195530451041562553773976160422387755423771853009153648263480489541305825686353453178552270918299670832856621545028635818331561814021147953664277513503426981146114438617167595964047517893097939413085560543796307238227897819469941858929974212844893587240787282907163771014397084759395959091336723143771136671702906167121927097314771072699943496366761262455872533895947655021021884478705408093488134448816480675755377221094476030304756918235504058229407454653008812687103452369927143908872266377927896250751670938453647196803918798712197629961209370598552517814703176191936068971589393633607277633253100678496499765217903813369547984425258413689775383639484822548066173286233581099019152762930725732313683328792801295395488687928622476816102804606193961548789692837060686481135680060898303264089158035805886442711315058791015959452801725614216389817020064450912697936559360742649861745250423677407858745220799519332488272519292094595346766172462716016671775530698543509730987578431313136733267823860741692872205270806935357822098455384760104227740429093850108624156908976794540904989227984472700884686916372758433278421627907415183398119127317673608461059910126854206581722361676820770782852697102251824184993944711183336252300025631283900376676940387398825160122629770667656217402785438822601010878896467306045824085763391837595894711391428676838071624336854855277005664574237239813415479031303709364816869508597711253235760780024682870741359221625755490820952516320773541622303375498470745043797806580940345818438007121820099362580420424464499035069495713312108434447816049997257923276981789124493549670556381802401008444871450784795409857865946081491983874139123654848264171199533990033263050226887942499641066118719166635334054860309380765844594514666225144871666379618803764102741677153638623530176060421683900108516558569070584576881798782360802088801997642177430380066327039670616884463878812148956089965391274955536710318313701686240198530788031174463690928435742991571930411442073617835582563207447742768426416628916423863908529733894322473435608614043882595719298054214899893187976625579248154845459483437438671842268575991086199002054199613768582909248748356171857681948618313297095334314133535669207379797864497950838858158475309622523360368744297808404676180627932155161744977818067225208287944110079015540869575435026188118113680677229815218847770827008189236360011033436384714984833300340567549150544929019226803064600155661226352146224094826024385323754772895292669845728129502810869071864195713197907551056214979772078023306447742094329575133768191719044482990689621180252413232463530364198241580095703709255193637524068559151747727479067956520264093594642818223459878819277205498795008348169768375844954984458971116836792707166784682636552783458358537094725158292950685059549287111134199523690404161777870703504543809264385106675863651655493120221265346199357337082907090013482146243050042074805702421755885307983159833939805938864026483626619945724953946900767215079614683682214731913235700012902664163667331709135344023453754593365229897287386608895056819196719582472984525091351080694847505227426256735201506328236859848738922681662324784387310773752738679353463593889270956252828023288917933396953568969811376329183823676526196655112411233587256850737602306005321553334304699711280952774518393113363919758083735634852443705238811975963134164788145249961062425230055958231910100759597777900523058692990011808021664008157216854196836001424450082711969456556277563366578897202607886446653388676567466768480533918945016227205839473773668944688079339859152315727929483301978338982931840232800975526044589310452978523527531266172558762234599838136704415125636933042964612440551448148959259648759457220318318255225276100804484167514248564701380887579406474845192659473166006397312234321954435401887653382253399295472664851474894855003030074763506468656820160343410587389674198678146191916654237021788527148146775822444994378743758851719881122817356407294334329876743581949891469802517422995793429603795465291214107950212658390296839695700500108262158918642552057088817142434599470838833185467503132875621964863579336719806251940299946677830859767607826848634112739806811790568515514543552577415943116633273829459779715800414285597616458711544855728839032198248584273381820725715513468128539442842846416622011254121631359827122166243633493508519869929377816909996987435604657426098804573390842906185596404548953062020572099992595303404936161305492813070064795719988696215526526237899695265486631070598655801721020059579978033670908316876141477301885445206265643519591644775203574937893724337107506858793053473727622402235345399249455851988493291926499262975108765078136282647781234072087992433827173135733823950301610213631507368921304662187348433508699009432925829482091114963958007822803766788140166025397459484536704708627335041331875253140417877919459482096643475911526351746911473774353438939499344793413166325630825520498218041461593067957707383460765881803586350696348755601461212278646145191451787105385127156398967153943288671662301892885453140561488680262718245369816110705312366185064956210059370535590739378563104033716491129105625626553591993942439478206931465705113780297712200911637626628764179016735570614240553733782455041955862280595809698441210238483124747059659297635316952969524588770229852658540506602408804497869841148440963325065866838825475204707039348276018393776176199364267352436883589279743476156590042635244298323342946118672977905575059337899725791834946188318972427625114930163423300091038637159808532906104048055187299135658413891172351849247776888811190745201271258952350770763749484601457360717732808394860566701452010052271496694294045515395270992878233218198110331239228572825960228673464458224007572596786387762300462404275558871166220263888887726583464588993555945731095860756142011078717436530831807947285964167767987043755653432679484970816746564562665844592174989689634124697665757821336458641660917764134331393121405147232652775355005943522542788483809404919998804805876761602436993249780880208138687402779721559087463857959838675463966122478068838660370809260335960954032960697371836388041391170770193495964791872894658450714744682124917524015495127265753162482452027392300894783829935066350983882137459276297382127585716452555743744672888606974974130394489099489807900470160175877741762953914687645664781522271282246166755589840019041603924320369216719219317179815803215212160298643706997507541925418729336003092514601761337035797694395180020562860597849708038480793627206822526022090910882335014187821735579073234389646471721941437688500772473197164853020373195877062387552332978166420391141308247642505802730402975584029111321821600938522432201510016223067629793331723520948739196854814428983349036377824690344771017157760487149333456006191797161441337955977879009568275772106915276116849187432500563660566443657136906157265499767973528106069722628583014359184771035407556157476062918758758662146510796818061813860772354133555882513566940463323186052824483909996895424937137185979951323357183531313155939067147557537640125541483634113601026572536587513064878520072829514085350559210262323023585710415899852346866743000727226500843616657668084232223467038659336148557981162406086526210515786163685218061074718025588944196088545721544029479052638163067965803677792655846672128316946861852826269645134890246609238714714616418751966293199776590038685428808324307283137632477153642018899424202269442352525523592799220540263385583230739189172515457701067963753578782043994490628949440897403609354155815221491555337523237834994342402202196568243072388387295133877223395273879419712882319077615716726582322470905270296257064745194534131587323959349696472453906647373181224182689118157894524531661857924223824664766421371582937780028658175147750925941624221797259816705361589472188847537514910107103364248433569747888853970456717942056607169494263660112365050874450529445010581280861250539082528840918361974379088408276579891925379008417697815752138113947394045456338580292581366873309246278468350576296275814708044352704116576837394653494423356041015592521205167913052956032911092624680564599854837022336574429236260988807670220168048479060415342169162974938828345918776677886654431597289932744018440892775348849184959806585478699474155204217929698421451443446701830887020251569913673617452317830458242118555203908837861795127592102640406191156066341586666292154259471762380288471983213596674032094570618195507231421313287672626444783964213019505265207376670687367980647098171016395615565643391522919795678231983107849066761893497897385408389735921464467143726291036046411463391612302782196469509519633283740574617033317424675076165361116397714948131821045298489038211391853289959947541814683456589908333296332333210309702159094585108268763369114622112171114506620659368533629424478418338695487358699246426699957745727497135166582791867979038823142423015266165759112635923191768565638382724839113575647608934017998056697558662231764369754302025920208172727640980135344745222039367382903300521207049510746893446373093643877759827851852646653827761288162848556074525404299205652053731839245581690184723424970059825217708486860630192502315417489732646445008663610857637831810253700715579314072030867461922482964340108519879714878965185395010323752350755453586950843379363393791584965386748768539017782655459391593281523365752488420983481523423156603061761754510331988228836268783949822818389541073038385839297741526538521220687440433392934652965719660880724465263029114920910315438940154923117336022926727221160230206407940836900459490323272653174128117517957715879641708723287401008683468060989218692573060947745289986173150306603369074570300226190737938985125590408214214888571185118912730191169283953234052407018834940001672508511249130419853237855209159057285211505779016866047084075347219689509719696752188149258830676216720713281312126914233058206877960487003769142469305309791233714423463655584082126340437437493796128217320232669561414117840074111620363198378505830564545048798881941518398295076971359721236588163499594298027056561592391032174484161601204199901268461360379217565448543133532793841985145236433710133562853578571257072218839251586083039697496033657489574317307680616041525030715448597517039499779189254514783197009365736779356724218248726150260351886292332659360040966857592705667043466348592014868216667041185684141132229326054928840365472204895204538410151802089048283427567313905495057313626914527017013703381544770017630338238939963191871182880826675875923631544573261660636064822395444945174180268933059708070010571157122444806654935488893226633529929797482652001526484772388287215919879905165032966321129747153092721028124589808644216853785546143064502853576369260900391175293676855975187666107962961051147646567445782207251923049748607768116060596926324725537008092265317698509255693570122494933293435622011751310884950924421122661571089602250816028427981592369464650596544858413387665294326143311851683666733614311903648599988908541526102013538148853629219385250889990629157132212029379973827574852373585111208644294972868315607447198090534657171049891947384985297599049702866576480155296137209544177917232066626592393587578972067322869145743909353746835661222608270339767275697860922053975108939590905998005885178405028892958086916140203400633773948366928451435290597045454733272601839042896123881841137947214689312356704618223867261705128354094396573120096325312149548891124751688988036796803022198344101725910388159919174927633189946734410353743594710553554502794043451997260695995056818968519908897247038231987897726885691249657400500495876363872879123129710818298879240176174954193362156211727625237834616600900061783698344353146756879192874187427699287667933693533440924522417707506383221791695596929289405002836731178719830979068963865451573486223638690960392557656119852811358876968610680317345094664240981841243981360938957664483659447161135595923918367464621549107520253093947661434782325571843210250108297739053387538834031306916847899693739783736908654359980816603199858032636462595975311152918941944966653223081619900676713541542499911517337440940492794263072286151396541019687316775190180921320778915373212109607337528453488025498382384326266337532029312338387666536242562333387102857459044579156691031232913701294140018896364915082146498925813435621730995141570901816440230665142254541128408366884187495229306755329631035678490378615641107960594237572610312618830044317798530311193993856070195438163164048804171035228166627926716564108196399431027219557900220389685627750813092901987035303460478645709691875268642308355334708598112646721377841008087258151942853631853105156000721893635200259251403614667682453105541895428092651167764506043655004648392670254667292483229993735507987803577404997783547106698910602230780219118411141002150221446740566632892368361901055795131017063757136700475340744025768000005851979735440837678937597525057617235236965406950142586170593930845968583417926267003021120341936007624984432863552263766243533406742167101244234361603429906805680943146227078324735984773070493831815854607619270579845118283155635659432762295118754056896173466411696162191071495536514469006392296233005091088782610782206752618772614275505615232493994825292667991380137522833088253339101930521584468153816462554659336261019495651561761296140916073251611713896068527891324135675389200360626870939464965100400834246533577295333301841857004818840813361501907239014031037541477102272329588439486562939168485490614006270550774160210948124491993103051693753435972810518362977324541998120227302571396918717030137232443516446374361835341276570016682840196168141131807984665597003046969159410085065064331517180570133108003906410700333088907613973341969445561207763671236523078563186954041093911893331186915214512613368592864064962619065245671687215731780707144419300522127796078931186108958629805545773727892175257096277038456057256337638992882888491927774078999532081396554499804711829998618392878489702784291939006995814342446258271280571477080930056360187446869647155971486960437849104176288451662360148431259722937177448874564211909027406816868794894050523796398238472196460687025094404311020706621539342519260225900062480558524525081708348833510237530853290555741512231507125036153086003083119563943104950954744331960914583791552786939045179310251464732684355012620597632007848968017839701907762551831324565285043886776064241114502947998463103746814420550039873332505299031614703713385243811640846151184537174063396386625456652190738172094601601219607695679290790500451932317753199204319569323813159841934462217182647520483202078210532528768227432686887380889666093224843155309080252900610993508084391396598947975349457488906243418929121423356366901032272979306456250090753672928517036109862122707790150086311389039143368292307062872423160237409971333312502977272280151812102720213735257220754459974148912023427629295899196900805123269712764445464634436940829079657223164647805971187926177458642683033837669155363401981430185643302876509240376414017129668356829755735317375734097377169058283887758908656024549858819487789042094048962954233595940813323855989407154249534117686910154011800174877161160479350976653446933678211541269420700763508476227559549705432803361386939561629546998713293054176983291199780615291228950592245524912592041114409384321639345566785283191822299126827392373106139170860210743323438209565850248196617423177136412172029993725209924064446786662251015053663846513362544431328616164772564960165108036084867667103761378376670975120755848271679231753771465759758856533189719289046898709393448534735081866325399446078632610037230963876906725902682249914508016548580486211198044532882390742102417960560653170951408392085931666002406008062178701522322258280814648753125849684623533381439242657368168271893592724728494216733889194204437532280519666166831364864608852619269129852439899977769918518072443663130729160176973234759218033926641240088558932835685486904033232306681285308070182567276170097148151402299393078142192137189437293092123851109712640813552682505636424211183080961391248510155163062115742451379476411242197538503689450226901378524850877832995174836155878099883057408757485827748489755941933193501720563649583166378650454947943594676143753849614796356631716740755564706588990512893344333650189638638194008968551665833813172451536063144254562105616582111877715060362484726513398394715588606260981314739648079203287800623006764414305262296363455558410928517070696164903708294242542399359501158889573200336585058167558431794431999412408323510686237335468571971091565680590779163615562457986630856650863520477916644955121760424453453671037890575412967675593741227687046831047447994581408856902234107695844630769947876592996820974659622184303996248940067169483574198743539308622662531640201450341014011417688206917308273568252333805963338154500638096445150846185190502486246338492810672197636288053486649097019076630699600340111717473649422578018748226155632028143954977167118164775279746440539553476979552168314768217745473943193408476122366358175155534141855961747224671467052223083856016463137040061218157384816592757813722194574567533679927601612780255473449372764495696950347805174605507604407430018537307973741704802864038176832210051524493113441912299158238556959099147322186765914444454735831387316216094452211441435739298271028551929176667145256364079940237056408557770186831082305162775395744283972420470844432705158019793321762603876154416947541285500420410004205334283066111434350131617726210536505378497213158922965243606018265778348205374679765509705274622595528810221177597917665083704069236013300586443723590606252719622951031361993950208212693700615760355583168842867856065621682602221547711750979319134297555236985858774668758339247937111890837036630812903611067579667686900204445728115359018775522679306083152051777329384234881834568626278940018593158580614670740378268192188929853927353233101180204234482559761164592243298423057487562245428353934308273326795849847630943348176549346690142548190135025863851243981599643115328783126344566819400956654609372188939617801865303150732166757514990774820139597084691495635998284649388183833856409593192728260449082952581064501657479853975368676359686288301007651910853707016752834964527792971719184747329127478605770303461518836698223016087646491652033353385442290713845778957544657470018271316388993833218614433104379194154223594789407938742708073289907320374223295779063237739666346631244245217087843190505890867079723884808911184823042567675424577652808616467002816083040627791605674675928755141812754655489135406387004046482063109492716906311047986497114737626045932608201579219816662369088217327225928895614451496621157952226627266139671609247742884890601555900682970052061481554081077517515182337548607438591223129951780194575543502320859457297839406993647238008675001192411513089910086958355721397074557739414087534146316396008484399431437599631241347503127078252148857302820333276977381171332611880693228210440973760999333512224540246467673159165228992946105504272653953512836406473875726875266998637276424748351427348777647436692746402864780977604898415535015258488308153767097061236574313432455015103499793506639343583101833475720773820839162499957495145537092389859598301499522037008965091243855852596305074547038265742966153922017990107226927703709317139038355761241667749696128845702792649035469969532129567863769264302159301859761857113149015485296852423240198920901270565855966610951607597086591248566066394037617424356628434333909276187243691360423534901734322111878127900929651770512259340755279384221896370412000846140493956549894476787984198054574992283331160526014005180511157276343796509357996688898921660515645968595799875008078463024126164309745116080739017824452093231893851898876631730668909294993795725808551752871998582576144765428452427093596235885397577681957990720216968032305292003447772371702968240042252761112492237480698664789572003010234363908067398555909641123789967429306289760465555164378686131544015735451325759295983308802190949177857461975785653954578143836225890148385193364890612772717070399864246108448094884177505738318101490832820128300610864399798869860864833563234322988028213160982921687799016127846374996710012168104453102991534903685863854017820667052667438548769473724191632727505892523220776019980179194110949354599066550213118509676784956198676266525860911372040654437384890468204567035518943405120520978324585493921610175677478341996518181829538093971751425378123592291897423139413479853302096730741971045206574828674620811688205719991304113392594087478053422923270274662479186364224437201745173047792251375621416218377919427805830782098548549444027405182092193681629060841528336697127977513532755047703243795365245347116468414303486208666772534378786229104083104138851592742138167109938552093392951846060345838593979834691990587965042564253649038951253033117845923506314391867664305748671056835997188730363781342414868135805345615394970472718134981251159849419578638137622736017804351987193091249187250874787053374063930941694797368427932245634261594670345614949100781744027126014407454157335889216903398852582686488273746936980616169021016858395797528190728062301689817438503481530627402199729134454598625753248621768312881779751306619098452533527051875176493525235084281429749301470297657683721260328563971893157952406465032283440120330367922742204593667272413870308210107023191897718360144394381928750274591532641091196978970646437366953013243950756449018099599114411627130782720272611497319453080367716465889006154021233131420122429447133549840795257562822378588651626993679979547610779957917323732133827752096597529978589992715023078404450350305731819188108678707243631203868010058823627727665466124997862977343739763875038403240225512516620909096150080176914633051500571597977400502043998308296989791933462034358942388523159714978343903931945682368975434791063898850892762800250584955213543936417141068794004756472953986148163557585371617849317177698801470666786571814588024631903100442488502799912581612553757300778765088347805256141110004862857602510709023166493747317169462396885003075121666584289553082866841867785326265866306228828092491831442585955809873708304304447988394277625773386294511446160267834891104842145673707234136243934592000288880585711807130477032172507688801703091668976015034760282041467216203242218907752428478610463880473292401259689232819574371835218941076139268051536307173740555437394122340283374033048195726966672252116779341370967850819655234245956957125930410858271145216946260751929695041154796140658361517719348099814607592401230137976815988937914588350068420613198347982769721121970792494542114385174577673801546357385289945067746934645987389609635279210871209146416921200452498385608053278353955151301918073436719142967596238280075551169573488766315093507589121980007655349487071258170199152243813377003110435578939164872146616795144400033712255738041420713569392352639365724903385671502147088567105906222789089213143769974176652045930145304123265938819966048800268682093989419935573238879246562979268614382848724689700189616501276391339484114245055982303116726415605518906479354538882359637844694017538839745882385500511517555389869136722280190758371749003499442317288383801716243234654119695946313801820823609576761058293855734908415819469335176706941827360368258458072101102277207770319381808981302907605973906933174862202415564349751714532990259176757544615647077608308719930817804872400225836342998339267664823710360945886649923754304495023790779954592298548970357612633261933392415799970070744918104451055697446583699149253185439083680785660542357148853336503652656760435247714902061730950874435975096680553031021700455247830672938886088979382459653560868714409423023672873482294491483604593849753196798353394103410209510709805825882437782123959065378840732125837044329878313520702477936632016116511441305355554024908066085608448090409634390183766943686432921748854996410630140612632761303521558461512561252840581506119580291626144092262031367998267276266019931051847451888456945047951105148171366957826661429887438666731067293613051415007302809749220030523258280329460208560251806756842245716852912268346691559504966411420120095634538937691904070505457419423026708791157745403037910050671823530698202788722116483892769033056461021228283385491142562054677812462371802310188597430884382010263965388311269990575214946147413042733654541507808807826329982959317349730569740498855799007115449032837483854351632989692826490055404285543798127407105071592580096086964748031004801625315063168093152625888432810822936098324989564752918815469150010363712836292999743007537517366808221033345018926195461207817958547301711745895925579777018234065097605309443568633732938641910330158275098678779435694368822093800744571633177260466903190396996681824970727457664710038358212026593178311722930656516976199772882674154249751053251351385023779337272920033689685297618514161692488521026971244302980300672472290561116188153515607776224191736504711224870248560058934491892461136888218701233792065507142244449282561999905040379754405138934636404769444792380949325684637097084524882497381630314052257025262129758989970816790790495077217198115190544996540726804588255420756778543806030938121880408263134617058156718337516100548664157590704728048431205032024909387497318538789002568138351490182032578579381230660879848230937650939321315676393376687509122706002767583952757423292235398994169376413485261727104646494597736827492698713342974563677858556749582649484360042297349195985610619779326719914754721283950329115724105044638723521668257258806821489495032097493805384942037107465820989267271861464824604697147951089383923944227519128343392944639318328242731375098772594202820872530400345281462688935345824880762633495283448942157285875573397360666228464241622920894248066584691329010668455843804750972744151410010358692582580453319825756622930860490862459403530699591226602500847001004225500046742433323937438390969725362312398621244303989169685268063371972904539904103675245474812615965691329299240362573764294934162639274484425453780795419817665895498148200669859857347325187423805531774278799865348295626033595428075672473608007467594970798815615728998252894468418097979247441674776107545007243502460017767712975297791287949999374982617709424397151780517648889767067462417326836554885055342924801792288911666218531931951500220204102791672072057015914038304741126084077413656610117624208068970315744322315249663496057415827261320521849870454855210369678915696682321712653083901597285122661891908046076805798906433912628268821438221679022332196744694432868635980197668375455211694101310262625282663063932188948508276859006476579855598509835476419267105347789056091539475754645323886359979821800042373207941052577295612755426730903458737249021964938904405011572708383675903599584769894085418616255186845968876202726572951499718290047098098288172635907197972757805868335122295567182895759904696189562884747544708546883574222104941347332589456376500110151822492073408385769724254230930548673363776816147334167373574741708640052620512216113258103731990421090000096589221990862656902137645899412809432695141601287970353279445525841272637898570187412605356746521302603197286690578830609235703379279134661235283496128605662431182937703637771607823638461374996382617805418713458078448119021546330040294468116413362205416722821501916252837821128555434792409268851806610593935159466892704152781138496623864183582454293134462494406159713494072191734247290288203757027128224628473815339356552849649630640449151040793141141587561516521445285485780826432807583802749219785432229683009915789891401021231965219538826660005518909784744937654612585869024541033769216227308565169135720153162654614823025201204222733056253339392813917869785129904800544042599142464248190173391585862112934477247696257110040567170015174610960552887526517452857611256014095547468245094808182132584559770725575857312905441208555334086222525239181680022332866693920434464594167463820902392937608735182559594387415428725449942648773282699549915419188746883801115294402827392615568870828822210308704937485616469022683005179130582854887153048018402409650677698901174106171944549981328868412320513793069388350040344205921421798071445478362409678652589771810135538535665444918268042845684253325216120000855311136477106809962588597407104276752434734064993223140812193262210058091890050114127765115810818345123061473240763259285326048922621909127684146389027790475301585401722597115104368111903782849916453012952975744098820715647527495032416261324582372539451588162130243194693568622333118286817208626872778757904118613357078046612459665738886585309112878690506091057557144342746895545007074811107943555172784861847653868995155515532730129392293628669220371609395053630407483623665940263569450080394046320665836920463490789415043049890892683732084984119338625942305481017193262118896426093169228268629250771089896374042446089544225619918413360355694911472769106935258747240548580019122811714592247211478303035881939661438993227254515330025850630362626815362654085413801398810324606078647650067173730741707588928514800648881873037664202850404908600084854842528634789643751679532799942219784785892645831754006200997604927423462371642188515987035469713617209450442991317928910089913376536636171169225219697653429839895177051226938461827412737548432083278876823948124125524800848829786086193730755987719585863436268087246566238535460750299630980432104922370585437912305225568411184355263977830602427954777033965399972341820473813212510761211148404658564262660660742786951263450877409544597451029972699155690107404830596736216724195369842037214472126817920692341400963605394414895596152495520222439012267820460089914154854778064390589075124603439790619254366649395601779263504014047334436148946362622569124668564073137664094431477816991434859944877798246759094894959385023160179330230223672239660295524859973715094071722405784549640980238968228589865243577746331367051555555383854801698369262894268228336024653520319177977153395549872556097114905851650636870798362630437644527105569184012889311736196204309116746461704518342252728350552031244651169672128846850617674020532413697000929293130838626144232000035602263808592584246402540912825193522739771889302524373586835849747026766872245472319699924729965376948712639890628326161908670342788725642579202399128114558170549104734235385050326352248765960587978213830212966719695701414457512744256408892633476633553233751147947796234360865035891754085679853729144885936931929395494282528747694401104607946017912077762228042841461589398525198723476620877710816024570546254250140480986956287145161300401153114505186541881679428006260588226426446566953761681351664582547210612302547341945631154198507827090152664762141637255905382427323299477605328958046398004407111074344003789809413397919084180886782501131331664061960761679671493822832972231284688440815511099242461630398436318801476119674364407418535281473451991648039087609114297086754860199687128608833535171820655197497462937967094013974282348399041200357443003141048057728210209472512227245024213791663110024359587043352266198953880983106041000077588744128516127178705695093231643769732999768084000005548811968045358807020824443555949747643760793180490619221579739947441597047531724737743715806517921347321983517905239599153580092849524250304297752509127217621776416519523551727941104327060143814041556900102755929324151767456110456357535700314778221192706210643649273053747642914108010581923914184728540909483521324461406018434719284326579199175271627221520478911482373173472048569771024604907191291787080831681825069045518111309431736693433975365273398245017827264060280612734688357830361341630801712786176847366890603522147822790677772553196442843099137184292573825989272045751688315061679455112984881890148964414880647342411734945400018536139889999713192799478565400485307709272289082598646942020146590221555962625768111956992320971006084626335055930016712110829777199918493405084825686642790403272342446879216594816168049492809332590585940041725917280871702147867545780321337375385905061559819179571830473126922467946104186106808532067756504730908508702908034038429300617581247912458430374121873731238407314510608042072659188177870101996641735544409281582561340214936745671349672019725937189020108253532646361413691541588393296073024291364778329335628952722428346194181148501740629718818491751649960015325840364252328032053262007336950545010911680788416978982574210842260429497936935732295199007426178104827403285608081875808722779671585783384956554858889119081759392939167381515354048891931390772335180588343248430285545477950229225370319172117492947436387434372455716203858466231325376138720521427562441024539410850095103223675481564003142242287416423382746681223976887944518122388312823171037553494786291625849886613028322238857792420143772866545092851176841409669795871866561394342932057241765296017664201815211013497296067515614517586177534836124513732452976762272697369104156070207475824773305343487523462435877328809060648983422735131623472223861991323661457154179817608303129462785676656548227478483854175203950081763925728724535407698039939669660722200763288443820668414695430178849358068288422976445433903660800514643202792292239683515317048184240119032837365415628600290870212897173238414348088381590925890312507511672392277504976639808981788062119463406982823312666820430992474911377777442953971928550504027631322733086012572554368025478798775455276146630888756123490490546737938039173053890901739190884071227147741733551525140548744282482552453373495089657607303641676093694706798549400014503677105293136908081696303817580040676346846172648422425309928932460013605316469551239027550453527425299906595076007699804996643908363931178739773974179398322409479638836041366200663606236697023614363873487483064065314754561386211052266626448444067000120771181309495137075825743235548265451330143936728712949860843007127239300878491663040284518729244142291601937769535778886369871214547221086979613430588614557597122690945635927412006330688647344346233107918785090712610338599710525460289620809335866071284770457753716957209211122979674131174103900317224611852137902416781819748069355361596171433889888303259196552062456586785681088234501492150941147345836036072627152967252700416047245281720145015235029637534599375385035466669067356934694340616532202913396737324509884562228577246540045343033586331834245161558601097866817097334787028700314169046360759869326177005779030400734297274677562667868306299538842802023966382360866365785869812870848065357268083884208230064523924472960986186754990528039471315890862816423225441188334571522739379530019816911015293379497442014846724622802017944175926010506694071967530157667120481537174048482758873891101058393193135665540090330854399982293800575082068594897461693985913479896162844677052381996430636767704343705675568268770857417984199029387349145889667652227077906084216210059625968241700885662214795647372295600825336227863768466382684304585510577051351697358112444008000381889400194831208458647173520737595375486827887097070962205683089145623463999479947351491152950163574038156745946921080197007776941098931951919929283940738370833377022965059364184806405916121687409899762850957918626246156065693772863080796416814707493177953962623867867296631323696093661859334810232095126943143417096660029689361375457756318961721839731483456749312022853974314704723080749641890123695666691775481429483076069941342375644283875534086664744130805025942407272928977209900010801369480598065377274584844359442641754316745495279135142454256709325048614255156915989876620235022173184340808076243086263801036635119941414171766143359617452790150792256528157034530769356605119143077740239085192053177108429480846877805377715020634086003794667693357232541738520141919878983893443246217630129585672299907497229459328454439036300856245906561499425372836435883835884439410429622344968218115196060498267787989440915921139979943591846731690196164625284019250641614715497989142281266817224144968658401046020715048639988209254994677703060744526760139867861996735927167282973406327230379327419322228767917410337874345051976847426309076067504215195050015262648206121907411825383683154975454390637405174459769769365333765325038536665423484826765078049723766364257108428404663596542514329581269943028238011736647779849609752023259079404484802242196336643722056306681424183999339098568081471573161979687888957873117379029617043638970439642342661518819776979993853671519522483863884821026323885751365666413527636946881539098863613356453630536696373162657666337893567070780082686644292351466786728447337963327131618309963308490719621490455919720732522055864100733112514012391494174188591919285888480752863433569482640332785558896118472822384679742388688321954943669435854166758599843305438385850259678037535094607005957696312917806081987471927457483002071727134624612052985052972054829085520630893903591372143316570134121520593589021155789653534716773480664994414235658860897329434212452418228504286014626969828840487130153149731738750121060244866045248596335053862894724678936065997266196554926968157190536472529959220598289394510019186497753290043266334648684826980127599954907114068523627982729855512817393940665223467901834841776117629832590812571028150890873387319857207123937917610936201262743496867960806100246893389257737228491473513088484098140302556204228900485024768479355409030258320104310844393225039427290661449990862919947393101569534285714850592793138747117762814108473715771898619489959553037523305781309131330330236832573177019401161193654012882599928286311099257345584830094349751865661096374485048311733326413070334230856071241301119355430621412835570258315585312700771999659836393082173355753253283612303671440419702835619817773828419338523904712645689621154093625174471664806719788086549213055049388159119077406147428010654570317115675491567991192727996899673624242188963021454848657041067245223619178133319426617924693511088879182481611411976144518605196087776748278225073522933209763159271531302992532637809093640839717675502590084575462436583222413541973315948972521042432882626324620698698490995711822112018906688810999778203137301812786852300523093180495188707969575009639633672032278370613513743193280142781270991268735489399349551290097491708212936917551931658547564603878386735947862434100551260787348503245672022032533029841381826815947913274150696649586481860678978697051227267137320346075578454255432249337109169253659156864519017978240124582126302187214384271587900401332901309545259139086453683420089911856774050596213449173731808099260590086768796596838542951432466358097520752749278245016512658200723982896324290899486828944332703163169532348702780616309548345456126134959750155632491684156855619221480104566479037635908663910972635804381144011892440193320115621510958920617710592732668873183272890610475714183261755735223485971241386193752705515690603706824926296513043575270354757351936313242518322471504244790550923569749123887878014236919141596713576018964928954241573616108582252861063638942030569299387171232393450082494138178481615924294949742406319815533829737797630881165529792219113009163854177267855950608486921235239248422200170586668667663897331711086672658001020447237807205218672871447272841771446548469548297959800711155597033318381905382107163899401165239482910799542987355472868868505417599440808844781148163819399665462332776401864270731426013193522214378069308528559694012680212424913794107762806354328832179570212099529242397280934166167611237554495407528641041783417692607677637724305951773588660917039960451817845011906185032261021742308766922943600903175790422694778448861532092006014277859957156328149233723661705465669641766386115203907561395888864850243990799562958589854821997152070968767069838850665304981570292967459900892435369020427847880778618340615127547079459463860848591768620928774611143023930571671642592803758414524314949350395293562858494785284437847822981153314869541261306141275549091171367428700286097203027610465261908731896614014433223099384004557230492382087772433370993265004622233313096553813725948420326782086561144915462053251742025430985714381404098436788223356532161289826933255194472563906059066291186970101512331132623148423791903407978730682396345553520248761595269225296032197623323541269584292287801633483823365928331258519205827518857532856369490383500106110852083764242244141555715365853727399135068501470397271717665161296467560794155649560365076974918908102907849638377151399452546241711151192397241190776605489498825417104082170736382137861524631621910312686154550558872293046375458813928864755020052338007821686806086858270178168322251043379347654660308404882559545097813076361796414310296204330970781772204082669691878812372496993244379271526613598923115397631795235853622374782871749735187839431673447975964341082331565351092998433290194942954123993085756213716217638555622164070909844764430845342806382998221679247493084850373234388133124834001161803692544549914614402002969036950190435090306546855194149356176422443923082108110683229700118265010342720535166308257244669738717899142739972124635152219791751343082901799102702075505018340876182755999954286884527070899794051105071473792180609731297027442491468647703251431893867846224989353475300676637823100784040382475736686573211067836420324245226261475089750633091661177694156621711457827740210597500066653092614471510714947270620049850783469458269425507090562077846330480658187419025778851405758155200330758058008906904318687474751759407759256176145694019332536539212921338592141578126909683982163826044398475984471935409635314677007192355534033884610609210962951749001565833782874947859291326912584949968733716463884575965560028132112486854371914968959226773530885824423572073357063264608476276167672444510090351331470523474409361792604073766132227051162323133638926692740959919177495275840811570749009036075669643228502215333170036053038327022575803440844187439614345879660660193003677836772605968862999967192472589436473160883522188470063642769099357422328256101874916582426591412634791659613353942019981208680680253845209343024994390678746170349696500434245274504306005288122763224221068562825375712404468449753003347678030023973230762719195958165293338715274865909019041701553091894881874103919052314570589214477347112728426462802013785173852089811262707941505488193883964232230834897448052702549956675817712607657013517753462992716632974779718800042037926661640126085471198185632984728824246377026185499866816490660880160350248371039577144381403760547054095460478305006286131950370666970031912783773614124746455738057520529766281642440139991542383538605871373096574392851994672976417754985604421697111764669033514969739467842948070783660275328103104471565011734918970507012007747712370086102788874774405223490258832077658046720163563736964868940757830207377006902740224740348709883269051980264515909920760952168178733988120835243280451084255875049632394856823467434064921097280230490796950088929460002395836639660415030233310853522877790179177500324305038528187490434221995197811015210483221517272485976701838184301741720032821603940907183333114124112055344877482640430706455965963043233968357762655324026599411014632783827257261304889219693748061314488370398858688550701346714245788423353520473020880072416783793073838884542340207718532987663909518421584753645735037919031605484292031560007801179634747999674763970511430914113475421659957515536367696994035604236759007760273881410574507189908072752220390146723854034228394403394512606498501075014439968741997951681898777009783679307575377333104709765642066636708798536962436309531889177816642024203325264737996849169198273179084929786437317422965032796147035446333297296109693293625759590754409923491612899170308493318994996728301089557104520397789549232251784772976879133228403936028942930831304081145236093313715407914888887172132206056806714865952761334838261793032516378721512851648913917323075705481884989487991976165356580194609131967949981575148307679819055901088115172800571440075086367633873714359945785970855796323998751547674405032418419954043709594048714456732263866469849013126143385552803949238876959291768956651383264885707030421016409653456705196528484144335619336760447663857840374499523844596797652565594054657073484956800327084706147777702610635477436812372834711378170491557080823686991092876105145568563666085464890532917808617300059287162305311481640219526750810583919285783891203225418345669033996745458831995964027089919198316067924236324433789245492785163552060638466155830941565549144661256464833688569919279013891424292102894413088658931770922325194247539773743227368310774650141563125089727085306758944696584250841890508838736720224535749568857231391830077090501784427805743276483048763964882018488703479106730308538197611343808347237986228471166385931346607786706758239095819345046307864856736549335309589932008632059123795776934807536256656461010539013827111633224174540009339654973646464150548986646906619708963174501140895756990557224772069588956110253566827251251357916545973266831639211065830349737153691049629590823976420535700267389822531066232404833263379114230799672757852139936408313262070900897805936221726872251959908136833943362388460627438963169165766679062878394599801183831742341793332435259170198825439297129918789642950517349817052415003422906403856142223379614190245865021859197026199407115078122826428078886411576557619589295362878335789243878996599606758151370035243252475816277016522718387245982741643337109365748981088184386010898136780062963274485793561902682238512688042583847538231570659474307519024149080938621143538016456625125910827349291978001734435917252630109837112102900203992837378028996969674871846251626186957393966788315310997628084122658829737566564622571485031591288133259452768448972358700529545864911695783136686330772069295809377017490458635620034068536864809959513950293160720508771271299040778758178882090071824185415377804845749883308381123652602334468193080870209658334150522429111166314883475440362166273896678066593388889438278124701354479145854823756105649985772706662633028423087338948666757521196499316702053783524443875554545237189102952205175115692367699839229266275539181733317435619350076826172347767472179399717106247140126279471533359327813442409080734918500997973376120135602624318974388653436213007855865451494244604305855772119369517552296454880300620356479359422840902912725355772199611159103208997332608191932994717556505470560770817448930303394834331879436169934739411881964433879337419749715489395907381884950937704913449526637845540081342421903636262361933664283749098303739117733565185538932201089887422154610332296091938296632476952204088662768076280915091277517638029056445141041278565660740969007915522946075561363678571871029585428472342388968485977568658276381511947533469864359823799343908646695776770944549706671830883845835803240526236710988691740087631729023284812398791953507066713623886910186101317144736813386450616078142701134441961495890682514212189562605783282304369887212776387742925872372779905159082809478894597303935852787946697113806296420935483899094437732423250920362265577452615057243007310471739138072837427061242434372690100092322803540440939810489798775429196012979788866572320880924942160187007893974111884704654074562548520943265431436711336218623438928099235621489970340109939644437281662946673314192139769890267813635774244827936737556116786223048162448589945832511811187159474151447941041383664591707564299446678139765589996327055147733729816502802657528009974205418737564392517628091016273155718819454241851245333735495914305920055917153261332360261703645821369394407540462456583386409769905163552267621922280252532273752551457392319237851435177654738353501181867605221243328719758064580924899996287959120352187304199257873456005288607165554942990918686461761131695539999245076073667012960898865836843321664791740094231325277300329814703853938623665397964036034242768078007882366526846147519019353490521639108254145083357357414010724876008253866387893340724410645225748215634023385858076844071042910221994552712374195682455798835990279609106642405486321995388281226390994678132847773313050584983355559205749668834617817336555620857774755190621854093898444687462060813749204988344161821196479201368625904625113581873896478268803945004036767540222959184709551958938249873775211115698908956576205120753384634383061723827777904832974458978449395395099663218899040689784518056656574804231954326600071875201664607379296484083526592470809513218287655420307769540109667299843057119415510456945959365506196924030648975068027402168609453775741504830639902723461189480855828224677211880697928084802733257008180644336375009630041169861617617471057018297509225995766891207649586389261222352101578391284577420466374262118031662433451915175616849809266704320021392289656898628072848667753179044951096289232088789012968209511089053665685601817611039080699700612962609263942442151767254059785620402425427546875217660387722016105331234683121436750623078291273205816636925068725923089645714862437397079813725435644659572644086907744334690492089817259895097487660444757079503649709623242399144635541501933628398755797226073357214601106653641446266254705036527164264348351960732666677101766807925567588314708640440216679950047380261913949013431273993251576965599283330715087230086353582977479633928614893794765616282402174964422037402820569621328783202610743345447769622297306936159352698625856455988922279033740726812964099023209876518951158343340041984521477656092482775070222457413558894713503324307769607030432249152420439799554420886925540775247873038284502804552880791589504110886749707504601261287654335976581132013577056391888887135785999286147747827168175545447432357368825005294108463091385744594170820567679709828982079041580403185125313030398475637110232578678628505386064221137880599141415848621760967535368721632611414835929358737149655948782456533149169813609529433962580467048802536082235367166397281126449411785664267351544053365700532900309589103495857291834214863613283609652575494642730616093280540140129524789723104611627245465730802879599775130588368023478532334893214195286662453400197413815627681183451762083655264369047164166530396916374584037330782342689620932324425657126345892278956141658968207162513158967085813848626737698546444296291298294576167476003553273047938431571974123229979137653621779052079633623843621421638846270920688302752355934378517336186913749594259890665210475834584233288128606070587511720257750373297601906949947429211941431292210906150805564513141332303415608972526070314126261646547819145893523358673271673507535712756063181768535431958851398605904679191127912070596424478573450263031381677082459032421270272731109366527621283624092849641634244286084900823191107482490012531003764963439150700681811410943281240322127211807336719591589228676111437220578136425162409838409851687825148799676019885202485917888326324403046479488612374090628972877155820569775695254164899104387392078803401336596248146880075786471024877959736954079431351279376954012653709999723472161755064301995107218057642397448491636407051267374469626899532111906267359044274654225382953261610374903189683728741965009722263451325610905411926406874442202008109247037035219811699789169355935333354899452531084821742311355479037664840057954352382753751379120954112699589003272072022140621930081147272998457455421323196561601002153061913722760696471758632004694282185762779066163482194204008698604384780084644024387837167699343613294728818904598735003089375212226034646397738870023994911283881255521852823486039180348526467724552933009648975229734086722566850697326163298522077902169529640178929463590973202884446267715195929288320206287075189435051424810214136699462462175300108495992249772380367342569334634830821762323080986375044143186666605464434157499249167340031373654287875747636992226197413923008255390342248078544671428827312773129086187730466798723285520846339371070152070292621173938612928581426168003837825953239456368574033220001263353208136383362524998608326944557807303234838304381439938364867339186283781628107969534751492587849097811379579541678743063422940876871076090332923123231064508529688992785300831005762967851807737394631371727437225938654128185237227500296960247635992192138989450607822787504286647609516472713407727885283241949748065672942912893133181990104480406849581004842901994536152705609152433893818398018418176891255492960941884616163753901845632771378706527876071237494132041627387767750591516075320521349648069296067982192424654411222158628077829018804149481267538417579261661125402533291724970196006739907668360550028688802179504671697346635025860167442942048822188960771733942579069150622090949910962459855182072140960192038912735636637400945060444200824155322741207101578787166154141382939606207883296920831231179841537460296093781448543581834708746630005825441330158486555170211465313504902646034378094638531841309011164232127305178195783498712737053094291355648723271360146907742689169357687417468397657250251009580855187512501928618111117487603714287089477066863274175485317168841149967323085999711426873452129098995748940435922768236964464891812402989641355468356369703565774671908203743279979601145703208152965584134398508997382341384474716986196417802936338191398564455278420940339101584856994366916090108813841016234368039006284930108595672105433761486345065988150163216931464471040576188603549171812427033793299442262599620961563493807433459850552602948815432029340209048588497118129257904350493702896896044026207133385174613732875797242132354447672862408194567869986024352233497342218505444403633506334906557825754631879476144393161486990621074941239931395206416687930497083189041824395958681093002415315680690803928073171277002017178417117302737669996339233461655736947502886450971100007634811047369925150066281358497387493374510691346077026255370701956152095172308195947105106388251961822039559436760501743028175325065419570982825351083837759364935672021695758999799116465654287246626733637185250655176315544337051013168498458648310197140332070778728335230973134584469550642944287671149790169475509208504674182547227711538499075518227944725225556016538731852880014397964243955351365255762187737126935305562500075880492439216732603138956685722930294045694724993974756526849731845676238719326036877897333779532477558557956471218777852562072824287565196529013756135370109165456367598219392791800930599044013988619293993144264754505846052117925184696400973981108410558316544475423567762794657971231572123667912066752679014902190842378094016683771842537483024921898856517925844855897062693441308439521510524780067195398525740367232560554148062193278424914429269472689486343932865206529503737906436133859810773698366354432137592856832462596110611535867062600878705726922923593322844942273286817986157590528091250544708893895728764860231690859530939570377059165921027473899579153099079681071632289033961962601567811788647290824384488976429859011783047279631082448624014489214444449433269353547164108403707054944550891247297660395549424523661130017538348875513916276809545473280487441412524529858066156667762763670300638653064195815487071197776970510266336444765431767459166164393158313193215026470768970352675869530296633006044975882263792113997506765188878846127330004640886181471362560062984137444734843449621238686654216075395214988852084661098696361148649922344277024901132768268574875915625950731622354209684636404467827953482256374106458748053768009263883447807823991883921757186422575785810127246258388286302804721835963735183695038431580250063125444036126350027757045846412883754768378136285294976368727659844783991362660836121791896802542528704053683796480695637854332460895465328464698855520141422819528238692537392806481608668054053257514289320459120578409799351589257410133950712466684951966435832077565568329183323465006375910761017590248201258543895584150824409446891124702345280329866955368907334776790708602359509125219538751080972574115465761428500303549954277946160266497823319314954639564162746892635841891627363551385245100650261672885254815534576915012968333672571388096179977817224075376329593300916573304716754136884244733137718022563752192559608180676587592901396187246847537776857566066607839946151248319261139164082527161021824401400495164867789480013874341627913687567251559503402711553858586306658307613251671603217834223500445796328719557448476661319416632684026784254243799923071536908842530636508759137489844775707783875540079151881073790611999729969049474438183183820197586439901117783548042092986937397687091993145352811544021660155280927400023269532090088402592768770172400708802563482197175124801669611170784971458426635706737318734114717890463795279035092930288587271692888861106456256786782013399394369859291644978999826151048031894392260924610851925696103627324647972700620125092561271561936378218487239229370685393342312866292339380080660239917980188234000931148174095612502370415088983863455731822243926818035968110481322244623993159903074942328615966654922831830124286089238275492940067126517404986044329504858068760378927209434673851170816282056827024776837580647323942249722117060377824211634831482981481038389891709231715095469036620451033674766263446196271741369321047321970380348512220015715598459923639606535044434170454066603099279957606916889776013531899959661600009994838924596730389827126152190322139258452790762337678460331510650868186458739212032154551767691573338704676072609974177792125026571152856829135613357895179037472114224894926508348890719880783960885697416013817973302373845824103802311892857125185144818975651553250365951514253304403457162443004972791874209101092230623175264777628823431788693132847528395644915026910563154645947771256684153276027909938625809779453902468042845988533800986804409508028067423912505549139290089833132346872199586844181293367462904640580934839398459200017796224794704819682315406627151545731170866322244504723848486841230755090041548712302802748433131260438353362939279495691326450313841018202234294944785538321670293493128255014662198050610924625916462809482061287454670495991554295611151656086013722060669399762841586050105827207189169802461227247380624829969529191346533173854332317073036744251489672454016300022520474670494404992919074805912788762477305115827773263137600427871406845587272515073024071336976615946358566655176431986992783121084043410958036216602538164915608205821840642640369108774681987910684956000294673296182527645575912602707511172567102960994207355792235106090161651979861231024583122281988624871501982600489284574779456146323601961760220302258983677295080931812751243340556029083435966721274151747403468917035035939803880119535170605802653751503935209489482491917623841942413062545804790382055494319836325695732425917003107169455287370365544382450757787673715715598793077709086484642847435223286242672335943546852038867335736100453905076795280199873405495825977417616732694455987897309071402752199210966885318956570851280455316686671755223167685847841080331455079250795799720842402229565662838108049990879287077167698921321688268043149903212069262917016279659098296663546591220742739839373522124184265246502082895579869455800675498651154927461942764440138289002145741450796682565831286359173013409210593041194366398878210849562922267344385145359279207126742407067751100955342380098780476046736116191729949712908051554539668996696560859914726457439368720028320185654593880485160162231708728629269623574070751284533129134236070691407524165127386638851935035066347677461266738046065687057717940651809220003750504565428013642469090353514637178540355725955693404108422635593436524708741841961407747449916267622632396251799832665269944113219144043766773065243035589647350545725764472551937440212052245694023990073308468641472726411350639085602220291049035437029436996154051251466716233809766770117287505326685358002557555760109821874326480007940647852545241150955665218545389793231535768420790226627683447935716046876382468090550196673872651441568601655380827545618006146164020989579640075131023556076208582149329338210855426973789821347612711941808710109031407951873296695131235868632534754251473768096105571122127506586311509278932054741483177825370012459688141418200508482509830747245636509173862097803721367296940610452335678181651113560235941159878612074921532765686592974581726156910588830936717483405908259208123538086792932978466222657987090092424756901244204336389184553432132697918277446386831209722798454563135002028012518000354839674468871301004226632260391879530862901149275499582989044877300931327510354591480469969728455409422243567269411166318212725705876971842472814121961132609884774791882543666533286143177213892503522287587707517716490097827967383082837879522654647198396508813589515567125152497866287608214194873691143728614201447909926802641517282116381053261097108709452858865137501442055095871704900080349134788190552599993627411627346757539933003535967086207273570992819080155832797225386802992322273531516903240846651710476057505569019943833133274926886258486036115724183807959122850281483160202913849456281790881906671294842453473264987819294411345692236728692407449207970703682013771665778222049256539581920607402237338319939866722180097098518271981929418207132036645763006323633679438767446823599281874429518143286777072997657255559715610389110432457549449229774599369586531329843600087969979849874370855838814058763096847326590905528303425192555368992268706527546014756117471366512877006862878781729707697866771710349973857186235263289667307273815523449250385437934255511895902600323962911373909845144218215049730847209794316991912916830938904060819082568015658727804066538231630286307214321031761283353926116546926527313338480938268379998069477687312546306140192082732806239570504519137306182559044216697361564699877461652869041859585560816978719364400737621174100577262102384952732779827004478629169070897726291124538294672829270413949522155199593358802779786681500147020614288717764887843607391334230357008082013659373412344583228235422672166181298854366322247349291608328766124935130005703934262296553880823705365095152472402753954971769166062758308325272297863589840813665648619282737592938422219211789918856786759646914761967518438898820505966361508235639368248021277976700997070800274535522508684717141142578362575488760736165216808252149797342920384693715567317620533535092999023303791020375587415213168141068301955622371837756550714327751963047485697533617824883378071971063342903639651178210907733286893099328822806710031806484394288300069616096169055468484406927424358033031490778096169671853288991667980460601049170210639086075471668642754729969997821524329005863033187486740366036457898577447238824612336760601268418556090440667412569612862253027241458609261061466436784080876654410503712906668842265528298829436312572206017086980688390401868839081433291815487572948684633515514526052962283063933462128363413192101141789145762905087912255749129327865779675500083406885915413908991332904463608508881643588432611790609115187327741620703034347339176864489199212560690264848230217374080770284900546432284664910515487273847073303593809810332671809714166309458774252772074210025000523325296601366858110695096294879588078456488409317880837279696026749117178431747994735948014399911376629236089861998277792387342524847861711087764633203247266170390716325074152838020215304447624029642300765663896113837404867331640772267268598022544310430241669212150558472799267339764901707327174594692013756253618832182408887459102346428428209454270421775758813813111808019508100192633424846289234522330586297526978502931447401075344481613074074679499794230592352296200533110938423462071183424939670092424930975653195094786320588369451059115035948905910629301211191648243189318099151006272224117821478695223677330548801078419402229121650613952267798177548346147339585742017755373278075635792832501994883514441819699224287000348686582263316597116011846450506904927340483520817806440218492618716848809376057598311608947185241425238041591560462425517133910000609621286353326853477506983274124103234891606877917219767518242886985778218700978077765932697862817617904173728001465451147569391437796561098303330166099823983169703816680901261384141312484376304572320905072463867867878092838700697004523313241689467477469697426383875510186770240777969116227046816637772193252690915671769211834433361018542630875022731626480772302036846230994276585494291832082514735733596106569908461916873501059982836137869762208159085873929179447055394365675112814613249539976684330434618922186798581842028081549119397515754704583156393043624329376283374706884627778293963515577583287788141338186016282425714467458516737752965681093772382228983157150717184598263801082669623533702652345706401956459517318493908326574352437369039169658747285795995577203924232655140215338152583615225405583486602858352618061572142387390730155575951342084870158141219035606131939129587541545282504499521738628952120402114753902735863896328260049136281261493391107770807279133726936418946317849200477996372101700820401259388456509335843967341345974171633818185134793768451029892970950205205654415073281353560376698916467551885932320329337937624694871452001242938417761185087058589452710080470738877075218733171725301398401681049956006064089270660861731393754311610620826618277659777013147939736947703608011373160862342854153735576242143673941909664338471122903589282571578240154616268612894869061106688058234823525184781840646229899468975516597558908749717326427374643783954559365487795454093838068231319528061874266018849261765278446838651222503275640202395986106450623128292415967247138626690680423339933505792450871070802571422391315156347833359885537378916642563788200474662571812077793069362140052923547706012035503818701657303779910138908978625480140537363010507378385840564862837332547872451016351684789837917435671888795389586618531412547875414287463620207923789851999881530804494458446831475413459810916609489711281272229570425590642535911076219822353299985072093035565091040454416780947550560336006849637770515452951057827011884634632139156690389703181845744289254923040012884823630508456435744989337931330227147699591313956682116586005987795650956053320443545959804320395345562577216356352978217702470363355142502564567015404073497862364097950152447745961921352673784797456364624261669401615040004303032675792470446449723119012436799347700903816244600085641737513936055616074786059414097538084760714813707414910466542285602353334620402788941130292065571046263810065221866214824088874355317651988301576351038019741345136954800487956187936803334204218781178167431481654620328366882300509665717889499263471710860798549541139611252394659150775912507398849872814686596185708960341148491966229104067910425441817545262457198739997734992784748914318119677171545358109623368860943908882420463046900452413518996829714499807370247710493380254804482177001606697155101448359437894000923573307873438473089016589419828704977034345243112826470273727067957683456101944841432762067238773122501657119717705341475828907627119980293121946100360050896569811911481908842664708590552400573920793633771478970449234672032345997197970620123946107760345320372164787948049038870457139535088762153840918730408938785342664863265186588703236160360269558928585576114123042860837761165530769814239446583841473405384144548639945615670465811201093884350125335665891619940455333632194530031007906347111406404105750339512463349474794102541847156846330946818479299593398898509271101220568210605509336464132756760694363390617719524543777575456449909844883562011026938636785947291850609375107146752471278417588151142686326150956453977967384483876685705610048423540434781651998712090005027285084407343879196161423680369898665166016128221326674257954440548706444787870889058261351965847034800638295856783159855792251716727222936408337220674805712827442797141189768690632935029058837039483979536192963075398993078092954646027289313105361444175992581700024779716959726484928135667861683043751861127470433052350905589452269823264765103537841509026486374576146058460873425941057056988463146301344900745170835659211577914084714203997405982397655425502838952335937514060100626900005252627519044422822794403320984549475281199811796781468466962707214280334919984551796539435634630496212327456684995118027089447527914269551138907903971550910216958448897541914655552124445591419754811782298329276349021460691032345867206601154716065245775574141066840399989311972847156033102401323802042314782596179844522964106408651119863061066962437734938907055543403991332917003779472425657498097430047710561272278558498323196387238314850331880412628708750746918219242989777547290176049498336108311958445576770282823917185950034307061952414472487045928977566806293736536560857701766654888939729838332909648489471837267071381956700404231137005932090464719132800280372306974868897359305627204696263192065627079021155987009146276707989413057016504789453677427665232748728461268675264038858772188932524701355971568597537518790371211355649544735742251978352556465318372825382340876873090024981372084070991788372657967504363967756646340562211273020654351317884377025756462361506765034105753605118409199116618927760682762846620117038264486580113045878387235726774987501994260444317606011284021701652665046611128266747424217857334814017222398686869314144745215768112467493732019715844491952107853159303641830321155648595215381248070677506570297989738057842575819611740159128162497303480580174847663237646939242379297082675966441577974911715055524064648751501696675548967246681636140973799492463882674724580538369583478491799783136837207858868144548925708270709331406460325632755780634658323908823160982477295771832924093170411828654823981553366060345550665660544076075214709338265940808127668699320405398737503467476236889587059128935267246347777760569789949838231308337249023236698178380218573043802313159599702462767380497255492202372896902177904702339272903968390285357482477712229171507816207427199910562857653710936093221196562175483846831779275777379627307975886748704915613893523812692144685535199513120033303561693911930567440488832796266138402872801253977238434790357782445893594465677070706124172657872741875974660261624003810359211762913955212407225112526212177482184613829901325652395762767912011004837921328909200150145855730986536738998723251249137999780884293256785599002679302879359662821777704779500756053576425612126222096251634713879851199608094115710059560659438846752535471648975347052772410051365786250502556717257873403742515720802722852406533228131965114091546873345460890275711585348598752692789063429806458531596248279863609729259306713106554527224814403795937083626162783006758731479086860187581920463650788344185161260814405919633247426230735464537267130248076182791977733202182106170575774684848958902632074900777595469502955152217552987671096785167571890675804669163823430577136812955867602540486145463388785138874908777390190143087486898691028066465445917129415401966078605317472945810449678982983691645506417049386325153898231767041761294728470878240389160431719624243607924119044500895487956979520597501354045359796425182930875212631001849046144037783537410595752437543978004304400053936833780739070240149213772486465705222875351045225864862895718916742412282166157789436796073381942279590489761549904589606270556680311503715342287480845199374505173352992433851713459223653850664397820292900490617673183194541309147379227764853516002353540375246543371659515292502212444915950649405333816106539281153245147204212840803200430554358181690625002503888302964968215674936236638482685812299739847428798819671862194680175887892854950775924169422589539852755788667054859060195824424229098895753795043886970984261504262996233680578026531520035911162613612091110874399502665728680160923369575863651115974367699475232634604019238847267384360653411400053735348609302560302733110750495493711391911981280811572170217090504657289607572647123213090445319220754988374843485290076710300127096743022992093348409435799140375911825152990925107780109054384087544925934427290899727592900512469140791396041696441236320911685691375303042505235354462151187809473267892636690643843084561867277866348610624915544577874035549440965508528817583539660303560759926202816090863522996352120670673261549199920920685234795823081154574415479750631802829945489801388995792179092315159836866091486895321790457105617026643094286588934149442486625137814431850986809786533968520026196825356221894852978079574573132992670561377151136341321690186860539645698173894549298041139676195577711149855312832318248811815085827727030375203433076970561400001711980116355208780266430144843557928480141959042952564624145124830545834884150796079849301757408245929601054524816573941837238166323246410036513232496760941435106903584405735391470286903883058084137041397979999404113792587135161121489469931390802732308561747076345214168208674145055607082972588745966414572684523991608058857318651540925831782882727631208002076744487882146617802968129209135870915014254227863726733946736642988065500046414587190893815189207062659780916694830434863824233672576315384747013629261157399622001647894336194120321895176623294125948114762465863722847471674130093995822462479574714395387136752060465295119974671019199686629944247894302386617326690697902169576921087601279949455986616704384168755966650444601234438916436622556260080640112506271355080211860546806200666114965056018926798627873024686815402854134214547981992241624732730183285325084385529607564033679024051474475508730792689687554611205715579521029438341858616940630081316794279363059306045380099065209163708017803011235566355624926760368991209642047714294622164326396480745761002933430730067952818394817086674169992142253684116230946479677677480521157899639761081347885911857966569356710706584564006621036295921142426024784381723108975181431703908758884609875023718953352678115906777455710352871710825475025915510917501046444903553255192818315869583575922549184523528918901813284163276762390070809121169797350087791581613814531984350580612380910533748565199209189892956749739709607445674262913347150763230227705394763883733737016640636285264969283131981260971166852437716328380681260400071524993953958182360680933389725924785081573325850371037669411043756158999323652932863901431264232167146951559565398811692578145573427188784785698452080271704774041285325975084446213510918223398542011328625871955861612115208695430271471213050678958672947328176504580174087263264302756435428598773009451021657874059162589500128118267279881856531552231006123396037943890928107418895276812912088379567879186960840423323463038811266639804040132105985894770169176253603226982539322969121999708646912038335037856667838205882687077263443717255266060762431882333623499047435785726696704774295743063405637913942758754939998035575977020103397300317670061760703087303640836945196872697672051447489188975959698861741224328551787681767428089370046869928232774312176283477913381453411553735227005670637627423858419397742473445424986887164687610043145716280020513715006304523813468512481927018175959035691764572117451019190154980061611120408726081911973467360726498457620725820389801985106575565520906615532968450601296656123850088131744725800470329526257410812192094676356210755203210446082254372601122065651542155290680950360174875929007037314974516228729454781699905788601225023868971725815049163284806329640235991614245849644989559287310477038191167908678576266534770620762784806389451742764384125058429284942046081730678693324580620732219600025816760603082796981675065562541354833901268704392314614759709755335367892094923643891840331514060394272172775906240303516931954465703508275575405169784553317258396822697179822980027874084038587137846153276722665324237168929885834757947162543285344779673850134373054979485566226420356155481365679194862372849891892932750667675613216058196292021994558764576367046961393849997878216581226634117279276023852580472643269692192756187772940492850715851813998950000181688304512262670508911026663557636703690180514085472558649069198484977967364607790736000530758552954232264903799741331984221840204688930857005853209224756513114793437504535830560952355658361989997899565445308629331920674894898515649634423989560600434495719098113169724928869291809113593203220756409032522288640620099602462422723365003534260934742449209918642721388635140656866616268926581926064159092674427865371722171989802238237176956177843196833913051608085154685175886290668728923203156053836281363514264350400007419722905490691301748129963612012468572306589959827515226191514291524309071299596223110225408904097578603922820183088076270956292126211223511501088519154955208051288353921403125979556214121368146707182978020473338489312902131002578130018417641777927845975051059818850608283949633734757839742557334730439128833069834870942622979529671445856959585033277546939954365583356186312188703034700517381580877833554881352900292047927445967356968232854445504090091887608601786507053511073539250192335997981863941019514970435237087167818862243207360940735370669594779028859299775135539192110041150963251262904419990639949806002565926828468598428792148911937725970926002043891200022378883996357882111404723035171853093863913667180027296689014436498503471575946056521733356038219272776899569753735093327160525019947430771391312866307616996408147057815424905021468928390065575591564348060057259505522576942897106577735478014953299984939312987400704704038939890284968548961864423185602631549092769888573124320382251810040092365343772515863187648973573306607051629085368856940140995901326611611285554786065376289590080745691945994974682109867463758142760698604640504567790575998491455921118515265736217246523063753401061505156449306689946730751407301742885405565637680766610684580746650330694218025246976665084929002513454515345577825232588712763493509684995679133385273213476653819474372264890266805609811329705942245374639817690835576739351207629547014727044966736062280114209697673737873701643704837031598983188374513026064794304949373923591525700778834007354187234104423756585705583569911203057169982515062169683646912873487483832586087458122870141297422784953299275442530563795128765232250591379455823053542296616089964536497230575267815734339814281321599368257585243839082656642816544851770334018792258706005279353329523990133733760930143026273162824600929251536046754887330803249840578386734490885286741601325041956212881886145952877311077059585880589860917305124385333122209402221518257159142005984513671734387023153297378084596565804189666972333675281852768162954093333634774719998362544239601244698453237088600830849573403723082474952091271205291233911171782815549463969904710985894834937990430892279608792397365153559470167854269378483357284594786095042909809455254658496574247043771399331927986023330981995856450537312187847039147486303242583867882702166028236042985146971660810338063696070393577847633666127946646806110145782528083993335714056262195285999449533195977007763715348717808997090787814709969006947669075515098612711208005786761402148864392365433536015830792022587627176137312543688201997883968169775876601537505614121013811952871354261114126099578171114378261631876100981090864463484294693984972861473355507522504534925461503573258540940886023039235550941954797569712836160717944733267468478272075890604394003325221160553310173185628223228650494969752875864909306619231535240619577624118025484907188882670956691565093028828240304683856218182616140090816974804772197216531249892001713354942366188206632846058180232273744561491882921279677146883505154985108892893962945054377460862806232042616722063366942657993576211194036652962582862352778283452421408911695881392463905476961281404836747710607696897366104895666504352825537380162201963863832927019629430885943377740029756206463475785231004371796761125467537701461705873329967600906275031583783131256504554152459420918690108874848439775520307717980906173023569982992764762674395093145222562380442737708431296991053868924206769243005036742636021270455669096136183478702814724576397986762528587362474288792661540095141185678408016256228856147871753165614035262005883890664283443887291268359982788254843118270480073996680366274803222713548918229016484673528911119509594675565315526625565518456965830248445746407888125700342109180353513509211129228400967895479645658024293042898852895121072848267283125925503706126953107350914169181465426462288679178683602251075333373146441508453529542418975965182780983410695141553834237734478142464918669529861072312429236529627895341243588014341967988263551808187546366095418441776187041208292734873750240839335285925928560373827885277251700358080477170325394782680824696093296867853149261559518891336686607840831584578314231994391342436121463457828032512464644934950748751833814619214256684872726166477193951507415549567122493826578674694226825625646865585776079074323201613554706717248926716409133008530880981089577072592787811091229832321156607643050481622086941656079653308670503350404704882554920558744465663281382359923636843869905364188067847660876256545981218737313684525780726219743673374402388169385390538087453777347427228085352559691717145845604789617929722475083708172317915498867670325298146351299430082996194699083279052466634205910000103407342798138217085880993032665609027067539535055796858906839238813876390239267223805213356490413316115532579812917966690190143443110239204264703786732167278318776762030090082183467103623871190417587407738859510822953955126626910027384264792779669673795586231350517581018441903798315519328112829660748769856800593998516369857387629290456897363244228272577639915047693520076271396866713547671623055741457494504241427932881464348364997973909016951140309802605711186823228552699232060286726610612433003881034157418695966049128984494716325020450694180037628070376667890850179473524245129339366948982023630453186794096433753445695773998178386578441212520435894443978692940989558876904399388682682095584978376073401739333149313739524317714906066540811467854779203531910567076830164126085762183636537608143042824420114611789716900986873389426180994887090068681168638448821903720259193081498782523125332188425517701168403537891006097608392222319289431130623890949812436253847434799013799595665501079601246575289585572065470623086486931417797418161327321140092962211261390995823801790606541621425776072410432352722005482848674529765561632453388855769388821401308532632822576792137241870121702409041910212535158625983171833142617590795416459165077994469259762095955141140442988366161653432086740879700529636234255841718234938983076685080439802646339831383645604512320507172840781951356969636746719057144799032198317906864019698078423944511185571353225745538435942970401833890989465875669032491418983354555395156840439108921523511183960670310902254558577714677751283774500113627383789107791327709342992652136809849304040601035629682578601678458554116641545335730069378186892324165110313788043419339029330245028090179051927176822801770307283363369428701815703965773155780686431247077388345379845119876036261450400211221287996028870121597004108231097231353960832114106471963197532739678294308015918184864964594400677919208519487189281901714995323652453329983092703194080644123999182323418895021485902900021510015155784660760846722455002270933588955171544853722916531656067045337446261486987136446444489823246570765745198223646138313718097347015196143240079838619034109794173477459648810998947147432081713975774984077820723303626331675888011216811879810776950302056092831115901284702808088221833072365006999636507161881974249988586068321927827902970530753900205029326149295458169689311621372347551054873987274676417685561634641719344432794468484757031437830677019329849356464962433562600771225129850741191425769596857882623630963615757084474665671054202409639804189597257275770276572803971228112487025142355384443040925112348382553316965293975390509923318196267543644798443653758665922609292048429689475236233524701588483297610690877557627675326818110240429677372380950348715892793732985058630708400321371416345468179199613194939336659753584595123739037778199171925072551549684091168408339029186543308295573181907250515721188865525357120198132595308557384237454165014193480040114213513173460674384084723347917208876578376152044587714278859957955415739575131661547742813620719840496727577831727705868332201181230395100333230777951158966533828153304369390965941923129137276218474005995785810900943063263513645648639066463158019583787849183841053297579602284463900542099575986950952951006265520872851109875432915309211255151224070904986462488183559692882987619275701852624406834880092397581648966747344131962975039130861631020292215828441405590084320282282045006112251916347991794913621164736059802637549051651217202423621445170373679860702656523130953921141346545204760952286073263881461075886445704263118492567121192193729167147589186093517868505022518250536418735058876686149223743452169248103757170943647107876518082154506927309730958640134057927413882223985375027377723603045211824781352374611884529155391896487811862547694596310879283238902875555074718145190168581098781795125509086711925663875954946065697661942934649124381719624034629831058177426014960971333489758729647404410050278908946153537539455106693463064856141278414070076911643856704610704999155026374753126501884882043041284589617767042330439928870250289138444721693479673248145372137907038000165287391461224267867082390909500477353125997715702595987741021098237692926064020334699339428322383214082923070480498631849745611958297558904505266464703979045790003729745426827127322442109456634276513546646058692360113732366297223800176035232544350096930721985024398966026565688634875607994403538335611313165802220966905830005038832188123458885487978113730749468046556693842749641786287931271147486530930796711049821381898280867497341679041606147624538433661809186278835368860775097780610389199198571993047732603197801476583697531718445693044430893947146771232844701744457264166646302799407707548897015877795336156208211958150025869857555105439821810227083243281830422282880174681379129535164030669698929415257391814984067163827326138140472141442208637279115627954372202217706632641921319690226014787062429835052822818986967961392549292499000566733657018166987287649697815675172346310419559960597065471447077592097886744525030884121670343406079984188606088402473260319646864498455556505172071909031295506738620093106304665225643957131509255604438291374845821536908978410067379039655400131616757375548863853638133618733018551057273372544594376315217993410860914147914109459359867388993899510771926793744489932981162655020950166202359425861819829410488922878010599504206726814035861307253979425407675204081168281909456327393560368000101236047996141436514012044959299256560376786142557621071474535504517664180474665342518850161495817707943384035082271376086043406129981092058577268099886900116337664990898720929005754743832115755200549488162147595893040870779849829646885866317645316439651212941597702897939713130419850200991934177307359582275164669441381199517516671018343463140422366978751217547085209064812560563751058875290240932885876289281785237013305155793222024882046232351815490992626957024405623630046173235593002467543356258672492351759400731515375284551321946836843541590730192076302283464726355964561966522243919493588880752505553040538459779345842942533912626932117210809574324822170631738041398084771564574420737605378193785995591174095590473648136642929318531139593845627946527254301014084164111333920810318073552561979548155675361152758748216411791257185307201801439112648264694785692123935766269255923986558143805520388495241606002974006857174106432519680852389151868574226141544975624070328548653143659649996010962393337650168132298617742564964224105140346654026241365854841179485815794417452305406497010592523549361845852594620778955285550947314397158925517148041357819804592081031884200552523423309840934934656015927400942886011366253176876976889982624938545173702511002350302709828335282973868045399773434990766410643965097645816968413195054413776604752377122522950536525119086356058838034200679810218401774002634921429322514961332465311682882504110652234742862793229351036131234880724414530370037425752513903720294781783126465973845583743529532770792502806946711978820613166975087485316864077077337505412625327235730199733862605680044606735564924101347822001673132757870332268535898335979768498390339141193653985793795956141306447108162865574071593372304877998428253773719073956313204261277368746736995920725093621854468727416726554025934611576919418063820005220943304048036526381827205357047900792937121970616807027328281542712716177293880771650184089604356289358932259655981841908165228625237730182405073552969427200093687325935995862829693196484188053494120044030898320215517412648081866372137823264201180740897632895526796479428476749005654170846137181421311578498597101269491261857819854560875158367527417678369920454518227200807947014493941430002523253437509959938234700921658462755848569033515340997723427233284436061378952488551907293418799508366739758788599496805231285339123359747686890175054056167839257558059768716404074286050409490756551702467202181701690467157990249717834168606924205085811545406431276495311588248686319502599511367676334722066597252916215095635032379375715599227769498584323723118537182402451584178639586553501917143986910877003466244763447217329202272771983667668150471089864326970115487594521583898882665105212152663967016661163613600895306724003572947809162743247995551055803473713002384237115042968437320035962159124633185506368755397640378940380143814473495936062729158105821941390648462601155427066357009197904077348038154881115186866701130623514236346307824438424283388292148972425458672800040421778774013841123573274369353917569266810913727085217511253974461970337085705534165715685592417532736904416641807237927489660624443348016466164897849937270005822379649061522331524616969633210640196714119054548370102808705488747474774139892975937868464773819758130919609259992916008491577307677961912761619029050990727059268119365071238196076526259896646889229545231748250328882115834315423809950563310508155571720554160553200130343575985690226371101345276077042127923203736051407264829873453307331207652010195695942080027655813979447877403222223081050958901399308289530958564982673335137375261499394046651783711171112978863490756622498938919022108847722290273769717104918164537384715759280920917874459070563701677499102757709903964999827743858147244802619358129982070030558700617102718616730357745587300468610918484175808530200748327055891827224134331221525285625503894040482572833466220358525717706117804516416941117960354431438004098185183992663150388614020028009285904037401689721685295186563709172658285824313991150569051934425299423788583550260934397300069638507092815482357971815067696008838362617959171761488185151566643709084972048167323044700472376535614784609559960065863437039575170287587784409776857189884408289984432755526448678360834179003063407953724884118410938001547372223665942131608672841270524830021323493395495219659105430523992290959705504399223250081691567228183187257085518362413231087669505441768070356327570372162232803568842442513570161298990091999945473801298091855948954042906171099928896725856743856183368394078075405111930025752803262552282820701866646433834764452335032129562972185048235982737643689777449928005858228029213636565486189708755122752626012620561034350075149004282473183057063505991812283366557932706853275407088928740032808708512513495411140259391896962500370948512572595178898208662259727241822444115315353896027743276279818560604519437631234807528497136324235241063072471966664089054574641467161816146470764534093766847047343538931243465564933653570337923293527436667056624636157774840835854681983624283853101287967699181837828028106025566271854610491147381433391121257754839028332552457907484767314199888666190560015313481742829106660767287846606704687578956597061683104469763627854218513917374467186111284175309684494805521770986086685763078260599823993399501487335741057548358344951636416758118407656327669755117726576565159689461052991169539408272239062993283050273874949828415666147970770881288270035886213668771506964700252971837732488555427041714633562908864450772292708951625554781677966103147124296881046761117100943232264315975172560064036220411069606617475871689583806629938218365422136094984039665097733319882138720962487325153115196103276247274795371103192704595945705828805043066359915439785141144455237114266220337974519421456545861157520680688855370187417838010275545187608422347276652633810234939801614586661910614845739016597082404427926296113579372189743579135840406648877961046171474837427808876025014918700673838435882476138399742749017258594286911233934308995963031397424895047249145577684118194643232259011181428313001093519408961085393928410437549497715634157618059383061291391862677164597364854586387076743086936001454865787310638369843048315310889649898928722438386352357683395325539973920692794940075332042509960539727049075749269784247000699241633872523856499548078896929751742798499885554206193652368596104093841538297956925705653457060756549160091124853408112656142998004517222774043639141030484668818765636612103402704792448248466779516236160120211972616596764290451203706065612654816067823538552029227890874680227649531824439559004118702359896444097978795683304465330076961587466488577708645138296711006671044962217586344978688284810025771372774720961068095894405856347731762852356212468096080296216531114222432750877296627745009871248955181392059624245792459577901477603405840625551995383307121075097456802500566245659056985700076163164857564787907448616598637030902590648253388796543192431515193762249240344495632892920673949733452705624613066216228328492223965264041968898475907172144805776036585991194529538716369159869631108934952264242812248025753357273819678025219068186408044909429895149218896736685579105702379061857918896607115436226551788227612642956021986801480581436712332313508281620843437078394415371696383129513633463364591620792673543522361220524230270702006225036726526517964812323100641015461270096234530261625733968987513129780635032953844005790092856688823072469751158122790331039798580826619085705936210403983150448682908283690258255955542687890773558828481865563125761215404946564615186149138309539681968604682162711566408890333517725724934759765146197007234497471039210588497449894228054665303071106273562554841631111408830156884747966089851984692910849647579547491066376635955249990709412481314449114014585569767839084659830192849454272517184980865858247950509766573167013962540910397357783219602699727184752997605444787910156275509955874854786811929070765155470337047719183028304271326584948252485891333159982671697536614276365350015604758251089224818412115965116103538268473763329964332395774088340958371707067714637096657740777861107886750392381486481358134267179219755038062760940853093854909574424288696732850967505496886976813917256410955032722117938531162941767037344278970479756333696991335993490163406092675244208880542466191657900819516654510603338449234664425876591261274447121570039768863033030331142632610729167891841988378245438342040949759968737357771032411462664286053999137008821219753793126143728351072156621194466801948233973778671528869859964154848300621196296162828908078195675105411209606396492695150461639388511256009246903306508822830300165070955622657859959264048047253710361251142027376433644895174541785100018239740912081759349106943761650140369002230531914368102576762858622671379521144882482488211271487508469937769331778232678916993136925887630349520582861381885968354510847640467249310230807383176826722714306815896169849401492474049399475514723578968926565115968184985329508364620693703421420077432459971805509449145434149237769972714297900015054531748066025248247212048949496338360374644855802004172073444331378648197585781636801030982171578843311601850817367736725028657283166277376270006791186036109485022213500045517012966974773369741106719639192887126698507942005546795412339200814809590431156345008664287574821866606299536541765307577966727499522728297405404788838164639956692533402636851500401381996296115060318025708311869857535547505060607080649028655528280506237454407103143214213083545224098320237159906131727945124259536241120580254272203613771464636034068892278987475524064089251711376492094761316378296767195583189074244872941161006720573242515470058444467068507003630608197814705397063284709770579507736813823032391274411040242652576036739360874225690816378480561258087347858815386741569365655609292298457925084972325441666016553481472753042401429836568910496693587530911306961210838849506983777746559700756649215667870908881527729973615444178350900820594773238580762017796650138479007268334274740681644950120623144868935834429454265725324848068135250922261038124707715133566471684097404378817275774163582835988147317499615029864155511839882805245466101275214815609062031783335136771889773719615999556131118508329749646119607155135183438876186771436172241825634313406967627137234497075724801988029665732928675004679418069821633902695898548795837648438387404104467630527931635648119847113030045852442021498660830453523005767551471681169837834528072013432977539687823360341250471513471074989706484674850299020912980807997485495947073244256004131414615031400267508220717635185357839883647894733108435334589557471711324764111020380286646230210401016428553573371261792202565113229051264102278950090971935135667154935696999117273909285515379030504428051799255550561752668905181672343642607020457589556332712329780229515819097221332641882566704337803604806236715456279309972596100559747223293619767406971371734220791691646040008741134846050753052033398291996122759741641802136854741681643609758699225079678536388951718527441028390585942274887176484744923094310542629278474370343029736638437987190134757302480079090374325571748012426270165101151156067842959380317538078925993392816680877247139671627801925275752870912341274448524695041097739836935527866158019178697013473345644820784502345442301748820487328314121731213037391336616920036596658300556648468123874185277685365843442627083351815363892185993536739889349793660989400517448894688648512417284577231350263789007058592151383040912555439949228896039601868328540180665629395580885876985828982083662315620405392700244434553738283803190478016269539858850081216771444224529620279668887919761698092590085797971375622978935618829959667688040817502561995474970169686476970702997375797416138940356819042811162337786517907683844712654659076224179566360721466621364347300470796892767775715656691437992120304209770360815339869567816253079838767484922078823624144959734852876116616268016181700566374009234780876488992936100312371697157668761178082292380313431894028104859369775629702896383543243039025159049967784683352839272077656805293937871724605895478560666884610425946910465096986330320805487555398473261956443361709179666659668025301293205241802294047787678518295709023223890522905448161756112231266325499870405345091366782852908818576773014507397048235507216563811155043076563071505171072901220706954797511496092191991834359810189322365612429792639688744664284243851655853462621398174028485722921508805355187190921986614854857761137836939209877689900670824015212996192262612842153631480795499621101047854258616939450384559889089754264205712352596014480129446010839965948255412645789583939720717588325699161460929829040538298079046183956238728089782202708868839858924042708954258120931541064584284400866230199650824653251855038223472051438381416520883885675636165646059238900079192860107462608832162963358808679862947606815594943783871836258960814557337182432255754005290327474358775028992815379297225815996347215571537860700882882270668677194777301795343695235995688143212652841794398435707487461692075102513958231299967830208941591036183041119602866955904833619537036261831994161012025894536575966139608935526457714079222345450716203395557040581085126597936728784876958937010979442752302808455041641430725965042355272681833424230893006647599129530116979818336514509276223726307086455206357814396795870091315261116454060760410711646453061467262290725867747344947293969726079400667083579052398702634095174978400378089264097588645459627718133439927105632160802802377972913413326409414337232424451754668179633604011883443851889947082692839215248871925795696601038961861622769644897616749914938528226405236546130711044004068819230106398888597268840395650838976521617542488509331472359006788256712911821824529547626039909274420731342518994561919213135034867847090270891023617892316461060292908384184491816278218380454370909886806193061563238824337078631758346140122037609462107122662599577443084606768371297533723433233114596666349494366595875399594284025518114987024905736319795083789083534014139627545757760265230702154532999864921522774798013124114022351970713704381330325997631138858646862659366831779793778202030811497574940267183847089853517387143862728124637231372467153110961976399715529076000948524386257529414412783879402151704321526237072085400675390603723281142366731810247425836323692069461369878634567435802664040935199387994138344284865787420488286740936685417364273806756862706596716295787871922950476095906910769349558064888719263801820553084795147398572259242604934237564013930345533885675102535782680150771037228332146827997266499380762574163219971849405912366039137305670962342309467751528359373083956229817896487638413574919724311971447547174967128552411876902138465028807495660250592847184832779049485297389195113349564518011268659626820451813117467960856459341718306679785341622176120680257535668375745954692599799526065336161866704813391504182857453620540668972810751899304323293689195419197098968620440221872600893261780536995238504740609150977600917190007710271019994037391747471610334675430702049170287507151806508121413154625212399192562085409464575985413199811822842937335175550645131596746449674122899206247950612655118240446537940040587326132757152271738571690658655892268849629342963145059191719152976956277663053953419481863495480854481341979310146758274589015367928343221149400999534355014869000446796498686151410935482222088409871040200463826998154321247691664572292241321557722620523468944594101329537012385873276974735733400350827844478048106079265262420383819606232380340657818127510595935863924950043107910115491686613093796466629942429423483331322788884802761783305271106402717591272760278233725171467828416700964551638701559495541608827030947428296339236424615882903044226789214209918764421144956204668472480055268264021517444724135417526200819267902564802161843852052876777329889578691271851942174997223471523924659221578254959479515610464329999692421428939732309810666561452017870385332113921557290966255076024337230219680613163129493965433771429839430738990820198689036494792850851395887288619154400161713020144344646837551480942626522329666394530903792867451363005592336942987843979696304338378060162119011625789873849057985199363887570439894626375080445082703774439790382567233314282655075783767227655562231972393103185813364738351304774413006861578372256081962159864510513892585021689495943865203592012149398394730525127797813266074098632746333211461018051452266822244966039747408345663052460071739360479934907740447825623011777084714301120422526523262329817382169495625158883922019397603500435384976555168984533726855309913620887882533667657138812071686665825691473099124701976798163547579456162583012982833688903996379508383829343817941089257966358908268078794521679604831676351589803511931802858500559765965011032079379104637272424456470102183318843756345322580111811141525086152885788793969899150875816827699217141159109030058338409085173490508556638583812799835921238220443760644954391232797367611038779375056113415670676806983529416344029038166863055736045573000811044199632542415803345601689468652445612009308947163329648758975993872114614992651580127737291065586316111228666381396254983199638608757872947609115235860577735622818172123634459618558976721129442984127130609475008977672329186996411540603583452424757840301232066876239181090020744293156296731135778267781447865294066206641171586508982839697103152510125115174378833039929567594883070048507796519035950344395626253238677044609771173204176814134878665161163516891071299307776666171619156332165885506123387723062912395218662811015316674293710252613954815895674493420455511746419101348562605156741546137551314597647470394968553381667389456416076140272500293435854050081231463028496903629638654902504965456229828513946233099447933248905346602925371617097698042863345954224581364449127265778473225100038104641171872846205197223895968882884080689346578276796327191183949103220726937221662284461281585084797359752060607633695121559466000334347748898555977531377571122165017398989727624325929284857439330724456248352927450441352772001633524411555944415301587008332398941137458110251124580534794058367211892144975769593351458752304677376217061095561299155024572372978336189369962409531478491799259835771152536998168586662801886891294994587834525052589107664076440483592628872245604776977516461660893471984706234968448933427540903892889728998640884614619369657886192840102065071209277199466942440142514752707139452884366192489321731115619371510358415234409653513682560132099010246710756003510316307218322048121141971420011387359963777954359992856206138631189243567853995567487169823631820070560018161407579956013519891409551835493093815305131356826875857472336563783531294981684021924431858107347376463246423663558015647263098440911559433034445129263956339744993616765617956152361343503100966885427987793501755169828855934502021729627173206344461888918072474101988083647516301989775475172075499175601286545917284675902549941490391821259620106534580081575119472355286316315768953973615778143407733965596997886813615605840194339854319484009531126262029359390388830591854778638370842802333527624366674763112852437802131431826859377430821316681134018845545687500268680885874432096184571447917480276722592515492024969243288629217131075583819554562102929599892361548303220735511574076106158254103642783024304858938504118828148540154485937718700226297301277864576052978427391725113621111297676394372893926338942164378693338401481202176947523285940003470210397885501126573708921942204021524249821994513742148411235225612480021840883242314833997758135959205185109499817087098665683803267028260964687170589770004488729744623880111674680486641143336129785620470445393318201625669587734925799216166258395180792612083566792561826616168806435393702864474994135814376842715062866032497868558692185142092832386641653280509837718539529938557731569320873262525905344449526047905990118942476768934721257157512546154003190796447012833646215121701561963028795741113571177321339674273920488742461149446883248664729604380618974902925014068620207226365471644629175520858323490960382799384364084282461528575939754945945975689687063240748964509158862805262552574940257539101025910752648187712513021327834938707830318710496206263059979194543731041690967883987234146186966886482856923035394849663488251836186316901067529736547428680843139745734128308512792576463751291595495729250572368473740075844360341711152245741643375645211424546659984151217082355029462272395452599561641763763986451264250943828744250007708974665746644748852539176161478234238416453239343293724377585767589101562805534074669558499637141332024952901345552838817733081198087134541743104744115353288004953377798571509940282110993435897542097744100477087119740726990140646807403323655806726491418487064793314782106342459688453123638595787758737247754134066702858163483475565037770810914373064975640898090809234320310689330608944634096817943889933159492916153836830734921021288038380517228979298873073260701777275288692640859467518550518870832750937397728258087213147930850333229327924769116902284912701273474394933947545633229662065510425975040772309751409579964152879138476184938393190124666894540003317687041439203732591253945767827902768985291116488734791255730143611759370640478710955284960257535648172632908333879115605488300395410355771364474969138714124957096380888053082622238539934099817206521999796147869019839431590511840440323128509377329852146724057493297155352167756805785031325349549013013389005440615887147885775622373080113554867158721360843118565214442181752819408706029659436827110670570624723136835877506126434529315170604905403339759416931727375318729581126910796897455605274704898379143620772851336766235361558821134252830619679234252438370230157164955892667260275764185590779207784024787886091285591817222310680388628252042234789122744928436384679132696385351450964234132365827873959423718787273756042526109918156429543754678445447234524737914125210790573157600995468587139597169877459956527441739312679984759692538914493640081096854944150088566460311046205864492395781155806571012932771093068110070210378670637216949758007537609435348985154451459815593273337513442693527779359786278623814717970699414758986638933162193040717726634927469697175915458568866613688706573944168538278322352048631409091497470595666410367031160437420419054889068433684932409105216169728585798431364089904000590176016909461503967709950150623813539404595910652142105379588123383716489933869169984112620390778232838237803681108825840017419767910598100561562295253277528653089310785071644177659278451588151678769421488532352294873808981065364474459566399233108590460900901282401409628431956173287068584315285766237234300585600928517747376061111128480177484408637386202083133963856837352335471651954168778863249797616951862911271843381343850897838248078917597426411878687326813948044259587506251809729802278094556415731587741803193108667209362407735994522620626172276410019999713162119773298231216412989558473197343920404453200184256161870399660631238531022765557762931432307856539634035853377460011902973358503381786473787811825752336551556382105558035248083099080329128700557664101009186462662475041414418711994733513309801149788376113275418870734236084681173769357575347232296967412301411188970371969573395775685331852771476882498666079589520794505718894202714331152794764378101876826042805398325497084689086089275432312271428740646409837085492919333899659598576750938226667391400816706307264005561551929333880505028579650920231685447136411235354323188670755154269215357165195254820782460005725017880466985248098879022770132447682227242528806169020892189001528004420309511782695863111529859657753505162163661595780825233560252364806894139071507230457999793482134454408576192933794108357759919767354387847648725236859517599373207506504939146832139142124624003537178541796182003383921210697920193385599734563209669169533897796223663429927054785985608159572749288582814780037951259085787202799459654130748931038254113563555014255746624286955902358556364214581446238953500939182042948101217453292884648161199891294549608312345476170967644000549003162342785111697939837736941959558357538963678370006469090072123184412680318609671853488709365016758338374192541442876971975385197280802402673145518706197566839826878147031483776914781397554661055774171390219991109197921058379737005359253411781920603110538223621530699064130542679629572739832039160934206246100272659370742319122091476164026105713131890397283733978419194485756056737356111125776741898908203943912639936603796986747811552429301821388073426090846755864795447747056228194213262831459759877718743233090551831593263299003603168244420585276427479690505531536922266366376794494544647943480789375047866176712429980474107228208967221140300229346317331735458950932091008776276238440970366411405250170202960039351245526649027330905340346831588584116649517422081452566576072395243437786735985719746083086293716235335205957904389223600268555660758611365624441292458326696468914089586484718841457304228412251192264828080297076525792858589890088851427051251274685922648867663077118539618428163050740957119441590019737418253190412291404289818361279993374906686354554697254840686882410086030618411123105053769493091580814539520416730484068834593182814511322184219538601397310291438265902211154453150440381851816167074778745600587268658774847419314888653392146235602619193520511265324341058482854026861224201862927241229602998438156510322584431546514413931269393191005490938978195049520242289821536067009483640516803595113683275676700533330272119241456101167271783786001141933581578302206714042649216221507539320970601702830450199919001992649277516872433997698758425618018343499974011274602687269399217323410007117231588059880558379845791897909851970405324384767115382665686089188401363361998071745396155587253158797272401058216808906479954121393342125540920837106289859347199225589825926069946966545331408261586560311450362722916509414419901065760922946784042284866664599894598809024840716965828707251744900924929713354732649579048955584052812699677473196534817537057992296033034376721128406231097648775909710978537011217246339310031795476712201549260368069694117651271808282782077898032399780785580392345065814289347534166870532646235104926424025177709611166206765426201699009873122588216054391256763598349471864366135485555987924748319752145736113432539385025702615880676520166120375973133028723284163317684067425716040953907943843334601856302069681356760330502463934106333753558717951091844045186051299708540976506851896926143890948825881208966386391282436937126387931515730211725554053920517290791651262450310498436311176342848665573017468538972615039934530075059001251407722638098794496330650824388097105707255568640151763285320202545661907800523310122083101880363251444418729827945164568223248928288196219231481724990169776519944562068413527479690045726816362815496630070664401172665347427458667494397293161894522393172747300244303168339554550137200914539458387709592178804129816383939038323833751157409194797274465118738890890526078476734226755388516862566262968738690204046430385443677066690130887495352623457173189630316136391126929732534260098322839731354528039116293166451437153865128882658018878111268859637414315652025723568330813034502781034450004591445837973892498356915531164841011488444388878629638321209696619527432834504555491420117374451119906557240076364289447939245946335873445284159680518471231791505765705418380269423905621462038251425297786248219895368344053264118774074544879018308924072186568045197105318834158825347909591332507094037461302231980282302795445138828299494267622486880440836644833752764618699055687693594726499181957485561003198448398573901969491652988733199574048524561293065197732101515011300663242257193640757245031775202226318630554941352278737765464601159627800468993277403649408225656927743609788996236549510428011730136032083031178216201946737630819279936510258702308164681230554058243642991834843916823706086721364682334323293365744581145017456963161295953092745379382114311687173879376744268140282789797484501865829540743706739159826700696550437357866165447549535694073068647382194570144115301120588487940069788802457422449542438722438577877871157253620840173293959761113707701344956132315153546692135178771141468777626407853525605782449612060120853881531742177047474331617271089588769989334549634433070954879548216113351364143115075858947905666626420031537146264581719379762996158751728489120313444982901414647298827902433419852108995517465717357683141787468204528226089884898488861146427079133529607223948455975557528864270676409244180311281861498365320702086627272356757144760289799187956189392930368567726153460968505383236308516574499521072029177179408044892710144981136779041989622882462053944240627694298200725263559527846778870035830121922538845084123383130889760257695550861926185012874503578146080986757487188928465816366038836883232941337121253246942851350179039779318095508324747264640908505522125727064748466147685245408621988156955484735136958952354472724259262087480326359817098882052246882895468877293882020056250573483138047200383242449223806845969110625357138153740975288495857290245592651957635848753908838222367821826380671133949510607849469207391771927963605518704523130370918280857551112838515633074745936304324122935167939778950952178585630043857968214077825344250058752475780351376720528166072989632820793936015770722395608689501586327468386238620599560558943373748825817878233562571536645473869049795469906816879679907247491367949910103936130297885396445861150246475781356088467922244536504451736976376576284155324188838158510469430626141735491419520212081741783745494448099134702457575766092273373578490368933950396251715685570988787365257081104757924938594762393750138273085974133651559664682822671265298812401139876205858121619869985262008494574387147629979039542572784890197352220386888016590023017003086107924942149408571759773497751004837843640590755647520602269938850802399103646541208989264787872569790768305866417930216962536431198408206992100033672743223167364171395423424249915264441461764841903872941026785847818084906669153658234994042790696724093526010537840838201624476876357367755967920520041097879733933497083937958339135635423381935909828375264398628318210259176598199289283200271885298347543776920657030923657282189619094127599756742563685221267534942111319094702655311403217340643189819691785566883611233749104487083440512609738886209179824372418445537148061971763464882030535339364531394624605613062168656566625263985159735732661597051169814810535966405579954507486998749305194182488695250569711295626003403516179793606861122216479513959810907807182682863000775595055245576355295514613671664720590778088822792533568195322621385607323173527463202792876462042153928972853470753916537354616893237889554025815359705819182865527519460703585672953294348704425333753358511730449179148192142217485320860769936408001369410974031550758025877139039020467936763324526380702304173526193868622074751137249463142165621555031064873848700934179920056480637794038189275261450634998330447389489933642325419134234416264806710246349258259358669558294546903818836892595247210044169820862822533256200895844823104666080637748862998844322889727633647054047008455813897470822488838596509070396014878523305643193755519912921648438949935355175236748774806464139965293869016233525867365291059243128201246316705769095501155207085396459811958504255340145770598804810976846500662907599881594902785086720327873068327353953863565960460386064643110888655532454699891039761711032578224029533364547854736016921070399992869953391905719743243575284740148251708364251602249891498765643613203241300834096111982185006041609702837994950872674960531528608975457164131971152703495200612268470137110896065363979694263478321545482204041487153245460781667540301293008783804095213187706177808527811696581903910577923794615926115243049092331910050250247450234555666131574100208977111487738582415342854311619509661719999006947196510627256727059406776140348818399073085991348572548497422956806402043220135456230627145537065882151384309489729181577505027010965496394476375054639401047355767356785627806969666409831434566361451128938849159781178420432162257957311415028893786635250945242437065201427693420139358115714370316773013602708715408552799668194510958779971353362110306354957654881562781883718108097610103887476300648375029829813935780108470786498497905608916650276988977568369597628015424359237702707147311167179746183232229012516964496301786147183952916787033090927252438996752314025174412185514229817718772054888681683600449238683017898000159241345976251055647056476868911522407723579486397465251318334137024443568616725698115355964509304961482505946021975903022775602853869837523017432145922957488341138141335837016664936594893196932180278677613904601235226912220498362939794281863513443093460561931567139719630463133666008565876390571542516005042937177509873153594365758760075622945585888110418801664033909212164713293814264507506618470362603749972100476502569638066435377174437577709107651923203014462568077978452964064980492389411652565380115400629788253312915552645697438250629493448748183110328535822614508872494726614776728574340410752364434646863357468703590481453549490357670192672478271984126738125096411921994208398818594651901324711685429634727585825611516688539613959016072144225854739808675184915834634384249208887257169822380035926006029952364526366062547498157021058526983710151114043694749663970969340606569107200374392917937186699913227985404529544967970538381950698462415697496934624965094995671037825540030302181951691915737534855195587668034136014328997614462935794608015343854708924644499832645979135091778661324179888145996808873331819728736076104096902503675302350327369401908352939115046838521344724461554913274156962655272333203440727954144297079211793663172534773806509959255469763184078926370874724635889772730097438100997752665009577488956104759041475098674697012635588357569033269379735201574010592194351001069561326092427957960244885691788541727851331218080916917404531929479769824366905120882309606221649091027633199432805299138765599998984500658122562484988579214401649104912026866828169868501452736933979269174991441279769326361831274415694924649823989224953958426426028390630154110583137449480091826727049062539461096506731775605994503114181542375724533386748602516649114919364098291583182427351945926454914778546945693409170410933872172710617037926827041882366767968275478094851610409568713010440231726884429675167702917998083113272770077432554225037284396629039561476572552125797962021782421558264996361516783715936059529968238243927814826357605972752200340652689243544012085845762225100388635769193385380275829130344437174698507552827407183889868342673471949224533968027523562192467016262310535930541511902655978419751919207137341037303008342433706154707015494340232492961978561140793652650833642798171389671303893912402038184112702413226454234230817761150598916919777176611383897770885735347076637766970448430783864336465136127246946330727111509207829468914079299002759025079341243251370431683356989727608016181681230151947578063043429891073874143731958114348882257255455791815786445144781528677927781996776705637814419423652387213396027500719955566708639757324837387241803641834552967792513108136016159440210490791449979870723982190990599452543508174220333915980390080196820762914998186740395314249682717642115951477709859865667244628339459421138007271191483299593806968443219739150649130835288141749963095229956782057509246338819493725854693690796344057208500335993579181192691862140182103766869981402966792413345203924820777194226444342787108157606968603350965883780665915257435149242705076131032019473332935168941528955795904868625245729363623308332166987310254186842583244687527360703673751943883934472560645456434814912928427216325454764078558875298411061641532451416485240244976100716151329828786462720724129974168671071969024018616372642143487823271578508170371544587242006134959700512050229028633254848849773212525412124318222977755035388746820876858035605775708091627464619930778643525503703835851819276234117586149578558833583465874535935343847032437900872450827231106030003710083663038220939408691712938904980511502149246937484979114009321992712849520550618044547145615291045427084279475696334520893174936676753200420094762443527992795902623059717617502944365777049683295223248954053733858915916960014710271659676690922386881748475772858847317817224968702341958147393002633351474460389783068969139892023060631081920685059693581013351994651181217788064438593246558536767916307133783725483306519597122939961913406660153926943694137159204811532114108793120601884416392977839175199323172674462337774909843132182530817866403145507140579019491368651242217073431918675445489767285954573267692553137472704408661991058763063463617382362914859281874539098681009118679884962352944286515661185228919012626252678737443574403415160044757980571844545998382153233925856401170648560042504478979011046194933998621907944828191149218160210765247302927964461274001163898835686560550784932303319851601765039196554523823700122927435793710544598747846517328079657512634856087362808782337174424797894792742600223822902948796335844108958815970909677613594336274153957359984059216119239746951160538917798078277225560072403840179254604094471220885489771339396906552160782170160358934893600596434530386481949375962309586454198320787439581555495238244848424934135661131979537959755412276542578390221942004204881232217559436679977425058182618638715219570124667553832705580483393647969067974522867773234385551474843398264647176665691005871179739104363250028486583227420904927015374024972334116698934172152823510299413229202177890721931729358747583723304846887222067336142850533415873106322570410747433133982011589153307673080446303544680651712530370128590681429035222989658495978417581683107969226846400070491428428190344514435644968980056980748863083185882957681774507753308488709809816180276665652533343386597542658570763677651195653686173591096931126623400065376956966625034418760867816189005549847248190799498882333380594818673806555473382176182401030067562407141802881770082638122894415475659662811944808005763366084402469259522328245230300132615936908191773774244314681173786054107136041065731956126092007757707415957012749778334667337934027016448663504172316480397923282835374706565924530448178485933803925809668278962449709335915140711017451449421963367702730415271519732857457435409935920235766058392828559737074219418572679863690188473087786428484770126429704073581631990455692143784593944356312482085368562288935378670115225904960617121299728184921748777150008971381911520070025993172504348640228035534031090461780411500285106859999397539123325043361831106523630452605796748857088534181069405540913465987307682246983746649650922767799612092357787052037284957736821968229752941951876101541011574058587130908186759517204966112910328007146538046057466994673277718971397789308697644939797882625929070125379221870085594073699325485093909793091693154757413494189207483485493056734115509144493217955205744441479523706214645439881765249078137698137751430759464236398955104060361211179457864188904390865805339318414675716851364910817658219507508516495993568271575391003498720553015855360075963297380900336022690999943013806692792590253397927860819072148974510259749470693029081922819028854406763237021449708600885754249248452316747692099999424890202130327708619281568941562632094769572362592233697599271981633281288053193886477131066519886719356530009308368914163918067910542721024489642524247608800848657498442235559728613389897747592896909330275351259634459628645380779509291852034138897648478690998760444549252703126596690264724292994891269140154318121773091011123743430436290094924749574902634317813224404522981257637189367190762433600132249050192267955792449563372027151602564136046089265242066175093730309223739296511897985964706286041370796797016307757872907036128620674975968135711916147895775218805294997823808547944911142953193910666974931688750427176570233319412729675495004965541076170499450528286311743919671277219816887546681068153320911308547294636774916461000496596678595928083925675380630416461287955947050372419865012240177772829901202023292355967411684959680031884871708012259116445976183951457927789751719088151228543041951359696237721501081872639180992752367547122515747130847291782699042476656083767033015994122657972238928934693910285877778437934115804643952545864591133429389575274863603070254644785185816186245382008189597157460507672189853254353515414971007443949142926710037576180025135656446444159712126805128861281851953521491146388299293043672810597359002397850470935755498252085407472255497867488359504030891464616685164172825765509115575132669492040841856738607160922628750147073551241003760614496306710806771958880769077708838823479097669491181437434191774874503021728722873206443846733782090782055821003312827036120387974659740535669304139464546577436634145070658494352566676669390435211666958181168257793555621361371320897933509502400127146971752075253151183646967523163983632209639667847979377351332446481198679152148100227750464328752039340702743340219038701185191122185288492244485551182170005755322248629796404917723653536013917171381492239384271330014553523449051444929753790272178878789616673283515072064153979189071106600218560833310752058212150032567094083007259596288163560957322289373238367181620584403705008178818728394297112360532434721939661867602283163140178533982785040216641656267363558339972554211091132547173229358849233385527713787187235415888401592340774807380529648173823384192037783325496504096957919798614559949795491636193521659836903929563948631899672452121229187928327419706347641107931444331181097121069443801869361075332707186331579426868071603783329558017308112234254579234471892087143909730759398639924850417621826336983705579449106402646354964984557208576245883488081089609708889730231762084237237331019035617131946457139967033740325579422358214917173078539655615517030093937404154993409992787228667281641131520991007674471587652324279420286746862819088206816173385238996003310048762228180833190524765642172503607178674324457226201520704519147027226185559567754630500060514098209672087959776582477496357607061334873731091301685195542400431921439175641997607290907157744779249302553737443593484023925330112954855003592730515558173689527824477279443722987943262853377272661535476500038480119919001988875440844467438161349260422869966024560173412007333491216037506558088011712605221882950821294232030973157672883410848269227201597537396930397738710120260694645121546037187602330924978628319629659896176483269437456549170304999504252814723486944875368635686303488517671221487759852335980929185252676323319355280357614978312229777794956721287002897888261761931033282884696528808367155076365774137001051912118251263202954464761172792313303511694708572021019929013822775739422573894719616810765826891524248986598633450879921366113442493231687505896282555036076005844100204365355057186613387222628818276814374408410609679280151701705894538971207235146592070851776323202718138271645956313598340623453035257774917988692427656129401105404911229315473218685472542429845347374522731536729711269651225293691707443143608406244461670497612961247093117608425199069698175666813707567926216639625839765517671515247123030610462653153527799759276789319238483960753232069608198881386134731993132781045216005417940399562046869919264210853232032618778161694541871955099323708540853592747312490268008343170125958611587407230995433385474463911845870607856766959605078275893080076249725375847855446545621928151043009223101298979537093544685721385799176364562825784745136256805266811547476416963772079003674796784809696152159770194153670413649839234382691924020254077331486315019753086290556860229254617563857547707990888551067595869516313094685939890856638004791251416796759998626336893331998853549709799623724611395314516952524946635567269434504855427452101711712335528469583942269459853375722918837824291987016058124777597375311082357955541327165188723216514514949361793670749298597164417700286227073786717893352839450143408172992255478592279020262271673714113079311190500281237171310641134303747598245992694544888276803560049125466730972338377729027424292411330867944384540276306061205377533678733080155481649074073679901587453164135047451885698147411809703294713869094418803441726020449320409715649935461821876290251477943547667963717723470114945398347021521970192903275079882252646197077435142010076227084379416890672792003225580671530899783286356724941265617761411774005309019397976915511259863497717269462418281751818134977979897797277872249560503061980168464510458298991502980264652939035909716303690771156260696081865688050222091231399013733316752007533146173494902659101583579064663227741675195373089119694695013471891026771777359987122623713332173818958800483452931489709715412868430903477095612847340220922352122730078118861627590343764638914589075835129814515641204752776899501618741649109020817202228902786468411272494352143077653432859082909302527932907462362031982530933411737462968839227659239659079729929289947255647538044312083152706243326300718843665296332718092917862740686120500827738574685003986398702457520967019658865175845180435611961926553440081356608191506767161414263928984406940563978752217956695370749517548276096849371985202553082000914601277602433450242535659301158919469198532090637805326827763512736092364846500753244212931327258280823493203314627697646486004536726306833386356877704484755859075784259893846916273526046637242566827307297888389459236557509431763888976638343423877553283969681408235873305110560823543628845808966566808209182037041240036240298729547686716868386136229380826120911270832291149527652842919135177061688431338597619455942044520980917887126922846472151363234307356739032904080106404961986245174932487542915332251774601263671358748723978769788301929519225317187191899327410475943392593104101796420426245279345213950108299526100308855932081710596127304650583069776533746072969518147912136542972968170341119817073388923041284256615243512819397219935680278760392207134597882710337272981238868189452459661515255801747702902304511839387224942443310737645843632145912534264467092832646113880470989244384068353618604556492543347956836654342649935155733226578345516948600603055713994729244997188499835028653938654064002493888602031834682964152065013054194846328095205913994626415710056854368110459110763665333491736421833237123638683782838954991927537035779017885466316915647979219401593259923392229508485616108750770351139653604446776257625412123360497254359394887421677178437644133989431426827264515249770638956012831307189310643052099321319552914725491019666656954857607703531089457642606345941280220273842671970549971468746838362528770880212940595907596701659720843041515133419962336523462119530939220726424776428249756082140518976080035950914617479987107423018004488260450761409791271651734825200663321965779143021722781826484668605939456231050182514636742999724734280014183630081003012800176466607762986491862167526843433634853434524932525523550522510756591089299599885276674586070474962975451200156153240651799078940885295261051982546907993536596028596576869767376055863619632560403158287110820803548466042356840392019320880318887476112705993308052590123177616125785963577101912978867891194965500194400860031205341477056733223906286329729084975869188660449888393561767286979983392938462405278973797897381452197504600397472684518568677359296421379694274040660562832822159291178330582116513562217777613951772405330690968454445414131283192457704208644752185567064990697446307912050302583515542920242575780407271484008401235302338368774998706991159713849532396584856130070287931886789562665074311372984055794048682260378764724648774229166821976425564421584923453157850824274906139337750345153490780931021428903720941696244367294229332128289943623106789891478808818826284713664243224559305427733912921649168047431303152437789717891276721789306651152359391622565706807668855713373744994323067046038746188971989616182837788911125225397156283704290033872588119439191539394939733289846502194965809583726124267891691369577301603985957430340657909505639970138965455284706309418862805468669252114859861360712355371877861835137482436657162802492157449608165618072244919724484032475185288018511684189859810954473956547369610838120224459851510284835917032986398676735224429644090216690465129087051874940719832458475206536047252834480324650849278467834349067884475076500631362049264114474129903655230557302077570463464374283815074182518336862636718043597296052814705404341812164809153941035167146104418947689617121755313696376357523018338281974922143448506241586704155939524320999204397582570063835617078885611796559121325346157181967664440741804868761630685781720607280511304155026364089301805757120243373894433686041768584255813131600169093358623295900038408724166837191718577105582324277958793039222396229666832891461628530879457162289819115512298106437364243163457845063866531863714453042912948129653520333692220126306406073450547405852599456517880335017341907202214561639657292323906117139184804260945864726123099802750067153866700846418788738433156781908034669184173639896736675611341877477770398046048774998875420102836935737156038351157930993908961528170228878084136329541979765511769030222136056335681722940666798885724729749688738667765342954311313430589985585425613174343185864851374036090724719421077089814326920572084241962298849414757268853944679247884717359210388219501759305171062725347055950832315932973377772173084720452428659253736873496888858021419733404981871814007668146476770004808824023188905456743411237736152858717746164424643161591671563789061711262967638121793649412193594957308590445998647045696069410305180486708512829456749903011571520187765548089727437941202550207681458853327922302425973005616540641085806863077920720112443347048354950953999552265724068061735401091140381803194500471974847416889848131285325605047455054922083196264793783231773401543063488235172957957741241145822608845552245889601725893878091816470346298524331101474399046040752375701519260546024037834153920353456593088811408011000697000901414790124088719996635277710526677205142710547139851043810361459391424244061534587634299285827013267961254260447867769994299310451669821338539556760847023290081843389227674675183875219521809535381157687644308579653768991919431614680807133924794811831978589977929876138917788531190929766929244665718238953620253857913110967917642406157105776246336173225443318460009755108291301336806991191332077364181815905866949585973105681824535012057997350900502437641483228208060574373119067515502523783530611080104286793151563649937491511427855210359837934816570346786948501285525503788341605082157621385820571686070982839512989958326172351377472085331320360187770398095955222304179522327561923275617006982624680328413916651237403237969554007796004199590998100348322432151243381410431051383443896585117144207802282903146546076265323150464477180619531641275414929832789358199870542510197824443693414918811949966911517138613923570449675865099111664023997578157743897283032773877050361152709736080953403683690870701373959832913564420862731240316366221569746893488357780022402794302548797227946642668183659427009757785624072730997578521518367210522445900364652499544354051552079159567330173068444270532056220474791228430413156541517117886091701819357390325594425745515986675735890110446449059997183987303070095772599093623377014375126802575716213715770213238859363119269464474548112275511782171334951978253540593250716152219658531286648953175105687491882062654757029266517182563140582414479902141483189461957726473712442916543777462074547907450508613275590056651351855822073796762324000792266713619102153751622241675432222875523902054019342573238073217084273680852203121624799910796228198917422268701831574713884061731754058430893708281185037661145001853808282120830735955238049929391657930960079661624256206325509897016207266098243632385164555675475793667841229171443518925346121269869743743794874946375570325833372755014875323694010696547630497868464833996199660522865235132644293504145204560673753383518027109943725114776119478724220989161061501053678458090449152121006987318001461620347429603905529165142867479960401698643244531736432032679590190324943420042866830244796104110454543999101497124766087520592104782309196612950344090871385099689587139741800971968094411494449159231575524423666245580270802141412948881725252064883661411326415587282350324035308353320411170029341013727791522485833521171673215688594422869091975173102708947391803339309322898667453530530623788183423697440381269427431228064086262166344512139933189442726525638341214733957870621155177162534421331758905068066806465173550929438780844302265195037619086206639553392326545487675444864927839072864057440177798744700316374331619862751486882093571359392016092661508891235944950687304425947415933137628255962181934720674087239925545498921066896305921424964793297904273578594502637926619169652296247009161114936511341077186299935309808722230399471932867396980866977287803172430418977068253367421255339744111743232368300124805342351814251111144591218142752787359874843578804138834158971371787150810087225021656461206300696188991423871931682885153465716747955794346140011952863483531707546981598083706484509690771690497633304308315777679611968420168565838035375051082804557952975260182628121213533584135554430784611579262241786229572908280398133014556586942452344264261750522429694207229407963919469699990911721387830331072207807640425420380028411519332791666501890827433528489090729979294281310653880413788545505953650182422947591868705427075580969651904321945517989432248213073993835215149865382968133993364674400051400427816340508072323022995018985784589369886735666641773513683301562322605185752072943091809346498925003447519562892710214343777501465658477252374980635666085195558040246383552324077233738593843409826163599339281072690338786704488492059683044184474069800426953394733190499729685828983688190910654842172681951745012083400163443229656484822150468203675811993009602950475066079081465716105100121336560953658322598508579508427239117101258683186263105305028760343673250667346120128797622594389279420590555174494143543838028173345469559628951369824037092534964889672124133724275485601690840077569908202792857496849058434389170352218749356421101595941523710835017796208255255498537742092298847722497701245741093268024026021650839925842254551727045149281063363057112259479646482630700493542028340139457985782565683006850776770688052766322645276227759090063153439203894280897026087261144309643263173606318042778155209716088903261674184653871099572610190363133452726201708022171530590988928847894159147272687146157642669947667621224619120219172084390692982380721337700068140911078365172287844538949267741494713763136666185927616632653035881320378937123663793379489677132564293729712009925830923716932715624382752383981631273289257507271022310149361920478907563137856238392427079935262156961504112301889649283235965151870242240163559363599537388172432479763713939609257318111021997265913605606294182365723856008888262759959068985509743743116107888604299621224854152722357010872139672991745500650279194092608798488076476367659749648302851034145487290270847553622017399184155239649161617191199429957904250496355898020148328556476488774320987050106231345355946839239775956590741436908065384921780568274465539807450448138509713927230238380521755950213437727311124538844178887158160236193560179755502835179836914285896705932840840960973591474943682531675770417520283462924689530186693022208780192839100580627510145945885616049468185324383362318877731065949477223027902964300944003755967958492168917202382106189611171818619721797088693968095033321070849000624740593434356214886673162201022004407697931074252426584655986899672648372380186226919312852859453046741252014727801271463573871866724940693871906013383206292721211327036064306725176213756442826190842752610728689392555868607959615250950091177634390434807679135439791696324768164517265504790002982392273253514704945898795802999387778976306971006122033964649524314044185580425112163541804333135861321172863250344405509105496033775857149860607279279751533362619024235732344193945586925298232894253957209314314204216282084397319089756604047111563058040104404293695242775456571878635626653498684632513255293665716302622090031665432064777154333248435550368612101338782824287313310247004345632850069214601200377797898602791307703325288973057830026967532548753592737372233329052200001060701223787455301336855369315825797358851157506579300391236747080152742032054093553500979485066912483112024499095282745544275147200658175264242459539673576995607201779052903115609360950938951938733089487490193173404277171858701368476252148687169617149596665693491757442986966908542391878133871059314626682910744484200601946680110131970356077037332454276472322398225141389172987444442954922262597756132402535810207904226322415820681237799638188812431992825417703137651740767591357396739768977017268290682808282938164306598194063115458520192189580538483857488988051778227746058614443109445028646981748561478410921610247651533886975331464424718585669171698342994156703892239324396653402464849794228612771591953931533269195640570998602126710139584500218118860958169955077206993462183890497887105078537520493229009805393358976315316372375056488286125985809767258988426115345252322251045304063727112958487347926977733939610004055951944946518014746084761050204939160807028954878161840500345178794980522093080667681264461653900907992540479052168768259555021285640832568455598169783580872003713852634117697904556524596464097156280014165176188550296501287725637902012935867719655347445518387544566382486414172689466673475748602399003510118418606253618404190174300589805481068136520780697001611347781490409153423798817299086635189866091285761444111747732057595282329623348434818364754209049083489245661085781346935223921489342190188019835621526080332356843988211729259104874175102217123457805507020750530122456232287762698238411539062201273792879235962798991925077226857142469444862332365804861099834843560419140897251131269458496357742720527985034055219723527919692436499683798347997190112369998139950337347428668340131920748920260340877944605066147729976356862487039985881669046728074796236526396298857178541162376337061946233467434951858435321010385352182809320782557040271271976674748524122281651830857604284931667594622457345652018909796211417433164757825537571567132739719454833414729816557977917719897181894483930257854809360464867995868558743608124686115570068747556370786731948679508550929580709314450373519219802002166127646849718335331206497749956195099328683071782971092437298883749234248813131413433749280047399576525291616022177179291848069938305613291603140665273407782277829005257314753898702331096315091846896854212046251899132707397629853048498901634374943770067913695582491062405873501887908062106427097506943807048113466024122356366389797132641885447087069057183416090284815663225378349214897430233658675730793674709333087705571158647337113300478907180618787997816020469273393005550707085422837158421844307093485189482392119000346985780725866615027407817982382703893049178840905565695929615627701868949589193807514710480269645098360710946028414183129660730426571769291670923146923122779853045283847781658086421911048947122089309184083340623713613600277800438676983334122906916720341865635948998718881136141041520125831695315198880323623507244406089261900187893326847776870096581875979307826986909899102826593330266969787643572618306932557056563212640994394407482612186259621212173051433943646212400966797325479795904097331442190711629975672108999380698469955072788306304040264359804882898488448714439639466906033997163568105625145577859152101522654600355980543540874621905888897831274797020818908065907523220381138213517828305741092833416026513508053412059212561115387544536885099682144853572819241568200663189172805431545202458858588558492835867778525064609679994290841685023561620427066002328818491573909096469959559614693050907939454198020488047414208173105423574446054551835305398605613479303617974273637391501694721213643323058130872481666493625001984929211214068316694909312207579638392508352584464124702863557277580653629355124566660508200058178203266808280385757727366141620654419488091029358377233019515083075385919500457198118533784454499734187572882809207070916128807509855212044659371063489983702218466237657809399022959699057619186565476905243235750752751409700410106805369154162469905242179690969088421243575665459207048097860398568858459847464670658660681782592844931696974424149932205997857379284466907679423632848687183094183861189885283370772706311387316044137782128374367958261257851626262913475348135601528620320994616083453750933664137929504383645465551793847637769214376242423376532481960762631829912895673172207855834797799432239712677115133102335069620385631611589074960556074512807337661322720019898751258560806634490333865060130147353938514180087655937166518234935246354017074622320411634968204591804058014341349405187308159485731430298887142838146931180739788072240755018334055981895191579478205348352920053400015825186750838137596504005426216896705103995503176102411060126449824501858728359064504161653828437393606551237428528812536824395563482745723190618168773121943862936687141405402357795119662789423319515847573341782922339319386584249978370381380713035115657768705688649082055854744165467639105329867610778923970253779294235682056920740983163528137644582568435330627031274430979144694671595313272537904114485836019474085567620925795867159208954238132344751880905781401572238286777557246922514830691594791618789445213636880401071376929239441131303390231832322093578521929750495812825793390470188190240146136700908210274661149972712841531640846984099723896642820496344700984384818812105161529629427131705054951016997804011268595842583605701617385177243342740026580010411377962990869772677168672795599896141106809295264133598505131102949457982553021021421319150201047991378549820060005376483762598894390722976954150542171964593732674854714819175804573786234883286174635962387596971224106999917658519307017227441189321971991169763791025311397784720647330920268985103501378583071550179690750106520895458896225412868681571061429452511485352205477668234690677347524373868742324598483121523257104384121632854383917382947917655280425829073956893560349368469380830308583813192249425958762078412772564685984420398686337479930155943167276839917556535019546113513295549062780508856979974657679412583265023014912740410381828026985985873478616462934728934802325084145336296857714590653626608920251163226293142617294932905160260863198495462691815562049801198027572843729716756380822785284399540889023461168222351766361298186877969949637627414528586512808703714153797452915239883903420311657199299129883452553979292467030261807553143960766348529173451885450596011516945044536699273397551948623867245085970703478637996648326757796999193125952505388028991699051019184413879981282565790750786991111089079917959000098894804161441289134463913346101574869309258935035121136060235193021277175760857023109134890137548136153523768366509613813486024640641524204326223719465599931668805060786062492884459715907893145194718925649731569678762837412467161607078713784253310336097359376915876353414776034262166461122751224250185196945081383677448725379688275370392226147429062262304795651711766708913817930333001539205168905273897421267583215039545286748789058870133402007112019977181761132952985562707317250731172754771151021714446761872424869323916175347198665548640301843003934746447726968218082827263386029114291244531452221990534211297111520878049755281619671823623005066961718000247989445486882717503012415428434988918695050397983632497293822106847510983894259312754177642331479200616701757886712005544423754197605826967185600421519906753274774513941645652237263891915477406414283598046370718702535301498047086760989228269597280505615183772731025997461227298263527991571681472484921781792480102244483926840028574350565536065565564756462617004155630636440946812875064583609638975493494673728916501311254982582337689728354806473541539312521444508156466685853825636208900405283101140297449421929711466681303269245691875406690854624626338788508708983147935141705910936804404928504598320155823447669194108315382684879211089575512346788676940235007247929163878488261939979063979878458478640057309062851961869038803639440555139746390853247594296212726524018230698852920141687619552038249275142983977216388005661409029389767830011101197012911581875359576452295678219148596968790848212810400586433862969984450778657153891039127787010509330972698387574973928331928626454791634518304487926860857907619642614529991322481331916975799810956602489811214210560302224902566770691316890573937388317756242449829518621144885969914277807786638857174237007069974858346557677003855410853186187063331481878070882720484026380383812292138014732547443867486360432198826672156013142142503340654647493816611622010265541427566005798122435956403000448548051727735679021839977000067549880060000146653234196281940024459103411172893221297482122663483142767591834065439607947840297265947154011362719418656798872638530865342571581163853323499266425954197645163676096879832516500035047021705455356148492090310319432714752445392085427322582040406689528684440001392464102445682554256115420207946155324271811703542339628113456160254652006599451268013417048939617026328077135751718514644600082450197963247807578699955602608779784626998614391018840903023139369100925451176124198891040502991172208953588784951037657228101322517058336462191976944878975398167552587654630141877127891354366196932141298052820028720997379535482545392407568703340419704484096440651506065042908696117881745972159631195710276428177256436049307108337505462536088950688571104833942846589146165300457801421960281967508976392852698073961581311829135769015993591418200544751732491567808263875374746865467273198020369206819599942956722703441883168666556791975845911074036626973661164612089716955984678244590486848163531388585468083775007847413966763781816400097042458157081927975557117902182069273022868445811725181596250308127796662268522596668220427910509529442500980650361810413710963115571005908171094094236728667605893325320776151404217934080528954301080993047175436148861388127481011527713803809323630612950534423250351580809932976055306250515366486361617619555452754308331355741186345936812639594756550446096537740591826285577009780400829946915644313980500086945132998994878050823461100189071460951541194625854665045878149215323507655873144414033727479700021713387916475823173718515308148457380766763457926058794568965668879423508350247215290438593941745191400862799489161219442288093523944390429611487702445100815073925404020318518890719532815475775995373511489225153366030739885775022936511919187148373863240292253075134837721968914087846397724306656707234272158162920252365815761249119286607560324387439404261297827071766664952425210046430853918796344323209277939651883972418154765628407031752244787000589514127821210855711674405657274327749420108561940014083588801211175720446061161819280299078598958303601926841473980177627231739398112170505210161200688673836292119529400017248522767016516827337160612093862654752993009094212889481474506740350473005838714816873993007657618268840883812773268063810390519572085134636425752323627425597529348534036313103453404064504987655990229098051969040873802953472519259163201418623181244721676029899773605351376272076615631495866585207511654078158967501662209487379052484296348868880270282441578807165910465872004624313347843968950978539041852156572799008402286805323991280062266982861916372287574922539402600365934476383533278762985108656085626965037093441955570363283683311437473739301134167023088689833496710193802960783009745490237511309700731522414613887544833000149694413096542842497309261098359902563055010584762208607949933195848686217470941270671404487173110241062593216429979161429340195484838128060045695775826866647096645350265777712225206656498173012955424626106223047161067694269464819438116551985153403301118512948485259028771801242182438070981718510509813058747882154246546793561123201369019460871560907676140161475828888740405783390147885163263907950781288148910475888889001637738796560560782593396078278987468893048886835016994846686069597445578591857775914085637226273993299187773314671354712740915988923438827930919028477702571340727530732451381861909344345157370262261104480603175314866979476570330185067917287406695875341655416266146098644786366498219829862993142259377221162553230128949195446838064607558514362962690882445298385827324713981231273991354780919152068907715151457655411760566225052282577486995067154182126059315023063969613252675678882917743202661945409868077674916161998979124426448670514886243389148341603366223217749066814622390009894926224423648868783670461457611177903936006290130901616524862762674053729683731274980018258895288805947119181066837298600645421820687577121630363749504891589090482380346531741072803497096101349534620293572337518710961178176321720340747406707984088098745765200045986541499811400953861820638935862867973443924552919629824366021295891505266096016682597348207221844420193013955416645747096943274884734365323922867023949925487541146024460039652240485386872710781203540966864734199319133312763436453577988057452457078027672235529941045287484645241406470679906666975975353277332905177590226630080511822860332334088744435122127086920799232586310435143072828988750735370741069651637398542425612327965494566584941948246834249265655554867848667883107141583288319645969685894901193439430959955813487313494071156605211267070123161878862130269859391712322340747445570989406595121758599807451092341187199873116170839776765537689875379591174883013362712672506878833687659205011880743958394434620881925622307958714627325394757884571270169407508830217915110882158482240625493157684074607497729412977335175859247071568079170702388359326499564332971136577676547840598687876134860885811645479238963794698402776601277509490660942982668627971841316421575751550780897812031452102452021319318485740562023487123178928867302522441065889498658873918617291598319263755224084353642702395505042947925646324827135030991744125922114937323805227352748487478648015107339754074010594462005190689205562814574433468425914399549201325637040428865996125496009080720713158351496533740186533051958844013556658956576260561235622100536941675983891712625784636463789611643304839144626003119549346348646074190859857234705615456550808164978242678183659212531327458772463125454866400019149878569041892083561209413977506750596954031407178797695053936868384911407787673785077625407145892404139937050293113127148250994408404698264234432414500421322083830474040381615727912647513027994909362507960257019514850676944324364924006682981578936109042527784706020810421442249192203584432760907222920111743768095566826033125666718375228258774033577905223748765777658918757129587615316941489933972514553210276628129435077431395642777074003313422470705804263936136796116309318649318291459251659962834112997842755334991750398582366586823748642607508898237496557364647084626803770699824971018274635504509363227350938131078719706206766535809190254341528622821230175596090500672862562357717565809942851744877382393328901428682162785256280456592942757329171092799601060465534778535539002401816994038638282580548333436575304830847045020410698051278138970988108322846089676908281704945132812815472343580384088795582149356593843472273259451273149927164704749346312299055764877471905621918692924173726139578667115840199185436047529313897812048840297581326849998989970973496068509129977464177954716768859491116522567621617292221570229121558392977615067462408165374152618430560552880324695194769396746578239298206244440415175153726525840587582945998312795844468524585817855634115855923601199616091978844220223107029312668704222600376478482405689735788890966747690959979523607571327423939084878601634435542374971521564049731335756680779033000266976196741687438378884203516395689530571013980836075983753613405869003319299622553668292189397985032558661458005434803444995917432910032460660877379689878583193261010134876961106462421220381855301486236005358465517125101587013347638998106234838860109134692240259523187307362433062714770453344733825274155891564856866813525773061480793757107640629195572181208192124764657647292392866714937530841639611237543186245216792594521023971227776844517367282033531305494753585585373670408759592535069209918168397224350653113500633145531186642953787457853187373901569589945514930269714759728661515313495992756531282975985623395981005304604101250458927910844612941610423780883108777694645032252137494685508792977558010051893693610452669945281955851588267417358019499402559703831758111611163335593013474479083910049845534497933203906982139259393865433246429481647242349927291073264090244610019109438466671567599726551988964331536595960772506560864264952232709695279352313583990603902954680434703244411991608933373996390794201097379060673036002757228163059981561071243334119726044605885475557889289355680647167740266948304271023430566685115337504358742555245629037937280406016815219503625183413390338323249064516640322061310546462786973758749301879516674937534217356522084049126140846340889930563397249697341135104075233161375349486479914149493308328679867347704909109284531961531043989804715901986632507441693820045736205843039325913854505242668730084926917316098862589945059310102397389178739912040122436756860289875572847754549975783178610263942402335783959500823997653281641335560535919417312843984934824595997492074740440097791219968161039120163559544096317408984232135685557389332131027706509997992945904894528181723435654655026091227403628551881162760568293748104136039814038250880271802167782396408094430802357259993504207660805241670636681096043217760706082071680883858844495319989752258566308787436312607518473563890135339628227344425917487787878776559119248384478638646358899186205403944932090837915981961170240851758277819203845493706381779067653630268894569140798747678259507721485769323455982182626682875073610420524388667580379044056946146761456452957949886063139692410788057724866878610553367895859780174697529661144039872898882557451660376607986942671225353992709497724143549771764961776217299374955112622398743526734772182390876216619493783543009231652926092819786833396043581474192797262221823671373058646045975688057977184528549020457216020584720857991614544693480466954455262437001553339926471469005503420548096801932732786070697918594462672662801316833500403739473027561463215313230919106170960562959914524392151607326526806206978136983170953636013991417239585732859969849302214023892095674751447409667643410849564784138713537669533465462348225674011438198466073868119212326095155190536671964198359211146685073368241496279378248820882408416521514250919199117463981969311396938385278704351651390471582874359161888871788711696697055287426866453731093080284359440483777052934076504089885462035520719671703029890501390714285537742442895749372392514445972044336341102320409374786113381994711318221056829401707876077098934380488569848172656366565696591243086475850584539274694633898009784142257568324470635075952104870241903410725771587671076007859118109121493825755472818576526358801302507360259549703847099500062653046082480230893283726122764386321504228302309721521470917819767704605267373522491941058295119282238673867772370849133651016826725130072822088374894942101348566712226986804321135234026771193014940967577555474785813173065527290551134188915887679849590795188544024310767491115866020346988609512242454200884844268036960856819161128714671913062867668744536263743986508411059151344989784091021446769530156949062775492833251733881441865411820137385254173230178474799449200705397757393802948168798491806157452607868870128384906224767617023050880594631244712092582546089694557763801169690031741109238105369610049703665591447321099831837482513481972463658640552389070828659558496191882934243861797214725384402051312904192646979071003680380946517933605801031110766508458222329310166578517074452035690636868250695379255565946629372866033340865758817056741119869511315460948491755028179047016674992426629718354684475070645230207626022684925165041312520706567105151885405181478187476381560042705343310839532923074021518483626130679398743889148942805616043999581421277467801170591953655980882739329233911095511828687017141314630472270565948176630725891296475868401836369669920825295753108299174382643985423467520365634998128782427327835619233534778378421941259786617195287900292164161615923340546549153446539614128987183098089528216294908746564943009200737706059031012409352778182091455556358554447574481993243887796599366497727627043283971978777115721843646782252091413399782611971212316347798372742380447716267609170452965136099033665310599369278107795585132450933715513351657423997321457910531748349520656959083432946837436848478957481367501965480240100558989103680787435142720604231763496190858750318699440614651346184456943023767143445261483427517201828893243355536629601906341074911555039958739193856894077328020938832712999417181340365412421614510520916605040199888623262089897375622212130221955515592378241867439702932757233660745066642550776794515222097108959233180358322889898549710817971876336544684489120108016295748359058454717307619130772157097798054411583728176334550330314458858958344168028971366728871300451265496299544585686761729027534141805050429393648044217389643853725757377050448000859824218080351004169107423132290078674236094466770303407393887264846759111861190605933339904621859995491083712468018938095231149115582840199055684341760152873256464225019053943325525772356956905017294313963356085317419931351160743487436355845114547563332828856483760388523863122502801946346466337465597291746387363461093459791532876898315185257811158808011449031899424149664897009330623934192491578089019525111412813601375321100141582392776499536083530527216546936594502181849169385361804465514499358910894285635972283144010300951440716587784269991517086866868910248273410968132508256967281586450534970064571750127346390561145871710857472616669810786302485529306589494044387798215219605724936865555437976241937606144365562457224580868802045856245432133800710238218054719151422609049134986067930454674707580036594643237749200085645875195854173940307568222185751721041352076409655789164453262336248906611694959074855596769673900626843021756835749205524414889041891804652322916065251597457036208923460827787418402106861158235343539278038358262105408144046153681907600409598372907990068298840537240135165134930067244527569687802654385357301028483119997858311076950622072410825043448372396268313230465217585222749189595910535795582053200646184046569963758534845259224110419284190533807849503438809179142433803798139754024540402016528481188473885740503189523623463033594509322340648079305699868866087849543115232077027456690172882634407461537479189377124843703906943983412409398168999921965004711897941057944471184280513899676807625031623144305783032424007202464553514959815455746470202483399772992548032986441131006443317147583856020772353209229583015611392411809740359530263840465448278341396321303548333485327128200173254900422278989586671357066784235414804817837154034102564580566393239348460227412985574407939071354018022923744595462594255107487343337937957752944382737925883305895126614744352377256908074395217494893617562130074189010378845198369962410546150954882461718371124518077424539343959061584387092311883718702903314458761528224089091176466160293117609154240150669851754799684335619916608103017964924401213006170794928078796421963393606975335503296691391490332404928965258956130049185440299491536063455424143825777867223870233843404063793368059278342933405981692886156959078907364089259535998282842097520267559001202708754851176446714369591067967807156991408085563622921840121490110542595704982444713142135899882287418582103995018845511414916133890343085318427261061826817408500350103782945334258007292379648052465859630004227900700028365188058302541029626010824483307110635350428126182605505537110932242841284902323103185195294596509013226030409464401169880646188516352734492828271793703530989970876923224013388108851219623765309457382006714069048941327974010509880706952579469757309293443348979563266643977390233151942265765025932551124273238639623185075731895312987527972033718506934358647065852161528468483451886716860844671089624589463023718288859584105985176750429184627832943287048501845692708352740867434801640640041284166085530694894822787038552609965637387113464504186318862323521453890718035847196505753036832057778864268728805519161069712160047524123736365193662117019220165359047395653704117201423528207565858299897470606831922604887305404583764576722471201392695275867538303626300070816534978583189399125731833364752897507063400004479593350258617972891576637536256591992777233722882984608374213197934302331262285860715407157893724397627593889513948268353037868483565188487208809139920876226795855351688860308665724674548073794181038359161925266819213271400174012196677123756574625375093994761765547204331243545635631455693682420225695131200998006689893023725610635750883051016726038851743536135372035817164869034942031864404762427965637103654929555404465657860455597077297468179641606114518799166633226307797147610785858522551280314426118172811674649163336207196252010422447561323373771720478860722780437572983166136427285788472588429748347433993604856627680373806117526981574780092173309608745374208842183805526430235224884656244511944081896637942270128798135644255308142797444520856330184639749720410447053578785108853728331325734551517511694855845515106860954540990647487748982404752310125071139141547074604790342824760644528478131382386075511527317584152238013698175849900859742080297082792995500750006098308663491488267656255826205981608196956061425008881566612132734494279852896960396612562319573246876060021709455080303530643403337694905212405198570453418313935329226374918857453361142214730544941494684482256793324528695338065188478238968473526585892814330077138968367188261006804944497200315148277642648377641300140847710747854838338644027992900703629438891922522085082219982696794785634008942493561043711620963025586543654997186701503401039341708623232243706740062905593407688334943441880628306388768555659439381565647565044851198303299035460101274572655862500700863264372303490759553369248615331598737073369750762399295479234114163370309858183348531761424480054925126695124434193213409439421846148176011986623211301053351669007174015796837699494761802803789256057783408287861081634945714190415158779715516809336327967765543025574700868151966552178777232828164184846886107154237865111263603498546057792305067901170423707267747573834695205119151468420196013550967261596068399249775368867795475574270827556773691978888883201570634564656837557129570482070919669745266374133018055634163133843051725103039969726228184271710039483025767809493720280193729047872633133181246756392022580013374520763771341480871618300891385067165229794230713301113012597627759540578613158352938910376201609566016588620526127892343242970174076388175189964926953595757645083002815306609760368450357861197241589262752458944598005553972342644055855335655695604710287460130025405746086432129427548223322658470676345375793135125785251285711733321589947956937312808333862469682208612398644859152208249900592875126917566175014192627620965000073370385387951747622417259832123721851672996361839517288934924653158456090558229854888598381329103239733035053418150007246125947876333841395731892434984113835214840970384687511291230835428715699303470139979866418097029119740478926935722185629254341768573633065698639271824257506308909190689935468674669104599071326840117137046778636799131048393586873960846645603000631512939449398967536244257731985460899089129979870896087042464346598386528490188120290886329391394224985472655112197127186695745065216309477672566790793046274334311515029489628681890086504878892433929901381376349459714761559195276778697874216088954263794337416248763120202520693416453653578588467532501240445485244445035233832318758964324674601946951734697097166815976958119672082282225149271907135128957722540362252180114699516361155994110980935700687384693427601709243203831202434118038882730137241282082818189193125334603640260988124213493397869480683813946263132742040837611091653351817536253199790702540473090070965464183872170241012113176982958080621084748296091447885853831004378872682535006078960514494894023528716602523421951893651676769691556277717492050183453128198531084166334531520406100055960241492377421453655650160740410474864800499751504297575066777175086325248644799293048687051846377137284547962357278895211307600593464174018348732113712062205972054107164223076484674949088179320428551817778601227765368293812618018886907311639215695464308767715186501993553547849207377237901670026465302786590920784246094566844186366735682252365236230034017165493175698133103865747385969630916820343076594722433177196579206382919639519195705157113106884625146990854179515181801518824612480736668705626629458362956331980166558978344114594588353466489156125452187909020033938516936070068880013886463003797983248573413254526167791378813852003527397968709928113604149259906204737796545953065722690494852854178161260861614978886332962510222013635244390310930759614161216177201851822761901181078306396227377248536175221947221432254631399487934490834867617868531160843991058904634307885627412319129135871689241091192463562867038412153092217899537563705202607857180767499814150664070429521053283194611013517646281671079089198053226940960123702755176561608585653918805252145304695660692538729253398993083611000672681373624150680564597825107572895211422133950065905221663939124831980668670940629964259969722458870974473314817392421540780257537238259508679757426819080888065164746244041166818871146644446996995477076228056978704698036445283511392675111446287143824180252546494365410812035433218946669833116803052008429652738542527296820835369278525146539824475270057796608411742678173932935836061272115716160381165366891331249376206385440389444278292074990442459791814799043097173148615618656083787687918001496651199526048736792812334040486962626518090172652156317274715894031470024044085893172748056728086914114825755527954125749217370110135694646686314719496693496179405967877755280691486421856300391461864502176519844727579837897577342805172802008173538433263729380586322651057765665626382469791212121668886637094760025489821268318938621534438165806259987360252023669277659397441740170064444029530408335440987672426431767203762084512900561547205374865103032708764469140026535269603911569140768101484822714076141336696958518445840074722945106609305769630247410499050415647495833028846666727505196138277518761875958261512416408684924672171250314999662829574006200597682928883773626828224989032416014124146137245530297613495642531662836195103728967617492681294729625776268906405809949145217450047168908145834914176908418589566078112721254598876379401182070286920384555354221020257114629309063249780493133439662360171584559084603709841955671143806520380522082751541340148548647226130599650917342312692237225632966600135319404915473594832013229195861949911734019612206089005707403679907519336361207604688389726257608354711405116358309685169781794214269565056447895915904171775506540787057453263995717071523827267174963962523719347426324362947525947310678648452087546539874017495104595118317413219856727158263957060915706908785350034290882223545653617668726281186837692631686278522306879912846722263063049081755859888238349502612254155824734039518779874816639052659698159635136932076626410312789169113349622643050497275332288771439758801782171373394734196251094145679871551732280665936293142769051116476491437484189517402234094079667714112614770784541765170176445897295123395714160440007382447063201406571084821310840010258767751847338661230808004241257966337493322099754359526157343905551006898293405238332985792884795204427429465589760979159367648777200122932672178776500465929697951382348179923105750704072928297390879493568710804167014185231791194495218775622039122140137934321220780901762038055980220285594900144786534425646675094669537438515212358174987023388565020512003566550506282802393136804259478122373398974796316137418209795258202685107077495695620056086683561990615254799440697871306707215245511915767592863086256793460612250676886942454388260841820177728735828696339289318270484105114064575671039248264906550326230160243059469245704802685810033605499785139398343377244253326564085940910628895115956599750295496146013116044935742472503550532772593833252489458391400131437044376503177072942213148335004139780573133571854486421926057795463825752136182582495878182385878479214295865063183787004935795418266515466851266127261489500661996517091248520777194958485024315226457947576921591765835506622883130555515405578573601701675200278501053857378519989314013332263191636935204679923009559965319312090838760699231449712761634942217116489580917622114198801967695095980132340297862112628353700077240155084687959000124228294507106329154084204494457529960282475093029526796639252465084079938748965542541655442285635961479240123424645045838275661758983533606505087085983267387455240719614790771010871427908205995165543775391164207650904858398988581804632381656320988978076471055237775254066897818385324254606585827043663430598349015722488718192780302544023138258217101748584572701324646363042334917914980991752717254041202640080965514490879898675955608570780705882957025469577900425237765359920158430119361648423231973059612048618268456540744290625820523421678675583834943671260535837954985526699000487452761916505530947940864205678529174951695122895590175716497793371957088802118081064813980779416802537387582445553135331222069136303874136170307014222567182525941984704352654926484284021573301211376912268059079579065765430494110552080166757119588498047367182747910510394045342978873276040376704552673865740687164698908448453144046077771652374660892901191236742079051975378791667057422357608749718596324543950011606045290072250557272410018642230988535377208268884818993203142701043231580447634726238426113838639841439801039419275168032190352629803250035770596476224430821595695278167754613623744301302895550766951869313942602222429269304549440490145769962692754135663311630856123910841624553197897061541818641249283866513671663073600105723716174489618228148513994976247761585254375587118224570657657900359596930178955523357509932370045016921008827671342336607612752223960665945866092187965424139979020023764720329816423706560579422684303872705923946705871177993762305139906803170318532980878319292192895234534231999403847247390508187678367588929274543060696975952837544274137022407838458889989854362276832521829286115983008068085583516412262832354979706318242472413768338018499431625021170411837981610386924273106616131749960744527265329432151250811090044169059564910373026069451952345154223815422088363542933187803240538842142181399478684537069402493249484166966554135732443920133421405746929252467504974015092823391137761706983955828922598405145404220623398119956606998154442626992131200942184152021484878422355670140998513448860479246363510861598981939732794433723610348626888612742583433055015013193534748798690504955498886113813959068693949316457879187017963465259055258875127996756758495838673050360573061821728810173499759376858084685206984524159105133119684873922243251198441714312574190842222856353804677280261560332413806342430282515333209025359387512768153333542198369057765299333704159832941086715560281034747527358851397750051747332719168615677659291888233439559284397201338733247144602231386586068512525396576695986038583749950656790639533996938658295578888747882582442889940693642276039066139822096263489417084556457857361532295389781647185310604873150752480938988380700715818868616601878216000405068180656955247948465546854493031480407788263061253473427057952183386377806601417655534758252322945547951689089422156007074148700092090028562050600359676658478845251000458014504149491092677512980279366355783362572125239855537941522144881384945838064847823679078945279311186073372015468184084559510481802138649914376237855285272274306408375422863047006186381565989643045272096670047949758048030774850021061710848144799193923088816439618872732198138058619435745477284284265964141816894790548117228350753344535999341724337308761749697888117011074935817089102595737656451671694098429019779725936188525104488271427836492671370076180260339407786462609121739721764438819941557054558038016171199935846402083589045680212816899048955427298190960783620877069851680825948605304325842084471331790675527703855499268039904974359874399600216901082200693147385417357979046633309917604886257045870714378921645947277327568900582535153799236982527293979229168405021057804426321893834864092279249939631483655996112218375817340292933901290011611462287522992819984985860836060412357732982446956633421972561452462703810229449939770654250215286002727755642218929860915595294601503322744491136706637790726083662738181194879248124984278401656217006758274641326297479696336890516181678576857747552787701043052598192127184792037697815874139382439301402245867514638273687046513965792498536820030235391434544365084615772723500048953082795741346291281642566968344072474009339051336283477451204451572445941212553421202618218130546351471882134337222362160317205955914970316022034422568023521207227351686519953329369547526133124313315757302757365115988245024450555374118030412511330646325325833148405308375742238065408023388802801942401399902694196978766386229808884801209955741966989802649731743131370790627978896125351805483205780244896619382371511047617647889733310946066817265772679053814596239146792717801620694973953047654777283857700415574747479255364660593278792729881280563955328128040606682212750987743190518997507475099890469461098426045263543717977502715839629828663538648488704695422631684790935389282158145809233334440718118466046729576906184944547287422732233219392582355088136003979306333689754942338877869221137938239971853824726537187251745036792634737748754243608939045474742669852472765048969441336337888040388879610457029008143167286196287725579218091351907220511475338824463373410346239862573544360420619678393510821941075723423754911195851798148962739886559768536936630241302757978711082646508104426249213984017825862601892804009979765873552870005712547904739735900692021966228764815276048603437817947477420282988386991740929764352363570987525707026778745401243024177508857689244366675242308534426634006428719699454939256728375757868554892196555516013657467290362840585011692068263096169460125076222058990414390723598754985176168246281843292899650985733386361177090419264930837727387808114514858856293329485230391037123976411613746217925372350943589241414252681307802607381905295117213849188929821407007884128814970533688720965926560559109957973348972000483399370419307679075596707953005221789650687396729624863107427583191825522515693876839684593565902155514823714834089794423153309305913213882980214386262321231219935587164219039310468789493221129495349940934051927639197946611896649426391246847750204352188914292002329589846362157381802412975545101499401979442978148888310493408965476542161631686222256903303114316653682003943280555379084057107798764293040976641617835231893767870047325827098738904783757724227205453189084172505571996860421122289752855878921944063880969918726314452508006565753899345398061679119426287281529435295762823062082069394687732458457220459799930886931279487689765028325828627342117002109526601625487684613176621524770191099687119464109826724618993315223882201681167711826985164907238898428726813738826158679620180215221712119089907063023871098863517331448959535947956237814094320543472943143565658336433427147278205436168930380887082929135600707312079356695896897573727371643637339830158057253791511873773378579966355284295855715240369714750822168816983928781723742615045090786095793298595124230190161608726238097576817287411139313859204114197271202890495053340218229368659282425084094285535130047714740251772406537661185998885618279438124223241519076292021690335697786521803364614839426540907149537500366335514145128528874267434624876157833239205851114443293678107686740201843582998919427917729541484817633655735331594773690043159461242052395799720651077589876604275017193626752382849195849677874912667292005484923663745271871389643900405551015919198387326213304177232239106999304258531845472767226046090550264416329520852543429585965579082728802125460130177353312883585756998976425389622151864850711932239191440864085178516887316370233533976107186837227903112469102903226082381317733523876918504690029651142761117314345500920433043234462140143334256732642805651351198152543037431755365436765041979613352245464702472502969197328364325598810818146896877607843777428468824218419835299286536012697496670736005075682535539213267234785551913094122717666303834024493165565738077363653005460906647831564317547099764652902457215976311528114422200525317191433962164454601143387339101675025799605186458443767802793830917464785875718725532715724817029418130250244460090233636720799345918045306396708215562433148863960024457451435004333914194314923555060000770377923296020999161847148418038161136834750730842840768608142156806176450815773719105902019510594177543018563381755568437446839125760526214738330378795553919367722571931677167532051139314407849117618888242393811348605342434612737968688598497197851894364098867534954894898294124248386554100947391936084762856064068294104701828508291620228809056070543469664414124990705593868542638829518931950689828230455580671432758433991307150431083221153650133335284423552060947816781524944370017736061564709382961187888836226423347844237283704803870677408199106462024701302220633556983136491245107593251284326697144994490487566217472688015458199051656872370580014444878684502432230245301664101034670792174884112912945540600459183861776175240682730025057412602183514757733081306607984113219109145785867189238336034139132551525370069526067413577776157549175959610787414512894948645142878892161016239725143861345040306397755129527626989121623884545844583822083782972702394009961394139739456381885711519695403763956165052695746729882615115311333509340678871188669600694685012539730624038645547279470519680650125722971405647447437314510835509192701604562477585322373460682510431884313807736515114324669734208256916294308288416017389537668767454066835385773490679826821227945600491136863001538885958798784879249508820890145528394979839401181997033651808882858771113988390085749171999992614420594739729482492690196829952412778197017385257916244959006037198076342548151057872288424810500098306598458783463785241260435920551844900496039887212499344141606620665900930377806651266914758472740197500672890091162388723527796238595126363028405943821201822453548454362614765021240944992863711287751167945993990061289697529737083229110078604966999038907550273397748752096790549816366133900721637714427327993416177564154536853407280650270369173670209376145433451804017373338411779936152478091900540545716092546175341583364903819998194062786658347409786739651810192291643744920141797963251646878116874871437769632772357321253783421704213684004872402969537006285321325411470044822369009392763678448151922598838645159257873711189586878804198730001009157415575180199108534998051651604835696979113065367939237805231437845290944826030646948324348164205257335642824612528733660490426168138051565288408335876874338254296428832686187409148501163517266024993600388714620488652520374409300463216949032173768632750983784815660127679658182388222432918161844807305847242692204904809405448657110708756317670150543851230219849502496490224161103977501405739913249697733177758658977157452136569586608034450395072434589539133594359035883715084523176482693998270925830672238896177610583650289087147306480204395342497754789105841917157160663632395086378932010870286681362913720914656356839261761172256671632808920106589448452711235342748646486501590449265593383548338565010423353592784431734625198167265318109336767415858817982885379884964800939175148565820139976122678336161430062554261973798365508450202964904571049040793197483294625507210703171057038876422906499410978149285622963574528989578488116427492348299548555901691917112980415136197143364995727267661213692441396298314686596678211419487150669286069482410631820019987476786154110268947375633479638563460449700139530455917251401842674484609129782953044971863339351638890605158242972224868493747641996523575154666124464178990485433954760493511009031467756100744897430230159382632486068280168135745265334838159285835331673209675311017252805023392627978664764920534700108683466424292024452024487995399905414359652158527572579471569355261608179661144715374420406393527726407417141211286082017337565397231819400123666630872004270140906213435825789607186182512705869856109070127851837666541573606901649634440338569639621345329337347219725420250868702252341538672163416775890459859086055734414015125546310318893525337031460837118975346515093684367026823738106228956418577054272388386575282826685868850270347428842994297688044138506068352374474728087198488210513169460439395947329826375973074084352504991753795275908128676518072110945954730830938287345653825812762470661085910150756037627979072096633272901985464135167742015199766303394041032932675675877219278622301882177600677591947593517137919828192360752545568875874897989381490466574251401956572612757182476049139903304098542249160949081591773925851220032974072756324072455889979146835634651410835037979799928896583974382024691073418155392830476414269492861875657673656540242202583792758327193159602820621499275693438779291583525450264828040924728104772840251461398010785052444091404236766884984454041087984907618102030071892912480399634338907624560493200204945976049720803099484527783850564330521079174195465747360660358624952487009299001130591468329735456382280602243549202484277575087219856874947132689576146461848732864978035968684284568340641449642019142414055822113871440113448269159976519400841137167122692599456036408967237460114348496476876053731619590678029018943668196858877913919562221776747611732413880242044001642346318053035635957513747602454379503487377130838462270607270195085019637346190336365363189903112798702414126570624674466688417492124912987379820167864008790516368708049908586543545794199167583761704539463602404780526384979082848179030632201769879520151736470584133962014599210199555102264158874786709879619909035776888071383905322772420053451048572494171755761189583687547513906527436169557117139280680126881005158902819470756851507573668153686765186659038350647543570457747775648372369710195612009740267797335328942641712246903631935737101251043363633981437264707253234179077627490741281346304106299962997970759080778851155328765228166808604114400254928198299724649273943156506610694255471823728709790805430466010403474101867720866822869179112314292151201504382995374099665866888818804433069763783328369382921152351831159297285676569748952250898533429758519120264374057938176802843456878761836773302696744312599212602311152335112141219152143412556664692231085442390190254696260773535203193794874585129348046647506774985711529853320155251011697973570191863054155637890886300543294447289393779829690407491135548725112565344012178225374121516920914658065368861960467080254906884819757270777426272057688109522761681734559457639351218056040122313112378211554148379361077006827961394652672617819833247552007291911638669908839325270132005632362279944366761102149510765633452344004676732043580242736417158384420466150223792884161308407228558342296359609100297709500217404018487069447703645548954889437594084508020287182440309804010216707648016152510121288040317810212901157083419106889897463803389451460599299593782905101797886854803717393557973968656334703704103132832265376240381992777873231685960371093914609382106824616533404255592924955738467840805719397882842966706793092636560538532211931800801772467738199091751412827544589298483864322554418700963451578437467425765706772278275608183220775586993225603793590665823589446068527423725400570518774918902277153785453251844389839460478023586272806580231187170021710883459596018171035738292979648811227816666485187375148262256338908546241589681713614127296597311180854867205224340511748850298357439215207599064431916698893195439605320920715903785302920059291853361263179598673679532754906739926076616522414610306521533676599815274606846301603931127610917660307733719083025051759378302805467330293005768413565634021322071726678271771322710463077703079076745715478349186243110393504055998439063366849713925491104312851011562783133624985471263410818803159359946752062359893446294972232306836701225886738311373980797969189147124175965961708727573081447289199294456445857319526823546256815286594571664345327498126772106238144868527394794503110406772613211857945630037785117982583269361334609127732201699676432798232458512860565676977194136007174417447167609443702467533892601114412640342283710213412389337847643500128117167131267823845711090828876392965175483051974245158257142048609087739872302939094911655861361462776956792330550374734131250720109696483278891329875364144803533747824587474436790740048582634954035687626661149852269560244573803625034028320616640557816256262359179913035074397431747417727798085321351700205496319826657171656291519708206365032389356957847070329098974098578277382267840652488854819921987351833143438894548018131415875123711236067533726088988956458645913114743393596774868740407009475620012329686789669282852611739958679264131425066036211378006084090849838587973593314257135153737546451467159040987540189329954633400268768443555376994975198281783568448474555116128667872387805172483211689135398503743762279352058183785136700993077003207541115316611605302772629832288708686040587102051200442266753074480889076104990288266273552561419348291089786872441019665668116911504241144235225722127440859562380263465829403287274755597124317309960704945005053380310529862142055842915408564978010339148383904259386016194545632407876996320526668588263470888312842281528897243232769357472010809581043500407820433294207086897394890906014215118079241327005268438763799428066191745172534964075971991381814186155770722386670523917528358053673662462290944981077306128743661267387574003259027723689755526836057903427817655327736001551707649933838930533892754549738215773431044921487627643825451998303991172759158083184376942884909659253729217118491623176730762821549599475458921179384654407882957623377445368392952678027339352166668382557873532648875767030659572010250368052070760210825207031031167002138304576618979882787627385164994960596834732123267487069597930388321587979742629243102551897907612604651230518054889475927092538820710734541142561062455291758468823427214987977206549206455383341158019665800399761851698400934613330384308553666302646902525746484715779227984416190508836741670364345449141480085577646537509584432056089311279125080132606496334677271127374118483934691588960248601564983089470623614703021158619362854413455632257305235894551717625525629863963925898513101006330306140278492894136467877295264568000376214398068254818327894372446589957847629127105072870564355709005810782056223237563520564367436124786651773208428583962203211551767337318709101254165427253418026104844987909925266078072644527944712737842943402335393198580846038249286915626198806412980978113172802332245987620712263546935063723540831898849183065289170001239257571764911534438101688360001310499470254396179025166861770311606443584315322349705150645777759803468123500609287600649370148346321667719932015343581023931818755307180710673302531456522347738443414169332057106426572041366395506108259473382620090968395755367960928453406538875490307318876747714552449247125497253676764528552928118127773980969391899769846193417200809685779982762996781555471645796195457659618300060755565158232806004728889551937013681315814938344902605085518627982923158225231443982647937069108383173499754959190257775543869960822365300112647042721424889504843659641277133890228836265288789387702281850641718618727867774182204007716268111508930480741490586179259690674663827792865992473323818169220116858340495214872284294369331853168050365313672204272739678849931055506351107064737573494598546497288586703408611421960899910147465484521412097935687628215196958179887346889798788096130452622823105866215556887125953744192283801867227166232627398353659317095277981871304986595604096940280746579966282042403373138405397270841085134918659779020409927620670257824906164503899847148002531888701137340006891051706328407160350078630185688455068637817659801511148795130313535165252702641646751977392698740710530595451670631807678196972671973969517503413055445625049474994717055831212977167240321920694036550360822702056812685283079612853212862533298585172354881766330183676200563497449236839495704136201781162399493895121105044473294837681771732913706811331444503758508553195965755594295361205625140948733676743588300551131678687756565887758209629564142218221393009780512259448504283536726986095417189463224394671694847395394609328252221292297494664851906761866385137020390842812206053335905060029120422626339812444940227595328634149191950500983998323877662561058634587817561947568747307840620736221257157711427766041328567867133250738815677834044036435386256572892668111338451024323543630461424768122155056492274785333771444088618372861122872153964301966674174907116098943883724444315894088878211435087059861061417127841056762082484616488433121050992815948601537547513960531180645489622222120377968716494420773445849223604103353997536494566944470378676290053972273561212930918551368829878980544589742680054966146409909598816260392254847139355915575148121580798167743076854400879583795037059163914492638166934113875087471976069609839095140911904399535643675994898495029159040341793179394242579426005624839609745874670834997991290190520131679495942936824111758663924100451282342066944009961497515741811862161208051429564157272885380354379424022007006005883100416185500360752017425283163010795140731108020588392468619800626801757182372396069951940648793051847780300987626086942606615127233618877317502498743797343070240715823856936450267392715742485786490198003110843041569244339743870269005972988781044570188941960032902293054909122412112826925444783820768919777819305768404868723899186059427425917034052801534119580112380463756528882561103235930634129546231783501734609653411775152756310610953338699626566518298900237283012694052920474829453082156363784083114614369140078484050516035268846066064951537109278556276912007214235870770229692793066950543163992901535590206356415538241971591084608304666909162766239622127259764854991810793549715012363098105741448377212063398985382756149546132811974623762355587530872801086503296371896996225460453395491462292680070764219545807886169786924008292197391076591916452886801696617456863354293568436690009561796182969729549518815204501521828322540049459403105264567837283776155074069530639521664462509422685834827635023252754415917383031511451153211695419924773345841454436579841057012989655362450825418949510481781804067745071227131957428516031047472266460332480257568973086448054462488016653475279038311262952660617591681515010352717353434257332250941858044001206596076361029491752352887170616591443037057076839570228747344412702745874422808602825186247025579810444644886274584889547234492290748555196122683064172401484689386736695838339910980417696174105681280883238574175677305509531632681296797135862467348184964923682382595396139104381508522326712809490710785844210210521294227200075084380260454548089687367188039804580817501244113764348479644174582881050721180938133775797754832868979697111190659935297449588831268674013752109521219211239954812356807744385083128168703939684817174997876860384469813885789799245395794535661763005355219273802863564101228908266779439035451980905361235743120399856172172031190998534976886150299815922497995612416526273397514333225007022469127497835696426303922638630485306491166402702542844294258218170905778350905041419443998009062846788880325138722089803085078776767690961211950607047011592625569529293396053042710565578746108907283806297740704137048697424194547910643675877590149528235064611814274134440813177757578528441777649668664428984334478022945264268609041711674649033846967107273420061271329848342656537318047934723858080059621095377856743054189512878919184743314325821168369561924842323462796301754016569474774851811738283634985069691101536665429277101501146623844134531936798355399899324960517472962138230749844740510712403473764612658672840442976765652394129148533219303740672347661972317120810677044968671550701110164731806407811187380147734347964629624271829098406066020252877310149455378320773207953041397213671084135186809105164739471422500162936097376875676498857483114457326618917798530850271359205609353306421758754546916721326214264424353480650378725157805352185345956038892629440861006461006644837220444243054673870094686959689714388293935755084470858957835200416173900315524870595689870582526298203295295628218526481006949657781399809488016292432119056781870161276591886140404690708175242168157182651193514993985097486591390395456399606515889480088781751373766268716096918239172264055941209939741421297657319455135906670724507408512255398003476780767356021603558926723436768987123394444687213034130088262212287753608571543180153018992814977210358516228875952594546172247426218070212943124001239220967563872597215154410767606256862779842787493195385708871177912022867193009525413210222103592792867148951492140241665832221299758419934616676049689514631894788152892944179196264171958772688891372942993571303406730340124682611619357433595591604210701202807971294250037752983377951247690455370297311098240592429588000309516217928948292106225822826990416660177832790335332901542800683193219612400090159454109521794969598172884481021801319101003358128854377204017759716595528068113973894251118608861924410424903342102339784713367163567700652735951488679203153816989329123867951117931629209546585606987045305822784762236264435706056542867249425596289507761578323380167053335493624914774315046518748428156326969157573459275756503815334775815496912960555458768802375932809311051702091820170999483613040312176214838088337178467198696869030830985257918969194094695460671872936772292525102399597604167818858700722577305975581899106273003476990623552539530322718259879961592337980331327904957758218815587120669084795858670942944966029873330413100782295226726513500094314640683296259177891917205519605090081114754624914034941884357511882709983580032608783922673309511918192892079568352988142700473502886749316893004417448108413073369268457131738772715593002363436090358036031229359177326922685974133558735992883636734753328821546575757661212266036474663975449840673264594984575038840512038962599076619020153235276230479255469306125675358032259205717315511091547865843581946745009687339073530769671794608368393225600769511815635103976086868727090926397483547840829765434096358724410982135220894299865561064891025976258257856358635510735181588840112849921739524016409841430026608120022627778958284435426346788527188818259057110876311036491255222140900209128568386107992253745383843988973223079718235420347580180194435620055669511210524032159757573992340773378697473105999681196919695727709142667524728135240805602078076831138810675081319378878175406146686683346699020908313475048033669849086953330437549196941820363257083587231178380084987347256091097851016880874956369701862503537312031377810169684869141895594215169194932031214282573020877607757286720286400171459554787262736904149427671211190263172242356738873062398190249315203648678094437582297129427872173053787858454181420770702120419691361796358863410956130938131926068835825233802422506616410431445478358587041831756989614335562144196935587084390886199217778284192502444731920088775702296042219140317971093522219923468828617401042147985686272636433202360538573379163753920154745805112039502945552528960353037271702499076688875049570481636697409348243978376195356537754081426120626238463911643162211876520723608959678979592695408457875301820238394667487948505537612781263877674006013707275638333138174792887371915916159702444461437208210406414299349438684250524619523412664310258994071616173884219819001936719167175914425185509383177215163669772118012345583799746776692729478998497493367784480381272390333679047676552228752549632776245943601360988319766553843207047980548238373565388381554765791676153876424523373361100164117795414001675493908520683485364172726345768837258257657655272358155148173079491766307402766309802763517487461626093432182318511478094008491688347370828382208518972831408737919534526223006713003696020561050857092177044340212003789316357960807886535199059481955748165593030933369911464337053406277397237612772859397771591200950513983130589925563523530402333081641047049490673450609259531724529656774898411914945965063281251202207633191757159967648260684896210695003739327587462997141190546430389682662708569635801557351363090124555772353139808359137826472237196900249083353889352025667719343070569689266138177985269438355353384956396199507655184875949400378270853643626373840390528958572744466466149315151769521934451797150344809732779001325141392874486602074330241594744312069204472287955660543351620910714913652814127093060244544533328851986169782576649417151867196564638508223830673134620699094950378742473586408989713842063529559405227725639541246117846984176912956837147351012263396978668365885143164581296630589990366958294547967653916705914466517838182703505504184453761410049375939497225253823646318354767619798332355258981095668769123722566017809126243371591564844355650783350666656979942861538558887121968468808249385950462815657429412995296556469363982437674382136631408781308073822590005061599374073726018195439509581062504074599536421341077095511674953245699643492924522336128993481732966337813232273958693326823611184998599331633578935661454256266872036130624264304422079973821620713805289054648731249377012524235698951356181245417718594774065969427329026227134660497801398211981033680886733845172536891412040395420788901009781451107176503709927013698289553595450972750604967669409149917992039626410785677080466834607408803891355386251465160468841949121389299598001675391202701233388634117582488966425268921216490364580783071577179205507909225522577735736835076596834754419759087636288798380228996041984829346165562527697905425026226194786780726196197400805778066781278234798687208376594549054910827784471151594565808238955252415529331487084244885504226662456987318638370875918207592406916479902176083194844182434829929179294153775480936393490961119803828549735504155814018666543991921167018273205677477318903833066755739533956625430217494019057585284385066561761870276811138582893185425239188331364860233810021386277594644026861773758193568035997393509164931349821867244700116167942685844539285564916929894797352984243174380192546212365742934034479351440197169267488177172891804488693375437674115731974945679949833580243648796900682350707050874530679793085070123879869811770716672678196177785783115206796145082131284570574377868522252594495859805886201022081801278331068997563050309755659788921670957624112909986636122876976973147965862635356228196782998993216827264493840370648509826833454182911506398839575982828860762628961618694043318705240612333457242667352136415634038782172755818563888933850748696300735890656798873568712880456600289958021801269929752293696023447051718929190971510110722437269498953399710222777037880967955886459216032614175642692530504314845698812621891594334390511952607581655597262916101265884309231117292030762147886463533112235044757566179953211566455730073902397415746554788173210070500913637370622007410180910254283705461244244342183109114613313276203640042304564738768376579289173059229297868931984648937019272251821267015371753236450390376645776144920261444304392814120807181272783381354064267316645837811396047783958017248193482289294099221290253786707673198472538058243005249265683306548905279992040218065013430552231143056724621104855648433585290634357308151423865123534848726732247462602481162479482470495252294658207886563392748173049737069904324274654375034564063427092555799363512839223555740723888474186822414203578165725157072868131345469169810626522713671640521966494414348767316945875186572374639157372047532012590451791810132823256520308909095031265552478854183036953883244896369485016485234993450599623652970551812729002287451090597178997007296619557767914902637215159032379347381524877865224209588840514609460954276452205851462814867600805666002032495553017112273792591387506601133334682158177692630499421616812713505434718547151104271552479348709590481273561604465364815046139936866796836083994981871704690066722246741252029413042189182059940821509711294275118411431702582215906425289186141888633862807571369907321315688295602342084833278030091415817148604043008535043992307170841479094972227175961183971852587492257141424560427398432503838549907915530022170060658640683090306888599437153634173271888847849150396915897492143438461089380873515190042078726548828634139628467101292381532931436245595965295110060498039522851882913113467779312953155401891699930708688915355197194620153964383263294866182068342078153113035623123094968119796503749988429316501089151218152556337420109128014177155559744942407598435992051501961703293288557434547947833848409721390930628114023215029240828804231717714128634950038266631602363922443400874402864159889336584800422092923428996546668655167814941317147119562510033598128844736328754709745399792861204958751575797371317560542485825577521272545684254778658307080594448747870343815519195840869437485119757826032136083544568133140981881603697891063786200463555865681667124230664923088496072210867845227367899282389244347028338696159803736104887208360330796460935220894145834750892378487310071662871574608146151139801133116081675649627720296003560224589015668061731144716390927567090598218142308769846054291029726899953710432441685817893056668877941153229938035872333614994692909683841755319567704058334864770440940162631577803486107981586214792296326943230783995326152197657569201718273812986570392618627030930483933202927214982282395859938699298022295805216583381076769780549623233608417067403655881790973069683908890440654512946748186498613603315834149033247170919536126400612171276725400234389426863879587156962606790081532437313501297327138840141461456339675564601135340780195539479029648584502090405453914813020949607201041604540358601537673338090669855536565261041274403270003768522774032713100274910919832888601148307951397139894646256674011854416747780552256373243933113108344703344229716266228419865673892392414261023016124006000944256551360070430946912397368700229309961500908682540313416829875399393689346128813555111871164050676059521383820872449905504542234851218259925924209057936982018716194286130383742730339727032949778976534696947338974422714131534034542904801904046034164865329102686505168719848653528637974449223822579916365810954645748055409906201827372418717193123693087138778482589116433897285894742538317285222375189976035393208949017550854090794451228828397975620035862670700705778631517103774944140645529640412930915909463087051697511186110746643957015123177833666381515493175729294905202491853594758009955986630121832787701918099446752218740851330079646649383296945459530885485165695636781942415097262228698790700857665070468307177591170088777808268473794621166962870953095799303105121296556498180283603401094224656833314036318341544233929263821869675896462569000797289148198401183113449972470471060294899613980948904636357572806063379998120637194067449127525475554150446595950374075906130289606360078961247785604075413299605653159195627707358652442913228977424256803070645642343313806725552404789106236105331783350890785398789444923511590880110830460865046894401858044594710917342826152470626133643546964717631513436842509486133184166540236820885141406013475562223815973891840784949929335901372311556713667768276684631053270518514640876446090303768170619770133929774847600180502208540671888095624071942458157727473708073547819786624503870747972927246166746199319261786889667893717339412788367310727237288718490663465578068604469555527890073602574931986676512082126276477263031582806805047612701758790091011128460534440828644037934070161652900743329487354529377851405820888885230598584223521209442883113956946415187957307040463944113838571933428378049387828492407236489315883569999627729807030663077903013337103679709418137935671265040542752046789354128124827581161632560311901852181227663263545727715523765663664817161083951298392227540111725521661618335314093112755132703192480467370129717706843106424289107978448510102809065325829269877881044631481681133963327295295811572679235248863404504159069227920335022276963271906629166553355707018846871754670642001017234850954582791558707424998373088925595410234230078855361642049215154338213841555651703324218210183116761136343696575233014313517097103867728497652440527401665139270556610280202222139073591460270107917558566127776709800049776387135417402566756603847977647738211804932573906624000554044957470050401566597754934233275251275637981576854334269309540652955161316035442981428637472956104122002750048564578578400974903110917859863076811744121794034649300995661462416443551285529691098505636696950096342713601300866878897561568621463702797168627710138220103311887017119593528793478616128397654874264809454958055657933958692894664881964830460895089989730125477833682888736190148893267760880094062742361654208028234616097284237038007010430137887299035932906106570922493944395099768445703018131662514041023498808849394809730534650885905811864380292641330242779478196477833335876449010409498410696412143685767226033526926904438599943588362452575925088266136049227763496356551134484507349310760038789599593629994621894496504062078157525739597442335923068826039405933353531800319267409093255011523454047574437097951579477331170504588099705023393392449852685660839907942295810775449727056193007220755772274412769309864083684573055833663529394996599634469895627674662956176381310818882067355713673984341307103313733820412443209245846892978575053965008454093825766969014168797440386513120371529075845210654776691785234778714525993827543135771845152879624948387176573393323987478737826695898134756933191425427167083135324255071775720593302869360917466356791217695259305066076633693269414265459058056411906843577727557260206042998253851370020133044190506293588720677628991672148930149048917491391934775024905683030411790933768584162531977383346159285167225631529271028275778180053163357328194486453450064720586193170112475393689122720670969494629233219789305559547049978092568427016431131259027906898928187591843205152730266260490848331504324508983749004595852764222825253758785927240260579344721977173052064756580453714355752411077045794983601167640895754903306456002774375808757775971780637786071146355125159894676256936793366276077191394991185872324841589704967876603019218956082766324567100451452538313860302450366932726156312095154885652660090857010781865035238818045131066030933717980647405346226720598538787018225465698625194555748528648098537070863607765924497589021230248555155453167637164145813817178045826832631796437924216146103695162037678843479575296154276670939739446840998208799850008427063766205463891446121539478939929872758930588189064256972723979759270187384228066772792344777472322927443077084902109911159154300287940090266406212855269923714127199589238311340507801418976242652115200074790072934706849415758628174918801885253817743982419089430759940571897026725648376885706977378230191160124557099880702210955970355409066792490274177209113658589526089130437159293593527570750079378368402014648189226630760107960620054584389730933931316579656848505538037269326046799097069719234210662584472207043877123067574516689318147769343943838693296585348707969004108507111409574970062013401889487337355598090510443987018127864954866959242933086380577714788910110553661219231288411021622658024052677334758138498149927928964540744634163751437390909699446038644915789802325034903815510150635799601104589517597084222815361527937702695943677036159050944722133203177280798299297537421323988511270217577851031761047350265813627837507850011282398531937919879101743231543783123082148830394161238191143049941756311274913623070765141544548731540528090252657946915840233281058578284468912120498273272965990856226679936235851533670836726182912658922822970590065335424744901054434891522988099470508507454487910720275497798261463785525910302551142299019308943473305252352189455111260818633451610317662880288989326815836318932959079872389234272636891938249817630391128259190039775016501414155516836131150356852781117590905469927329458603718176111986833606887145734960006274635210701629009212045801860913019739834849614681188797094198210180615105023692266662802898621046487343785469205891139864418409573771280324051715443177443832593307617631738287595167536029334425552874062875708670818214639281064246500494570704783798268812499862569550359148046367956852689729181873052953372362190247191604460799639187608326073082356816620240840556769113892438189146535996846613042252915700317147111870942037645255712621617891651836688828997350109797150078134870286696671690180786564757044421614782261195650058778977978724113955762590958015956901974841772721221453777770963838200908370120508384315103230728801088893248535657889338242972397271044978110755169906760927173972957077191270599121823142459619948613791613174442604842908921052849563342270913673990861610733518555121052506110984828766267779155744884439932532793809312636807062772131731047497281039198985243157266003831217209751681658996643758724412496655449231889333712567194689183221284202235221076264462135725435233192361139410403658107530875399694084891624714942918041626746535466220282654633739766012801527783432469405089757706917450944992151375980853954066436202440831780805993982098126873597914267800601244053889256454395019223867214958906004808628445432546070682467470333116986612247642913768733456518627672741000308981702520564800349146082532374122208757768826569375035126132084982830378543925832855206650738072936466898569576905716113298905174812454517467482134280624303512364993765589583643406507862007236078096780750878414455299512944752187746648756755679807307619194964202691248232668867626760411335442653390063424998145051837129205961290631077453226355563248885994301847218010646465113797702352626397055057351890797041929735692295437210183717493387725762354233171643265798313870079891271465175025914746525420813552981535413202983664367862338502555496143890302110374081028585309286862301393628984520019755711487123022157638301315399421239984434997256673705804219501455819806607571354296717783396244702137623613272047529257480891797486795566426638545953815219481562968001891901289925697630033401600509005504708883025386291829169279660094523707109997024337550559460316221430525380043499574259412681838324896673881718657277091984665613268565671727196145656556502428672479260268813820799386572922850129535965429276053847756939374275709905510643345475964399984944197269660499597719253517481240548644593736816122032829562233808380756273316574154282012241441625377247900592361369538576846472874893862697117463218616130181531564991835743531128405288304463085234140719927710259956030080285853326242450830722236175922523029220247040444533713436554655398310497511067204889857322427228442505585056536581478578566786309807473288565351569897587466978763746527170995378646116976388469190748281665697540798956505064101706431777302475427874438237237574941652149535065737559529350521222654845207353600653897924469019220535894656854136076415038922619262405935431007059983063267420423509518979290726236189864974474565189148229894420594286364561895471015195655529850183337210899170803510275592916868141284002737960701814159675970231710958454428244040656301381055551521335948256520116684162370620667794296984411608629391659341922205255800912664588624072271748009705809987459686593744772550973442544550551203517891371276020095461843066897836617688103631453259402014521761519231954187760984335247637711932040908850120410245203918657632134009855441698547957467617904051660903670248147339040415527700951257598831718303228122158631766598700123372807815519631915866080269612823860042606189351566883557405777993998228196868664513970240343150574743501050861213691694200169261431809497290330164603325479413680174865979094630507341173604550257458111553316818928021872427814813774419740160912700941053828538249846051372724727751482634345632829688820528091858372673370433766860450265869694431978420682292840879681376282597271319344143581479987103789087171669525777187676842498227702886189093161828623818784351961113667570138993752542625892468153223443914553121446593473137490713185625595656692172030660629741936499310721786411776917666268210215105885772707080940397892646386767397113444608225576637561850390348253516745498780012653916556541594747227221099638497582179098813843316522458160809304059334642706039671245936987589612315196491952266551098943678924918875175181675464731781533086452093719185302625597626500514127591706679622439568689591246984753407855199776136843782734937564155808467270611041378669897193682696759692948292403359418357597317515844254159340533967643694779065251156733806181057689191354483827757765198833859779938704329342770205708626602529244708579047037642531611000488897305721581521134649815166648792405990708974330775090926494169475151949019105334838356454354270565546213762346506334275180301220104386849750898318011685749796259017467934701690103781109496714898592535650451492479912482167042818420107380396609746070769332857822981977795915976972994775073748013965041462973442377301778418154478746679588754309232339702572227006105946852430992507452035213850384812741602478357853064581439333199290936855383411752070653128270003897056967936406919895148683054874431555604764679078243138455879782993954541959871343117338702781337482448365387409705753561661189943580454443393390496454666361009200650363780239883172319328895916201832745284739505351806563710410161183383768316790871163130120371682483989333667123945695371972015557888336655189171621224367869800269798356196821202094456603168381578739125683478065935422363382372971131752020187913639090876466388073327387291620670380680483406695650653648783842944283831487574769300154347141390003322755162698247728177810498058426770453818346636138945716468912100433415011161007475489370465888104887056466320071936226534185478461011787737193849914178421637288368256786564082606652534195817561235014841780409158661171505184950250417961281452932333944848516210604262791637030370973184413116355638970923438627439572041037458871085018053569170726637514187855079786719376284520818632601801014446343720925650155770150590274654537699556313397745131613793046566057600789676145756337739654210915737912724745084746137124348609666066695288076482709703687879024356540053549629535585829794913301293784302316950750350882388069513862489548509684266971607118901973725831253809846232908825033970773845418091892735225746450815378847579936479060956004891828999056385432401170846129076114578757629330411111835215423900388172933292689674570457586926897192990493551267717286164772076002408458286027988099852382297398988300698255198554566772222307158041131806774473310622894084990003306929105886260424795157247723182197918769741267164510474436172080170569884393176359156812770187927195295863809869458454624913236939792224995225704195436426622097498676409674275962520014892715834709245112357334456800420143120133393764406598790819359904618382170303156815229348501164004804869272889775374585309522912708007640687654017469335946692755974440712087530739592422276515076445054294063597886141005161066531888874459500685595473391002991521308873675864788099661306477493526125338985479421660459846363968199313059623020559587196977363243883161036923497264866903704754904205479274631649676672053767819837199338212810556890252074183193520771853772500411528073170646484501033721747037578244587375231268561427915177881014831783675038308509871501927256090197049914066978885759913947334758048859417425889026158603892030328949105947925531142541177576616070403941607949561380923323807690092716203495205558006622617361518698205924618469332964957858083853253236954995692240717284089033899378135150037358369910683381797176920835309892952941161615254077841183396852165152690306999201321493878841805298923681478776476521762588638792606425655922493904648801128463110918524828563335625588058115228786336261029536036302761160145163198517761349164052507975967032400968636567246229615985623734291250058838430687517957424479827260700913437469951184853736794400778373742704688385909540438849766383715358525058621029411363312648278218294232779664180863056419750347985356024388809761865021299986264709409795207738654221089110456686981160542422771338712174092841644271390139654368933718826724527709581623247586097277038568478684599633234235577997338657732676627047379506290801647393472224022731944508905415128490789441674675552292272415572632715318455592651642389917267643087335556138388046379818687548403169096127998658633292144480177594601434297754878246794185226272096622861681230960172182702458490264474280285975626991993105791973966515151910305661547566672559781347747996560730981565269995825111789024816651505156202836228813056572723962733816432403484165424045279292975397752741532133030382352059017146550639732837384115413024399007827238433631317604217610791203273085406486072927680113531419526192248248110617822641547744065228726315838470861997448344399119521431152143607707781287721992266835751437955856802472150811933975188586917642997993437811846137008139139944112572735726732104026539131710245732711662050073479342194740783012835826248799607455219547304900182503420393284405660961510232950271738768489540074482881439857633189206137887977978186331978246430392611958832629381961399436878095444548123636526095712453603830808347430862670151804008214049195751276680768794274697834421342097032976477204098257385877878821735717278966896252417912763593615105047146868368424479739286575982185630389381161064846166154574169891686939932627301960303833181605492599021520320200128253873960713425823055796322991462261264289344201226776744542274690497338315605467734539532525202991246908536698542312121728314500855317748660621945028814428371793925087824592894231974237357776162296565311594494413723757615787524961389503329761825230855451382729289166789064153143634520249819899290472586008441579046123679063580048829413159538698750630723762718706260555246998752793003162497614320849696095300576914546986072969732101801857962654180219472868597668771013880563169614656055756778712983451060137307919172638476434555720216259066561547546445962765063522575426297467203294786494705306652255960237156743298904837401382352167294612735013657352530220521854561002968851046046100438610165632299424691813202442576414305690388106986372105164730104877532356073893667432526320110599335473648111548414233401749277904854234957265500054085537887817734970849458275215977520338604835080602938299479100400501738353195961226922484206986804106749289464534440588729569077310967815708869894160025286156872193219590975328215903733802969696634063838432154745644467808478585773775936488607352558524449075661411542877350299517880868932058289836685569481814274923131230705243940090332705290921774953930700421396696349663600185721425396361114502965061970558508524631343106951378246277711047572279299393805279006680763758689399828175519476389285183468012977102668338429912169896217790767882569241117769799272242342255570000241067966866332573342056232339327340363092735002791484553563640861850107594116969776276227960622303094687854107559755108501913528678829831045620609351189027282418723280067959539918270927098542403660207262716113700728062445056439458467043406498131322009674102287172068452566457313542798180849764197437747747294032957754788637148822417284851885427686307117283905412999323254176382642448704081530267442341373739777932650873132789751130135188837294415208005556026765699016671188920755371422192638956313561633366952004102781173690475452887231840011470834907439377162054993883637198105596790884900772458942387840679617503630498589996842023446006012117893502955801115689445002555938494395792099365376779576879110666347555114037170009618066351783437832972924821503096785122658090887109383603159727455728300135121411666648015439711850643565498588636894032027570004706599755942925584408177122515467946501356776671261639570347050904348527403787557415373820625168758278837209373072618247939665596130728867050571985078036445832288938333767197892588650751385112425334570618620681628260811748494938862063310280347243195348463492901976977866418431972985001033016413308260604981432644485860254684131118382050548774986701634322713238197075698522605231327438303389026218001651895289698085696494985086138213495172012332923405126742498353586299566473721630129604836955737538439425616701509157866445118768040508568330419939439946964548943776291038368025868921998963686116729767393571865489602552862428512620351180685732421038908957885753992575039966907652021440871384109187966098663396815725749397742844908914086710168002121206432239896692406252994265597073451826777241937762314963202014699721131864563630828892090131955165338719406720312980401690937842145148662624286507940476054549385969077305272686473987174100200321527020988371325029928546505872529264840043352267759402180315378670812927404930752484460501463394677165577333479103063741800720200505780986284475559847062374450208531551109544793617210171435724204321400435082194127660055566026441672987739624918699899877335975299118378680193772963567951639599761196021929056419692328270552435343713181195185883805244813960205558933263319736373967642525101507435874501135236428127288915048022438691161493857396536591043060880813036195248576548238815697599377928151783219062396630179974533787037992661728005145434975579058085944680151124853958124681578501875022865072595466602082512635575362922284479602435525919849827696354248516045589269857221596883321013156951716488504380462670088175189200113936994095066827688048185125864795588773226743195487736583345054047468541399569305394466743060644358367132500455823040683414382050084736413484199127463042428989430403593338016668023745647954415147831673677449771561082853352672521578453748083926241227293796484908752811961103905519923838246395717283306741605984810314174949609620110244244392817877624685246312385117084193763541440682900679225394330166349699154513559584197048182717050442989631610225344641168029430360051491421555596762308735203537995996971397920286270776161158330715369730794902465822523372759443350508981078407362137772760892866572590012553003581793432731969779626528854662038776374454466391479478556944338523988129708596872628294969446160391485661166423698715720849565555673772650293227891823357269898069284457337718673147945753829969065563124966954568551755257527684894235199437356741480986073148330862709977095687525692719154713075281961115440578259576491725760367847149035028305005624046035650442877397731150765356846258928139570655930130704304497671014613722896632536835745413347967051917781558579972883087815821211424699923755373039654111198211381215977980517679149219926555702454188638615194736209033651303307429317514772589978426481997583721603893453105507762641197872034379006490095402032444397601378035280476007478643567540541637223056095201477091985524509760424519640464386972201390429298403395847108868921817322079986356124007724460828089130522759700664472670345504820278793322554612216905226687451710688159346524118314608916408016152235999652635998986054834808314211566078309037715902299247136576273245773387018239200591261216533242328535655264786082271791341711218787480346102526171998638185269435177467849808940654165350671051336708870550506848738384725693825188475341660611017466965086914361394961512287646160715478222423805203266110350449594998663563988975398857647105186230078745332226615850728235049447455622692213349144812528944145278484181728746768028888182198409653264886537197854369171173468404941243871566174084818318720098242664055814150473391371264445712143234306039374336743583544379450246287511547141909977014307403711940489466179302941782221662022075232467680904420162230924191938628217374001218568057310297595280042161047588410496772516992968929325108366191029909599112482707177062983030566979054742408730583953008634084965968819047792086683795069897914425692264922788178191433438119962530596966677281681491435065455990898180535494951365105500430394602928030125191288965683384216261683517019896811485865010696019032661857460990171080392359890653451324523664850381269598770742526153347428382868510160351407762822214081588982831830913488706876752083385462120327052657013687141491163459869148720398216555747847517712426551594320432423308869533669513118256514855905468164215894313209511837128449467854395204958383080508106785628494092855983399306836132843576404312428295986288635928614391511017423565911322326867724747262991476735684627862848632710064477567085834675168996399913732704410252807458762087735016523103156258636670570075290177655072729540510907629090327363729364554540801509844638664501074391634064445957195851917077761727996432483832789455912861544912316481687917858211505072424648083762333083782577060760848137092586843441063725641407676786937912258634784330988463796480686509815319899920564442242557311152663443143423078896396091056121869671320995742627360829209456655641061728593188157917245018697339037088407089706308895748664503921861123462239915671523455290563690226596115424720459389536505964235278479772942099018762578740233256927182555413163734098336316150223140250146166935465647784735566714907295803095472659455624999062106523726797014297909340777172628465198083934008012085441155174965104919645244282091735689620514795927767201975603234967660097207759277551111148703744608012452180677974515996621326106283989822926044779013275090283121367239255136801810032188565943521122167175230293513066033759935953847879453744199769044467749717898589234688699877269476742326313036625073347108411803037093898861053377883611364413916312882758406711266894135707507766378781890914050978363049034924049771258533057590577247298681100325234943809473410336355229592009841684876603986174790687257704470237739910101619424227607424244443510765489438828265552466975804826701740490745125943066234007188611520859351130311501906036203803976519770333508578349710588962606369910789085075261296323998346857600084562910922964739835119263717847014389247090856680244125078569239971049147986618523173710957279837786302479238221719339897371703876420615338219851432865452232045434929299402488132565396244167477768560306626095369212553912605474056886163433420129758362515566110086807047420102377352374447770772172807504626870445426332723427386299228304722792505714648481257051489341325746633415209653025149762684793081816857684619679334333760874328162424695664352445191497558706902607215566147015684915575264781003330874676944030295568235738598250810911776905611741484328230664437072272839726082174686687437076839669220415076954601068899847265199256280504065257892955736051473744728793550109983256452620962340274194325127807537609695601292220323502977100298369183013850177118351563578570506355847664347431974312752335408917105071926489068827663932972710005695568747543362720086874815307190572488044172705105210134452155719116571693800674629253552658525980592010609407455911253206279462167974102341021552311831562254809649972888755653516398392367876169863862591424230467135287825340206417915039404073431544254577520963479560965274339883144765533240592385179414993816720229990631637750412726592137627611871453143650179800983726385972160864203967864754057426434807616699259086724756714495830077789401896739416315501974362484443537765231307223412316167373400386657588169741831092686461596558234804040216315013306928617308860232564262648847824193606429131827997823363994650328468476658916678527488904245139991220336721222313141286220753941350140794184420744174211144380958493848406774094524549544249172436657448416084635571355296011398297514472847815621925319688915332601636098117796563694901534048825851226434152663619603257262550807763880496141810575728528637929183824355505396968167817857475699101227612303766524337317600247656049166430700229833649948739405393689454181372038548235281655023169671611917163840015523720518744281777491591856253952997620081396528291990845161359119770570928635187131416172934160603282022445753150984147998036789342511328734960965550159311399334919110497089514345493246014843518015683036222658120787092076106203679991694064693938767539166928715330937719986719133338685948903620440287717368369151010857496986833530772711692388111755009654917260117192280448706878244632583031330285770612596325402295860241025501813565495730832784119183859288958979103129108852753955762950304969801941954700114908818543164190800854907260808426867225571563983914915906962405849692376608231453468523785972471867745579886941501195427324089896716040274703359210162101087027640292993257139205665993727547456314057891703102466212608802173498702633055749277806064637970321029241836619163583296329561175147002384134525764834991874002061308626547568556162831453900865501960457411232998440879099709086786305880751629266120023313799175595470554797590967637823578392250959354110736262582714100826093408548614853114390628971470500552112043541100668374818543634495388616970193498970747799599839321731507528112863010884989887128436330532099963572141488556401923153645816314285832437835860057954262826798536639715788963437092145996683249213670844172700658759655881091919374720418725494938903987998600572940770677011070335342322671327003316331531707501135959663878431717661887423032336736475065887218914466179763637453167684501419543849262302955889217853739868299950040871980055132621858108108833371915149635670597468529873068108031472464473668688441590834994026860812610041892382208480696697812151520516544168537679468265009133423971916849493082395316160734026304736362746078625405565335695369613867759547500079893086839955421055104130983136594982821655027428260483194069788138360675669073017550129619366373460693566449085075742347948892097827973151721614037900198869869108091770225146666476860147348606846368510345723910905539257909857015655311062753765752849293548747322538842616261376423909866390912622653589675663697746877860218972722503221324251817062634894248878646312189828561499557724819845644104628530873248995991356158177261579114485927946285592582200727947327735117926852980834984620923157476596367850614135902095058450290421375691721342514121071948267875410535978838721701480063023234629369722952861035762563895798066583528713297855249519984619533965499620249234698416898775921692420548994513341257276485702421954325516028124683212688732187168043523903633085685149968821586280038377808994689546417447204014430692709675041835949644922048777063821054685352346539846721481540432480261911213459104263923668230357014371919181421744594717319908456540332380342011910390260882673686291363099643896404809895747782557534101392061571757701193435581817121349664647495685400339732159756685535768694507779183984900568002638720193828407030442014761501664076548889720396710775549867347980007615417705508654669752517624914452709461075335906553945787684984890557639572316357763763744222609217137247701003449398798560145324494350964141887423402056374037691556308748034176125029882438941834829699818418206109408111346254487701640271875085301000692314791270321190231646471845784271609661300819670806213911167763821846076463907750233017663807942716491208222517119858883431958854149272586811020990336609457670680606887578299826485746607240415095118197109852358975887002706996738440736414302950471927110068935686829776356795839270020087528103992093655000650519674489706577113583603111101068349132378997943789494426075669061053123785580226882466819952652558148626888543616161580596365416735978586184236388548357753621130349883687442150392084534506500689605617372797029702674605206162850814151164433238473968039599241131526667357467107400765344030677208652533666038435863245570036879593806048521229897815067844118760594481417780680929244130796654554634918915030822889155867197650188120998330896926722680976566981560317916054011060892158706425349166126598086931980511486711949493974026132981039121404711336872983300238408284909436384449243027287933999442315209298555165180318607604662677379731122716654954202010785208926525282069020859848467682099400509064426885812995831991504798705038993755310052706746306161601076466151333817567076174167736316470762615632895428687537676664053899159775851484326273080578509764189423154768354586778380640742419276707999115377868714494997980012958720277865485654121541943697700516961633785749630585891603229198631200120885524977893476192439612446871988091675342216349714012686365669956258957202205130918979824453684917755673870156265864323624535138716785358163237296616845449556040383582002174917795488090773381071440502321860421130064262097005713210030304614785603384639439847913467568389542337475456919818591443881259600726373172897443420614397209808686206083371214876752976410275356273262663176968435179673556147642363877324898807820816655087822646718240272697294753382667544959864221302553057258888650386897412907863370607183169838706766882169825322876341138806884675986147517094336521625094849731985364522302909172988348680269972356174791428454960110494495288558525558865401655331225227418254312922582564886056175991933364221257869701676296314157268281179607234652157169518434443157638828089274271900513829219689644490329921559296273685480823855901054618451300496096681405174179072867934262872025148429512340534367882803750037338888608410750093979894066653919195956591161601819178616908822502078136019851775333555541920765040000825468241609214260131974573228303619191875869792584401530115423789770482374512561889720598740895588668895430436240122459120675219110404806159082401556822169905909137321907857026771248609083477591604163599436285454857563906243543694722718165762031257656951829291583414268779172702695377007736352157791305725563589961744474557431105522270827709269802364227096928486474202166006137337437977799647473713456668938447687888076095694245366569177028537091863695355349631209226079912692556722194251930668939958070722071442535492718406719749492431943288899448060694190734714610141453531218950126629273884653029774935319928906002082740998116983265910104132969241598772677675607458684366403581480377127027472481294543109257465607373920226734971634272966656809915878347898657140607474749795309422365981993436460867074862528151907732112096387121916561876748036052145601840123387281980195205050592779611217117757158028470942230673997421066313874923313043953309692567514476694536995633953050760669099229284024035942998857793314026175582293548404727964700744819334771755521600633360027717477129341501564104788490073809793231608547876054223951973316861208866183886411899596139547094883570751581857453726639865216168040635614896549216509163327455066550422402252361557553625502947755333000741695209494921209161341735320156674251771387692944337554429172496036506568280464011219634824427215311583580938668458228083062484398697153751740261755696178717732889820152045155057524851974582484757960758927641199854075731751332253507145371120455668620858422687014086165296587290863705831111313729284877090897148853340287335933526391781339643690144416350895410692979683858360203910793839656552022403119097097639855412331785594424081269617744835970789816588231487284063324695553788208657128593573301075540804686783449686622619871169174751171113974076628389365172532736569873923502390736197656174267258073194910409510256758436075512561554235609247024251714993870118135399447065427320302810704226430816079599834810514533968580811335603513084149957333225860456623168434151179929660031491070895161060401276270653958233898593084325802590923023526490969313954431935850542584698466019202649102972627997784305042672406733784231424613578105510817817899571025595533077463621720928414896605404510016186948444796605019852831103064246028098885139847603218923307752856287403885338616160401214404707424866295992658901843966314161647725593924801263271899019094778267594423930879683740740612239984183484085420067308444695359090873902343569103707675634123181426865173083115698891166656551065793978210821503761046186518386888032354810396781697967606858809780132865920507122893656322359406161627974173622087106918322720625504323298900433333651715334729362005454161052352724304201202621476732440746492170442558071141953614401331568614577762503127967108628182242631976094761656893022166245544146160926606105352373915190541805881524926747388166768237823314167980998225356033093689581466097042012472176632225340058614925259064156083869610761997629831798553016793803697458153776027102631179634613605039919838112327649353400954927901641952947432186377958285814549598794012528178229423408488009623396505723707591642535289982396788910599240151079533863818098599309748453902046011595201601420480348519601661391019796329841819760618569653722590258394987178274730838726320906050584752362765987831189532866022339464902112500456437482731410677560748561817733233378045614943536905193208441233891801912869764836413185786842725602246567628763312751609355823868633686239335585374217487913346220257276055433316725121791853154435680658620644529299422212927485388722685544765849216951456058887104263400191962005683147576160532171728105322929316435251609083417238589206648372299435724288565815331297879109522318354642603935622330829748693604124241287293066633868152758187970661853210488451427019023553871232836479432287322195608880786067026458854196337200696505679979415832332915280117050642846572441414850213868893008573304169646815976881206975673236598576996748501452398423805633345731591973455814446569546028620256378127537816250115225337232555760023469613459688505773324087636533390439753701278787471299853382327544393898644406762230490380917773218799615327803032424125697889309872847973520080494915308916919121841459696290736798539540193972636254886970702653713840385718251912022997257003240336369514315186525914414173244756988363151078317669683343237157811026473632289486330676793299712393505399778807145864037708833438311022018653229409664313185166226468040894114743942009820322685581919367198840842907846371115383987588012833399924351311102888929887393954829142233919628926874366047039494276548743950482626355567772249347818588837973323583612074308537980665094216398537397663396806440880892821483074619363541445126982606291207554585867553066632012430637628893661622454803043105855952692231532180752440211825986587441345908220955887221947662076133357220114360042443328128573684851531740053891160935000544984804567291765881097598960227192792200463881651383566372402305730457945002236810992365880400053576378249456827347907932476872950177803818550854662392970421486062663152500049014368491034339065802313001391344423382462894393117202192633976838428352520216975810145373214801292660363263341914901782426890315861754428880741837351305079340786887070170278082922644759407901960941692546229053460957728798085060943631295160050537333721776408354009567989611290962621047381866435111294756042014354825062650071640170444382779886979951288876727284159563746668396997201110791576339854791932104445264493423218455579159078043946794318443885590512326748829145199287236333300053615300940505331889455743776341194268296078258432328867754990992783556791279259248764517751307397623236743977811091555316987550838450937684371262232880100632791304671811393017208194638016589896793109791826571949348240208974467148059388276476859687912185491560731720872570871110352318695701694182719332401444304857880055036627594036233415284028566644113142638635653340399874442505042735273569688543155129486245795681801675849526526762385561218070014755132140475032345841921395242534678494776722296940633047575023629028918402565290150776364543054727642890791556921413791464632756571578657167196128096918242149041103526886727278796106058688824264732464700918292133477091625341922851954012875482762187463547415495911251763038583883465449786515656694551556887456437189520894953501999650498173336045845924892469021328935234525665533229455868477366040936445824995977666419514486171830944834726128833385654278219237780732215786369312339526698804870331924591715876905584675019847525250574312811702140963277128695326374981709799824614310764155069538805805830068558147476383612549982218763691893512870243457177025672196673446705498438843457005298717060422306051973762820981012419784322149405346693816765259267686766271969299716800840635947576234774453539795585275210782022533496340507862119737149145569900487214736582355566909521683732160420935509029312951982548010656397609618807162489368952239675064099167731965007199626865234760332530101347590891606913523515191679887263670185579403890845014156113698743720313495236009507516112340626500267631567432987221201637508254357508449799573363912955512604122677989121172604077063468993274879580816147302176395377446292983111490316291240814244520793851297540403394384680488064532131160789545294844791925008646632129194820371002904440505139467337263148821933110558656867867352987680629693048745868102138739746567142954221108389884774980949731783816053813887244434707450683835233316103604218724532674362328340410318950774473990226140178295374892633528017499742089809694758899489596829264197653985220091169173943429770116629018483519932021940282141914140157553792501118594156649358448291029321822177025083916051631306122436338358820012971833146641142275509209720039300499984975469663459718957243475744749074586004825691283714989714415572963667461479395403637356419192227362362610342842351380718253673225421801404810608773227369813968523019170084926366152246179413412649183139039386590984472235242392909203964593328063317519996787232386846771072674268098630052468113492151004299797601903808105605519036387141911878469712823858356803032157919089621628074009541265574886669239158491049512673859662989720203234749978948781929794212705987441258552584799565176212434458330397923787371362938211511735703465429265283736324686931470268828811513821631088787998042485960452295097724038111064488334411497009393776289700218909395837875900152586864396634329937748098353856638030151308489332607384604789188070395018305214762333203843121728389061067029054731998333637789562819186447756873142617285443043619574407827239257903922684071198797738318185006144549024428121344497727241080266896085211605219332583597329471478550080274374809428946195361180089324809425062840467281544014917750467942443434105831219527568153149633382857975952718276792299068947739041926614587672164479984698504684550192802037519333481552636649550421673517747340468746444129415954859469513448395296749027180276507470081493168073410201229963047580701344700131295904658405827959142090181930917279769826776953273814282142489971441160475838007699995868448370991769276206686351680230005501699749071236247847005518421533102477194424887627566041197885587074994802842362002084569409573923236659146629664324018181434708465503470110414693863760497524935153193233705792218526581171199585014578976299246289160241781598834346784771923606319172059170608047997475135509453424875651195183600961963384137348022417144354701915506348520345177556218986256487029084131281384867704136253609553459080823815746157129509890669508517372800267835132345459162071205323838158890019129296861308796911801234569673655303110685037098176538891043925273938905418604855705657857238407496265095727572496637511604393035106166524566615303688344590160079527217276633546371503049754982683244224792480472926353711125664435000213894952140176054588973099082813247741319421663448686831070044210781377925291477949416059028898476221997788042713568426443435980380831631942244981489452105460194096426423020949780869367212921164623552390620603031058650003843856880639873110992972640682184043853088763180035906282880463975505497903373808673544582495477357334937917745860954856741679114147823310106897367392618706821344224144300819382859428007490976001706427765267301058933399304818711831789854402376113243828248873775126167262281029078464420837887145282611624150631347806721709732658881463260346133976494295683124169317382674122523486585734144429513121071254133606725716672611578445512878860639443567543052257187837695819866470512073190498263688523187430587239776763609917101643043198268788744276542783102338842039568995702287016990644832938883256812349262502323236202496841244804309007804290552433192307827707725852436545157594006888418745636358115573619691413966863326315362758122643301175725523974751644291921849937926175302522540876871273629041256036668971039961272872145741467586335202829174526569057057853345477953365750310884745184704098002340602579480823252854649055225516528069240420578743456393539910458288249284766322879112685896421697985408014863525697671219202626913569520046620161571061690617345992333058509274637330601378898890581274026106956028296279401842718332745367321412592078455865917439018644229370841666726622562707108109877275936849645867672147412300922625026640990023980273324263174801871255238466688111607039137832529518262562711157194575478429956979746667017457896162722094878437699043391061921638183741777586419847030168273791251071798406123871423954532077244590767891951363050494635228111498496419273651476079277928104334953130468848401983360367549679010796792772582017940555395181659977479695446187946349473254458903048992930481866449230374655344571662080082983280081306220129033796388621535465058351452330277888670420751433037553153591017673282503478330900329045109178868998599996055455664710301923239728980622784240561311989705173961241180616474721946281791191577783015275451533469859077079784919443532544959432578921998828560184027550291082597876337119364457799377061288928427627960829254411869159483504439150776374874070266663239557970604023658851243122098381292806700546947340892010336701659361393299348320408313824111340741837127824168168555147576641174108364272647075637245481753657769974635431810098692866863671996459199090050289800659838117892725938299072391685718217301104412498570514208321609399450846659252742111149917773293882940369259756075318125596865507667095765403352709355750322345476856558959681998924172444304992337827410026254650165060170275306728182761701127882302942700457679093637766003699376766359414720960280630119698263652393435608988111079997369351490373858420463515126240168944288258179427739176045690073304499946840423246439229310452936567941590442268147885016141574368163542116645711505354125348010981004420605288858188638378824286014405927356377073711656564409225670680849655034755698661450130853038950099245958412373291286608908105261102461998714382819029418426702207857822133095961393243385132423157185199941205940328645589680360304406870774633118611445103623878061043803976980902020377382829370247601618317665467091240422658732633109856263031469472993592980220165077059308228815569686398951072535694168167013466228893833340267272983782680746604789385101879540649564254032163231042307116655837026584287111172388874180020277267278670246184074664072633261429496594527133403443243158174201837207065346204159082543914641995130892512087865209824237472574818515061929341382587539232299724335736813555289639082071971049975241038927810385672850220922821091318318525062720852329237471976129482304005563829697828066671213883805602681279084410702242244598411318677478526380461911764718796744838104086438168304901468473378990920043034860941759202582871776514445964312991593234495644824390954204797967343841867826127840555959856990844527756035159647929827146324853351229445106109070535903589928869837441927694114264265476348505368583165045340227018946170007031905512269124551459206187619716512191346269724742395551844658773681576333753095267891579306449247776936642785280752073528001336432706290540782194029643761570067536425056183247760230258287933331728331683918736646818943685955318586113854037183049177895707526021371263806110593934856847127628318487910296853301960968160045365211510632316315448738823493276321327433472458124640674829364027410499625874311521760186492402937616768467966619792453180334082359493295133947021916414274828170546126711470295870377789422645111921101140739660378485436227743604192607634513419498236173794825675005234790698235552156589428795624448235785753490993483735159912252508348595079421434694576116978942992502373691337665587975656848738581137587667530202213926249908953530222112051540900566641835925037029759448797328391018751507388666785986254635307563389724197882026914286672847198737152638152074154587345097649112868102876283068526385861686945988014156836139181480579391684578711183676731912506678496908171057599657015947387925304270461744988693302932701769070256707971927420204052646687128841365970010571708419584434017530116317958184334439762108885138476339773925773234420497177560809342419356315344667428630738033501490342931130036566316026894602690958356046444592124209514535005582461541945378646300813571538471870411085155521478148557313789262228869628209300994400268952725347298771592609393151343075683160423415422531157935318088000261904159638772759215592963615216422012479828881647454761785794884249002599695216280354537877777433507671048478345633456179401768007563231478740505542973603251272771385281811889580569610972870062177862388435858311797494821860422089933940855623744787008032673599089528170996332354683284667303259905128077875732015312488740391314233973753075059766373311919694916699999723592381398208380529283296056516691961826566960539638825490705424569735955636944728681733277243479904423683182359760556152214812758593224392457773533466945393572936671255187249248405861271846020241649389549382067290850239455678363232751032072936155748163969029823821663698137036571140031879795574429450277527227593971371611240963578885728203154293025543082339646921584943332842975403879467818786972431742536394332903875781516563226852289448843070354803562979898746567303059920102138873173347686428396884200414092538487037565818230479795848240281718465927759026529590155603927133471326512094973945369662417001647672723590253093609016834178372804555445195910595622781735126789001343122707372857316410344494645468278328497730456529090549392662435423422778720660967581245167695983942395246467758132843847048627276850900110674106901945687333310554406295792248854846524527650606397117511151867352624812580902819009345913166228766185624281036237557444020193810254575125058894069334336231155995235887920582650648182302819700936427725122960191567597954901943638755026916651430376904421964522584872607334916142192884085107470094976846318661379152591690860292247019608435445109821210351116650164366226274268643065714452432062150692395492644357260023811410498718566586172469213383801813130179247723678326042829012647914214285377633206788936331270801783497869753792131977876857908156262142832619994511972484341452658283757641388633377282930336585252438854078631283207589238819234887395041324132613154307209923246039757784975048532868870694935512776591817893249268473165917549817254031909123112262762165489344592558825073762144670031447343280838745710894382832393299395063899114825990010807616923240952731045379738374485304308233539450583325290827018529075016137200460500583805924553894703211223911558137193173885803716582117807428468573647521286550790905448997030189900136954297489526968215332228145436707413261949329850881749989349752094870447968470162486100246615751713060750697061318547361646392250315185392914807108010448635060289848325013503786227967588373953537206612753464679853834751642127460454051055211354700508805874440338802509193116225667441717650136762590579023418989003355386462957119227279701896609198863977698389312981792780025888308060174653798779799998053081612668051406731517255181299334768946241597933532898191580115493101660456130068510813635061777868532761415373295761922351310399848307228286444539216608331551054907048425754945830872215222473035163828858213388103325858195287637932424055592503164976458640867327383023377189407067127838632018426534315805362045960369802591787665813087930286215314874502467554527243094724975660026452163814522201626573074219669310728393005559139516700483887693566461735464279009714858655049239083979814113524680522315157679528916036964014563149271933622164918563943818391270205350852120921233811719540641840980999806074646999746431719489667815298312301606963963173556547236143960091187102365846210029629584270477320031143102521226125705828435573572005373629441997049568675639412514487687858222336152932250668508714613950326411809792912679774212510981278224858978562616773165579890751522874888636512517316219034669294423238957067227602608968032199390487108241587271883522743724976884052573837462405779464411854870554857997636459139041754265846778925697258912095446061742613488502136151995449591331845512217074620992093785383434833082900049006371961366720872538969549965631336395627204967986673447833423619538124754055392490859164428527703964754849048200119170392865703559602595710897965931239544101461910244522081748999870221275472569697839757811894147249950330862783744358873006233038981711154335161459283206590592813220372740127228678407967033674020610234262623683026258281213135888344374172191780178445022714868613831557765174396623655070726492463746489642795607061790474562548125440391685205655659861221810503306254213818822000511683391580430045313492995644255685794276553677129158584785466117250789093488050895015456622132890460285794781237309682700374618874635205261685505987881074046814779361920066635823614629941783172018808023793038498629133308424934270424981873305415263855047622049330516922185054622469865796733522841057882097118467237764357688909762247194134552408004605742262753380635155769821374815195373133573268857807981173802727621879289144993439330906219422437672148806746636605731741964144942111939872625482688828395841603802408948709529051338330483631638298804555812731322706843315694779728546432428526502793180314499631816079964414723915062157111586540183008708865221732552561383258344083490449280339717706045995782946060033860544114795416206972672774526484074707069693654052648150895742687933145934801961602782848224663933886587718923105887977547365532268479855636501864822978987706765639424496239817986004234720961859085423035983467996009636569126542885118206582354439213078714209941804307902086229369946035511764839404529557322873299762845759951592273783103923659618961841626196177535187376644186750830171537268046644768147948961584453571073121657866583940127190467445197965612755789522681653072311713006357443383342015368021013541916527222066670223959830701705981849808040558404837942456413228148978116412204892080547314342025866421716683542375958473345766430977292885787832584780600460414824100091837539849196228070791821280268674602937635111756947027186957272128046383202165782383628955066029202597250709018562299987522892884579552883233660902709633968265058909277633460827332533586451057005352032229147395204296701982083694049570504795720701171193329274691336297332909398505197501488463915598472729275132766971491087874439227580549490031896368365788783956265210598884363464836887883251460933131620942567041118320645675553739861865859006259259948169970501240664757860261212084925086145727307804788488834992018389191973485578402539087761960367073923231271980140405567941055830134538736706181867915210154472142305773088768338612372803143166889592006933284228614527098995336308347312831728877041507876259656017350194695495697743176992072483294389623254587342369981286372655386079314855291386086180643457027346576794525850602859416953717901630607005257094250823955581316606652859036947603499088973948213944163310974924836484220770541152701858949810304485386011948910577067989952191729698416578515910150891036091926617068662151700982659075083411675584863176555495534594903088113284392380487582854103793343402747937008580289595104587794536620942204626574743043785911049022994187740852666672535759867042323155105525073013788987350133412695226953669767041692472055915129189513953232762119765126475521031078303941809051512267812977618579769632081447376495422596402545149189997426160055499413712363806221543942970275933360259314724893248944502336026539462916649932161030320964412143026629235060067282907644970963623703127928408992454147110166984630167089404850648245368225152165175908495821527797897014426742769252908633705305689336343865453850349325145400757595475288564119081177830126162742638676422429159450251650242632208942915813005264299727816458561187958999151666760082363206172466515936068187213244063221605581112373680615715306601765877979069932752805217311760092481198383813799167408275313647968204801538778649588583398143820399543905548383562533519404506815482836420468948523813062479064027268325162798759053814653848609532910617794490078409821649029683545707889871254515838232834273420201835378786410238118579044106256490134955364858934487662413915736900991491671603622130044600797796405201491027065561517881823008808159252886891270722558040340643726264924122620429049423855706697823884438682252291396203590192471989428282263694546621339760607899599926591020480752986370726274000529460860006215564397115535888408227267745525101142471871922321022848599220633538962065685759559174677821494511322343199988330329455917307920421637775398370709665495413825796876471245532943687827127699778717089111929822619748176763523057074990725952626979214403713138736195997404614666732820555046825565037861942126568142967931870700428185429462008634910456556205915637799487091169912121477598825813116543817486789187706692070530689398179156006621811072590915339701578415112032181254449221979584550851615349321519112108388528206017995682742266120408809983157261130940341061537747576752392477946948173622272377247803564580747856131414197835129954177829302736614519074984819447931551815762816194121120508934953605768594861408312482951138789760132928686542480755615688887586582260569328767742275040086012114886199799517582767445912683978710779370973098068281326946164824977142293082188262962313325900819301937430807587149152350417080760598809587110923674629935343365455522629432817289840063563158057046464370296527120765887086221481031439138813871342187247030369468005556161969901114985617747632907759902875036589452085550978483819374923147214373055677288483836740852749197441834937393815908363743495629852814684792294463672535519266377038286562329006579470910148490249972362974553696051875993328539371170004373099995398277117197895052723948158467319388146009800463250914819315092503598581537682076840732909152735964785488301290140240292527211469920908601963245514350471728799621636899257178011190744785374924166179714293513136984395541104933114870163759418220159272860284693992048250424454096655690598523251790015824309118251783891918050207676820622943532937053255405606773333566605399237603572545132663335952070520440305926411349529843721563146163206570747968506999094517583594937912356524081375258574005060503603655814123995737669557747080797535637974753191456548523428776412875767675956737992781117016830036582230322551432729621517706001596979732454445860084904808412697191789564673442253152692695625504511799729526284725910247161577345099075284905710891648723617761234683153491832548504799439150066011139862545642899530641854590244059773822109235248110726492467486386800131151081342283363217215228560340384403184746598098795679999812494841602022047234653058802505587952808769128489277589299772115623569009594737721101541754143644333185432835973659055514595363587810963029504661687646122967932017199633858009072089972162131036902445491687370604047533000017323480529522740989515626510114199216156166440447156046796100665227059806106663373054638969826900043059063939520179429604064867957397008115202990261161635187756403000061403272889291386025416157918349489298421864905166841487423831188889410075516892822510838239902465216584877449056988186090741206340441691513994892704836303986259953417933866342394301561488057039692406008290720139949810953797246058434355820041139750099905485808030516142562687944186900752643532081880582228668227147780964931232234515481514337106388539928819968868444077518840040168716723831771694984749828884089205685554001332652538077767377245864071662573842918277552822620630229053880386440695645559890847745030686618270235335556349294193462089233476038820861484359503011319960261440076340134069622748161668123754862497790368574117642583610924883765642946533473125548491837880659705312517731795271869231381584724856061481001531756313824835138895893458729789940767720779567496871614053280654708695715695630273388013965244029899394794952553659270840052241761765258414350384180394360810246854224240455093679133766563015432999963701420750781317959002162614234825453045116116497992318812842712534757489663687579264497187356078099297893030272878623330852815995175869867939603172677920266243095775864970492388242283196571937481093585794754920411280731563072683585750752216427758858947994688889737742970792696274682421447258736779599567072693035223225910301247603308569871891275385082463620650713034328114079770092653216818000029996704494337799144097198839783489454055610219857247579494080412294975927778164344883929667583613662297035908993459909704122987692869634307178346613877819042253187545189480936149278498965216762382396308704914353775992746322612227737592291404429365365141991959547566635555162649240898780218172513025049713853776864784979173608061993750550939033021677018025443075873828813780939086887465817393994429556196943078363301945101928433176848103978460128810988926013512864246855714442370421109143917772635370584913600297348021045624391963134109500181703298534741547527921541570702156916428400181497812348430912030991016086452719175444692991768166585705595906188176877798957252695849401639657817589812092400939690450453009059637954330090558411234311689162748707132502820844862638845860364823666567675791300481262809407933895201078111301412894745611754814512010823512119307592589596987019692070301993009009032548102245398913297644870768342981964161574422001913374945060692559840730014459875306601546471574772897906910891864801301274457901381031502044813009092111408071651829289675817015666464490618470846632274142887788477557894632527561935625319350536680953330589124488065387791596080899708895563860830453817136573266080596585176671482897539306824057574043327449548731973133028636627095770841155763130202014544994782762461406143793020802317366478321546388088333808544843093292677806990547413655520315631762284827947152879032126473629235947585484598772711619489953670022073048107234844927477379326946487877586650593727476502358794000692642974012071752797409643986004550250358197550211845324260241964076517023912904591340545824910595078515643058567644327100671963793562218254085287242333308832279940698912516339717175067506043009101692451825570861193960513372530238114072178093089724659685496309983230922807768968206936211051588882106838299225193371263706455359792775990846927520924371192298088890417239027493875407821421208813646645457837459562646214525436000843397277981343261542483925574404983878817920650719720843918425645108443704407560493276928323636830050479594687660314332747609054179020265195992549358356932069319699462454993834958983633219553876881631876579475045239495574281739388875350198267212603907993043572734548807717254873518089561114280659005252912793328079873440260705865928900987758918872228852176023765647188201540506420895207373314268857184072381254883076728694774878548339611907993910063306960502249015291329669293612004726590039743739141073053995268950393731322047565836228785480228997060186082042963440623290586824166970075514247860840858903348996355868453298697334232682001739694538793323656385073955709272506088896909206127065434345622680504219365300589527999151008446536142987050954313581386682805204464709984171434430433517091497278554982647446066644511734693524963911421285558412804278178287294540793677483895265865763740309509725751710375642022244122319550222675463469149729768187160582985815443398688484587159239031228807597915466207839223464664384024531082609111678183870249650914512884776329254737593320547924661589894646501364738555803365794908715381642891413205651753728737711245668762621274662886831837306396756300456238529193232789762103956610472560160647322087261223440243025283027663218906196893341620253463777298855892537134560339837360660177096331023767123212524965435084302579932384161320788259777484755528964113136931545410636658102406704687797235242211850100776125794744446562544058953003522083004810839138825332840810533612463225947488496834185852468074065118924088688054811838936610309210494035077429635571413505881959395550911896156988753077561615234218812137163370728719897072342413902826618085962748309907521818146570994679377755049877396213569954714811014985805448726387793214474599384856876479564598252144508495216150868220544661354983816803778898675737650921860388225094062425044256195969338915020072659092461227125278367888192445590893992804826598877026421538704471057545202982654354120017494019319355757918494497424163028742589509400238559346326834101846749392652480805318559288015789346849832217550398878076874267476897113838190173702053924049227506653883806544133977505799467370474128385532388839522238129808606605490996017216152141461969761085060463447680595982013881220937015830200478353640063691283836834397841702980906296743959324730624248089568583826153292842540571140838298262374388176109550917477084870363420329404609921513635736145819678138198998816130964631048751034704357529008739234905785146446011254625985971149235404800193494840740788628380894724194122580407943598428105601785618495482757292180237707666267386214608111321381580966616339759864734287594103809653054320880158406962539793178201256650102261792706516484936060035279298419031267804209912816185885848395085639937350333267643765886106201085079819998363497608243938317279467459391466809053098384211912743309042015795521456898131029047654478334357292957278453581154922569903351338464711632411967684268362048028300746078000082408075547076973533344534617832573549324050683111052827696788485011914841314409127726782032681450572783218343810614498925345861530346944604674805510156849140834312354458916238402957424437085361627635694911435852829862777994945699323523438352418873566901241088639198888429869708527326228529196466681083090981631167451021847814114346315208602188715810757280370815895559142013430566624173844972204213272708198789266020612912149206333942453964363118338673463993294565918591288336635587499114422538490623563777003110431675643250882925165039935618551325172060354819970438788244279111622039972611689842205956156008018254895063406343877981869954093340709139579492440904970024579291962779433520370689790072786315046996574601414072343262037583167707358928220899525074294287576222770804218727363169334056539560094443915583589359848444897444420919252417737900166009479713482340327382481987075709175634448161139411365619360900844082217840780569032076439089054130702099537448520556954460638132349761408821605463030665646330121159651079261902789987422240404256002916000175300811410376841197892455602363136114546942917715032141756727929560339618644142157546972337169571888773190678129338695458182198360956198344115369395390169232284470466760813352533555094613233792865185046648025386813193675029011268183974197270766354035826670576999830473462492132700482423674858778404149256920886228005502083918107690044687161694455938137852182580000872182740804406282110964374398885389748269831860081896198249819826357379036024144202294866028533084276128603004563904760288906224815515359786608406236917364434037568173565090052201212675724591464406835366205627407809115476841504517849517868943918615077682292535909227808090388776405193454193918582331673219221048428564037089337039182683094452870029265347733991719379199308513817785876140031177554298711334929500537000104404367677595408631679881810524425606997208632491027245978922888242325967434543354845855311797519033637034747674574537275773984022234091744194392514084120548166115588683878034184500817527405379773504278467909876147479286282084880795489284750863727495277344970987870120413318709912477095823844732728418962687417962529834282385526383365945235841394020787159473743228396282792276854663467370339073989704895688233014919710192741699490140195256896245757536944008990434146725407784670867544106273652876243915717280119290072381691448186601412576745366647299333871102919279057326768728547439327320136409548764657065321675059945536038114685768188431435438120005127702137734609599679567295524920461662023439265317558533463928418783531226556522791412236873956092473254236739706386978029570165234060409405657385412033168971673554360104353310674587188509949663005465139536070689631182637749340441814003528529091228678939010650065107946843766592656685657565962856915496134873076194538868022377878279280578182592815648513230124895356843488174552213172986409493776189115792948408298840926593463493564559336899342788381182211549722337258150703121160540657680580513823062700680798830890615566156937767525904002613056983131610533888654151363939543539851599426274052279028343683374887408937600930656892277199462211639434890469778222762542192842753419245866456846156248621891022854795837292872561094133009083222549197759859907261074848625862351847955150981343145716872010563792385003902071272889179627604095862429853735944663109365525400438526274351918842983109900511117572280368803333608200445164337027106760518576304400097864471143508818246865222556699210628842754889064920286108796692116286426416035314877585732721719732961995167490786446499267544044431280502482433141234231693635453625288882207862688722929139043504707492574403862838145488812974177278466946941985736455454580746146488213620536165728257288082484018170482827880712580182369362436212457995074298670015409918021546472775692466853439004984199100281056534571661057529149993179676815203823586458100476633436189440166864198207808683924312841631228598185671958057270795652446925788198028193939241359307938767326307602085647966796474182350587678760686112215915105040556767269934895170147628295074540538120020462518644949772084113775786768977009684427053735421690329440822927898046208843633960088562160329182152799931548910199122217656161121023493263672206129679724624181899286798093615263276106370889768722814900066314388111911567654375548057296240716995553608580626547133439655151500934767171311438287845084179108251523233052475380154906466085167259531791442174850473789554548665445959220763967717614062509025686736864771134969563981703075076849877196966620192736427000967139042944195002777920836338300729043027250143987109168190705920058809651965153286288099190213449809671457185435435936345186547921524228144727295062551459334265140627036405978303023039415227905922727879973226982934141273828854174817268276342752640406166321402577619310043685400188698708608453666138037797722742495111257263743888715949708620433029021943409663100509307807493080150847365734541089047136021935775845244381012809474255832729017944328802868193133792855294526290960141745525689878484571468914247730048621425671184399503764814418371374193096910766347892314876150176196902655495932276085164765230909700357448221700712689447256412383544606566803409481755667327882328979232512105948295815220907326547630013932176191610406844611644100317214186003452670870986320086890644110311215502422327990015324105345714176690663419189182598440150481685282770228114675139833671303579483333073954289281353664159260682383185241605337185441509897577240523721915816863574622161137544635945522725606463873034875740452115109839718731555953785382219591839681018982458927187563684981606759413159052336793008872726471123691376714750698365224284833318894768683167216256923497019832664268376571292106043946587137243509159427586015795276260856143536641683620821800270409176987316912064154212214584623476563801190354981590628140988189617664874206497349207926095564381523250788365645187907624644977996755905745143560985531296054050936673820293158475646851927494092309536782594581095600901339401710478734441534320581939192386342918987943923842042174848734061192455408115308075163480886512972797471676490137902182898327702379337553490940252786917285453851665466921744416242327423954046188485841083030130810469301058173741823283091675346440929830880280612009634028167213866696496513691734430702085857735496889481796970432130042249069205005680209985304089726858166877923402198006649728581453141875682133346339944791965658021227262715662186865807622932035060569245566627371897093191189931926547093812072187028163559767754803698250717420231154050310046418633550595192489600434368233925467099955918879330120754314469950276647167132995804413160149515614889990774744081043715689659242102595100105100060056397343401636834460530329032358653409454769397068715801581921206174528172314975009178563669687243145528175022748148801049306276821557723694993947216506095358841396821600632995636987961461667212052539674069404375678987713055770980604799590405331025816319986924511309015981668026261565484507820024321360439939455505452257935572089212244963796393471682170662127076734882893842493489610848124828456991858784451371770983404212707015586806390639620961022908010549136613030953698149791355267405539555033959243438627910358227218273275123287528108298593972056287842281127475441465152608792194385926690207854569031511926424425298322813374667265419684752767327495216803904673594263378932820513764896584126678799504432887597568382603874075777802200989584184020704836792559183307368647980607797903944005711239982603688511657177707217184571227289484612506694349734377781210071183369524783396784264651292420814932584901339731783718613686400638902489137402132259217506144227221880567795774523646172958663342475506695600235652645958227581196506033431337207347110984091419150591889308886644072185028039293143366475834611505966447375017925466728493379309441876994831763094011943810639397949221566473239890726720144190108711662285339945693902193869852769242814421102632919043287074728113862294833236411066382373275873772891686272091955333388124321718827761665171360904945147542767346862159896774511402799822975476166928728254243472538994798807954642243844747528203397162687790002173969000379324006566795141921607780374734012470195489445759762988397345332866177339795741368763422082964426024748088224637002422577655532652987584046479255084253597381165246605595540876547881660798103046840802050538996904794479821778836563011331346245763668303064016495921030630778425679576212626348520020066245943835649595025717923808008052478735019702915299026595648834262404246755373150111413305246612968951649393342170669747043981328122214242494603609764333293360249490033916136726307881605532985757232842000334226014738574091602027240641203115067049506228863341388494035861896763598905549201924551671470840919337639920882123917007557859710480392645116009755963968094203144660039838245842532218872116644251829970174131262391159860072780408660387061507271075517641125558906455405716643831309364417093400258240373811202572877099634857113851028232057433288739542746704752350547144010851413716665610725345117546605721162717163395226084809436934774117764589861868972831668652088471957758161428983586106705093664604249593455496711320139586736665537371915366890094151715590725954099528634279329491992721723392674666635836225172583152252499489547995136087879702946994042914435907133498134780220617509432282984945674742072818114374315123871299446687984523006057877563650683377945693511557767458562995295398977132218381218348407342653063805498206444201658721084592612261199569262917830452699951847161396052260330286317852900127695877637129779815785169784782511442341199584254118277993321546988012238309497374625198028551365013530111640429241560386392149270310332022622324326103642991026818028688969623509892976151157294027985005389557598525000746009414216544370513850054982238250993496822856583256521850846508717842717212537038338550867178439661290259511581376881246336446261546656270225317291088452066302083432308981243461803347024533179263257845494832569523663262530885750420081411432476504867984844642802310955693234612967720103431419009727570696634817785922689995207379355188334929730732047425734072687755212468093946028429668712351243336488222449197977495700761797316730372023000009715082284973405978274585109707290483317533653644950989293538823760111027877813897196005729300476858201410899321106104467084072186340889786156861585004701595001070047174562030543975477200652039149519962872048334252655849916348276801386007767930820627238938972185051234634517173536207277896430620188122529340255400798579856974248163324088336083490732740759939212873332765492127548583618234158715257684758330993557463165812029709561426631358076086818501716964585566847928554450900913859360474751296329893013977764887064429205427688233551080818535490174336593347487753553884944052474837391894286104401538817819348108985356994576906083311437436032392555822843367574136405923753608382055492002562339926645056793290237287475705030118401210714935418823073322412591041633193616781577579757402392101335847488020223242067734710656924549053426607245489715480144925227580420963676610112238788413818345446952537147502840108259928722004064777424059250576433476196670548605792428646777669771300246906512952291755647286428582410699100121160269996533677465117736795176980766214850575107744069061274242803597343945035446473222055886628633663785494009689972523854190670195153797778274016240136211909614936537870346538197704218844281660226208858339008531003824305146075929646848497299722804081148646380622323285634465214779534628083325793850482208201756475876622395557453988403555318814161590624668008341481001009656536882237332265962900458220313941016124405027299503718264569201708204917417408826676122317432706443822148206556005515036909201240912999318905684206535007935408111784239201155674117557365720436794400349997848402044539156093228095218700903237321902250830222727017104719683710609173625342123950451789539261975177157955750361119913484707182076515183753768072475066374476010239562298878253604499091526548731737058114110630268093503263334843360366556071407812782622247926185844796964422625391182021932317273243621507768397182613353428472704145013864478790586569303843896219809002875510548074834946100000074510970509231597918271422758746707184325755952666848934688065927700721546671666709987945646946472230152823527115046315506476951395169518093383941528212736308671013830661914495647797039237699129325207862455691583852308343498426482028137988477655506729325182804032750110534959253232856924688449899546143487646573754623357929047616728343828754218080182665936308472823249070336062480432615899225193943008331037187700806596438548766959429417380535380429733249972221654580265307205973198001694161520065461460435186914770841784645928158580026866344998260214843610657253969049313956568339223625049735071438650490496343645328813516916286738056158459189801789007809889104827111221791083166115877588885283940309643961142231962182807015291005942078448338366399506561530383357072901123272006941446488884189480129949648194963344332364743918599918103342799276940494439164484032054980939055877099591218627158585944471989598906186284780837806969071519539069159331477865740170668916668718663989277043002685108997683183816255654951831144288095508947250919649622470631695585401375231735315336208021211695476182958147333482891268527349377909555284417407571301267988773911460681846583028277527201267045751100296232325909508380901653385354740245983923669516214341863051046789403973786304440110939108430596476119930459972138978083599023309221431226066059174970910717908160350441487838475524719586975837582288566160533179084621103997108769228872412289278976814168427316074593791096401759724041415248931234575261697025090984383415558336231244398637987416782862145495347491957015969766517552711309874792305493779180191053205881354448167890332483296508106821278939436722624363894079965008530199833277595449155161019667701365274288227018369445009556549379890274237052401012479358939238031698314239327853466448177711048554071842099776890635712204328025004591836610301684180992040816528407378106150699571286609888880338172023404965603849497063180925747055059916559577702989965287654969727174478952190989366652461677400462302692746799341549969809852215420891897243658176407332951437902431870196786646935891019900425274038707618001616137032535225384927902663763185583766441365348812735993076355604305825420760769147727120931808174918055210068916883521878100767932059215626067222992121772116245661093454183397207608282167651463252343240421971314656067673305335823687045648591002250828622167075022797157374474949668511845416102284097043701083629076667431947625926188486695191233594254104232129163234595368402970051277208042852718967921207206305876684093597069551462309409672094531271614795486401488732595769902206404578631290848720580655524443072648322805517272267411774247463460375044358540845423405566583943856546083368297488560536509489748217876951963228705885515109281523580771823185379955824883656532877739442537460819251696602429180882213178025271215836299294165831532961773218140588681608459117464746834841952317548438731341321690367085552784855199187086356813929083573654751660635196538398862529354448895117529499252969872263182922929156834940333693354111056465330280628621774084295015823616116608874279088330384066080753801210733984638578743763746347922827795666696368511273344728182702043344034713041348998964155862397315555860682350100802754719490732316990559383372848451238364415094968152238092047312967807611137130327433934339342170160736184803284289824331107067134653634623303654961902371533870969806167123296837068053196600480504468280777832736640071961545052216826963209471299123895353930750915706532403304198470510268268523679442148385268442967304285370912896295763210223891906219820580883073891816549802204390564875549204901344423775526022158350775084408452120115214565693836475640777090688704146191659357195244858705622748968286105673312493176177248219694783346906279366882851040647122544320678569535079356773589635816005609435081906782793584576506879210693388919445257396355182776941184107353895589485657593852132554208292293273778251866946810225124155203581567062869872100576138343316895327659870262516501081207025494870024680644156338274200270160401455001042559054462304265872229581131120895310360724926211925950752202142961027851278813341723392175576958248755057732781668369712293622947568330693026415029070509820092130697410505800217935866945278942402544544032333456633364301817776364109281460166765114154190254552338322320067266138892656482697556804493155178155175448832294376567629423079663099028251173346107235673265432061857060080884080991280678985258604426207014623510393806096329057668169328580119036000648935722924415743979591820666722275862492837140133614350221009085790789243690450243812407286738777640785656536480055559279471155136837179420344412143934874663639840425040991006807059735681356105132242509210710541877378803529011635649170302706327702196930176433847554782048800020820305514583762844073478605811229321246269690922207147406817141442764647204804798938372361943541418283969767151630062228033308574350324274239906357047431728280911480657883877930363494466743365447346007403913406303353302045301944200808716762850521031177821768607970251345381233837354129827979151059421959678279804671658693986795327717669996147444471246055888059942966555625353159792833864809109999003997584518661092310519449317864410026552900713336244996311450396215562445043655487977609035172525892633686699856241196419076728228441493494541708252018953815290922836990605958982082693941698717349450733558005156168843521193260955810398589857372631791095445645464238262768677004180378296459644773023727227061736423740031272815781961771913585757804263045684513853448782678386464166150005208092653272045709559021866343340870964347376095507268638476509942548023742362288101191683145338688476994159832946080435401081819944949388459743159274841756849783415001285176458956357425463990295907570461479227211116847191805273227132272669991754280986788886877594616919475594467368843836889300697153283095151072537522398614997938503887009500384200535793741190873125760096061211833889697792479057384909813141047134974179512884590740213078534984660396987270239941312381330808100291061434941186542768573842573702221142718293681798930590257770286320667636365745577114431504735004586814716590992440989238625154543318907097474792066434532993080478197204452003212936692526313414341061327038712826748989970067227769734120558626224885103668095922933208799412325747474554530736999436865465404641591738929119163617906399157577585556474150252255646562211336165602543138904252884253891924058686810532479104773468390658671405832010710253569204032966488716861994634492333074112575612163720973054028888380023390148883382400482983212901248233180805340539868766066100610889511949786130600966739333358131251551278521507494881929014416625577361025171749857333295183142523815339272374160613962743398983515571529919397969240298960021098061873915503573095734197667237288184196172607642352800355250736956726746924283796045453012965299314264625967841031602489733297697732205974599618351124448702129575819961421503762445619242563039213878045644039436768745185120033205151048598868176664763409606976515889976378423798977686846988549329152507511807535602232890979563937780205003004475540549802124392446600102088764012491205414327418680423825780594822880231131398236966289929823583550032233883254499456752438261056836340807609319191174360131615823958457831852365713400779185084624565126203456291509461013945616810654272214786598621898817746601862375247329897473519817084065765793728808610599033097072098218002620917891664634205126230183567091298965682784178687936958399570762515314096202374729892835618071517021739221674563752433983339967686331183272038010972277623516503160522387231514490717639618187429075159083877682770957970682157263905106726988340865883254659439689227850681141745617807103156897580313539544346352119398038894906296511017613697833720505821701512448398562444049950213033639445761951513817163893231327524204632865322807014198504194530860792619644381176936893899028911148437150347178024515557401764267278989668233916717372017786860466219095253811066362924392692001073845009415562425111934732041696081025724666006387746624257704129040671410175662170640043164828654949354111735540381981852096662441940252662389819174115709301279203817130678920488218079413382276837329682681941712733695350161989650664399819994796345592853501679313388351812393172348800860072502209405786161388449218147220694711096888070826856097966385254533996801979984444164085128672758981714228381114561045467547562416328785111638721598559280397436736086734821165578925216466593466113058467764675950553482532861866322552891896101468547832739573377134148121891804110382871935394210195991463828943311720290534145488448564295307012308189028736199087134205179344452601147842697062256054164805040965915169965951155372818987450211157523305646801667131912183513410363148136846859621781086779067000579265838400245610914502562059403239959835458456470121035733946648554528045649746641237685418054074313451807430368990072900830635515365016331997619553864441055289955432913142341061671746392536671139218605113319356393598667330851886014044387762986427514368990805169759278859785170412364968659273901626042405871742851816150996960522316329890781340924220958609332924436502125937307387199914694101030095274205246957880696938471063459219507567310416783745579623787931427997051047351216375919208747630696351512503150190415775781807788037519800505439221542371560839764067982899975731814569554179943639874259985464806437957770175397517959184284190471394848634492158751989156611271724439331717994254844033907050839200386885180916227336050069133039380588033869613370976629418626795097542850958692899251618096418203801924169510070861808501183223731252366716344379879465736571332663187038235539906846493665560255425966526572201484436848246269841336352888120602511121736241637897847276558693811627167760902052243927455895598443224878394754062054752827801729808239809376906704262826385040216514381975918613604789893757226203162687376154562472291231028062667612407698522321236250925074511550023160294776710937066705812140916334900642067214621454152040150017685322334193373854256212759270160549954085301125369926340962236499248465055831058490468550012003433512718697173336593131937660669580115348125589060772621299100254050985593108065272419164098182016287293388639055229374288820071941929388459123042541116270585666951504357634457886139372049096587686725897889247877026003760706951114643925086973613704900953717809645150683195483648582752592891160587104308820576338572806783879837556028940533916434109293778038307288903626736670232272316527207947899415069316742644819716005556436506361496644487566550798683233905109657638322074673653137368857108701277246735351398622616161633840727980013183560920078490184756403196223171068614766945204640109636384119368528308103299037606883282356529293092433206814868922808818044912288470972826651447513621800042421856804977540786530015476274413892052657638778896059350046289511897549005371994692932330350005584371406676633019871618171425574267623879783082739738493065026168751463207657255603836219042153557313120460160634030002352127643585510061654948556562785949993960398854525273406064920423500204516282119678002420479037839615551927292798884459939347735023564454232154210758360807681734509999803548172349758054228066054329069832194885033932206894741211280674435224790237415621475802977395301713609387077998558519498108988724018643365811748407548794165369407286777370607849478746108545185671058668137234121698230456516016078295716095787525887057017288157355963558502935783440607706939132895624130273502983837782659210050230158416127614538974137700156088532948638778534766036957078178813921318778932244182774791401787327461334767634063810034745292397675491083724483678270299765991579828840426733208869917513408384107890341224494226278599047890974363156131588742646951214544065484291168660985318653686840996581424349215034398916192098471284637385034807850332834598155546722331720088771226603263187877675637005099075213421396898305054056955541436599604908198231609790659033381694024805231501121684866796991662865987728693113088481282206310058949451395355549891179963720425720170433691295174963322801367002146889836221431874133390639670255497228421654792018805995306952769925624583219827945010962553768643237639712434444959183612210566951223143911596184673667218510059373145717553477248904298924078266831197825325365769632745497797572893989327313357671033401111397012019672786604552498255650420026714214070331428979072976200867949722298130969047796925442765858335974348491519933573835349270386671113205958662793683987706720746693388575678082826104889132999310745820682104348163325622038344977084969832989331748641958393003738439580434642909981178937323853617582747591115027503854905637895442200175535361637993197814761125187013378416361812885737774246841388995370075214151171600378177017330293277647519141884284528596343566802743604023738201030885054923888957079722712811231185611390200129080170202363259011700743361300272479897716033768286341720136176639528271057706826650911367600683499097861625416597990443509048654803322708317692957537740374244127250617202576618486541710352715475729906261154811207270512319117270645528663461872323346441391286227472802613253094065304420197749150268283518060210724103234417081685214250035242648853966789874046938239900401126678933322489436200141536043658816502172397051348960465358612536829406910920463546044196937858420605916400226941809630930377516080356493449291141460306757301471109908335260448853583907231430958324985191136388927007938459939809946121179547974272623262403241171465653516711234422006329725309795480897261234397948858808399514388603801430056867536311244386209643642760690945721710839511920906478830518056642934939610941091374323923547564369591859865774793763239875690489273027486620944920078191664774179714220954915503321809439074901042209990818691173248566393712517756991358127935415545090237859379269818976547809253778187713531235840804072520055318342738451085180716582689399138051415921212816148716472129542497822321521814757822952200830761600905456251263743961224922097551506137860525141852570110960280627052035403882306569141957759662959849111733847141171358372818899565460588162794205122240055753620255922159795679735068228354213583208271795427010805875838011854805938639504190308443304923696445980830320929755283581391011273902964121281652588140637360935492570513426132280603841255525660826459202508887720723789521832970771232405109668907791026696331428196995031094357017618883090094154533211004835985465580091732553023218839928455488492303122706525495366196937599437024456654733589470934252786550009208103968666155648819113773423392575518395534490471714507302030082426242848152652781047382508423304395277541136776133737285582811783600361533017405563475315848103370480792186005884896297052282916652024135200448596373578476000867349303290956617202234138868888422562510594055083365312274621090496032287344808989905577212095207866523558835206882205438491954363324859685208274802664623104990403868396041450538698921213123041484938246768556337542844886820943608390208336272375343372846614098902173157814673899178947358256576150576469397293109999190424146388896586537824917029912723358599351199507759010298711064301544987450454476549845027564698893826795924958147367909554676201640319333787632478059621337049260327155990051196459050741648300493394108862315404593094417927123989242968433100767488517682124753673004186656525000518918915332486303373976461791813055445430751509337406295606501850749534413207508291747862706497886221313252875158840981053612420613368560423851235594670462724534112310900897762872906129329111937761623487025403717013120523608469922460466516703321122646114280030895500454846289907938519123963622351835309629543926621718528265407620090529766440250464109618446893453529743030089280028839255028481845786541633260391570634486734515909568001637254279902271044124807565173584453243815855204633723953811385982157889820834541631242334683864801841360764414566245730070710352360919350428695104077386958964028566857198799397009786749144844257062330829109912287675959662415628972499696592586532638091714073808150152803573192261898177331131652673902279154576595171117606200583090270875657678114679456939443998355106554557199721575800264327345225028339404081046291548691036187988369531640417897268943271301739793582747292249862923708030567011922563956140479041173995029958416115244232971322159247235005056820699908648158635935639263673381768689467362575498557239071148045854579230283446087674387850470780168341465135565471121720696438300791718189960434908439139991352882289234726421241261764349562685594677098382169518671609062197781769364840729975208762019711731134903151752457971728021325825684548487428069559157287147554831839815242017876274215716201211607084808074128456234515165060160665141154989553624534984101180634604965492919708643970848022237011150838336621522507970104383031147186967605990044194625184651078484845237400364408942076202316391291451963686671511519606770159049167112173342342242080770255399749417766564849657057008043179943213394105387039631175318594634133261480652779006709380372496330277906201584731231842264512534562980904440832185081374275845450976408073683838168708743932517818570436528707841879869809424702786263871091408642594164782684026394278395907981048080144629798129730845351749142763658943405901599684075448020574930718525408222004273907993033502048633075508364910677568657704179945978210701378261174882307339224138274466351267331017899151029986889538920959847492983159131026279352954443560691349487730579907775532182171492342589099128177713129447930963114308032442088205040734972759846914582041678690483213052073118478814667185058738314318218664392992995897676991819213862039621225680654216744625014343221626476216544818458168875327091771842490736095611376344121026345643453093425873132497520782788065857753493336419274321258773139725195224875561099303821657318148006353325111980367581417524453060287757725528856611253478164781307916040738526018716550761769025367275589894148009681509808819008887955713133752915092830797763048541567092641096880051151951184393007641572191713287052528680516853784740752979831576424397671556196303301532758857484121194749122214437167509157185982007792066796631082042221459228324474849254812721406280075968508232723933409131034243434211732873961322470618895418817356476749064063354163144243483925903538394686417560667710246587835452771774756319492334876539795122395022376933889606119326248773077449619031382741966387521939067771881713837144325844708508865268730598644604790284829252076443531627301906575244732321493102968716876462555305827446384674912323169988401937264847323956605071795520854484910076734026881300495710576802594325789062197971773161939866356426894816641638831150395112241064574879113571025754376651764707938979204960743458305835543598784617541135474218772021988447988498816806088845113549288553352875033528536577131477418119930776785114928218139735413386925285624834791059139654370328555417785004735806352649820968744189571397282289909456309362472466714948798394893370130064375980976993478822806745145077172861384920299616797996999733358296336475969735613865860328904574678543731118675092478275606337146681872560909136156347312493782664642174429937412151742191735402449386740539003809022957879857323024987585432360618656233339400488621849201949464744399665835171483906013755715960669967494188041921100323116488048573670555592842028604051410919699937501080007550820006923095166550528418132620805041841247592100271041437134460761557778935164911333675775517705654174765610896418570457178929987674840184107300580854124150543950646422589723635216035723570388119682759254920821835731147184629958758117645568368459039940821259479180123663493770566545796029040617557487538536523371937746922687940335501954389943646464222013723550517753775295303348959098129039259150761543141656340816071140809974534136050369384675960590632490365681902056481338032209939516678583950290206541311248167896451062436023130615331254356188987697079564965205705189945273906215447082759755768826035321800309032524071652655024044865499969492082623330497578724811599038797104565082383497015376528147555655052959551808053993976125825767981818639455421122493390432276486356225039079948553116974742396132788734956557211374986270306970167740383127801656006647485883872992199915444628518227079957808200473617351264839789615760266874355738329016860873845486180523464519203020206215417765609250832111267903236945652685646786751413084637137665218094780664129964191631140081809583134147425335044584197901265495075360292374043551047745211067249658474910893444387209118999542040947676820966546987689953968557744690127257762014321791980689845045496879730968787185162733062643514530968645921202547606051442679788217670338477162134662479749848883899714930286618814301155402993185950965012522059340147984641968377862586318692478065986780837699175758387543926360331951026048412438011552922228277698100060191816823232082493242632864916338237523875575099746192377584850865142093582607455966512073939888836441047528174260178261400044422608379505588608775488780328339010416120464443461270113684258082146463567359334448602262825460744182474728788337311223055088497319821537951003026770595672477699147213221698811992979027780086154413493635543702467184978534288261217734132440651086063643144504198133702594089396916343925234773083222040106874541898031861897891335711830248150298697772662850441664524294276324798853031291600862185902261410442622461272730566542437562179575001247309833303511636755404683924960036185095870882750962403302305456282458190474861054880891562005881544347734305972564930314306132752630312742666585490750806884952333554932235077630892683298971949600623451187919238215689818320440049091934278422582401859768493507541364137779612467305233025330674646931085865625298745661075101276161434517899614808808683739436159858919246858732206563848383400595938638194185092418917038501589939487377418786638378977154704881378357738460815562145156926140612897015505736692686608349243177770059841190573289915824542480566585855136088485110622818213800688115790377555668185744937963752802177931268645535627277789507401170154946006590270719890879494134956856187596699586878929783422528931148196473350620120404941607538277090655750477881398177657021096249926800023560280298639496858496383183603167455236660133581219641794838100927156485438235386044369518888672347312757344038635228907689048170958020691946176343858393578737076382256659047042582949436708648064200657339533316429243331649011597233992655709465881733744801276460673075340477126420220677002865821100484628399889365927087687103412550532275647998410557159074339319694281333617846796503476233898866997798196624972703665402045414752844545495610372322615311459657138080147866089360034582475799065235422029326181513316615004516613969104388821394070737630223386568765274037034796951937851726825176064565734210297060020677158264312713520498976145956798462394305966544814371974793540267429986013962423197039753984202400825726230665709276902079746305524767470277956111698685315219252532830536413094913446296755406960666862963759167413816739058633694558957463589693492776623991587616466902723087633542004518873298283819173379250048261871013121386794350886117641391293453927442337260587747834735286287094027791184629028280910400590532992294808110413038832483161937314520110597280275443428558214438628506852653908486087651752727892308610064099390412457933927079106773721307004472944711440382150527410171482006036017588202714454162497757243342488681442906206815278404047293230757073857351746653069883064084222180818467880030784723374526716088489507270124373549648083284120176487588246814899910370034671439559621427226491805885440376087596759768257328005808046591899768852494452755056938513595046266670875983353773770284262951143802373938660437698846857113826246106176325906448302995746748352230350578200188772831865636643121797571595650379896188656909763070510284856901309507205777997874196981692840095441122761065868487282829248884021010713665952472766509307251635615844675592772363865221417846368946958612153373969959501080686376340868064710492072098372879124191594359841852448550136940026210803338726047163672769349175741185774123258733481644039616687156880146335626881411914647783293441363258654084224628377801890288906538073087582842755682764711643078090457051582320371623034667773030632419024952615561858371106298842878157369334775625255703294688308063975403007312924036224832986940631748850857262056173143319912190840484532134117427002934063383779107859544433385140276433161759064599663454742786850184805148346369685246743702905950560199774085488963726106609038016097283595293240388499454676585244653306576791911389084117277426177479654164063862083324303281606670546963044660579721761983884158026614447151910855058463736550431633109374858678442156531214721113954882931732828758063344436499155975565261492756874619797345877134073793160914955113579631519710412251642152411270749836587689101362091573249845963010728663396285089678076201619424946603623229526808215936801725385659302254365245548744624155124799040291697742410562902218091002872174036187356356606934789623704896164385475804126912476839146225576076403007440167595796759056048145062337741736369102415285635945002977880352772358068072246535375925439735842499010928126062864149822696049027230644913904955378059177506880886336940966155594520545378128155387632032278295651552423797031292922173892023852927768360114765626773298599498572197882118990225717563023196935512967128333529109146059860821907804559229425958302136807063269940914501212073674254660668831742528218491945442304295964878372216754268161614436871340943663219918862150491862626245415572817485827653854146192551498540828138848604064787599249144811449614042512314575003511807336043688383289735312115881203887096936777531393614087581864894905702222917521590826477406520791515444269865099994932140776177904013706820191315761189413868901916969580924625689731946590242918451687239607262290325597322583554554422834188745780439748381274046588684358073216136205404569461715321446833899473477728259001580958446089286347269156783504919863697660903270352854602467135102227064949574596652906660990065072057959826208769060972007178990461342909481015507323054184874127924092514818179413544266421509187365792705745284328387417920360468964195032129416912166240625859674364088506950546882746621334478148556136091787854693924767785150029800618026440487435192670117538151674860766035608671807213762863504390014444312576723086907886929522771711329335112457938032139154541835059295147819306371316583008641721907626861310380793783160107829505565902327929311419332701433649663609370361944640776564786373271370624894444564347247957511323864573803768982192781434201308243275565345785462653804072515774118271414602585800551935023852963182702352659480701715751413636214008085386138817500238391050314614415910851447262857789154707243774008815443707758020340984374342871257374177042870360356231200556060804411329543004467937264209058519865693770609947298420985919736005178643450172155502742748732226092141130183154793826946578379943017880107559966707612206724202501464812041591858139614697965789179538997768953200884658995367968777865720221534797939868554339900570388986163286612377537529024381203288411684186826843543487609845684655619907094826211023318442090682100137507253696669117051701008943821723032800754745676514451320918487449181465065885214819723130437049022945436945193715537543259241466606175144573438806401934505831901963931564809387143064353091330707708617679353961446965594850025707973277010620498971884303420525331090980580739568581066175356911947908956241214484177228960867415601871640893110439279755248505405418783056404356743304648341405740131605042458253458948249466617062463459593182784703545668749767282238190462928356424173418881331236325682450184473212424288941092844172537887108424739172330153135808878270585686135755080010643118794635213209434313774856318184810227253715025228218273644275635580681829931595122168414324723321282325288850308921561622316205323660239963245974763697062546496204135818992733994706933342305364743141936679501750859632336451210371118576501411202556932636060749222061111436718322647064927300628834982368178971491147679399830860637733843393401619711806084515268511490757819440079252714339411604530260354263403093943259399750267342487213975135808674280860933490504159184377332330414701764138321075353049340634104868296525019040327451546618635207023343196368495273665946905219700215668867673958066175344229064720911225475577182372318760985821987806864856045429669420666957300633366929458046461948086357107328255592888597113228541266280160708593696712250597434961410085625235064581723121992902495749534446331904034187963173203698840118983408521607230986840223825109564676808637330535734467812591259987427373862813433904518634464595711797426081346682713610941548262775044111865532252723111629337266224863454910910148479728007787603623150161987360701106542868744997563622825437184390082097234471642845025171344114954082285842025358422890784075336109775010094671310421032658220650691592495145173704513130455433484360761252107385389165209056438546308504143529478676834434579910594977555921261425545375620238769739565252599801292019214848755545511029041189733438996014593120762369615872008606656715875116863552706868967263355954785897216138546386806451444384120626360822122170222032421544992978852233312284671758475177450309128111631036028423860514274216502197541073672799684131523811153585493817585811024956629071296859558231511925825796541885071426015530053494475031466088742412179166614573519895736067492951026021572356915220213717509862331458288275136112555980795957903160481689895002233491913704942088664427827979190454091548938877379387229269965723562289907244687743342761806727908492105804264130787610746685454556303092843568786498593439613415615331774544939480744215442627204703492676101763255820547832645356647378342292589191361942385561023276418888870258868169475503632655169763809740034424069837291106525249455805768315383303111392549725910764537893214556110801819338221428163367726519829150283993138654579035849188754887036533968775629967845958024176770208126446811200381958533717411859853650562761719814452649813481438435282343352251077218673205027842952306912902410631260309184060540353434839177744015556920874528183125594075200657112081134013145854626215207482387745996120501400636558236326805866685101158713696773733357631618386102702010166306017672739018951649327891443854293782082017595434806233738009724873529135240205674181721717612220217889954635811034393221978074965125483750011245511054444166894576154972453047384743920987498549165371908014936063721342275300354012601220365851580202777779653089963078199486193487264815663910893765341479378963375442794529498682668152637743992573739228576244128578464138303413491156526972371806724918259035034636607063300963810635182252295466896736593934174158020642791753510387619362375915894343319165950136089987093168192043979522359609378538438150087607304667283918597768193501417476685484194799548301631388514038027500616470857364682084288637891012596775437612256378936744725786304493312719493567707215019708714295324914261779776230840798505624564477082449077885599726581450721698151402358105974847650685135034862371595148044359175996684577106940947454974675736207573289569638553280816741123689835834384135133512257720970643313881793655753860390147434706063272049055452726987424248543875044024617988317697209138164695905863052431597911964119194885578574824291624470044992607211584880707511975247912189007549315261137208104660832314408372555824808042778938211854525832942590402970228212407926226543565664483164903776411081875006680226389463214061541803817641218573602778866682840568960204579978509011737826750510793329325035075239590931499627280922587319986381706442516165506452843546362959866203902155420363439560005316361693099747532515296705299597082070627952961962605292432684173218526119871154907117127647895592734553389146710341452411012857582454857137359219490652344392297349708205368006825388700390950362414710946994369572687389172380950517636207588772476250611467187150392236043781004031944067732881458351772381678236438426246585805725157111069578366519823116782059899972959559007162061107710601499066401589822298041028672423069541204946365793157310893682780012649845230222394776266801739869254901606750513629949323200190661804813086068356531052018659387815427563166801149236987008600265106338332629564834510153914660979784007327496415268296623413331465486126875196066746164717177206286127668510616176397065434691573193417476909713454735737072074765077997205471224819387409744614069178844647187203421298772563912832007202495810064266408656306817574128503856038260213452523111961455967520823745192711083542701706796659788242902137250679087804478311258306362596427967371770288827919324973961635095189011934860646335181280960810088964559036043226242309709768964567399333601129641065216942336447883988578696962184518754713853181604626951939846675404366013697205514409951781887084386498465683538273133227859067521041671365711020221677177232850964178129742737009632599590192231374526044102233165131528868151785007455171654482186290984847028078327320081725227777891104018385735654125062755202410538621850521224329148704171709450007012471024187758984835142920325116396683471713695190027162562109866984503503968738623189277305873801731654523106820754474716097928995422712203861957889935233843137649822846290696956685663512070207524404503872394576226604693003410018122409981568065366278088625559057319239428667464935291480944965170058197421393494988277658342538472589744053954989261365426532116052934066018824922663647707452547888816491983312576029231088306071411612448609549882268314198331110507051795851257073499161047138698726937851784642471350792078190041938723797111197743595791932153200430468374379679559678768939351532490947144962155958104016449284523402171745845174026634359416242770388871811997422917746639038109496301654821689102416555837902247998710386777190418858749126288098892686203093023327091666295204373839295391240917661010670760258295025581332066416024583248533311053909004636041616929443659750400529063973815443092261360762036079695187907420428128761464365435241172593042770459662086416589051365579748978897820372369394966149252747868701690534289868823554687319797139015771566062393362303120948662375770032016707263449929564415029679860816815436140992873899439524400826879938955540748926071308521731947091754427453430557287990537254913028349963374723048606964133995630535475460450971908853847973264097401083720478027603631563814847574449229090389734912723522759545547915670760916412766698348574333987356154479686523336973348789920605171686772740901883654348100532913149950184698135551954373542186841920150048311697254082554261195591097238059180369182713224267268936023639851291213975580613281977522950180640853745074396051675531188245675002562316697962002652287278374511459601491295933625799936109049858296691308669205642957205272912811048598960603583206652451148996987750527207202502656717333604541667310918275305980144355561701654454867351074387437656545830488149391603115184384946881898074525310955561939952679380090963363781774020381531114163869917955330741598497371574283376216985711144143424235342880470029249836338720450052757616739401214322871121225366692301824663603119985205999909001399201146211290729450769080169206874420566051869842172621660267219854885642366389646926450275228248435757896781148514488912677473608615443432326932724285416737034407622077672246651652691573366775814133512045464286010238638192422235004578254989372697634102357856906627087005286555321831318444151194100209231609805703637774401399077512607601267097533988751307754039693725747466676928485835956293015450052483189394699692814530902623086148256362116066403509161423399753216863607645768912639758495749901818987483738785124782918259375146104626271815423318352298330130810893125883695721562861817464223680379922873049214410382690285010293145306594902382167504592870232281037227420825597663911395183794816644712104692578618039488914920675662159439080919791643547176225250849485176239886269169330973123697483104224352292319857206877874130715854172995092164238095069393469806105309567748456012841887858722095181912227568764764450637146719210480905073671132890907748542029121856356582010527702383764021067648544218541420530199615691864091932781015296518641861391282795001838558335525356463737287828608433446891951308634756425527788181518155715662218480180286917075616315119086973426782353756806496632236372169520480854689475249707534756626855180067320049185192610635654585675787120241311113082226736329892124422404440619577490410146421398128467295237563959503820849565924722808017960274409441110176356667663362159001448634525849112551570300218377871932165505425077731967486992219079838234764014782352141382356402091129282080360708854488234190728101681224418328998144185827275838723949043988193991447243916528496751574763205854385806262405459021181976273042517122161446584665700255712181607019623007991084666534904882702209677370483145170638145356739657246182059576405901026700517879429154625446365948725406801669352373865475923862549356524343292972544472975582079632468706217380043997631080478772753227708112842765422632540362113061337256132384150901507102233834413041380407511862386479573071100731751865808224570965682397826066398665810521202985395645642953917812861989740544688828760735736390457112390591538485437875487992981381755808017135863136454716034291828501206278478514868931883868892435073238896324752742166167897786864436366195795380519793876527460025416383735574746620486744165917536552966440627311241258562408190776451389781761597109143897589333158951991605496365226465616670175648994495043253784259952281201003005387868438637625258403971178359479493864217501374892827481728431619842563598599886593547054882539813024799957087273432491443213274152888291811899637105712037854631663857081676946117269703766703100317062612873753779291969574654891931337682418188030830411200771918252199725963505786282942587471812467598415687265322365894392914319000956892527400936803635071214401450853280378847538108404771762460492776928513336719659095792939949028691881332322609512951017941629603270237869095519376786849077848050804307989724986927224318184253217163114993681880198717871310971645578560186766615351571647906611154741482292220118449227639103621186645720257156014326515700915330262275926618957188015919642172551933210493315277751931033706471271447392311593820485400161024007411740381170194229620993340020688941234959397509486874400013727037803843037723015122814092069358518588307352165969894231690260637322586701617736165495345467261075875388528134256175725144289767281217858472975275168383623344481679689759213560289077630816591130310845963841339282351499284252884880640577080997739488153028439915527721613380350497419863809640552527105872388495978244732568256484225575009815068937090520101671143305502210978161791677885589200737853267759331966845835237918203928662375752109491869178303759068661591641252601894513338058317258202026237137761403589466660379354752934296873228556130475882367440120003609889944741776801778374445772531472837134433391437015094763302533203437711524292897334926099496386731803778689355838777299070749492862934786144476577993467678048396599435824636399580104205128460571841855850562871421002104490764206374798613118336712020099188890159291237640211884920092219713072260217383348877556143087030670551716234739982594595115199246630883465509632856234486715812790987982134653516198102522758022994185929060743786132388206595413605210162397984073518238038991832525205317845491038700804754795735886989937290877204831573621629069472459797387968850694194650744339312820951302246317889027927049613531603556489445925561666956106265357451513065634598280067254362792947934186687636562941418073887710506695265603203742544503310638541383157567104120010250801882662210435131941376445868276762543536366968970894451516960227532205576531312703633815620339407593827342057841175638423167735288021623201214593376603677364698838262471909871087888582798164799909637860012952512108702834776801280032019527539131554092801769153851245915870135529563192287804672087617762788742775151158286380712722002098835468260636931285387636944627876102432381414495899477883527858148387652438436248677996923525289259352376105395074667128320775541826281428742846721348281019908397855033188273690251627657909902438487702735475210819978186218621412951585930170885342239754796160868381769257430295042334109143978075541573605045077281995855622077577740526006996051478503029633001279527867898069328766797649455190207764212399433933129807812302041804986838338056467158661260346410455932018982070262551954011382961617477305878954424750453806017630510073549879395064409105618308923698942961327095460442272857774828439123182104520545216623372523409503847857584608365366138898218643665803758883909941359450664962526571761393506450343504397935324912320795710945871020279041146170752414480907424869121778573747237512625088154046669853573538525718059158012573333678692551344166682648642173346039583301034776928106044956681059953062952355501549283291569376352192526008460753735146757173239920923538645281393510777328682656761997233846387061312194150836722732569996802739012968494101195015876949210445740215073527430534928702936873317115157536384316870327292183477376789364853293236586825460731455146623630170210985205748111273405113922628656930508437933039477884254048311582263838217359456571693460113310607038229058904911165236608163356593215530135564004448115641224579809082921438460409496076223563369450879291150679575721875557115098725348185263542153110399622519036004278128555681483665092911252280775514073064158580006689631318139272648948320006153153516528056337811291132268814252784345922126630431201995716804596645039126655516710193728183856960071792509733293746459699094558979927094378713549115300494770096678975028608590058437504104501874086950442078528521816615209548521436536396719637850674496542246549827239320333477646727274129892113729191207481244122973574574875334116150968834609472034614902665603827358907758954223195816075036757037261790276548794832167566348662333981285366048603072304301845677453045895928075159622039332489298062382908748705435698781519372063383771841618527813669300841764481689712316994282628525455457472880548041055959171908560890628885615978161832922752818271548412220608740556309385959391714956724139972816532964044430781040972254203330771320936728953261644735719889051149431249012970757662336538585988111055923767026871407907581765559722616506126725792184743382416130647682859899529354989573985994752199693242139325230428471606380825918374210107826499425254846031433403931364873609282110941446684081785667014907270461731460201853687728904547316773156642147321424623330943206342557469481473943188060030555898078186542583569084352368718333304883101719778449490742182503066155809856325012491439854972150285259705254708783479338978687176918747322202136719597628069757780601385121764047128886826361393811276183436089750920163241559709509402259907246291994868589832498625135714774188649585733765845984731031135365771704708430411585461717873053537392675998651524610526324188417727235244237993557076196026386561432396114403092809651984304911450505406271140372121806831245116561019287984928939772621890949971027459088935248369078443110325092000940994790005415351241540152602044926691977331786884818270710687614375444904703101156365320072112604208548970556946191081481156288848091971609347655707497554705692108543715212561959060360864658302410127884517885482462053853330606613958619149971364126734544234731524794486628458038523332435155859647288717529668631789525652785265740162443250388907924787092448324783984724797051236389742020366514977302191851949928880717251641664405401294921958765665624339150669559886354553951158163389203440881544916957147528412018834906531707780003309956156408883057430874401948405419835344990397464572886544927879159739528914511343934948320188752604581803062878159904654416819453217069417521036858355581189146242064349954008018615543324121793049406733879250515284774963191609693107722153778627169351970442003047597074198989088512004253595652428533125373377301930834171660566282307123626223552599840181282367543895772142873788570935866111111806195935332403901363049536943836804348234978900160159322665656752251638295923051774123597308026664744976450681094478003968325289060107637555658646135423667045789109978822782251677926258453890914280313038545094763228591233119428134046398603768849619028218055246991455603810395704485128472902698309286556371091202000937889215827830014265549165304803549281722810679374807388884971306763745792280516930485417694394302671478649400595767563961694561103178589053579500347459216975701473111600751965965804166083738221608823843493226245523900724013539346118138722255633898024168956092831211354096364481233220415009892223376082293094249039033254026183293594715796213701899301823077847694473811168669882005661242844938675115699474679188785865892520374374458124316648670588325193952011560304974618329592239973134854827550672787933181805512088538986411565430936414098631616370490014122380409127454188921614185097095876165466107207231702518679000513628340131405632414472373267566129549582504062307493466040730069536927458145936196083070082717792943882498638563636292488321888793601611461976507534137234022012113785361210971146625965151391324361472849789957826771663021145880556460351223278043595416729618240591460195176652334720088782830526737172233930375296358790126991035288921066055280320420506809532567204367834332887580008632150732109051297283463141734199534995245281803170378496620545914189366952337725442924378716539930506667215035248239266125708706798527517747488946103867706348095899181223990768426521258528333527397195733411775255986322583000603692905126067579754404555264915245266043682494235493233468619690515753145975275043300088164908220796537655822795931579034634853675775126673429529127399218228859385070123203276898729860860037656587706905719825047185176905200677054434040122793306104006412367634713577364999412335515538947311022867915154873044483435172522431174081104158583919132150862623348435186364632849564199308638770183932334018454227089920984095903403171869794773614367223996997908957306707159838746808674287935170352842052739167063574875035537986407099932947461541333909362067698673480703805804229450215268022039026441817435677793506169012443124521311271824854320812305687544909317016145470791732506374720716350269648388397041360956196500808051683829721571163418465075675789302467996344147931424293071304670112111506870066003814141217659029621976723346193120131399252189485519276355462235278031182916161265372190718573700786546841739610270711311138669616575721114627290907710054723846214867177970200124108345909487623623893359932411695970603129517001895636971760796823215998327094772974306700087758475884296248066705243351367609557607475375195939673443137987672018876647402875963583370608387372459856748522144423242594517113525746997980490676173938657788260296556622760218177927955410951875222461031107700512263249363688460695600627570014112860156816143646624032211064641776348711553188479022225283889915327055008070180955975396296892273807407020973575616193950597369710087109473861263707165106506228325936424579432703867172793773637794944552676657080771547519788167198669319796478954632059743448820358483218748656458925380403050417322936514206086627740216746155367748021022577541208301197569362871423698930383262648614070090951787295380213764115151475090487637870617886456479743985437383637578840208516623497895799452272827756650660315124619728472534225318959042745708584883923103029954398583009418171315952798184857214871984930366613224158904563612020213447501717533904917325150432099530629852185932418095664708362694871482370790950411076086444562663786487379693175547621397837984486950640816454065744485692435031495126248338121726188500658698484019593733202342218651372548869052468045256448667478460322586216309035291200726987762250277142972551708028463739480609927801892716405305061623694089309836949479255649492919713914659475051888552319978168136540646084335761404157861597445840390570312390273419339868705682320240283821992886411032969544718368371264467088129441861663266248054565985347229410926585693525920371925944233939478032838243161656587409487292409531391658682847266999162182666271733270384822454240105643294816293533206427528088146990432457678654780799166345626943788795173360754238211820502728899090113997170323109922859262623015177397171364926339772086318252802162782207143000988417851389379322434596880508403054065728966719567300446658725314740888276371222302000376848670235215963065088613112085945367105694663387762166119942183470301398534459386116715125763597739662199784438488934950347403792650702301914589784166623081526986723608138043654207011905360809809661853752558610823734502395699800151378583235118691679793749288480827170402676514845780048779024750417846900992726622777353625224187566103020357975776371808341709344596086463346384837074776633297218067138242400231791660287231604958927365823209463895999041940857121476123874800458274161689976224369270925068766391529824307737495771680298597320692931298914227086914182519607146574834042177765835333979083966129739911401718115142420119900115231270801344358945806243304276261583066255942247767586754542126693327916187814760627652269341727440880476611060047547431290554608785942176125097149019662261389726542146529715050504591139012411487783113653952178744125888585832014570165422388253346911494274879281181941984231694606573378245630753135588084451191047248064358487370701694362221049875155399118072474673043143701493574335081356956417565446662100368824585006537157265943080828066433835923059302641318309554719400211032953212414109741724694416481178968455621776770734547053363690466494951601598372373293029903760984062755294705129842030352245006212612984792909427014478785301621922140352832300160195467885503528467228568731289159462982119502689018209637835920718609912974659571018008897040982223465746631370284177301324024429785143423899323119545161492710884659330920826690141871624480567653860045344752909914941562146659332130144466436085359499986362733565085032617281690727493799271521118072627941530171804870018835875682819632019769477577085795293447565538199170585371737601799349188748986802964172992526047204039240219279828954220309180285951561978863546112951906744580759836421212207017745555819683910727326018415203228030851313233775692072925256970650649987730025746242255952609236036450211747142610677030373820032482995508291619184824151051235999192205892476661983017801147926414190728009635441846503028852591090672950312520187622389387592770617277488140296949253221824920357503934969591500917066672781834166784763686725058315232650957895857191082318987731602518367959079017230297888295991240731159234602641727624230330815154184609359139757226282816262182009407971266849845528209040473890165394073098324260937002098661709631474270399895066402879085623769534200326266979134586218347646573202565968203944247821705573000873889019158013332093700786387651801935008965623966084882635589551377497301450842299180771068916526912390251670637420748177766296881240301830812204496329569640370153793710008549769182207793619061720328293838411550173473710052133754011181221763605310811327168895269951103239039386675727155144738680995972989591431597703778773058873388116425382804620480711833071567402200725998567673737075168033778040659667961691082299700338347352606127286060931464050547941998628719063264836120222260760093534076850621562071165251309482587373320131559227650148020819145344580578777059646438937446302780001806826882892325877107938878260615445546345256382218773306303300882953498406201424819718192594822839963035702956319356325395700872646412003728908640505618251515488216940923724172277234956531871965277112307187803999381487826095239615050337935858600854087845566635582872503050080531146119559789136258322159517676756839092073449379104232659991500654650053440214397973964362693478376368430485282267170396814494066523725361505553884824064544296405581834205749973605498404830485403310786531301765732284120299514338248250733860499763665916254683834352591177458501712991150750685250782899983180003040923189565132087231406777455355904401898058027987988122474122278138280947728860128452380510674343148617440573456550551302840885948334411118632699834894836219174080844637732179970254772878645378581279686530482005040629908293648463916462982131967442109005384392341326399951696573445990814712998135777736069068513436219122046471104474997448605568694742285113168683591419513723457419050614660623733033147665265252997365359127626114336623250277719911663254492434942268847145957170552927706550683145457213341319350867349578554213233263311449375347942461019607569369376128439677135092728803670121553816296444087719009162812756761460016203980694711151567931244198418544539496541265629508512405618900080974449267827700408325422154626788891189507445167556627895564988791947055052160830508875053738248060987162880222654215171519185672807878317002054967993657381609542097993558621956038375420207094841702355419833820570040594710486885760432271465299059495311973123617242949329189666113287573856479846391851953206771630636746401369783003655749479670161878282566465943793781181386219415560738474526668891581545723968395390165859089415869248186285319748626024339523638167166106914451548072926380548835597778922537840356197172126986284138729351623922338175597873374770879011270079872079975069461490413350551167529467509381391945334892855434664010339320248307013657412721936444067908542262987082442991218130856086002522344061688801462586726401799777521976008708466982162396547722155119023203999796328412712395184199261086257996374158027423575640923939399772652071970037979287957187790863784455581072272230498492009897069233558822000139588529219699518133113505531357533301789850730910057753014672856551299375088299884618372988589843870088159858287927872893888228856943677912218691270383419961618377094988392662023536773373498102447534266282350243627916630125809443276580828007459096671470569156317195156189992245197317185789602085850547818982318355658607943706051699613287994735143787337351375508179279422451004426598374833535876223319487594390442129112062800361179326442670031515586820026960721569840089381309990116949586969794051795518463663087463713653729016370211658538373962782633893200750552101249118428350412190655122292533634817034930707878227812821438131892442549821288058585343726940322037438120544062877187587831845893893538677043297746071326849714372277735785354033361111530097938589223163086756813032638362620201781039813829298048681569534190854924398266013403238138826206582460273681155395114511686014963525545137376512211920176216037083257790195272858312444687071169844638757823598593297459140340161968822209963659585968395176406403181925363438885367167485600143126403346494018436617006600697709100660717537229444206787907056204653025429685243757355530351792481270700174191097430136252724175794162471628338395038209011928117229412390886250539633508211928735460325867919909450834251118574441464173953059722992425208435772049788853181816268263424566946609443050329297964034539490283007974784089991151867360353004729323471114640659218682559310658082045999716095358260033176719366641351984041155231355932111690800073876058664737706698954576571294780432907605601239159253700853307127895277385998294772044313377260063240676319348372100422726629183429582598566444306645114829890326138234855116036320171960090541029893664900039920365071065124813423412362338841702956222389512645833976348281170786752559081516397586214296817945662222943964954188225682369011091007981026625568661988040118111805470932420252557342668168682800396936236501032373681757513356506875445673473069745098305919635866362524463024608664993454367082801270689499886035339796638914778821981669078635097596685561358256946670118336249863122246383224046466267226304251094100278672259782754949853486644595163927723823233343288340045019434837674354099319474613236826552347776021785193940966965691640550661616851397158435389548765621491093082064169411411039218380558032334214382976948632681296642554690008992404884415380131276677323906783716825649457182888141122985329241310625573786300154480311975371837893556840157267922621899206431611030327071091731576918154826456907346228833192613400106221788267170851867908869386901850021634307321274689633446933993106836834662000122106585932173736651864002610258953264447375070247866091222156964949908467917274634028227224791911396696045397731039445056144659258305776032680654576996645417768665069778795600229906665304888064370884010293775196831397137174844008964660412738358862535004674887363789613154940607214919744170137070528541212998940951524097448699159482446955655757510360320352392277313807687170401861088029384744198483601618613810843536787583568686511886210463940237183716498864057491812690742232337797740193098817629529527177978198134707834618824928116267351364195411569239455224061713976869619547265020256465585401195585462432001044797857556801695781438170285460486592603697505126333608893356339451827105625498490310825704486744193463609575697285117975252835957349500564789528942934964709192732834981856131282427346736027312300305305279178930350370276303164136673551360018343054309007188022620299192244633919887523385766945609048943102895581044339237115203419699269640276969819363243942958220284266142944231547879609469098362308779618395202353950190585120058364738494632222964911800582159898388047792754597798700492284356803991467081794434364042603375197307585036299811981219925626600324644099226731777130106129728658927326720010162776553218300608464231362354070080355083376271559890406132972938908146833988817415769571987764060930237676426946725599966681229150147005385017995249911764513561996450981853083174089416802266858743121078129903441949971125724547460472176188812093542599281875487512583791019642045092076815772398927255001549954808745993220995660742042843406478208948653906284723820515503440634797097683450594594151126479404017085493573984173413823757404496572261988483830968961535147038512638619243633465409765127064543541201018167324520308820178161904312461457887281961035696879049966813301642178974555234973705868022237810469348384739552545386996016078310762641659612560713595526249070940628697041925409489805826338978807456884248017669892119482818072186761897244272960583080918447924480083451214249043250314171695841782653783071151417819414181749714233880456718610546072947719051470301989059757996748604006622497372887064901358868883769820346265547070428346854034467110522555890422436031219729886802509805948137256618003452256565347168428808565530243464100996288976543854382938397451299190294602526276227520906720119184765147094617039567348530115439376449075493307583990562012319750611994532113309102456274754570291392878441315122077120597401357976095210848914478100908498280706168062223921846598304402463094219128553240709294414662335279322031395346435837312565651237567639706275772890685794040433238492698008716947879628386302153416713476220322258732627562049319939942182487863814692374204307227754612355171093165452478512541873666476943698706926617559272711152068197135584153654297046243431287332234994745732838921730408492959530578614474587029706947645213580269991029939172621068089393994529393316346510527804171948681673729233948595111956517927320004715430804039784841443070659980568518455582070460213120848732991239796936682716976707207959941969729866361232212345845779871234161082981680042044952600834366736841710017822668678131005318091700316491155213368541982295827127427903355919189626702437796391431286758306236970085277889390078227411334942101530404218647682834512552970297913669666604042653952500459953961538284082919076310621650173623138710067282084039616331637263669910403956267985082039269127121272578457616058146873121645356259752019033726160134568487609812543317033486383406986107435233060888688073770121148510058078865765342059242904828948646009976171419146821617111400427843305890104239215161404642096186436602222262250466755444362576020729166359875623350748735596637598351798555923272973594036377462694274398050895506684513739538005651813622948123877340787590927858481051906450367602944409222243554581084469755397219705292994741070138891112758009725741495130944960989865060046576357107465661703379306176058976117858826328033971126436801773585304044114777963612584621846443156816196194130214697908426502915724611992604822676455861795481918429304752090405156718897249441849374348712491386728060604159104901113941674158907820106567187059154694244002928368895209634414269151240006578249748439812739054073318201326543896831664795029605557795283584004675527657336918350409230559750347879148592114392771801015671394251387113417812370891635181362169411712567596178282371423937825113160530839196007395407048185019782139128040974294425630874313966352382444644349259115161431482504309033559689540381004105778810608607031297944792797496244991035396980888768038279926151859853522836670244808385838697729448826551385438627199942336417805167773890108913508669289409577555088964605487850838168656064756485523460316124165654608055656950179351074169204267919691816852377572404862277327765884060390821395617372210478623062030702087247058200992331002926928087729888960834906361075335552296711829088565030409826962336815906263802387320979003647312228922539432629665890443077338455860825692445493471851572523958594388605479861517913934119347304601131464438193391581583422592386880592089880518893687617821392357052781775330339725541781153782556348060266533163432145975781445200372135161088081064212963434053936082164412593301789793956480337202578138856453911352016542894166138725924560477329779906952368877483432856028098728799010149450865302203217403184327523192240730996119718261216390739487537320846801765947214280552942537648920715144173709795423239692556644504004809707135833724425073463285259718890035714393813144043930320762138437197609855962819650956736540850226268658280430014914298230524920028744204088188246247995421125649295467448886704799226253102102210340144899008027444740927581547644760386312141226578664869064096099647561670044823637628218511851821248626237496524773706160839761923790707159920100863726697173682059034717029575188289509741219997005543889998883369805718960613077456160961326347039739157789119350195467510649259162227817690283388749351083662070441034911518297105195602604202559616123564366202039454513148011191258971947903203063396846321932027837959028556006687848402558073112236480786933965115453996779429079978208161294924317687557403190150414278637123966272227607383101560542947451679348985797964747814643130206873528424342952100731186157159664216642308976335349511130665877744667874183258936446127445395347056094524996684970866023433157100580792320504708772694174344935553293525664514990845575210232872794893587007528833303112460591471121649242201147751201051084430808988396643183103010881260081876834600374174197194092721716700878345427161295291148030885376815062686414419164685521257164601625292782873290803618321417633038242670988676208437796307867286575604606870092770589735317390068797957846116602888283581868981696649267245170772614995147992808909748906815302553799235550227162066053698593522770466960274699325078020631913417809396582208933445304605366183547642229499112131800176071305758793955302368675361245044871628481562298609007318259084001831926209186880241125557811472998615443670637557706288736621417969213765381269101256749978654423284370136173176728246735562860262885433511094004673236120632623304569921653166592748213946691627047768158778061091645805870656724782207103879656500085189551901560244247387874667108133289484473843891227461108716772861532456789366257488630965739317381895065128473064586650106559215447949461885658047493672882687750034096630643263797425849007917395549449047138547659850047944180988635233671456567926816431006095966505271508569769518298268671280214802995628272907283548539514982064916227526735907660670462648391025853872651342929487261889347496060291496659707339134370154193217253949328400728860545336353126922975541494647880217872108679859956419812340912129466479822377098786186510681307483074157176720237511793619418500677827703289476417477699316359907615617569903333573912787082281779567924275533844063299581567080628540124371062828691595531318596958195075456189381704904005129939064229356446574670832526026007944211712208005406484845244396101685662919501855835684872728481316602178845911115409302992346026281653645939665261330337696554466124160379376221089044772567595126323649322045053468671951351468894645027652590229536832266958363944629738803059644069888007726177932567412619421457985639209710294953790834418216582321551615442177910334056243822275422760697110714401580983862684859844491903166621447798818808074883593309977076126528987980579359830462773542066115576816345435893941607735943642508254828617223354336995702146847809522505308425120378773379257351918149705049271482998833615195421092952430885613230689662587946217981598695785803984471993398410565200597528035929644040356527571932742423565797924756756954345329713484158685474383303162909219836402686374704486803983339627680223938055267635780050360826257513169980409322096423292475499316202599591688678926550787431807761222791361611676279897288505661312124617646538637279047362163972466642005151085191107911009160686119044852475763300765887598537515596643207183029988370023599425932769246590096879408447359094572689287194093981410167179191109020504341973082058818952193596386607454385499268031577018914236794960812319612225482706911024358517603367340865282876114457018842913435963228237830562425023947293617811401948161568323230339448589283771393524180442118025790168171105681671578089198597878937965932413626514246140504571165089821895674519069442783219752323228566229403576624158715074806868671733865524851427629172663606212673564314491344275948079543906591075233368732477619147484802996802779553353705957322291778478610845741909612682924583566090902137897212209342309005114748575377961016934978446095409231940768197275965831452776586128595211723388274260742914451749066458409956464753891306803896717883285735556516264934053878089962984116446586446789012153216353935049550480602418397703808507565333962431574553049763971442344522361782857906703879558026040723893867172241420698548228529595852274836280425074989812322636957804420046030283144390430979632126079604394451878213368153421262839736967715829134989757694322253616414864391880188882455928919519396241134463692354040370086005750171092358334315357696118446497691501297727791601033945086696445466674993393532442441166070207307399581358672739792144970974951754373775036548144682434852565406957775761068273449446699432794977190066271838444884416710048896577168762264676608035709929263997507496835095737693330065064084924082117294748976358755684053783329022762314903840268712865016169053025185398880148748583075799521050969579007875723375574118353823688391013016406129083352735785347016726636848658986548071630359179557072258680089618346466526004076598818663928427890048275897343496156592280763431977925261797073142240594992429079683369679871404146153396360931079096798478956124029375036253115402632954024674323635424417966025515299826569600325540932284654106496603479226867208773246171311661747084780165698102406506631869600794058774946400883171708056652572835518802857124668464725270328277394365314592481012273762006724332660587348344380054941354266412706259877118922052775926611503613130912404008542760984445381016960128265574927373269080245590955204136528453125132441040714590690796766747061764136712644469520546342827942711618033667185210119234706611852223282616564805491139148342488750579527479055318614845668846095618352306388490718623849017278283415709482606903136228412797041366201316554196609847866410715482215765160632785590824996822647764958651930825162748410462741465671755708679699560800779030624977948639938760129927596219784910746792052506035011116698684280091477161419543115623662662416750577172344152500679810870977497411221379286507856081989562918464025914184229356382588367359734382936577294235351377397521313034924052105506456061515715198013128787143221192625123865003428257979984727408334713146181749255012824578077324752368376516912119648593838283925333587400601332233219845798105129955063770165953444190710848885434652238900690663919691861869973832183629328186282485402316898249990149097517201771588903587630729476965916194812757138534642011137557679257297598105655345529986229367685156918947665413572625029490304728142401278567119973913158465400434137354703262289931885524042401439712522059126035147018178949227167458766691564872675273631321904661207348417468711186224019416999932665895043774660924811720113091318724696151650625025752778412851693147049542893899882305399916406662239086202446862960709638050831130105306397104149438834861813565304444268956438026328450690992213483642959301097867467631031466003841099208016927262549369620232177936307798261093538789953196824004257209156107631473386904642874282290359501396240464661395764287590210862658489654658212506152324162107028580594988539708431691201559113254366282822213088223290212169726835832433971134499324907758053368440214327316412595598087019792515211826994692104647761537553164888831804821235169540254278601205351296865034212668644835125942809565937322849483720361459645168961072190983079661202983038243979778052047587464867797933149099901954070212563157325096472881226569819464204964823035012911101421486750916309148803443910922655722590224257361580207534525297107591075577332998219509817028314737696838281216706377339397577764223556280155343703198138915734865845376244359381483216122002197042938073732825851759375155384195338161177980493607025210272368643096585930256297318067563524668866948416185646427088258682708299681272447574442692582671390258979916552411728736006919943047177744582549608106675057064054943252917778047590063918167657946362644065011280947869268708096206957361088115175592348183935967037150771054757559142146623495545702557945523945214755844702274539403185460038835191842980547923281639985649657352423711638041451779394185554633283423828045299349888013077101686927812673904678656765289403278499954280616082203848628068345640044936695887862640432204527011735123818212310799872820907251270747309427491744119520250654777076562040650535447026045746711988785516522118899296632598321741251234528046402588998631835795410313000899339720496321267709948499186433679902147424283987714605159301665518828342768848462750527088682519586688117157096520310280098970654921340570783107002830704969668321273951316006384100875374179008126942035539267980098081644532680250473090858299610531850562456734291453814364210889234149375560418111535708607497554853803109245930699282246630004329404431770559288662126582496638623112569683209640923688561700487537272477341721159347755099456765046695239882672130412692244802686178243244379580931038358886585616260733693605610384303437005329752564441400497458374579741351087808589240159728877071697372339376413581563615573279290195105794141698505810737369250166039632728301564770288862145088305172628352000960528492747650976934005878072430730142083894813361375098556115685045193718040729028918089373147091726907773561738816103825652532310778150108228672139996868689655733491621838935391652915607765488824015745459551631886972023224140664433734470407430575820902973733864519508771284909970132670119007012596927614034047842797479547355349099071559220183196041367502966780097021783241427694232576539919152926496165431799002913275249523494458096322174182757889846732653640114447973191943428958844996030417590532383987138155109249975338102306783031226999680463627954415461190493129624176422878765694643361385207511583330472154440449701804325700278197136315706274549793792088259788138633346080804354300091566086327886858926361866471828846281620647072134307039866708364519948040775364678985108089406054599795501537299526784489314448953322814209046606652055073982240527254724729961588079587455937432766422226378825036141934697140059411051234294440256024038627241699856747231989912503797755320619395555582510867875296678919620517987290702845601971172528196260321359141641141700503411823464658048518673244580700578140411723027049028797742333346174907027091745041766533733961479635688178791316011515638018088319015131149832372018213744535108360003117971703929604988169968401830676828783039581258662793217603932536052095567709611213806848106066686954485027685506063879477404232666953315066235194770030720015386588051265545359781018589155853998415980330825003833077323382330464514514575216063872909624361732860250391443427825579551013783218464577638381220561667300625066186867539446654411783333117501460333623440580239344833499633267864240099126363971241619671266291902236646235499897823005023603014980835029682126457928607553674493595844830088427254936916834555702196126288587050153085974579918039486917764208416171480880344762784548405855521117339747019367242066638039561301359508693708833130406737681424881632771303093547800582486324298125146703478657476587991460446031347957660812660571918464032753718233747141505655216434273891712398064377915305382133057645304474136290168582241614455602689712990002942971281814352791001265293608267446447437325100593598733244679681543650343091941997046698189360657105102341369832758983461045819078098660010199281249700696073579844878359132513478540303651888510499307384836095402815141069924147884762788423120825164412912060735530386124848523326904872216067320232705111807614568638387045649306584789297579786278726310048970154186304618229327772939693073486413153746384912961986868927132472187889754736881977162507608980218640793510426087611819002631307275648741583177434644970392348858987434389488981726087113237107996209578718870413707355467745915238190980550336606473164792681038176176080206630709882958440851745369807942964031335106487525131897174525726384371622192716714962491024771408678160351494018029201990981412051224245733641989796676558784592088900566711198034988127918544596571037769002617160678044550077048411424427734014044707392545143510657844582545240365169223974065278920585934328333288857240348171901872244793381210686820895760370423750898703173236717187101732217635385981084783558085886163232980738083049881909609436812815580697212736626585593187868156010481330418320756764280533407751445280335460298600896531742534930993538110395777594769156593052253845642138252690146337408402998827289690342191089113671668383363341006097312440133892879326330340882740152195712582305329194781468758072470842304265544262109228548512712067175550110423501426203703753965994758708090366266480598629822402767633558001854235615977428934608933183713021010797615245999957029215207305107778643968163347154582016367030248718429791390665142687028381951380925992674801294622980307184676818380963837955193793773147819006134125842040402721458670936746659547862375392021242759779528308007603026388958264548324841671426055282567172496209234913901546854572349081847351137198149676228346467867776026275004215561916822973021759738733524073005601004856855035907984697350590173086989000455573869286317511473450690424837183656895841452374439051405826044393963808241302145093906526593492496467843953231984395944298355706086966314769471086714720168570611360571943111286275169897737582116827825580982345261776056886147639405362308778904625640295599159977858649808112299101321843896429037014323951708549088327941709425645436285583286237905517573551112557188666885230588359191860973062865147713789481209773746006774311248044269949236386593923145103091259802668216890755432095488987476216060787180985551280864107335217857242870033001837561159217783157287649025058738618607693212935441450302547914150282618830898266518630973709277145031382575148985163791663759366497228789067817075674866119509134671483133940061933860502394845564162347356470655986309646505035074533211251474188553591196853998766004201110441848734306896139347218381439988325891212436813309415792691625000490868463432852585671190872079146944286472644434344778150842186326764662236634820448055724997878976382691546170847764628219563420845577676160596671816208759210804188120614206646581523369521793945068234572990599353421856448559899650743231164024622066086446486073038084734924454546337825103184255643326513374765828367239955770120605225077509425913404341484880629535057308725426588759091782534866347288225119192996749323206751370018944460401942464680203760419871173358796398383196953499921383337341149955492755787442718221262006540872974075387746006952544456608238841742404308909508316614486689197440031109232279293481650405938314688822116600918105258058771329240277385535475762169922052542041392896081864558756835560684554255740827093002811134305390308315285223963895343054726597739795617889502049513884274215777049842564652021943762975750888585841877226008513593770337357321142321467036353077712418964196962045875963562039789196477173733842400017511322474602821198233323543820048092652955824871884658766953230318378199496679475321010996850593668587979223721368218926768040769242286336900547699680686536518008488821244359203018620256748302634522452585147676049868146566498628293975387647247292421865761685208796167139899990825401681434236260102666639868615161238862200184891226087616204836100191672107338185432157945903611449168467508379619399278554277644605232678045974552403271527030601176550133760017396049754589357029636839066253957410199077517276685279434628491071199438847500670284231810502920333053656989929678470255580190957151495189216489899589195103568677770844428218712008981934350870294006545469508006073402715040216879539768196468843500351315839049065581060187603643063358473668730933983696306938640927179403499603636264603749703430424021436770702945773374056835479720572848419787133894594299983926774783704195947303485276159940627987680997474440750942906520013635562596838894867928096485270934255281689647569224830222720447338812197596873563162305632875461569960778618434931185379314802196665183618552042717738579083964935181610183520902559985411390399154358732861464093441927766129291621333410675191154598423507424351604922642402829161085469432386368090246829285674976225135192885741711133683469826253671329769764333067637270445091774592806910052828079151687839241971288446464155521863112775587267030889254892167212116308778103131601063654185832749458101014108327457948550306351639435289006567640474057476359914064105305287932064329317855391282600887993773855873708225805728369630341124785257900846557289001711463612370773923548522539131554411509933241651126853736930028658365621139699474503184940531447541815128495650690034898463883498071598589808376300615085941306271634869678301523211585979948877823620227891749699391749227524485102416062420940690562757447789669934850119941508972475926150702824739193800533972189048476750186132912686446367449392969206575888768547821330840763649042979797727764552074678522893541176386560117762670872950097503855333816975780859709333630310333803954827763533526493527192112938954610110119134750319964196661354377166981920207251399727942485960682951419486052301503714161577611544743348161728522763895779200589952942365222490086509091085701959369949576996652856386155328281043880937992672646790408140689834711680040174277810259164916558462054486335010442907892727169504861742744565512384910383891812293185667529038960095024768394979579564081151263490304034477555042757411925521742186971636052043223321896838493061485447606990688214401312501580432713002907238473406617754272832517499657261722339760369486943867414673097805569417747488908034070074118615934413086138100938985501498140679015778230266747320728862273112045513668826827501672789716375224655500853284683501981865282239040470475839028247941128698209437069642831143253448810147431128797608812905305116883486294567025464884447848104092429477826919676078880698059755612926762191292415654911397764905177056572417158442505993813935976277210283049629771234832953316793872020081090397743826274566961348934062247735845465315301774033713284949605049939505073029440928563301090990906307851967219062186639152159106394500302755731338851443763758477134229589278693014971759882544181330917530962714235813724312177035024805874972038264049581405250888689683171339865444002126595197973139156247488189029274060219373731462356273780789526529067437093121647609374130282446659032015475994499098839610314983821038692978100715646809177227197430025995341742596210971538262061262916406562948108681703937331500151347487852360852742248127055255183253092267483606688000941724756548673390570871972725812775089086523483434276736350655641347755219019084618067595343277967817968448398872749021299215449030191792894777856966037127630004755226085419611176882848168279649041131526146281255593959922507389326312657950329010523919416284661390286290371519063794941522446077713341688744620953129478508277365672910263463909357532661224068274106572240266500186216381575574285092866585519219930661785809998877018024611809687463008080627539929740575992226046193423984768128028093747029446655351142898371276258793299190227047765202188379821761632051669919765749545459374017946361229657053183391883527759919182006146233184825086012264077155896213985404283275128780059771811756939418223624930016952924917826929090650604386170850898498075458997996842015634147397235751727376791183779522126784628129148461422425356479622951561918307221494896124513841433483957934172994803899853626018394982771236983865437995499979020620394284994630494015093998268464220962989791284120441738997515289294581747254264837983152014918829354853147343371843648811010090480044673612970135658822736121069266140989091163255382594312002010934384955169499706981907035550873482116124631906714168751508524017140935653169612932532162135008629639821436785505657170711877088200047552749004212009960264869447055971117778862852114818399292495844094920885064401267781516039007239776575932948252053184476816755774989905214848074842052826984918972286291362238987612785613674886979989699389622722277069344303849609086298903022327160008529244702684634060814003515861645092759085917789898124629577906434238739994044579208309301036063148003924541980766767736571449114473444889808599538521763881193886054491786586880982610608670330019240800281791394488976260034992276141057153630646444265371767412877675772133026543517461832080838462597710841699471258759606189966188663175845322181593086346451268302828893109846468176912614215571261486868759568252611396974170151204540498534808265558469397485562206605775933455545040898911956198956397945535644065550180441536515462405279435677628641213608717075506399531283286144475307734882305342087432571358227971267477103587579720020741688430576535159978265415037917282380378414489051308338949580383143679332994529484127073771486627610274429783348860288535911499553531305170134686882708347280613362716283265707037780695394085347234266323708431059757939116000305791061168996743923313349725626107596281179149507178822508828911971462588980659051018447350156323427878480967066109001372546827162139049987686874398293083544857217542213618215169670466772343998499048020001265646447313166402786526457314457720189364165623435915464031990841675405012729079636505180415067403468896511003979817113277148283171875354060143755747388684759133838315491574812645562176534445812181668213759900317813335471410308600860354531040329180972020576996216998622911480002491319921645743445468094057118468984153880167921406997046968518441500763221504738543008438379460449833460689972561824880255463743644143179925503473263891792512272860629983061184169312826267948545076261835867783099348958377246394664299779706942575207428372431643608124865818601064108767842646922534832289752287639267482167740538146617268831658818704415483892237702321201067254534107692824341139735743942744787183738921552532489764847688868693435714089276104553800960122036813664937003576498076743166453987347278927269642977546314818060539254956321594754882833348945356243451524270211280302160694916059744370058900835698077224672822466968588309040533046412096249413924988513697298050362536486654490220902422664209672925606438132424933180190846644678334428717501173854992277014073682028412126697199878616685082662808459063960891201279415095563276145501352786985237423458822316742230171189953371393670148422122431699937087721855427613375632893819465994819042244033214423560166585295862082264385613948336291128708478894660101230029439964593175205812106897501999843527840415890466258699187020244976007586143651444434755560840030250085032634307902619033614386484993263164520736634535902524264468957945203257486713988822967894781457834366683053547975766974155373108760799108695470543057737905903731503718417763132573150392792780377597040143026607014010779643246257168710217709536197349147585847244052885423193263627788363599601561643406572551721996001347131889708026091101729941025487232002736033077138485488962632104514318099570930112286311601537108900024459799566726426639016699912900309619114167096048269377391188947237177310371140543735422619248351880832867808837200268294432205696410852014283536069608690289999182808726989063223479072184061044642893191035584526341932319310397159517941288712404365894257943519837948647478892272420608033327528099668582426028794786118264842105818248304955660000086202494726847043196702977814440942255948103110535628015368570848802413516265569132882470175428408794491485284130684858608990728536527161340489480287801242666394373653503348103167415877222437870584882544716940360056799685703026432477115188061746180161516295520565665259411770551593045277905600261558164735178107334124670362683355345239061452758790588873657303802466018439927549560854108351422780029109619597087666253052882976345522540019936170388308252923985676772676132644185566746080854116412122505850963220754105898208236643257240174601505670597840922802523632115506434135268469421002075905590995110988263517429314260847345449117436750942184198330520179562456224048536952307837615989868073307604652895098864516290136969190727811303543894003383250904306822149558278381805676492643342780718324843666937950437001789611508806856715577277420133457568263375550674582532691997665533475349374629725964545178406605540137651423334599495503887117544540382507220356506396293608935360232699733859843694197655782109782220237118380319813811132024757167102781251777340962719001682405117849204529284043480720037094384923093535147714682299646970956507696187731495716912573606865206652188012748430698802114437907690378711303555410799418463836798651369973313324220831620818001695284281152206670863570042238660443916026842710249927649114456833520504487627833299823919840616408753993998545246581022285902015564726748701084368510837513895069528417584762461489422180957515308871691888092428618772945427979441424913024325172867324622604131665715645932556936340486975985313253814321019452146037529216662060731995519689272490608000869416271753202776548616267336205754891406451680854825056305886556694593574591164530456231079369678451242496443654024657406322316901713660553848417482455227001203116049843635373120529099987903769671281829582001384186034740876441202176414690200224090011353282048949733485836412941321828664534417914727966157265790648475874804039412488745059626112764003979139104813609334653063965638499050090225515578145263513621975817278301515200278808632460474433429099248383378497440720929097344785315129598561086527347830569454424013293057567815576671679223377685405240110863657347220594405336799101009867165802476145111416282428370934154544753624197938625015214794787662001148681572980970244634069047601830524806659304308750005375886132265697380672861087146470480112621045877225320437110843010373559806135594339374959519394279076324126266854118645317181275087168668204624053667704066282845518139113202032178513766072345432557271310591051192204196438979710166085265532271426776867185239838918282598064018531217464190055765826274101324806742987523865341704092773660628555053910649344486701056454251244151448566838015246111141672451609853329917713329964597224506682981412902489073831208709449076766985336718168431999930423293125969359508377418189383877431428103088798346799938400918809214822166307674162268640609996827799972669634035803658875734713951923228195034926732804789129097091092766843568403451293047208570595623904819729166128547397885463565375721646909331736094029979050491890818904903991447315460672857699043364694675739035145062455955385493439404960135931631360449104821542131149158542179240863333775125711360710109931579017286579304851282823040025866257954257482240650465919531227349070114676046865977890505598387761520564125228177113551933207027597693131246629638167229833198874282337603745046646911771468240336192957884011701310004770613328759948874686416208998800206494784281872124922527517570820389313666910857210489867607323858824600550249387356556322897392874388039506644562860428561922047596326897882866140123148739980109792476974750547434839287676765120683138786438002730806585824726007654868475351787061449177669896768718297789332444541274397557388995768874864547658062577390434258632362483853667751301264022546707619516343663507242395591428340483590354916166596657897987732524124706604735797232478684722906440008378234321161602948490217709205951571784041580520021796182649822510043004404134469528056443624522895425729020949443066330309024205487587280190911680430860543091771320688008620724013999967312087402899928330884714687140016583430808623608704172815131517274076063474516728623507588207540672685378257761840013903927447163013976737977687483265467972137615333264467311999119410187917494621800617171815367627862862865304295766837501222319763541877263287460598616857954609727830072968483779081162938365677664140751685194996205764039800084962484037340518754074638614612381999010007969590749902676079508683780784168551216430069560051266135812780954800942320407457171897853224666887128595866436632785500979647092137935174042104424569485068655009726486268049449477038191844362606374111766899240947179550947132535476315786837510711989982263089213208839534239499675213548545062345395736259400123514288266402825315189864201862720790368042546184038518004193791323143517980594264882716649875592632541238270161433430313266607975291585188046892467830634166988243371747577716410798014459364517966819205820415216369710604880195053021655581493049199855899825561315089293972848359907028309465964369854466093317298841399992667508622383525700007269471497559140489827257780579751851994901705543251508992578090756518946488561580694871951231232938670724503119843866521169176311705918402430903963254251127824866124898019287791097707146793779912479705022973997020466548096370662909806708555800226913774163301019368445359006368175952798550787221357313656157174229072856358133521576686765576878493360732753259324878471491825074681632068687747842721004695292023411014934156947449988214810671363825785736174500484440703670295448358823813120516239312538640652450488937671348471759290359504102827912327672282318731253541270981970990614631043201483109453115315240682057652602309477755407683192883754610527716519497077067024992994028502705418667091680448655889215005817175368032118448886440571709469172829234802876823109685286158122315333046671533133587202732282775404400881122512794237824783380060528068529578056239251643009076760216230776382484490672206552399025115664253192486562001501043065940044873557520022447091625413183946805378284497511065956306862009803993864738218342347304673565264060185595108284039138262117389483425746677146248882810446979475141925121483812994938212735359484748158065180581249267470039022046133503963102397853384185723320760120594090085216997884267222204720756298445706891481463687088815131907371234426656634320307395976057168390450425362342995908290874000797563990607081798313221125596811124555084720141542455092665066357268822304929893704535924890722504773944299190070167117652103697509520797834522851102563633110450761723504811517077597652794458747939000138142660218911427641735054035805485720681310847374428064094191945372725580013241106803017124688403533876186093331981560943536615876118423759839776277998942514993127926772818367774436904065570805512331096685138088772120714258725475607042184650473733484288503996944197410004471939873738816417875172582744274001892787103484671074803271706227266389846741448216411087195108347306915909553610865591368269274338773980877031532206402076140749556469891491219842861574982914864339826419385284407902811680680932214894071467308387143404059853784544303614445844084120714238652895015725526224305466610685741751756193637329037346572027358945253753680036996417241258021832744016440017060886167767122776383373535696517219958981064146616491401677110533371268746270925172377897395575176033988340549759397951260543641233192810913166760202559641198169857605682329804417370577196278923442521756654494012802981101253276128022685045699254135915766196244239799994486669557986162713216851558320082131558311735545509219332602162005504414469066436294175059130957395297322425653666342096961911166644727717085457137576032382618396795434019258110560668453683892325605162002158026709049158811206595520738552813834823612286049247571504249948705617283313382683016456590929879744420201102075542358828668393968461191598248702544431897069505432515023653305878977419892865582921164853694589747755261686291768334975833936070594228962416059633270473173728531332646604730884916419270886232019241288731509079955344224245472423790654296158835367070649162982880577768852962005731746469534210702183845598352238234914243734837590685473748004872685304904351231419280812864902709939217004260321326851663602526349308180575870099400183253738865193280589853853188005052756540085832810593773269400701745012919163707880336505698811730200746689917285499558625397326167228223010628554016361044230554848279510116235966767435950732562828963922751203917793714477431818152102182144337625190478266320270850686415615406912543334551679257943333435410369567122885970490743813724745946573758080132520879722301861959365814648902188873491423480746959867344494058169650693711233767585990913049786648020349914978863434566991001110208221323528882114373322686263814840657689247643583422937995245400597376500619314770612523214283827178302989598039920185528909337849355924588378139314482683877292908494872001702824727443643742266226018373173826735746751325052365298226311515492330147758432194719531108407624069930275669231466165799660835175154981598845676480913253002345041460466148275362044781219852732195938773149594254461554284754998149351937394344718178452250995910115564817549083010269448594636999628330358312366970749412648922481568400790936628667466610884916804200265739576440989945754779837620837451755387719840412398551198970801643277952754952654456739547930140912678759886980616059662602608087164021006198427751111323804165202437836322733745181549325387973598467742032328224880788916412606856432993296852363471556420607848933359995480567229130705838150915762939726250731627755039581014313433717318842859091892566188677587167173587828349879200877217559449365750301947580024077828819436853654846830715118204891740171104279353016849993010755234293655626128834346010585787121003378201463786246730822966178686742696143058608356827079166614739818640748282163841065323016551356352263055175477263261407584027501094564622777711550713344977907523575401182466994521568937655229583148496129963616054951069320117054157506223313949691996797809182326924233238714733531004435409756224116600651688970935136691752023994354073919131921154169658624736158978437046978867387066876607259920949140974603490811021670949530017109880679137979409405385849801737804891832421721886822127816183188284617629085943822323248875114638205921772529180880371962650768313772766081102567683673057697342742059562863275253441697068010080180178796345183862059599140353115052784864460905504123989389821060039705030737121354105452639297765880017975740953925000970713535787604764273589223897868256578052831595799398703665465497406599715471198697498023242476797575297760284106880112988907192175146995612965128933500811955790282633247018307114105252892259887830760678741824583284237183117112508028185799207689088390372858856072452201488243584381406258707728859843163089041316129634179969423140950290579351995739148216076594187612057177708471670758653536090527228918649932259838061151168953242044891899295819011069655164575938736877078084141961536667321091056732269607992315037786843513068610247733286677233346999912712881910046026764875819314955432961259646810184727319240564486573692209975105675849396225565947504990468334162489534076392698951424444030219231621914022621341368002856437282651458319659490896287652732395846310715940293956868151683401237712253707581957896614417818339526934248614246362904484421781126902217325690033440053261104772339456910139576523452070173745850340318584630809217811468835365295336451148636591365716142390478860457308208947468205514337481808749789574090673749951815619073634373108580317906957396620473014005093486553559996927618108653937243154120825360928519192771966570808678688340379553047019574665559439222803769725457381020843869167590690918168355342559711177073922701466826692688633171328367691667165931162276078649835185464915947964705246496650009267571220081910471604089130097172812154198814776414324412990155917889343913350247137895084436096469275946196179852298052309172920052800334881360920622110845517989724872798859402839803644404544536346528957484055930340183379066770379965215847133903936599271519340537730448083021042733283788288477811376917032397858563629581718137319503033152454763502761790995613488511034141478376254659434956364186563434741747140250481070591368265067818971487238924438295625718867177382790856519906434607464755729525026097848576834819746614503203253149031797403122537282010887749147655748274123673061106224820233740328204116065411628043478386506820518561061200975345005647478858426631244195678321740590511633328872923436587755845293787407352249750674709474390868278821956762970357477986848818188846422142957102396645658987984556101520709890283757108405853687327428672160443265759298264298498198772192970419764732586195645847380365178762177946042751166647873319884220353115995066612374289067844197393371098842587841392138450610974264564401405823018400023296190510865946560248936666115751819227280919843012346392282537743261272814014463045155184791487306042060577648520525204605680242972268958966918044564685916754723255524431657057688892202247818508418257500769394907536282800961756871689593735263635711102045479019307162723260456404955848290153058275627359530065337522404449833744282766423600489428087134079339753655847307827489314385336037296429291447991278921338410122282363769582370491762970454877501020872075934209881062502851055010513617064649696019097046674965547023474113980972775143866113975128915994718271858428713645507699904741983139363536694641952554987099879586337552599499662417440310457585746354524042126990203740000319359568550079798605203379932239996995033499010826354081913276334352817263028072058157459872295085218962918754858323664906642355818497344506630813232794054452335422534288461131695829200485642434346385165460533994763466297292106691549540378421450446061252199870499131979419064181255665675892907187835824265046905327848448291907558120997765224353890082275223671911257082855938035787289311562112547452033515099621879481521870857632272901762979950973273087166258579697538818066414980923883046636058878617169183958985743669257470345401202409832337716925664905307388460195563278855601564926557946308849611312623025347853663177038851188573039811316186998925494356175680565142013047587997461325736125764150033824885460549079080282454195394961112997698001659218228608704517510884067345690684934352103936144937327542978738553097972837168195044269474391641393545912540679466589043316143037162374022040693099447905241040566868204072368814112447440076388778010130624725454348335274626265923969521582315361451313514448600636553768875373452895913133802725199506282829710636040142572530745858645497121830791178605543476916925714716203335874507939090738898980761212322612837784014096721248141308947114016024977779018419111946438164868376980003970275086371219966930907784664302272094213047607750643338828803192308866105771866836303488815561992547793767177573277011616512626137225659293134530485477778562658079708631946923184018848054261051630301454355436077957880479947651464189719590448733758013180830706345167796322612024345600309435079378434400972951946380246653708131252727756429995566265151549597148757234663934632815415487503660008663241312275277982860816507049493948233805521572448265505082638523068309709730560877392894871813266701070986732551627887238103078659928415387515066951916414279300942378417184593428935499793399374239419615356589210676111457339423210710901617978082822237256435222194061184615214986075493291911802688597744425059732298403724956799863166438401524479479365222052720704824353239578973409091339048228029896046892224137779131714458678605658904693591500482483316525898882633036686152973293984156948435130092806323190989236018320566253224993162042716566044885988947208944087747685115985712883828538066788108969519446641435573485415466542212651758701834474056111754460917941837582209515121966740780913298593158276465634931065553126794906824531616764983142100104698284354694453215607161910256451219477686983148100037194033033650318918241045268966281930637559521763292778816692943703647410224228724506495678383240620482181564670368161304090072561245643619921853587303551960711158492001435948541326400365353117634249222059687024390028389965073886527670164606312337549604249406728269983600319742927665963469642280412088208624085874802316107497630700965342523121317527353160924570555290807015423686728419018547490705273858439330493205210558926008990360977939259872191097594950873458310549062074832504841027452115111760417370262604696602598073726213999348022094503944172030915749069673266132915270653741234993551024329582413210126133406687795382712206059507965276665113230909176994195797474782776302733374906199927653713778809088612353561496786916724841673990075794453966953381442797558345016754693663059482722865154535476085866159968546489949926923178386028194127939273045491847570165117027204917601225058428982575021322918784038070451002775306617359368996686935971911996428092503011605317931483866538145111842534047424668504538916173516459928048761413250728907313127919090270884526961372341173668991179861172529331009703633048691980815623725086058767840434796178990378690357144908315133385695593613654511744014480938724977846308529182670044553683946276207916768584352619485663812158589846951989538439734289295718560189431863950380529860949655752775305672366553043501741833481761616606026063867679044685009739009322411062902313418519191215186585149748382084224084188816307932833469156557974629062628289659644224278189199025099501606126320510080435485896545688351926941308196459083220821056153851064094530428849756925915944908329097868903933480276278681467498634073127371726945785493089515491698629359703675444560403696379833803039578655672517069884922309745363449488328064717815455150582038330961239488385690812258600735070951379249929253097157890484424406876363778657898414841091236958215491893791211843521608016042735677157737115725419110665704148008088036257226970765716280902245516624212615777417823675921701088637623972987834870378249383070624227147805307176086484640002564640652227458369431698759613931514345848861721039901055316646713226140884190547520630968486395716831970921751023683815591247313434337143399959642105096419901515036424965895620697174484708002360723310238068564086243621484065496689820454930220405961705092070077557396525948894353685618247352260547129941734126397601804186794904247549712338227862460323877627790576553565016934965931797746615429027572975803312448134127160904972082105225083605797749999428142647825665898883493511152034643811895690378507940676903377386620776302786859341663814097881729710750559914840528094638224685258923419406170614110015047625302723200519506906277250619793738067270680433784732338802695492655046851082913252766202617617760187449655706965306099895087607097943655105639479345192058059094522778745057142766877542126367338531731321919582046476290331156232349442805098748464796812759768888734850445580677697030957450818995740579451798580903120003227948296799777504615553539278335940870762795516493948183732258360021109310719757059618092302191376866368256713388087856835869995037150867562461019307721234118629841836524408824826242555018761602765268859897305571290576009247504839741190160719233769380018691592633640748907594864587142328995648222476671340726191746030894514040325716030763216950604926371834371824758092040450675632345025035071411475180781469285762947336970242703849870288330395805928919294280177870263655759064132021961376561871227548865687750486210731517691140801798668267035129217242957454150577835716744223368734853512017247091601932600876998556509329831375483547911019956424042818550236163848284465697617110130809741083273211870694466103779727386277047038727290534011001873136194485106114533379676888851288876757070426975813768848776995081589467607190059676053552271653828406653394644634879039066655018861676104141128750745774858782376379207058855524125768483832913592645525657613291489351350371648240101966471516068492277609092865203127725629473992025162662802961135977037772769708260932162217361754717382208435596133622958441770263966721641828650786396393913576199504545049926267565011871395805515079224569702255596386780107425731948133310786775188378915439552215579498994731637000135791211088543507137901886011027056790170148316703793539762426646994634707294422305444822679055803191699253462561626958907484307579230805419005157497753083885743941057267602515530262035911369153001008647612315779785758989565465746690999500333382064581681698719453673056760148893107402142557348429104678187784712396085921467999658054789354618598829317047948459674443223856033367921915106585144695253757249535907908076481555078975685307221068032306855057146652569629315775061637221142948553753380848435348937152977656346016654298122795721492386550077187036894980274780450686504098544389264288106574196087245719696614215482454230934020267515715241572498256011054838855970213717124512380209830525902765402327096044261253438079133168497212607907077028759948771031683246586305865356317311997273750297512154718203734347508950216507623287117821371524070152100395665024687819310128058145700864543901245563776162537948559330244974615238521079033883733057298551852154265535196113280225199703083040548005515687824779100874660201475696532585026505219344386035014275016602210748710024817708193798090152629409634260762617466365748573691193865554216339484680704238734454300163819358196932655520702821675447619425997342373019667063080127830007831389556247586938653169545135004912893456415579371757799645323725100542644797029677531780199545464443807104433203320650931622300844314127986925391264225812743373118375060426117650681960863276744344854123412390233953149057935240952064451426911004388667648192903167069757927376413477961665686412734801649678982500724049584067465456964025701433730370700634567848619178067526564150358343956960177653022030193382652168746151421490122087033908727098284952363145458558536031013557770091401101779021215005125004944616435857861158647596204384372150132862979865907103630829500054128494037247371610029589303390734727283787107487474303846835098618840718936825854199069024852286128005611222465098675217161063671759745469493159154904457786150916168158082617693193945048615122164821950705147482533030424602022984623553945193503097454521681708082932696213448761614354516441058153700534214808112115704097479968334800933934911275056860884218685319177978193129378981454080663810720077784576361046700155532345798437685347775171422590601873495271249963780914535852863322156876822166100348509627828022248415114288906210101025924960472743509903492898339958001075653255007386499034869052562158087392048721055444818341731484624877645149149076246437109335525429363893077259451428118484135946183078216010807058347006588930396887177474262675714002917107757583043200078684504584670141870778328575244340429967846723391430168097319067414721556372501911475172292925657488987410310553505963234021708328373792861131100468969262665082452037225107391916703223049304214973961725040799870592613883996190156891408866121228383410646253330893951516297063790995571084324656761620856508975731005842795634296396824769679699870040773578053805965783069668521651939461144395570531377933044169413150952960192071275113241022937917423453904495027148691626796086781076188182327728956541639233242028966419318569729764811373343027261040031106269015735061518761837726348086594387048871587260000154571273566383067604539755100030786046090222826335856275882873408422608619954244356821174859803056398615002676969027331408956300562469992338898740194081980285565043700895080478811106594143351136980448812455333676997736274584804124553439627065079468358955039376996093602464456035937811575564785621086369655919254664379722906658672589875141843330470791735073755614322795836241233380707621646275274846761820374263655107052112273596327605543132737906184221525663303735416171150639328016862671373032476627656098490397010296601419320416155866043056791098862984471798840301734256392578615108247509605951115314392870976364476141795330549650370558878234128791423569156420601542941669823615703336155375791422321077316384885926717445656087153904833466716308410337510394345993815066002249634368512069740531008066834960806134663713577461057120730496172580191287110313666879191074942313822065590836508468091713046170135786047188067566977712765999158906625271421378673889281297224573957039941553934772284417047333705835747223985454080533113254091018329870919718067133987082984641944375662996661119594691219296330700873877268890741739066210429889880754507974260371051058034750635385496026353638994900209245181504935660196756018757970081033976455904823199913202147605580980516586264523116779364235149488613488926973424784491475275244588404796801335699448635887279034836000751352605970808084234024027238074383708507839236692223792922202568592541748632011310284619309164490909960190633930954585132130500992602046496948427844303012413343089436073754730636090366310165794475668891097635600752550576108679977724508850991787885890969101780203051826577132115918780744832526628447144738030414929320301412621640403105644452244780806718668831004976574845419457195293369126200524598505964571562572956434230050407202276948247963697544995018313038707835783231210732198588023371534143173651494549878721635327693739330176654151499011915832461082325528579067765682081345125842533866606555842348473570047853293716464393017633822166611871431014493294806075019117214577142024185255895162007902410329713177247264978404885543003807860166423758169454885787947558620917109501520710220140609661651555167535698256038897799742906530123700913934540987418310390504602246450103808859202823954787428463957058827282187081013975089994398051120261877462633915306239657468755966515543753895812893468564334760444266234940281610401520319333607299607876255797058738880906562263224955627234520570171823070435028236218458107681788619292048400873259281484626848897559176660359183036402913182320684927146433816711953435339631879640491971366785952507980295844646756979520743009102330667492289004996517272511747199421357331146956884951178440433929357601132225333616564993605848962468647478811729927493758302519745669010095443694240848315443560705993857850260660034698678722286703358978926178479468830471394799079024240734630034438914766055428228586683081487144538311806476669711986076408548052188822809389434595517154470566158783202308371712033001794152941511852261549211294247454835540706794401428753039637928154504592737605723417231345795557711584844396935812648245483831259672460897146173803612626117599457510388489128274532596548715006650230621125104084228686372111583914821528207923796190992372840307893564740266804101191807554239146470837780162541968457049053388808661199904245163948409972671307169074284137830225153830821039277668211003368051168478661811336222672356198756695683835603128920596295581629915099981076783736137538429497360502174538229218174821234911324617986118649088862685908091315763050675059327117232341834489647336388125051472910758067528019930353175150026325270248591179303430864227610582673672756419434366636057507843499703745528952879465271219328467690324267562705863513879648435989075091935886459899029707628864927354578864913785433145648393585146816032135816635428424334432924460951332750677159516871726900188626038325983849512102362552123022786309029429517159257388868279501738450150816732667195473124582079761511244906025920033352289240996836020153560358641171860048337035703943915199056967223354040973861884235409552522188672885814152561476351093070720152847784337047113842881576380374331889190224979573856106573478516091487716245333972314368865675359989120716912205983601509364173965068496156447756946184946930399673325377900804396370789942611320476426740959753837424341364948801124861496936051914947154464461977950046390130357222355175468855659153680674539188740916557693023867462462130317844156663127538857848072439389695834731176998536613144816674697423989827750178153677116770140990051909888431894346654825383825734824646056652069038840774797878018340250671187264566040143527943911385002352185802499792382044058875208146731958400569523499215358761486300191541961319347537498921327223350892131795300456264723041156857460553475913118734915831865960059188661445348408523659467882406868343262926778867418683115367287165010702049683047184627915796066847895186679514438039486331024785624304177191625805516190352098620387952437128276967463646880147504037941087894452459294519503907729062237355987382308779415137212111264764789715568404127281517355139127329420382678694374214398210771815886711020118014096680173981934435329841848978397459077880784891251008137894010866562686094211475094145787031500142594484466979164932870546932873199066085110272297949388329430097952958814998765680681548383118430367502324826906229751269405893418723060522965489353004447634920518769681855913933190451396035130809479516312146145068679647912369504753191654539036070938309589874079819846604790266244005317368364776701749836205249934952904025051818254624271910113098019504657192350686928507199609807362351633366527156583849110027904194840643326531159391474508763498220468995133238637829287909594101559161539776950565441121605736091795660841108384081377737361059113103962431201671246202989633812447574567213712857607655543171499689088682258900364420585536266601505182608642045828876064798346172854210601603610529683888208339504473974694695587563925483982308825656106080844281659067499965900333277939339759521183387755988964124339594769335810322344244650911531684281585130666263404024898120588007511761592266367329653741441392490049585385391913502643595123972422660019833273291779976130336088864554718368696294210420461960649414953111332833970290550437264569814002865971782017039863399924346425948493072344214791107169208984682188603888487522875932520483388973113656312272402185822621937944919124494606412265746249362801615448186395275185411362644428751479454251354326802282830773648590227192764845965842195031632010339003005952465465831454778320133383095154849785279529588386094650248328029392517610217204793816355782483681672699239298295054582738897478579447130481964606500419311361290776623034264697919460206570531024492963382413253738440169216715032635958671808641395093101574642779336562577104063432293035320307064136002427313078975207817111463867283870295254555941553850293894246022925166473296340825016728146167691262981446763931310728460118543649916204785964770659225170974447850931903858213785723323543201013647373376206344185910383075994327790382950140817851235173702268887860647362984739989634735856200097038182348389054365552784377902659324959334514954282864879625148151261457550626730167598758838680951483101636862510200156645838517427459854927974689847489960876921615211394577004667660180931452348745845979443481370202731126228231668598966551830215263019883158168463071958687052274138400296931672039144863025606971239132921278891101943089188927624291348476367772676016119667083139555757743598769108761697465818318494447369872658234427102486422960937417122692859773877527150134769977974662655041758724116916894341736331077411338337254761094291574880885285568013867082331217957513731403775200897188201069236330675547387496533313028814205000608188521736925687296902641582477275791760418322124492535125687626415432468565301974087193027062402649979645456673780915731211128595163833868710366321022512870566585757989192349485116198268372434837636358765074378882399090176564498347222136335613464945520488052755401431868446499067324685942739203985365455780939903455810540462998300086880632611783355231185853966184180407504844800324634260585241696951643793389803105112785216517978412477572684942858099264945470321894622511395539945216294967340849148881788707383577359161524938742229391863702079753487556909175043113128852285439772854338264116574117906057788135171565598066006014961359963858433430694315975311499096285904620742506932090162431184262762714498318046142164570502481903163719932769629107335442727924141638613377379838039480107053579999686495579135943698783864354720352127371072537990218677689511046164017718161661452982745534253656870912946499361122548650224826853585520794858089266789093063357318457896963161821380287184340837578610289248225853819186018267841634943676304004476729880643047866589757740061233140574240993108755653745633150382562881585019366991402325797609607973299325223374023925900206236602937253975888523395428490162245586617286146208973399826775415821067582457185140135029885769842405380025149349564302424203346233797982304161174777604759289287740362829989815578415723835795098887795216393045885907212688574121555956701477609014887523228586232798302014431486699436667862083626451579401294020331973965825643290795373387049429162238991592758431446065286391929400599065845719642351213248005731438531847078830917779794064384142037657281645904860121108147893449818622706515154313810127256613202216436950161922627549051969582062657085102335480302207722012062713646936292336023770403609287125960818226777233535765820205617511311407403961256628820202516421845005544037244234752345827547015027712200096771798301300760469047076787074453214325989862166510804543260450180955549605630280724956585157306098443124970368536494980670733864680783570374312569815932984584097861773107238967380856233648982411632442173262835804917536925333934754121283213062346044084923495245509421703839115445960150684760233378433766921222348731153950518141431920581184480370008051936398485890351490553504390106591138774743771450829003857881274147209077810617022228688357884380379968368349602535897408641254707242392691709403325276171952333359626624058344959808833604946706454649687401791344545260701466718702559260345129984123335840290643991381322078668072740213642500602281666488756818100886650320506012639088849296974980050129221517702653438799233181827297040243651986995451068731986219009685921722424601431610753101386856255651640810646535259527488611729389571684793764555409811219978483561440010149214568360844352945173481403487591534741633226051924495676406725875637661318542547173191832457238616493805736511275747794393442944489323228363324006071710894447796996020342588041578546726457465481979527386593079039034574534820013168586089986149399586554551032713338670948290601179788039669605711976140069018182113244051820564170500319437032347799152450120132093095152224686446065167257748031862805066189982281524759555405108379225282329586285212266669589742124166517157090828314592392854624641042753090505551897293905291879231487349725948359073357515653406446178984313824167752454201695062825579182298428267425210652397744512731656182581777778180390741842822858195989048622212169370003143191781225375905591262353714482347764179546561955464160539095094956212063022018590801026143055451719228413991706076327574619936963850071236146869177959555364038241398199820097603197560412058572735085035101066544893729279347276594146032035293228558126385903535367512524140791376471208730345615428462957978082629798857010510539875299772652045131741347048452360902970111863716993743019743805120028356182462227952610191007344099477409491614431739390852539852721930522894197792035152563713646420381957183913412342720030798903479727363377986094630141059278896577309376413828902525189433299020480504878515318597509349015078208965338510921616578082203017616215900190479435448812528393356459798569147205164380827113965710858156390774669889308391155996196804241216012646720099667785953243038383277920035826555365340653179001128291778808862178583831246973549561287955013784884300763413102907531397744066219959962927738872791569912851034850585008376815063789193258874410067419863617476171588678940393050126021062023124086320671097661346224341564209586956300652255195020350832251952586212834769648812819198500119306623571709684400469477913492177719718916224381165396945641567401266032556585576505382077416851056157081284752734422363983237927057670677423486394183312040154425372567011626243205584761949801858666674426767662090610291221965079551311606097313774393139819395944944786625148231321039060602910076866933518046512212956889876565520129499221388224754880832899669218852867399548994843714220782879292617709861917052040037433181223360772886180462969848330554382035410927832177144586936976650333580944498924501683626722757704822828422425858425461367675338528193595973729311812120988878814432099272375172552699386169543144246362801973397516994047350171446314049112683815918646321929047393684213212428445033803610202380547810612268224279334373939043634479714603459920788935680940150249411078881313823716872080378081814067118720292724611471024847294680935596487506775267228238546360792504900674741833573129252238303036944638767836573472310644584693269188822427580658058882124637175683916711171717095904517013373055335049462276581451082607164979269426834055815530481296499202353569289384001011264070760122752571797532718283098154177602623581196949804887236637288439751277253451332993737327129038420825800855254246762932693610321112112498283467709298023312380225533000022834984978333976069022656677909211257392495466344396977300818136632865651442159481719068585521923960511933416146276901677658616865988023319324317404103838459867809720509912349137675904844365684636989714850620940929638080953594659574337667916334300433987123524377658596411163344066650078913994245112605754933325255332972745119728586761238698175450001016906309946343691632007021813327181254323254442444647085638296941015694621354737402061538490380036376292704140165682687661086276388044264193687726785538156096760995592124354394536822576727732376648249945256776767023609142831285380907737080197976529364347905249379974989068602961771657856207847341488868685380491632470749146065455805248854122363789965895933055509076216218808518367559528091006957937465320235021231849098685754398875886717776615823215860114476436198534520906123982150289167255824375346362076450862933331567126073987772719098836534586244550456721356577536751831144615328090026440227546968131547013147734050786260612628860808666347332480766114607480601819972649269002337373693456526810889759118338825174978526020504371752529108873236756198352440192479493261636475771910532149497914286158611766014291142851880610347851248063497393257773371437003404560888101548512795260328197107279658080097582514417259278507258179276413316427094048411596777767514406286132165718905354745832770376050272046096521210890306285503011687569681252508639730295868420285651921117686685744498489386376287117853327984953129512077123215260965977525923061520890839706738272004899864368035517762362746584931248769078009749322347750964500504302963345995467164072997835533706395121895480415954993353238621694544595232693395859605805188456212203826367409403202810031195718322420249135408895615887784033775012690797640637720653301185809773296625270166772348556587946697334970582494368647561417486112322336724450271961557539520723619636121957379862588592729409154079441522554427369792824444521707990901061204184480830560238195364412254536134575240604815754151797491804483554735183913971182251995482244863999873913412101588703602795272183351720147837567732450414381116385377869189104321127876408320077260036811152341268003986759290296036063591233084155101852611212631757517809703089524482113403630442278926572289971388178222240372701359394408351749529856993521133674589566295651105708904679387002275080692044016979024421512320462613792928039006171947906349415549959606250279044498847557131053595066296921380580063466651666758532954859644624629708242900202580193086737012683732893498516927706408858885524179627764509367806267188325751172553552905600365265498671476623410767453666141632028260354243433006858215493915840100546146916625189953267391524355429693010871740087774613376594181432013407756705331038091226301083385061925042218967529010888870425819729511689908661933611300431627313254630630777098048399874440884357808624347921613763364653784034578831643385482166412173303131477115279106702235830328559408408779824674832123415796393059710348935088083472623194368524815952596874043972098038770376302458211867168585597698949654543919995607992402531487064831990021908571699826333536295650155223083232641613286449608602811688459236759686560115556464492452344873811260786715685350288120643138102308828656190195070472005755603540136827066181234515987173305656464527583042092846054881109409804941996534062040045612348077544391073387251871465832465876470558687537264173034697693639879603693405034854583771575389546445741838975868623410479196810409141108497340421380442244629765001983938280746937925762431684664806464990617488432924638561298754656346942758957678968698297754880588302612733078985991542212080028496973906465002338390783139175336811555162919673468909619244991531005153241010959949272245059807395250537361525985503957542735864492839310288331816444986970549372167163887592231537929962444190259577476404532581243708525701409868715593749549053356702552126481468438805609780214746259046028933537289892397312716726085960374405358033997562276020697449326680601433298577798588647883975880123443554052932699706988124893380970855472368339836576301364862108476184290084372385402889209212933584902837771193350855237573549260051651334698384907243123951927452661770203831382689241227238516690469336562785615206770897069417151221945000613314787775613732580157885690432979400356303429247678899413186445499227042826549707671232417670104910111725895114839943964131902867671433877873503607621452416261294677045965378902039460531501540630426529440600091854903461215725950260755535214361331887660135701474215369297200783060137473701650600260193291780505330190993868482042593767141857667124761346764272139707534535137697883455165697005038538817326512804077704648699208348332010058374417637388949608591013615200125025214583797813390000806947969041560427666744614458694636454669613176463986006284354483315622255230545910455439183060814889523433695509742529411466953205731719439346706466607686194980407884504669006544529135042860513609200333507812558238871537392002598003865130924120931803272693354497230847595767759522618598566928197060030099673750952122213798060882221884789172184811009295068748761705081764400000559818362183264208792271350572661232634772802627682518911400037708349298532494022779571758659286737492395112087908043088332944976312801710116241032613950520059214098621566170632969684577191192062030877522846961566924811161408935068154651655810837667356631680925871962560361292326252450782818348305756565401149213167866206809405326023913701612630683439208008093483503883543242701408596500194676642014136530816440055809780072733652194473541037951277978984746672349895927797104196144305346596173070963562941218030009222031308632037152777017290299748362448482601262209376691559412125112821975225083777957444777760729692686372701572738692592163578134513245225078652830252115287537558803871911433907823325997362389996052047068795663673683745183232495447620318018738734741932374653864440841740171006578565450995048639613364806995864679467475379221875610188214037946689603242738788973314042813984286882436529933941696456568704537986259799992730136769678545867531252745928302686540472015392155243472274048746267396410963266114758434564639900566547818460539025020844274419367960136392672640017092680517879758245824962906986286880146107099763130784031215058477143974999746515554340354104013081889241259623954267062433297230413875553294376808201237147718905183246655033598904899320750288577939104164246505602281644280261946995264981982738261713576015582306595895563266887183277996747048239547345094153342023586914597862751828088391406370548023332847233543062063762717075939436709711467763769687369490159206873501228414891707884396614487175868063789111337520352245348408112519673629068254817842060041383702945363723107527272828142546401384733425699033451454907937530048939346007686310032988986762781917253183500728261592203301520682016401394414618208144502234156926193022426855492654914010004110879203068235845742708113715149864738585093979218491420227600388495520135048032655733006625714107570969815447217348667340322291859999213014111670100844284344517174150839110703976229652740797742380288287938094514520021866977207953307304957479505370846318703713179762454451268384387150707104021586022061822706518927697326265248579226768676030374168969242241119599219868568194903400714921375407547357653711004555308926876290117414106302577492094665810717294228781309948466122518875751154239174815218706743632832927798701496092708699849427086595590465249360107494732627916796347711751216340319815903035004444766695886091896913572470542531414456914373798577915753807158179032477872513915173299141928398151829331330420362742581895232578522016311253237325671706902996413758567718262880164929647403359244422451008073390478246007937956825540647524771148717740393120037370428110473088523828214410490739731566070972106022770579359155648573791628756634042847125753028980519192055744953954565144760184518389200824214901280957448702886117467191555642700496268979190855327087578496188382742890049835959425811498747291745332586939069258730772301771316568926376008279579088631768468907682928294800766773382659304044086525982574504654168586480990156379702741533251577572134108628038325616796633489060314884495931921821756802820684129825579350688315924731974941944041488991801080482869088401654463212340575917627355836661316349960741079500998091067231258735112201463390678424299743301361334477091655045511286964872746549977058206140038880962751217001148697776766950275698459128598104048667436967167689250984804135267428496255438270418177840214921775185708346577734326534576145961039784918809444229857688825140873869444370570766239210718935150980439359819889440464524774737628456106516755827228817808969062806269780038914433626881203083554149497479303845541554169991849513963389508128059407988106546624858639041012352559078163973180739502722798074256679205562814449467933473853452739556226075663890978384380805038029189959958656693744165496666518210407181392651869561652118107896846010992100844562033458102585486621256820988406577958636300210402062685076473641494385907602201290641673130434521416635260566357172720929920974323831914220959370355254492854456853319774567248859966151418546171516201040260377690450845892709882270293286696516894693887351522268840616076148432192417484911090327468938906165260404422759803954525052401093002046038719122892292162979950633266780232938145956460518874596135616714566788338428641662848085005807025057250738614467193207229619956297687876838243159145000110731361176097614345646056004368689133393285924891987283975390416776636997865111075950487861241953406322383431667926217611314688588785439196026498825902985970881096398097532539159193980349500796708838185672607889810341005444664550100860219390041943274022025490365575746952833167782239880928391157054335666086918854560281207918997065908868080805674525113532993341187010970719106813505167689604717619854885490762243096586478761012159934742400786617004067306273196159939441228682060588182608345234760935244210843254613842170251544563661859431792316783714427378664221573309781907041875693661823457384864915519305382950784655282917862046474822924649061047432160185896305736554762162594892802395345784925667453085444043030258644432300977148402804075814894757654679294141563710697335994325077185542278379938534059094340196493205004680865368731221018736030138564464383735771330556838844635238224197554894926229915483306340128260231900731681739635451080691329271225746519964980262490327743318301959603423569120581968691891581743518415541390718406490468229715240714210352661644513552091021751854655099740444256783067280662285842464911690524719997315160745443432859244463706137076151837507131621188953020582024498319562088328380870809305789412965092153101092610305020209124056317490365211291842577853137374402228990269273899543064193077046827410185632717904635045489845531538078287251156478735886252573127949384484793219873430861837847086062579507332921882988120239780242552018293550405338900383038915625493131741129800440374737719258918311165236267717703723420081227558531441134522291806715046241304116890756639692092888248042147921152401453135246711406084768504766821301227838906007140768054015836855223407624766455647569780349396284807760879338900926287569865284663276815406768757188565990821268397480448472723171425576633311548228721007631927459136477058609830666923032315875196058994260652227735351386088416788291147489349723391841426986944850066553466584977630179329197384774735004193674216526129597377668097607670529656854121519378998488646759030673399877201046115294174760226067741869383973343387833384919290136441999531030620015958482465469737918854149736053953297355595973758002469576788740203799937709933716965506358240015912135143664112505846427950838126644546295331773180192560544240153007964491620694708818425646509088270680671872461836350027075350279541596839266303432160430432294939957339592897381669237511492707762979651971964295872691273890042890951359651759666725706950196116600619954812680282497720946884691996269945067067343671945753315166141471332586307089136440149669815239679217665327076847862446248680679003060263272861472243243583223872472585183557404660248974704550047734577893046837212470157539694689060222234647202340708213008916678407089484228298938473497253309180855114245830763980552442791168358379699062822340120586199265758795519889427590871580654270149463431820309222291992020941775765819842847162684839328846669902869048033467252270495277938506641043835823327599371859714842378310794024809568785884935723286382128338453466211814430017850645971229229699442645920044892677283935254277553773283002481435414430850007710969826253797377870593798603350106266538144164675806493149210141014168479131245037227486804463696222166003107138013479571011576141717195362207386727028370439759075394501800806195315916758283153060442073508811290511376924141683053560993220349579497390746917177746698805738025638769261505683781366793646861064726648725963082881957326485500748026425006662502379776450206599364403979786541925263951510559338794925496802088442028381638485159934450003974551100185738924314570915738647476274637522847771722760527587317240746915206595380604270342748574340097451174291242860433274283104468833282120660266203669827356550671731538618291451837901278375095357610655262261344810598099234152014352939400754038562281883172055271495836898309589202048763246456576887494075138763388366087620539857396139076232252863822868287603677231309795823020191105966451590634777185306038719064373178710867798766876272640387710284077777094983592300709158169855530022665637266906707140131809457107627007527532875365078845500985573549802317631538357887685050808881068528365013165758260886400985670789159917266033355032129121883295730353981668195451736835643835155324617762675126066148634128177686321929376805909076047250598221590650919024958275661391417721071412932288941752777849498595565121936264243231616493149995365808393067360192862738447122441657511107736620066790483498417376530376128956512139709701458148909991551634962858987803820190557262930536825542883647358904035438063552354179393375260878248772283851610298257618362589749915104129937090441688026168800202427443161034588048946469307430595854455578874148199668150143147046169318235213344023499807772553750728741140632022533626201111315778140471479551029135993979456428254269804816491867010898341478464192492568225815348232647499367436746744120789834447195332815271740614740372469864217208823871162270735766968259161491021534338056625321952036733763825782623839181892734574776194046377902090538189238229263292698117811020004503873286772797710207362007025824892612688859412526121205502065528214315798085597754457619787149439272111657833473822735868241827250564427295537453880827440820237285136007765634841353440908062784279343234838274657137568956812013055478796020399211716882784137520280104919594177613062587172796916917663368595737869303020689700447621527677498462587226533485910940552081712864370048725149604159542699869690369554439121582428042849174201402065921811497685322907135564041075969099029320662540768413784571742351226168328783491916114650590672381958898037145525906786279174510233596953941370400567875005184574319569224601631486595656182772746566299071153469232099969227666448802344104450582754453815268226330175458135384393592948252394282138368842067452917942998343814268242519255321574450567388074247541846012908436265204387367436495261755581210314749834529969750296400090591420671107162964539760023937829893395336895106884452074415218543170648330781991725411947678461220098740473847719409007294138940300923453245960819836850214083645449009057213711430051443935816056279927620821124287618037071421010950830135584582006316002172449945568416398292887931794492443630591750706703795527315418530229337876206357385497629280375028323079923484294480340970619531917833194795675930243434625492832766478474004388358636045869101482857408684745691227526456579305396078929185368364306476746225074525246185945183183862244464762036715970300123029059558264145118875862217121749377734392717615071016180345765455999181401881721387658959010401953319142883320997181491647454446241510248565758895149161811920143076742741609712266341467265066561511014619524651391086272467017763650810307485204544982941480659168602247171239298708662470982125944932325824644148328759944305327071294265868189216134166426795541008994014920405393546491751518727199840322072716596188296012449109663307320088786158749946303672153209118885924981294746571142366462142102893395986165676430003688373200250557857441359707758003231877156458911605832038622138023279700449258697315254960669917896628745740093299721648649293123487696835546060478119381624061747824565367197858718714034078410606956340395033049329839838241497664665969063600056381477147135063301302733069426100627538453727715328183912161318403607307470063561403094332099235925361691702494759120147134060112811906369432763092972517883337795747263697449723205668553807683492863642761422861424414339871246639022188313582375873544214396604228252101237865235277850516294245137595578470363473325622211982107006185126993418481062873553049610425099751980544035455053390721941216457869431661473408793787338199502026616698034689264743100015721498724677033556761199626504090895092628675858635391628997804053429298067262874280791382599574407565224994801240774783833411012445590344209024884734880323755252492480549580211126633399829316438486344359193036218600373383776718894517231736411246199028276649704847129584338475962519593653984266393859514018760720316862045449819151903739765467519436184602482290744993631438734924897978944655710723871883849270200800664354563401415847937673861711393217865557684626469633826799355285063168998858227921456754173113257518203771244026706670786259505961993362047570483737633049654172111955475493074452109834892244958293610498551947164780867264740601033426432961163139695642592455932743557251397340515667946297543526205701976184130309206737117527151256852339927299565041007762682350043767792252939853434785327406102444639463466714841320858326673470966896319795679840054802881914088710724197923829216321028112968958012819516711316110536027797751411522472202659718209204315647698109191551616180686515571266192939890634802913777230457345171421696888733036315226310326260537829033824531989322899268340858989986494101975464088177795983655887779102632890500229302219483483225005241025092517040179891453947786567199445367680030230036857115277041447353610376047738885536441417309565551430056187446626450590220355366724518853213133108268169322591575571308662691524809100964369714586607032807573318034094654992450072074555672308721315438533130117672273920404351636243258504522073465391522690465385654433769570813649942093315116520838306036654915470493959144618163637014485597088799953368705639182329370116753250943337160993853706049820820265123189284552515208344244268395911823852500466165911588118133214916598864852970961172332599204208399486324001075821766923851707702870725673045699360982651148107122026146389898387561064161005972969384239729084686297659408805902889878776325577458545950235718012080600832205060086770585702441089423855873252814056462252714329029668415258387963017001783779768041434395073726467708582978150828588000262181840983044792145729572560337293818801344751283848462731458531892481824453672065200008858033832723451262260321892835737586159257249504930818507704653720846404921904306187090724679133448378035023155461082932951421179535486055893580425517254144458743902042313011698037548066479326377403089498722294495037470031212946030605502045541237294607894595552709389267071809747710963399012201048219538462576660771296778501883128196640289117864065467034213679053599802137694742345896112885981566386402557554752679498722258818300826064672251074115956384017874311451302301530644992479696023260236450239150076728296830526709156110286605351672735921686342777869687298211280212436651673021056353606814279859374728850279789385519605809382725858898149875792550320352165888215047437653212143379222920279467458083179873239424928095207308965475237689374875114121350920412376804068146007940514904310645248921657781477198739548761263594868867364896924208600848333851289012747847290181114788896432929959160939008044385117924766274921925967666016688154834592360609807725984343045222635013860785641568585353295067897554223691775290470626272361012717408899919643787623156488553014123748328629005770746252179595241894163897796087787109767059594295146332145237974014190296045094302759429690551775699893328437742651134400157687588966485010268397755064086102395995986978344726090238009886998862595739927387216744374001876875618557635453442346991699166823788980538215096963008618359640890951271938475225959370762845373307154120676490055097830651504528527394685155641518107380821398271615962171544866589409701999873331899511609841823932070530353586959890876899807175522775546672887845863501704013037940345858528241751624988615983577293891770875334398312663853849438186976186807417699695763373551184951324659121695290237094585400916701338173293562344576374243276850727298851727081496573338670910986508623316608488055829049941213060049957382707657960360123523370387281322857334536541511147735370001681887046979836544631691961570689727477904438074463380594785509642105024482615252179643660748681045302505756433750957913426424428067321482625276703258146409310024093173402885283648020098442264382189159137864743717167637789368761981588989866093813526609815817934864180925480224159598006548226127103096261824115852075071450562695897550933397678589572751936145111257610683059555336489811363279721716729264024277254469914552067474603173067361317077677135056030016204652635585002465416036923365283402538644025599916539781297459335786049237399862502116337635624802816979317271564558669099247746387251702811410056721374682332364202012522067507666267826618458058073940530507613878588806771660031183165613411585926598003886335457785077429861209034267062162481590824488536535916555133673376428820213802846850452867238862883070949414807749199599163851209898131735416432951052951994732465510912180698708423786628969812218970056477966002003162710917264469428279793424138699385094777361993626735015111584751213098929247351917146125542321898756353689152882962303864474051244169297953292593138436962337095354630416309814852122331437550476037091181741726418452287647882079146589865467258323924485189995603462493965635772181798685813074299843134018474067562572272943311983119404467933164119776827293618536356868498367745079385435013354741484668203860776414515802554829489217400350094095318878800479017393193168648590873976833256576868577619204025198141718069953329134084655863338523172744240396610114617781864083314757445901147631302703498991546610232744962772967572755596369927053585851630055317547490747835394080624905426014609548116066245698744070929896820902290809874508088184786231430051997224674155884486681803133908950034171002969030742196160724586991681292184405180523464539216239179540761494867521812630908540566101512732509414802523179650757521513689690113685940705953286995623596830172071536978620985769262874629638396072572839985054884245384416929485653925486935820965711257996932658660180055843589002743044264390014541328874147770100721608523386170138623151360983216935447079568274783349955791558017442747721021899810076186302350324632827418672962054065162687427055813827862498870561031818462433002398606428041496847041623542319131659347804533864324657524555698650893967194654586189721030074520368194644584400773339217583745616124946135135957473697010246706823623171555889635893584009803407731845900379476035046664158237946865826441665306246218979077598117991520015004440681845359157909144059745634691578400526155028972066498392312557807927283556661805897995385881604866885222249342621181810747205796757615412396175881475849592169820618698904047529574682449652376585600973056331493462884040568755245552135841224256140070916890594739009285299263462175054323370850237159982439983609710633468521650534292320369810922560647432519819383108561910470077651121992222055484257921491637899698589394283940137577679362477545031523390794020483340851496929052565817829055103510609789458600380364688950422651808854533122831767503190613235568016299379664875003175387210830990100201676877264411540064483232294454620314173309351155392337736177079442091507644905274071512030799665898600250526266999665795912439284385562347189926387689585247134691733554951823833234530273789006939309548013027166038841716528705353283579043130491236385023879990926806850935650482297373889893614865218280206930782642400602180611234799316435800393011649510288450988966844922250015984850065674324180338363036321167749701401451154125059832479811414697052771924557998027774115845366085862682394943173436244817684883717877030770646713001849836552200929925205102821790562002042678243645922608894932569158801793002429854040138782967010148100032865911412020722441307474131395857144209357196459333824399436193500345452823563134749793898771738332482697746155825786827136311752061692252899066600952789151955695603202862589220808763699116646681433061143756457016098932173981972632550325068729035492773134200419636964027786477602233826441300628329913607158707754234148248567874639199870884400267452790950693368013341470545266615438654657797554161156451166324881452768029926889111738107948823616104763605367492963553820125794894036640819869300880843149768776634729620860840043900184274565104291075780450636433921778509241055240185252582689840355526786507627097320817802943142292733683353055833437240432901810721226054845465366495433451476865895558289768655455559310266156778817905168413523937054459133511510247049904195183943902038248757601731812584697217185978246428004184064236751039462015879926122198386063382807487397664740058707251566423240766525624924683795631147199980407700224514151029420092187331049829663779398567764863973232315724409499751471302542899659259214341212400927113696509160364557023052230850363851058865151430283693153878033931146133702942723959066471109045175841590139543903127385106844708416255822524231373607775787115054798089447063646777282951023190995942367981973108320205808320598797079567261310798742356578845217516631016396726232052095797444480447456726507319792085190777522754210129826859194388111119302559748579852289733752589666694045869930429443973389776021547359740039848636360466244033534963504789622707992719632860946870197517856478145170630726036281535747454354510959413415238375133567559996036224588779325032601699238150424688251037992687231212520521355653471275413919444984172402373768675575734464414920318803168686410196000676679919565200471722431222971861906140042882740950317897399969026082014891040437804423537277640147714856882731109028296268118686650081140188612820236750165290870577862803499754667032559095409215285181890878721631071126506426607515637708575861271970046272861053370273074683941078346976380905769843199857794988133441310965560681268640463775068369483420834806582174959892370834995932541928368236904040213934388024276170327068110096474841223007198643553588495393028773618634681123501309952116724432556939075594035321778868049489379783303011034894802189255858271457901014665877922822432462752051780718669995196711720793182356686111733118621115178560165417271157225946913762581890786266614594556862424855137758910863858509408489659747510285230952757931062353243080657610486450664450193086517116854033173803309821881627108824161322078580604371165770469129879318998775830894139440547416925055296138972230192004898871804602268138985650710648756775001404631490898111711051616367535543494807992483676835641153485493423777913517048490501550204130631850934402049315716152767350139473536015817965674278914431452598841903464006600522090128529852985911388052239706209138858431689880287552881350888303750813109213679345086394609870455959406961255604285465140724784414321525141697513846048225736207444303470443765905418533688458504210820517694968160928150198445614332992571015582218733082689522754767332729749726435952953302838644686460611582105986676475761098195487852971196205185013773026502409755372054227372982175714942233468148139194579093408610073217945049637755066299578379159091485404516382804691210703570097411518588591210155859553901038243498306325862156634932820188143874920977345847959705646422809939498802798071257536309781281326491584376779855786831489494529789834739570709605868161890560327337202306648750377254740403275749829804833117293056769620799684134004941454641424723302834221123059164491890501532054246940381558692772385772123573314669013981809325400529902109033312826926930208189772900219674154362710822682488100136325697393632686860414545514269105004779964857772307523643299026680739593687273850896300721717306188913128796769211120340870756963030505941384997740997955904873501265458251241928328671200962880142518624735441818000784409863429123653661316244991500637101258972762430829059532881896079777187589997971046647135920266365878940624673056948289698912871117440260306125879714406442951174109196246109969588841957000367895339771013940554698694613871581802349802811355292763935231796869396615027671668283583332538548140919425317773910031466182781013999574530014283547471290555885294505983038373804400663040801725067282607180495072146913136354886570498228674300354861101389903337500401781196057651976104679629957942718679126177779509307833108508349100437374169680652039820040331367398213887953501508027325315259400947847010395885953934211879696699399692812881048374719320776184148109410090375184383848474285618519648972931425777175222700044132375388718711673888584911188894453347959684686461401723150674436294151453197283527358137828557483647560185613369306782524287496900507198871926477892934754602272031942192885184832429651836899367068806534707754279927106846895514559761580463846270025414500515229939037467575820708981251944661410699944259686248107758200021302879345455538963629126539093872624225598669577171334058631751858148875255581229307524943276001610168606968148732139944581320911863808160336483728102167681243972723136361302265948042943626875394510435660017029772261123124173148156162535654788310393136794897688848123844293187484986955260567844930779172421534075222428520712521351419528496092195925233971279656654235829300874210867766168211865962803324604627166840248160524868035777159683889638791506509471177012788513442768768693606619644101024649483038715891559883665129954599139064951564663722131987152689948348940227091559035895557214738908601002389852138503819844520025401584219028271532299981988849647664306895169382530657360029417658341583651138881376843579707147341862455201652098529453123767117763405311382090795639873700258024420151142645353342220881729466941924167391442377463468233600329883011020797278857906102472730333649496018970186787131362019220376561446735271030634128664992697254747475139031975118956888615314734092775116143370823791524315107325298772598975631581108150214012184181125485797661965632688420668902047700446810739253521481813049411446751026861890165681601104477346777547933181051631076186174053994016534060105757384743217824930299895852918762829463689469071283730112764975301779392505273163964966597695003929389116895459442187074577122153432045218645583994090128781134363714657544517729546945985841121868223220044369870340930222127931356271626077181447769123353008484623078452771153380732950053725600750166193493250201931591255442501320214004991120547747712097231850043910023690300753248025512817144153838419774740418169080496573638564377436709196942590663397859971642210428337795052193171634934828414084200424206516846973867043686339877162498181986020912479052192386037461476221518880268711558420712214243231120010999795938610183165707000114839427666211800505255258811218232262472861172348020583213528727348021751704502824323499412216415785003573513034266326574277001041499702696064273393309128375132746509398146905218384453211184254401497063937103555377884109283898358666848595098050039079398763817093227389527718928607149706717030526619613166435656003724969268001597771714394495397220635752641477899437633172817906428328868817043479468085026535729117274297284358539810823739277812915876918681841718559422729232599832573799004544147988060609791398226963758991632937925638450153766657141442590069708134137110597379724815345503919411846159291541342653496623723063897968925457106552919806276610719507867214586944629692913814016700400994881253104557538100930293857420698078185094067858658677408283714469043756296374253456065498241487389468178092118263496013447140929740396102192517153410491829974746655107898417237947134379544943101046838996444829487795193610088473639792225978019718702040860791779584738214664535947485206840705548006607284082115797534622410598165365827108407849871170437255962266637381288457147435394486104922199912043967214425529511349309750075947768601461422060727829930580519615135129151411662410920629287501058476439831967661996288038712243506536813385790354900808431122854315703714465467021771785754851959412058732970769472910624332888787175965915118563352214615322422992755406057095183655316799005279356256551359315879573683092401577124261639458857348132179201567994075417136236342883183566180974638420944876948598310660746122527245590830147601421786273099209660029221790379065389298027206575352270198432006015740031095437526503677926277108996073336979119171750998117669267604481236271198548159374551610257169622733585210066791236537744247497234440232310647698358696831663372883939403321136431618764176153779057501587052991845490025133758940414318552213654826766607089093074239202207095027199911055985309673942439546186558056035453125553097934063133607009474257336986406734401699447610887006043948092842042633482958512382243373914469206795996104589955746686799557414974646271713131159764918333977335076648472250176855989566564231853864068176782947287650935925584567724542446058372799923784053773588401888813202116038459732895256286064120895007252714243022133966374246169690902895903433720781157511772918211934687082162946484304082517989999361798160973325528183887221665566981124904708841858327054852150757411630964250786336558282821265970192949354787648736490466096184645423957755196369362622120423385525529301182506708482799916488839521923277405890723206437396972820336240824862886287276906585056212725863668144537656550014058551328039718986746148714900386809998652027753468179258193012389855525516263106305909014526578866346669258686219402527334365843868333951995929593925216930189883058575184633779280246817071619686946508241494153597153950152736795365716327771309841261854189813453771799003588899104863045913180765733768379628617912876634366079261130166774314265965695889481653292271100728045292493886497351887759419932465725271234672892196677679536247388076262068694837392274849090568897806451997164107377026834087244426372573812776909390480328874997657687235742437899524544512880167251363034999016283728003052926171018001600455125952786411775261409996023143867786554024357240530773730281516541430403224677740271310851516427821365357672055194149744173467847617412050923145966869507022535985642363841307224360387098308188619138080972577599396179148778342249179734456220541407119732869433223570936532154747499684333304652929350186905348273370222776819959503998852060975623674817154568648927888174868143129570776913035050729904836135518099685355240437165602418054648518715624465058995587254395821238176591903475302871023401684775258447047726835237586674836625984225401056928644162883502863688318586197717279915640000831724750860536649045535166722604349276829769663339502627098114348145331571774944822750963228082057585440639344735305686888313816030272837140876294474564765288780063584195742822958509963871551498133349072892052254122746476828551370399336911455244913151007795528906351267586860592688482885617597068223929382582627743011740820349554404581046975151072934105478199725187309176661397698185974445207398209251743897323802715512381498437261260157026688144431225536646860960188842199318847317579552253135763555301589349440186609011567096160669015810359179844213120442493918714636459080448123608166975845545756000987028397186847212812352790597019995969258844829871638152649962245925141423986910633836527467202342202956303403972306695526464712648302045990841940051267335539564371559285869947108344979186219816595971777117798500848787593811980428689210964253523425361728245026118217491693468071158780450623337819581825225710591855036113797560414295824878756148117224769859310279254215620991190119767446313750537056766241894585736628668713320966813613815796699135164715215740450684308035214750561900146603966418652681791841516058681606271362557635977248129260462398148225141885225172540580722798056304447132163535265219911644869223613248803701171003870525531616171707841153077558237950496457547845137478684688494340785280225449736992984844017825885249764665242583627041152009141228520215164519464304515945590013145756369426008164479107212417479158815570369166421214657114352452803538729791474894812385560774540463099868436568901212286403581345930757534385140291359641343706678498154244286127793889484193091069801387364242999397199807421986483885940011304371884088264596722707098602042744660741700072873550353948864980716247812204059550679713785283634215212828649947467450170189963178555380651326249829129412736396723433935889208859407867208594407497240427701434692515327604191174343666496730622622384239194080290549924416556567288644887112293513222450701457532903413512464953565515682816647084687353976687801922152694607992951034843309279974592164822830810902375789701373423097666712349929850582834652017739185358943525043221778560940366364047250847684694349708962278879607375494059475932040963100930000957522997451715064079919577921606756464990893613174203414590872087904289893141255579111568010495599097385997641664679532471330273019215674524373107936057151863094893088504877861822070102879494149354245955538067186598785376620171380100449332383871521845895107428909075067675501626259895492481327389011422577830399101290439104621914926593198952615602905562414810423261978821922747290717342566135748884657404210131741448715227530197237338084020684441430675584179507651697014353332173949768973768767863165195988091116095519695034846601624253826614707056484739471810795865582178026501608834010570202664807754838965963321902539308939517894419449613194608016441043809926463509263012085815101773885326673924788672268339701269606518124470059021957163155061555031948156823078993655618472592934919874227284885219908814408151675246083652575575071772998189416628319616258086984779262995508313152580113995509623233590155254622239190913338436873947701641046804829389257102243831083026962288828465532392484035282594597891013476981434186983345477748665146768236993276872050538139549289779102570613439539405101591146289243784284172495496046106352691535725093388795866917292366339221972185932007266883267601079660784202136221285497767322110393456954573511647079587147729324111156677901983547467528349535056209401898906364463597530552701239659466786567096331614162124032319660010720026937950188695412416424122640411855636454380596905718307189286967928637960407842242726148717537094710088011815988778068808030554327884804202894492733035603866807173331686922960673360884699087088008139538012773511859589377569128872498758239466236532079973265042127064314721390192195496471820794587041529981580009660714586603030550781998663750300357163000318825650209073749512833727553790608707188076172634947517631390405687228535142268865910694878076952829979480095849967230561281668461528486337676471265180092177276945482913450041150242876733185851907271279068285865370732682484139128440648446910192291661398569437086706224024308572497119440347093139248302058725391149729584746728563079643468432251257445289153163948735203779323032141741162125280315795877551882633243692795130105826567282554679281122832702434290255287975731134345318830820366296378180479092276805304180452873863608847575577377493680947184533346800650699367100956291247822707968727035842043389995214877893579497353170105888484636477272995075537099843900587606636711688726359482735852388110737458008513941348909087298906852855879417316831349634041476959216973495504981335968239557640721625283551115416845293028946254102121327866889660974380027951326458108403817934324035399441660568580304883961333229973928862768717488350426901164357469255277427044565415352160100330965726896383782463595557603195095527408106170707898521720613455966926559919474477751015699729810308545869004575235462103005355387497094955470476222103664528829519331722908970379667851651926923809253081881073870336964468254155961011295909587778070960721494402428878116908726750839131597244052001696015655808587898874939586250325307375748981978408566924971625831324333785966707943387997579044550505472760868795331517573269767987437898708353371399186758841017322795617480068797381739338506646882070405817309262398992342798156851984720503938793588790304618739736005399848973840803028348639680643930321320472362358037453863744514676846475728357587002172074330915966215995959584906935153589718547228113990140764811763721481116284993025266073875731820833873421278748597301839519956422380604545492589542599190743068451336370267661960505986955206279067548035405347430181202295943368724537242118798183221373567658134144782922557005788743175737781605056795378069140202401706940193302337477857327643982449674957800872366587479774788713990257762281517930419786303979958117683813850756041630151048509805948241894988038311439762256413508879615234582685771025362140259909305302313650059491938716893752430510313383879649694880901240988558768071430508400403920323427828618566017221971630239516489380804182628373109095392489641025144913682767776572280984987656729155748124963299926039745855516471001348676493781641268591764049618320393430916253152869864381089037296267867260739205684407102223935184096834482642944942012498138703208072007159621281741571343977167906467917129358519914448625797293644696291935266986572843713264567510405563359042974929292062615234371693691762284744394881603796543801840705964719684792903745008074008992203217807434726574911633031301712211927465214469928692677842169198436810124102319635518927041774216908856343223511703269490755710115029163245827944207194307211771273701984800192631804053939161217020328470578165350889605666098522708472776821877290317424359373117745275795548482659627615426385870025898763642482990749984417873987370530735651159516889589023176765758207373368653455576352271047397801169188704423138048999129085031579017853300372608650876631990728786040471460076968878818432285931737737934319937775218636901764857486234740405932901659863438694653803565045760315710993707923841816060220221080118492834172143700771102506021543556961019114390561228181560516254556394398933244435717168061510947020344770646738102942226466030535981404959767189931380844972570998298906702083043482589076805434333900814214113756601919426556994148315176542192174474331834883981357410036479263044882223694136007655570577851938920519448220666457640675860236294320137700813876860238701456986440904411578919795229693637257520802181391407943592467074396157715738480183455014731973516115448727015825345089080287182139570235757232058675841547925302195354981691614255201512815869747734899512301493858828772734449388296857257519741081154750362574547336455860247332759354515604211826416874614216180789664203418027539041930658782113628718783306535047179116232451698380732690684575112743921453313307470866141057996417708171628347024972816692379584413900052413697019114541150386403549094222094582564674586394444502015111223267978462409613471701912931537327469775805535483686255471857547351970570684539421574824533917827267361813345094636758640895652030168881521025411273756150974432452928940288166657227354690849134607429102338536421707307202365442180864428584985329785562820457759989533178104204678116763824311846447569344750622835115922848785872262059365845540681219252745168568657285121959590402075586427718741142935158350436349685554705974029826165931555509214367318353367633163306536138419824113092631540909948547723614617370834735369791767211603192549939834990345662507986869574530669534390024776899241822592472307137369341615307039663342677534772341397053073049748583790438045112601634077553451945436966114467357909174806558206322205157455152535917734055536326113143802031296429503623072841430985922670921986853780861931474237080609450856280279290740225765077777705373483447024680308733719519797360512000804104168074390112851259291832393665512022724397553819129276511971155157834819446072011788719392769186023917980825159880986842971671256651524840765755063620835877577664047697258388905863619571238245289384771156587234992728762281263676697633755451006973751726946787883922895300843712491946995006276272993456086411649479264212278020695759436703961524094481591590075572103891973694008465355140077135373235238643413119793400876383158903198385438599021359052367224720298017495438176156023896169350777753952201413667101974777740208380269364992491225071402915542829601035436578713468789409783492098368367639445998237820108725037315711802954760724784673225809817949826248119114005975951007348318538924910097667421262502941798867933481753681436279552766138003155719496534155614659124086599935184774451419533128159992746354281416984474051446445624493345745944681622299841982773636838813907385112117854818327670378994591184945622382883088860167248300215396407574132460621441711550038196111793853241133194960904739160770967919660805553038606048695137492095116768694617900510026012769321148640789534211437954201335470547904235941587510673897101310079495681251446642419840563697211246306437343569080389957820780123278094506605394389248816160103157532141487635443616368203198224066232767838233653949704956269653894709241578870080476618628577264511322725346103618681228088067092502783553612289226444467357899657867001514933614069285074463634702385986213024895266026423569331944451527246071923484466621156402418999717444545496596167333348791268135970786969976304574632085771951668853563388168586286679177112369989109448110093129094218623681173868235906227722949245323845085108091775186704344165402365734656713071980788224009965229905698386337183949255705143743433662698278555999224096484784870841609417404564552963642664900134548870583691456670924876893505995556215721663499114370593674446458053600526606678183196212786698789360273663251368887291988184517472806790307965986784550770405278349965148663831345715192382417939851693590036716003990658823464663080153851865679476537371239687085932094781688139915208176896013604131200048231897641382283237453183186871978410167867297629312471467287608758032492870175386010215090534195967443965494867705500640252088978099017586475695255880841136070707131434181938220825026971734549112709978675225491665160214307805208780811875055249561283420793253593307742929725654405284326059003474110076928801866258912684806599352231049877079763712832550200894949850536379206908572324757081584415690398815487521564330877497085744363033667800718942349488537182388086641194094306647328842214236201335319816811225165779138449722632327952322015505807444172731531357386311086756885469960348776896992501124946146776848952392813578748346479217536641316178416508485570191223219253578263705202272664781287496691777099853572149321360170237465317836663860662284265617146539920140010515143260025026762644431586693617410452473966841432196480558055219709915334170915064745807611193338804801813148369440297942149244214727486036975942756593112793534946007026095274408895670901975501953862771248109386148420564189630486157716765433102354281763197603552892226283480183944110851160636431650744355997096117086709752443145556940647084998718390163238536386983240462906845878935703062307805431778653684542582415113131588453511923200505447842814776332360913260837722498458961839535554478533333288405630896479520097054873242031382017182858395378674635250231291099808506391957300334805452715774566564914609307205139951140185275116128629463831166739424155029270229867301512901811819239884829679464377595390846429434161061663564092803735622720048141243939000510479910138143043221597933842305166842502682846645160082575316629530523001765908848672024090016099429358137595995013699906804373002725492728555737887729559320607005427953372081743685891412699140935677421107736153799720832908443055461128915376125268956046675308452781456402320420881398889126385650593814395681855287283786849859180415287134722708447563344313572276526089910415673146238413445709856182423210603626158519625327699648370812835229268331665508355138015950979964247524416131781201033790062093677815280022305577617634337987960088084481106362120450271684044429655251795327193567415413543482977518767872688202742199530905223351198624341429014054441971495228345272525118669630335145451419748386179757911916223298653210838168280935402910285632925959518366319737652107060286432009159161399621979117763428398263694162688681042389129042832328696650195207803526218439968882002430053210503970285267830189773698722285453031884382532611065813073854673677548268796259381249622810596796895696662457533662008301734858199290778778174998326766083216327094892334881847375121862456865741515401510175140744497539116804280941585909334790331715635792674755895581767322863577024051754107836069406343216753863509980161057719100999627465765623692550269828808604822962205129932778873292079490065004275552551750184473141947410818373365629347990525424511790943155767059290198302187459304261105152538780271965472871077318525397530016089322386832226307705207744162362807964720497148635852591702558058895400952737210740539854552238303543345213478109047194094061402259821763975122098504067240838135510397947631796286416686522165241839040318681201032581423313947790896341445381539565282494126565309921275969254282931380770887421324596506128186406542581343993593074488973418940781031211624175766819847577908237247988897829527296465234792475103044175501330479774913671880011003658615782682724620655243679013263495053123374208704051576535090237918278506457199124762089870351283845625623232122053342011236178930307879083414309265786213247913394935823177589353346959832412812402624402345655140608050252913093417256094072914279718330286364732930383896356283259477882504450292419204664138379953594580349360342665457173577615993815051236621239373456634855634302757447350679901221482251984522511486637224524501569089099242658470800635173928220209577941712665771397110032132284257721753417275188935254715515931996439535319288945647223441928888240441515104793317830298858150510862851924392027862845214611244252804335966771522226378784943846505199540183331696567818923403465275802759356408747727541726385400460719764450309881470189246308387332495749158224881393445419000155294850866543245641332496009214392865980315378421181083253951366803526964573050458959467405172853009448327859351022933385674692898459369248566203858906866938796183385565340959083879129315711482020668636428044381632180693143122858114268685857653794268629709511533404922118463833176302766871616347885854117846093465444486042214566082418329155409599159923571794037820277527022791316535416231370856418319037386423047467587799409077979766718999022436324058253893276524713959145114488734975163456904647717790403452183537226476077401765522447482995756263050013804507272115827682642361096161819623063639288175012757122970523972143620680831829462576915170261267314047058072026410999227706804855101983780843384449731137485981338394915905107854979165302570600592932602416201125495023584904519497828568526701281585941718428569689494078244891131665493364366321376698209681678422176661050462175652586942965692597882857408461555414641877563648451103951902161754410164245335552527447145116294251999414994730811882817097322543242248470576419546312175656417399832152156596135807021588818977079004926687925475766890511595964656926098453353728718586283873730072552107604641066207738735824964330419892417477479789685118704857606305113235710092652252754896589921309707876852924113143125823444711600557695833445593974265379117656237014687737535844317608660390953604099184110311619869990790819124580217137859752500358788260861647519695948445392923976396729638448477201526638506394298852669383136239743366884575459906776717896178460254124341935406294789146098455750057070001480091774147510832273026813105795148736175211602280200753463807279257543176004032615992316936838914198155957996043265218923430735112134880383802116504402524957190915900492423962853631638481820018935547243020025022479054286336027314237776710083772599889456729045514730783953674230256201505153766663707719441039764870026412501440412074974635513888964200847753266736740003905095578112422687428068413673295068833898760620638574948629430907436328205126298058981808117776743441329345491697783196198561617140135132864101033696054396947931920589859036794269181651918756095302175427112738308352634517069337575499590321024988475194560402866443668149752303972402741818981421087555609622729982127452796517858181519347578411218075130750888673790544229417896632424608659876333409744736954888537178152690675127475886633758822576849065481178390995784062667560981131563592608792751934833059685441986439697766045233408872108326843359418806476999843604534004516524352015329484181607835829561073596690224308452892294351420669148593953547103857159713975922429412804674576553071890773573632374226596346151834415572842296483872687200768604018559342684480196799030068017451983067866915509991608791881201309734456709323030990601057540342943272509575092641632653490018325196808830762129941726225638229282984250951683989300258834257047306538222799191029439305244162718679939943948012289802476205319097729145614852182996035498726526435227807919783381268561078506959976492172612431987124072450520203338092193324334127337152316542768870654562427321421202482962390970110728311007981906747881698616959753122290876384087134636013961332335494558120114004886152720247229297816532623582053850962963795212652492306047956800704480673378701567533597817609324919011212016282997425670405209849159091628970500790303238595341076485539464277269388644158657357896582410143380213486109270229858887978981778617258091747505686340239767132360556350528799209750352657788862320522412169510356673632443916111847062084322578756007191499379343425355038747740130596658970493550749281747380114188960685141361796410527260980103337884967277655192421057624867548011588730869363931316508045911409466873598349953185238782733706395985357604967386463100081572795826360733940653539225741992852406373975053876932836055142732605567373607976419854295058702570065756516322187349646922546011385499564537384801311263940438623450167075196411433157147995847650287080648502833674302991058105856383174734009123989245046023005091618748659649578310092675404585386181347070209392850760133319421436945067559923312851725373117237870951021351464033793398121431562205921941509278476113783461314628283157385622458455937700961241759660357514183087066054037234649651016936375859237251935516118977225936743953568331555739258280165501822145919623044471802644165229196386455944740083772004369549427264360211142927765513106587649356797117536406384391879014663958057203756256821330546811395991192813526397953051910266498293773428162369247895509218111229609327354481799331998697345721655403651212394268723630128852760115260925688690085101861164095856650750505708483431444837995247813327003077915582947352425998478360638795643607329327772262741921112232549881185834910028394163443163276002323084000042148404380867552977397872123437751355670046424284320841349301570564654179201622953123473914081123590224781701712478636928263797562064382960251988035168206064256738881656295822494155543074353018876479338063389812556377766052527360479418016737707863490552745511020862175020789033434823442685642789750949667549436447863239577059422623588660610692080864451372330520067621614464757616022959424957378447118065024401127103032949687925174593861255467985453903528415934390044102696739794530826116740618034049717457505868797265225600380347121507140257094109172688382642054116872196687853526950130115879395588885112982868091510733831489585906729650124732624823780448165830873682373295974083958504050588999182654535981516744327137715906731906060070602519497513997653374207260387746095526359065737015757621347667573959241330829002476302799827680875063622894951229646302532786271442490802009600831967525228630120806894807821617674562243095194878031391247502664072971081386686166012256729927669520953139899671951700065566638431310868485298130654379923570790442282517756790606374823406111818368093486865644139022517142812975449526022894238115840600365805906749611982889697644204824026958133574238848772385803973215968795590137477367006147826422906611214147122377638543012910419127355649000079771561121967490917883433605156496414148673810052774333150453858545016704334980349186914734643270246430032554584748904889649100277942584636163614915018949133675514941959014861905845086297132941795575923158113935390424845734252531464073584867131856258881737484662254784076684374897339249809115073328392037004908191896987807253930936736133458235604271659344266627413716047750038262171015481631467880943156917585338099865391010087449079203669254042740160143875032023077580115473977967353803277971394478730625210533461728511354862136365026665341796913391191599298783719034245134216082310962732165101007770559765904781254734642987774149105043824520087622147999491721852359264367159478767980939093174475704667391210426145131541961131088397060813220659162220847865814184255729759662320098876379486758366013926482223916066604996160240177609612877854393130465762308158737468474737013373102181764068435096063631515731911787798850467494992899053518891699466673739072906856362341757390624851848754098059593381602767215404171325865221916030238421407065949170698469141187574959175858810618334790490050966256927927754463556293360215897083289273383898611031700924627532435444820570066984098763236361985806815670522672899344333234639408719735718087003912136003209856507506554063075516948362451753536173785348699419997330718387228705442010087519964474745046742798482744032206480966876492048761792012032544216325028011405850118657785416167755967476557111334076271771146853685454649829301534571598633401598191230054400899850958885449068246307209019185547853649696691597557583119106680500921399692383954619632198812747547521877923703802347001788262754902664479447079759514125287799101013999760563646356431182683774845664339002862918255894820813458683524208619619878324508769087879249106037311913327340702588777810780993024983857543430132252213842469055716778801504108034581515843576008542200257201673983932885776406395284300597394352302422837680533368717603178253237293407374699387989725243109924303430276634160951235528605288660548008776196794692425952857886408090473949692824960222269623359315886398841881367302856136845106310757394704676114076714828501702744259635292947194439105790847606823176735108310711293093399826879147442853858169752344239423920634458681678991170114609895126361120817343529928811975611562939512911175239138492271678686185161046824963689615002598130166955132450691151033438611535086488395163756063102976135176298854370279409220013694988313609762685940885289843844500568248387023440020143542795424990211380140882400187265442107116738320306196355466496509192763090969976115668688020684777311332104126594583757117104618248997929659861889596229678102458798117963301055055141745645814494575567230236962088073120472591259598130663686604918427244860895380952457221451703508955958886083343788868642110841775587800396378463049411541904441721011250835489375393937706750951187458193457574701863691782955571336502919249239363783305892523040092443892234627759047108977446071717251577356032272657582150583173958418887193962790513482689946009231948591369856302198973049319844331013688983315147537545988067097414765319745914889077993117743628022173736481558400456503595026065147924342292998824644348761293402894142423159820580002668474558350352668301823235170708108805569917497403970781688339463652385145999465696130329991125536329064948365691964904863052940081633263436266371845875399861363359005196032159210879789491968700648450422852097043165418065075142195571278790091426971201351549973362185564404526672204022754732314343414053222222241237062725734790646614968189279808619658006699826456962512483239812223411648109361699908919778845138159152952967609922786432671671265292066078144153781847160980221243470574684573792443190089235598495612940722803365191903008855117496717579068623605376852623684596709027722937885408968699514314546489549322361698946161491411961236134360821491963325106005691263869904606730750148483205998484540706975645382210016938301062816775238567279288066390335545850722702775426571292912773595724452761263588083690793254927599504581302250208264907843463414841462145717221417289110583058764623552705021604955173714261189779281103852660295696476053562694397260689075735177079467781976384499089818655467512929543106127857527246473592593424538456257071162475973677313008867960027321376502657892677248126148028855226147997703638030583266834479475338212608709232719857047546452852797403522993886036508951963096342551377194750158098936056911982632539573096787238249929298812368104425920160087257624341426439772834438982972157895765888653525710763820456117283149655802024520297492393221865614704115798511729179055695571475133420801215089248120527979744092161013913487440782854748990004196418232228557447566239785712813305357731247543293195739135540677975803599946122311178034777256315753039686216507202195316829512504041895594951611707179899145817521643938041799900373037027166155123464343299727205468068644852664745830808038000028264641253669153971649512326245606106367622750331079964558206986899679676452772803766340056233347946975422507539398081509118574134180199234724837639390509298635355052659501918369472605248627649807624891169919022063856146813131957084310857817116048918279124198063148588630724999527087531267682733540220749132343706007732500247229505449117808011855815056530605637244355836765341868233171418781477142492456906620572284600113856740861894355789007312496171637511200946461707639894175325425974090272148285914844175040875153398606899700774304413986077847979847892803922212744311706767355651801490952153733621751297923910295071358214826951642650890349094846859454923216845260357155816383173819089854174511012714715213642897909974699923889485006114956354067672600942682805518333734502191060513690807415106476912117005725003867498913149350141705090781021386917587585770870445946595233938536419130686591680900033116480542981942638872435526391100317000286438806099530625807052211155714320069178445554565991177368322167528781409100259756355702376121493299313394209137097920121996739209325124152689093635995618896032607412623500513412572424456736263825429639686303579554899767636677477989530480301551095277872941241198297762298489831334152581667571639448327968584520460505257396600760814281044142754181565113292689438729868334334387477980907896217037389329580584131304747272159150109191779420757437193558679826546525207876495852579519857499505107461180987076022813935947013799738751248655164823694852695549924463570667567675607009098938844127290950508032373189090015253046073124838425760985740879158807878052050777823910490834183303885084545436773295763482250213209353416606776713003400810100047165499942769887271204008544124612371650175980106064142016640731445671901143406347619620821817378800874695887113943891518633254205108672925922911732776326754644026006846467039492956210111493650043754921663020660815007220026152910526569077954010246593802205823026637174911265499851458381122340919940193576081092472773631818737895426417990252038654093739264006734103411113835615573806091039255677916428099258128091743298729519865839513871224844691370136309674153232338803162775716740402267550722949563213955071045035914519700769435644809520385828489636367864691281306336396380912525352225116291947274014652471266408150187284085021858362971853963336390689604487857317602555236428922853744380400157128287498674378345043006777112828840826846650216395279889500367504228611537065795528715651736298633224803504551614897011062508384794286364349859749209577316948561893971803218558799607640986484653465584010131736837640747319989436456330524937301743993003440033465814129033343516545692383139489351747500290984234065661440776575307027458428572383972592175419794927117646287950213263020245639041855245886755210452177380875329225103588918552297134457103884347607725916572293908852833077558657402711996543387871575011570537692106139218485904192992435951421917891635326276798729504083942355296557170733269424926806375580977718197498375528266691776488150198023736320978241906734944911631468684048960576588801367546242022304446225050406106110592448467367496176368516091229154310343305019182684958333365379262030583943937961508064557610013179396599715974836575366362046894360354845431316315497381643011821842471428870973021065226537970658018824601834353533367582302281018333103119927560716995898202928026612065842689747212316615977445043810940114289101616664574931320263176163277773978712464975057086771841554543796040192515442359121712258856782031323775281238996516189205881049406994382187902168218941084869547814762961084180811529501659495523092751135730884570443831302858563900478381270456344494653298801908238320872629363305316232304252684059257591381860465083408976775187764699437216839460913580562639588646124088370608420169380141738494909599302482859764472108246170762774253016910322692422044074156719563691787381986985911461541178328497443430348064397771360970381176917642689512413243342090923134274072495762743587772628412751621492642117129666924311894913651364694323325536973325149638111500543955429673882702945804035020704931615575116015491093675686699627969727218541063783761673269561838856262891552629987736542216164520312032839958992815497744273614628270580052465751446897773375389510764451502413401281271165046434591526462762799548020421810293431451046834455871484218524966164221778724304309359700679027098160944152305688458083048343084704525759768298994694701352551915562219454218998004716526512987746430162807312963468038400301136013577903132127280606159160001526568135415233591490335961947432987742970108004126633996776577111974828630805046500812480332473187046178861584213974031811053791247761823884251464906292093650370416641286784460267816677899132172703417823969384511216060501569628090620198530957066079602177769078710242644448122350811109509010778692449150080630333873774245546546106697985468432111064572404176495976779060647397313175304931881338084032255456899621630646638828656605810636863491306481502896331832155396942996828224237650600076143005753356822929964857266677690442808330763501933348412378632857012644763174064042491849936794766532228804788163412523273457991075807276670051092919115323455015894005445559570502905687083362083965876025202008653348144703980275184464574588240196865283226402570192106152547749923838079780683414464204966116477483265536399241707490444801523696821475720617658359891809561708505101117477818650398250312022766714524161045279930103389618989172419271078478635242292379183024080239358848083020889547381528749983733030264526651588419357790524089307524556890150946333571964339294382507712532443429601262184494161250983039673104385861582163150934005543963082912945611417165450452662185184140443090728688712402132905380457224089324900838132178132798775190051232858480884406501833490078622317651262891595902601087840400317846688629650694791038426781140063753441275196058126497747060575535616955776321840671683737783460646512512222960272833047295483862188648917557883721414239192082204647049948009332945895665058941838407419864668812025722603709649790356546389683698238017248577084417391337116513829578986194249089690842253663263614784515707497512388923402263961131117146478435865181114122957879739417989093318301808774824038768268846070015540834664891840907876535459881939550013149354302004633434358231342744839864744756526793947016369340409744873856751788781661525492141529160647304721702566519194385653033750996323393904450151722611365160684194326774268550459786770049498307314427520083642606108748305332712146026689996639685598583967190833249292557534326525983434946225197331634539585413265403158248858841864471566238780228862344225425587187114822583940342003334981349663121883418627977235330552781992264751369414628716528756749745518588018795246083543139930578450319598316026917885461617359413657061061954813136404590133569168170750007193856288367491588475740777741894247992166932459877939366384699560815929343737300698670528994901549962832042411121356588968635935817535663404774896437684531265454104052298370763182851721002674691333922943171576179766122060307596055979790514190519745148017606820261634929990763957184969567070494050159899489043942594558562438735188387755554254022193559623612227051852325029412980696736409008304161209867529638195011558704668135059819074581933660891374018344202931867693335257737158119836077391329132246017670196075331761990953325878002522771136326349658664568105929936148810876826605926240424516891053933110854469883040918764741766723931897346179469027682694173091495368089072580657674079005873868052924183053727316975626229342087029814074779753722184532723479082298144469557338669613779631397408987057625621074186674210193550107458794684388112345858708162315275400527773466824133257286583937189777516418061864205955599902093921725294142206141574428175792272761097375047484468707547186932133169536372062935417178368598323302337446936827321719495694757609867222067758906497623565447153265664229855173526490950811820436520338062873287619370706341083949970679103710021526170383172977385975326006769357597013348764693087047273713735225477331397675632081473464244575634556488376090454908431319486326517283826694472380695854775928526794967597964445605135689979398008443971389460460916783651684917459814664376894858275810421287152795224425080922513548206105588939929369576837049672994655309184348899069362735882325753261916189920043321879254220127380313425772126652592467565226445769337576470666949055444981109224042968643260905974099668155132821914742374940564556961353774417156039071259063544237111645677501942707445319220389359575526187836119556004530680872359213045292700841069747545662515309941396007696827022596078797283032889944955222198622944551277238645982149699504525639477080688414869156438240657229726276092237266450003491530517795487703851667923471150419309919280675391756668229782959380122123969374488030341506530994956696248556946699092738625972907830853082770068131715762853892865910537549101392318819205421823818133180528640372853983624180433640905892846479577261769219492818395590752462762593603443426714601587111930034106603590972755230125196077640374506042466253359886471544146337644506007414432096888730390204964857047409914793823871854943566974106269867631903250163782109082230985211113051209537478504499819854354265981681097157771367673844239770283996573559099680718611282580841769150680857811656337411819747992649585723859072894835585990529828003629451026703836539690182156909361175344863002516966619750076877222822691030298951928842091183552975020681869920588545501871656008985589127239065846575833404317994443859166846973424962299166668664453653750669640805619127144341183180663732320188676089122778924856518892798972068020811165076443683528940923642621868746763994452035093545297161556386621556266226923369875217765504918507566132259659629221392137840659083692250691493455833136859574497393318808733466073625667899569810469874661852281066218532684919558975148135996324281447716099615515048319099493490627440074814398353531262590926050297025658696362902249418253172439507863824271652707585473696541123457050099516410653961421144670768772791992210339348788205927954557316857072984696074655732324876993728647292512923294203637103512138172248662187850307117970230400112474427857529221507789589847946562672976201860508028456356728272173412300597544376824870854180064408981032707344173073918165428780064068141559088949205871739180009340246906242894212015999429787390274987053439584698671338983309252307221685049589135254000666924059742423098333816697528712082820767832132518472362142094301522551342519369579287811688658500495946843176963305915103617772828928008170937113962190531510734949449679107273473328607777672363476546370549422706011646234175755346069861594942577693111845429505222441231502322823622641372739986708873437450748131483491811881567958365692237928113758772534317713603577667932124937067216994554861372659349425967273122693435990282849101580678951653427731250918187491452331433644751749269230714990027170501210278979832194927720534995667873841106329777199196030300803203560631313484539614423775547092919145967137626665269964049088282521141849576259015880881088600607392291973358816177318608789303593218099704996684354048731442005297949440620230351756730195166350796698165818180676541001268824037748191498307521808740876501381997469804826194868710810463900887201082678174903255876869718094676627658925227992723272834765568942610441562022152449692823898795945061891731014459152835355666672143108657119227426600278823212344187807435328724894844902467625131765112193879974816460569860082828300468652287038826283100192145308008638269198876599522561105632402362982731304350492857824259146091060450838905658319643449685200373085673852077267066430262316460789285902054297079753873628121283653106441613685223578113964312194833493595145324170623390938464898856706881555395686052105933139598349220133782293814600885685172361032264863240786141269837902520723855733109930241084545727283844629783036994071706771975176036464046589306098241491287359716900285014769873901234761614207366594465328552942792149494148544831310054197869051092779679913889861843085705874369270287725010128658388572002013347291382034198651372763519044583177573724060725554628188610539883335108845612458156289636397940184857582593830384054023428494770017369388658559822946204326730574720284961576908082168273259089142291925896108217426330478545233827741783497753201278682605859336523508292948517374519414213018479016809710047763400835416633931421774062782324757824198761704851705512069948825786478144753976494690226840609196954824136715009113198463842080525633170880278076576146564363872721568047351763196230919838287975744225658215912345853432902283717336796896091823585157062008496882627058671167543951231361894910539263940530750169115385371000768952637448529352725804708206272327005267816683483771160689189137347435264080582488071755884288824472864779916854647882038463487333121358184492094403995447698295143293555406114432467803641216584955892181143762591029529471121357236488293453602527155098739452355243046249983467209984891385937544802240488016205619888326874190983621836903333137606207107207984761174168291286653262534557608915820527732270463241190082123070234600603471643910098808608377456119911370623686333622107753843504829228892620586573219213575977210928745823296915907769828777573690752934175611415097553168251554771864000897832846129751418954388513313722930252565300814745696880625457746000610216842360236557749801320883511179953962759112426690441215276275582756141396581745537551146934880184637657755905040384755941825293274013234084777661356201942135403890901236938258617843109002104629114008196999518943515522569974618481310720356292650648428429840555931326481625304413372722971740488997939092307316156621437678348767055810943992793727842584947015395602143743264436355817528900601815504109360851390873853071049429253694255922914507436238420096839812821947374682054573667052189789889870864169455121244827952776725758711620126256156376457555489861833673604951698728344633517478426410737860279700806217638201894670896664550203581783556534385535415328824793818764217120524281748737638940221571717418748105419119441957881751823498532576132638342266060503703765896843418941638918536280251816338312888425194602689082291658340853228235140835360213429419380824327080183303421473581075534131005381049981757070815160682156084505489771889638325831518241259224702451651384245366225873032239938046577955876677459254147205937288840201844223628812988260752846325059788080867478072806484675601739589242452846082749132165016441213997578301241389572989780948653552526175189856321959357363486248919239782084297514614202686839941592767661163597322908495697466989040278983748593965442021485059958767113221334193410726138033748718345155805319548727662778923710731583756360746795189641490714584001099766902120187307087286024348350130539823602042935820354410601914513862125204938807286563221564665836917464640256780483633924392271446671932271458933216635981463580349179296450138744619247232420564254364507355414831628290118375066561409064468239941284621136756044216518758754582098461246857965897497752540530467189484348428672113509457505604540334916038910281748530373707633481774617544808135801893762144049292588564058489626447875572216129536322232991843397615173880312244394533856841374136056026228115363249051116304286577858612797441295997000458543809898954403034202387914939880917086533254938452163182937359211154310283930047765648182202907724362111163346469692407162449998889892580691329721211340062100304106231413581964036877401276009031662272337305878720507622338081654502420850194741889811010166940448908698086634962697154556961369806076939783814800447548740791210163537348965425017866361904826130434030435327131597330978955792052564160847693317526730006330452396597721975400619772809691753053425063796673878484347502099167004828184271532577551521082138227064089555075419289642840237713110108064741617127463521357895287591226532352113784138617599037235730772273983302036202007780200324665674461643059224940055715662466379708192862832312335628207457201644607130404715948069000290647952319514998070886457471032425137056402508052955411897553967387153715809989287779356550643366834296843155619920801484987205818376469226569480274926775851725012951381490529748553086348600946044035993165473839733489565213622380728831486522007947822953772029384190395291254042138951367108776932181529389468243938871505192494854625925406419935809353746755508059265454354944897608114061318669454694633755052247634250205110330904220096206454346624860533132059706876519016659394745405849040436337971747163718631379591333085551104331775044593487001519879909530364420152725351221318046363127584573806351622431233871202936011951272332576169938695395052085553344503895288661203425231393348213962530873261310135142107127938421360911550707407200199824135962773756739668811040554368943013470880425631725261230852930653393569171388092755827343902168978861695816314267124112905411620373946257895999869722895827505707845148421278303213909828284587697836912999944704626641770359118255734721603531210294119969866092422957623449349878158758532509785030193333844726783444362432264888795207154638578260565677935095553803944565757972709389640534564830296704901033887642833687226574891873883960750579414456858242113977589686514721147978762193212933522756842877692359569348162099548086333406097354432197940384315088789770402339646859345762333435347050791689210656196295913692947642411386124707710291653690818897706249225514078569231968108181699527759833469899745047090643440811085914381857264081710361606524704155833062125733814216731277096453549387912294532684871881372883686305080629167378562453294224550285403864391822195228205549318045887455727310242586609668839475981099486932149381880671216584313197049764393111204471662498695208244206850814484815701362586906731785364774770014385279681812408232996453177335161800784311616076354103987798582413128745644140207730847027390415145831275490190122434642722252389297580808773336664060503993142300118959837670675269289846385706853769881126217679649178516659599114122782051354021679755521215078023147236681944928927258324794154783432061565261056041633795911381666283689101664029938692210101653136941421462577151492809384117119648007115699423162717241678300806038373979319404980257132862132526794422047305191298710642843190867523666385471461347321277266000142144360124696058667835094990715862367697576737490361929757952294799740665512623599952254579267330372878546593849604919688387820754754602935506500512753320559851746684276139303768730667552586054839351110851573783906317231568729705370181648488450559375334565663397037580277091714423668580280395214591413075614806993009048266806654771855138794566110312068995338601640446219457494563122941780122771460572075325178363590084778532990486151782570224188624147088763553420487583888187433362683176906574381149079385775515951740672772196142787821340330994054162540714228070912287296567702961995526978693549211938890105809776100053823302851126182167201519317633678196251088482601230908014231453771167580836170872722278716592067643454978474971618653487117223146047314270346428425015111023235165831618163071970978411079650557629470508027506793904200521971990337792628168883568374353530557958486086279587201126187070017941693898110912477056119530071437126308479931073288434211153450406453385111585545366457636646524111770940875093972738406481769356754173259252418696786467088624618839094987847430002099522509263176064975898481667893531277862131283426529160505279379551483908179179540759397265588574617364795573427117110333136155616543306832461195215504094583176914277329296680010500710367880022566945422277037513559872481087439578021437181835401718201151377452192751911476814843023644379883072584063876006276306867029985854361871332871822388079371283326309151324841190096951502152428538142312647625420426957770012078469106297040052798975066198370437217349696092230831331052520798238056653987721954928688234497436312765191616078412255323111379129974028924994846446674938040233029379887112387913025813313102728106501151123966711001143456140708122191838109039945544022999820624448948186386517981167038560662418783415632070444893315228088104385740837079560701400714058393986852387976514358882238056903710423646077147783290542072742486529830970705406718248831024651776403725339851296377039523769251645155994354478487951150962817173018571654956242538725654675180258683934678089580665259478874943509132761640902532416407280757952459889813109590941524202736560027455064073877506684847342528167370480588691084500530270477542583055894235992437125022885680940521605324997738019843439680213341637605159572745649825437119022477447430562127570078360761018963539244673145664513080965377172345990960499164404483051571557121887932508602327952048075802676535137535531019407654099272522220421895387264675318532071259667573991873880592491379926936075329556958077696133147022556655228537910317556438229011580646235515112244937126357884966733137882395065864409768774745967488970764009632234920407867582135280941535564797705169972941469861303951154086521632965641353667457740266959082539840992583632592155459472554168360839946878107920939617763903183631227069526576638544812486504922357463989299445610250228321670809876429673193465021710820889145352888609361714188589604145797782099674354367981746004019980296774597673394846701166197970380281491586779589938164689269926946466153954364308805225156064655256647396510775475502653140406237947715520282278031047509080279160769570040235450159454559777191063649855208507968302773425608579135451868260312510044726292577616309098278221651281939643558602035682032057437251787707480452083636665401917730229985699945361246775025201913978697240197069858992455854989841067585548167328672448081252734523264881882511358793201337432351120109415500054010455086774742947418366034059999964651418601767343753123309208710533406455427407345252164256675728938367572175349987082584954531333770983593350872231451618106707213966646584464782726120191015462291889927688320656317598294357570984884691066463125747420145684161096471203434650487092541230830656730733141538403861430306740373965935072064955672969267281236267616060554885428836727907704731266173662206349259796480225002766621599509523345041895597214573972397706488082832004702677572776440554910907460207211703384805001577958636274319947620412951837041746280547018067161307697945388716689240423803864835267728191428980062597560009805344270002206878820391552419909519949481351385398174178275694007759162118033914194583475843668965879302950655182440758551920224349392158070663192185208485977625123268764209502686624486214803722431081146925431758284777553616772668574344001050619291429964037444067191685400337805356165066792847792627886825178558087324380593062331626350771738300916274099563493107752675764186614899021247950640473480729483316865933979493709632043098619524356590452223795553230954182296069424999234696753398444461873197925184164014767725818549995783030502979279404350437627886392675100222925746117364310732377006379965901956557673187297595242327851067784884111923589269178369423266183566494498763734200131194619873903329693558692771829388628789651431017296939296014778640451214045630940988963124583721317991321051933521266059233722063372127359467909026310377357329136198859036955924165012171237437419168724158120498062427107210739301581017767488713081324622982717856420502300788165789904899141582113417468400020792953646109418087233794775789157137582937649305741013530179433986340143413742501011950971047006403098499956151097215765696600414960324020043356514281445441269407293121673188902111127687695001306176919278981035290134376844513250139754992496380174270246674189374062529631853679530953625018569609797162391326671871567140650011071708858353270083831680222723526667934908222985424587551895967892221743030071520853564873727930849437810248111124858771525568280105036058520337680207845662090699493041296161806851118062626357453828908014027101544531734446321913073239759915323789046970159246826679395057469920456274524556846600604943041745883933212897659551691208501598600566745959884037849303796554579422595890289610499385947327579044643741590387200281849989908002945071868981285189616139164345349252619115892243571377651411783869801889570214707748326550083521770745071841556132006716068827790566845698245125883591946213192567479128738141501975852471219863413529670403105763107316137434605525151234201697977641255428410907445557121416271586741463781817699939874714561342273223707152117963065829466238348774880577187458657644572348087772748490043175484920834321758704834921677259051121758635343866145844492521495736683504092007615107502915679695991704477622273806797259496566848461794079503469721347323228208459756954259882882717715046248857398058047781786418950307842304184802655480715143706364624614144325708282379419521649395021074162401212590189354031376176680025954886310602642091518475214599496449875440536591542877405511100660589611488539038202716538461465456656656592028382058024763597851798475881483581828249954578022085138228857735717198160020634052061205249646798104993519168271838180534162697762845511937962380717520632762283570035255663658366653040747214738832109094291468048118479565110287152799364105006434666929620213825975031454615229338131128989704565890843493480722501557656896649798366254020440730679974266389459741514090289968406052551841143095795259695420582209213867316750441258206593878095430243624343473963826581043579226273312386732048458381456680783088001880988136362775677712947186022395571918737342866762638330247197821999516309968234801780558588109836526278982994136692033469764805375936856385476941374613084152426845330970041740467620733700096247142079161760602913184224218165438435615105420837436063690424265979694881450320138073808743243461047265149047625773808403874764997623701943829849255222404073262755143348481809099890411852549370361985640097971762566925660076691558974121017233962547953980801950151108501947695640970546039945055362615617858272466223091499937821259307452216710718994492522134758816424567644501313013052901970885695430700640197613834649527584314976256518151597347591730219155290457273724329836338398981459789830335721711598210718461100359774369003788961212628460334876002570805254569125477181445119160365042004234999265054365539771836958411659883148772739668768974555321671845531757580247753889507250555690046208141746571044620650047279692112596684950214416500357669356007133393649608805257956746658743517548053406433705520487158077710641838777483477619425547505975865832913563872760735437759336545822286367235660916931960147610030438285849102146713848696753081120051487276480942663691713975430136535069679106867437842934220880455532160662395230055705854932246060693219416524114563392957280405698468620583108749721999072910642428819387701109861067588509158651004704447635869799979796475083724875559135115182302806225619911539035555448042432703129500063049649484142696913954817007013834514408312954549453076420863505192034385170977060469599244840972949425143729904180686773508070765477448627138249618029795881936333109603423365664591441177980589093473919498786635776512751164825647245486881774757717305031237069185715114920525093546729010906059759327629400952713058759409959893710682954513074055737074192731985119451886294198717851134330545292248719066606913335177546550932867341569083222892853216564148294948889854613620058875249514402468692330482117490745285538600496238121837376082371745191167764813708094568221644114723512741308357325769529196541204287272578627476528008639324122120271853051568179844980047016995044275147365628395098448224631754586845922050305528906529056573357924272575761687746822737883749541972707022020619460960891790203072502349986814832143158439468708776150148220992137374923033651507784280346278447225234599817868749824709410404876986610112892279804415570258783637119396803444333844549759428051366936391330402037169980692004522489552912175330052789986071026818002834899839901375475098475405920824738332811138578932186584028174169981404820783403102770871084971315427644035677088619132721814027540024403871747232200984950832280252847553224223775729822614397794998536623786416582363450878693283670906834625767639606171423848732054199003320081883149319928352175387597351538848621442245045899103410831638546948000161363388398680075774133442958301627887417526873660538389596978303394907004381365438888695604491124282329627472662085202563115084866927320804979644808314470284914026413830441131561506825750002811571491561343280676499392708272158118502558388698491859919714646716822960892399171624764062084495353926757337615376173532872112512497993561078018379202574995226171471993412262095001645284189317565386884909514454020098844191086553898484433430530053963917424689314926381314567244928784254103292413153155643783094873393774067645388140729361461275665748322945439826607500182806855144275030058448287878543396123006626038120330968177193945715232614079454159605320486009925488248256898406318872847322588652796132379037643644353857099093060059522408567974933263603245230103550993095871898692954065287797166054864082013604717189942756323718550272364605232156637218654597948369983652242949698124002902040150483754658183279381271024899288640881855643150054481726000035134600516487929834836104969684247903688202961261868943948881218499886812416916767321769803648964165600914867381189835901008013514225760327932256990569287860061592481282569468645532702979125184675912290421931866762114413757294795766887890178169180358401513354381843732595867376986096574481979804969862527356811364562909950246367596290109087028046486045518507430215851959975763457929736508997328412402507364981643146707809033548028997282772652574788620430138461864252772586899305905653767826484689298637451212961453733330394987487944742080899425223627979395928505046125953295222839226591934036724915939308649408601688202694222258627616619294368334373321074035238985872892701206902265422209565995085762107710380604054904585201315148410248603275329247745382862035868746185765848777851046057586132091168034060566670935648348966832015379282809040190144908704707445090732563999706407961142947127614320421300361038421708456688091381800982603345912367579216652209198927710352584480778484181014674394320886268311036444539758512625884637316291721031988892607362520179282388366944739222909022332143202119327278097557351639363452837437442202629292568967212644749170952615353021306923415793501126486970815450575185236412026453080709446605944475104561555899898146136119878117448206783295986098547032782475188066542098428243763284849403651069664071870691319805054796926197685322542350542660930475369485340155740896564768783971485527035126026241723065160674870800318566661943298747256975788043447738949716927680080426776161137631776257892585023681928479808407252159078033808573134057454295558849873398591092533098639826946290231450979482200259668681304649666575172053213206502153515741359536769180226563155965033756700954948503164626860222330885191812513001785981690048658131110435403888902365476575215493903246980199212846574649402516105435910402456964422960013897576914921936295572674443915502109730417193438335911883673031194807907209373039227727254665472677088514819100732387698442127108377295447450676285588285641365557682677169805423540404902294984905464394110885539854614213408811138360697203634000977329544681614814559859119487464347214856131796306101812066026675119715049834175225460766948916810536717607674710669364160930123817801849611256205250347423671774624589917468302488034716189166487945691315948828687631779971625798980934243491931640759309934131315299185271114914178327912121510345100033270948760456231744441482289163540844054061243374108902636646140533885313652654612787578778202205268048825626207610030921358729662163875248640265075902345543603496537552472198732358868648822215231533904203818640520095152209949793607758938081277443046574909149586660821927464965822717824274723861129647031296295281587332766614950422512882566926754234975739538876832561165167411632548987148544863061891524678972508866543118240961357421141544548770586866127831549611007254648596317693678837858775952349485487638277218816372881692104502898657148874842772701216958122180666457723248710341071506867271376119501707875601958017580114957989457336454935543806130686286280634737135313644509458261463124629671419091844329366643184375717405350612693615636988375957883630628055491063017026143835246674615890668048340137428038966099050410303926483773510775109983562625457698266623239735081814510995348869439468004107241573737988213326755416748715386559876752220258490912532386612366597083641213466604111085929550950725807834030572926957584169382172640987575941445236106367135717076233128698502891549038139605245405856300704762497389743835930421309241904713321766863424920042215325157194840725072360787213687096148080859614483198097197198426134038325921013775316643035892561411160277943312177317586925190007855977886842532494725318577476113592244095535696404948395139543269499202859696231948267158622445124463802940626506707603430155375943165519433640645583448858234650301428239774592030587979889654220994833736003823866486862114670876117903058855937277961759980301336029807617853757826413472856519512161794321125421430812762301080342784014610459910635341241809115617832133168097514105942676453501220449611242975285107271278125501714547673530185706465435865891722752257338292547331338489834853764673533573124947826054816154215316010838330932751431783729878151233382159734858916883516428404492088544507537987469975727552757623518882010387400201731991178667567526294663854431202608468124096488395537532382676499989299520373820537721984476195974660518534277634104868674525083772641419974359852461600708825874071991754828816541364588265657620952981690584332420810705712137104745606534135194110140288861476094047539051350222942168571242327092695961881901903748945369487646517063631222267703593441442472198783276647866785136734071491367628474301952311840369998888595182267139751947636186793164206785230371939153460429229118813262674383189398849143885884164227475394617091907553710249687376113948396216320964299651079428117943202728227694566973027939804725886551048247068167840085421694126362209154635872022941532192915926722432004501770634469361770362407613335067803435646505005952044075580762879064771669877425755827517198360780875435446160981627623197037139530534800718302069241361859852926006030482048012449151338194969619661681626407228516609550021990253068045441477710087404501389312421888864810583407899878344518332535713288945525804993419235323423526035517762989893833826866037433656128593166150470965380395684270323417943861692805566677953938024986629540634445715618978737333462324443461677611956125022110752573284548189387524973042579224623870434061621876806429107294029297572336071490095286919854563854315670775932188563222461255580009020146676852593002714466587929132748567598762931078314111399823326315513656017112397122578186612058533772974662777928076680101807542190172344075738899884790543250650811591713783769742156117958878078702711514727118962063396545894521391016228432895458095936871553310783408612005266044507838653698625901077160527026345260221891330218282674003157562453189524465408654012757605037451532103596795137587484313027683174921375728243405887710817950291656523789699254914729795353651865394826903722818035472914475843222768531056846294324756697675459645258273117751315589891088931138209519795855947312711175947051535911057083201745243178716941063661624344483326224273387810442450936611778581864856090187559727371950953171256018829087317986726834572371014436040970074976182273254081826761740060892041772729433359012814268263621254143877655443539990163603792887591039990786512477443735184971564501068107521262610775750560137770819205120402597013185776290704589379611041969322085669451391405297598898872026809771752534800913953528561631889377343622618904476147779715362527919659694377054181399681167983364866587890664368230752579032644818698329371836212732751276929218450867254817751859996190116022189840034574956420345770504290293726333427827274270011937467115867224470843144815510387252022784773919816785511535602339763310224506174214373817389004739588797134561953313192380587280812858196950534606418096854795630621803644751801840134750232866905909976103374063910094415638492218215725642136574542584187237506460902565456116295946462241497183274779885236346837923629877433762148983357706241166655964191830447088171914357939811798484443420578348324271879003078815582829993523911924152730269698135697713202991225199890401138305783542180626955735159900707459258060276233684822675362152739626902713223494482123276755979373612941706486511804160083913391101084060203217134240419479565875254930611075928794694050448616576595219702131435122184268072879018802905431337376884988123976252381074566674570709566707103559449418812360270173160708368500207125712053801959143039582228259222468119546454797905220696084236382838058616949881024823845469738136945459375690717047404508588507080959978373297534107438093256874639634436931539226923772567957331458778452168816164767194434268658192576407690873394010421583030323162074740394499821429558553835053077539202636391700982420490089647866034011223620903895943866072934793180675038799882280250762155293517756275910610732193510065916239061143332146718352873210138158915167482616316455105870329013913852054776956552271423364361830056473005689880911634357394298440657070322468418656521275394379206286326510055450277382155133599217573898330323731468665479146974166415132853870837398039008127010395023299929618328591536237031508798534813143049239775043027082757525231939547838008003519789515527062205735596194489836927585958400612983957573583680003388352525683529373744609350712974523608745297474524819525300005101307689590367163134446452393671173098785182932243819730279857275680221084610053834336139961710338082324542774684311765994660840432751874930256402207655314305833661647685490342732572184658504902059649670170706016239521364830753176649606566965638445575344842377384181125279097304709522715882796314586024457795749038492902335581288307089687387578988503420764090235592040776509326397572988490275861513350073944473109237478629416325564491425690303489233694699403311842795862117809336701136949055455943517450215148432315378187015883335191368149693128139266187032920988664374272856392037672188327501403082684776393483250537129055399164587511667388341037103528736335613545314602580640698840166162208299189747588136973512911225513573229840829898471312177869673486778370778102292681545014557303006978613773813599298530018966678080331718893299337450866657044207267106167706033287081495921520956343960659769657487310100535767069727260728297141131441544194477916039982000785144678857731311194908364619375106364414969891228403818404193849684132360872635976315810657949156776352674183554550937019202214226115349943964338591633664567304376300927661984043686460065110453244639377837151407261865110860985581100916852844783071721300911576548331488404723630153077245887404815950446264349896750084560854664927658028192892622119784351320384216504482656825887155894503411113235962321586292531794453008424504187385822114476765579534085607331677576114107012464983497445316649935157740152917157235842922516268065331824436998190328199634217734159012485143377808010647760177386837262844332058305073853932433794601779569066837536928267570656715037064468538574608196707061648808597760171419057610436260215454373877268766065656396396210891975551196500214019451173155705944814609269027606961229770533869914429562504749517404746739792054623072478911102803187901385315212079867122839177014190579970310196898309583980636672403216149985199546254515985368056146518879712469447844605881870833906070261387048487970911367223642536222782616206979404334114562214437603944677760637836022854563301145562250239941855442562623087578822555809434889325492477219173023660791995576345649761901140219679601277032307978647919346316909614548826585071795313002738140565304081559678444764860499105518009001430788731831168574131116412140377405220940083196892917768521383296081313955795159096568105412416950311615454110771781768985499570017435537948790036431034806160031729223053840406054865840153349675624164719393389873767058629273261525607464694663065844875110375501308179949067506861804443510276921912729947458644359580701365467690356230237886896191178934856389379800968775173701083149501494055434709712917939407073588198299586949125197001994483046295594071718030512800359700315565533902108865047408412803027460933081075466378693289532107082187540323691593471812899553626426982760214195011056948525557892515756096740342193881469373305432705703171038581685863568232808665934526789647299410118736048084348445125526066498227705907912958186977433051928452006418701620909662707614916683114375207724897904498873049141662746698807320200327800487837914154151783964641902111605590921270509137528271194213328650890533085648546709931678201296517797055956740619351276594607733431418951497935354721283123947129075043378410793967305850076840356970269431781348788003079219087380127968780992184431381448970100443401451661957912087522842652589380989700036158431789947329618279493137731141457946587040480002966533784287254296602809560211435206616717093186832745106594600390746082713583203401037462845510064203720768163460685459369314284272310771705286882508063651762010254722761182705269213822511700070761645281456610017837145069342449878434434348823332840703167964356917992952553605714612830014355378264752321149256572645095314232183707650299950704573034703526024074869883505475986997784957595897372039948830768520085063486185772737641511339367737118085589834852690885024172957000178301015110765840375640559592489041043430241853509705726687259266858324058799940299056553564641754017427760516519918164839815278051261296331521271985687676585434688438626312106952452641834864037889870918595964723368146012273361517820043972334382581541256256245949603261074010768248883755683817057480315369101626910974769907793693846123190644728722893285699880078363474869051311672409262512038371917227863233463996920746522492917011581645356381380082991225124869615988549634247677365279971571895507755632119969831027286487173488708850969096400324150405308259234195230376922182491196427671352913146046444230594503322958898922537145884247387060538919380056405297031931409322194342888142373216371811506999259018532402250217282496951858182678002781563302577779103320325352752515651829410811796665261485970615015963182478434572160370926626121899509023109111544294913322061209893562913511579437292470824970956661974689269775394825407395400885536619042502100536276685903074706893080895212978880767193942606863453086682868591490142477880541883662148861042540139732144886265507728197900126085448671343963484661370051361206581221090579178821541363661619762348455468035958278569234737090637322687400166760435275382749555280497824502447821655211012989100055633160515157017322431920807189204688313028645469757461198045715646660990249506982486240642212786373623792260787908256938483735879676207784827088236513190808072233706766176614036415947267514520561359695236631772721540867151623933086420260834356988970235770463566490079163595416490231148683557448660432646775717017333569377064911289943674721743402872630559992322396531841513401591641362853598561614036556709418239328127048497191310162301452937000439855940330563199605690547354168867202747087804641286305539804830301710965014178040808991729427232974585618381168847257295157788901126213801282189311022661800463649778854252553280855518842579990849389535961441012680033471529478791142508169452281827721868706698410731201437227809186901905761657340096206885932280441235579460112989574598736706533870287107205693059492523230281883849266021218471897705692674794498660492031731024175265095366109805801516054969026724299385348603881255060743817433051467477479359321905045223775354215752051414893895920098078230514340166651303046957877049113388286514995187235424032204682108955606119368665605023357837310495573542886994591598436592572282604312366726922575485280952854568102712501103129912645156347869839644001303131191243255068872775290539667063254877303559656851143583005698926084130924716740807157152870161417399371806690700704680587337690652728857115720840822118014385489598276287323449675781950785969042365531936169618006698062326921960916597741949303087047862884585178788363878701227715970668659132770376378110463437751524137863398758089482933348057238911668501668622549487410998908792246841154100221648669579050147723815252167489583822976933140364507446936338499848820340307802093055176611069628326780207407104103019294561424771670912561710452171485316174004739526215864974485899939976738654667480732927465212812577316841905271314828846365816793602154544656338590071588223439654078871178892724173085865870121565291309813179513996207840766965062643238922711167913072338767795765808510970059447215046915434914701337503147953925415797389522908242222187925729078178416188971070057981208418513779247487464430676046739670450516929841635272914397358873407924047809911086493655384523341401020393776559326701699279253886321362556397849434436558701910863131927100316088585581896144638847455931723398630010070822329901658373000258006397132788468981083075148765225012948609195270458505214903827976812289345730480412274583427644070582883896529008482914324494933009583993343501159473732090436943000306191093569104424859304913072949455970442820391417629753000363538946419943117181153164684124577152797922374740232157315656143422822953551895656084364886573906540942977443017260238689767931062782593690693097111503882823263394750314621531775903853496177891539372986473128226906427545697527122657307813796194125319771030919847112544318162211441606570628322074621708601856114129916193944343380049778849750770085912398577898027304897474918309311772168524820644653079450309004138678696179293194631255849963908930655645254595208771013120937486521659969870384578791031941722183832111494398614802264566386293819114014592933225631645185526057115777044370889653982931507353939052224576965108595790775754396748354264626893895052801604426249649881196151877969781770985803407426995217726784840051065870911076153733276016175233357342293119153817960809470282135010476666729129261390567494413804776170562439627664006126214406918190029423025353471162385371488521795221390272050803059427504494999832482379120921481575450566888442825569037121693467481368275760428500935907040020876067398329617655125558061794031289131416115178744769338943330966994871232103807444793070259691593517694629008963809505351581050324733416978690898251549285642359092278183004561579507625768491093356027336230390979157086318655818568014248785113905078676610667874202319665025892714168408046469345175232979056202792893584406104118617392272065224735189573037046067891895472777973434648962426316133400361228392378121807501154009533374476786225816607250812584960541795754789587515868735873302413918613494684006896459078725023641032068000329338352300886765183235030989238646639390806458465769757715944646885484668532090084817243290018853680837762944371704874979362739915233665405668580089666138551774892971499874893219384147785038941085787527163712665837239398093947720773435072706028661371194810994797514139205847303681077140686311817631725404910154119923991740686589612132841691954543649343567716762900770023528812513346921105778715777003310148332837671357489919799665006435985954928334439244217419942012268924313524981607464199970516436170670558955773445524254626904179253918568010289945555102964042290038407141059397566583684166945349473740659240149443985674937087280964026197777502416907729628866845807312282872347063878955015371499486057286958553585805050809283431063399111582477988377107010716566188266508337275638803268434258906290547989993395886961373764483906416343275394305584054344375575191548414016881937961017985574345524272501951513379877205376924523986411516692812739122600081724816059177732292794314202583992860783002445270184728991892498170229613971003342701351875421261972691011091106694467042081273493867274563735278845769031941357572807095907109026387657667689552861420135236790993072761288880104962638978775608911937827413407557622253583750489229713598470427212252451833533319436611318589878359525607402046269966088995384133846787072821164153649457524982862110102264397309289110273776526010489359654554893096175310325299008695198903599973475816806068385013988255357146436443192727803478698416787326844508970107642793120384507741194888007866350931896827410822890463560662773371476061429241148860265381343420363306943140304628754916479756107897167461039591428698732722139634884738422620503383764411285638991677107152425634764328916181015650761587730436120173114701211367811261678013197806429735600468642124085592565178652928572062247082912621216859082070117369713577607260667857267632856304726260090823483446444538237104084950044246741036256608537340419540397981174669026231141456677258752207207679514249090000503764864959739447129358506047327848007323213084297258256928794941764154794809450912163865801060970141468058922275611296958561347654345814454813802873364885961019065000776400364664273375370805347468291040415366371603589528783371943274971655698492311827376064202746896139704095452491010646924205951625267433352851228844884463690479687257087515668166163713353818348786279682204155214967491652591278574750214627884435536849843977656269804468489317438952180410382921709120157910410909692227351314091537945926230785405260526156746279108389222946401443252111473506962968960674313433365582845776594015129611077642881473453237403277687803685053033026521780245303484159306299144372771142555708523474223172116543211307221797946963353435814560509455578058543162839731176802932846892221627033966921761922590402104989546024299800784167387595214464351056981330048040005352867631998985678498083169930866200542581401875806048620147271577578557718834463169000134938575245630676917392106196247297107431430221147829000509270873274279543772652170177800779499270739407563476560456387838561842645624252579953735460237253499841568120269525245015945221089787231213304410332100703776696289210850749705506049009379621686860997132859930448731596658825852278952950955604980711662499878501595977247602223890931394371128496338432395371965137933499890277401535305376145779982992533084771315087357230377987212681377386879400548055429677167851634207765776458108283653298760268019526102797695282539085748008416180268955576059609794623717364799689547814443768817543179958026049880408391143909380847343394885819733089787407437347393761379079873934345376169007096683639513931106923940755199388909751902067565601440520631330410211052293924359189784495710256314062267785643116277681816688334114062770190720486063032629168059143035458849641055863983134059126109723170331611280861691661653436291532328384405020480320971867919575424929157758308437777545600219472293975673881673335529905382801073243246852658911880919810017451046820266087549078365696984587274194705757720319496436717481171511438508387697092261516920704978350024554350678470640786828887103494968820207237698109051620404512932447328005072240396775942953947934410819194359026163205498915649139496843914818458320641839266614112403431372714847290717551245506983411845911337214467795908503858177594045151770365231775372505973882369749752447314165061402797161529904666728621838472090332275776771325695300111095818744980115255649411732790270661900928921386104999704516315029120226037568860484708739241864075284069923860815645475074758055034931970287724528118184895190712288187469054671017782465650914121940415881384066421892326668081875176551316192527267427424651686840435277860585104981316555247080977846524750928570420943418531196693722600544967833555155705121843152937413962823037263882127973035935555116344025638933690395727769422393998036068711726168712724228883848713357939622323470603217299692952196044890136951621839800426783240487882093193013910019252851305060476933458370659130389854607929662052636557591045658988050622400112700196482374850059866372060697473888097022290582449638591531409084595481957065234392287832762148970046412582082662031137629586368081337193975660012643568089554691778604611113609959266578897023672435107477904879656840390650113502603457445124860427975920004475718678033352535246377862550049317952348578164031085046947712568390604841821589229574744285920241308112344902863354110322101573843966996033841199430726128127598975214143979259825266440456106763132690269556486834672722666315068961165730618054037923436227640981311824544224109624686687576792060571140781442180921476324341318012738661222256374624827674019708486942008142147092614420547833485555588394305798650024601219164446293304444984613007208878754017814947718406329444074059282959508754657636043532566114699498877419563771752097158551082169075377143985419464819450901773871504276343056953687545777434162365224858354597370954364584655130191208006854745853751769879815723944077259378304044008036679892530836857676921660447683203906265974464706373195560629708475902326440648815073244793170484646608429145070458563227683124031011081968614255579050638303416821447928885142304839774629500587165083569526706925868774208845146894012691735381963912490065112190809114887590608045767038833648132748389130157088252336918662534087401537042140871069881529424704606912808470441083265015401763204280367938783016865618574452456918101147119227790590708336186059258732351616804965863086967496406669764010332925837710810768124761920368623821869477093076026104776191189886809024766889721618513282980083881943324272591722645826146377431403781992963607883154970884731913493334442308263549241369779671513108544159503299998423079895560069272937602796865954746217992279881090498074643407599689623693691472402923496956393457318957060661485100109047175737667242426168469455174139542333997390987591003397639283101860911661492205890728856898098030342947314482543587574532180866963898200509033680341465802876868731042543042809300667440170749569028746779762585760214222800301162876066024688285233938686682581235357702701544555929828563347014884392805510764534434548983992025693494271707579637804252001621458192525237911913741031274298812141655321153742549113550089383605258958806350927267556485691174247767022611932846819310131612164179823937561777319964472486846837504677722733243353385317324926724170893481379117046841755469878305209399802928246889868829033598890633383069392037107763216817117020078197872753493479644115627566062212799212706711618244356631074034481209357047104308120296908578703045000599178047019495854550874835191458928587215205604173371550109346990361252892982780996501549444366937767448171915151808475912821402260226227806872446794715600529422705587712395640859511777676351816334306986058508924068519422236974643522238359577796282117089732010429337966215786995083037305235368780242961992765064906265287136466310952959759548687367510778854526557556557672963763954533915989722502219856202165879724443496019692476377435109450608382399010380186045188777516108344966029191406772305001019935048164967512248309443866516873246354561543987269199554220378037585313161450616435884644507766572460009333988172326370565325448578576893046078590087431271098744900007871680554911217836408079033081240714644055102572307200293143718622405755606402597816752891652019153371353006754519803900263992634946414163867549610847906263370717159389240301483972572060159780202434963728467207445887871766067522012786694878735604002762697382093106697220760482866101210121576451084751965323983820959549311076942437198858892924569431124788409816563901922137901272951408465653750432167097270466472684080789254175130646188960814262894155192495543274861759163556844394828878616018702251841961577935163823057952199777790894735385718837466071742113455694767816700887170050339605422089161484104838644326847724192298222036559541201889798680161300512954626647744363530462431134166549010531673188282058320961725298804158512868089780815975687789924509374018539778323563934198173752850976076406849231776030382075316784081986026130972155358540347409516585172216803052427727833077431354744251920982955752565817425630458649984092140240105360457347105637340209410524367582662247775599168750628582948274431266465815569523010404475090162589810382703031280742298469615548897474871132456470472784526104442057597291697261721960954093094127583103357911939506235785780549332314340951333050078831668279639219425914985775230985711908426664075248986056674420778531758063472908804316805063061814739564787331172546885540622046777822299829713149221868086924675768217693017505041194094889808549702411212137990119081746160353023482311268358654391198245133400277496000425384796311138531044669604546104872117178344469134590034397841611558848110604819123208405880921310241718475472057879785269805873184473273498718341396356558592838583312120560352243026757536778749576106626254016196651663158994722063064344053042997011202688765304649152838513860864195612955402917461884608823124591047579914104471852049360113778773099416773705296141494579095708289852583843071398686741777736186894872093194680401674189098052336208479182160895109903655795480818482805530032587845708728916797071601813151211177987052729291383560342568722051364661707698559007338092218599249724344739410774618771758603213794256513143551372679675960285765181893640731399417324154723958724131416293506529893783599685974149925335187432071808289643967253153425471262586832673060292869696604786305727402140167716698775565276003495559889267514911098199907370011399422985777260561878666356484191419202019807356304093972648267111255821221730326015575269977680816444617296329180667568587406393962583625303789976202935407906748904677854029410246397756441719036687821400773805769266380987287336866653006352961028649654666897765657793983346385457913929973508181066922922181050587435132866284019737838689875554743460205958772708139816169697672518632415417451152379954267871483800409742616139039296071923606204633540247550695019796123815388859496601781939634328026158439239502357613349545524591890403933235432812420903653150234213209528617940617434372701555861396500543135681081636963274887882695186917233723047513793224969921224067318266792288589660190022939595573783205471152788347638382477422059159576385249882607221494106350033381434018879521099725881618875268832463137474795428675893692154684966008111735623310032717122210882510026889959335576946499716665256364925702951275029357639104736999372079113504805648955523247056715143773521559432793472162277736496805462550243692754402404921625376989851014885083237220388936798141060372459206423294118535466483689083087585986411058896687680673632029029993044913992213197767357771692989537762771899909601154802181965393410425882415564168714716900893842932906884511329646230136226878315492054773441516793142047702464495152965498360440430449697567376381785317047583941232538490472108462630016852148500490904571212275571903914611788664992652340382026557889794593114939962351836362901237000021571849281504621515332440008351034980835297847481329583260661163804933605460009976566873590883749321755621606030020596526630301402386730913685358484316215862304123767706297349164902270820729402927266486778257449525735062477256263500744778406805812590492430071871555174285887958207401641764113640630226715318923587110610005358945205217436858239357342691106764819900419836456507721084516375738650166211295931947192685259289388785810328692551069515028422013749157581369750244831261671628899397302146622357682903957852155613809149152834239872742906311282712514702875739407940726139361448300175668381605741801210401902609661567732226861662646865241146936685929759223316688797625447445117857909207937135207152620761914729307347560486633160896971173929111274235494649390156109363655786340258470991498414324726479710924340016854692687784117374707989100530394545556305402162467860236418190955269097300489216015959752014079509677961573569895338756880458053032147975372698280762809127758503366235412588933622020680334982580877751721689716537748254544147997938316417028247243705017311760013349666653402394286060032339377277888829386395597234941427070638456807678885339642782790170421837106110020997743124699586440674441572136572647974053811113873490027470554516032813098270843290409021186642811754804270695079916560926749358713792318370365206268067969225285159585982720547860447663477743494468399657339560783037795905961012217883107452214060420823167398954653549060752061165252619183682757046429306850453597579362595663384516435784485962486560496962309641823638799391388367731385971844743094388774676034494365396281020969397643829559720659126163589713521760864899222927482000736955131829242330649043080950401816102975020615897557917115977225877653047595791496125745108116037057027252934259638507089775204659284496285415559056112292712380882604665224312574816432022295728060000327284146619876534697370534674576903930749718432919167939606507395601244949303426889948373456381948139244628052321106439788051087082791231128013470099455010393433268065276010356322619801964193956153962168671767680777661295901488582885177629880270384331718454241899487629371935404640086127292903453605014134355451376541587686867722453132503765822580290649295102530210752346713263784516764949686413546057504565891142681629856216140017695326853907560947134858442068178662613728735111099211526003553933109225940888054818835390916957975324069605523397530290655691002888972741034981212634396186679269730236142229536144605632811180614531635095486326619669096679849582559152601355189610820577084009778971260140126316635934131483150366506201240291196556921043788868219389184466874336070767607220499793701334539065591421304577745345086388455029125478176778233135600569475018899920056069102380009553101949797224164920173642181619867840014628970753143703334452916164030421861147727193351313875450351929304316733565678195770462783662019804436474893114248463967256400321356691428371256844198390290310784499410638767041440333582467712103165071429409969443826165638415541712609337726735340188380008520702595430303156216114612062038084711818059402127318690686800258292575620419009389938398618964193258755773069067969193908159269161683626236277094522841770610066258143853954583680340493590341001296355085104818860932067098981033382466446619693655389284834607133104377812052412299979024103618642136980877307247162587747336181308903699898928943917518794645593910917020829689654750834031672606355727869401384158862106826867768835626043630903811820110367765790171275660474243836389119684319055777030919496644888868291801473299900080967946987428064316837285218336106481073280822323131583709734456233000871613527346295427725090931776728910179219333855405333894397627315827881985288997324149124130804573452255978439766741518356849863055661839291839826993873156947043525769511101709660232845744964439995184209205394183522661319556715851066502480379142661522977285880561146035482633869067230133094277517037064050143977366724819094893524021906614782144340864833722703859763008002861881563277271927593615358820290703322091369312555886067117144165001002797482606354394251680306707254397328579619975145268326677658876711859388224786368379615554593352943377593714213176400476005470142270299101321322039791698803328992662074897657597734380653835278648052141080722346900641924560441035808510624846744552092440507598352069251495403277461315154885861619620846386534223336238603486727568145063276336546195270088321904725273204940570126297592083768325710458902247675242796267787367983891155673093106497493330646500645740098811396116602503616051297761730841601288181808701279143973133766190627427437013893354645898046996214273493829643168139213433361002895010127549966501898164830386184698424602740316279728292863347497846740195190317029092620597913287485399103157567446396078562308624456204853125328049555721920820730129385085792982618067172532781014950104472983237817146816968971569037048269476116693445872435772307355934681556215738170563800154833833325878986293207187165174329526783937304487382499539233568677905199886143915601893193358806230199537374677805241538871844811153969779775243694260694814362347985417082303686976923492009601619243962780124434436900801931357366873938988491210144045666433110030999683670300034102780459245525530188272643356518999086230458654705600342642643569377903972509510125652553263115383933118630811927326434687433018255942326228952762800063936834422838838771186108436244115981080600533438347214238336649848532914585860111955459530330422809172658534335659054156388048260577693174812960825181926949455953870893282424532193635792530335451305079585775980279223663138105464780571482824949856363639595446471216962378233354454146736019736364646521103707113609183657196871494690800865990424464694887682571478689246508317467933122215398553852468193268249668180194192547103903369285023430637672462656715118744721089976963391920086580469236088290888374175455554864455948959357836648352753658574150656427279024106951145275174066312875960279953639199781354962193576718877766342979854518109206516375576938375609753886362914300791442414883445399270180516347540135324145882444432133466715486074233176350656596467760684982504917771504918516560503692133042938537762992736839747002164382605413018140899733047520522123354131673235661036097496384096059242476480211318636714087510937250867530038726119859838823510285310126849299496494580529502299626052438124917588797287294654081323471061674320659039397042301080601782272830900926580067845694979531750084269075207900572049418168210152574345699602752612968001231647041426543177185468772653711974623913292997387958678600452314326176289093480347259460517223489095292710440927280920594342383358244126642160504288352687984613935320384905237784509152034379610631030488783964727093996875550890357801277819531315088545696213014310385547559639593795599662455531262445099264248821212790821207168157389824973868705018775009300858801965094188830193529884139853964018711503728869608149677006360669864970946508327105587362124892462284439851945145276654287626350905263244557405679780963341896136670087215031810288287802155988767170008284203300787119895265579163547773086528692759086144746336328718115990140946662240266087233501368303660170348599025458794110154848482344663758987517464465907369203354532679678056314225881575268394066580417559454898831125476204022585303811322666102079551247626885189550055414459429026207380207279650819589185961140750113590937630766008234041442691362992897155349060232636186797788146440052548366781981836458600872220567936658956197459556523651890981786742571980683222678798908826277693817503089552235254585967853444997546746014449268472269425113499151450021130837136143431072682766782002765228139674788157910595920151428336893184892682752827854794139017992942020367044972199322449234105697611424908640740016380677572867644786323202256586520272239001206517926456621876570861140603755897830352323949698165838160503346899740259190355241881815504192177896966518736324105298106589599627368385001786935268069673871877804599597675442502398237828727911910973872507319579479658258539784112179663903922529227795909317226957027122859414995759955095745629002470040343881216145484788374519865447990709733223088712592780611562468988838805770228063246001314771837586860421574122691367697092277185899645651141071069689701827903604046105581001058217067575603029084122567559551259909048004410343293175182813778168502137038524317551459249067871315963383070748426783988811167238103539408480035667779432913636938942375981834674116990280604751112670598785767806038423766900573847627096685354534051424502230240781832376656196271837751791342355569545841062266873075123084252485045643487169219101923604573874623757603402231505750183987179713333121828589435792535164896252063695576996124101046338658798446894578375813185932924746825506929842998607525963318124138156644081474013951033451605930583342875072063543138838563536325727045780863368886292406691906989987548527347663526233605781505862130626251850016662451682772149528775039775477169798818013897650287369326685682935958369671399076007604159105970874282756701008905965600624204081907792741131391045326317221672759554740134098129305470392533849196311905369944613267372106787377714463809297621381581658674248648395938212331746756163835699988142189238192410906530934558637358485882690906180394928187397184826537118231538253298480688163011302105896538401512032336221582354090937582980428839625631316869489850484160508717992712609944314461293595052845385285867148410063046442210795776067010460509178711659149609565668474117445885355210035138365725268001646658906931602150882174530778527777433542480503223643825588950685759242348536217197155922472813793708173207292755863465180820058734403919007548626505225267379477578987367040988833167552415426122359506280911958783908689537728101157717176182029890332317845358234634426713274093176684979246591023466359041571882177401255639475145344547660103999687000671090700277941519667709191793072391996382963108960829511845657779310971397656454265475821424406514116141107374316626864553255697702921359578261543891203121519556240714652138196159119335740995383621747506135114420165485807929163987656300484759078009513657522696221816900721498826317627584973711457573820005105359255154698372195306807814638117361810231788877738603410478716918637367979961811974598591669876207635556587312195441848135617305812839980930730806044685905999112520663952651121612725791109642359303244608469062215327980509621782831161720541301664292717706616553568631742085381914170688526077278290811523877078504590828869447663241944771412168956420709384830691551677539276875590931669542115841194516143981845849403835825541184320498836985127958796965075017340772247555562553477103055406324353799161976320342204082284322541971637674826771987777892540452329983624413521415786713846168959740497331640288599035725266958425784051059365936367433799288076690163345262403797800430750463902897915004801461489947226083003856224755349641981499122570096507778840154988439383545046348297904612004785255209097642261154035458662053402869666648921362973787811390595070510741010535860195677531973895587514186855262318198399682161149651252321389325613333415686675338331066293436030022121253114338311414137609175567389041561591536458403165320027286299294302973439061066664379215230724794622856897035647241868469264389952317422760178908450844111812132696116088128783496236013220120778063013041133403945925639943426551325388198028890832252610228486939575620076163023474049388986333564571548184531893439001186565065291879122838700247856032088347695598755337321053973618084855490522830271440958711830911094424799243581401823733586120941268905450565602111247719671574764525623157122721360349395803237945720929905291442748148039044075440293957253334739779577091500021854679216739577780412417113294721877776846658615570330148138835454253916611287004596458177666970486205969290651056598808429578734258759432191601865392896814877507973432488420968818924389935623714176762271232727775735212583811198032294563700371236591351947885568037216064652087902211083796253843136374209360356750356107970661904566483490517771013679992777916864056573044825248290775753208454798068240445995698076891875216385580904504377461486944366748056242208396423551983937834358459842598309190191764309734211899729004123749273309579980699754087063583828288190175459431555836581733948179180652530734176248818823605555930967589369692790141539652490806855940534446031050031819720341523892586461970900183729499675882414855267168412734518348408044498492297192434088266830225532298945072148423720140122448526831399395558489055025504523165190663541786500476643129918700025442827309629172164985213744465922790366532708135412657253783347228098073499328301717986545776608314493060049252016881394978252247187757512126678897128409684518188984929464130081863819448248546402647313190551998793121727951758656944066355517600791434377431538794186897775002085682893511500196460558084135938224359725948876386833585275123299314450311506519376633727302126317092556201983174504827184248035936909184847863923374481538505513838706365786442097757989397460884649594146178136803796508741988710278593259859260761604351248480452622307398362738820011118272413393893089562759181045715669077807278917828399738015507155616626806987729459947322536585013249580817073386005487943078183969954648157180063699474417952667461786945347201099586519413350112890748118466932637829479281665977159453128171242205513785133681035590234014984759054668817790784119357483974853936474787685571143304272530325109143903679046539059766823537844470851115884697950974676821562097712056189720958099198023819942083564348799423961952152321516054955558594219425779266153887637374422803132238189309711757549061897677350730892295055287026890963753935378412984643407765956737680317311279847550659043496827509885553778339556371374195152136960111305915586193127074276081239721051248009608349608360946281321536339787362881874230457489598382449521660118932057440666620168574582820586058644923490239932376419323720242950922935835643413487952001342012477088443840921308315267530476853282848563503077086976385974760391469005011030563337044579823042632907487630348330718360746789358636855201309455753653688985586334370982699673917288248840211198215716285071670031087324015987521136742458908124815510307253131807033108378783140785165029482604435864032192348398142532475022304963398490065349169931691227184134134146391482374552235499595826562790895066783286869793352329420755571225180921982395312405374381986230702680086997275498642678002517807598258973049692375818787696072986673389567535661338226546309037735895590341827653225196688161490042149747005372523752513081725849799610465426159783128262600731546645807218414133759932513422104567548970565432627590326720106306410967883343346271394535090700950876017136319964820518781993763129475281929171275363117337826819685101708847303161173477490480603676425977130433675872641424743864131308789652181087263748523569333141137293385051511409288651763515081965968820770784951733522278471664920457532746901231844604296586790793199652994962401064692608896793256968453349605686024132113943335569699274029989730718383292662869773682045565560772343113811476647437297661765108261442566593150966310246922676357789755022556531431103172817579633456939474735879346626803480324728645163080962607137907341533679423533933487322221922844402523514317364910374440096034061180182081826028470618910206250541619637215352366787019347675956086469290528609311581571054915133806736007599290055017114535225067531733152462024899715219435251680917033454314532169636456222088148346007983555864720007398568345555273178379927292860186944419090486648931914488599778561511329157873825849752592495833572239250339727315446786768406361510760445056274102116182400386063017609390229048632074810440870713466814107282053676267371067970553146473665898411305898072645950928319325007719245940381248312698267420681666405774960856236515318538853244042443977702119602323617821694817895381805790454859048701383880962026547396427440612635318607636502796018792231383806000435419796733194144287348653262260130409059859984143013818395063569511412697120523657902879762061854905593929894523201311048782770430659294219378302832639830252939108097088378516814441347064219914190987377611157158409737357750252274710832232986366057443705134685468234586106791521879633031732371106471841474211043389524978591858730658468603578772167647722382200496456195065684118798372939164151155272261167227792226750891379843347486964726079505691248756264420066568127152373745100296549319468223771921316311786743056318335550123259761907146165739278428733997140752036056354587067234122938867309375241017312911268032755538409970484841771866750964443304653825551282111265391855542308123741355511889645431447047326491271865333649630705151789288017873896628593878121209539158608041709239964432021981846627729451769373164497123073832770540732749558381085542263364161192261335318282838793081174955963990220044645009549188402303576896269890309042557199551068642379286518911076418153610071012165175503459444940688320385852802614853404503994586042578801030392984643830021289605047847128173466460662323720581360258664946990545587420482909042256366404832287535058177601836706991503435402329324561089154994669195551331079816034034310673510601468678680177552565514904371273799180749874874518077877213578317554894726960474736029207342907951170291906897509903460726149800164904830877310075217582742285437033695718366171646603152731369214598544227236377511394725492669141967569785806674121174436976603409386316913027242971646384529522211036040668480528383720381996908373124233096667987806598626673490347348156124256455054068987181110202211161542851789555812308348783014015727924863365032843129385640931093225755833592577891671170251337655853148100555938156091855978016072509565643352858785183583580965432921591803896055590175563829690479161159782691628574154140330173630150839557668393902604916383828982857543391045039504838077512303160273253037195148335625476168403303173984893224762470693454841097727345405491062687798752718095310272880610921865893543399792872210857207080095913118065507419289171088937934203214487191640474025809942263227548793860452414634956535789471980713309045405937349641950980418638557867530252968889905061487121597819135079625227202086899142066046254108056131924979379946207734230645023232994297776545131273884451529305605256108761350680687932811286649875258903786872929106342634075779135814119886807193748205175062179994655043182936071785345927461643761022599988980294504995159196769008087910793497229842073224391131461099868199637899568152358674656367961327131924606233169395061167531405236854702096015470846313492528292265644911637174560595368286888600457995703840940483156111516979672741022883365786296601301149412409326648731767330439476847054884950643515529360698922888304110250892016617861827329796430677850650917439510784938635227567722427710557514937554289608238556476707511693913694183082043893704788189260203286280433475110405170333017184434390889940345615549594550475452857555974585322128919417929590594949495916173304816083589089151798232360486359843111870094654480355326585584130507967883607065143516798136206333302687674342168612498674951935963393268983692273694491232099839011274505822855869719186916409801984360551416695865378747081108493019690194232716243250375853177142394104651398693255116781111207358300137357821964374492636397494088744158658371739017730630994833834535334293078339613409428864455841490565576383512033529331923042946138853782229062803151637670957400849144231540742860933353853533015919093953136153798788933448192945726080820446744489327395759036026809742487599233337084562969523329003010904992309012060570439503753813257820092895359040798321138926968006914273078103636116368621572182943196492165121660965109624395956046019117647198866569600729021942779671026677249733448888394283748440556752483615527869890551067155749037324029842219140335738515051669421964782656187066924578286799514668382045702161765875777504580962178014858957243409146849632537122700718556059053311592315678945941829825283663367987991669314287654024417560647407401981433398473089802253624588198773464722767355475204283666454263562621613988051828298098160613589564399578637109056298706825671832236096530810733552464283889985203316803647983052348185304488345185177955149431740604122950425112990537308892624973747615000229279076422055277496969918207144736204706747854122341307470427648038657888100235879996859138923372279080058584674047959198037137770903644749196266641290050358197186895947448236773507690015192909781164352031424678477185378413408537324337757452069437974726965335808909608952338163893616123089349352673953812110322380798599977198991034602075055772110205688606002307532550471259796805766365038183147952228093386223857321933196231288280512137225045562320356829387017560253867824121473559902010744307391427783135802587514357760686148619033753515850531306963101008594553192214677037381829561914824341157218685941804169528073693304335152684242751471846678155437368939106146090396802900192046041971955769554671264967966213191972922140086578703487494424284786253275050903903198019472760389612012511172700629690415678076898826715056194742228210568318473182576369719842988463000163401191150514255385623877418434944470569787543667448412567072622663893629952869050853787844103760796849196894527345366001817364242369831684628336116356374130123735117088353287717353363161553956296605714368586576160903977935497763931929820047885231926511899417183778573473509956698259703361729850619738181656708056958683884119711843419640691093264535421549482785104346114374215149807386357116930714994607445675444359900984155834507534414879666024777113406801063180783075063784016895641954081556376307238112842792214568909129870398637356145090466269118714639447130889753969724589886782879790389825019094610118679685066015214052162649463835554517527242491962296452071169204956066671153833225286662067709003006892219287895934172344822604810303996157584204146384023793991111236794488709403283963823555103080489134394988656699598947838348076165969884200214231461277762418117962336306371035121793376642578344806128626435817135965733936721032697243181434890327269284584818800458330671707394313625720779209879280439692676896468193836370164148266673271492434132798861027045807529037446493980515446641863559468573269152239304109287687958021128608688200130767819254621098873851042646297184557389702029652695939336045821923237074495712498071169945879426981724693100497527486849900400470404232280200785451956020882423819399150804367078360748784837712856465914707848216627472982070831793540503911607712622411456108223763324700069031655269577462152174620929001289992562341501412289309727984898156015912088648437049314736685869586419133379429143882817925303800710974098825259337117151376814793418835987309648808797909221329267791685822053546225029331431937734750340560112005151968209072480295085217836426880723735638375369126855289515205825098532191792558647490913461202546150368062648206788208996142688526554894910657345282139127171218109622865229764663538898885364294101917671871919190036605787499910186019575766414248570681951732526879510516367611274351550469963490348332232802468634801280792352882817500603660747760024333417156373306932751646829220003862029130245329586417288749628269017341439804862072880129300944532139309712271136729879266782142337113816538109757592366048383733177810165964562613275357252632987050625541662230922227833366723106432742414421206237908000062482979954825843740220303841414290026403177851299426895770850113085039891219950951147269916652420123625875357996011995214204778358769196214574634215142617001544905423703593521255884021362205804301875875746117664193730227868543953947993819066102356512300068806008423463360400793207415265609325852134702369220447675728850795718663253362204390950516089397961281800637337410623218017488447771363035984205325926236099263204823127367824869862156717611250945881371445915566217403990685552584807133613967055565941602122387019036302860714653411861588998699799113237179053183013262855754317302695964786459243513683791957912537881869811392926459184823540441087762439115680238111293004434006010653322376312172700593311879689503988443642357172219665935558552337917635681293603270748183362192866990170387069272292661994649272687928229871755652682035748783593240246711428488769461026842488245960650702300076743245133481628629506151493534974875814037867333436044197042913248693771646709673126267393129812259823063454493734699544052663580187380010357881452970998202128943951169743991435977815897255742974316570798327401433880769590054809277282434985903647988783377890385106806889506316222553505561239382171603286925677193534619940208714270806277749508298603299356103863885310747791717895705141818175944646421805009104376123261001875552469653029346070332979405935874452902242661182909408368438996055022170132412385830754467884431739871226894010390897140849252383499442122177554993745299244106855564395441255081525515944232922401081343741315977366235337689654162106218647148941707136049764694115971649930463905646261423910348388026385389435671319968554558807235508879431862718391093640557088051566221622463878493984234675284869876289727402785647013062382291883331605671763994571656098317739086834934831361483906514345212532166407138608720610172962410134944520500644369300629649798134273434108676332021522897856345757225004520897930200617573247324580713891605114964853053747753124712735575869321946638221776286645039650849811902316441855722979992437978176980067270390230677179539477805765899482200821077278786800873967017669271757875182115694983827343591875191778205236032138791526465987355794165646316458988931711348798880287845300960351958888502051756995429789443714830463727325041722254236515527513520153730522970652963239364322898903233254906466930872540954111519167553671191058694596840447465419172745138974769112386768468800978455355155203385482372865056261924370672837954431060713918170830054302621359646678596303967081094466895222506915081181007785105557308945745066588466916969125676447578337019413428475889752368730120293695213561779365603828418807900121686216343279915935047951533456325645741454079964642711660938013815427189484195166146808262387438255106289624237804654617977703420752575144893350724947164537689872673127277897287669699048985519299843548607098673468280322767259976065034924356768224227940147474711402530034175871457117737483631656960909891602125866740767204379930191053740236657746529218657276414756342826451083134273344571818981355576121443555963752169492348219109549235222266322690673448513985795242982390810974641040038030059099371901333865550528552857543728233160069035035069694668637698904063897737861237905139900105408266319914531065207760950732232010534426104904983642511410206449104590747352410918822625807068513491023161768701876643463880309713230803710955568448907472187854811517634521208442930429631709937915421665010614428028591108040499825304927137956654812352455203301643000535399211079098429268949570786132239292918125970731714112131435157396004060086016969201063372530967975930456619962027575199162797115625361674728596360613406801587459691465173612262709803116773085532433491722207783856723254353466802436820194999960822722837407922841059938659392657370323055035433238489617933822811003603983567705872219081838307245844160319704611940922762286764265684606693674745116420453198673924077194216437664584053044561658151267837777039799217923664299352927712734255554864275317241873435279970827311171022008530537096579694476774454870912185445252747190478001359469509720347126411544365307333871402573153677580096766934417666526686080162654452066127814194554864818499531336702358236737616515906403993845551171543761861131951498963823516000079629199310591785452960707836753049138076274122452358856340877180777765423529862975216265668339699970291737800232090092727550113073618361888655678968442395682301588707974898729579038440011792519861063637741124130043597090563606482941616951167553673880174529315409055771798573724211478642622511570847901798573241628972262644655360471845690205202207257804030260474900667671670197715020093454860857268859853595796278431586424905299001185229099504434205130012952115148163828679845350619319638563874533700916108125634034865457955774947055541184348448265858525579729257685019059892341247955114565510436342806377474115596339993734849151338615664994036282788614294994695669540867031671289937959226442806335061979658341873057343528181928182623192756504919291269189627522586710980798598102423270376763179716023945362596376963574960068760776612605355931822995902843546238186721228870408417582626944347826843129137635667278868740302238055885781731721960540635416674785597339248049391372003229673247520028842574457940053099070220349185349665369291961264315906566814125061014118303782265726935892732913985339519703989569241338464165227713638381523240378185772787917891061528830469885652464333533569851847922559035944363471813150015411997188654421831925608795718861082349935521844015664363031421762987331032987006629967530349261225773063798069895712050606786537094200834878619560067822261023261159721222108240221513226679097258760801412486817693905833041724572913397519496717895470994174828779888541624677846984271964218861387068710014956785328276699753962514679172270286665037330231339153814235716958335295315223549571129457620267046371863026085217153936909015294960120203646499296864649160219202811183850542380969684655433982358502493606768295999779797192518218936496825404947588318830106417620262247934061489581428411030633290888265690014187407018241483963871024381241119828404480485531131193253679449152808961129087529358233753408155963836863187319810984488599259069015854445318306419775274019808370736352968687317233200394639229395872398969385997437468085914154150067078359273678722931089014387547471154039943770648029019829054131935624821636043958984566870317622346850177513590839714065429816178863318887968554639972464390391247537659420413900358849365966253275494339596942991149178924038284456849808610355512666768804583495490863257413970310753200777044522314243098264740706522552095725531661724285413423911356111987088108508329924845849288400187018119931842485136459287666298861882575586337500960199407239795718938501607299901198737502713705266158196879656170113311418173378538946754547277510071344629161982819572293614779552076862519221832428258345513304075450907912417402792760904664095574537470334018312355332130884546848593158318695259181327044370766291213174953161637681400563374461504802104793712619496819446382863513467918116744332439294004416325325131338550155467568536939217982117160240068648811020148531584645109468115924133216594388836219540106710056333232562579861996564171466147702617820886018176989732103469715681836889305010369447130226124943427860237783768602722073694298388936452720409782861328608462876897226572882137424480029782370188045256810549501436801157214788728772449049233849715142666856888093369353068205668176633405617440202696012803999187111496558463109708302442287899323606757703414301915363348620079973395351682140338273973639654707088686125234887268724737146182168986981523523531340061167479491389843582072451623749910584586294546134935239338970429617997098829224965669122881960620083915044468198285848890785083408782465569611360903265593713028914679892014795210351573662037674566148248555042841743414755507014018165070132792170478485466330998808095126529156153941082016456205015140479207553509785166077498875029998714819618545761298935175911787497485001876407384973468500288513657716687026455307831554577883335655137887963941126570869745893410157509683519383054856496347852434900516996312631757865345792624186797647058684879079613122293899523809468960445484092296224771874721346505864346339938097844491425037237450473422422924646473763141445443588879891781278283916770352658536000841953692996528161432006374587146586978342230051237744114498844582021219142431753455131538205257193819321501396867244042128892048752790074858628200279646976507266141666494314998209223465073272668266770494451991588724318660338609832645997378728242905268318531301345784267886787896915592204761831819504250015895530739281686392127041083549675746614078911861650949193663063497948620875686807515468054961823007797722710956729632856773080378632206491077366995141084842421234328157091401493464045507610276030910389686181150879541121066595198940367393529919450722045631420290379303301147542009079222470837994311261585660449301844394629612226479685519062961034449334544146239525858914833450290323301215060070148121929608476891361001448268785867606499687487331495174868229087902051519340224578098915132315084039642033875385213871294166023572593042367982260408947940878605518641195280956662294740908312922325962191286534867069667413940736451173973906814043520203835467868150106573747512551420869531654350667424307998476540590181156697804373469433297496774678949838498912521548559865365038524406797691661363855129947802804313547074671390459744489752386751970625538155570894901778901674926739324084482917049590868987343405263197637322640896009437718977794595458193727510045932275417926759778201943547400049314689609127994746644929601677206377968797766300204382521909069094524124007282455460756055220060967230132303805235557694654512017930231388641966465216299817893775521415292498710175828525571331029670360327712628348868877949544538216448262264455580760781021340403854339563524505489591602489783446718355623013624595853258453584134858240885985133932837991498684024261266973140038601497135387597409408843376848566978481242431234877208394642010795353206124464445432360313540642642331615908950187520829428773737605847307866770902574836607963430823300988462072210850667798006444688694469078189394492789181919022455809467227368683437402852795990786681519923781634117727864226059576228545729899480274238917566165219483334844316352493268337412094994844441094854874499613632486565373163401442987587545014974180310600498915801760761487863199144810176051240794566626983522507147137713172018136335061679089079547090761399803192983085966384349163458559253173212008624574536870986453903297948217873347522941054595249170320447470179914745661987748159641665700515873767775404344856162555679651143510754944378756368150554184450590353176113283776364243356740831244006043724830643156194151940005551527912385159721341452990043901650559802355718922621659129974564502257356550477660491852436782845101051727070397988721152581000284782718900091551502203827101472233184653821914218266441732503075949697835914825637782940378218418352246639930511708440871470542645351772184181287800160039030907940786710666709369117326516683168262619342154861547673576635607067657105673523619979296164175270288393656621003579865647612124313507372403457899067558958423209064067282000862479474403915964098964865999472321960279419752145363420965956388572447052504447961749852012134275206059359509401156366678681769592501859629026525878901295601855060203648772435061110736860430464325448522691613957693631983127321565698859196020119142196955500509527231641531421984324090049056352451348946960449588762546682974349527413364421241927316685054355796579992267260193051729626275210246352728941304392722515795814157294919893606433711098704354284858968816130934637034096694966347934717309064502642078749955214172949794836204152234679202452846355195138053449715413241955789401077798317988258726728818344063397188004997777575779485651555658713481521355793584517371335494292422536640808318665536208263458863610794175154631125785694270968351277723646919319241234652268874491938632424611560225466898055944141532779754997115423531834978428220554873757507986943498970006397393383656977836533293205264770276270549624997980520370883060709284747315319672623717522694727866969736999364834203450558162562022651684191005214009734012409010573460126398665020028547544730407712381762565671645563846872825767678970752948757476529322294434309440756111478329287125924270383495123417293567686211592206112889713615927096109449462659687519550528459343614762525703567784060387458278527196189852491721644326278630273668393688107735003804254510854247274353783690583283952840599239704496806263377764646560730621980271165934112363893655780575771387961793582214368004745868638830717051818121422200723870222939343978556771171654510308943395342197379475137559886588710163152278295639882288052230173272776190551859028618684335272276903621117266201350080602086400650826969888716877269655575378800866485427969669013187781945530487069665904021408242038177144248822716241476187475272748186587294931589277780232103901527845346265686522405132124386982662604052361871392095953291265472023362852739932691714297353904934751648430475786266811220416844495137746097698743700575117255393450995894262283937105747865834938902308504915865328791524140990448803763669956456332267554572612077502802197186398937581921201277480054282565782883191230651942529278774964115703364918075976385160834746119523836821022515938855177794434587068689566734300769071591039324110885940215474250739459296886038990125093299322381032855574288380315590945414346376832639084146222908697494911458867150193604786671182201471370566342819122726978666415046400561425981916348096600484458985711327825316819283093574181984565844491247828991332962938656784004819237023196455671235379402099498350143765885883177927104697537926073803011691621622493067948129579370431780237055724890356604802571363030387566766290701029363171909536345687927057606780013992387994202606207000285920450328921116734510195424026990347911833856943960770286667488961530896256488667143803188109460823052109006238515996475963344565926367982523363020341476487043741251343363629138278769855545736021785858488018701334375516101892282007927368634230763364768114227652776733938673309513273036258519685164699658301875751635809014858465303106880347800898645553530765005580570213824228791643312220594777387329107878380367136182761504721892379751744716044620140299032911879718744430000464438015173029926922056848039179445000492224377549715074915024186714194652863221219704293369207366568974901336864465075356805935305682788076315674933127464330135491794371245504318549500695231274322692346190535028146298634177254369305989937745748751490898954806267927278099495460915772988176452075658651746432592774870361293313071424222974020246974562760475128392636981511739041596921652712047065351005475083913951817770108786952812535749827381171085713905603988371155116626981048311302986414740931208557605307149384496336512118337583184800007501374902781390501856460803712996516677728054290921146721967297076561299063102569159935134897381487019024055814804734501796496780860592244251540243817179682368671426020582562080836032735257249224422366294621157124645862969831958194379286976663292995069481978837013636293403028114226534998136427464917162416957953447662944109523351646982994796967192768867701337881100948773477355562208497792997316753417021460563479016775208933907886006839978639127256360546857981069783656596898913471266746541575340232709864419527002045855378264036749627486072155852169045570557321575771430635473675982345860831730494224627406492983959301961114959471501339865232290863379678835685836599880586465239460306221772160220393753935799939115354337392768011346808194786228070168461108120398669093554200037749562544186911593694972946511962087389683783417107222518595899745982001925983029195180812151629284681900440560412777579791252320723708996865275434374561954637813417249860215467894853307191205780711103418791171989509691329753985175292725875637048198463655291042959116851872429413173360485726680813080403557005089850643910792034060223675166745184756415770030494619053971822235788587277876566872783334371752210508221476375938258594409319115997307681138764800168382392482009757037474305787660144190156928490909615584257677484065749354599032990530411257735233674838007962199388612699435663161888135680898687379563950638290062419016941431825781998848081183748286626870381314977784198346902125688800354566655771405931495960852100030083057153518075965553850403581436006025489624302856076919637535671404301867524966403079726619859677000097399598340638547695762663286736521794983209284431715424465553168620659311491647616236024349435111673612117805938050491177744121072217632493291213680180259194034424910294240996501271836250201335778917282720776019625710950330604515394647684551465554056253481710626789026391807335009517045050755943847986435202937545710797294050703196742198676477249509498160011858919151936406579926626354715027396370852721590214873713352604657173658494781506517569657395492371533348824709078084997378391300903738076231468765175702333448569594982264208273880388930044713474832806943320918795362162668379451140230116573146421219169958966160250204204198924196396402781730474472179857459974497942414636674786825441920021686997428102715798734319194602305754015321122886539902914519984150716288818585145022012802434040196038581837445636568463900604485662587232887639879456167751076177212765707668002543226065119757941816303467038853789011871155111357167722621994023840476586318455372345063901954262549370685529608017910639390075769982675632903322623000218800210306365396326940730038330726349314079619546932619237883453368916671200953177222465595681702211747167071890871921881465789735841333636095357115060463434247112726720117043159599205735025529562641081580843957357781669217315084463411275166491744164283342574424418276789765096315210569915528482426329544655088691883882348685370788255555343146572578858988063553733900185849735091357778409913411314563219753155786280585220903374550034727760252139545995315593010199248894894146194150075527936685540443203375484542532085434197459501782132853200357431799035147148342841525552897602157054442260286087571976344296076302261022818713807470977765402788947842851034357045441154540819969103089578517417638672645815514604722050933189889073596783710001644548634195555257771285731045964661003564446764560173972803555714470206659094029821042794604777062687068097316059600106637783315562605526644136332294784438728396849622526505768596839760567914532099911023760364072399486938789419530982074651987005375101854609425903052141548711581639414091070498496040164429908187096980616994836489295414972587429622169452361250674416341645553750065887878217732768372675495610056732253513403350471055686683563531111056855520735391897845954977658805449366677999373161073631158576861229266659611290459721518742350823719501099133343138825789605205462241880213162670063243055565187668628747940547208336890262028348998260765067677582171498432157637012663165116113516693396482186273532030459534407187671077047396984476726506118845617994608345379642301755454520124528803804782900470079711067078310215787382656351413742391575335358669650682951633993758558301700136197211417527763657574001761354413382451759603401730557867215288067263645025431125273783947556350433802643348702946918908600445693263581341831633434216719263064370173552731195221845646629626840323870047556085176907805719393724883896363498841159603510937828527609480076527426273656371806810941585847711702562818945203693855179818470495554339299337185385257803492179861743713149638423971890355483646986372408059915843829448077832237674729073199148592597379008754103876705361965642726212090613844812206828946413040764986529655639076404482959850809697774685431611525054188070638738174227035478341684695252550537863257359847826279720337415998265599091632412078061477802778136284380208993006205181982335678254883877883640908637344968136819742296633139065878263125796578480005100765017748670040603053283971921701723021861436656113806675304982871323324017393856628523184269772160488719090961579243726842781416495100227877873161566043024767807132704078020600828214613337782548447273449907182507645435396505305646914618821953167392344625458720933611099150682788555080777570836407985133775146604703805347268693716441320670525093110285526986383954717316846652419477556954738005286943848910311433651761902810581410013162193256605990662326259961042437040064988650435028373388959417240086600530511699963416121101205509188702642881336227907102120611167485520650373760076676181569157735785707273304256034581651382034386665754996161014963297664586763342116679542677349745929894056378933414970061537964568948625242656398369547066796046095267642424791577486428582288462640578273040223755566530154412902563766304810305160495662428148683479116178573552135829328176707498831044131587128582829102833632561307201068512924936492880929198928737148993651707047457538864992270190005576641771698190170097573534781892243183608753233926072649306943444560125958900752419329580066751164570248740322419273118358870485594169267429342397015658520778964597877502834287980804239438131821751986602254241658032040108927909977176123236097879463146557459427468879758767382690791307805065205752857768097833517425884693426895135184143677067302867578250007704352326634005281453056181872014288145234873568757720335988470611469212433942761809904505560544271472738801676851972216394708091287915296489151636610558014618466453029115402810869386620695329491445196373965804291003756921814840949826117477886266264485740054204057424443937939599634330108810966761368368307529345038486321317643474550255293928557070193341092763637861401644496219963181001574721392962567452587067639998915582624027887793090810295899165614147988678201071991511839815955645983739597566712455429749110222372035903798632284001427032704363473280456482144347796784786468808247591849827977292536474538018857030139382965907696325059552513943877641971142290610693092702666279570964182069223785985849694171499412679243890943254959607428098593219171386719694956589286123128583569719274268110015083521633195817147980834223988989089899305670028501146949228006337973268939537915972042922476181731640661228953119863499700884887400372306169276675276648008436364813050083852533955431734893508827488997432744020073251010171606872651632805442307661109587308188738379483567357233972356855999953731448324803004399861628702285138507082492210914163232137625363806127153324540517605168931102353734523339006939365088104417302311758888980366524789044135913462983455250768576474370511177696873849353766123780642372788019110337308267105608829922320176897428113747736541276535450610065125521308925278038021277352858181792708738105365469784606280005561793837573591204632657257472577476750531039014661476720703175914786702206052316011477491935608567021072939534588800694860340666357514483277449827941157410900379274304071402524920113155707407419825373113239397927593319540403974346029518197095199965158102386314325004730575556123419110290250662067439690569837273079671011096063213649397264046258411067703070226246816566909956626978496932764767370147466051293448090007797199801646406830629232208229927115842057256136754527338042753292533526530819755285745184435371055355429147670581380014218623010248565181950705819936471766491452539228766594063853135237754394752191171659639689005057874054097840127774769963594795693994908521471671392023684831062430120966489850852230650015308885219466752127416414983231281259162853348357219046235791742892548826646644928906399394335557642201778375357788542499813010573412550529061792148771746115407771526774044062673799735277187457133038436802196701417676241163699254330515745189118668392040939213096296665252506590782801476205328160365993530206574306483991202507568006590506496664736339062626125167942863187736635386606096983433537454194280214693693385301345278318309903365431465787580163554353774297828140681426053865213020383594989577501936798541610154347882568134672432051261214980602290573755674126209129578875092098436854098788263578956769871071251502631456390719054516507085694889987696322080446033025787969429820040045984317497147954772320011304646217798216862564886833234324070543175278901370733281317046217499492932114700326826443254900931752584330330834724313753046118780927475099248999147985811932018397367078880202426668087637781041747122496966198002115746232388082251530049210726953138701708864454246072113636021074364964362791082306965710899112872855376899329830667428004597566061807084863606459933882518281009669822778042675824110042098848579024867299534565453907297950289109437364811522861006604687203998775291793932073793619921273402273207646416748983563298482239351431243616559495024131022690613102870132977278478998955871232911494379084714167288657802816751033234433613087426484919130427540632491669548915530537480151824671984961514600955651896504231087135124852075548017077274488171759079294971489642508447848623032401567710595987638061644087719006598325648586720006201709508333107135802082155020497627390647814774703942229171638888184297012258166959004715091235328801485962672367285041432313495020434512242633158827226589506615023312665459230252581511032749055763734726675423480767327670163186569635448223562278920392121649169942173121179358820233097750303259844916536778601365068381538849883596226333688222153117212250852638168769102846995382913114160205803872209152185070565365402175707452887159441082492960554313513648584810247248750872849943825027722208237249078803152236363883373851128171135642719079682819336896320747237759285914111373479442219027015291494033599461327668578835743986626572882558794733939244499147966888254577368255431036327796656487583486942474747240897694600879933411015946074213946920077990739531657331431088877659626256881520578760576747072967462178804398943346005400600675503117377499318336913935900309879477372760804323329321317100127152431830656925186415135019143305692904659694382950197674831933133030826925864180284227111476571821135696614029182537331490248487377562114921476089355631850135312947517153439759056864587356403952118768919598360222598783472797564569908685317810009003398383041591649046732912122354829843480438071831566624571085339807521841978613757875084710856142065781479768822187596033487512403880920113871483854991882832836840118023246846253324817565583664209460674939607935270238870254655568960732240616962880657716831464147346642421855909590561343622353394476045878343288888884699684407027809388767188384198604832666003069015456356811705689115027623878389437135223212906517001732094952048446187075613185037222961680193800628592058809063470729877838327711137773719673447534887114493957144074475567709766758915658829723756048232010162025430532372661722478456265798160196770309554566070816236334687335652978245387311100646878023955646230439951305229733975297056461878995650722012497566101819726796904048474291459715694563666877673608274220730409894119615097118089793250330610252667855214505750522623503462150712746236553264754203095094904019146616906234538655045511245579230643757665863286632142480451341689743921729173951285605324913748462949439314409890159597591807509725657264005033003585926353136944839428590588002154114499015280162394970883775697988655294012999373875936440038773054450053403424332841793631182381226190070695887581708086863754282408758479347808589026415077177118029808334992504687030987616351504242962272178745263136956604882702780695100804599677998001392697864483699536969411061309953556586196677817544330287228412193759868146067350407366488514744353388461767798512141434615908960439132036083109861553476537775045377339303740426520743418840496244054346280156194112705966129899624616284054008808256436480307702598495523113592707338760718641380564944242029725924817338078746669974871780451683147358568658205047555531140716852913031941523010532346985430070760272233656198561899835938669520274513961970763739761976350487215525274175200584068595456622710871745573889688189150233040826455742066192038324195107680376454397186486005684935032651224313230906716545998374728519850509121012178841266798547063731256219079853107082672701488852515344956691188248805647717282578113113149527859551936639972495462729668877961004159170814575412718909857797570187827951361924756157253587590295948328913167499341598956045742999307472409666953831825312532856892198474952705234492234799559761730959609928139662786924749029036555438780135544873133140368623256213524474579219042298690549942040764366740716032960832634206215740958557276582496200938404899332717521395471328936608111889052311507072303704977955845089234791673583187526332435503851131135951975508271712569765073217839804610674489008161920085234547185703637047927483015662911800413992719132090677331352211923401364319558628179623579872040192368931683074897932752275443038542643434843308327673270582167037626873652988291138315026161455974416368334150038434071569646660994183972943457947551174954270275309752759745526495170532855007584103198440051589389125848492902838565910319317083502345330899902898118556696881086397900484928863238633234709730021504981883428522172369732716966536991152909950140757542822078444294446756035190151387809020483243971741241723675734197291443078248964273083778868443676975807823563999887936845103620041526616082715314451391649210410285182823329328000761619648304175784272297305896858410414599550273524773251673096517323004436097680159175947691849622283360499125520621049791605645260407479233792020708681568098522406840620281374603970842784776840851653216590336678048232405617335281169265153284254193227442537769272493963410595687816234884283342838587495602213147626654536402459390073347672056723188641508923913010165812672061400641753573265541242537063914446642804204695590008330278990527497112597538957918575023812525015298770123755509366771964635675781622471939865497807223855617532879331181248504685313738243779479119832312192754702210670479427871719820470989470963726836934528952961892883117156963587450901164460020762059086983323929330689809390590798730631400646148654816178234828660253434994747962825997724382809034890205952094543147667088467188456755667086507515195544825881797477497250861554139380423587521541388226845679241393623555012780499332811210631654040992754524115513600692419180886442969738027077227918084019045343746739924016477531746528307244671662974939783659328683347225108249054972988472636950656267907918679178080408308484694455019477330554440548171704384157409109558160871461988111143110288178131627209367256211912702252425706036749881288250265391183011070284940450078382475346813631833627318057591053405206676277811950264176399577689774421027070307647040568581047677915385091463809113220706585846490360876562126569255332227315115458494913319385849186460213869918429249376658548044812930631036092601647084564282801323595584896723109929773886379990304466782932726581269650248578937573853062523869500530933115072459474609792707276045729678478082107319602822311082436182551299568569267944074982363315921185977844238679489217670710425273901473823694673920688851100313242287218844706260137688486410545763969240503523102457377350247072474272491719391816972178959405334500910249207451097049295147725958477439842878939073441474882013418697720757872079544190138281252528294293834894279553136700845710175776894786134564414850226423864112754019268662619364580615027299786793503624162925445906637963802394224805432478682514148036724909461187419680353022091903731805026132057887517693120051875349676200267810889467815597622328167558528039478705743925525825989120451566747092042828866433963432840246929057420483352691870810581796171760691528096709628293215102103147040121828387391513152621431481769463829432817330334197260250108158348812671726525294640086227972427462600680857522207030520154714996014941906747985029200218228711149039247636780496568727003349120530435949143529366287363567674120628466894033306046520547539790247481845023615029432199311075098683032970773140340686208874175969652328034822977274472860934936230611899290682047801365965794015639626111446760056269031738081962998509759864491312134036193136547772310872798135143731090371368469257240178103813604607591056150071679589246281085408318662496434286511967210080650303552158508191488872138589785803103112482811431419889024905795722981384825143942227714022326088539245716679680693493762654818218079073010033589160724047695797664202961985822486075236022195919304977623570668777034861164933425209323714199540673553427464627668559614709128624196056098566265994422594527157401313343616656986518111650713270463455617843081048853122325460211474002146665004506792275387315554001374068690194871116110310344489957252644978325326970797677675333672018830902309816991551581876568773140704192158673059404946120982464810448217896373724690124390007742631716031682489449941938112920969990284106594302434035544862368810611473576975353687363636006877389879958629066866662846201667636129022678994315204179773289626867560870799471507040034595925020175051694808743038778889829042673348364954710508156185781316101181270515210094893729984984801041973232990592842031680641630114225706018090707294957146725917941081282987366668334110185128694064115991549181166837495226459221689213594995283818047767421808370781029556346587795601775825112790855434911786918347946339952015331988310537852891170038626027037589912064947137216137122595855569116754156368843361963569291563306548160085946581495918947801485134275989491780407944324812607201816912869032173386703767559036389402992518551840064838581010207413980030096768465435187136490277528834959794941716459759568656568759667197693339671385597976410029048012772416195672465160049709618642733628582620783883205576149959779569989949541624980839193999419033268882913521573470912953826966715878611407824077931659579975604160186709023640435515634570241645003938081054680901196271498066861602468599327435448614462933263656255994142663358423265109322034656298902017072083933797880746300585529892972855687435476977399784146969583246476614388610092203815749785180433629825151458804085616106387041280229850532418393743144402176309864242447421826167699203566779636303707569856080878805861081492716145431811205265481571409900510776841712268856403984131359077183000680813929195883890268575605356364171320842038669637905486710375547978873268284645013450256910646972552725564869263226161273241569201241264311914170466296685739558751445946325324629631940647905633633478977510334909934050068598979928375590982537703684665192786799887743659769662667709097262774584953289864431464399828831415921931447899894166715542378739825397689441082632493617771466536275491697758365025974701723182785148346110443080825703694852698217745276834891807028154282832027324812665499776822761269436105105881196736288370832056520562733778996233020690333343000944829197465311089201178894954726726466246168144176522621755033287538627378705148777627057952178986555622820467664196657871018975316914675574524342727084057210904971277898189890475249463154909509348310662398713555052149279000148208278437554423744824810816140649598957428467401969443922093905849475907212161865190736850311627667936139287080057186060451840100423226800383149172026733234789062441200919043797595093507992069901641352809988480044553692410329579398735368839352329484901450846720683610820778104340913577594277884408870653203741339516958042792504353132115495443663227801603489216862549995313478722989393958975945495648598281447198380655008464350730467201965187741694516395913391954407027127554835374651548266335054533053458457546034044329465005966791180712626957023403677901793015940922530367269433261518186881858090963679243905826815958852762924897696293394250267760734036265123426647714009883892077308410891426753926488330226452095739836520792986081416867331322121616952339618999399230640348415455740661315214388652778909963305254998168543748911549762071244849679214540384817297020103084272930502981099970825143874612478962607777433132302235295604994557162663626633632684205036298460196391032444825395114140418237382315572732978536548896680223353200669194422882030844112379887714711232495474821987699088289644521434626413346701335656600374988258729858991684779366921900099632206760285789003254492154263293371252846068815409727135121605651703763602854066573072712304302160546596113588234408288251199595548912581766616564130625171326096408354023044041293301782220392192823743013770669032936128648104715396015768755936032030561195981364294219306055448965156130981830648578756888010305986663371290748934477026807772490865425692697896856705140363484547715512600001632377537209203187749584129997557705386131013624224123063967961746629700231115926038916110540793214329252984377784114626832289411314463665042927355307194435110047000524132690411955912772503692211754765786038562026960058988735832640974402677414538223385138654942531921926534796328059719934200515544900449118242882815975690635705770605917551309300004767701729436726375681207451754752656578442181396623053423778622808231596962567525260751080369072422871554878261980292760025348869999792648240974829271128033189199581165853679874917468838191734454130342810358919726358544707815908106888115412787155627966041624581678178364368750824783268606744457672697064752336290188885740266909315684058370426796523754356679750314172138883288704450606576051221853751829956984961503213513007331695152869102203583041104548754224671747524807787799448189356282282110101395352533430243973102774624899736570738330748066941857880457719093700497337825761040540896891569263935827597113586978917762531532178503500075781265091991191243993255687537908232532679763181773460501665737018886710494609003669556414006130712884554290092094585565639528779896704160805893592282714181499605387375293736775758534769236802109118843692020524792896070200607894663108704985414637046917987096764393910562635649340848319878258466390010104983622850357959018647353746816349453482537336670042816756382255378222699045461555999355004621609639981738529930664729017721552507752796430703913001429506574109350839916695345507925752257986368760920215361881168301703960965019250729841587009634243334683385834174267452615034669990914558326781375112682523942178093661502640106513541480725668236913719278877112132128058587952680049754041069302686464563559897385724014903280981798255042694704127630816115316564366743935145391963499774798462739194645732535470569464670695315746450160278309394876407789393660214588974509832973071111306429907070767583588517578454018202541510452118628065755000579149121477002896127237468984477870275816283068956383993424232269376542995608032833556341100263063757785761853132545472874085860124609220958179175003860955396469642245091052618135951749100211382253955039841895280030105834588622668187260160093161906413550530597527543213551366203577205391036581771391945572247422932085703984906126109097356508054364800465606773679381570273133796528163806920753997440614448684161173062142744502840482179455289425192404841690361323368696815011051373980723928112195910115078376203185189453110475650917108072060196482527992730206937740808950986447110969907064753644401525952504300100235073914935813366704890354708339871111098925315622455904500271128740208467654361962734479368897592927033246252989840132815580354923853897080634792574071125423273094212546186813763179668499769429974040438272346643231860672625590576734467925439227042007423717264208631047241692525111259170423981478508675440741719795671287956114094300294667863251899795472287637997303482882114605955885450516218383547205134359517897085444748296526704997317374023002749691440261164609674805541501759539333239908675365659011553163615790439493236270087782577071611528334990430744667013409918841070233769550859573999699103176461588248691754192796956408504032005639349039637699432753632713888855315059041155977652643004479817289009974006652521908296130003675633671823097932566514869652428376350146952562897818088175515753535635850225771805904896884058363165676465422830354637724557996281476887929134282350855971300578746234817479487484495976663446342922708498273582656672041461085005746541037223873789396403432214670813623935699973944212196209010637392789249338549003688820466970291473408651621307551034095679307868989666323467525385962127998035226480874675178248457260265563454827515708586634247051490681393010838548798019059758202037208303186850235275024966187434303073656929143387092805933833991746744565430082507248853954313017100458317693666009450397963287329852042195146185866117376396312606366099825665089203227517675498385814876581953979931128072232443989051584356483675651464201474588532355085548708995882933696549722442132648055915957261778662615608245357494688885811160321368422560346659310251520204290239806482456424908305892296501016098776590605305512136042043367779708781994359480911160794209374519147722880358577433203594422099539123369825321849218234076032484279172695067936990941569207052744969068346141302223471426168903815161010907910317816148596814407882711844716271517324901481716922419418058625957595468532603455563180135611446200083664063148839502086622245957252946310227087614505711339092814518731706018811560088878018327874732795774061518893707966916042272708457411368906271111169167551570831735032165029814307302377344745825599935710178408440708733259518004777668324745431298293606189692086844602009003421491136676357506858597007817726710267342643047463994192960811915823474636226666300502454964777126266464524688771312520261425094188423404514825215640852235788286215371835782352249379970984333905920905998068955082917077661993040651833750391535127250611820154570899316212894961302273649795761082826997761831800538964259705318958577640180844084511783554333432264118462100228115007632724734850608744537841452191200147771478106032190757585781817700030240931408000034258844642378978343446396818062677021682403433237900090108272373703219858041401140760920387160458269578360421340161290283400218374264063836868175810441617284681484955604943812381843123085178468256069665840586175571361060953597522729988530889440280685931044628533375028352639278292022781863629453508604103635093542454652688392122630733556941897988288185219868070699792831082336722952182740718714937481557082045007323959636368738232726530244129801981385186251355310637886959553187012769431721580612226541555588271682830274098600702319270898190192112541375286788108598174475084542856468372984114974413181870322894690179669863203515993227619050420505737713103854085079907248884942038293396419042230920316826631267625805837479024004630911725606808783470271557640302362691512165930630749592019199030800565078253817253548181621270874515531376984403762554740333800820705093565021365331206934102357023070238918978302561610838400203657126816115345179061292924886576825323323580907119699278029102883033750163969664205040396856583644661119642958714743322423622214869316240426432559142175985477835230188968380565283756774284515665665243116968282823047357728336042791279188231712486870116089030437796357339280992960345918079161587346634520254081107704400244343243244747765469782282819439904282916644711505996170677165441346842501771797241909424868978475420751683465868794695124668308402405758884241689785087892144157492313500844562921086714052611450733747934056386332526210193705468158747270102422703445123024256063070760758541178941248782771204153094697983838962771878378815486348760818045833332604875581172195992917498014383246577437870857081026946426390464125895879070009234384955984645706292353730909498534313134979096774549718666464650135221469360190990221187478891580050662218285948472967608759859555315550468597331043463172649989381074812660812657964679149411132959356417404528019050797889584066515370417903141917471209566138338820177039960328659782634414128275021963364502657072856195094392143998233079502376027385468647626699530559332616914092088981943831351221731962660439384819268746865677957211167691989911443902320417672438666222361649508431899362855635453602363025465599108560364587924428892194174487807086553093399149238714942819312179000692066793400803209690303295760122562947206795395776108089332478088202681764090793438184591159198999223689215879597353145831092367921592501094180107989475940070094260201836419932111777679278318162457816041388190362180802133571395611683957437559410331200732635037317963501595842402910204471858050139351673545098478360123506946387220360639181236849946995497404353673888714096571007920617581887944599066329557714572811171648556449681273541730232942268707367674026661068574984847090687399099812433433980318229944670360403714308013076464288314070442001591785978869399374782654246115350155752065773070269989565765753599847719770284821228537197736836830890095818914947580159360030114184526352117457164061561622356714472653914378125467248597765302357007956858519399618169717479416781960009570203835234949184726409749755749668656231957796444400267107025718779521055103047350371127474880947640226813651347858578504131284651647954684902100188854056127771354937214069656242540086958538370263723666282547510742761486902529104929186959498121759116453754732798995551752898150494247251632991106900423366664877401944208810318919846287489825551625572835244987472761090596157630684715335428062981288482472260439662081601193715610787672697746527269700854551201626903459040980819766892896397310016583687866725683460912965429874082765928760141179427897146767451546964875692890035569479670426052180960638774153141832802962243524980373980680603322917404172734511894635005390863687903824727925709738824903330872395436033027645600825953291119571582145359924503006619893018945073363413605238336073706218553852793802748376902520546993407456853087414625303302825463485677167239040755553366472885057035245491672652569973046046597775748915705548994611496630837269252181678537307052189665705389191206182221677003568840796230583779433908959649931480316720405275851662171833746426577111214105197288889905931931410810963036462597723031193160685906324149279299828808525405135316421026117797456523757381671766672485637648402768902303748781358680812410587861823088951876787358823136631950431473906781786607886545552610656127687411971815603339519632178003632507035663269087367816728704026110459793953370065908724221457856816389269658836809430722138475906581586727507182446117490421319703793923422130895669308494392932261237435489263061783726822409792348532908429420797172049928634639990337149747467692838687773010056781504933195487160787647792054263708925345941429760310917024337587858848884121146621990141609620113065959361379194858303005117303610211786433402028948641073970913854098978957013819382650740294757181069722156879072881594053438833716535622694153239937048750942057831299174127826180802773519120102453671455341501577299601940729536972486290475093893375697045339558615343501310598269965087902829856879068388846929785943660450769346590508889835216822084773255054027555685507391698956534304461617778598441105190952763919946931575041098671377394315935395560551713601345790806029599948506279511761962302901951611109590183559851497334424724739676355696268517239550089104313969559835946626781197425113997718901672827400148946440143990242103560969687856700387347196524822212248836546343376247248180851747227800925824595381497962499745083590126655434691963846413270523446974239876677911987247242419401237544903811723021530761620213714388601791854895642433561403464666067885709224829809108752795863611402053590006750359430276294724138055128333394651367348174345817912426486880198057670482906623912587545115788174988658672098169535993724147720737316426629166785974804771536913944009558752743673709483323674912127750852161662597084814847840103355316781419727307998336034239863194255518803986888481309884527434662536136543001211088374338459906320110975542507552921358823193491594376745687248327814173800408770397151270110721207698475452287526810557754216573387575458735470333127175811280595701471652331855488761229575456187477682580390585281211101036960125917292212301818375916130576546628155850865326924875119345858775494506215063319893533498429222136561407073428129459899264127636339850330081658580462180415116293212862476981657470721252071068762443614911873659367111086967797121523054310797309083260637882738514992953885888216529022656379621102497681953512147925830649197029385175431530064337028685449476968441846988608273657394822319812341562326724656536308639547395108472184530789822462564092861477725809496588548697394846818353260325490865074180812717597140686500302592377725649602395982682885466583839639826267246646419617572865602959274504421435505843095144268751473768230697632014152724351937740657519031896396612007902204058845441883420720081386349259415667648889400885346687079159014030101511978124538729491971276890978013328684535179715971610992248412537779567203011943684556831320658505339510931622008184679177598191367635778776187540892455357030339024348660989249934088920808515342657499579892772643726906648965071487179100217614506312256345756043073805516079897957179413996734895956883930041311630195659974161505331898315565677004639182427406478530388682759958899411351800736996084295751299216719848031332410923045623643506850127791745923401866930063636937391467323723567972788891589548700163645547657641819864891301182851781264769769542012311296379882043815972829086586612187084193405597849667042759356346016393460187331293028278122862801762819881327064098214212693963819270247723089627130658351096137200814700448982694261192343632613461229824723349546224129943412331168654612188672475301600025163427868600722230984509321775403529000955595335838238444843904477329741069575632490161417781038359239764116515653602826164883670809177777770189611824160027014002928561011922587551075744399057511609794391836511882332777076810970157605973727365209659784392353818258385085598182398099407625552521858386526787389446100048139054647104290876209824444178467260407330942996272488186980495400397493824143715211824715120807544171200877499021855391604104303110256861390445785880762182172709251617975685109449241629363402425643726596213824377610813359121556669193257424783372156593203326837552302638938693602462127340816093937285893721354100328176591287322877127071686218022875940031484010011660717845640722847680941244503858888287666572538383836301042464152019985236380705234389405644364513941326448667991620681336893824408203349285990837129052775047478398173350728039622588487290728274790628903995228566814439191300708748216842051748925199190952111991494607862810108038137586177112406536124883883836806616489372540479082619790007977854566035847295562913191119928504640168169694689752047571566338639071498387344850921272460243518728452532276241059368370112096434726892511896550973207136185778810335468532979665107644782321487937529220445552501660181617711675174271152709788801983843963022330708657225079353978722672471784473282685766405916672952477001218388474249501895453300039314464068085524960557524669147233589491825811401227010056256699822100228906468892885013425092911829229513452460086865740343146656984553468934197736503422930857600562026892530636402001263618482659955315820109676624139201440264174847051698015327838830541822003054954284596209720979670706948282380133450777455555877748510239763986075756003062891378753859017043980484595120121826177649361882871585719416726308026615485042335098452849946478113625764824146141280448414800106904795776415155603272798717926938611971616909591480520408655930933743311325417173354085514477121552075173359794659552652477944852513415151909906110357744203145663915103345040334404372380927709671853352726426725015902607475789334493380096410167277361548114101413642090124619393465170870865765627432972367820441036797965421390523516433317099078152007153080679468639371405436504147555698210406608606907375139864226090351796965880814700351409299335326607193611279984523723500024859038681569244266452029186794341123657681737111525256101415923373775772260183760159289505879649827939295574726150281645714372841053509966871777160697216234204153561438589043555581670096034256780670784500078230191388124980501340733774403650742140454469774572113010586781735376098088415717108523144351815321588300309875077107678679950986630624811044806349782680360609060622703084268190980946067385181000388942482730904543870307653288253806832791985116641917211008762414636157077687142587355839177905997210737196432934692010445154985555865496333497557351111769173427104769666587890184569506008614624481496161517946746309590472827333189121782832555916994541460541755820586308474851693939493442597846419501001428965494602395868763376782817729919311484231235506990464366044079209710959770226073734081011727600484633599483514942453142950281055768069347849736932663483729153384422534764032026601460565370695475432817576708567189699138568112742470042323944932564694698896613636658385399147439759765413489543430261404177979513110159282940118616035028680340534452923036254453760685963060162283242146358145177642895709672322265744621575780161576850029247326821279150048791931997526625250317977035005120494114423060091008376900924347825338446751254152700806877740070687481445151199823611351281777161110062291165171973635276647728236185477390908361645785438609380399222302687712635343931609930067510861524222480241203725097361845424331695325023215360742538449113172935586951172800823865091235845866761290549701466251055781746836074619800949423295626139081831059617086705821391392827330193994433385195419865892494404724537231906157523347839172070243549983423041944642651940192967955057635465774321650025513366905091150241299951717408359198358432400412728218680448272119814987330887029343258220095937641169007758404649215904927719418150497733825610703492399368742354469297628496780950973608421637913163190453178159472279860941082793286353569169663986980788155411286680781053704641949138036633633238321950739960498093115774211123608885540604774066126943799575700964047364960949173542538277485052108428341634075148759966278250294106616436920125177208213258531208198737506530101046405088567273198221128343791714522235842305436931634545006844621544503586035393164094568674539656126783706222345277083335945572491663110171969836474100585461432407071933842205626673310652800434244069038584670828812811511557793018113669246246281712138545162436978926101281855858813422857630415645245336143766476587067366847532330027233732173694534655156568114796260538551438839847711537898598705715860968916582165138411754209480502094417631469429329373308040670707086730562017966786742003933942998919968275500336667468873674513097661221167658296668402526310062252486726805013239101888047625939666556265689630268913866069064360811521102253652159682744721279252487958476460968867678257330954581793984905706865157728843261161086744868184494836871043443361778783506636883766686659792609797260686121616231084090902624935526357544824934049921914162028434021745720892625939564048888773255690698154824869511445363620646548823031818008737176097441388456306707544568357477019727725863773980809990990552229577194011900584187198780586469846381532049569717271687276947501700576435172282258732403187880712462610412543831201330330784800383665675073282275025870826244238332207593258142123316071992302217887870046170454405655606929833840117380242071928555661600542754540685938971755070479611293883682275072091618036709734183951031680925493808115383416208867849957403241221885051999260852412583003950643310500342980182091528740125374928829065287450630345436384234010814144535639251586529110548386912272630921154270640350695937130416258980463670546166208843931293380673694325236262793099635168671100902513148139993299502844391218600855173981151039078823638947815982567896090043900152567784999317980154333618880279817843307905221687034072410838554391011262786451833161864522197153773010193913970271706949338408775448010583124313182688916271852199187546246703647736198376085499999817247531765313309548080103557201398901859324991232133666712280527316556514904446019536135969060209426595705337633455346200137023176922438441606498447234725430147579268821713456388299300858011689255918730174483903174876406741131402622683738571457132589573413839960360081005249686198756015728139726219449256107759685839925189162272593232319274298568103427035498212558348174586387593350165600162813457005893055662030491917937509196830057236555347687029775584132343448301931493685966859846682874606549930287154388256891249698420297320537941196732644285392805690999585153957351041017703870499519103316040817423797423420130524885732078701361447885348746495183542980012421476127293564887832643752439563727625894109915490521800112771109431651471550230024210290927846827195188544628460293524890108704036183379527814031615098677479851242571727943834277450123252251109615337977194838562596391812005957696360183665391262385896975916602029112535604443971965744858081614051996550690558576462556472380246395262206270135554774923801279010463475232369374113291986510961584241260470901477557561985569011565759587935092052643307695409449898871373728062239204371253151556705957669623880741580558464329362774002773454317257780071168606279739022083437233930392261669936644468160934212727147777893416333445404686635280650989231405256542251730855534145664965322106455615343443805562575417874744234123251506223608167711023668810760491813054597086356301835914776009072439317398958980564382268601274963728809976769661314392621797818881471170463114330249927565349429204952085052977844867486644137480605126042694167070573748548522885124368983544573495600609677980447673999998005748300813695417977451190187114263382908458576623608838992366306955803939113845676402872548354923347864365162234990625787139572147173126605316060993221868318256729356531938272740495724770123854293945270183090632769340778648705117536511416161122361998752688185694384414330423711629236197588450613693879999569878448893467860895331574406794569515354887582051358640551103349167919867453081150360256164886713666256399117790479038170397274791312929049375239443820664361200283868008442300671727146904695919280172815265946953601854026466821808708647749672807754953431163162837841917104090957593072752335815239806198060151872632068153268086818949579196579362028052333252944457079149412747988402056165695246241783227314096487285196707195466818818066078285514319403957781946803849036387879816051111386033308395040417196080994419402641515165633353447028296257430116344790167433628271285152509755149399340767872239524067195707165685962247402651533652278811359896931265165574127830575025768734242749842182391612015685187855456539624455812436029634705542225365349184519143711878254858321689286468720285518742408258546070945103687496584544910857178483820481304286542235724288415695432556367400082792309504675783645492618857788895361523358544075465482717197799419708396637627887906402828019604503375746165261676137746215786805303135958773600394405742703268776856403805634263687741596820552390147942207109970620350293335681929928762245284249527397216171477456701814888448156561688173307290000047741270335961115729558495016676702456025045527565941356177547370414219863479891432648165107715888568109429804698238321084998302779594020570092848902487772899686471292270602773694192683914756756986210256602550717319387642715424272605212688764882106980551255918028972787327654559446063334267339492349383166904370860886557594612889753188244775083305786478904862056532290592273244271532479292077402012730893249117374189462301182137805975632579437334390307848714265633722954180614721350201488616438781705905721754241841250889070210578978563822591501437523381166678915527159152700842861256132514104119323112175922927766315031139219259260036583466820507633335433483035013637798747829881486494880481203394376545709910465700039457174181679755497898700509944316087163859981810342879021310754240930639162583981647263640216663531041322907555602388290954344411366336570976330915580458671069151586693381227266872696027251953398070833470949515409195098059557013151669064671365150983156873734204661589932070761471308995435063631085887099243750931579428181862190074309290874707830000692162450649628099021061892124294236668967258125234322702999954712845911025047212241010409707077580793763517093021369051634117482262162990826880082151348095454410931903739969271053557065129285132973806524389989357029052929355730283918096790698001594841470049116680954888009061802592441306608296310799490349082314469575944228446024246143511547785703687601890477111098095969122627772409442606948544793058407400186113631211368386691771740983625404328728288644398351960945676076789940254065310036226748562868268722879662474512719001480198999660992946436411553048721537264876520430950431287723041748120089075331260493625771147920807282738484836064213488046868992588455361821107018591242451102275688207448058032732894046229304351283938243302482161684127152663955544104264871178065953772260780842342557369765495491104392092017752175330151671832797165259024833229086290318536491352947778435502730256424297626284596906371034977088759950148022734062393388477231070319260762259208987778342673495772769325313370326134158518029659837749629619722105124519301068051700655265493248767538250385207628406115365795602003403772707182438364487658428537645245778810911384738348140753770559780227474320988546803858854753462758628384145558654788070028960490898724515355617461687110143522543959993161566491061776900028504753907006655377446138344812574438498042357197376657871705310429026092274645073039757943119166950266362203743038535978704393614230427554744344899891935415751917946627226524430024117604923446807721546054151843383314730385908045632027205853847887145646948577641634606167572608860433860683357444082407246588955198052707606175173851192099353223374891839253839170315042296577867808835102448824177011078366605158713511102494513785908778229978970079769464457893570959151572835524372470213473723286775172836174523241071691394911934583771675550551499586865888897826337696551908126568661676600624565697209190464758353215176151489792765230286546126655261653510829459846966884295676236194550927860070925310215916617336510165223908653247048932863157565144389772567570156667688725069795737392925170113751418188847104634269427892812538445645877817452560670806323680280924160753662376957487276984263668490834231136804241912619428011682019583718643381789884178873526956445865350962116001832298686224985179096564769584976455080284198291894314766452241580775885612055930212061208579970669294447216186934263127403946514694875703133628347678919465281464954306546431872688084711288796291313858579228300562063958909212869774365237875792998125209477234161838343380795401042777080897934825521160533588269942694522708551674971805305120844229148341581234626687618757569602734760264720625627294374004048039266851353293662048615536449567111355757814724963555494161746518212317418733352068373159621546694924557852324651421279549069780816978078468464523442025490138651102282989270048432919128292516207739884476197214381408912929619592381102006359972926864779513933623056446600384244577571855909984343473398639568670889376305380793046037326411374144192994201251293125870970531850840467574997347267182667654717421610674816394282527305172319404737696590993734691762290590640756416014402796498905807162438581035197810481119954480700381174560288731932900995624620146229525165729170706251590669814075409047757074110780233219627130636784534114969925398517007005039194364172535055860689651059288100484341566887723878954131408949725016135627304125232579142120295397766312664246521296315758930899837174593725128045075212852852235425236904887303382875725467442420191657482058135367749676029889887813884528365897509344002524427346213417691672698535587922403657010433246782931966744117302246207830765142520663717212993988074129166780981939254311202284705587165262096005351214038059330258150395372760005048854461816426453781329024831417854610668335585433210513515824961531303564136516541246615254631574650451685291691745169730880550274494023994400387675768723837481252789231644357895421965787601990241130253847205394967410891329771769361043032072075038361857268466886811473348916710033953375188443428975131525612404112711429112782643615722808815598746945762248604648802370550682680472726721966111993088807132544538423088661054763365783265409376049698175764454964736549155889997562971578395293347851943071050039261403667996511990910322077246964637314222096118434226988796563601896475116998861920200919241082712889543147580601767017062174936054486165496109858207116560707241226063675249621951191682789980521318473142593572251886414478503921792513589365627479120819506497187026530828999716630767517621620436597220172778243352920503518446917024646844747359362093792389524172905212286590808486755868681797616307732451640407138825259774315377992799281432174158208037419040875932044140141783415040393688307654936336126304033539107268951110706552975948397423881789573847132751550658487016487007091601690448918651527403869121277503026928265995754846881594066434412958471124950715860959919718151288041903724031294771940817095960505153761887989673098699756349000550537184747944698924653696925561732128685735912025349928491483920238747781503400641728027646840452852651226352940650565691687916595783546105697236532959408520220838998908666172732124557395387301074711480573346705814669661250635111149992922227979345764708765784803607882672299279218835361154383868193644693900364408594019300520460298793594305951717838243263807762122163295002912724978756624362333048054159591768804366711927339085222750688876663408132301726553895005375372990937356499806626567966148643051314123194444235491783750349601938441861924033392445449415198464675631913521983228302927969710123983707822247671570089018505751218502214014857779096046647952435631935029335347599758976977136107486055411666709345627588344407708405490101752947586298514393272445785704131224117371883179642877282346062567407848569144856770590207016906136802699785324955855792118774473981230424883100196717626141474473143008167073285041977142538763712476169801630851038545254228553805507504521405416213481249458480696698155939993604374781133576140529323976307659341385589183504298603975014077132502247131363035996165622999552809330237609884427544487724223473394426222476257794945164195375657445814968812739833760818399431577893601230731748502177320799608654628542540596405891770551546605629037771130619189609978955518291094034907115677000147630531946986052899376694803886269384358347109612301695252495834491755708697805953866077651762290848195176822163723605261085854035210843119479180460195983986480521667365272579796745246593902167411621746876771015432747717028592077453942786498582682610857379930245549737201539653356845936892288603922466734562799806531559170656507094291738656555450221031204910814258545252629959675001466907293791199229745969216688298548895010741736225006229685228322473349682808320034218563611039731752682067296463340336365242772629006119553259254290171869282361275591977196481225286961756160683922435919381979120736403559290767569070546503056599185041895054110250445047007328938896121899983729986013801876962425746096484088322999846938464084541855137722389196037077804856433036888808080288793812145969612986521084571768299432688242132177890346873589455190636665521861747847930669872192977153946195384245646763538840109092866894997111601109886041967163619048823121954694693737290753523929678441633339898378316027650837437611224893200156404824025293605480288305885515262771526315833396335352149768710939861297327462701318258611174812358120188942217425434031336347732481397839392761379305188108719182894009176240433139582317397191214350310600723839083007395522847439765417867735845472203020236930864044306623438337772612428271005759032321030669384519666406167642585549056251491156252333037548266196832395547792545335609381507565440745659060644982008717511727115565447190013952859500253410601814827995283991823580691725611372656698790086224416447748447169584965272355234919315204947936708569973903145409397349768495190734970874477504760280843130519863826537943070735123596409930323314345671053459659717938467823158504776988582490630908472109150274742549350359873841605023049102324400608612784020844946989995373406897204323864968766293715395425590880809702774335133472393722312233196921828457412986444159129968573853035529470877982367814085871195269438361097986136769431718634869341268763261048494890801746519628855218408371409826248216278937680695486499481758100230868700617856829701949199586003577669569752681908467303785528258993610413758170453403192080364003883833535063948758014838851339915344844572418101882203435775578817447925336859417156228919577083697511711619086064040165664600427639244246239727098299827714308602641548270330132782583359568199954916458631505026040071832937981932421309959861778901174207728155380017740296879053426411372742563329202731974076406326969402419680405583682891237594216985100286816472557507800570226307392673716840131213700377909807332714622547561629893627144117164274125104593276804939912120312659940202030091968074076221784766933911204967102832935376469264910876712302689063994882568378767277017824761794705996489337379791732139267213877453508136356826073764948455370896430917177559445024167015147014061624166718003584796765211958261989396146938018421953707817709725304778786600344526435918745137859183698814371962112175805183952490544861062082359634701686489081882756466459524154918145801017909052730956304471592355590751583114650459752433288334409902654681032902186002408971592450819148589889560780694620061502519037152436429670014581632531156934977346079995065833898324533088858781896966514679112070088474531232798747524153162709577240597571926627716165029905325157872105511053336051170083620411688092984115526618834785807433624121640392811069159701266306046770661001100575670637832814526695824954698586057569767312771066204248824538624123414039819506513272047127669416788620450274414941247451648882040350254378802822130875221160621982919761598415686413855782100721002522915642829633010572992411226702554870434967876917102092298832837519670734871783501978990937478283228149640187916188399982880321747741720509607871066990463621269566411127698691131424738599757906861583657536484400005894632645908868305071086742684733381103293932738088741204880830942627993425506209687050273603822758814036831162445765619020369515288197270761400768711972454956029338287680511146004311981023809997163348186934333232715649619519873404632056491326741621170208019519755686629480974219005657556974091984633976292356595672337495293822385998710888700073106334342879169006122213872565540161028564536671073192103249969980649668355600553425016817431448735619508332259352201824980757628927090432666484578399154911048178835868392032637762165324403601932434288237565405102243367500694657215958147961006281235466622877274163834726353382085653179300115685143122568857711660343250555722159254693706081296436640640932885297663695844896961120121384602444526346607934764776912361296412218045849773964078231171316052541103985086505138274188948994178671759830785754702798059837530318961544280934755918059906167070889113156288767133953485343773461153796363185752185738924611733711385687896075834512718342410260145947985733475599833494386406973392714402642054135279696419457599594579708363027720388571172818877702143308334607295334092477872022449157591741773602095808401049209109394568074092278656644252034812924878275040552639841139191300988476439273072503038561080505197796468632186523367607709345740870957487122649211506975321815645301836927333669657483972024292330404960310888650504368773499933689692661403757404724900609559886487366838435952594555959996457510238582606734107410407372455984928453555146398673249083558083666791828813875302600232655397052563061308612662675011249063070353336189291531632286776530244851425033865809704290365277442788521878724512283527573618234613881194950678434583747065695098472726406838105155097789563886117287822827965143817525777171757495981753923811922552051601240521603713496919561889593949657016057443163950932180843105818407347530362582539094511221104049038090611605368518450324219744063035055659408633963021805200423290658359069286259577849379441938958116227864145875545913532440374152563283047273813823692002242437800382143132090496162308609015171164875734997598941419087843077719399453591322569062521245701030112825966450398107529516243014673627674536573666147003921676530097738172961576889944672406678446986446258378327090430496190021978110897112886772228629876435284356172342835657372586520436231058073169537745523470284271508500864647999433272331604093189057517985344134727302019503093754324711625776465008067061405927175267934397780564128162560113595433526914927316325596614123225796681253904561622052287474432729147647743542655934328983789046465068472318484694564101815753671698068524991726224509317385487996753179935722010835560026742983864266087179577214992058376351582676415738040658679642249103822277179467975348784604687989444950557058632035361451315185028136819039181802770689737494741025584764489102241216232558923080242433847605495507422643774401033086653000154697349386738630809369108942287564043885006468473472823060728155916902194083205291425826254802554033281730813525961979344878939655777062221276889135267709823982250521805280457891260449264562442861504741559984112345837299574851044782968101359919649918830986767770933378995103686394409640702095050131110058926723773256111837801447393303780535281358841016676387047668129449863633538290316589502104122484046567264570141402930662684562350291481499245314662676799370843068536023354624638550709871858347335267196136072455302339663418350832468442911848227541644446845878682973298831579119980073836045261621375449513134391325489065776927147533290652224933387778219941364032573801892723623377521777790403820235279331051696193892316224868262784164454206416367266189030288536187099653742173992289005386298724460240063929990995334335674279346516660870267263856557305687722320581681169296791910251425415027502139523581362225866807176723947543690426442760242628430697916272899041455862123693868146762198178046225778475732706704546297084778751766314784301581603897531998697357677238481108738944412156051028706328585787030844521043114900093827572626483298064171044042240454576545294748175806665271290010503913901846198897681794798565834596828493218635747512243475179072945774972812211868015046696346728631987643026088660310284621670340961363156651224607602556021986074690206231418833631770022471723981604807771841075803067814640374666764536274963179347628721950630338865892284255302322628002174071777171744963710916896216466277883411412359187335000183171765066862072076612420873705972940513937570940391014065463610272951400723314607807236817396738851348596613795499951530132460008223287110360449327296862759312281186258996069661561348113542140574972496923708637467170122295484645811810116763170179029979032465920162791632731041159847294554448481741750484622984602333371615267013410510300073500186058465199473226433233804099644634046197929613720439773252731478032219155381243566797515462295625213371958997991050283708071291390815530650317765411448970657906716914989607788052823679306183983474804991895260353741968149634693672599073733437522317504079439240682997788102485309430705302970662866531625241590203124337064743277153185793198583350655360281263207338685117364881342407086499082007435460475276898750989244915517684137577811117559553946197892179321931893108654280205100154554844110071129905287558122920002131611409258545754544029305233797063489745932754651776290039650599942203351209858672168046464015496977316903162634266944688979882603313204542515869096162196076343451534942886482768060392467150976401005104159536247360151174407338545305034704762168953170991517557375593995256462409782374111424332436080058396051885680286280689067281165363020187074356906034945202422794665070257464324055150417210200116031531402787028894681305882061313152588504193472638032487322049734953009743839144574998447707270843736158505492527315258079383692756212235200124924857286301774311270410137271100774103830159511557568759453419316698319558226800144869463030287308575240002972180174286602064805009391899592536679984226530641713116262305972444860047346903965758479000617426223034839377197612938233709965260175592066475341328560217768749406993866011609045068921696975782588172870778329730332070860423252937917859699393877225427146576020028504799659566166371722908260757370994517154311192685401105418150352821324244520839887192457149907658814695019442877689403208154578416410671542645809807620384761110690018666392124066899838101173782602523911634099143115523460101079771361819360077834645169332859010847558768875925151636396123708748299756660731666108739583190141923800250856391752368606362817148716089440042228502103279714869454441521287223506357088854264608170563875046550873744519402886920719672331282200275239055761437285999529062445647355494032266374787678774709535036646845988552023924032630051416874452929499743494573569694853177753886373696484449289863779561335984490496785329188631700692861435871263454687839418779162495049849533777672248712791873794477684135817959025983060794357065125369475567311294361083755133458775225802983510967240165329118278724743305288635526417510345129174062339534418619527743782699219631975037140782761925623951907763106132615254240368027161221102543332425497467361949424260978535843712561920485680933454363315349932280416119432355155713944543228425007428574901357365643918204105943490429340696649754484353058470099349150114612213080115390619711984533336518538821191967098539904946128786872190360428809075622451693517558799777670924568384677823544068083284509316866589730802707272601613824847503887489575243057361458472722677615661712367212142890281631353160241891032984051159639522939436626641622198751837920199649378868438500584395500860251709924515583190767292536989284979762448857845730390098368190372186808005785438072132119351753181200059806820575929711454461254189084243699818449836843539551041383302173578950436647666416262907175712450837155248885754871545420397986129866477572359395723405679365803365576439839391681800141789752835507348731976896538204843672511570517123171418436155897549342678837092763081063656228727749722265537547062222452752862746079018270435327300739415750993124691476218136468586201970638748625889857521198532836306804870664200541430924431298473022928549301007227004591442064251787410672129533299392578004680591629191333566008011866255524057057327456692003431873675036388360843092400177603032620891474409998042084628615407115676644061374887924091421291222618644098765304985909423026062246683116394585205856136796794150092166732537885494110499577612271547518129509894848617640698552728214738478014493599660305067922897759916937240666394454871965749159110870424868042158867496175510675184008841166454970065026710421294698083208317661158393953763836208573238431139804167710009082272734519836949689048447635460269832782484339884977289285138435787565820196550378247930367155032158381317741148637551571521914573461589272832301779084020404570626312714580832117295454546345132324620472710388217591219904426560677594825287858039789166004815571663457619172546378734137334943923464289062173434509278031097450191661207658012234360476270768817106739362726122043039397726808606719752839210753181659227994202557201663220117793684898439562696803419599260878379436608793507632032664678868766860489518470835579929876088479717521350054264229918429432505700661184615114578135319144503993333914183828911288816394603577832160241200393567463425978057372383922903316451901476506536122585916038172055800787129792065190509052276114528412925684601595127277383391906208851513970367124570528600892073493257611983297804396580291309484339305259302928457539457522186621188165874801093741977649957136612121696737571582167872465882540405472723136855621163423671231173853613388302492122519551613464796472627782954507495340148265178119554812954454611200326059770721505008107000290525653824691533833049818672876295798773382659851969814635179847744386547274539779356376462264234922623155514141953557427574379355399377079203256377091379286184866420412170500067523592410865975419264059359767302270533720298574612730431848552152345345583323402431781064359365601673749759858818256861837936385062301553612090528091038017632525294329021024421368886383806761187134055449235970998565097996123836511542672506716938431393571552288636185740813071838743080101651517900147477643258557706892480097827833676721649627041162531292407551504458501511534179806017650733645408561762947960740553385233361519847458565486365466768575226495824429833825699591755184484687432937605584439016619482034519212420718432745724223095044043961049784865039809090629919025646564446792328479526099924773108658168084653098153789246844347388250783124804170999678667446418951720676725335219771988371479663806973802168242293307183603809128711237159287361689238284658328747552675818258679591116946203135721209997217237507538612868807108028269544674419264779683487325475352525937972688938094821721622782084551081651016056511759705350317891836872996996343128622059388124012013319921339609297927308459639494933514790828305195578103170629129569547106377607947134970902711078373031976117886594875190727537839216091692235121699201127672865592767831316718684916943923739808714460261861586444216203010563196798786417073972853413668630099755643770007282843236808537395023606032360354869338195106690379907190022527723815732401369137409777494660927293967396790424395149694996567920255136756890507969929670467011994781715914628537825110431431079316140189666741987457053843397887447018610674275876610146810194920770216994552370205560158173293652011669765316715264675493665986018795925615753515080231268176099217152519882499915137576233342791229070310528554454062329330113533107242080396953480890471061973410592410904570416263500584448418511595651970656679977046444472473166436800032509302230627285236689869236753169435979949747844551243192392151746313376986273192686127537834741609536724440620474976263235891688217823293190531697626969668970330072926907155711574311155611985029893109652184225640821521841446106539631607229759968194061691615102109398139825473916247981389486576562967317165305487482475279680205896869070486626322850930546500946089473167721622081149672399110961920772125195837977812270781551391947168870778658721992940316497670886613130165767553649260857386042177868802270366070739048374101215891328643857242477744976069121794755631056035380771642055749679426422190374611720166462309431415794798684824582814691187881099258225807653644423034743808575939457178438318255681177245196738085415801073439333464708791800277434335587816251611311716291367400861873783402074576264760928965564267841887465720834027045981831020297607752102644916220794981594730426892890322685037041768024058134324953142030420381452168477315017048912919385884747597357822701892347356108091370394498125034329276806014701027183916747941496371467372600282795165783184249298486761694315192134848967821478713857243795382145037875637562149925483056758259929314814943109054768279670912544692444951895265088049244275817090117332546062450112841087942220785675193015774716560919287007804244745400578852466281576912031999383825444634085141353547314516634596384223807310303330142031269111160437073835234527458789985930709039048995884346852351182826420577863983674031460186454952839386194534031937909822419395884786893632948509950689012608808637782682508726535295877152132105352496358033235615710444795614318774677340855277806488838536037194946854238146953494991789644445748357962244592502146719576490858316127376622651019705402739005654340339458265024407634040734369140068215707507245899165708015605601882139344978056656383847417601948849461127701071906131840052479081290272992016926560755308909457612844394278281312373688619236652950400839141448043629189167849230915698993699843692019776088813397143274919263282697971292338340236733032697897559076228758584680315351624052786743334324898306553308516983759080696626809564871450963239618426730729251023999024394336014483020477662979055376688789427110827128045337360130578673639098447654527278933660108661987621389481500550865147831630784575338307781432326598299341580526979482447472793188629932650945901018329718390641310584182008720522283954801643628776555448263644839526795075325911819926278098272000870157810858376464401329909661502570262820555457119996800454053838019761801126967990452673095710719536901883517912592298184410299761516505073467055948608275258317852239282134832578995440484236430934421942620705927954998976354030994899268228957784850683022251759544903598390409762411639934053941189897206286362869657064513830750639900687165184253059413139404512114175689328325383768490422684490402653357839422881990198142787608381573038359441721423495656282710364505201558984644370706215210360694468194564644770283478725956051129173528271058433137927401562819520040244826433127675010831655952464106973205143440711834702173546214069460056530070802514475862541588377051775204755160843936067139234116113938396796747280778438980686370089492368876158152663467448975199576946795029794812511345985673163078917685157602750664725766594011086460353662116624077584941240488032020593273108436622601685100117282560891170810588845317920132478300135597173502573932366988601055315411936590372381332653661580370353293864745686130898082453673332438187866062536255928440565121159144012908060480925248024143264531790841412911963106667582551572578290315348301499512936736479252473318292284190088047243125807531971702346124116102167099329448258954880603364656693469449823238166021812061926920135050476233543975816243688378755427717564922781738895949310505390481618589326746615877594011923831718238558488506210552763445226640071583814386314798246241811866181782675522011536036716026969532679061260090822128732938697364258608709239302521253282745290591379231799765580089307602594345810473633835821957795218391643606432696269211204274734800115911337695654269913521716017116067052305204224869001329871273855531166590766024945597730382843135849066660293637298655102041022791459521187866857264983923154341570868478670294137843143742497781774593353262579457609027099011427625221080990592077363149104783367384522112235606118333977580451415157009648136631079302682918122916006757094759955314297999931193351171816370014894734093803149462595880910341092087033056986561841905361560598913556035243208069597941259054363501611131217190170014569955553294483400734960075083718254930582845293788964590968023643723604394710994667819771182295923043429084838206043444613686210314372041987014042786608529744615552908048372666894903121661488036873124676247689803497179141667633146984944931263895613904891934901288772768282461665270205081000609678397303356838856918696904572070186471236150633907170025473119160572906795433370237494049654234446122787761657772246839099957965547652597572264904472829030182362869357216226715667327560464525397974001879715780312764908704656055317328984164347250516098664809099685867174249244783751475107041042877212309903045601534302297105030391038868411994997778834687906123402602303391645907215470707886402429974630386647330922023515422380207766565795792427093478323694426016840389878276376346576050078063450025773009557804664149499778120283940850177526927146931738202797726892425489134114146984523040018952680183613550671107714403225372199005092548864794842902735418244207707294276343195865814534791320802219983248573590410318641044654210473206286696387553654371229316267970690521070066889440519928763535168649851559282159294375929164393384976238974856289354140832209293130939006248468026649351595339824445444126753754334032617489944145854267125989112923914444891569412866727396484592101972549728946602540200231620442751928325006356542943153201565826308079271294560342950518776828459646458481972442940963307636745195619876022842924648492189729874825657406445230902638050148261164535849381306029795845948450187499728614474801106389226863304208954697219273132281880590302604867575551673414651577226705008853992457325962127592716460550254565897743169690998253767375693085977988206103011660579776362322043214729303756182843956744777185869080606430905499770534880237588928350237007328079140918165329571501512145056671183854379869400640344665157381845857356085807911919102980208964671457190078730313125986247646669300047903183969782776206835315322712112769544457338519955736923734360473079542921181108221497852499107765799131138729803235673091800384338899856559307594904537288539064246178586467976396847050378531343471758213817505110430594637367247563882672618237900506624113834832041662818694229169401367665604419321901855144891708957296224450374310440442424524517650575401245648650575172219594562615166104510794157218451941946958244249160738993450664696900425206482169359904349682629289251039779735097056496051980233431951132344842956229952173136704531783525644384580924191212754860165069393968606403050289886134940603306997921044805247095448091948964472632277895101280466401631164072965867409976351331900221828978108082170406688636190827731837515437489864792606010105811377228721975566443687969605737227454379144795702412960752696221144898710469649514473004007340220663712292867619024417229002803654973910658765002654822033301818536629757121070739782676085360718921760924619760472495685419700035582715908120083314629375961970094933985555825155406234526859076217211846038284908259878568241067322597604361768517309732585408228344146694877915529726274800598891564879454183273220589788884931507773146501149782710812499097612540085732882296312098055567796175629498917897524772859373150871602526977732872567370630630500779852829323288662653198325931886659456293254344447032350821988692000305629421026476365299950794191088885377512209063806820818684804663684707572253942436064756260942580221693751884389540984278420481958560013488140186934480280867787647283093481209193355862634904657259377906200425532652943083065623764931884939066306278701199469410778496312290974973255975267638190149712737217328080995908782260164798067450172522220206029220912685663523904625933763668857385662457076222416588194632183426037169517097779735813237034628378216914043495803757057904256460894901467285590052296034173777933107160112615982185098605235172318597046499463696412887127397205609464341056671422348876073119226755817678512433370283006595517864519041709836187616759867495521188787425038376637585579907969617091402319488802721105993062378571890877053076616757458989675101412448953510500595691898467184294269384334316545894197461575771385645348579069230848294295864109690814535637429847791825769490494009374195025772762710015016891835533848196742855177014440125094516424284509224877890439820851454322427965692360529843139308375656101121765010521527539497914952632409938359043635028985713290462000507765058356315698502097237268112903753243830981535877261006786779768665701803717914999163773951613339372552294306760923735171379717099387508760752757512890107806594960168179345415134643775328478717596831195400402177223596746002180106829905442404021110282583397380952750767337917050812731071017587855113648392756426282114327815170601688147171399668997923575610563252989267346517943583292550587643112871247294519928442757141060266334509942306294966832176811970386085828655957097683305731713733463062819106494089786289110888256958701992142745146849330781765105809463816222143314998316911412424407401323936023795015422037336211182149641854849168440626985227075693985488499944388500971592076412779498382791558437802582266617066452843656682821075887301558340017637021256498865457775275870304540099319931542387110441660331715781061213896663510983746018287440905971234021202104933968154074830170764610189643389889854603434742020356042367510104491042661933627684552464868121069012046028477527917678017644130427270828496707151723944961147718852807646538032003632532425128739824736146293008917699686732578665695770008267925775249947662282063130642607325443836329974728709468384165580769679117202068439250282615464198293414692711486902928491969209996938983987324080356237077091647754097833560812215693839895009359847661440453459751759546673348631707571896804316889790182307178147811697819705743364598633996580820730815165715186468360266060321197572913749316004950127370409822189496732851881730358343248067235751626102598052843433231256258218596423147870133938371086567796891746030516186499845458814369539158553694726027976588577685085285588625243053149182393814123812658428541991656866009120591312609965354803413131655677954169243329038013259151408508966968357523473781266993651050981618912386819414370477612691943473355799320002049818141513146007884121460047673209811499388436113877003775287379542697291322308190463240151245451863759085552966428506293943627064662268529754203177631966606989513242547944099456607504199412043568510142479955821441053891678017422276282549640129261576476701391040522576235064068932299171982425923933505691717147904122761449691821085507350206169959814239294267980847027330155828951611466635782998663604985498649608225879981121500302449332852067369797431436812508842082126743617586240525361678757679217152557443467557796519839329053834568379164963541031442305846978707232790705527537454732761810588434795039372725302516690933669474175252192269817282648637281084855553598081097890481074810354256288955471448941215978567394320019174343817161937648017890718003843138298361321596907672131579600807347313212538640897416944464571840122279526390761868557458507752072714223805246446499515133818145521030428219443556673912118483209907947919063731255725350252165358359394171701077906104795979712536318420827543280331870084489290336016627321387011755801757747073094243871585800398797304541257134629699875249951441057176980820049423535738399765764029435865565525564606400839673442214906724328760117753338279931411885381702726667776578459799127451314697813442692872037551888623481933083634957598986650251649266426181558836834625052100809232991091610501638527890781547794095337558888835950650283609577454532382879657077894031579166167851077582120051940487513223623087903085610615588039886359390961170861076540566748682876596365444721903353206195919623230652346038247040205952254456913910744634152475629322189349793532823395286722513174940057546400813043762206731206776079928334866431408465998674179265308136554874805797751936052937084459685138737078511064638711468285620808030953643727401033475351232929624134974056765203877645259641265633707316517839691836953097963198254445986467513681632437310774964505345306690770613185409209998796892769124992054060420995984667306791653329767981161311905753426672994962076421033180457739080079479322604873558979253009880740662101560203008160784674581949978125503081215067271895441911292088027609254351738678658456225533536819871667714748127317361468340246323218881428921509588122150360077304825966955876760073873477887486590947955971375481556449473187972952062914717460661553415388431909743591427018914031556357004470736906630703286186315058049363849139775552483010562758430214784500381896465494870338836868597287483838466607748371438549213197048374856371790960413990329682140316913958452947985498883396226391431179988738708961190330259042990375791712753466966794511652934938817539154557327523463140969652415264513587060012944349626125710587577384447940257669989253976195129367132584182097298917199082713626842899289876587011974722509499012740998033163713698799149459515957911506963640978017873272091988067350803477190071927912459457231517386443902407059837176027336571070672089774020386840557323789789491802389208376808624347681290234207212752373071613159935903426497821668515403174405111083740746927773716502909257725657403512988411064067940692291940705564133315261931764282183172738418362047290448724338166266511796084054407024561187100327741341702488131358524422420868503865759577740988638381801506587755506234602956133625753154204629772941231235196674356538600310717252815991126116737351011436985413890605973742205133894223846213023762162824729007290420360433049714710881426018122134438211960215486252718860228123309912519626143836514242256185763221076916130988749113916679272373647555315661581929207676854125901387372587787584383059580727036565089022948771625282990091118301939620970338321453747082580299272137755451020308837603381990933673404687342901537482338755256317777133487858967051008508589513999473284256204266381323574678519480340375529118855552349570713965222345878893439981715960196320909657535044651748517827085636286238363793411494742645387708845097706075009906008175789076176499630066959100607886784110918936726236939474435776947327390930446199786578442314804767968884218746870461522825464525321803428632158515705192351569362654304942907241344413770660692344681754476807278245940901999583875622165892879334114775345509260847825850969419050979012419769126050344958768973460253662045254053375680098511882581574451741795171639223398625307874491682048585406948375543528464914267462210753488584214651125258165238971997322047338744600017011876335221569095255935530984605077941566870800631634887021142206101903053251422840022257491153712918778607705182800137660688523482614180883606948872933968286311286935931302053666147077397276086377421453462891296235565610540149128170177704371424592918370046079290712508809226808047021821276940109329546309652207646820183301607288326620759060319971796547692535924294408031130758587079322107545760899808767981700005747413629884164355553336463506268832207946494732807627000130070603075068599813450656953188690533396182142114854511749254388663941952408937639040551873199056634370976220485179697981568901259533711966748049740302750365013406257047804346313446307933292887160691668906787587614485016438227370113249805906565124590180821771487264003538264490257831352375329280968128544915095924427899253934949747835468853941345794837220859422557178533497544441924042328727232465581629386323785424273772333931730092938468018515943034969796377994253276133234629712222918321011570326698983719606907198092973692324920689364148347401194602477929497109990477160327651622789417933020391977637843484102644205327955840621460248586113822216000857738894473653388037470271635380114478206706315624465680625899821896614430493304338009624574792829348063599341380521476938017951489326440244532689191106729819850451953297088054498285237488897888833988711771756340785710527915384545555531085912732471475226955233802892737443374233085942062405831173363820854099298648175677078657341116982104042968089224067948686963084888424013739970068165110675688921423940172829070224045563587621698334716818691517778614675569515196450411333187565556216257107002291327597071543278129012998186761194389407175402110999620773149059593680401310614886632452245828178069697940605815309127030977208833528353382380132655299486847166470815362341620605097565110662172876253984837497842764931430423954742102331088586588776305199725869274133500044882423542748360762326699495452950661281855608414935373133499274648541456716069737744710802385331738007094583077600801692493816432110573252841482646326114314050685466230771002923594320900344939907290710903467749910662805809572260360448180762496107086429716766877034596640828392862786299432021738536580920374957013614766147182294740125964404129221206337167434462767353249511593612972578316381318837669581118062792311463675475715785483384769049527019958562807734692501667165937205388219828381705683843916632612457561963195698783964860818591835789464064290767856537012563423686421404694714522088150280967743852871505348360517298039156526511549997903545991037934189803451772493316476520263913040147292905836590421628356297703170014418890216240958441341697869912433386692891600204428725129623931101399240893545829771823021854808952733224841565160345690010371395544816121037913495452906022872230286057538726763590461061737710726991590298448796180517891823755522288670632535315731158649184873665986101827432263990123386475247255273777325683740400835976400206280825474987755362243017734722823429560809855234467927996131436237660608226744391876969752619083426360698153799577136274963054714521298574209667633359986657751527071546234504193456909345962757180258224922920241712476800903399923529532929401814854468214889217278885279153465963933226558011847921308163026388820891404481476640697697267902286628101559538416826100210787757081167086931897327685410377789076664775963813460768576752153254918439584855977594656270175442693116739596925293082321381050203041067815666121261159913613732210715948011844940929682751393939235270605214168430733018872474480800552378010921712595498533661129591658134199620417367878017719780015395413091779204270004840485738251894633624745663761625278298634017787015045547555579980998273084036667979793984951037885634015536494058832391853720486476574800931843726381889034329300573136425561340487287259891723788002346388104178676245048703799552597265165937938467940379166453380718429940675027065715287772404472149412930299708576275007073000583294258799680731613638047697353846296435250229376000815200170349346625209290629657412557003992312074085383505078787394459512163383513298075647813143907964508697640352062094200306610551873495358689349244447203674148869777152373541322178853823293497182935072655220541381759308189381141121872405484547081321166929013639556240276519354189758281885722524569324183871453612979605172602912278541553998721249173615872805794084171709934898467021973398813872096509659369973869739765735403378078730062393131321557781220100117681927115166557113802720301304178461180345814905191916187169443900333184614730713677351037486494726652427749958921280894935870401726680665642749417338299749186502501434359427477255399086363657262083575114610894346901973116313888118891681149248047574512515026575640178867844699850642911094337074468104036493273711155456659306657676056404314083370492430182797671611422747981600413976566629496103259613498045930236982752508607230455119925829681261820422648460032086528744892757068312915077691504648210748048315243966219242387501751412231544249403424730371406287902077698981630369269872540654298264452101820450068570661739918952617309469608725901193032416085989856475820659496245985743532879169483294064680823867502881721015955623596043177425926666903377958963466110979344661050692986124801190466981275340256556648819884781157080326624627602493957518482338493188656760211979926276015995264774094125295823445937262100127880626488412517981359541028310780539934157602319540347577211018057705794703092793759534686410557367484056288933655110531536647664625277549407463554282926305734164793819715952164058688032021044209009115464684362975701859608498266655832432479673213728636122700001780834509340173282315960013530489661403443410177364808262033013481597446713373642530025255540801387090678104836230905430266944032493594952361107143949163369210924518499538897679686490104133244013020160011590952245263533732024171467235119487995985262960664946711097618685803148605707029347090698077546490650494065466808851425415487478375835226454055749685193740634952415690885316319738482579996047357495050816534143748693471353638857566243333868973374908580024410097787387966747567229239480222967963333850619185097427043306073403743851591800283799958303542159179218683207434549505411326687188417527697374106601397173749012808349996849893228871339088074229146642251088687466602435224037410999087296651799565689004950575061788282586414113548456029203519565433948337248709865617305054684232561249124076098767218290077770356914166631314267197449999770794715835196691725354098509917893979025978233825479562748716335424349346871271993007404233993669839312169368465896025799782835003888137082233665476405509039236474720507972726113931397311927820741234886096057099910155035688752958119713220716210717325575424366048551535480327306804294555110424665930290423175176549205341594472477989723784860858146235440431893366978923545685623054588293546454704122515674106417281440188340468527186608046353392472078414335136497843445813225642888310688559387679563188279594665204981881227787950749074403758148527636733598611514427899422403011120159577281836046310404870853684871389297595379317472205680250753183542726868462781598141872987098966300102292316706027508676526908533648452688959810062562324300432657260029048228128626849986268009022170149131480629160221235886849217354810793155425628738723229209075421968897408037804174053694594764384236762537970137370087280465577220567153058457216035055295200867834962496955922917162230135248998605966314629647968490074950782253795087246006298049660125272661418832071323121083864139354318625462205600870791576185531417087257036087384178225135207412061405276902242814606166365548550201123634003773926741749237316176959589829160086437533871290362517878598991456908901451989072027042189140524918026369701301339848272694013930925989996478250593501012024384610274647481042162092993299545509373253196698877574135942709248747346808804496539645364634248693024859413402635563093095907735457694703355877628847349700133048628222507826154802966480194988701828725136947118564822055218776230088722431522029268644326145200219387430676054567419737118235873356996881312858851948966965304899514537825335040254788404928768951085892779324531545969864866809367110587906288116510539058809239533647443625232553088638303555491917281956519545582143833553803565338140792201830207474522207179009866298191315319742012334581103558503343364450720160442134859792255138055826266488175321340027573173847276672393578860501770646745132356200048190830958877814940508396435922216319588173213691614225575720040085795000237014320359945689606720811794860747010378820401127614439094384830972063979607056944505945653971471497845679829518026164277224623535140981191355506353338654723441996067273054819002902346686938130695624610711260239665641310657673680520237040134819081983449893322349927461567487931141992150899640372865369420109639518273319690837934089162225217603442011769983159809691748302023468918561926228960610349430371404136884145949603570992525059720204607678297182572204770943089852143306984991547397457985520016433237306964262047678770767307131347163757088035616557304440607712561071417198583408978785744249747074253784630134012109876369297637914792664040742757788274157690853574573872725440957338163634606102424342235174306645673341592464823783919674630683063940611422097820305628673614298968871927486848777971453474672559494363092963441485721540013633077113041077792894143111185040828301701109297776484768136517068059280330657800042308147862328858250591054476734565910524751009539644887966005726560594201046065243056395299509313459778878309131981513402701812344869035238389392068112458271452859672790606157175719439532938314218159310328493587374894969239927875586075079966347757256128026759472019165580553773255434288341857307597096977736896476950999509090370600656503571418510310263884102495552806434261430165220180307924720663544825741080529107641995366919387021051840627936124249348328391598692713784467930751586797889243236349592343997465008747844913201473486215451636683011827677651180706257717818366097864016115035399044994566609549240334185360335699983390268949384300312484459031737251917238578544437450598446383279487231505093624929654889561583114555286618377451744733552794736185316625768228309068906403318471091268455543851644231335330705493094730670553245726019303256315131236516201596500785963244261617072921556873366576501321178766389193160379409088981095872293431762800305128909783343760364650222849009686249152290705507327222065879481674364924564090804240292591006775491359123477772727578559743027398914313911342579896708260729344938893813836651984814408718713275675318430883881264686872168369447900462598747346971846321360653056864055419905905159644099530897456949581399260775616617748821107726461736843572059345183892595086703940004836489415537899440792642007146398703645155717813998957746459524666457979921466874927860316898758933502479979679266866224837713217882621352028485791399888015898900267412588335538650430083521775584989730570856612422685419678189956033930098205348671339784573354869713174931854915205641139259316631569989276055010805912834605470594493460188873644442087940506238700694726145034428736995828396995217704647119798622586771006094161864556655571500213941312950290892094126650460346332364714503080359735988983346704272634206122656610618669174479519832092217249732812324423769806658517229711777456041947034303950703668915358818295153089358330333474219018343709161197356182792755105398460416012579741139763760238568343765556359927202099970674721270336918311522740415566247522653607653783498214731864551563936421532950216255322871950124084805990283039119946319270726177453172499545585873078861683891477556949037808347559382488670848841142760222640068374673580602213136807847359779615001813825730988664999986089438311507203439055304183233533194120518868605512752513925622916382633034532968413327893650192092573479041752816326399283076994345912595983565825614510281730332882289444799031691055898393034638424725397541767328186568392250036472605397685061161764372337413621599035946109222135845980807312085727814648312482647666150694370300542161321467364359047079843209627293524421742577412722627174723242365315641949258718174583264306984432232247593524995390576914502931926498625503261464560006091461303492580708477787530556865706041897235484583016059071201569985552775051129655245282197649666288594541987042872789395607695153925510953497692544996612306280547847967861247365454427158352884314424684565288672793795795886059454299322493326356801770063589810982223514558666774030206555519531327400393298101855470959327437556612338956556651944469478532713338912339403806641788374438825608676336271888576774455068326889733982597909753186819256647167824272321851345697954274450018869917774970352948008940632598841269867692840330779080711073073705549995213741627267302264648159395929031284026896371956845105145177109874316479259125077764874839018922223972561687080255307981165288430308014810280531579836635180035006519878834876393543642613292007341038069738074564095225867006218554904719720453475205593177632267443056514619469220010388270504390912943963513208407425658420304433729407951686787533452416209364208729032481187923007566615777594803455242461936242410169754006688067622992380837316294783781245136764231094053148021799550853169877241954657843183111190128272049158653517416782765213959395011455119180393392431788768413438843191595812639644908626637187155918435586188764457533319602250802570313742419325403131876787965681686008188894983915959223480354265196925218277009501612757382222303838316749465589263003955795992238306749377398326938406802676517331498223277603360736152478434590237233701541255522354588265979534152225406602556352542466328343816207573615479296368091250891472221223136273084257338562163622948550840827799918496392363958805529347141102951170485013951276403829477666060847520055207811963285732939129213453722761547524644649644861892611265234007449976451905876600768630246499991782874801470244433978647091373116866098427151972186379971609353884521349074561825269821190675029038780831853841525455461335437556604151371976589938264011455537579719674646333534473610670410540016036662126454063254956307211144408493522868424168066257877518529616464168872446431728241852339990815956800931167557383106392662048279471540691320275373822317803551849040847223716352944717178090223275418798432869038139685661799219074676249914968037438879717446295374317176311219697184695029277423447828221809816965121629768952634090459659778632757804853947817770190528283398964101614979345274229676480835325569523459199155577125328546509719529499235413241716270060255070414317590521216446757495496225521268315703545860604996968292216190620537630502023194846398385961957744078617845624274874733546114278285412015710996255349860554686394644089530271232917447596757245712804889264777145750358535279062605698143580654997374544463305383965678782627865110318358660061486599631720948757580192405894272576313709571911840990886150523290269770465678831593642072068407064939600341128419381888916659810117570017161822681513681493320101669336515324763831162909119621781582387222284856440639049299740540756534233136469506828669341365448085503657456446075219694991934287346235342642556281390773223390993703450138583342965793476027260796649543063519845768480645317832985847546134706670828561276235610489784989092888145044408323005264346316439904125006132459683655489571720357568209997765476195190599681587204492189715220248962407021462847336440161680382858228904372527146585124197042995344555708528741827131577745304567947318240172871371758878502396939851395302902804707684846990926387802754607784669194263370083859332212584460682464939220011328787183703818703899988010355105719889196813486271593804851038360004434149593179022131939437167325806818082926751184498828567905983336928420369214345018972276007449387515419398496123742839413946018270844843196898317685804373441477263950428204788295032874056613260157884439212958801425122226440401639884359260595842122530198308626068504443302028234404876304877054101797003664239065324656960443654133207055964132170488386873957422281500238033995307400122580720536433228600479345908573729287861894039964207540972926379328004032440577160605766407276085711345287443457045278695557583548379986993341655090471021937984324382039171087121530730994897150835180401378499485896416151195233831965393699567113214875298295737458533714884252945963121979233772758957864041639401602789333388764026098523295333221221204207064519040389849882466252228618846607001639558579077242375381634907414759600689692220932398722163499064581750036204624366837852553744287249335604985242128729035111403567426803470894978956028802047736267295073298861185386006481384484841606236301040121037165616050452256434808039670658073568943132336210940849508574328277462214516305949456364171263969105082048742438378681811645751560818056317076995400453648793848548061623418772603103801997858232294025140279173220553802174907356118385824346502203430137280001709416661615170732439022828072639177873833678423346831520430910528446395379763702874475679409102798183219582227640387952530865826833081690936771818369707290413178564670800790284057828001944811831127132059087468319855105224334033769603636602744015399394432428159428344438015332702969683841937129809174807137653117302922757387036767921789149064021107214590145568557450137203906989967085425360654332873271344017965859204013996670818427010288019404326217184924285850085958374531410958370435446277699815352332814838498377013922164679173567196749726599891218284418798040669949765904381264290822276279374596707382701442106484939604792889146261034663118492527051299005310760724515175615938173357384164875679477891338673382245688716006966922324024033805087299179726549966355524664845014217074728426102718481839883654936768732603190687390020213753358253159952394840189047295673870841891204849699448233538263004578860807662837144525852052576222061914835028686222862686549845151275065203267256104258508829287487192158685447925358037821521865009825585330722146455344708007584851550490201740515126314561769079351038603663839294064631806869602711308181288839797978857913112172607079473754357705234867285500036834008345382553098699486764588154047709706705658035957142933781523108668182372448259242360746599235353638646109831283342502684537454930053631247802524510161302276557304728169104078393895959373305453198923429978333899290111923395141051214226932380408962669566125867555778360382820245630163483633078771894153368878359673307941134339441107978961487146369145404123089142094965552901472585684059668373247481202541540501331426388598894811159141577914733265254385502300764689979787586895977498845157307850024156242668107355214258434509916616924689902808348515503138469500072788148706788906533536993168009646935778525750224494801302398801438440426349872333681232131388735998569857469689612221454789108654966066543986532336484957284840302018212366389408678695885973893218565633508151262165069167613449272528085246193864721967914017383015738438965480690047511377765984058788415536635322393957257900448141593297925202120580948815653925013703794606674104528863147107667001299000017730428429740270801782641390718697981384602014283763474173648648985100977677605122610852878091800356040320752225607888419402227667893074713565748880858341543225906929496706300612760567765447040710986481024977870305468236104841022671494432924201006978961941956260337693353695785154560133125730286591595801777358191792294535979589580521689921947737410814524702665840328774936604546003706175524557360387025985525699461421413660117227982140415899212236726688820110608642179795375692841888127717885441975363662823799719771178236837405983543552547345964382433978531852949697704980475083608459279302910977373696316846064241915919295005835898286567459297674217447592516916563996386649426873386830863032130805999709486517373141683454415573263943056603737403177387656561062609513699594458331087527184583087245911067530981664396477662857800241495405637510715319508919838307706596924155550255309662607741528871990099818451624856189577404653537000933597501048125348551040939208986865435157953934782035506999808294653767521064745343194319462196208549322896262049318720002227799457076547472592072890902809386572166162311980442529737073981784684979501547886073879588252691093303675564949919884503618382209890556730749265135421058979517063605477003188761807453229361112709482373313170597700473502210146049396603425266611161951948881266602167193043519118125774717014715012886408185551940514373163656766032817743713276658929319092450484936532492816166322989331304471362411886043949359809264962993988122801969000020268422133428112819409206167790905293517989071979322610747955256271973798346301143285762880966270406726904713899357382333269675258535043589062689457063011488570058024141706377780693742891374082665293736609178698691792087604691393558943424986664592922945377541945046055733104844329737651046464513491709670911139387787908933288760400644290790956043117822009922926350484456407447741873231659647896380560473514041354429741025641528296411400353203971236990803238576516712157760368403790583710762280341040445081897825817223627431246559280104453578875972000253090369283275032796709205727172224003699380251226547731944633479550497054339527081718720349120757546914249828345870313606000918701198722279035098410837702501396888074644790421433663848777816297183615349002787776037879123825191321369673393928379399324218649478016160813856569418103253318573544917759571573586147727409435871118712756605453228159650884626388630262664438014396613855989540256324904585482862485629346807176292019215910012559032745565969437103835334442104133237487803546927435393867618747189996630028674762037728447532051035388610581288964637515830422404709016062588916643670172404599489013169544125188013650501778336260796334923386945565755446665601812937612240276362278675517925019673974307452196368893414928732940123419603194948167232250822031754547310003289396871630701870851371684207686613808582143982573935839298704194129479265680812630532764155306871405500254910215356160877089382410729938457846905091210955849738604476417813802203707980302271539635375654931791102384236455242758700345793162036060339290257949311308517902357814105882278732012693308266201533032342126949829992032949062960613783310420691226492135060787463331022190567512570765443374352420907549606160034746846634434592281439474170165939410866384722714464351800979227958705989213634264561685278654623911004641535511974813419255461669322168129619324709186990707413528726274820323943243247735871628534219791994420783906907322860818540563365861212446452039251053824208097408908301761001474339951078419942647205463291067691523124817692533982548993788548897976840005912086458729377090894617942343420535617772310783819614944391609083639596437721265566433692937792450430757888579679829190045709593542988065619774187115016499683328065542784810458594242506411753241814233362601906167196582245424113925172049055776772871650224735160477079870178620565170679606304890387227292719143723076022720529921182011101404402465861537502933564745830153837940250462933927425624638585542522739619812958891546420689728121510208852060563880310286731695897782110391594029703325251603245239064814467196785008178539733573846677351030521728007544615986828236987937219312306127211160041691673413203192438648806164901091812996545508453208271647622572056770187153840783325880229842989448274541153877294941672720504659717363999079597050693806395009364081590001851452665601589367615260233086839970959412287847212867315821340373136149569393040892367583149894836959001763137297843231019897532669235465557367990277210530621283730845706237429795356180580812920115044354042047141441363374073689044372311019212617435559981477133204852416479572114311745804270650422327993060026151955095094991243391629393538689748851847425788521888281254993906247584259696944698010699751630795347371068330858638842890408069814939033575189568214859828998877198858008116975889312864612817716615785127140552767237163881155386284067920181936749894900396307486632133468294935045435249382032098343546794378816555046296142679966498699096443222074892349388663359754162539122510032306050681095672190952532907576162933283347664332957341414433052774541096366130954748455938639324555920389850087248757521743151052205701672954214438621834491942381541345739633289829928748186142339960955200550146496315205350577733516718496990811990177607269755119631200368386846984893942940642890060473409462487193358042945822117616830364991271170953595858683584903393410021802718937118012623099878790848052466563182451410588101403976050630253570562945921681262759729758672322217573355782663393520268284471693168670439545371507298156451314682818740259587412454794944587705369837328096620249287032666599576489473896154970721344659033924122716305570095204667216157214403773181867199866379640695906572357256219207989857507210949079632248616115372873150073829964107884867058967559058980599397902280843054420078798048881664780314463584437882474990833551434880882850558850064228401671052638268246736307232720307989883831089973002292230633837948085947300986013253575162927995547844120905371859919177242224610515582214044430202853808790130403850782444123178556176772111733293614718179428322875430658161080384459712481273257948988983708734564070551408150712838905938093714411360317571367598911423386095167816038562321152593038237709991618669501076217211634736947507701496743675493476483119164923272835009517579038781142367297143446886793200277820578806579113153797280819467877410207197003690030186579979780194307839007663610083647935969416716157275620881835038227705748345924569380628916027924563219831361309036381513062728850553475327221373566865321125269501821309059153937177920718227920681646219434929055068744959603006945966350331391750388147404817628316243882194938510629902324564430307776422034243043157488414779669107646111590320657420882030630150673210231306256899322070915937554161356088905700903124740729732793022069644345239597290719642687629446962079277540724444437775818710095177783335461977964373984141250194490734229999443663494845784292039498106041853086469100054464983005998207752503426652544611999569929985731715287174697059054408288498936609577192812249609703912460678226606967220766602534775426576422498261495387874510994813231729891518427835822315487680532264832821032759843737264734211542372943250060823169199908424360326971564375575728755840138503940738470933931122563284129429692057876725691465731117841789213557649404200939992216992215000421705204106788522143183851414170514662364578996598637657481856312928871764736830853129871379509311957850710160983994132180825225482408745750465726996902309364636567588445099619432974281187079587130500930970121770067565654994609388045183764578306083153475758666190330837672309691897340458397453505747427088780659667275938733386264884019743237831992771815915887236280235280521307924051730311172542588709177395759132043835138229231839197137614628421091602792825980637169067680789078964072450911923283670421841982250168657106667649454846266676538888483318129936402922455819402995780445784734056440937259319716472353588819587350046684757970155239419108386905013524900835406313702699106642442487711890132013776583886885807028455366213049752778289840205103224242572044605304968723264011909228939884075695469898555564851412856016075137538107327322056111866041557092216039257853104694737788525485650427055352366588941002627527366047633427446059596995483630429598225188054523454662694742675942850951670043473044737446626074713543748144171597709127280746949512438943653313539568432632221428998709063095641163176720851804997921280193514635959364906462752536627727765867603862676548944774699259214744041459417149561561730512801777253922828391267116189613276325727316846570968778384017396380418041578978705931796911957452366049440165579141652152976304898261302944918519307821635240341297225566377923106074436561410015865719783884069629701788278575466134670555783738732508300926014339208471431725783332252407216784647485891894159080593445814767345018729622270345564526303986484530603707491347461577337391215049079972158844870961504244415309933117315879394587543534937561605967925765685756785907975958685248452659505488384393210302916821515369006154171043920901389724112603254445010044053065364456931543151890733856476981834942655586414942544845901366258506741065378595037782006426219802889431078957939440818419584666184920716628355534650617842316960665134203804222934489738161111021869031851761821860954346114617368548355391988558809245494756211739432521144076889454959880248102409920921968020456833427417126225653829613559256617008789524005521671033833413225472329170664772104126114117451379228739178104240747361713933893918138731389332021773364632668434860585963778551165980858355846392842416922544207918487289461659896190960616487659874183171551479457794440456293515439116160457749755488417859258050571069998504304562163935810524830720964491956380199949471999350645709160925893203894371729586337598982526297579678372062971688664283958204918922028119908744483619580825338429801917994665802551416206049999098822564251445613443476170268585885594168948525282960274689472499672625939125923883546259636052561310723083205258505451192568375104450001824565134202288433886618702283138994919780325326102760897461185816641299508401172673301473270926868622518235918394018283125411886339006988801667446568844477775382507773405141025108585505956913354525223946480763199769801907341167036452572193637435588830716911530576126038369619837516600991203937888950623720645817572740222745552141457612470635811936935198844359849999359816361936642525981488216293689441859532543624387545651840776463215310175341987693660556728862270158540448705109767003773537591537769756048744592515212269821312265608055870640493823801333520861367632250123535440149228657499267027627907264901293265872240227283012625638083893366006648950840923342810477735039065670956602654924794982499552798819749984178949838639513695304204520312258843766775579948881812617228805614830808593948687313870006024859215523682545737548229028698618257524653333110448168718925820075153018087895018342923585106924166905582771483254126335755978520785634214914926305869816487976342677248851630192170098267374912533311751319843231185200751302206884110688714967166767540162447479766225315199777162549068247522416035901505224962702146730681821310547521073799315441288556641300947299204115239071199650232656076841404711927570035627457365432380748731574496043244379183312227503592994652563283921840472332208293560776605304792419324181180286859569250191737368653503739540352943179256205799439594827725512876880256845799694006523033064053451165883192561229585217668047934704147495083824387850084776076364787022338387282484610476339350939195846402987907241694699957819036109504774032411053551494623346800837386886575088110369958694593078418862372123246285034024290197664957305847394814166744501068772220426436744372558289707396463429233462712986968929291064690407965688043285039920716629771255771666192365102959669745067583643242756127182261759845245782576616939236541774965550659811554095389957169413074829359388559216544355375002770546879496548840777998491939376848936509686453878696416051104373160945321873165245869147669724388272885425422139847050584743227738216699736054059565750138805342743176904514266233625532538900153574289924529997074014910365590796889176737419443162356323368182029082528579473814365176029233312203511743176462154436211458847251261959331120680633630346712525526844625558844103177042939845654791830886097723064342938532687641918505470647382291284629961805663931010072049723842507130692149786429526591127287283884092558733662039118709845181442370473028281847760937883167251573201481035674703293995202618817610478379455592763643153591637718245201165723154540827471201008603055350398600011627319837314773082277391393419986698521922953938904021471813441370972744088814672130353814430687220156865884647241507635973702513434549881717021110642672736756386406516727728490174951951102161180518953909769495510007402113158456218254572627734801945651361404159308643267145022244597272007898129977087053740539248220159567293970856781668746241481728758404915804421462269848817303042081590401962593019164537430812911935281392131291040713153998416671432746197871603041618164629849126715250671280014327722956012894919944533755031927091748572887434472729355461761921454273216129774012665391933604868179249811656106079599354371888974836966849374463430657981459572072355310383688656711593952107958041920554070065723710436798905137610469877791006574989513115423248602925609440197109639779381788112564274973914400487104512087784430190151608928971218177873335620195690995501815197534929229422238717780308603287719197878355562088577541930651734706457030293530664183285151931964789548102417955370074376473467144699137616165816010936185607852455002661434349807192343582966336228187029761141031873339229804803088276965248977078848650087399940132104775112835887624744927930191791650413943918222038720960874028876450351280694642772595421444717234284670398180397431147621546718670070343121636322382870781359906618803310520718736292630210797999565128863015584271882171383527651130359678151738354795058244685541162778450053093581198522435792279419933733499597181469312787053232471996369589194055365369535056822754013285888989317155633679989670279935578870799838018210053744451646386360658448130424353597868665815094120203537280126113263087482767771667769096882676794457584798262693870068509052838729969724389674951470932051385201292064574996705732006242600581473280176921292056717948937799901846834075501986931414454802123395994932387902397460089442773952751342500848966004557840017804681806745428815412606131375487705330402934682419835446099810447410799501606457107054912307972614965279136737712853831081625282477593057184440487718224946970927415947357145060044584400754022193710235303802520480713730121524322448505053007893636403168567879342139155388510106734246234704376993323936797447077260279097247740939937600420735386514491740806995671390996900829967335809252311808762799325532782924906742006930540700800210690537029071536917885460888844641480393141276735159044949043899397842224730562487567030542944140046192235476993311769595121634398444954436079209219872805278013492232388868444443130940598915828896550587168454463902020738678846275201285264668900955324559040413735376495389767984670861866335621351501557033856926014281551927822021318187198027454428362569301402839508718556709849156946336169042288682344610811114672139603806028242657747043902735488425249928912862492375683987717686150068390992179565253412148602422634131282153570869220646514271130804645738649452946217748287692977792153177057829486730289239546047386140216994213075880177668201331158325956450115181423677817192959169918342441518698633905868738004834318120710738370241914543816026812963717448424369729292417760561572515967999005330706088237290351582621605764821341857773282266542961336050584249308715039439087480222139765173148676766690151144007976949125699695609958427206637143430705719690142018093128144997503805921534074539699701115674016150966713974556814117375472586352406541443802744332333906067312694854188713036116248859790612165931126854850294040679451841259094609526774353052850078948797670472566020888515991950037220187371338995736859673913647763298763151836558804678069063182041465840405291259636216050493262115289468936939340681943323489936676960638561340515965860140365822778185274402237861413942397339317525590811707836388161941726854403211414698163841589688369889342509862223197812091622217137696179463844360333564399111897310352947601789484379131982508479959871699267487225879552462262900212230563842465330233307245592927990591380914691041703508248721819862799960197377038660729062139283401770966056695099999230860562732808150977541756984586612833007649263802099310805463890554841609965968835676064452817974332246162656787088780250794016320564679838955891330039214629601466055988360935777556815962147672305562223595721344476646116443354163079395080841599076958756955737470758925948222795003349281730994602652412817564620374555172006856465282836747573513428200513361600203929775184961839798624257714438736574962730029689263459740381955739453467993319418858667658343014422719431855991131111009843128190578256274866803017561598525397627495106560008145939780700750099649146161704243605811539604833845819978853959894935589885574092659201682509114656286459996234327658450607216850653359025279515841841881205291305186381539993642533773623992498253104435612568760974652253773541783470556668531829064318092023802191126109341839537617037177109501952643318244996243136438779045898113760132440863062816394128246918292745419309064146734974668696795633535932422730938473515882531880594101494163512311009033615833288231543892310086676367894362234726217729528652435201222566189494377940679763806939012700687727650394010146218770102304195290280967504520294313707058906473496766766730733551385403055124835671009428405179265311792774305013599580893583593543265392476636355312502972043122889911884631365406923668215939432667726871097042696911427616369262144895799931281309619493015054261160188118551285446663722141182991996927963794741196719360544874153114093391938348426992902748356574280128812938937868627289959524155215553581049265607399132242115799004036145409067112445336833041573995882114347302357572852919017803674592770158770630965895967653171154148554347269253237878200497726599470225097496355251279236584034274744951513351942146826414201548601214788871117684300552168271950462885458831070779619789315590546015504418379533022700738557293883952339788994890733112208272480086282898012406547470340781661068900946217317858675548988209329004539272435971636582594452636921022548882961967372563158635501026251542923192654445062680272475787620284750170063605404120046031002774945937461766958048812750138214720403599835968295742843373172761781644756836372256578707767197383986533812767063683206734469566274398255060822860130890787223458918110668394660420730089676133587032750620710153168912026051728066817069513005363832863286104896613741289124614263368075426233849427684033398842088150951587156294613896739311365464325302599921343973082770006504207468113320827216512211146316885195307582147926479831931759530711628091895911712737481848973906678342137432652634291575502039828374048374488297996294307567025646405742827045843216784762024339767371663475153269439880421455943513006954312823506870678285306859701874257107292197806456659031802455436986449850492293528493201234201206526342976649846881897687769577188625628704239091685672099474810701001107546716811539768792446925037513419580840356061847201652191018241513431179256513542566627325523343991507484866167327527649994876887976739579485220893916746115811198166129346834759036437035606587458167003707235989149382132227624305503197542418433318707376580432844400577567589122726991270793214046740971910311262044785346850777857690493495533511720073665544978270851615927171983116604355798047497480990298854875154859268545719077225974078114420292447481679452136475111830478514729090281483516244390250167293439772348882814489898703710631983628028984078947718768754201436185855366833183034354964809138008341244923322573210178703387120074634898814287507065521345198932471629549323349965678547455199125071266821094576097277788058494602110715452338676244775570765444752218729280368613354904073711750102700629147331766745701458930660447124217481438075191585396140117224917300737688001491899488469600770671420472740348745223681697566749551889689280573639161437566599600544624763491729981726783963908174887994348425592656721023105472589370576155488514944525142806755480825503495276328271683402340357886353898576416956105342714250286958192402339146733310298710404556681458501216114242160771275982326268413072480898907176683489647378837084153503380514319457817762873181051068695841293662920898951279228952844620802645425973530824443514408691449522485150868245027788916372945354960579567831468129508042986335910396511161339420196491605054679977860510674902727864965467714630646122847091300712073392783432188061643644634373262151392636482172438419752937115783650181554499163652523426956465104782561542974081798959995819378406358144923451506820678261709088692570140471252975219117465681825232523370663224682150980344863749555744605030851937208631483653642413301490151654026824583996735488219727847885299976378194074162155940957309566171336432242645849401307367145040130509304804569936669349194391537714142813121096744030501453164200295749660921029810864058677011664096074466379334530058888760684717328128355429834810217867378022300275524573735997835574874563246099823903599376882596447115952028463072912475225574394519401927599369738850069758316961003805247479521752672066065042453328616310277025891430800674660606632803059651697504683009199748153504918857141507930928580137146495747667012317544345003907543889547330743778873779948640173507056863940992820147253160144321347718135718956600604336332772415224039723410947170415449825822115264424677135279957158291977855296943356359648164384949685016921329553442443005220301191362211250889223903162462710603244513777324283138869625446682354751358666970437864840081787452520967188539959300219036456232375188830131891311493146741292864583443420199311059751347789210957008770995764338060120099960100827322833300072028613350753719251187466123792102921671485636018727578316304785085332048073966382941936912287704217071472072015675837271698485683950973327728250252062646428262799796530349124768935385116789317184997728255423912266026021168998155694257428372804662452291642348648728235454637294523655151429825922267993778399254275937705383598969288894339861529012503460733693966684827440993533692151786445527760966977254012998831682932120948347254613880437951244811549885406248868990174738202989725983565953662151303199337436826511468999999330335833803017312277705345743798639886161391072840266096751479178333564767595987878082282458329097450114766714467517016227273252643388742268403954864366891482836994359947753479470189135951328001490904255210817019884436054920572884818307210605006706402217561251992655774385433105557245770628992329453847882587126354123007165278056760269089838172649507400721037016787281251590411505705888532148288338431685622028543176056865171341327110757073490523212211127476619038271921845250030674978921936630526082752955138503841940893249322304015930855363853446410068077980637924920346698535927515845753598945022576164708883867759231473175025854412619684612507485225751919971378278618848813684760638835409524742068116656838149808250194529575596505708063282542143189109132664330765839274489741881930188000382478976969799862775449806566538405215711088859544977875718138587078685210680000336081196815511306769396120500940301551857981463491653235611783658988009889563010988881521538710117895519913291368508923600039529663904585502020217133318254115896649174463326175626555616733496460514085861747065163959932470166488247744193967027589686289467509119963742338526618948191131620498583834800305379718799528747775016316707021773682891698335762664650965796591864135147630148816875828663035017578453979702294058020338654214515156737785838714600496962577179393027915467869820507529618671742381487410577013454518126936323793710184740341701954018340355550301104330460688829956437167396973444491155507761878084969397366562871556236102353400157793180866166980950311895546703828513210695495539121074517108476198147261574098046966158442934853119953475483552834955482692495726648988183854802446835581987694172409619557434128228047416868433446607986852886371029686982700021116877119024367206949173468425159556887569430783527189856648287653091892282846974109711329171622570238036233006429893851316439134914704254121106524320991994427125236472031369628613388834156735636579433606447576084981866113002884924811509826068585327380808179286512921397990826434297244657848664308902854858455811035545828878946487691782668328283742194701103306374338992032858275962632196991427788264836458699823185522711484078246961255338321719684644021025359748371700036500553347244476287636597521260531144961225552944707487502205393738149852612897020815529871272803269712284712151583470912957096734142401205320131923810207481235950482551520490799661767081938143796042408455284312154725289171697225035567587273465411827390599290633653844995662728331935772563039738521563489807370797000899470634968985249393354380550904048249008498106386167396325993625454507720676310647706746073600086405649186828102525827755101279552648829111420212118742743363966399168380279623433664308452244807271390027043232945954894545959940023208570979869386043436417715013740994826395057160176184435250920924258821648051447597791440512253535901380907466845980908376154058044825999441731750381643063252477519384389588632621300297970790035745414277964296832636799386110250552398295166416114556821739779207981732152054147893812222079339250970899526946616726073264150238265740604142255387635249602998442181812195978808365161214450225747753902490473075796226196723298341236150115163034932530183479249067159592749853798893144786405565617207987284773806071981007803452404752363912486638227867889867695698443876238937472839647236493356568274694611291526746196024078981707379479458946013749277179925735882398273791859343008784832505073193930490379252095150998537752465837883543173514143535634072047902290428656106771606908667329618015264488993647855937876929178653701645515680012769041204048160357953055513726621015977749438529525778359359779645968868799862402648221071971301746102376042583471815356488148805582431909536586260053854563549109911228748162070608232640022015600197843307633984282475445792891991978922430424510493999650033221738636373688065330805857948613243175539032107610996967940107820239716381867883286521719761306560983906725196975065550758097156163520645326770228614611473417632369362192352109331864787701533183567644451243351466162206405526511494504532621996388955569215550200747766332095118715079332744419856300710382137957390614465543228059619305207126609793012901898414687589785612391350836531511540361911228886628687231495761098274283500660096487212288303549016408727657271983392822443137770847968929580707325383152987635982373417418499836293252687878102491588841138634379701887631256176690103425403692979832788692935819713451943449277734239966218160575413984623268132219993437702052200579738955474569560436448074420870892839574075627722299025876726227412070672088744878719186902232299297225689312974298592477658133361690470045391774848034304117903086680354623009491101081198162529452153871970381183500390664447210654047389406262749258250755266791893428342280123055707303607050012311506971880533593948552767221030399575422731477349592279260569296363953693331646706590848957261316058557561869433567633406124228419336700834787430910948912239366004040763088923567077492982612545016570802208116027616040846811358280479532179845220125290861777250950750785529650669383788264870921346337670430253399946020920076971351109112054416282820712100983844397167023732924554139781786440935535315939914332845589145222631026572907597823192406503300630669257470385218892561423488559565940173183817997340870526128544376485870125310565237043427107876637675811834437341639967884577566742617877657359163878101496383448881196995819785767999133095692016402558619982488828749114161941816521632628920363462189243758881769350890997833853240906234576963076581340312871664635394655890402429078684874889665151418317896194097230671690852460122937846205939535539405207857361098134977849204774056144307277818118073552223787590161796909886566452488252433123325525614571086598266893373503833316043527025725187358308465601421279675463626943780055398522644780345648355470292514661209341236634273471314264708623936629956478996372716049054249095893236533919047353121627351227894796525257407930098313645327907706869450515016727719247082116411455609541171369819328771109476758111768676861173972010180882725923132460207392538540286152520720488501697458224711418555983612210011970702763239612598823015043073241815405261916508641257106280458875687614957007715090924546234657047773830852123513070939825464602287173042651477934355378248291122625287212391345630850178854531460442264938468884244020228235085795827916364318140379353242699913821995392269280483653386056850431110257057277526817236161654648834121493176826853637582554901647878520282631625506764265992013798790457195846982297744716636274251891645210853585447465309253738598308601044275646895864624067574562791551103826154752523712124406645917199301420650511963210196447122217209572471547461602953128979835436072265125801138494132617554927832986747772331176316842549103206574097103029516228554610505809024043443575414793891391493771188447180556668178663801150675314066547700973070831961663284661670545211374911681314007945867588788224976268114628188792538472053198927780791906973687805846698491567433573419156820708760896720260722310610291235699805706114161338299079986961306960377298340413601199550127004913683308336144172868607691454793927861614379346376665965574976281452633321230544448014284864258846317966602710087021573140764663106279532286547515086437675365263922794227516932434041837999397043546109214382458615855576835878534029013021336651888019038839338623677699468658209339761888023615018007738597822630790961163227010760823662665950747112600842158525022942600371241688267410724993384389330033653005574286967778816329208860537106390545273197565034437677462413029148843742904903291780843226536331364793377294399976969123628779717250469047079202631690239372632925017893038028528612808991123455231444339796226409313508616361487215446213792227519328211359462466622366140650710486256029919622839387985644375772716364212772379961370473129484240537462562772221223512298841208909334248987261064017433309634776599164283906603378630614378847952643734967454806951252471988489584418875308416964198206448603200689615975208293278754629197519979305990009357394376032481096845591378783078589313998406982834634300798026276603795412000643637481553887399503567851563393299549002797965379643630994585544296388232414078599042007137658071477699949635841248580922156839385154031040193410824356854809137204160068560107419515299550798372555333825486507126280404497906588423543160762159195488830540179513114544843627979311141537190237107357165529428811235276511348206912357291074853548933335999014416588328994454106138116781066841140553653389338095547081428291863026611425966663867047672375125576132196409295987073717476455693209322355397787928549257165881995308656910706172443741664742064247926150055974671181569543349981941987701302530024255888609959248894033640152740457085247721905399664770413336999355951802991098165727317869144590298965948449443218124736881191280840759598055930338128872204084193629374368659800230837959310787655670406717798649223484867228556567920341048299669483084331692753610804902756837357148307086269549413973695459888194437380325900571357443132660950100739715137200431373212951071687383049169738225314330236774299820575706917702263391810058082678224567351601057583875673597647583550157865304813536200311727970299449437358799520430304666336834561210492035886495068604951344799470479843686645500742431213807067376068064126602983210885202851156948240660617083625312573801305302408486628406445576625596091504607653657889301038324341216024796330085345283078041441103478939030238803003050395700602829848051773919863351994807282177115252651738139094103361291055626445739581648405617082868809202893117180126177473447448684238518190176859303709509647705670453315013632512322400642123026575499780763406959044604684998465726382717071193251942993389279846010494002439915334103510241234970381253113345033890994467858637403487697896715469918405427065315458244125664907436575340663212973973935746378013632345814567705149918601194951111888548568680527273145356360132198651151597109456929361431026886861318050354545056792185673080338782250696035964282409814385331222437033326898636482675250510749290196931527350131100334734499558741873195687911963622590539047590322548819598913418806631768717392633876402556962866768598455619096157279362714245867658526092752140342027777753927381335765322054169044740228741847629159563348682494816408754426081748468117180560048946246240794264388313404578690916779371079324573293149238318164010723091792935113334663095885254364772479444354443927790517638562504137578657937294605411906533519299660377420470809797528695709922482495193334307842385649855055980773848572319280166425236933695239484674295404562760999966533969913815223633273645561758592558658266213726568256413994138322937401813405041395216818303974058941806982689958035431059857394853172232872130131560922157679393143014649913702711656436302373749130062086673521465213283339132713694620763475228409565165787579475696093347758312704708151060423931203749495771289899941041628984311707942836772267920642280312386485923638753987187603573498617751839519113871368785852661705488363430119033099613649342572599066593383946025042173594609862097972217238443964158902658431899458320568832024258345457412144323005382917180615000119818337599706796720821791767531723815453093769705147532370633974804621076916957325430297604150518223430888864632029606782564527910160667220274956745523213026996933212016416672514638476019398790355356549985662225289441642145937721373008565417071378118951763522386863735184441238728171123694636826114047396579895016212360931717895935732755381443070767963431111322560121041297344097872470549780187259378996263296429005128617843919768507905559963674407584505383419725544238896350233439570758391000075636567569176530775108851812319421444687677543775952912853198110223408079980511597463896391684054231406053482054156053500333654816040893339035835191511751094322245065376506724241441903292951813423622949585844387250552376604940863455769484824173900104261638243429149175527837868415372266577318180003902994093107769200542967621784634822778956431113580922408443732689719868411052163797694471117265762530729343701897378753069124762116473418758278622874671064060804609895894021124359404038165143505371271547580582858728950123783157214923618861264369181925341631200291053638371850665238709294233781002218155820566531163858180148868616680092860324183122138138521990548298907891917424358932691611816799916151390823942759008405482012167980515600864615073301801193333068882825110926123086094775296679493854749421764048441743041389056308882223319306199837667610396505581962407554170409117740802901696639747465435048355609796613379664127676836887692448366703678908626810475321778256989739945003065030919524197695011716856656132417532129739589464102093529671189312534192290836236724845533452875418437235054172919629036536413916226165318988298985667996587428848784226542305969201541278727001071997106572055465277398675838139149923958831539833258034077496380611614242351066820981440132529475544066933419901871144249816635369456499645261003694447699366711635666607968315167723034811833968439757427454166076326107887352146069230630643602854278199198657478746336470507148423001159425484581138801416853700349272369252847192122732741379969358734532853758227249973431698508726759097308134917497098304396480313215248598267857767700174820447899119768981754852712562621532547188173434941661443560860278053585032827108047118721294658342320063575174948446490690540944442074016292585596181161560424965208853685514232057617077220957031909331101068899239604823223667797150440268815495810521729238394678078953696624214661381511906343180498249759200764706041845514799195269636244577956209406088366432427597076830662604798905640578053322296021092102090564519732491096536063730855660461512327997322394846500226080342400539901557437091923515743976545756584995472540606923130229272312460358390050025320720815230111492008849348478429759799529688295154651239867818770015374372323403953318921831540126935928421733326801886721629241253053732382949573664626954262600034463912264236837972375956484395251158403008508484944137956484835457621909592568021904032162257379830519644857006166898550428368305975742114521657253388222100822332409051754921854604551527921024419368459135116353400832034540641825396879716782148676188687995404331977135607183416804791929392917511871628702739036509650441801686043173404669594720917639640075411307256285301784221093142047505442224470707858028142702478971869531168916863439991168544234265323863063177366476597299544792520648463961488733698629332404924260184073548302254715215820056782219222669226167568379046802970682299421486658574102845477413430416879094812853474056271034663131453240440817355348767861769309758649364166832691604711383333552746608387578273702055120115121053873499710690322337061083657281452558318806010249644226332096571639214620505870663535723260048571461378828548606785385226564843528440962383249392954339346050313548398021600500079070120254553168321508296264625874563594051619710081229883314337197739173051017034601794525152211351164883356442321946241197614752798333967064948498960009555278338241586740392040719335791352627909166573241480302216093639114343857031199445320920296145520341986367123174964912554310212447925242514034611958869918083486938550501277477021252236498012167981233381633927872317880777827572441292276026766948209368732540186184718556871201785503970568571124805484883767202023572986197363859069290840880922591141045973014938086737667616573914952537211988505482291145662574746649078004109659957114149182770890708417678619370527733066494336717155988786786262500463473235216303777298581248833248572003551801207780584828140119189071893154892568870860993415787964842960069309053564507452412825317202367303861142937761916049164279317519640758807936140169636398073121266194713933675498383758460378572388959863254942821871386478346089557876089052365819613242834788030773341049048259845978220006848707329314376399468696988859139664414929354338483598345346262862617849754962027077732518262084056118271033032829758021564147744453349988225532842503271561846647629516614705353776116873436762020242203258013994010654042725414735925346033297722710839194976785496523800747404535275879483355764837228606617293245751642479103452589962160582381606610620239794071659556853394144422842576838773396120887910362688174284923110239359026475776641920689480965164427005721395383789854089829405504878287171268952200658929887884512092552282115798486324282871306558624479726633561418331149671124715307891481063783605864642540123352344275574354445295809123082038263815150653920252591827097159012427715328752310753927699025294475946350303735621784390369787454545251982878944732447891982943223911031372971730872825213469756222155533993150615376849024688834807771442538154754045258686656054814136284340484519440181984454871775131493870990794268106551317959248466920126731904638943434035060236232793875070684523171354549687177037253375438520012775552805772875941341110228035873821861117148562570383347996381910658093429114845213537174391348763423274244547035077747017800934078857620616417918117420013749244445265976289457329950850541149168963331766551316051266059513374076406637387903180664461992263357949878067707922379342486850294930457405363302411089875399068116550665969295879691252928670234028519691396219816432521321690814140724289959847441413549939675998629186926028850096984785330317831768259052472400363294244822376685757860150578551765384114971939672631159832414104469206465191555918215913583752756041312833103224913758582072472897730690593071003002259811673346691656384988104984548472146636261816238358652907743219969833266903252666617071089854228013279832437283289786486628661617212943665828690695803647029374598689039972181977724780764393687956000857729780460428138441033628704696649274588463161248739187304499445463256478658143862329622304052859659950367447067260706560351569869996951212108186236106802092240828964469624727727248722848054253410180859040708551592376708375564833986751273080408735732945532862876171189567741190856364037387159127357137766302801056709057293980401696050662890420716541377150724073047301423532315460758039977160711977550403283543718073009332699308075423278715016549587795089722802375598396314313094290345256991594693995118116267620762789291174511011403578892331408680409324808107435129852499481851475352158899897952156198670948346456027113568761358486257245892179650748238095187512133454731923566773098682002688548782946749291005839770807916396271719779166074102019370955698581147611141420031117572069564345389235051536479425789023576932329824905200916262535277962778416648971074360028123027921318307713722209589293842644749846126182059097446427271708948804227175080387914628643224092012716247080556512698854519889936853879794111568978696150245665945900633898650199798241623903196266724771682935824453282797181526872838944536449294991460318576160973071797363968349109460942085388090274277339990345930748674022143582382059424732159145985557805243118606443189942457224040948979629116199913786310987889495997110071993405423867209706750876676146178071090934553876992659044265179042340875141997395857922125212306498514885127344446154948725345008483640380979774407958226495915440098838381680948174945375869746349300093868553563996737643649632355989784324475044705079597402911729633418742845619498124417824917025666411657741011044759165419857413854871154940723329744673660782677090109431447515699499252488864849324579303298329003876056630184209576055345922080881737706494512928002934102303566081504879289953525851504566673839143258453365243040889834595074575867492527240218403221446180384735179670158769227640391169056858158750261997556568313865686193352303711023081227562928784722141180722622710865498055487751961807340609094729852452269707394007203857465371274492250080641082149555612888573472801636992313906900348586052599574889658892462641791935947805170782441318393588512858320165436931039553494742859007598903118922565876774513199794493905133443657914784069671135442531114459523157799156495420429132893129631036034433060736033565525091798945417370015695698701157397062806025398064167172075226915669717230847447013601190250795296891136091107523056562618830862021616586548389667452294609834194397628293513928380377534698880244094598930222338039276590034307204500070570382873722778536438031147582838790849836311445166005180895216614214422703991457787939563175423134034329906256740350089569022779100585215602017243124400826261450035074610152336266707522789401834179522972992434111200453473641585797183025362645581564367257990510232141355638761561437771080338839161485221953173075598297057198007906852918377248447800141230819819151568590763304607881227806637025784487453027562981648847144149667307375106874133393193638320392835866208783400224361547334531852281687599061158042282743111049140082395127022741536359274165612184929350246828357732959728934258319762903710100913764620543996890627689999712119555056334850424637977050945436173476465905689520532750789151725623981025337549362748387229406080050871626976321183744496589394271589544020894934118397314659189525991024003541706276926412297483585681274062268190411550000986648077163462435112824428093476572737350857552649942202258517121045650175598162026283748045052658618431883309299807131340455920384299012427395843490023117360995000181848968556968199083732114893251291521485145368755581205362716507486367562948633384813532829278532776133225183750410057244962251688231809478694228520871801448724607861825388542117299150369901726929023127265467818385494613796472882748626005534741456037401633227222138540141555505630030228618999317144630459657917240900893411499319995675062156636118235690750312034940283710166369317144639281512055632366185884923239287803503275478164999443843870444604779318578860370773420099003017867268307059911706200087845991637023400994621198633728245567345118622072399273011485699529278304254144886589736854640733334317418416033165421775169500861071027090905670702986810468139551524106465452385705851472181407903173501192203201204351405275900932479864227825225117829084072048379070941251964575003405426885175789460770122484870452008022377388883937273253950078963424436289860132850795211958227114448168633316294147289630761856972871190658756931690956703225662823243465397866585129541533677695553342672603577277162021929834208117154551488330999433738947712357590957079737658812285293738899605943455337012220093662540430547460198152231610332425906790936495746102865988881979810942199713405216126031132037702447490435503989097905297216659497846683089342833768557257409330579928508090619355023939293803049974964308670442721276464614635173205237242464547130583798649962022808896759611055798377168758425992750389823899794806179915368615264787937875191676453670146221163770574615367189749871931298065794222572834062720002147583011517015744065769054349704700825603234757833943759678464819898004287507458802582474027959419037655741507222464905926959999329997080913656958106877399924831033104270459312840378604062707924675542489430066303819716488402837190610560269105238802856000290071916900495244169844261011070897910991680016848901135110772784384707556241073294664803736479044373654484082321769485267076378731663273384216027942830297814881639005525498652297677443678982265193959891347641500752187168300869462361289225906233059445743214680515365265152662858452282809949366849528335048811078956696829514181947742269334439799345827280743613126144014792611485746103518339038913830185894457966717909858726446430626639198480270384248576936228817644895914642378397105116073926939025947012888457775027701009027092630226736018838010790827763219817380685959006992702862705197868358572869482259851554384749319778184615685727040046940015016688806743965355707461866432209895469115147010207328379285104703854861477832179836083532368367142994660254652478307463507491473051818496138765282222075774437702036495279533788936766805442776458685587109971126431866309513603408149247748233556690509319286666128512560967382126353047611800064077181553953691736942351413007333036546012370741852915334419862206597238199229809437915268253330383639696772641338954124152476652783564721583331903061650521504641131560636913737979284387469442717517682194859688115312878943551392194374108237299736755749307060774434031474708678533015889261381623931684841725129100343222440854161705538508426239912657336173937178784269401339208166919927256484484518736724032559490453728820474720064040368021543407238397259230258691886189202574272119606331351977362457784608447139818178075089973206122016759685019651313738102681653526202205572021042210673865230164936634395394853726409262157958531580523800079784114274672305508506126962124302182033218024294336004283656980674770885863708388685843590638164695239136681029629887450401204288892106149868781888533012030185000608936251891354444274667839835056002264634425390401284511530656754361549617194236459219706811708179912223175008361899970933685078175977273180461108938809789749788521515413946154393613480977845906405540488154726648948493775222216240773038286390320806995825888887199304066684104214242910559559333347521259970558271106614060940383412470090961653142934149288167040424083704068243979365906397991189437608883152249475437033722739325372647564420623294012840222173063989980667310362860000717833802816463237917087445319221445148911780545507022021202665002337291910953351454572457093869599395546956869413693474581310834144323356714190874528200385156408244537585896100433863468571304279078389067079525914339470327468060887261881838147932652821704789753551801377039665754539096630966640919237648323773723333221806144450075947651189889655426407222243928709822839790968869774712247507685535721237823981445009529209486851552674285938763057713211315253376939485161730712832428862634582465605880691613603689754687651147027544001316064030009056831257610353467211012246312030397524730097158511844770621163328515699396301348474294636088654360353683877840382638532616755542071743873815275178942366223746312875894982946283754193170646448168092761354527505834482913330144727129161981460804341284036780943639063637505637566002320823214054473390449066200722623850666917579800086296720819884081218265536359965820981364481742545890453685898601112801615826368580536610964862098649409682341609808020481037428605141489279549487640868235530316587755820847804735464676905136698987385606406701200871345462897302810127802083743539161310370886760242659519542424343059650909258746226024705951221234092374080266305826086960095342099349469797343825196981757396306256907435774277683507085497786067987455550112021652926864532598538742474642933796381961077346940243832247640004779058818574682389431074747088973172173073881405269001376505699717241756370647025965628306567063683788692797713072167837413187902526899983964514174001216733933794054968031439300205990093169179340501162695504838002568743106569849577154165536998159569812046989784273895982830356212421634723643797258797736768848437699352383946952871187607150798189331239265890560316195962654382693008775526499126125291604399844761282815525783404625143833845561113356449749421278863617939600149322621450902392535683896921709466128342102676144935003149313443273673762278386402522454773349604524459412503556792330865392211253407188977783296113330592471058129469111475948691156766590139510431324615838945504971131097092095461554424132814508353495041944188881858294947713740659679122761219338102318390177221629564527255020338502153669016798484607205056272836045752782240570713185465540875444571745535126826059833788354104880635221028137306186440281645133857846994300570256365183833669851886719735486959195444399921358524098084436774126016920562395123610784468052566486705477357874320323274927455793990946489505442615256075406669433171487721829320965644951018388500967080155362631616479221412731661202670276777982913372045564498325696847951266036901262189144537709195299050954614516839213709888738200083537159191767459407904955727260985388556744476348078919862087917312248089009884822890733050536895102517727586486392018890118700542162612918379539255578177190946737285538384933772215185284296656910120671920032254375878978311934573825438554823153006347296543395417643298429168069595989444575263939186658715410513070172606656224535407165465488192732395530111006724044555887494020938724248877543037563950226162083788050634450613426125179522013352275977683385875448695448107916243918642502782587096055648256907186020207784879508603262040475113997934203250908820820939454724082464558387023799950136690510840476443511419196152518274270770301907158550437627281004690389138607906481460619883509005798778067245183062124849104015487881289144080313915620927969874623882932758864211226565149708479886331878686875772544627068258818634308194790982597621386019371622231030680852694146381138137516496637760289007582186669043753696330545990295029576340409528849457372341537584312235992783131370512048063004532660806605317308821622230160984369738755517800000522861953509613859385891445737692670370006560712564721554018539893270862435393899331093675234144435207966034723463805118827690812390045924328751919126279180944938523639375641796966953081483821255529691517732141375039133440282237260592069917102388435755156929325231286183869127913958713252468780256957424404138048797508882221168922309376717784915640633672036373525875567233792018480108792748871470294370639263588821767110541278348556822044689910063110521772150812118376011291297146766073640504653940868566100828453485877625881704125126205162224516009835788020494587359319044859809179388485500165552937568742902969096515680352303113205926240316352367534927021125305786177940308891125495859145362177614702538531169850596135270728053573623176046050394778641424724322160457566903232991247694830299355239298261565657416838852810638172304538401658391442565601353216313962475165871932823874330379003325847512008572388388880231462603108375454776847859953522685500787212421798288049506895233637384614004350473642889865435654440576408095354401907767041897833821990477180732840081470439428379300498013911957885823835779445243703992164268296219342027205866526252390400400278436179409258643766137029420809588155924904731381170953201677021210721449617199297888700442646473572300049641141884508738471467279983276435116792341074229671538150113886913663588482416884485315045671511988099959880641993142887278533933417971665341224510729498229261421021118798990712069432417050665307434197206672940141317946623480513202547520445138979223776486903351372270476847555210649935280207359799140933734771518202998989675373439685345090971040512993029491430183245614676702016995331403944777286004367830380618151783415661783248223783567298551579672460733219878755538775512216973231630078102681413458748916294682843848635123963637085403484559964349258651262269667688848908813443152404413580987190991207165443699848908506487773693572930999351984393691898267377705502377814354612151954520859156182573703949161074140475806984780199780820132372447138179796229013606542634353778454811761116545820167942221791500444918361412955749082312274744702476826429328999287731707785181163293392004024574601644803205070645957815076597780308308176772419211069389421130908970546460490543740529453967766856762609329486818172415292714858352553955150165644782068961065611370754298148186172949979536318797734454377659218121213070150883435791014181916580894720781422794705579907881617940819139157811884550998960323553199516952316183685472494095133015533546244249022020029610895424944968150503389334572466554661965640494736871193806765402172437640728133178716458993918349849587213652278008632117233844686441192812527127357297780336174302010401969238876247271219577145578934075071253541566441100453120610239054757550337788061828022383952101711738826081741819425766751329730629016160582965488303704686518156202793877624346257681661141348230630837239229406835502934250243757204938090701240138755948486792665512505179116962921056645985681344788162463466913247371227132496737528031752712069462053383296154326684820280516100105466076895339394874031518363319633559553986942671282136115988585825354451117982655422310217526703861528895688933869151400554635371017864011028357362792762547072515967270299609714838817075675694254321071455922841556905168137442787671775915798279297688390143631111667367514317790514968358549427118617473276828171942792603539884074432318694594843406633490357081647314907724125481185656792315764185731539851275782029638126870720136727276879271399303166935153538056948791100533753323958306375548726119158940933060966341258061995064708822516872817269374865282853519229111686279659137555359160316825489801980918860615369317588455820147136037749058611269348797371755368592930444754011512134638638812752179269430452189291951792169352184452586955583431907430758317294039090252516418623473424281163975575776533806889304610991857105781951296946856226696217043504296502529363943682785493252386900221024037337222703041021164606479091438354846880746214848230055621338922399768081400383538554913374670035851327301930711321107273823723875205824101569013660500616980938450402867473132512505623662025311522046419462058813343594206891219864538477819681079119301495367787988501920749707355336224319145263397717763825887245344359967879799241010614247539208765112703488270734514655292896427397823851460939728690586731585215882540981141700542219863462242795880544532133124032488161164725684880404937186324510058986520260213550122590661457538790985584164464582808016701098131311747400764900420347540679584211026292954735571182833011777928656486099020995044896003596827221828036724594056174550981664084457353735422630364227329998556636365472474790236101496369813824063877674784728085372806401535985678591336536669155636827183782125468033902989849872594749767285074566938014890165245209882936871618670833749043259520812027141094491292416340612164008537167788525044211271418793706521500758735646536984430079773765331404069087038560080919588872430206576127353815797942217874661103176893325653210668295618351587277898537390029759775689113910153963386779645379565954245845336609641932842014970852419310880272516036712201809426702414684289628600564240999782044635317119005736760412522894597983586167545988901317760219389265014914870736605216630483778419097602009572797209311859326874641614402573995982513210131192710938033020665596539423311836862994610145303444188402262188698001426639341404750141385102098758330809726704258759283371652356966564824110847610419072851899966338029809802126163818226369915467908652516328658041352481710094664402909304518159108796105698753661990376504552994073243132448984901039955377933772775836229335649912394652268428617972145566558623549446818467467052600012155540644660520532767230096104145756813462420637736393892741624187262164744175009665343813980290821904945683089247694253899507037425677048893089338256665862770954720197597217337549129679509060449444768499714204951643454138905991795793926368023305532545494551416875786676959863194062166836505977317726116372273371957441601578493886550165770872110602034838394934850358765105706129337364436270859590535321642157573039760251125964827147367178308259024550308675323880385897055536848364842479648526412945777822753372460897483289347641560272309331905469282815081724382079474188343392666302590282156737275873041715468309253993210483753211688851665448845626262450154186704516251051579921588162546780338837472691068004586407024035108107499074604746861135865775744425784948587916330801108407926676190722704752018328031358684531336367218363859168456181215013544642795355108881716971523807196235666019239368161748229044904357192802367889522717802277730803925960817527805165013575073344264329843128937374212820096341781616973298084903996699933236795043147097592917359972815740763453269729459639276586993464694524647154832570835853777924177874146458625634160460046831221320894455054924676037593089647844249091168748551282993597034696327532193095414007450625672635226611838499115022990376536752360090571051929507591756938693651963695726350079146265523016269897914476012171907908425138967180502928026955221113638045364760131424559636280149786498688541322918331112465068622579557540434342026570119836756955016128229154403432787324144361447371225018057290800617914876082700343298585190915337877404560814617503082333925323214962193994759841214408156705681333023193453817508206349571773277933801177542266332219208297654709977372267639855346528688328264414463919139915211298468538553272821200313757893104965133817667857538626548838579333095993114788356324479795906558925366161430637327049981729432750846438908532200293489819605835181232570518865768317325603059646288729001512039846772296477474514824988095468625630090894734406429044530531966942859482936209586357795631186561548887026515202629853255563176084859142770451460946733129169003405566979459263429189624785492410403478959290400971077472652470612303131292770448342483289723079021906964090448058609502937383395960650452999546400148959880274136391615042293677961208026314642779398361069156962430507357303417242227554922022629661446447602156225235857256124988969092529051931987903680013801809823794616633260452880242233336256869759839905472621532781103165174848537486725834884807264316830009830424099962962824681859478618859662553570139582299577168364353685927716999143213726531982278799699773944675158507754263294116979659838035348637828317813872099792415787904684507801661803987048529480916720289936977140051282214503363730460726164888751517798701279747872100207201377092243524781540994797900258581237359168308891659651864492899596672421508211601956886689984766564345968185391970544498581850613626097737019627465377659409731372402842166337342415261919104646034626667515826548258862908738071451804487808080277220556240415357092463539861589921951905936870209722727162078515127238049594000007109289004999850571948084709349731804351330249691767919080809379051941502242899423748413993676527029293812680248347413073014327894295103545782023086584154149797894910406265606437053929222677957768159556272919053380074407378837469637266892025403388453834038389334970487513879784124177729924342435846468969926601667734309661733181286442205720240226052375742747289989599146327118135312765841573663387368494494411520247670460011063678983190965204044080970292257775943422095314920216276909751237336081122214963821084691229608146878034536241440716453929641210926372222394432720693947691903481466868670948514672917660565042938175995788779422293519093782571659535777671597265134714485514920328916330173248145906227104683860267040316684245380382469947922976947161639400917843184481937762486710013949622168916602399388094150612646854784166475189463246331628151554638163251050556978773148226558687083702377579781090812394080309970849271019253551980072665416313871229012477352923389057595867695472981224673407024807992158333700844162537005732108717802356854340802446120108880559046834322365309810322022029533318280153157170963923503204737524908878031147047012324110495233564224487717638253350971691278434420044426432372240418699165373474381027582698800311997783129789813326400805285217459058128942538253838379435434657105205331654752445947484757052003851018393055579735386649526712139635500243784579306502814046237129593447380023763550172071464891956806301648095128678976287019752989690478186261192323924431176882744865148538314617630730084266570650230320539060018015024587582876393067428715449361404836971571516656687964074653142267848795778983756321600772428649673557578869648425657775513891254381718468263943218327230574561628407017432530756924114245809668181487239460229947844511033975940820450647389729209972335136590185636465208606787524287271878422390178706713603334981673990487793508674067030526641848411067350991494587527244085443503927833679878464532446633877365235607813400212406135835818958840474646234424029007217181421515856055060965022829070628541414064499241493763896331861692577402567505730815231372793797605694456631923989540235672455966024922210502828435233686750763237862083858237310665257689223125559684296964875046847791619598520941351271102474286643694249520374457944587175152695158124533138382720462019551314319440285689232044381054898011384281124762221789860491411957088001356900535378517366678127611560889298166511776247133268445898566417141685062509561189553169967598744888521755606811840886131436765328883423235011983498211653580988941612994941001304152947078914207474353452694022011015527414980834070640316456423275999467209692670863221092135471318188115925825028852153284498684408321990776531707959187042167160502361363578894715280143242439234410392240310668473142849625409967328027421181001219036652092362531524234149302025124266817290577744935743864729537180505180320992732105635745712873406467228344339089500625439115899366019998469524951315474294129327269088428769873720373143730885701738731821897815128496389690985806615567249115532652634412299158504130118757795266831281172210042252720333179228038937776844547268315042249005083026092138802005656673612028935570185771028909571062723418486234065453258515711022140135549272172625905781217759219832703138093414661782223679133331801739606829589589972166147921833920647207108865888729373480218919365859473318823787946368195054181174984506307554081152588097242304513113448573154338861713549078369354876569594728065748448954830141412543652776370493800269476350544787716936767068806061939663298712443871684437409068142113260922322506384381268973738713459303290697440888473127960688573150781664633861612734432801556223407746353347937673552445507374307359586218273010078719282218517360486630554634862379633002147127547736133525325076640679593516117551731604786246577787995394591521410330589024629463052483572965442462645130852162449279064912698638872100133304253262341322636514794372091310350616474022464665939424729354910401366679709070687070334775821527814706150267469297779066588429019269450496442971379504988546263222236092894675678577157190844591479247607593145124090599381578145832917230326470636646047184036338026559207488465805366645429791777983864759870939701230616172319591345501299630358791134555414336215101763485580659740575129294884368508593469898010429418181658834859193680695427059989888981292691449500465841788409814476035191411134999877964658925898652952008791019775531270864272427636430246870426402748513660208620358457443620926682018991528345740149166252578675773592897157512046645612639105996552938200412154259778057214652071206587705639426621161208259905017006037357341661689218010692382950362038022095228025223836414372887299140627498170023917768663406288378032618510046166704385646582065496370128603662651876642706667744132424018573518274430166797038419930760987936355634273279520508615531572157144072735516404016775404691811508963329589878886335290807164813271738032967324995114890003828215524075466297159112698358674240423484422796828760194270601869704518135647801042342322657313197461793912301704943121718183137895170612702773310003018775257000734429483556321343128448596953000895415932124909126971387221924310102970512923106035506886629682144434289031473169521948514052313480890351669836530751592358115582512526932496731060540981151637357616736365316035035319361310719026628288564826195147887775969529054917656617302475479909463164112896550383477444288084535872309764549942721608462499919657048167622651955169783508124040471614519665379217336519213666306208629226533465235076228559975227982294195222083186650144419893377386772281865119690751036717158126881067658482604977259390224473234531781573468838669113699273730640720537420587402869762671764581851258643282935772696879260261916302176495104451811060053273087902479293721960735998524061638800161555537265975908791671335486989377550591799917135129717026372978432608196317746567251932558733328871848449510578087415489170942402576592548292609011431203618997046876780214782801228076392985209110076551345955901814611350751724124656679946799063046422445747905756673510048934799901507987998524210709234351887327544342239522062352629524921082965340049100367254344159063041449017480237250704925849363357129022188817331989681041829606825527021992581482201941492678441118770997746650793061886108010045122603232697740284065061050228224816553579915335181569052607793502184047855027594932980782745770592722904446123136489014166375862927842245310762054250735424849826419497331210817550654289280044761608942807537266176630998992203296451696141737768459668570562809247197454969735704694863566525191491753208874364358277149374914713926566657237746459095956813283163551593890149148588992122043380377641011548047782250463572803087126352419669575213457945569376161536076042304109247003219529222218265762814160514576422570897332281450468633073317753034204334253063209149594173144319531313815745009971282864026698457516677808897377415923603783410204654531391162316656183325127877630109395302954353059844873935675830826952382549652050950274184454716059818741637323042980634639122307695402259068968476646071280428813289475838435930694586746869015478718344819412440698101360105277748333867319301219183881430018787480969183598513352861093411942254444140500485062783100281175417138812136532645958848188749508791282195207699217362703465012956691574289537285478140876368245111904185294830469841052928637350117170679025581226579205224657852058467346834421486287897152335805099953298388755224453766685691346820253783301006076810362802089913857743172456878197952541859091537500798814547488801876937999190517476106148669191712785331916300229738686111815799219836673202165940226993729159138793235110921986029692743614798234944013155621055295594343246797339296361425184800246052311661116930466647489453201795065130086608662237910114172925923271838420281102211319825941775306324712264060030380687798322027757061575226793344112963685392038788859328307988987524382125379308891499530687236620023561828816946201928022360020762818614716000229821841729669910797025261942043793515259579469710049777483201793518617709751370978559951537554995967497686626549350304981239605435310923173440397844468012378202847706113216945963948987001595886423479622184167368790860014999401682789860596993728890603808900882410175907912061563898261949670715066787669324215981315055338528753950038372183448643675060047646854907688987091268778325132659411151633332367615908488841310187715434738110285071362921006319285158416486888662544916772858445875681982241194278145354906931245271290029528201179729618050964680145745407354905262199220918464343795131176082073837562768763564494355607366124494899246859751425269276596369705384764730040135067948656717890923911200820984091243939784423333999790302962195157022235442269696219120390264197270125664784926585744789881586686554988099978194192777534811507387228813842615598414903393364745960867948487323972659357141954233138261022730211302199153578218293663246242374433320082476665890160102959118591600393754177355757152973603230602910689854601920896289986454499868972530646482851623810666890836743736895666807491037259833824129758703467195602572052531574316823211164185265982360124746564014599762581583212040633223315157935926087046910769742518498953258036709841759285953185429126545410177553339990148187994628397891105962251052628865947065992868021998504997625353634230344495639832227650823914837972317084227814372672863655693965152719713134217274196835897066403939374643547515251976797739276610028829391155705046181818254532166781317207021216487000803237737411498802158294214471766421242974512266922274690477940739084006005449042257586120940957250895838112505949381256723284959244738656150022469917899911245290334709837013823082970058543984440760670316745482731563033178321649274060070558960806655677743877261392384690578431334342281566413246126753739932702621058701482140918172060049878188900668151945117478937846105683495100417775985318012420020821898747011881844986662848836660943445445574647727970757032085673193368330628150356468391884121498566745176861878226412008516634872835770282798294236161415904204084055192696134448029337699560531219244514377676488632447843017227325812221946334079913283289412881866331994538779969405737977411566399375818666307567977213671027507915585457113141471989019018561706069241022559151793950522204615771971714625408775250680355548578391305174954587801857154933922279816789630727729179976115184995597445047464411062351406076775878939809490443897689535061091193511706970672719136156927698078086265859197576588605709383882682141074066515323766354145105557331477415212416912076328259876638108115750350723880397777234362648522634401971951406149599866777084754274346199344560707721114044506847138232922194335840808096598793291572920420782102350661988689342964227770956750802238381052949826581003767109767792663626201598361340184051421918835254049589888715307902180865979824035149821336789112711786897716076446665057533357339350687076027613104483574528514597122627032359858542029632819060430190294835865395948186873133750523023924680477430733735511854959175986813908160671492389202075227668541876587718104847960951208000126802023537448250786287850280585196615834326734072461134608556400202297215691964741622587051566881096735194384562584267585826250969909325342743849471793271127810325813888235265671192343718080187265732184073998011779403246726287548330157220701387693100779425307182935872626112387633554267151955202482991211764192069001014431954387154301926503972099284958073454618871993044571317750392263056401147875527141660358247559010805448178571802438411692308656333908256155366088156372949696225715053767288831044081348179964947312615147245783646052533217708151498244883549600312844888240115189140097514449793313471211152915463335790888609157893090992986942901356780289602477908185555544982290351104292947498193065616291848507513257876189525993607298771690781149377967594315088885680047398509797155957848921508374533413848194035388443063826066903734495287303116045569328861959694791257045671490787048942297161382237684083433673182554928585269928004906932824582839989117261294650572634620323400972130791188616891367311249798790219018211055912560177628483363635631421805504497020772248506817435807953567402340683947622374007924370787064962554410601573234665319139125019939568554533717075606009237391118241788281038671144581137393769426480838796503875035066277092255744014556607201636156619137243852208951130209409619281768410005832222324590962402013224024462827717306072760359381477584067879729184351968890940737193435410343831278740322683628029536438304269400804083222664193939874297512008655475920098527486657873735186139946556653993030519907221386041655196681871244159630128071231811266859923853995521969351895804702817666952123649688758645252384855173741216081956174886906012249463871395681632349440905079476314645251628672585558513019543505975181539920462442752042021065072775685478788672083543316976638454447794487269396880268607207623479763994428307377813400784257103466733321301887265078024527244484587801547366416518581891421894460266526638926076447697046463180494159341105564806879792794022520511877869336889803599997847774376055627692971474615043123112368937442404050172356125352326270506552720623569532149071713657701681611634533135821323107842705448759967311942546778941012255699491597258664670782839532478433283358768889608082212300542154641332034258828698158492561363983855633681587341246467849619672365645883193832115128756657519817282015015944384146928923906763080813696874451177401043896798920573415748789147798172325894653572874505825522396687286200422285542586953048349428263665075615922188810524358435424566765969850704173759602650432049091436830558536666916562719457871847602139188030844136311547935327939950045484539790238510228562377321741571166733059466811012487693209923799901221319282677922381883636952249194703621707225226364100220742480815139249989204940037365109627445290419529020654447343489646452780603652362361784435947078971765857068341181964733747671923416801032741048070575429535403207167282688145732408680418763269317973161200364296700101026420669208138922084837137241144359906864247314266736858731314810591763945250531905251182706992534792019406805735075385777562725729598240426447899069490162486470661971675649354964443693395942717253666208010267927606991312618062077969617072650459209032476702521224112556004575364317562976544668074795000887874953498285067901344405131480308602032044683204576221259329829464697123982701144909363941798540691651745782898080449307858558336832992459196809319361613528750858030917722722136006643858070174519474996076670901977519536795778558013260287198556251371749017369828874863992297080564872452695410631430851762934506930492288783450365916843129708908382978553080103206422343046883534906875070227259338101411413147930349592170658546408246480241616922476683314124695960586780391994960807610445129913147633928414052198323995657597891983028781217788752693115269735169873122325665439887597453438453477874035931492201957671582777568964729782749517221741570406505638359545544423462705712579320487523509321316637161167143385620300749720775012681083045450567906864670127948369706518474315984669668990463735460409950642033252343582259572852917401459820108052443994659914303117989502210116695369752188095968034900516362542140766246290357016470636331540660069860627976585886841703309633204222931514539362371305615256559945195214294541756855691343923157279674097673716139721924604847145096403498856400649714595225302487611222132092640942099200282573137230228163198055088726862228578651692827050223586880638570278770302987679431237650482387074284708091667557811091139387197570490334304158225738553508716467773110826926506861190906149990722725125158931800833575341842330823242538593470012307554710221596610265943035911085997308109372953653282677832290307876465684246000615913533008069539331469517059561565263390687486900443747643807618149455485520891443812615440458018281027156492442299742691712251674200008247267384109350087790494515378669407002304723972735998022980268900639895194241625372256588362313965938600037782830552539040862986362257241495545230233255199003556716321321600000990500273344514267761812160405939766184905103651177563965975124887345519930800108303525990979620421630876859573303135868530286554067082879601032731565649728504469012297021534559551284853376947175406046923379145441743284055430551246800879133236285273830210822927605674349257940673230290085546711702033353670212787395614842121336407012648610659904627294061816581771574452253150035485195063562623062011029700515664744612882747049071749140133143668776303870539710315249254256539456671426612748890935863271175991007711392059521734652608142612413436011735874544623625772280058212715805540610715870997150280708745071267761895302647132531215751091847872409303682837393985708539239874144198909957042211049620316298256179705299108354864337674596998604050413865723685588207244776853803240171606234997340308301952784888280007854916003946025562648772312356778793347416106044304137908584648337878796149406072396951378700112802013010509905067853103514402771655323433003979469839044638670077562281688254264871736868716877823679709931528172083607665846549712846266282054622634250944876979196523483549926193589891241765465061154555850700253427113335764433358323674864693726585689775014143574805009462167559337541500050661134173078348536116043482715151547191261764218289634486370715205653280172749164978475922808819296521877238316444851849192808440630427043700023707756606121188670789375955117290613770561026856292115501937094080015763781780478926515885385449954699081824583587248357316522558471174717901951403288577568998347096915783987682506495120852009452645349724487727322577983875353602159294848535467264338403290291001137327249355656801364060518493822117898483446053833162698802876641298607854919066110993886767496683003661684423571215404578509786347372542474477134258138800085526063723935044829540084516934128746140221469028792786763363951714213734881802053641307805107607647919913041839711712315245183772166468143445746025095482233135764629244849045662090186927411263855158322860651168865712572492438241135596100409364087307934615091610428031884281802006894069326990678507334847686806176077759308057399068090466845577097081300613672731344304335686910508220093419731746406426734936510812286352442174914560878332015572305716334365474769444861206448328318875005829000715865191186111024604001907148798306220690667647580397318031139340662891580365469364377236180326436414118885219186616482743988243903003035365450748008520219252642728726046381917500307091873604725894252723793002588008027154215705699762300019369636352892424594699125590296847559641056035966523900820464671193767975685087628330131393558926964339476728285414138750057036978186482781133940936084459502290154367663948484923129694021465645764941136158084649560541485851972383306661944616513544211084780378983408210042930501393427016985165509291418734198840611210523843862138147218207444346933987838827139312780317683586418873128075561287527057155831324455742336178128465231851544621861685801289664273314637298808190511578099835015427742761298930391982496683145265686944093295026386729016132911345720672141376614201307512728604154004158379929460817745161349947753783445042554120611890213081738500988576878825361657384208829472373740435330497358870546181274471529485795043022436666623041545905700250321307945169869343851004092239705530601260791238511842464843840233333758154199616175491054241469550900782011154766986359249516873240691675831748856626769981022599050189246303935159948216825920578233675555084388437737580197774956635606387261365483022292069242842187579023821391931576902240981046587892832462601070404457622937362432288713723525493325561116277052372598440435888863077090995339010334860559180460640164408938451603548363878973666879200408917629324461993479864797255642456796691317261998060498809376736860946842635200807707926542711046403395521263373176707291236300999375793449440461770020133775277134804261827542234707568496547368016175727680181028759649488908544762661808829421622103169367038863983639860303402024186140401022755817650646076824675237253533443148500623922821124503396479609996393344045196987360402746008493300806301923415240182196986234990389470633489797451847972198524798536012015169632109074157126133861070441971933631551088702196506456521072558147805517200031799382019766754501394595933790512539737004100913317106692196167922087161784318552612112032042293342957008072820262206268320946409773975636816226949371971062185737277604229505175306844470523036566334853453875783677492396043940128886155315854413587227635258259114725940060829808094546062470507031731235572514545194073577078775507401717279307549111846007356335493813313135249801783135715997941764461326805037620378310708236620858519505245801290113615138967692518872678824322954031299816507698161076149496772833999046132493936281510954781093890562352092477408260867757457499812615693716103563672000068642829729154885613059779861728728696337367313774253761618858844366950476386736726606733699023208401302281041847617671471657859197854969243016753160253329240779988037269287667808990922674930673144683745615060560199349112912971866484168650072713688723067007987812236792500747941510517707141645057776357294895449662250273751059782007046974109804888252512301106843017204916412235734061497595084030555782309654335831349051832088889731824214911529925893064127759319385654682642676991318355513796757630343588987919037041109042870419740601399775571985931418013763312444440519347770038864834956471474529835052032826585194395479009598119251571265392066214859508645461732102232767049504543386373617729640911210974013615213507624353922903878153589617192719557811940466956845277895211066912207852144812742892831492876504805472442390479760734956389727532345932016840992219624936088883739033807641399143699819501575165942185165091935805543991224139036708096567323878176801323785259771510283918150406564380394646951491834812675766490483309274251958496938209882973427143775183894627657800983632131254090746620528693747302666605362648827243427784933023282191790160105543985072798569937656951073504141770329215049704491551457084444085979410876481093923225482846862581734020503720484431451385728028258720818896320019313140548303772252431797596890209021330575388257068184828724366187023130148705893486905539784568524716813033454772409384976471584386660259460745362278534562991193339217089885568797846045056061550085737163350898543182433696366569652281704552883625871824365390798180952313349450378018102665690090347305183997656231459568311367921515508604220010243454971467422206142799773512233911020881659646972881479444064989314984208255667386440813672194857259850350766876323627488263271217286658402881886682210498077511668716788226963665284854811712966630720148885864186416577053205918632495849726332743144063781337224118027342944431541649985647589881310918573325136128869142997436065063216158079957436525575755107021819215750754444692743085010772355645124030789460255457848304606103291777731191543486105934620350001223736114701462288117933531712951819558318099755869450002426598458976503770162726834309525316141481306453103284088681984542411315596892007598867861184429581717575713859133312514078269738727465931825948203860461004682194780132332597328198842988971400811132619896653920787769238357711727037173636330178477006628411818958235507849603628497037977488234144225986968975058801332373707365605417637882075608859186597810117987914717391282361471174869794947972587846373248022529041219958807492918468666010118210793761288134070216963052520389784951257497794037737780885319403533181829378955157541954714435696838596913173359286587824999533238824462627695318012355962857328424024354593643657674818975852536579862541816370187646292163227922384884301682180556274172619381658090530835160986353240135649301294018446609728350776574393900077301018072905385427693255606172708071180716870838635132750515285618439620120861902111255769884098681530799777618073805382667413934783677189421067517388327734323563481739617785606789607114442393160024799483335455570451381532000475686887705726060970514876246148082745984396299774668406389069620444091562874023865954425972335010896891130847291029460986323490642832447069689568708930447148592604278472658906653653107976615945118846995879128977395600751711861831736954416539504258291004434576204613921809338334648434620432270048380205108109395246876778112323559875056703867568892607297613545345400078905629488966418121716753235619054123883672859718294608018667440135220241014698136342506320389356210956608485924779906872416506957010523742767962358345766567169267616897475165049542160605641784386486037769008465744625700874334000488032839753624010203276178853577663108114092606712490029453330920565897025348596971957240793631900978433881598192834107295611371679531515302597729327206309791200729172239898578443354674306674759190019532525533328451085359373063417822968206215819364645979265955582243174125489583012558966297012277408461880783510430752788227345263188553968721810968221241536506964803182249858235954170509698316283399813935494228426306355623758433991529724066064656196595621875600430615187629096887132423518931569009528041466710748896213719574808780767691652448560073111656028294811697015352266818005504471457532008043177763681027596039148140292966040816527237311077486678076943727190939109290779725867883935542070438033897273467687905424234115959725716623130501228333955648946683658362781055804044925931191629537392893384353637690975589600035353367390991698271982236524076744232354750221748264298665964980847575040685562175590050367222863075728389094102447287199699534910221120951758535873951594155258615910795847630696438785636143097658878968902049858017139016601523396536221581826499500434144964064550323935464973380813842779660353049630879662237263340347424851049634313880965648675500050642800960820744484250350703573803402251111531703726879096328016143368645917111853882752968669569562085523767489019960071651481949969462085585136641627517906699470102823437259055674857981576469054615461395782353789666663458923411625481252247974181874421132055416485464131188524117569687410597850015563104273541609572150665820637313695706832844227107187968637927624580971345457094075506673515125377052719030003450193928663407677384721788804358924790472934795545759432992303683456671679898685588110655828870688058402952792322708457258019820217566286797698833867089694210876253086148017175135595023244009457151271885438117039205225008139534569654517147326628004681676375033076882994276182927186685399838803635441167923510773522579372396557091745602506311437444608374551611873030726568421393099216567442359783792336599147994813829554441328794944050736504076978800665001983803698271529440246042407149155582701436538270617809116203189026253978170748890321047193523711865266138173391670779061964035896532440739042054227276325060642481450345314990499325851017914717753822942915914249558373846903305789559643612029679787845671906180064839444015624824448117999029507606376121516950886128527999034695495143033968855872058307639352877534593407529478233356715245704938760559280094559763013203469164046657476549852554322404679777651301664637331248296431630468302280957490505422009606839796795388026692404266553018437849683033144808148175257941594679127690891183706104682859328384525483052272259291718600573008822377993727955566294003122609373273175024327976511109137858299036497020055634704538468232604300364163587880494012130076411241675052250876101686549512225998309562935960571174319250214042148325334341621855492111762547991421478764837795976344010984330836248261128697111978559750800812399854887555990663408131886087028961012445949873553727975374195282479759361676076692908507232704800511408383975829344423768660148871726481869137885200467426663653009218622875881429856718941301876465074600418605972146533182260430733622650301877636852558209099059347736310319231529980900418412578173691178924429860691685405731355676406157561759028391359905036870093915669632593970092696514752750127221083244600615750444461841269343163509649658673928615225402069713193826785510686666643101831780373728642774488418794794992522553453294871725567068224450020423802543448824988281739924005510917647838369664279200492417880144424645755447058428030563714886673479093682659946965686503656788369478145872295046477444988075080701087446885645342333303319690150659955715597624068502856582508976269023120411568677658268917275481879650074082819363483050970547914055037888318604853808630456363233054539367249952794208866025098953372208309516518549963732385070234335530915968924424976052695981727870682753988348945142896918553513739773156028464098408814625755028419333341775877293146869669902331234053507686347371213635936554717668306866523376439860968405871127615116457980847315000311062405975403294075154775435394865660454913053300278007428788800730668848123285711888919614922615150113849585271103621228490623515917948578807954096513308945995645823258555714379124866685068791695048902944437414720227565768569965231982614194022671008046100490249943890861192003534783362035293195013468545879113916700550192351163441860843196747169765175469678607182111742008852617158683742251958023417620297721106317060130672981852369847873877920375175509801500762773392466693382148488004056082981086399363773320964969037737985472499395228509169078330520387503478337516504824732503430958383108557264266838417619576656249870013989832254944047964432958664598991322215769897218699181804843531017805115396809288252810999878218605892237192626233460476931846498249162003517808218904448183943315252743961914934500617376935574261498397878213569261228218759116710611601696266944477567667717100739139241482230492363306517000194708097312768583528767141603811284661384200553260390784179899608745793550664102293067944011680091458444304500813490380630254044989456970209921649541078934725575836875838038764743820213761058931340139198752847718869613516385184293048986521444765407648924621786984089139559639242107273862319475144857595553675334714438406742210806944757267567498304888894291323455912922758720327397199352651406027982869321409550701469988267187754421224713963684468849513469767409209164313443343659098139301652247703989336434675165461306471585178549628647007007720099051395929773745561074626636765915697245476875749939749644759468332030608178956247745123705377561016770874603091470665055479887538704401696936433800958888687897013830157400517609649031279878648659224960165361944177810355264038725203013626749197676073893587592839313609408813862977313457098334239464897917036177954968123960305704441726674117773182436534880108235785288395087482866865226935507549406457063169610508247904460165060516491870161884090729915068544678171239614469094369134190638994490277286277446229981531389665335008551483583682799416100773846399606499869611628949207552189384401426494349589610878076822717009513944554625197621681911533145290939864244379790406969872583346280815398390022846614963808595491912564770843436265943197287186931865104419072834433232244720907121153120306926406239336567876051230951871000604512033172408633925254115849440584859601968606299305778347605696627114840847757695455268312262963454071352138494850186837772394104874581515736222824315046366175976561678588549281337920451821911244317019341264423980331424793506412409712926071509995020027614184841216696554415056889471979486373891158882723364023303667049703666595658740884186886342595349629025256563019522729608261900445237938344087120487918680297401589104425007421561903503426031785930048633156222335974222881530024341099623233085232926986036302832662621427734251398219660169305305625337712629992950025755761593885771047638725366624676387309083649376957190966277194782146280129908465010346039907264157315485656647327594351622721605100328046632318988510713115451435519669091385417401878995538460424647773165522990156381530531172367460697270611683734071492970355889979880334412155537886526398300513017278339122368986636850427946219190965934994962035632861958617923712072183893863888238613278123351899004480366722531813832062595831256805992544639506928234425377116946266440901503919051777408588914771316148022832257355496167130901001030421082455459475481149721426752079807473375486221137086001356023042249530759014659200965170391060808500798997394118422795709932299257203981763553125067537010510494937437344697483254931815168997078084223958199342078948376943089584292260398422032430712744608008749207267969096005793822508734125773788132108596613020661736878022342166602364694435263597688075676952165267087237046579778881317733501673081525697074032501744715972493185791257663539610369840103287484386021472843319582553950712407456326197419922545045598582095905970553258107275414670872151209159906375589308655951301380274355800962120859247054027313662606355881738286066331892430465942865755781919387092236197076388885850825613922620223892066545925018903578238687713368242139146434447958358796569072954669669124376877338214025647665557368489139662784606598633109866500936558575660492848024336627287924517250841587671872256422396948702233096793893137335061452000899951102497425346416542340358720557262484733646163683662390488437113200525181873841971731583147567566627506915730805454148530594364899613317019913049704195640157895270196749325203269011668268364882334818157654231750662832675572003138417983172871970853661318374936787786492511518726807117834519994324554637647010831716155392556143638402979967888832334201896797269953150224120767486526130369334142739404800183257803694239725377548886337405580184336460623544063948282261772082070571482854203727346272509280862356365125598612271716040735758267724298615439801002993472921355320931800459276641260121512504261577859158902032419216590319014177766370267119900480846477889496630517844030577528883144433299545457125651043004987075776564098209156931458931831209329454104026028534451929471265465825599881797979152257450934396871269629223117410990564275794146261788500936574527936098524292312551627710494882750194605907802152865295378469386127838052531677454817330129160827071228383045443258930841711362633833022936696623882252420511736816199466139936358656623866064413464523316232860633665925777587132072357984889559229523388034390393070794083909754454202576898416833153390537274719708636507924865730849751679762415763153191200690643284883016830183179572323799779964591552345878930427592313795407216665017806217551336901168590168394747468441233806991517970714481073554778103513742055936866511469842683490833971182860231047424414307713815001852080696403787691077613412689528468139909601840761455086335224631574355788250414222349810866283522493844034024564513073495500650070107610543374409400839154340408899858020389512399118869584191603151374449319910563315878963835691866593974187984663781602718877197196848368469034913235225786849773171255476527065245767413539622379544818773879863305038461042404923948967139835889633874958335985990819203882668975599935870913968152165525381164165521930518520708908899462254661841574669852650841903481764252606840413540084429148054069846824703259320188655978807090013838963573639333005703302829656960259220157869019807104844980331472993402711658909087037670419866342340504285398855937199625857586687314484512623199868440804400243063169691583452308957116223288568325919365116114491425094983914368238571567088778014876152788412980526410901264208927870079918217309740911565965434767443633051878642458516057900524434629835977911236325739644848775121300878515830719243437535006792472485950656331786360465914819782838284884621380116423450325549545994326005559892443797642638817421188009669946206176913785705893836581088032382551009218781462788579120389378737784982033508137106155837771987300847300483099470220719447757515002840278905244720525707933257937406554287359685009182405418462670359978602808132437816535446952172369773066677205876557233958103184491487845819477013783102372097490578290224958962192908269986915140313702375003906356789958783359721988449631160972235231969076118687942192901337266439727668625144267865331557273760661657477992170197415592945766288300488790057155348846126680840623308149963727640704877149603632523716450023918097468440450088725237534720841727907644477207431015497059031234205628825973799287012835311499615455407289717634070913254279394333437815080707451917881066993245686318599381020019319065912282146491553107992121759530914704260812524653413047193294625991259021161806534568671419569908705062829817533249033442258358840367091281659140301004112352278658441462557204855970855013056618804899094821193776116456906204789599095554258841793818039672896947137580494171025466185270889428266355287826437053608375628224310392089746923181951406574637852223694364770338809008761988864689568020577835059612603195732681340847765528127216796989606382701925783415259495030038034396603333997290201436481906528299052440113998697401707645586295268349052585410014669612171829327167607638942036556636215119194826933229591384084167593027638178553980095509434118001759250205436957168151489540448929139263587123896164046570751395992686531014873849280790151334058869822141014208606170832614664668069138876289698467675601931569826867796907408911149537406050234445944472757999724244926597313433616957689443401639763398914163942499575914617555363827222420528677437568729556159161155746593145133828326055982231504744460159496977076573336557220015926470742954300616659283095940008866072295421380340490729240535652278622866558304402545992085899346027906858417278451326826291882171424995215800423152753405103556322481132867730678219560734718237799502115351519574687684610582810832220116281045227626220406983247567742071897081011945521410718249931804746277468588579413155636887340307164198273910380505312728256465750721095943930181128412947153296357467230519189441832252851792424597449021887549031249682544355495037444120109047376925231066854899984814769931510603314887207657331339133842120106110959055439458995504549216981381902532723068639640906297330799270714144293457269762110029600350445238384621422258890920557717151522609352588523979508594438290057803300145539056853906759842111520776824908882326870732568508688574326956796736864933384509905586013551356148383843852195035480107552419961636077122212870275480529185743006550469048565027226143094837934938612797083398646636532904793097310741716945358318534995928595511451765264041457757146405001237484355787464492147580314758258873464216751690176920200470684546340394800905259756839283082748618726526246432038227624693272074428865361536307415853799723889347149335535955328917733818314504919794017688413821340817511953017777244996664256830525510781203035375155396999573221988488118972815633808966332865133956380733130213899161475484678833291841456885196612117136062761641711641834405910628064632561287834736231745694867707748767599671601737211089781639439937335810289003905525504026165313826972223730840387858597213977076179405235503498814331872751760121798255292237142037970605446547708064761222940703301909301063774857436630183701267189401727917557608797050201525479923773336702127849974628153315876458107772527464484735129600269646226449786797702808580613697049760325714123792107208453047012615535378686161442456077452451937288237897725643167340130341453257499015984049107797641830361522701151780515402245254593520971262339323853955054706659558531480335597913975597290637962687375426340184006103329786935579832722177965661499120091337592156461436384197419280004786008119005087375060376944317767046540609830028650299990873938958013665427357666418683118164656140904491878269628909428527560378392059892070789453510832453094638372418868380926699412409663811471991160709825757466279679550100275316239042159981569839140637884945039639667328937051750372936339268609443360812536388255606602946954863448823989380558275162362683573695466512686758304488513368838263318746853109901335869718859049649913637328689661925966401498294033762009054234263738447938940695934107472036773344609040202869577409658620352359057093583626732457840838138861553224346934167967438260043107842057204642522835836450206200437080183314993252516536169939506082996115676541910829081303405475546648230278989656774957625676926031888483248199233495568608789883948464306216236717065745832984473558460173739623297061472970845479542915306638344407568222792516703608972960464462593908281291531183775689584238874167794562471566676981259605197062471992008842035447288497486276302917087687219865983239775390935668300355542301550854913742930394018344053105410929936294834131362961053227207026721612297489539989161280908511861484485443117011021112379568616615993851507710819619846854371071440999480162902441239467052231396663804980316539325968474459090046295940996403168203736864337910085122386410193988112834945921608345352648026812222525875404405271957953700299620548606692981260590458280166627278627854945804352835435481836197826671059867855093798645058772166904127562957745831655221294042997907808107315379272012895289925088477118300463778293016767501184436722856814804292205358500214456999362867937010317552399797762338662803207264685480378929947312534357482696832642502811470035653945579379309421525801834895576360584782078193973423145071569128577263398668043915297011410693653892950482149111640027999943275644811338310950117839363964940603651506528366007579210510369665860920557777314616609384654427329244518868271039363282315002327936592086178829208045117795237801963341333200324202869501120736692335510611798632722172135482912332140574354670433348908248260872039518055563339067313593864227641317233700338601873171234894859326641235973577523793915156290294448764904404811764793026097256049245432563607678119267492390197680316963492764856351434249121822760176945768004995206456101437881763786537226597065031826059676942581745628217715804590921483214288213101207580783515107943656003299772127503242823499129559216929364410016559308712689205310339079955423281367270062691720121147302495735951993996607649435319961820918341656518641960749514919919477375441253873140517960679466477700996703942242301581999300158700513957512572149026425254645508203092201355432916100244148773594637733066750848768691617009778535727909239393305491745434010980116967820989981531309186439243140870550327983040557457510068770447853897503228730031257032134726510467684784359753534138305602605862609327251264796925679785020331860100376643089006135090626492579063299411149170941279745766160681452526452807342895699036975460011297749412254117114578329785789494213096346646490084463231981638188614152976210950728533297119784214634072121240313371427601894423854061304101470642522831734865345922034690026809534002789883934097307990442391664278305984553164744167191037781885502931883331461514562867763858738714754593015688623463566066233439722969415132615691901850040999482749070387653905677542517325940027348823947062344853624375582949786468650647528713156883824493830003387154149368064434085862679439409045864123719545036315287552349414097812554345369408347925292243781403159648861208959703269178399197302485737646081354891190907664779360592720506459013287505524289626500426154085795744806014639534580681227443924709438740171137770484941424963202607855309779828803212804278184765605200539152146278367974177887621214203583343130021682307129683427494185697617095791095577094881300771959563226506242963620284003843034637171426960589835267378879212906412333367027771960456653140444643192506116992051362188721849465370921596371458949240237580132508184062727684724622269194266178666492154148376795280906248721964416046167218173352095100881623537456734478021558841634846114601099805737417625740645150272404523450054001379620954693680604035817351616607416748538217641117938307616164388824483247521906810667959235320183126522591927409691851328965703849739671734647494414118839653953833221068769727681310582589041126309822660309050726349770812945113951456023183633517742835009763060358146502472971991056755472277932061723556274816520743754590799328543264287226830892533402739207081099044978673412283357880072471023832371196532161684933636140875959835137251122769035754498323065316121190995793882460626644998211578189859445281734304785438098468783306063544055717516178265070971114583686844054177842109898463342616793809813482979969327973643130593005395733580906031519975815941387814892649243604378809097459974930535998505396629177899120387779200479694990812364660129588356443037436125406841218152283319254702661664393899001263415971608051183912712893418095693509903426026468246240457003223407612924453384335892624029466551777631256284457291156527094657651843123144253590533489523927865858538311065533578474970874952289482253955801476760828394906544835356784929646157576796372044258124632909018679228799161839135641857634474588673116510231878905238499079983892505851247054433987075766610837451284529204753171890528621298932578085581137620091515332249037057448204887778825159371630581169075013203184480633391250744641545598942514244888224747644683486978884188226685990768920799488587103876649080629483651595978179981642687968475826917135319864515879586166065780978014999813328621876893037346565554411467611042425447698627264339575007730274512624011071727651983877713537551148825919374064673621641558632546236015803483010474856819190595791781892720695441837678987261252244861233528586175561329572978018274925725538423125328339486636361398707958009078630755302195626782357057777225219598185252024063447932576368082020295496402238604530520796819966721291934639089065336617883525776787626365541394138126372858031003018064020357565766122513641217115824251398735138171172285996753496174970795166374401346776911668353053804425979829831186091047167261380121112062018089441169140728317970829183803765728071839890110233539139204906350579781991331017968129942539794207907814944626783833662520908156221668201084194712893175022389599255183231005289460925032350781862096007411530162377914513709919562533712679412925597882605547564410225388339130525560111467569102433200674663990277510763891543875926504078977239736903264160286290163637046356806584583801068787595960169289596228494314201351163108106151063496700344293266426668277935023534344405500528303112589460510472082207102446690663308138996731933414280094797776969684705779406920025034865723215198101320202567760023488429207442179943803612061453220467871957718243540885970255829509752968045148276471087537643260740590906073575284126871745101016245649987188601460640524293497627122160109570122393506121951577381597171834555672631486759791625514348021099893461946413787916425936135036926194851935853865400224195780573766872585020879242474768472519373081337429607487560229648199369439092335954726653723053561789494303440711108145729893097098766245860276505163443931210259960281619184818690503241727989683766961647981420473167606349304817984864505262295388026521149066809996685059453669902059601326788658742112129954277346743584433358514675881342004700262958964733727908104209527038680244055861331953717367865266410021060244085152427583966251157844229562270579528369902323790399897558856453996335688394493810436141963284474175166155950668446841766030316524171695625331452951845695688243402605807532577190795924311595690674972281413014405607789666855235011506325104719896865812978934462056842474308212652669125684256403259231443394441022805531004853745525892571689512682614463133433123799558159730638807303720521654193138317512810010809826894664142732861517236328475962382004658841248324282601343631301969260147601475464225836559419048528336216319102085996592581209145724364653607124857927558922343506536909146767573337389688821723499101100754423312444979905012527563508044109602268853058224608508915503494082985034762729875101316507152556112321479694440553945033496483750698429894050550167992980640292992309958003267237655252868631404187067402775306939410922988035616206809192390575751960441496757843290952892182813482579724632879530169915575662761479084480652707038066028279728492290438210206501056099323090797255966715440762016693976500444661435146307737120902193156954702364436292719777352615436771854991781970202814923132471098439879139970453544327774879935128728191767861137707770014229953023581577656384299929006614910309095095567402619630450635327443266744835906659517922650584409972454393660069868028124436719159127805976394857538772373310993146694499786902926325154927326733473407731442783571110788087048158647028494044815162335425905808279192110731284182141000675282456354404198080394012677306300974228312111084719520823686853179183381331767449427829355970838375079563872250006116281286178121362793164664882646738155638487018508660732307696161388015379033941457638718793168434769923661389594992063963730841160382356039938812962471234573319417132308966712930491865258396011446255939220500819209165580689998247191797729098630660271615489158166202796899173010412324012838470000138095083744620848151985685716144606578965634358695450488604328641919607893578885256424666229848906494444724663116869260543417718868027783599913033417668646895914933103738218467758410320446047040209797931634358685870992691565571080084168941368951546356054111497048938284543080878953121843341079045409472836319457914891903731723342622351589416642695634763217261904855306493545901161070421865108086436492666347614020982911707190227221143034494386533409996141382761511528688119077125378150227254250437757458556567932604474780581424621041025585393576870506583056544316834742832421606019049367581874767446883810996936012880647154120071558995869588488977806508989548746368122292945176432950726183082310950016301406431136513517444912968650757545978807439057869598301356910420954263165758102481948490335827289385930203157516041648954671273223573298242374954518595207857082976016988053968837597809938276954974398910903278004420223016489936773393524105910850894284394192915895145549479631492887566729660347671911827649043468681651416884280780658331619196872826344684812239189590066664163937305336379000655561500321116099172788226591945035860551924759868423479913309621387346383350173293707649617870801228815205119136094650136974948268055771941363090138103271329195571128250051664767904674343431604335455490681766755588484313093761801285922826619579639424698835234862552389791031820173654648346568133369194849111011224578713944097923951466983440653594426642065950520951910340908751868863158871026131857336831543416374022825960696835426455863786580407419280013642364110682117204810499236876124177419889310179385534495259136755587307092590008479693530789925198599281208841272333013687417793137130651698778168886113291607563721068037833983960503630727080827985722153147935060248364756251339485908697432741201404940477825961040741307579523761915426723521710309496866735951361970468947389633464687301915801677377278202392724424706560399890599166131957251903264259729665586295250894496526863886886057053101400518026648771533951048798725965804746196740902640153325244374500900893111964762386936927638754917941748366718187996002480768527026566804626314566103706358455545692959207740460886512592671192298854846016051899923973174543584657865111599377329644305832675462299680377315934643046695511122137136650869674273593048452398486127884835776632145770177277946247656462347918889258401421615971822288341537132739208404864013498044349943410004628060211522364534155614788919149985420838867084494534716917108134448729108647133057951929635879730700026645072408087223907324264832625419530121424126055735790199959562860325737306200918181314379910758479239639712816542788668281043502686462346622127099164008432854503729238136555063925758065114674971932296430330779828599235997887649264521078737353515318706019481328344991854053821510841996096967916489590145057987165937763711228712390146831980638060610051576453000539694031600807651030300218616972800029757334040461119263094242791812807339265539757627456263163778958449649707533423288097931257282042896925417369346198382708719426730166107377518187376125828917379133290382871163592484376403144514474133714355462549283155661776963355025043028934248157081731420495074945965789586502572374217776418984457253276674661987022927045867120140303484245264248676442922579791396896780249352656642042729695651312572977516968805220027011319718273995338866027834652453575927933618469291764079106052683283690063046860464090936548392454109405410213793957872101563731456008324846026975285777236127507292766597595821186785702270007387403660827857225341023406385871349734452656138726549261833243283999854966762297212590366798667901680368254819086219037064029804264675026697368313228857035599774447770650230499731657397973860772709288935867435620695134822775789245734847775439172500137705554185945587839527925244597147799321754974391890343499347437590238582329753623438048629892869896163911814092112387464935858846938096894972540846562761664375153755906379128615778446127114043433724665281025902953323670412763569994061875322418938024965869378525231859982911608396148422724745535914603660176840718423439367436949929832701286640491996402168496255037468343468325987886104850331046499618863556014829224863059700583107459584336121852544175927164564910407660796319240713359113892826380392303205953261009247638599194313574635523045715699839971384380055570624352460918334491411842222155126036771618232560295913689874384570455224289536407105977205420015280175355513437252666766299979849875632818428598903088325372461535661002662533948018027492111220596066238925192262009081463173169258351797857167679032601447571738583098466394649872038445242979170091353309841257763401259492851096049579238703363498949038743199399174024272845165090971849109361748170926442866629835860380267259486593736306280174573936332538363674138641135324137200740308584121108330016987446432144277175926697278157528883541540459167392517433300876867562493810460928205439050882525109392404484855779981340037278176468966999186621998678276010968453638281333885723851946513997716368233629765626028320382982938376993205462906748763928786346515338105410632122584374307620911865196543158601430708531824997620194475521740207857049608875363907401419133287581573802957811517735074861890383535802907435836824672566827299423682466505334734546114623463806370852130661098281056140345932948315330628903503698428907898236679840459348605623036006355281519700017329873423724403836971309220103809991958565629689466892549303514443780255751211465086048207898340456797598190990052443593435783358502422423284340436016019493002029629477051663872407914191281588612880444803820514263635479407530276826035684988077303045958518655518099419769771499663198977932356938831593616938406299683037542801235282735597322982264591382188054935374113129721647507387046833600013899203813456114106460145406160317276879209375128737762799802042501986245930359135548589147822275893188810260695164678370251057905886230395293752000902868213814878761442890309164647668505051810600815136559665265975771099560684840372110026169893016540225285049029120881200472301142612445135597571201737871052264917960205982699580712470544168351387325253443675674214427238845476817452085518072335451417296680795007565413845983500935433484547539584994186231570735123551355244647229358110054410111791221420746085620629071042090445965943455468480909430828448737585548746294144291520899997755580654113225767152864775422082871255195068385418527387594549668417966584788198439790255569396426982391235427766225126178930195628142363725800209114431756046333994461944328739927713304595943162960316788696809030134112260012198261660875605608071755931620720482972537430220006206495306545462397616962275012927357314676069210935469449478302953119259638836310398358478032933388022062358435247993783242363810025547688456510422110579537023066836893595776476307339343587985611655911623348154227258682635616437930795903465105106713037526245255453104508975181251991416891909737860800689156888423201233750838844196974113768385585886956932580387523074662053144174393978151004483271479130942262113061495948468698624705013779426434427108622397485593052435043619944098754178309625707379402547722899149341681172648420986116597448100589001258983949178166349275004154550645467452378352122206322577017711487284844985535497823644200191790218530999968332088583263636364185870089846459711082713337417440649576594106335682343021940718769412746134538483567156995014141704703574311373370132434247584547459193243639596740985408128790540707606131253016588920787491483538251834119208798547656361123020122884370646288528381203643859954132836561358972532448895519440178576375395920473681230310984779618380994607962390436971163743621601538668736702849769203831124954541657893952709140775652968382646917041385083048610090575879366581235609400242341939115320881779020282101530559771088729121944513203173795862753927537324567473818829737705357907749076264388170770756253052225436799845731781621460756488738067208608163593447151471425259875300030338182558534897897637435847168868418939725205565732858440172748042891518330881072981138993906733366619035206372972862238398681812979633326310758392441788798800366078587186884733304323706006284621334895879572933658888029445341421830980279845854677285049493724552940389452967599020541203303277746691065877286177663133962536103540394490943243874891972576309441313686264286113425520514186287160699401414726207692071696988132923288505297159291325897404399781536990894990320483139643364372986165182131658990612915310600248816709556114331849799549730738301778272411793569125620480134011355353539662313755522497697101070971621085795047855951264325260502050185348316468146574699927022427030924674197865055078027509718680583990350602738179689308382687923340818603223000772752917569332888012897747051959620403409806009758443801841005590788959186783834791950438373992594794193668785148604907389008438918343591823418191830909698037530859780154274623415184969330064904228527408607822248149650917541331278039820566132549020489277562988202215062849606102937384258222718027950888693571360405465302646274134259442935574866706555612413341400234398143949198614965332849897883949344930910805704330465067075755260224379373600887713364680451236210919024760487278375335727858055379513947761491728811413418042229835270514546706560439893317952256111848711732379920376996169851763208973248346230357572956552636487999472650178284987948616025366845150269656189148412418481806679081293881888309081357038103428295066465394957763591043853560039727458449956203092997134090766216641605226542575760887669419318069630825807149334586663696164243319863041146878738538165081364203983511903579249977296284564672540044450013523969517087859397792436993374387568048414411841356127207679361584517172451419900433028302584602093375972273558197085779745705149715129121152244297080160347267534083799727140184996498913112069191739139373434490618791205302540946483819753909200940264223310468099037530405989631498843433310397046358666289370601923168511878137094888515203865953971995385870716462628981370813134058294120322999760345928508081464326416844352491864515570308445440338189717381315508740960685205571015601601563976919525822591921188885427895493890206312931346366110995693176252228670354486657230566771570121996331684929531489365624394518351234161816853628245546663884758895461651966114592476641571008675669897461722117647228048490226514099065460500049388064898316265397641998789480567039619498355232347656680649307697921659636931298798789678761673764775092948798870968047634776547069309221172966507683341962318457822903193958633635803273930654445551327853108527463706071256186162782064611276922847823403467467716760349101628223685375051599822963942214825029056704792880522769609502428064417156502172596309713254469702393796110359266014276207674476801076483238121487457372715553278313641649470572812441135293643318916872580276013474098698494955410612257490223971284813828509418651060699855707925780284278355429991145121070542296515975681020632205197393329055264527866263749700848947191215563595140963205291335006597150444273819225232114675105779548148548607022361907973542216800063295387673958153162980997196066823434720744759697309583470470458885674916227243865412088718813065379327966736616765224770351803784062241976526416277068808858381106770440256070072180874717537202076254435342216541317923330961406366458158935535568839210832036850687399912272416075267346894400138436278537942211485104147437078969089815136022840551606022545983855351664887039701277418957082421156468307893369439744997124240362911038959599337578705258144401100204604677263369803074765291992243143359959639112887671040976098272655122010107295582456315734255333506945652092442512714100065822021338441107575487586934699423838892460806668392236208734653373778365517064016746983866799079672045188694706534823872220325857422652874969270613908667099869180140455708337973156869980294710232577134443235887958162030516665001504685839231421095066761411558281352456392647584522976216365747249087655031672461171547631284199822609793970144111036554403461086764359073111220907948023471698818365335342059530762294123764623539767885957788841970630693847451109506779360174208169119001989684559787528522176031424412303894176065384788732470968247341525684397047743478723020566337182150050184272096939630824808857123289919912975338675603823612364648850194281433279760948078094455286541159619669540044954938024919884515052721712376168648103622126086152844619330204372165154641745362398198894932931748334043913707116917983939048688380792043844556341826194487091185270850083826444610512208613632138737600858859082268246946956674516395156729200077836949611599002835983488953713511099451766582659538455643068286445046646860848605933392447451223570838087275026373210988847690612993433626001439988363901967758564446401798660098978009086166612165586722431280421978663273901218115180977681747321984798079274387010135133251401749033707379285057963317984350865909519364210172835318870409339698780057442378596078918489136335020910060921601637173011773817899054842697517756332710958448115940679963492009987279495494554381900924725227814807899870102741509830118374362645940538015348501120312883157331186418252521545916618296872580517992699514672893796551994444441746878754507099828090692830720198355174988380875788751287766799819922770039481274654894680002145560653551567584430294493790166756582955070947643170992553371677951902374955035753560651392037718659246604027551750287492604514554131507023200292645540879041534986390322461872169078005668611487177498249695591052968514034571814611307156999253517282589162716730966086903128695881388139000714198669519503795073500971240569886797157143106710979932979785690768027249426784193187514292101468228304015612526642701071058946809540357074165456632393086219356617150198990922986233394654010450019258176863519236500215338733878947040334439698261667309408164256816150825807541976238030883038215517605735335863516596039800656104078913095790941553124353215048325847941630491557918060334189437654363020254934888926286605147971675562138199743006362126346895459680736339321947557703043800110954902687830230979487704970136595244683346292446497833839581967647056316422244444658418962054314466824549781435017592550449014347714539922530507684634988669537001154714853672803238430776105176914146052590896545950531025882543737326731990934752977381822346401520839438389311482082444913773042229349063331322640252721675375300143328968154531095170965528647576268876413592549239929501739080418198544640586827453269386378793701617070845119550723660850468276491375811276352256072700321277432748083024068824684603229818440792052101788310261459522788574610177311314293413078102806334204780767030490184453626113651186132752556195176916563777004515391242690403492364476942053077082876068243154796524188644792256417672203683746008890326258743269549014322762683007174508124621426927891004542957711306121271419451867448750694991862155238536752677398731671412916919443637674452406913444304619619519099537459848793469645779926974705432651089256844380235999805718396331623090990210495800493126181096578036518821339741639915609151218798865755589011643133602087748176954383245265507570242778097360960517398992621893887181761350363137630532649071564761386491756722994447369697002020616419756018918457960305176581246235536435271849825621611388018569966514190996269456963319527049033028987538758529576905543151813455473989206325060118674717919860834709718678655557772023695277396873533321596989294283542717356565082446717277596115479016868794451284760324337610695805153020075775518755646963367401848538838437705968537041388645754506469224243110921716355305432236068307215236235468146778332698040568437151617039185461297516630332151773344768681339007974882540848296967356176144753108700649366431426660568962261128986085821682721564449814123167694452188244651694888377964498757780084969570961546874283038648184138140538922648438219733874435255318244255773332225337741047457692335902122654967306399208019605581798751710215198606357470964570416013983665212915011834109923153693918685080183891822510861079381819888294237310294066948809048856079987564909469708076616907333322591785043484033218347327196074142309823718393360277934689146047673707905539555866429774597761442560605042355321227689369539451234504182625618782887710729054380326756354320343393856822943492834272269811736308678559570969236041734419237269550053926717338166726764407648193729856952826864548062974036967457077853254860435023909999460726076010070106528742664555549726289790870511306702760734799216608480055328851065210566396588211334674438853179572513078245055788321866962654567403380207221135999766300731846633062914113227149535236656128467241138939636775280744091273489942092267186728115901553346275469163462896355186544842431547119352922679054359812470984098048115806796444015235248907943368134636711348224637517874194350670357550166675369919640690131751275125652877608754761656082894511664961432846368775052245715810956197913828033692191252303874883916385367180114692287789964391799267524672967739013425887415927254142046609714102422408691493238214361567051356528450041487242348735944814301664841266305680461429952769077253925436877155456849123131480256739823316825614935706658551208893923744777234811210029768238288887354044252925897717968961764891234183760645167385522347228370157155174609329554226457855748748749831675013438101492533752760487593800498864543304555501015553648996350269203175937570311092866848330466623599501826335695641476247667024303140018156812424011967287346234793988496364655251925123084154072294330219683835351743003834547946573478019712626477303047594114089738743028929625194207118595050173878236467477981327870610015361177499438113798360367794761363780638455388118372239701662598829839584468359242965041475278415877001130041584981664834449461491486420266880592440755414003576443688732661346579832095029386784900126809754923031406742097036848412423478687399794574202150251951832802923262695893285530259516107247564427824830864969421559858864271302184067016498070345937051597239651381729160059287445501082325086325344164032126609581299168006304304282941272508496556135744114181589782451760653578741246915154009097017308579968023642997303740146343863973166411560941556474561186000624090704385157834491996173408887309774850251129168882247855964290961384809240661692547077277426042034756013303298084974293753469422767017740303334265999231072911918399378911065172947958334312629588608703093683235862761809116060516583941940006181744034081399487039737649030403361046986199297251684698446300905151190035074331336980974666902761838621208821908983792143272754867542290774350019835340999916405409215891910534130126126057809566690681284912401106139717308344241764791899743457137918683174224508341622127265951771491919398125043363173605478921570152936772710285801915995354504934577332678015664468141462401966086668990455302683866989764158670971860868134555253870103519184373602408727397428013936185045512904276685212745207834245421791224373052242746073179552989298871252046552701211293291525589333427180764315780656855904223790998231955001379064140496833897710605389404570247545239309709087143259769994288802364770832581786891292639317761783324891821073485865219533639266803501715465919406766687802247576691458026250028960770022396490157162192666347170297078007469020812166361211755770217409435610552834272566331899822213280863968551681936402741129190172005982730883487295576001379746365851800900261446721984856896007921369735083389160801932556817642525130412775960486575820850023722589992644157606276928362863508621289630813690819083551103025273049598237160084381223388095494270353572337797786237240600357901450611772222463315783695184932915249550434179756282539733400511474480182847079087611861128740535960016802687302989881058751685949607658980091503581178583170226395181673170952850743480776850199976025428570839198213585608885592703773606509722928789500256491975499776339975330930288497564508291391239476843084685927626793964482606716526365946960035313106554056438394912484412421550681440596366309182156043768826576255593191696873090184439125750255721723789235093389855666456846389527612561168541276695950898600157874527325210776862267694430753035764535902349128894155263079003403895770759490195014974437188842888136805060333849825003549222685454253921487202219785390119385257834034588188231128134144395750423044765604831749750611235266985795391119416369547135055653939415330710206812887857317674332234902087190084612203708496176873809782978466654691098401849264252249537124276886960705130262929668205582097895007548459871767482722931451127272771399936740231004761949410510079817941045623925275718942519281406087155180303484741872947953081823914820657570188923434659718941714495744620249405314979427622389533424704244653154276173678491413526339508533881433042401627839462623407613894752518522689770072357938382825319275977604223895817271161733382774263096440470178926451791898394487914618857656673115877758049782548673490415484201603804855692386768166032934640823404425564261639089265117837486030080294210076874087305663046538176106190056865634295513042613461754720438540319428606360871081481369772001327728415499131539051801945088673508045975350806547523170228357609378452948820407723307632507991065748636915606725810259129682715381518490953698056133240273432402017822874786707261464861623067862789093967740377467487030746875492482015024666866717808135956836215679699107429792076242778401757077225074973451661410123418492287815663372293581218458972633836456390482063946232941231522912913631637931832440773695817441561007712261870175953141906583413000968419794272828688669581896099791847681384033828795075726048155515285473941747300813949982367997099599783226705835564258040566047650190317139440078467011034132031104189168347951257151261491359752641081044318492685907075354386337718154112630365096027744547681012873845545984876109846101639471796020821940549466516046325662566974355364492309438992574799298635033429822785327331053569601040319412413903165939594642858529356709746778043958066176063049611306578619901220487226842183125545547493460942362741695655409639487515138188556884972760487321844371260153626776689190585783856824343672008137989563159502600656511548537951844852040493078199222071698000927166125864241971540269391787883253268820168079725904256883660809677116536822950984501768378629532919098896955831907528051443861889895222460890354607202542309283043018838982235908767283796660465095724938864376893189158695068939983122151100422068367521253464851230380915386674150620317391991719046763984932465126403844300428248406513155803087566151310063188876238357976141757837837455686349411270433947694125490292023439021015984031770674057208003021542911259717258392754322438857377349582675563247312435125086982247137896757298635392661795156325745071791025792922351153012686425654761635187560190032925708978198730894649072880356959421236056524290752492835993205377607023144994957522667961725968229658380278054644900111661464428777592001774830362607074404007693272022580359689747325885967666517399005795678339924163000822100748862599633072989845513273614365448425179857823093902405083219413437371542043797973856555705203918981799951183417927549226500973623572586151472154697389319412671632320180346605895298725503198516307179170413898326154074540385304416183382008666864513745360475306618658632495007703586887539919626489885299115532942461394316045164349121956600257163861293464069131549611193834669544102635810331516848189610552972730333167600154648925168343606694284618310052020955913234599797383989210598668251236200481286821732340786223341963926989076486130125514068581721725099623320451132290518725882636076047109985186713177563690016657452667260993683066923913447307594926629113806963181764273686479050535064786378248166452924214597530139024972386945942355442978898615444284252953181975184229822291248903011635010331050528661163621616106366169158064366050182041065790365335930872781231665177432651723884561091227391044148488822312443349637885954883999324565934533331879455806093157733376881275420153101023402397929781688430260691833477817543261443564998485736491687893256536888689328626632099616782039369261188380576172346341580894099976173344862954091538615055184890749826136491831601054083447125084464293969374450019534242872602226095470619484867968664269135979235077843192806494265973048935654349517149950853651600560481009632175337397659524445345587573767061992316083527206710610850437086886578240596563021560864080291008832013542779931496331053266202363141749671824116302284002476930315544023808301947663402785390280478507332953323743597758459765143805783650773388136796339586253538644913830370929419080129720604845471764355131273859479527191244218571043548399241631959909894538649664253496085817337220583669753732844061408543573438595372536787893467265271961910831378969995001468620138032021312665421073900192173127665718143611795952819098742915233260852981009515770629823816758885505435663104582957786390789412887659038024433981817965325519230164040929954878579571607832117907497816499228559635705047383492724950129568639287670908780817800637412402866652733387791220626639170536065704656760673072105182742797935107756075642033127713827092481199876602505019871154676027550934380652199349718637085606539876125765507461550026477853452312610234616890569707467995021801453821209885936882415589039045940156259381488814348016273063101064610959425465463128698506371775793097321350721938422625593332265083707053375130120583209461079412474196559927617178268627848685612180262304565007585274291283312025822853097467298821647804012657650337499101674390606393037764323804871730630301651065654855492399819278108748371319916200276498804473089441298631246002574090348638109429402657031174407934369749670659614967941810127061602101161073492784314299886976780835825802665330985573146654961679365184813854542937249684360540401544959769821290542323743063255801107684817343376497989378221917051262435137326873715154446861240164766488474538013438039792692282185116928685584867797996476291620945716673664267390357701762689132605439621515334189809941461961738844592657143774024414854995043919062815550254705945667352416205791508753013167667371455991300341599904751316931499875407451420310775120785406787233614978775285045679879228645132869509159235286307942784060767596455086923906144902282985094520267438895120113201671533595486044837849981186887449987016243172836820592481272516944868502472335868451059503950952801256825684162166061212278594025256938792217087200599044904226299487529440441233798552652843485285306003233046879144710770010331698848031030591433616381950063018334546367744109589239381584915457392614145274565530741102056849230456019888534143969087268560075090046448867938182910333462875039293381677938095763257089450439040788613056128042019508256419029930107271074212742871498883544358187896623508619929090515196365281563739554208096929628741995689780302641196178945359224437479787027925188733436395700047909085410499491585897396283825814524806989468857899875895555223659958756820394696914811181388648871391233432562091348417255809632506249892004703961333412882686079674886030677884482841836598223872205862637875924741489615888488299455123078354831062049862843788955591482074274665555790918311069879747256026846359473494651935946045280129504966624922700864391294742952570626133072172435375588313104753886957432466658593302774492142289552997562791568785475434438166909218894073268105134695230864574976072112193958280580861722839510941287003023920531157970237039812669673181139415201455773376215639729710842547795290838429926018094773196480021190558942366680782365112618151074602085433096347586004043355276111006437274307770038181169840775401933221659318319149323637978224086156739825438394907447154508682883873084923018512720508379802683582753989819741016263180954532682980727677161445825546110907256648440235647355344805002573233773173820840531946899319448840966529160223486286689737348547150113545893488142548667613073516795309073104216349847932659111587767169826027570059934999322675715041541835586269863129441560269707756694735741688315174667949468530894902030154970152456202727900840951537372930188279178006830844830347691821690435285192000031758006251467961166539616322842968339060796566499941680493725962029574392397194429084613141357342830625044513198423720374561978159859994401072908735200197976430153026994155856292572923714060558432096016596316216669337311548764466833405739985653031854344769834314536550826760096479037989992547456761872828544610315304539226619031894402639663133497310290729201768132648290908239314084924899707917654722386854825619436652203487348023339136322768248176290077690713457019902670053054302813749770028890434601557734511868348399871121818275297474625625480132672119152145365538643819373162460822221750405222459512135384189136985324937344801785747640011422728478793168137558558788691326769363679348967541070377233016324923118892455444932895229709205960550164186345602978006868201113989326530726270033665518143189818278070595393743050891236815386999312330962669154971336859619427865543909156417496331329290033609840140694481311448741064073047353271795570523120457176800593827927533213242014294361829160328312841468825907330681944143177669980688563752254981536338381003954172341004784673493243714484977265018578418032014323805470865174380432175538241577359937156152773931943169487266820683306301402205643938964296652945737422789458545372598253747613385793973612607370405490647625122380028333611235313809292734506253165427898783821967848800174305892609796760846161243791711055914663968588276366722066510695046012337094522100276502091412035983121192129508341052295356740488458399855503895478238465935001092118043695705311804385617322949433505785902526477590034604313186199018796687719241064275904563564751838988690945490631357892879355367246020083332856214922260438014060251047272966401439437085239043180014434137509352332927935004131849284741070102196832649700558300431662426301008890241835292406686660259704241228010009898844342309368871380976615346942368330012429619787824680745138390762346600309163032186718011262538532763605812969862363302034151000213494574586484321666305222560907666018375692141222156333455706593953110736004972112593933609081406987171281625221141747121589614224803380184902972696724250524649160126812316349229412544925744955605592217987687613923500303886787875502359991659455796894391485623293052550042027595229749583825239872699816516763480783933462547872503891697176400616636523238338492434202171921420226103678490822641750508092191507444617176203715982972864398847069603371733523776929373058420676938777242448115285236729792069396798324385903244867214298439217909226951165732527445551851391037836214076765452097876660410938651150688655257722638516372324703976481509582648558234145034945306799591035916615651812160782472423620554777632927381429214426289429103747168101995484406119779853408923662162007470862223830645769114444712054104602912806281137329898071336373380130253052847118466415519355231353399782038991597864141998665009871519217729520632321774793115326660583802493749706572969595409949424696925965087835350939675106629981438308627929948599575410437618466878608425793779638830898185313668949020543105701643430074841287463339578849055281367378818787601468862522913136254975497826639752173926878284453171060192024212978675750839912682644716136576776966952352285437351818256054871465877909906837786296347298049866057429069751338037683397318346486671210547766109051412310583243536871708123099934074411337722453765545228690844274654606637137136370341297765468836546894044876020186997948079375230282582342012728330226996112019081010023300966557407272700529323055994874837583430356946486206646311735350627317981423083642107492650857036256068832821635213448856505588783047220914296176591110279422702674583056626259142200118169493799035790393432083744187755419183190509324358354242063583728212328068231031309813078371901052692090547551915838050832977758114377261970492328992195496082229681546047158622589782304651748605545585555430723973935401364889058270686009003478137552305009288087461842535938120308097256390031864378502313736635436071105995493691468750737248845762353815626961440544612761147862716394663316846241701358607324179666433841979720800928036410820324565617354705298023358366595850512821169464950611315493495957091957912175030808804513645544786634931251920767272489901539208515412947385927719134026649435428410634020914642152836231399984646691920718859013850277435576902360835401950444299497027727898235892826500430086615153813717239687737741047876018758946009350133006827951897862829207361817034553396355384307073983381323283807176099621254691564672157607476794361758281549731908977984737503270123787857627680765719419621224651858053386698774190789948738850606560833913100407724762828690262644162348411742694272804461448585672053040980390890416393737057568339308429827962096534534406820881960795425060066427896461004432723135966257441847397876335542825436396446322976033824098312834230602966742796773184973461559619932850702727184134744263498540243788745935732917836549484146383930083300241614707676270315187423161902306434341284670946499004780259167913641920520592451079977763037881820607100157309726706675339836991559549513983863912024584439697371640685895349462383970913924292723936969459948243379681375418947556185286953273680497605827059954693470777185092202469762515304879957230086243969085610899253946443612464308066588298384560922294922821988733321220469132066992965216614107316979914806329894949074220629343807196559688325853508266738452539975243808566816023856063595020360581982518068126698766536324792724704114140308930264061506295234803136729867341839127053848070122829852313714534365069577417462690676691437498330042809611065949181391880856695216969472282766194501331244672355470283429704957452546806406979196439371412335580685696552166162408739877107741596318331370763973686995946476881737817565711236652801410876396614386265532256867202525395205819933582528788952290379163368937380130946293264581384217541751899658906650857775992066023022559518112447815539191618677853105311842119994127892570634444298586271327347874767859947630559235161776470218707051675482485249877367821144867877080440290898376047829067564984798092511486350729450039956104384475355762097898660721125671886091540220425494000328127239515192180310312308390476440819176665765671611736706668946432837510284706133708936229166224860977301231383519424628936571900629820113200183867598303279749255170262870595093681110236803801749059943562905386122993726729404828562031261942051632173508759472720771886935796278210113393530975409438513649191347236928666945890031103747431112053185471459529039963801913879917084653378162107919650738745553161895492200473764949263585295951373300055064750117323851186292272533067463976051594161647103979385226376503121457863728418162007186704748146204833795227487401814713177086771376655286359819237838201035349487859783560488985648460298548812589420924200963723718509652521010915254424140280310396737353346366213069991739129408522691690658007285159193413594403411688390084793157742882856598171635362211144233505394081160765227447000767795132849641304405626947964709204087623262215208404488458072449152228395120656451231305638120869482367434554513774750073721154330088340335377578954380552179282658198513763988916726305827466092773778136448472183649086229338581095256939436063929990833371083411262402014103383815060362671995502627882192959767422456677849530299751872793636740474397560538395356917079525154906107074153094599210415503557088823985315235468306045799895855357545193723653706133748320926635968714257898756065797160906088430062819304255375563436714238083188530305499659353369232232275786053669893190319393969316328312055231410840660153167350652227191909911296389319000489669734184286124590335212695581172309240151660006197615608553236849605643013292989579687370568961345894903944476315402183322052633619072385227595932707824247021480020264906589121492772851766105518879579167286034649943526527486778831261516571801413602143401102183170835267169522230164364360663584935659867217678218690108062702201805501266702548610718783395859437128805043374846333634275952496033819329430064965082477678800541839397333788260302881115892407353123461706694890139574623395271002815752200088254287998441944008590432700994195047557761593905279931968159330069802385538027959093967190579746829463685883259446973985941043322393461634652675827903933722618259213507207446697482051767850876246216025225083114599811088664973922964665809253342420302736605793554547771413717994107953653890336308288102235503051835617666255168093586343592822347293652743885876600207113582303868848620622144838430184702360292477597609815776161379059768343738623218468183348070669630105951968556776130488604032747741969123583376287060660978495131886649383894199946132531598369864982374286596052349434223393438417911115826696124642681343828628032804973091969740787114875399142387649945378166943070458373501653926496744371943188021739978768193164832171092642150199043629626463784205023367147497154518528571914746845658878038698276145975944117342671309103618714312366357697600306643734897157568364756630099303555523307631423215025878460785079747463413163343159397582546033535599341087624081018445655526178107761179158539119593718875238279804443615401085559429069405769244840407694721264113809084978357784098363069621944096255534381737127099714179962328267962796897535456279432064537520393150639316207890360597699362327282712100139937067373409446329123933943229815260435354414028883791490677414423326372553147319266706770949961982091848891079234159991966145177448508513448866366035363762249050053309494948815575007392477192465872984590540338587876309500254614154656464274818471805848645621093367589170465222892462438247343523812276731320629459251987828927574303541801505297772296825284642087734139136869983514817762269212379615374014657307908189666313857120364189311835765164687582299310907509976228198617336315128215722420115730929002952719873899808093488942409745496626031527231295584038346169040681305766478156313101207203250061580371471214183504808633415924754385900336231856384618388649253081391942063508701785982857349837469703520096548419834176929808717362265434308278536374930370461117135901397710322571389767762548884088699000840624985597642548229639026297591432967116348419421043661602406986301469289387506315041126587880068380485320415159449844921782152879875804079989415217704114059112391102176998625291033515023451974861301876283992782791882547003548423910096177207839651388192677636360322360203007944216442342773708935298002494403142415202802872583230976201584590934846282210493476228562204662035388368871033931971576130941549127530880998539937326122853670405266715408447537403580100228317144012393635774113210899213020150726006702324177248657417693892100092923477040700276482588203820387006653055645260550431328356463280976953038482972780338069328157050197693775778260959731156831040325841392274808964826207122305739086758379263762288012099429944224448985952988495083653188153370450848136265091991594717653852734620387897949873576877531865330019968188914030111688317071298034254187185873876872111218970720980231529861096790797182378705362444620247286611470687358435922719010614119458405262041279297049526602080582778726507876257560602068507738856648430306025461563996770154089751474349050638585964316747501798094511601399641578675635391133213828936763312135956515788371816212771282515175634476862381290191641903863970316079015305366273681108710020475773850050219631999962984413140873669415962865321919303437586395680423229512812351548904336477535604986912933833291413558445711282848827578864322763588650017598667228247501974001420743261521815449088795765599046523166232918200859975052271673578844939384655605467643627162079235051500912461219599541822299104859458572036177666144892521052825165856585833813397978149321106975333221755219454452835217835860370187125760969887882211591815667019040947446331848950173896017899761759722732670960639814008959715556922243909168138186513987535489440471850327833748183900479928387741621245526965013942915634000590918612705550213225618546858133778139217198109120605657221967711461671371596642905854153705053618494455942900778457435433097178097998253760660319475630716899872998473750472933055372597077148993895384808015810487737762852228161827098522933414771860396099460308958739298064125112633494750497089427763733101249715498233096705796790988361201170548051112870358028666813178642778904685462277420102894149189615181970890824305858732547930236086874948167084786733108649514308624618863627657205148535445517885379990308690545808433917450317437895332893064408932789660305537671089593737690259549825394362556256273065511452301086958822883674721516423140956720295520458485215528624279378104624254903553511176497728744269108348939428364539239437527133250561632734121289922115934527966258854221230324588659933372260271448973271259074742648347301630766975200697352425346869798301970910535313407618239613029653585815435732402709655926783192997150583406974261319934400078648345949245801179345679862470585168971693217027514471170415433565006074695010075794566375930616904832170566393799395151470775224413328190168525942556005559035017254709794074542405929579447733971757305313334380659776260299803616757144174065130094088353378784477966187500057556089016205237774714519987454715289104711258828443598473886640734077296107423176561875980555064716915988778691967976724064605148172811541728571937367960782078923425410772736592945062333651964701617569865269564251375979530674386005041108684812226843366388666675479545757225425351585986296374014139527666353026791718866363804820134903053678180351291755524221073752730224639541394730931395257537466021781537701095206627987081966236409459562187582185816943224496273015513534469706507905626772080214026633981736214445162061288412277774369173616577027332878206004124678824274241134634197833166458383416109260808140183039070120077518324850591427185413336537854478057658943453590420333363662215628688888483444466845672455381879529680735344881330133995632126044789655174536629371423140904844374768253176496901142067896935942197918622943790518556236051224595141594054729454060182888598399473534188501718240191356746888960127883448498896472503017960127891923146139049008164087861392124631422114611867324101416228834277193789641261733885971742225984766949779417491106912514279038904644773169606072936452594605101963449848841166970482067070781426131737071672898473364605082547760744076625404097324701390957126365016744996183889426266059304332739979882363336192822010416734837074876389057655316250246166742094344413936126829054346985217479642049384841543898528741348829136505364390600498877506683260385738953899366386115227774152584264403317113864031770698683245773639257304389716229702449447228233170275415200217813767394665597799544764861564735242162442522500234851335057432152372180146970576750859885517807221802298113061454895708620466931190046477750170622994625773818380796875279896408262535865597134380325120087855725946087413241378114730947060983076993007315487058083169223882267884388171585007125581886718254638881875325130476485659598465517548208196486879425929766712945546154155351453717109503708452463675734831525396753176866388216992953134130838196130039581856192880734027634646278738272145243135698683844456967125402700986574778708177165096138631052807844056321327575146463255608250737419894470528475763380926496457637652694867338556409601473532789294989171843216392931732902281534298049192364324348466561914077709290771946350682237888352650195342602395341167811855090513742190387007895329047521126828963150261529084341561182972797466642799425500261576657691263915963054649944694314374955093057798169751035781405537336704133765673183605697282467801659091604864188098106119176803573118869366750611861265484536597101627125066890355058613962460048216211085142208026396636736312802782575736663345339845107029046777969363554274907794673212927518456383629841124884880269404241094013765612241721126949045240996100196406013022961471538061348184825895353218459967004734001284707544014255065859804548790278800208771946555701917697294597962202247192991673050483606423102165905720707952508413657138553588890986759923211846820854552033529854343865356954513468417820463238405413072316240331648610022194016314097194057629188942407066411201807069459287159106179581567903793378518399046371647761944135824221526967519927239540940695321922592154445635658022321021409050296822968686210900845873926807704129397576130807666850650894469734712154829240321184239066196064348036324802404828282002437084179581108687236891758332142141153475791246217487623133433094900184153130992785083245249242218814783460069361037177611946404817095536008559593637828336365759760042312736788345669212633318683213394150336507752135475676022066366010852894071640217372589560317535768707741123813197860986499856075783183073707296333160559589738329608112470331850448434005259502752393522581375551302622306129292833888192785948826382802615835059671843018634033025112101577532773533237146477760342906009726727116595926088197198041296799553000897261429474877380775016045180308270581198710850795187000660791917127885736706911548531623459067991921719135643682379582314962171979651858227607195144839460656741319053559740661420115283734826945255423499993909206536629123176071246574590044113442456622372106797080481399264911342535082237820198113547975085102842548794440305097093991283373625720233139615361109964435930109149604087139314766344132949804313337440198657309757339003016034683221257493134367614526176088733916991609245271410298579128104187057953393842096647335689544188904041319617265516552040155639481520113044322236262254352663669730867957822214443539422583548155982916984373101556234277705594170457894000158561234776204381320948123303204990846208130909477359513929979647993221830063673070931826605683073102127942668770139737254517622151979802937321884724894049420276369427797716987223441611255631499810203802894135693514306383245254739493220843658442290323007903304127172593541935698740031231249443073892645415141917853704478845359387550045941027184851566596118224580472636609885250917996335087718123678867472494445190630728053834709417321493610352711653349522711301878054015091341097876613150279192954111720385983487424545974003122745079356917825702572999999068356282307889062607292140183264566241271558782938721119213733615302196536672258976197842415023713512742133969573052887985493433647337398417441218305529021943932136801678671627905469255454612033208345144310540385380278906043898309625862878948039391478983259326452401894739667527747799435081084748485119030936773622449756817536400184564293676772511818996569106617132370497191494889166349075538119119295533027097750227895919175338837772851719581320486765116868464417071924132474394694965371374053093844479666119189554916690215458873011691039810359630086619701098443302590567967133995458453026579746305993377824338612196343956825541444515446086721837414437185814666821140723524568916714244209153472460142621424126415883893582030489251417360693177619896361037893784413156485439719458622129274486378879830364871758278543192005204408597730238196119828116486885340802914876472498713885273480467606340736875561860518719160947020407588311707416535088073253390374912694988271527162754789543492436615666001506575332571676400028324148904563265340067137013547170374552662655290344669558267522290333613907794494966241531757161428603747045491128143270524526173502777398728531231654472427922405856361540343583369286683538580109098291483543454835031303207179855568227098932282980907912587542502193665432270927780742452287614256162819109248954656915959469413424988380280780406383640014425015685232636570893822677805227562344958103609672230587526751819414839002112351201031139697445640101397996015270070395065151710903549306435686760614293593911631040636643078983068527459272383820408066954175579348529547611369475782081655488392208958814076243884211859288353871835815792873440785243579631683546124977075980704836060043034001550129255264098192861158369127356571783393755590186415700393646785692590503390098579259992985900731519340679392611978708543939421035970442975767764449715190360825355973901675645021725424546328992761179630674168750565256915517003376766620992463348796668060085835548033521596345408962308936601628204724059303084701514797604789182486371813063991013094591921087503043178080794993557084233970554421787748169944003940522549628232554472988412046928172648324600323748762857663947604726448740258228685441972422983626297418124354673767197113357295904032021162566026990703677345319024143899935195767708637386985829451852435045117433489799451347097919947894605174077917552777505733274514082274447478396869076650477164152410199656041732861684565094332295547990560379779863633079904315428657374787642479501782057455350880111892187491327342075837829071090077434474776587324301920858972649503549667608832307812083531198701166948255790629637467342953013240874944390022980763963628196202901206607585451390954278006342682950837453070960249296628598519419410813647459274796070901469093261213322489767540549943618711703059850506515768766011653717255556840324915492032090836196095415444928573124885159815910571987796935834799492259807377601836566475134679349443162618685480140725216573873449308041726801534118210272219165669170505870023549704504072680718935645129788154993513970594038184217085783053346248677586317121847197696372544008837428277531143270684310801281283189190673903786136844333169721974107147251361196919196178598068346405263222057911266039986866840385873001120538911462292798366347760653948253206646095044044493236164124119010649951182871133187971219465131357548128948079948974676958682424076439594334252322066143700233799538008138183970233242173845901093160120980104753326496168099535994728865965422960701750229441181216852071225608568621901900159241995379970860660628747024635025982635183906625003595030238307676483138359662707703242980290445552236192879563190120661486766010391118841770199170148451826542803689898031557930920158198290275607541460719760870766325184425241917663427961647443223417381845016942673746916286134520489652797942860180763393005457921383754750525850398362050621231948630333977016559037065542640226587027157921195347146734743094643813784021947394483737502862895751927750205858140734180985488980928427739066574797045957613477394807000568379339385377698825016035913666281043374371063116208763215908648884856459200112017180541138441450484781731929974780461562324270652933506505414261416007854904142929068380253095324528251403156112616951012654490276307546411371486451128254256787259267535045126616117658106137230711536650298659316661242983469282282433649252858606607075097644163520052670129324823957820580717138708599230190437527437601986593391664339558332429586548242306546817094819857163967198684064508662759308363086439636493987850685377004488754301891155089913946929984260196412267730458192942587595265234577568486262752618047864993373892462406255897196525297819152765780337510350016470815439099628129809123066907378854432475875165672298164723722660501054413426499272488749779650492715050971084410628429687318830178126024397947704014485312361900765119250838407854665688035886589779006947176768884157290769576177346089849387904388398983175548015703466890017771088962187839130638854306359741270074562921518025715518030634095378768779761778964920690119616543655482226458692143068362806533943080340496311764831276153911417074214015211977411029059436904739857968329495059337867905221729023205771254723143488762718306459967437345306494706604272195399936154961466485510026489802144989228449967983023275472307028637185537502993856294611184142583947828784036873673552412552866096459487907777286397808696165673876431586455436143413468628280215466478658916207294894482214826527267324667297460783299996828551621166743073584850895380441581142848544983890194572668330889411721177551139007894938561730955171864328698276023491828764552776496582825070073850110424885802543229333057025919084366582612102617079623237139265073620899022049553968464512121443554673509472836946375321531082014747446100924492441448256151136725389695932499461135151256932153899506455136646736669620475172357269162292340497339489039138336949149763982696590809899926588507459288622669922222797326432597116476430963666153594196754915686655530143857449577433010197477118247050754472139196205813123362255922855786006104936363467015928758676159471752904308662644254479076890679017199617545093377232136877612598779023539667190315860981105422215770701786083388111823624212072598382713526521889906597112809655417967966726802688218619961845372067269092038677056005922503852820537842536085150995175482802871323021588761501709543970066822930420662483293488056564281529288540851975339294952919503442318589100719068239796866155222041846923536896823122961195407866578142218345394947227425303411815891399144919837933584137491284950662901825521663668534136350416273259405403188554763300572359547300174310302413370559008226295729692699012090429829265777353709897489393491193551249843912144049476304019695552314421545383665164461779743746088517460842463966419433953901768597013128341618774177194860321320436190027447343442589733838817279391032431153408796505998743097339675582240667104099372826935098269562467500755834989098427006954684547955631358689031972002538866799420087657534396778883022984264723304167644741234197092002098439408376621604733489148973392727520553719127684403442274468500455985807924264303907470085798251788220050488369437800760273813964819234295779873468469824130249070366032573503015258260298819938368767688848114942292268474552585633508835470437941168347858954994746117260944546385873267165595300390554114498920802333581835096101263036127746205521868061902904975423329985415930663592635163130159742874645570607230744866243649288239605346114534609124010334347861343007010052769510030983427858667753998816244646262973901941290873696890609479493924474295980321762953235325443308688098646713333391559773536565650330800217885745328258033402883153317828117692878830052601193225836267493659647620214668163318726298490600327949541991605134315880497603994814583520724382286557424616374627160706277055994379038936872602510927426997590452510730374036995755262740249011056407109930262910152414551599442567918839958240866590190288949986799451444257147702960350345634400290188917215509490636175593115716688770663329599698032789995987063916235233907627044833546227886114204951164007642656941346665090648756992955020805301829321710349159209658465592146260673346666231788265425039710692195559464823522376998413979988554769614359214455228200925269714714551862094912195989018917754994997356733642786497967052557406238480171558714059068240492321315208106985157743583269158470376050280937124669435843055486775340726612155078481953631840495412111770401225032185185441410988633488342797351960337700592045390090344663810809440834944613533883592934737701032509914988163778060401993067876519574741789000893592831849362908224945164646168471451558862260615628366438598158481942653397986576802736660543960367327646461816618679249570183633698250265358834520002062718352355941112492747530587515421115991605611551881605758288843660372494821258659980685882674877785401547924846949183024243599508508476055227121353029710488919630509572034193884656090872672098463702653970392805371614921296467511796039762953128271667834944531981439705499087438298823938934578091686199893994371637520066337335816453171855732622795945257007483018220624502714224798498532099989810323306846212015745609923756997941232721034753508124946467572951126414827164723001991399827533358532844451595401694160491818303040616559525212160140463849412571992123815267924060652220053930420272884695464847011775304797197082110176457470205111421137408603412733022344879013715256693027431941305136368219516677038700679975630252981363890701484213146662186818689145836316215091509240998763890636402427340235285289568727087163481992394803426409283765526804645650368077998104300305903004014758047435773274613258916187855702990482884526993896684349756200220358727640955091497183685165512967194853563442635166153272165115077181713004100600014998298989974481937786545556895796790948212448592030819929108556830684360714013478834349896911211089939760935035372555013230040155920063509976984900669504810911293958100528895723299507594024385968285704437231256225105940797441531862215040092383213810541716353634758456337610422528018981219977565941632512624491501858588642130832120578687282866159193757252130616339654478587959997387132039251293517551367602248242068009774944629122857366939345712808675824104720511030831338458812557190079482997665517033833981141976108312368626827366867060316969853229171030577386437991443932727166642310014224692441224174101592933832508673256702857721787355616521516424114769124664022520960643711205306874708232447800670042366728940589213051671969713557374500503093241868135793927813506131756235081179405511692122184073028209903102714084272801458616175397314898532082705961638853971480897487024047138833808560076380940663232560237915269374570507238669083396042776092074930690613273502277472073257522565890657518819238389837241326205965134943905133371062696295624418762082172193217707160374672226142693157288442915517168320454192147408714668053138694181282780349677553833601437630975900570710311912119106710757666081385917007449671633110164597962131315594976327742523056963592380294636011175031249314686427556065389092119950945588476462817711933862519505959826907094424320520558759892478184391387218428089603278710998501560952704615565296714235270586643113798892969814878786300620903504532040031205872283691653705159744381208649332695431478996030510374652355001304890867585764624833212324558490943500977925649686896012145279881518893274601507498000097570928670933541482364316205340892095390562140776867219753367416111009109315748747528579746634224284509993377257203126808476826226744886478229315208841777870837789728738067649652282847891565684918133707354684860372266372157981795164865465912945532779341287586988889622010799499265623550759125674371406623825917505823289423502617520053895743955896942264601332928297700002469388060337876193034879592056009216897726763490156157369136735648255926139757681839355454363437040778287147394339696819879603440596728204945199229281054980185904059358514112130808859439090727527007342505567374784385349883286403031181475216298538981231534871773126887587290956054774663930868518136662255948394022247231329412335875970145077648567224271870445017633898235058868452453722420735388665453112689900983104549440432971361189614270836245436476505495384539163085855900934322663818601305985725310621181406522254633227209973800039477181707711587658105261063044303567787597702650170455797186711697107142030486576421181681649853697766956701657660671314525832075659413912238858166020078655288875488821616299365699044941152799209549135110932574653881611804599543069165152922812942946072839537619507289364080106497620998992695340454788223446204080226357137528337796171469484623156378287474588487661715016861430016532387928861793279277623774754053335366111767989305643785887529683403371627426952282162933678977507252393313486356119116137342057624714306399403965916121279595447105108938976519078377070983535811167025538409480890945095493130022496942916665798435956303874006414412456706253307689855414264627378674232616906320715267160679335003062789286429748220444508236364483084366796660522462661820335640287035884825483912801345172778035391648737386686274168015301802304708926823246524829550699588372235829222365472459383978699890155698049247916640173045083482695352726272367032857634992974357660704878312486879559403930937494776558037899878164125717530010869860968415158620806483564848585646790105092255866485337183932338768401085815437201356863551189773973858711511727259855331583007702971469731168537052702274515355785806947353309230259481594957831621218578098474573081501696757683246938851271600866775238909309792417832061273491324064979561689371964249834902610540412108233624824888036883865151438417629160941204191222223760467900942139127242927136294004786571185365036411338142565320188957153950943403180263995514459647481590152993776593481682867036140088904918531908195917901764773840141226159314225418259659493854777036414449769272905386286692837953484168023411186593602130927713875155075063398328270970549382265266466020344612767019767120872163021122316139267431959160568763411499280298240010540630518822591545911788599830862788889658383289675102592969362436897106528682717037582985590816634566693271783826288387683178153205284254097763665653078994888991114693905721698934127387961461363645120670121468799083626648304072690961923170917515098850444897939190864926822407565369121553560988165550176389688997789816375466162049674730724516855992809862927935045495634964297773018972402786388937827170897889442061342126274721256114196107839683478673384531312253729405486697606665118195839581321988517644196990086607297161786605344628173154209577925550572649342450538995789932522436355777957728174056839759739008028324826195483289249390370151594647759000806141517363376894631597460322807125454842869803286046392112495681799554837435701583472062971144394666567961405938233214989713277760506382830177062220674822747670620243689284416026968288350516435770173562663224930183664881442588574355644996154505189173831417551194067975642977147757637953010314683663457759570060830927264498620811369412389697828372949939360643342687599859461939072893874605763629626499035578683997785132193740929776471297878484317077206343317762615439736607781837374342314339349790525608783077108335211102869042520682267271863197527503120396442419224469100180673652775744371469881147804412855556880779401955250884270131816642605784170222668092547853726778044172343349656028210290043321946010352991569054865021525899446451452572453325004197254581281998398009149418033345860579967222427921086728864204131512825910727472589285398442868848271401334752625244584198149515160469211191292119147938064180354194223404842209454191962649928463334891983143011396153656975981627880182843331271928470288586332530646898554870532855365786897553711606553543194896351985160638291124831204771267409006092611632514925725765209119824569590219923186302145407270721175779495095855905306692725920209532362045758296438325907912655739957610783932081861802684828659872947949986842338352985757925718927681945642374626539993206835588131076110458877220311943178673037214205859033801053125391585696485366139290904118052085642490582106189791460200095938501041610412756568964094137434207586104419582536952179262163030742110177966142340589088723490429175215321516135641547013104887525530791513978219086018873559835286869955162226593754855911484672679637585267222092880912188898297245946436054368852156771056202660128785572729859402231954605756669139014453295024898738070230967703073575249170012384109590423131609640273538822464578382060785984769987081217633561108508216221947419855282856386541813848092825960366299833848844039014386181285142271444232054386271830243606241839801982232695164824881521442278901477616045761840165943987116480018783719763068778941743549304350426030999877816836752065711155038806033173705298363527698774614499001069383879312763334848089926242509108072612871794271211457862988928912538817713676543500553917484250846130880661740511438205024387342593204176988833010944904807743578416137403206893141001053322122077770605647440248347524326198834169255237601506408982443071383416542971114327142879660434009214558595654662197510187935320908507665078949960111464921438987642688647217405464573809262380441005495493513353673283643229096314211465857198908568111158187208588219308401430331040925387093539948374994867112758501200887473031045739432467203905522091199575004465086830537325780140297081429467348000187517110719568347950802975045887181724513331588945459865211177475401536720692817696556390603246771880502900498751223639060119184848368024665014966289143948842903516795700396171454002104095831653466631169318939857784650208212916977620807405322867447533795954352008898068125478285204018737196620290442004861637905405531120341668078169305045811136774618632403716012884552157194161940397789998708903902209046504079942331874162855898698376329712197374330485711590285969901319490503685148677081843413696412320267268125325040873644201979855589587718704281832239162637230064539943435668600623718302868512376367122926309697861336948326415606926818815233381240997395371000534060057066424702406141827469771636750313703686175061053679229894180553238295574377981921123772458020812705518875773899193911985123074550466796412121170134839440481291135585157945331691669731493072427599638572657389784332350077808774443484968274889886870195556858988036683361261034116598454876622296603820825812862768775272126912028447074785959155678581808322237506067928278456416508605587273479430263098569672553749768251298024158081531016597885236863707118347609755967116293215098721663214480990697368283073521634667082728307539087448320858720088299192369400349010574128902727594800567771582462859227786311161525376289850301820060733756173813566841379087196257209392629837354899384538394249390366984001182616664830823009966732324849147057360857876569892617173751569412885772854820094320959757483168327482567912002503459189716078741747239553812822292758084837370370748725673798697957680179634862925392323956689419035118077020671621061406027447742010165200090110383027872493022374911593815261513992233170381409297357176133388721444053030105825602497468137053529037715013534611680406781763690988668712813941947701665388493779022300555645073009202191079046694220222847563316265065148954907012408883598904750610564551179954948085283930867712139524911538869442703121851521826505332433799637176877888855105575498024893688985681617710049834422764590425053300187867685403540126160878882694863136864704923003897326727208061320192373250068281089908274898625375321818114949766557158958332778140092183887214073588547831150329783151965620776986137653114304855621576112956478330677192440610585688190345949447442454805233888390971032866609940214594858728316773793982476385108595495846938495259871946133885501265822253483039181040662241175797565930273897151652986655794464605776433893524367430137846957866793864071360348376308781480933498248276107878076652716278198080932533806414249566550113951219452423568642848188818438253944740940631012370388542349179254860791646606902538888376533568893125310264296620870414960826146693155179340179279659803119345134491025995385398466773475117357614929565764779220471264318289293901267800009337462251791483686004026001865010285755559428178969822888985713563480898543968939431103949791103394237442961215446743795018746432458586597729541005869844299837481623514307875794162191337869672246851636192640633259988222298549912308312536667607367562659532263002129967406484808551966837446276952731860865366123957422447200461954625239143436664752645812665113433381862121637185537446137979312531999853587674827289174755143295304373740207281354708461421944342703813557891763933564412048993822365300580537791780881022812326770228017749286303918449090626981213713587541065401556210256187392273627416142467968176179370696787606090619769787926477592062581606531961906514506510117872581409641290643070577713885809319959623120074932249700430348525998081106390218858168231476824854059779622252715678304713760949126153340587761267276556121943296519462972133779557180552405946749550319808141169607386017811092106544320462924900398686320147151688552439873332365287621283515805402662429678597083071988591947929090584365239167936627747296222937596693676949770995099436077410603718356642624634421495474152890979918699511636702944963794173794472950446686983749521721442146271102618824173991624821385108300936352594955363844019451112917073326503041031299677109548036937970921897336673972925965618847596345252014984519325998668081257040115652703272582711348329915753374773132676247881484091139768165545241941335106528675846348903449787317746542385260593206130234168051277196436620804648660641816574803432190251978052656540637692699003293903802826229618583185840452900631165762979845554048469380808228336536346329960639920148415062659933784093791239068927967873416635315268278571907759589627588213188653110473167744684831201481865126421847665492606911233490809368841894689152861030959798786685232310429783922453573173741006094904639691851397447593726276088057469581030539479743302651100521188503832641880514298063345071271166994548291650443115677805709585228833515314401390338296260325197690189419011638203866964151849281460710066103473206511842647998454022046400372527102216794520418206293075521263965535828790348296944229662034434610973368155525275941343259971638670265756013357950644254218092756110566298382586822634725113688326223551001865597991978125313803334682669705862012431308400193101490497237005037971347282483386346107349578616544933229541086535865821840290341577160847878670434070967809253160878029035981453321490573948872611248029008471707041947527579948453374591245784817649445165929606597808552256370800655812279180994913263345908253017369993475706387527334281497996246445491999593973951222976771381236167590074765926475681798142899920807475959756004926379800529410687907142740326332847903048222514843684584023637953839628436063046037832186319150740131987502098013772470260681500880954011680240259026521993847700492952128024511865036155615758413775123515236317953908695724784237703478934589627071285681589527316925406530202053244945621024350798548778870538014819113863206407783880213482751244016669828342155800348218299215066338916799474507979069921190968942009995844785202783172094572873839932886335113294861385586732775116178511333560635953264873091491013724593009056223107355785665135122917416517393263781135048614217508651379721188544067758854481719263406614038475542738151159738081510089014420064630864333376446600045408824986023074555263801462257891906217458852750429941741711615759339584117506358717570821514175694066446317924277872059345554112367331361368362871058176795062295812096312223284555223831351524126624856331039979395601884880783255091291712700868307595229023140011616821715634050052292108088878734574313812473413850606364458090131280956317985215465926049346067703452609602098812365627013273414137140603017960703604839515762085199059986642114741021373891576389037484732234765710560422392129326673541884138197851716604726899274037051185616921445624021599199239254529170630727951993659956926078743282851844088282670904085309859527447106380430642254013068202718584385032700229964765256696854392783633998365435637782032220603160135586810273226550167111909342637381105467630727731834167999589437811772420881037050061304412354252907894772973864504298072085502278412335444271219557314629966517086997128952969337791634504015267327347082899989330398923789821767497651014332515274897743073007818255709901358104333417225394635415527187418951147819478866584032727495241740375980927501868176630043998123003752327675550943110010662144086583630705266570825784239777008894920376740112490005028515601463620237706192227921419930677673138595039173630262443911131227180441714411605257010251937771291695812789655615671889165654657280692886159035794039513063220495946402208239950288109206493300439337437304362118086550024478541094066406412510533554783695302078516511758795743583409662941040597381660398218493534456426382133274761391970342695361953998428805681677653417787413807764571637860917890760305530104636215605073466339739264646674699976550029470689507740749372935278805839936995309703465474176006817681976957797779875698526980973765532629894647568357378996811676730336028671094766788513574575954546500639927411105043847340769623958627644814383510279367690532690079597932078552773937967621705958807358398130889198171635841959810221660227474544963577299185798536539810823990405172280598698063606317939894096504422935213548327358918857314727033934874252431375279509532770604763601158281027239909838458432816034599100055802891904397188182101473567332502303955582325324486942636204229045012054849733971548609717303454158640576381328290607393028459186172514248473154264602816034573785124755369376642080174675434404310627099253054134913605940037417305109120798737940792465079600012632513891470199239293630537881531652026430195633073986157503676095208280217972833138844451374277624946570297679968392768928606634104549614051539367509549413340214209193534083350688535570429370289008746220673844299791864602007576773143929293978456343006813812220610369010310333816199899115954696242237004785984515703557844340968805634854877128383283784541019184399010281978605431432476610994351231816610164929646465595909634989116546513100817921709578278715278888620441928445025840392422890439328610936868658667984480144159275720988057462067826563212389447338661464499193726874431478771320685316136463407674501849845389759190213067234173565980517432522573289660751226775514492288038317526336940903609382844098779315755365170114175082562127794082068400191394343321202437823035950043945456502407211562903216729464754579491662942941283296606574609124602202106334005195330316963481295644839018050668765834418130190809923386865358276123120639999335607340363824959386937237466093732634024978119514894807022265215337986790086882519107511747828503563848473416972377430427795054389896312167569818872438669421411736222854065601060846469987608208416775527344307771790450947717808705962978005081646088898399109658589170664933029035565346919228911282067190261709634041275995634938332241014535053239789506648083778234858385798348470115999508661364574815088282659634583574810515702093509238757404607116964467189011541723203582098358471281906092279585787039396571338254408398047656884259184567781933965067121399860403676320399895822743996779928243518749012357971002039848874894558685830827598709017236559489264359515481158536197025759516692805724462365987043663609588263004481434611136327300177120879120326430984298989918160631472253800181858545239060692658649754947957245245272605535632977385436337042739602581574780899080390445523360931027912421103244176664254831582796767931904391909599606586065531669101846627066228768467636089483911261061686840461681461652123565128309996318523371416968809949799421281746234909548502156821608161959002919605060600909353879882031546912499981924126426219836239422505532048086654265526585425687474389859190425669631752231963055117733001708485491013843407928282739694625142460170244170870506981171618791992580238826385631974477157619026211513818862935048677488560202568486576320156583719471490504890453952570739155309715387172233757190877114003584013042579948790837232173178836163716639183136824995518390896656030176862644933491930907004292742064993608419203916730572844499813962113043455345265612927743999353039587945883084177745777912590178358840450744358504348604024934575395395354583293066883124872279224985199222610889722999026322370496281955435535393125658008550688561864356341822019633754151775474819668888844385387383448735519071192440563286642565631227872205103547156373680472562481963627516505795690780403040834256539714271794803037881491780193623091963034827488245778394060605388494273562869479328167309462931576476901394425963930611648028807128922156843011543352940635215497468388580038078341995552776693347799998863858494445394786613833013610881925378721401720931484942117495847755092068413097082441114555884593714316629689471859253526540915280152952357180454520915986240981698593424435297376904248854031175821081455638942876747111249781412695784975980763267682462349944324140876510786211245461325105141684455796584434069928619336340545347162217682183072769537722861823468372297968477123350885510086824046346173512306227306052131529809469981153813000822493237320152251864086088422522537729182914265968608767179969946090012381771118250834714327555592697631091714146888329828123967914127595429742540526858504403894889125424055110758661262239275987252707801711178747931144778527681703237999749601230937742043856037545455611076305548887243995231398221759634267559138150305425748566418456181054773188555501145039520765047900930672236986617848291514859654075039349161698511819433785057773626319968423659860052735220770192913844648861039377370795291567622208166848696720642052227539611433021188316461694035486960137299210899301103262681415621774856356409139317916077799192011820633095507912488790974775688420756212218179882185388486201607860275496075516165712672189291170012975769859828893866148740855037371581870287363109203851611189450810971421467661984035027436580060544904104020788237927669366425063912726577100495704246093094730289667105341828888139192863779465687252127265843585800822992026569844806351145435455730354773122452144570592970995801917024212294454743983734026008722761098070822622405518518983673637805897675725034707323493141065142405642815775741302474935999539390378098935750971162127639381060390644106305596130808614328684265358181345547143654927028031152539070523145619981819732226090929028028230547852500697140713303969085505198648279417175846194817738237322196129171014169640353819388433446093247939837279309867017615903223089994766353623370890427403962199188902494418653420263819261685491998445734621845986970864821068092804623154509568693007217410670906979734698828427365945756020811315682063949007044102858957340330473894178030884437618765064635396304274477341541512463412906911603463124324351843744150094206953302414689612069010320152033056690538779421134873983304832681374648703295223176664449224037009585390521320506568457030559237884951019058591428377036527342955388738904729871788300396744093122177285020837306737555863222688116927119616156129904331376791985350569966406864934015486130530868733003891068238786456597997342972365118928218481246104350518162218673216797824383463804443179956439110267888664056982584267617746993233536204260490552779775528214265223800361948018669544845266439640477603995942468673606742093115796598554817629806051838625076194136583133451632113935435246684365935597803685869587414952375871995422719051341271928640217870789496140442907270377254364681356884645594072532822580008100170754713290753251369939693761859680543402394604927346256693358102849061525962722212709725172519232226388895099456642414963633674913083617885937060257424978249095100474555371925001336419384969680641523977619255295340500240426371878022659078311611082927423257514987108981973594761796494521133681386969676817239344194697667804039518875136588876006424716313708553606642099853344603922207397843771670472938881584372138886652691343615413672536987497568545338954187569713201369809550699768443358637010569216242065344094196153426665308905573775988378206481937255060094483006198203920987227293869581502497083412238385809167556193245443997854418693774672422335274547314120307763617414767357730932202896923974406385214903311979150069450385261718372946336222729013157264158957708570244810559762961297989478967868379592374929015245132061520322504415265178406253854819563030256576055686082934610762861632374774822315578555386447009872787093367916070356673360341774280101229260027983594384805032174088514101036926461873041777855466388652549888431098230410030844133591616607169738266212339219376299213357017431266521418168063786177968760301120168003721859549424278898588604190719586234811471102171380252534354571012954277018955795692886150250108886778506577125001525808298674594350621687257800740013202769819936716552126391861822330782070079746158730014282958646980444213459490146532118404499019450533036909215952829242958883909071244606230795837890830579298377510806643972924697479965828075453162278396095630230087774694147547815861441273662732074640057822118184624042709089084797773387085123659583960394811501149854310452512462496343225406119011712402420761446295000835825112890385220748399843707557547596281630181533487712971092829912482691000007284579743494459317820780753840598995554666657628833985191327046969753949709038406401583454593269311242621313051107739893118562619556939820590027341245971315787531262351778002905087705763116220298939216406244782231359981155680681899826815443665057072196346735080106956816106265171589345659361037450515328214865217653676119058116431107722041423708150388430076441337581458319593920348924116607487692485442033801412466948074442512060159544442075361104730420228871402086387356204574094194405689128085321916750901161565366310286057173051173368100542960393739329483785816797264359944100772849484904441429380907432350903673666409494096165465886993618402149761903228890053818105793969846317695502637724715118062270558823144898963054735241493003400147431209917063347189744708227842213244886381292292372591184132776779727106324673023436854717850054991736580461328302205923761106738240487555743405820401046874395787607938249554113783739294590869355691651762062679117425595421517777585209525885959469804885624953578215194917908087357104756810984924858919282402660499415682402199833091960527787127615166688053588801366696533322392776353955514123026254985829214224325273171599631478271758311770457811652198473033874845308449271397153647124819777176448041650883179555302363054523715386688856170569301686812843998789366233278976061414275366121913027627365786098106600816526498810758477680784339213553320087181813681954599170086826702669821730194665755050493630251305919973788682178492124759535021247492838226823500521132820250883967687812495046609247736442003724875150835411698042213950335571834837596515601846508630274346082938595046082673275855168547635590807291155847690609446502600562243145594762921687440586032928945454337194991537929840004200322614150825553251131645591893170624301958690692296977426466768945505433572460993765115134977913088263898174453453338603685676728769427676165628974610366318666861013306416567155877363823204490959262399894837939137006028327876279402544062375068410785094142069250280732916691073086784581306711062156850892929037803662898044439400599549968306928945592897944835520594698267587891240605191485136322707500378025303962118878367082794966437663524038018818160052613411824352683559104985918483714391220780832019177501034791027066460878594754926110952622901661673430324510546519899077242678817347047740112114851283884617647980057726456023951202384137878009950154287775484716852036497814794685452608958745291992336744822584392769252261975711168708684370895860022685822918436076943384708627627779543312433617728997268904308218899284654990514359913963309917829443120921834606057134190165213771432871096222597046294782984874630020468629577642322209794231910959087607569983217587430668313542996085324434446522057839086737134617413714777099096150922249589241774492513484976038315092527694939797872712751564485094818983372186772498313800008080394254613828531217027503504763446268920762274453251263788058307908724030543516987425737794192519396180097959406296930023857780936792350937421497718985181335204666783464845768951780736559663653007229668264386607162806462475329114488549393136190583264875531539437991668858064315838526845035002105324911057676572136682652023483172791140600618503960749685798381699186006648432934188986968220998037679257763020005547461026985548539921037626701339532442910539625528406978340218516730665309970549156530927665707407668647691012132313367655886139677118127925271579445336941538579908089832244906140858425600806487411785863563364454935370851293746834842720428787031951237228430918229626467735970760013177157616158708469588466396259100080598781702097375939209548997509876662906308297513544334111453846324520454252480136386434561653582314426493132451877729382745139435563016452419824493626568823882006704897211394104115606843189692697973633851683755604412055075535737952829357644742791588812960239522739837251626097736514675540159195772393178854460841839450031600110136793867410818147552250233549074036214845420290241984085035613728481239433663908117110226857121917630382759942234901134362879139269183280803030871495904063622856440461564428057465966480742815944750724806491427135936973226234243219575108843910508130330649299443269951755192962832079972268757198304544894303581917034641335184931780750862472726733984612970678693660383469696047757905496544544464084933424939692605574526904172139181367962403570427024394891375925299574330919015409916792557323289645480791687817067471138113096189754352810669339374891355943679920282376602776032315773536077679198060912235602703901861482761233496226881692345808683517492608962441616002214440930277308933327733534283273132801051648301840332317893456175494338378530744296206487918054830851540597523236902608272050610129103935892855953466066952305023688573594129158029872642774988804053949910191460919089390997481161888423908994882796474703168623371519109457759877128013352312936807836151317524554061887988025661013875688436172125486416436310854571925345073341291692869998137461110052091705507377886785653868576422874876998555346416740052290278980065953480687183412428883242605227393479206586654634252261052189504472172374584209773469463355547744902143953070861046284926410811008565452339306177867259051541772074313756618246128235219770369034741308532837656256439620036997360414727072605774136324780262261645600470875608611677029218822288330661998211203151307358783790474209044192819905854648605298280750771613572681641066062588932229771920619051915667582260784365200593451054375471771269087504398407968439708151893559352006065902750803325905409245508799714475663151262088324838227997497953878249845244072104716860739945246118173790734013664343529351284220579426398471926152245912686352650565317313407739857294527693894635170965793223881623866032237024387226944056148858343245077823115765139208040506696898817579883753895945308646388912203435296591998984597158475376307508061386604657679767286814005476626921625489603612087598540353780093935992586256185407735548781151603193524532246602994448372821453804686472718117300642181155464668621301056252633890622398214051496507831917745308176999852228861644867180103808871141936863975349087007446850497291449142608786098859767953657625051376330116305410698699498710686393313655159746822505605352654676622151780056421889285205921497580702569837102238794953448072423587418675912862192247699914926923655299277809402866359877038976903865960355982681728759773606462205302869439338356336470433475694613410688960354572358719033439738720083138341754986195629106358763512129021964287493850443981696507613049220027768843579090061949931793609126983295300469998585982624886789901736365735377946139147355564910935933690585152791054466098313893322205152416790135507669089697584939375633368541486396130130033775453609640275948988611046286770094338377730829143564349918653027520192381412082813692194786766101580144835779016153656815670193595447464469635862206839089830853512712024968019878398092416370316428885875047236727683619432667209805755376812002615258043351085306435004228520229399316120932130256381164812969375142256727659380866103780348374231201451002012831984423874569057589176597729945271445241005903249528406933561839817292460055521593837138637162255890257744025539512353329103134749333893004998441079974869336863377499428538272600471877298039835852223871498148665069887424838987508911566074073951999508206006020093815243969886598749128059503206122637399371709097485701442415108492852994659347862698725585727848553169108122095369804828454449563931120666985968258767467789383480326205060370337257134866279093768778925664229216095590925235731229352478396373224638117327224259914895525022722970137992299691964409426632701940345525967085234842038621912785046940683620865671683920902026883141712504798573474279672343626622419883137713909719760878662541865373931673508566077267174544859257265330804871870386284706046815974902516554835953491370652912855967288477769853015705835853308187521413163163132299804430636630864524795617578497035106373371494207380031084872936825061778290022075038919690026865196223927666777569265332662897788172261027970287914073717473567349607680248226232117554851014422469859465829276200140842640069136502383750131232215494414607137362032555180232150637029129001581018477277227007637849513382056585405101140948758447477165447647888987658160586355219138423323868291390342558144642482785141489421221431777736320902243462298926386194832002660968950984433893192426139535297838301063320722094213486633090099686675534508044322207050081138660229968320254740192050358476840400710038435257835124717640328640715065878356943013353157209273137662570032321315222783502993968975222871908463129112434064738807925647448719527981148474012347858625873989188128419107907522798551648024810492400887718455474500427227413396705883915159843579425708505882868168448953943737322783849870470859878804176404071954840593137686726928779508682194726900045596396372134045376292194354947928235507115771639573861825438220136143691483468578296622136919267637486742879802155799765202411343760477103693854124940936032614221740702142547349717973400961624031423050973476356066313480224860239309464202465504565581487259532741268018640957196814435442887355080484067425154581086770157807152646461861445858290768393958386263396331156334556267243747746134303472778197466539204932210655703393278999823599367158772796445880948299166829060750025041460063408466573448107847011051136854846355207855294782806112754264942545286746182641611353460059314908008235948913077639296100610966751570540939906509669755707138565549612682495670054325225129091742804245427196954672812413313743975332271151465842238936120135242156094049968816480186817881311263785983827029110205316465373135652990662250634943259522475175896314431836327016738819536196054348834239770538526638089643153122163484066071467461086723078002684800162600440579968598470423872233659525211251341418399639168027311655413085508666939042712504633800660981732367765538351718333922350307122622472040662382453884417386397432426417856840117021081147681811677901729245763245601045354548248464657144284436992332168382450306430553471300844166450160126344824525704821771064572385531832000756397704333966147866147873402280736721296071464924268657690481871703261125153876894215731656554711812709660668089555108142657745536672362926713986202492650397496456759127284555237310699020701292365003925597288674172761832166382323703647823190889350198925866907083690057040303712363986336497350455369778250717734638783699165594339296195112159284555276366284774194310593117031346604009305226727931859739035776483212927536485884758448118233891304096724696080295219358199006039743742294475136808698513601740869751503636146166163766001527964657984031010659410842762820311335487922905044398806826963347029809362008874857322706024541552539511816265241855353111012471031930600333442122388782359359415938866595305511101575607447801339627301656002838253400914763781530411204866302322718775142904766061120204850894101359596800437674292302471369521198226632691385938310447371523763488546393662088783357729962265682950319437944434217098781862193246621368497249017071053011676493830546321084826762137352264149971515365122854784297304324247799627127484873454087093116410037870229125651659247612865996758187420295348424996254740905759991090878874408601205298796219040012071969446125665313883807354133624804824929732877175544365706108887815740482431982262403665634540270335738718820065794861582260013535362068857096012784330453415719324948815080771716964036300439765615495817116885839202045520158264685953954605807281940221421432427452349885802927015630643551143043337032269338940687719919579475216661688999346219640909986521275561417674673428332389402267805400985639324881906556624781571250149955873459706070802993498109819610732654745706127987432986044652222034965263418801554314781613483327795651543508270090852935256863759785830542218935423955224118111758096747110525657256923668456522125283793526730695175516572251221834716487903307691634812430217411649337442980380093632819391021933228687176140299641558274005478610961424296418396470116651887425086698634465751545374049779995861074266868722893256173072920596793031229666901597128019622683787626976686236166119088793643242099796370350718030288036220390127560679584597248115629474817783596380899403746267994331440233046086949970365267137093663648296831190958203001963410982737874150513688746156583388212728664166712131275504129855694330848111906319570985983146492043841277187137975677119907244023674550472600807905618647378339678023010424624715093859816611682390174240064153548999810282452594353650810310030129395219252690895694576042335269587663720428353741325008046707778083784760479140994657165500400864141705271947829720653566574910626502509349331806485485807137473737651159099235107277947906494069530520496516438521600639884949674929637899872856715682973615970830089973912082285859230570976396403167731349441593059941856685089259124095093207093201593548889649727759342696536492467879822605146561013943692843147194836238144788087127979468403947145927867001094613289358787654382958064223670437635235815153329390896080096174213146685391429251719395335191114131197113521781893258999656241427593486265333987660960405540982595593424549782609290587048716534278729134201517347548010038603678977298046493131502756455980279356438055016666226836622186107375508288767142910838647029586382742238694780935068458461137800570776621595743424611772786184098591125312714249830714025159631894482198581916155192615333469138659544145774516994231234511474057285485554379210400308793324355886011752036341807029994853886126213907875553323069079634356809572249214269945839051013689359017158036225645603926976985653048542588536247660231772388733928857805750700190650237098209223424776229180428786833901083181431119292795677471141143562034482743380116973952615850885175314860290939149384203350068240199566645768496016856087188668454739831187977659227643615922481826068445100654999289272983347335751270473876616379686137697288510543288946310149896542358337540803222413419861711021406585719587638720643909747961993036109896771449253296306894110354931646453342412651807649798431797305682484709924103545554488286741282395243882424460849973594213107880227099415168940059759959287000837515506444792575831654658995232775017975253525886797555928995227922693755054958667611520841697414043870999874113068836171290122647737730954495595852893225239072888890644436234643049962877934438445247744758790681727382867455800654203542622606783107112475204077266988936734882261242172963237418637414745765494314947913614850973683308558821374772123715962281668808405245226192328708478718371072974814674802118201646016895593611863362540798946079274833037313340720333363225781686896955521274808561182739403154054438149742339260012647286729588952874506079444737974592209924642030328069415036028983430618003637760205444721720898222801619537614410744934926322062864938246639620980810645527181525096687114084521384662414424548461152770090614190140207823755523789305355006067559038454488418729198923816570025504254899489711768280155844739043988305546255076867413532778944441641793047861153651311183494772456047912440176727987554494153794919537477800640194324157449952193465538665210342562516824230803573612991279132601887393765269640558769063076121701359996097102922375057335381078520724162260808673483459599201884794613455169758763988180304516739744798817118816959255452118866019904994407480337587247776992776185765075078517735217904303252428567587388725722095621546639663158403673779535739646784369466635664628020326552637427841538009430148823864536428550125183928177337006488903158002367479678674108413755482719001721497772382480724790890897579901581975159663132439461748565983407593389007698926358553491747928094587888461358241342719087416018044794374404682748224373659022931436126175308998000673547901356813686216515976957182687957064588730600416217875727020339773935214097834946545451651554781005970532435213167365068710117472439739675483334250906415460291614417596696583158159570690869382744465874845217794442217761721988916064919810720334070098233609141904638639301027693650644110720130675432279365682872332497578123237928493577084732701780233028004017994537475269632917915802545426356110554387805662069831909995171569577735710822746848449869657336271022262887812635552330875069010491847120588995904391166851353226792242589154907490227784698353762734621590779480073261957491264385432542132135242912087336597361279062750882829303072572270236530449332071663723075104628611390799099181511321029586762321892200130905234923322837744213822732421922328810690336359782415928995569271698776509979559560582987788276786853152096683724719529413063318967130143271936053714488968940919866091672313509035460870911794623324037617006122992692979522156581622465688977911240049234664718018626404165050238946721480734194581506764055195407486229304656282394123463081985097492239104344700700638627103530431594225779976111276217288425759172450695211325899715163672171190090480421603517691236566206441771450221619735986134889438375610617203566264866247177815847608324517065991371226981672079587529587602207099716588099389426706114792270677474636862308856675321052759394249387471545780442127011126978678800800796860277326694499644049364088867086835469021312679604043030333327405968127833671657225560746225066902097018576472453621815356059176001791943544615673247398167873600543412002483434052262046001563932184944636648608454155051331916546454496037637158226966203386556222149970868749991614732803845432081731487114656898682832719094392599513036859477266135644373956290439322473035823394669377999656303810796842946041382146196431658834002656510286250520419839399155167327733899876637253621221823789065227639259689672446076562487524181560557492186089692299623846958960401336932674266022845944430851020887855838816279496885686453217978987347247439249474061015834332967350086048716553661139448821803712365634586163043502236904713682718575356280661634121596885720409164626087382807559441071429593433080872530690256358989025828947664262344952369101183539968547704107790339619016216644719452897269116064877419731409519626156841078243266949186248787371270022128004235549476153614627763869046431530357175093315950308169362974259105498146364426348509254575349599888015629153776936538872918960940446423943345373143546602211700052549102013186560815411750546939757988639572672290582684317013448967892948175537335781549727768245024622720926561691415461362818772408041562945653150303999031762811178413655241242131083806686327903934660834278546454558653106849798100229720236025271463307695613280971499583737084428990477680614526577388766079579944993430847040961189283211930188425101339815339110094357202317656245377506091739844537255568951552258459708420103639450968996054659136351307721826338901950772326888939728766105071888497138148613045843581570531157217950085947582879287225164177338789399331625020980592996515173609910089062431027150352688527252869446363457038205177444410704099300080586522946768909209989822208383684643724889408397251798751108504117552174318852835280278053522207241593078080162929447632153841426860987342566366360442596604260517794950410161062282894705772629271965988096839033211392655729228561814170246794064740290008522090654819054089009178098297266088438498362467135494895986677142651740716375210047858391961438514063093580283224971616227367640471816382715378588652143610388538748962336706881521554954679397018066023713380782201437904009965839380742594090268515186889904343922816157374768493020550022177802326981572631755325200822390272792194297488252177766925885057671960622233786894696834572775831516846756895613063191959308175875931980023025145639807151179125943960305520519583876191523203925618012731682594540967692034805838592721811238132982905985553032246299173305993764766210711181391363114882494116077610511254592177330906574324853411870618309022772912885412475453758556138009423856609535361798478936102259060603794914621722567960550906575202469969188095965271514546705075890064235401293847592645239480314428414401689436336529415104318375890738872188610221230417726814132273688372406571854793530996253556713014199473554461038135651134435780545641556274109924434942614641099717679528062568630965846653787929759229212416911325653728943477209800170693485764730781102981288354470304454503465080065426727042788343246635112603213680684424737826345734938314983546067943727773794387505304339949966978920028596289621107561183080361184535871378175813926845946252756381242828614819873643103486453450328783872767125666790125307708480466997972949822088090290283330098928728787408839563139911577676487560756266588812569799342355934379763142992215926252010396605976794282332805839812717554909368544792727317791198153623690529536037003469060457519316901713543375326434549485539337758884283416146023672145566419601958172712250391256613971797661098616038893489899170199561807316698837766644669886527881051902814162463386265222039740585891048933401206602172404387180552300069038383213907419703829418756532709468812732521966439043047251478053420617998838957712828331171070147796116293663230139587977552457092289490067125699734381079645540855648694522113958740149715541257915315098079633181645384642713609909148697554384655283990063071713200012030589576086155911169968133036932065412186077696247348445114519723566875113467379820447105882675281131442555927736612393869592029566073042965918805487943835722024115188335967308950514971718303159075032975611946995379328108168700829851324299157318184801404195757938369035747758532323867982480863314375970044812745352020737555592345740409642851155769560421153535696102113463393075325985414986257823021824256752240917768021222687630313112511488045447383172288286290891560321781237680709962575883357029678678166972621713924761553465617596275808224601431746684674455384743429499620324735827999846159927666136916770638254196119285894070680315128735113824781053640329154148773926837051402668847185792491139290828627811203042006256225707060249178592326126029903303690111081800997405624563930165017891477336072795279818129462070960465221605614465544234464422070649263618642522481614317476599709596404555930973693849582237104940440628559918926894186306920952944493346878613365446111299965255585224358446240791767351288507004556812706777325368191543735287926676487493424437689979663185256664866306852250585311198450046127962836888987878920083763673135573226038222242525257549324269961900635349073666882530492595264269103682463322735115083161464001582367710129672578675289892416232545923638326296668689236305716292897047389474576856000616958328543497979945733393873774012554839713283942716612907782925763268170107957077308278764261778060470932641730570923479009228083833956436068174207693993757365339012776284992459062195803307001779420977602442506278452261885844725531130869588725159774502697361851105966086142349135933850596383231075773554205864118765646798146571743932976178415967251298697574211130741763854490734444121803428758455055541316420041300204328433248834261079724455807036333581076702164457544416553714659533495952792139615767363118257145608706227866330531125801444450088771856060271946176481776670774242089293520812641542379390375747395836486513890526366371422233283831402981211126067049690822927821117816420179848988817469103320547759107224571921514949650060692873334821177934111432065579425398829141412897769534059571452556876060441677444830651789375674739423209917429444035699194902286444648919820419768317715288545849179226296689369510084800381369094474804397220643523014542849916721937786596352688120301941537390721990404934265556872755137518846084449719657328565173234267419207772687554665292730392253701180553138612259385792904676820574594214283661575685277812662287604842911373036898115422631422657250639507092872367000040588928320342071605625173437072968727666994948165113649079540452326357537247715683542816210942055679250420051509170829960697764652836023027377048653746222002862324768398345588401223278272823838942983355547362959847216544087003290747508548067026196403022915994227600844119528536612638191470628784152649596796065313752733546733477824760772556276776718369429140817785231253763055355121072859193202972076899629461754402768202027532843766469829952655225858170362397690873169601561649667484166571251292303452370176316723144280557509237234729543766040573969608992380265761091699196434492385133199799500915017620767151850436790667128499161632770125424252308008975108779160668462037634723476856177687420077540997320864345859701243029784869797740301002364092295472519265968853390191938099992530738247776090627934349800312136091853208337315267984569076405348547722587420325154454049703156929581297796332082414158600445774143012183109895479949026421769354705377298428427835243729340641798563433098118006972618402292842006284264790111160098040537790633516229146867494971663635360771592418452260781143550214148732059932252109311425390726017976533668414190501840909774733299521204540676203334327197718025104896714079602787896261664791780252371176993005598036721717464485112372860329468955265335121743537015255614947649646086136045388528639373258421672170210974898587209793398706527464414477058148648380907981938941075515046429503984885819389696590744319404818279656955005059700510663961262087226418297730958127129457072315396086093598165291132819196487677530597584656124066629213499737834130016865425203971813311080328809053243583106112668474271836121712173533257861291783964135656815102602495589074337585177500469104664680522365459867755337771071106568406644217024961026345576817403486440856079247408952545816734354431197000964125799625319995873022814706280923653169526445931694494458607664626679612029432138175244467232029384486347984365437715735116534457258213039220748029209811543868716012833040224425681701603795732785725220279579332052664882475414280903022325864185665254580469723123705617411306514219695305057274541770107210549991896647840215614746484203380195433066330375365407881531555434484502859454951116726664492095683255664676372401899791983005005499440160848432353087346760592854639670800033078600749776096374840033755949078940057545751819720718687164313499291374026325412594047528360755527019141584637814632316524561669264327621527284187581814105512529880938563782003076199136758700366409989596051681897555996506816803403972216167734262107217210767142177014624247266124540519522703051889270084601536363640114907481877206257459677495780998620616353512216088819661126257005351965700258465385889601266522909116195853389957469375168344042781407873258315632732152948419106262436828314696631719122941825266755827891490815278999776521025772979388744379933543610593003621525568741433762520928756746774652359025672745369964348592845764704169087046577635731341723103108474893576509192254107823269137245063088126000630150696652307122951013986633218949815212587484236880137530240562546481726656261105568533017253722175279881612360412500761414811290418939395864778376423449871866115874039913659206825192001208654432570931410020643785552983906446871660101179565696401056718549631271851658957770856453543476467374034067088725461906926440664302569864338348362375195214855199327028424251512842072697072686808681608868038832566829481984083852860545536077662251665260607038433073895265940194574742483240973531029814545642748578562253129343987505058946616195578176813849250814795372602283757555785709364797870464908097720774546465971578350326681475771416471401276678598404131636836177925531998981563020177304914109833774306729247733922941888020551345762700940364664271911482768323608651600266277064895241898786995440956082052776336571801671223311480608014467452538085459848734716807382136747682393713300696071971082740279408438647804180740239171524326984283822762365846610708393232563710418021290835544848476535322423970756782147077168073899813465264541163555085097519757749849481058984437224253852900198364192929263456159492923962106750211080360497654828969872575163702340952135470955259319160928898858952360812174907792271399961625909830469772214327830725067753494099763710034350615968007055117288058159865805309524225136206404813139438495747652874062229165000459716435023861902927011641645749583809328017457057138791713773416834907142355620397567429192913977083283988435263415843769337985108494161077687247389532279092565573583840247218295665227152379790157178990846282176620158053233612866639110380832319648967721855111817706836230718332823720366049773465269785926952077857351853201843210019886457194231622671072079973281715737016543080544551233586561088059571831836146808440506896603699829208869732573509673445858469330521168057414525177731234814127761488809093002975994608071704083276018285155043323699945613645331351889013367765654839874582174618868290273299350067702413374653532258850803713772948828694685785283586898980443847377650830879692935589814367856865447582321279890548047248224076815398764185003291045445336083566290646593304737907538207287555733929450729209481989582523593081766177532835704015870281385180912746842404916354743381535318839095810320575301675118426587494221329827793395666407485096735954701519950713665352210645931248434954660227389957134056662588095903930646533330849871372197746986638886812038110131319321088614403007112802325470502993212553754716886109473027539316447095518854384944090729249535111847989978958497886691784289815611911049573478164152131158920647318320370910188239662410605643605221459974569982395332560828242636025801799571503735260430575671747398020269663913021891954498493128105082069287106695256196328302765906719898671476632593260431088982771579748345841324903810870263659045598638713711067826756535748222786622745214966031543920363644301990675514710691408825805469447693424869515826307228196141427260093884479384509354022716422330213425560967055245028218671677964730434574102805828932424811562214659078244725295469771913651140633608882454086551945641359704770534479381210316522257396507342489504467331284220694639730958342671500560209350110353786962874919861367138477605857951122910079354402810130973561568556283008629914374319473314161174711776019621561588142917510376071541107332583301415089763009025372589694994842167571574605381053599514213901212372329625596745862513701579894037225989527304306755724171587854828914465461417394870952114019070603064050355128680078162881927298774062682502878048998048826625511460727398958912823068882939296226525225258102413716477028489962503909282913602336230888097028985826754259589492766860525468314472496449038269729961368106639101745735420318143954834067382042301876205024257844246021850689362169025203412119883121697297908741690443614869683480631310674462474248090677537653002392749232356110626766274215472741229440252416090975220992018608172729944405199245017479753572377835649285331452900564493186564528938746976359543357112959479230456813534907002005457340078270307592114540018411016224112370712036846859686190172458505487205305017512270853781494824831509834479976918764468498415208974858791919790686584411651761282607700109904200486340639893436382120996261687515187731143747983816738805866908605670252292366516910979250753241477147794759164281253494914949174458781834004439244635458802502703623670007939873771979472956270759992559017395173102937658248906643406688757288593543199549680973363680285987143530859139687310215679682709024641068107860062591090690814124292099409822483233122885702768853326803311299071569105428440407735221010749382213032233258030478217761549979697427985170127174291407942961582516988116533483303939887085693757858925249957511837171574099375814220263788396872112533827935676451844916393655144812674070848318954468023408594056688809680627023476000134807199912291917715553404204635962494621119544362918968771368188435259329806037917375234802361111662403033233375965588528793333751290084103580943974493674527093519259434646176960276358042940331985773767040279873114135585764426494277990373525507533597716620793910541403131656854321466888579599268871958766620276609126305816144357108089974409942085649557443969757012966606539026443560008969452834799932163957189020090584881123438607428542973582356913085583942550634969101107812669487105980637381348341652362383495324911316491525283473678001317890391049574171622358433854013200519654626631565156746544484653321564354246087280052173551362465564080546382658053476630538285338707151126693564079816932611050402337705655677690940299952173041198615634375400384174544212797253876934697579413303713934629357425545376159924779910134560762339588576508816363472009216877892549399543072865374518745921573857610601474081115770677952097435183891617982518619635363387782998267315133443476514486270686568895757286050187928971665021621024977077077165343642461643056949605840627510929999504201892561406343330979221912986099449976939644795734906061760458259286859464196462584392246969571143187046464489556862910836625096974044939107777518332325825240636080896824553924648778037283038384317619652744253308336177869150378812903445897031439576893544063469538472736178952397162374885589931260611054953098184938356507399812590794602305579330859804555455241529518655005119230588709872438604514815983598377436834368288111420639857224257908414825819355510722208802020500835698734811408080299474645830236844901746072916398730766587859957739339576622152802486203559253890184366214576743509157982548766357517483494978122979671868255021560997086170518486179614197066542154154729588171019451622427491811103670416148397947052044006958522952393751327639830346617903141341119264310840063672580468377314973979517987084018677099878101805245819597788806864213040536821714970917623057484586084585619447356756776376928078589671343365686344762028909581221977802309194105650707585400507301213467195714750779862294544238351876861472187507077080337874983332462233557331207091445016359567905599423247607102615444597614630611065225053785159026077981009701631291423202799377145103656818840318086670773059195014572941443168049494652545538307152951770381327508586935861120419103320220503593861270709311806668353096246850708363592072195108192108797331734261845121719931643077859313539382401920214035093332973545416539287201907656101955853776700869462879880420981298057345524154671585242048159892746271025268231932193421437410763173834796140102623851928324240841181835047504355109694358046299640831255260213629974899002346034176734907480270203105163999833069194313690448957598631830438938733639705268832237541545492625963973842739131601980514884310769237176817886759656916838220380483093883106309350547700698318809665420954083251568570527646441119441578614600131617926724612280668805847356693347541647709920701402676306183616348761266911868172238248610300157981575923361668698916670459540276132740701894497778431753142989000573061299079006105777773611923505254518599208747282038511151957698970439733000932794056020994867965941421660777014320612733479081385894469280320238538591666003252527168017415355611463685602334403440581320578754091161335135708861752442452787118831752609708164590064289131417356404235176650293632168411212398526160456348658535929759527944888580827904150067089525413413372684471371551635812871277519122173165336224069266668828451796873277952057824661318708594096643569787671475119283105020264237175858183975739725830490666263858189921294273427061664831398875809490538010521178003967297594957798579452924533427826518675196372079517695207315280430268974799890998924974597771678206182522639794825918953728081174248879869892036249785987276025862955916446406142888422871113061091761426973199741096181481963812553892023045308086772631645425321303996966279563273547390807361074512040002555745435875811859434180416579989027016908306424870921882416924863726240454847868724415852489056785701872468287283194355136180055688275402072217839219731784205589239250391299794379131029299889360265232627535525728954257088328222418636382231565307745684909141902952696577440987039962121962056548614121192837075333889327868757756442425708035682385818604205162168539118080694310255279943144322631389290365890901391426952741379692596013995734780681504471294648720537902872442598803629886415827262118689542253979284166449151669355162714155861100981451934856992392880108510048656271259081774464752573955057659205272129276808712037768018257099951868307046084593415760311020698491591622572320361016798055868784754253861695497757379447486523898137869179827700234358884967430991028491532449789433216683833901367285354610170642482186574594090829408075793634402322691067094132751911498259554413488600213182031240586567897794589805638628491857551128952322076241847239957420927454043924924611971917639295700307180184548612507489956035514852616780163131406054432381783252530297101529141495870286959564847659364970300520726923776990573844834772366814003297626807571046113159461645204276914851662152515691752884743426789903251359955429709233408168993576233739943195315757841926257486099345809948389732158022729289548763160588773907582223189144866554681649657588035304134754386225303006659479873680429819354128102978575038721617098028963484587639545029769764939126987295824192107318909891890649266167527541501837756351674403684953362340099908817914482283325496841021500119075196848861587352449691740123235399909445914662694926753699766762906824011266784407787648814931701237819066119844202074676616686763951022639784159420277931545490704923026912851852075693404387911356518007308845600920783984559234473287589783018785867909769577059818552675509697729909054558974282877832155665998907902200409624185398140051800318747641842879061791106256716615530212359527101413340542307287768039148765502860990664366968609801558818445622429064467171275052855684467123678304890616818127282038693995300300939206056638322152919823514619000444367891711498605166497168555848513230431827986818997359665543658093283307685623591780149824965173207646693891734255203307341298553059681945702232878550661555666415738654924987405913229842253202082111474119112972895477425996246767582944005821360449615124574698251702278374309242869705911764398616634535313057215685181740356881694895229868154553921719444951999509928753829526326433339919019990788773455867485304333385619976720345432573560009760270405902911003107369253816970338089809384600530335440148145761119862114787787373681844138538719170298145688387930786084430877805546817202626822534725391435770474009105844521358201897555602418993831876863706436947477015955788347590333908836537660894853150739087792858356010074942821062159178162780574617238125294483394188210445968714649790242896129366926595829177117211986189351844580368443071307461417984875414600187158015369832933766582937317254664381237616094795159383252751966751773598435810690323260229762208091745468022580213870670967534258750334358098550617283944479031431367109459708504383157814403227487024530009949140568436059069481371882213027772099861899431740333682923823824623787502581658699107502470843414515464892355597536582809421025050366163526389009295737956560080738030544157697344679607033032531977389789105324887137877104958815548293734419766411532820490582262108276235888783737823044155518215876239010865536137871814084874826745263006617720053936536574428278301477613697606780944550561643333185874586584948905148873873351882684197859047058586122404214633580244622306271551543151033817751912213235276497588846078722260125832881563335301994175701511884541003932063238506758462121813441133233696487681245130534869512724338355350907313758347203740301411142153934545069307400654262440041051851782841212351954388370773473801533479041535850634704753142355289623231128523217212055345735797813944791228500856910610188402825914545022419007678966969819880825236710613439949594599309122749714227099955952845335222693248455613915742824730701257015657051652055087984230762048344183607779686679727421596636268669829770576143223484548821786315514483308571034935081120108023612408860786922959737120406489109482970240144594261048660456483175003948274424530835533612801152575624155099874348792737744914509237529548140541013561398454870840127398223049425504735838543152897657169048013786372979692368871352621329505923237790755749729426759563572514190768818756642647594165668670582686929854416354877440266527803221246579707150420933219359087405782328787132004223746907282732347092380137473093715430108845696888358568390337463456710478104296605760877622656064760063221307370183672863811295311059211365013329277222043832640756935868973641384405776725359497901147070214973115610034636147182267936070276579238811966219493215423428749246581856382423114374476564654920881995243611579882778216893888006800179941798877212373063910399594340616942965862634221936755373173517405457910790302834805257199402165041223902771143701844205069695484602602214467625474428366507084678609728197385116398470184438603080560038187497733733821933941208673518087125475639436300380672428782785283162287112108547645238497472949486559917265088657851873550648483650278867685483868953159485528310314534256508119925867888294230756433278513441474821519734875977822136586748927741649269121897766850375047458993532911181394296475829280833718578931922592896011194918971887607707410910192085611237641237963001128114955466388162376984220493087408809564933231902696104455892082318565521504677574726454573427133526466891133650562820022860554074134122183699566288910467778434155049078441746195804058656412986186953247994382545588272929370909495891392852831646495225515745838282286604662247145337285449816017501626460236795083766887040090391377782735296127768350875809714650685554678638880242099929742716763895884299574395860874023377938485687134601815979113516425763175637166770208718376704789789802475594403382274981853570453917093945378057380359065602553572611725758028259431759988808985373671022010489386623205568822449764933492502075745283574390647271407852585195820323948862236108997808792012835011239484228312573772139368525051507108700334745725469381514586325523225731707524691825968085617459581765332201242222915100474527606864481724070058578568961376771610720995981267370127886608934340049392715665721682152075751228682934247282515164626057481241435203510468352242029258465331623986537487506570129956678229953841771944711182684561473067156925675496541308707435555806745901159112925054025930452218626889772098176174733767457189107463162134379357333734448713407321487202653900620048471361683811616753317982929423610991089557638387842448346894462917830455491572029466594279701856014021497294946377701971200509982862854750350119694028591406216712058706603844038284869050953668287214429280067668284772493377002380681703188997141907088039641381974533392912525230664198220402781820254497824658133854911367852255220030679156720083413964911562903141324010603964342956981248824359647511563594941283289222369111277777817410109573932635250175139393299075991343820619672347192224880913573610775205655955872724767024578554537674178661540936472313995236481779118347351280929471640135922359325386287915783199338414800662971686446146966409055581885418284591094618097685305207742794494860028274840522781186078725706258261956894799551502343364523663610059016269862731819416781790808127349842611791136398696178189702306751221532574816741052805086054682541867829755589939415584038127761577659312493873258603853202497887617289717220718026400762559584958694039002563546928671210171515239549332130322918149602952116228237113125615956517830881800567667755556283405023103142520647879436835436326309563001454732120402853259597708265938952725767119215382283613746185087649281747932212482738062674848944781201568843709541794524460059961428577464152794888075929467070551463428545464464036390865914323313767159645308307718534851755727008318686121551714817295548523871955936724486281626965105971738135093999346787040596031586432197090221837337024717548598510433362851314183621600673525132736995160536896405826436853215900959474977349099324012905547323084873161681678434359361190554195323721391635744488977680133895064084059805085659096647782586268962981392296655942775418378543350339341051659388490699377522090044275786749400634718767615193585749455108605696300510820582892648970990155944796473423741898416125362166597439291465809579697323046839817470498114594924878454267901820563180062437848897387234549670600187956633723938868154029959496532883778812334632538507092623717709659151570641679664599980295128897039104880605885620391200512300149470750704154456834696551993740404468474829800606829293022162112913754822875002798315519524915331478072591110892081762531237425266303857383706246944664713332526701446978169457701723422479650153044739748770768592841713070586768927792214537566002109115024565585029499097377098097113427466524820507542380278744137038861132989610168940665530624398075051921489932243252074788156317224020631923397922079234022501618013407251014616746972161268084839408756124047655627837421755692033511839260993683507400822362667498271973149763191005256399367604997356913787676686133591961116822697273082674141000010629886038797274893609170653036313786052033482222492171089217767909996298315651669375486311713689714080256037372042690850107013979124916706944603088139459682141183720263519436565543207998557488323029481415837235665717101546825427433482628919241156662535478601165019183891939126072400940550431537299081205464925187798013454436073621824731189278255890890293562656720424739158920176786941321839141465351671568497676469873677596143350147719629266274218652495320714768642697691324060059932720466000396781604831586225680663149276543310379577329364017982172738000969212462424590665551989318063871571117131668950442527343446403918980434079670190213223760275124377708559363870586776620456465014317681458169765637068230328754450988047815753978856581054842264488781565935436267512679053975638008871422561863413416195508763591420850092840628359672492782024641648427036257568509894068928687358354726648947621866559244746922778256035513289136595799190603919477536693540911548442836058451166425600615058405007240039008497175808121366136693565249823910323727478349079936092198892675011002042495307172539550913093855006030711784136117363474906493911027946113386570229583463759330293633459190718608630234442787126641370322519818259960222743500080708922961899539722268081393835817898019378362406144014549014493878933496731784108455782297177072707816417575776652729460337512962399192881230813848128965620592376922460737032768089834143869612579234121118134903728977684104685354043429614701819417730542219681439964741037634247274985144497661181959503877452528111254822809042094980976092361841019150375952377928854995254963528539678543163242685594934959733463345694179892651525462798429914792914328516453062291987862860155865441990970163271257855288171325701846833935102676895180058418195476035925565386883331867859563662397997378137405323212605351272831998038300292018761443507994574659117553284986206734055475304793261793909510047001789508502654764496307475175734276333120777766140571164460504808700968250129207987943239751251748528688512735889488075036651302279692145068148421922332323452201968316186070938471047551581109974256478290589296480065377311147615441972854333543984503838647432435213442495750536025097409751633619097716018894730221688357182233971913253956520518147325297433581847227585118765660849823376309287762590677541777415311907203693741434797809400116116735367489697814084258874515031165144711746580343342773395654618458818549694437632927047372256149146511301679098805253367858065102435685026338472626826518167239221537863384687495955179197848296789949047853323623983437206314944161448083619051393069054384739168726371177135934131363543736146574850784082025311303330751353984949202214963851505099611955005062946596447843497274542466544626042455799311670143170002077113658186083143253891898591898556795845980276239684228936893984500184439205533722566749009413415819970748002591707865403980886691276849228747706329556243166299591454327376596523074534575112026074879361138482503866764756242930061533582234828383846779997334288754139676421248092173366672886388293750467628027183255324979794137239788202377869298378733304176444884751333532121168877451486858806698742847078315172015517414399710960350808981705286445879521035332161022498549602656061946201908384097785406132876988623797664240753113288938353820244087043906122523518926880709530568034633856149967910004143402370051613967214404866384828207340271602444792128003265792090830366145092257927918608418479290961456643286554166973576074569721213914208985011729735466904845847051119268440305415926584574852221238272440770369922821758627489976556359960425267454109289073723936811921576760615687171891275414072019819730474415528580294525525228253186337302120117016503504641230407647321914889738071480119327726018850930275202905109347490740850522377044765860760510923176069456935166269868113004572325317570943449286640288671490218699960722791051820768840394201474279586358899040092375367253096046573411348308676982087681459446520113884532606565608987107426403706598007980027939116156229011020190375613367686553168882440324695692836904796656696215627931786837911748890810083674789541074243480469974622600321416320100350740379337152674625742781334749407029235000924406935241678143820927629857077855692246392551458054544353345432699306372680293748714378416802247368484621037387745415474359130155948179055650208339381510308373321842178582912634656780596028299153803888525349639521631951989592182223839051430061057004533979926309907061351911315722591324824255852654010887816418634395639514248576278732813773830450195901003488408706238309703469306794398659979087720027423762625280333957765563024835758138907710645636025165491060873878745514752925671306365005597559174490202460022370896262098252307787312089867615633686658692759613296130891051290187123002385850019437460210831786923344725850456084964015862791417707349648659735003206041279315248953289104512686068109434642570687432548753834681916516470094067915958201407679887343616355734985674645649765721979205949354269511233741266706574969700127212154607578722253024072995928464190933182846450685148569527278538550320781599401109384094799152718917042000541945549070408732478515168627768510592155938006432800671866776546712561816903822177526752509977069810009085440100087472340734168606904994923706157358394128523109961193608167853022388361371588257397273865107328270861923851887209308534913372885106408379349016669251096317920496209013852610704940717995759666858424011327920887195300912045750026307644716294339107809485555589830738267731266473526666996123470683112475424487585075113068664128109289955144463614557041794007713424647413459873541992545813673635595527035192693277484019399949702531546344839658004420410116100923601295286218197913240220477332132884024824813008954767623397420001518316206504181098847824880750259781221730687794896309602378487375282326352815409925844746328298603154986256687110070298995707407980485688678227361489615149469682024715425608394350942126395721015584262290934342875632624823582447982912453264962986122094371284681869628338325440892169922971861094942471693468326493888343720248183819438653777836539960020711350989001613121401527592396732821197910777503371236540423756038267165970418592651700139943144225826793799098866069668382689804822864764770577763192561244730557909917788793964737554034307458769646749611615724494939735744995588037184621455472786271290779865400894640959845306565788527030721343072668580868697646305871866758779362340783537825559379392645245070176624815100151227032966728568695323388863686400833573579416042475473805609077117989717525834201419330284230351423308973614784689893279034458072153126739237125301004478294056871750250231561506860710671040576200226028557397287960501869148090209690306653040210832885344464938736442156987729564551628705450682525355911007292825051804532564296323313154551252274405096329284942554655399672556278801252882498050818302366175701732929553660368860949635018046297158179523847569100472070740825149118174565239716824439410439136703152581230760661152340543011402306362462232550201799576876276165896727431643224527920924157700244905627492415766135989818041305728176351151775487851717495739800010651437978004263654792438319109157087769590390329924819092551419076654714293977208898088129404463457980877146401246047230693452662055010823482697329973320719110861529617273414306251629480290779545338691036306154853907562321310522626809881580862733300578950588806614686475959170140076119904850436253844821968393146173232755966921699581385751994780465010372038999133211162109090710611497674900034126706535549796027052541830898360408712038328699117249171852242831499971057493907449761696637156485686500866869922845376171081780380667643457732210889337526875856743786021718307189145292565432932253993327739236604780448172851391153787415529816294757360987975736474243595217080874655716322147228839003253594590028123020769981092568951408907860611939153421273887265268376819916785034867208953867117697153307344258106564751088828703034829043427703204351567598393200136933389933898483779109196092098751657101732117177064611543398449005499116220113655287058652471572582923426256115526383721670461078548375428478275905230955504624083736226203576357009740869726641188167182900884351004528006317433120696727600036204818677438260858289961935937825564554018909021327807763263303584519300774060539122252615765763527584452417050568631073155025899534162383494980163326332745861855238936522026030724051964078654485663196279403832683797970165352029871101751189381283090171329881687575425703274969777416622559101412771627337206736893694824564788343935713153586847147231406680533682289830133785194489298894330832199613667088207634734055122279242704232862992661198541504252200284426308170873823732499577010169856297219629295371049451605294514714395075664078970603199909939032134993143108718004038819050303173587621801803943073610198201089090147526906908958780548599772368700398431994907436301915211349058673510635655954497954571054006269275267698545007081328386929487118759698560172796750702679949642790819367622867561324370053248415231469260318205223574957671109196283783062473405894031255328052218582738545887801758634018310202822291293868534633251827160986341815389992040399627967731508135615933241631359877904206766879483923350763930232569598769820592725034842831012091289955487519639550246596829493580942958961778879221337978540268670026121535501336713162127454633643686831392091132608203823174826729867716820542556387035988530747983083153557368521638907498976269131210950404177202857420937817748474648100910991648660331087942572545185432621380120802873632796948816819665637615127247647906916713230166858469146421252418784389844973437664747065218995594661514069021879474359072617530760343195798958935028904635014983428209341300945330534755916075467887090843570595687890630016917172947267735338996716822342583419471248636136454983993929736752560592913233230872626679305725450601283143981419198472974563306738372885726861691087777805059144403018209551757017825979141201059964687841482812399773437326641970888322391976896385538884350618600165397682954861999944454559760918118122880195307317894786188940480377443702269338429293876398958037051708509639655968046018540451996990341092893232461353295301203975873198927637282295947134112115779678006930669348350635701367953501211106778764902241005792106798353926522181690649359395257623734874367849485163027355162385952443088705135156918291482596410371438726411998640219472389703398361278504895470402568100711573000773622360560511712069133735329106739994122292652932255603094876958275984333928322488035042442273809875029841501910454057622996814925176922208784932288473287719803998548228593825607754336036274622230851502819102764491940342284800868902991165552689367655796265525916997527090019058805045844513960031352007036373333691430119027986274018511351674743745852172875524383118713711793258649166997728138637364957001950047671173944694629403727698137307383488533897508150012042689895239740451191858889884738243265418336252946951589750186264158213014497640022458346089507917088955689648537602809446064706987193046140075315566073189245058784112178604745090399221796229347579533722679238222408113977552936178918436079376868045155340165046560302531268539830978114450907413757212175206827596173112236488433657561607948261978321492231517184179490702441430089618070729247957644731473794616444127693872780541503169568236282975623063292849536518860404776809287075026965754339015261025953103793949494079867503721764257123051502785437844582425411848027974123687216464444839471429225214019854901151318797656730872966989226283617882304050400208526296342702571123785687372215121857526881105789265287308210754777128363351130129454657553721530591143555413176565681214199141394387015393036915591815219450809493468621688444201268004993687210895797038868374951012830721747297332303790174945480547478732348152411466623184086407139205724372640299622272020513640592370663811575206515193258766426612833598264697028379730947871621007858414214652692250358776633248001364465336099288379364519998768356591057729474959625928340117556818588288657026849795499856288652131227110625349017654253756368198902503712056542193306088603482812760052219224940911821550778606731435380653133653123767244221083331016137032474374938704082513068015228189110787515848073052452588195991810758426663274517215162022273970795781357376343005790823693381717938442301469542462760426628731496190987109739610668109527484436278077548566736634160756406852731047423077857524436394155651113727635915907457023576641936531660390308432889394130585443168471718088821371804404342071570226771192854977378756090302188887888602738194051768834014391585302533089004275786115003893632097225926580911322508060975480888730808409518344448578510149892219868108444431887812276316481701693094120435135892541337657675354500550348487519266084111505981614121422745134922766088644612073681216250537255203589421647321932976998189675025035477018541636880223436966555844756415406864883174604636195100661598887367240140434467887941172281248289736367978759222011630338971490837941530450891917201410418926955951609147260746006911280419788425500891446563741376049784193048978484584387432887555289268915816553556760921940414529938308964202555910013046295863456264226106447009290709234970942749264214961865832204030805561286008216330410911666447612008676005641355358730242393582778966971704550742379798531264120176982371053455892938776988064990252995549950026193373592099618735382333748129715180017413455730547054042999571289158047547118412389483806585596153573660290151484126423755485368713484807343235468611474321513348392071543651147469719562419795877593402754754757649317782736728072225793299504369926544894756875413361886103729050182608286333741141657314849914445534779066643015394065862866543683530864431124124312483720995916148759125346666491961748370817168517296302755210492466012497522067970061410302642154003603496634096719600187471685745849102432551165049888241551746750854457711631129183499643815349188262013839995834726033574879300676722542397867566906373774930318702881383103935104124144496196274097136442341511708338076875108201218958146098297181972178166183239306922893521031645244238178224797671002428500821449090418529181132106180048368241390613786968872402580169107134904816909360574572068087824465800089257841189688901877225560087797079258408059175191647678012946250470946252901736428119578798445194440169907397055347405153404922758815570196527855338719703727342255980848457801659142003487984226229006647709568614783883703868018324636223586024888888713839398193460779919885773252351010728425399517884854558192038039842719719298395970188635023691549511525828251108925084436028952172409641198860682119006358200470033232904559817606272931638528917680189542432649073455609074169955269367237970503996525406443084076301621448712741541026651267494976145287562912239830001144716257857901469174174594606330218755602285359935712804028572430880827692276075679254714797491925628137082094395707670845651144070038052976000479857069133310025164596575765933716397582805281293373034280655422568443539973519920759234046283821353669062712793980311201397523771477146000487415186065873391858264151527981296914669479493539791733621464170952398418549367757749793866991910040623728425704682348490603453434065192620631760551150128016020001920145539294363061785971139840099657603515075819657719918774841676879629375406283797055036041713899802345847268199066924432438322601979360630894481436930755525909771899285948308481806334507206397502764482100905104330735801007567784469740896319674879952709078404613186400366729233842892331034315379906477019998537368272560523257029488517674873996825189176746122798803063201534913233492151710710283400741403950801293771546954437926656644230813964723354274249488745534354873760323985523680985108667959378116550721875682155196320357938140675614751605180813466176003645805387367237262451283119317335584598358691558847493128152290419087278953758424796951773698377157513722119727400755791592991937404377655172649996376284015346554850145529880116725145735957065209765816698509301307062713164392389898225186424430632229458318070321709587811245395844559000450339119957276987219507300531766556875024375007245151901748069780607657609414016736760229627203210491864735933965668666385020961929885196437674383597485766971013783584603071984509603832890198450500568280360258330573897710750159734623419700047995757824154227433779491946534478961331650087482657830617301918195232900271211718634490858750876326139469858598442775616770003008127733030316047674614283605658162260378124299129915548286072830958279303761842324083041360055202880503171880231832679898716365533555805351093981756968293315001059823280078733790526768936012984680526276477181936473050104779310600186740197049329306731437469798509768520163517212929027505380858859094972880313512876989433068254423801810930177501860323284115412728683805363771026328236607832710430378004143912323242350208461487248708281165177896829709395848031141528417595720499785836016335335786572048339529226950836260162037952969771081306576404101163342113733284285999422683818561056268766781507171860928243575932979400257758985835879322715814213014524689963681067398032457938122047199873218997928303782332285742131180494567852505211951451638743805909023521962814933504770672996337576954531464967392198416061951762516483204040379828452104335782155543689573940396763658315535661432324135219754331214169771915911720128991625430804891597637837723323515299107157262206947675127095706950690422879436965074042180741832697871321293164177076604868534883993153634772020175999433874854145258480587971140000425019986024514963782969931320368196193629347882838506114780469005785487755256926706509633109854621385590638904316212345588982468542704309332937871238820311144519893337542254248529728364427215125105886799354201837389574232270718087551798335171302839610613549911450234633119146251037156653817385791121275355848270125064712430259108932307359623856591457993293808700713744715909209396489437764176207521495371915006690372762760948752181950186857815887805316436261952363534740766358592786407033138336952803248470317923042410321508498732904242718192478797282809568177149379038763649400469698221636810058660718976525596607337198829854148025917190082759592011317319826109126171945190131020637075786497368664815092534160710917193450353879784767453638623086590932283042804869527763989071704278509159629323268967099363753893433580367026085220859396234051689673371208104594805504284535352075555578577210091433465018191509552608618905831888038446064296750557075689972056363455306132956792770082538866011107700996445828513851263969579890019628284539682828986306078949153998139163301241003765632102272944797237132802037803114038964721408321741820824534661857604552970396931977688062762127710834131854391619372243209654105034526915551582749163448832763546160035380129458739751440571012918784196255838076672592283080968482333205421184721762411095155429841149191558292868785984759630254929105006554811289798714759357159111027343603052306609646799200751276083951042974945015420949636276534048743055329833069649847950182469523516705323785814442667189848716781127033719758335200656519489136934466014694981665617950812400403847892603689842506489514745252355069569857602082572534517153555573180653521087584788007534143344991619341143202509912801761879602272407475992942150447178516784235229762431392579146096171606068949412474153183773119544403470624900105390433933286160772478223903304564148678729152064853135661156822717999203024011817713037492053396699856471316499880465703925583072027387974425535971724550776983631931130273011045892292467098790529042005937744093292936562922499784216973789170680314541048047252191056138074406059854942465275932466344456208482339115983582277963055905135650285850177575567213583999995400037183410379857940853487430630010927042795922897070629689281114615099370933671787804684911493251224921915627430606912686349289064918236683656017380303781769662822596083311015394937475053214005547626886648832823217910745056139161403987256319783768977850256222369658176781747680504176012726333487804779697540843672357056772491276405106819217655202796391768806703032698036000511627342024575700924652643320500875942358820775419518170874676220235694333746463773096669202819811811747968319264714948024552347070478832154130759828161036660351937760815847490398876975888050810707702046294952085680444422279838020359787609505125387180586261527436001156033012130315127582626425163376142072278131673848277325000162859136608733469865911467425540425991362412822259535668163847613341513527101010900151173031697700215444419838594489326993007183586033566437639193707623639709603213309294532933993684994809978619535484452462094306522210602757145583416941553300130626923210080159749373656992235166106756695293226597283228987518161424469205841551477442640403718391169729020952564029983571650738190292815231767940670973245257527501342484202223410352504430706492518529394666299308995287384242845283606434819773161852949596221346748712870620522912309143714287751261571238422555607633368493414796229180376770205279721210151946984807918380956836027138065854848109964883826072619088363002420937210038569265073038389557459332956796737640645052504107859503935343568307482947942402933949215031821583124712371271613070212737624568859829566189617975251176022591333727805391104521645076143358164944132912095079599797292888344642041078602889418731661339642082982714956148054267156042476858973994335198095394059554533844003635948659220433881473167886019596423649592591948786761367612065114937938828689023715868371520520130806472988394016276267184295473111720796799776847561592903275808361336031825308018901660392981145740622212113971710147296648762214778216832055103193097363681019408859954975510695433997726477117768292941074944281343518691374376009559061041942431463110487312104104432100728667642158454173365900761112476852472073587258312302669619761439723460903855073913326725902830081337779626447069513372494568716173867569447576497566767613511768016073746630953201638059352296224825465718109558118651956893372794409944794071352246523014945455009110766818543157243883393894836886640255750486575976206284142730469892535415531181767805618424524342577143645600592159637115685286674917191046040361625545320658728199897422685860744813362761067822522452643879287915065291496693078062331747400962852313205926490376739529814639885837310358848680524315986521058431369798537730876976914024239475656899812989782740633339963761534674163568780833090246290384397319683487427264032553903706992366030091672822947696968657464469269320588241218553055361511329022977865852126556436744590010268773003332422540871818544620719460808381578137978683212209322587848711126422621398841946908365402994023851371359351386668095222313392959739235280605494566592122485408013061192637327802199210987231785819393278133717884844918802666903452722803558788855487951656088311291549330840258885258742195583752300109725443006849247759449528649441881650986896118936712533042450134744673776148091913479476266272292613811630915603217278123933890435237294092712064450589962191132739960387879719852369741831746393016617778047001809114424297108723972696017874635628398172401221359013805245034722033975945492102033614574640832004086062618936703897951155620159972606767257739674502442505782845617427562814480624926103247312934615110148304635965176262970032611752648627471822923176238083007028212738300123600399538425396872709608419477669029694830020231968659602465065086398516279753783027222648952038821519913735142940507093437369231937127819697073231211978367071659446532955121748746023368353782990567435152638853821731687509299790595507985346419780469889121805375567212321227055517479938086410742585201900780834536068264624106756029473917256491768695706428090784120429414776885613657545798465340714872711840048314617873493995824066118642310585106763145164264589148867547335070122838208031848998613676948724398666940712291354133373289108866645031017044002964005247910309635750316016687711093860376655110987676863440088018052329811226252909033022248725721008111554576571562803792905442476763718848344283475366309239585522431816050868197798295857553206596913302916894367945130652318453082566477372144467983602658952866429455923672703286732688169767747545447764983902160037201071053142955676921818763465629273417783586749883902966841086833745744530511233306181220481301183588291330757169791716597409308501760712686091628052155253478426719840359073446264769217583527445978141793529381947025982025169139943655071184482415771866891488107690673025823001625126571096619281401188450941150369142538304902196565102680552088871862667396742373095778530988295878857949094670397847920088044851680862602033468735431469854801770444261361133149312351719941325492911103365474668338463731685950106939948047318000444293195663960807581802114681791178851162136847928478936159631251194049495315210102521909478092966511436911284848962556262541984874073728706405637188537620618074633716658515031431057290290007117209552324462455243743304506611026479581664468568144628143014107630381775367506426929088583874458263277092924543104740364297537771608003724738705000701967374245725431316139744169312743784615802118231326589273840438860956621792027650289694738274443726921812564095398907808311448512301619165017632636972062843746693332815601540086584376078425095609474016757923969869842465948635007961890109222618577386853803545841855794514603369990031595902712749594431699400017287074468612713240979653134035495408537381621971352285636985370364652658493285248454540685952229926568152653241131376499596320677127930401314806707301952033005174878269605534196836954240451775246617027526481587635564156190956063811411862086122585955677719073513278120425061581488010439896642308410209774176701818980790257555193263000182938730295690955763318509677148239061534988232334627796740630788111142476786904368300950139949518831236099318591276766848325943554264302457162734884531146066251431343039491182292128299943921310730187281804427447340426443506012188264211253095599551404327734746364337199536508819305119611350725588164653651184227572800764759534581268378669079983890843227972567738137793840315313926082986972772277465204799288881115765853458021121399565312501375379403038196197526299674694338760167065466159051439081618659949804841310896272528242261472380802694307982646234874899141037447584924664194758220041006557271305382534381420163167061627344409864775483122942441324570784213254279339477463902152115970885086814372378160687896755259023627964364525731534825923672992913412963348133418325864920304532944386897747463225819378245561526114834968458918416518989383459869652072579411273084001501455990732767045884641806184666360963605052509573728517080696364381070641562584761560451949878114753043451844122114573155141987193246309589174364995211738713590210438862976922196846955330029672436569567808145211641808211534183709939288654095009767180705763391356378245384682008085259611722824917615097918620611940813708828109110668716780023864706673760086414682897614148109410003535274657291055661621552218159090411074651532250490643110654670302106776326788799967170030722914294567276407791856223733557973058309692800616781119493883626012075445086821015160290055994585975401890516492557274026609231990832344198119301450749411692615712623110861394575839402895956844014836927524359932020448961124640266910574433192478674514785589455111389695731882757085580121668605646972007642431945550634765266083118204241701233994494675797374229713137674502885161700888113730726020085092536874483770810690096367120145276414982162569960216918456473718372481622053143345445006187622442923927906154354437915234778710555871180732834569802032151326008672193374689216393429613928205568444759152508664360761735850585971528547345460237182017828803229688176096530603736802235632655618733724591731081038075185881901126487138961993820760177644469046882140765297476619164142131702731969797822427495661466637356375672149402691313974673546911892255067862971949831666324864641440335894692911027603106090503506264004623078368381616622220756141277589216917143451929865524062322020229922361653812034156733402787875802076935884834574149168237960325672740316693626252532931092994668128335472185522799015209283445219991163419441346662594011292333682233183696986385706036466789327467491750099466413625246923614895449315497350302112143276297335073305625573339590532479657438553145624384620532073319877691472755867015267539503952316820738152343153518217095412368983139284870803183618414834099358393835650297206703177475676473574443218443603350444737898534791975295311306856000352807638380439906078422125664893973952305503392345717283193658614899897673063776280249058930304018531830529698034438289050497357274058003374182560830323005507719560020992232026905154133059830497341710807061935400164652346412018082996200720499689463079120557629400239949506276080664786846271156831937793109686914702887960695165117290530953277608125311035817877640106397719532764533077359658856595483759371047165823868880437632853133806107713666080244915178004952996908332924577491667983627100858322041080936022096765614433406768249810532637453047479632480921458596290975005091909654203868493312736387999781511407230165569173805196964250830067197238942343378058690918413426841541281898527688550554806117994254042603855890721751075810820324682400976051020941034628575331597630384374162032203254872032950712998699219218009227019906926952677100336106963711027514464221086825829263247169423989224695047384779101792304571201784148929084485296546512151983244320180736183162766598922386732412886099976544506457212085085281308305075165609063269240402656408698848603283858964335621846713822744232205738370150647265639962631568126466377501442508702088732903687947076130490888627764192317618069305443947481474021150709904816065169372476004179299801740681274010932958701875902355901457099734342108264387967430391458214980155317576124431109440735108249184474373728712064542934129572836794308082993901791231601845229963726185554023556911381736750298170073712773018829436506237325386391384586170976379033476143046566665287154614886812163939960245870186457587641349005393458440700993508352508031998856709499209465529691520925998796603600506123124872163570092575316477418555560222239995894535597346221233357539879188856592410095543770941643189181656409120210402684419811665029721961993445217763089822086861454401629065422672771896931827301264331866930935318388922384189110235728379923108455159009083603468935699046679232976278253124242877923640949764289701840435308914431729210742416067314012021601377174475407734806612096645014202783079515723706093243343434108481367381911106004914320694251295127723778468792326069960635667020378940922356386210910971855863602969075876565067415245232726489319730177969262598034873727071136450906235364662295368588519119777414408813320414331472709318682121603960891883496111002543075542023323736818971986288863417106274454729682401190248503449596130930819901641722144630995919906130538218462281962447425772479355701406051021450837843475622459960305460530332813655874152130158309647877920971143678607775898207911116664728669465072414957193366914451054834120255130171550585053443532840390645787463627317232166114123451168958086849460188495615372401376260934582077356172938844636947023986815496526353070806671901353340466927974633084198754411428898751665258487750996706703227171854976907387227770730561330521553047998701562809437464630352400202297341645619421017967361710164054449018088290057580591017778484601923209752613525230381646447002325595625718939641954750305944209676966922653969450274710608505644777368276605038035499694897862304439499423927780610250266284891576349824509317535418206360772015989681336529906812763205332610296648486503996861222011789644432867157333715400055691078138800604213386492875322332909231051598481387761083145569569202241284985274597599638167763532914562511332785255467062563716931720899915006900757094249276551565849751231458648329675424506975952312254730893841717956063077646332533887802998725640857582534150434127628561068726887300736372433899192491068095902188860086677646033966798961256899184679630665886973888977992340634831987516360043583066638635536314011360833840773769359081078071769174284208679001651940683500972759388831158188348225026069513391452789978018786545888061959469729984309566669941291632492511869598756545001044380926714097801242398019504731501899802082797290672691554518885022070983706960283438681177205581612328850195315404842746882549210465564485340717012256367690736675407017287513670411158277957640675723421191236254899766943694002066863422937362862664888737535895612806724217107874492902040313341263629372113923929325529272671882937596023626682535253221418457530249139959152901047725936700239547778724568988154560437142508713696623029517093717298194574909805415631525087612257290603061424066974659458857948275656299761727426731943481502512818450481880711882455217019943909521131603300920600718438464040474302688901456779860406336212966722659244418998041099491530520020283136215727713882867308582756102425877873373485685470896123391268813956419090673651945572841981892372604526738288617359968117412174963848441727667420618086968570327152496856186832986255609180782470475472814362115058540398392444772349902674791042124121991867093153480033095886358515834775151971882818090646205424384499470350106139172444328530901309705600806574510921429800136923152915365521500165283144303749439457528440232575621108003213082555802576312737303272888465124621361996599479767565292827830713366904406247097444974141670674206971950565508791294947928884622367327573627200545248084281207562184763990559779899941353364764578968254367669705216201862460594157533550654212245500575986803128004345407693248092950377706098385348912925590740969380625703350365445329683026746781646820161477308185658067840614768036478889200984292356139224463556939082648584213841991004031527677028965364037239808446993286324544954049090411566709161940832841032422733129873343071285103247575061700261029273795036256917545348045410922602137221406542652175730311427466791746334619316271774408005671687488987497818545891035273100078717100478528956194730014964070485654232710222095641516309374680179580656972243567597881493020169296795367277722000258632004862925821939852046661182348402737293301748817609982485573949434910210948015213917009067777602300867729919750373883076649653064088884695692765879454777791890918062774469585878624202980105990964858308524846124624136779858928470868980434706905736484023016026386019066429982461931591867712706576888306967998698334840957467864173027155476287677599720245713750618440870707617662829992268961624141326574512067105578512266502847733956805717165078424409294921160202839677668036101489946109168633550038355821562387677773240637765851002003151057473265036456295455479415300724658966035981138791868833427148554013782224079100998154551088233275806255236826384768030308710195745891849660251315641568079579229099120132137404944970486630417268450045677713336541864884292464079273480504434173584176906844666015942838249107679322822612077091873398691548550041573156596134852123604760368370540817560263406138683177521368167584738662202410411961363043507639622875232993398035329589219574269615522285387756320800384935653673069036205214895716780198551734604611744555192253637691582413641877712090545526307142677801276618864300028326605276949328351082100671032574566426375465830587490192922048065892474504123088054694772902496646570267122517465324764664187281762644390070242951765002231821926888573381754267534521887582989993540432609688112834097048296454693132743096808002967517451122038104480440750647136523470195131727060822581544864266025428416140657589641873565932092718855776935637294404769380132093878461290470280810621810196678184320389177316689002258967019199804972203915337238506114294770018366234626277083315401586526968014946407615024457371378968182674295003909375199204316252944232729995121480057373788922652111933209880576806108581648754625846011914793743447091300778293252775611007749557350789826762508941181547220290687691209802365148966912984287247769879595318522557556646466504080362655824796046034836095426108428491232281100650411020027210158106164540137678368098693964666186012383993056413246687149344860206239627427751001358980715335254265346461544132224293169632613070990869408987834517252664004813645485174886945428673734143099683737333293485274495417028420988200676553993559952794149090724089539014658019074294128635693848683510871435675589530784793443827300359964706824188967763262071320998575252377841194390981339800094614814123849736381109869230714121660825983876574158692880153039617529389520278002616877387684284797223444473957979015482529409774885585592311193234956548757954747447236270422518845504139850500215068689594505662858250743991963523169033512751615248488451234258414919102103925700445477795222728981244551127145635809312185529574303070747206126639142627563588190590424274713358725307757367609193661548726786806715692726273639496746313740863884487427246769152760973931311000676824472626793208091035288921177087453918217246201324306090571752588387467508841918495414694881809534724756269581892307992609741801495829114982647442061677250759319454156132093245193778562136620302342905679859218896036451703942532057960904596052170360099008029889575594697199978190619460546111672140323743221435642211109224899893961113742032355402709634889806635319416821613287198779162913949234963177567317263113137041303220634076227401199726862441375398342204740364911399605204534010238319377647737969807293047818286448614322803654616897013489517507081275711951224176382725874228614295876397376399980960876744572130074806154572660170589168646281076895479143213376385439968709561920527834130009466460524763563513523387052562829044960191189765079161701866562409271026619594997124010183975053317202293694987168750962378823687016987411252427499181351962762026906231239258619221246590064334168910027704974559379623667596897546090750844647999533794158579458729515335329814104878027039593537896752153405591010611724321561578454138362353660921698889495937821900529348830193755872270703203161968239215329406047940552022086046619827987062986935681958177340565862057475784047647703063630903235085250162360755773965868617471087639149775216179128887440477594034983451039297332058000235422888079324591024049719826569190453417570059569935959729082578706817759881304584613715157557572011342648644758848990845010584851626605694665334337815501383923916842106428672447972830344765118119051098010362787142294255423364649151206558525524597851352425641032846756589535439784557218269355504825354056336043352967129307194006850030672038911393644002495708385765884767822339615451867363438576132166149682417326403250640077226373729603093070052435995053524032973990611965803058685693555059123727511572998516104382991193876933243405820674696972484572998563598364745905908495050343112686186305341812179355356541366782239542230304905798353197450225519021251619738228160351788546453232344570176248305135276258967387413769577920665381717298909508743967732270148649459691425400733003102420593627573056266147898766257424229513119765757151246023199545695798137006321183746420884518195722360045805439606234234732070010075604745921236564656598026737123320958023919121958855344994293177231920487064520437124726316208217852781289179130963975609062057732762508430284127297962181322575446530353923133904609059867577678642869281835386879962926528438613131476354909959679918373789080110730129886074001185374454396463541377786328369755263624624289657591893550074080274189083524853513056678275326496620241574545747389278932832174404737607414125434832602644444795512434628428559885829839116202034633577520236851707381809570753621269731838194014596315662229935801833591650004608740977892787333300499817320177932078401148331090130623486127692179833188802664190500240639805120889420033546331727685182802659955361115706882012812675196608021124170713212772504869727407037717972429442320729100889216095797664541898505724824399251705950950376794733749372836359628247479687451301373630624143144556025549813247780008665048933687186312320276964170860798255495909522996670659335450848533276169915907618421511605466764015371188751038555120175697502255159791974750513127522347292171365522592251617490461913104778359722203394589412265161199706425858862622452374854952077157840843938894222394341967369394838044034170096702359875040708691480209677207731644383923415161116020252603544303121859357968266403363665103130120462998997195936178825045677112873261729922467659741303401330132246507677398842585081408290691923558171271880175626957276838129806052580249351815246449251569553734662689175476677543607525594941221641472310457184774860288046172096662007734085872562718279161976463679347417300040127821703605386553093867992031584408151368743554933358804869889827812645728980063887355957248141386296868129219157522425131025619638546990144347802304591015714106774897567846964650603452350639039471328189264382280375289042789626584802083316245186674143641754244394550848137284221625723772935005237312057784840489571976286665549850332378392974859720651910146139168810814057216162240837935616511815573392376334587747275576221815378055831360915385135635186040336149689629606512297547313780227063906484433191466837143895567504045718564967956195963972252646843081397278707973379364047905903234127254226052787644758526524982922991267222263049646958330449807685967421156004990116393072257886940684537719796002945805173001531120146608694130652318154387529761823875565345339064405826121613844961630065821564744911249621416409026696833124772203480481041232699894906034690497442691924135108287996915709939989711336401455897739299007669129668181641601409986062933027981547302994726675943977085950229252638324109681664389454035949789712742509660950393822637131173857860387731930270818265697623949501505555554314952749294909439667928830189539487188173250006482787214279322033489352746466028585508895281290227507635788012560344665944838057100730927118852679624356283700680894205164674994619264335476801168904917056660843739642545891894966637759817596853716836499752835590083290780740145448161467669518203840474572453603606989275964302730799185935400755363151417220129420974424237129399323253515106855160173364929507022444903129657853410199059635796892646472172514074300651822693677043276776124320849977206562353766204175360946068247122398940567388198645984435141550536785821170817121542416112924113611055517022682243187007234627974092215894995892635938034657640862320810857834301159549179584231992913570596262240712054873925366520481541404510997414730356446580262604215922211047526798174138421508511955166230659113452085771587119659620013685777712959591575478104123273321342427183065445239919523702365810304930630189524586745239559105733993871750823711842596586224028359469931611521633943161394719813122229001408807368020838594529872171794711902962851331111867138994614827711429234830145532739839460719557987265566916537477910222072575605330271495983215419748248057621212569228307039510025054281763069029927763537256573332495630301889978524038397162716005956148561414722600809217025188772760044195838849915541884445536015873921688494359241057246725188615607886526028698974866507431259242053208075972209185207411268530635415837290712699459382444307968792495614052390267514366216796694604751176290194540946775254624880741326950600722495090437545931354567544517847695668936502620481780386835186072935855359495696706545087656515763388496709550475399391274551546679350146893138895264854791569330988966724629295507001298032609509541293630314004230363792200973911216012846568266905230412257209482724077980429417942764335821271883006554742433181186263754266013915135158574125441390096271893827518140379810530833174715441442556270782452842363773179806088628052783316938950580754025383832055715369384031609944490364044612632009373519641370445576405258250561383314430765125774462177987315177076538693911232353902335670717396389115703159315206829480117148346811942733782183655686253835032034880098760054111067395483739587682065927037355201532233504519736264875713092767395223846731153541871593586174128832322423076677683416091573710182529037454913000078697330459703009164020133798959593817579669207062455926869196101348413765557151882487141061027242841934324010687295007342492206941065844489572425576325740611386077020552054585234037471396716635757423243861803753001156442239923357036461328690991016461225477215180866062674607449019410297354462476694838332067168147988132381110564829629769636213073861637789992588264560439203582809295309824275994404954580413350276010495827674107872945245233142663626529403759437110597927686121125882645569326980579973414209499622001660309041940057514031088730664957856924937868762238359932674304369236795182774569990719068947887381032513007377796079630401936100497103948717273273863343997711404440543552784066550793985331984267255500873525139294420468762118338019399701482057704524534403434483026648768076394222223730024805028650925013284176500680444856152095925160038873446687812924955643635058455535828905540542521842765877543830016554919942173087201680692874346440110611818866869870690008928126795732193593792891450355263162324315011177010563912893263342222681099133252390799890014901072765107199533243389328268877932257609491329571721312251029455289851064049168718445134506371951186980292212163008971895579572302250992751314129181299799582674922782669228072015137844337313451311165152160306382766350189372342008452424851497585875580972966792346447871387005437889111436754959371548140750803915689169895746984620023164915575388949852611017423668471370337425611567749744103608822713794234585698087683570395086819435215187958012590941097847368741657849689533229999370742237527856201737209176247338185248473677836282901516673639105847197774260571088564090590598388994940057385842808563131291965627897414839509825771898099386524938572182872904647411302759389402458018104661169164939499747413593566424094007390195184454817675555460495552209637224686613200257445683411400844474153578665528981660383694927129960547650437173596891803430343552970826987203470795255084475694626078164132810353227631096322882197799546037185009227165044040768697145608694667315873205523161821520938216244597320387888470838475334360403049393834452103769407701567076810747238148832868422866029030732333584529091320695626440833635691670993785432476933522407366179783747503993352329293969384520341347199236908122575333278443753721742778375300029233903389819555438928070312559555686303420234478134226014400239939179578648481303390251753693491534357163284883603592411831100056933588156648159363132306138359304758763142107304522046102410130264727903311723797775127244801754437727672483942738192991568660666028284834379381988306465458784441111538386635288610669643073552484996763541819850733125327218661998621051948637456734787123153261940247115584108288011144025716513087168452175009621479491791868870412470918273830368855468139478569280489295122140630147122639237869002760351025421405301782761092532275433141361335333252613351332613555989682378885171452379567345624245979188926667891451596585303457824773413903934851793422769923979183422946097888049527887596311577341620750952588653247737609217938202830665135155944483497875687085509079785415784996207799797880312888603489619862114036686984620466331046907397485501662002917738763788955450014294683813144564357516254406114397294998301997139635373065792699674687608656745982929573065541587910757371525424498498300564115269699428175968244918336969926975301580251429407509493506901102686221099709796937033871251820238776843991988085425717120737198168246730441305863170274278517151073273985468929401395723320287187827771820171858739813984686702540038220727235127915131198065240659972830253190659901542396026401129663646448463493038719839843959360161942291029253221965840793602234374350341815542180598272536905171041029275083713243457878513081900950908206221442601257761690337394930559370534971333864546847339684716541249085568434789997876891839097487527674141640916841748106483167521690354644210276569486500614480352222113048728920603409133802277603111703292121083802208310078348353351661061664971635063656691952441348556940609895668842910636279853963235203639228104009022607060352426613474257696270120173835088810019999584278648466981774067930295814123765795696434754620294069814285032699288087784290788189337019001561722537328975589148212490243982055826595404639468764579139566674031010082550079884299397842721565422277303894955286365062473263154017294130042034940379033579966009227086511408914180698025298791509506413214218794387736512136914988278408147662722998618649703201606485306727320660348100483545494481058493153964838558826388913300909155982478821867513322603334691000689324660649489187730685842860190152968126225308618946492024211917822258458793757115737249211569393324789589989833124274844308414547304490735016974598195786147014227982430059189667777623811762048151192208743043634308148728123935946066438665818176257395459556573659320218644249709015248572733996608659236365791304915925208751933103450793832274313437099897025665841218937899267480783465462753648886996673422627511636842066494270135813912490337708096909398830933484924211749216021833177799652235538517316186123873036986187029811651095304644833134623374321476976106623254497372417606815429322139161333615968766019137405817444322148485045297766403956128558656038397676722851362596915624260730469753576467284302090047908902013189144961380822624793717571582433063770611059128428760808443569371085361949062181067065316099178587970849956022425800604568290599013367518919887936987739125458353963299269041442230013209494522618405262202896337958808445016439874982971829736433555382501129487196495780100927598313062710090703476708088535431811860297484836406413419188942065501692581983430022339807332850340143302766301218687664765011566172647285355631264044917308503996049631425668999671894481520608350192886315048338941380249938299918762892683662404967640328356916629688880148818350463707895213978679569317860517699703976950282068518819732492018877884485795460977467341734245539818599815018094997055666423360522070560567938293902294084413116545825846037559882912215683009041945210892306875873271033404843204161553670187880243134949700079177752678123788523694777550363093192620061286334593947532017576121756801775459131360449041162226367464130146349161641298133327326513431089657726950277633783228379729997645000748812824977523166634489623726745017470449730066463462234156320373079531899179139287514997700845891011191179337303809253888853052689237603801856912389013301537672072134506436683035032474172058434516879115655225769132887705857064360530595361344891133456801417983049058746659580888349361674685617223886238581074593387176697621891861260057439384226462051625747509713979552196125534973606441911204130158888603035955357746137865544351822351992755400385234894730795060792004754433588728929305015937956920822902690408667641280758104003046835741824986372018057043683234526330060536871424367803050322164185464401300248674397975450865855646845583512638519886696754944778376256087100080812362644602070849781289027581484407994935916127015461130465697672726967814990634475010181849763267248403761064801912557655997576213751203713070122660467380087224774824550853427091505623296990236230877226711078199736188023690262582251971972395120394595595829770486229820566178293988371858823256247869012294314727913721077140307195748449554599841437612844076742613444520587351302365185168144354593551197713386240863393997837423811795831150146921352640108879515144477286982791815178841770105686206697334098059106943466444361023429519518648962199367072011615076536235416273989019053902324659916587705684313073152209788695465977150233017117132430304975169806971019265707513628483712595122845955609028225196506048408010701385399822214046712601151914217373934351762872262330512379637741103005625191460258943040309412107792090806132549525720312127345370885324502166967997995536981776528521097610145061513535450849394413238049708245413455311525142066909938121791322172286457127181348402939680364386613405888795864218787454755732147177823821838491081431455798653202811578596067863679798299773820799084410759936080708878246397871083331342490857657347970689082894276476706476199694541900007577729917710280028664532877285093756640235047134842258966013797622331828122617568262810407433888096601108000348918007376526016567939718294943975530825459351946432468473077502863293177070909665249345423143432784020841949342573755910184694922856684672809614427598123717551514208064312134872933057902587323551671776420272435505748445829301124220772010558479440253586158680251440583949791892565718839665897689082962137495341605891403571170815268650124963159518667315409796679405093212373004490563005323363999029743213411781655405053023262480326333159074706018855328277306527896826562449447387661165834480940742311728924758529053454644316801006307736653213209121805377551577234794722609428568040086925686429025208622921098069885482675085318450019915561777373241870040234200977036448343775470593617805113445589883957739411135729647059332528713023652385985440332669339767413622252033163007635522291058566687437870371699922539714307494218458792222477317074525178458026038491824108666688287755067355377086181284294750937695818227060269622084114797787241232548652072393095098017677454096231310158894493486749874259864629441234031157222134863855275183453119162961622100492594405169061524447450042205563924093812269966996881672654717475007513328766737518438173098603948457139834101539356695541034475020847127738008617896526601055681000051082808445620745700003686727842281120730858826460136562147887894195405174353317423769805745490826037042103254811909369657339362598827732909621979996435861768371035191854374752089054637772726651361768529261870377681259071954007726528812582570746605669498907067133102981189382876221394212298314596105800968670002599960612628688730404071181181155857917885731977602186341044743106986631787251732623912262936962204447612635348852123750966580831264689825688891872417607883993907718106694992755751636413268171137205593688452604176937985036650266207839794165450863717655071014875174937150683020461880482499262476858467813635096192694264581524785311257452566760740716884221257459949712948885302997700676161041832333029868260291180075453820969860794547845670360723792784299045317462025471680601617389874879785982785863428593762329360950485888902273376882620797257505942220614983376661458397094016236050491938218752582189857792613440619548989371342727508540513949867432879363876405924201277379363151488337338642345683979569469746554249657887414861436390445640841924233967236300666746894228781166365458584275644152179991975801329617257092335319904953558337385265927874323515115095881310932766727499537639653348690210707596498729811264761533629221075860685263363005402445696418757139359503015842360188019218196874649366631314795259426304996514006925577615586169657326264681014021942522095139107246191416114464828825528286177558906640433228349361638459707030249293846703841027590699088958471691917240713688598771552990352293733069748961581804277765928623445970259377397632693036353715624569698365489695733496318166897542927043867905810157298081709975567025153738168255327722449693769352287161232299198887564469326666492612141497812525492794803005389145032067292001439554535426920688927248386681584936203069172375695207171458807464813231176169254917001409146949997457029331366272971661744664713978171408091362569756882742818692099971361784265379725809607372038415447754321168851088050435819502503006511646793719153667459250973699563208503876867459761412770090609678148938621998104140607483366122277788413061402741965321203887351018991129706357427084386775907579919954537388061882870983835314305032685210013185818464142130225979069813230097302581351341790369468241402318686145528935165761967917749448526854399547399569698270540411026723371484297635357637011573689286273841413694134595230715198455527678759844927787141665942696301397334940591855607324287521907567511476786539003112054497907717619484598589449815200953948290928409486478303156738033240328587872231652643555279527339808769249631185558578673206211332752684995307612398505587896826165702631836362803166293498908696757181333836512427638782737086305672769258192912183286661142414558596422016511998120415167974584091140550661549625544070213584716572213083717149547882405436345369446607353902764011074666231488328943311441734152327343342328348322344627417091908018567505397675803936871301985907140822136677156280581155083608915405313840205762218571091889570020981358467053665989868022918729365083130259447832635752862448961695130579099198681747159412142892446958122565911547481323736419369268606690709174812954931856734302339548017002213509500181942858198343731807163218828380497578684331958242422266977383443113739091470629922238661535518596823202686680683119444366609903315182833684599684461699899839482480630475625389189129972678532703499581089314828727927029260987945936897168874281160286556187170355096745541596759384167983903717921317841450813518788689964541339778115624800307578350837624013851931599769505671889327651609043645715143705055471546783923794616206976796289005703681340348457916392988053004955276253148299053787923328963166704188388944559329573415704708941591204313661267174720273811073701654164056550974972431738884449562836654091553474321577234555708086423010243945920256457262912078176986299342267616780380662799770069274442763575817062522312372362081975325858749975475921834280983031572968289415242678731584955130154533905720857891514632616693427964409389715397813106252864736198303067074903685690449859874751632590279020280286126012900711598879058397587555705264010435963881989662649719688196754356087418202420560249551838270171738076163693904218845776280639921792308878882507813962070923449465172573537397379224716825058061146667732544242306153344683237586330202205490999299459482438850507650481747016838092775848986373192032409289286270351591410562703345650028055779639001096732393835547568826872402602637961956629308932511095581666958125260432292762878985204537268814036430894189079635520835857521172520675387040199350420018213549583443984419705887397335069004207704956135242533998027140795399294857217273982900919133330709812833484674574739940661805065664020329859181505764678711411666234247053323989473968924598101975361614278592901854771413034173486521384271717133016197085298668434795247088012096838170105534453051879565134832791721339768564069568057026500563123811471303687077349409036734498238865360597395385120928333413963583925163073752883422735270825390291340243861452184186442195216763383297307135055478711192935711421404699374275040880649754789506363990895225261007539390651033349076772753131587433332822946219281012581865694433677141473522609231200869946930028371824180587134020685363349416694643549886643881266900758221650505301356617084087153209006436014288891827923707161994140800818405422587525371551742940874755572003953375649786773989375722894657378625129274708269123439502236504497072118008678010121543437237687826001400417397771236149293133666299876341984781945503541472081584595425002892338926770381469231758831687617352811808660478047514106932720711504709019658048642042430563681013071699538487822949263209822693672887068191259588856731111639084408465634166809398981870615183385270075352311543700661098594651455088506440551971239354174025944161209113454960850977779634134842475696216449815930264579574053597288594778022325715226334545934340024795592808069660200509552691241821801501153535715016084065491480214921692312285161677064518920193454776815419923358519484950096918551074127348250771929351621071860266589280437381655259484579921138733276601118462308092164517186118275874816846949156917704661353169709511976648951613601488454133922430989134541162284402402002546035166894125825778841339074187719500070631563284072529549228343015212072771815928416555663743933358399197981506604793702139317431192715535259902007724316285416181872609085233669359505604793812162033194702038805049355206113678037951871963114268450931855141763719531789017003871908688023771977654751827340111988985688152000862221051823125068233900627630332486690251179474165243601709455215573706701850642636444519304051240196823109954197752050539371040779580994410532667647708235654884468210358560462474644143429311447628404375734465867345334448131105761405054228687908180132794503167012913699744354414773638261848935447587749287893926641510866876042777944720236952320473112593763493195875647761077424976196323369982327293078811478597138126967685998997052958944349496545595814751243483862027324241008433907199799405236298391765679186408701590740767156243303968312295429685870830597208000903633465135412142007437636830498536032603680940406458043942858213636257760642068203516964523225048853998782266293109877352963532482619231671317035456183426648536112816792521766787855742053280359195926967067110432112274683138830326743755572920807843319360516432221899117836014865619433680738202816211657670367307249312978965474872914914826247095002821706117952471947452195776225378973656094876700199185203721932949737609925497641269226640143849795072469744293476897772287532619143150597140545054065037787225056723572246762309474751418515453092558331438591612359224390219897843137976730372530348709954698480461331658486564791349804735113443362679610442980763295873642523487238781802747815834227129414182943748826961948834823466096116366343876255375989214493454935899199066384584250230532622210733822027614971198630030072884612254454253439193810323525423500968414470571894160614074872385039388478448044397871055720785779591024244906023838357045784398917070357981190757968149904249049088292559980886273487222741695609725456379153893959113782653602354675775305273787594314946578959063197418539056394796347947906146135320554874395497012815585515879793503364864766291923841049104009464605942585277210778784230124439348688276567127113429893996955575925315446985256369988274742461768599578034999985320661584089604243727939247577169345985425814846654337931052863749183129295722680975055793204313988231353579620014348154498875629836767653638455012626285859977209013809700610088368530263022311215595949686087433290953709383952804267428708905618846274727164190077705488652263185741183586609282257500147106956482057072395488922157251067303222223245192275311897000619438146227251563509267620376870837185332978139022112488476756629477694027595932630937329091146107742837998502998418246101229676386233383148662195032226360558921945821219601176367014933180376707354644602336931232407785012094101159926099740489221658695682449060208218505127688912070717863206336867361853812845866678772231505557775435138033596428338885849860202670795329514175250956286628048996149448021188822203489329219752362535743168375051694438895427995493582014016174854783739664485032766228226594820048295730045598595204967822374141353395587160061247165744368301501166801235367161234047058048267770857926526770218309163773820857783687603995401672186341925192392279076239254740645027041636757776461010352818290979578750820641403715848571165194991921342946283045481153708727048146392526557685753025524306003338924688206093700563312672446848329588067759103953012516551855426980377736714696909680567517470327555206204788031848942370446398353169721423037625519612590789668325453585461066774314565575473959177998773945759478408340997235634066982626411540035541884246925397051542429207405874518464210435460834218117124497412275332538001235558231030385627306394317738932108464447809740836391166828261673971477695341732110982972618945968565581024833186394481654822333205605770431937831776321045111629195506032999998604263821312176096032926486079450478489968444617019513049645622260380811342714128631675241715547657819899023051753282379930710585508119199457994457747178934575187236164325057650627991071204975364055697040772507082339292391062738933165510193781634474118029054337672031338663403374779621052865230092209940100821162004621338127495292615031120148166858257704565710756579629162792914562321590516241695234116323730213352788556239949399450435732602802496395326673535536201834041805163219443366471966248636566150220040649053631996918507504434229854396289029211131856788842410739635248151275389960937470275557788857564484791129648184311950412527377360216827554874723066176823662101515081008957748923350447767730699083773227854720818242311386422814299285535454752836130726284318336347899096438827833591480648100081106015708355486265902718276834743812638461682326568360600296600619456279823247766458927847150447971778796292269439499941155703551710282767848979674840251948447949230055071527266969130267774148934885802050017938858878833513474911129820595892772703413211349353455633226935308479470363183304883388531799766515212571700718878656145849909529932582406095083472251311047933764521928472714976705824836667859217864756133149410101611377531150953257950523173109651892587586161110961099048356605792280788962424009348443677375908750728037768757625747646656481536134162730378517124806359122076279203115631510085139651321648440597683849481571904638765482559526945167204896406407138493099482194307438693864390297476525927981235686091681503072993880115704813388171117920774914415540296769608086821863344660007437299888291921804658230975598046280089823328709006538051321434110202186093689642861083265883552797517314701688925051519152182194416530106899909046787308778935771879024871952480363507857456268034850973851106192582187206160844358204139483165464057209080147129267806729304100874155052329576309714283890525506371533303864581312311296873800497112922541035856216695713326887899502530687885472451760863391122406011629996898782300694750762589638838201582789804393022284776523913941161191032940439429609371104421780931503265370895587170419933936099760293785463383029502865096981897271274815455059518333262307242473967893874655403194410140993822234746223368364067318165285735710161665247044037584890704690490887540173868127860912171309751331781890239473585307975567673795305347505046280688898924761429166733411617891186848951042940157131614944459782668174505278401154392128461674631929548149056258833034841335707133982849171899986833860128246147809960535794527769341942095480116737470721027821868695818033633464177231303371291699729434715466079017684145082129730557127581624235880613946423465990411743752322277633681194711803294951958766725851851671414640750977968980496607180219487897926630975349562224998853225609078639589385338408384457833301854293611983245957870202211097692706550434849674500614522933619823238918959317918917535102232976349354688023099613929641490767564877131273271614739258368484420514537014259773976731016262462339899388393213931366465524414347844932175846358378580047749934822668212685066836198337890946798655307358346742239640190810905706927299759079418218682367193927629799085352246077445816653939326669778896951192782817417830134945743001286378149859590607823315700530479589532535790139729177556173884358669912040312011183071393950211596599297188323258314118327267661075799498497243590986129451530740391547588107112985010636978951487714827604757469349513482830280452211897639831071968863997005936233422051856638266140243416536637930365802140266909378036858864430652604589953498025680057131224172838355594876550036789306154360780508911721228154184124804996557348773465794516741228998888407043188711643920943584166100547821415018036171480550350784092504622042246607109093407871872684264953123103276227658471203706324062910849498595810786106658681611407079959454985215686880311236546761017554159846891488196286802507947512721712387189537384020259992388631793676496976757843130084969971801894157192527650968506833237316649033753206343317858827966476572917935217413945576564124487550327474207362963560427103695633373479410715379307257903407695585154017314022010978765486940889116028215160307721323910893146194047835660415578563413610169132625384127265094431095593751707847163477313273964642683189529005399582359729784348319920739666161024308621014650115363798935269088072624072184148107731403910298212350208651341253791244224839467050866442785648202705581480766761986827659525229007721751696410015404867120998603536614006005778908143054059839385770157266332767077675962432709381323099142924231608072674039869023449904912198831139025562512128182710711088795341671612659507256165894148201395988790904218916064673685508927733177214215210494378449136876519901718284170881090514183602066198370677031513418265544166961087097248046170524151362296612741116511102566634642665129062739757075318792619650962002118345684294416840157586978455359718092053344627034290353321472761247560258129172371121307931566912395720929971419460138196736500219748220140372771383677265818629421853007700947945467984855416418509250269052112340507483293326233809844822146668764007181534534828444686083978279422063529524107236900888040553673557902143137971327597396428991773350399739188385176552516530334162027646456593474045527217005017614237287200182341391302762930652628110323181460545014556972499064516781846851847056865288934401366313893348519777073749410021323546711688140185679510810563547079670250342022172113782843869471895681125612009376394083826125366748750380857345332691092126974761098031686697816127604297073974631939720269404942300689018891641344243075320345415257827074892359312913206135403361275447286705301048313250669775043677364694802361310815068849613842939488278349382745570235611626611014196053482826802980704252448744293922517042133360510020509414863250355994827720131407770186517839014318017073893636422619942801204971294785280920758147546568572341963284973001226939367480385689486895137036264736198302897972740317526527865822288981933270577778468820461822529077131384526771907099819240638977648123042273474323394729056771617339851015206065003281340070728774503231948361229778053030408282839703573157558589939593666883615225536314967001833750478270192185238283484132230990612537672170928813872565178842341101389265388430466889615125945328986085594003821978519321331723228820636259085629732602674864039728818694222673737968065177119933349709055097766347544487014278662950543752182381816483491337331774858672980285872790552755056000462833792553454623283365362879722807863325066648984936328274780750875062220296359707820491355706333048389868617584272360934845354369910345373576678317966403628716510136583658556940926697176103487266033205283480339166130039648263685687134260871667602302143251515118055766334114578240738960308907048453862418905204183984673704672662553568502965314945676285864274857098181170875555581151694420075247590208480985184603496042768653986691120627355142185956113216648993299782106581507703351985120969869883740879080675749403130442671488913210308026441927433512279747729165890377442632742414944340326841042477925128962376552744687084350243557546584317590348021470373830223043277317519537223656367933717524624623382853689378305727286738040051533151286090254220410087633039899086931551458777150230872839137426933141249790010554977453146701241466278022793704797920347845257103965757933747815429379061924597625022607353736754355830775665905986478523805473386707001700696536207673879960342975684936877272979288809742062323000610831036949921359233987740953794083686699123774957580741094519842810923738101791373023199220601423604188537975213918170088237683471775351402654678285859658846193205015659573065147092934201243884181768988661699463825206344829807429468494818137916108407892886129244816968231853829697194425886532348019766492376069669255168889152572207860518990257355984164412281451981604056569657464471636753390176291064331358920252465549685519907747538888012701499799072181560869498740873985703997465170254396731865223584905796953052601787257586977075642179044889829272241140812197479120454711375690309241383199669448492680493286789109452859911058631467702279711065220944969557976993945408812262509980743239249563158539292951069133535778748553769597527943698131225363810707454315131792545405181397112889707007399324223246481767803870848941134184059640689794509488415544450401291214829021081533492099389683541286487138081989713656952132365575195316752648522002608760538280639788841247053129565294535429567447795437696485438260737277947712134595670927358518217079461647621775158168281370919414912791634897571329654409098311864946981706249826187422297979946223293683876725194865437786358204197852562588174721508101721283150789194889695200253341898332619851017274434524885609461766985619363351490020643332004259519080533497089205316868360363983224411969509404698854024913437238381811061162077066638921481420619722601487474572405600932883851989510781915943019122744244323205208094621654415738799692337453492037424887499223617129427293001271126901346252931397605299332446526841119872613813923119725815867986066760313339142871825116056944029981351729430145693403602822059337397896302546296299271005715573473335696636696707786933394526639846763697111922052599346815803144609586378018868420144079322996799243427863844639445347320378469449314822063555023346344510919479214214877650770510041480653068020773799656315391386410493343614129072460393352078374626332533966654094392938035441547339011737073922444695759903020470495021802478024109651191359356662491339074915681725952780806463502165819464140855511435757236535458283029526799624831819963757412053682178352332483612422726900787174333300106849995915277265435137744570681254457827770117999685030545659447610266625894443585146599712851679493657253138800037476120508533922206655681454565980527791648321287895672455150369482613915010804598550916511799140910445990043133168123561802189019566816960504413724531893499573500352556050405977059135149798442488745768294918318977384568517140170832610776217702942465872697883093382441625950466390646814315254297163523661170430112307797635695147693071869765049269486154928858602530509156477754649629830624914494595558229317202064855867122926572021210796686285139368317418933997619334652042665910702685215053174642342136585737306327454973888567798771092232054300813535513250366451716846823069846344440328830075967251528104452510366706853585238919682260056432761986696424086107420840677871549645833361184104761447886528123641127685271491225691130258494253983195793406734845116248367140390955558063886997783154365025393213037481985235681132992913247878030148082340323890330768612216487587130935728681277120706714005415594254974740988322045130876526887700062198661404179130032872782135510399489947899850067607790112731882435150872727131352542888391429153968642795901061921925886535644202191641383128949607739862747936663313027027764465782300374879787490886107409567040634750026761867897639571962290644864358246894075405342535417961235676386447941158696053431505301082310670246621096058288326737910339191312972442485307288298917861051444860826007287965979486843574680432326331483318724088929380612579903618846322957090202226892881885505330746224392124090080114265126107402684364107436789351245836244945865380442622001921557519801423859296442800396417115860309225431152210193448470217276525269060708270580618072648845139733602491152023362415663330515223586661833908524788557508875457537289866691496434238206072911925425692593522381306773698861531455635055368007166052037625770416846535531544030036733409886122651435550356943649370851124579469252874833840187151468198769046483757802025221283306799549433260199076981974123955639740129187248227434849828666430338958315723416405552441795945863244773416809568621708431536302017386963855251442410688555250646489393413933016558855163128467128259341743646865788543399465539915652878326923125230708583125185239203968151541499483337951669187650377680805870113728656920663502703482804633606962034630786004255008951780199607588860415872658136829267391823555175710872580095617973473871156830415420374764069913980006272459098521782218374984467136373283573937373235126146215642711967404193785786538435572560933436923670184778182423998498458949132442439000994122556520693696148992369584984534662309951492027811302830661557148085165161836974200956671136658111779087784676784675370027267149968368328082046170717823183169427526717625092025783691977184516033565129565611385445934188143039607348651798889080353178414222175738809957414452568872093098100469687271183093914254633261018220766595719688199182955872394032425597393927392429066085387054776007473558361762558081382345932354753829237020362806493273088359102275964319372585679676704704313636563683222152237179254629055216286852027093695413436909057165775512188754757447323001331899134017054983898411594261717983413856778904366991123712795769244692008891008295531791568875543321615166850945147494944162101227484784122650067591553603977377371162868256202761293069879261534881570997269246546562498296474743854035620027299675280121238301998955589967411187982610228013218044009934444784290625333281499471632770408070706568720394926814822444889071458147915118664753908641873155271563549348381238839591709283620763979778371666869646478920142998829430577903972799077914556749212488336077739544060207182982250095082581085374015395702578956423017869750001337044484796927849398839616944748707133367593935735773757064787519583679829372839396587457072177488309824359123982732835295896905024916648259456010868112313901805367826035385444229616893294486387540475811604231669690368228753379760605932772639718663672428857783523518778506981692790333175529686582414255215730359922491275913705231459589638880469395491300388250190901979221090033663027602436978968815121763622848023647832959479672332803210674396072543227739433423559341721905085140196964655229607768141193560033547953884972311194558376441837347513831757266703167571543647017409673426573967395017920223125359825002460314886559491047258146523305599810845491193523179362684273200990223115404078036777485624926964209976928535308408423401326687504831060615288230153525689797903667384493844315401756122303376108429078234598330642797488940560880674360314652542763741814909502126728421843767132133815747642513798645774731471893089884509809083680273949074917025808224597982126002894176776797637928438034196380364914982339582185765321709554305861482505852255207048445202218520217400682797833255862342431871894548911884992898517589770113206330182603614855256236540781208484869445548082434010696258742791700955461805790008648329403512486131754852782478661892566791560502454348597264057676613457095408247624215265043978180434836659881131747336016496882791082267682534710888843038360705135806018124033457334981144478343981764987974178338549303789729556134499417231634664151703643433096277300568729379130659435705426709126912872684480524976972921104799753233819011747244692783326725527978213722084617857681845523546702481463391029208151339803170435062618610841057861301907269728207060344642661940785891414215025572317261732907334118447204197148415322922886243935381465637200377055611607727486447199454882943470138136354853703712232188652931224171297760226286795913383667575949751809810119318282454195683170294808401953860006254644263935315652961584590166882800725645685881105422939565878930811973635206813912979723977536204572835853257370566046210901381343625097140258784757304599964423187008496484549012542788567939392019201070607310467093060542126824219722901348058195087084821757403178636573696448472841798257287566821423380022537602589771110845324766376949390390216669548564132319499267871106781384170796490193896347668529784787633337911237353926914099215789904866805901426752705695210134304620930819284841550637887855595964636760852169135995262763764741713534155154235468476060144940609627419903437535068581468529940127929264507167249360928477820238735675903406205062681078276439043541736820169958166882812182447563777639843150100269584501875431538293947249868526686419304369338520340768620008974174364200001081627073607240657745620753182404158157289860195360259612397461130549410918981851974211166685395791713247100554109905684507121822497763925646957180024821348767426164700877726751010123104801653320176188115740992816282937467491541386768443283162607407806233477976100283025992374953350070124323680995453473430187437582551036896567328356111367791502801693998892040239326386520252274433833682432290072542399300791148019546183536990897832814397286830662673484285083760978638321361203205457771104577609577430258137015894609756941600777126775633237851095637248605025751652996911474792161702294341866990356385105192595780272071442299318102613887417479057112892747029637315999492882086129413215276880596895353017043057557077409909156419063923546017050800704896309156095440495390779075778405503835186411549321406485287891084556066476793592025920823235061200473325942490260591693672887168158610178648265817762027096733890718665589404072879023625392332293230185473686918142256091470021185063730766810125921419847282644425639867135937252388279700820828302981212540046877488044653335875433472252410693873661254872870074933388530941272203123896091023855860301026632173212590851879090452686431334736323425415635264956772887614102407479914567821417154866573210089817372211061612950851901727693480395235715324496774166127599857603096827094230072934340420462112936443739509140598691113009307171380536615726772051526524205151053976238740820803590307359616742821968645542837745222884576635623834356473436677595378039593410168773321860986910919213963527332757104363183709860266336500218848839045632617649373467132434789332449857178469132096223491266476606418873289021145566661676728721573624790103823675108813802912562299367261055144171244842578518906188032797690656594154476034589727669739582010069556380330366641881229329140900814007778672559564372638242175336242415649647065644711964099476001528269810656041421201386222670671700241958421451242642037025934505815569962549982183376838026706332338999308059152589761622949615455408617592044702098402014796283178580399639794930600228798680109985523906821973613439421325532182991821316311523923042789380589024222015044175840422102087838337673771045525681156864576043078089923892599665204090496021975127710293871387607628819268262413136603919065289273429029649566819867197039216891601888066938577568692786770170961495671891676662110787386626877975996804471771803303143785659425223297985806272082039543733737097438324176281192237557971040308236830727238680835861829996439241848367918634995195961042166610952628814179178752082670678652080904812377343970318648881605800054730543439965663369091472263487092193699361481254647381265328630592948620729756694828192312500273519160061693948980643583265477526882019338981505499605538061093712305043354346642778437936945013818088985641418031937266747979614706771798865253348983799019472743611099748256330605155795583595578332828645307972109879894154803504763253424912251123856691234461360644979211703094766714405416557579303707235896103380662013234355789296759329563834443960436941420307774824090511551229550669203731998277654956876958335871135262538180763708988595469019137157234473387583947628319028532161981005639213039729385001627413214588112317100046305271130836648659316485620940412636070409541456331642638540222043711298107761933905189335285122238386643209229565077325327466003714796331401465677315197723765168714743837658198658500932045583421799782330925771536731144793569502778591617721999103222975150794850029230909553435090556738462436985882782090923691596342991960809896294592381321747127594504953644292888525783661356234991148870711094651362213417786336797628288744424757482154421351628112713300079890241517821963610624544406439972883426402250888075464183573332875453230927201187681657659030352344202233186903895656793973421174237201350436515980934719820270671283959094353435259657273459952980470978359711673781773175441621294438758602416587329700304982435821498629779082683785692132714278370002025904573955045017059294933150309320610903387885564187199028156725380668854976106596300912436592556607310549935760782565492979873091337090428744210038939263410435972991056551311902029232333096164939741496008145015432231463591528310576362642562064499714386943773797488769582151134468826364891861080278735920715589177135072071955850470604779739882692258191820185473959605352897438188344052600154968510267612012524837600128520892468050567124280422248965916713605188621492664621666145147650372832768254608667068760016067039167050170211027636763933273744171115159595623479218430877646154223222990351927113610859366164774895596487378875924595913757873655096774488815744240152424513730783688556055372566325576269109295673371845306298871793188995788209482543631025163521206586233728244474847054310002221078283355293072846858632832711652601979630983933451193192215275728647996331369329683627500214757517126118680563657989960018606434980115617456320403427533440467420406439045475462234557395581426143052584545182279970554403371026863732047062622029812527368489533563311210599742391395109333792726473120990421166635372567522514488918187461776533964252691936568496814608816214125696093044663361433570874670486078966536284800389751729338228293423108011188526516010191902889095041664051701388657947880564631779534686744036787977184769815784226444650703090636628491087002277774686580579322032294521497635889086068370096492823355960965014939429090395964907410328293727887651764583337429125115859382579816875917246305008907709670079591185245104783711916015074574846387906140108894388730270011292260402949135452767677930648726793592689251907115934915663374540222579330414522806821833332185950401543223257621052067890455473700635446894040078833467929967054848836161387543464291124509835216748274142191742136805989799480191790565894286567980860501816639186484958490660891816085650133715935182077619143787772883333699535564629011265271083343523712899094789754136284919470077699031752272222784349447278124376146530721583166371235464288349406370683032803376500681632658329929673573046925956358857422701392031240094878603628763337474286199929896826336426480873727691689676108618381863720825567162593266652588959179201825754891852924921062933269402476045108900276331407272550162876766412125510797821331054722205883580441834634007063003214601521380840243210449613218807920658619681397039810811176150976577273806313601634663147792256791307312311956376537351180621085963998430058316411924205434874186504180980675421321557260558088975907549536995167765708244196300572477240319716205690270092467915575370621416121742553958490128367684160698916876942837562556297639712064476095553919916953412676531526411392202639661040721390679716277179936114094384940290287624012918460485895944429625491119795021165174033906643203649747134066802988837961418550791692933104960946065658147021694872607158969326612672975267885877551648484118977775302748112206220075194811778697348214758269679368249207161075241502732086993829238804090822169829363430917100838911495214347644989369156219508992184368728598937477723778164327685015171795493654931307163021134403622623010689434260227386877639443833081345999501850449173285230662059563228769704132951391308770059805680011594329854527448569613200689025432042741966558425331641232218179040433847662466872290087673314525846712940055974550838526027763338084052031138332172981475882935349818667145470037682090944277000013146563899218473720476743764480189414356469940232237520648588519604530540401719600065561023969976733024638176704338149496196513964084811333150342172817201219874663169133509340791224424561328035225579537539493995916262776952653946243263944177697822371906439986669215901743066161153164270773561069673664315174697537608053592150039121507919176030291763093624129082423985564016344882074578881475080190932454438849142707875936124494023185007820387988128483940992786922332460586984760787159111609017248112666814732083755206409181460079112252581399266772308215396935094463911015091553894588213077448503230754006631357931967066942663203595997678941109621660123546204913987917406207185565398790437579353368864876539617075350623290043863634481315462088004308117121445155365541134917178484793575956532618587865543629163422672682207804125186357875933219540336549052573869188619243496208632406571362833348409197596429287684386639332835777006498368939553286472554096856049140357165180958255522675563889682385732992852752161999071762514452577475524042090899018881840066835999886621543279211163595172415982924655652574470444846353577374431979816080332104205983868290245720054998218717563933574919284868856772252297790011937428541888607274750378076347937985147831981641999003712374586015663173768490980455093727009250038744277607170361759136609039646702489571394016964533160248142249977731375804252721524723648597492630506719049281589995208351258501574099159355181084840290024484490691856589040739163937179895867525566669675533077653482809661053084790006584476851033532328992699923888795047763952054016127211814875346133061032154140413503409879918844171771798343972411321912616702929201811195939031243219453315526717153616995538803011721955829134411394319618544828385357211343955342414373879860964701458488249463396502251099356986515282065017886336157782765864296916587535834288466584917865765694440208563224621448284132409435163576085391264264298624238746829329841194687601507171559823742354033279719649291578220047406304234638430518882970664154410729259448381698637269843549711186347262375712596291227117046186558967655358951747267922288091788284212300568143937594689801480890325736906040235248843358679083900326400272251606994934594568694231939848690155634412889317162861751464142135546530634613966163480920724509392453436443919953658551545403580603588068428102871150081099686174395188389344014721219156921092609018978531442413590258116216342130748082248087579723023656653018473414557118662268237768277202338209008462551388481098719723711164451717966328395050312702653896524623858591990769466144199962585068069545389597903691739258072637323475733358719814237472473992968519476844805787422347174367589329697903623338322531763615598647727445297458016862140144760725402442161481739808963096271554520378251127025376655990944765385041288766497889276407457956007040673204509953491569451583761910333356419205156564720853323271790846227891846744166203293512832339132845997282570680103670388335311062989245710302850084921608519691950636031449266295365505840608516272491896320039905775561816953628216471397921518640509123294859349911941650686449921558844877073033901839665843267391574446296452028911335190675599665518633386872089505131539493336123250538397260058541035273041506057361948407082368031084070275828657592730706275340974272275088276831392147228244586330727670422298799854906763411036019983265255902913644199266325566558593996010875882226749150026762596848313162098631403138026905000929837206657891945512998829316476249261458798733567668902350248186763403188221317141109030036234214471766200136037893908711975209001226247732610434421601529055778905864180182841220104352398088074877901887722009221508222398207271984702927851649860039288117391373099585951343447117818672860910545574390202823257896867145392716973456209285679029128382731587680706208277053524822425048944719371274532517312876170629882206195797303907885121465963966629536855565010900942457167521229502058826321919310831478663694752855499321470745192123752409610885434123611200049230110825376134965116289054655737843888731825258917182557182848242184359781008454198078286684027693982201936367963089531742021307747035975565009846329384523052122005789222384192607125331573785816993577085977749217925486656668674975381046058499050728849249206222143427959985842714061459589927642928527299207893604107063197238350655668039731315864072509192360429974266430764143196949040734524709311381131964800738338893236761468170673062440196812704924231447504273432327325790150326507457264453584968630363799046879869358282129080952541023569047626654103362360974425911190409922589532788584014929898679610258408112271588579501008538713380292917171609006365253814458992056303206326277571130649401332884646142788383897582078564904859661076954267255100814732469554234668033935835109713022237092629254654209567167569769966053449513075176830600222224812886347887036936842049146129422793577229703681562284198500782485673744928438508371357073407607924161593683611551127847250262348626722720761689936480310959856242689831056807457114861101485417360428161935570937026553220589821551556574445774389202590668361426291610082796430074442639937538419797060291606811246688267881373690347102428953987472385818171021441259673655495833435759162704635741035067853682100605604855472964312483833261802553676425827591996787638164492638128352973376320820818423405497578566109368805104465996824517085786951961540239149684023190303858964367434025544508797645549264196502109437421159523061131460664176545038617955207344863554903664760344225455568512016215817409042763829630747010697977723144025211488204053816155244262050336813688010513875820848060162364358766422932943479617707454542817978881067608780014286396657053991190675070440558131628478816905930654560453161018101211272036443847717224760121474363503094433741792019238404304322099473186180721260974376762906552789514998163670692324860962133616569772800236708723510912249296913579292842329795661842456553647145762227773868095014951270194976960894880362815975463292413441982620288287994208627052572164252012595603626483379983480114679947942829754702549412035537307303847193928962010610874769030802953082184142288004547201553470026474821145766175203235674454877037764115300643976335246225399003802212564591873377488212226522706973196640378650660581820885047142112769682814488811346694062986827581807499053233268798742972129406488748494523044081250982542155501642669163924588098166948617441934004303722177082383160541613725272703587815244812035232076650463520625724877980108066940043266666513222749745313970406930340146037645487751339526925834689825793733952927170451512231455368804133415258904576599069781057809107595162667616700347839599386165977521355904289404959859870352665071365251761306211795871145881237119475666607433198332720580900336368231568987029569918586087416258393409937070712970258544469404145962498356593000090337221487806815853030271985517895125682772589944454580553950202184712351693188033643014195949049419756048605699965562699741428271669566065205392736010911501342817794008383751737200580588768419022111833115421965234658208409553818892175800138181205944762643385302854455183175778554187872025607414251933672295737001514238555129181162347200198372823601227243504269421784833482059637500736664677996416039174740850138850274913434572611653798824788389104081971935147860259056476054093022844485463845259025410666829663756031160496034850304471378273365983522281408368726680580123475495376642798683031210022761975425912190383511778418606754865281266754658279938208401706585883453321732959761640322416049497241048300254663912919702422355674855700995903014168960081275855480812142268136655271029292882632445266642524145669948913397323907942969012556159897595680206168943633794368635505234971345843037534003536952070604614049048026632236508729239032615420556019437606399714309755280154105588102593551418637558521453943017824388288121849579746640602566807211844619773079679392890435825727748230058202661402296977109651562825176861019971054468168816004926713848078235884072477575156704907789671115786380959320496773520236844667470003502600555810240263792632540216206166849304963652659649374401688927124466372414734266003684470231481930019652311529036705017383012645366243084963359239850250688959860236560270643350593560998397202420286645871832631655860978010141525389283093277004721776568565863453865269310656916737116227919353932699544759318910464167480176016938929284642040747423977040584634061179546319965731040036546949161718106676431093218994934787993579149902849533267194978251694915347665254801293183282315823713051464748775791675452104572740619742417250552726216667509171810721316910595293560715825345782167409693577266937749986967661090073998325763142415202985379497551672633282428144183007803278934436610005344694521503126943100963930782795024020387637420297053888655196375361992467959949334467269589980030084721448131650140343769035909741336701865279268327627274745936135797868675044252016953810342889039533438071562779070845292652235967955186772090066322350472625517473068390028871196629883595584320624389245133579136890707024144002953637281706984372003934854881763283756249507823505529770531446882356369506772281687182259784426267921486244861593739953307830822103182366636607965060588025807104029212540009401756963417785626045918190522331145835389561408364357365802735758615655259200166799536457598405202234732802767541498225916206776518922925273433459153030123240815442372937938090391096415490203338867596962878898820605058304525639637796542383485017317183850381460896964772916916823623141090885923586459297369807742766363088184007157552038373767819245418411366371459159197448307760712415659599207024991704912443380556997817349891692146206344928197276790115913034639928289805571069496398671397509054595027547737640819259184085832418504320348612156970265074939970920518295200634313539928323538903428325707142305062328777746538414666756490658374884254890946025356893018726301659098759812684854876827021930440311290301816296964184014375510422191170633475643326834673991995890055720557040075879054467100993259895007534814059309956233078839971707809704790237776315912840087442995850815872858637747368498723634526500079740005068869350697686051930887152824813641735202334770750758835582792202326112353620298373235460765663047816540862668544233789395356403242297220744707887908083436201582674420828912547718052424066358128077147248512909338265224319689698621911974903129239829397834369762404548256668110265666977086403400898041633785542561236701052619591897145108998721271514674516733501321243200243111130602642786490813670499874231618462690778371666152418126295685548605965098649244672733120133362587295867124232652589814881848957602715090559055538131770684624604126662003106967784364117971604787188042439617253832971730133439924441141836185217458191501623904795462241441531336891381475071440950583214459177045116706851142079811567978162791364763041352163720704427842135844324507387909690045248262743277193859763184896633817871036257789847147979754676449600323268811398789240220888163930570087160118364441047053804896426683944888178152110400583813158519714576311509361501071089056459726488082875348226836996792281637658398262031242293838739889387592688656876561180542598884405181643166636448351864464418785144850056010506389209468886701741927988078977913799223764386914141590734033321876330017027849730420839268698441908624606394945524773208944852589158456052846874973895115661979609696106266435538030594358397786374069743055001059108969122741023515545814510335523032799327108871935105876352112937631931953355316147358279586548159818619846473121433570469268727002925253591933125339757915731169684288894513731341021497326880593805412318171568688222553264034513622047965368140195691851094737677834542185262440140024159107390874356451824785981327759298920503657699734819008182059280155673600710181662766316051730496362447296029392647758111631392423048855639891688648358200458703167518315755204862271245403685796718755750132525672157042443672341351201396501627040637066809293196879334290799288551588084907025286799797601509100866201374467188242308803329486925184369214633322624179218469495288785996435071686183162186738013789415304355814530666598428678643289945406568507609114770215099096414633657689643832715703273311314642172615365266437870815995411509366590656186172710942204116682779021929223384112799510486867699956775962781094288711807974506853417181454676427829920351987032149520711762447764878716478595201063553687950458104228270274292488931673521742178614728325182148301940158999078439578303828837913664558035994095803621671817373519807642703517101595267056594113556032532200837502823785307645170825371058528174723514658683303427420324969574223403084297886472789396013631094717417012225493083221882510708539596473137963911960439767950862418670531004495403450770889988925669314160229226322718378253530101024626517787956253688551912924526405663056433492485969876469914565644134893171667619175483178431854590852191363243929177584542161881778052579845622150823259947871617991465806213399740556317430589961382097337179929424622285896391762780576140437065388550605519141911459310018365106039038198025171590165701653287789510083452883038465358039473050994970720710009215151652863473834649996109689718901529210823341429445999573509534083927614324977706959723613000096915124368035685923172922455395229034332844722514040867447109911752654213449868033665643385237676051744873569022467505547856159395946069440428997015631243098892423247262787795601388624991765848351102253250639692925808021437943271819639175565094806857599921253702661771011019408539974821271917431993126708752270839344728842948318692761736922736241298780820435039083162125989940146661808016801571676798504776498368396409170007370702257738308234771546596776661275770916237255145904117573426457704576690763820546662359595275667630203591426462937087189065882124389279755342607302668249623666373033244017277218030650497432812651552417441177337979329532403644888717075665847527155158234903902719178505232946481970632279044582775209806128682094773281180896394502176139305439684497691655228646846473328217203546907936077055692393680493745150944235389332826771773811286658324167466825521781953653118624701423785545110488406224566774270300388368461960946682430742141054797041990640374941768805626200309322336466839361845452701704915250420599531062334539371787150995850649942348637101362386993743169919702226671777243437325927082565175382882579519409412122769436797147330546268360284527091981416736955369954553569067061133758842859431097823564843499965392680741641921779532858795632503302790212582739870148041124107464332814302201848851876074665096074232318176161444236566484580077909144419054238019490436530127856439845952685252829292117345105735184203091793076391881811651817874486861795084418821250759722942458564552513711718160444431052215901218934828536874848147731109224570759686774678024501889477477488021181915312319693031652715312151884593038944704599967708133728055630968290584741704485708361546273604020780074554870052391201279792143048356469354727497345481662277192217159190646960091037438369417198469119884576845903656495415862059431573010161842776366801085290334213610298582904194555639855234232318035300545772956999499902886736740733777830928592052077567839127840309487292183541109122100352928398684804711222228814105369840182604444477047270977862019011230191677519038132875789975338066256177379475998418676271228110596474564966527884784929567917126847507493801071868605963399249490301122268783478472421780397861278406777047162076477599496733764473927807935661398547726079749339603134358995334966235208158347662919935087260569964291247700853354861716026785632915058946383784997831362020304630189237967470918229844115825927473729270242763616661234367124718339518943778143043134598485550295345399011287233272093124068445280754049243089559865329803654109793769229362685928779349553709984867864826961109666828235620868721269965190344898935048478458724790795965206333420389737139533551079271885996198054916988594318060118052967392086731825535952593465417375125885271926740701786365237121523011328422260537580958218584898321026327226511560542719625569546144090935416068646979764797437919923893468790616357101258366773191707972584054797162852455802799502259831452326209820983425579021219964205048393089791169935438738078777374620758646037552179338822655017800534555224507980410746239184209324977718130106338141053245823602886902998409115959713137169274490976272994936548764620539301481835256314256484852321546587613777786513358152747706866660286587410524030383647912082348484665833301317796951355449965140826605071235268724966559598513002937590070106252111479461057431680647067704451652713730912642140772751493168004547212504433123916421849099680100500931115072363011482496775008321281770122852394758274628438414815640582637299893014248311827081212083185847093737822863343113986812711086624656171754888022210427072211105090936972039538118499007790420349767044755568840083418679924940528042928103234519745133088391558806798970343789156822628931489416218351522369544204973797870293289221807839240862162544999987425882272956633514067172306232040134023946143708373745276943069860535297551644234822895667059280467193201825583027163646239508013779633794080922489560377837118052952807683315775035828940760861245578737854939743088051573080168314412380134500915611424784319893966088061508422097260769924415870222901144586866455957077488333653485008462251322587515810600782925250448389624689105371468816823623485719136347683120917643821761474291816676777371178678754451258363978174789413083401412663485528892683871938022080334683635144143590581677964790859480282187889568522724453180557342218553939227731180450137015220192075482593366805254604775683708555601990203401067308302115634483946691408071327704610677669458210062863071853372702904682944479863029865547982934859172701496919543352936124225774710427077637744761322587755652209193201480354422624027720746656699429960563370063301931079252497246725447718116785148461844016348122563743945141664998595428902290974915029913264644553229976236361895374059785194581828349635065222839375983628101006757812669319321072666742479741146658885131029200802321134399735470482630734121906355252218940967287712430799988404616158417979085342801706177932891199300768959294417660860407549140764889777808737126782524741977401930007248692629528630022677763415108626288097330284525830332572493861233662082896636248060565592373486785656440871745092986738545687078458321170082584877605353809007131808113848633321954561238233223318134465452494278173881050454055496059564179728535924519971874272529429142465357943732333990390700856207430513061727211590135437839129076402085547471678419612300905334669692298080857582274265087205075207912430086098206901398519165072718748033087831768541317259610351344378557748203278654637432251117704050582573287862809447889708053910235533480006883898664348201103728632622258129725012291590111126801705695385502799541189101629884178052351658031253897477785551780566381337120544185668639764976969456727523837284703955174695262836237902013700049857060026513679765355256488460958908816178601294984155207036807837838885559593624455714662285958368292490935716994182810476693066535767711425230435092898657324865347474580990982252424535564313382036944375722217334204074164929886260393976937875598254846062238909344660981326996883206503451494409157475805947228243047295652317232162520189833001696705267102828086040178861219716340158844205506444297621722803114270377196969225199360742013629285913278710477697983341620774789019689855577165747129854404110182506158813864233264842511878047116687704805344678998792062043845591889348114730889448786759901084993791389616814103441809391357740526816738648786388176822095751276021381549513659232983241396537896824908741575490924685400655569344238203044796690247195059966141146280422504103010245882023254041331925462135118237558816004820464230888010514555363186300694115104607380917560251468297621610804614736712324760687198795667754176535910978807707614247763614110715838170639245922298838666677660781360143018361623138642625336414655446564783479645720332164794473283470555234541451146439383095415170070129549566187392606528068925076341061016521945783381606943367965275201866948386615777629135215778408311004758589172855451647836296385338361336036539328006259041219213130153134300042713378381376373531238620009679120515125778465658322227217837579521673937817054258559191457141998187056562359694467895728790851925558574529157428129339139330860110513240984932084299740312697376446305396771123812448223353931942527103811395585954778118352160264505826150791066368620746837184035021144134170351929120413377850545621416492758227180416328235952299408067797273153459224845015522141073159900948032813968191671807019798707035978416931994393894241006373523142003252009939164711248272110998814582492172495075234009550298919566009201124876151471268030320180185491414055074805026989617336998845010225364230841310617861004495816124359101501571582194552151178998641280945662230885668152535953985318141866171668222047319140752472400957591392532583645913416484003576613218807696595337283549305517352904216658230889535846488781429818461761889288413602718179082203507919692837814450702289005269233638719826333179531637504404017435357106944346669376628778178583283660063820157805588075457856749127094723583290260755808943293900523316431448454740665274446609669438581010948317886178082880427515028821861940485443550130595748390865869529122437055154004735968057736002007920474565357722156686303462474450857337924740466640043405371653190603190628574079607901683552697892214747110703416071862965713584704756232412488928919350784678928235071544456778230147824526383059693278765071414990427329511822071408770064868030184805619203265941993611508859553125138437687529454015361704193310386273027901804502983322591090247142972719039580227151710782982678220260439760521247704430709718194512214906696721499249507327666809196773334164335073371414682466866917710681514255882624681044406576001173110605016999078102561782638947165875820119540118458610157596374842769142490693802708077495250361357045406959021278354829740239720763632311726649373955921563853542076982110371619175505463395966445717649065986265532325808871670340339161614369170279209474417132306760957619239013228398956891609191973756578910056840407497139720825571061584945165873934168622711285173433118358649279348105017422267409700118618112238376194494061658397060672018651744453030419343104724558316197230461746388818909279014599828242194314588519847423879805564273359849925491954463874027411080174211984974908961840810379370207781931358337747329882728285939673995826445881062875391760958854055767931859924015703619495757578929123244823471268995395541706932521348796833148429802826958975801637821217720351455429273928396804242596975179577610565529723035633245279866124221930118496204862320549069059543444167117746193487516643868692148497159719159507796319539546962614531708241975745721025788053871556377057360900212052359253071493921539359592439201621271996540137379134937627369112033236191300769408668216519982086312473458277931397560582256246627680365603017165317462010174251268555152520679602170223645020384831196641012610373470366389294151192263232319634744118556899117367376493965145069857949765822816508820663378483028238814473952830242758246798356720720348550349962280521870528300004416374939751790040687168299682508520805647103993067565932719091402822944910590976564474866805691794207619680608409634306960614305608220247631498667608346084719112252793225545499999621516024236663020606990681932276738172536590973036737286325401348406117719814065207710588602880582580748047485610098159191952118744328510368470414876692658456496520116999574825816475211364855406381784492282817093497564133528508725293190656057276654829913384512342665240045821151237582337110438376071354946563053184148437106485822960499103030564398401290894971119739145931444955387831163635711456975764974121872497164329239239399952786701861111431434132083204278213495960529736930876425515802297506118172115182879429932179562590105430004500877552851361051157453811568063851413974403441804901779272401642278122897124226850901548991765876285650428707378964822200788087334151297333158810250073586091432760528937174674355786088171366121135463266312687541131837445020353100943136530523526960207118123836385458778615365700572471260043228028124972606878341327299843282387308478207003944030114060697706812517933972589366016914065348601449071734854922502395253173432990827689259721236142938488548452463993504202665934542588781056007708783833624887919729000943683495358890459671870983914202378201278218647720002132052451639689503067625233696555051160861399050041643857706933503980982706292423853310816571808597247750347379526978218883285084628319455903886860680668377887308070817910239587085091795445838101036371697423286011084464898449610602231964846507514483169964594053204631883172762739523736820276331483266608962801204485950258072942164317714448957361328408985404366828177529398010622131756638678986224950654440457390970742995775601120205088617813472173966833499562865240050634761037642003684918993243346651503060372065574750760682469290740907522421570025491329218625755649337690944434257019330673502456834940099871282397975196790559846658989578605951647271278684394009153512126540612536911349441336477783567804107040089938450293319261833360133287753628770914684968016306747991121123486865619510745292914663345662236351317768425669121405174039902543012234475196481654138607108598884655162933524441119412566649556048922965835401465964652457408431471660303861749100696306726554250918648219943558562172698781831425708679910135006153409601752748050682160903578965503679913378130182847733206709492502668251914113177024431053079341729654629154725810254001018268664713596084942199847762088901121046507050377744678952614962132112569205364448521438329389707173888343351400930047046762582854138615783334320440914010931701350274265697849022048007995394684805673693898225295083830275039513752383042847302607531879658598262749095873336005178132463909973276565354185476754577423992033248998983673464161703083208628648029165442970678982140271904608973265388967707407297681406251314344544953542039488249810625221561399050907792506220387748220829105643563736651691554788795968097495937328394923610703031164547303316279477463698374717095842526330414452864776042049409609814621490338039158711050494411219862621499464738830877958474768514668004482944083506395518483178940224684334190229848120457220802187682977161066448724259828956047019076901854421600558595282460701671376302030738239874813341983528630790489533960785023350548119686225665968168572786395272732571982884335838552132562112308762949301988953382700140157816682640689446279678616398203437127926404836061242895138573178048657735400190537576111482397462572917094816094979833258367153255192152320306739105679940017395615507606667875764292791383951191571581694214892098514330038874052163915620099352637651575227627724624273079844885365748250978106822941822038274094102839596149198097411849718105289834134944036885531517634041776466362194885679877515746393257797775188165024538654214641322802523302064042113370270441540408952661742356300944229365651393319180009966766414596380474043246265906237550713021706896556597959356274933621101134692158054318270806805443554602255646186828921376162962222315396241137546395275812035243376982987321387218953135830275192908873532753050597956076686632186052086789640947579121774975234026597147129400258025978818674622117263227756708840135744668385260229677907915887800318912845199992849358990073900574800417202566362714726701172171323414840271675705907308571362800649897894843951389892171416938387826059300715082317512795762873151224638165534262624615150065415600767678651023608155218004909052720745827849348517134853354292188403743211187196725803876401872466183981443689368686106525897582426447382339133912467382161151987317773761118705655595518839289544157293680904102132219863056879234442308233495768579971971611540609715218139597946560741769943796965621650791584383872675483806027585345381857152501163447563373623166962837008460337736002426225722079707041687972958061892669828412520736338047782665157898446107877602382710238411020135826567599558585344081683054017554061212684036766032437068249681168711497192937424236640227571579606644893053230075773931918415846916056804947900239852240816195571127759195549104472623335055112779248113369795500502061215079446267207035414162494680298295642691949675304217885719158186796496498523439511360181264413133324121653761119616397231306386115606389583251060073141264448306771931660724927553092379313284868646374779145478351098121045747180850794292721386354486858489903976971679843852486746781047796968355511392902079495765057513925080750817470313004580466973371114192826906790557666472681286257926703088107199895622915152281121415275570675153487285997507853185610791249090916585913846170490898080056874547921089788910545937878085571757638713661037959716181611431420378078139155883684521956872457817610599583200296097414286191549118018745324753188434407081136301893620162350552888303444165325909743311905720173469672063015786143128002085483554021390565161851310813400775828698688098048271628233265597278505727727681878115827659596509570929295614313001155021326156572779368177911192343380415996293211907259754637894599016906023041311608046265932437862054708020243521599343884183451259421972218213824045543118291986116723838636350145185049562632269201473561135208664017810237465684628069741325627708747176004914543326432351921969072682078912007870658264825002606175675983024707405546041871213330230688091962733154379847338589081157928616058526684816647223734702243432901674663313074022215051324521877481828727801957759915377889590916022282569105598215047992040866338791896744590218334326052867818183323471023985874038757223960290350950363009921312833644678313537131984884859905337869521722649539952059008345962024017387413560883632247522703623176490490856171045401549619902815527318869587972722365337667816145868691145521840801006004587543489669080326199015385096056374379512341754484836199320463164998958297067274701504226498147413855927911445016122743735710319428978948842930854655648287999265407899530816729278168265311570781246292794397058065168532528498883136788648398436977605690045381868540792155925095493661244680764058557343518278566482212708520360443496214207730203468487018328824436923328255302458980028933120028103861508177831848516940422583498873391600790578605725950826004128613040081273520610935212216517736899240139783473928409783584104427665803315702938994425985165416595257793495044570678637721771727710273624909816896192566325398337672246688143119654794236663797918432424204931112636665277226086979527854859007273050056076084347273383706601027445061626240761973470973765519497523724526221438541246224836274935366104224896574567663126195019621639799942226842553513035987183848771453777718856667281270058281361613054905993338664256809258258013229277752479359105849543892879045479808104410719650976111356675591284170177442959476348812738423651754616946121133587314556454635268619950276811614595815714189962604222126583339858830009026880083630025975348745287047799846868652642973959019161752370149836464461836173185583789154212098613011789030413289680522451054043678649662086006479148699536326521235116645046833226018358652009727096338471949557099481045255994993118937531785355125655398164079995095637875276225484488309465662595305924174102807051180489879720584695229179714902140787752162481949143578943022081298246029888484297491046890884095617140855882996877567525999112463849463016383203213842356956958057740670002482753925265382223058710642231909575360448636722821915747482687515580162063791621484184705095915771651849627505754349730423514515601349572573213927658639382190345173013424085294185200273818317673602510621410907850811624285581305536851553210046956007286669920132174966212130349654865979988920249434356845003575056966221202072359742388643486530049915732581845007568645833853035066839744994417398974468592830587643276629821457839940601876608978138838127127487016367723519002931799377167438414221473319217504454445314565197179531769269700059749144561076160422717997239132314196638713337510035967713998458571420544141955744680821956620842189812835938995871958176207897832619700785899945881434738169525633141526669933771622730917130598435478061537531656768381811939555024497725344839028085712312918985637246142298926679097153950412715012247497235549419374429532986670378849634771115906212566812820970634562036071527947494799980310000390879483575510504744999040079323801972642999536190370788791587000366973008146856366826811480141217016632440365893747767876047723693349224477882241836175375303537989458403204202208797002549697382550793137692384044841183267519728257897298276988504752442714475365805184385013726258285492897956637926130852464219902577791644656636601165072268931595559945662978940085826354051353230862449700730988325976067523584415593067191064205522465031519088934671896207424766651724410065691249560711736009068293526248842356217397775627534000647781962303651534266488339728228732550327334109848544388379413582804426529692672076235241571402468707541125601806624973597816763001774921825579384220162882826750257108187974228649760951224691853270629115436847463707662232395016468169112205585289888981002687415013298803475460310576458712427548291125741412861569298577316450446247918064227857488563918942191454742667687558595922635956151866171667912429042814938263690348514397718424035071526648234627343804594750420889414821487085076147774701013146612640608097203469846370435461577495438436528517426988538567443859296117232821639089732280566907471044259159001043272515011025484100038590804020075271170307236353884993117568342650770444719026574517918528275271172255879525841535003917272345446152524226227026470866888829886940592963209140476805157867881337455274727632854772592464796552925165367298189397978871631892147672121421598803910737647700458535318159902102533525210941317567755193407929812008004144709937077594143200183171063855101534335869309875360754739100002143594714877834686366996131557350019651178947154272603548645470024872412098092140379588934079167699545393527554053920655866155508142632490014667452522230082619173295041274794160572487288942100632093032043145367793263898917216899297291389982293638021678588876351282891685302446509471548852025420164764557953288989963436322617511524107732600200311080904799419139470863885074977650681828628059749573821348871824660018456904671256700488758916288096783800052334053616762516738425356253928899005527410171578902650933612751942980040064761095261378387329351627220338020462405887948017445729943999399037803946425921835555696441810441393812051736056629254345229371541797966276415080749216296323086841198144230239659862527404944600368384134682416401355191525894386381849276397264360476517265284668899342883076247101058961979097608410564464933344786860565367592885430779124904633949164409528721816184850082188250804461027082596586162638097167228164560796410092072810225440069598123065416641168537641606065256688552931437493853311191992786642435843090870948459167658091157347707715485551806748812944017148955738098732572936642380609886218834909819495208095444450708261469220108951552270710581094747090600404479631227569040434219150499236647790016282151873185826965034707491693700877183635745889538868841912645699976593926856475139731202894255340094485250335036473475524553632240126006490988174244832996518379728458791310172324534911351143507644468789269990236033790878918978601849058101468765060895403609188344659795983645750902193495630099066285928234175531323757184284762887285816105947173998761023907301708514189183676706410271616886150652969760399004144294672162698009682510454935216482753610510846085037765283734322179424489933882534677545419765286427353143402208937118929259608641176727146985815275994563013764776484729063064555244153604079813032703805492239979980192787228207709605651413785105437351113025271647461202240223507437655261731248887742328623033685068994687783703601708158886948014985184693432228157203863793069151968706301129894041629030372542075858560415382300602071721904409954776436904644083600115581391077301514368838818540595227602648579026134453405804756621676393734589900680175817656780712306996255828763640440184400368770924401097347164040523382161998548520364792002362568252938222374728757556589435901691717089681080819910960998112651280106545516567057390314386805037446071816743756122024576940322374352258729742378734418107176855620699408303331717742036851615947654151341513444532961206835902117817285469475172524179788928553659546209173015791398692601789018143716679287281473082708265279144454717130233342189728302921766729845330776203133328874221296783119215696089650545314941223085327558859807803253344099820924927398118232028650566475489141911978987545055821591100796234849589497982631846213636285792862653731798332016135192238640158780660686297767672480793834231280820257105868298037909974644527740807086011989999171913420992673769370154436562261531949411978114418717328242043030500520154094141361794320185112591856866488441199457436372323064013185723895778199598938321146920901690472936586684590271268167796610247751964079629876632612662988492566903314612079461948619188912672618497708107046843409090529165443291380617425517230978514288279571048184830398079009173136045784838358095029983976672136523541816797005755668964654213690284373653809153495899940277670376668347051523129942789953927842095156497241749378053152502821764675720482125810255423758277400985934477131963762499428432197584574730491142313030074702559901966433248580445466090838864764722732639303712414535965016935772735612139773735332280986844672469496121940939495597062555763049876329867885387952707572893094704540697813063369298135924118842236598172429601037597510422646540555401197000913227301378646191156578653700207475670233317587846105174075909540875968537686635608528852860143804430501648690236396533852773340796817550664400080558417547114649310482443294019308769026234626381131176872670434341569689141866290974122363665157068392705967139069613923240743251384344794650764678124807849215474858019014089684119191500569971284705191874227938727320848488063914581569168191140127671833655638628477081672220633162845326872575539173128544382271459050260406313131850736637333974459962958701866410355754412836549890365079761055660092729370375790161010561641387254620459263961918511256976217501278100374229000423268452607962627342484436910806205924359374150963757518336807311108812019471355251770375543011789477760545195634326230045632439044075438797617134558140925572930047644452424794862717428899639255680898831319809852230846134822693808090926579817934933783204920424226838100854209440374277664109299828915792851648104119601789151403327437008925804663623583554823356354069001530581802207229195273593604279447723722525827951188757632305343522508685528293232874465785114925736261770133387751313717321685872840030692508886219432240257921047944304951866224335820971987997485674837713900052667329224588575399676418967293176044703329552799555012327432373118453613366113905724261104495817505694863635257251129603526851441154111079685240208132738305580352501153915047252122131212173331166735064904371110837088302730475248180166756862552175421584325048638848793590248235156426923513902617003161876904652932438358371451508340787060155274013708703737161694827474575506322275596533924675564656323913277622362213160574978813169138383366030472836527049720631535603618273542038655520689273882350056550117347388436635770960582427109697149564595086542787830311477812968426015953101817947560412827831889779402293574621728834461897277172595487881036107858287223963177063241687266553873068287871286126036145516210722304854206788717567273631261643522867581314979656891634745088840250147714630450145726337263207607242967455274790114701523193022434388695125961557660410134312073517756754382257314955234413192637749354569519570412257097854009754582361721716991796728468947204670215732833019604021622099239024122872707132985064832388027173536131761484448438526556010445685286112589501508002138916376682018830238470383550042519261110688716144486669619284403520518290512061174133330362752617111041910382738940704611363362009272253587442172785402393254406835109311359562393055806349692614400848273180769394656414247758710157989410145143004578911885167168152711500805482647090550541893177105641378492839979234030998446046242260671096569641619432672945510144690753903231039574864490754376313931072081045718206594464987201128105112870237433269974220700858382548037302973481506584683687961800686022332238960025313799029721906539775346156577196937974834348622308329774489019297850006412328596804553693610454139232696568943229928701691759197420501215029638777716923406624226588142060600573489576922515901436994781379127824955135597863132156833956716411238113327009913827995342929955520912559085864106498635316934513521062203179722860566850250232385009909136486952627465982407337005570090117225718697982950392586847453352787072718329648370164680708086334791743740600940818496609210462113013249082911011347685374293596115673710173454580954104421885330244387957213226201305691055205922435644084930257457972577040361263378820930999884668346520062010897257730524734417245414544402811217331836925455284462351559230925335662075016222747958016641175167749052230455848029560062761852788969901735279693370462191232608006597859418523829574932847831919483608887164792882958428147316090348577281561942887639929189762382669225400117530326657141608410183047018262784118864579816038108100355008388681485297528240929618498744122856252948332421298894940049689942124550291698020292749488359273260106757272467720259581590381432616880795145076307982811542029687388612260767950063905833308518874982997736333515213948453510849243883326097862988106733836857963747808927521141276784917095117398564896224895094110913805018220595669262265279638945572474800719342507276804796132344574637316334149195924233987550042879777625053888582932060601480175695377891981112585373213823477868499685334632790201032439997248964720874640673938576439056845667137726439798462158378505407171848814552673246237602807909844367728509078686666064225373757422354370942703395011255861482445397342090722686202851844745897721798476169247735101908765142687219804581335637953863508971716037545593511273252985604364373372982357787828792344559949401896198468666669824067926069294446906952728841468051646063884423205575334172345934397726735644851721034758704921698059300160703599748821469457294108142669213797559921504273290984611905510497190036911652688910973934302161185485499205436602737165789519956719883655079563987006546443009266736480377238668816103335810629990240359440444198920727610467288772656196080199944818101204094407103889254161175129354907434756283506100170789009065349849621566753084788473790766730867631746368642368658445797790683430329475421192888519272434641476130316514194097750436897471786596180362001047953989145287179245352611863879322790652959682194723245400643500848249071965408725341140023548755054625677392180364982641539616289441242513501841003363302849724277058894188644103976078377847745577040202861181458284077563591132299172153464550422310509631852028474026352805888098589443438374641329981079741786871375111633798167405245028962083470197578989049354403157308423844379665148230818246808197951678578110457836039212946993455137155971235287221344273507742805199675041082083316334034328007778757726243697882643762832496324930547405435950329039143484080928854051993691672126593711390301390070669925208478149676409496222056907752632940045822364890450864402220459494562228048972501171568791661263315884990930223286279396539426354452593325737588464750990596629787288439170968707187046562205726750782695478285432084770836617478013424285658738467392958693174655819513695120437603373842477161195470749738997551352678668692609069871206873693763952906754344275773091403662968983623726383398570990045756568389594577097974586384903196119516249931186400342030264937456636938052212220363822236547229339451579263182885323901344938177408302609358085653903907002747535138974471569928211985846552906994053832350716580231309944588443656074253549721239758930963071936252081406669454924074054335131868388221596570879189452368294467822375818692338784667590194061813471894668027440657294791217744527956201374967777893076505639477224483408877920233020872611956611740994060217043342370946254284208098839995237918129998572103515652486983680244204920614412152629696964081756124842344016159037893991054324897891497920684754445805515663602405024777948346830763362736833215628108289003578759576671470410763158535169219126233900993165048998943918656699464644645599066134421950827530834321480570928125720300881199062366545533599807811458073460964367280553649333528484389513481495134624419920554905762727061139444267506086170964553861776328504417813086420191978250026795430654910913390169062466664237982322032371303003900604742868341189925468453741439446042499759596063471395803043493887584721945758668125248591496080902612995495337833416601274176585089612456734339597760380805057689438909768472203420749761132905612853225064540181048938240325787985803837269378030999393951438743484714225690524459242627077764028476634094263928885318941803220942565734496519389575482632197145752278218146182443586262097907376413285828979080271886925091273705920840785718467004995662368020953434440031523028150756073463566642245405145024138295325467599852561196274743916291533090870212131045040192980342702263838664457398120088058238031769830000689524787779299518630979230685934305482265068506269380739106734694153110570078362750121034539163989480371485243154664152910075331585285147433653049580843151362691119898658881924333417280737369906666150012509229018593379352789142549169886022809794696442873988650483546557401591805367711019731439498384425285620048243572691914500587790990690767493796884387134806391714262462712444529463706049427256483507359058009281677694696544866610112442896795688209733086544019314294127608832864085573648790429377305063060844755593870184241083594160557179510670531786126922525043496231775338203959933502543877475228860247466618936934291931035657695786815822439275274890571028331010647925241274916847847727768652502974835148247679250777967048773649119990971101599830740848493911235402772971807636619968194652262959411692363733034200920254783904676818690502171153352251969420351446330370211413567501773109188159795961059919359355380944526971625543260862028590488437454858230407521254148286331974791088292913229688273299714973761046774870268639057598748042671644758997974454304602188011863791626040973733977124229945782116346207424347318478330802376461283396013373996544108407625376588072988161440837233237360680516899571867712950932837877534320034673557725013730895489340694275860603649188556213239316287527286114415953426695665769664188927281517811768381334251192218970350291781264298603794299910379969699172925077598350112409589203007162720318284174892366190693730936737813697914951883300148708934911562149406609601436174982945873845612962314603622913318919818827519710445305389654836345077951884104067178902195338952787306555407245352640744737080572960304165305762757268863212557317934576733914608488684336202572989303038078270575850554969908949661884111492129300042895767301147620691095849999167486540128434613121582062196384301884429008815282025923568825284021845358443392057153825191946211982489762647067586179649186394686760515498182725014406856524179032601239596191609523386789678031984511575419153648134301095171543145287295626707756606693079829422425347786787650326904696348217349375857008934186412022598324450729644821351602068043239599585783953708884996882555044547766312878595081390737157766535409321505179653340697369581782168727387603977050175787924482381658478047084366704095693544098813844344977946248435159033189074650778746256040226877638266570519057671084053009192922567256951115552048597489058806316111339686377061806091337693892476529570191206187150039515744980928621403033805390840928988544436673970077488621634964508569748716490819930106872316454360431020716377593227130256283430514117764883514359672298720826866493594019132122260129041927964186364810963482417108863712023755985799984061785402467945662378943556255238327261213097575877936343668948945540898991641747031919792098106897039775251783251133695602265377596731288529566876784441448835825197398246621972017334660024953980441996425308689362867935052669160696991570708509882626697916828408410271863746122614960661118827854218294988138012705139370039183469620633072324769654657861964541418639511206357390948070881927013513034746629020107748954024489447579849361857086927270695480695355767483783584968486985171970688867557024821688681431540197397130072680521622513478487440030631831546438748329170449663110673773225616194622805743055884579989736497016036185521394736648414975701398654797312309915175434725085432333105326992192048697126026646931679536117754203421198107877841176146590406832904550936737388957503453951783810527715621634633059138215313431694289358830854789510196723149597886057643250006667869599801387864109335148302831104389080004913278090292115874574850018915356912533318408808033744831322716087394640984664327616850684679790310200901893677622962946234018789763068291825620416017797214216692519809605420108732969916964261386494893122154289155721975712098038035539203425015856597502868597741542131558373583972806325065469952810191736786947195633571508523679340984955989733542651759227387367273359934507211840983059978904096232098149109500852063208186836439775334877990264383176253126017850457304162154124403779076920321008756175081022846251626719414919466277496491541016956671256970527359841161423053515681302855465328631867492693364345589185488368518788192324415396997132404374398730921929201164478303914694755978330620714334847700977603434153797213861337950248811231315307286480169743409712340167387149995354883342753039382996515899534534867350784099960651576433017311898889914637099078791268264514080036254091927976742664396646957081642969174352931760081891351243143672537702131230591535824101269540929896001105374790619288624254261967748225202178385304639142218651406216342889552031141723420392582663175126904404377461021154457340106150866002262868642507920250945482206930217655006401888323725246991944703883911045027917973090479653702339134523233391194222951789300580749907678707920308626537219831782232414554841221285225701793504831425227423675701844499764735049133421657232582793721994712350749192849632832711297093428719539198601121996478036061656312804489717379327075410926623770717643810819888764487818688546283659283816892415592894574197801994455605164550761748454596308161091750992697410509831210900387535867338231783127433579233908850588266034377331412657679674146295588814386730092098459469959766342687926851129815731072803258226639074813231819773389485372132914834801040408310442183252195598391371122615871610178991284012492136016602823671540474738421041485458340313020545369584818005268188438304948893425849023151386870656079332043850539818389645938469754258886085615787894325070617973562041555851259310312598469465974324488964655954507670822399442456693597926038159921806213336128417181161789477860952516587552551335771601107622546370194562767154221618216659803515431737661772489258570060308664149421546993846024562195571255403360155475705064046734070264202741416758079256196068217367999974730181437490779877122073772490027721927812041826059265145533023496969039994446050430623653666783091799332688643002728067858775960121138634442885950953505690505207699717396286670976974795854623703314076285558328998886409467425157608285685972351970211148939076117714042522774746893544759414089284309047727855027122826208107672553694350231134079594171976170588091618618607345181518621665951662762746875055520538282179759418761633511858952035236377016160625291042165511102549054464268540353441429898356923618072824968093252784066982742964216891043339471605940587101160660830286770875881124868025275444143570792734983865148544072365909335217061906509141143050354855976250374293954135230304680088357172337091083423826103395428991659099667675417194755938960098926342573743116552489917276124471171485394803612767595138197229298659894557727823021285548207579784044429344574914780063621778294592674012211696015219000157868809080341750577118177112543899459732134114495151410516231702899031998146596509789641554896921643832175948504718637033705929722126466015143944983829132093599273124935437832917528816520950903002899560601644779252210966889249568503392095259658073818975442678226067483834296583342874411730389760053938115476563500782508865403913088642197204209449607512938336196543179459646226792583523871906186583441152779864592579803737729873788964249344625161313190380971552525738297928145887716386433267448913833209562997939132865445660921718191099728874020200765100437380229013148201732994901050545700688844604371299760184784328031916602576522999617152190065463904052443865082786625031677129291444097209925233146810775710232641860267528970676641729720277971791988450635721641575802394567957102137553906243897179297288427666449270370541882813488951334670460720482328330710413521325356777123891828008092437022694537569138246756715890693719094592874883084877261058335796416283029263362835676356627207734548917501749577882057624772456709906926463539102989135253145901539302371549277812810741508590253541259294833889757934797625580226435712066539797787793436514615490567186138468010619506659492491226377839586184324480650872352933033634100793897515062725205026328810585877590592508269474718516281270461214978150507102735176033020331792117903185811561402956917138207285663525394099830085697609362372321702864692159812000121394510923658721914163555020150491155125072739244990748474968036778214935617392965208749660024981654639655743383922059719283590703968674095722025518193350704511795269537807160650960036609631357942603354939249362125622405805532006218639722863582584049839043495763266464398589937109015968839313558585707314498510490755927615114731723319168492101217213007235936024669814348818416021014464983455570839661395082984212188612044655710670599025036885218486551272883224849951671724867451768797836820027129470631054192833775014015718769464370565907922459819282699418351738583453681241083396971966577251948319722363650803483168257721147876888506279278894220490155179861498236542191832034447189770284531683137778162226657836637116923803859811013798995439131188856834605213337706487051923122169710023349309411561387910206021111320309055604904075834206507083712769990688153842574556916976907884255272276571793576199446030130935287167842821880730153085592579064792175440727244576417086083687324203886334910195850395177338309479036535215508803161110489119444864264225757083828780325114006813923558131517690893925049750514616197986237664235101316318951845435787041731278380832357200104822153870553218074259974153072176496879427145201547293292819915543118274350019368689166179379083405353186007943208969933177690601456627074610199071774081264378880402615584837064483537920008430960734861312508924204885696671688783008871487960730347654194772658030692545239070723975191541196893920830473514195651957374305024677261080960344524368477119299691363127287108490627296247298320454515995277740349245419998796249632219915225367669193973171128517771872174591748656010179923226533541551330876169385491150141463226810612045671563377348779435381696877361318465832470929319222773195527779533564341198901101341698023526112890711316714605686806858557682442607956215252258080366876856694739032898059507772244566196007299041663254301175698285264945711814786998394795546505783262046769951936742833843609690769166596442479775319905127694852475687038802857001234224395904941064829013113923890343237556940053416054507894001463136365870342006340317414600264326529530274426148820798859858222780561284980678075488662198263887400946845525237396314927210065873213597335109026876236168986606400526481518188771351699622515115806465969939777594968830373930478231768602158522416840432544344772069760407264185931926038907096164668473808957371296231248486190251747931389995098966633547011962390749428143907340854098621333690951291027282573655266329140663989282014610778510418558309969409233847200220855289626313712292515789128917872961403103167347223147396860630693408864971475290003974422592461766361551163590393968822784446296494690245015690637665969653122039240980099356354813279793665902289730636100191009294944983769383604560963302529890517034299720213288611576693930074143188122196515142060858454526155879934565289049232202658242483141924585274396992292473755916014900904553364644836668233076462768211715693580472787206025605954391368684729646730708506743060713907582240068925617574701850013797836092997564144574652016646298261371446810917703846491480594951401851832747810064456076173702974998278660093416782693613516088325267422471931494706835083805922915290506956634664188687331551558305477750451337758182794697120677680611635348317796919912179102406457723784793207755377141015473192783457459162807427493096694788213749496091479321219174753508323552653510688334607060534452868403995325231105681204710972123762714428156733128613448460964555979990306105127778831351567673885958780342054300017716448008249537672719526493965955996954379359568249220928850773892172423423015190140109984265176657555942332684131302703829950543228008752065981362069343529656344867965904699627493183050509990153417812498611370146677232733966414763084443642691171926264228214837804771992810877013646146298778025064106347001000134606485319290424645419795583727895715127955281701952877152895193551733718071105593205611574778796709922384426457182081007769553676260648990539241994524480067103142943942667768648561995269157829507792911635208094752598055842873306391156157145229635225390757867738387246693074953636003850285832038980302735591876408369033288033874991667622784064412807054649447608705007426741093471511453954336798875079136109663157921562203581076926769445108413769852372437684007226399867709234176426462273564790849527712171360754919385177456877053106332559542729377715167223615371772070754934099298460471888676203402748676698061352418670648532643427849671716856685782709074997788815136046366654666305751188652394678358133592599891106984825341094154034829123872653731006388546226176286346875213776246125735373853128075672511630618110538394459886947882313060448783289827840117915058622374334780593411329376667835240539110781535869091779505728242307426281448656738329048418636406066898369407010966246965596462562609500974133636417723690706528977583144280149303108610484339788988857719099509677862329846717065462754876813342801396213048000104814765485100100605702297630939782333147756941456729849015233880824823466994215937530046546034844760599905883735724818826471173061004400505645912572513096985136453741667764492476847792738439599560435216428076163569582298506354378105735468079144858535396837249086791806990087614814789255878089199043157608715496804947411827902239471461556439474034595367397828361338010559209333452737563650554335840350870278427282715546149132760914777002271147363431464131667156973878268344452568427102203172524208694670148746656226452140217323497838926508598943587232348514909674949272884219707852182390952614492949185587591458027910876829268865369711688074257188171823812512991791955166613608765192393942353203080253016506514335201023329590608995797572092439682991194782658279707481715338858756787268279628611720755495469361072212953758816830341070679264407963210080921078832725469368824311135046295210685451783598947753272728949788343297984751781528652098319939352427334012370389064856843511022765097150403789982561886810135575819005564032272455466745895871949316590208827768592526789119307948944617948638497809007140038821278972082792022648926143350097454431620437104538567225555085767784031404281916495137425579041024282062330683435628995710664453513898946729610639412970753688804470403967551864109107934313726716635479786597261335972881217707961227937060618707761929319960072887606428404662210757775437416643836525035448254915188720354531842825001375700699778089638486164533316491105966754351156141389549980714912089230599619360404551654042189316972645632080427423230355372548179418024401463133421906987418436679367377696173527371190751210902800583235299680477332949023459317968553314349797051924004686382649631761666639151025766882981949726211563911864110936378432839347016514266278680743958801464042127216336198038099662868365240858847439246638282913091226191026309497522169170146568865614269504866233755702963979319683954726532468226297370963641302560515520825896475057779497107918770385592667358098208390323422953246518033093945124835047807206345321907473337841580929630833254203472445429139941991222159384464238681979586319328145372945757542179464368365639091889855509204685812362178959067077231599319778993120865688655155658563178648182955206519122089570899566066592186218802492400684403440985668424629472861752383888598372032379221162541971517814533658823890112040821950614580104257394649348367384151856544581187910862274245409461870275153500398310957179589341717650779860778638175510339803010574776222037759997513757592092438125716664348694680880530048573192672047157672951084425215620412251721808729933415698584739000163042743731555307360273632006768001859934095846578835167959313276998965717342267942713239218266308791978989703307563396934190442256132384572760019680296184919987102184547408720512898519458057095230782874931077478519735947472545634366004112743742049324479585198818550829468814032334369923221512191395276245249240315825396875920525071432745087852674817453268934641202088077097992723408110966965050052897482232290505927204962491586587162940462971499744384532914635492843805926864324452036492784842803628746003634292378906730355294870466986078695676884153727717279707754560251309931905305033287065339739626507396429728204359106195519428714893045730020611445715454284088072680109033889677467766232112472101926820854236734883213548006324548400145411175875703404886311817765127315563091081186851997777491222679956172815910854453890799517889881427219271158213622828945803608314888591735790419938657327823989157801044025117470625056129540791195849777191408047707549475102264393616244250816285168118401959980789675632580326005214992808935706894245297947712190148421026338739861227752859184181902068032188294953740367865888604522923085109495794585296649708322668182961062082965635138255900625629614054901948296958862224739567361961031055161916239754767801366235191335675675323809240180344556419052399059963094317584349661954297008237092114927855046466959343444792347805645837597004249196417192671173573808898132807052367539264347017371156817374832587232876137400617906286887556109362668757022034528595328001813885142537518363065511890945956485408434494658729056331162054439960001644455585622126240776952496415953397769513912087739983760981949633683524165954759462054804204144540258720515795390592842238759642247253531755973467789401650645798469988137896142875045116895836395238074284317131943555925476985083463978504303385832390438552724086834912567402553353720822436702149991909299033970435040844868315972674822017111130191398211909419247687659460881888344441816358828411073258022139885736881974537285748637301706874309857960906431987583305171143103331832313593426177789011844111870985226542911042224759384532689560713576603567290975365509270933644390869924447811566429689076770083691276238683897438120163322137108436609365521120403390679012604221921744939467197332445821270802603155700342710317536624994834536997324571343739325628134759348027842317799491925543108997189065607491014551486832732773424397489026691487940682339443102595873790897507363630330623274259173174771977410194079664976456329790060596075812444564788483590712950394319953332611478742187572852370341065723552687120492485762777572167686662392538836801545192622704051996284323236882779854096333486451881668590300078190111015692059325261264582457572167024235855600219740384813190153950668377645098818465200995109191637877558815795362697058027264746166455598019860327348957933906838112943878965253407573965433893523639054556494566218154302105767319144885995898129879994254810943021080224772750975620308466743582490292614366199449298230333268896102857746013571922689835425800707927055425350535873820699921616129081024456809087438065775313996351320652342114633234909347830682024970209502334947841368764499893738201734680193410974376175301632229695915669856403885261178819722793154381844559224862550421537607115307125759939256836081292707775917920269979060668269376297416770539452698931396878781664377188462980152598860125006218309314703671856280495853825802546953998221375589482549892628964636890782521080799272373167273262375537753348191542100117038546021763012875166077456643761505327330758781765510972396653478252147666178880036392633901928021590308509149380979144258802990606507732495228453980653206318644069337002122634058724599835378953539151019333010487001436120844968339307251532443968676813805561697541412116571408798205061494151623139169134459439309366936570759805056671258538629432617546974970617148945673449710929784419389420758714865855550908102195112413809265629151385928431957314375762290632494607276818803981746505285054332420180726163100071118908791041929512364217201617276545707819918926270672444852653469183617552587494584498189119490111953376253814860668306488746658815415772979847147480409682779083434987505510328377685604421219315629276790584244032136609347706243254321320742793013484909805706028533592093005663444580177886690143599816021873714973650442835951636989564397680614877549098044623928334141336162843264974291785450723566958752818542407290730256991013603595700401046975603732749729949886643301606767361834092955472226214789183650773261069660149790911778478962641927431718048921187393165835645409184801897566347006081259783250522157098146432134512774391590393290606370632210251756009753377576353908047553885067752893355883255972587637933741253059587800465244840249264165358224690776642166105283533990582782139968493183783864490880080116688604855593656741098604285349489416276287986105043301966048155848268889522180587674367046683423021251654795737558889760935601265946884714047488900527308350433280468099843979475279216160656825740428305895009241085098758479263974311701815421144672356912333652549717838843483360337672505053783791942878999785028992886901490618704837621570936408749727699916711701191228461115813298026394859905824839470610486800854110922458815399708089069737859253524256613751334015541453042854970251354613945584279849086794070935834254943836759431668739249743035103911346747011576298457888203664863463413028568732922618430657238018935193095663203492332601825170034692744386634393874119374839980024288009892614932249722171496038996266804546309298703657181231378846796875649714210021255332269218863928113010112700448293610110437492645958774678164805739836924150853030143061401545230762932566533772235700847819655034543454305923247631869314859635068978839123426652328775994787518297361471326109453484083521398629869088775623644020112802861538584662582125294907417230000507911162820438583127986373215459641683670686047380712738132952887327657828037882965821402787846802438201636042748910350682766379851848198167403867729906143775699296061589348620656751875203515632804763532142164353734032576545017291270207416986523265382374470271606025414694685884178572006349408934873825554561434905470247793306659835852147864715119324277587003887183756880704974364921321977003038451085340692137796009611324788127548884505781475778632858689152144460730803510038539487939702662586815832316096419989646463293570572620667061040429311136505385103543669362222598787330231914233734695918772879859290192751130786591122001458306180472868871367415836266372489395502846494941971200303041368948754298797297615209132424335696468005437977620412255547470761679426493433154563502921553802497374876357075310209807769282578812049817371388114148533535527587536526349661398946758534591797496092776061360047959726867815868333998757330271848160260891179696016390609877495860607315325165371999505979147246204859576520544532077480425653430594737561195601915104371151367660509306289960355926150310241898904303604177749428346611304315210828285659617729437098751170886722341903573968115320358925458289816278664383999746924625047957996556064321483148405127008226230884479778148519019414059601278442960881942613600260684241190117428647619493139554364676502301939973842339689671711593521445390033232493885444163212769573557360699152797748467513993608432290575709601788338344707662153676355048677030226793409229068583581225744415113523215114872191492188420389393283483537197816944105001343906717511344272161806949748569586381861086388679203320825880798607712423981953179790879217799489118196172437082301174738958006511322080329171456071588120361016289904990188158934566695766769683470109032351609884111975662133804624155682308106322698885730255557909302607877406372072706792009986297575455026453329138297786011457571156205773810763132018958951219289003693099466121904406822999435835349909558748678085792538069002066136128304791042850135772215693744543923009283216893575322180559899396332673139457012469058745468394424494875234426839392662808360003935566003569717321268389469815513308496921418371415963983942204078816352962503269406301841549348619913915964343006439257404435246372513771007071166633563874183180801028964687322143672684643595893091350044207933320286074038131949776477575339949926093463115901948256993926891745600771035001119449865844756290073471441763313091035381578758040347250840888078222909015104766059033698915756216820979262012271051346324615785484389441239300359609631967660605722146798918668821447852196562014397148607534612720040693557431934204076074582136876831112866813840386837738517795868900983050113865715990617396319796053754152156815991413239217340608983164988759900372339650127970821223855043915335521043984643298192655223333134836367600728005144486607584113799043422061294678761853574123414827697020664423692097632697311590422472053241143515032764768031061275811853108650011645844700578746811758338667375835077285086135774856382198591566572598254364808383851814509812001628645527224501651476753574084068851655070375614036848665270571308753851872895565248759410090793692909037828157475700734387758840025966913374562809654121378459652356994644592441389217303943426270532624998472122110485004386119028781016028556927933225330886607576982550810258371134191432946345682265851424211736574083885789073340043123705264257570388771454393446063774470595961913945540983660233306654412294961372592678783919271254220903168323369315823998205997091535260066738627355338605683542410231944182584896218283910391746383391386628239945211124026907269259420310125985842290624121851459426898745275426264129410555512389359766285129081908303638719890761802666268632989967289935986050474967361064335500600390167928762657330581198477086429568204845809694357697513818174735617593547030232435293827668594736698946301362853159773302619006060838241218958305894833715796992067014148175006847218554692700686080494005350567703540987526949307210779694229517813168375346247045424350001402289173403983664769204069774388453976519600454058798525340228504183252156369125269233450056856798655326986625836689402723029072303584270554841192644225306505270405537892484292544514636944418318934628532838121646005466140500591997615090609150222536239019066731235132132824025761971758664987683295097583668203998747967169244464195790415680220146185151423116564736179852266656943612998758134717913688974663130640206524792238415208229381111265526680987484209789504117614806092991646826817360218096165511182966926026370698723078823722357441487221240955745153945889487651886448335806607140965622278848567245397301862381193426700080103000914262964954559474063669165812645215013596852988403268597590477436977653042005486045910651697317938755078478782367759722432197858877157434873199885423441952707839196230810449078872073518017390992559827542618411039291690807313809209123755824244606241509846141242460225705722537497997693638756556000355049683451535961621953119929796870436173097003203780978295001560294304871473406968740455837204817207439130221009961330989593907593768852763796413277027286059648196554063566204167307865085495385635351688137506923121187596992693610068384033494898214816618590286590653467813839721628653561038124619344728681795938804385719227055489611623418651662302474962810867504030685100930737733503344989020310424322907162877901821855920941646826648275323679459767019781563725345066778748469094470874275671258793509211700577361155747199362659505464332473477048670006802099747026666984325804374331471359101406536799738444141251458715250682883419768920512394644868158892080028191971581852262017719746869342521855704794745695126338286392622274888902619131591521174302399829347551756917919545184554701736947687110250531243795438435263317054755629791690852297670868921052979652251689168657118810303064978405163208514392558342377750731968868980545855420967527420581497886185082583144298035805860423662999103111141693528898554321160878261907376096184800278518908378903070939312147461699331820436847538533217504012517739282240601719976709677407065473225747711865515423692877202853266136352535733567196417206597363436409376119484624777637100298073056260875519293809726466379254006853786262681586375257380483106695684380222985787614467566779147354379292554508915635591840913114129786059490129850380637624898047490195855171792083976462384026451997538851919002453947286359467815618908629375328030612103574566970440057382418487059418611994699372237163167797936929164347515596669974295759538954415337527760550771331928554863525199083276359574209242606256941867816086299984586033096341420179403183751846498341663844718524808843247204201269570001747147767051476646171707911012249725682598655059725069939811679797792253480706256157057200934655197294598748509170301958767998901548077532230165632332972696470859109600155195856026907929685160004700300833078330921532116635354581378767200811783686923965236263703779203676453336391371111181712195736156485156754966044399276209810204833311308679190260197882873614901365272085235858760622893023426501694289616903480403965892155552476226659872148662960255994381270238786393582930854681893401842355205751566805697649486786291208074842648605360785051154106006760706239010377647144977132744707289851200809736122445535967205286923999933412263996015864348167130760189449977587883341316369990978184096397804839464973900767907510548840487519390223314364563858005630930980332982271762518035289297058641773265142038103460178590883168322089011073804855993221957452300225485429972692695059836263737287423658489622902006761478305492836698893228477966295525628362795075793448547596913375095066339241017854694772582392708953423763550481984499224853169118932791918324376888930012441021230263845448538970193342937252605381556960492851646638803918483469304134376136126267057508622504606139182714769844517097818648607137734999248614522528301476909734708439878622547353376486871203962100389113911878866532254783692944166821763173493707226605414824434690350632078828570731195669730388750455923895431464664182290384996064300902451018005622973394149723883083683162846453474000374888877751296598723217789084934178915543390926477173820302194298122096424912574656249904183927818117437610181083326755662617176137186848911974765058775465157035969150901419669749675341789733933328685810962778818213415640016801365402208244644742699943381793766203651492069796507905898842927906646855179172658486912678310628000859047904345221510309444306202041622175957980749055656858659375995350875695076970285158155034449586185611054809085123017485333244817222846123949357769761906872650519918679282180176191193660084374213998994548272697289753379149670525568729260375529372614199131773693503648902893119591182882372471878005358851818419823065100697369015496952455831283259576712391524516904980276038033518232666458313705261284382765772667450367738856087854448729414011897793948752010914959446420288406482693881521363148452486191067706346728686539302640818470395256729422609065642272627844892178253477413250874349917821342084122398755830759722765504374921333769034613668994553975714339023014311767643039743016945605121962966480411544799250767572405038307898277614930077453769247145734749480891057550836645733711207776441036082461771679235002989191381781491520469264266989290604119828564674915205432646487263621703191837428474968486481373416343767942006799113097442844859948726063795092702380412157072522334295049992087400666658248090545417814890898461714416028004572351384891257377383527696108256567631801027770786571123407972767856977494133237455386592305049114193168873072126966931821093348651248228921371009384928228805076905137664874401057451206899337216122627055667553967166697407077387680940101029862025494312948850629915172583943931958777860838531820801038555262511975694619899803249340718491087561643363437660096726868176249912970428619125324140590807599423213314433093214717140942988270996094239140814918459816322968712741921740293346815875764419506781277922848166396190439020245497172747686692543792941066982445980585415979649018499651020938317687420002376969701553987755239969740141388506935598481882650971205865867954661815816258218907078175700655904339510923848133530529423135870058796991452137083762203951321426985822242186061974008641539661166918207541274704596269237915451312181218609916513706134432667289312151108350404532976043378038931277906486079905741191780773733623306567040856497792439352509781657362478341755844558467302079876589802172258865629620462119696451240646192797127371291204944653294285919805552063216195637163103116281442796172599184923409776190490686482953730582845886573927818438558792780928136778308172406584663167995828284784521029121357675527600452391869010514227027572186082000728065744638739144735574689109846545568875064866128670085647223593884949058713440225847256008656076155426862571361841312319596980206750103850963425752199343675998409433949869622484835481872747546170176145466300148980940089174018245548819247061497403428812974298108137188613166109137968810655399193881692449848201059534132189509237066198140386066319767850690429559886677682557960453203869698936409027892485432603202750412246304113979549023930039698680909183056159736092530861460469771677139666759265842559133647418016709569174547861203676301738926946389660224203620096361254618178410741578122296612355567759577909409535831422808080078070072839797091572931253235629931196200463603223781256629295602797539733491084103959462716030859089679389128163833277874696431884060693786112504256260323299222408999503304342013496705595610348152186912712791913217677530850335792476945063359030548879565468088405054066240720977319073791105566882319617149407717916113642459365314723540944634347219412323655883306251577687486416392798799699162582950206174153549819082251492195791416419711221465264447715267738118249364722982387180941966253989148008723908840453623074327033792213398174884155725019244274252238875733620062814701996222961641159910706141558138173998333459652734567107244461641988394919755552243651070718281657682266441769159671780560906644427648856600541753772097696264051622509969182473905354684318010593457220353821863216706977859939379937618465315971509294708078406710465166308115631486825438561708384419380717213233024838985748749991652478995272322142240972774102365811997838414021609416782447375748351484872916547137643997838231418895008215810576021712562688908607348301701549352083205848905161795875167181501300255180578875319550261866460950159703462779810175776400750901163710559644596724975544431113269781007444952994703159593412704755581092849719580311637394281420903212560119473937751171609028321198570933695996933184289128279398740558567982336883734651447860043409234888159067974259013537390803870940589833582023342242217085799561759893017247981004308067985087231240573522356356771433558847444779907642145336282199569893473647474274689929210930695280796634077144318891931825219412540552297080491581983452348056286082204993668809019072729666255613805928254441316802118337599709417557001774463040228345027284113909425605524680445443348497076540980761149129394312464826856653032962819491622732770876360665465152059350553751666347248979711408682259391256082044274732447117138724818784031359075483229461748943749465423235689961983289561526485342303661161779506073367016858808244074128960498129906622254094521330065354261788672737586167219966525136188473152519764751580701358429388514490150904637715524875838121784547325041788081809617814273481988746122410064436122573618262923762845617965728145172487206576695269502425702913239544659715331768604338282300182954908243427796862828072963988806679312831964221506698277554002613691186651320353432424445352541839788766870036369904136600599512304860012335590956818453241730397261815386890327044009343559163843606568972798342275979231466734129800221339301656967180493653609370358030386019688113919571747591176162139125755844257390134461445121198728148181988572838951068008611002849970686075129637815251152411054410034430298209694125258132902584844174471963013742856455041306508941098491338543333463924247488276953863001790926582318520152985281994253232533251507077912772329996084978687693905069723032131783204194644630474490158004823152153560682519902593267948415265634724552714527003928008775508362010005216515503770794450776463676306351150365537291054158941086202420299627405205747927270259098261959490962385051509197782195870594313961923602685887696738835371255210042032290394167782478734116126335892528717533611666564680166915733816414733322705166995384438279265434033048949816716795632586549555466453952131881168695364848247494775488394057321764904682533262214337155409456621210089602943268689970520033810013306232623129535364807503038002056972348227356222148862000184769204301562167706884110604354703271375394501193159143390704215192385761113770383974114280573146308894524676355158239694442982426826211592613468572343917770193755739879141680013910200593344630122807370837790236913549250771847836176705065497267420905129344737243127321702814714169831456373136443646760509370795689612254650611368807255999206219624888591165352419289369761841240074125519105222551923241070936762223119793592793407110393293469865605003366874839791772672062412199530066935672578162859568476428620452253740045073720874070476755253055043424911015315818321199974310482689175611588322511253416254465043712419106216173317657993102953345129152817489485603927155157397682113071024037434222911830625821148125197467537535819433039731638597827617691901171659652148161809884439919735675366955349675723354262247227281357267299219972045360988617184893895091351534188007998690201270351905995203046753301880163982919015256032022076150586410775300311580694756947185468985957767759454915761592548344824892702429749758862746711242627858536751878851268749347651272163386693411381069342015811302180586940628173040710833224093213707606833975590165622126240264782792359037569306347168771055698624338046588469320562795861492769786090961751383103285115004608938673796196168521595682654765780203082705480595336165576753069308493704625500230592237198230770282066937037350413673403209156201635701562378841477406589136163515225571681217150422492507353266161498554173354704481280391616007630964153199931837662658915048509807648120272610040358710863784274957590813282100165316951112861681905662458123926479215389698350444546082736950718574605911117639076808091932132526976780121586154031779667560471326356758646288894662359100927333919983919207062999086195509653176187947352540417331250109464875804001799660099958238013943395743824915751331309982854532137667623554107072398314274817521471900562823565286101501856124243449471831289159967448539727278086290916679494460532115112332713581531023149173616393425990042643780539635119628858441698667020066896557569216258137030301855034088168786139984329314416622795549329525440481433336885917685430336253286634428578847136886789580425416852527982397378500949670442045539565145450289465848152027791388616413754571768509092635569809759059517821120512664061458585726107569341914911327632735196288535654892542520529554113799847749772193324705077566826251794448911113982300925551870410744456156624125648908863274803816810416775758935002310176998555151944286176710156874875721704026486444449706058812761021002338560617714712505552667379406076615789073900047403151852457390912139033462951239124230901024359587623180080695693426537706636483599140250374136305175449090240131444299823628035585908883378245324170549791535400674098933961963648993904158076888879051972825516618161658533891379473383388909420543396897932349999719287923944015310208742045844746420923736741770506030096152439128474903444351444875823824755936825006300224669338566706160153147804261181341341003709109968781542131628494401180880669964854124662820269791432435566169732405113485558275393262247580614431884928283352091262149163823277805022289363793695648438873221577809750765641674130449710570288927636303002758549110733950664639717856362719425276340546804884689953029266445145723609550181279099318420163555611552730462480299154610275340358171054338699889024621723474712474992874944638524871937577139764836477362945326411900972821699637371622157451284357875761500634261523909713150893035985778074756117962412265310811797066125072676915198740163198336129737042557268705377719345481673468693938589310167620049006582112172316984468395590925308131492902821233024238133888451294406194940653135652556080849472915246940420576951885789182500127753975669682137921143430731898475645231154534860599443111470611751675116637298078719997133554248989874306314842162181791671994534262181813505633789345834524171511397667914161833156349233090877794766289598663999828243786114516166927443952649231155963871257803868019663313150823911781880627792275521856281475789224840726175921719541284437845927853718315509329466749238258259285380824635816424917833950043162482841592880524423354802216106729243527420607046693566551618288646453252603158643100194414459332445895084385729980884692247293991912649847357949162857710328804817362527390009425277312542771002936095752093669194243381162090294445834762640058779232888836717043960685899531131651766138502499739318826630545998081762599417983196699082919100082044410499317794322302481635878023825797439198444806434802510504678153606327799466768970951402630490111033054212927016239071087694786856914667482961080080259134913693189898113291258441177620778429570569390315670013631929535221849331479104627754460745290239226643266584029574585786358874148446864977552887755413759748411111894212395901811879822036495143179026122230673566557310897005005448175906148807055352220322834861697691858152198028652122301003454511486205432764795409928404549130919214747683709183611041594619401401214905322766883627308408585459227123426577823924992058189317723582842919725080448540955003871806652031481922075280856480382905125510890043540275305707160406632704121687659890426906012417720187572525690176323553797941758248173562776697628940320449402811260194131828388471105772936641330381685322453523197082345462799491868897913312300108021188699300166044325720251089130843792507295413642041548415655259758352035259187780054611626851817511246657987495857855344582729685551766284970528489347654139519882419676675175911353159514074418665356125378505928221468759878981518958381438010018583416944748097839724434359130464192990775634322654380372429788672330906865302775974382685187310077092858600361594736932663973922271951589390999065588003040490422636106294951000749508034315220898016748077320175312332892064852255492411858112793166406647150613138543389222963219629941923007225939141181814909141205653285482561380946769048855847330754667316532631966992482478537024201999179614659745333684285163725648486593660477711963374739599363416793725376526333333493299261008752121139808856676022650209062432044503826882460525166143148025874210376399840006871409220905770631218126680874300661323268018307815663230268554567874120796148453749980213788534044649219035462544879492486572958467964685718098073053117699636956702163405903648589294844741805953385741146613320228250287117159712951652230337345185194152467872290946390200434462264374250040169775869628396450029909041833490425202206933889778831401601824062979000149053035351395410937067069009988703552886857730904649809866299899819495201377538679786541914953766527918853862788155081276164700760134024784570116831730840142879593441089896785470569148186616061549863634091663396432383872059858381460867889966821462606112039350626881379410224863543585737647891766925927265380229700728123822125018008592980079086816652704766168730286096618086904923520499177716114869279946079229770703245146514955916208665028401783539763644826640483097845261082743557850739976406618920304315392975797356104646269787019089541515629017571248059905063079178230432804741769653843581584671237521116280305239332130114159705925707308870408674004412121674099885642684587515742714957772939452685537067429546430484053720872637267612617747681463932218097032851811742256921793091828727037059926401514394139514831119832352198720263476222813893034729109882750756459395496716078143412141440885306286269351323279070249195502907668124973666703028145769249742738228872074857900885481357235638435686229006196797817432955742083670467399338120871590830536669236362142566224804708682588911876593400561379540523467683576218402983718061202341559025301657160182498342345423158862048728826303830835429585163115577678832551641446815676493764491148058020671720757284399333904770086503578044207340929960330825522876413124143789521916965353219787927994445694922272779371219118100481429411963437907470219668320857387007138679005991662104838552742214892705920918749248950669694878034666777115621713627957478789675776760349739749338200690755001229269410712988433408761223381348170904122671919503906398855832646702022550287675360217449839760703709151553937811193221671323114284085766540833620587142650974874145320451885146280824607253320114673470154923381656170129078019504081971170212785310090251536412856940431344472813317059307481113313389187465791945032364886046190099953709786870623331693290742260327813730489182405589162962037630253419339493531120323968203632009053783819935006740988460909467113505759968666260179571884609220251266943651607694995157011571074440815407092435026028255698566424338417563507296976883597504405991030370978847804937747356630558563575166190122796255498102930201055373620610519811462401109595511054059414332349847058462397888199310862479379612570938445829722264906496192832357874845641137363194747911669054344874838875519457057801022249016813439119576099507349616258406163751678846662706869846315564956357898117267860188685157274385894034612433038609526636495183848518010223589585940616670790830011329265133926375463106905591069156589857881801485029210327429797408023437967695036627339339665205593798783956369622775056902245154401196069211249583215049889507908816722869386981552014496630292267578011051959245221729652332379168236126756766596244297784358055154127451703737116209099482821003032541825747498577472053712889621413848016809154952938072773325233758895470356868202685676988560633018698818975290292937644314812923487694778355084231844979499182965630475486906324178026560428839849348618366752350685758689484475237600337285516717622418758971886933348922845367458407976749890571637325535346644353976424536025138517285254498187271066740275617695927121227722490304091210935726899773249628694800252789754613850625088284765622986601766401267161308329207870471854787835135054326939104958279784528752077154864986591203827505014066877715520907300233030615341404029105557351141438134994013794906677328209851502441755604389605811163763791448410214629784717907309709817751628345372654255064913553319309411066083305525107132111897667801910505109713845844589804776667760615310610900442065688161012171901666458427943081693113841697553164148239952633918993382010008496612761082580315565080669089938397913704903389133629321268235147951340644154000673896121165718647017129075196035576151338388186645895204772033913668188775824586488526496341214009747019044658472598392401070232449192117713589941637586433599021674051093265306440222849437503381351945953188879135388229879137292051293660400446139855266051860027229098733920283022544866383208569495215687543849876845451586206359961503468731505096425849571375694569109658899909721095549548401605194842523888915578283544909373956382046267277137935067518649987028701375442384778590720785636407772490644109221548305361656331106699065191519808917244120274441398261564649154369318377677956883831899149969126633504896489737053979243686316825622247715751336683916797302818705205809496580637279763291325181631296653910769983160866044540774473165014731987237715442263544487897419010389524282804912059547580472135860532327655997855996850518695219849569597644510771723822391729211632184223024872913836839523167742183795585163580728077396501992585141621664242901856840635406371706257901779042793260213477443202156191114272569157824848223205955660731215627960515485420466311150911317062466178145938914989058613732909578489723533581793785959215551085042923962425264573735564144741489992033280119302289962189736798692383279517393937499707452992552856863747974469758901284404264717532577400537314016056564890430605726815339493729171979516053426062296155631891316966606760284157918572825754508457238753558207096331844059370466718894548927773241625969746109937641308443238235900600378422024980002284332957220221097915498223243524089047931369628127541741114681758313066872639630363349151289038762658721473576668032636619005264208303168210828964058876535855555329965715589616371362820551339532137234525009843879609125713084775120634541773389317401145765531986753807614437594472991094012844517912475991221185558185059263829984042322606538602053100140257000397548126040487845182951945214145299189304952174093100100653104965518847364711680588933367364973080872312632883528051601614213518677951168335618940361004218948026181331132456580858709736484550455722869079281452313823793686948651624162862584496232133237285215458140544881809635421542611806467133100172322410952146303996682801179373754759260502625822391335036889171871631925751846573610319072830331256658427170754035546124641268916654999107477181667295742809936005578767921202906266114505188827266639077095924788464535528562043312266663349600961700123613986097053401857303236764977696818620679852203576605919003480860638135989456329743678736289326270382776442739283290991766356474023007759844056232874972204159991032136116392906486639967815082525140109607875416063775487007079224366434003913911362641734274213055849230229210656542305116752314548167668029600078414328003101473542292731647248116523719708016175070962986315103721535426397541419172425590449022912052375133361214353913448919108849670557047944652819287563866386277690538383822097404242475343151004830243455554642395930561477573954305539345434361336399537041043408043894140467795155108179318753253496665839002887251168861735930809501603213638216851018792075732164533580712109461616267790127887565915836890035670462046933436798861650707098854998297949740772945175433604034017109313495416945343282374870075838259999740994095517460634975796396477250014488112216230863703899692785573563270417012788214799227868075047285525833162784225285490741363404606693094728053981388505008952347305475989126717284856260798491547017434947577264663323317062940426479112884670388364738134282772035091976115954602901256419147010113669320710960126545048631008608518548422591997092880330173394493593719849834100656616716569499967507290069192220446570458731492533800330752777507040284738184460091160368998914878645972762912690453597522703496691068319491780019213745143759333846328036453653781746927022265555810547190788905132420979690228075536717065740923708640484753848016110488938484077437179336923392514693827629990958814601181553699686924471344076542062523478960654030410828485423315336994638237537290528648276167293092241719261832314204640277453034532196995273737934627961253302117032187416212325663780958020762900008675620125111589601914904578443665587472725215246007357653237994287858749241291703378035815945057692762790497950201280803585751228513811972943403898703272537509054945538188676403004688632605653165638671990300659114361816034985935577947963219116119484138992255226013858635025257171141597764177156107323486471337556101894677368384197809941210011068673206205416063997461051574447812317131915887204130206052896025254998412146505087086759177892385725483165460675429021364265505592631601543844874796657189541201831627440510242051749679631733949832946069359100272990189158944412021093197202527100166590327722241748486612655555142458108501368888322327913897298623238186588292640384016825858547013681452668387447929893675429665593101687884275749765385099569303326004982242593792459637454750231800907407453831081980262991591437316202806059453138101433897408220214700258801340235627806496946574838621199502276378088008907850855064246865806946182361264712208311448707901042135599822725638447708953023852779681564355974849622720629616230703746050296672043873922700803603703025539028341709733928544238279287828286996215179680552336929023224666918918537834881830633495632561506397297635069641001629527215412425463786987172622811243494396410856434961177608450299045102315336381458949577914964895857042635651706227450052016837808780949697109222190424507882587207202392555782120930273951337712820914843164620054253990663428472392740093032939349654624980948972454040520633310453455446227384423171541473391230752801399172809819958179488818493962696911140365504259401028845633505360969661363013956474553984117689233434150187513966885102010752802654423306506445581375603954022579224675891653736326642978008045904883049674109558319454997213748237001201354221395308583516542774083435439660451891986600769304338892363218256750822593532059880429578308464231308018297735945020312960266181993828128229443997660637334406560728748214326148196737563557319383903604646568463305565433813551109673473153601179339757677459708350203521149703091415993369631711131766716833665696000025863790363706121139799342893413488440754241686730718370795264432252884171300082278849986336479958974780247810676676237233705024953531488228210326558711812056233477615939418614456141982524156802125739240698678360912641366596957010354030007338494279453094837380575105668936344803404290215589838837414498980323956262180240047433129996439833140591783775478711651457729333405339253750709037753781704412668645948037548406333917500122484716460605373102226534274782338395545698599803751963521322680928378416133055508889608160318290456209556697639517302068126106310948766664930893813505290966417428091799266809009115385529975746074328329920104950090513300869034594414017520838687746015121441577518344997761237651172814837851108068206438228632587099349037200932544100953650137672195539885886337611053006629113595915780122386910113165180963203157593807426704726047636658820494772945281780544769399148531808720859143327625015331475933067333195756523190287536430166587960954725461517182007755909435042191237633723039359297303786311259297618509276748836524306253642630686457996143353756376834368155666391356115575134215209544301316154140733878930050138159645694160371370586960338359447657796034867085047342455028433356943921034527998319358322760336479634364479266346743239386334293733100857498268645615073829281737964300054607989036607937014982606158415349201595215573372146498249043626042282819006508563595512634115611773559167708837894135031531590687290703431865150137495170000747368823391602895749915194398062550173782327713573060046890430941179921561019416360869930988464076472522821776665888194890841738079490994107727754917633904781501235475653201264415188829057919913918534888396349702849051211342129751266541405890221939719174288590844734371617110256890485498904870244710550911068908495483472940994159307557889871775422273099147660437067727671138081381965367519678359408633318558382338953178159674474204580275594050220024514302842355770684067273115208322038369538281965045996969355772896302505506930068162074450893880428223934678704326132617917956323589383711343829286008997153220400299354951653517737266273487896059362082986118557378326808295068071471767870510007620762822756396645150316982279519213479461394570614155931747253199110603606485371106112774358897738596757728265239080181257707735770414655005826138051640221138658663180152603764281622223562472828149420599122807869578866629480298226572163975726583567503761135969475665660451974773487340252208587122532500677737085733186940285733124997989310018846108062175937631152114752219180410102550541446776560771213672963316204573388936564590799846438951798938225381214060500175754319426921062759874929980329039477512355315998234774170616236292547587307346215328522336258285950844336141631545159006276921879971790127252571169043208128858180401473177396189088165316917497688534548168963094357932975168841366965408205969861418587334738424341206599940688515977524425143637929452567520573075041893227610033199273857216522441683387176752744581453867063285532786768833447905497538572159023269060980964316467455799113287767262926608178565458937520430169196554566168763435776781974931611655124878131604146937843639112224505386858878026081380748676785740068187704572523628941996878803193894351696635619255237513072218891143899635911697041611933753096027459971190740125770430361300990547112701247064092905188972497582205270731344988133212762936029043107710100598961507708810198183788318581460344091495671406788524801235543465027456055010513849998771147344411188041863168727550908634052545113628132856457980213969835785295738555781677869662298047372875515526924185752968006686548144284390583191150497213242072106122292712651218797183415621658587622931464227998647298761839165836994925180277597425066428113678943985677614729535244358707765669664866672410273811513763656588369114529021033897349592146651829727347360756093290863267008740191027603429240410947322001594249017012773488079774154697854392553000334252361052358818381015699162988294125287350568246505009229846168406793483465124050409512843529471622715819415892472726113798354332319204298561344629486412961445548158708136277569089745717338691830125020992619616426834758408278848746239764818750543249090780338260570286200173064577389638303678076863402774684722417395649396100493278914939015672929690444148865801108113577813829864686924075766454474174651408722359344538680819616317661142744934149397259190082306330844724132248511918452408658793233690616000414761940385209749355105286515884146926734913215862558398207152624794501409276523764892872485029461702842779340360632851459648135294522401901068639614609103499661741423915723032469643728399084344654502490586531912057717565122224936939309501449285982665217353777374409006554713867601790995862551806803335964558846805070592166951802755592832226039371029440397869424591311319722584783000562592987722892412506562004488942491240265393536497415654344822498340872758920349278817042229228465140387823703900080585384660572286015813930447236274704935983053903741001102467915618169395389770011696907031292734948385645275810635171485904700069532662519230054819046843797485025789529483646487852343359198837652031631380284772251251815408794822860873411941071412465095763878745316825726490474809910208553660608804363588001932020461464226577205227461924042589476672658646561437184789541037726766184504262658496434188567227940307832551362841616318442270966855288628065073722560655811044892025897879155610210723203170210390081351904810916108795614071985888347989030132042143970236381346891314206467381015267378322711041779280657064448131090223142316279521762214810997009133615248097625727559320849347781439916386327165319613844688929602184156953723166301194488455788764719056307862839840371063344074370448269042989354075108090221190061851443485813927701596456792109598724372388686964643227448694196479675147936849670133860143699999692835551424421588668734781197139960555838516709888687477723825883911438990629090219966905380941936687378985757308609723169102209536091656581482526431296660783260797313962084578819477656362802653738630263293780265045265160816190880561737145262994101645907796990090624358443529191533130143778955617008622092158636028253709264689746742398999871639651395938816741714778355261240936311163036394646412289937250017038981448927181030935338667826183314555570996387055403056312119760280238555056932314761856887349412721003095206722087177414670273153475627615933546936436926451553860407602024696608556034236422046809913021163879925026352126198783224855050368765985660523170579166792855701219776441077788103457344705134655125531471633718030912436448021456700711092868901344742264159822748095503179066087352148619431799418347164987062480492432200117175577474934486550730911954024068386984189897481356739864891962801089227331020910597574658935583414340765270202899408233299846650708702648733234012110144264860528625899512938674073448644419360379601760612088654455200323354489888588728264038146216935761819359131766561544057179263026130036459029413335912556413747474216398857085845807593045080361841926542249649749440681428975272298684071066665448261374100878579848871441225215348046659044887548099500192304017199501573818680624397234241868973683714320040272332202804496102782878507822699248675679965104916334183924735516277829612412595378211852448699231029845916683044684050219944370060479076981700283646873646816100503291417768837257431591482099351429385997914831999089453046002737510904919671279056447826624785321189022029462867497003629862472276710893512238208718436019565328686178599324967858181561658246401407139250108715917121979785121679168848689945875057171096651624251619232617533581187101601470475156998076864961106996793580027174783070358281981884700251528296061048224228284575951173679798950834575443855749312755010863385697359180351002007578305759436372554740810126735062846820459692552905558179196545899346281399919691318645209923034271755636320603041156547111930422680586492900844838660111216135487929098134994093685023603428937094030884345089916586609588354677263402668310917815364496484828481664014376777471068974019345937593791802956279096501887718098034072861020672233111324375756765130634139385334593158033011664473865957211579670740736153714559816306151262335446962071512485493747900724634674531807739826514108430565202077975323809563818423020026630973298310011603107565325212670353469170935565510842667930144787376328986078889019486194599169617695614143971922880303406273396053251055674794973004363097323484469775514663588039826607181567334012413839082114162857707157936320821790839924501072140028627861958525371504420490262327799481430907719093495256250400677194671111571763230429943844355132839861113404586383189726738358409072448198345089315060530463760481335908416366511208818287014561098971776493671762449978608899719616997872475869418655725481188234279399481729533889277665717035439311159115241060590139533031509325022895753344664157890342541584592554673036399515526505461018366596332003546738622066205663966921409612979272454614003403096907902638803083969989785977886739775784540728944318745281210269446737448900008744928280828166072435399758747246575068543034135749293422614051993671517822039716576992287921322474065783871816725381977056545349414929385089677981150169060575283651236457251779806398847685515426442710875162679680277779069847676186368639493273684853899993391175982435432465240809225552771950883072985030592928423784343902463348159363771598357005705623363789649005557155605259957582989763804457405820420521724581792470152684396675121446926429296920763812997767977338650757742096353396270310866940792060079912588577397517751716353958444545998313515546393479229246410037687622426412501716471240249553853011025024167582034966809129782058752002397933422790889107711660161340173023726053345464723131860385460142114874224508685224443611461326209780370857507836848393149627774313695849121784537803610012412124312891687768200562416075412524978304651812153715854749127778484693013216573363752702597947927094358650101638929921103180105994881961768900562496700246190732503181966481679762131109938967397065560911927569397511723218366639363068242543496616347834400103675690926966137183579076936054219630476558699221228607664911087506880171253471116182080930535042460268724647335753359570519050054211362401056774334577187675704610570296819762414512484491605923549347603147891397168945602266228549789725141673189664975316861684356974529682073934455002476734850661791512784200970440024072022828568097728010002443952542125677794653159929099027633810595852693228918533383417750816432041728681033610838740426578016927884423759124427838590080460160939139648302582543989505005125842281386772974101103619885240589526052083639289326208354176693952870385467383216363449301563333213594301951717375940596690721715168394629524772865102359638304114127536678312542498974045126566387216470712017477197895563898042110249519266915722368426236029781293056611197805013118265740400676588762505693972359055861603502104114953430807153051483197831526811993682838264638319816190093432225626831964655386373645104950961142410276273969574535867082190851142232884222736518223555542069713989340191223417173359610064524450025534641092848285375150666541628499359333670796158845630418668559540137069986643734196797534529620591853290858025983148465749078079916669325944907150499895772911001805600349992803150929264118612426298271163921047575405909309061499354108694234231416924496375188539690933488122992431474025607257224448961212126153049263861058538345341351755784736937647594015694674142079831493378401039188086857095504120091446172149570492993200144373248307809262061448736328235871872159228588069891076331210889574037820353532879370261637542543975773937722646875067568660425421047858283215708752000360425643751320908726039890188831454845328824103150886820191443017151901680004386938219499296934229232743490083360193206327773092905004241864501652339055437492209924523040858059648269960798485661616652389117080596064607092750965366366117084693185076228696615146631165201146394240997671687714414689505470786130802904749567764616161441370681022213739944960424262262217692429394933682728845529117194663918910233545952644087386738368320289039089163815135750786742736775632848102355554606205194560356225255154869109719621146945616219493059581185335166911528796308770435815873144213846233083722096068576445629970840105122821643882565650336404845853285699209245040294618488451662708278030084846332893301620779302178453610126878544482627099252502461242033017571793217105342679522984585230496255407740735091541142881217287461744485719172700702565776221275375584206735052316085198590083876963678010167978390300670520604027284536873424408180396666460524873374412265161740566079627154363553762258097926588341675295101949135254805712119381647583481669078367067321489617050311221768534366784555922958473817633136192078618738887038972237755458585939570771225790163122356119038630163867327350686710834680337459908403436661183101142318617906766294526583434420279885861175436720889081375823102171966738264940447135187384947194235752025288373460586284614622157639850066366436192524652803560877817562850041585692524327168745798802565621682278258990280653571485123467401346249619186693208669290802124078440465210951526450916570620000124433936002437496587877265506986749232655780623339267906890313521728898617670781592659671097968092155514011550985118234595687502748786093266130818417808436831545007014177282743449650920047683713771926361443101124675979267268340541533058940137973078036092890028579331820345660642736650457451738394880641669467431270546135619561029043292631978738621426050467673960772710482665765617705475138322706632233532968751474474284695251645959371811333322162122565505363698805097122609417681705018897959538458767177486926207586069663706512696747294895416062344155028186030539331405012970982660102515948974260466507661003697243889982229498968861351935553463273992647774554879201012340515988769240524618107488979166067147547989804732299047972006449682389524584257533510201483041904471858092290058278031050968344637500068744180236893921096564769622794355173912128561920222551706667691142000789584867484422958361840274008294581007672534367116698138299492322012353320932712181088681706582004462455091653616794458502020709040828055655177819528544286676578853681581137878107109663059993422444714198462587461552364379179849662148340140121189150898423425816129900130927230416411724604244274396277809929521802940124591545562775326318642691618446741435418382372597737120432393142137859587710853862448082774732058213480420042478329059712627625723552291748450622331326558454455011119366154185104194393807087670264689328452180535405707868702511687293287266905460924623760393196572699480671369865407449405365805214491045948406408959575357163708214934893552643986112027771123038854042107481294662306584292602896686940716012043209528666902994197684679377402792920696778789706435110177843270017558863180799731267136437626169594087588797152706952949355155000886672537511020220763325770448674569089330944459251895067264885212971047783060524970478617066615507699602412569050735237105210459865541949984662183650490265229499674686246261194902605482633962188836273246247167109031810549806886626877182260517632245406143867104726358349195864572890456950837449014183913532079526114494247330584197205550185682224153034443426865864068323735705736557551824209735175054793467724687489585568730163437323018368463942642260969140150754638984833975680613268803036511625731627809483909988957096023367003170367070796657009556441708910092262667496721515538426031394440044804773586827409242035947827854167754139015034601471872529296534956798512308965505170168895518844763112800578035292091783280343741866094024115452133679724032169373909471778760605284360116664030307736066042137356881069550043791028247928273516618064290092075053812644342952681107951247840610428183547834419946388321163072579355033910518045878618468796758109093583112962494815228540079366647579791436866408697384635225029972041586678782374487781164147374241862535769367412339480681000045966272644923218213452461798982623179165956247505226760164629452337148435330216943580688735460854416692856324140256174332627939270986641436306246912802403283627560004811564923383017383593188856050056571976475703153730054556697821525563308749244670441750884710471880686370637178691996056274905051275825727050052986350297011869660563979539284632176499912460667004975328194252563729788832096305213005738304886550105662311830952982860591917030416644073596053573143526636472883896647772554782580303417016168674109386941621809263709342574825126319990665573633003887910026473975789396296367931787765690250931160587590284033913502504296512737882644052642929220951932877257904150527999617967041400622496553791169482680252137186237849084055193239249199173182152068806970902862129853103479646360283213188983565421633686152018366541638182519582341513414337419680000667399413215406129077538363415630707552426153259284654607651503697771064259105834982572800688137280823858420268870928516199003803741532449237705076848047134217288809631031099225839285844840742897053174492285727964100113145760760648564523024802117238577082705466540984417958920621854321392823098043851076548031886159647927128895320587994599291919072294792870058366243188281636595178495883439447137048497767149940493361860642515717134490154111264575420876410771073707524917300017851563767987292680199798999659358555532421625185698141726007468906023042813429190319132863394930331014643700467787660544797494790765878398072111833501650143792261837587365609421239590269902815236047213138588709692290439268079950208710345451077765044541668829884356236373947460746927573427577634963858292496261921730961458973476009879505699277558286242534326500941024237097048248984207900753717509442352874231992561406449462703812307612728529416688641333251289411218662639202122882703716738564352695836282606826324222488287313618935871955226499880820544146147108327410103175450972186142791980431501604528695111037929439861386456942639591347554221571160320153005841187502500234387580726166257495299139897460421138609723330924107024474595008744889837093893470406731410126398868849727580609452963286815724005231730991910294077295494282677914115511448491489390296767645529116039582018800793815427707249896824595517800660949019613699592452459544543179196234579262294278251851284911965938939458537691093866331251457812205589941479116077083260550672066806135652744090661624669123013007013967488226440546074326247347231390555396605205727456683686836562321760366863389321259732568119222389300751934050310087505888576088670877732614608097196464314831765437494664399649439647236797208799640493139268198593292508317985308652065810239869481131419600749822791484516425063766080755517594777211515792440824590988309665524503192009803318556920575702741506958377659666907721049158910864536201873071867276777501491681666962903266070032409860928825439102503466232460678758303634587650584625286701823961161824532761649942983410508465376120208004378826983035075678814608894742148103647171002127923492497428718594141213188598489553999214872542526912999464205306566365780672839169323660458687064319128212067490562180543604744788918004714287042517273119227938077814686464695400947556166120331851986977903299047311835358523784389769997115566263814345520007344567269998363639856914362556572435643142559197027046722867760544226243709217464034369808690567915093728771370101280696045349226202629440324861639009600742371703260080423553866684349543071588523109733219321691556940829776307987314862118142002068473427014210596657526395936613936759649168298096309278532052602849569425341104556876481199415376899966287200460384836440386345456952059251371124143409260547737535802998812738124252410582376181269722475610458846420564458926000722539098045275644132039717880812643837591918333618217567722102064260966354043628829427442330704166637183332983225865936311186949772341630000055167344447313317035196566418622149260708152193730249121526719650085738754678328505412443422381490995222428768285572122805298962487665781191302484389408537733387851040478849811837019914209743499819522007991700621312203115524712696043586525396931431633911595525515160329398849493781982429245430270254608714459660411072503960043071226762361696151649061996983131205910366319573901841180049765249104466020975924047129092912843198001622340810956337883944758521150649854021317762125595440473049892586636973395135482082308909344901090096821384066353246220325880805372292040955204043616789976931190362892967418953144901124469522918325955032576185427628948490689892685367874229993753033103498884168495375128756248077898693921934045584503764685480390737519346518415153456610072647745310450639478443677195113278814135985883677820125300758094789043285453685499021337494413750604632822614335088570233024217474868512570156929777486850273043202087463745419259934039019674074012002444622976713762558229518028204105954848546997428577156051483057323877593732411690131475979574156609570325862778595997171066325694631767329453949426573773649081697163251629915523637717195468918551695038760176899155898399366334206179646330314696479899070880650332641328560959859507023551434652632362472134601799895068140803276655984826382673634417713183741044855909658359444329186712847755849303853180234151986853850336628124377185947490144380203475539719051042733618540185349397088372350722043657905533867603584906732344617206783333133219012783389999733699910029375428661345032687059349629170433069452319048970105771678695481520029981664507262756156477901523191870472425363671568076280600388365683923482974358522605036882293621641323037442934759443739892876029205459874543891757408874137055256917122398895171129015940018752927278812859606859790875414535317300811704855927181726906905933736508537373090445289772407901976033208178282261887942454968867240809354354134324244832174208104787417842946090438612009546768377019654319241469246132020263491372661988286389240587767939985065880906801371483969015191867220510706054664617824705290338705822487853189844646430131098636229656377150191701339314542509229069072368305420021237921327427327262418392934330664001218339963954435611335395463463731214965710024396834602539806373929232274748256260937037858809513468801807370979080931841812350520225754957698300788693742062981209608731861080837895159530801237843209683147957004332510979216522559138689148660974927342284197618848051299456566600527907722186714628198954315602436133123557195372845313972416586688227978347254978126867816743868602384063129056037767836008329628833937282361262648701049371793306172132258086530449885890125896827769847793732655321900366620615084248632252909971000842142849239473383061395297351447882156542241627543006991879300285525238169683051717151723744109961154495517396501271712601102231853716546842990848400175349409816968521950197746190468269181815335660109695660776071119010623227229623412561587604504422496166433676095571597075777227920361963874278941850061444358961767194231258196635549816715862114414363947219041105270249939034634078490236867248538149077480571268089988118876902737342890617309935387971054585945771407767286187555583177392482360751907122910728909455135350271774299543147788969372986555180847086749568246341319869734226040150587332658343124774065978110338966711226403386044213491538615552575044768752802272871187329955874148642154193707806675483416844251410797358437224819950782864213870980869036507265078701995763941448927290441622994539543550151312352639050400133369438083247113876518293772942695757020548098176121808290896518158861450196497377906282162575137990780483515123438504542240557187485801395376982992997819902079508156919701923958128374196080338157508902264010854347610951705881406548198375085438854765595282675288769158759114290075505548172071081297360249035752999712279068961054447484385545722599560654916392957691223273131770022647044009217314963660287575393803035207285950594662434714152970368745003681410836430048658171447340501490127237661124064161078217160577491315039519713251236159043425794535941889526070615009509563211186866183577570997520026843212915551428693228971089336211764826267136067451229792569599558536130854813516988221042791564944753153460558330783402628246579386880955300503938436994294876723250607446919472563633575929943253756416885464333876300109211147155491324265169631076392176533958565788890313218084765264093389614565129978077166789978224457385910297646275684311391494784347449478729623791578620881104949117740008961696924972113077591952901446843653291569472990727769712327747624028576915380679861108166806671172602948420226242427761349470383004984065676534004181296944244514269538345615366669230502180072362497935787130429105064261377441905772795574040709921507013319521422796377168183071235497113158175902923034493186615304347341741116569623068304595441591732280993187495267247236154014912619046966658110712616847035919151977708893359297156252905274078404494534880445032301754122911744396703111319443982383893589027402649462977136129199840056680734180664313555997301463144707134892862112462497978119838694033581140908680581368067226701874124144508202186419821792746488860162497107157430900258092656417918650295492318161758140761268476262590964473608239415623330457698915959019420962763691523643343645152618652597043488982622060754679197410082040103649477335443447640694299463119153096249767603636617350876396670000658664054443204131499180038535148366304463113465579951311865663339263813000939407436165825263105908047732765952563822254664903577854248143255247765104935528589809031510189303550486637423010264938437746108657620090737170090264246076729341562071603574460739517397671068524928479951807180994202918612087038955479924904933488686228741933792619719641360484352340503997841341753461683532290352663149803207571212808635076966414849580957321241406860919603078651877683496945639372898692956590941233258705507783341424146787656498012349301549644020610436915001542160508865467553033578434559209833326405025916395143825304763279149830646876132069374265513854535249873050724746731239477529563550044757297102182076986712219742023252899518533587845857420212361853273408582889795643356322793580804270030190035169119871870164879181245645649034106873945534336151306836876257721547937206489443577924321142719840188665367261281041270550902506315972214727057193757576865485298399274067353435963870412450138595375849214687405190611681704237497920677528256111358570158295559515587246380702766116575881756448696258816040353367756037589589719790707654379150010794828345213275295671936233979170797567178792277657480214521020461974345653950656705160180148477183330209341820020216209139424094220705121014998398266282913585854113035541413860552146468482420568775924059931615140666952036483969392991719849253396578185546736732942192753680518960291985238157755692030232504844856712176368653000403637230389519930119323912337118131192914237256422189815935784171710526254898054378820257451444826185664791611629896314634613008143320724964683876590600932329695296652554084081474077517306098045083245618317816581978010179118738367505099490707338611392586129781415130191665464624522131349537879528542576336628778712981900191022174954288488333850754554483052129351301560562657992215662329823833330993716798118153907595559596640397552555476367348149858262143758605916336834906642835607545612369171487632801982072853957611014105429863928430092154274724552740127825957123019372481624531681728186090958099958886080639871430784391570856212362384164714701565791391541438411830904834447319610687241344117818643408000867373522636998786803248225548322051772192173648943712828797791841833753155020454241904595399277747321762110176205933354779785984789034281172943226984457072749902222282208479336677850220276593436461363366233998901862797613715043203178361765345972945990571353820289198199279449370448270446612378206777101313457010223421467261810925909512781047470045932655370691631662301591679702522295613702816657007975326044170121744036223334960691831680945645798991552194120211833496631047985559057629967202146176447280099621428451118982001132123271112175027499178542128665415676101755986606983798633338096189324611518895718043852759613604487978210514696415911375490454743199867668268857088218230757524953751851126166484465477878499225849120629960682116182735291758252559291367080551407518645624344649538789732370517939651633290855679538105326159016390677655722929088863376048892707382351127152575693494729088170412226174928752881076728662971220383155516357917041597187967220655440746561907539436730795264415686146854694859972433360515602497875575913020916495715791325286828691795061765656905200606871231217666305881862743675302039463231225837752397119867682593945099205233055626468885434289178277529230223045335688778925526023601198150275537711370340869299354254466009245794998724118977237915926709165988970469816592152279256092783175149463750591569168021816557095613768898891301043496633209580506919099929733086689991206687114053499168504146945019748798611096291903888979043695390235674029381494627498272150962096395569024922802790716735184630428929121162210259363871190428739117502440070346209797819255048398967689212550245728878370858774416287592009833333580103323555010540417377204430759840622805019864161695677571407457567671465194967648217432001955230267831022520486649377549866291473780410006569516729833769249190272882865226229903726466004896856234848630429529737873877992557811173763912375161010703565160795690045933668632257279945772168874373656220186451450346517528834013280346895805901528528967222617007262913020051990430432718886054100630433883710351897060791487647895801743828983274404958469894969200214732870738790595898144770286583109812583822213215492848688812463407938898712981946214674720040709408232315779074785443455143069963023521854435627822201056504878661790659963752874642875260913332297022487848047858558967300846798582245502240315087143427662172359506919349055323654589913305817968230525626047338548153162955577813105227100687298310593058260439016602811179952797602683832574238360250600663158146074124955447888387588960235071877612013301695865413274472996657005331253878604938927867349087738408765870650314072431577633847689701788315220659673144504005239490764882649581921661292074031221503435003111867483740410186952036571864070109954307688554974158668013302359691362975217027351051302736833736675991957963865477735838218226750238740298587600563625812758694389416028981765398596987244207950821504147468135760040901821824391429799775002289079000969034550062469764260040776202218223477681322656594817419545630256065569832432969996457247834005993084706798905172199900167355827981623525805487826507487890923323783984650385326000826742952542564849881910789752771396537653453735113875387886015124289463403224353231838413141866129058615476571192120088822617485644727350695749197289594519201574185500437438567312002702722643774002731396507628775653766846164594091501880514110049580196545619653933616552643573024053657092466897493993965901419597540409336973036530003036501288972631072410215515755882171164008336432653948276241038169265610327589088041426385168651045404890942441604355612556860599159867220481342946295406607974267831011391225174736981281499314477162486078945265279065890878054886733962143627886797872024172040584154247270754041112023778542972193783503506569891741284402675057188641320339540701885494110848026957992941507066325438205421758354199023808970024201461483970192417757893036073926436721841117807057175385538032468822025541528142566473867550942805217880364621059788334461122157915978082508829904915092700018646714518155138960432914082978940323549705946500708377102207256180217734323696018230961719172218849032797145944888902517547126917293280516813365718634813221920426056466135833586943676844847168487730555121479734613264063607485015758210378222197362409564760707427811743028564201431158968449404064732562120163751151650668439334810152637084765303307018788026614834524712343199694446856713227627641823863084631715285707219700046871635230634168933717981643688857407390180555021932969654651595203820656691628404720292565057047802445595963349455792086805342220230455865627566169402720610238475930783313732630502555020505270471402479330131456839672087511453650666717726968043250182410611355639886110066017907342298519468771096907074987471245335513929985375963852486541016987186069588647838371388142661144766050601925052366323289227758124204887134630515566924836626127497769361949360338205190009651921928785795142490709685989455529859141708391929448782194035200192889494881154972936146948171386222533180078664688675037471127099832482900818296764543377595938490053436717845280554159040436728868601871562866414701956547831527775717736794537296751567650744497339048806869226510101586597657604209385721263065338368883684401229383187748927424262289191558326213243327811772387890264420857255292789002472694262043735720659049954378914818402805330705556133283206643089200728686858537325268220669370906378278390703408106795583931932534044034195292119396612123213707638663980676765025018756771342586848545478000302584401420744165112721889201390707593211662723986044043149580889569796939707455398692435293568816086216957895173017034764265603014325057126636969361986440086164035784026990191157443049041434186633478909474046763174760160241756437368423682482102543508046115674343956976944206489620960873652219386761633516037855239571782612067570371350652288747792867596307455882893560691399314750543472630971001608105277640272261015979660300830995875489063572055837341496384112904091165962971809998984189438603577253798769282670448631667195778195862146886895446799292224618095314520324858674821720534512165597409899999640696074076296184386156606875383841672971526365457939665739669375290234290590800753508365322956557650804192922328109445195493526490556365155932692645657841153486264788431565481266054770640403898391455507793178583534845344876625183966524321467351308206942717273690479440415110745529742489557337818123007132169052469042229238253541787676375783903909557979811833522836653707686711566814524283199999659601225842756540456715522175887980620995011817389708726596265831026241598486402682702080608787206883866927059946780841411538416989374313090659036367822672848981016591838293469598925222696171500489628974978637509702488408922220214113853412473212501786864684899611245777226501420127144846635109772246386570686826930746530997908633466540507096336296061312747115393540525582762367029585038557729282028929749021319537291816784348102411635861924258155257374979881955655476028270729313978646770937425676112295371434840640951025440693779928469224475218787544322887448924832895412925409417952821959412880316441930094659343870676271190008451213836325174166769553041451736881364611980356565390790228025299186820226184793192160932828506401910936391766318628136712544521304861925679282807360173370005952593520013293474898760474796220255583242644100625713585433917467374139722942027743967673052376480547112394587950659475714277418597081560790052433410902089432086618432156027703506223226277885281008400135163300548361876650203747477118708257927133459377365780325078680911758421177285037487914862947136302764386965361471498448647247759567468436592998207481779397670159846261392150029319330161727152425253653910041825738623000904746602507274187505190029556922170491542060484709764492927322632882170074911743594385848898280325898422760340647150420574008323710592746426711287962332845503737169880329886790617134496204267187381115795661615415462601374198542302546264886593659437419329098967968243943931473896504139793900011679081828441984707669158409406528514243047298752178229135715436270615617712606910419375494242054830475579937249130307041835949992387361486200093444776231196901014678947846949780245467125885216002499302747486269413088284107662069569560890735936938674102257643056282491507729341624659065061195678355024788448525378502381342437313953553843022633519904039146313308665897874789660022605425582816193960115261546839038351056873466623855265279720807205654270478839872794889418215642173588461049598085886160358695519834497961366252489393718504574405320541040238782833902765998060177275814833774871882743413352492726295275194712141993606348405255119168038075364863653876279772676006249444081546431696621243330016174431294209851376608594811782967799799427593312192288479128242407546725972117934514483410843228042614022528059199427046588073178156956933932765635536111198377269236945784844902029592258916303590860152574435944983553533491716238083425810975955416217849032482533330376523760301024296380426959657702747383529726519342130248079196778529265245261321788926112815591510228769696822617672373230141406640446987605265564078227971773424383027454738145928972617101668681090101224564564005964048569247609915980637100996784764294842174039447825643335060563351195294383448318726934132691437018137509696768003680256719946844842302542142654150268627620441279748113760113709570202183467345934350284355301664500757068343128409628325189080823547163673725911818161703320450875795979404889768589654306251122293795081205215797525463828153951985238610232513642247257370733876192075291269450245274765037449518679245931285364409090736353840510159813923366901211178959665433699734940116932142496236010667959679799773735807358018277066993753832471746528702086953124822372457591044421797552087820416356977569087748776330017613942387582356872331267524236552238536989060752295119999019142891665573930492316867702233100961073017164565919826109265809260797072242115932202438421304283035181717920238741094651808467991200687029184397721104538572013559690242066182062524610161998203172521907248059940010091876891722784454178083967917478746414573233563245904515744278385443345503524911220731868150827707719517853775996837817907250329401509069113310487308053257012395454452186928828991651960233584579203775433188763555916860612628950378081037313018862450702514978868288049512753243589510104888373029672519859702040934179499250405841467286715453326758456534151619145408780596712425429992182859132986314610603311459884693421508686351839909106926597331072179173049584060178876166455314173516564485033074674514473418617407876662413997519006071603072076201954513912964630040858966304614460272669136383502336717152708085603166589476257348792014714144915097963609370170626134575767294810935402794380050973154390173349840388484971557358019688093730591936724452819371545073291250227203026672819898937771760867905328736655793834454016674518581527671938139645468523166601207353802898018723573742262655283643799796292258980631665656253051602987781089762690338546532331434132017343091848891515761020666578306386825787781481239339985435865089818783863035071782457344383550140965367730421234341434539008367849472642616950190431095758758921584042738212547194316839132621290583069934946324683901895076517858713218844887551164284984340327403926859142725737586330733142568016628171418226956799546307861667260311827231963621619636381182637962788299406596725081280567390864261689508060724420623086920923235882326213044158918580843461544442401792229310411693638211835862557837242465259175382726119944634010324136204675984447360781954978365637974423057406916503062066721005029778754100710421226832373927030542084484391298546796812550506026259879664524848730923839511717976723977334745582050419798454713675720680296918185965211026337938969036235995836238810941259171398011683566714093372187843844401069525885180139173309568763798040900871548821387526623660468101905393504856564036068643041924523821749039502736235682812759538953832904229950931578897176712622757978032528544588219508536465314374808828067475776500847982344369749073462539358616776734106224219862994003831538016964059401050509236656773456133904087225262942315078757152447700085257126189833121912733454075707982484887851747645160793688983077369982211557986142525898766899568076247615637947491631295148761826638674266104573297696135794672640347564302075524420065340576799520320594358564009200109535873429669926886621024176730246474344760974522401530264303360639070069778142141573476890792361370394125720933597809925756696198584878779844460392331430109518556417104463824348497751159019414403797400282587040885524076186528998649032565390076527528941193179029943068784195646908167717721253137388448974801839344412264924530471073378959079152924668055273123249549160250494218046121721493612121183318978580953231345841760943309472382578751923248503371007703891295853194986400164279780384097560840752939882684274719916178195513680347066131377758781692279987780109689179064118728691626912899808765030057824162854295144901878129296260955394468685883272913303532301177189816035910722242790139558590332562774235609325694892354230302560435481731811782924177255198475778823584698399454048777713438290897264605753995862597699001713229642412485884322456163814296223735871922888341567868348084678884968714966477208472341773297033736582651473448259642936582771662003392131370200082127028118075910730745128673243261336971749153145139723913942980718785668382816582078555956291439297160212930740274538428070184055482473517365284885695541390802958865043909702980821976167192118800644184166590368019495889286247657360493737791243334350838912609592727063958339183501431948415533439161337081028670184410514759541048935755256074170664224205692993266557936068985191490699457460135876411438038545895717093793125417639432532663285290938751006589439113931401253775236189668138043334690315920788447566706632851303111213963566045213512502641662693431472134463130907889390034152075382025879995488999196463765426816866913521823811854585788287386965753414962958048304618542417226444189097723345414467318804601631758426114819401655094038337166694811131234264722169313430108250555178198855615843971707515663544709459839451567497641392058896050234676537688824511249470818220707232957726287847192610802973157748331535588803778746772004865183976370754830970602072259221111572975721502778187146283702028852656780834294719441617817292637851953578518355158825605430359317320437525663909678303078996295248287904129734352311787055159652771732403725003791397880091636065337046412911285605693808529006664513611204319450396601733721676448629556149800543597413589705002703990233585328753578175577702200202307988670448177700320122754653537468330038536851334492684304333961028939883268368275601128745291130626691306982843409064398851227477053800632087444939703442171592364090454033555937204692516414577419886223663702469426955363977892002145751290612965651287200850601988691421216785206966325843745164081018371725427596546743764711212574781625232148755057424141507575125267047658468041097912712478690460857681275874317134341961713885631379476503709675150673495191331461720770911286027989504897355131664059382815891381621579084985878847249985422719816326859865299154789413796870787984497148392677783994532276863345905353061904481742868405028096734697536057488179133926657333922580616829784294361501035169174535883391475339701738714818146500364643428136185833205657934524370797193311787140293193862811180922187925675648947351081578600688252993670257314635423546097936772402591350747012990553732279240019063939148690501102646714654130900977748527454624727334965227274973768314319230086301927798293593450100496980090047579646209594809234360704181855365941024060395171201213592089831105190988890284257235706926122670271924599815317413790291836125628478945297143353922174603327192382927813651508384839957706814629401299452532114660506700089237213431235893942523485578065257454387636948155036882666506170450955020913884543489631932236598609298868966408748643114084350125348485093076464848297949001363664057190787324981779970771845003864647862923069541270530381416355261977234663089601625918563608158078531374321971437789705578183717026502500834391531591223785521489316992898459196718008366507641139771684397236484557734317273380732092192821129638483382495378271476865771285900929371570728403592959207027893603708125345996934705774082349796993154264300860998147239164742207149720305362588614182087162137063648431618407990400102032859490818394366012400122418328820044449830189593503416869059963384248554528627166227752974580384661018509314617339842615460574303271542875407618952638515964459414650033854987405675613762640003146909563806329309568975133566198743370555625634990469311407767306801143320722719903028847107821952439374209962636238688705047191689995007577452076072346734887663035676579592136532284017513721700583958941271016627064361588926817982734389383714662383350780291874537440941645747339147277976014293627962623441693192849207859032939147869624755425607476996995968276539027795516313153309114344968513565257620748824858733455619026933641550632642699379366286934773137154277469355516910704629090597864026187104678178376504634462047708438929295282759239363360041394718123267463074909613185442243259585032454643205500430484524788671494026920341242722004052906352654034886842611899841308333346143779187634533019524882976947436342522760418456585303260027649642002579531735099710643649272992385894063695304798913314175026851300864821452840337110199241864015377187514384222796804225162667163216728449856102960843697856740773680176046120107824817869783113746265356672207636946277753961078194512070147082706543904519281440023070954641141282703138084812469114863300533285097553073952128896222871909241447946305944770256901314240820797226358968390083999745145332157699331015792648340598904159772846568540671307074430523366467904773659931023188995231222415624659657424200668495004944320270485354829228264603671646751066814189818005718337076430941468901362923568880441389927535892524254408115985193163380646930978888263699226531019629369639833076564742467482536711043093357665536329964891405743364289708665736359442311023988786591152045365235528734600641409200580628568213609089778152459669156420030633898386945149683414962790380699443040403340275374365847682604649792592787684413010369708815239410602131698567468373536962859668116770870980571628591128088543346816853055698839540037715176399341830317721357311091350541089715546930158086293071960548234131252108647207291979974984665578997989618260736398278252951000756902683194791643932366926110541309734468511764254030684928266316317803562452719655119605246769891338992150146174911691992264015484169493117930903433567240365892494363931862201179411667290163545876062472033452981351630044923496936509007984366803183160894369181054265657403537899038264482738408833229049025451727841321640702287507247203555049218017610364760516476211775954261955178370777203663256956875582029033772596895403418807950625144207871697181117722432854933354087644080572073942811499714283646854701946657205206906864304110093446264891079878425161072961008916034259093048477729486494733686376633993598515644447597909434267568093548778798654511750131171225558813249743926660540615553529498573170174139738303987830819821870468553678672635578835836500208407566984040456933739043400773265357098706438400551872692985545750626064752652671392105549540119937467102931994408768368298298079458897882130821958667147087223101279872246347282010260287895835614206761600528236221431434764222432950893426371852362507845406244878672448651141743420372015941450649706283186898159914578175139014951805387349597889897160338535057324210025566861806335162177195342009940560650442010679007743593520391125420136431478094552809208727356778787967807628239069274575100519018582852892570080055984133444229140357988606598431185093264836636300269199759630092612525045853461808710907757376535300787625236393047077767581900816633014190403171429685486521541698393350510018519389398137308676560547508948940728258756183201238178238218008020736395232388512625601759341172783148051244693937645642960496427309909511133494961563384934725307737290883686617098103669763341214840210012963294495801331056198580224486534781599759808579057436264001820332408997679298235490547461901662480698365432575840063368011031174723733333344228441555645759295490803812400692722150462653476210720663752541099467766386613628396770107811829929672246224353659739621014054506280701415760014883758867563380266717218145824942191308059018490242172736766593864626779366460661531093268798880524424608172227567574828676953370675440808691954042544859366610573053081495184487036292721637564816815399049846286669548923289048969700116116667206956704699981150381532223452875829964726674371269193959688372471726553371812163221535206103827478474035834900905226228611102890140209347385440642480088209862417840927616987889869242860883947651080149029754799509313414881147861017667465283826481412595689703629922573724091462399312601160552147470482143043142752822082346960658121250662964320558494789270393989463241858580827530048715069888573519036431429022836397022205874227605150916967619122073487307944146962515750145027932821832742868868876984867357350794736512525030406865626884261591909647085277282647345307072509667538925032821656387288130472609662609857625636853113635302682241771330099252244453413154900146487839052586758588186568094056218899575992909616507925106166541468708984502452583040626774689622419660023831535478437486536824575650705409922864434791001704026684823014058728894202632738171103475859399434256441682805552953612630846986230781810287519060123061340816836587426163804603982308829437977346178697589466264304867843252795446671251505958949396622640506940315225013824556932191191410397415820158927927095858767809031150922270830261674781950884094057555630868582388250698110091967674442749985726966288481328724309916783278323848763214359244234234057115416222883713220000204321043811138069551773293003974403907630109099997844335779674010265072285243742631146878405180065500760269301586627046820126891757874970649607635015595732229780969260278197075490753407844688142549815255166321223097962442517691111124781229472467641802045443788882165040062761654944711379997517344539441742650780677644568137389766240108007678521573638705885429899983098335280786813685271447234288391115081464851159346589053983998013091788643628693392254662994657609570337807656698065782633975646664308405612205086225670980502825095248209100725412216181676919067537181386869869436269204408776817016618883007707971086735170599977514919856309031195577155799513532794584201765722219706658910737188612655853643955412392544790229725168032425149604414830467281270815213331505639529445888700193252527698661478229634868807962599667882576449112947307587526209995078377041241079599915902407483574817548622557438568222182272735221300802315979153854611446918782107572769076631449245967175549964448742986413616549637523429166168933969140584614236458167507455401630896161088723585293694311140746885996190052420769647746456473249843046396465441682482718470154305836343777789874947607736460023010084104505610464458358285196576063639984971306842674614951987883832061610380661564304981177566141327756674458336075900892662890918448948874577817473939298599230116777018809934677969884112581647517742490710827448098422874898210201465772592601834313110854328487982033047846903430087042625658019635040248693284992112238290301017696759806546986278630136823424661668835375305819971453197553859358363531775729280426072711828436337932101466257220698339759853341926162067111450062478900689461414951226111076983903048106742612087989602346500470160034656324310421643276547327762959046616810034345071586515302400847136174982038907885900581848106254735048118053451046136717667993747811737587327041884907047846239156269129402731008778772485436047744276688090940917923546787030916668378472504739611929521732143073997745191310643653613639209890034056118912172403270264346691694868732198897898720693525114965682321563157833153549039537970732801475384838332050028520503535521038289957649684835870538958603399080941312333331019475616882828607156414490560840743509105909464129440139569819677675871692551452802728082866076951625474809813575550654260975392639439713695556311696932348373177772490841075093988507964381949787110276171569113108193177346565864449900876404952480208775791676859459152890808569441706917800359546833674569338149608160882019511692783175010023674578183989097248415805627153710904363739460372647401858168767277386687961312846908617882533623361722344694235189570763333910725536405764494268144802413712706596950550688026389825794983579304523190878923243295181116527478799306071587868618087817011819270802164802731087270631198323719127892542715360998113361211348419762136211948967201207805706361995934698805331700132379225962410941063669998805285887537587188983097499527002979796944612450469902095495010580307427962687068959937893377053231494365253243056381004740424822328070757139019623405673134134822858198978772985968919702929583443459607701800495615650865189914602379877803955172920757304940719621404374564801826373500837559765454876505566115643303425243773655769188428889267977762299048854439638276754576225170285396051153467531484903187946304305615304218849066155715268361506879850491209065349149245996047370002915502434787172042983031397419479260814533736339610605464965210000412603955131285113849119555111259504311576378014317600673319589524244779252846291929958881726128922397860458260769974146792957756635315717811505663532914751733383397751316330193430761088156590689705379307395315940051743292250655755441535662448433391078886458936245778468234591105188189541148518331859406700760148674797843323304270240111332068385441023985560210391895888093177213070127485348394850685824077853981856284133551470885053834928344189227845964376953607813709702381314290782007993231687552518177226413302857312330304495179455187050668242810813528169901734685882684813331310147454417574418575425228809136864251154841048012970880498898847908293871611697427440075365384622971941379813000482739841917414741947028868640798309136574762797985645991060304647356355372902492859654066829803402637299105022858088175084676041408039848448281595971122341021614184693407942108318489272457301901587710076790181955048646646394906579507014662865889780848339248002492902983346354104991889106763177211652723923097974029736997230949698615791616100542996604371080558600402704631268354524351907835437905534482223855759950120662960045791605550235779921883659283153699289581082698975246511038465055920415092817151341836103840084328695361650135627872474255822836407165196688405387318779723619628907063893728729080514935580257627650969150470850307132475264002010826974041779627581309799643482618256232713368785883980575079029449847957578587518867362415249568413698916174594903189983187544664967665464119215228842601030494519320918184338271483567125286316948591050022982107410849917919161798586874775313821261040363069213810979670016453840706062412529345231364318777755784618847018062311789084073541922039232015469024513720363217871425658100096065390701646960950329406165387676521055011317635101498982360614793155577935970566592015185798425142522393774801371823179050431261031593015553582004597760290155460255842626060594866708929994946164103913225181766443778056877662967403575212483335602379070640542097446350610627569104465407771717390183316064051461216674408378342961118164944800641902096160926682872165348212232138658471367375169307994320937137138725643038426483193682230352716575714848243313281427273436951940585023122037617333921527489044858875118805157869106096811425054831019345732869878559081583807995538831423540638751359436722810662934853419213552572092583055714319440916525623958360498294665972775718847150315346901442867394713576045233778706983402524210076568278370654466903867696650060948578762179685815119699463904462006050667242503425968028108784847859536617405643252811273237890730810799242033109982684426465792971455401634909122944657187998488116318812715267707031482590903491407729187433906116335656606387850977192683449405274362592266361655937289575155885741013294266249275931742498681951854397297829065745550506953720917478411730682842197517672638348114886382255809862466510745035977849543884018911465756607057334361225720800448035706876121200963709533474223297530740611632382078898498744932734129118106739506917719155617357033115733879243919458384556415381353498404062867424756832950890358457672039669779919707092141790564748814172614627617654861024800120340598980667963835499304011805956700953974331200045728297683070798169658611268313242931713071522280366638186177000409897528644622688441547745483843814196281253130675034945096853735912269153106900072114980616144255097192324910752349924200134897467350648182534160764914065443686240212764208742136086045371439846195307676239935267071832746170578441720630957983404665443582668466008598789523316321199138965259891454601034724174088533022002781699795997947773038936836748742881145877834134984602893760693967376613667160217803799028715020891128975269057221924974578622506448466213099613113894769687486376302828099638595356293616200738449768279537796556847739026417726264760058526073605396268686258225080877535468093049646087169413391806698205374849989227275298643864766981368941247002462625788128512995249069160808984674890012279785175130153733270670380934890117191515037237839705087794842946424284415068118479558867419737446804925311973591348050729095701829508434095075008469553366807385849741672278486685693596974113713115591560670250075819669680091458421227867091265388379595797916239792099596182130004445748811652568994470288119020709155855898203208122192043543040073250346766752627324774768393328232565603590502901356810612413198591502871565893556232664684516196513257920349162879191526668774451429135253711036520111967000703424634287514956818508928025207763802885546500502215764385711839956613021311613867343790770226574600414912034426254694947361894657712087559957364465906487605387539084611970722023881289264577317931510883209256057025447779573626903748693731937164277487270998000224767479107759387235357165695387999239466336606613389645607183111972909839695495699707350650514333300497398324936867553546607308957789866660276762907400721354043593338438095740359791027443511927456143460739056652632326451436330811710529161214933665901342208633524582464213830910455554437315636169545268055494133241118220271630336730741426461497836068824740103576072988907219082936498851595925161034168506409673768339604140048966137143728601345507716682645750127789289259762127633813758438630186451987574164994156669005486455907769044627713472770268698964125106479652462339816209740867854589775738022043298612694753096766579911460023467581001941034488980629748669878916566632786264683339528395108419780967320654655822163943600237959777553451080484580876447957009949635586632945188715613469621291761250014198980966219082881936192860852283695156372970867009262373400541137689586134879310090538710814729044819290362245191634987686557686455731238436685379997164493073298312181399220178342436181751584929854566159663010574232085183903026212503572481716746170876146095092882205841059717852893301730871796592377855911026015754637471647262589195380850302742505539977312353765610430326724978585996333736347824374058706300653301798731788858011420124286633949232547852234887757864584651107140493674560844681142490110431029437716873140520337777894516432025362521656831813421230819171637653056743868873447294043734034681797182300239397199637781703566456381051022354469386902841697199633783229695132677500131997581425061149322321143196791619249556400117282154261493290879204383912648673234382657766891663636265724077841213090797645292188470557211261930223030666731013903618924859078134850587846666986547797888669796507217422990559698619879964373904229408230794444034471915967001243226755914297242518357561221339026031175557277522272564953788628941449628652081500576960193790404270884107009641224024951871801474536141194504452622176895401970844727703569904799836741579050092356852936885822099576301214691544084289805419035770698511637102042957374819329988601928272202478391060150312375804940925583443018630425410786050441603366204352354206972867395544290032694486647838411083897550827096509106594858001885637235420363025547565379272021342948889904458604423845071062413048082612595655827728580226946784996344015878927509446721198254122757923745645076708805579863332343818993469766437184022539262344179233425983622273492942844071646213657571721120531688585757959997626771532438124814113861356868071613324088450702180243740754772744888229557625624942054994004733959160931120272825815324777250583733226051177544547901142106143629225338564333856585531555409728101689314879042714589651689239595026390425274916883254702348050550346682851258740109316783089054892723933300626051553244987540619392905832339740119872534849492429757695180390328562219094464631582438665326459955275478838446020032046447167275137371556940854048320317275426883507212365387840842380251101430768691879038124800133962597949085609361413741904068813628998889915616444286333166478086461426513412767848965522346277717388106950021672691955815650215368545052092600473168829995081916965349083910967797012680389213058185491923378157494463624131306026925038025656007249064244763265924569598509838950870272033548934133285599830592765247070584313609740062781829253493401807886673312502374705383740538584169243127116359789323457195028431274674804006420893434086137210363229511710938805731459166820529084994403286329238468568629758137318368050743639017478055518476295105250326701389926768213648960005198268631956249291532305871931099101009097030615674313948963016354435475371249827542605253528432653537503426959671473627425793166627948855160405470663015546868746492459942676630933922673608530293691914926978928710759999009598485665171316861803760411304368707049218607428994854168188784464337297476377868556368716650147402157384723416702599546898907923940781481538603522756707002068148713452116582033584000967931466220242706412093744062335398338593105132750598294495667565918886100530926698646779675793104526458768684668560422733691692206660033684807178646838642179786559727828209837506115844944701320636933349201742778562850265979794691221599941577785641498840356169489782123266234622895706560284302526794864957767453032794356623571143989663346079069383608118755702098880134408851780287595447390574446932767137197765285596210539612445134745190587349583118297293634279622597080424103923375154270934377650318927430960463619233811395780282788521078541247401779076724616612628386458312231077054090264618133037693819202435295263623985402865927520846761296521546634231983573347800533022867071213121864724258142458096544677201612727124288682452009331293209738041686300150344229031490376737891986311308386397346865715394921079167025844326062758359288896731509373774241069040281565203615679480569674432033752618760878651314627958257219327811696900513058120340335072101982975345300029817509095640483221256189079936633635217166009505691388838267849742201091000130661389041892115468042022305285676774722798682258475892590795687551303879993017886163592128463044472090986573640068122047321572800943453300587924220457691404067672760072521448569499506515048222944111427854811603264994282539204828479962201225058908170444797838600642489489395447760447086528567755603626062234891036014286062448015866079510397103517566648219221957875184195105524398155283407896526962038349503457562252424101850548922546303151033959198812339166280325829046392796425456397673638349808229604754991345958017229023070431233702007838714713371786209704478498247712364991537177771677179264121810496301956157663786476668821413267556965542244501417162795815048117880998756503304376470423768415323171648719139229682203959632358375391368465794987361600074710694026708775881795188720648993427590205896193617159953619675887193912104890177376261988747174019669658924648484371932506184112715398400973379154786744531612020586209463179466905044575597726348098362195750050815347419812938425214224071444260982630075937230141749065059400453332180171057754977126640494742573659856135748989317640872140684227506300071925886175139078376888552010103619184533839219430430572622668186584705307549307331564742034836490305863499241942506616568522464562607136781909986850612739056865124482105810652193874742594051265611977035989428197172958014251893894464408247858076990823249979220007455500589916430368957274493542996334855562248882945751830028054044136442066493978070791922150846176920745428904374531607943715519741819311590388418300336293784098211094172461983962884628037086594550403735804955065875124659146494817443541042427036322580678144001272832803721037351933344493262515248869883149179243808897340328725963435303661708253498633500619398603445231666181040620427515189806254279219071394847578675620832022913981204824338001430197479181365820596872088093179708533418915609229884090758385282844305958068255508376923832948502353936829255817793448108938544809465314731213525125147323224934466990362498368193848260248292318221929524741314847546414973074136274995222491524683819208269677929605579400423843708794326277105131263027306874368115160280802178394645065097384107594176046723858264601081857970356357248645214176801397875729820557542375125315674985503862587557858616801846203433924152952056587822569539660774117972400823759705409051818220179198677935428806460894140402354725964725138523621622039635801915750611409133709381736897660642273686464083296948030615090637189278041332896281773293502904967473029137845544913628502941209500211284086726396381919541171757644935956340630297920846952542063677515445135689638113744625925565004598605026147479194878149755201790391724577488633692984269516147769987021263791854306309762049058517127890625057708221717739639251047089228373768851383105831211035480648298766642889110055265084680366345629174053588053937401173362375949070328996729168532966435070942455060845448445819980442186144573202146216709991606560523615161231163790664111542188443436249432213204688696762502577245945629855158502367296258490058780698532682353025472055436724030879895002797654890225880084536568981369628682935281719331159198078816629328776170559621351646286386619000693381378865610205003901845887719883802908244509245389474717460383071000959015196125648941414143723115370406442254570354131673368724961828259415049674931342150273455789286579876420103595042799772727198318745688057937514946503703128452240918157074003276404648307598868416676690329645168152214828089872155056791017854268402599216942486888824977668331900332394633221763569007113077402351366434031984373185890020812071124786986656854528664779557523048219605171493165602305621173940977355122126357473751291331032765804840891453339553401188272904654104349993658652772943912678020742448779669132294299289810960028338472874130885230631796604937748361377367280094368884518346922573572434238377896190491711997034949967126166877086312401136032695132688239831319514071848252246514345367410842271607006237708094861135051662403809178625091395933537915912927911508055277960275638802229024559925674172047624567692042557364529590014655756751845865347149145663132703429494762208311986213026053871594006669769819444101464935451747962105889091033072903356358575706463908026379855209915612700908190281319035099235498391583226071050085930914355677646249209900853488591420914580318717628804255095492962645169114239964632141723243324231625541870215538106478544725301107520897652755884379081264636659221494553069202108213729545537636252749848507190152253037705578472052606828608237350322923533946240043266695037000722338998520731448325179700285615033606595273624020816848193336231691187551218122880530705212052900769562562416126870020576074082974657773381126510305527109444815731602489393289500452157715045849572310272908716222066377849174665462754543698109901891889523934048982302872195197094796196996303524079748288704447735155322891873088775711753003417198713155448094090157361641429265967641235259665080386112655089272682470209170418089288905435117348819003621627574553989756274492242113635332219130659932805978320494777813570895039821870325139795341234864585588352803878524037478986280724957305987383601708628884290360644986250229150206046024404410299577777914397563570354641073998755535221112545204448824897353916369123767757382295565506373691074104942034278850552025950549903252264155672355297556868461150129027560171028269034851134987100734752910555306705879636142454756819253552997982683086690907319900380089700769158893693773129500658313252937347949335017106863523149123058549986127956568605781294897507749135750283318813611486895366989220873406588019188431329660785072846594584639854715889543268486851237471400077275223241537662505410440999058732870776104192428219960683235895936646097311057802913526275307144717797894604753015073491827571094039481040768528807167714045442707260987132791260571031227674564234105759019784750007961294004728959487907757253128698672070352983716432948387815791700778111531759584600429044150893924082467648307348550565686548756544666054451242324207507912959858397755251211506266379630383870163750625406307219611457888318377162006158004256872933433625397037715353205479868336365790719536384260318360406245040178505623583016730648657164674256670832367794490927066910397259250746055535736507103842671605927232508644981757163114906161157879611721561145181199595480611183353369010824784840500492238799959084585249796834682763910067983596874472576532217613054994875548266457353176610211053679278939301671322827200802957745282922222889535108306756690711754083239912882964826522358761770504781703761732600129151409640018425154811448587386699351135705709421837489232184141439074081572471336903570359940465154559216760586841136039290737612196310656213718330769778517339011326897227142182864096351170706960465210499564155371254970604334737432098345332827510120689771785953651224053988858652686706517863599462830084045819682718515837437954264897898494731576285550017715973821725535232559318444234891545306497732539217463241818314780785210498009410762846684702076423909288311480471171215335311407697124127594510970193022573726429262181589756473878877621460652320824477545928885457689916629622013379678104369920145109232588987306428898144059574309581638134219582466797722228505990233150689442546476562929908196138307049985086326350255240488731047236374288268048808063238389401614197071558460713458659756001913397208893720585697890630142986992444778663686739155112518041182307268258922685796670338948382457284243847696352131878012112945175685792478991845278586825081799692136984589987185488189813867691565512130895689477036864543344800838601647336356765747203045893677604229018976510243958381947589343858811748001026392845011481609442009561469416317369326241371054418400232248645246443023973480708803929945092564558023344908814731623746006186439000638025890489270095388268743828479268103837390781442263747887375116638898333051896105185658035756940842705527730163815744363291028477900641700367144131537720987827461747970753921698423896305753358447424784476108190247317051305153896288829981046762626676316930479625187883897523119531374741262455338728050654732216557333656409286364669813742825778043804769393717337570779943181991733294902173711451351779312068990830612571196885576652723495580441369924238597378483327214169931205323259395771726898311935702185284503538562007017336658588713125453554338930151013569986296237074133433711686914462568541161049685921005299243629141893357424777365599023320854391311080382299515509852151659115794396583365916863963312667978835525958445420736541382309224566012268321791909934596720269898739673685913117848738613524633653540425118930229191860133442088818418919419092856971140288893760302108367419961679240840903351818234368076601832293998741729338664646849889420811459325591656284467099019903864249794599249617774332903087423833321681818579649772910708662619118434393434060813367563176821931083887888980740723127057758648468062240528511468339470377956224439657619670942017770922503778795463637129018510723519999383141157672533390051411382539235891620955038636719086883886451603821133919193523083511442095560783637563970966954892760224381873083123484133482276450896984010169588584703420113950106965564156837987104709895145863250008344581030915099863754078613223446777434370918390452579868587550519417775301958968100151354737251563760757176690588394857447047136916955691531322878087311904534557646566869747530476225181870861563453998061520667268319826153493330984196882105458234761822624099810992669980372883616583212242540534490933755553463871367456002592568944033548512577782417286655994372593557283141407996106716662603565735308005807267623506194260432479843848964905421390141714030467940716251322397629014376076828801610099707122429158156551132249658088158479756516034110387416069829554329199306286697346424025347280662433992476597923058829959264407604978847317966008483531270167562496472571787591830360182317015708498936359875153927310430174473979578354521312372376087345424097010684163779975135379250205181411920137388687845528999764822430271396108710302258592717978954790436503831849932836481253921327126227659006698610370611288695921082306558959425696354685137590690480311927005224306168598207325716914493597444036076428515737539850764674061740753868053100407238428740764768444180009615075971619127627361736068305455957476930742895209787998566196960287589858545724547338068629343095424372074857299718253650275998864406759614071248888052722433407337425074976154152737899625901207425647312837100918281600318476188831644929233289529374970910879817532944780132022178610609676850917329705614952791909326984301165822338835852120222216099233541852559380623631750413107973484390096202085384900797774183108069286099368412640869615422133690500541843400447403166229596060668532866901286386112056185053475829300251695094244966752271805088758740675994480042370228618801107292324730857640109150144320557652277051909274646697697826859391600447545040549844824749471211014666846306552064045610248968300665959071976515227168203494666433850381738826524512194551736590048031207745597046017503197614350999127627644124514184155650864869762613642862077622013260033549077520821296153130451209176329185288004009620306832001246454129708348518129023645039626973406829756351522307738800042198447995608569533026314346366957979388351338550770079434375160547046368476487000851253388468913075957702667648708105722923271698704527557621738109471097935873492455752696745294340058828566549604859515574545048007331897156409647000398919633104261858668277016298052879561014055937709441694432565192942962928088123521201778956353720677726708626842516714748752351772695439724539758271296432707036759916575798570899273395728552498625518160993001846449980694709923539047856202066679116336247724732200079581831708836158003607557452382964908504619746513059903742792722903273984526476472074834418635882154557540791902751071240623938106539022050928561271830463631363454353303027086958190049229649355595310026970770252426315013721529518090130922023470685654227789129785305375222482224778850542864391621964238144735302568977730525770489539762107200523412267403233166496627976869009899947466923212992998505283249622345287976053967634484168651274145073224242912360881688860891743480887437187928439756843739297551492964856289754230896243895016223149248940144805421507725913207590451592779784351913377190867514401544874559674052999992655954218349028864142165502021039251773810862108023498161274555207992502237399366908003295785394772139119218491329815739020533383481148210366176971354039930727581805877388072207284744246332246341185217381869704905347744204258395853248040979303814116325741056241208907450880083822338829676044810817579470563771972663860383522397303351121090914615299893220030911147293393328371873820536367871133077880244330585482854807243549027245928683254784752985218284616506730472005706350539812683368516307249303303747992711174984176646411035767044832516234145238672233094612931959545523999146872297371846141252154209588413109698112449443097168713674619071876879983521369237523291154396312146777013555117460193035962688898453923144088882068283978236734923906961842237176344538080016165302117962108608351742563825943931761965653489938190109823929950370811727090072098267330651061583109458640406346682381525310970671691726433512600317379635264820276132536775858933457938484453794552519566350896662479628678571187876810068115259237152439205956079458775598533230453605831841162473411055345257442485235859537790468729924829300355972800550043460343391279204542911769193441516023865393065637430710814727279836210422666168245116267648787515135219452732857286590226462621985777104141815565655939771760320133183945830534992161460906163004599997532642757422967648448434353625703907429592602396458524272989794621941309135186717768155768363589534773645678853968390401419608522947080167728951768544265270092180643142347524557101308865272061678134430606129628974640276768713748007857529101476136084505800256672967997376779721098930697070221201217886821515486959557870035606660667969274193899144299618369336206630683180613039264713879712078098495908671968521963520038673929222598003670752567677571679671493240880469863193367524386315783274050113686499581979564467835710116951668782859441721363637082562539936710453735957648788112378568938682162342966177528508490529297721556119413326392632548486283872661456451237849415486118689345879202911196275080351194344407674494700480230644401062820254929394933330320398128322651882417099506868679506273524908438827740343338500523700396585704036101312978846218358692341676078327451529666585617078707444956628095359075679204301930569912830398561902362721176862755807446085269299650868947737400853400550526253844416083092055729207064864153943021323449182753870735702753349466333328379854099722934027616318786063586003611695413831068146347812026943270280254854736077128865648198592934447759172989883907427461199955845554557636817988572022212488710805329866216320568632430690515169249323183271737305270061856040438134636913433121401550678074189824698708465286183266199270582463950000259762374600625757294036037838582861605427412200541886023216010651620091674519068037090041217903408505459336907341326948945998058029914366441808819261063789663002746094891094441779963985982722115280127188354870855435640528538315710158823320236554682699472042292191834708249034211770948891893950261508465804346084018948815884795306414212042696486500705823478823703668794034193547895309787142885312143424925160362611519752188449154720670443970766259954979638990097839782320814077170560126616621129772059145619542329934530237861590781475946970228956711338232990054454820828822685005763704004499559307334672833449477711679944854042841068291475498589491335181509933483654730455015631105786303630689103552093747609447590496973921453338148694609492181958611089456057047008860573836634527080695818054758502333022026195828041091447137458843553038455941725944075912257717696399874024061671665735455659041047616687409792595718706123098322552198102688682800279683847594568784644009942265819604557067568490636304693695973345827948460108529723174208341698540945808788863403292463311519554109812889744407706078075699796748532951709775186870825094521872881744316344812524309823001579342279695065633468793573527464632673321365853245573178172798294061949665299774177349847876049213217252250306109835201221551399043312185526429731322118863852089195739329460007580518904518384984144479516333954240719163773468373034718577391278750943661497138803862429599028161498098375188770099708896095347650489701407453685766027786745916067694050713216754888583892226763076345364213388680612913460562339471908076383487078837672068323901638339227017681569798181146641261910730330022313048139756417294536161985316428411140008718732370249289405535826510800088417321668822700200937943055170479490890306863236406482597294172243663933606704111796294958523037599743100030338056893455244174098858199025617534264592554146810167046710998228661911386591836166426769532411947549484133068544580739027321292379006965404028255291932932802158747801150987981304808722361474456193096043665822133629118205277639991727530727582748709914295210485553898843939243221470908052077315352792378729104152007170818766216375682690740088897551635611469508651642589797091969487304559298556501310188075597833314623991576331631693581286289484389861383023105113928723753695839457720455018751994318120016116874961878973182485294538755271184033292712877537493485008102234454225341874920303054366569441123110323634482728037579767116207989491541137688284980916400576186077069267829384223850512262079513497481549364226135882257977313016414655485446191407589965955848276757773717763977336557932628470905739712647785933047856672150467583031331240075964089507303031272599166933994435261631094265609139898464293156588506985808905674852829820262337305265939709107627881941812384423254453380781757507416314785474686492420150495432109839686746019492664429793246028146516266806775112008081685041122109247678538284309991408494360705329015563916556170933308442134044387876406475451785448677516103130529970010992822752111243951456455844454040426088357890402014810632430085891602256096742505309149054631140558178830777637658497923690606952350242172757237816327027153365206510160578956413003978653555451729115399094197324992633141506936319815327278239418884457282366877680576865867403961550353718770966537958809032903522708223761529497648752888794754373693187201277301164499770867914187042452933286863017380037354676913521374099047204529006115798342059647945868755596767577015650327072813907962201397793986716762163320475380366570100993040830187151032134878341378940204669167379132600302277715581751953002215793247065299043174188212074538304040261352503942380809913086919739416573234742394135278969826616839245576910275277520514794963521991226082430163273137562837295227660000900264017612958042025519263949512837959653901243448354139775309190764824591553618619964335204013138365514992267825112798624785146387392010083793427761137852314157847479724856532704573944871925574708397087569631769994838904124510450124399578453064591858970884741609057510337150015518679659575149959855951921420154242447068775920275375495312750115866912232408057345705294961415428928518711023827553604989788971233930226765943746624373091787161999440769757529364719355776078807047856703858418452467202043084613733338071837785140993245249513702872543269525056229891716185292577832646884255412996776930397582045502128901672462841688209569575241852123746021051650343768457098741925724504320053042698520273734356265204146044388865402942254425570505508439840796601075584544607946406731026220038744673634268771205289789137233450887313559425722307536232811979343392290650858819418468244982657905356522548873519172101519014017283473857313999044212022652562711225624438921857952460558176593287222415064016657059205677263385757338143359781024719138054930532174993665325873836218161891560482229227506280557967658444299058843968372346596641072034565104496370368122018590390070424310076396098332068803129461546956183531050052301281438839508653586207347133746602031772250046866695903010779442889868338816790392817105352066700755820088014590575063867648489865198419277453250725423051767897028829176286055996088744407000876751581010244395527001203065535952989759153457695223595309831276052903270699936447516586366069406369065695981902707867712057974644500528033344286889178577216009653376503904645044853908520761174075361477541153406544951644121780567491332021658356059059415777027042661025190467895134741442625310815218994377849021669814260370016908326695857993514513179887280683277968693762541399464147422448167104964290383712125709520033576621903232570314488670754067653137894782249078006608017355367937052821374251944187832840710039717228253097257174511384669170644767289936533895698175543730128413367276320122095254883758928168482629940525270470303959590486485999703590933087650760240322602282709911063494806932762105806081733330465952913630355247317214386264550134090998949444471332587481892643338621551819928743047439588468154936938033876186918433715493562540455468472873548614920492195548978662185429526814174557131108358163618765441027575916481042789084491606791550443501568251242547618553311157177772610667032733828000182915201967568066455053948439231966153269159959882708478894383140088514944383066843135912930533046469968548461557142986086964634040582172646456658602412507642774342367492749662614215388978606343392053324455919656894853806077091560279232174552111137798630548177501186663783728171688024153603641015079216159957530923913877785361026537047650059224681657812417317043407207195816926915932407997038955401845135454134810264020475288953022756624206952595418928932088608523347741377028804751526000016200297398989739203492645692361020526932529873877919057606930919469350266801163625319813835005608830898951839780790110087460009840956184819564652869368202410315655494924913200588880688781334394805829682304913748820801413282940667003584752518706596397026169810504774381472430723144373735847088401195668643780082991688815130739352089841175233930325228377946622679530464745600187251916794424801468828667492397217295259883797117747647886050341594039681758103700316507711105130934269815427035649115314651062002221506502399588884140369384437394122023062389273572878307467884819019479252878573311833587417797270069281448353783118515669477957015962390805673963195968596741859018699677469760232127952929182143849407620812092380338219982316521855087002812843633188239659490954927768955905227072660549051442509937158928824217847239719613743458499750444377837155952103068110186720942416119789855348890622908302817933968118598655074645637506057266667168465524960612289450710778032969794419189532912221281095293694703564417504887225962672355496477262411475505340336220046557754547635618572757624609491625245070809588467749648986593109696562113173275348207508304121853035105951375451004111301390838647269373816811839394495910759688419823492715621281993209860179705602614279497410321758062646226895114554021343261591402157451621440823463392142348356876486302792060449059816162868915176002223855737444908754026126723449536676123552928542287810709603291362632661027351734225549795823421374268934075283919371214172764260522395888716674003966747393260220826213312247104793042599030145511456550294874321166982571249934450112033586327731163105163327771955656236917605516357653469611097474641295255912362023950894967801358853077254614455972488300599636146984459228831110141325271775002691855711646202814652239795347725695129299744381719752918620926073001924144189675162981791759845670667127781025519767219472357158302525425723863306731599062429452077882175402543030422238528595254376659513293777842136648484314224758612355594264974112762573473279306059835837349503023014260633583737534844520471135648617516013776569919499152880279685030345031890526021464822422522418785366159697726353761169877869995808679116404924745417048796290638424241329308664574971178767693133843635547484357967038774466978205018883722568216503677790123563114430942418148486376006412553351564877432786575514406421972773214468322733923304079102805873542284082659771683436517181085689279572742625183949397905323066392824255969133371302443186070791504200479061377782679652358811988352643912224299997112865242051699881851339145291414425627174972716503475557787579553869717197764371620767214272343339320092380781221916658384904192842635663944061977368529041422025613772085736083945760219053888665836229478452574538483532982728542742784389855511358944111047682550818561532371313287570792568371292439657109255850554295096668040288200467530845409341845146011222398259709117854570483084256076581981839477975434240862755255845348287656215420124674856967058494475705414277792119413885601404808836656565078542924535053108473694223448180724068230156283614875298941111816998129485627003399762851252074480762832014802188302207567679207723946512537333438161536460183935448210521432942771254155627616065789873327601120868015434575391125198890210137366729098895133930860310725964145867119479022540103212743172631990312968198853890681665380023747691298032690669938676274601184452171085955857088790356645125730227333167515434621601509727681816263535361743563196081563515414358839159293552788223046883059163029961230850280377288289711637610303277638484526235485646168726706727566534782778599093819594118044468693169082453745227209772835481559845583168781631163854422128220006150573536366712174270598503202045950272401408188706997333427039429704810046984857683991004152826339313626412785214931206816249982019764137769822395990846142664708439959079186063561025094904724332408152028790319581726445556969679724394655140438719881795484652832422868883444739388485101418502424668288292810856521974846461393597662798930493319322098995254020248333124877771339973236774536485052490814540110756643227244284450560302143233880253819172535910457664967787854441560621579875912382296651499108633694105990609928074234896728109277982357448213535400950518567977094767921921193013323721505731918723576259521797900845277894904272960567514173357821847618695944476438932917945235695507463369184283672988222750127741578578746656013081338903870018520501265732050492101308922640627172624916673600378837995121877595699583181756056431857752946635355946364627912753789321456533926188046744307779781802159363157360174270819113284466115592763712909386214019967539759156063275842545184468865297483654715988524829348875274248390287703911612444578090045814065633713297792772606979130650413499975034054528000976544994544531460729007703263240952468418932270658230270890667522217431267563403026646467732977307229116301397710268635315904804458778076196895143468801507919423494696776137705517262682240372830148673379686273814784355148116557595062180041508695978512610409348798072178079291370019715791405678569689104887340890641543028990062993380550347602294185188093828829249711071540657790108639090294149996298486757753601385593718833349406794191567625090928361423085927315049607703457730919102806975632938711015932363445829242429022735486195504187399334290777687188930970030661094529866070299521934073348053288814718693085991087739682254710182839250510618443267127134355495035854281512145713826622956031696750498607449606161773681710026058164116878343264458101716057933571087902121079745890007575548496064228798234557248899006842742677767091775139367812966002953117621389704699503198264706962954552485003811503179475259325925962483115418845553620240891432636252153215380801670848161973223590318773359414500599202378440113080030162175570643322763145995416624986529047145424784342619330094549104427797384507102380328411323126452008442219567966643665885089352869484399082267795492655970849037678203756950687940642393902337989696685026971752003298371664532140181977487964880346108960520477654651460140511065630865781713834113986613429251837912038784924384093772671333137449316483038566071645868581769969148142494413468907229173445876221814845652707532807626888869923905105865595739152747630861140767437120317080222013602614408670513518237239796236243739330169010868850558847745876076034095559666428488927880663810087548411950085342646681407228439919681666802868723137082167362414342600222420570281712614925484742930774325897965013211198342668339731164910369407010516203510951701275112169188004448378185239268179026410187231521270716086337398577702118501493433320615723577621501304905059254543774762120703639265355785865082149668165518687621087508167734592185575240864167451092259203536404327840760662973296675564096011099274544737953072860967991497125957623408761016590589903044994254282831822984493050705008734498765856094048908986291941700383346292088516614916697772043876335331414491711938909355787558547145653937855835253110252426045736699673965272408975446054845297413973874085189684436504134317662505345568149957013443413648070297518150266844488553160006941291355008661307607270362670124718162694973186984949366951089197670688880325769181056029830485565008599290504489427949738548987182685995703866525041999358703827354473156515049705222187828341843147649850234518748729623452245728272345873628757210887124475044338690854401024983926748495074572544681818419512258222102250137389309614068035684380828432775016493974573390283642100530487091668905261556985807243260031630275856964678985961648375804642414289573636688402433188790388770813908427413009131495577725990775309514086818644683011034031317228550953913795502111683045573934189792599048305430242159003751918990500754700009854765140945893129071463364300601289089598856371974123320134518412306271901743257189926264150833782376063297043306950066782539689047519706952350175718918010698168017382958423994496743043233303935134881536676801636590977617586533358847614330076862446521991869180851081980051688056278553777065252139153563556830159007728738963373970029929312619128008636930381544356303900487342076512038296154739887149671182102407561751850964408606237947479062495033556818591075229276913790505961574297900287278050631579855721873170474088173697950065762205752652093764988288041636911068384998435472969810592515522150133132829700376326161648455147222944085735834209795946295204516471671051790270311181006999335370886669584901093073893173719281407286221774291686242013344801150027895517790527491490340718453985913588320551542301064016171906775353163288494247693304898933395843091107564307615749491140961249343859482525918754274508195179992061356992102005603178509232904998337823084061945144653804785624317494615166777400964652793096301454765670401697406406097890575176986008193121106647138316871219026757638236261251065395374932650967267538645363266052657909593812909268996464022566677202289354073868980100851583823614582440920350472808362968995216274044955683225209429206422058435095346674209362782058841670592890028424373905267986926476808309527203517593302937282891214304337520250906320944610276158051258200698958924121856633734124450889609610203805816215524042996772618900350090112471135125844529195303520363252094166326640263618122591718661139692252092922356675417549023024848297915649203850203816165439538568341866105090487005386985495599185377243285678455756356603370780671523449827916243675039042234344710266277436722731434847693567362766188790641954342726957915970036142655955226711263671816676841989974731863944839053922963563331063048028378029047336156887513507790169339062719671282454555016794536065810278921273178376346023242007528131883115663842265748875511257965258841276323418907128688919884257636042497601955079029534678254858943400586426517684353036252944143448297572953256771886717174429759785716741977409937076989478390066047584492987445294022152993294889258239154590250691025724702484628304543988853748303059176279289000360792221917650136689033106136294187866093044989225547590209619369026005050881502244093058139947091342807412909496246920987073390337270322182879264070420941473666155003607973583413896012093208642492716080624364318768517011215380352774366598751018511303600687813825853500837101939955441688135109389977485133038954890608828470158241760712181070579647033090605978304603554245822444470846426647555349245260478475030124384862016215397880089271125863891230786185229837132609285692398576153971426181634388305585882614413685918321213400302025428083667935491712289040774386347130140324033608793377403553214609014970369750596585622419881499056787152566418867639493688481700938632595806163114840962280703657049182047336521593494755457757382510183761895710590935946202946902166562882455082723765240033420341723675976992930260121002613528156137281195723300318249646545288547283780621512327294548144174794544551068376578587877084054482767066225222487065970104017475108396191959402764178940122823301187458143533723589989277396244392946227183988640256083909729529024515151709842989399646629750156546340081379622355120298762397840680654293210338426308032132158267111337531238111554127392436901665252518722840022182838033523990953791004721858685378309299148236347930401938230683706139812883717058697135277490568942124608185809663205627042987140764278683101494800647942173509295434671011778679108299357108593164650555929385670465030397430529004562488731739340876723959111571746718305651034810794745248039491304760539704424222781292105228222945677930197380065580697244815841548964564915777940227327133434924174665788037839969310433034247724172519066479157985352672190242830823785159672629678769566579752550130040073802638751650257115127915941545531003948437014908589730999129979236708063315069770408297339190966693470907190575683615996825569995289939237502185834410355625754485929044666045911758332799096639856173703423704243542204718460809279603778632321162913097444649795155201119804662643196436859709761756239819192638503029783058483075774993001336262971186258497465129579261419647132521782288076070670518188347854843262568766788306118119161953525021568779148913242016076353111214950255194100239555815004847744309962511627357764474448271877765612908116708978218112414442399540554007492639065239366076033013297075254697903093020445098916510730703648955745552922620760110831478294105045996210698082032940584098027926786608748309311954195529420946793217492076277496510812320829027230690999293020743672432066316100718926072755481484553409464665559465998556663598538213483590473657414327510336406951343670444890267552776446253049352762458947654725173325422466240996706395238252254181607402422052451459576934734369201693289025337069022022324037172074798630915527363258200131368282076326744071614841469934542161153518530310678167691915529652883356365489100155570063787262946311493498632840755007241089846400123232393832999421888950862597702430031968696281142266729090421649443834230800750328488835986329731159299095729103923954902071012955968748974228883618892031675027376981617774110560738173902758474433815802221230760903144310187447800816926342141724319205268258560731041357465393163289623010698470662793853610240248777923913644366768738374211819041844630369287108849890448454779836796728390120877131003632748922660089113187642040532604080833351686374621874300832185796472504159587181161412412895803655994879012019288615386726916058961882217504701824734712349490279713340161591260941278931280752981311361320321083268494157550998783569723567397403493424997856859026991023705008441116254255289592304537573976795403064172654836094066876098518359230359791016136434200115977561820856028962532671055487976335625213277473525404471402504426460852189293802761310690402907429090943608936145893968830550058870025080956129815010424893047253907732336856482463284617544149308812643117156976757599381722631623766739810688519248784374850062393856097580238292359876081657361755066545452985221333070200445039613251480038584351596445522232887149449946992154190966211173433058849721785196184418843710635662596115373981679938654326306280584494158344040582210486734835404365169568567901204474949252653238545832284876005523469711012605710471560106034511241166785728179157307297008912366666091078902744080996303540051156498082188850393144676149033269998066226576032552101921160025886544630190883311579952791528453664663691812950405082310232585599139077534928884480126319610559706463268927178197238183724655756310171907041453466020641005197500241846784848747800229553488202829063553526533065442916823580872228250369251163687283877511632468750363134342718138425021713750447236110580319459616179233889318631683342007328862504884564598964428085136786228260524752229232334734687915202926584222182876659434818549135281397750853514341194464827572020965521381683523401557400443025137985548672686484403287238687619257973238198165297668856728442627048368181284628533858680240335322734713527147906431892303808457498216771336469169490697125518378820207840274607190174098048114067617880590297965173842421146157081397428939944622092706361935461707553455693412249759606033304326146115865401448932784108284775291527838757913674224041129786332638726321478805005361346720279549125632504361313706024131715569317476617105524254023446985940423561108039615360114221858450481509428606473175031509671382296894759151390050911906566307028936785385147356357408477350109070461657338273841134910621614031795427509392450148937561788810934479891334797892299664303109478033193114752571172618621968490089098050897698065781945926301754130076871708521736908770240302417062485377991064559501738995767577675116267511830441234040206865330472116162078385256651607413422400588932260033912416053961889049322721545383369731746246007856726210763673500332427406648741046352405525636785096119303821070568156346469608638563314666631361308119198550916893560660625734770843190645939435394288302884232165205172739470545529222733008386959384099233243074163810922801671815999121087697580142579224915240549214218360528569491306803837380958798927287915502862403700047016827644231118981884980751684271927833016353168587559367303590057356865207497749281525291183793391858777375990510124626023230891216479344034749524751900458892794727053304991458576679093525698337812328571318173689120576360695972012479981207322683210858239986242938964725093772066998770302097990166138970799253310427562616076463920949800547291596051091143149672239352782367451568142038110299450342957704894816452519408627898358586122264213625555940815413888881067944479137355728076304352852753649271997682747985439969109754434824703129384704430289343086091391579505242049882880995757309435003867608908420264497228705412235516123114054855829362429823792187972200202888066298424378525449789651872952630925504604657519530971620220317682102935331934504956080494280928129053550173017350407788699464464812456091142340836603321690897861064132143325483623540066677171979605295983140221623725953404198560411799206525815869446025645700868889953156888167320113104028809706679429099966091059396451738280053716642739849769225581742317820192054790381291256418932463986362653270064236445038225676224961459803015853287317559280953795139147242323032750038464922720654099213173779580679299380231894114668381950320022263297390007800428781798631541832810405210920744909357282366076016148151011358876992793071808528159475399816403882854480645218082038702891156072296080043120964292362410230110864759255794869490923816232091827065128271681550268675382694200885820811347960751165850214912034875033125126114122223743809520271871592067174684405926720197193715030161855118941229370534064211331763489318429304429920094715687701415175779957663912388138825795376056691120221573087515992489833466681785267435134767560059296021063349607223352783826096838242688194121283444265535287877283532622046436566372625781702126678615003787005645279119809082830688150285721843059309802277521063248385601635032513117596018934066513386228098154081146546207169968266327623293252643731250799588406130659868930668707004931302974765513279967399348661714737523334553564770369730985409087610219225182201021014406637834855736289887858665609970068757691916566257512689955573679737425179397142399037351895151491915490210760045103754771437510923660671109671513836708959467321644253806585339950073959613841693084464196743537404042881485915549013015968923842951886473316975828622521347591067636915670912321668892692133637437595345064974916184125104587633971212978647210717208235936179864155696820300028024820583790570543104304009387654271799068162283214354812586578954744656347789940659258586400553560125725045817057892854087455030662855355244226076077173238383745721768642837109790557354694218570355731713984733222663586552147855514439861877055597920609876371659006402274422217664230991062283594721665746905432392324742141355757387001369402227555196581535232625445267156755894990154793589328858327777026953452868094221580730320040735851115479049174925188142539520929404468534504778707284089400251843076051398017263381736809892557362512803548892072902787728940713074413627280114485407239142840944473322473997807940316810739127262605449545226531332942411246484828326385205229740073097566915385617163930474308745232320282465948757358617208253029902102102022036188463570071767482073264079171552334977276930573279691897157866835348864958546138235765655434347277401689395091648923678625529698271563685242248876810336859908275007252006895511848531498632270251664889729443925647657131418683599296946866822087307728329289274057666302003977770298789146867429813046500547792265549570992237203799546135273534063614313682261838782863078223213775335913060020059871629595399106688752821439498627387149644039493293810018949328404519500706921375331777162560625915054399446219874061899755472694458534445895499875985861475865523472355557567410437725135950127570941109940749416556945054133568506307912051646865702446206812572376081280718277524990999095298080327639443413124011357812774903548809569224369991433749208662052191344747806834865044288144371006427775319537661740395825138071378904901170196955562275786547488360025697211450185368175946736034100090295563703940061214363903015482292835743804458232019358084457524365572479898892732805916032034785764148087416527771671353620430175776829608475877749560744402075162541995260224496528897116644537011090711204524784505846115594463036257174429071771524339026632307255479796546294978423193751398806145982715295567685435186632449817024188093180363045559546713512312693042051781240719544821255346706903702840494920874290919494803648835068676721629829099219344983848268578891374832136871378425873807144991493762927396465760114383450358588742186770920863138604817361899260497324142576482018803970042317935859298692866629173792220042194879242489135103262234684325275032296199569285908550713735935791454694077559340577443344926671556922439419149241931016093627467188934816841307670362323593161675228225944092015115758076104300655184980962122644437789134022033043787027731957102833025434153398665569176217584488561730761158577736265507657886483007054686229538597473039202804464705177351854310696188399047391329733457363841086659608631661082072522316285875113149018303036291917755241465774183354184381171874475226780690404318009525263994777745715278522874437337430344699271011857471068211060096134585261830487916919546206687077821954429184030447608734588513916869073811462210242526487442471576104708681897045086544406551469607292455843500705681225342805777071867478807512782563719149464827190105997903397946331490574427697044732475158812439626983627645979099366931768175716990970675231605638765860788933398245510954095711313707262932878644510776331888216641058297057496972706703022198485515405010314362251554094028753606446415502515277444297217355648703621498298534633115304306646070839002440848695732229767727985173222986203889377610269582391816725339893995473187511618594926855223350170691740968816198237266944516356508542702270125290807131138270183361675649598674705719515285157187515300909673269321255937229539349099102220841206643552359596156666430342646726685569355294164585589088662663124298301243872136355079613023645606305008804220649437551228626321566864481850414785588494543797130349681219477982091658848381169857007275029208385995870430007522785315961852123276462335991946173142792956887636348763403512891199828018337712458703872433361242753764189289066813005603893645091678550711134246966206120869015101319294236026374713100529162092933207522636432269264142116940021954128554911158540813366933693015487105705055901417331752393223358583043564637324187470289431462649115265444689582414207339067354272253451707594534555226477166893746669879905824788577010603924737501939299589271954283586333850729980568746514479363240499465602017520290440001661038543461399768887093359903716144649682353504206783950073907725669904484198702430972295764871841203227468628121874639791166230973696011496737452652273130799945142565746468339726014820800922369409856920027476028603191601402565932831745741596588468605172693642168499918450300184177018912585177029907653375276389937829914626918693256385891583062435782946826034574188753478126900011147766137714939842091353891442109926330017564139361590693605626981221864758750113240596476900493995757456418018993519602823592461994116556093508316254450086972199729046364076289652918076697675997242509970551149240905026018848463339536293921415413091312341787233960317681288482682355804750216202173784434687042595874006949420505645190582669485623517151203395110223577169219978198337038418565468974943639125439048992185584481999474572289263038408117099684002154350754691922023203600946899122347533464748764931612464788419239191970953183396154593010804986604268629852953597450228582436121001276951482022965594040228173484879077747277353469853903101488495033999408616401574549951683902198895235196617388507429431961462462654263932129991167489106975569784635069566097370537931983505388365854944848102801050481730480102732620618704271853440354911869379987772759419895346618492193501876623944077819423198797643572078328906427631160171330308798095270126503314077889169723043882622273041165709121526773766883231634213463682018317085113612306098316974325878808911974529835598759258560005683496459229636990973457706608885901554590361306734113533524539465437086422938580261527441900910747433747442343412821594385103203186190403491375688769839513519226326121704374023745973822722968296427024574138599231592753584176363679164327371854501508877229474213846320200299433109904153311827832656961269414921476022689807098591438848131047871555685403492330576090056391947389478767535234325650814397447312290074341357908926255168014931790353835708282951472029284347883056720959818670033026694230452909806272620513309018334462247173766628466863587458586229288950343965453599802794074557175471509214748608944862526919671370629306883785688619729033914995810753891200725447520449049856063675445300209975157195421867564798463327012113947983288775891920164137952512023935706381244786285817922014335936275669381838110157489799183682209870185137242175715971938133508447413505567583801763748227949761090153759110042820937254542408659015998283882187552130721789475469296153740790863764818875402269979250671189283658158649403537223191899217455381912764349794125453986058924447772440648180479500705422850868413519861092554758420281374037575656166934408160066927216637201568210354167098364148001364361540675309192724689064931553144730095131111586155614002550001288079560201946831452369404501857529893649251100342225863269998095211440434767080495484111322793127235241637593239424967433755232479447246768979819999208295042902493809640077040974826125903668560591730652979232213496801280286798329035552654045629070543407501537316513825102817059381790815436826721091279113281533279823093957140737169619895414642185979310007893584288284962286231861577174637722491454369478639327067690005769181561090001913396052823472886758854186377931586100954190681684950600796294955769849160739466095874813633622853991730992086521052557827007416423938530953649873075297173603045301773278448285539982887245252239554411706513901920425964421307121363184166260451552977385246407447298023408463150462057377677453309702194971134857266780381661747004225649176707903281544807514139684009692248807866678057341736156330048153585047772979134324770634777773262189141328591965520634708187367459256148825194417105975554159092073885107191407335929043103992485767828138289451466194171264341684621761188563656334627811052885062948761440708261063457021896533093338607702275277114851075985886155757565479634002535011859328500437061217954531366919197788418427437299083934264742424193841604880256841512344038356688221977422536563601686980317605399465778439038254597839468737796244242682031893925227166391317050957844597415983185669735830600033925709605883441536661135279366226573764975794333119565799920655859398328101432525238454087131878066935567753706316535427878100627848467540451976218876463745287848424605830819821794195414198983121211826983751014778216523890749295177269436231988370579257622290068435408767569548137783121888405438302078046375133623677316035396585630477321728292810893243288207929096933663058692895749366061017107466201944087080878035986084248016695521238333514403605650395259142188341809606319656237658374555447593454226750904264166340445415129666348226151243854634987599635560218956442790086317426630125973916593114571009754221180971543043177583778883451245606171861459420942651347284469543980304741711512408018347130317746845127893420939925516678536566820591358415092448367127345129717296517699323391040062659001765081383607989648963713664083138140957554132003057499270392966117995394385915385992242331012293697817690902376960702723998981559352370433087695232156831683772634005619715375077721145004593282400794731843980034235301108915896855471801760878427773686584558053261764691213744451007443595614936700340976837380010308304918379733962368554863699859590312751851188578532566806528459060453980030413071832015588342904107288514930475927742322733549609926068270668534081932676581282570762829885957980301576506516714212311027216262225558699873537592426275068923704952219603284398931923103256636088439854814852913051985274193136254416494319368207842674540026945985046681982596165090072159293497212101949984487475337136518353888059821716902600550044352244824914963752638105482324803822487610816313852146031886066778090707793790287465305056058993233147902463569963625532402742621756306443349064514345598298477848523313149353467646810121079441273725433739682307437861776596358119746813251469151167921353508245110977331012952335049670396952994932965102908774278597564328218390380939084978016818484219878954318903793210236588616870848181300306077811263936595251958043543295215269885122740550661069128492880396377290123030380563564173732661236604149959348746048161778312966497100464431361797620720983590272190426654446959016590976342487205409767455896759766162988778815124985377634325841946926774291757302466347678479998934073795290253595741802532090806179840211523345130647555997275958277668663186924112494199487709226795322347768041073358010197907377724098851419478364877193274876640726946756007631566693824766170077095606520187788628407213766830726533831998907003252988120883551321421553937947109407261363373495569226338457467996919239407320420152068094779693824601507573816271407863955819523689256573819417946694969980809074754082185727608184717884044379814837978271979279525915712123148225691916517845125874713499164232387077097330700691744671126609359661175793412309995389189099769257206466061881351106332515097401817623011690398815320679144977881503427072413821357531191434419300087437923574423122349492321775652061794077350898666097670747892395752415967734827366915305769743844070082128080922405663664974799007670880926163138322378487880249358519194391718725734665530357901983365729085873808210544910723716881135198824120650801977499759729001869168176261955363200462263293011708431893932180226509166154603651278753354608268964686977719589716050282778309773097062715608404314635173971062586373414352453588776643564052660193288550449834532535558849712782520634337416287300558793519703230987157334423224251140396911951852061113337361041449056014476253118604251212459063114051061675696028867635613839669741926659833622036104691539123805296581254735089213361525019448578620038937555587982698316768991042440285675456727283358871977228510751951898064254585366881952050678261464587199891022399493813335846204772479591643783452674498849714239417035296911160346303966454540170419501037492382769152727463599824549128315422432197272803379341040614329762554703278615411849002887859329890408507874688483902995710657454066959135076497013016153758337037070955958760436481153706773057177157545774952858191040512482067636013901835974726575168416115525546521916122479659059680584620450365440960397328086467533052406711702727974473508462388494106200926233000607570619430254282177988074195717525328432521015888477158969430156906758872166860474149374533147875728459335840297735225170028288805317493372059369978961664214768554645362587835767409949621551583028477466393459393920881312552719711730990450767654980046414663540037636150039147221141827404645688579321319209891400454348033781475307661852906330181974471969048387435970017590566976736808165299603447349992777459518362965998717306806370443525856532362598130251070012224417080508897273550610348183598091916869111920110483112762775501388840331640124224631566025576598125350607625742462824528450003341186790585268801499717678128825041357965478584357496438329061438925054539741223174002770437806485551096965886610261125267302519267237628494873261132882474391089580875484682869101764748609307647775505832256121649909719327081606855399025349048979775968535268968661703870001458795775574218357143348347710938304092825961505000058262183308266704856709952984268559977032830412034707506022324401398087895414931871035159395214568310187833387562300134776361936362573896112495542143519075473158812049334164704167865095794545894264546958042385664221435253613586058949794244261185196133214426632006976334246339811836143131827286336256269273406410795015405591185006913193801893375108511310330298347836747859091429464485467134873571387550847149894251965502049702470601804302664397061305687897994528913346590728508224321639582439463626761532785649869132096030770934738392407535061038042868492847627971748289273809013930142536269105631377717303620789726045030462561377699074153737354973877147597506476365654059922603049711305050676685612805833562072978899902702547393569643516010900499715061282645178679501595598328445706741361125103797839561855807298944248590930692346864415965490217869229185988995596422613276822169725887860994349901934353129058653947246316835839672209897659936607922671649523211099916213162282454943400923072522104637367132704886591917930245384933713074927888287930569202670357619119154859531610041065464623192157183946636564012141047218953110023612340821549249028877800831359197037780320465522442888186886880042590969914335461577982273791880908100658522629798662918028847259217091874966477602986303436957282358441237800666902937963114246927246200054050263632788994199424359778213896200542830438053953679658345758100877489067900738717823722870285678629673773905870212081511501185261828745257281484263313587103970938095412493397745594697052401444499121580156367039360971750072506220747248711071737205849109708109212453242446449715426328200603542312525691079676379895947524515920215926502829131912898920000129424414114663394608302321256217449308593241417449158118687036299419969682720256774990692190206919922106214877689088658683161368996665785177691299937726700485941200338855416385529667173524972697066916495628633378779718000600828345865531363418790372604071457880209765401328213614681014975506177692754006515601782184001040195444494935014678594818456953756127674378791352892209320708706548424291937607948829671438887877236977373407108609650530626471691247602722216610951532825548089850738564353033383201826294074104198446755937382623812074463635009929345653352681216137883017358974641155481931180445750500225822444610259876095112292133901133021316146050685834223718835798731139778437616408655608346730001562770271420298319592329170553644432173480704966263576170511356103141350142914454387816965405713240402670554765898129799669497662870229943816754984493294002977208784788336850916550062256531185582048532638148168335951116839261693376423286733954067015629910293259240006469653649127474209489726760919806152443070487118857241616593286234579681707266087711717166669860949220552164212465558099693588503019964867437823040216651213646469880814870810141233602288075993701927847559221189242062169115011358379006649163500078706330818037387947203438482795913909861359765960050330021788465054872364704415561026135558624899667139778239877394123539361861756307964780613046839562416630807204595334991960350661511077272868929755717260995616083940770682424132968337364401895830714745529697836168472706057145157074842622055439981447245031913278889011976730681065021716097628488490725464852150969013978887078729671128329176743255230144800712979062277161032420898236972172839091074544440359359470501753229528801921884383613257560831456840590694227131613483631357851853705439532981948660191555157080846545071203846081050511673424289453392830855514187231634297117746364066977202201916844183660563463030802830198177760010058289338153994802781777592736099848916744536418238459945565750811783769186626445925597241393406678949269521130235041103712441536432388701098521895091393469970035987420465388682274782954895994866875277954667930815945868737866274528793846392127512977517980594216569656399232258565683590225159003930534605120186122663563682493007710193384352821187406198788343324494304053887596366279915033007730102572272560099949906228660182780989373875073886709955848031440806806603718433393919987713603184816977015178725073197283332986300543037115423645912438677315992365508138429525272381479385808001952683345933418498236074569869149838831571844676783822268771212219339006503699863455439903420488617446704106065234057857092701168485030293882010589567962957476003230349316763643466176800240957365216824150704778751839254073432062755665868480240607578594090133097361295215395157101609004356775696358336613730070994366426822702605993055374319634378048475202771230235325253439436937152123245245673143529551146573922070426110717663485950160844856088496736410064573762761320925449014907379073637200324445583636387540514069756630628774265988916989195764938822970718534284793985776392979140963484960139369415171711697116366716372699970433191816567317700786011267715600079264957647388206430210961112525194782665461317041018283658070689996525288246828999533409531720089420428268198659589933233772865492161186820729784707391944874011724083091057769115485338480683849311109650289592451907468757582685852429143064367771506524620770372367455930896326419860541242263443372016521796742461228602328326410492910942343284664242235920880153717853959228003846739094976482957117678700448378458010316032903699552171952457325182529537817652184492380671526914643708032071310537060648537133518053256474878970866958328428311021015731311916308552914457459206898021088181487587356297637187184556465697730196814968404514959233473030992132586252200394926261642633562848087203065797446285308271391654876724204052376825411962979898868878888954828640205157502790781568401615993380949432611016531645748215062451376880535091241962740315707277626660260475561599441130371802794790291467894272731257192010119271571145201616173286767140748961074182039318007302837218891656299744635228904981744447297671222702350655961508921179586311340639116789914016324789492787064089605576817553473261564915394255256043875847994629628397669700438181353785691648605540634139237195887132296070782329650261308698737304082385165415921782652309991524361586996727238034071008831270031022952669126159786394857517436417451674144856192066620714854771602865098676534149498060582172577655743202538952722575948155213010578746909661188142544742165492408327534454412124216397292248270139052512240934716645416574264222398613126142340388160385357277059027362945131030109603611894322346496984512545265788086752826355372488712680034157580392386736476497028289511887982608537902336949821362787307331998236436141768456762128927157617246737038646514269535717454808167390912675010660072417355732272442815053758824972313743471577744807201395797981440467080645440043069434670865922824730465855062061588209307921588823232285668019301809465514092670670736512972357542614797856442256635005938724610026157842265600069245791916910922440871850393007468193688159642886334102848686551427532526512480961947894820627214812143149170538301649296140217217881542138706782452670689104263659783208564010548728893660674982157481498404446059721712643640531725016070045455544601326461675296604643606140723240271056605646290145302587731439232897103946980112695454819331225070787580667581515874319490329082334418722888723588863694851114508322612819712778081871270356793769366788354530115564763031105704234786876579958511803750205778754143940165912283126498503649565733725024953895325868166099233502182915532325227350584546170263088502469967177991729989431936650580752453961044344173983255873458579824062280467927331149655747107547271838997408067310003373297008588295914525895715807680538978036372989382194056172975121415508864574699578110083389717349820212476041700364680125152875975859855143702385410538257907556381014562085466117275543308002576610683206135005180714898222155532302376384661275827752036451413555991654199920594252828314326909184679521075690310136633950465541342970753613366609520429615359515097769128152139071937668466200931945580225397377471701557780791871295779824637219670579895459346266766290562915462429378620604315025755183787599100025455316117072278771560709616733589607546616329696565490825998842820181450542330692683850015536148237768448443750205093735319140824177215599791678549071214816143174275504476698051955130684218833896581325922348198737828455020890402183082125665304182982172167601354122999216295259728537263855066784581156273408190589800316478947165447467687735431023012759215667339512308830599423051216260286453035637140810908695079040366542934920893725148539396515623108383364405547858346385686979566679349858091055938054256984598690734299013143385960806538901850926829548815711917369442793314459081572870005877665801862731937172000970432750998663533198620470801226238394031494962918629752115647614333838278717341180711301430881171397914723182206987818227173217013090980877062092861812772650295316441616687854866552283828424374775953130163860151204553257095494101172480485732869281034743865843643124270445848429743646842312188274502949326172291896634872996062943275800643048658193350930718595794223818877740473131542307288889179050626202782133330501815110489171613579207350168811690739674836419997552899873558465328999403528455073135280988096000482730067181297006913230740886514901721786508327233781934079804868663739029714141735727960338651844526687740852671110516909719296334232697256045019876959946007447345836325047507008396227798554820298061289648512084037718999501330638399531008636972318061660011281868335485427723087553989108139581610820576250550309967799814707892466230692506502823993635467717871461030881970405798852374102795723996884277538557149516259121331523636744760853620456301317240176621390857327850646585109535405481825168177740344511374622774444953658040930097016938299664321139819487859416110988877973874952685494024935821307646585316441719221193028334322500244908539996863444033518599778795176161181220982496976534966950532334560515339289681806787948987283674004517078845021141970471587801708625476324087290915846569874973313760490613069821802830572935558655450034793019406518037609971971953512589715104691116419431437251117347681607057872436654772728040557239973770338434271110095966639006040626462961208783130897424493011026483878487036873928361707117772097550703063222290628007649602623887769732238500111957983446799960801282654604427235900803363522428709096134594076446838739519994608968856828819516991581584721294743116204463853607909522489966960326741537513516387949807087204584463803769954208859683510146608971601584333620893967758723607701954153450090100950385156103207290038144374593307928806544949658795669790061629860095438760571349086676083894345899145007480931109669173769051798032303815764000647728622583667862789896780357365181486455900934555633846172430712654219578209212224382441512798573958950753549059267552448266556863323208115652364278650570622137924985167073515504155454133684487385076307982226123246632583352334178832038826532705744429031478892030548280245559324797912187678428534700431915123977334071096704481044871059421600843371994551474315465571883250232212452810383630124171459529561878264981442466565267097683784228922513975656181451505277211887701438591233799374730047112412319383587391305031878169120983814914182624268074521885099256360567288118780622781634159573962354947323868985175310893112103491478870724429111669071507258664724959464409799594468361826538143253461313259285740291672070151449574537676118237732148154882644470815053079427330453277882107889869126680415234034256944120344639773929372246988632067230441593695765813381737209978343110670706334473257939785823380927689891363066266078590057793922123818744413632319977047244297605653363206197486263287974921191845522624459954740946333482762089147429947483323349139114531202787322976961191176712500920562722822138235041993757438188048738629774087424357096786932831629689494488772630891656847298418172492339319357306950075348108825680373248306608408757351764910720261945463491024942893961128787287968394069494013066102134266639083300311732540550419909107450663129202160203289813803230075973324325809832382685574427647073444150018544625838377135776803551014156095414387043693603679911906059698930090111092513908576380291757900822370485686191712899249528694456566987785925568870641385159357867802439877280753617563076240312204005114633152570145828222266794316837587389927137160371807020560817505858573790916083471338659566486990362632312225193820620875060755075241371701478012728931710101723052784357141349884159940897083589360467813024615178052577573540236852253936713856071214498094061606366724254667690518516151160523413454325511612905789444736709350771667414001026469077406046766685100810125426262961167202591525221666486086704883063523295522369939161205047879682513879471933597648900197649803560305159209083545128618326063695459649480909795676124958148993333821544249234165960870654642789209410877076712913657171634540994909711943746917624046699738351712681611874583139898941731177904692840205619964954831168839318298694875671925553677885805570678701202334028688555701505878992738479271822423375729809202012483285023258610975244791187053494814012684520217856501422285225825244761228675998836130015295693988950448871945806952590953711621201794088910670277698132944005020294753167743204880851140137130658646064176120296278768673465132603085395684281865523343653031863008680279328769355882799099297866418785587056355371152695095146139548941280080218509786759655340678551135213630192501908079381644518142200919173947214951612166838453118643440964158337503536550233387054807131972546955282738838919134652027589765833921553141405133750017150039316769859369879624310772997009880744836247808505327516626338549274261804896177229758642760524704481308388590801341098434583859902522692217114971060465820638137450622545214754505377615673928171933063176454672265705603287990241890887994292731501241549884257403828267061129953586549529501295746983163040280637284866469108659823806862615062089153567383361478712665865846836266149613592025034637555594147001083055748762141565865031196033418633073207592368805190096165278760434986495002868131032201152448730623530963180136505527431042106902653224927657155715006990025983265709767142889552233357127415830774739970383087259891706531621976742059821440753776493275634645112053298995485161210485501716922465312362183585569553096025217905893130822632605362425382588163556843427079899288550416645087944592600054621735095335499502419232062624697383063724979913732433369035339601808275766719038874933189402675167776600319731138173188230230645598314751073074240682179469233936454912114233324429157850218001600905440420573096861381562658355744109614705803514919353118148376297399064907386544120793384899602679709332794408619855531355701113149166290139711259196120836732586330020860002370419443487874641533476551459444046482299568771228634318655640651504795684759788263069924956579102497792857621768384791828110097505164695849696409930481289778404812077569348513032698340255450536324051871435589455146453752299299684935087913165019504342955515154501637254124834434151719359919119504534222861257794324413686490485559625962138456608084477870107628632002973462653099106393504150080278339306443958287780099479465802470073335510810747093637883199350739659376281246950483452181180263967684218929508161236456727861561516809652072933159586505161859139476077079930516614762919647878898453477440696019484601080050186226030534089923553701812243847347461728679540607763434335985395452040802055625049536532857446218539602606871763393932925516745277234750541127967560225555733029798801452278394381768946976393538663431108243836987126355414239332497386794305199506863039374623715441455946051423157383335014721969140945864077759984610839135468351051120169786802787860486222786227783787863872588427184527736197289400522578881757652844012954416768702895135921216129323768759601311799691154522079491635002361088919803190530127755375584117473742976362111953913349713407470619349394935174474343549424648567155957608557250037849969991811951207854397987511965199836849912018756059418500818885897977459527534007643637052291742219906913316336935843093936488007332953308065534572826640873949383095535392472852651431463974238112788460311056992255287131298436778132350151948973620456851088506429642223945709808782134665273484910068392821202471741695190581000691293349785924180484987183312094814780478947991733404499032873385047793911958974222149662350409971276933359823109821937608048095235444566979625912985803615575628338821591722492299261569880211541875768107529385287591145023760654664818757532459770836559325145967103852858845420435586385041429315276880135269410075110499078156369941030898808755434601781457457857274426079547097183895274070459908692951047520128622231690281907747463673828138526205648237960297988950187600954557208789257941848595654082453955476956311309861140517475547608685234755481340038076796002911062893338013759212887655719913903592888347988504844943812794469249153794363798997056242173346854971434705940586147070128211707050914590415716130105594595601845073635312238108398615437089976892073303087622633132147865249260213851020556462141667282974069952960963815868646279392707566750056030512540507754601964033467737066130965361950380105313134487977375470022675043234713189910179865311060127413273190642585396738728419820285303306100268443249548176339108055015480439957583754709535307900831584040383015402286240526695536697019475907117874736000833344818818128291637992253679792050986469449104375002328762606569328671556435766880139516983438406661879513221080946159589155140149869688714030927302899599897274631433449593075654318910503682746837423566165406509074710675679978365135740345819627549004397258363545451646592916226478762219179466981285652447045787356635219097819261171636335380463133125064528928738417607907763004773554251435287120198866904020349205413420106690486616209196127328016709007358154267874744646770141801859138331382102198339680127087316372095453985549290698822619201889694976449383702006082817894770691285648934661647992581347289979623122794176715025286820436853649552349622704788489729952116352821192167183394628997097627816478931041804611224556595657800635167365612992930060542510913634219577533249835989748946704106843616724103472891413489640965229897045797085497651851145924539589704730334134306444588939999749332277061436596291188900829612744808454293202855012894536050276758114355916973450538036410639158198880133575147542097650781507493217323141922503760625494977380433796805082627366368073857762447050398853372416249532948287538806920367747787074603570485409540028913416215634995343786942252359383986228784089260417233117338582451039626694552918868746745372189633239796507068865437145889563015396743023158935890978094706749519680693979830456097869890506288578665613946814434391549594436756212251866167904304059623935822261607122588602713662655154088844040657700103728123498593886567289213592151951127840556975652470429500340039474153246896844423465462711553218459631274691862136034778674887012754048302935292976949228980240836771356462751021702810849799711995617460874615295071750471518815328563362997971384330207730042435420803585815326645145384845774603197197249009988077198999565092618264717465439205223854379843898591924464279157969858980770250350348555800742827806915266871090032044047801629194354130250367188563681904188083311223835192643947111435533097798110711227869684188319116955581341138169811154098913137558481640739902768145257570568797362654319164276802451657722059433002625030738280854024210717393933296274081132148143252098495141242898968158771393040258116199743913209912260962995581662725721418625449513479077794339532813745584442036988943540532726896544191352894810560621957966188257371812295303841034954551517730958160856770958989111202024748202897366994516614703990978918826206662409691280294800278113994494794338412267960337922303283842303587161620777709750030251347368251444534481269444903735100802250580129079997948822317209906474117717928837741181999370387567618549845701034163049334724842861759188044844835931165015728063360967675891627224725220308647829769205129399076538045936288859016301198894012155924836704428094164206052136800422774273410843560251415672575425211497985426384582580711339698595686292468495521057461495509565080262815334815414741402742148518200537866000104072106691322709785288411995997855868294648764156478933054144708346418832445290985839481868494518039356139630906064227825204705522433996006765055755654018708240741722448160950932586838580696282516717669204550894988220277590136683413229992919750743510770399151164557023582329597989489688555193994360903773610224003049996105949620713572225069147850080356081575676867337058304762624784703639063503796989102657930795331200831199761596204261330774794279225653126780400671928734627987894060912702135107514287918743006160380866830144704142284071577660472225455989763754977362581262777720067388829671062049402289028144076180509393807970744632760770126820604229762440214723887412007014377577624554951952937198794098784157519285504897630368789934910491664305472648208139531027393605644198967533600419317384086612443135056251693575608540232092394658742346258965393333530138979365556846444521539495650426491301612439287679897819747795428085347475639302328492062002466499554609050848961832520256901522637288419925011076882479398436192243176421956290723087048369820602826331182763385115725179095945287357663114363112981462166476509525891821022999464248238857710876082919254949206267660486051736929486955467089827878467236439475221791136797943899098799266706883174503772574704981213799641074865772580113302335710930937810010211915210049974578608621627453877694914523703618234835418845793605899736474111164693280960089474142816730687156395062064899270330862976370124959868486705526379505417247377741186895445941665132335394367207083206931771692149075498158494815203881674231667198989359287562155115949353818471082695004647520489258820224578440984142230595840282579320402327028572127447272755724437440918265922239348708952055374782632602794723308231300323912627170969167194745958251145607845413892993955656772208801976294700667473401397398951800809883865069793352640047408948981822781224547338300535790315930531538142530488640469479889781229574925224801443988837422157975643243158260116816055657325402354722021088235097581864031725709739050363130094263652097303477179998105264751937847488916295437905268738053828180902006012131496587043977232727859941157207649321205282774877135513114369207699399139341095080613026015678586192902432404355238765164124874429734356349728639161657297264167395993379628599395731485140468160732407947587411978420444982334676853118965981599353887459019550548111887996212605867566571587602581970297026196509722938528169614871554583339604423431703464630110517456637247699095202675277450131752377401184148951083986186398915430955820615462051957464160380748356783624567624707240844070452560212581343284420691705927957707713732065561259625797053250040618254698155699603291547400487038306312157749361257953133103921986249238315363060519191383540296405890568406564439165237550337389795828392840847404489199482203825989214620352901991464248770736949646880745207346236688832722636981481423178610816539159109060341865323820332025730840870685941675064793594703917608432619020114161362339906133966827369322495307226556486738323948349756811386848166619324703881718759404750652380332455305026481371259919804434774225927271526356048919402090617996944395387510729063665464514182413016610505334048266221437306301097897045931821186780574243118542791359278689823775548842953338525311525126519266218070546585607973221129548418035698556382940801449622261052823057846737953982649223630341578687421255154502716943261252051305504361014430975716527193360873437605918228500295917437324825000361792133835882141617746545938886463614967315390404479690180595538427197793435432196029033305106223575783102010367078392546091372242476814286657913560238760587844775308415292129941946497079888033129078765872627089260642960676978855976091619084866850240687081797243606895933136735348644829280258796477646121979551635280796597093324294659808709396516047150963727097098455786461952096827262239093571851203531581778789284830838413782198371358554519576486477434583656848417763270097910707117979895452161931750881434499070483576634817164789272860096820299342664848409420781600264321998692399927491199276277046687057585295525126894335753210829570613516808232867781567443891034551840478073897254902857451780346034155019888666071215985579649756511455058672803921346380584564275972952234319154242198159305510094009277080037723016371596886408780387923719077895145209304751983169704050572692748781776759216079785320663987416240622361042364577855181535066659055169751871571604703243178871648388812415756207158269511124223753160565123605021953012870328176481810570109298465517799986069838502428371014537372243593720280511808592332106221136053178740596642657896390535711365200127017210497878839386676645297549286909287139570035575783704303938318670708480489473200081684905847170571677207726480961627101845281756147741490605490458414624264118702408695013369511325929269612990910589155227501453968460004743549238495345764449917402940285501138617823479243903996302471523932827198871401240520214566469751300075026503828603915490983192130142391789360183153298837052605172873520422737662003740309293897219753169227762481000659345792269063358495589538486691822207040990856401077088847360541473570398655403866311545168363809620942718743229044791506647019439805199397314668538678437864651386803370691906770072083164954574503105818991168801700671986027889934861653083787183136639261282217089627312485118258031697103580602886998007222638444930216085229695434074633304433657820842431265881987283471882877681155193699844346422472027086655514425947974084861348033263584077317617752770915151228888185510127226540562680765152950546184402089220508215693363177335995262426675229538212598250896653597797688246117947990416986168758536837353116206490237694217570560468427062020197128048218956261396139341712184542371945986373453276022229024884425111929235618688389167681124681004044526782854078244184600360572147877415579442289896516140122947619663745307795098461737293804668450721863900398368381760616256854989371454743843562025702036914491815051884671010549250735801696807526630663659096644697422891571416068736066444607043068973510878036926562566851586486736563086757341359629388282616094511486431715771421361961836377956829749740960560550162139708154547439774880004499236410060996047618379385871137130701070715958584232525761933069004244875129518544749255127984672571910115090392649916822326165120118770744056878334652243704204675822508158047178476910007985316359270397824424374014387992356471638143753137612669257036925677044838296017787668653532929633847736118588723904200542148817703856209621214216119517090382654082778477378269972060867596824522183701547626848695713105187718576280570925175581555238223346515739422512539758394280241494039308343844189944690740137669915946861625534010114167378575548926212812919581072109165395430480124202446635544678741497317992763194148829336328000847403093273683491714068923149466904157916186375248856304813310809607113813706757781818205092384558210490580851682122375531096549178350073524296723882365891921215683837558580172341877522129848792781413882823476469790252348344618687251942832309914847970712422257038943987732729445849039872383520264566128517352736043217866282823380488565696629448629181739151581747544527920681283313997816354540745354744790941950971318637497629415113723326491912928782443230945908853389984678845048219835580982191389008869349617605374607500713043754808045771485446720751110890420033445875251877250938319348308815242252951315220916889023671285856611224270159926648403721322581337404097841884913877432606842678194834545768250991554237182672660578026461930901032182107820448872881318799360115721541301282564335121562274837709657729067695099303500714507236877817856269613748084791879055227824310945546111962235815752455424801435192652541424255389001139463608756496168899878801899675487232690816091524507345615133878307800517799520740500002530667636919740741141403119326001768083027904552383368219636107666208386071908007894651699820071914766134117598721877006420205247314541966009623293630419445510290510295615353531821558767886175507400500455817485589252245905573684394101363475358712700659447629844584490335893802482045283624702445326701706993718671083202940564193494195499432679669800560014983915295917771591279986865866067990736458820529663464938582001803020000895979485659323961361855933995304524283098293114879143057168069337984759642485531821745915875246249210165381683306299625835007363175080384322528559503862379825858308827288392214239205675009784925550161480808440948289696968962506132931200197608768976025866079302185008897088433995906260965481373770554738080514722990959543330071654352409466834695981830685628675158072654636044810650619996681389421245346117168421693602992644017462863967399991165488601384763835149376216446030053468296669833795137863076766487202665256846256742234170248650410291573547706063240392269882920645417670165943378269233694107194323658653353900299853610058477954896021731510659595324977357713308284336845135214502214079551331217661910696688928308374945557503982566937377869310586763235167347768013172522009927626306007788396372803445598017081608544015408470903424759727194787861910179534432431157180815567446376048334533798204143581135919368081822290414290542761715501587573461274426615957797581160038773488038733582956035321274722957386304520834815972779553002792761057566886121668261236184588185682688895058178287506050127681832629016680888624226372626034389892282918631556914293188745744890901145732429862296875227993973042567998467473018334939103026155927989468054573545735204102680173827971272647332536113022126955009886083450052231311379102927751358419899468068268482289909003361215803758401071605195344981000661330435410874831729380933554432793628072109101276337697065763389630281909283348240708881223379471629113993049681924449542701769882640179584630602868867263185869043559454197743763243214780905540569365614722331511242235920406432930359081636231688464595816545226718763185431374500474080229677343680773188857257155040895260746232844654940720708819171145677310861277046614030234295980324888911468463884478008496830953350864748772501529781120512218463038631925650396605649297034122913351749923841804353288088492763961508683453451871965934147299486420884678590571456711433369493280598390598653484353245569943950600094755506741994222803784735360384183489266087792316844361114673470907186906974841460543679780864019880281708497204618538260402201111347066391923229638814734171436041053767831637103762256711518049497380114049528173631288964912563822882522988480091419198889738500127324454739466365386567730442862164107551424667573386264285950387148611019787686633036691134421691674592150450243558492662697822969960958883837652363841790613918741179570525304811330241081418585542307793595341016857804375681135648846344336526175645702511917393119539866449576018763041361686117574660803577844945088617507404772654819851390594933605840124281914562383592818752800893532731165715471522391492940625917236626770136844584675255154825461815720392206120387697225439769465602561036641249398824520784932149642309866919525464542687812425867516160340435330408815398601913867152465200935939582813038988763233260804910140755076974546976946241827765920821724189589445739080330435168047735676647984989724793324507248122255929209247516341631368068253242873238151053995481530176546799295337109097570256611204044288305372204912885937544747494368770789771172620573482023550112111177850134646254873042929163408586949625909651798752432344479877611078014072218811010586702218264218859419186750852514787057820916447220143222921282537239035925997365364568462147312382145216812099472839190706147899783757714056587273034287605117646005614735642552814350037933419254516110762090998227805487766902423882167165937382854413811702588210418138173992540806506269044047726696317498764913838513871342619630510014350653327892930182861395807748189203544008620147276577529946961140963436273906615893402694179384386194770581357241309023948095762194879537530317534289197046609036929669982494346706459464524435591681821250758751077784236988699308639640713435467237965842577657558617791759391485106288780651424943372025184995063993166826397295727459360370916026444243702608722482048398190258291807837308605398888927970855873761907993389956741526791434374638840410623246994300034126930555102094992875769426785718848739051148935349618833216485758334902998937108286560238936203013810544916543691344024426312437647745625900023875654745179857696795980530257314271067526048318362926044210664658169851032831898751365953657553730175607515285990476782309194876886240738191701705041353613952855918426639570923898412903904743759415564826139879632641093630714350027063542431433706165324233631361745146486859960749622270365390052482379761233697655457918423017301029017741295027296134096476168800396883953391415485905141585650965783507102257237221406158786191572919835478324475234997652180360852718555095737761978205101877174129369733354888696935810151565529484471441275690001801603216399460824931750784899209382717439889195695309895756625815116314449552977545470735008635351155815122477214556488793299132009304441895693960509297904073067373930078156920007294379398138664394560553425365990423974506690902834324929568779505115067734370399615050971894866344778110428537140353395075110147502183621158692117754357913591259045805587437059904068910691494574392865683202066470281487925140971958754156987437559356433839468836027748074148542489576787066452992327826751414616651504018526899715573091556242476316286154487903670420356828852110735206808680863285995737708775978758202623163932102106442500316649390605124700469354310389471933015934949735360452070752908155216421298457035205811190748913495197568291270902639653817834039252469420535007667523825524828810646858787917715921208973705946009973484437848946099241020633500765223763869619372444314267518308464707293098433490056956956515630141421487671875506460733939262070751504862416094545060290631487619063696962788271679769972506731589013244164365078495642057373854172150512561439578946557201875040861205282820209753295480117024168869156821134544784917883877207220586879838355795433682641295119695253000161943055959707127139870875669524074256888629606305596291074157098944332578481080991742825712848476001717821052802859737527055176965492389978500573552879818322702054657483597022999191475923186497377380166301520000426764487979953437787893433087027266999386059597639743340609667150930559235104110140469334440219452315506078383008433004341516725350555691410838303692669609462979823715286179732076542384229867652068251118053968374457755707654120617444366975775036302620402971684509590190751332686745035569570826058151124131205862278079853615478597286418402643655851233730521581298218281119474528569372825843480753723114742883378248782401755021248442568667140177181513422223367388127624894533859639469128779190699141454010587411536335820819450350378957319538551345298580773990737763754007724551371924904158693402016142790465500157260315135951598297358901357446706090146542535181495888361089814010488996947388206416223301785874246630698449477406747272013125053906506905324252811247092689931102991906218118859723728728455890345844839465732989306579482951459411206209026487285296234817704375707872443055383324844900969970388172743828738732352213090051298937627019085618719363446498344862295720784553632261629727288609137782878245777389364579499326125442983041150580657862685842057325020623627520659052251141556082966621238423982287303104398938939240306775317458465736377125391449652322061279801544438626763187937371800595189254410394153112011724324669896712349474425245953878651249294070297481504225097604162377602948597915493592761865646926764852800552341310716155461873605242298189186855377987121443861533566950418487092076797605583713146728133725919651199157224338456368001351770326024285457718031707696275351480799745498153721670342886325108615782527255102071627562416605123404182482593078397374205262943759532462405392240648305497129411761350492234380360158729073313304577113676481252962334746774864759008774317851335130149900650632998788081178980845518523602903318482798174855573707208150542323480845076783673019840140161528014285296855917541773049448672441792459077523371840989217389910348444879212088691854298254249115294148156307863686137419669805589121630940964835949106052873461105942491938898979853906063992627680604222445766712623381594038791971036959098049823817718281755897770496209663281219880438781702526757905423592867675450570468034767461647091816290657028320067841497867320032444486887466546929010383764988317126513568578477885375080326805604993790449521044865918910063775592827297111632651449879242414507812662532212791435934720206729926490273970800025596316012690360948827027104804928562174544538003369428606023660011885994327422491769581957242179920799738656876686029586180942047470095396113171075576586344864399656108579781506618142815033947132547908552701009244033648057745477399295997545845410358079978313050952940856139828924077771979762906709785219528710710339299804735842094153041678013783787373520888502423015579648998565015695737456942677026741881682122483018006126944469162725261224171781415959254379741798166651855012266942587655304182164968476669188800170995767774481812834145867139609414150087877512095837102161522269177478951940085197975575864969864729828648271678187289698662339495493636382318948438878190610401754917982757311544235226358387969547504355598661349675084898319481641088394606787468230240657118317363214710597948865507541610497186048795407548808444296709253716391954777606338615866446807609320822902764533584664615418820303483937498097730110668539611652949292512238174627200976758529851812147439890671989509948426067188745592559344900826434883977054858497384106716935427374124884129032586767440943354598653538856845040475533787999286662781352715716182738055105265861719399885882943980681795198211798022953268084702123569222718276231410232914778771127484850695760317742674270774615912198038353236153895447908561282331078879666045024100703485276417150713218439994055222875596602376852041176418218457670992057268893040582518790873591288007618246093308390987432359860224275992389326995437790354123200194240273365387091021670783704961387170299985490667226349130083328283483167341550623030174689446481304100834938866816142680084951953614654512065975887155087424814916134925094862767838809523127363448311275587204766086558187187851544733429702614208993963716878085862031790156561594021357748362461643824540539022755425221152423510479437726364969413457135846104612982274001359073551800136236511695126164218489734230728106532591354961464701558634920931438541967306406567668487258291365164465818165099423451775451284527461218399604519632516531858045047907356068932617715247666730984399834127137700295396200651527734922518322914805965352866860414192531420406667192019892718754098978093862942477079208274486372262760113810806834779435088204999848101025080191379732853928683896814580632236858103729102263487874551239500102486769775467688690642587320596191294735824371923506481762754023457506811169642719786326192784756909669458083101704903733822441177610953758488763859744917274178528809244516472594395743070210579290022317462311117636415340619247305669496675027153799587141600211633002293971720519658388167847034185541791431536720968418656709847737241071682463812544292372903769635658298644010738231512619577667088487245105209864125710906453021135912320470877268801092482292374643353331808959649267510908737496167042212450700876901298407983880364305839818615795146478030387958410605596957610428846801913318010760620351846810599239482994219892881042182988884827252524477758520098858942547640618889031505604102727700827502094405683569041230165753879889003267240994555935752651750817505374001714913524839364037999176161058067989321389757334556827229649582437332946584404368068322354963610063844276432315022494234846573406931866226454795347791157415351451484984126363847702490375503363838570539547459256780930126356930920118280229674366814191697365620300452531161968590399302960971600002396951930292500721859239670275927231543590845601776724194621994314360113119161861656201130301211632751456289270271241910819111289200417122283749180409993833562500986023051734709385987669477695011855210554274648376775888253100639872966631430473794869611741790081770713851545237317823564260261972670284310229387801262987364277191872721222365220606586255455860119774706642566460509513343188929309141309197829512159657120736306625747730382747481599744505606419392985475935401607727343011235179233950780642156576572561000921514445870089017750574489018621086557911250589200059144500614575105793141082543356592981361532226149944047590577645688623701234818153015992582575497049819751692107944581777810073925561052745358657502861716942336975918305152195597071385464564560580309942285725549497736278044133107478788479136634994605980112842602536480600972282597929015665508340260605612702279089782146024540143045436495184313429187033471846876660542339960634729993656195546363521363868873760375037313787227877934687596285033059404436287865484415255342231343773233432721382509277384324604547108458238241944589966334908124504209901119272265666714296099034060955058602004531422619046429525703854198691268441554038417406244211168328267929196736361889537059133271417785060579676243072164409728782678783736018411555396825037153704062137358531231335472223027017080943296177577689629856569173560562065208032541014894509707012828587221136820546955356116908756714334065124735627859796544747478188473281284578762246467818717657359311734669782152814439607920977513669782592297567193169933131838332369537844453490960187437572118345895670243098763661998193386452187924167220657861366952815046585908908104778158600826392747148179831231699328600483439283627112137372938690184112300594453220355413438928950921354433551735933957681333456247616215774200255386953505695505772839742221685331880214972055130818408479204452625295836372333322263551581710491327454251724624948496814408582280591578353728015824740347727252994161301333832366256926649119815641438438592868194250046194954193151336958849879557975701812135425221677625078273933041604153465685984080915168251405393587978460960890977096486355740908129525332305551810696588068419495474942478704047943758833629339803073903168498232038687880789864099908667361871405227401838455851631638741854395557753169043207802194558339453873084720111369534165275358560858870591511092498053762857399094306614282231493041489954745301535269731192717220396917852793614247171426146881865866372953554004377911962686163698582619426612658746626798965099857434124424168590280111212117749156839031770998236573623858760167089754222665069113484067582278862572222646765865298669439586478558896268659621860356720263725825000044386200461894049935312410185115152038839821573281768207989394517579711591076706368055292859050150206171494433049560348207953193589169958041537149609726341008136486097104781649388046087203076006679477406464026792925541549756878079263864017889270768611154812587149686267896124178177423857430937275013172161826100432224330702598315263762044287742940807114848871952594542745608697988146182854909148811087427386582728736546185167645477731762918355460217446417027171940213355729962053852490860752410112153402610042569649330528709613393476062472351400800833114915544044117538436309641426673615795750554336182568835108721539719606650856759906129658408718537957685521009036339374402439763035128544991888928552345005919082794886951500190634730372617026730902252802981540725125344437099236357031336901929652359363526950150103834594681722785418727066201051484988862544023459422979864549162563926153637481295520212155994115172184962343660202139248274496123800604146164974651093934345644363210031174901151262231697725161559077712398437952850830475855824048173221657186118029517456337360609495492084697629394303999799327445237575251688084918086830434801766163968411575589228476352630949759253170743178746738318512100018094555842166893466107709567467935735154186598259212776842376946436893409616978702828798719949067228540842897178600006566051389034085548103673405197891869001609591192594324841430206533845408149705505406434062857938379430838410745105622222158618695927459557427581014515623025941747706913799829112405319470234099874453426109105427768611360402364352826409221669875826213143817294617518822663592134345148185763095404113436223253870672088098192493174246908545691982682818609944291387924498623432330905416959132411838017096768336956593973094795527626802595969574559831867738676659431099236058015143270887669453375622970343487051755219037797091806692500151096137709953823868888913822496151128421379861492554402696769673704067156623817164366217278258835662528393577417420943869200465172925602102687491710453444086166659188511379116876550704246266118366124105203327003376486931882139892239795872408159406979479412068038130156418025768060515007301835938424127084331142566502974299646099167880374911333530825597260357298999633052093936993592068105675640913367654689109771701367050644915385613515218762474818566392852073380129627772412600650355901660365080771483747187069280388562513988706002446892457690918952471254840958328338946729071444352223047195859333137128827395285292139805684144554504102996700324200107307963748352222307863292305416334445154873758167817953906478375617447494270952769729873800155209987268194989991068448384526031512248561765525786094680419873522246581955206073970500867196356151947685199372083750508008858500905091503004203536844797698838574506750686573204095466864789212255123365456287129323309370316218705578344409789656769585362081641657996683851077115530252759698532415785105948049952730649442182029174205679204383122328689381681278722322852505762575113548350243569296600280889513960593856981654467787948412266416106369764989899877535545875058227005568809911658891250123326556854515797950931068886131532666655463543303994851522573994357928509077472433800939849360534040767412472294751756539592115208094312551002183961403763888243565063844051148400920921929152821204723579643592472685464262056542167096072840270809229509236210572122092769897671861816586848432472311264972169624307965036934229522311651737401537438960983196902944101743212886537348970713472882536663806550373288828957347308005876568606666960909970512187667589602236805318624724728545681915956592204295843939460286520174190369286831554208403252625111145783611686019238742983331176334732597936561761207491152497676630745417141312862709435665859191936010269047426339027829219545763315976011436956258636764765528646802267190259095306367879836333308276078498286198428858406592649219601602179157507977636409737605042556022770878277222765241459818682357404442080143680381659337491672964860097721262025065260188370837088871482606913457175398119815318989624637943652718626450461003352367382836990484990210498224362832894316834378815046227963434557110985592439719144892914456828296944068771319927239026679463785641906683717935306174418200045053343881419043466598469631839777898284633821756626841369158989033986973631423434973447527744327200242723573954932174255905300092818086395106876673375315822151248322259974975751217207044001274597574594678853536891293559828970907282914145601573051836432308043648423806202513649330354623778737891896704617186945529508286723817741713293590339867391831876659736173549984347565553942019703732299018877591350634135463527967119495620263544976264492842207231273834774758089043817493189325256366818649715513871441053412486676787886125563692035246266135815570011573509762560078755269838648243410791081857432596121288082167765299039124182821465037267159376329328652229068419405094301699624843617733652785696302951903809835848613332141026598199964561116816780328160789786148438799228950086944660373477715833928484934504730166620397538488267404800431113112689315904972274352201638656062170838382764220453007472781389728624341786272239346641520208904055731115982711016585212160107063727195453916852267100034397342759471559628230421576683043589258704269276201823006498407613763078413943846099681512239201276267065314145625001494491326507205656409541392354595102788713262154579758239307941993645779933828758122336576945518975703647391384580228389762480735782656396789912295947731781234590655326034695080494908769356598648711935161426680777490212921799071163110003021512022175053604049474754906540351376703838281473469245496134245734584700251353225037985011395465541536838915816630536301883588254968118302044071930935595618780663349149854860780006211576665143212663735867614659952622814530536729627764095533754202990680988564278554026186801343413273011024458029141825285630447500637834888986564587842740090551664196120625196626199692070021136924904116800724908006442869562851846420759865747673027650588274526352190943594631284553199669654599334956333090305263309318728855695369723534320653142585027229330838399586490635344314575125703765187044790378473722697321088674884375009831399626937349256639966229778417665745306816759776728300713172046006799700841519811946004010472301347386721141401087219615576395694110937107277322586904658332098924122358298623995556580224038488125525440637713543857530060181793090076795593226913840473578577569381763292725400031247302360903716173220908101328090052161984844014155140461170276760124662521675927584723274749673250573420148843067309510281003679262121267504861893400449111090041471967265524616927713336003503286148749342767451752303667808045624176190001086152823593631513033769515455194690207314958788543404056934267117684201964913849768349996180092384969745313086976995692048392772184866104540724058930205175468545736390488149139805104978490528905614040655840305525168220375779562423288416293365012645843419385494561678310402318897301337555331880910895949748724073096209706097474620799898063527245045697138611136723196415027208697489092722437642020838394860946404186334571573447542631831497997468530515062313871660549561666653985829998333596118642511620895597509872036820383341316591345218735177436942736459409833241647784711671357680317403847759708833146188959336795251941866394070118109338670789994509916639960985370296705618246019188194198209476142938436211352883242370664850319060165377870288487367795519394437767738499312918495023334907359447747188446552790858265450729856901853527184435488050385017731297525018461970802578578111688172998741501379295691950083047788097221213346421304047580292411908194463325444468968617146674360782840920966974068111557625332841058668234370630576359368897000596783291761485026703595082568711664751890764105265602604152823164624537885410973761476697405588228608800934954310763174829567906891576493436988854687568346996620656516229186314706869364774163873801230456630956530861812729114143200905435727274438715777105439022739739127699832567328253744880319646146181969381617552939407629613292222482703307327925080958773791879553910721501438052253003644871598795300038539031327104270407505315304501905706629516443162037062631236771478429049326070060386471232739875799676382525816123419087090808401797784765443711127400789571360913399907750103210155455132214493856218138704826879649678948174729702637244605036314307423701082661046609333182378997006318428866334299673913002381527543284841322235023939483547914274290742996737288610149889960126259596050567544920601750757279252423384376222634585992004875784528033226580179459745987959567352855370786787812031718948113549047163553518341264742721339022727835880234524764966777739105435669206786481997592333730575128306133260970494481123022046097574644367542009093787838924334231957625900312520637250159953721143966164591586110102705926257106179299214301355062035469957014143803902745148899561883032923541099273972816032501115545481489879284165287989145745937072305890736532531273150037820334475263404833982459568812623629716317976464011967329503126477793526586755869496204336424812345642797028948815173249840793736618170407203668079298547667514030767429082024671752021377804171022565999635875827128887234080463574886742201144066122369566998116308713372190998491794235445384654978507541039318451323634680701825762793695667201707425992648113769471404620439203083335595224580046491005776614712582225094598792959053169732153188292470753928835756571750841241941907548479271717285123215131050397266766174789318208789605445212951075664890795073543545958666421780533100862466038372276542973539768863410873622017091955381680873368569710701732738331194356197269533278915680256834293876480027913928809266430122923088759369012275756907475716943691617512185370413929486784430079792006681015603528797697740619031527340543859043642459798860979429221553739744461127988462947807808021617985817439392775628365365179433478368049379899424051285880769004079071257752461221206779861050308194020469240060284058789652059200538279858390507461829979285293483792577284727125348639394591728881658148982812013833447945316877410392849367992307891178400383687420717028557523894400044109235009588634728199534061569918618886547678142588745134133994222162295402361036391368127187580897477950204614602699328077123354502432782614889425025660405635558584066770638772601573400502041777218730317715973339614793288038348413318337518581501546399790439426461065157693276072578218034195124960877185497230878125547636283772827231774224770563372875655079854607218142827029174481522523991335190260086836192531278339261985932982657352620802952973955823746513553629513905420649160332646635373437097030063287549114166710929812060439883175616340876858058935142510104730921914070012061525516636990386712198962005242190130409112870286274215231628685098221152245498675937327422875834712754339749499992476730085047010084206574102670304820986209378427740728716261568508038521432979252341562642276324153818350436489341058939258067755022583567157294899486042228131600392789142171431460455278882360911467626775588035199943715405140470422975799784121774079698527001690365532786940749715443930361749595616912918031951539582031479088468843996316686666389993286225231926067060069644711343829341886487991420376997417186552206570706826234785204007379606672607122715422878190002617137413430971705035794613627854361840901394660996619564799890765583091796205102362117102343853362045316509078047411080184142415222390049079838206039328000228324041852337007354994492773432796993521837109008331600702351922468557977249716072125176913430151077476556195301353460206181273689418984676828830085002870600280905176111240204195295343102050009265275334018214709252959647357711424524894478973031303999694207494983676302545688541711657865832471522755987875198254746895264917807594312318357889418419342540393687921348745691699892334234439270882363479839398944045110112830487790641649794132202959602009940192355989289096616619243173244951870675253098446898519635622435520604353010787395118199584373174836703441907632547443725791025671957456313870858892455005833001513011590192164703368056474237158142828809772783812782312501810631262177672584916573411823483266716673416919853544006004578346224495487476991587634045380152857735734246599210607294043373893457324718565326985573797155902524437553708212882170086189279016068684700699127282282726461571709440197647280615164625164750210537918474995784972348395340721260975940425080109963263054155987681284078915224447945624848529289405653396816677665169581951430574430951949778887485792922520393510849499219419802134436460713847695316786970641782310459785916415287555314377941414961908354556451838891106252178754028769863083645557219613741881711995556968459902215511034766838415415324370482382221621305054182732243213196395117347455121776538426719381839745057364080723759174533560371315056397495725135793548040712194403155623247102421629256093532053440806838485167810388312341186728876583691103651714867327325477349992494920781718363474090882459074074549182480744007771818945176352411481155961069468452757815680758028961103157364704839141661134684538484976933219237339272674644202137121962482389218579825728974675912293495681921616937556506886799659998785095094784065819162696651872495572548158223475158094862102351794059902775177446830322735455182243221107740421954125110898706048889415183904655406039980241651948808706425436992475876072493728571734052964423500350141329772927155571315702881239044110626905377516728433630399553973168433518562208924723825596253614732956229302068272360478159477871167024877539662481069307028677401606180893729015421664459317079607153425084748636293776263282309387623591401529591883768296425227236774134877990506457415739348435765536720568638652995083022307632328607268715840144030129783509138211451383288819834476719574856890950802831145997794103693274626045066388182385991010520390324953056597121148058915834711523018546787156508108157322995239891915911521732097476016627569253059226955910172203939765804745566838117701358412453253657067956097599280180749998953046207299235102535176016596063805776309542883965684366624618237991157886678428994188053958098500442618179816539314280918141004969116002955438325799066820780246707648996523095374857212074357065921584744513884095001950901857665186459674535250282327440392117622169469622506451433685794916108105558892406675697918055011585925138183655716702680840310232885426277202397879749746999185618080380991473200840392548955594336091684062329639828069495458130574318103877880232306778317991375825432022427998513938627066403310058658487949473387916029280466551777814495079932777541702202360373687709650582329931452166174873546449762309969204685543836521364499229709176245543029694936347279759731433260611016809698875617183216825545032685253117282591664608593131528790086792621728867967240873376587523114869398375271665462895613821384003656085805797917520068954947615746761120590848261018985179063241234537996402968421722056453438059883307642231716108669243330172992308919454148965710620310582494121090453589654414301018686903452443841892408868103317619620880983040494932674312453683727069099437273059201318651972209343330116906520364639985000025529644213887887056777058346622588132559535686038443702970271813683398149127940631685028915358792449031513067608855211658559284328769623908191628813736583033438871337991795761685782533545786493357109034141544956159065101435991522293303408177523240353255721185196349328443290709560812287688977888478809951166962455952670794016998870134336403365052097352209718291878174803159734368712401690272326626480225763558492706049389567101526290626450691838878326528518629338046079946739790993480337651431533664816188835529284668678002979756557286337211795737927988273561697688896622333925466043283158293606891245791062414268032608750476863482367091209060283303900440569917394335435417102000832477636047763404904125642126668953911997112996850594169797279067390535529480979994391337526897440618439756968239533668084257429550122670987860242028211409760612669398093510121199858241714093123643874798679280884961946042610130830220432004946746477178695136154428922378551890422515669827431498118140708087904114682926626466200567727359667208904960934080143449904962245767337397963482341093000664182948475725105071952935693676367266967731781525472844988798262052331880289009261509951951800888830938085421112171001246692370671948243562099907943801302183805005483122250722491041262201931512894292930642100815407155692623807968710228900164990005269517553194347116285704566004463707176148140370858425655541859539923537959227602915533118715256273143762440764276113022096208529993166590546621352348027878651759692610330689859690646414044333958888122340399354491635089560752608458211910101923286100782166532920820723055850744316358053266546129956094993215732937021240305092648146590100320231102911297512069842652894427693041859547475171615108387554444376656154780742500002959938724208924795106565330514774116227043624550460065739742845252734605675387701843226536540881622970526399599829683243812933366253827001793912025917276801180130777578080844631104615995199973422302140135015408915943740218633921301622329663502367868331977409007692727453778088402734359930825932462522110310190530495347149385913016062538890829661166784113971101822194967407318616471472925959431932092401511588681670185628105726569761589522067521590515537489843300221947704553429196492147076915750147172839532105491736261274974922871743937440028606937343997370912528043481170556759929117804014668888752419189477754274431685881415061411729641767574631312478350853942292081825737621804502333290268415614105547116135706154875846032700445014702309843805414379639646225019267674963180143051087452205784664288439047271617930919119006639543085753917099474313455038989316512901987656752589582607919184465828137627181519723279199652135232466196691870359567781185064794505179480902871181086253385605354764546151823739886741068644485247273824779551127917993403181039275422731266686801486759745859708368895129586786876181142168238626296972864844525241555658232708924689769265280552019422525531467492827833875081460370286443693022821279479903503768758783026553922665861220546416478940649690271210215973827024556767292463207261665202569686649768866190880213354080054380851334737970792508151692043545964115362432988002785311114691294844307469722069772889890949492949768088329381669104732716906652899566154158440071196439590058619421711551390049382170939935205712749517362170567567531738689646709919103373109705888189063083327546349106139308662572395048154439885269280030419455119503367773611754775880208890391442139176755087723128183040389083223038189570310109122125147339372642211449994902806067606538403174541629970152876559916752157471267819047332357025180858079893585477112842350615227639662846372738461922309443231303437402781297712976663827189604880251043030010392629586497919678306015395123635583696957381503581836270126024731436798140616335993108221026076557718932315109154294150688890450335871448983157155584728046965372199589613117191464477510843500377199049681768190688267428241706525157187419526774861290486472642420108366488004897220876848734540469329574033328640780803208299351609726698477866772180366454266357303418527711000183164466264208459050555803693973893381377342812916952978377501830734269353008259867863180777360164902215571361197265366257798626708032799850728145626106979531894229947563292360880528520841006416764034106260312260364249462487594077445919799567450177088548425693959499702294493315003266583799881583486244749575258681296807531925042925249507478907543849363210995735322815459887015301473225843641165179122119336935541805049740902685574382789579486848980131165800305198747507957027871087004607713365633923074681341381472914194959079577421527278719922456515112876355717396440774266366411562709345139502509676267439288225351385345461086850067093256332771141107227967979188850746441194655708739884908939909929716841601610438171365231083007091100732864440709496074472282115643517546189673473178610862375887108042415569625343140176421250505123367590303133020373612982988315204041193342052466919085083858847221981395948134733568814842581921923427550746516192231668393686560261977973231982470016853599455670334993578657119714626305682344284392680849869419323255551140720355592813429657741764615982936243537552131691878312062920227310198487344353958736398133946915742584887869766314325408683677576428330378590290011051317969894755109135672251469864874192081151036978492394420677978626149526964711341951678419840255480655752644568963410991110670534356146615402726043174536687732060716947820799265703571514073631796659379826116724106510538338628997505569972093440782667130015399849677358704677619383691777851103044869560144023498563946259425353095671408224787528736014839335241590150282538349035399440928395448662769275001682535470952742276245702552358057379798291913974830693341553604288476947647704939143733004429512245808702744251463093955318802103061595364479689358040567192146021158960205401429187352252916924759716335311986046898011768735511322107039077003296557190749313871888170708975458272024049724229014045327576745424215299802143390734174406638205917255913770327727141801905086176944502688519367143607981325397053663608746960937261269429213458348597727260181934284030387424799696987409300814165484729256694380409028674907938907383988931380414332758051802022248083702847385655857996158939332866311697940609239538885945313584660735406430647880868814484026191256869522330748322808897286286628816785069064901839445968249088094078484258655903136669577580154374243316232440130365089561887299118396279329789912402069377005863867084403969654120408850967082538107463793957976106707440655568773115566948865583407986390776343084406141961619075299450458189989545470735345127266368065193513426953845264370736574662610122378104318191914221232204122726518775774620130053466074884771581600651460386243485398020291791941705844273137081824958406350421954458309337545925602329870310952362904128778431162884477303769348029571240773547349882972164019095943776149626348355126198915853431129745239872786602790974275897594358551934454759692309957329484788133399310464523261967876045635534887898194627819747672605364062252104957512109572063374014877106942572706591191886705259309961526643829727746212510349401971071606468656673664307214424194818839383527466941580013191987613031382482759373183291430978999489748718229087416688994771168706960487092778748009272163736135930524693293998240841144187116947436621084797492274673876544018657599565139540922563574851601585644506313337429126111171863433508989533458791918291163346572979276390213754659303899804760871793064831623006011047754350296813619069884268686853722612658256874275666442178971129463610721210436409528835816611494842447876929487877150234807162713819530773553284091133396529010767028838596264692454923919453215083319408419355411256384550186012730856326922129666074812519303145651382453913366838483241867255737237900456393624684074643432055129606080968207604094675091186447667918629838192519548798374405884930574092320779702652840331396499684963279350992701520632690560415412778481942373824122157690965505912692681456880983320344884377063388058318269823814217449988616693112813894321582174174027127070207922979352264197884883300564054640185813306301219281208795258152666491202913030516278307307617128995167696024782067658804376850006036618204794126393311047189531479814484305320800750202681188758474811512745733351872587538091287108762358828181577988339124868766170098258834389634189571753759138595332998767050106980749557338513137034008742668969907938150468318162390201874362874285937950682305176745883413828054258521167265257319153516912150335855778409515487595658675645813869427505573179235017200722563827703252685167564298044900284451778437510772813430064981080383730401498707352559163666963169524167415995358004501986586592459725275909121701435380218219117980960476674198115604240575103802136745404336361738766142058076195643325067685437718504920706605877930840326398877198219089828937048447643623208148982919543359296613686916460561208614662088095641593922765081812473512551576802547343685968973147080285081844431010455682208520467895199908291575771415482438081503275398988543975224676976363182039609288841439527841702345333572914621851961867296949315721993683101563091631734850027406016351944393899740413618515438089643038543408135122396991073147902659070303802153951412637260646511785396519006102407659727302370477826146262516843976540010564423737062827028988429912536788313999128490984996227642393258205757114248768105184485308410294063842163492350529408820431000330310655002846479364860275949049748596980546143632717124711337052841873799448758746990300089468632515838473836967784766097531403317931183093307069563404108574446116753848117377630192459414908873675309371837478426801619075608349862090583606563486429342140225789736170109355861737363663347543978889985812737434994012787631208589625754305240604354481145118882300900259898275789588360948483239305929441049828844309951392082577513740629894978605033328781901392167929506516505112356062688543845387499010675662408973213985180424948797595810447194221666111056034423118996410951348753216215374628150851968083638745802847801577320451265351742234091116697675595608249404512073715872428685792375444247753091289771381175266100685479303456119658260881572432253361061522896031385970251976062208274032176939396927552487339747731328046727882718345180648251155487108635556212133478664220572470461248700657925947910908997698978101625278731402803414919418315545853576618823195514247434840264183951324477543489009279012014957279274452731921251349759675280695341859630253476686113040608390016854398526060664109203840602795456107280078742183602190965218498197847645002040321319496993669233083581918144414427807871655679206748633421149428372957455512177333743256883559723495689776952045518034838424551408646639244850119520531647804850651461765061640396549912379785114134315008997471009669160274066040768690614006736167173952406921281079875068247940198396261640053194876148193522811259527033750634990716400464653413338584195222423565107723582889753469813143348141078963867444223771929208510206160571226593006042498130574910398811066324746068586070025833352780230740437862530115745139491528826068261586101032774966828658493342556813559383548520081503305218107099214912965463441930928172381417781982008389251020179668818307395753170606121633115215040167696155013124390477212436210530787147816775475819464972058969410659497315163134061450909191362923780234883118351998203730704420099031301542151783233845019836533203954433787894734605158342836484207365928422620172001862867852275443487792838011153919923597034807456477491720821268899180115232272031735789358265527006837688081306713154197453395345209795695018954411077024031921720463496140643747381025397479384589243009289652930182076820556320206256892590919162794864724143596808744106570253105352147299782522368960530918636930760876681239376503232577436934136350544820258028259218920895580682674686103786530031885664301440598059907677044472443724417741918815218360862007733306147758180444995818930807101131497122298229079702888571354606103697187078230450530059989101541893801089309298660158985823721032800960106997693379173650723971282766309796583403472671935008722467288450158040703688473975871337955455916019003212433714118761144407983018015366581912704890775776744516803646269441101203251906499956147122297224459239127362603904187917773044864472122649365234477104019080508809636392176010451385926117093777285280141626923207996982787190319509648635801229688703956316584869326055142501220619837393917910447307652873780011106071923598492765983875324653098269328560763722870844530615583501207195672861786411839305433743507244752208329569176835407569226848627989397614624508042928017071248612789639442646634067357508921638102343431243637852362215729472819862920064235407342258334065424241056912680409957783629141403451893005747986990836326836985845971882418987017549258405198151104020288551844511284397733451605002216300201650694557650594958098755379349283683576870187834394882488223376539854750484963036236512981445420991101956133067585179118824435729820698173357663343009444811065936655310555761680818373944850616681447018213918486850780686214657828592181783897759034917857880450942512952229634126577111487938745371891700058145187527246845309719524049440718986343725548643441430579254958535433988363696510484327794257820190972351744717903361564881540481890794083589337048463666355223352915971760427884445078461337834987241865410064004753668643237339838882479720011726946157961974404622191407371694141089938939088089470825023861596615604045290459178716203969648968290575765360811110030408220578875194760285694249237333533533197393871065966306760222974235050081367265152713527927920574017098984207054466987271235776609046281326430340612260703515041724351897500862266301110501494225418917357909693287035220163819780128519095252886880299807502089623483219983306501150799181631602412489632289610233038681079284435857393407988490790488337272755894299288039573508811144901259894360092789209393726967497539118054443328499347712829629971222778320124078905772956364841656891252867812045499825202475019497367034959138144139443117299804761231963316469258191238994156429979106890296776953755527439305976139669631430165748259112750823386550787227545456104052737107621805777032148810890134292795525714901275382612636029151162050488008079485498143264599305464663981564664864616462629223604096071647988618416809262609837965003960870183882517780584574054828327123834782036214288900002241451437088865690135371484560914522069646472123834270942538166512055328762540512003854511127996655307333998974547363647024358221339301377879134058692222393213023794957003792407369850258095010608927542285249438970099465356475884174387231857870325650281461452516086823827827911059039623265060719803977854757977065212937352410762741378696978911015024307245514825558030764334576592725980573580775348085215212199956375605362283445966840258760336337380715260092559090071233266282578156031499822287364054359751196634616173298285740387650487671726115246253518102932001161019447930705680844412030934526491624203825558453912623841694056271443404848717362889241790603519827716726419570330852486276244207907024247165329106404013189912473850130457871393823872027080486166086031347029166592068837989730793450465462009404345894403306396852880260618970448996049437851498813155447809072617939769941116000070966966933046787898362493197256808938074651521538685562234236884496151045047332359620503028060648292213646682866717339121493652166392226970961885196410882245646535318090604849925780343652304807701763097456159448671604552947480597296397430161344475958894812515051018991314028579951438726791049379309223204111033917620828852153384720303260687661547696117354910451391748347185943011150486915477836281997573546974931648056377764633812293843325653428976791257774876770768075198165848713235727662714303659562134741569180566420990941361529797739075228823942098515514754494701833637046792152352547071898159439434621162806399416430168555538697802358126011109184520065224422443955044598448817936639656606417957373669679306925051795014088123067442639342384317484499402852299087884146479451415845401563307574506342449755587586270456315736830276821094681833646955229446401063731935279018521034443536213722289276115736647018873886909562136916028062196380961519291179552595816424477025554084084703511242635215268032608697234905739519868147064993172560206490654595860265839656841403190380898677765227866123782450912880574386611678574684315705135801087172631963790232507473693251080397188266076305462444250537955839345115745100445362119571238860768584015116042795175036726148546769955492880796298014464127316823845874556642398449305261615982073109114433108597804978421891606745937527885840826898503052876624639697282963107291280799157479059514538243516311786274077991840599001613092015438194145222416959199618527723112960958426684702180265243480241424617505903305730188773863023946542467137907418891062722307009315246908401551893324883126370293118463540172312078549857076469755161730692612843287446118059046053677730694797332382674390627102199054490458271376900902055492875541265660739261503554121586109377020210443356775227274136649359852122889599824790969568015049721751690185646042317958651010869134982579466739656979202349641588643527503632152562111340014344693781177708302481127787321326109349391771357168389856106998519959505661716860776993434439067859763627005793986810850464485024523390819905217040489458547173744361776401884464151368426783549065425644387886960167843777296911945716512304118844697624399171475068033950527438236273539664125113276223124651112223748655061072220598580446640413062416087639101968018781654002507913715817053976002045080577927587998788341220654000353410266322071781891684248785603342195571566896137236497202810451911770290062014716756017108216038670984377517933537579435170830308655505497599313791146578248073489224237409483233190127917182244764724028579883930278915835067017301841370593723396054448821053931488652777671132982780568948988509921630307329279241211367745052464061709004730848613142326447763583954550468936689903463968258327657284188030819866163999407712436718186401048823925376053182912007201443961706710806001534576764794101865601292349436511008126297993201776924358450759854261013646026373921591426794355262565495691883013457435172106769469511157841916407522131026090400937986767374441570558467481584267245328606361036492878812811344035452549485524853642592331651937885278706074378214506687918546319144190567398620336218693190358139402272188041086594030560251706158177374031928554920702731580911405881207937879447258248146910514959625112891862072177859838301407604579003392415387288361620211867382047548408989708776274291049359585523005893902709924230347461938671791388641955067884084921414190442213331784812759107568940355008086868898978734115220687094526755886345461421409396688992290878926861139699981862482025904925142674313345888507768033065594480395596174478189728037156775148105475791238389179044557651376916045340199927854634377735729386129262255052568858096679026469150906941335957083942925750202635866830716501441466914859982590072676919386115272839466522533368846620351466753160069559685712031339894297702907275302783067126340793052484686146574694808257917357858175782618485822732111975748741040709687753610529136661910967797339620669597557356520448967494340956071041768567232721701730337621754222095483976808164355466726418292315688038098296324092063991593648151519467267137754298669586726230117211912312749007527217353595598187291236750921593488342514493818400672170602344439833724493659963217669738134399933825986878713763590188049249633443203763342178737196593290674792469969779218992574388947318720582218808108899992914986225100662361070417795376618470722926213839269643873439586737528331386073183677303914397645859812538072979472782191560347530777666849816078527299504774028419156333100564013211315910755018689917216169592096246187678623838181589201072770917926183920589176963558639344623862630265293739195747797427118965756940236326076282990584731384876272044227365397536944583040592820087239700348050328952301839502102517544129891370577843339948916568179315892499185916832855051814530769628867039858470243946559176581485676830869526110847744759974684767387245416353464330055143879112108758518817906479860557560177864981395800494489686788000636665714045554069185207960975641266379004074360334244442506818021662078720153308245900715183147269460927474676193018374514428857679126183861746430926071776981117369566648292838938114944572498791630561263028618266750740602545613665237492797492519476975878717284759875794963270270255775424041846887462714093587090599497801618648772746399800693954890946650639772524476292077695886610423125686822772713273413873373110079204488030925605704495886545635149951023264088628024555306740524537443968592880678088528924839551319187340604627099046194131448499360162346213027852969085049186908070063560798924935175878265062405103832041894719349944159166685782361789689421415911342295686531399028080603040347101462263482458210020928092582621595609083820393979814206616124731018269455337247658539688478780917479405063216972626357172303772750100632163123588065264935969618772135893744961875284273987314217768102147321670972358473919857725105950025751802820290087064753035769605310133728869880980390145682617087366106825205224134236911996826281628089255142136022264939946544980026484588079389340902407749293752723454296209902287048871665644843538394410603430675358414256989127270996479339352000558342909285786008064209393130121445671663302519498683571390444117260204376075976702907759583758676648674252038009738621417334628537693059290258584276462120083064042907003443427738433332411260692327623742791265444554437722945382701320122733600417743737044070133298458674110465460895870736287254420050534222843093858337333190343809382739705635421817691851582278368367742537373380251291759777982875700792141828256197097936727911309984290732191000877651561622963210647910872187045044528541860574871097512121493046574906632455627694853122844895409510792982676550833012572587652308406266429225202172613115938162600653503281861779994215498043988883879413611518884772809831472612817630651760708267913974951541890214829319747565964781832699944718433087994632601122711092525537823326454554209810338161595777650188945936997331916745341045714829424922677338601657691922616721290325125427815753514620421934999984069826814351806847383825119769772399554556671171560933769160570348059340227062595649357818173119026596067988019159928306133907492065743837632237335145924356716691298314511595960725653072089466808144571024075276042154501400276740634385701421445127309184927944147114896591605649130237588314756767177872183793728308227387643272053215940161792556643487565578053146778755208481737116357928555221183190050721168066080404018834473251840070405434289915906113615099330652919315838660688376513769131857283794965038759901087681743918096567508225268396603065453377088682907035625812578062131768963758523983548594020799697081652509496433207487717676654111736751586639416810401073963972975006038274608058984739878555400241188513396045481190979285122495951959183305128209379957025351065027568250427001446743078528992920396757073315573347621418965688027886810748534520591698987706674989275682663289344286583717928397528414318588042434266622215388625792939197945374360151386530016392064969628529253414681313537588250018888229657614630067977745441109204167312649515143506379100140434876401557699274009601900742322680647904382292035630783205615717687856120102999555569902354325700286414133613738740246579686760033207890240367746596733172106804473946396977864235317211486977780929112956574742615181365577984182174890415043092876128576932540043976094955297107918443714496606985130906331152850652212466125842660132721712905911437119750427426764025364104724478759345509376146169255779731715710311273922043659489398573299431172049376434061198281541366749936956961673315144131686533473909345882393469527408952398124542184332401782756358133519001719245643097636821863294133772774723201810121693987817888659677478493775470763528080377151971143913221760477293936154692953055125655103160849345317686346356882705941672980979280131038612016616133538897783850260435910548998122435188515272009894706494469063954047853542465002468226596077408632855106006978986101535754122498907305961064470776572542091306736508314601253864620848702728885769484655151118325000516867567289246207099729555874803453022500325083300710924750524101943918842527406064924789153850471512295762433876252213881628619091250193208536776807640108607153721022305397768119900671779937892360141807887106551633590092512059956620926173658885568636873229247709766546864116332328612770855483670619044536226650085115606997511953163010648561718913158207754164417589733178121875748384022123963602363754268048523323657810466975490400409073406175433088570373677820611778487120641005979563115823092361961013187389727412986432949535247654745542761951385132201091599259618239718033951276687061064309526321842012285797817653245476108463704728483858308202688711093881352478536238311918048292772901068792533679345908089723669343488478452443349073004382201337186224685089973947261398255269151320462820483292882803973664590579044921424542054093238360817383203361477862876414211284683665883808507207630459897527465625156988681895863442807099850061347985824597311946771014228630521013985707976267018802670747910111185271029741397799357342213095572298423390653620260898131724479878952370375615160920144875336620755013706775152361949961558022021509079181969961670866106709342842269052544898220580140842827562422482419002715568707724825784122186932286931700247528309306202749804118600436291839896810392520286053769447808703984266363742086751538429129011294663765417565321112558092669276178246264887511603982497212608099144320603069051731090715029796788505260763784955617339494398335014675912446871776232373281091924608153139310860093963088396313809945963567583257344118898877294130049328278455931761016145023957330071402517827406366123963762774730580627839658937463968390351760002331013300461714469339835949945430686265996292307666966864248995445196378213285027256202796251725278279022958310803612820467963008089344482922893878464277972265795144554950764523527382625057032273630844725903962553113433207227902068313465867002811280933144094458571239524714440370910709706074610429617317556881904627423384867370293310541448900084805221842830294606997261917502781653127032055737082106085444140703884268190873677519848486099387626107290028638846389507718482942101269127335830297154687091126914458022279246441615842458486030088465229388000839199547893836926094199887593849661089378215828929289660577264384003286803945676191077547726077077011977035157808161772731639406905991067758916174149652641396754582833617594331346130020517549158689908006363401506644026483232655409990244999369190326194270277332565838677532701262275258612755122317841302366597520929708775972726697600480398118487974915406748527258656920123056544880983776469465220621683439629917092379479685795987563577914925639813909817404647136516061473483674954049546885444184857718478203258755482240378551856901248226141475820602180579693338487455566714083733350328231434428324993029598437661742347240730666087743418140135376676388068331836101228421397965683163231153243155375066416494607380035482709497989032730384603931406970235463175055446229431573054613905438837743134688766124300756589325507888024067339785412323309248923718147755946681554269024135268031019735713879472088860334231720626255641262225487845998642061336288987164985669181079608343780824352585264271721516645143310799103923359495377993709314798909627637408608527325833409374642534441980150495986302716339176872869581571648623412792859758227570044023439108749710100450417331077940191592871905652651273902908975989931667214869548546752022941941993706600163868262833687819605939991167123515392776382393405998103032702062853335261733629651247338351635660514367832914030033538141564040395021350264433689603641151847325054732517965623469897063941228905205912842177417187544793453373257041354830420687003950509518798841822062289012921054909795183504100799477892170769090957375200470588390359176069486385609217900495006247291851869246090523460130731711656231051204345294641364279444343360030003993243791807534448457284788053800453752824610131183021367159482800813890723689233437319794886286213072949313957284484619338182803558611078382259260923782668263651504023236564071125522409427249261187823506670580548498133599499063128052807876604401906327834407877000653022696399797203198353251303919398898087922303418640509449694278311982708060715742070177466727611284100988178964132381731316347968927187430022391699417446067355454312537795162305554345320741770277783624482266498437785560752502711561527544527158875277849567565540603324525984955228504867936004075626161443078970196338321091643303954943675554477511642567508778176321284809225355481062094075791928610217775190001828592468817224952970968146245389745112872699948296130485202460028018647614499474053413730404661593090323689336693135597282434038726273542684588608575266041505141300020249963619769912610263293863398165282228177136485362715876300365438150317461954052017601927664569858201102327532872109717891411623953569478025408074708072326553871690091798944932277379882461568668800055116223900607128637096257628928889684764256968760433964082642019538744297132457054029485779129405242140852274287423386026992288931140881231099755593307627194583327961549601341222832327572327051247754373046105570562913044494023999208967982210477475357460072160457112600999019941238113288047793891178343033650702830308719182530407819809309744955127812579365251755821129680072161413814737656455591423682052216799191804526201958971013687520130535185557327411582621940938116442384300919533646979817711529097444505608636010670232551202780808229880575371508982743366022848421026125710529932084914338676712831365521953524947207556680395830484800043616132061504424563175020443179401570520426586611647606670330354681383188158265852614340136416695227054632918811352913808036240232026812232504416516033071573878477348619609941188141859651723239700779674848235349621314701291764889359285090811859540633030914469675627251420402826733440314494597900347652339860185812723113999183436299561380209092299594446855464324677284965377313935191004613820347597298678413265283187094842197324973897086622981068465651264531925604999685543051211893696007859057310398375424689391450773629928440569714670183677005878102294999286805527928348382525685459140762061027733118079374128547536140197814824538434887251897827663884277874711947880141494921522125922615730579033931144199353637751415052595184693105552832251412891258552005510718235834760378510235718979829806005487194495132320433671312660946851886513236905458137362219976056775172827164226567186312496295994500558179413499317058975927855815686355297843643643873945544954306201661947968284088987490485874709000565214141355082631101006770544884733830230702546340114611156813277482641715964137171109751910662321529964790657358271707580546027911875712268388534569780417256844575811348596314735054566338043524528662574835698513073287915744632184529951491006132018433657656335367617860591177376832815965737226249100459835299404018925409601537866568101737238053224319216165998798122932196214269937154341267219668347812749397206877125865344580114698436578131813328108577339171415883263976629549260841861552674938404318230518014446790449402478545140352116487981393985130597913901387840398831623134972090870406682059634358783554135877283511036578879891206465409562811449397825990334266042811228417097026225675632827801864684260266326092344835622462895087345628309997161430452652863930187038851046580933719751206812623158680127501128767897970553002211889427696941614027967530386476188413915597176569439832969116267609730775008465320286347474668782471924148741561344393478222518588687376602450788204328805816478011385907874837595825344966790737053857103477274085290145371544838806996818447777366030690501232344520309484522738972689593303692419275037940801343318800572999038575324558060276302782418650210739333649086846112676574338678584721262991662446815312422849911047430399395220373486529389062142742263759475200805291184390349792663843891892518929404213300889338622115419932824281819065345323281189989972134651966256860436493527300971210681548050943457006006868472068552299507452774064954070162858046648602682917572404567769681430977477635112432210343510277882537205030360154388422770128191670533641801561159868160274589398357736488171282422869809453850833978057904516518556042496628956166023617312206786354905484825520238197283939584557658835177850360170021568844638497461814645488825510183703513159525104568718211818784771851221869924200906698775372857581317500438111611064462155369571616407435346818734022007713209680114892084312933212226405757100043234545981669892407178508285820926111896919148397876858246911476830457085153634266944384164083192657198021926193791868268155142527882138192482495946205459084792992473295046087967275607222997228075014994682966673314671823172141160815496219414419235946582578612269508412934659450174186353475108479940205066575227467668548755523720029690110453073576050278425980612376879674766772670899936345464790580227617952671965753926536229519197309386709053579361991302905134289910315145775899197508627972986098471640932640248789169711537992436673641914024217047591528721129864220614641551117164194983367984029771411089185508140336428509970285249325920205199946630015095496078337014215535814252271820329010288839181930318492214553709833432901586159146128088774259574752317694343828746581234570329401566665535516418390350828006330022997452884935917854636781226931654413167377315603086040466201747103365945611605994231578155535395688775960776616932914952956998459712889139003022280552688262061121050605762541459822587614385304903351574149241005695645741194213996433358121162055215039769635948972567776157447701563241469473371172320593007688625164974401306518797738017263514412827080394126273835709855644298268014975224046925549399847129768684234215401929066373897963485431119344161446622775342526272316815187911066471987714727711572074104001494056801360579922014655090050516120087100713451591541839215216571470228925179290312693735081935722916270323974754201990507935215245449708026378962169943200659049887926650916529066680207694997475889303462528719943817425425310501964127569374084610349163419267526686845395271004974249358601944750926937401603407755300195093587840572659939776951515103029163460046214504602801609043772789275254699523691576491507454695245158842706897012741840858703864225249231806018734290880917771299679749905670075519800396034552662065849621988433832060486151876463069939959913115991657659411310263892808904856831425472596808795917737823633529654083207938151039064175439218134987746501275672985362190110731180285440498995144041730975140953447929352495359986827276521010623223388663549228599862479576418577772465914351280997692473305911569667543560381303673554807843703733688231460600317492663399431717857898760694439720405010331129137954956304655895790566569202952110787188217136800355568986034098651851224533986004737002316547800007735696640547883870976799613126238813197739472027172243460830711685753278081415973160207154989015617665452811100915656371586671215478236822387023266519047845578272745664427102887533160988140062423311211554615090165431533614045504304968804160434404578954869713323540240374833194078153307087760185254018535036881239354121179393526232232335800469230900686212140111851144384043663883152877123835347686720285302226553066002897958892307491198408383594653921260513236724736365748641708161176817920507063270063458196041137754270639849986266698862753188010608647657412636163343988002421803591796588724435379138481564971548651945243267555122500990494829804961813126094769708673381299491211418374460074392036065920327138787215852521654265837964817849220023382497588226269031091521882269613988242473328945460315155075592809450319799505830688172126252351180903941166163165750992537441958780437161242666993301212468043124067565675469281417978170335307666439937173537012459152740119958064086383968912590821613926172761559593747412637351608430046387200998118240746560488880174149877534345975418854532962190598373438202453326819255510491771126200518279848681964153598586556255854622452832974185702945083812384523381948123880190883184506322269366823705717747616608074181827544018140263372246241523696018751614687193323993992220671979982267674135198314427430009600498997589151197044225544069168594336090967607515918188816513496849629902944598072765672814741855526412175048320568961875182999882278455060382629712075308028410609645451699508758199455684250645765162710027507195002395544144433110658744326828389808560341055511921794818183156876893705643585009489341765269228499434811255259726069889125774417761096115522813472554191096576486053430518012614362799512351943238101057113942801096145902026023474121105177287606737854825074354918862944330125896796772492429686024810171629800706298265399212647583336225303178472438140465648595918026824745853608409771994229959781891118417328470038089630026822483088092675791514091356349938648247353588504122600919026621333226803952228292128654097333798625503777584257642098816381674328307104859041702243864436921548456762920207799563551662268693839998439107233623486570895622343573189649208315399091653216108302082105748019554673853443095500624671673333541264914400217110750150206947773662169738499698405472861531800181254202193146453031739228448795531587575379997101066197847632926578679347166990591731548823852939476486882213025167515934375230070718939536254253977872441047538217780591060029960951851256498201442484668170967577113466491246800003337315236411833906632709805800916617056910119849996468706528906831396717500509019776063516448236268298468298920139706998865551019339240052927388830860843155703343908194867243325437038557711561873267691459902246375953556387002050944195922138207564509339834089041848580750877750961921820122538598082451838002119292545882484604011530138487294775732881902367706365810498844932488001473516844314697286726639828541136619725827965859784662994997731343425662850962167851801555659799139432585260870488835689581828516090045256140628702961459699010160961251099412515616812017506961249957315017788220012249048351368285454089407891816933889658637192684780153492999595253141692706435778484941449986939953322325405160071298836546780849249413663576221729658511226524576918111797865498278367556402731520246141325643152906288122696450515287931206177486925146336341670855732602979629287403934807640119704929290801896374596944227608421289313599111519389444232040970042076850514043213218087942064830003781854481027633956085070693996081034908074578642154400874025177221356582904025888568596545579034904732327920634247667053386583576492355525923289966011297547911719216825889391823339270610975079031274004500738474355398811027562134612049263495782318314593344545590556300669327183190338467167093050915699514205379579653342810457054340918050505518697367439985472417250014569800717399934758632493991636111951612466651100046183340539486090930423837973145913596256201988764885529430308862183877253902235670993572403365105415007845048023629458700580065517373574599176996273698838608974467555720954647777164798645834056455333894267042326531238851238445903265748544172412257421080643930916310042304021799283500384918808522193474784510082718063146690782669024017612836237018841810811418619859760797315020084431960295545960237840251304097846922656146979756094723455189039761454849648532075066882401041378680641610425244407804084526151680619416352716500024228877597205280237323675253666191835838179302652909563693690087315264960550146936479170532103538243098447390967560236293235678371190732541651476277278834954108161868306626164660748734373292732462000811044858674145357464987473414657972043867690847787568878343755872255745338728251701046691865207702456283816080566334542398119535706559898231185225841478744260852122448417114966319972881127347544623876318035481501104748250428962253826182877844694066805317452875594320950736843875789984142141592673097734282786527316473628075879568994294491736332569445217358319220931012501394054716602951225979509898386175815536039447176562832554995438871396108247699274729577080768667833254173749816856662009048559238800834790673710121464309181877009955976517027356367377565788367836090777921674810687173629867772025323565936483627015940570725196083430462801988411994103537880479729826453137983783579543127858849867834549334038523744587601609312952344001123526635003137200827297428508859014076178970903606844098113165517563715216530132663540931753930862443281647998473815449811182600798824605558069141420368272457888778293620570750129276588276704842055878699535503815322408477008386800360790367999932861995820430826893610164520469872537805690198539372090926451267637848412584734297699014919571453046217657388163709848972762522306050554125825928665253578810191200439296778864312288244421339344462794488762599449220559604732396861924852869271072901989512931155210565083046180351902312108764822414099007477247247332563700147134208481801227259348627718960917291916382927101208658535037448787487865246985427918958445359664190653821567233599359933096125516032197317223003114030228779503882273799840690836090610864032784645268895855594359177386874224691115645300392858400554114311265521841323007817883199728072392371038357831941413523264848322274939261118098471979400658158912360939527172537839290889112622737388148479864015847090161723556477426140011535902988325126477077333025898297624755425181909467170672467505636702025846789035089918015246308327665645706691910155166422101419087435921116059183589466393957116866825490892123983617065651345109051243187685297025017831872080104735248178177863338730764802505477331014772257454254481469928432925987066962765736061106218909115855222640205713040149545675206116685974731026309219221759116530338578069195678301572276225242859132614857193749702985700877554882684470316061737161647319300305230883183076099633454265425775063415875720646065002401873273363071610966653498545550518238977230913957706760101735602833387083002884113649133016915535903421331144916897263873677494072509319763141558568006664027766243510110456616357109836434599353752360369719451022814033108146235822346006244453566250041283885066729319028607962884675877440637487638938993057505398078990144410092391939568586806684685540816960445083477080870139513997480021982193986994967340554800794888704133335757042097286598501532226296787868027518975694145030422501267634477853456085489672340912813870473702038937958545946803981727299115807661361681093262346757153772750237176676529170932033960115331533802785472648702352780584493458268955747391054444043999169444778420292406277871185640226729973895682359253867103097447366914416717371970059846492055547316268450828216805499116447065664408963204256698572186820450217703859424726328549896600541494416187737013127058278427547243032739786350189549861943038147148073214998270995383067966089495363502916889094380422410002247030694145720655557149479426388922166580404937962002917007273895040190829299777028862977505432768334057732508009869900429196556548694659621448580114012546281794012401089797879631536605873604335769228363612439459381788862496646785207598763798456594305427530800836266543470590012177649072422787323865503342201116679472148879836711728436864601502561634154160420023282089208013397014781080287861726538431048217125570597520336948233057508387515438991372081844802835531706852293806029659779679663253126778057750428918779089875980894150185173425829790011372314660584058895644818885707460713765771361378457607038520084134572395742881362362664790935262816052473934868847128941439314271954218143503634206530852813300659841815109692545442560489527565870507997236565918001477054848869212760505427530278271086187447241613684899067821034244692311828326716228451716546861977289083042120573437140796023970779748916803854134419057985389446936023473593904999717946357902431477398310045874176464511867616029549358291130258506736141091348138048685383647424566444339268335126060273667336541765542203225943823425734165780351018187423167645537563902861548691164263335625109113824481871281349367020307677894518618663910367730725419997131616013701991575844262998198961654177437483760759523935469329823084945010161440379308807933243687881905354512634297005312365539806390465488436461606602547943241771643563004326248957739112183306216495016845636774694476584000522201692355588915627164383227536128670076609452217557565188024487634033253655099765562472380105243366990152299949979461541107033811684641659648316508457393822987511819668647120805609799713934247936837954148916781895288906912622173590628751244514716432785617082352446371389989287510225846372260621337476268181227602777538067454936234473060101871384040650078882251549054483452003736762919092025225846545097800287671851575253844034075238650387021785326138223261108145666977876861403004576771971701086240513461163830301004762288070039840308931225234484116133154529791893474831272421968376148878567919108331849363034522712966779062215848331046632664665073576382285323458118151082955615175775474774215677139166942861537406728202761510639700524983583578523802061431562208620916116755000683313560417940550341654550670089621866485628352689252092585325832350468293838870675336361129906824417422444511769647578975040992258143021018688586892108131447386854530220757692186353534302392977357971504096498900739300247088474892765067394978449227757437043611704347509559428260923167822850613197381583084039509588517476207540323363733217528858239085268801193398458541952724430451854453668686186390150479526191164619903974938928715198573002876719382018664894654888981507988456959647653384619895277844563458778411682594256379925244258524416633165142790047751651768243185161108002103771948920870853973883108378852440559923974590452033502002054601929857497410130664052612263835609242278694742212211469030250102370219191675986120271252553038658922477056712862128482641373102525334694997675579405312194692457776083037162728632370069172456033190965516014676411704858905226287396598808088253542572745825207992274749649138873711827087858139519634676703047454381269882677937074171155400432991076893685169641654374585335293279551067523241844285278243204783955994875830159985487377333947796420869711603160122352126424247306917522522185425132371925367706762619310271244426749643839537891447272749004746923695243577858941443274013250844563076227936222171185172011398891928710163781188272737946435578806457906419430676907044799550810596160805925617099166811338363369798837313501907959388936764090316533932928284550044151708192944075463635443343390369721980230440061778521215850282310033752262815019982451811495686014596664726735968491607153730476667232228661097647312988772152050901548594412750461172945044972258545030161577835589147882800357682813727935748527884265593109575614299787073502463784982097555066824309626128547570371824332866488673070900806189318523134794787226162325222215640074197108920818726321591130399566997503959423164314814989403199537454345322454033504704545174967622247770098505925729321658148077583514559459181843510931444038136509581532963046704681596801693467857356686641450246600602106896202533730679244744141687709664233920763402989431150107775472511660609303777461088321484257962275720694168355776724585460376710192209222880201263944212257780518630233515652376764046903830072667831264618166035162105579263741565527096874615181234553531038784098076646282554811647361946215744699659389525088508063177631642463776996700277042553819100362769615602838178631192088274813085977606043452179800589042989487514568419292411767861339346976432059635147178846710844178720699501356972171148735619990562093576818346556844504826263366259655949877240879669395333615691894987936998166550756029588232997554144600113608117856738401253821944859864406616217295586957471294067735553336177065615959722738933518823449646320237089396433108707467570650157776756440534360823506279565785813521323817786205839366176955797452016690719293726803194317678394539274144987156561750843193405373917560787199292309178866866698989920833779839963623089872612295950458660729424519555557182632042570267839363331601388608250950524000662557122645678270141427229159626848232591917077213027722139528055187069856479045268271730815900351271535215636428068715038501489486630097415681991555810027583014862274605713105029148353779402720214599448194981295319546998598610284373538981089937064691853425549173271064976882817225006095704778420688169882542184358851338043005056805048682170726840863796674525724786923579058630877789258806484100714716805754955691321222527331305703029710093735279912065876965713738067627174644621857355474745032301301513393053178831639064033399265241077370255469546020582459390626956701443622804038079720220205512315648360372044496784513161217841880477919444878332215930274506205826156941231206502741131589417527397679350403025873905784063633272720987900315368250773821858671039303551605199136520387913597000454206710466850321217277481447791532750063448645433579286348982101435829098382819027617289260140248748708730227026967333147467354158493879318323488393830671385012797240415601997623965678991234981004998061296332641253923719081280274730530848573955092698191423650022699765849126010410866786221767050640047596533755927072044766789059805665077325362848299329747370586960893025565807376810670779290570548297377927895529883270497038289008916911734403687277573738288937029074859335824848533654308034702154745787868488968459011865669864549820538210219939594335746634133319864104214719001441542296443972417691946851570992512523089995710519455474936513707900320291179064803974264439921862847887254180868683934261546708924525576341165893960482705205170805003087082909454125354673052550615842662605502039691348613258827959037990244389317094967522311491521251943234129972814138864948111653775128775643779832965889466062616773841101503283264891029902848588489226563893035308853504136565370070450818640078882057312600906142579226730504339307828581166461760174705990703179004258960541082668896741199533398582104355334733966610115865292679318550717508882639063396120438530744551789609688134401384666267980958355270638828220940472496212559239311061006532259410959899831576439232623544356891319292392576516879985988603713470936547812900032754831266180867764313352022565278587288459826518703787608824540613418568445093314084604587583050635041303144712137899237447368376352378369092647347550833958535985753285617665181253230165909957080752646037027587418087915008372333154216848597619194453923928291073210009590755378979565066981089374634236619574986435379017833222945539700582570657839496202775533390445803895304987826053606580020933263772249199259715358960328114606642888826966927573245263402640751289015046051097858800902305601038049615912851676145617775468693398146219535247488604762291893977007738372226496842310122879660868657768577665157123727459759340265638151568019577041907602917858909499497503093759005136811602566717470860914988397179909775921077016372141247484420541296004813259077773757914981655911668323657157723575699654266868695214581175331962088317885045708511253782626186149321419626645753225264563414188725581656101942001101293901554688251894237758751364081534765924234815722404176665817102055306920541898911031241204263616354574425764778434255953809763595092250506087099714064489266122227270666044182687355658862465525819889159101776629691409103950095624381499789940874841157345130087205007676354211220574285798843059134368314404854059165305066332781547350560681649641260397793581497530027282528383796152901568617781338384367269086859191098132121374513302848012600263358571388439146644278046901557001905101001993603972308757664296674202016032848316631201988514458771417663815547980449866011826679994352458263681728441704092485610063891460946381180038284479229494925969152745430929954824507305042113059173672577510354642455158190590342348257803546336950600882647793094833884137896073837887534872911753287090073923189643703055811064916093952359944862896542646175514177208804862913196905124994567383809840120510544038766736070823764140754708072538853144187846922846635444374587963961993986437880016176396825286886898746738873775037537829296735761788776607644378863606680501477621447511570783172696468777538374232242308360917150328415745502518712991346277102798475283457169635239557498509026481850890008580420478573218410328952730782883541342880608791515701011976452713798703802928473716640724926703925724529914499077362871010180064622709710468295866252697959737852605132527688895031164380995768503176676126594070615840942894271367973293797428520116231542759234190022379308680590364894693264381501512634961168726968673502715008832002518863448422390590510445281163493444382913706612154434931069484583405675572029643375831153312893863282779690477322108021306989354100406193734020977388347212667573724561221827083696033250571840151786623634238784274858164451472525265339285405563322985982545648582958924015121658284900639061238685385389886226252872575210757148154780644884049070041410934975171113662089038462924334076195325646192999111985990410801605877864446906544870094341978869022618055882375816733235089695515158717208214121326734694504609743170904641337614736186082308269607255972227916048197486166761857369933324843467623638263897678660651057945902864326655340235000658503061402566411259163944798282250526176474173437268990412603071978691055999699378851182593599796157856584652355505500429121580880569050112468116791914779045139960100795848074072614712898451728365368053051842857746190072264094772218611079067687053805663148235229908239053517650157528546567361750282713182109615840001540127818463605036992694696929662151209975320120510924565347660422880636410968109615433540854455286633162413908426690110818841074894962138230794077653963701226488998656489717783187611837975090513561908198132756192623279618459118523934510591000674998625695573947976510824192723490334691223638274720652858989440018051405597422911737173613114801726011029598910512698086776532083695138983711333015111545154654819296384340486642834300317117614155774121906330870303146454056291666052943403851548318337469437198521417609900873699037324700833222057990729859120133197078907327285778767285039207297694676984084733481525985423642108068320997843385366936204931149509289356433198174552070971336184466962606360651438008958414298118279486449899296970992750524163497423167672589449181040162832257716752856370574995051261827450043896591622569386958347487081710880588231446939604131330816424406496429817166592524031185739614830711017824487856143815043640091788743414189569017461492006942182609709934821400355348035922136104898823635122408417100340802092896239147941835965709266756940939534882216622363400116939269374633564824299620386984541559699014146039657077562866648332586075636869007064950980914610712690428617477874070778336496450984599341983519394215037086841734602567719935090151460237750917257291728647869039620826936571176325611694488379629593587465950045580115844245926697270044783674548160317554295118150212695726750720426108758279172559686550358418359942925456801294242922734377812077226692252386195371976245303756707119499600498621100724243697828632763131225302304047556811943811704847810046382217043156843543782652972605864791382307618380140174514663207048750219243036969185119875875787995987636411031267705128853410104141835433639132626525337099451064350904576781288348879776839670109884953323983423796529240616054237138215942940795862734416426104587303645364531122498534807261213810009074186477209354108666045834050954247280807018390916763873914027492757755578186205538514754080338554419881929741571397071404807495320239356947750527255769717367577230782473176443993726558197322019987901083163751274490138150893146910458839641369591090792027635958788352686729889056766058483514641827166231452941362091950416764626506289642901595090962808153391982729549144381964947584679772957481049769131315615416151408067104989483001957813141080899654912067384216710555549983374940437714818695867968184732438399818745086022632944966715088035701297421456171541074495052800671703833468694111251643391623242740950479120536624314496381610291915000112905332072749161673563907312950010472762516872054556532457864142105697852883109300529811017972320656838991898157026176072433675846005541709288717970046020855397492650148937218207642153695290811301654281693315341811030792811294285723789261652163140449225825169263406733669438116574900115004587137102369243634748435558450313485846449255723924460802065388476693870693692170387738282405115682865322186512933889650053655770101971937081368644878112563149100157343446825417647196324813917175334021618461647117526390991704408545931834057219635189031755713646704303617819178202672027305991747154677455177380042408750896647475214957637544568651783301616699677161617963433425577336828975216090377047396205282074484070204828082690139516180124060854690746229303298874394362405393474693526457267520287312155234361890275939932988065951027745813792689953917211722389083249074986324783368902380017249604386331547358872571310517868441662261631583863162780589321428535213977555197999558106632014769401613506650298028952210564542823366487041296057318856448190817471539962138115677547024895458489435736535702847762276420134361440642172799121246433030896755389617640303730075939355015330644217037453949480157395492134978017506002268720694823381349071162067719382323947146372555635383237740397839785503229026343815826150690026531965586667457085701503211970387278158692209735868502696742430813436483824209026594183027912876215513998618912820612145114890833687196759523394173253139606288986083111067461472734286397390781919082090554514872006676251913881098368191293456960475766627707208020690901045383288859102414727157595813423847524175470369291701849534452226815824290223941309540851604328043598081023233451316264933303438842064119787150551360321937068961233445818898959171801166549559189104582135193505840362409493812217938351893246303268946963342679061334407186101338044370780709916930842250360215424476076340944066544090773913421695476387942785403177527440158601565701295603232379382075965047075791420611796939347007817878161569009058396150204776756560868458013092146504539168644288184517955736727213968180776833145415730195439735718365786794756205834232799462459655896225515483103610453834103283910424777759724509205324992621996031902041066017446120430903036883791686050202511630615181747591963211690761803752259125261487091661178476905398485279336295984908302436939166598077024833965002819921429674067523273303588019395554675876109138683418351345323709886772535004090775396587671602866864394233449342559441698001283735814119615305830859345117368828952712686471949033914721053966644650497114626674548471798437327117596458169730429287463044075921495539880236718386013462330151640657536936642436778176863591624747645992105312981051961299338045331208896403518955389788445362298557196492272391575086659457034609775225626438700312358751948779014957581774876082277185587310389529141125468926822611268523211453460624370850906420516504917248094503820005141397709603094957267563353302168403204597964554226308936383003634668663863167006884100545913896695926785248458792693030717002508598803727723108636261046418293279664857583154878968309332235302827799217097149242446373630057873196476780167681941517221418786371768615941752805985860102834469833988209326767706291426483381835648159516977352076093359931349783580609266222954678814714472724454785410208469665866405649440240536588684148185119844069407343281750973150109381682378703948426514325239804078560975661071967776478207573185365665188516285135584458270881057195554357157760233289937531658753557579092645991103948465864541319959086150552241400623195663747109491328957359648573535839718539587407579988576805397412378471024957662786423168195979423508877254358258142822007404539040045291847934331928339995075904534852494434505845392564811676013971583568821554298676149223590343107913099637586614441176497711967794063563218379327510718464312038966441435014775135541766689493439847440400702687522011564799978450197290798450061266836912092220536540048852385901929158688144662440112857308981377521419450589464444911380672408644669885374068819793196463964521276935551717131843335664649378282795330227821092848043686450294074631812898556564231612426144164314020569324960792376835986294801722124090320303977349036072794727034965401907176675562648918963944777332525794376555587712471492234876892386141552430591105611136160725899564765165843471718557867611292506682519659400801513092675101638469015031948861741147532794536968687859489633990237168636220759158493937900982831529854174940398067320540878398291053180692332230557286564944525454207707945163926155140338770343571065214374783556974824067497214689978380157620339926783678362078566184234545623818601647635639116269680402060412360221876661360141145904460601126017495417552264800263507799444621846762150453888854953917262136078723660646436171241089776908990316853592626815004070580319804570682929056211043362795139416684415914803023584352026229077344447011998195212805919860095565454257672793933018276488266096449573145154626839236237945003628464472162719690932343142805304456299759831670322334725241848627770877493553479196136676730664549814769580830755530031621103612423520597365657168561378964512415566549618384473203880511382293988108269253769087678144106247494792779685887355589635092859313647513021473533532107535312122573272909875734316467912040931867469955620135565100841438049014535884929635722510658398622555545634498706243297947449328077036905533460601813182107564718293944821985338418558641797844007488461083720131294257389199147619550230972089608094856197313386955912582607377751982678926515362552620756116244610370884248040060862177412207684906487149753243142046814887799830630020649119707041856603070311739251932567793162834424675830916627272996482092536257029769852076000520756319850425182222373835316945799837897469656006483929399899478453279781977044851500221821063815612710865750001380106051975110373635784160626017136695999385881029781402070781949449648155065663377431841076859985227430138045700941249086803917447943887679888171087262205968291383662205818305844512730048944454996433080401542906588529358966877240807704680875057002271172256810971525876429629182111308606587279657062324757823417923409928110937143434112950683109034630785057899112527724515513080621617181370752764648658852525515411650187299762735116915147851134740772627428504722931617080460999314275015649344218394568907107666912907678672214775884507942304554714757587423946712499213163429876250196025515103116028190727935083151981386326167773501750840969144761991585872859463342982396820614983410450335099576250023387762194848528221451190085626394406458603325899484664146429455509109861910720849913278157013484203056128233479377910937095426978795742334563758712887853252688815384032959967813234032351557968451838395774989024588383119171907350492346374123075764197071368145382678323047345415073190147933941514389081634913304093650242280414530553080747972027732805175336357118572891105181384642925724438906786993104041642711647456415482982207845856566663506054305032603099788978180040055679344097155732315471645330994785066642133755179668542818680718182676026154541887268384734082319266984730515219448297732466046314977267907436484182814633002352845856190036127708548720136086978148730319344824594337386029520239169165199807038311311793564603856127313815676396585235695696461286726925529777833878380232654748892206988728493888776694307258652952857697529080613023069066065501124111847157013515090960683172198899632877076726338012077565371216043024104523777682124672603086731247588692179510276958595295893400252742144362565763973065912193475276465297057026080005162412606730382466014165897556225371328087147732014209039029032677846605231310671591746678428713552277333517858184516660207815162980555250503084256951694965453524992461001882198344333763367210865946822391106776920188095035866601260275864019195990986083772886709159057039097703038760781587476472770116923972453604540493497471828335476365939671283488307390011932596432551171729634969726590465758088007556146297233180464632663309913577423938293611798796191079402467939418905864848087186949252947352510399970270878014982430600818591872617461363604335201197313831593621076808440335214204354972510843397291856820048033648494733437210506539275899046011482741784996141500710945895421557006581696549249298350166908304178389040066632483875503712991768903291295510309545306234059344523972859867442480102822726271652868570176230136408015925299188927820875014505226889593285145258947319440005985390759923962182068103739813751064495892539927262052553313769666502781568532781211949446994526846904852578753845761718485998438024191207973674165247718823237646731088816970817086021117031114711088461646084401959125839304301738654372244430775378433990524670512731062468446324372066471590283391662307610110675620697039834495072253212071156355181551272599418021426994378368226120887182496463494910565952816393324943590712934271988775084408153196403449582854880934797215467887232953234469759809512277178872992771743248898393723511388332257048928816681101998255138383669645324677513046354352308655660389343472363065833272961529868173973010945468365683705242110006794452349928169747330069119303971905796756032493824471210274259782070860884963934910147088718102536025234040661538229287489974405965577256276196715352290410290723315918299913500546084297149334674903839764392688411405515904948340788565389201430487625993623250973261074961763097875575015354273187530575181960243676960220623511937710671652413879375211620540456675049132290062109318544868250105746682950912744265635823439768627819893043736829432107468563263315565538353594412818300567743880250356486697663066146017176521945363130869165282302714045025327470345476963907904840757271926239440187857122723392997567195253002746265102337269180436497949752870409580984847332771501782340560918117343931724400279800369987727181231671051660441198486893441357165840499195593099562952859267405186583795841357213400885259788169483470715669349701659853253990700008643255063042850725866685832101186054931319682218231302032103158100777438862934143032653838296766611696542441555628507878576499478635704703429389618288779142600208223381369985636051944099540253203237504174967418945018630547129911060621882740669020641040838918568173749568129319933718150762755663642787594982941437065255776592280385996004130922758723267700252870551843967874262605700564101179933242115338434146807614055008500084759766546004641894391676430409797694790594466488845120856859751659812373914642540873084214093785042466666456082742451870777232293210614132220035861595617519946879635203121151879616410820695506005579944886932894412466913794275713313308039364317935584721290900924430132709744293928380959551232803866200776874707085419557918595774738285893796863156664472295470579419733896860519228847559654324544798108038238987276552732752813705241257220055761972184866166435724779947407319280827640520215345232965499908801858197430380136988052267300594316146785066715555320691130830234649251619063118675978425630220865918238539075960536038582573991660767445860124315870456662647994972733600785135696588415492153983435380311917608813671732334692571297812746700979572791485917631234564150188494232102386274694796304335864964493759617778715912604194206721427614292999455069557888107398231594948438758346374730029671664604060150842803680933209629417204380987381156663753681539877654704493803215453338576277670594845896725892192589996221708542651022823459438597964303525323835976539407900360361190897330033152523676341381138277880056660577960013666999590422863522520141532450296594671880506504861647222777004902991732677999531334244856229530958565608904365052991384046694666457464979739105437631540369098165476115304131358138485865445092140826928193929770888218592808847204919380810619318001604397912358104117036387611310751892724637419784890634533520513789956114617041472251201715647127521979488853558582196349213719268976044439275700144980315177851365946399347486290117162872042266592289319792016620180543405719964183969419879493916921431692325849356181248153696499840805207865795529890190292694597501376777370397930702274900566948244632432851217625917472801582505987505677285398957603682733312470807611399934324645283718861567276380371626768993943711090527261307127013942214937375909468914552860343715913426687515947136788802163768688121541707544274191933519650159423773740531764033771355181407286348037673486732399873288682972777261716952486091950098089131199840635525568132523874769712440041607035009239773084581809365772573362792765464019523480459489191520623775074104312972875990064488224306677597049137556367509683564103839674789123714363126014856282699674312446791730583685506734742181416928199280898281189930109153781359347948255189650942595453759786486317962250218726844690677610067341899377787505213510365035185476935150607579304217941329990541032833056630398339084827395387373807336728199583231138806226084288197607187087801690734212039625756746551790056395921615400847198519597355155462412616023584758395680708856724144361109327671832357711900978819377536900942549306054286861189539870174331965606119522043686391934732068819725053198462105666775918506026396569622174917017785245096405475756444930645168889259624607684857394755130416459063529165911805448234850305259345542255300849647201743479498512961728004924684288564654326719091548322950529995143093619112353927492909722146150637472950082731159454130592048283512428442760072774644732244567522583013019380580176411110556605945315154576249588177774875965099525717251996390237821358381194928314105419389759338906312602738872099313888807622498704940158930074721612949547440584968300007382654243144393880030389453712570352268828952057992496677466351049739654402443670222756271646307010497423617410119906424280076513202903575125221744450768870861308853110794380742810410312566971678037685450519819582717660588422209409579474196930005462266158105721938097125326155167312605793947675409904789711843246977331492544504123185497567650071955373504493058985355404175244241018060980337827318646504194688802451043263663117513044545683288329833083810229002562113721361246826943880352952330116232576108685048917356551759760696695270710426684453184449503504801736186754729846935627954522064234025339868260801619082028694302916524197966347086129914941165281202015573483157012977376083745057795216430794936205062791740556114627123591674871368708351676884923960272350526558926973429652953580565871669649775671700992564406187681398801320045103488596391097428054888309770505325745866321779908683038286606704317320153778891880531756549398143969421588454662305990262595938226978662270829124197169758213431987519017723863931614801897034303948308276585680200358017859640353712056919586106578970873550551048584486200252971219353417793339140358371187487781868190738265024390844295271942389876359374232773761036789999823003175345601818190504536093401585063031962060193718252577143125380898313516227356289745642872959486879375717784214054401975134277074621771475790335910492786386797063011517448179504480232960246143340149302759768777994193136620775141733492255070199000091823941432264163920266449907647999176198232877458655783052587912728815002271249496981046683065249582381909088488939908259122926796518884862872988043072206795582692305989577565907800104387180843228232963040296620980486922208347064332886163898664230937926437290151833471728101212175172827433383363494112888922048518426781573537021836305286221317999551619386944199039797084209573441387148925747085647559063079448805993511117131803366683871080693578047136792065797174308768918459321094767573823398801618462910289800048044229553510589854169838209745711351730355546109828805631627624440342006134839100213033091596531522530055848676061890489737512823175196378714312175118261505555378101273750872237329949531908498495426659141944953101229220062768033289958989563624938964416135299966196561432683113265816299289324345616197922226910552278147900919304263175670369486055100444717741521167742890565237183218872166702171537780250204456451448428125357113209995016636894470122190434837453135064115593310433964581007929333209191863385687441370728262619709291989155119298885722400954682338468076666166617393762899256446546959194115546681024031752934845323489665422773969143938669817290882689305094493785593900529341885308292007563060718148447771405241765014837939569763208487104191294815390790708152313001638077568286809170100993093856726048768138804480511000602589222058523598311231887105002937131188958902588851291803770181311891631702296874046763428393458809167017039623487818229645764072181071585442798340540709607927348426061010053545041607321076853396401524207730966766583991946983385519455636432249607030677954168071598143086236850580088652180403008709729062889742890237660717005640578808116629763547667626772803087606151421899807553544304475394735708574943867154218482286407280932671585740753546792913559653913589468994475323399413363230585139612453229888213899159027341795250685315962085753985267834926228502548097184542461784444970072967049489402535062689402123036518622247824762781200149619341568427113461886839521387845100046838588349244006987468402159909125850254554098324747394919209634862217127506627699009250224353990668768520636324784457472028781268979779121064140871629909911706597045928278957749355516747735000409394429633293044153387020939930043704639969554327073925827812024051906076638461953231792734165128999783914211925581086402675053364726781555882921424478390014421435431993382624732134961997939791721265094012253049814417731891388135290318423255964967003422126049996703374139820679438513933437772114183791644208399098115191399439724163840701740063132206352337973861783628397321576084125227043132170070020450855461445388559858985896928978791378599094416335642371045176040592983649303911634971252337368721236176411335975240340566577066040411180112941089629295590252739514956072857779036855133057320365692093151000525991997930168890304238839274808692511551290503265924926392247877532720280550486437174299019171557752241430553890946248694742222972122243140436417575271972584121522612541494193848303939680073487327205167135029821908658412285406912486259120316799814281984012326643587409175912441408967584703838335402297450946300647188003221527413323073772321848906382037174580590468356168118452120968639487052189303466148757895089437929200925119861704092970708175328800231887492218501826365254623266671170140150538817102061847083233428078872857891287399799218718798467761221686728787910206164061272690595478837111814602528027803844789227697203409231262702279871485133330489144962101207815380402469814311683733952777529959579229044143669007103433304140016171989728804555964241231847236747686990213945955335859446433714615323680449568921317265323951732156564092893195717625409192789327536237505595670900005169606913102009579205070791338202782452755758566449898911682005435176089118564485868041363292544822378359787041416907586963524511528568903836793621597018179329669169057486397069331304236737519931702446493823228972497169091473903905770331215090672843497273425291671625944010738930875898917827507770891716956750061499128595797805644311389949496472149662340495117685061605638058230776822267780478366340331570397602028659302567986283183033568003191413086239878616197497904629777456139401830801370454960086774203489786035457209272475577700910783935433696099238451757132567559023471177850403250552860294702947154136861246133395049740880092577021070351195820095293668947205293980923376264067497034477063795819354918773438885104028132037558785565094107413004495031918153548834051509804548313943736565617600293778222644394726497866439524684574926559331305472780168835708273391930250201917420295379027808940272365800244043132759366330684799256268870096935638295809810746858661520858577448788607115285103327335962052521898171498939485792873669526224533802177639677719373943519760478506045276007218807283671477531234337101982472028935181483727337015621102779357085434172679395587793996391940380316979690765980087667922142552264076976923627489267882505301595610224184179676978297593968471674298565345044828435027241797355292129800792161404388591760602907646882286517014107081842926552811299228425679633431155677781248675600627992312152367793795597515692125217251544307301807234986755950731289349391876374246782156939337717819776875917042198370309465357084771818956991032010080537567618893198427459907412817748666377678554113905954606005617321148502913805673718684998235151782258566653689274031776629778901220965135655291187558821511000183545856196707222800455545064824477126034342546188988693684231857855063431302749940575981874568412102900158638196787510950100494687378498137947758761892958597817115987683227346610520767880571864493194252501311689925321634998928133261998626709655913876595044426511876923105880577583371446692470408882955678194924647762989800080275402699682835838901012781373160264016665948008815994593307181583918482030551227000936602036148385294699135636756212917021488770569943179394818462404967267541715599800280780891311649887280841639217388723207505246075471902525572461674338391506777791963417080517042131308980854104152318577893619057174233626100744054498812101904410930208139644337800443568151596365112065075453786099905650447728059871213659398659500894870180173758935667175939601775956188154948589432986584611839415497262299237460567160132654774437634143504407570449455162081433757872872050708986522153684832724016748013743448728070769634781820715518792715891041732162361844759463434888451622443771918153847940837316077392260714078831236613020445839883987850579504181313193941291896992285357206195932716428312715262686395750869014038824751365937364753224459199368557314822338351915115428355893256341944457932537646500016032796950782176559641855940821871753246262310228885615747789079101852077816582297399422548412418547650318367003558533985174831707101932249285429028176543957287817491552877909885654181382535715707345982378328902578549215523334720558191318242201956910572613522068967071269011593000345724948104948685888158158233894065016844355958801464838893812047335130250201799212088929732553507822239254027082694517032119459062771003102985456501252853632990062705421612775382904206970677291866722939245884934573584829453777167414990132811762468337163063044417317692313936612446432498775933180846471977180285265957471039020947403629480985260858702814265774364531524433630867127932441824233454270207076515713295033660711814977798597587908039683738528109820882937720312723874776773272257211695934567937325198684897920930763542016185218863856417966995807380065726029591672815901793944633256867150160058481044254701197381417963163983737766736377288941953580063186717715583427728618621588363534554806173927204772566686898660113256189103633082298230708134637502549950503902468660052804005986699652416077623397919797716260734152435315937794419582098992377607903250926014355317435756256488160929958357857565950665082590615756126753045581540225070806777066565005616398359094170217555043993614305584321484231671159504640806124593618896466501804877761315627084404597659444222206106097220853764077074127078640218246657221858132325049355254561624786773105839430955110932902768234750571648178069670365132456911711401951673425952071646123206073633996863526394511110223678776366249319981433912229026267067029579837078340933821560095859434927880407077766576025571760336721946918202779579371504386911718667146593080137810169527643213480623775674522351574988067205781980302312169407988113322408023893577262261354315513202605199399377124918655834754649031123568061150947500587862590769679027999512455350444118870996320882438950507376291823119390044990767647460866704768031971784907535244513114637516276217539266444293795258465218990465681808808953579983904298983496204598587031763292348194360400551758434027553892389734075736331770756682721733977046015358042088593892081964569547772056254129973506686794459246031493199925474880565045611767353462393752867549290110319460414887536524951234452699387735734301623424072966656780926838720626751168875097229730744121492744693645367591719458977646269575625037176437124117497375866983399147763347363241413789387779297315277090130312825465775821803753139863713295553390286368615763805556750395202192272197555289492175005546336904653877337956957556982292729501008195588880766623737786731104000236894938048414318918844084898565398669854205061205832407650592597770069565610803130295751337191314968823423654509500668948381234599859810282740392610384402741228927751191130995627658354467891666240989257538814812853029491522264263982453797629704388178847579066797692696224383559489536672643448625731149664988641289666576014682545696828303419100704634286587856452526157090188901495841465959293296992312287701002858480893695969588852617523317161763244929502562981742488009412948973032213648187466180085676871603540135625591893280083995551290210828674706031144161433066672726527412917772518096381546091779376722466444279899368189145508667130766808697675456983955477721630520266231006057238486969564608932606209933811237414763503162373739249739646807471194438555545684574565568534582350379542105256244696835652387338163110814390956916706907058224223272564170972584322606392748917860846188349834694801495555814435666591468133983425854813972505008744921534645478958629454448134232933357660785215978094604940377969045757923727853173041889914685693815724271159541321014672023699961689929727351540198247276194670042109554292458351530185595094652341167157484985081654233191346572064985113040044842318750959887589610925755230435406185114250844880894453622832286111259908987465846210910806059614396864187478556464724657364994283204640225353209867392902917753673451442410206626787930671684969436481276266727614422213177887696844336229153950345482733094214750071357848900436204788811558301814815807822781091280144605607510493662192088985013364445919178532601555813535692970739908542959246029973091446895475676287659371325691458151924064005164517460436048180095131615555822453320893814628260097371216664200144086104394327391889651721577885387680734890941694665483149959802691349514128770182153567375202771483063189087363985377258329668611001645139124529954231477230287879542372385795491514384428213012679732191173301427626988038181412397098871546570120884631126418671818465212097957695916529136420443448510248953453723923212241451215578715892444156153407363004648586640374608796464542592389136294707974805309233152518372725210485564926059938126768074499560003014647445328113494447354807280483077885917079679653925844278251778195616876115679523729315550497290248928663243923567841166527288323788558869306193941926557995008943497614368706767246233423700881875796859974232624880981178708186552083517145833136247653625421979363248342634328661559202068597149929475741546339198996099662544146942928114415443244778328947326677862273750669909646188366909501225399493785295803803469129551767730246587195276336229964186489174565301074838910187431270779282753013124088949894066096007671510019442701672312045719476747628430023235554004978593198496533542425797272986959872169993045435856523360835473970446977089018777908850459917524145286142592827143906016962077339613263253202008752591841436782163322123881699295698425628442999245700876827031059332826667916394407914392701582866116676623515675725341986300531923826745340087073689537627566520138654077006885485320104499674362339664408836390681049279619349228867614573822414606256610292869722212732979028453364795230902237535529799781906748602831552478461890899363852553689202379113230548140082789215226066747632138204855677419365899781284279223117885207709513641570342533367874252948711838819843972202115909299962035440944612998982700313896280640638493051496977416691349988366095888832488137724060377471541660050722505609230266525716023891942364626167392806518751176765254534607261894178715239715900449004206758650424867092733325371351587682298944331697514855983696669403902264189071258073710113188043971628289472889655587564277077821197061526703548159175180967301408970030180851621058978800351339077561074223018555323804132289497150027001799869948335694286119921993254894850135808174282872709731484576605233300051706224810771620209092201089302504770785268735982267542653055233017897448427009705343831437931500821764282511958893782422664116737996763233451481786334978068438642503447518908267999090481184020562660828202589798426682740943339110272602461628051338798725678855268668479926256218166991203539881728652081466145499081372798448063558600929619895685152946869581767842045685014305410126539513888978196367230073555295578310075384648046937893978039931103082811417607110100658116948640111691554459199508520830715708438581526312443972833182413094973024160663061372483965307483419888632357393473516082832308767123270871968498665818773447339847463215356850822958193057737858979503209134877489146797102880359717047202098543592094180600052819473011952840078535206871901667773017395768883667552643128353037006928858070865502206930555006841304312477079731648148557701495812749252902850955951223982981054867455326113293677447792001858273989495864465701024396426983131271545071328940703053994887941056117622744863495039044910488190929746223778959182567845721059444526756969776783722146266674070695164431356637741557263998851272383562232218011204400888000507404666068549134161884473070253148647790979063251857305170507582679391766326131668328118604968531743444623115567915841902810942595197478393929264327082663658508995702273540198443509356139652718888512519414602617574071557453921758606442799970933815669825274433104181476155025375213159305632961073210989465599736528260361201110136977315158807713741045719037580066622388434961665751680308247916288516618560821749976895771371994592742305853847375136869260038589101613011567677340950176802834494525115426015320545741498103873091215903739695080976757830926531398882060572615234597526848643366490448914885517233512924959304292816688445677814730193763329832167773010492438166209845658321620729470574168627497691372367207571723185845281950281675226339362005501306738084652917470400015482855263738334804147913535834796682003787130323358147772580171381916403073098646063244135280581235800154636958994093300440534339176485521213409239296232584292027765280375272074416009019788730540165484090749252564447758448482158577482280054129526108380515319080027558908601250699672844340314641712967791114286526381087837164409278815471338512499453424722406916366635955792392850215838827219596677608002034791103690467439334451130642750670090466566456236162851681764706220705114249300199819078946091563374251368517405524627289686773331850858614378305130341839049424177180846215944655903073128129195088290379593269516446152403575843640414607696726141235050054983834272880161483546142363075931513174470614208277351863421554210017236909085506820601583179222188534672309131756465550285808282901288096962932954072579365819428812440145018239415629956146765638801180466914242136146555407809998797215608576094985585269089800076892282421719582784610244013760207480115685434523757712889873119582847204687057722009919887145000312351300765759959304978699889126450946013042582274520635718578277197149601007308820692638952618137728319535239489487485465299631652569175271116976583381512579552825572278508369542675698868129202835521590926177156921353839196331707918737018675189949220159015853751758097363310070683339609257029520221519042876489318018055789699697818197134985323165309836869116963363498854168323432924058643242382512128995441076611681587707920788051968407963202107091024114394456048980480676307945829756299859755244576814346018801542442961657665433600315772190617569528212155783211353984145652748090246486881687484706909891172790223027855558035632248923287099655468220549489334057420706212104531042697733301878191534078270436679410096466117401667320485093253744253279489526712249123885684963821636221469557918038436967183173851537440524230492542664860939338135008266368393522782218407456610297129943561130502818379237506005140461459643541434453854322659581960573646773984560216163161130322849789681332759681077024138641383971824346485482885570255762131088080271997502846514702979482472579062163108509718960202942568531853730513573558944638659317330166919981395121716985709405684752857758733538194797501613720410391066127861535789166109718935173822061762461793295335687726287545239466882417704465985458381962288779694565013848899215108350707712196822119859304104881556288852125267881351484653747553021297272913797957714148373098531900525789301399254171120456330958033104516774549936865673374543662205231128013051193217783163601174502681755439477298036161968813872953170621188296148632133578590879654435924296512346557789376888083646488216358690557671839794232657100233786348155968234099973465513562296686799499598265198790152453599401320731362685087749943020039789815570919931594410696037965061278746572684633462981140195006323441888292521415269063849167657873044252848469305923252496793094507578197880971508218263775479777010229379613944893761478755432479793939470342455359060539155079960384338642265297192978078674052976422687155180810625819155059804809606192896967027037120964556428820376192676338279819680736991403194047699249195669686750947543705084827988085528040859512409419279400971305298088613390434425720113450689356482030065942590558149733005712936323851801316456593079533513314407254984557457102322684652672070948616647170404077942765007504753766767419221899448808360790676412023568939700590751093131118551041580107723017928811883624573205365299885416710518401827227334314412680620691755387053029005146383105790689724596539165591380804487902525661016696580615772148075322017963453228746859152846877653457014754604053111341856037859526828289660055821368758231127038312430883169965758250626588134926625101826052621225593883625729443990782094209881730759071465489909265922266788467166809727148349472458438001600811321858146353401182642779542011176179599701439726085622817818605279234868254065842319495418309517389792119014381409124957264416977711934449125981609998260000838145716666612887292645990288671682465451810340450466400616163981419324349005170020192902667149349703539073163327007994816965859339941326671483552560191056116971243714852945077633412723750829098267225205595615674248914327573542807687305189648470043135156948383955618092793561033105304134671727171318748027687904295433085861478995064969884044183912699962633252481123536798741446105742800154279943207239214427973111438141628059005004907488874417236278127017670809626164649684009479153241282261673578072874064080416645885407674571539410039963357235874341005798799863774071583738002858322224227107877930292980221673229980253488267552692238410790777011109117189120092565305382859630073800778950210449742668732071753051634099657222700038177926629683702693913885754327382245754794662543556042006390697791464689046316809392395852011823320621654737278592671782866029552027936811664561155193114759898489751358884195216987946725729009154557247193183672273666900693498059374491557687308590115497432112701483642448952726818682716732879190916451053922156210686708632476146037186308207309789726382195999902350137688270757464633180854254777262857874614087893693238653240116639882975510171439463192653843410965400934104960258061219097126271165658813398362591289481024028929213205357289491363427593985737283769978192187252562612273230608668479364630899659303512083666022441244761153103492560913470571628817160220884113941694466106697770471227936630243768028230552407306887604001643469064575151827654658850338596145114477373911830866289236887676361252820342036431434417944776495487223508349042273972042482494988802117037513416744067792014163953714561572847102277385707612176465942512972362858307941577049796891172987459498579257411336055112251895492546742492471187309416938245887953981395730517603448571983937520666977738637765565077304044867560422276904551835611766107808683339247331164588989058076826719996413418572726496264391510720628019201665537190880254431771275098556613565575748460010697213635107145904281789778644228792980109057237423445485282462150665140211017269313035402514626622339019018295274590302340494085816101420615749464232693657795034680571899135293032892223216642779561139761600950756037470721844958464654342153251411404129280354179102549501501818842462449753509434947145771159697066446163546909471570910429122915027001014960464551387765559257724648624747003003896214084918862305788590104378102186965932097538621161488051312872536120903799994276657982337391872275637423956357998752667106221921240489625097469167055589871919588103041741224796457065274297277835195601743441149752254306184888555212536491823930857704148927988970652249938932505399314271710864551595986457492072250069421227999624801318598942876891682928458768553942117747478649860008103455315274775037724023824137300384321372151459272845993502134932029467902485746819674727004510465084158059894664683443964195514857520378069945080954823131972325804689008496961510247779459579087640001690640618488867046446054351523254074300696428135126147626104709553015159070264295574641565272262479464903847781236772732105199594369964269922640711495719039410532108165100388917900200202061087164781656093310413829261186334459509207670207481291371520642962193424978210020728939196304720258820121587572013802936226204726664782085594504407763234723678645310650992980095016599541679938267877164768427793869282714017697044447755201937299429509061497627224075835630397463067277697464012466484535582804457056980613896085631912959585452268045735992264303837261547469591740711047772305643055405040994111156663309373266734501544651016977286471076995830763995848792827657162032164268615692568303819073984719124230718322461569071511940899840755441175715969141104883592875689895628841350768850530032520120950471400548788166160481115464552322745742213791236883202337944525026877783560601018092285330666995745032467121214596971814925489800021245136183993198251910791265482211221944485503057825383975688741705352583717638200827907157104927814518432034405814365485634095239160834487819146500795295444062809719718821599042065436094217097845283591007676144309816271314319774606454221682507490395769120041101676979240223842962028992925439058210450741896732615041523746828459493370094618800469490146646329629251452510297113302759146615312055326648493336919323620248589986729200347153141787303236051665284743596055701643589513454429939801513402492221366238403545957567844462384038349524599281022722668953821877970572418301447726762421497851226894742632596068344485306870418584646004560053193310923160936908951892152192195066115017904008760851671718725758510224350976173088895618182345546307678806027041478931239562300231526290027806069263763335724257849267002827332086453638058027175390511009165715236755836621062237586826889927812773413102104649560967988763995318718750553209160764223667655686620670312663190529270142684815770146109678235168893458596471305049962783301036922028136361509236784879755795200587512594785550274144996266315631260861460210775513286044074983856435425810171458249109926568923242259269465025935409943590599362519057522060589592196646437849265693503542015810697768347170794182631379081356459385436488636741277752367989583499508250590853033397810132898740450470590918372099929022825092823009042682307903810078117021034489935787222346570953716549369495982710607422622168365341771578919413843087920157862471256115643603817881639187683217692847459385735897434669172122874327699758528654011025744201135183778301415058647647561929533234117431727898240294101457992669563699530008811319277718941606398992538561931616572038842559021145254408247203834372043825421770222217000303545038560247714100386242314793600934158735209412167989120394983666010917835611103300521081895468032351371769445168414429122714139380781569671491633542031559881690870924299347559510152331313805820300616243270495459806029493059208707629587240101105390423938276660384712113300203612751057507833039960484047452725331718639401859547105873955510445691375283339815976128867633066044808058356290396030762134486243451272789172204099592197561118596239088666097142489062358206372834334822581498536220022985733914082801895156143221671349558210285891550778325759511585842933422722337136293965099689783140141332619820955073053396231383548842555371891583153250291352261633469850655693114626276508845482931221676444955923163703852257469954143588121689616227603323903968966773010927848235406986291578721360309396997661920042123852644920693323809376401613491308259620688833796636638325587449911097537156086003568694533346687749559890253231862894165927493305512496075449658335185738249967198640312649424994925647152591098136863739349372608226848103236215726928726000393155238163945297790054559081285482780478132257705740899406892945224444706140915994958696359601437507467286056703953901729590143344451609832525103731033635584311555281147785426227215361933285234210251345247592739416270100436179383407477598869566921626715660509971575799509302737883020533359819745850174997193911344655827030042081929149894857766679573978114373766404077332856387377402207071634368572113756362809740785923899987718222139253863778537596952904276093180452945316788098870985113667363701177533685535420042381144114758751381237278859426770619786912355548680353891427692946538553601227052639420880795529412152248178652830327298834182351017747644058622779078345851141018914568410875345165639316920163839639228371838307799395921144212302510989265412973772317853928347586297934601408275290205874832337240604928292118677308743276772049735235099119960913120020988909530438929295462267702731652266363802367597272010451756228422383041000122686766718868216600660998975851954025571905599146556355892415647729446594780283925274230895274845746997707556524527750086718105884032251802213326496879935351096431452782351136728750017303571154535466706696027586665175984283710667126338896316549658916793708858876488552424288839727548702191055177232176639744310854117031628274549455686565428449769098600837403985621810647184441199074052183812190508299300260289263653811557036630416425454797387704866871350037997911537854094256640459229427510995041193565557228960826371421794437605547059702849130364955606943651889046206681575374860254167691019609199877040992069981933959337598722747891718569976811242600646576575589262879680170852259237360751212642835814304336861534888113953047382704186454479271917951102581454864491516934567330042416495743535534143539308512794531308451935311357409077681308214591780515905146969160453335980880970915695151164612574900279266970710690268317982845721752387638073115497519886547411933086127211595085388485209060683653151251651799416758429250726083540474375025263846566129341785885373384323692025000757355046548481767947831099157452542558155326547499036188669753894214147288791739403658632759373616113907634596850107459374777163296682173994229965305841453318573254082534089902789520317239420058290035956029898982013477891157343773844523828317716082207129364296628685746366937698714470063685546267919662654836995652928916611496630049766566596750860847430565348679748170684038720702125329464622993795370044475540760331027319978314132562535876474843896543104408471581794854945631579525985567113227078436135559217700659926879008301285341967081888045370910738153677122863956008392658262062118052256560029038531051976473290622788040994997425036210582896014646327358838737624768453431705365564311862533106299522273333571408264715266023951142230762909166141805982964752261098972386853236385227839907812891527702067850439884252123883190686440512865699331514393949030844376509055091487118765124791590886994881156520377393357953356410388725146796604080022913054139222682758495861772356209410776318500489791577894990896081787853820314509312862485486683224590757021436353619818746596471332243511018100774028456816194005933500441703953253196019133247506295121374855509087277120403658824670902123275542229348830743557320975039506707277927640955486582940909572821016924416349888851537254806901014574111438406916515079668854277571793636255466172144705301309146530366021142122644529414752435632376086158272705926941614980456839122890496376684440314752575834747130891929599208165176596032391635109243489567502238940558207130333559134108346218669469029090352089023129840443402131846851945405800922279918135434274896671565109675484397975356823117788774309826974812834992882014165867097432888459345761228992713297891500205652886460784023835077178751908050541640531855228649818073022995946823724629049193864781408568932501037264261211320802516081823318392140164998408465685161668688242410944498024376738528618549140906059057879703705563496709876402519034858452609650782367620641831644905970918852702447320962148060031454738199562961546032060457002445422464942304956764746066355549354418607837487888147788733073458581132641194489045927484450925500341135884455615523041412968682594169103651499753017473690881268079384689969643847373599712299515403343925511493118197787081106377739152860528197137444361589597608622654741742436163622776277145752041294639871213804948023237789475794180631967310919048012800478312399464266639669306571290145113157048121558701708691467658631150695256878749414242455618152796289149443078759953072281183124904961496875639771630678510154715553859643560960838148354924198960971345474161752110583772297880582318399636873685824477928065024627436852619680824665839343247249101511904855408602246686408925356558447470328157719372325209616232027773882316446564490313388444850088537648590418864467387414686445650349852901923507142982133536152035678563324379620254672547601213378797720132050919520450939548074672590950714604254687259112279137687889904088085117336963562381117770822386205591813395677388659707693726918321471752965984914072196277218312968890900235084789244930681350068690115313063643056641181372018533773456398129945737768562233577316489917317204286348006250984690378218271680419681911246659011779492192636351310226799267071092377255535814599963415824301351628672661438211081597081945486952000163083240243548697911133595459878437424205411286385638226575649851036903121110997812639281544187436228850271886042250772255289060611111380820794389116605556364672458353175951961712402834720466416651379279418616869085804055795967129344572703978613756045045578098415110322513892698083501662263533608197879404371046875833200683339751799376240055542202956974789980958399620894925089544665900145176557648590811161629476581132576086509817146172107407477671857321583197393563979384837688722887647153496149630745505113519484565359542063929133979330852750410626129449111034709435565536598558654905877535864054581580187369578497368414050860591233900043203018779943965427002780923597421391722463201346905591875121438458492841595710682456873966359532738837852048254048969530177246175135854833614841514673933471019226588310679029406944942849721822775849106455057543743407552324135967912544295533123566772910366280431328237152179304294728889309442150359281336189003200386316156931628386438534978878367682250700461972920516334367600887831110893887563816381623529990134701371664958949411457862705063078187458748975718743083876430343427426059626643531220961327585807955060659441867052368389268163462803216727998567156254820653590184190049931713005369483026256543764688752217837477867541406261262500398077822641279915606933081022458985828898550337649040253959527614302294574541666342495615767644679512069369284159998292236220979386624718195345382395671137051158101136050049859179808765917236021570252337695349776830158341578326670250463156625582957549510819936617368771887899787480350833453188761413708520496938508903997906425552072999214085894634588708277973498839642266129628909399623365084250754515526779426559833459595322351547478158393395762447602655322918406401079763240649833923979286781671645956640284140927333546444055978894494057714780399129707511739199345427382878521919529557744919545773576663171474231828220884294264626688134317701005542585209642865583967044847202479128173923853062297472307898030965156816805333186077208983662144165752226798539390558587948453343436531991238239685767302516872359897012350937993462309086366333931514414858077489629658524012883535790410786644770705177054555873698738438747101404787123509871806499370110515276890079418433497392763605647459356134467091075435411355194539324322849545872097587706302816254640903729954547744489217972453995546397687690462809570969659083444038444742829055782865024011703101704728215009065375904614370777467531095992608649419094942667301298030362739100940789987259699574107055719531154843759679539777893440274678470515165752590915400741558038001032824949502979826184431946428813924685693746489950542026838556865263020816011774750097972535094854100727345921832614054614580984116606473511421762453732206100732819187146313727885206993628409870060479026397301611393183933696185614312824063869520143315200155818490615480626148605187596810403474054691397522323811065869766026003953245065614939461850772962941027006598968907634684265129860411481506845303920895203022114522456862744109632172841056718128344683642950642539934118904397645111634128163716230007294743098111338065468565607116089960491871183577654623903078742094593723674397757372617783419108053027768975633850079728211167851657153628878779672179417133756704792073065629773207927965977562552700317377536286848432323976844497593597789313612834232042545042292806989154087299145721335351726185600873541891219254276883671081326261104608238771682802465972093413276048767150666061615652637492622393390152493710235198762168999129551935438332927668577031970758363390405385254532838209933583514222802324257233643400868758076835471631402683438965302973861741293754888621816846649412371086529623775054354097463556744758830236824681513421819172762044211122116088599281576289078535975833213935659478499028059930759067241874712614601919042688156502970016435675859178851513418083346227370068877844637063119487310595521132137638489104548256559243097701543593638980801989597406635560422685916996560804279994394447556621417508731385058637057491118968021779922057508950205327495366491402076340306117853792369134120233127642385081360857947581012285180557301729694506524147611816016721179813457026798747490713759569894053939999313182038144255265148685811632239855421222039324567892043568284127568324070299759120608906588611440794186659738546686480153106972036959605036753036469050778334289059415253128206369982048246091173204446965938210435280497335853823891403282944295427389875997095157333111676384643084326967158555335121776853829034555043818140935157013848784956072126292157916121234188024272524739396714099803269638030909671277088488804712520963775419911278413770097621647032867627301712117146691418190737473088067189759345853307949431962044768830505850188697015083762731093614095184006998184541522992430662913240538687195436211043037589432491900380158838394509363043666527358299373424411258630192483150407016915714575129048652248590185404101065120775041650091113542541977559193064911988466081812090468701387383741624680388561669402288623391665384830290997369569712928495423258768308901204108892879875778688657990779508032377958277092838389517653206370556610365255624054831360705770753592477979143739771742960019025067232379436959679168705511755794650140039129652982403069786115601458564763962352109177890184588580660690835144717386576192175750739425713571647503789041583905344804911561659064801346463440959369953018062238762645168885968197681638741234490378344355255873212864997808136614974248991377988792692878285002215838898283584202850885472942022368020820566707136781013617002313275576688035909638679820000782148202703729703001812818387923871030735314578586306633327645644154214411750469174170379255828978430547992302008025741174345178060712733116755788769890641859128776291333055773102618438424384704463574641828418434829542923564377274836665848674018780093790371767145300949578514757988144918374329999896088030100496910116096876478369185074407438704462357656452956892911080484731524048274307788255450061419219147694956486189973057974206799802904679236995267129220943537917265890002277861656698972085688207202770150118682864226815399837541477056559286566313160283684274179737647067537721878626375401186786029668037234984042341470803957087246560302810765791896637745928209764988335737986156286545774167931858818886742574389685964869317503791113823459062690825153017268075156388968952867401404350783432545097918193199329955213044181894925281792930409641355714628636832224037534154991450684201425230740823074811704450960240892312824777490760163379197841855007708157473792732424029132953558496368274843193343071093634929318937052254890744281959169046133581816561039350958124870129780354536277245683204855951165084137475670590980738906703750206397779039385191822991565102372630471735968381255429695350970388107148498149824776526142340403297763108203305352385612367108399021820420050601522811687899665839394187391211402092416317804976905240054331416721013272201925648500338739426611304291819190908139490397200065227484784074377253192505694311429193969778992417291761544576706226960392565949209997569918539441026104064968562452406491400920940902617023797676393050084262138705130258107006661015506702918142912394680490105027741205144224191974218154048435378142116533171455846644627502199606357560600775015741859737109435039139984828522595673580796093963769495053265631935834286205523630576668334737866662164230253962489588750131104898257669263988633149991178657044713014952312919767442701492439351205140061189073257413169247353550776986497500622618884485111730427703042418996168688115056135253325644143293215997138008197598726248633084179221819404673399825250065449089374259024214455672802658457711332866301848805392226547898276051226779428404422236615867532341558179908422322166840862534526882403190245821058441181823958497214629110336924944399927216861726269936450248344837824464275221152034096757170830689672389826307934909253786798570220983942022315132792709226475294611265222640035264213772693134992528716829388835425189284858273365298559378794477554431761306349478555389447818490429864028656748803758082402138685395244537716146114609953741727937395509468678100643573705871430512060285410948296557920283445439713863505538859905737882774696856910718840507611041151689988656983520199464492544387636635140151326754887069180912911846996592781424178425687314373746116968879831844307257599340096166394835092140229561350515330467168753290895466674214582450933026769181272596742206995151393376209142452596838269015854575218728784940245447215394376812199272284595985558562133964770623806883929909526528186802652653847126193645721951814049971999064800943686229084672945723925198774701087930367814384228531463618597868555317922493251011585678265996747918094642004771740165476567373235164477485338645447504790076933864834177219793308797285929328738860904657540876428756258229586564718385886403295635112745412539757260086789785558050474499567088544021680313611144607068348948009553893656084154129954175652184122523398374214552702099776477743673091179154969331922073113336679811070321370348925430861556855590044938433388559721852534131513578220579025532171600552391897120877924765793199306903332033578646909923005268410905594617507237479660641812078920056904065607874225600022020342876565234040678651258096588175293201735216433770246777781115898704204909776654243485904328414784222439121299520185555452769368142650694800340297631483857584550468832447373342208711530803408589754840219600215020160569647553146682534550313094285263807585138848409239217365297587501078682651288431778559693599058328909520884081169964239677131844936611239070141185926876750711418975685103746279977037973835790275199699665183581221796924796068682950234081469892891708259173127060406140480762138962831275024247138285472387579057678450101420568656137046529846833942673961108786125810890713089576309845482590622136794081542554106642683793356043047549703329077845389482442783720821026301649275045261788865313868821487282453348356991447459003257138262873546015731497582263906669103177157480861851336668331429048291012981740335077072861841501336064919278379540199744971963825855080188240256990504657991463656353541213344093473202925644703408740226992706950348703329698931140646862140595673701716677247890299563031689803376233168973765762863885508775923402712337359491382070464000473548405791323302234899254558468247702613099951114086580515306832008893717126849243682935113915597917746334339921954527114777612800718145690954096095514168264412441916484601356614781420875887025329912697707254572066335779801219889509923659025958353411436213818773608655959964898981881823320002239713237174155332730796563678235247137839243955152962588294782753574801601953997637637539349584957746977717856473543074775059432347560034993182498881195574867050173009540335763977570841643274056844031284624962067371495485892139913686470954418265023671213951494726752268220773351261745782473671193421525753748620574547457411680412015329339306484063983564975562399782230360618096231231053424848005344466323365439180593115343673956380266915566595034660110295113950818721265818593199566823453630594320664351813093593518700147409496234918077685617857173664559967127858215830493741991951782883977106100870608582969109835871266218323460992734728647873821222226055117838126312466146655909005961713867855923689413635211058077136219434096885666049645161827355300489350675949001107388740168143404583137022101257517410826305515961496814419221979692179260759612466874663755231420503183355414791577646321938692218209573954485566231653640593681604988376223562699730198408628071147965050649254470323995598701203337020383767071369412972631957288500684977749372807931121370209400588880305639247668435722819526694890649895562522454323976854112547868562332355187153096539693978610578536326723341962989344282931748945104797356391829265680157563865957608795528251618833032010044704876693954689860993233671995881330992013125106215063339964821685853574360579488345655898137101590272577534287883134065747574244322506410197737155745084001657484378591740473020045850113736887439996391186425178369039973305425381769708950798713697108229579731545823024817808223333688300261570730827611784017001087114592698764753628051126140514409693824121783667033483932653750405162486014127250740307001202365943434282414554367995102553380476246098363612273651377140262227169313084941478293114078499646552137267228927006397828589991520851437894481355678835339121701899117485488480802814000288290541507142926418034663527660159593389731539104694313697604640783397259107106872454296928653090212082074790810572406151374551129798374180122333511203111991783783824844551238275343595671485615528224680046332230421240553091258647582127276538429788179919299039214186401092174518302771050378232931819068082721395574417570987196562846452789679082109202064309464394915596130017254035759849651830771446266959467072587997277876383479031819821576214491844221188518850255110440649468478140190075940958454444893562249504131415190257892634237668833150255484851239591309788172869330968364017703911735211446457970950159306939912535357947258263922346578086601560613206870045488859948326794716607240485023647263412144110306301989342527559320495027962906722326430243695236860235639402313926246786034843726573168333954741654548931268857206924565717423802803131700754606823801883712318483683996850729274688881565279582096000639766959640822253405896379598263030727282498811676037690149057326415581722687083256172123383280062297983009869787479857936171683458901171181746329128312655091215936216144764696923347161324398358082956459263089845978872918602320389475282317003911119800979079273396702607035198877829170887800496641425578117723336506515345666912225441057395814798628460916235224777932187691921001057667449322576361167985675589740382372578435460429688449201294445900307415009006327441697610433654290201426114997923005374919774329881696225380306880049077068635869762964759624741819673485179561478922941977147322317088908744457987416722730453287772991449053072296334663088890297320925906911858703526281441640571803436917254009253413264530909450630449581968559087924013454477791587679098232223924389740880987677220149216103115758233289102197425787035606455936887619025039994446034248037081531702763397748653108255801574872647506596190099235425401179958984862117348121243493893737637480274637474985974415082785178610886046982102004345006528660638414790266351516100987069332528799661036376726583263207177322709700661209749956353761194124151426767614363724569800318974899461040250593285735429042412014892589047484599341866833769576649230649781878400953097561014786332129178825181084354257717919281918201437994377194438460975078387122134835691578433130598176338244563196542655719626717979260104932650370270651761293141589823818289434637817167488046647278465585077119310865330067061580520895939028605359152390279682457330231894769071264348026585307824975797730885972542114446123753027081678107368969238346389831241280854926212981706203073168803746588458139144132213836920960845359953835276113811353572909158148618359018907655530650373089245311349879796220325864422304700850067816672118159940237459846985284285253229127694703068049286603274645755041109025506408985551736683551876436173614685262347698069526732557608588546275596629190819995660571496821708335458977338859619923631527018157820172773972255408200328391105014299889759449033604314256033458347739367703361143384160842425796868454304073225062794469398574547483645885176426016731509364725514198743337720458982429734142669895111746366713639059700912330192016649295320722517635905329382671202850108329170961849545745155998431625531200701593678501480412637205012310060992276325387010461075516484369239184114660433216749349275251842588181335135198659021871067167327971277524985787825846252347072000540787897214276820029274260302379507736431950910977439591262694879264853541729555015691615781643099800354764276663776744512476800623220493153114436619476489840194904601167918753720409067369521909569397084922946349308328628880771243795064536730265482414053333647713714677075059929740844137659673880331092127645586358524363635115678824285982706900754976978479765588359525650176016674874694428034570867656373419887325528404480450590074125724366182825700437366735135436824387336803748647421544251891000596346201944740094852738628642167424959716057492873996224572854392573988756586437900504480602696658324615925341776178905021188111722822987097952619848770908372168454497190941260115530543737877262226612374908455990821332275647466460406798575284080893236451309600661895716431134943999670915311663309366818058066956703331397465909522700191569791458042036641670786634013316477863988187711219570981397125967503799274793254318662089337851087615275245634187912922070038512196796613467332103941897763491858762898135620900975271858586877440061631390291052160504084088847034969292111259940336592382944182404259046837075111711358388485123204361554231383508285240271023824615892358448495061131941090331995716171895351459694246679417110682864442910501198327571013297942258038193285199648104523072894139813420833713648955391224175063480288484166841555977640277965211030766286815839845445955935288312013117883266872006000377945434337847682012165012257654598388055721557083060625794465725379969078733778744428877471426037931447596080493432213569398481462324709691290519683850074177767569750866707892171422573966960888150595766655741499841212536803410881310049144251360084996945591576275657220258244858429281559005372449467017576655066157801308685728653644673838314264146555056142105504078358802476068108437397714188103949280011899750939149823435030632542028320757153695094655248823083753727639216385154010281532661217181340949224022971934953501095231558078660074952884439628859129037347298644631262775052785248038055946409917347016561972748023883087339767798555806808856577004837435408263780422265310583637170988011190047457668078364250787290600471460920375427064536136191510280217484229299946792986634889051002086513623610953330382385136888191845101365954303788504885111016470497868656106118944216193112599349378026005658863173218354019234370091511247597275163063387386928072876785802208512087650803402483176371308666952582956199220867061535313538877254388902389009490087114175061118542067960781010326452340614114706779868550649989944406615947835331973423079425855231938626855377537216879460690535431620382048736904912819344933042690095611645856856208091365589650105599874127760809707982829322725739304200271136762613408847878056830129220279557837890533645765845819465034986774020386422488051543559562129451283612075098050359766598982128503232476630295639666615244758677065108928350985768440491971447963039545169050379822956805612707220927116418880324308510469042193858779728897244106412173973572046285118029759498342134137737178929172499818839379681313635185687662531194090937778910599261307772048056022458154414073325701503575859808155458236274212016526659135219212685008717376968537975279417382981384092853861249227238065314818227104416406412179569703451386248377736471205272576805578718640551810954593485664996739750591980251613826202148242166597807379800002044079943863411525124287890861203050415481487915450522635745861245815457036980524638195493157569792747362445392653155878673534069639348507605208482700854938884031280712264330279690849187508129888715035894871460480261773461376881738474521061644237612216353728382383101267553187680018725506915715027488128214550887338689907646095932593481204852310201204314304479851531345175866829857032875487467208996122580123782216261586805044657334109209420778907434565100073643938397960269358806182288235304638698691091182877676122859744501309230327693585501996529364136612610377434587815103637468915562453496309527753836023148507347447172649921325157971536738490479215526694003035177631605922509212351614748940711203813510816527151173841109067404261345512946312181775122834788062179068407815736523392851860024481269343405329954671171182696986836931594255721228964500085445983976080788018069586450712683464989535468419606443778695765742239726164159615908381775919098937213540649377697232547091922980319650878952599371777714480625541374263449308097577047244822805283624889815530093555037336613066814911078879806414416673371986604098922071453032545085544479943417347525645910327141076087390641199247452565323511772228800970534953682536846186259140014154279306863906699458749712563327519965824044275392031621883688453995568425384993473542746069936786917009265911645962384655090768264566253335484360183361585031440961698847106595939504862021101325696640176291865469124920192910674113400041632907035189693044748087935473086628499652294817142420112751704106885660529478292932626898697603830491093882000411231800438390693898593962946858141398426882200091021666403933238347920657363204651074313080980674654546453620907208958748494959764981481098767575669328262590148173743313395996094755501603691528100054759981173593784449653124905052498748905333506269029479999295797728593996325975728487991389724320999141690587364796639795589578314704548535861723651071458518371102267555827777956129922971209743732524990206961699805909110561515231638073034209434322317696889170046313691800613894347942165976799172695191897088789711870845307342402587027104202036609651847092224316365848422899340475578811502786483207107794447668645750199873535260560483914281259529822469342479814751454021508221357719259744048123655572120885252640187460222289371750848630839587230965412988155532087611571490795737377111771552991154375021207813972055240272660439707350068668462166138459450187945268006123574018394790608833987601657995999310338473862032553218107398292754272004920821519146330215452848818032064257315181408594401055320831242595686874861948286372056390700841698963171599771069892558623209681022469191882246635053177385456863850322675655263950609540901559067804000765911772668020167999276328867119887290208208719269578299971103847013395428545150400347455442098964629999958011404565794136906571664113240088353008994092134382568028725089807567593273265655286758957149511490464403615328392840247944245192907030530453954345782180899285450775496728726629800551420466836130486333642326438495575178989523574684520446966974907779082964017724870082852896839950154082269232584892334663829545679278452805195657240391572971619716907799697029253006280331779665976962882625430562234927943183976393311532163422356929890149162230412244709827071646310472503172173289471490250419580501810379148729607937642308748793212417898084967510957844284247271035539207840570982857945983361581589324980716840444425725350891446062006325394442797212958156746518321005393715511869448103624759518418118586957529554389893539623303351271967675388101030493289468714301615714983881528431745776387064690517442438745628822242445278814866200176388244050094656000675008129234913637359935579911449191423248636060452689579435873996688377280555720185541448890028307318259970523656390612632594374082927505770001330304315700979518237412021247139696164293271095243007623122985467604330550778467979768890979104775145707803173464750059496233186058483772113899995286634673118277143489948842895282343935024583602524767908582768059829182399555067733093583121095180239797244085952714176122536276161474102221669587271526776078002737992465187643499956440088951257998946921446521539472851706522061213719266920695720844743919153017153055224369766753076732042668344181469664611566883761359010094427219924760435684824836254526205417624172403290485153632806548188661579354477993411287187971676974365068494015920899709434745355769345244445262648935068844521870531517295599740891599013180503142587427850007034478623434203088589503266832735286388354669873493117892835330021329688401661180239103725701084756449499618093826963389755598592837473528460428909619134784501195128412951054570378097845966574990600387810577551280773825059765011313400459660795442096441386618066511083834332485972803040067494978976002959251313235754237977870179698680715868167291854187787187592100341220132721110154255043672505249454772226029419199783772549137856821167083933747924840993998948774689012381535936909692725846395866803484437055668253655013645384729562480779813234117365386821528264568643653269213078261226907357378329028731411212915889489578998212721331072410967024058487913083450633639065292488403996347619318872958626218114254836467531167251738616051612628387058559736962091754721129686660612982820912288841463550739729447697310620588145139256874849632600553575520623033354510944917316135196865088072925952916671449165622376593056621425511712835687875773312632075321424995103873183495166261207070682586297547421444392256298590526657584537402174390216941503345942549117393068239779582826773365754463911477448309494918967977207916855461825466906671559546960725368926974646311736577369749838152626746930751120599573246876102309939607499008103437628218001253878750577131007451078899483663864630964082916063262287487686781323085747598963365596816367071416462712709198198653858731018801540430642556229274244201642912884244985384561587385355587815445319531352904752346551998510422031955429756146717178779814160468428667854422010444434538203390475052966441005397926841850091788944745191533741993068026915161596134251998452385238843674548011075446652913285113449797797528235848245887687198719659013648249665903029607729908053133864064484947448190417141936267359504780584789821336062087594573028071444169500941857550680716225256297489419820541564319971386636031873277996756995235593743240138718092697236986037634896297009652706566484566249531454266205252119677135094470310157162944240615644172161145077029299550492899598147844204715282533811621349207675686401350860585453906745995634404419367696969236789442549826786785840844915997000340439103929251193378585648271387796461138674857734169257116440733654176574613621825898739034031612745030520509098278177450944571086816198417737701617704369217502251620264920429316219447570445747595718808072755281443199965169015778984879328247106759882143402715919425275533178727108080417751061475939742925733072873392039817249666348894013498466269261743620374620499634620652368990240202390331270827881310473421734959470298656602132222850156714983225279274748009618752997545492454994651709072039099397068866796883987317877214769934912827099568108495013168163023439157289544553804584785675073038694115354640107872781869747643527574225638342520995535779743703823135194936914461363113001144455043468927132666379459496562680233450773512057372706501390656553065754698483786593200345438093511846752380999545580270871790784707008963390301424711974931575168927685836613700835487974481102250024079681570621972704888663590055475345032416935105173746674560733232187979993551012049347694134420984820464220712077753289077320345245346634645227492473035035350425881254218261897556054059614835210276211712598301478627639922763393131771050438965086834853164475266958511791565781261244340997964330353336796618914669197195839637127976669352751632724636832644060121056149535245290449994826123744126804068005300275937493561012711998364369550011549477222693290848810410844580977401853412664463248516127385910851553983214164160518863653134074091180889698213987786199886023641914377706652408176479414403720342128290599433538996208662297296827460592139726441112513313926256985570072063379057297675837823272711266381721047389313374524632943341674226973562200505725395471612683359879357103122681760068231575927862258537273582847974382271935103786141232851792955641860642957401280277991062635936996123732814471108854776207017313519267609489021321349945896694415446875293422138145565855384397095913441278731155100812620124863800367070717717753862279642925131750114709686476492632595270698923219840668094264183514592491086657928689806050451344103749867517983854241144453162060984905121798217181187244538776168551454651554414691292190462378045383884781958579501028280506060494189389691290725068993298880573547311581934683048720180483259398183428217072802296883389054922406092798475049809395877398851154122110151176255209263760942413441304014837298325188277466649220940026793209116229511663115824892594978900252952679330103786512620580238919032730627293166588636804680233837174581792279090762960871458401849298203369090561838075030647556087188364736330933144652025531986573828875693304077570098870456405210589582832482955802402698564428542075581392977067029583557680920681504438526114938332760073008392142348917641699939340212386761105582959543585158073933112108689285912130345482623398382808483703756592258187509405593912724462148364243497291780622379610674476852379310415129172516801519635635589741111813465046539312931615002663844104273581647905407183685725799606039535957628532722592092310341689138505070525127507051085565787256664833930746061357127183193744833670031276495379634702881141897814399388110308681231840115803870056221231578346894171898000858468290543737615658222756378194113756943093176429248063378923586732129159962392629505007788348949873867162335792307474714761256545550452212841817242637913838962585619098278747799590441628635273306639446493831113502824821360889814844306836772144748667254665255779359458013430923848547169099743865377246845448926586760739781315320561894895570400632659525409904681316827907292028363299476502567612348827080587816673022355365261897889345505627630424519821185789775608900061083787481274698679477341206754163793405901280756749087769902818283825419575562312979060191065444366912015690752524552512981841056586586501686062564089463860899663550904698260575326415809018644868509078724313863769877215653175924168746734977068367481507538107304783277959265923036581705518978212080087259291199930767011781308423523556109321313751587846081985924828500771571986654988755295392720566199942136658863823038575150523287417966619326969251443196822815781055231386610510314246273696361883269427665467690744714072138035292211331360907049154932892657727614288401370317273425094924793163331989323330756293545054644947017681641655058282781929546526956483171665291715055804034514103023367097843010246383415532970387425525767859372523163576908795514536144838628062242981888305214286140246359698311434650107016746424566382849633895819281436139687884751039825388324363210737180725893197259337675361256864974329620872903969538583429015403619300425294833024791315597433701652129132093626650678683967736650854978278606731272999110837667719446028262735797989865642493892098787748895830093705679474100777378927996152197017396375396808815224529375349193932286793667159883684903985171631672012460658872229377275691514041650721649182901140303236346616794582913397398997608990351167196552078541809854785546597025040917689567459236721086277251441758303504581604949623286597450234981034131937650517415547975819969670132778836063013099868525359952847489469835930063559643908741105401588045003741142656573584865171917061973135197285847976815330126159926840849607872203670426929535155755706672267075490401154251606577899105139093269175601183614407804313062720826222937445709402870369706038617678131809859089190230361175722811908627680649347136058768614001049687447039192249374291293471530116768393836918062461265236668432963265743889696189403813708115917790542038960092929978799634115217578051786489763108367809423992114521741869051028966693989812576115628975647649845385230854590056929989294241743609548033853660736613366647768379346844267780426066637933554426841089220096473569973896688564265843074883650471193552788978061481582539478845338240121938956397395117606698258628865567811944851613033415029534363601783547209048351942909410192735239669547916011024118295017673543732914228500210602426323114808549443161900788163571786570206324719368361893820626657975021847779183367937443428206626996411577629675422005222825579869225128438868472130421752478650955543413554361978438259710891347759935951806164923836564097943855427703472622271164096921519338068282542554611018596558805277895022525346309489344122605217788525048658100678351923054837183787665300841709458997059803890222054177602192043938475191174642958055965010969747952364958860134097191840061039748059812528830141063394884186131004754750593096355061837702583192842470135082784500282876200249555369869316440078946798259209947009835265618913932891073364279282278614325492942598735786464911300274618876811238162658544211174521128568961220155206446870740500464277527616614328744653585688682872967636028535020289647869973296665103086067349099654301054140740282692487061588904870484658710797915397028058356161619916505798469352010245051319307808095240607546313312919178681939908433910190425644364672517611511318188941478672605341826594421573284861865304727655066680816838874789918198200125845762077142620495081760868748928661682312355722246225284308716094758371707958061308421287825486228497098640145684086792463609852573351695910791867640074295260707511467135317514947189028757361546675458395169207009419281300392099201994423717985543453851814749003697896339383363322653138610277055173577634134518225955556310808972612358418369397051880899925241873360955297404383390788144348657946333532875078444443542069615314657271091223803250651958887010777602596156503974357359086221686830978197065014098880719461336118557425666902608957634614476598735971153283973810913500904166864518249304057879565506727403651765656595548528789207080628431675023077506859720717421325350956440591867352126507748212050896380990544838619652565058151210905699294627527865266814204685830255799952901726193184479098184975975104573328170961374219710150074533043535079931101087727380762921668083094515286057750321510438691853700134164110845907747651101522968629564516108049023867690863831223195016151854928578399801445530500666126196958806466430522066591439116636388534713583329399364749005624118302353746899114124420399513717031374351423867016042483075494084175316571236027785265377190541075812272506658998553285398873458487678915858648013099902331448055370230060583153491122500918663613823334228566545616710197079539021329304804002267633881928930035862047767591382553368544286544585857974308109247646120466324325609766199058286485489719881197484877954382348665365526881323239999415318002683393302227729172216237787448138312040597465807638579214199547792091782394656204338287697678666973169635578612679518117494432901294582634545370928137158389964884531845607216780614590979639058166799695184693237965028534217616103062339536255818843105351364462398555696532792782180251170085196809699868122673588235765650150643380276318343093063052990640201710307483341228328418664353050438544116442567740587884001828696340168164021652631332014152895952172087316306620402662055413108975270322462626986597173383281115643983085016486838006286032034850435482301813566476852665156218392642888888522102756476485617409797049175579471366722003647625289002536362469026952127027329304106410631182961681795757905297499593647875853065590156756522704408215133686563506966399425300395850910027261212007622844999200926780890156324435439368285700089274298829512467357409571058201075602351820435499971218876081889805862907855579277501207780782312077931935695162838286277075961182250467927293366461482253141572634042358261246177227103529864237706450408402171468191522897608977250223323825133419655893814819938804936350462990976929831787160576690471368683316175586306091295596629223552774872564176197594587539451337699440529973370569845911662854137141533197962591398697667403955244614950253236609086966407740490897144548936212603282675584319341869787883660350296809895845862448776810389216301474620213193819443295145073805894629407128467536843306392449007687625359510187527122435649478670091751621766627156740535236751682812875466605536561972835515529670120394489661942642261296541929302166329606697366870078516331821022218799216103283369679522391755626170547207450352341787397740437635168632477191185466585595298709010116443477442884403787726850787505822003262844974604140355961145227768658820211581702211370329174082441441440593638636365671090095721692807524137725464970405898117240971525227682289993966309858345374431419532724983107049733534100957935819589874747362979044175071344363492872608906053217874529051078689365308330119189694623133922676973348191808859513636440819041844206339842865630394887777768806154757169909744102199814285839062606234111128229355174564834908647423791277398130818344962952624900358182304994964271302242064075578408278755528962138439476201930687988329564134332831665535752991892456088660880942903539693849953443331579871521105634730973417560214940922840739669918238156445346671475136484064882161920628695512123055986519569447369639871081200299145229014786631498182402127739822736462547661876915976906342236889807382143930890173439141660267700758370144417872761523827929215555250401658385727067949375469675350386269737973717055623799346530395568383807799290830856998435989395885267378332548706170004034957689395352620722810210788858270679320347679948618239734736376888702504827800247400547309954826545573219143034388505858046984911555661184446677070642978268035996953324189166160129833938433809448467460999075680570804825793517827062768645024187197074401025556604087638172753353709024692322470854740808704623005211238381574735680495967787188381155095811503702955582919223470893816523145490409750563518034948850743305195037734335818966508438156358910230666764876411439592242295546606062711163430299138914882752021198912732516878977393560797023649392705306489812642490314476742726485662754026888029449010342972690895126497628605915676864890298199801250977563801259580565245789250935368725898085802854011599172873354118555743223278652130419673561539387016946137956283646542692273358899297807860665048655987780795844363197537298796927602520620039338188090683511439527380547954782122313083626517360734673163796115567516416713667593025126638246606162995622477519692264695900823304162869305231690230976219147782131150402940767047363918775298765120571481014818169745045961224516961179837348611583175724132645382136482690984513115851974189498469448028006515930435898181478723331731402690968904201503255447463713857572877029865275938815308022099399535845224041592175839508834528536558641786750872621210790533958091625677444649780140622119681112644451105704012479316070282203167209179923884514893222983927412378167814353250040064469137222418691855874974168506518528874426654635297104528366310250605787112124412048751527228469531373391101803181949802258208695958073498371706876490767524593643847998377025328861311624238052642386118492319413658280221341874347511936130527324739007513934738727353152695450250463109509596240297443324906684518984447335805432634464388391886339290579288431708235780326501252557880886715352910099333965441553976036905941233533806805203190506337756706149057455532307675288515319478515916830877280282295719478383122058007397004634774485127654223678002105767885072723988571285697686804664132762530874493523665080063297537491734620508431482770227354810677244106457034215532330417182298566422977515425571464645789702508184377627601390307283474246536301335059642078125592459014685630165168123094058889166321247191053763012822058398436252253556614879907682684793008324816048743823141929672675267759560333401228812616908231470335286215776569097631014722728329744534699800330375249414937102623337966808245302240492290348807581326673226325586159325015341084530870932754683997019821872480045555285875002891566514994620909980485365716699283226490367060597581889710920583349987052440539163906924502062397727397492055535245172562409185379602562378044357776653304385897921934523708268842223113055588804161951852388193099377256541788337641056272126568143262644554856167250231019393707694799754070517572023701565054883499732819319717820624594201436583648668580817884160235896151095070091141401435457983367086673334386836691275051257346801929936572681946544105023139288799424663122093321340361044042500710339316286556422393661722463778426566442568574926369775590695960697260057272646380781171687972795950657631937410334312818252112794733616554730254729890525767229643529454861014448104137626868307191971520123722321297467084149475597944750127920456176934298984139883628406097885697467108821871555442807159360590978665375341635477009359861096106822265894028792427067930278168488804844553010908032585300218141370647452577981043927815418427530511571556068036640567317148424266688137844241742018925651911543181324673731767630858716521340828766170062400767063144924561614676052108728602324618425078241410454698342691198177527697309913282531180375345449373410212194260213063039341645377066929135007335946753499792929238109032521359529259698063677252881866901557734463581992169663644158308457625916100847382745693015909411457502761652294490526244613982574604929872637983156648267080500235199089698757395053650039408524970192201514474077178830020704662456430631720006100921648281714538369206865229298019602886404104875208685226608107371908381029089472833218434299292489202250332465091070001363511487994607842866835205871227271428073495953393676379793712321218845764257636540471587359282766432073478957591361658036445400552866332554307664881467766424525980102283362447771638985889891201957510064660569809705871231169959991193314771278297101044092398391644943465264127593737879736915262186709758904688573317754526820115972378696668501651133062635500446504602133043260333192672001903269523487074629943828918259318053016694028113007021707802668083782678183812059405201210359764350140807210041423183403343733314639750251364899124767622130024087031833144069353639129036003759750673919826701186107720467658203304294454668400514570695639694483954233796595478317466473230227999817223482798822610930815100275169364183589475120238897707814692691779711366069133802419859039753674013541596475023251163069170794738899872543554130563411505808139707343651470685804800566726043827668466028441363055981723018688419781097855712991626256666567971202188608572107147844513713827968466645488931987349797258107113974483397718924788676478510312211644915646908950470146238465061252976403504313447765864535897971909173945694219417398460944798690053086664317558784082169732983493347362524698275771122544131367496634781157478566050441715160973562317445198646513483889900594975447768248525925709365720645744339457034789652379920066042803111932110972732305447151978441807340731673073045246976331896100493985288308073687695376038245529392829023487700628836326748532127989163375132436765729165241533905287159328080834055923256549878867467842032832745767574470397095980000695687822977921110804547207115099491368088525370275080755648891736409404952601571503429072289348663614632897513470768306176784060718500408730113672186676836549299936717617932819732902829719911699729567823327021518772622481550123636212454636301003846570576252770509134966446330290676167770119994056206493089379336655837392995688015978089961099837267581368160972341465281365407970112713782078212235683714634173100587668694165911235970688616144023639362289010121006057905214299883754887561282711577085911303838875903519389142794209928489762725762704395673956984905870021069209555112274991967033028458008013713920758200430701783308187937703781694907352946006857186188326820771969470367243977130269595439596714791197052916177896270072924238035577891523338619793377564002023904400315599152250050072036776391736970790415034417086976691697888009896947738172230971100420503703235276080002327664400127885161138397032324463831834481528223038801051421740650648960364267298090787361659707258703454591650721253553040654265754605813720354033191161178813539305606949640303078566414427874253586070540505377490361164965153872816873887688487558716835435207379547264495756293461871415654743357993023281161941706934328592703322809555989679734110905249675303090974491474168467336061314870272065258700382246644953357529433811031831869388021190452879963779408943491479101759905865670344568111321266429443819270535242011501691383672568390977123996733994264439966026784309883062370825142176904120442439241890526783480459356498951460837787677443801503636630216680694483924293428191336815556301461454494877179648476690714256745737979914568763432165099709544317177312297805572265749631546714681630090478879883760789951941683635608121300594869903049220781871134301245582752410312644173967100059289990003221536519964723158360108411247707326009068116905667580808586695402669231737877074086516878244182245613940348623388159429582491680938869722567069228369801226059716055984564836615186606312002670839303618381562907481184913751732019704864553318286158502375402188956779798800310632580932707271999440661884089190425365126143338323724232004867926580986663073090237279836461594636552232084806862462324695399136053412007590017462075979750958292864783039580348974499991725086094103297503307984479455581071491961590503617588873027300273556466336026019861132869411051938153992392198186294436504084059922006454049653826394885525038133055115010690168065162728363522601240506466642395081790034091080945399749118488824793355576920978035924961345929997945837577169190595446722568680434800590541126631709733608518785753906896865509260292601145465658808675319127250818754552482198066175976777241928260501222968421994074259638774505251752372625595416733930988916388324554190942661794072185050950613832618877610752865841297486182054700623221608840821484954953822830458465029082369881044175735658556184475619720644886337077882591116323596173588025567259118691873419245875762009252875456380907792751300085674881715567356533051676309972217821050395085487738543679600751142037557980383293831455460543689288981191679638249549787817195768535411971490863963049505524404023576128059019829277299697576319274894907262068435293837771453247057531780901104140071723445903492916712035262544551975878316586964150580542515300242194247619414133399696463416863609312176398290642049542748368610851049836812818013452597386721239977036469863511917548533915725517436036419466392519022779044918949079077205574843235003823897369947496859340790953657084575987301448684148836772684122807444463913277612191052640134285715825525622176399347963492290232649018810753895656878259074031197526596991015406190708475768836159248856519535519405258388342299975699635894330476897590941054361853268206008375685310417660222801025018231328436774916733813840754114499449545576178027803206733058508850754869478826331026667512417745110469459744556198235411025345259818381329529371366874230489271265756090955996795014594503741520562116732532407570267992822938164449066165743733259808291757366018840140344149078575346302682577474304367981251658503621700006807192059940879717651643199440964541639858815859868421216911954737821040138624340589186727337818253408017462450825175449282243521757818031680318317783627326164842033659665923908614495413181316741246921948668106123701916309903905971016601683266947849735411674430633924534660902835598417178084056573763948863873511139016205338443615203956882113928674267470844763746235415055534532832695943135669317222526626309029778314046183486175967486807031787827109651775264318067616432448179183536837062675027315621670188010597737173504586440440388894739680457338323464717091171380943426937605563209946782634033778883055626815694405937575459020539957191783492147024979967402953515775095282703182591914592044338488713342336825309409518370297777727607106132805440424472615012999359338288091918996565416096565593302140812679391754128158500120640958734099793447111990234531141801518646671447538288760633481562045144984716294681058992210422361554333721743213630212250665326081360178028635428294251216405481828545135301292299409004951629374198115388806324534092044175876528853533989385611958915298536704648073085915338445733445917442233863154868633894798873008184307246301104151021930337734467360958276228561381274062521942158977422529196451122051103750567326832732451522806564414703160973440593878379617997992997992824503648897701425243445920576286436393067428556584173880003319146156245829466847623832349154632404922192982737747031485145684317436822821744185122294320987229857815706013420948005694096753169974526021311322500387724330170444967620123825657979698027877528071181305256391967521501533037118773789630850562832839293137277177185333110182486593874531065259764764270819748980212226885106300176654031981963705487255826375815557271636435594609469301890869738371831479301986636196295684897200845892175069990810981527982057795807322078733564304803291596966062290190017733656376300640240337843341299026812418124320089088350354279674266360966876898324749424959729957416588475112697283342965663094400240079111178941345723343017375478499070359627328245792712558727750569188777049001369884390927215479140955882749607796434205548169153440023909402290075762033231200997161830761740947592332013026976957711343845196445509519849297764409904920557134728215575422369485643533580955784829464291525786119579184488152080224994591777073053447288168882744398760119910065695366158134759736407065064312625075160697947056359242829362323202129100643808170907861592447890168234248459216795887053745310200265593495523082272600947012490256910334391705008342326200419628830090849989548450257711716588825000802756423881885117691459917250350929219697117850926292306423042586871549102207435192101147065007855138930232572170415713236470314262901337757716718918331587451070086098100418868719555893805657305123016544883297741104044241681743173693725115353687256324057638795640381318872283390368591231406566872933898553658884884118108438363627761186730650266941692125649459745343006093736744353087698997847146020675637559820865230211745067962715518731104666194114050134040387839952398765599485855632306149489461923208270719775652511283098938034913702666827428857352721198114744313548798236304515360915238339573885859500407177757307212638577705155610918708095672506888166260044734732656862682272012816966385054078455598162629952868412622255066567549901729921615112408080048903900491474041435013802376566474390364203791440098700383167204295555987789157110967287342553060627043659752693818117475721335218240009594572944450014858172085179379087592449925135928904780777716494878874547065016142207714486025827396786657519141096706483051057547995479525630168686238078062281144102914347482819486295377754609392099974116584537998354633546150440597326521643096674882180439648080059182728221538998214933577211313060707954378678868488312044526750146020732556571291236401666253759929925775548213628528369724191025054901468571707828704260241535668137873388302238970624830617950964092248940407112747349008038410741442165036717833364407035425615875109739629924744596171810918777077413331429053840342984246894935392520787583141010533818860907583565187514470671089169230977489570224754618697861965113265876452819882351435834402065230576368455620875514741409576775108358826168597389150894342631943605976133568742035028220861679245713610275371540337822710332507489909172652751282241982101170308158307287912275813076035291540333573509398850571077715340862702806024166748821175365054239672596512224005771281843689436625878882016763528314982580299542381210696790894104141620606667444202444330399141157149475157126268360232411711558541951521131140627387050056330165710849513546440300415832484945040654580981515455397728327744797366795611159448101688649264122747506381487204053422051629471883578607207144249493679720266350647707858438515268909134080060499062551568517471537411693726233797471347906035682996705588614381504709258728175535365818923224655832668190012850949842994139890726357999669844021097953625912212889622332095888934015594274470842532516504536858861193690192485631719112369050232633182179604103151350463187513451184894325842255091208719343912127796758048136623527502690146054724518320748887073812690593404278354597245945645513511737636879369133080422337303447897045430219715784054810884613550643628453673649730819407968772315653448302033041328624271599646240350391020244935068279922636009200689155749361758877890909239715061393981042526793966776881053131890836194143028476015133319088660676543644092325405834687349573534899030141534072192957444618537831860221560200289734880444266137762784602498668529177920807627623335241532767995661745221304469058771127377933783070654968438297690395665593743965904643861110438417763711804024057716737931146009117345301456104761985222558256792831193391776373561389717724006008033385385874760495828464650519870532628088214730294205163258739658248138007993624649527631169823307058180827891555542358972224065930049136707661965976632143098688041340552154645946242013240095175879836910206528725400534388767991434224253951037961989468303332506097311233201989928574111266149197894883230775097809049754973354979494896250600344812818554971783424847623359685614624976077955779437146166726481719670078782617898552651923063256911901923022724149522169434418589831786293575980753720658615376763977583395058784186151224142842756659210562499383447610459502884127154590087671788428446488614401672169321965016832125556016443013213310466155116009798191723103471238036303690146353528303277931904135452793578467050961392237894844591014493145205553047120849762617003543682387540742605966815650088497656264961555087497608171110996913417167946005800237830850210780978807471013868096784015074852006074038617928535244964543704177656561418003724105319960890614471067926319474325112520694118926277324420956585760933387441982126667076349008640605701352957437180236477338831473303269718606257403749409626205654667911304969085649016825675251535836673029237923411221414929911688790690644135630108145278908922567512211753081203411338752394690117325437682991309129322589819075095749522096045925781009174470230193533872645903700958984177409729720157848784902394575226536094281732738004962562188743600306042516547537538234623446408241133455381445187146365119466739476731252728299568802227194628993879600958529456093920653668226335898473307017257926072092788162817456572014484350200430024323022231958627450033699385695598219393137150023252849859072138358334719124098722670595821889621208802160483883694261355370793885936064682245101831902067429694903751142193470062970894613529801067689758789707319281691744757170337710846429328108623934942656754872710206198381052923265462090328757351325884690189743031631775530062321090943956758879204544370071118754345614406192423173944026317056771734962739291715329310852841881065550512987750830732856619102872430343632501941109999039822287298090715443306486710978080517425574445799044895291289126572078797041541295700408884118456562176057554714198323989521721079651085655434979896727946213111260526528098306875482612410454066110239519309487902118480795945424817185114442867120910834346020373982288568660701038183894694296940458913200736288846762900497032928937753130428252955416861153154711853156672806182501266429789625204631806540121402015779141933678264428007258707452929790391599624538985688749610004610812760703077387138871322460873041115919419403641861513278530821652821435345175917197149794751871969188236711599940939983594275656106707815149710820613368229709696753234525370124593365566368957966209374513264135575743509311003173104418616264080581450481278512768750847637113906983053289234949509986919229194075423403565463557469090552639871616140064698968997551594595562311768016123613104623048107275637072797440508209767690253711782888037088647553977059360512758852366138826031136711539930402512964067488833673027409963602883789550411563552488645368939939825908949855099554562328352055518291421113764475196141953772713453674156987524991276823925475154504571463678062026104935657887207517982657689254158188565980612817807491081932822872626746922575861658129199640577618514640348892908530506289155461201542612464112416129403069467130718434909393800429733990508130483729473947583611070094108091751966090377500442300613370912362851876379978474530093309080321807285412044519516249847323669709568043073297879015692502953254113553893060358502585165037431461323474914952791177864267226502080018858913620194237202899827401786553204579835341259464044958213681892825381565457751785695092622741653446222782143517582940104093355997875555849182051893857081881499101799424561554898289246613593882673284859254963852572758287500735890908305344882312805910376121606201325842883469560449409514780493552938862230322180197897914631152808261730465506220361143653581752311050125917484391943828035465566026902287500890886302613180216438045909350812265061617866756343304320661740602884226076941132564687780558441481597004489238529860336043509018564852853907804246876697588733056471538782737396970477158214239160329678570099762760432292228230338666663421813647732750671061259814381724247764864788758095997192849815307213306621930699548743780109966034795149533697355227585181102991671778091091131951098714444433951669155102505767840460162379344621230874164526043663255006503518363605152645666680951203947634530595759108463677572724410053294979466319834076780022420917970320550065551580970900338431898490843431402465429250691785451573022015877824121589886344645262807011730253406247870452007552203375353889686492681125183434239853289936867402516921737818722628106523988789704977000047907027002383414011087687516458791591641638462489292093818935316060517997628464763416389745493554271803160639698002383182902932593953837731299558572483223774599774421533395508434128364404284508236000319220922887255513326302643817678265727114431670130421441058343177358040783049203259386371898369723329019386554990647779104834583383782691801941830377848998531356413716219960572327716168173995128321624124313750295371364044640874532471069877925786607895989834742096170553551312345218421408930319327062750166201392146843910872670688549414884108944648597745284439825713974223205431631824536077632777180945168090439089930870872366362145793249846718653538013186772912069625896661688519049315113154920032627743587416469199522092868329124388213238919811308434978085904144751426759108978798200860284071763882372735970583791840713566101268620467908005343382640260498089008023029500314480373975083717568672648310969278515987650771303330631322126961762369382352433437138368133340744843936509047060933053252469545947659258340239363651131249966560223800163029526041707613116622896824403019643335457809317337262320355188404374434627473879675004456852053776117256939394438739672445400675149817838517469980611579761115118509684641005976599427185321787067629649717030600009277347781222004265420811848718696128416995628695725897739124386784798419151267851701427658309368057000259557502469240702448909138624662972304373148912429237094689472539609473579951699948089466452269090448892402571971183894457777806990421837285236850854279785239480008605667331968411738845866328301011735686097417909526774379292029836578508165761536686879646642155743365097474098595294976893631071922455880335494136672307601246428944873274882051532972850932283008297464700093727376691626148934814711320935170424266343588945480290226756014144510950198277240641848854997284704087102761543764529599484879095089297120944302040576808761681527251057277816378471946272975130730022855841303986965520610226019176642109169689026405663541215394130559282417397644592377616106715757612634715436203909036045480682779460942143996738194520251937117778519180846429460493093753945918757162412059240549723804189186581042972407665404618159069254843432716598694055707011848804628325341540318642669210768136707231376196284401372838152210070853313910149390016607534195184705506382958113114673372481116529191775751194807904703880699814508313536301768672154813733025967983407710098622274519690330300183747639373602858609534309208663494973490884947844727539722462350065209507469685353549158584079630752275531366065935392805809818670179998468202620439440653223092255532113110308891437435278292376684219325963764606374072395483170089507830991634035990090727963431999164190730362226698410120670681306146692574072984022011363372503526933038721913320658035428614457599602995767865798786625802574959267450378387281111882086588243222980931427391607851809849713644640327774358324538126368774768176339244291249580833278132724256886804679680431835287566301168647262439901148833957495517469437238054273603107656658043944281780961528332111938585929204322462522206215662011123769779688526825358846550591179912016243439614552824375194897527096773754794661572722666656461468218246249365543530890182689568181166163296119067564780781734062682476018109704914575818046367086504768891685959885062798909784756799420831505985634468877223674551989197827469846722998349607524022743661956015873794736911322392019470378510309250951381816536555369526040942742450720175662496061315627825165057342244588060574298418262953102858365767888953876736384182744067861748397096381670250069770760129918398540314312432381613252703051154625082043673151702494544661781716206075219018909725938328606208915449081850312378069034492903318726281541115667445090950860565237181335968677863122176097923452083012441993673428751676391581787217430744256733943928808464126380491014471631654673985179406480465831162738373976354101900169396622885925455371427347675508233482210502643347355750720695744277275112801138112011771510923228826714735416177554620625011316628329361327131812718941473646033892884953666888563982245003638313374903473279760876364477942714182103600587078664880234722178649294757702574094019014611032726948437821456700104336791302232768863822253826856665832929811652239845254738013216331458680928044751835092258129245607056642383877596080890059284938453157207378272112034631811293410211901892279585015756976348011164073499852667994640520619893221907749602329698142930644006724458635373131901438045123549603021395591233059452875894610162441056339860753665250176715065831326233247503560659769583810932977672606858741252112491758587629640099553281854164875167724411546462031072649479075869184927135910428633950969677190984804380663056493568770495105085500175447584983596394615594365618654040541356374529747955960331137629951621892205939698670178286893006323401303494237105548840998559545189559774659097441178088615277262352620184911294367579699960701818545576808138731875306173644882134022868036210998648477658029940845782474494373325442079786507156445808081893467251960378136526284920156748017040161500301977841929354117798782976739299396682469923149788080147153707961018822851465037612596197712183466920968287743345105283582586700238739577611514415825846406163683289887975942668020237182808999275134647498915407950839644136830791839207325652835785388599277389684985270080984309576441682881348020347637202364318526163021417114291067511823916872239493663897385107626513516931609161988473650493378128312443265138384619257897488897494719448493027099958036313839356518521240682060478071759664790129184313737521321237364524439513872096417340843911062715895155863325297538852486033899251869744189094880713525778498261982828547558103675522773476248883726403070600792586302964802179468151181621058740740060065665512819168199124084076278979206826550238331501716867025982189501222947371801274036937780684279128904121744478653356501074843472923429040893093572305572280507720800617816925080538069822512285390407716702296977380815933012948335149298506738007142913148541606041866879222018307973094371038614421591273374685926529888306358134371349551368154194306349752842153659874802443272785049954350423637329474304054395821323357494659535597513142359472894598623001769898372073716073918512597875267245845338077430487553098302228561380160927291720691325361873213372026886118643067024552052815638427679565174870471939249518513365760455118480538596106534309130649784526952614917736277561237039130553625517705042557551298731213846322223493871501033098802082087431400141135631367496569081770860467617054490846522751986104212099856114376690335620558616902300975326477321608692024195458816686310234107954039539535757762252063806162949134934927148071152587106446207589999979489048629455143578462867026897658484686617728207216509369543788430556289456872761378991262798907235223960775875631155239453192006514437125812692828866947456620874892660228226897774302580303779701278005964732576127182347845968539791997101580879717330797969855942743075324525280230246085123524207852188226852605717616655895174127312428292203774715938605767760964022610775174588500813891510368425501113565002167025815866214203366864761100100394865473213607931132791456060488042496374668462673027185507187459245739875187004906330685911191603058933773709781306198600804535192465322676329148579862757484284961126435433670018550602237219246700194749601382234091618599043010167414022703874751801500855211428899667946063526585689175672375240857700071510223712602535264546844607374105226310338306349570959195167278841293709116397011550118825175101803548413097764154381531368356329256205400885148479179365694167865695621339316681623945272500738701976428803729332560680275536142576648500380924380094549279480650087702306995360110409248256699798074952672000518397425556295686891546209337932293993498736633578709721689576792408446849962326127849529087921597507714496206667785054829974832435152760420379545703245342920676171358654870572791559392568027283946519110105009746959550932042704557531702338684887141266068448911297653619436800652572827873767098494174325458247189690847201487867911356288189088785281434846919685209128076626500624297986987312595318483653835861326128267415557180403102167990060362912786529008032211061151333069340044672395237407021632437734720488010542732199036081145624873468193761823346879034256638597751322142791889083870616300842364838277859102241364672354033409940684284799401923494958391009827349503174650540826838804486881385269376339251195777472865366995162348783576328417401299809507491074323603341243709675658128700448916640075616900750868743862112840294971170677443534493608348015513391597752419628947452949884369575303373017273889603036459027334161974297900444703690423326168333694569563033131125658547854275823843454316279730605026656014336064665374820493690413775401700587437272918597019665137732588189044740712257126094515325614928203372551505258680197383026368828558744926831191379295451759565999109892354767842384907285741269308381914745706623467792479799089641113854746221118365613053496308568773763876947709693522866707942689381008469985030451022699345756376629172044028202548228387932683942989695517586194919671638558346881048407255117455231596760269643976469963443240311927946538288659214797689593070903406981557697247233112211440531112251074510406082094656853666157088696297814716299397356035496004680583137136749459059378935939334633215171881373597320485862161961117035928317147939571786737587728985893709791911963448697447059051041588609568514716945762949675027387790935849339588844727904421625514224982211208022798665423042452952662436734981869831671522862736658308949950484363488707506395792561921618258110393381683159929395730682324944803939604243325531535768172440735279971121029721565989593681296882634411139764507730777197223753867307958042423843676544130613421356989593496460955663510657661410703082083480448574325717125874745851481332182659234502107240413339081797100360612286852364394934832359952033962187320586899745796135017732648973679201589853345880318161109351045631412183222709950940141534275100768725369940867858037171126268267084387302682764394639178237051556160647514996122800433193925916645424610542753636349608964445267624460845724066247471532687701084464987262520743621218472436656736123209737155596488684685221077138936245085673923369003388332768483096810836130317340511958100003205417635893498840478473508180098868037238618325797058439960878053217475597259041065302406452580775260529676157226812738207785361074836530793458416891093343310092719642515675454326416650178368603061839706107672939498771759487802391009491469053421328595916512023664643110507487570057705013778203404029620775538964756039923584337882458867396496021947029807651261909952265990127302660610308076606411202291033720567979014629646267505726088130329876497560071097844765431269677722919940935811058648070425192979989700772660707332117922684731133455011146719077141081862472763103675242725718869771177394328607431511044525029315533779042478848816649590531924056454685727697246204331684679806741065371468208714916608324196404203967238627645857908986268749858413446109570223793145134730231156899751747655452545442034410154725330226898414880279374154901095002646592393095817162315107598750610704470103317364741171328790859174938297843716011433288534987061540180052816164495541084957300256166462113230091840109551285739844963583807087403700862896324949955652229273757095112725690105445199052983431958569178194841685655139076307023875481607962452552980679144444031488619726378202047324465707399049007174927600337953383209078836739724570587048461734241698950088831481896615543214217270614745837468988059866803406341486855324571377519699361070788189968232800355533602314288911424376514736954576089477553086084961201473107138977582946857504619350818531093541424559704525397410471979613989799242331222565270996056300380569171161353591960675397499339407871540473278404034319676896303616236106678103660607295493850513752140369029377097618458941831711201910087703766891252248355859573289915932211432795881169893878112933570612884053551676267992293843820353510806306160806806825859489424337108279217315475766654547169866503733423922903739184244848565481726500784543329893038215044370672998606618939733305971706391022899953456181070340456086395366295758636512782824035538052204330277908324675699585498329531676879508165796874839690186607612119578593203554589684948026442417082387662738713056410396138668982268001690491208261028027389389015753215669242916304687358210758104340428505722492434259681772433578894999717584372802445342679051728188382358332049621524645838540942825825161722917724204403048278497811881183082246195962577440140054050625925980403293182300894092032407722192861884832957449559377255660917060720880209152831658536543625324001345178765744966705318063338129899531234090462514371157408729052294230278825338721254568094402365645301830764308592444551973545972007867063019725949201559662548534059239073174847357209420807024322474874099516698060951649437783789911580907463925851658302975985096316571016161500824113657588425083247812005882493335411218141145475461585677881642063863307684963845768399032266434793078079256393142365559993152988954717656794318913124733252132885281446192401973969260943657345370034867133295421445452799845283188515501938062489070259151647983299506727297925759400086708904742130562055149203862514000113562081997005436744616942146915722257541333273070604264222406006811829586719914623354604580928528140081522480844194470515774938005624534698413360866981879732974431620452628408822277120784957481705511329517302914891093698630928768343476750382693341111581334827654320573614416101922486678195428859836877964203323543460116024971301655906525882435831854710901754005003722825052888752011559664915317147428220547250793199373377443241464518581118196765355118596104291007782878135330887794734833604267904013834751644940118710556037280322926384868878088066269236817513713849429021590965487121493784942255220817313407615806667490260931267212249362144748194026367006655230878448882351132955364729383306235380033317785979204939829248680683628883987367917748026608092592838338692732391030481781947740055142555011226886973489467023279073083042367939981600011137730874614231508759273953718869574205262329260809856989083807063744134091402643489520380096737273038578787086970390273196835193165741445794084256445540568864711133293306651671029417604260778941630850110958426919871477553384222695749066342113125348022011814483544297063023560702407168385945814148683899828965850127363774674116350886305734634894038556295687789917934803347444489302603839318225173513540327715693840723428065105590495285744806367343572604363845417196039987653352846287541500967043307340850089533608856365024900740056629498373181272692412528124444874406083484079918592504589773031289918389448400050529056166312079613844777079708572363052188698285060914422846841425563596862081112850825142766847704159780569308547231292131446736012685599272502697313051006713870213380565727875820612785873656748763190371979819170521499865005561325123018441237420627701162639295980807059885185628200216014092833267163130184279527082179651774379651709996451760072726902487672547515597014062741174181408506632854397778429989883160175803737125015397102120528411468194288880736713385061202029002072602479532345608871443875828044923264658969016036209582131134037585462040389493748315067562964957132465373451462529576534207531248000963220756119213773623638927542504612999838027941986360403694621817071165548688037920846056169728199024561566040058108014579976756677876257182222758094920677268819058831632552636801547505204247430331380381261011885335961854362997322569937811318601304316085874834604465427049983436711697131123437963046690204072204651071232223411285284599769740533408785366892621343662834964142433861960770120312122580700665497086221227861521061677684671541392392273362207306103023566590439145301412625650171265047995827226645995745438852700539637490441492565800717823881667650924361278489291297717168975103060747584889975037456833693830054364267200323806776893030236531511303781694115912985164763108810667801505414255662191368114566811153023263059077371742257443157417824503063465291750852305433522048834059631564364137121404507163173233796885930874225973135547336626639250531324240098585590439566779921267451446709162704814145626903198620843624631821264078584730619362347605037486512665835926166189049615298487228265487310588721647084930357459589709234689821363450410012382168697818992506472220372061310481619223119362295709803228884084894643943490982679870198234785006842175678356534306738927581838812084859552228309353302150871064118716300127788519469909478691972627478571732776756434987323551888361911659065129241407493690341570380855804878520068967276028926367126328231012284913348698705655675456772872824251205288980315603976407453933180927227634930068274124256834011321770086125264675910505990149954432159553242307876154874651994241481452167566591433664935331752750479221350822752672764204472091059429245629306783306735725888290821855087591965705509736346590198325684630449199137327001807093426837657662949027057907300155693229198735380211394447967477519988611809395004595563235995576843586120484829664184735353656060838313506200490609142109174495356057433045589677682900806674885851640727134384291586984303636292495600024954919017279025586876157716982356395899321237379588449869501480645398792813597784828964777556438467821635356376448745309584017406045869860717458482631009251914373206682106046129209934708324637221524803117630356812359575350275317712947952139641658515576819879392675461354108678147487918218206557987576497156475010361998149284210243225911370011547933040460308632186276491702474933256590232522334000780026159723371991307475246570673919601483968750249046163275103192797529839534356968176456213605211183586274781037371662925567363193152361612493394504075755993844720767489096544857909370227421640901865256464575623176440186395174790069582612565303071472918036098585965406895987240969855969560707075050037289201477661421408358613185386849553596031161784270755360890813343925724955783823073093360096483511453921191637569409482907098055879272172682007365859398905368813563615306766963178305130268914154724828664881610854264663787040981833170527887338867548418955562761348470246114792981515244672591875667629042243637129341566486130368992808965177884709969393372171419535219536912174259477863173995813292530736133836674755734028529621733077482226851873740268662080684174518995340443160161554666063476021045566962160024864602583282045469510065069839906613921467487530240844308836673810841460389251938763354708866786732288456547710611603471280859543692449738880244630943757158388796540713384539917907225635284847216901350836746489876321028511637737328676778638492832043130724377079451302298452182655563812663542487412368361969416379226765511426007748898125074240237735226690321519691959384150515774658042366363387800130142890199006566801219701205856149885913726505915923967722299601356204340211400493814705768687102803849955726873807786236422749365551009667285133522047352185880215071943928234176530855575241964986189134564577876356303878829446232596437973779097573748880122946996353340770609792561283565177784835972425373124788958017492777004239042130716718553326672876367157134534191074285164303359738725546475053818363494556036313761330910012792633566740607828079010610423560757230840897757064596139417243887965296416453672939849243928807016062907716548593675770187706193647468602259830783051949516281495160628308444561161635042986861052499638659016013844629448805462014537685866780157496437775257943990321432780954565548150608861681276730361467605308522536362712553153679564918474407006509775176502487906067055086159856717139995434313459410138639839833244470147917847666584317748092243043656746104975811278861413399673656408899358286194926196492192000100821130758881504466106130633370989577377170291931923473679634633229694567871092558676887285270551346773130767972991733806246515164467389759460658763610159260270534138608004552390217729013867243324306123591934691380285330843525957646139370412583221854506201683470369774777576995484487844966557220583652036737263527638724741655500948108688620079831173280531393063509943057627049780802600838577393761219085706803214934623716605446631894438317106658208526914235440995616221491851110634165435593773196074620366683824987635616667145649344530585589869472010153269724729635685487591511914680298776641794775935561472479630666125119054775057003554844594030638541189994550512678166151090420610745581563779451834012380482482838051685722368843753072657800138805570673412022334293783328825469582809438347710538912495910244453450049602789415078423075831072738182582682002605533980514953466037983799384548359893395696375366306998146294873578059298268585731898337750246230598563287808420720287165920895093070167087846918933714111115752909060154258455225206591550768144366633671412513752548591311162267758737777309181825681360049412667373901582837205634733624367090359056226753028573750825210835344801047775299792068678691132310471366004737008317746703338078810553007073412709082298037030239136536875610998682327992622069245522382101412192345634704875736052931549714420871585213194786232777762616601536367398016901783470771888025664902050160029047227237254907983422413656208620616413274078179583803921860083707267127942453362768696708008743562702343292556994213104926858772482177526164621258682496570516976162612531599608921668088086366613064324043994768254067067568798511706158064493019705650717669837661571709942000467490392789816687886821847674529643829297218101648414050903573064384542122159173446875425484118661462135064234553801781638964961105389784632191738228704745193300667177554050774073891585767939194262663917370326368042670168746653229546315979394153269628421836541890823907452191847757760426966036604277571722542212472873696813657100727859403094361594919377624852259120408857716296126943233272234766559966557432169191226651067027658371885888070278745746740729250329295995860012001214928372072590997251570764512872548430154815099163058890728046822455646417009059786543144971714610639764953866825973365941745799830969501255809226370828267367928666986536415660500830270755765645629901668646634874153450762681987512049800273388052132146883144970064579730120798907631885702440534788151367781219305616968387370656357821478148968656346136905469597289440689751512797170577879311818503794620017947280117199328229914378049375558118388926787335819197821410252391176121455760162971597918758742435661713253766606140499943955087127571005229355762757874771583943523486987874601825763862941524779214660156546799070785619918671179795257290467014042462720027860673365953625048104715352453264247644105753311180949968105722499704425611874559715593516936872756186427093132883745307447954953930646317593176363390555071470454798151220371963161780241839061102925144975579240954995810402117063864087829776069886927300204392320243912244210671189616288515182376848862812746230106059534673463157882984268436458676230482407856140934918455811948665389920498465947390405615568591770204109225824768502726136774309194432344569247505742647809675596693384872935476003037736918813046713523322852453393767518506224070253428142564082958962666926581242125746413484361802106442285930242158942984693774513830290319462245421358158499639828185979489043169279603991015302861804116443702832703788319265425353921861876798745926788872378926204360025553945319346737489246445593327063986714216403922404362364964542236327559642574261354076006742279649679140470651191118415077986453240048835065399800275227689059153096930640662322827672177906682911359460436617677521540719449500259512429229840673611122127791075769055191871658187761718298224821654071310387640430811385063328248928660062377611299254827003641887494405045089589338097904713702955572067037506852844294589930788220962763325351824460707797619500874365868066784830749182042300361807817402785971106559540791094114551199544737853515367862529986353282620049847562378041542415011333722569329809532030697212049768391095101542830508591263033679030260728851545512992203792728010505704406355274618366074254332326318848460298641500194991938614774853324048893510671559579432937313516954186984856392830270268624058561079792056676989507133698734919055931155920325550394362012135862966493102316512982521636347427408256558610035437852848783818660741619546997167584881288218809983132288284934330580311429050863226956166436644711397525449439593627133245882358702594541097956583176046763590419693913421613259480729006008595463120621815579613064304273977146200454579460817308962382479285949667626432752961447309781698890769121350923943810832156423342681428455970557770307134974002360120728800321506352394044571412066408494451396858589755799655469029580844672554079854775760207461199829903104977757664355400852058436175608448578462955493233382790819736022902711295097419532110719286194560349277119595247664196186608984301301378762882222160891614586001670102225233201997931606331321176793553839053209682423854730493720350665015238325095714667609444970220805317830976564388373394960297985275224751679389847578547045714064838880741837329849200811974984719083507816191636370159269872937122511454628246460133293186273471230050799400270534703096735832636768191328673189764163660257289750928998817949305519102785855181986951262944508810289782634941710047602184928555767364065549003505805897164862735653856266550037507777791160947011172748965024723616941729581410128927610659748692258993774862695308295781920500678624206557285024708000332668224983047682916306308762738687578010544395808878634261670142269866366085381568914829236091019741816003292486574713679998753803826455399322888807854664541000968213658619303521097167801730655876231518157199831404286594613917889609932128113489055003855216682278296973896388650465432079187538679529071521166538464563848647047268156590932962616927106112494310479682077555894776612679725700115715025108884274056488571026900818773610966047886646133904184074314082868177693436728198348279281099618178295295546378252813253441507861051479510751051071516632158876596691997533082769758277932401611671442175948645678836854564803243112571943346285846297733456374606988520885981531864139685508345661043374460330181501260887778006188025487202901262872608486838311113060658184323134976307841901617798230111370059671464480842574428296171736756175749054921102957821515946577563333675986632743151119473981691325883841669361530252687309107242150972359802619232751290761293292432689189830886853396498447310048430108725911457066427811479857289998919278775449533830968025235745053425496334266094767325133356997291846807681138081672412333098358460694155593833243650823032473667801270718377475603928735986564380476635830996448127826825849161252452538393024715339220299644626719840930923222770549059496168536786947530493618353235399981745982138971785711968476447812193334959700099060178026765100618931979366627867362326430587242845094320159631930834605819974797162479001559515170426319002203379057000630166695006240638755310150255533200950608648375519938929988976881303389671579048568199118557079465692882642631025755552927163605357986546785365932136520900149643205533739456810498546094781651655026272979834663878436331933071118850601123814246375430336085336987976742739567027343231189237484316229733574838602354618304120695145683847923619039812326535561922233702951341388886506801138350449701728995836493093980561675500413012489263583149385686480592138776686651431618408644722294440810318500514532298627676575174879592023830997807013878260141535552094550222316534117311630965935851309661315464131641741030223397619856546703915460017117214217973241387328071949643417495598557186454631812566590009757824416525217316905346555034136102566841825192841983015680635471855326461692737063653663531727287477501948520901351837665409840471817808381009300105370220356411569680303075081587535441018502680029153255417980132796067773132159712501964291984481463722942051092476231750568010956097141595288598288833784097493821963528104981980235446862210694558611325980664038269582047851943560219199810407586829632382917721353142714481306848880976793895397911551675125690655834711827854562074639146005938870586893213868830596071435145535274826441896209227487508937084363346703972474190636849173280349579354861088396721527037744892481223309043499880452711914238288731003875267413487034208709055065122194324354830225158434572039534465676063131652016937845648747040556927707057894996389760929150691750459386482753298679249865980946477610859737760384973009680071386248462881040436636406952384594052643353061853217286345045088471745198460604274497955848969582097871802888049591465019491927174980527735709503871693937613975068198642949953541380997014838094129406123266328107474928909991561171754968657553204775416020790276054545195213277056960954496138532707241341462704935875954668369488464686307214277800143149049448704438806704213890956436851862966085991675587557558458623760645096081234876361334367935614202568302233604003753975176553098205019260169465801098556812771134357690447961295472275976141140821351305837568246506239622051876662917663929199559059596891719960263997065092547568136582898680947344777588587622076093513575782830740487056727875924523978702632567374065283920982672424774973916300341717594701202683095981888516351088911346923883074306817045500105941031395231332365932662603224200132705607616563199598224182441876534094654811762992377423498108234522161982582470390746829974843050330673660092960982302166962737616311057141528574880260093938334255918893241798479390446969904373118070914718545761125275247537306777727563616346929391739549138770491314746102296358077831095796270691333066785173947130120458878923719767463259712561433877007854165054489179752266999339138890169988423983303984403485699762569547397815163058116085245349816090133925461449396204078798674194149081816407242253845466187443993957053631690037908032523943534661558472917711894830553528210369477900131706461050152384452610937853459724474578845981542091415858316305695831986084925926022471567929005082961968950671871580421175437982891061967509798469715411187376019968913305464594084441327517790090938621828975083809603772148563645086932951560008920534940983398678363283114550793702066116846011631082247728252845399019913704386541283929530421108764161024155051167276111949707411246975326945669952945126805734651455446438672791485940786925418492623690619897793745307307668272472857029568169335861417326240358434474027025456148473119259535679790234404701997938902857317232828583716677534790631984562161728267780828786621672325008446765119097452207097188389540868121152569095292439228723466065470748291408847109946016897893273098005064776852177090421613282027373457705563058799017446210551693837387760154038850930950559654679818407889428190446353743765260072301632232430398556718354488447165861562088145731987697973207299599301775723855378762217312520320568354134766750153439880860227754354737631329833600632083290767430353993513643294186890260077551834834730420670871167711726815269903657075363826361843790820416777634422412349244689954705787847644256748993412115148691280752750371486180478283075871190067588371217086491818886248351341286764635656613171753252699738270728297557287657538011838796395229931256975443523768803202938956334092441043041960836919210369326538104652100381602911754872971213175526664158206574713185510845569272411565918358019611293268313533213485299028675184953802847195017852884629216966360808598031630044811000064458146931518309696725088033436194832887587945990162265338266842441511107583171517776577590999026765317530867982622364205586150195610554361892664685575161618641183948173594682897388285045007050302507822133086075885167937944971609624749285635426445383973861391466305665732708653937250423805505264969194449703785685917963981007491209603308025002960607256794995577513415131528737603529341756574783283893461585361694926220854018935602327571270481669235359176551091547072252448508131401200640758620454747878952723126563032049248858361596170934744796257752993225719715681445710471602345648422720621417603391424879786311915988460248722183612986332983923257175094084158582699972366884363220746846068846891054542784418185706805000447033834500849235900339685148550143808570784064276661600051163652475743496181817485490756214398249315546935524616248016347825986282403073580633676456699173420040872445743749854465301477529515843373569741166658280932340619743271242639871548806478094902130458494085195468190593291165743389827695386347542036720268294987470462238982747878242361338531600649429654920068892627613577514417452226843669391496353481059245669491269416185046547496676519696485175543301956817394335670752226225707028815788667190179739043746305447284484048958980198013632373936040669487018843996446259121773170380947836434714662484106863671551863136716346232863408975436148629079835997595930824709795283225748219982279449478093598528306688424553386816229473367875886101817781798510726562041325019936195652204175528825752497827935712647928365410608184671030199835472380400730518219487029237293802931131881469629993371507101206164333149884350530919311837309925861612877567988161239730330084894616770927938587921100829001612603006158696191902792953777688285827282479825730520141706127967131382969808834081672721170273001255037504113385113905714619343045458891205094722917367212240928104952511366455764718447614315356365607861926125340665821338292748567106576038290111771822941221673244374158145799731284604162271918525952151504700614109791925174197157022180853532208603879146600907336072552813346023517077208742398062096429450604884559364926537268731644672180811325784013253513191811285310916998291602246264921394819881289852716967672163055057189800027698997953555619663663754623579985169304996270924037188310214738786614606448487901712523114273903170409499566940048185613930001656563177273662448976637489653178530979388953922086592684200296713798611589329091464193249781457154797523162087100363316189388686181352477721184703349086060417184486132065275153301959673045437362336816648839353480870345478891278524487124663465162595950222453917749417351117759438684843726563718294793928541749928475356212887515151967211451728310537075864037581914946061535695747993495839995025726665430949080626594942032591113039296780476015333375407766830087325236290891880711914403110954678396518976271326114355656413058399092748306400819929828655276482200759891025601330372642615794427840724846698930733035006778889744468414034179047876191284346701361170479062530748135680534869361348543106541462709666846766540342083272578036361809463064272989770725297894521767366482085021350687918089518152751174991401165254601192701515471248396306076132726916891439904477964831226044163833463598978058942669747750994395442149195077985693133821855183639211172386539886928305646553746257246487533381717876081125217834009441525095975131618216000448570924157268536606406913356996449151424185502131263442600434600649679154910187238984499505596650374169990564749894381059961300176730199173854987231661584643518542639646200164396734964130682692879183281484614801200201576688404533238127997541128981675749918261949352490420129745339751118437910761785650110687106172929480192553724684434957694629688821084336593099378994983744644782386079097861633543744366378917707576714245728871521784321028691761640058066390278301226475581402737829009766555097554967795208235261504388011710168014628449574353234227129662630393931400617278789611189459158346229895957433540009581466993194430983934286962641639824481955915334747780030084431237696507517904950125942510568924913078762773166516565777525918602370940009570348474157884868805229626511423826632339862176382280415274258018338472098483020123563381057151225214891571543535639672613044106180312672102694737253750981177441640576636624384547465685067506522775595987228383704005511217186714085457159380119711666837578584496399895897578631189213220780217987204968741503755800284593436244231563784538267440258717780336386910973674559010559163726434585386273904072443287882248835573759188075682746688052238137713463500620496258191874309609812179582596706176898516845716265851423378183458220805761113663299234968231245132855614341728084744129756839868717674826300881360555727267740664017920405264145036515244290853324484924389935959032081934904177076957491099712310409227062764545410268013180382430028891673909630127650981230658354536822358189757746163470644307398473430435987818571715231842021211971362072377029792897970221224163034820918437441101880817652574382882690353348635540307173873865468665407883161657023663464244204508703324917749262670559224505853385343479278672166360785987452079671304887599880857077975592792942414956698138368672826876194907223251542585572544846005839850959740391193067756423651297953976356944567288899443742708818068614922746910685755085284947471383190627624052024765430459994051495026245914333142246661760920649430996374378657155039225207700448064612380302720014141161103483601668797188900514216985538994515616110352771552111116670090923865356846090542898968282094969761429493257909506530691985370786141959298672137417997093876006103207419902995855454963818194970069747264262168594236422979477936448060063215735556088172571857255775872135070860253416586130592986187530640845444061025366395107038065092354820468189189737819436801387842526870441004596473112473061549362879174781400283169132774706863991266428581763332018206022583028916157222627003619624321423509057255577602175579130152937952337437018797576812299689950468657993546945834228747694878296428374418446006483402432559918573075311562062284705331968289050309932449373076850344517220544921566314157405897241424654122404262851145840916151182111050837555507565143731936606128225003564529475788200533318056058031454261003822046596632139398022608811694603918961290108893554873698930879919271699095019528037673921247445065148590344520091651280255389188981249317408943533898716977764100164881753870825161168958042018986875197616455459604041277703859748486569519077898166541472918820246715124753755528906152246985346136346905178827105360263273816439499413346139526705269493252155145274845157873842143742985652162609322608400975456557251185817047633452037324969302586125254525235384889138278178325714866930066697065059166696193971561869285820269268963994402328537994068786368455056491731193384797089035511327589551216316402336835255525542663622617094932497418629241422599035165751265204375352770954262574356006254276910044270309820079828748492655768136782664709804434683566453189604241655644989688815044461345018573127703067798642946056226699481046421183581512527310691134757040956779657754903394368412920028885653349975179048857061393549090349292418407399590134355006768701648247194870081858624131632438782628664740473652863359534332306240452304192446355340915938852507755091701768727640241701721719480868039681751465713962304487145405376704750937293199611540933444562680300626271232619538523836508258629190987799049884838970434341232157473850470604160282081826265843404293102108761855268680280763851773580185707752283123361719310378071213784908377498846366331996112821209314511344264199194240035542349977951765404624047495176891223935233916349821540746420627793768657378960795175468956299993688361151082794021611727036406607457826459650742549449428063929996740351306392563377420791709374440644888676298949306776261644758782624194677164016347599405097910307742889268324253150179980974925015026840651517874640838324406272261201192792166667792454392640075448613277976800441798317205129334088867123441883617309502763476052229753887695692852228464613558868384293841611623765299028621442613295930609434584965468994399537115262110763730543863089003490657484617198939261095572833971333428591123773952661601604523741677520042194733432583843581218359811097595319956567660266962624771383860118469154427414314870629698272015203972850789371767985284397251322913504311770702975574124352448259081484179381879940228213689725657476297474838450076534509071501964570184071479900963182661864405294897869525807125297026518753863123547330572652806389198648601634304137001448264155142809408018155751330936289882386309481115103394761389842605580882092075426895194794637068897134725071885094624429497446275540347395045031584902509533696806412399540012590069035067935192793825131493149778260836404996843400371012301927746924993993360110179582122741666444217352157377177500248400460654900907230971563258314199832560780478048921661595326284679675525432134347493134577793742317289684939632893266534854269537044307135649973415429943786092535997022371712005023015380144860625492388899742473521078146469724406445782903437176058943470640038371591176326402205281666874907101861018017897241158008417012388222677012277392007990622340511414072695789861084807031770468386378807048176116865520943140591197288075636132932005375507927019818353996295247205850171140617775516155254426969220796842581362052310372641204930107581699402165144476754135412116840881996908416301723287592295510100535117323968748923842965897556299035819015697522509607441873143463719983518758330665249368547280458590973363698173784329750626876600349722216519538389533396882972599248761217641938057752265653023506792702025431161234408385695028038154920161387854733489703549256469365382683604483329034807378669896388999257614949349773218939896412714867554823647446312999286891717514641888610992079244291910347096772148378870636439447004881426687264150788430439145335921146550949518472291425045958359654694697081989334890759261246331020099999583007514410345826265346079296672390645662661440311261006662886709302334935523434899432793998516165452256728310483429504905984224010416630068973281287508830728420456325281143874701755183202393856675023565120816665986484991149849320034618719771659395936225497585860631296189756515588011015061042361470938005237473660150106455533754864610800207229847895252113786502444834256862039829816156446911627177835665849864546591464094778887129012450300853117193863407774706359798405070420704012294001402029867874986259727127892447729109796024982816609720733550401898803398935080017569010388741117871727822323936225017858493814881065247007178798623109362519432361626892730710410681568195693768175564303626739638041533315170510996882712627123716830570503382556427983620433370785773377607387853498760704401449995631091567725554230988195712675470410236592789733687670409860294011718413689038953192211832304572158008984207276502000395812120688653266137281595927836402301193951524384233066677710175806759960349928611424281423897613715660535650013599598392539650608172976057987414250961702845276891402175239965832919674443835025982669081980475236566967988575626508146678562312662290077476704830989289328140685356324160767769907531148824977820034980119828626649692818342670342358004367575986817758199653142427701635381926723546407539884156515968026069752525288950346368904764488105137668251102997247964889329183676459783426575760162927005349790772687288747601765182429603744722659332507575720145368217580784749324117067144157533620712208864234821049927376691819248885027885030081503155172820924464308360247809006450526226106208707353457291420497355346861800557767076010752799114551623565235180317924527035827054192725470710331095283208444632949928538192754466499100176856098949692156355703718630683180375978675129875819319116447045804578788629688326301697061544472492562523023410288216001645551446827885716503687046849784889959741999994692597070338317096838879711862793334026608555061305871664681693693663854925439526976137839020303400325722196149158055327107187586390344529888059800542513956331719272952929615586600527012761784995989915538057714676848306548669773913085267719176116518327880830778818577640692050274223759586838033668118743199662950875181505488738802653385714663268329622188114301994049560950066137651830855413027774899355693467137294636779509014168205148169733885196049427885669713180523378975155747135166097544768210977096365644485936971898499126820778455511023533591692288113559152842548163190456164642131234009287569644729969614378979489012224899684526142867834488156069021969065920053849243154261129518487874146791225544287524328512241209657926168546360128676993960000171672091227765529986307775219080684338182753873095442864492518701337303811055346731544080705257665788890835500186166066835309842019738606094962110921103636954273661595495202340268122136928800900528562388719930201169221401536640458725635149780621319515759231237941655324589352912638264748297583216908026956420560514975589349625785413791681823607498046233192687870783455426757655666691075012663229490542769547254080802377234119230287202846460037217957326982738930211511930559882136135313849107655235398121754081369215749330166414662753161853032869464281544821215116101193785533330171026995748899905645994122762882352604914888030185625220420561162403154228095078524841427326814066159730667756814893571714084891097010087086185770263794799323943702621494559446110887996607085665195587438055466189740384620100376305113836458058918141006140883220697563584573595607564582164702706355147408795106350039509915349041231520300710235810308453829437889931164909889843785785687411498728675143408072227296874302851844351346950849595571300027660569587517924428021199936570998548814798555117648220133495878416759380675227741218578717499925299964011267328441861358428449935088693562472676240984853689655097180510487437286342989148974232256266766223056800286343733910452686546036559269075591415239262515429591943050245115005767196190245436521627517376225110134442900850211767424738330215015405557686320023619911806911646067569783253765803957844822042541059832630283541169779952352051598072165161311401594823333343702035286805672485735909596655368784632927289976876399433779181540575550845843018305988292874365388216334037935988476622074257686692192439673237545037535399946190027242032166133249955085062321068861647894313189123298510496982605978314019225103513624722801747747367626327388738990919675790136753071229891944119927678755443102040791358593626933792278579343962421958757348833738125014318275300187623591763505166154621690667882525116735484134347192901370445044376824181633762843492450081668131756100324121134604744961975831252244648881250351040962093404100164719908827028367584917170966402666661500965387647523366180125071198144360385505899449291180302213227448559798961116433503342534252101856978718071352619280785226528764668143699680843058870507297850294534860461403683775254752104372491998108537947733294598750885298392961082983840114231735711103478694885997008609491766636066458625124524075804164825208443373716804514912481956273169925756473897757763806760228379319175804898012117463403454982918258670410977426869996451645721126517963873536209672062445756765635387050199189158329987821301058553558883978688987656898593284926053281293634100274953766210876200101822154117240310399255217893292353597013068330336132389894699849973214045372954105232230888594874697295124548606936330330455390822016918449238140466158629416321070078744237210125968386205055870759724902283274930761328248599396533947595398103994990552297934814097688318798351113530679010117846669978294857572792306756431465661015753119202241349533908754794559519642038925801478401769015320323408833617374881827657936095428290507889815911489179512550877439036078500039341152361654087811121573319104943878122710926600884753617807608938362075126439409940389190791482598053151228886178319684330491216445194498760379253985269202033122837658395663811288897403830114698017352911535748051806574595790017350010387489897638931657017037739802547048114456831777068962446378085208665173457434921139401972122337569310133292738267025074777201449696946236682310352172776092533325781774881912842685393530364079317093096533212592701161980327647745920664838517688646676287614103391561463257540241855590833691512744783524829788480721353659217170581690595775327278265234576768005848098338883111865767201833943078584706915131429025585579564803708159290263294389152872090434231980191282513661310329570132932505552632581001305842440925949562187796770828268496945632730623446802595893155895531226185445993892301637868798341771905825467561017785615254156539703826814250728149764576245489113677944623093657961672437573973240221798211558828699583156689004986833069537756046095822915032334168972276269864450258423546411897812044522286022266111902688523010449581418724357262164359226647444163097225946040818290883031274365717686146416544158373772755568548342782486317955251418096797770387439830951109280391710308517536189417890325907857567003910603901587102590358090227857756904295677031960839949004274427107783942744941695117215103124344803599208898561118234762990950372863388110034534673986443900446568968398706609541188557912541629221701896872195667305765068628353106412322980169914300554187685981327994266195482111965701572995314500691847199708368764166819766025514234079893603065065205466920717257363520764779359860173224737772372531993114000332187636539334359963116823999209081763638306850114460529595237122169923803001389194752027158271731286038153941080691038143902593080128524535527987338381290192244080253320803902552896413004404065698412373456621999592822219284409278196543964209185538770153942854694438700141580327777897208702811221672213530320395225920318603832042195987002744867235704529184277789928034997452828578401392022078520642089815919076067237249434573524610132738077884652733442476435987166674084352748216572093175090898609312306493464676619514421667681792822589294938211315446209841239191554964893551417846923993091363273769438578585282405513768764013481104388417960437135225010551451468751420996826071559556816441505916203059659273008679689429668510467568709367732663576639830964153661014601252172714327078651821748239996975647933129705249107669869462721497630233363997533198620666191841072728588260470524726480798281749780349312035750472885006897787350216001475215086174214165658817540479975500806574246416807059475676509199293851373191341204118067920460996666521705864703969422329951810740832443471616042436429625272244591437445512568471949516877293158826100683116754474525198720404973361272921323183367145374669703792918029464722429309563183597375844339199597307520302760089911549811623149435540115830390188381433764814617133061264255103016348089166350535939482376768017878656568403671189209067462265760454479061526235596883774513359369333061110638654534065264143700053721068404497708969566010938949963182532310967675996215124632142420193849714051093290557005594143729039062789598326110046795069568550241556109292156267858293773415616927625207331805970848483706572080869598386699716934438447899316172332967191449771743586849175262533418731131985989641622235056336122657030165668990104514834344786482178821736784295349875789089793044982593509804291548965515834894932176800703181082375278513156365419524708535015848683214943340933416010825263215921495958339959192098897412699990516268927575062190586607166432584008662761684073102857367614244900071972913762679707986859707941398464440017459714690603108898314171342600617452882331205913600417061167841732212233039682325817313887304514853126980912062467672841896504054964893208146107714669953528863949647274764939600386824093019436454476296606339533284280554693578553759816990974777458938080797749467136075416352176261462989995109496686158508539735361417260944321104055186979890913115667048803957682214055375589646839188949934967587855431389285795689650986344694919006469043095984190651649621889171065782340218407244499747668570012272514269009402021565001703577168828626308447514814761730166668135280184960703489907599973558899957549081433480252321027467406220041923879067910782035669673010522975945607076461008771673521767821344561609825712223351405258402599865497043128541506594066073523443791471482458391750350332605566345074860949417640883063349832498064328195881410680910649106175382963825562873690621480525240223798789623978932617395776874366926976481395690194436818491527751849931423531942217750220110144866610178100019027181503568624285942862624819531956066401410720121818436679852451331082784482573045879701369723807300913375861295119169425465629078150106749569899151781964907958652285731904637797745351433714116315510051288340678793684523504440047512311102882337938109715300055095699012749099217206155489775467791843191676079249105359253901421997914416924864537562588362599215428329701219118079613710807089672616383522241148202946963843904020507167151640689884714679011215769519433465724193173813930049054244783795450948653389399346133813762821811774277839906850542310220076373057889409582554156578565943284392153045176444268796069150784575351125394053697273610704978159080703960503128828648865691650779107522044757207944641750332326942684457631245855437756886345356695704601186554070567158283104610313985459523194481969811290485779832267822826750221109114885379328479927704272088643962168802438439561709032122662217680867711961443908324076152953115433956408753945104744798475322442247564558614294373317774182993634851052435907314231901727966128646773973632098592614697635178472571108911743041347577252268654456110995651292621469929452189358345294412735298743635204250685321707970128175072474141543073658609221095904717352755979905166701556006260144942960407916859922832551236109049551946759439059530605376339939816662707593842821490521415553164861234166809227348422648185495924003299383619245158133058143862900507980688965371152551731735190710056691709274821393818390853456911757454043526989736148216646968300070578572165763455512198635366230314524197090952847771504973268678791928884979113866981672988869297061405524882035501841111943358103710305198659388421846794779744375803736182711720767238813295255697479210410370835230356309015701468483033541832746686359304337071310356113089602505039991599367188371563872598470053358283012396595736627644507941876199687439396927268191801315006507164666989734239608946063031302886417530027981782176721287598555970793729135543618220319956233440239885585975062975920070433898440330670945885274096506854646371493165282800546066844158286231674415999095587277956990022863226549305364024105479554872296025620027738553530747466198602613409585479141768061703247562767207984683480706453355845065898936350112805171456025902992133776123309347081359674055727800002402912752363152929205550280639321862304619745361186907165603076102451694424465869048022372207171064185221383371213289115066915947434112927721116214654144953772213023848261726876230632839912238751189280816685807649187390840267983359776631476321813495627462187604277860452550980072533513877756594048175295863476102311685956775927663296967817306863158777117410953271703605084565465258830319829421152921795262152403921193946073794747176762444761784294767942115359806409772345713968980575587646310688551997434541707847861867116661631680416461168901062897366945833139746474057888031438604904494499623534959479467728406552113659623830407731624875179763777499030269739690074783713677675682572647950207897883304467114752817105153248540835758640485609942525780633705416137015730272619165670585807317481703830148142183075153618937337187134773293241506826443856844436023366399258856637509420761433400395804158068024977510177274946003381205414683400494225098858266234249179997011081979890501317289144237221443100508281191003547735937575765435555783574892643039213775256473488387891769874083018532351343887659312993992172488701633399377647380174140620867327298538594162398203108974478712803218770650576286297338564591262254519139548177681268009074931319723057163800587960397947459813747647713995130718969022504445566947162268640595294396986323115181630236785832391943021192243176253819888515433920502942232419127640894250199638150781972298595586027728343352277126576541164996768899167660672449663914026086663807921845520972518141241770438365803486591633009603158110574848242562048081801504846275481869124199665083458050264022024731285249796993099117929080738357029627263520792399784129028923825459924853216445789643934255881244684605272226308077308286441459522602509277912610219380298919961244796918885772946317896786112859624741240925316433196259949715306277887439519515023310511461419254990942935463837407322693582372635345956737067790975496558072425507972778762438489840445090858395055579168020786504789367296695426146470859939248114721390575671799740212858185346793663297113870340115188890538073354984354429569766404637011945283047997975693743744822496302817071045745363578322880710850319106825425663407428130307087208631829583218121479878815002814938278034567956352023217259037264035522135983511729096544442935791532556719387878285189327640820076509386678469115847850024328436793633247790681625637664634879131709121513811899237247229629979299912519876951818430419222569814165707121892467683308295755133942434487264124247532829557580117391318518457826422601297092410212034413535395626541159764027084333649396883463857495318060469273517362533780453136877740070751580800443512595121434431544064101392029650676782823878663944886293103741523720712348943001602333315645672407654330564441876336374201093370536293838317883596843995596924193672142559797559570428410583867695678371789495657221936119527387017817882330280410575547570728131663697773642373485197446956176703742311461602757637279504500929116649410464709227723688771609471181381268847406207215327140823434775206333182255052124965116819313530166053458413109689650952455183466544698582979980369732203129782243785486698572251044817802985772038393211033480969400880176922972924296582625207911693137985782117400975259977805087314695513854570388118771465076491131121973600036234847553456992675283091700490477920215198154066565946075712073527525454983472383165458732624747207680011451639275002458554407534840982848390798471212681543413987577037277999688663939056100471890641835594232053840919611534635278477593748270564000209283088918941645389910821986361115891011561411189600007305769810714472626367129967146635162877635736311588382001748622669505664484633898303837860128555056519343450244174592820340189061442766196913163332402191918496335989039501895610967491343892284191721485542923061261627729005572486511738299379119037644325287028157180528144831334132713032525793237698788524732036629278368822399307655968569296497365639401879702635904806471619169686730641125708971053822316085200628351183377739827474499969385451047380761958173344753272487977459953887267735602886701756486622476791719107552125417400046149220533644478637045214696950326465040109235774185719199484663366027749729594085766029178987419387867157988018742278544999880903200427354550586682627830993117687785288098452908350146259633031077248848783103943033436663559379109189734848655535633604726500601330061807099192982070175105302394185765468550218382052435813451148720452498423779981900887728124628553938780126652273954983304768196203361042440913701215019164781891299280683107363016131392929715706145220821685916133453616661469326547873567687520314927515763028743713040075729339847775683438513851586508987144063347571889442980795869869861809288752384998286823514282923788542113612709791855423355952348132968825864523039092685356947085794836875444593652853989312032659662251552981841925575370815967084129684941584127484842941770540175752274627862225467029071663167719369315417859781002577492615995943167593093958269060947579551289482026915920539749498389392879243691547154185386304105463295967348509481041920271286690239963080637881948583455639775346727364358355169855539826580764180240769524901660080266959352525473301069046786622530108583748755278326754970777785374959071897642218566585992341498745788413096830620699516385741549418415682335099514597921493454399209365007447534923764275819910052317698755652938607960779524036532358444844066151125120067757358777776018926895161094655651163572108584166739356722651044735073080416527240405163601524820425082486505673144441081542452885330011531689938855190786093659844098218251192538324438815916211449015886845929908630081236422230173966930759439882360366962584353818641189856242226742403154411257148934918273682290852316690484152050623904418650410156498644693545552622111932824356319750909154903271558366218468182855026184300059359185405939330620276999753632421583632827152500979261869819125317523691022191837480379711620071134243517879856960835343171407710335441760666002462448003106935007167751474657844988971445422746683969185792346231100729518796024017190547800272999283020516028813079372553583330799859554105386885660807447826070931820556670900162741734177746692233068444719496493626489999176242974691584434213297212535916937773976354674896224931572821598396535946819512356451250436367380000082434682319595319403616120931970937227672820211080853817974980029220283696517099554476110051678258738358126792979932546551948205046668826934099156310194017074696391773947792132991152116780517930146367856075249156870369615052704229149086765771418647373641222721356526398366020141407924230201803395985033760433497239153157831721359250515511288148842193551584211406015875758894384873803881318353224288676812134384252033523354148076912332453060547193483559981585989997164137979452323941053048903834376381331916011390749566974336504432862432608752500344419152349410073488579059854472125734091164967573833737154367563638739092779562046344503952406285777928304925424678259670522459818632368864787723817415747448489008038970917646867267556528837551374129610867443769851136561854868357261899608679237419879839096207471715383840337316010565871187508107037090595389000911571025830658457670767369096490801955786321660692868754257171304038495885919229748579593050868580287684662696677602804876291692311287796460212510126203745272197000876149679413593355886397649069179899475361021382613967641981356836489183084089010044747121647793698839869336273066354380174688616672779196335013893527474172423000765682006125357148397996051210367735337570457522238402471437414258416210375148772766502477793187120893105889486297042187464857434233634327314519792142276120851856868523346363665571497802344810595094763176098615963496350158032055745954688777651844818219690119538098135616051520768456952767516613418769774615734063905700401539357427531367507830403791701482540483652220267023784535641610714609570405270544796767152263846753981494689468471022318876726015041674854553065574955015476438997909938194026872427762421605220364691469599742940732237764081804206548832390413091006497180607877822842073127071098936376614065134939082298848543861378098073192748358726174962460685384060451387511651596810976954471711922561818044375149240832952501134693280597776161927227581867768532044696207855238648879956338228113671782189565439127877905880773182203318915691312267247008623683380068146174086757033138340354558603741696200089476117287679139126105024446480293243736198469899848244638450727328648715343012997071829547670041990334697028767139481024836074221310000479315097212469718962482367910333901579969243519314092938343696824054787072306830952399051011376200365850389731404845955330972686149438423644928206507757218304690073558412940554347487154185668462463798372875540504703830312424405615524659523184880491734680391091806350166905200848891215971400503892659813290321211624107122562216917872978239111131590835848102132509079352348008281701708834844836870043673296733139743529804154332818496125266592855733760365577818743475037736234546152819409074824037002051088670145323668127741668750842355984446250344652966212153682315121785957380814412162997336322311894011808556939591460899077296600536734878950730564655134854774539299480057352410949125298826453759950243145439938621221120457970446453659441266740629700661700240326359434715573922100125895035863161792442517788082559290648610102013519176734308845582414171964138310376327546522910767790322351808417102789842272691121615380674525143507448906237994715088489599356378408300450860635040271451312157588913086629046222692627108763545440582762077755055298164480123011617464280356034042641910804144863874726890278564132651445440098989875090838117250372092223131775853139230288451181806909620648890725631520552749029154197335104675777554969570185837134811072850546925597563863598844485881263832346880536243725945968253421019073333101641688766440230172030975497193747569388044564282500624394375079733699787153663103643649005933385860075264651406980592710787828065357077014859284874739246537048705035177883398873937399867309478303836623802271779282343929368917016627898152780070612593778664144242093924704984669596254356368513521546675130679992876002526965850708973758205043003157611081367926447777369287490240915171349559533311538284256224051407464225484800645669153120942795384060516849177334377773097190059114526905333697156289037916632177792113602827821887819670683111564854609838441715299875446809944137719272937850015833229720565217158052899948605197782464635946302170603914277689114865655038197131052218236328935599727100359255806469899349574741575469500718138355116070218230584545660406722963291837506398141794321489648214712258717726877492198203266249880895197866387023310112159078258012177031956000468318070111065586361417879223392388052013724238414580290610252206517997894863248794130653541709458165293914340239708946069322757759574172622740623491741729327497664539425583755707791354558301390908688192161715330266823462340712233646622347006430614468757717876415964563230894439399553615489785826636658134840681041862598723175725646747947090086730231016589223993531960912270947331602011253650622962872811336787355496163881604803781367868459207254527281688212296704316652752581965012149623714822142396506724900147705753795839891639701307870935237357276441833096832579500089423760532144073771865554734718390694795808995467624079963328981953209065211424803681999236528101547822571868752836375377553839469259888626343596436597502745451723817224767497616958966008285731572605071187244251064634843506936717750842144237557139865190573854192901804076012429405457171832490194158680953307549032197667392714663838559319975688078641287393035555626964502102920486730090336622900513198866572602690391613181761212644310152766129480066958735216906100280694546796253412780328170703710395720949521519615909491378465477590539064437809492393560341034846564403971223842554182934368890399404817401099889830902579097698099677860248240667488166656554555155015781078518918296812267403701821051363581006234042725649900936722993660968312011124423766451167879821094576344584133021682578092130906772492811390469896329834800537619545263363736069984860713116757157821755930713001534692959634524779462120379405441374769364058346776129429274255002555289145138551099071027121104387262803035348256434700818734671785509251960420485027922792508601370391002459078535737133130302643876336970172644923631659147121192739218349491071018900407958702368900387124144230940910137628203588854055466549772772564544563205729255605253665552807226610189022146824314034052780753164416362753897024375963373353123025825059986621912383718428653421958897290304524386094647410576925175177710403133942419436304433514262361938979693278410861631426950571011210143653940702847575105631825734280929362848557403868856550973614147591072515065125181216378492714390431374529496745481600233853980543242111165589181338321010570118563848723543864962216898799485357385786009238087140047023564404332320883629765380480310643574481981743644066811187254629218055997413095672849681603045382765844826559309070459555389942333129113737606748594205439223809628429900985708607528566518028759259573107471922322558041932578562141320287851360697624708143491895479846543964603165788032648831079713477070760966161840384689285664409165825915225279189037631713064118092632586170329343032471610618108637336556938352563210981052648020627595725070420801595578609407969667176963558423618586082762995988270416134736655268674603115095472894193740014360915208788703747862634610420250788281190879393526388064159070907093143564296304968596803202334720914937754486719652440480761526666436549797540928893098681462607274745321072392908251424886605864284135709044396797728398603037150155679689434806876754718158555028846890489949054118291216053812630472395812701513079625157329748406006084623602523381325270259636169350366528195634098254633325175673472707174663718719417739680426241655702984852852472093443872315760360308768583322999938391278646886207253481239806692923449508187641827983598406499877863523049857059544801820585608686070976704377780893248521365698308074104842065168895882617311636761425184682716956166162315791794165100259374795059399128654647905356467090754960928859174172859974073556968004152970413364160645054612213533427304712435084091401165501173056066784089710927580437095920765599191135859534340711790113718845063078043637783673728869001439356930718580082864905585378709971829410111226990489160973026820383153163121133815868016321621176458568971372725362384119487953394307827290647218878245483992823195593193098934572916499418364591675480308451922525994550555679809342877517426563896930099200599183143146788240426841201553465136925733481419662468321385565645177247101160365722560094454837133032050177103389709744859793250241797850803628781551115143169459655976377475615404590901504607312941496647145796764314825747680186877074269127749998939246668910926659636215431911673832029034585594591963119354524660037146300762215843168957078852252173865713418544613956228860798888941450258288731403089036721612821315138731561507193782108826440796598043483072802981288528094893754846030123093879938177411970053177818295758497152551929189912034933319411018787028224171836086192886348863418064369409149864614410922976813628262489978422384184606842919959341537089422417755972829642692948220889486287556523000127628002767707916650088798273236386449110579856086631962473100722735786360453512653436198168763674553339318413799238295343693807800589380039583765605448613073981948706225258297597280934398832495186021228431999542672673828490106960076638327230434837382839584762151092512387676956890301836296052291061244618297889851261111800388398805229623284567545052347650250454791263829872643840972528226006378199730963468265788297992409499120442193358632135038963879377854940161324626028746687232485306611635826340273006036101000526622199290963857140573959342517744347554432333263126747458076843054030085435003793385486587961613790690462993633855225807795771256378545901537094737957504926920290214599910010508082473626143624730551764053031871827436654710595914870503559362512073382273923704563087464993185130628910366544989310711442069390779290458721160641740821109551651748284200801124757471368725034597230346210720386325373354055468055971543519319439038617042612234259863383850965855069450568287305688339755357567823789804181119688616431043127310856032811652013144674379415138356323141625546099915343489425079659362690806015512700291287135047908543686955826495049177117394927349386996192888853889569773481288864113953989285101995846859992380516574020868543212881606601729253080793487897724614228723450347646160060120207527738199300938143951806462499147615837565833163467842841530599333739522767693621284808357672493111911213288814760133605352777803758906560767622609524907634215454311605017875468087139749134855355558153178062208556562521489618905151491581345299884159784518364508215541931456232332573837283322630225275954916582988008975087405924230475171198628130208842365867656198545758490930667532860128035191020515686155386065643623197684098231748516039665806587852272078794309443191219885012125887331894065428207579375662342293229345745395018518790310776337721218179183394681284450126664499942710215969468774453475682551701902775656437154327633763389417926411482024582047653390623020944578972000167409335208933954598679302866694539447382276833988767862738307839604633124047164160492659364177340395877887948864806999160720978081980342735656183667900688506242207642510209169795987656247699535469536836293558476060269357684297225054877220133274086253997504387021472396690617204585980775357213435552522490926945615480908282176610988727032588585925412408147275954628532488790507671890550376975152717165513609067828251232928953676530507482647322652137876384659191823146275152939222698720796950979851834000225022584748094900010843516985809744542370744002985602812626957994926194847988688627235607327256711940618173946654522019664336994303584520416339028108301523517517090452554724647913914529102766871265131052157080973873043313072154410835443741124517697245895172128264125063519313911208144709260667790067488089005262695962716054955524834368202744059961710586885733910932901387896885138004346425986625735406348589027648068370145884547004017848903694804068930882365408379199848327857455536098383945248879882746983706705403442819674974027802687920107002783864015546763810468082981074869460610730642277074988310379719340863151413519863363589283072524221067964736354274235971279138829734532963805134203100087756494090986551311727934246111866451872821995407173556013257846716679791085334802933936810951060524023748700199233267591743554890505106335306072546005890861712520555481068927625918451754513806343428404989272189980410003871136293054697765342784439101664203742638464514969626751155308110444307212008752728286730638063254679839900640781829453633752100410724568972266389665828658827179452431407995173802821450544047990584215348443172047472399688220616575539207692884285181437085957936980348859378409616547442127744087391685475853233355009391481089404037642260870693976963842824031453585621884922993084428421042853581974346586225860466832334858369886311594077414827971785077281235646932057016454676850121085553416725986261304177749232580603223830705521516704016659195720480094682807090350701900023781426546523496200741302622774039538355073608593533758341388352475753449222115609337564238600240839539621627571745501158111190304783539273511917978586611002967294224571521225925233647504785002847861222116856041763004994381442213155302780535563725713280207720466899040100691305787357475179815799499538640756385367305013983815791201001193246700502236933079477799848187092722803735575836571365265806809222987240994220460924526582883718300402674715176189160058512163999565878092835176076476128557766416317553130000539944476815670302412642679844878154089607504525249095437975614386836027873767612162739487816974122576807935498726713483636774047772382111442611231659041028440102269957404010665929912036074524131298318697637417417478664116956638465198112350294454271934286502010174613388497012285684286158060332013678356170888409539587418622549730248575560646307928184102768155029894072081319224296761832882696494181582124007432265322541655648685533443249351741263798974314366728133668912888445557246350883997996807006736106678854203097440817393994338641668499765205221478315880907861290481475820157077673452750197645862452090600610289783565127531570640089290064983053020411120389590511130289700577352853800051904125793507002309534087023773104180954741828458711662601936355777381142007825836415507482812537961830201725653025288638504155892274325650709041259140022840766524400880453679423606375998633740485952693209200173140161704771085156921295105114753565296241980342091748294924182617038501196100451679543355957735726844009385799057166641090412351762355556690129823214238654890204853051752067058471037829159762104282648719061195243595601334963307105439256859422633030174983813055308044261404849596649576955489243017375621726090727218759519800003457754280154555784408588535370684411203546481681556694177774306058238079113399072584927010006611281510050624611456236655301344252933767211636389620100175779448616010114223279920967413450927507189814574969185234041697753576154899289973774102036107671836710061296670468346736682242207572424545986058973672516740769456355101795680403644108479818215382610838658167126003924533822009633569901070701993129827773384357524928333455169884725073495721298026877997888060549241394735289369861476673018454042573135003987047887628707529148371680596806924316139294079274814545675288892769789085550203104589397571570219206782174864062347534357827144290227740596776340384189316032576439223131283682772075265514856833584975667471218551631239618823583824269575807462782547250208959655346185504983637682488820068889821564837613384555519503456288375015549184768494191983848423342934911984978547146252991449075230161075292747371640489782396536910233355127931615258005918499643912134353571778282262162811674996165003866162505528404212671254565731870011326631421709451275410489538864835776490557493058972510402311496483635804194517419424142866493313686427952037398809405338813167118337119326883093543861725264284807057193627963805077628867000077061833980162915779146578439935687023070075817670164316119666566474781152371716747401549844899643257172385159222146690283074799348599163044867599949029726055208000858423209200515560017169400280874235965648261931199155906859555803379780046876513056117670439659287498867758765956508101929110350113701288800510328438913882427622852541222621363317752494275696478457289602121990100654426087394645324006023235052722651322702499928247474418605070355590961561175278520296028140908857472917242612790403203896327030732235149392831683782843464743706187374029856197466210476222280615637539197842513693050477100831357592042193673049314959065497813462990956569712366718078366502238288454146906301677622807460216770505145777441874669309451684391494352593033302241157012321735201294275238775268011061550946500542321926832188917839451767022813059127872212799879586352207881140805911890431600118612505914008413574091358332139368371040921103537495471500541693492595772426995750914048194626983621543057800861010188758245704892448246529499791207507019939514054928481528954917897383406998854599640364292257834316487849658032698771891812695963685170269237961654243440548224279943583686888056644185700680974287353861597235730709532811386238271906857770524935113657635216214082005270977878985539524752907130117287479435627787919966230022869317306044379981748731690946700157667381510043452521319354078394930378961109207340431114835181850161020694956028759054303678074942364915456547598224956144469158099815737906100997945946372708638869787669599206934982487720925842205370040665056941031704527484059966565491625435864930064027431892221421172537253768127241502673597296123309735900342622055232709856545484162303974227412313237771463242154458391780779800231049830100839844191202396680744522415533730714508664879067333668958091772953813689592749633650298557608538029126087836698579611669268144026979507151604126690968406466435681652740127496498651811162913196364038278468020882922427980488755517119535416268530937812907313904593083062027712210281810424266920894048383945887321128157195708513820368973513447818929193232292139709720032149040572826756018228276192696173196606371162633505705614314076604022613380669971622403279700011041247964352978511912067922717764419623779596195863992717351555385146448623003088589127053546699797380714706371375353060782118165489342549087294353089613518689159997752139344689453964242291989073127453633435094101305348201165923198286536072431463925698176255864657051516023868500107652190295480904898475799557694255012107620252968594747198834103161946831270799946692817215828629154279968947073161054614225631182967660297394007606086509613503153930184571469714851804136574593503503738814651233402875714506566279630797564786638299396154334093965774797650507451047039969452266392541357211128468455785267230753496069178001418221267366907194611312738345746043488244078534681516496741828698898484271395577804068518053316586590517607531456179856279338426444839475404923659566880946872239046527660270972694034081231605444022837078699985715760179550179144115063473065174981577892831537600030556604544721286752401092055217248492302738381213844299861934866864037967194957837796477210163533026385354116718826095148426456516140469686750426423007972772366652204585765417471692341776841000931767498292462407451888369655071317335655229992885173168985448198862922660777906360360984034136161420734676701978649891869858955663660035452386399105385611241370854305841976644744902747888572721797478059285542580850769858669436214827487824106639749788462594174284672995395015608511836491636740981096619620728445515558785774102705652235731940969951615751546894618459383728784584993004453348034140141298781379945704991786510236436950384419184316095661938200998815980794721111639495726095059656935026067118756690285926709824841435105591252852090566146761125845414285575669279253838835622510378120220755196900042437198747935383295219129402616134198146175722174773866030251694813002080050382640568624346183386183779722177918647299094209041973451739320892939584274127716650755510512409655566277330207551336164084103744577194824773538032393193278231640577973603110647503516921119545850409065201960390461611148185927552760651096971026686821241027087226829030286792713936589554200901937453284441607658015120346719540298934723815865639557497507270734825158151331931982633685518214488237312373046413892945288837321929348449255911720694238544616619060282845188914806727712616812032827563779968782181017496969919559861604736105355896651218366043677512339961009937832950007483895225795815245874826728396130414883734149986404463829443205584472491561377840263274037524563421301501563899861630650019018045075543406681057083829352463636937066202102033008225418617397152918225802127794934172141961863659629155876607992032593946931424451873160433116757793324579181276329191005002431193635200173225885129200847593860894330506116329076420327017234436497448877221369537954481209474203753570409464770224314268827056684358069078043874924630916168657204466182492851560231877591701527329157387858964171247167958431969849040130088069759542545824949469377530518724814912973098881183734455469719091117051021666670567100632735102211211303064819337425032387016221935049360687028329084731259605021202862006104567004308283617767991221953847530491948248788399037316110418024097999078857356429571767843849157620230460631818012416355368786198218437025932724765348703686911854846145301370419151494180611902284870550833712105955465062553888514311164665080297032798696479027990100178794563034560880812835870586296062667174634694756451935779845026001679172066459127509219591346042200628374205489069512005684189159060147513734843582566822802645247891037315506028230884507785859510737576331474639253007025644578902913743911314741501065059337665806743442047088376476206304994217031565621504880150865206493480339897604297524572086439300933464476058226630553159625209512193331892843961646032423894185427616131241567178124715947386336046581021767044120103138277459627634257842079888309237492132759475718961095751341991602788910642982079475741861918505613240986473753890229923178462986197005351016393026726577204492947594273086512768977252636362134243438258250333201070389776964721360124524066710000723682295605680387973352425486408586862265449427149190319395002116706535229339764003134269036951427362401803761352657017166517523868267488954329094394295131550052243698396879603535993600708055036934399880772546671663591326349277569370958442630395559040171909955465388689716102960755547934651918811772171356641076402399283822531103639147754615151452405417349138425518279870190979397288806854477508914612964463673369683653181011245827410288285936991206321881648883886429507692634058179767148944622043523179221792928403417077071394159523024393129324181175216068208629869480894006981257895521314641930744610910562060174082995777727201008671372440377288725269894004073683345795854701874479423434853826140385567817098446423084308950559867812381827535357693978817172886708978191248442026295335360121133707521492926858537268007911129778030005181903948374845278300042229798860559395717735493079930367444654387451804328304081208398045492044434732708099327335088261430095989801565553927624611302561345386880041920385783986750905285600254524748666817778935592060955886924701050376298614208200587946781194215811986362891513441616294836856844868878705800513202424657765272241473707504611320077005989588847915578929316698187447809385623001798635948873004940712395846681631561408340299534266353312714004438948105914835736284856351998144292012834356150399704204268009703418479148617753853719114379011765750363133077505380114434726499484940912498622317583471295027491617871583956159563012249644555013863592160980334852621469862817882686870687375820305212756600818224351123864380006654221255359606330307676432813837295408028077820744477618437220725504900830318324981965396643944532971868988211508587386539469679994301869478462954041345648699067792162901570115037043673697209430055184106543363061745349951258427058097892537643006125403821882241095248304272472858743459507989966687107209867056610067007656315286325807949276763052024943331050254492235533295359195766119989322301657972339456741244046444553660457105654593004694793326984350807757433679847504809753446448934869337582515973411048977896551436500375099956330764326130283182138465423656468473853488912106157343537838704302520181670001629687123248505870192222874875969302911425099562929966938816053284137057971714514948422462615357067408664485189512043370549126543774401517104158721430581119984834671887612977360612108407843695433174848096958047890745777292184106299207665738632332850375621811868536129443851761421484667894270488125478722887406631980679334902954310693803775139253493048682836099037831180157924339638336050327556968266684924273707363526547447609059763883919938918086041762736041086633993942484414031211556180753934182163880116620128556066382850428700266682972762116685084484097685202364877158053000893540028045982448583869266457206887194985883585213879561353712267098826432450289027426844144588981381285759758765938306937487249047592075082305087052952590487385030844535841410790975156621549116207687530749017260620356493393139273969277628896445213004261014959358595756907174426573845913602179332295304388772864815153516594836560658640073633332841548147606015692706142877171262648626951577664280666997685128222872399608301725652234343694573878017391343724916370949084217306126940382861667665436054115304033739395561941923889604690136154328498498060855266465866791341404519007197272402158910568817057528967150237875929710433362163044647979206832015043865225033516373760529344858205877308974371999070913543472761977404282394555246326103108341796990899613671699824043421524947974229246064363342070470129595916701335485831740800161761848488052678422563042979794216136641781838951903087957252844369112528742922244316785299519855060476475945175496511130528840611647948505912927335169116055855889863078496993168640608674994343171704662876998453148114149918503574982562422713948908224133118631242935161122089950789494643848998603521555974145960616991516169344345934035299439757557183711370432042155998840452352873533724953503569778947686035274857397234788449086124214733302149481084115896918788499022908438000036255220956041167156868161664354953989523711091651448054445601772670614379949487654697446679094658542777945252331437418464800172534808950269030165658966801307382566629661201189872350304929499141716119964640977268342151870818969348856584077733504874610367669605065111895776698988564769654855129800071695468403105872824415879781696700497279747186203433690167527403144818520410097481053311236332234270829392373029989568357807150504147318570854506914445514541185961475392631662274116033260535550440933801221369149709612901982371420283455438990319699988123495268367850462588713784673298578094783462898166367770741809486560353978000836786393566380032343076000572878245185897445958888107088838134327595326707584605717588566610435423119994622579357167772071264684840644842890057243799859696596649158230982126554719665161946515010083259617321110602060218846823121200446130796609649976882738539387805914357222881292188105892645165437329067041281080721328916480994733098387463330323739350366783912845241038956218481390535448100265812367040323906413228928001723208134380581684084305188447661506141307515573779109751028052705427691261736943673668447779714244537795308374989673536946643320785700679757028611630794412346264933913782102423561845636390279294453417408936735460487570931304797252662878270953312914517266819258355910580099581442708294806742485019044974557492804077870776308208427903275158751104883309242197722253013656780432965665936811905925738982688028501322808003629128252809581941721782430388113505044635070231332971342782562217982933911535846202510909193068089510182299871038370244228726884400584672380651852742422782647157853388124664765323572590610976919089623647643820622330624804750632653298962290497121620028699289318926548156735614162742312509654779246190024517959203013199017438820510688021982508239554078457796325643661891596941178071014185003087479879087190978456702561262954876316377889954058838736500960885992443227931528112243200888564539678913442804779288406583387328771967543989170292953626527320874713853431113536438323939230300132514773637929728090382722293862548577709143781684426138264596417851029522848544105591179190433341987369416611782247498372927517072291756005311312199132196976396190205936343002129447050091686937307768697778820950762653612043514345306739129674642905326991133464089572507285381626270112355995053342664235957716144211156556171474314588842547813596397140962269833850545710277892401264565011857347592725084652271665997778866842852947831235154898362941441595053838394782044572928330492160702920686766749405136039738794581485815876718570909109687753249591308232254386350241825345851359214281322214289977914899508235152191795037057073131841106423804151555900085788187877562166856040866612800401270607190481213394562205265199088370835775128456844993964084474203496287680386914744260543996815376199175566864939886901906867805535388895079233720346781431768663767472265379423302043390124739277088649029080854599481839189977450907295668352250262099164574469134921321467089954033276764241353283902690695958160542075954436037231108067565193636392642489676952136699517542735880944261531965213815590962831143531036340489790854540256796273953377526264696760159584758188452969487735143110694342874972059514858276877777498134644994233816793710668703624943091166398796465924526525144417187122989095880590370729382981339109959960627838624458983925091833168518805856885288427882601269203748708963586660983590271233193754000813300415557588428283103503339109544253919069029608702110276824869064316903678177604257900315019791219244338440627429407964284503097678186552661848637751616433423094994140826884045173460469572654290078330847726041851206652736413626668541666052045443480821178361408973174184069566718495000775586533415338601739136931859230308614905742734604545298484788885615143450523375222822707979393459510231269836715702937683044616497457598303887235221813673014439146257478992890679394018994252815648572699564614992352340423549422312659818254652991259853550933397311600249491256583270754671558739606869820008791105059117701392502532078462526959008682101484882070553617738094380023166337131061096982549247423782257642173117136884993142124794612411993083466282657544554709503117712878124924778292246516012284540078403289179863490557778665741454997898708212026185888108519096592163388791668256315336767557764680289680751812967976503447820404091645736328911076656923944080423490998143645394432923133245181051484190391213747565536763264466055662162742086355066289046560739225363349343939306095850707661463083787659833686425895819196280941491541873281688181588446378669780166658965402051864247221198149406984216058233274910384069322902804041581313236920470509175767488983578569316750953141311866411285880679369500190825632677163559757406000712064764166766396968522719609082676301270162430504319915712454289385875343960906093570354220848660120005698131120546217192593814540759446911043095424757561999222320720863240485447759817632547655329857313697216620854371738252703565036604716763620529206279154806828102800565296703890767617812129521186346899973973152449150700739850106408774891028856442011322232481962425235699928263267739719697629168433424891213771913654824129038396935956676834137602183590836162658094684247173800652097243042361107514748990649377633527154512429878243072316923820478296489074704872760131923021263458146607435624456617904213051241858032854233110513102808214388241443719354458102574373443972979495261001533793982814847891646164410428189156920608408688940535263946515394504154720233392992626116700379293660354323518609967266649562949916843673363474187834399581706328870747249207256173547683264148762024216795963377869727010942058450819038074841697363350852783252121666778557569555215596813646188668950910832282506900645882808914539992815259740990483560830456018388548065743857081853843112668147813545221953642384707513884731316311480486566036827909186459731543103052200869493069146131746010755214307729867319299448184340327538667012856248878628819743688832832171797862865494576394751336323789914412801838502739717535726943840628908542087226221417572203434334178069558609266651708362593621477715577439684956965995351676728582326289680192907674209321380881596857611708809333929290665306115589481446102351302278025666088038917648378384886807714080770989342166258267332841369007361273820837560048208975848623063099023353950513329134411590070360445495176118520145876008766170202509874378834698324383967460338686942842710550470203081060427825910374825421841390014788089285651690100909091014459176148003395488901778800973388370891180115337759245479103343264222528581603780742161298651377152747772765469877394203063079352383777479729509589466566615683832270088467212765305099243992995897015379567005952424385100281151684189302196410180662529094222885335760122692773407864704070114959528272595445480950740012984571098499562951643184573451148237764898926973604798941760084955717530282772776323195083773614717931106478186375787849818449181711408112211175142734340517914637532899922624095489699258837099567970112784063722109971051741378397930681997740816411740792967175576263037169364050604475924695072792001358684483169567421810879765093102529485550110262463179963287252282657604418548936651096567194833906056695332477659927215201187696525993894879481184644694139794839754059400753975159358415595905811117281368621148484178738345120428986804901479609825132976091407401733387404026461036842819475970069138986432707764654170296012456222858520328998650105041054795759037451150022100624172401547046600788561538564395628067632625988963535235730498244431019048816260620345960439644479410171022553538542929351390591543997970304174424382740574382459520824560243034500867176405169446174666976887712592451701824485902372827482929937566187060131969521047411833508133896784137008454553325084463915675694613769985018009288206424901837174580481255345267535201863959550800968706790503692031332186409435468545172849495203544101651009867627898873698093122261177662563535923052965478944154241163838977747711023760858215922929255993936416501329858452301842404720669519179094642421802760294399203982721449179978503423934770547334488831195100099490790089648946717820233356261598012794721680253433376597177544658867479346237715255205153115301526441780613350387229883993627173239467431380076377111014704530838022374756306383368113169001196620967864214081789020470152986721665622533451670404619824660843557097932434966395116367667622806800328758927965988876801013042725791267669226733178037382204922993461420452821575203166489536967963711888194959332267765944835916516359006615487336407417374325821979923859316994180140607685996667108799194413870568723821942342465792794663842869882057270336680351849633175990804039447907507523482784975347167187176765435773465237370884122990348321335373184808034668617558318183805656642455203607419636687725750039457851470133602881223209431972004672547624611133422175980957143156357847598007378711236973976136127174425636297750061526673983123302568287377571806084401603238156246492567106393141032123610431748246041819845697878798336282110644721231147610624189879506709792941700257748527222828416924515774426882350355838681568706155753817992737779109668586786844905391885013178994018840957696135328273075988768041332758654561354262217431662223515673643260406188138403518537567868710589474144700721860551361420728883677802248386496151315688465419924248051098485495267175445446977856430564248977618646733500493801273815897052951724770760755820326515619288463028638878933080002325264481807988134664816024001968070080965180999810503630192550139147403759783053694553133806418199108778362841254337356221080867426936699770409453055367536422053290701388712028825514538485521409590530412624154312282683851930078427442833115868545119920893004230156979441195548646791325433778420179639552332090069881685236823229603507271860807495847089976365345458159658941964754656310503572627979505958820441955640058941121399136526088050263171946733919223004582426673030830372044710870296843198368673167475122866048782502110058265144898664557328174899505970164271657226491281430376876472886601364845210100695049196798795728377348415327622511363947072968600024685892691151716970473434556886929246702275240405375581686051413677218502411245390228071475021753588333146397962775480076037055194045983160537016862981215392284711300782634806719923031525502511796706554777355270426547833355583518592014948496477097126922791802717929447184011660818705557968829599043139240104542274254342809931261063352819554132506664668024253659042382314917602840151560266377420246675076492253667087740297675507928506936250825163165206763661342415830409621464699348619505654288858250609515783570536904322027330501030377064014716966757802209634556727316320863822948751754395349253508310156522671578145440257085261464643049085008914473921259669821821248269923739741701980707239512176957711593743034452609314162033783331700249431806030616032002718990604528508524342369669154144466389536559475223310025762707089992148961626150572662686304964333129218879962469303844783833941303239937652808056282495453850054402177251842856459676351320349396866873505473327818445278500455138258252393876450285821071855992501473418322067939241717393268160520057081319132107241911510703476796902018936357468096890624293098021862895935883871460641793823688320635271130537369058541355825287227439712568985359205756112398893560379649601443322562493666613720423506244318340409987753927160494313882827186711767908635675682882044220302013786044226369823660702675844938623251788644642177762019010200515024324236547551081180026368234114485603000010159190538149557668412866471038684068053044824513134957942321174213403065528878121010378920086636615125444033738831959100470876859484490366658949286145474906463237860641538316522029187399470356296722700919287861671971325347928445677608042528955587167928101929267871807988525519334129446832617660092069260937190738496256889375947606796165157064707462930036080072487288405019431420008894242158402316028818313188934956787826268543568383655487494280497088286381085298534970031319797933519035002138895490447526389451007861460908137008393165274297949343799557708272334150554218266366980104602874509088379196166297478215271926781300875433348627139867559670937854485951714945192226021085127677543848870770625341759880891036873922529916139371712233687514830063915213878211896441963707581650249052569386491219217657871083129399824191972706889756217583630917269270162764424376359024207626389030178806079154071747539143071957820255465109461272882479467175815867618556256259678160593073223116292379510537917558381087371412997872589743365967891120903658990406189505279023210341812875529941439126365079796941733862837537214693472783887823169195642100452046317519473257734326863722921932214477615392427777989081010796160206515848385834173799637792166151263081823680713531044713003127250380731137378599952349875376285678618098295078657788656286728807398330441150559945185343704415823233998436856706077972591937969254695041971666408285946908793382279837538420263157141439448391170508468691993164830428813155256376810162896536529382483795854663973739854435756505568156400913256872036890833310251897678977921865243748469493489215141422794052090494379029172185358854789812677624115174991794872871043402944376092792695833916813534973998012020746217012139292056898520253823997887261730087313379397663817578584391806425203879950939322809167564689091248468053559246608758500373528042063013503738343875485561246272166690074633303550698844902285278136152323161669234766575401577949326984184287992857274624959179160853170087811064640895479580258986988793345007916777057980577652344642781588824039518726815032442573419373909848133575887708937043537591636242935751601439300388160057612739744231668854345275496292544876834113029398622378466688722313992979624217477826557344884177600956561213703984641243902319972765585931435055893341933398775553787030117959068869397455460558745313692182192030112066243141112352366677245397080411290101239100018304662337021303593736137793120747558745688389902681532148998372278746308474551543525008931124207927174306987469973966955476971831226903298462239016916057758762444221603349817131382211641680493488180475844956184841311999536641795762899243515477183731314382389842772219305646359924285732189493285466784347431711353734598575321951124634135413495196486085958374774034457324663649894359302068023442652560698130280981881758032686981080497435859680717065632452849449371159706877786423693944228558080657189655554349746058615231760170768296495052348301777909125438783689104040874100229929736503085276314193452405886111432044060649867712108432588051201614382600214216976389619637354206842300946243667610937818437074752135747578030331313400487456905338307794887219437951225640460577105508059742924062427961556147279648761369646713969383248189851248305456450961957530161996751410934719661261740533369960389094367727791011480623727482902486483003700701545521091066850383771738184254345285515216960824276339732845310230700344666397505048628223745899575202088238104018581242402065630941519207206946796827117328616803529442085816409130406950471810050337208855391635261354996232839625017609822132799726525300574982550097784400636407639770906957781770485260577327978744142917110119323503624725866960143491132267550603888549477589212163601057428409287201508323663460192099666293787935081459320634520264868814473462750884123380378719419040917050003571624618326179595521965543660870830578434452280554308166287405448252068433889238595934634612046717590124007437204843529774500509074187632325772682420558061698162012208635984970932449145621113125484000481286520742950610950802904801282673142916892579154532867268843029413886180233882923964970557257543564362552332326896701343113422188744230575572565188024257772967508386650091200758229798201531843020090234700837637676936492090713140720580000412838562831090815751669428484035582306329973105588828188155170263293226491179790313950527270336259397038136038204270960741795775406204757821837752792578343463011048196618740359317074807614979948654154666933500221287117187604599484890432568659476026996843896158561582109404721364110170900229906626390023756826272087427410852512149430978654766941761550764447861850157217507209265961354412247313807999917489375863382946421451050231413578462708086328825942955468278298834710219940479157169389065787690050497566756309768795773555301297542770966978543019035467411782260613739080778407673479587502505305787254341934607938572662042901169593647661311723383017092996599143913764875191542599982386850299758556107040465638504800903188790160351467782980153062208099049444437201519230094322973181201960204439431329936609599683413817305196528676673206682902264892725208957052083681838524202310390066170052605458994632057818372941070328827473395097586297633648781663809210835755869033280489734552966704597147644730007148645704114315709594514188041557629730720868760540823168255951238152831282852949016684139460492614137808653671979708457239668334643119439975663715266564170188415062940783500315324527658438068849764492758366848866283458317861858422621942118982592126531291299438535796829113352662196858203249394192255631395451214468728080562880865982592016237691852623211499375315297045903354841161927981879294273873805175698301651113153438848050442977889633533747015320932991337271978160615045363194236435574302199356061517820464991712285252399203053464856398009856121335839693208033648097298707945802930778319408319693820633741922247540368012754620122364481643579057375741391570990072388013447763692206632404773912258201324397550038906935825754553081037211224417670668881474926162813630938805943166043073649616503786556318261057689302709266641923709874936866182338353673469064792922469703062027141559823592774207030895904746973693040884860503996533366752279094656041271787917957279187613574631631154279500902682076171710171079605190479660047478065175063200107039281641588609922400691065033833082232493625958243696809512905818915333203898433758004929318335450515412665734857751657074493571675809655528923852015536428240459475891612520263785833909559067908335859184195767234631442149112711386168027267292059468345940676593415083142009380241964303015773101129905650609639369338608292264039733789172082280625191942959270846566862014816586978525157199214125148540287178133547822998136961307864941651349544460981578531698552196018930655612555241084371775261033430339646560929890049139198759229099171690423225443823761961564330265706503779200792019381581327948996424583861143537456937716568074757508910286178817307719684627084488640790266032315768401102223395806198532360656152360973674802325179049987115086663496732331163304771123754453641945030618678441646545593313600792058936126073279545057596466786714911014224132772531813734921806913889807413861946001114213324169628524139152900218768717927828118277558494660103106878228818489056305719201913273651274225686282878629224428361877040492170344343426080082550712325245635311314387155976822620322289801715323738138506881242080996051383714058550052816343063589457303215115262239624825218965680263396908271396778515045170283277560525734811355440950847072555183190572215051724437536448734858963480297107969186485280098334655032399686057255510753812013695393069953089827430416341559586240885709168472796593742504406279460499003777751689348165313349978747136066138597877450052374797594334424181567310901760549746863565785062838258564080208549976694307997117814980246983508539498765686943049499246882728169727619632058527682961339395512868737799109280323357768311635074550776577251416168951375713935075209251501522120845278046880210885665360047052368443946645702319001855970147273151833559640097259148504899834214175507446880090648726225085617540682694855236945001032278290964199253455704672123852865398751663152206246167178089751202436049653274337989237455875372222902761392032876239819309549327058216232271472823658958012360491765363968744251331343016748013329628993776591704349525237442198394306210482266182322231153183355466228111550312151370499594696817697825235954989108358924936078780894261754019979156602708196381710348216164294314934947776909452415244273002689886806991341194450955536778690992176184464573607642045255096732002810889142982367151583955920702865597507539837513022449838888793072633563324897831760643805128046955587959337700064782286990246272415262995698607355668678622837095939066897634988652344196764363143013889071407891057811046285722094099972107456151720574327976359415307408723276358846475306308555336686915415958300241451623243042190305537099579799869242158023719345758425745656387354954335079832804445084718709440255749822386596912264647367188237071234639042511825583688045500600414569781309048997085023860495223360502137496132556880087626627727273766729155324786239225618471749054303084009022366240344424496800744172466184503624985043157639833088785003844581134077087411715568498745014551925679009814660588596347143969387296328950865485793401620345443440117267132951031734657664227276137571015251863206260148859648421921275230146765269256650471610000088998617110219015643657560118426127375085678734691450679023364808321724535403821688679365962982560313722846019219311923259478707143929282620592890531098487742915995554025716952999107896564484576647243613981310735932204389594909500553870418783864128375822625880572766725272793702511935927110923959072038498819463802537931837117922234565849889054759975344089724184827831944762674035106655895072227868540770468071984086204026134380486767846108849143812726627390256060681243401749266887002348165941719592606821164459903387080506194306530809378412317876678717617346214338965282161336870633853117461278361940549273197757393952541435136631769231459092061241407349321567353718252596045112835750142648123265864934604261117285931772136190913159194161882593266510479000249525588530697986650482526006219616536488081340387509435161518607819795843787887228761900427131470085380800573162768685106752937384901737796697464704720158432444110314860875865209132039669276388828676147603830849943202541790175496963431292578205958370815623363597683883191742558660587483104504146670102695857950512839387086976942051964884884420581941961774465935432644596034694746874340940287694603124569275596793991486494667482644761567869240382439870760423484925339637648322915589964757367537607885386124702152915727380618480324803003335111198083162325795392914325049786245046106953201364481445420633949446003605940180559065582128298413750352661126502559986039855084058892154410999513620693386653935694959764782097586109169434684207565306354300478679869344794941414398063097027955800540796831150408811328590946167105987702088145026474008872251482283220643582023263789800865540744265496195372150324558528834686771478458914536222538791086286163902120034792388015220933865479483881254294734028789527992710060439364070083652623372923079584596789366689268491841561013729457938067934030318338020124277723891860398550628651324041580852832221466357756730559675753244181826873011217120046238540457554881820188549392245010641595301001306990875024594658221409642906782991181866240537705474241518699868359159684752212248204135834051150432363011223718341204110371307175422314708227508913842698908070211344107376380396836911661706451434703808839285839451502709770411167891455008348885735237566092176394944475804393949380524602689270815193263176430733403664859898699343800440272014162266160211360632577827180852613483555413626790202056371988786024316047365589291157161974069289510268661369687157519261731375774257463270208829177751818260601821392441199402230289367179389869325016448257820985814523600437451317271605012716655994385708505800077309328525609523934245254520217958751906959428250173179403584964219235728109338000590293848294962736580549507551864197185543496404257375575069698071061024118948668254736563646214683009792383250972821579566066227955270028014411726637894973531866007134737207807308116862126402714159337098860376980943262649979204669686320595753358514881284886138567512449924964908516609254499384185416207149583222545618881057366513852026139621968661393564708509252080503227432032554660758411915470981410437878406241225686144610835188995379987661312834664184525513595639771272258554075007777504892613320445069247609201756395852324074982177978788246532366423955200463831422798633422204727492269153777986754852457244524058187017092282353569311336570654173733971897165641703892410494969002255572698000428108123529267463613932043813940128131906271383480290148837826636638653728554898931521472641506552966855452259692393957450400652153780003466584387280413273621559711336459453883719084670885962979895910163775868212656630759094740319928247744104266257450051291208910583800416339194992263118917519348600064081028356805064776261349296547762218193687847929417384340207258337114181038353420818010097761540386515238662746016749148082751569116921868188335397981362204490607214731848753243876980033327500240378587604428547940084826801256326533217387948995257941169063657147657872936638027618148301629311963471511655457797633962700281482771191019399465477608392725996534722251060573373396037738181552111304633451203770585078775852485504981151891937755054592844107844985457587045596935616890358713319096087317319616885400590565013729643093958285553836092649415646224539897215952316145198117761331259169959580998829174556498846056111808446640341266991144451756106517070571689489138558244159051615365891812892063021053841272687741637162941617075762467388141588511041770830800982295400118336380455957857340822781938887654904847955070493011611093273830477435646477923331875733371982561698197063064223801180198530954530140508543607161730392327980918981483679967670685738239398528878965996849617656560062378772420632849618406004327215802628131609305743251426710346976011925123416549927385602341030595491430343953895578470144930408928099992932545312243219868625737856753652988947471339958656377709693570595331264097551451145732735773035293973159713817290319010302495159614784811783850993939423546725070581328772947997401175995894468867913593462546890071702452366619547639097324313319096262937188451764434096274884697903954205123658528315950750647112487718782705613432757581924868546325776760313786235014286877571333717980714355661577162277459583780225239759965481292234884220191496464768784757045939010410299440695573565381140085039280390038411735300170177945371048400412081364162690060657600539699179478496720791670582884769859761601075719305452252200034459063526512112845430856824753539904366870807136779236850667783194347297856579353368962033913614148136969007393965668301809133821108805309600907569982588536634651682409161992242306518642442721697295978223745340396496894649748643580598562768932419481770124714158046842212580259322388398949871562113110672570431766553732165290675661997281683418790738325711282544700202024253137199496771852651967696271877890358287006676414003078869984129672559279422520054509950700593745123403867799094199979323548427964180390128212156336258579849019247941359169084493516256100523943973027767145640865289324340720575919390560253139618121551262814171716165813767098017494745754374665286813518471428425672411091584509178974530190282150700579386595968846236952600505119979299416499459493349600986979981357698686259973296452110509531460602650602842276537303784873493304809852906530638499439022080303076154970158514972236089688405125096158052610508194661396987709404642729388381064383501991128700169406872240610580965877662621631625747025526649197349098853854921360478988429247646243346087483741152394429399550457259864134684910543078584360008380319933180918203483859455893119490018765995816493731282438456984634614839386126276707960734773776740969440843145866336060220545619020168102814859804407310541199871000262637372037558440103339819538186070902414033435177102778089722813213972751918589817464598750003434394348908216761332141925681846609919227320528936669638519729494812868530404513936578190097906104665865233884891101242554398567835892622383300704209153089540557650281478890577080081677976411042330977821248153067159794892367363059473775314918623144256388519373544003530146616744180588694323784632420709618670019508514999044442279693840460660414274390063299805602100819952088190376485479636579060543368152265569336595958158962328397429014430943183427731957313029738153140459516986234370598512657762190875941442905471347171150317849953141661441389119436016879509421751207846340632739298698879491982246191738404109649755341761795202298058548844168254386353481088564455957706642383759045414905436898172532228550685723070236683753209352464204415679102425678772136317671527494434053231598437267422620674997143545456465812530113454083402849863353003121002471004443695025980203290402993632075537712574841305377805898167882451612596920529637555581776921850219194305666616590025273214046054403652554102500756230414100387985800945665769404336782133527192189276166304222753506259107261647517238226554258700230979110710669341212963624924313079754955250814897646373519910590244169372816070973788704943945975777206997346281259167659953407092921310528878338568928198698476085421512730251050194761171149584749311280115976320720569173538988578346278775673651121810998516402792121667522725087686188135634632981736169279011956378455402098179282663360362282072397895059285346749308207986411942914208787800006239123253937496229894340235254643961288657720491643779723888618455618280868549540716139224175779901307059121274173745336887503607426414995883926639830388594653213679419564962875860791653144836986131229372606055116247175552497169707740733245286341552147415860806113706086588249989612425016726002831013652784496265819700001260733695769580245710157746382336806257243608045378025047336907078741412121263845069034328926053402595324155002969017558606283898564460109297133612629717653352242933965726185135745904772755584124548259081632527998648184863516799818448229272421297360291592841269623556022494001905815706896495735684285157721334151839733061617435640110483359655012144776451338357642099202421699355090418129916718873221134450967222459882954944419178344869432037598068183215066711365797728555134875383650563422643774352165294292377210815815007245275481995584417701489908272961457544832528569627663977171359458299800068971901097581266567025247795291963993772868529891158494954385715411858332876474566218097481935284747343830616983561373918645752496194559020459339272693972998696959483017644455033472150320782318267599001457024873492264733378286732367524763938500535044501105567343109029411070195189033150472106067289988952732798039194239722733149112858831127926277462347543816736704136945917153442559783217427427716256809054545262898392546239480082762602567922942741092752654663374755057285469656343229318778162183437404813489873134617559492693320776125882916453503746200311819136841859765746700462496520634186054809754121227332789440407652739643832619970430723840069450190491484063040558939857393296033055836202641006436365485664294389486022341933124426079281437206519718042901211384525065903877556939151802617586025328386058556435968183394177756341890881220000314111114775859560928972893489091048274298663285242568975580128005784427620538194237441995196576088543754460526766230316075433629588259816675445519355342886911905896705565484907560966210534983005400351458224482702707261666352193496957741274646650711124550662909863785529724122745419711722658056148259439365350733933191330512605390782376015228133004308944054256554447974652640516148294777145306539057263277627247747078619526976151672307467491097718058679723056551249242597890932727659348543336645161594669282474954638402271233047037720508258668766784201895233489781988853639843682707261939560275466377186334255312373447235039011358859304671679569730096609505317128546127141892831480738000152558082380432742915216740815744833460818542372231645431639965474445286270130144490116843910723401794933357880760550393942113738362619308202161478827196969624473866479184677523714866330077089185506472302177159966808269908624246088939837878360224212283231494760185134843372262722497183866882113341970286016620199112711229420783947425831816536342700471487662549814064632166883628007789802026571813777597779397238064751930788057078683225906612479438927478077115707012603955757203640227149476591616469719210460266759694936610354464199764072818858475838002503334735258615377722776989576561743900169517661984743489312422740162194304577155543199368406519710948262046098590786437539635322199967188607309399920638442298546970424498585648001070970933382595779904122343794654502599595318452036416024412190781256375362116397483998240218782899660181029449759300990248929604960589657580969632083956621009773066923849704019523778947612987422840290377187400341053448940576579259176662132210877708613312393531763226628127477667601274905938964599798474869995334608207905319684536608647950086664060059682533776539204920384216723401826976880930197704604383192101118084167833579187516554269843273935816986003746896985679671302015059870515069257295475809541392053195426182183659754971353494223340307830212900423007170124604364661600961129156425182903385017509991728872579925315741542018352838964256535628340186634564855050733242828546569111231844196117858756513908527605297508703124410322732119147761721597316351363002973975340615653967925915237259488497757438568811340361912216466269740256586968378148967394777901429613030319852153076399792881328426950274881641518771204935774988353771947927599287252655436314351211109541745589933819547756037338271034542793395910492855284160230416222656436288639126356260549713350288718792315621361088297775724998519173941104364756724771219825115629490342683325297276196985980997840539718472282509951451058232124645358845746626165598882734774108023038704439389790309141913259634996515431184204494706018994566692239446249764704849005323920393342239220407924555863819516099429184119176599987537499159225325768033304395747818360399455574632910387892311637378389532212309723182785805202042489550095756243916198865147997172681906204945204101525515507297976518921135566664600032410368152938931368054716977520768987327498382910511008225069838849503280477069057375224460688468804210829760620940927635096881888407920876754301758215235966000521865345372932779241668511642272959191043244637748339328564260550907517526691731879158461382166914916852876381951294505903471627123265534045052242137923240967765499551458032304424006957738348546021160501328006482166320332569673123274307307002792092798856985562950919679982415449838899689081578922914850327114635169973351892103512418806847808939944009991692007454291028241994510268987166725392121312376212478347123963394273788023881617525656286912471166802832873007117281316514318297263750413238315964084417341350416348401955568504649206036013312869566365899494180290218130637468704622892790377928422507243043078603800314535380498917335805814774830074436951238532944641764755786522883036876830670207212732971535413517448619150703172044763317815384453308654027682952652357170294683317924481264496359745403840092247392076789767853899197995978481066105639546094988812988436277454113352648393796088484376674065679298609573481961590054463878789948759327205398160020893274170516407521708177733048226885068892266459416429164690801691733752831243214436348875530372942641309615272411734614024492230534527862701073134882815631219216671072566741395241776112404421949784410664380505515046293955049603456438345430486951027383467164192006403857523214486618050192279858622634282146511448637302103009935272646731830112620204505782778851150129034313810696152844032335068569142254945336610826742379160659503939905981974737439387352067231545261863443394608799676536022323759718430168207095974646149844866613252655708714834128359204402648953879196971076295265580209343274352781405884567632168452448340060663714606351517890496846163346559447313196759761755806177157102634167814847827302566592186031428251476289814220591859427827516669485539863661587495463030383570926145367399972039646513407354369940083269662956704521601298052553449479367526588457870123205479841013004757585832668049852833749160215882226596995331448764551472115086100139556621856745194776759855926130714346808580670244893084007416094061195857030248006544629732702699106213559202168804942102275547805824035467648892219552209770445252957506994832894459038797722801593941707677916892525730840315870175558705101414586848475072499911116100012310025483364546890086821901816660224345308317275361717739439648765826219882810002529651021541106135265899375924547843815608113544328479743029014097044152881855781649335710822086561257704890037067675465203780071435351478334257819568061568926021711899406019622437686094933574119590134886403514171341642202485592279589893034036106085760508448033304125419601777795622409954031220257255440438363882310022061478177984478137406234719062097260793381114426182042992377877795645555513410528988765220854776597618447176624479713063496543455689299929690707035879671939036378434083807144096884657849619174337253233221420881694500779832759572054550799421547442390963647775702399510467283772526219244591669773311738205176748249498460435111474979734943051833898581797072540540796020008859090167282400857416849819433948700211360844142373324321734464074416000341587980640429367712342693570098639956255987399131140285145518705721558395972415031806512963095155275422741136258712914436434442747639828227261319632247573246907074599413950814840173324228252504790056458605816540602177664878623711844704144718657104937431065911988887405929141665120178333456672947477249204069335082927510532397450854304825772358468731611382994842225065769131665801663692607523512552973761631484519225635458479028552243099747562436308352248914261076100092355379842979879576025334187796258876731609682612649551406900790722427308961585289904479771445140968594293725755741798943077182580936283875355630627403967037288939611218046153884587125488291679452629596656285292769480020917308204517059431364007518269948661502001994215911520407612812376318587678942621744798016672569624115643633706935285851490309857251350343841360187573870552815721413429316549781570236405960559077050913792471998508277808115578521702656305095247253604258245047594083447777713470902498864733171878320522335882624291154044630799629961503995398741189490736558852319286237019667149539068695692019269568343986174953193268304580066052391986785124521383970278926470773348158797749234894291990002830629964564697430193622814012041786989675071677429809149521035230301071647917766927084943674023506868844373226321527283825680494632442744398431687812770167338207055398675000593001229872953598765717597281503889590419542133419647974134062496346809394198954199937420160534201812859570102005418643344741670829076434776256331512266956260128488102579768250830190006230737342691052653585896345302416970401202844661175102081731232736584498120720001825417035981802252203000545690979012110903557972822656378449037227551027206298382221865999470194403638239588321562250711256330063331197374291412469264278342448725073573619364172126779488559344577338947644746327280974327801704273715264319408667351800870319178115020579366635375242397583548385522881436944849937795718688963351115966729043373924610230059061366186097255515898415913137994020008890144144794634742477800292468664146755705100965541957137736133158622934576830076895096271889281976477813742527782542040924147106510701203493633803382302739963650951368230729897031085669903860691800160307253463964376911161097544745272381477692193142812463746964729392611768511059045357291366549778569796025888019312610556187252306409986496904214712599523112991230566480723051825243837624567560167967683302718133301514789972357593322917930366141979832882481262678449947859802597005472180232309183083480094295841035908407537919602692528528752965298845069038889217378688791875218070226615745966232024155929475801176034556858743414030942932735053464435357731252715497448999815386267113056879380122892534444225230284633884215045465070924009697086037954894530566325365203635142072318789539837343810872691602002828612792687243513824040826920649098759867721585858113491946515396904160838066109886609898629593896348551055951152703642286190768977813426215821551325042085443174708592779441494824336585295500278892624589600690798155551506375308905641383665315964468399187678606994588096068852381167704523577665851100185847463980735112197676479929419096638036977426478189904340942165985374124447958889153475197362983743378374080698066639333864978626742394945313359636192992037379228820064081060663277200858103705616027338217058005461480572005815987296495582993210181718997102021433610212654137471335282756669497530392587282704513261420374305051850119151187887459813201609349806242139021684396795385053645159440967135074553606976375147021120290027226325686199113087036446275867819000455132437649731563243642345826129584526692351596583184657371258250674524918070005668257277735455814931962607365805596942138114048283024350848661063076783223538210035768121159442042010151554840430226417181853507508164607066742213648840419621306056738442296152005034569875593273991752372771600636050639445295544954697433005750143764177566762964241966067856993332345064585403039786338476151376092759230381853615886784008560065487260408308202345020155489254719285454301182923939667208096997708871070750238257612218284215101775630754642227107905570107757065339520604222747736733738757648706152996386468500501497374348452960128044406546941318188207520149388531569141718419786396437847111692108341214178475801124635968162119243218344608520009380922041206978269334198555228738333277854858415607162833294552520821835275757852053294326413707643968788779914188072354539574034953397664721252448447923882558543665114386943735005669348492311305559147490072098438270337894274798062840084448082380328148409468266288594742233909085231214929043998444898695406481256017650798903017426315747570441556380323006127305589516025530099780340376523103986903790436909700828742857524766573995004402735382362039013616704155547390019649832622951768261219480208573908759416882263266441187793221861523461493667332860572899579140006466384871767760413693813957437578480251354412908703957126601646574776113335636059872778183912053798714525572651372089841243719455806492877788961979240358646699406810681596783837665557457381864869863677610472959995512647421274923419532008417375535482415592362128068815737609166595785141707188855732446085960223827632239792374503764542123112263830600364223982429661886812141702795626339186771847867684698511085749322922401191275377618151195971531839028886220450618961934279912348103722625554378844110949854509198289513315191443239691162723678159004275983334556222675413610966450307255545642898731279723351162016112889150109672389533209765012257598856414940331861240412469497740913713787267670013694014489020470029297434531420367877826883390824355615840014057084828221274561148876851389144771429571876790654153197429722661114815976581002983504074220468971929788675206860733195149849577275587579098445831504362474510073978986589859995969687193266132452101113367543608814336223473490629622134992877278505227596561678895310965635669593215086251775486752604189925623687486191227125728125757010073881448974582964209692314482486239097780727553953795914547564710247098754813282104891355552810352773294134288117736597689716406954443023476164193623110242899885441668768745018284689446643628103573560083136180730587667221224310659184160238614916010441202534263702976870138034755802549769828760411704076123006402686929401921283650567680620583397145296477233974355356767178134117757870089302469574724055225275868709111894582278490512290812086963068318465726426728076464090411128132886926668942411595981940350346896045672826827489631413569553487332983088832670932779491905705798074026769952041953942942611329647667480379366149105458090932401279037055857205495200144298859256370613102786924782986832585866012659520679767648655811797089883357335632325643841148545470030636472997711330020087253658105883090312768587269929076424431145707909679177735323958116270817682288537977246872618800528499794669038842891570946817611347189103782554084159975710072305187656097939763445360137459983207637323805266812240573188997422755162835185695834325504864691053854512955020045430884384883657364373127587144931709653574896604000739449355968085477342217177831054949181411014418775107559859556005662262719049547825431351323964606990904516863425842856010008960132730745406586889546077040049828154293232663534158414027031420644406107106070130956536455424812536534867560108827159515236610905604731518155255218975018594263873388255677466043346759249100434691795608432221224015010632966079240387458560260599750360895639368606972854982002663205765462580004850648388138768393468124264328728085384180163030444661923639358130648630567565126470506855208750736946153712498557717165788569061457660561747098706693978831616496814434340639558690987256192627628594935150855621856539614182083057528139922088589426013383585450717951182677627051520061733023527991422395028454425383765250445689591962473367347606199070689347765592437090659213564140735362059751855292732612525400858014958534145401261553828825273454029620387103464186922961734719699937799211849740999035837822558203416437432677852354778930753829359525144776886737643991816352291089153078104679079066281366196741542068563571722062904727882456316114213765699640657116945415042189096394149640907061605024672807614592761111013957116570689563487352221665545308502617240377815682996852472119505241939751375675964278996268813754086564435875316467564942883715562645052367930820852904937699789454420855689823503135475066765947854340555514857280661432192640889070725771204482288093075141638229659926962892296457205019257863280943194629497216172997120634418918428459345165895768719520330376590049352942214230695614118183988501234747684352803739503781468012911764767058814473083368259799897591345189852545405943888640660601769290116775560875835477062267811956518438670979418656764647573986232340157525620619405020190815217799652482527797234591250587493556463828234808614136728311767252413943230974412593817186812225597587436259878160852424386688324654262524665309146910032809284053423251178873145707934986478456396221002815857390195629497348147013034033709798688354911699878105630542976173933665923120372847075392151964990190334747107239900969777397973271003832288123850310827320226397458652281065651491681296664626889082521790523137747236669465789512219520037654964414366634114811171514513909592776730349746962478338870547496996906869985340717497881389370207340313099168089303434399420168494302920135773201573865219451858653822906006753055382610475232482692316018270188586573925361647945367747247200829370655034117084463423322635148177878817106686577378133596210388291863751117068517356476066289749357601466007641791071006711685827442586367660482161249882969299647385299516635396299812586175927455583842862188557794816984504557859961967681290900131866813129894344789265975559336196965019385526739765910496643529288107647138553268528355772792463840528080664730483544558085595787634810069033618033076228401793445753008945890818267022732607716553731095973930187578556864371050647301638549161807156899467726762941950641115263160819038257520517016686796153182513560810889677770751012995774132621542198490460159796781537734574591382101658546766560327833893173345094907219466164891684312462319185585781963030455097296333937983538809413523572258233333654611598905100338635688655232933841401023910317849826669018532897378182116516300552859944217688045663389951446666301306504977967552216577798345730436564709936808103836566451917480555634662203526020517683390235857574989006909277802873767911383717161887468557276181037863914203529411645759448198902323364261761428921954404211856096175917618881711010934579596156589965604043824231443313848751129592812208131957149740574792693967099386299755435972943276079696070857478496629311063303574858961178139780430562902630103587396709108705621610877142559073614589685535662545604839680151113116752759811201401422389859855437644069525007564718578613910636175022353175287989752328144608697065324453475326646882470990761864882281755984953357828944697252492260609789474224803835682599022202073180810809902443972953620873946458028375507907832246075615487211580701081595944043661070394175905887596631889462577683605299692827784369534546503901740959106509857776214348303200146939835004899581093862934165578559056228294101417249116769267076797422659641380785935405169032289303812250878885547303753747344637907777703255432659618940913404536411353005052925796803878552469293139883086755759790312803867755915373776494822367201878856376371843667493993029116677066415789578774308466930348912129743969651828988191413777949543575004717402540308486817507621449534534459142822567538859326049711173486707006069505296336448447620757595039980766743524985395882722474584766013986189121859243431402498244502933447056707855725511188244683847499961534239621441929658037786159777971477877077554246389287217461569423183428989223661529272325266153207973895428372949733065231411728146434824886552912023416745566288262696949568987403655483837066282263078234734747063885824200716268326723535103538113393833665839272496588242334210362240553088371770452614850751784857332748579558566996366013081361359345549568355232665334339417111972524760120881812049637864649007032084325348549280506830726459242769965593233220162027568896726966987430408204763320129048902388177959801575131704628467199289864110290325809927646430595339175895114470313873335456696397030682563492864330243101404941960916849538934648286275941467347715029461428082089558990078479285454916120610938773542002749332507536094777310245897511088634248060650282029331800485494899754119407484925861603640408596334948058357530454907214604097259751053228149134849714140047394885430207224822365521866887876387907278658184190194348507664164533824363744721030723353812659281874201065059761089004126822372577756475025555813117158030505330879804647643443512143742460125799718882312314736065213234918752838480205709546250374227780922383991249714767308730215858021957057547004148352668215034417186313258512790533571056984586310256503058734412956749705648317023542563251165996306715537048006205908978454898214019547597642989625091585458722462722991115999909246540393281478192971076999995722776048015746042647446995992790397293436460612810173159498525185042114944428797722948840234019975619151164363585159234006112216835926533871785383640806217166193206829469936159466745755045673915083525751052840370052536115722588058084475230387286368814605472166012552853576864012386812136011015047585003552836021168875694946831383132237109346391308253872353098150897991786142640398332948411714625381928260608194159963786803163386512633689935833992541907361960202062527457397897577205449712493913476472256110343816074639155636936789573178409163098505342684951269713199380336187738659500772667920734554930064876446493234049464745157610556574219228651177203874881232720016644477423402134623249304924628126559926800318847093907489165269628607976377519778749419131139265321671862726734219526972181653966869680169650946161372251023403808161611425070156048925212210089029525422538211372136320310277887892297684445701838775155859758709501704913220846701179780896747693011569086238276187388788966261183494812108271565214263963690114759528271851528386107018587073241097167902690140868734413827472371183987640604020815060807790406227641928799061044628149755713735675109418147759884206894391015179706682051760129801279674366035035128072124583050912290601628757843053167338732586509426961834207450057985540005352932620562954712179586348718198202226666093983848946205729821189010957781194942465397835220584684475342831412221486721668927362042659297565155794253252903782562361041349153985974364017696049132587151252868601304068094445074972795709679087667007237175439842609583065821536012694815297067828591846213903135790706336347029786216065392901529621536733926794756734909525179072098134233672300456390264027067980439847948405113215103516040492183446696604711917014075668799050396063951093668306024019903077492869661659069099212904205787493768730409149729389598338232580461697658169849543637747652281643529591112110887057425640431002221367085680553469499059303780681991154456187432744917866047718742982083709158808318189486011650768905388876396599539799195592549863172635822776137749577942345396376100487217679588690980699225953096755818284420474428776406828514073597865287888649505955100641425877419360399766594100137242094808308353132701266479163412443999405648162762957248261915592248677621167712577639397137069323121467463100658328106487803556771333045641145318581925709472210291436914308019463104502770847381639863726765849052583555916891524334857803993598196146142303412141316560361198374922828276703090742250124902492034911902648666496301858479239479530019641737992262385643132823473703893371063842146731575566364929153385990797676157982172390766390602779089271609930328835635727945047355524196461119367355197794523243437749032089361782772097474118132917702446257849825002309367987777766348535519849050834451575223207010152148899004397373718077408459102609084468317715092536520098007014022654088547611670560130536702652871502726254349366961330893156812521362229073921081484042983885627349839575399591301277659221484249429036451832080654522764304490346804375454245518417502959273085173089703987757407773258705169362730623919415115665196941302968059815969222940717615310797065184671166591578204323207459916116230278176625345242883581570836822413310541192221547814823642415000054402045448318708059231792006204446070486144793714155062253954361397762410058069586939841825452991550904814531793240612156032388304281461692010702787025659483488340892424572501729774860033277993923677260915211440529879994792225970744047800296487582379387241323355577713092498416062124494668385138546523187651430980187843359068346778365387904629649770296516014251910805500793205680299270768319383118858805385658004249320916476477505634528452981882724079865312811940704060113908599164577559323730080648631057887063980349093163894498142709571154769141003611494250944537408884943173244775315026438402753958135907417674540256415314403815912897194786949467054030235916799876639861236342281687371612078794428598725495022522420210562500367078655181820170362762801221884541011887642203511099213921696196305408371061343286931496364143986403220692257635085885211650629391964491476091225736375856876747589215301058302611463540648038022561789924351542742501311658118947520495054866034714915668920380688658107652902252097594412153569520977824034586505114014523274152957691567155130503162062289943277188835778310574148227228126938970053387813488654271720694743111308400533495795869620625284900297401372672417391449138198813854247970003802647901170707552311912309649554150689324093711168261068668384785174636991783826784391523626090884347633979715619423455653583069884189553974487991433470470476933109778482909296806223660097560992356988577827263878769831110477750623382192926363538195676209286202784700626321138840190355610056981392868498158892327320039261162193746391089595896889661303154992808967168275595414016496287088031635136753490753402261897849792422122022995315518904916968918928784455483954402257529515724964024836952926663545752128185874739899475594595932417153028474783134327603339397179540683552159725647249578869703848781902968250365511129142640471374411046469630140000652449730089965816241641510149913314844553286158969164121983148252089789701782736004990652751347711119250862763809402884507012637280854638228478629777638069355673543578524730856703490957129410021870218926528408672339738837230610583808270017613779446838973280310858132380487964659528393468400295625992011105523019290461400891667067617824723420965161545277992284472455371054434291054581945819484230549930340408372530753804692382632733288355675811731711908267302123794832338527760397885118128497175730684746028693136569856502712886771516723814457780055835333424948037822019693991149888785366163286706454121142604436949659920645104573864427329206497736597555174636719032394634813848776765833881940783913478209047554830414583291031292259445357634524284507598565192894260997373276589386656017100623104707929497093296638079872713592437598387983276505072960644510416897952128714081087578577064062527243290090719919829245870266263152334941391575844375304951627023681685633246826202048373258614969560863856967641214089247332491828286076931062186022855297071866536805718612139715443762467484772015861965994959022069430364393273946514940873391875447513812767477761349859960471508502216399219593386534295605562008998750668823412634988217894844532489343989214814626118408305055823065826268150035414108346982246000661177346390239123517039452122191665782733306088777516664492357663084223972265515118409290483993118140918457372265389713194258427507392300295581358964802758055702442528920220790449606494809549391324013664867965630606275279633023661863297194444594687490810159233247475226597836143174371631917901513957483946415855673122395402115756103331199509721498958580467200033250138605830764630712412434116144301669202682825090380086061939181719406209527875350781090875817736951040406398140108751188537661236092894926963998357582986801154617357203062923204498939318480865341017862446101658438232493827280417740829379145251118941703254049819292267410206922396865147441898579123937478232215342058773420665532195769145249470827542867661026133906757170638316139097786980571402281674553995125564470020420553645690562570233345319626372017554423970115648178873962747784933801364859095284195878000914941829497526525473156924545490880235884627727372058837856129918280854207873100863220744617676830882986451750488193446488394522973993807886448948963780400865118120280411333921304397395912092402296243134666119393101468274386223820904265393397702063472752289451956343674363251685852786414710824241818707510690103385939267079778101859430110150007377167699833411509150794813836112640089203384775739822121884829557480553232129192706028032620680999158115939105953185453173507812021621583235250206862795115529039932220649193299509957734242130027405057488229719554822399753245899988367730879446859118942430830768508751033066035454158825889424830424772385337216481365609520803958775322433125137952066793760587848212567035540703493552262199383639203726962483636028142016837876442672353953254318579580036675021179223683557267822882504068788705431294690566671606175732577555346527394023483609434620154670323751222028643735886541719876104544305378741640269423380688540303417053672079346066508159566556419186056548162042935686218247570949934009782907500420249629081556936061416824089790232668355351499294157032436586115792479043319612219122951653569603645525581035787745263433496936417210317085476429085420651379892755870004175521719209828212301512783132004056847639035549219466141466758201373484915626220929977791862736802855630651040507063170860528830053430575673515979006603700187049734439913501560513304196167776416042458190536921865351712401895558550107952677754487472338592113497644436871241664641397723876206552409888773056374322072879010104270735689581696207355076580104828255741003449944855286891649132836383285814488492639103422889382934943453267842718199702340577667026988838368400430363536501298942117830214609377084357915609753344679589957943332584579455739545476463102410527573606527385170841107772410323794934992661042401037132492229926557851884406905048307478112658667502711460188896705015483843216403257462572924292915189261068038401930776206851739436601758762669803629481723855343058827126061756245004209300571965007237832484823210923696903435937212398266642089050329677912652632707020211472860081501825857799862255875025758925783115039392174542621396372621072328127247293955080261501149985274998157743713144001266831594152073060048008611550560961844484682908052024686307906471988801413471979195166510752746081637572106448285813267736094864869409167214609300352290426280952444709647699307518132517237320317064251448659617278606123504644116851462717092604032884347036875510446663357169071823073171014263512822147515579877297307301399034832469122255565774175119295924963540288899283386979042263223254877149728754567449557414811950963573608334142724628284689708540007979197330361874862633351715900704380218046118320961328850597992199191296889071655782807997820696720191751177632105311934367236638698773419661556628167125557258614714787579747500064353614965846181150818738055187785363653205162636638520293489187082780820643999713416362055303424119568831234978845935694630104248630720307121584817605159905471405266602056174852973552816256824299229271370432062112516039386071954099117135798567466273426775586561414737160762267235162412122478658337598827349025864201478749893806030916142317644256457192395616477323371048665150866720605586700280491967474906651334679902194256130397634923731502936995361017570968945795605181435335514622272649183392037550271110344692744463463822017601841667522092603795444401261146659732768222659721105899621165663152634366492044742027699189857867147834716611977612827935517996720737595652827925286301338100225059922667729058406303973659300393285654084074812087383727035515126300081757216846377092906426649247304507275406818407964034882982763756573955000910785095366827804891446304490524323721790811178453177236016718614203376823682113017449539511736769563629126421466790575364065552363999028426650475961970148333728905060003219458445929636114145788421454974219812202615516068184193812945853026242084212877188450489395479169685474227765941742043750448438026895249408325492919649466767116582338222429864938775390722422325421189790875403380021274665576910566168620071179748186453881024511736985113868106789258375946147175966755009026057008957870323803723541305654010879508647660020917594567133374089675543940349166786394908157126386102628020893205158226916523892055026410278031744014383555649878500027929896843681125157140593737813541247354043802864194087534810195140447947673722891952765797515941867213712484130256452163137105114092358799560883763678142570976702135660393964318684486087791018944486674689362475217025352747227791772946442805678594235073506153554501695349962201200275200055246211023613808025745721028994857797099210089233029411468814017991317275998158882015392783987471424701592798308843326653735659550713927160435007740470833820216805623769163681973714033878562635655664583786551907406167973465238585475493921703388850583637489153958121999309722591632325652468118053158666039385407998516730605476462311399980584668935299325237412087458742330709512877348882520589541441746881073879455282930082917718671420566526942795138148709086064977545267475464613305762885289889321279388343701049512423007141888603754311199825394866430543437931230113836899763397513732316262283983985604290730605696410638883079871066736503520238213844429389341872160588464348431146949935483983481408321807164314579985918500574787089742038925620650117317961700870282830087321884579642383522726911642953075722863424856812324378087233044633388062616804981952352682178913751798072845817410138006092179353967658434582710482765061610646486992953628049357053865041705503384502292599436021737908193788827820414002344765032028959045097925484994180472068024662205786520130655398298859223129348276743369263846801207751081932846997375250003246371440246534639286558764933317405765491482851009473190992375781000413876893654664396815057624299097587551719212627282024564811878110214422725892309149265607460317067389256908999681942462905682377442556612619178205860671330324334783127682883218524328013166005759534248260364197145011778661712383919816518136465667794702254300000405149343015141299398584225321693229896656708316408348045021780170014959009761251126993644821915532856833311115185755588102219842671044135904721241657954179797286193141968831135237399131823787476738234303399461883511042565449939511584417535815416138031089937499942820384544886995238880816456011743690758617850946276002560075887395657819591422893613842952962052317240691770643170513846763279467034119909848176398226815387797139821369959947544989675900364525013537930316330775440027920523734734696591420059449652148032333008151821362865407013049612813687730734051371726197999937853507466468066966343673594076776884783439948191050197462080219710714214019467889348833006902350394460248363024583068145439496088388866436025698537008458878786913552035567833932755732930059742311741118570792382100748359221885753337354144408089252946281659829239493368901465614598576087012230725813028481367008943015991395393620306254908669141684189105708778427221194371817061960779760068721987264048032187872732913829108878710172148406004837425534453817080032253030888247013536725985272998744509504228964523116416499932675348390673704231363344823691348386870816301321685674170076589677708864967222472325680844742717652005510406390114887224335127032430734011798575621511242265807317242046067497875854779636912507452050501775513893756483241751749128040233623106958334822599726729317729406859145954714461268924337476090254418173197765281372300191699832733909598962942477876421058797947008885700058316414186949378663360173145035292123786958513655417058587088045573746367378597278457816692143068568480972931174509725967130044377942696217887274204678360981826622271913589040541906388265318199479895722136376893333224076931161600470754652235205777153659427890024755205503785759686908528369541098674098708280974757169581579994268304948061054185468725394343127695311851886564026717528907257448154437865628913708179769875746046979262759711752199384689440564073174497152461430045347202410446908827895752854052198336365385828249114815991160361661792145054072788964725449616536327178255994319991274338283380118036057196092208193225887529002010025448020170011454090640237714185673846736615839930133782832053296636586856999632522317584875939800856499110049534469465079528293965643489358048228241720663219011983948703323494388513290501406827739482044045836322064726026420588035168084589619613989980612110249757066534540763610364820317560312847548467373945973517726434661078371631669789330738913533207104086906819658226480437169919703927341047591148335484282344344497045937676628828351038036245116309758752378289936697508752793065000473623511709297360142526574075893904827283272157687070567580680027999135512262989485526788299142893780739537456022940044581316236255406968581504028867397035542217570737141631617768103754359221665939248541527043518098477591663689388746224514438241628099453367477194308736876676840103524490330719024139924097042803314851324892167738273551196122966839276186887294658387078783984906591537361340472371709468654549997256759867969841549381974965949923862475339116169494154636986718283338957659795860816985491459342067579800965897320305029187188555961202777775482387908824032629804017166162301244609607103318943728863980461163522244550831640032179471041430825011667665567529106322244171786334081631106303616680786295222614531207299576126356347995024235416191420682535385463883217367873706049083775610521177655346873124468507730052617533839468974430705142390667882399044581160194459272113214513798952901573410603489440244622456404974421774035046750632115763949146525139137647456393100765537744037092545560973248552690032755137682686708533612252168385717050375299994292034269582111843904179138434411257845433266098738899665690565401702943277320471719561017207730234814231168772026455016845417839807778848591986685318453031267456922324033046605011060000136262019115913746227474251130802482446440634123744775368797495505498283879600588896168477865964396520889712338812694525096816005997386209884986203033442990474035535558391140457636562111693327922338553428004388880752924568866525816775668871531979433312862687551211187926834670037401315103461094911125090632176079382104298234935840814460328915429216743892475656874810541135881133598144763831245935607058854741124427167071872133426927945616079361826487314995258105782967509901932661534994025880477054050252734417527422190991234708483638907551028860021964580110436685778594649414517940802507001277173236297559995142648215429616289905186841650276683428895385863057451452744807986565251440906561950067347464744386107418736868997866217050877931552209705530894319147923124920052395080054374119850535842295539334684104473624456744285322046948179493194113765489873839338078380446512720745142648941774865120169797878580142667461071647510765588304363524008324019476898291347705928251583518571653106101668022885058122394114517614595728055701839700171775584147282798886205717569871323004599109557395578614068421297928399517747716180453398211908328849952216708093296938074806578452310613712629807438068814939740164059300660421564576408552650299298299254128315310872931896232968399440704222577362707657546312608143687291216103338346729390303411944801448668555154079834518931462027988596900829171541148703913645878760999310031210523369015922389187919694296280735745910517545584782505724696109477604971911319237674136038289681047891876003092617912716420041630110786087525059448464404927131579607113671167175367134938068871953589139500278154030646466754138781390481326414704890790908507139797933316102478569305108406948775068892916495154555985869843992053566055990735178554054566602444581085836440109516131638504062163521264049754864171494078765479313942940828440136082721454836307999070387046801846584014926483156964034559879275565511257472458425536099935686337842932359928016411184909549138952366410855991026893308313553821656822059639025400090229268947941710423689862451644100473206036766931510412161072297203869121545859505857499864913742264611745187642072133518684991689809016592594428481304043377387897806174250992979916108224311378825439321956929405644846747578198842950911020018065449851111764366207000371730293904793241486128264818848480718816878544224700152636710030452912331278829818280312472424763902533770058349833402520624237183359291426714918020034116800740852168265326345601450292246745090171428578522470828567995495487592988586454986684955156984909540525795481382766269470706870712573688542311575847113048363479695800476893233395593142707773195896427787799565349500110109563819124342549302761949431523649804413319617026928637567541844281064376340582165353791431543974874273118885866857198307053156702862727736863343624984850839521757241399204037762079977489746437065183205009721880671728029244835687162713878316596218151988656452690603650311184668827043046924553128967490810761241876999155496554404290900852179376215527921763388654013175027702574972171031847012727498113040691147426267491838783143628697006707160664206346809622730596559040963167334732760699420427791823987781634560141355766233675354302421706454952164437077997005991747838706677887016708399707425871771096183094020274416195191328463160556233018277723111961761410082626585547599362530924693012302649223523710314357410236045183072429196317084953572464046837910134484909644466122593497257314220033886015415553495966689770955041097325997244146662031667891449681067256313343213998209346080704632623382955125140079450836635149741993106064949847427557533079086217338508362265986169983093956227079439727845381163712337429524508021539993257687151343976423159249727673474867373308322107669359008461099632176376248998869840986052966741974186138258550907311599934470862385774576578074486701216385724319539333319874495795315967931466542140454533318822790629276391008770932317323362807227150205496192354343960664131706438118841016550404294762217977866415931067856635686140231551843063067010270100900131996903337177698193116184998800024929918105567728755384874107311055263660753425395763453050661869897382684647690731351889219848891000517993895547726827425062327934468414182435320065114136614922374748708155956767308951452105460527630860391381998035270334319686751465323854566612922387348130945258795045139070651999367782251555951182335582454555200855513896722995675390230435997950935763532207187650855762981196415436278636186035635474072003733278722723476808071450443983143680950059617788095938727053250129287932746487041109529819688293498853107748547707919594479837938657531028618989667385583388530284666912617018330761020071573139852397659304425344970669761640813755161084623539653019634178654936086029645778391298044675914749644324628593647306199006567935472768916931459687007878865679224695669053517151695147783841856806021807540827979476356905397177163294255374291432848342793113579279197653807064830208816464785953800919878981640919806658120213681820194485964901003668586025487611701161868980965429002901338018128775585058920681747035009564073248517684343753637936954833813535250477053131855290421140246123412222483518039659395873923098782072304331896646920668794435534054850825007154804211023647685874601859777215407266157221561178438660289978671597092626471882029343525198132266339656089844086321553335444028013410341865313193924373940847565315672473524770851891642355260931100460882718055571369017104176461197913157516941959139864071704933889631592812690833878734062040859211725209812225427083144558152461621494549760060673769778532757604195264691814377957519141247486409234012405030107325035206134576719968298086046898098411045251630351640501914825102772162055398540151475373343965579080517985388224519205739960883861559626430398832653491064678178867752143991094742344134425775385216719368971558663484058716638227559184484812273964137388531462944358004920324326577252302093372419449652311662291410828211889595671470467942428135628010615652108374363270055388618370471030569585399879078607279669509079864689865668929170970727583085954082328757402746399662299447115548574706805068933625216153472032265402262911613049704308439331826271589577113590721112184093609819773271470622328547349895881959368765702321240930933055488037665866576071923786347085001819690812914509518810074695732892817033793026371763490971825547785201765981570717902368727751517040246086485711631511979078670376551795241413706801670430389504625232577788127599465184746745104443892829477957343627042362974031657818159977839255525684005453970059597577695045770700040524975126386392628050855345052660506452809374490115382484450409141885485106014283268886049204801228800861327946577109854798779546227956031453763554625200990815520863415735127504252962030115953727944914119030378649208495966127958990445658338394010687042734652727085275932765511611206831509116919804304058630757072203336420807244037056506622694116163085319104813221426128288753938878622604591995527100362367842612847332506890776548658123992936950942840382152955786386430708630889007957522338719358153066971407511235615363325031646459872309850728744583828381278626531357323585999033201123565213677443816283200473553141263656285479636701939944120719064710040497464297781932025313128146631201808103706453596415862353925685580769158705055729975886270016017927901595210165317932875572961139627181352483891937363445528518060723440423846536406183528118996027790636758819929123557304624470652073634225359176639810987593264780239299569660300465131841563883613733309260520762019172466412755795188192002978782763422796280002526840547060784879251797346023997554018864723248863289132820904520108016938203981164086815551033927566012223847082244365038550591914730282299624453258214293825102696669897058225924826618851049998610251320591138577141557301310002070335816296613415185226578005962081829699617153997345288026660868720616897682492832676482802096505645824751917441518535865506390424242398516754892603846399608255201528424183610769086826914283227302118411951210844555523443089510805097483180810500747171656672237248473916461784193794047705825423744472236790652014399957142407572373453303159177931065163147991117627970755901494580234654618902462643438155279450974643407180278506940831058700158433010427642773336534215077473239335759516292929516916510834309503033049488957208366824306523823569316543309328624847877573278640637091732895429396057030715789216567923171091983710514487505942668655108706274767596020148138814518845198546610409663211427047172019032203514515083518790810047793460242913253969367673125444639596556067808201137421982285520921604898789260772217096331510136813352303636288140800604686404285300167639323914879226217711438528543387372459723261382749620716613002921660737864871653200420215123945363592628473990514822560779279132048341145935345718485559715207578293155075928219082498999451316901683539045063737848876263146281894343917985269499758586411695662669265685056286411718356226896703106418098807753734211915782521700157350154882061930990901651912211556716364965264839562540951022255021417803272230011481366856434315883293651299009381011881478971233363500695128142750483842663198700365755758477833635682924546068286308574102919856598218851277082208104893598481124193777649627945052292041155027762160759964836459503013390572739205933258709813158871936410961520320671470578765243319053850731629442970843714680265120628482259857025298986908225113093280841494216974804371318693671898500303610003599277550073957159358747044090303854227256004385463814403450693740686754852603379160565519795353666972970541167031682209336261181843796705137987049467621358473367786075149589725116659216334113594532411058586400251938761254508106587551994559628659318078814855936023127755249712757053099227136613655511305114674011093750907123354765684908306998316428484048200019097080907196435165921919519386584001940914179196473580955824946477803402182667383477212288360512325873887431763720072280582123265800532981703703979924454167603618776586270046379203708154379560722538382687558391756095155944221009912259436659162717562191146150379798607532846850031689507507274740929508294217162301471429495993997908599662035256982137333009072253066849897941920995808099916181695873769422253173313832687852884670065307564816747032739227578664946945846948954627991676596307654291225227150605578357646690322873502252856304119583019357113734614565565290363191644804336166114861968647194319422800916161504477197606660339804285188955472714884150163131279141325626997632767984933419418660761946101904468897092319490684363587513583127811638326563283588114436261257615041531890397955658316387458294882997790046165585725601840513943649594036514014092746862096969521662112440465042765223238167122864882195085906269248869480594196726848489382759763326629045556785654982678337881286760118464482381386104421256191211327022646487914001742668870090015733777106509035098414797690271614481728181091005818215881394574720465066094427917440378879177528434166406400329348678881919843371363665694154465297540500864807898443568078130709472696822974352338123217882940770526501738977641147667230242096409111173961590925358504294261907196563304981772774683095879848418448973939065425016927990625577002230985882234193170565545735670880619861887804070010795184598612561158617092733000145257056159831635580214078460436368797470193689632221195946941325153475463450831589089144589372034321880829964844363165256731335608219674594516267117945513327002922113168314061835058065973774887958067130610600460173664180904881263857506409821305023636659683494205747000130785654693650916701488138586747208830489550482258343994522746713686965360299462430713594064591153751583692273241447491785371284366890300268452551553994354371413009612901907614703155931622011507145838659627249339817926079615923517647617868396046996999962516745044234328337747951905488672359033125808626291873378587907321587666595096819905205630231531444504213892896700450177595546723234413512745907366151660456665939494608721056689875146693195058970522018305189705559159465288854732422896918096817657274422056209524004919849604725029850817011083120649675334838182092544357382636421350947807224592532390767971083649417404873163009400788476998911987119169288837047649552312092892200140779035527566216492663492237808246865706363263982150984372168848059583144374033999990833500097529683226277074797058217146603217555133476710503915537518055570017133735279913150773684766022897908903564131363037190479401637626366104028137688719749618989564603238277627857175385402221739931680751670359291495405120073196270533920674332858307187315288146741533063495754367251218729603394243030248084109361992881140063433014188263959637607442238006035669757890728391947142377617013985981550948623367597153046671444926869119017862171822500638152915315393996856415223499424353333349409131351627348296849304555812639660040070177301019451981596486334517949288726572391793088141275472134515382360640796051906267147258949691714090133342787890988010828752181860964020906912217792913024344115111591920720522705642089846305988558673549136281950185043773863747551081554946300225669471409668702205609910160179507996267436985969087418113200895104117049528338981504589499238899628855091318873200076566594043901701018535190728726815047333561706587969214236440153769164935297105423386466429587311360867113607710948209058832491357436811659667325577555876988319501492252424567671343831601668420154059180913055802556583324482058439763929983765591350932632537611580700345763002463519957330177372399591447346462684200554449670284580118773305091530821852215479323820996145612447554358874467520164683577365888156243947745910710397835937563336011391828655450952563813337545028050535760720131981717610818702058347974946778222196473427879832024269431810470582464392216103927919887536821508197294409302355813936197334720034238229949237561595395286568502454830663883141491108816605996579087776219132507479067871361064035404063906051299995151565078749222900642517869365420047326650266004301287363030298241695946058674510207275064912865726304959036257335401232261092539166517985657972890210420973006363323492203119817730480031928546559725469363880482952778760458666427589307244587930823403901812349296551118085873943196136257230752522580508438759074680100559592443462839414788616712706214038321939953639710176086845912335724103293722509356889526216062816004754684845960228497560242652347999354303809621163798890797117510881090105150462033502967119956948450591140615843390537492524208756421973011485209466894910383723586068443729315811045944326801558131862774218329139045296516730541747467671755525630163693713259881107793421934664964838147907134248669538180280036111262751350628090153187144629427589954183304056235746058010175288394512673537155151532304874114687030016004999910478068114478706495007249743754226320600812957175574354320776009622617915061703002866818566754332691678539860006600805844747805784961206123719165855916163240425843437461658130951716547117929499276611130678534595023696235616286988685744583513883308432603160865577026320141527940459352966747831403418953097171270571585428164850283972542737339362833633530798603310984936923200444305912049129171622995188418842468598902588406728736278057524282217399025886557396921167015196278345422883650101209427766759401593166689095873987153087705682620896929286213784178476444288681680403787813726367554641276061014618301677556839081555579810036004113584029763186131428238137860475044563072585244161257157556684517902501041704512319281222367674885500496608353979915851461340304726347385784615703330594482231533630577108820113201612902376819817504672387990415947727872889352910165441509997949035081424543128843320531080640504140382282263037013692289874396838214061147750683519625916637067369494987980013019455102611372293862650172911077067189615762351983805349843891728192527953841580648391360224182255564898547562441247851269222605029742777084422098642898321274670061551472095498572988904743244126626471539822075488467292621740164270727295768690167702073546986563207716907116742501172173444280239782438346885672931993412713460589325761857338818808389054072969730168498241748646988162775357142462474981963352508177515260172963133853939975339945113179443626664837434789543680124335467521861443120064120803091080049827562284192650055960384288150313358649931486277943269755336833212013800139947417209614956186238321271095028537131561532224445151963929688582699040392089489420338198216109705232657605421407183730924894848362249027091915515253624654782202931318422136469334296224842485939462124401089077684768836203465878888817401433122562124621484691226285588993540733534144849261323951758553981715840768500968917395375654492014975771460740197573195541596480432155740863769202201074880249356857306498875365883667829781809227151684482478875226211297433660094089883571840915884887620764391149968392280265135969671511920165640139029998335908767866207510037568432970182742575315159448853773495068122269097326512797796876011927767835444802908266218776143065053410908559020607532984077670274664982664736500042090276547187880732560268986351370293579469750845740584483356891331914778244972831366844014627392405276688918565085347884772599742559772609197144332617157838044753530121080255866778427613396069216224151186091218224988655979447255974525442163712793380830963148961238068711728780129432603183039531837783536828840437537404103516469510192632403099634250142303130454264473051147565058038551780801292363274477029332037169197179919244530749537932571591409880496772320810237088875199992788705953213342221419851094782815302540465168714616340009716691457412618076179642915578743711381913889082975965217748925905242254550422976371059346210886349257479428826826323613663196581220554507633524532528706736500174923768240513464936977104287541574531822037344994740900092624110278121329598764859951125748319214822977001747085239746585527477142301844571610998622214217322326747776406377735904826228860718982440952787249097940539062175936700782030737599240627037271327517051850080788751973531215268131158154656661804051799349229621967742831739095938024470500636293292905525882947415683822958559447150285547531728264394056709037510233873776815000286057751118120273035062105208545551571799571393353243260907658401291012064656959834265395346593078166411160059388718502694131694968857040685953168663728333563818320577342270908692104522174863290675161198655054136338912919735048460098796842879582069403657743258527710423816137290609792164236031575233552262862767567820046871999493146010774137344200253876755417785341977184772845783150455305439951266886961068265003701567122760202401510057830771480771644599796060201606353994575195932635624439370107406967579369848415116749601837498507112796688477886576570749389484329093061668925313324066921736639496433658699177434195447012861165552516997017843017922452192410868002886856157139671989128975413837644022666141951883010446158871405103541303993360572848441197932545584197515499969997991065469829200096921927185433139356657889072490087465212003437933123525574103624527796354091564125008281746560531705795327301456513977334241656657178777853620120401308746508432570306589998657166683946736895562863783141716125770088104023216719103280141717717357099749465735370480649375985374672714965286601651046846464172104639376794474769688021366066566382647843555836635181515973977465681012560354891489987633042526051583197309551858272667457988566412132291854969051650612258387145863724187605421775793667947368526200936520793605113694384881817433042747733452016760097421694079876248700527471615670108853089873137459668950149131738065520144629547253741435394907810694030931967222046783585518325203068308484576603874897434725512233975585731404451257386773386032329810401205697823762830922575513199769327126066057748421705570179304724169605730252031038859505279504814286460820301164554193240009047641850955631530530468235146128686495807630183645984370026954957333746670401304581924671223703349782837999735735944695387422964642842978918773317713382559992884253105336302472650473126844400333173648601102521393383875550020849856083905822324415746342438866214894622976738214498650836081315876071777597679354949928096386454249334705741597728801934281301597951827421473985553930060777533902900677751863695421921110485189919424645115272849207274291621597119601178079129788122874109551886943610829686145700436958160000483844754053385698559667886864193841169911101377424241731099619955305501142124853152406831735869858499853519589655524707053662600878729851405424708151603132187010202895315355583235765388582508051268527916836347514741357425214258571091038865174100247540493592601728473017197052384971020054065729756129164029876996301450009103949030519569237166307075292428752591707972229031356324761454873358212439372344887939340609862358623885507878365268848102960517328161289241344058003292799727166381512451239681079021504926259631719655384949732236380239764956377522552416150422446904532002381907196399248948089483429143458573986415590296069595468092128660570153736067300635711278749964703733581461735392495761363678514602233574816826087757770340356295556325753972209901809206708902736296969893965019803813626786133364807219971104718395564370051090187863230149474984283452343003843926021197919997335938716774648735536121778022770157661788792978937985201147671634985672126006899366360050490953951018795551462399147674194925214725978083467826529053512822157217886634383217301550233455528966559006595669979219891675849913223309702421911925243512684772344792612503565497324642074805925322449674519053316011098314783330743550034559449325264811544336595331819703846311616427643618581051576043399581560214746322579414181203408753499993637538856092530334009467249522729963730391370380034206422470807441502588990625982223381093760376843190440899846990549743670866061559468043781731234717230990089280494548560391521846315277048945253433868142771917949258634773043139319637229542599729342142450258834780760520475232645634350170426267912242046803391250719443991173797085691453191016853196284319298613020543288162321045754032710607182743147506788368667413645426220866218127356270359105533284856525833984920094746043920347884796709520503585795206251230428869106836150400758111435536212343543825358242341411146372872715174709189179139289427059225887894655665653820483447222237883638650794756006208407100104014760229058624722277254051723093363344122493856570290951301207707224769108324038379491779698605673786681011177903345976597481177278815620842778748584063594159686677889391277774026384785611353185335454593236684486716967430680986699048732705105651872952888634670982851034540154197106649523894462362892756914658167701808220410282329742646884416410149282932958302645300001062968849490938696223743441624751819932981617405671686518963576214610644840775863568041920212389110689116568388093630511370094901001943773937702078699358173319502308003810070825499330622921664006816315211204056361309633180619823404304862285678246156111811838550745208077075665820742788690426472144712085954873256821360225920454622928369328871854519447971615427088999638994151228634647646304168322568443352713506093775113679202077471378383470026708063623977515837737381959088870164839854999551086337452958348217526019093240791443650704794441834615298481832731200147916725059667985684755540836032529650088890425260163224315406004081714116218837476160516378262709476277205134569763989327302206493974021272817471640016396056836304899955712621443906614006754084360149156701571585989482657138660753663553840754324519884075666157836997081420052299260521267000711048667894115249279693170290409555623684139471370281181639311758516274923951513313898940915628669187276577060699032928218508839829872868994661532099315770791830774269088139934977290014141675864505864486009608476282479065945561588587611521759448365073915492040912702921147310010240824599817788842320821992263683139907927775111715126893145528340815490721079237212224071775554203459274038296381316577601577146447159433366243252993657296860284573533598714845587454269267685345140692341515781514709449371339674606154415920962556856984536258987265514403576520114404702900615350070746900109794409692344310906319733979189034228597361599890905626047979804800566896376752415037743321618538276017516449439144761546040931268182481177899890921335202247679510047274784509569672078053332439330003260280109151402803763707870456098342846087963358249836650613483033208859817426431941662161319853227707625638345228087992512701049906144053991893720001639002812003025876506001676534035427649449555996195960985426050256063470683984404595196212408188898980172891432773126987050374232640206736458645395211277360313899729308232198937592742251741191933545127250769610859976289855606870920737462345248090480020042792899099477788303509596535062126474999195682033130898091185281060733115178663762362820625706339883485992627085566450851744130961879041543915157356524113302291290437464505122192745773330161437006460815659984039655740281103711734755968344801405995907209984755426226761407636794291008200522259158920086805495467605908229724808856438745926622394556718508038922432660358541176737600549017995783673540051211592395804952529015896739368323562601855412579200547821524251353423877169667678365502565401331673879219724839176740626911401604240803953213096129335497410107582896060490237383389736534498541535359967693415440570841081842217256212949466103771928557929171953972676761842705937217174601008476000415972658991969602307735276435151863583251191026788622733946836923405462529171965976167414335927921502752794765088198286334973317101269096285673553164030738580858132810448521408617360833385974798798589077380513094180694034987437023776275532372734666412312428237271301103853228567334935185968652427601154550962293404740479519365623344324373493675963356700812783046671054757884780943131716787475834629120944035464914724914764505682637241739756008714966232706715597690415234242365650091284594453671784834841847671598098439140466209368372218629630451615852035587085824241223325657875519227625398716841319268807979865832723127162366947914648293237047485614351017619074863669832019481725384618560271562435906455223994493165761376019447941870599583474742822377132419446789890334759990920446086047564564869394265281505708121895377246106533717105024027278796892562557102990768735269326196474567914553464282636035598798956553499855999919661241194599235179792990505173591429719033207214123403136592492840109670490795087641552082879553769746458061151440679448075713752042778241138350885906168353110964113800580349099287268406504424736088567638912912453608832824397230230072863955693225829040840798200777289775893433215913254553036454046843627216300674004953288251879219809430206795614303123232321562780663751768443910813065078561722459941486538536052306445128585858772980149634704545219721675743032586128906419040510294375219783048621059582277461972969840476521374290737089066365696216006138706575741939910186528654738394545872781410784470478504068908786636884026746385013082666107058811938926286588192064170946206303324674335705998290216542942992536227543209338651824439987999010900274237454176387247018879543312169610543555248945439361710984929387268940742762256187958892455056352530978706211866150339483970379261829176376100149322262816311825742288229922347950084545872931950559297531953609487780667590377067561592505349178310205994133579945378871722682335717577475771429382210614075148340857753443953911760620024709742747504243229565066921771038244081281328174738702639380686168148446841983263654048908186408234503119714277584279641894008986327789546205172645949709741310319837019260885135966750560324707431706507417893266122116507350899949811825941878602567618406995100130057987123314179247857695625527939498650473299789822109674231201815189485757136216404051184830923722784123252420797843908752667565643614527299269927274720835064063945310894168274157628181739086578874967372880965863012516597404649846502522065294051268345109173681763147742418289167028257918646839072883424815385388961701710284264223813011597656317583686987793257363519891035895888557603030234986804451869776793248016128163943169666369440305057310817546436320902219365777619360854110643288972817393462135067444781118524034862312225955758038992458336345685498379960619871241658437202949448277503023717565938569112511393117527004411508725302175290647193828257573506336846046723803809172676119437442640802265050514671670886840663426513210679615037300542689431466067849986304156283705302585753221161783901943851838889744756658138080730898631497838817963520460878684659504335003959906310354936552349469398334456053666128527938284291783269325798973709814034505731256700659863890646022414941418765081733022474930163160211628269075778727490462735603940263368051804642151030424858186100891669458055878610391050970999500538945740434380393365749784368228364230022197747662735421314698307739058298425507171432561289186922505792339300056374134182808968240733746113532230444307681874442028214675311374702730296860602616863740773638808632278183904732927430929231683136939786888825492711204844334023180739972610062999149320755896806936154349567271708534405194494243976871388337047803942791566443870665313784231368155798650121534332297453916529547336209021695213560604655653909885585028301414027808408207026522948177688767090075998923993078519573117521708840425917861066429580795994293433834293179894388036496368349559475603303545185181807875018039743596944810731772222189615154791752235476831810250326427914228185710053077993783919675118173758929577437736753586503136129276336283941078191126958981848346516843842603472648486053801408112756685061979886374413612569661131229371962958837295810053536296970939287255098885555812940003570625562185173692913944347308346776554978546972074470516364912645855697152624941982387439965388546769401863603425524596738584496575127484861771617506712608254104090918710210820696913237662634302895967266020884832431763044171348914511696015309845123958392862272273199597419451395214692701906133704885785277890615423029907613437112766605997284942669394261963695947677725456327471171891532988744175748945252656273508703384057507441037200506536353456620249570772267293753695769899607713412050412257052956279093066243440093812043471730454289900389353606471400668185724501136164380966133791815326510889569947265563379833596280050161001696847787543598794811620114613182848108133852923241485991640635110657228392402457845916588039493713017111308810072487079892154114330720996633215384614485305356998727148356192628256297470779638405084563284999226057398976784242222889752648476251839546545763459621139363966997390035965855835848187095358793823997703151032821545085907102586115309025097918516450627613702117795447295804172980395310479101169264908701590798446645496628706366251481666603233593268120446619591672668154151901710959351563154710176687534138587130963977527775167807652935522143943528839320100899185025654644579345398197259782548386439990693988264047928012701304782979660937264457017274222749380940298623076704311200708874691834686302515483195927324054664486899436764304181565425124222974932992198971910216813932580756639774203799109091699759662042864560892183577469333449219186298958205573475467615157000178447872842978768685320381553810521661981935337830816029172223758294275933436761638322771584688378952909100692553357623387976975860715891098340443369548022076781325743097161514834294572424693547895924715294867763210150164472291959558408476870474248073709381874005591607357451798471995695294447878120418984281948819653200429486102111214431263806758717547778127732295763090752743111701067375683967523702322056459481308253915919502979275952270557256730759574355710045106935326638846720978577828400955517398192576414468284070262948321190533393235903898331458444330793216197123560863771445722116115717257978118973734270402255142042813403121246246231049629065941574793702741161859289948725756140832371844972775419053775576885235653668913041718723738047878042235214935187646525009597071271306750186019292299169845758247959001803295673833068359074697000489783780230496720866289343985434374607430880734063320596201980802332016006056777009325668561246681064070401744520932773297157368447568120146188962804294811650547842237943769785264826432308846195921093345650544095886547975169538986179319258702022751247055268407169188488301712749265660362295214786279053514149000794102058810176643803092834921878127668642173626481357519400376813200143539192338134120182852932785894340756603855225601158410356899945603473158947022837658437183149404482835947224687305695138286848026876979249278034257019425829959785920180511107565575411499489311648561103467074944267541974934706360961561931447752361771653243903788142379104083307341156642371262821486624042016763522175207761930453141351594166625280808321303533015997187066134683977579708359624208250643533970417542405100489966810907824039346495911369109580603662839946474429536244035804188592299181833172366123596311478044836169873773524204290603879565064323901895192750577698459691672811261198071775085888036281050907006659246510112409164483668965668011615176508520434585320525533524654450458497123819097601975611039186789506846028786445630850885643139553127462713692350526782776118187147517353793486134079792202024491282690242451230141742522727180985987988052389893150532307689903634071787111999009372272588998153092989000219173576780020397307538901608602719157751074391236726859189936752955308395766691967165363909204011856115393998305190795652308429536198736220921458705360829360233073082444342534151615843072899288959312482073183377543264770761824372708500218484644908537227734414829060822278532954394047654734968711506997595663137856240517712450638185744070956965094436124507872195636984284252566537865226173934923055881548255368081759139551817278680883383107257530443659701828647604332376645417377022872286024819688888171021536235281834657207570705440410375695989837616302758558499984475795832024190641727383314147175626975417036669331799525319380977810331830059621141954118937446952775391608449157292797338765943773171322706887754248518394966764095729406567401421384071053226202934988138499470594855405494677873337041724503146393287943123657210243026374173778190147911966907814503746933489856938248097664000083769205238024489987408515826470798418430936123925250125529728958471546976656889776945918522137425077328832632700337996701478493272376735626129502419489788049468077666409527285480502248704758295726542086616107161279329001453107286858847893559669436448077456687884384408822935325449063827019414324172873917693740502660331230141325277443297860662212701060978665405268048365678058267276049891220561182673843871175491217113454967454015840336593653438901570617602047348237642081753725218083242099014454606687682266109604838968757141861785483679949463787170982001694613285617544990238813364398853459404342574854726213648029331546043483981731445357990239764195928556719170498596399823061916324220345761770644844978903520429438138872217158530541511857953795584032667791949544925717597592641811766366206752693440751978795844245764682567744605705494192252370093669649631270987835601491243968011309125670178168155536257209691199241768292408750730382755949534704581246629092737080466677441566895356844193392403825519795898581150127244533529061807514566014356834168284140512301468742004591085641453681987968572619529539547500725566866695655619502509810712711923176835045178185964512094261863186549156906989443944531878418284001392773209444167136312398647265887811884075039207726397821270038456667948730414464811153893904256849492623820381761490643873212475653249402784665514058128415300225909549947660653964154780023184368300098411426891277802832217144880008216727581266033866843020660537219895350650345513668908807123294667610157796276485576066157872865564900213892547112401998564952214924723356047599152260673469144215506316639031784833386354091384616919071614203886823645435290004193250494056822274822199537893371957259547934868408465172544600473140485739720779986283183344300615296784984827691248924726766257165032215997500528800801965610606580570853580018781972687823092035772192765699484066979416424744460199063502316251690613216101313077117482396687185570673593401701931180726578435357094047661097185886891327141079140526808605265040919422077387570297635944062269915301688042472284402039750957079832696264316580128005283311322957927472557037682517066335015290406549907870396076327908196142041690369435312707760673105727407277386446196069844989971209996652175330058519130164915533613827822021761272724065918083335526056591981272314430908316922453023314207864003067847256679813933868461212980205059617104037802825041580208423390366565324656508267692319934683024600763562869873346702364156098426681601115641876325290077880365708940003075768592272117060007566184289309801381174845316026569472198747329842985713107716659829121040143807814910848076851754188224566557229550687776041412583569802485416581565226078792464636503396816595741632088037852295074518336750337827661448895044902383651864364576378605034101427743136512693146578753924799904439623933783970333440718574931690126728855419939890429708739856081811396560348129868854327159440553288009271909422545323991293253940078010208747978285473266706669428723158792064140588570696473264055761639203393560020699734097215008918866211509427983246528214520902978604653054252981099097832113285923361911305095390057237982447310413692229679299217699454821935876375148130196743769607907363491802258496526161828259796476785540708772639119783127277187123345000904733961899128504458865020035456186280831464573404219918369340454107919878572026987453734370846850860989621845310760161863095072513933217473208583339880308158367885855557629967358312913069897255761211575003840880143572733243695223585801956606489840136748488641000731065212412446079302953633032016458722378844187376734413432080567019056061046643638028985114928350129613430027212605917636636648339097332057020806455437107366576763196804430133593880654883362290349647795071512470062611143532414109871956916810209228227085866482950393398315655496367552816207861160306834713356640675184265890502546903865512124254089401910223859637482508749501051603259905533382687990514092598483866467547555090220550767319352194432017200644415911055680288183078930184707573164306478648246927752926803070031230444803278614876123375692462394721236832499151937867284830247984466111022023395647192955598543864998422581670445222298576544702586600305150194743812964142434416125751799377857970195307266434436180826488629458663732251757330110474296099329052224406203063680175071955738471361469778757984521234216968635103968062380647633629766199157396587994495281229946793780237972467641458449868203643682347996337880594961447091194463506912657026546997588908767040745434186879858914275115081079033130065969321739300720103058065930978066360828408593941850097566832841503803097476963802927556618958995344500248858256566651998263185350031391929217792633450560205486760807966825602847879502006203492447232332039957977129074992209851757754846795523337591615917608876222534033522728157897534017654540975255824024958446238903677802128776589002451493943061142420607285163595236436389953002178894773298155842036927873581546400644508600225072405595806464004853762055931342976953304169448196454676154584341315610258912174247813533658357790641793699357094956306748178697983335281173408546622954586731870796151807289297725686203190337583446482453686465766826930666483210705734160352808527102985355467599968400426249509994988203708437307342605090878772244051800476101672062819540234554571147723926689412599603707104536778919414920944271619016714449431587053248424060906936821523679719960369095189346575227094302555543646586376729435416844575465886845733230972032858215029300528249880389665413296697505371781957096900856615480558465184523888345900911233092420992282395093090383760713594693050301452757208300117989656631213943985167326002642116926308928301058677620624120902791952293397711994856857581927634372209990718075932541094925531973851287981772192549168860458461306771003175349563398661547922390693506768341366423625334903192515699099157311168802893601878924611764619425836122905908080718951042592661465996590557420787346303963423055300267290873695014384829937719126307930000054205939052564837199729269082884843503381013383680351902120177879515431610740215434698805454729922643408382113180709991777294902384595568159029830488253659688280780565908307095904216970918885862978808227242337478648424042319296905742035341721571246306138525012279420934320364138044893113043138658967542736142031934786321505919131634696430322312988599990759719357989239552061991316417775415229905920294373214614469854909008816795579168860455320652285989054826111835687055325233708078303082486768958297030894768415632251158078348650930081979658588445238282717904430484345018147296640540179158682112459719849048170538098734914072534428321694449412691354300468397751456373917908767839367595518767531397173127979856715884566274557252533046051208321151917159717625379506567590512001099787077266586363317523799682067625859336576495763691963644364903625301748964570190908250991693623618231705403687288256143473388684005951748218764267264287879122324475512197702103459412832393362875393663300230631289607097704283185619977023252216946217039602253455033916239914835629985590310016607130480251879353660359231622305779500276346556985799901264215259232241336443450041627275688256474114024644962387563961756013941670688463217957375487970571144706504266392401273642237598519539486711634001322012361180531753450322972134944850884988946447897385657218219210250461392505382162565516967668359718740426868356935236660295099426123950616441852986420935652279222637497475115105154906923321926504397980308307058721898503378886156120154945797340668717959116710252365034728159860939018530795696454177467514756404652260413267656527137979809991968121441178218742356920889810424616747322516476167143422668392645848071869609506825736961773012594276429455954587376028553419314104912096570936942615242208464889072017221252460418462597033871085828247064384639457165866309533628931406454379620426429939318662439724073679631330834772093292682368576430102469141766062653869808623124781328553550702707591535842553297580456671918238807653775531443593683721796545973697945006942613841379762260097846860375153302612963787441996499143511745562030164982486876642516534663994414006425349442276707146611251889044493534895918750628221503369186416496882457942409872906089896089306246254026555029548990343749105892300625963902026863249923454581213476013945087179614404461105778079046609294671970708357406578879010102727213685744331066248890753723821842746490162414383869016514969696035715596815506821649235620865680490818794158796443719990211461960502070262887621812430511031359047128156067404213052884213576431064658514152878365083890817300398578138142853409615126662273845877535777737122231944699227213821923356073334221935924172616867461441823767237080389373211721561910611388868433910790592991535280406167516409403677677628585028360916828834726687862825833629281397342022465363403709116694414665426440057189268741046973730315235669963061978834225065063979427341758528507783667947685250987056135777961244099881488618669260225979463132731653990708715165882815023714258134244012151622884141393133927528139985928265101554061413077115478136448299456853467615038980442474732409166460905859725183037084326556443055731788599503762942732298360177788192087292849685684445884070559546901556430563311762166530596603295815938622010657237736370820784377840400877381879305924512168785051703377545101283564198181813246667266327397382149646652360209947487504105690727238108769673788262970758515086825871362072135558245376521142810447956905403598375567749729189838038765555481611984040849049494598340846699861757714034611073490251336085324172419560264818840407952212265157546539977586972470640095677696380659663561635397360186518522402680123347092399408752680566006424617310335084969814593573273143247362559222276557599083609021039457543823692270993978840637051389188494822861846017961869374064879984246173383770716685295653312030046885707789170379002693147758541979524441191273700870738951489753997623096189190516970803399525947569283843824886871090021140473278931165771911817385941100655124559128805617713787589406964742262114308085522067219430737015498228589563625497537502628013273500069135908921924227894859013843014721050648238411707220821559286960843754983690734157124610774870581421618241909578157266429381885019152407346617916282342114312963158207800746694012619679813668253308818076718582165891176171433688759402553536706378056652043233048753436194017790160165393170682719154488377812077388929767595384689352992701414331038237169918860606045159479077727290834544363671453899811708220413525158679732716349987418371334080678413902004172831837235390770028272532199627141996046613689051337935507492207215715048552585315418115630454069671108683422107585240946252294073341313826471225670892221124678605778195053551054887721133002435772892287483857700481354416286481563177491731940679977915257299082078012530029567001191266746634509754741547676354003098006168501433429842015959387202674152351652568038949546532758312601164032571233303812344298247103843249942183509162794980501096258062360395048050211254612227217473326395944629377892120272721059122302288576777172534101078665021715064943858452698165907201591172275596143734444402465770438978418756355923533739043119068294158692958467003283956496059610125372200723005924175683325082498062150724410039870517813829187606870272078839579827593908052173851881152392770848728867718148280508438993430537042968867348525565206789406184859110329421412619428511860467701633634884348415423917541389450062873765412303189403723409725915583051174613244925081565945244331865337841569682342582798031946434615500754775369849780820800813466464828858203271073931141927576352289918122630454959426026518980852060774451180499781305738093768630974077368635702950848588708391043853147915463515883687733110503100265193278111164885925334843370119986302269205698656296828801176775820415135498398075567658573073468902096742694238012819199916552266706576414485878137541092679045059597961877226178595201298832057935375059744414186191663773502386870089847511722308387398853679657260228064537297676660272199391486253320475249589417939690048660534718095286392827403018959062069266970636099800949734761361362908415390194422332976676705270738481207406016732032844391438412873229105539228895303544792981581168037530135520308074058689487684426377144433504666977948072446059233995352335414259339749563191304592171760721629168118342756687891451321212277016547645574743949563964493975639972917814056036258346530290646018432083850728720075732202107684072105518634247990529847254241407938992734998480149487044139078114339008840818644640673594714111808833164679465977513446169005671548433735522054401963334922546587733690976517621565813556339069023778180661510189896032924034236094579252323184402508332616129601956171866630461152727207866206118370605902127779334467381601214624179976451698252482872452182704795984298926155565659559804286659048473837344298286604207667915692234121531010249977845916800493155936047919697114362772399381722291476803321997479991093076695599578416435918135116114984572933929016012222788469780564757920089799273562394829343680106226089990715753461349146637902393516445963210457676465123370732917087288571850761188440582974913800756549369627325664404781015823042648370789626835754081016860421281598053662011865056730981788426113185505708528937979266134710154315641409477017701396850462446029655410319145299297400014350777468376543152555910133014668675000044678073126086864782516013077861331535887105294645115984949443666701924179641713583217926321420857975221010932591273763444822642552476913825286443195215297476428798259717862085572422207959158521781686234894055254150596843483738271984475511151063808383867148995786063668429499489669347055728846435993111842794707408923767968940861492328710291665669697052239382352884892017286802500428616157248274363848571768389216286122576565659521544205169145770829741491457059513396601396564479990322251999242717815650517862151666277223076951682809628547475098937964311282490134564141721211424205806983653987009980029797329616556194935350558448230068958013897838824905997504379809314724094626186129974539152305350718771759317054084849837787260895795770478732262489740715913839788992265439743278030120933890528949324207417369408971791865445867247156972690139559386863737476236046777949558656496959649010179803240641298648196244360736635750157890995479984620184416293363779714171166156442156009542564482759168717973061616379507577379373362577709525587559023510442182826212520851702546363748842460020415482829071496010552966506611219284609875682134149396284984463272716382026867101746480653004697707197832558843827364730309645199497274290784996371419926524683070304258041538966495808320426973875890658951765363146999754547431353571852189775131233546201099510997379950430514199465384487665971761116984495259105333356714211717991100486494402197177103663267925150484673288834431001255416019148024043879375214476624016105301679051495958641215477136039689550803803884016001416433613197968760344389526724677465382875204418106350665928332820543819213707344119576645016739478623931771670234780823394728730544453216591924813672298160032333265672019315145845667608666593800693343416807201004534160619814238000279151744258172372973056820253875172620642216012219936741867784406852611014775782631205067092827990478796905318185390135985185663137512579634499587451623819498576624706720610949225581362515721481088528800879946278448201734335629953707630161542804927963314992865237755683380041267413431362211729195960607502316098148049050092783447697118050269921703940276325682087737614318867533924817731157655597869196165114281972328768408260982677680677969840774994280879846689351245530446800992601673984814380864046343530103601989001941474559776867145599417618881899756196872606076033828234813063713757669965123707376752637542950638866079806653270546693963754144953153277952683162285133130002725737372733456920171589395398170112978483954535095626530387349356750395166089107357477859295870569865898310024371961404172295854223666791961685683682078567868798322998139949645476026449682160409609831758344149477749425096287696665391848988829122267969939362404780388309203535098916605723152457456080026827965951721666136684442292287073345785396929877892662519042001968749661456272199219310085422061581639177879889015545639524951667779177773939509799224970978478700753591551484401620377126146856934496312237230122195271718218024319450180478316493113853857603456449016994780299636644986891334896274550134370160310455113230127025227580244586757695165360759548727038139657184369277477657466700701441005984593240440938429395593847707921649591640660934330698361585863124854173081917801589370410689004147569507922145822149176503117132860400142566898963603791164133393630673030631759043004217689300132291567921241574779813868667606483690620099633601663879987401974577651972707606184012774483606720737166941916783808746323819505925952760666109113505490781686592018725919110849048232792510262336377965615085598473747434655767506392161285921545953216818764948565574792926952581127308749208643398429254723886038483035483115744187769308274539817118719752623508514113112689893246542907787852650332963238894179892683671484847474823133360939004563401069895738289377271661165508008801292370814709649481018103209126191297842994437531659204695197843161047983689959659035295509133741949325632838589311296064723259877113007170034828485715825968583075825977521477827889597375147320646981170085280040412930183556690710253462329606863166173320224097209870672058298251743749639790921712548353142328166845970164014904585705964168203783365359100614871612074146631491492878322941750834981438762566565089216379271548770662330233399125569314382670476461741964788205741860083642301391246139272471312847389028112313007896924494971214469973437271773364140019219189493284024172114303048855861473944466177080656078650040101979312097858957379541788803064192648281605063679608871675011703398364480522268457506060756346457586210532114941408401817613207555021822746166185755576097734078871726782865231825267894882462654575810586849815262236941580184564799646731608569979303780958117237928432454530261166432003941226688090906202983530841395234569135872068903860437322639525445312762698101799486288810512936020493061623884927364080166716729129339023987802424298041121462245741515208592740539830007444173198137380017932180446198926924241450347956513175649929393355421318846009621224832590601549184115141640913602375460123258989718574351956919803030097125778114794124275028320590065752850986017326197101776081830589822113536322139605561269584096522080108907359668416541001777719763714778069210940910606828007148522395958911665268437622165847862305176268983978846611459764614238347613925445502020243156011371391620736843596757346270611750406331038420543559162765225610695531464053762984304637106232107317011332690914648674815434769860779956299762460107436462320695577957154638708450172556355429669334747208913064896551075470400629608395221669011981489328514845333843389898759325353615738343510622027908656817917037671889029424046602708214051626252859611736291718121695729382777956514230858651834830930115971126425816942821393128093942558874144732954194058847030049806511506166197270848768753139591550340570180101988620771364663863225263298705266426026056877527905093445242797027723203866653911403999091803102949782501552458016115453191070858530346828612334091083470366284854353365052388401521157231013047198055679743856198150669794680988333854818280166741099913562403222022223079812211898810352860130256591206555807292093025210865162416718239190666474802569817350628401333078992685610143610377065048767483868294471837785537449197885878578179958518677811900836528830162702200572556062878732166087956434832065184914448508163300333058769076378858100719352551006593478782606353044192544237522749760128861913669541531473693646967301076562985553826041287768361543176171768624929945412302468836884448835043888915013443080443246488173535875653239500523031357248183005039462555673105516136964464157365617337622824398105791082376998320590256432141869273770196982440246208219739753934009452198743253001286345766157037823832710352607275597662577984647154534883465027515119448612803617254886227050331730676112286492609926481748147001609274152615682143140055293564393833340298819984923170817886650282440965344548739604986894462929888541266198875208391757386127244189352431036702038719974549474047236880942648147385932879244486717213278486564135440988805665228411183284996321640234718313764647658265217321345416622808197707807933703179936536872968444032318149902157012885330387828749247088519298430468957237995704352527793007880280956670584171366001960177694866330043752085334038993850350944183925170352281148198212802564280584398383561633677473985778396036780894546868892230032692014487984642371561599883026763103750843045958683404267639622097287676423033617724702234547196841516271966465180278679808368921010125505814648515825390146872507214066010825292724047068658672681948078056298187457079611653853557252822998674783432330793193954671811184014520319233243027352840944530337056508832032589282155790719190698243864854852603957636566267767199018590088056964806360166668568163225019902569348377257596423963010253036696948020191526211844270477602683770428382582795230512483712228274536447139569527476378489583847670090105792670846769894990189162766837224651806873662990460616131517801157377178872708510886205433330039350331132206526847893593266988840903180722201452442546852630681484719998663987517841192971447011695736721942514892841488215707275244182181825352295974065286595651473200341566403565110033371610290691635286239252115221649842548519703923882789776625487755319716122976997805385708963025487939134410130010461933099330493396482990533204862292394863322553111877191954851270350994789810215409270255181141450645849708794015912742031385443057508513347319100551236472889639881540050928693984751961142754088020258645752195720125126683379930115280941542778216355640802225535488071419558237118037765840690451337407607472602559808082914328509710417310590247874641295745150586832797873784089188890651328168598773571872266004725392471987147175789266663791763635714548405340133709622183002579632018038826238963149376397715707934872122187178108390497044227509685175507927764671843821658318326346033152768922437210081256542470257064290315835408407813891626069780157861845330317607242598718784381917997689676277675646419896437503186444446095816599363908831751898363961507651857664358245616424334447583409873136551331679376468995722740724006756732832410876279679455104255323851119999029256528282020910298348232716164603006673330114713029690702752316169431005451020237783004680711203407440498269752458084337452817726784144962072527743448663714833599639701570938941055426914244699919733166955415432683070463767567009474001084798265597781206013026673064921363618625482466786751022672012016599187919152654258765326588389620803504148889495678310876047868645591870128854797403970680460473272200434517281765395087515502392152984204894367819025129537213069213438400576630564507328091137320667293723113274618188030245073295708351428212132976729753061972766357696652179852112489368457747132974588934503719455942325525531842689994948794062130283139725607359292381803872707632917426451189567961692710400111537770740526384007923480414936608632611764012528598658461605508906944668020328634215761421955475993336882971830438805154749640624715227564489988898098994929595567356713608002673393876695356967331563148330714965757784199136849500521301123557915830799469541105796136757847173018918446922679607317718007380915457676180741818312798995103260898115811428385125717438371180354646122866712508518093329948162818904150494580394073823249227435839527025446393693713962293735014309880664167409743433015243424092020670423997157131588574353966826066625544902971236282211258763628844833092485645587142097980427986676473445965809999720912809031412686592981532697330515992724866960959593069764973062023173709000583388239686742543595686414780237420587679065923222273712685167474643162468912894921583266123733394407269770691026280170237488830161662387612472078367215035512517889733823768875594310069742757696237807326837638145987818446864459774819171959019688354637497256066350106674688395944078564563750843869378777916022622150468765897106153313696720232001770420289414693823156472522782732527447213964952017494531632823148316604881792666112592314810644396720918221916635985329380100116474825987703716096377345279324901231790895650079744538549244349124273005409497172347074367735106946353475393845696131476823640793399928378069890534254030569701825341178294717897474962400810906744597443951919704661929485653528665821698608874722293293360182565141942523704880105159099534544593282799100483325448347905766454977754062950293904229515535857988007658831186734405146153477326189847894692700311969671928195809883211867626011178192160061983978789199861054558576798158656257114961195996044057745027855556876152147049730634588439334184656687003468204664474151149369689571964204232667074715800979680885041489655466988617276195206907556091497931705314982691225858223116005798433945779048086029467632663865491553854411992214842527931478162897774816571474368922186176209560685074955708933844331690838318889931226031412147589354136968055518601070586856584838349414039831040120994838375859639555885318393832155315420893228771879261180031819795881933189962423972219154585444826748775664763948342580915267318834413969808086257581213890314962659197861833849592487814314234144747809087596746275623553266007646336355257369732557859239796745168910192533192390971488385486498232002757363073848156552457632913924508369866736388634316423528049410117084176955128423037575812241607868009820598060992765375281596638158200197376553092465996670696680537289917723744026730275452982781416848454700965573013043915790775998350270724822377348609601683278807877514906531325734101000544789806695238240495987470674591536790064273724083780873135859372311460136942677092790773112897561016202881601012014739452730639757188260232072050611281228595255552842990564836102397824650511362907236975283426676754105260439598416870785993516434165830457449416650492761518550542343160427455562916431270064352402540308257302780876017855502582606193563565409970450413104680874714061495607510786475864660889464787725703257108602146591327202012130810176358557246975644830947407759481569843668973540748886909614164240642614433692935694663043654520995839443249380396608897012756794960861254677588418893340086757473159402227198924680764946761609326391732341450908732462417789183416434834554706868308869690103956383844785452087673885408371914570592894312322372424899274804661059437602324323167134239343863712860600186583453734349444751197143333172467009143962618180956670690767331453561942699556134774487668329144565424170417939676328710209613865275171394288717406664145779801887601734983394958229946277936957590521839397295269353742717121091746169042196404261723595225948540999530055954213278922351747278661371721772753243762939080697919396803852705102031451553917487481689686394561873515012756555403412279305442023534431982581573482915306159400650744140801372354426651175668432011859257862417171676835251492133948829367921858068618814077220242285490229484324300400202546337446908228126583452535844555962426367840926453191157814803914798899473687295044058702572752496932897941892210404214998549424577673252989516024682408992539269240734046140830932274728818685041612123414109579481224470851062624656383185144874660069301416732527239164443877426818647471191959619176673185715906040100302162423829535587426910808421013124837500374338409176047740483518975724857066431357662143597678176126325270854471396601731660576236987943043630267507249652729152094457192505328404027694787074434185314795416248499687536831251544113100082432932263067835749411011365382388284874212801153634551054874129652078360725460331994649033993436392299816935254862084512474002253834438253044654439426301287253156618822188936973489382390583463252048731394263610551757467283640898535889935032585439440607208838658385454007462613559102177186441518274107541849934277571027820750731489922483009096847699886315724345378836078858740614466300446769671288990943794983783824874916888309234084264998051987093381400690489357366709249699568058707292906345136870259887059720120340913423632421193288627686152496714144358988338048061174219212139768049225268807727947378832891847990214213911367183677255136418766738286988776482629199858019919860354109800355794689737267519395921393023588949004232851662484940109394130087749642734031293736798198189789135441692544216881833737324035445343955227772870621516458285458465261546691802447478955139419988213767872825606766303548120251821141294465395719648411640294269168581670839364700983487296373773830374435185696673623199595241492518691064988297924918706307299815336610046367497784427206246884486048076631273494291937692771109222244927008064841738563328861291900185545893212115779769006975990770664022243972506534941599879938887466950837062921814551955602895051403990105129114956215056741113194055262663998508717396460418068136671311640500575066341851897092006629599362065309768510830894265329959627261613508094616290695400463886801499365221702363167238782768940082965340161553469707807214878340390416613389980964959599920191895530635637906726634565273756261619890288532258042439901387919489906639777640746640850193754668611514053513555714477115587345925784681732528954009071647001453591243160485617143104461582705543675128015454785598667072184247452035319312420173863021767649328571299585637761082021580619653330441170084235424037594979542354173950652194556698993427293960609853987195955903290565552430722691644232910485610995008892883511772872732692577843140074826488793925158632335673568056574833590163163867170606826481620314943339914065194866895799497941975436065360515608886154610084403109719874808376736793278926944516718045991168770746899047696810724961478824514094138215270743160979495114678016679813998645978642815752209897329087326766094573531362184498693051882527078838650194306637921722032231418046399357701091202491414570223867327936306176862110925122259467785692268618330500742264357180121227935522258229360201086971817210088235865072224913361522408954298377658324021609672115257260309508062911818762853338212882612560652237760841486274793153679570770844600263190103176063910737741088480087358029984218543773931992977135428621759650365705866413831005624806348808822164902071219063677060492858086682454616702219151645872243055015605207483416227159479497627069210879502234272954707248107486772364515284594454111113645390855617161410398422200473336632711408820224471508854553580265627814527634904686552113106456982060214711152185733269924984997808720924283690216790585243277180161191482692888424008079829674175486828739094629580925978623522510284182957982038439137872033383985419765173495938946401682414483583039062377003500393490711833311607298158329011109276022500743507839412035351064814958940394700411967465888542452084322230820494495646381971234446000409231375590426268978051329339108026977973507071608214411380480667062338168802564421121228709832524693772168345599953877866653161831814103356659524658426419398506588473537844485304454663127353553403100818048361054210975022258843420858473653324723300569909017207113570308818588618412601055800058615516210320028346184165114680530404230470392805202729487117750126742741008896544805588539261496717965827630070103838327575702594911410969757874913306667296899123776195644343135607718092741239307228114604646333860645553119131515368809775270212816329534479937551546429534556148691185060181197165460084653388235134865060072967212335959094032237434399423389725282601992434585093217520959442229418767283884067003344637637317523680525560875973875652153620830555905905507571980690319160642439236304978552241149344889396478654373312500055035598681796084308057127289524773150838652780307732930681241884121684459812927807557040750608198951135444767132212176182194894456034409166290276085660326307570092480405158096043424137881349832200466282289636387305802000380594843480331680349536755040794816633887270389948617708539045915036607359150161631491459733840808416232618707767400509187009295071097566091908977278584291768144701442161665962200894903410685093160881677680559144024934019870988216277439407435052338173267369417446834345725904880015609081570045001653224397496237191187633656925465225609994467667169821425528201665814445862218136239106496720870469833416216222108419172885737074990165038424022209794099416241017037117432625944074032476309611801503527621895126903497357386342194793302839305549170636289224661333907960136205202911408532993311470149932494117369525208371837939644268479858067625232158266467974293043656172548758255479600782208207168036834585628147627098846768217012642079909269575974840929601536037474820443008522475010326298344804584220419996076527286302121269558928741836916664271759078395776029374910494510551401394115477774696952770270569859641160021989856140785540577901669639987723250753162079180948410088459220987837855343663638482045049222451989358223552260665040658878644960413332064578172633187683722665652412120542318782123258884338345101464730557785536853757673162414204669215765490199053430892115013011416692162258942856889775589096643076979814249176936642899837773733008687042742272319811222808677217499340015928963284025539685269979120599789399584613265336695268255703185697572037531014824907108466453883760169696282902346862757045334558469471759939869741332169944142888830561918812514346935537331244466864130575104634178546903685590662688624857262937870665874374403474258096622553545493736938482929029278082645361086746660034372460812035523315904592655206889682224729549806215758266321148319416932643356702388733394417747283201829637726075897146442488305779757282821709818898818399268146843343454740835972302562478480098264892279235076658729780207025790391713062079271112214278983826645554193326481918396648222706483258674209343627716440560172001605615194396112713292574204342452184681012283882393001679829938264813381564316118730232732893836978478596881322397049809718655969690301896812985401995021395087249994020458750235463842547133091340810402654632738347762403678198890617659934392819863943572890172107394002173172971477801452536317676885956137909716246190356898557056916424331997310484249166791842024325609859337583207476790391578779632028912827825055622327214453082873323537552250958808065583276102777175781374664467330960012518399428481280831019190110578121879653582939711118591897692641797390676565595052119711299617432530124923293244178009637262633548456059618957147472031766366454484428972101670622294738851651229957519598837069566753088675637083609806445771967557574820530465693499600486017122045678294553096046234578946856068811107077926760357139905826205817648824691833102524912418388230289021214841794880416902918021961654512534339341705001763863185569213018279729227457382737095251447579744312078373256084281614370581803665116530015320092483491814369855020672084090776354108462143371373064584142548065356236454884682225876475204371970105936985660240321131375368381741673447458664317944298975674007249383414081856200446346560483672417950536936449987083187685334207621390687126798441481696321712073703559566634433078336764979224293877891184057782340523573151414723791976697486538872176248874596790725003655444463916158111975836586943416828626589190182310238033109584033551951615865039972546552075017693096641706720329517118138879957454611664800044328781540604740225281751925363541831909240468088994258198674181321691358786780028564291397844652866151967355423533617157925638002173670908034826933390244577611314970354790189411022429304575180009486172029831005361771756283967414896006238107584178411857861791841994887436423063348918486835166540401787089973264127204753442674826759254431409227763639601175081991533083340035355736029667223125179682109111282675339117114065550645701352392738094107224696315844716821052138257747612605810700063729090129939228356915770974835638004346521045053327210955638773384119079839374276952364884245952348683626523666116332532162149485250603590674197824431763549492087866953072747933802481482835382439497178826088031189753749281154279562735207274040395795686838924271352120566705274097369018511401911134861700509617986255820614461839741294752773345199399776063647423088416708034014172365482994503137487403803736264984782478937781210632759968559259501148313673676495583609142885668956991691966862685114777359714143453126688421280487995061564172342270249583354985147518488015220109206734274919360706476902433680391823542764081777708927237384983700158251752848164786909357861876775533025733517064167051448823762549901913022735011136990135041510408587881780170667252165892715470485038902223505657679834093949648944857383421169635307450454883779291101581142112746490668905545711122068994348431767106253429483815794666880245825354632492351717196491715382871686488085387210783776890192247087129544158778675961178647721346709194719829511165941569403211492275434267234247211382324935319539157035496078643144865501118056754053937484469262487049311401977439313876867810496621051598035408393253954399342466112834070603607634717667222813561981108907273988888489303352518299729389818763802857558575040904064705965044292334567865285859770183649173839083236385363626113319581326105641487270303657864338591145138415773160860122111911292583200548831719513078711972792009548481599015199441052646858648707207453425372095523536370563662211299520382017482164135353152280673991041189140609714171732203547756889331820021686811452527298378200718353902481180908443313597973120570346972995162139440354848259325936245055450712241272922234509709412337131234194722205898689031526041018226021574948411255292404147265579961469566567990863826619888651564771419762162449145750630133971167753405384050272202821046489323218160240084173416125264836707070915133916768252698986566304694655274823240851028300620236057530311613306713231021481088174478056544456222830154926439089114685829043364053542011850890766630587435679972758323124344398465763657546286421517663186934627370061254066743591627918206749704641450175589507830254108020700816380720075476925781663594980758511594183358415261294934943410460526784294131536518642110692665350842784944305851497078290880206678542383698084807896064518919840530772742897208556071004561839401846256927046023639416121186413593755546721630991771994249702252493615764590929716014642004996403045952193339890078917128485083971663038295744814948826762883335933942542511745493161677896961258712826485721417387586270029232476091747553849956315788568854552279691224298513526909373561062172164946497225491083973848485839010387495628963067023729523653105209030749390868055749871445416203800385145217264121481795840625253993898965166691263193200136877519712992222260169923074057513866446624933469490770323176826909847120427601555034416688313723838060459781005925908230124433695569367219062063493105295198499628886254305000189962523160738081862535384624059922535734548563846393428101902115636837471254618772878084082417992864090221698493336641378274567387837439051773122145798548737534310495415577580310295574108490655382440758997581905200797514647296419120679012873092055479653612436836689762300818303756690279967782182920361193582677821102245403444242777483581353376625266028580547558309855192915778687470273226728254774045501437991241098296563066499009503706526283230176070847771148025342359395321046859219345737443333177202340899447082336660784644245363279606367017713379443258929387444340758654025876623754862945024633893318198275842495598297304668656822053511399408707773882331675252683142650744190181169404730326670937014932948680708079443469215002972183817398675873390736059830729128397080051062137692511907005645115193605169988723810514603804061301810521769488164897300218206457592667868989553618627628378547933367716382341499753940889097164896561685249574193044827299148685278831929640436579170561271862580175224069966558916610459204439847170960388284119575075200453853464281487332062555039762041123827181492237069535484512921876785831807923765272213020507655774708614362481175800614984203650455197006450030454383240943395452613916000589107487786253534752645281369811358535008401557848535055162478895602012230765985899706734235956835509834261878046154914622909892510161253260087951099646203356613696013778116089863645641493821157268790004379552335953657344306193231796794884422521583914899607422109455979595280472625836518313385737893571280442638621408555303477633518867259611160353542013480978420226931199356631372074046701438953161294322510589746364034550849286818736913374550021808196720595146752424290229163228011924902806206311262497684438365462854344877002895733589582735521141377506010543360743026417652867605016338892264661147856750442428244894270380290179951260897762880171464855124119478232583925164431857406464747472325230260117335553382517678243930982191355964761517367832798527596271774621635114606648483554108232138158817673901886628272053084132124763202617001395760820398696693822199328475545289735921428648692075460333821044258578138902341349801549879435193228294331507932690088135674326688686046348356786174062813505155945512274079817812965587926719494770576004716225218427063276780767685529009258270374557322496821805560160535018974221067931683485047679692379098018770649853126295397430890947463413450592916257100433382087379456136905277387683979843620869010441891116582809135720103812252666718773053849963431520652900781166381654964339546154347799988427387478976311585814405086046341502175439845243514436060658025797481380625992918642389110865286912444412870470413282442339072061435653543195843475287240862962092747197266570513197862078831235920846503091449639420769549308486132174810452917848428979460490380679307274702403247989212301076559205193498631336770893507026272024980006073261578365899936477477284300617906997660137585223386438251459505096055641831147164976122563715537836210296562500119887754710045892412301068701331024234799649957415031535326673613693715120783775272158230411734064300546507361200142345700861144232920399476291948788557825295905904272379544709168262773710741191289840440520507022876839085193731760838719007579986281412962394124581670643738378518244229577562746848034836051678956666188587409469302314865111205985191741715413999510619927179801683236054257570768091210137923312746967583206890058628408847470047388316437140012681356383777823762566504895220890638207113461111025191938069465040933966692641181282044983074944274175693368965964430100803294783682420368292353924547397925670659962659091756899581978087181225576345757052204770411401278224848983678298363362090810358745738999582189265468229802391048156796425527741493507328412763415699340851679708282881717242716740356771220692560797414145162518456363040281187213906944191280544978841837596938882199885266774491446199378333410900017807670066095546754374201304712354249758402227346530015496059666283781344588199025218371816348173167251056384966666021399948817375749944267893652908724258877288308133567547743241009934267633430485687730728640498959747975269908364461658366648488646581940963038378325874133701289556844897128351983000525415789497006966916897570529814290621113060476073843936520332523799822499365653279746949088986325791604676939728012471179841315580178682362846409090746170151249515857818355587405694193882709633957450247355643681410948540246669428741199669883071160067885886113851550559031583574637447274945996108901688580052157335201676840266879487714573442596077752952261035554970048019039039083703079684467059394824194252435864466782237608903275324563601961113679287240279368232461348110094172896896631784445838555709167039399237051862077078818868210649856161154450178237910405364705208617429342763207610955417367165314770400402001506894418233936261388921960382558726195438899052616101508123285702591418186951478449432040637426111062996325400643526620531772873340178350024802867901407940860394953283120562847495640252956924609278548998826548451560141724063293346428256941213004204468842480832572725385626635356614893764266820382985983599589377449930139942512493780771582449443585033241513663737127532674063085073830534807751966854807079383444259257869851876582112123042855753699594938263424419923594193075528445363978499479665718942657012783265853597867218341804643053794010147277083713647837607978801140458950837548054638243123000184125348688554205328915856402417502455096834873958080249571315269756545647327968659355772748283963780803927982784215677538950241108787213665657644557934737601280984910060133991830531078512360921802587922535472388550696363819677978714290793080101672460157921893308782559753430444856660862295446519298325142449971171243632270659389879850960549021324026963425411254607162867125077683606392643426793246299268543945727881368014687659904093047195006023039224260330490150293354104196012682903109157059453806460985174196340446640212829594486384659047567773895985780510803439187735020076247035709075260719910096390312308781031291976320763636814792222189683128965278899890843612138853768575208086578247981765301681955728079563412547116837572674851221038360715760747448241740817620768256910039718983493033763171733439077072059028848187370821730319768650355912773566163050862048117484203278036013977748417410801147875099153576231221618761310484806815449256280343183875756507874518442533732569413184078165518047776227022275945785700577598449817602670245346246985342678445869159275940639795376629132370921455499454798884310955138993264060352560452378317032695432265243942245317000767541732437762739667706918449634966133436098248913639106385947833232649962048871040142815308865605465280803260023172362500997319526274504082357332546462999228559753595027169995808310358523162919056054956211284608025121422922522135430620338083926074581607475461150029899103726330423278199771710044051490606459309398359222778241995438268871375181228822623770690086847785252618339639040824048235558143771932691562744333942391034013156663515081181524043410820523719812774195797466403541484156310574295665295372893323176731354596616939955267231893020247638285661419770799864537360492109383076502529089660433333997982526846365050984258379165415795779926871688897395420151856403606354432849534401378711723143280657710149001870083323649862360223714811481713499048793026454305432786615058767204790726778092015031500201346092581458324729633522414050308993183573838805201917630854630806600304702279717626300972648223641077204791878275449810870738434245928121814942130433729843358894458952944361721390583866511236250552362226801378481861372164531784234693377086278749908413701888425772831777690237063217845533825779222539474354137309170758423658277038223500005110164121854044167188047520313614635722201778534813994060207575508943983272434516385282577960264585272121117230171566552066309735856253123249039516510731806342758046884581806566727856745979089176026307696276870048609396231420326119582432705882192672265962602515354931491842069186895204907255142750835982765331142351462068192799992940194531249759458740487166715869932812382972393634240623316838421386538913717452842569490760857550685521402469182202449522470823302771702149010057165792126312952647409113357732583868874317452519156650117859116012337622035457525527658193518149767344767681790209465599427279165674359741543912509369262887483379167700486081956223257499719707248983957248875045494304028181136145357133795656977427599183096937728880736062659999380722978777375826533572192877342122367106321317379275355512227899085998984969421559722872256888546744088621907623059995295943477360780480102809506482870842568670042541017692886937089254076456498344781350152316413510983894942520707474841778147493631113534772712874311703952524277271334328043454396467983920545488223994429622177493477189202576517078546364806367412290427994278625349786569919864828946832498449836296472193110322061866877777727239969975272528611401801670231105255914147646976744463819269325932914337092913606554719560948250821858141665389453831826257658947626314277116915910365997443298654990847368846586295848966626199403742878479693884427700962276820857164327342014119737004687546737698373965412268785324797908284220349690380876759296715647963873364826436013971406565519518482415129329907143847733236564916614136759451056288249082589231950344358276266010195895920145459839822479761289173564810585258852959747355859170726565572869613828991953720851790855919025894422604542491669416522785443904144926198888153812459492027513200523267101892692620949902364529566425266064419652219838568887868095840322672501964252804034527727008896009483969600089438281806524878183866439720885060907395875164566952514146828516237455173622947954658181708152452702175696237856994484771071211460608444154188624334440727103943747471216934183569453381419587894195892444177111002523692247836284635642355074506961219671130865296605416259725096796100770260456298707620667439093418094847499182904770703210089495382682950351208944832999510617610292627346103125575448590869563833065864054348167418852494503599874629179518297502602505023169914141083663388558539735977288821027156048597890813800175502965929376955256426424477717562612674679655434135763303081190405086367811547785822181469179064473291388276467810051453279729889413715255620556896294618502307960163087706404432761185469060870741008616125549179529862235141584854381546895021351760878193605645433308198257034874304716319900590227843609095394698869940778855706798191410452601821152664400156842348296449234226609447760976181968811195654177082394689139168640698494084575168400522009195213957098582400190157463567120881212382980501920523128203530624419596369180855287346975776306104263384634712358927656378914244530107289817311626166404191624289612043380544931079602596048757054185593776867904743327838960298921512131003284987326908263507992316179980046758293991517737573383349439736757925564550302875666396710108705844069983576185079778859630432267027803205435936135368798981275854033118445672602230900165820528868387804617143398560736727407328989451598622329113432585248138240879805227063562053348126689311452625234873286122522227046352231074890518035297016120375185002741768322022380207310215434310496970991953998457625350578707241637432229599141964317398342574132735940806070988663169092562822251150198196888222413611661030369006251337435869671705128415431315850167119035414555539620372124531324979802974847857811284921040454936015510480031708289259335814123041990817009664089820978984475375421902862734676320069974982193743939493904760827538806762904584031507404009366764443289865224442809986135951216934949397342715511648811402225914399692551931375579413526960461182853038447898978310538078134286790309700810045138482245102841324999424202337540228127251826350057927195730679761798360014456593925273102306628124078006405439586043492915965556068176729936713144531123272278627086930616774727435713255894008201019858564560376821399562541395807148161009325058493771828133615138357436059014528726589261033355355180598166188008306589684126683048354398700804911785528632049206938287204905763993344039222786790853983726510979175739244320958052717328381376839833995312421758167653778906644837066158396404738724465673531561365523213255145767868980816406704948755598980282027654300431442423094845999261875580520769513637172965287912770334865141231384372307261450498126823218573989028843466452893387810076618763573588717475560047995034957107524830675703775372239611956711538003246211173316096957913926253456701753425312708030023342534557991183336151668681473688654361907561203511675144562683108794600415474753422744568307957100207134197025782048895675072879097305081373770757204851187917210693100146216006098296944003554910855176055296792227686577244492114723575479710826328895780666304723336443854597261135002015893527796156598506583218186593846652216590469663798321664402970151970923409072767159494263715095617952790396159041370044642900289376179429193901011276880822930676958893312276003852809419184272390766992697728549974352184268232853708000381122175902919188219089783978677993236049477811271975940730178869155230399660046276401460076759339925655752732765677524016320600077078816462164723071301997266918675669435139370330075007734259083863110581663566671692704587314572351296576299839178258431515723128573759397657790019742729627032705910376707222424644826598943600633945492405242223172018504154409821656020074851225543118791252379987465328144097431300905031362391620069130091116334831181544350268768919355566119561105205614052365086505005459966043618534082717972914739519729482646582455556405600535727959542121187725696664451818241888172196336264620814934738741353264710898558405158478404320361381328958371462990781074084028183424901551827770547004209818705005189940426488900063349166520103438438255802305943195404610042101497705998731705378175204574703553645564369336856736078999742986927235999356792676981540687017770675511262393774835887471859341088188140767066143933359184317017276539180220522014140157296609520266949662363125361011996220524825359586137985978519620401558351687743359946273501759873824258325962974395125817307498689096544168745191138409854598250177265297467058385401319161687358652916288494619487559124900886409458598562714676187492206388463811347967488674951307393492160453063985173247741904738509142102952022106594935221477377622550394443790158226881725814412775062352172942783342937571926100200001859796943377036097681512040443228497855066270959662410325878819388525081877991292280054766304232632021776586563931853588216179088326396104290933985774265223163829816863425001945920422831723660440553866755978710535164279249857482385221053491385943513234371579866356437724621182917389001794443727889658216998482373560923617556786899990403575983177486844927739494401588803565084376026060544066692523782655956620385290985078363717666567696720368481049943535167396560601091777245474525679953020034349952252197539244417930048881133216998292046164574068686961282476927908362886142919337951379323799875824770007924402659730655105764878289317172368536053481556434023939671364510356118647037606451547822704925439627232973156447869387338369982207465729536863322523476983914006390758257953925859677282290241300348034013170398388060448586602321954898100265064474490297185310088736841978604867114735175984060681278472851029163618089326715765944678441903372302762454942915027116922787151533449935153740224383944967021356929751519739996443273248599081594000739091621846650013897406555763860816495024340353564038810760814759393005035874625386280430850044064715879674619271199604880998289157024334947105551655707722783154360452311317919413745690735111539699112437200029085127901082439179374316339576553492615208882997140573787858864361006988393776617299758157320942587574361077011287782444729579385299811353735362102820295935449941592249670463889401376026876046337833366175924679920613110300614949390259756912082570355959104766681889535850915151177729535134480037500114112181496732013560040699626757711560545540697799906676140627387152077873841073052965031113847729521683429663506510499530393741431580525991353477694974297556672402886568801039871800857577941690064916842763029331679804738202029959404098770891768206632726536462003759318873102557982506455475510613937059764420512602180348179582846983087669687537052758277033428464834856235020026278496258312927756214457792817539574221239725179728319459594041679442450349414378322560481625998744506092368940610863978823407658464348124161527698404311727629547837751880921517438103710180310482455107195132343864819438172581966989178323877554993912950157861536786385433769229629542176532220079899074386717488517667820671828409934553401624160229578598651626072064298868366141379541831235586827569660325114153772146655111271727084011050137424918669718648436803080700049912171069248174220206695609288686957068008288455970067705852234173416654488116101948396376653230691962198069308323217139855870983095075296851563971299858255183653744703154429120475391519267033061002732871726742357071625808576013297463517720754605357761055767642046605982569812911873349107139362730895151127792228272644859421211160480783659445291394240404003213332530598919233211357971143209533247767140848781760919681332543721924203041932199027401382452995289652590108592766623663107746258677532673729441349878676972979905883423439656991510265365097344975034000168924258354125539233489786189734757391354700122446886425005655550623087037625014377695360028442578983942298047530599776779408037631509940072848154548897465070633825762092080149062266968432071141573230778100023070039795219715521625640359162418028297935402293954317743821188732868917941071449800916338114259259681003802645852086880567967675198127849517356447542579074265363485221202677762375313558452958356052555427031938662150221644723736035357403370506622423214913857009866560892350809545215312492693547380349359325255761252399580693147186145715270687189053515852081584042164084709283717538235888122018637667107086663184653888477834867687790703890316061051625912271352544788423367934191108066333493141323997854554390145210887253100733817554708891111006039449923092291647176054375164387185789103617528268923768543842622479545784431244060801483563152934529137488961555377799508853511182186830492908516255583268114347183596891311344310718532532669719267126127926605437377554311567361664501505504455543632390769250462585377384942851720050145520233909554574369439826271963896873170932341643188960267526650016034874290135106012576716508547401640402291396729721526422929488699984333424395461292360293372353603478527177902495947517582711377023396474412226445471009827333222041337349005864803149966950054431880451151538449434789647939689357566307411431143928190413245074340312384015569878635053669436156089054090830342985341367855983522967864418236614323039545364418746255718682793892759434787730035071586473309813600412177060559194594226785463611133849423437523081819142571810351985747177651520058274098226772677299886595727070688248854210518502313392694185148132115023452467925287044858053710905145744937240172931690914637710999183926261362082030266742455058235813110153859854309658171219938250132535925713391459239467930014260977515694660333091623964566031243606512389499264545322153365405777098848220671976269629960771239213522742079234254177270709285164803813926452750513120526650930692735669407833611588250137523955148566416090130319183514206659676154722565291085397255745444319472266630735853126295625486549064664989687363667304676640466065913679105716450814691572844177205393283261987448915652952523955358444556883208520463683876191311408525473647690019163409882595083979042508373143668538061206566405180339686902453192999020448648879564559011998830466048349689894121493464553827924182641952910821487509816595585441363380015298571158814045376577952346820049317622516288962981916075501416598070876367890418177271476801797070835752975288170242228101660655259652828395552068860725460747465124173961163009165322154165990510123816223239456061390687565843494729865274151293115704106178814887285030794769264797256105965577601510330454615726870015871589842712491566671735432339163760258577651257754754327943631309972462941920304427271121508803219863378172956569942410621630405628581252025107483455490754709157148852385828493859271146162518199539713573551820020664148399704762537240884475438863029921163643643691678858299345691594906004612564493250714293774667152385713502453695764636836058996204676039942871805458130129150346056791403701514708497465221345410233279972991804599145779822296858389988733081199840080872951284635331148876392919109292402383358570699328652264315494908718739039749196799637415663554227825814772484086113950969376611584459069508401763884747680165643222257255218225209467250852043548978685274094943796319830682436923965222458937563103904602656067383492468810557349980172564302226110031354233966839155177645457551296367036653534020144957741770757237516699781214786447490270283246435542038979075978980523782472410153857893508364187565308842661231142323858448814884799089950792377481426255418930687320640751763435215446303844375216274264631010522678346585805683171018515644934174968055616155225697187666248249085051368133119420935112713918164851394459092437099015047639795200089336282876318685777487634740212885065097339869422861859395633936769078196483703120586352687390535759590213688007028146502279740502421940491813198245118084060587277320773301345479146256889735538049463162376447990367095759306965201194262685824097262787954109009918691255584239876461369213518829828059033011117494178055314014273723641023257339811355694308610479422704880885566936417455854886313818918852524424386991929376017045309842824800868388816486715194065674536470766095611789324608983621520846002416338239969998290935125245832054090786383930459559376113187867255348248978404201816440687743287741021424492949780548332985023164327547578795987614543655873264666904117094188041367433774546863129180780889826315292763065745862015117441982631280864625860731546061951447456235342867114973370516810667452631004744377085213237297342743196774433775890984188878329127039963545838222268505683099473684389472408978610155106987510229179975515432919219362008932260477444045452259335575514120147015542249518598596855698054660908520508645335943399936292074627554279503510782066557896669048988579460478789657098927611611932156067431678409479100422821938126955023953645150759704784162577836800682318724368126528496268164201422025337935053840970143566680087063528274520882460408275069582639548390560381044929087868541637305406763676817587981934333835460213325041377866270019475195044052010142049519697313886523780098994097714624109735152197616051131286141332927982286015450998681131312749378193091518898261032004334676062937648645730436431054424012590940476567082979712052403186884424750093033547115015922186731359010538632776232504935025342474417407210234597781271955887109048047384595438629452449533408365728415452690660182993591064615649596809701439862861143163671016502175325515188526698230464755678294464483704521109954731096827415648710525767360162561340355854656844486412164095195348099749643469450795192120120521305802555853377430386651466019113124095366012413256408783981663636072793715222229484723345953056433868374185686617763123525806429059668262875865459039497978819675591862934496503337641819334043204869783952416744132091186673082209568718135521978528469504850351917541441732889343244206690735256294454957049136871742545836141117763068717675395613301714585481707654313696099016780124206949154658712308414838354728026000082285958211313192646309544317629288572633663852065466708713505173139212324801318195548205771010816866551914276756467610102572744533143537517087070586814644027817539762024992591829882090788302779702293140687382195212112683809826930541335780415991464337333772884926909410760196846790456058356655167908440200081588788407850465205990849033970484886216831355310387646021750079349103107379942735601907637869695755063789908291278018039277711589755070425693560142395861406149263086795373804094481404445444624819140864095936970821000202740301676667727020701717981880747573751036700667449471161990931886498992994824619251444968124296851413709185426096957462343022672034988977425811578893408947011167794648747648335075237568709171907264651618951854708786004578416508874312635646810208198487075534279028810009769474422825464273176226154294591218563484614874012365376577924173119899751114960002764318037491021270808872174439268993539612195392572311158319363163050930966894348509952512808414920332915796527678640322517493436995922649924936354367700364627054247547489462593789346493119387810716433407406425188781823605783227637353063743336503086971194133190741470063639869322364821407338935502038463887123609826989971573319600528001774589163963856522110197193477142673069756358411557647483956746123001057931022196557838916354860594284762213225370059504544373259028935280448547714399990761683301292247822208248485498018384883224642043983368907394375463302862037850834902754609264435861307959359276237729753557205897778020704486250184034272068432142892348799665595705431638299377580945388022344661943810856817784122914115893322155024355875348540291173952181217053890583814029464244600774404388647560625294407578471182023909152755526153641837121045830404376503313311599117626284306524045270441473596020838151538792633015051492273056648285763610412062526011768484308667281603739141961320631968995011398666484907091794641009787556975133297577204010171222090143575916019031972129508747403123535985314467496227052293150176579988449175762616369341162166418495771984000042665296458761030975606410904329150783657911452296443368488864082109628643172653073527668357704877524872124969682021177167670216605894897533151542262025521806019733590944441480333777802128392705238527130121648179712115078397785347345294449173664566181221927884170676511335499794040096207938080326833364428666402776516594863408244895896747428248282046463906582306347216274769433930602630782704226619477939374875235095257001066885480716862180152935478148308984450174288474047058002014048391411680363293301054152750106294463194043267063015683476752657039964417369570545434566920099728270323980619928822492448581331822967752249688283632675370750713509764845413864750061486279254201563004231967882950963851217670806019078620173021557005353178083542868107161125427107907757066263973466779856089853666525301474204652627333892839573658167912054427936462526428108630541564510245682036225851271277610960823311045861888051014168932656636987074392454454723204665324593339155916971564247133162244550887870549248322908917313422932286389243398498584705699176474449472672883770556595659550797489190850846112764632006756728352100931254008536839812172045152571183596598469439911683162386612882808483017554393926470601791638858796491041781694503122182739252159831175535240962277187583336819739231195614535497370405952153542041403566519950500756536526237289077621337191535631786445756023366942411189681357334618558217420386194848340993387036507826732450481459672869526516800288927813641138845870542178993171698133605152417309796412549383397836670555736041330880893947461109841525484253209062509233674827386153078380244049058987147934219664725695228766784446218777553942422796867673626558226771075747413354906774738502832820112396799243788396202177995254324546131373590899855460580069396461877147324918188717501369957038640352060244738935087168395535761341345540347673737732166527405333009708052045711441762515345484101045374386008600161855866990998294079273630380712193506122241023000716799955785735372652262188122496828835211964879080203167608427338123587642843969731164657992466048822216308289152411034159704114571264625964000187177125595615513374153815704392040304107641188418391371881522343898823134230797761400627495288374708263265339174864651776724437961397308131760225149478631169327444858929203543300644159164280431414745965456454936200852817035666797794828223167254170984115400846004284071162391699439655645764737348796492057789339173477069906108904676901306848156865499728170672143790952898320408086806008772606042627850026665506508177904341110417689851669554360285698428456760075009584273856515269500767333338053958667989945799133955557591216228074054828466758251364342005064839468299083482772856590122830128300844087264022654698824279688590484965339508952969834080162309670078158635447342828342829910335895825237216202798873989192804125536833754941613105472454081487587637619843845403503592993987500545423282701277033527550638935207608163511008625167288378298905491721981101860537800700660699348970781398716078759267306747391105070635218975646274524864320142428230732337567977472296215440397031218458560732568517346650382071332140430703901878449825093803831372087919416782102712183320732643083646453464030024178267349419025119181599159855441375364618801847347761324778980362388246747409821187466287956481970378257562854940202726006156277952281573970577508461348110976414625524141350762085235066067471115467057490920893184955919848185339835031122230912513789428543183495873628339710382941405248653578673301560808190011613728904062463266010439087318218498550582833307302654633569025296970165731358453145120834855442969955410802582203123533406507825939188221821016377644746180541752905478132476940201426804697233288398078759033555377060838260710058687977767751570990323420976743280384977123931052289122972963845865796160923516294287428212049537083370194641771630700033647091521409442573998239407284539467654579978968356433745928185471344279307067340229497519896389141786034368825049004720534470735730502737986423194484213822117221365314238966760488207113842118661609763453781399956600927157679414214824521641842305976868441986981092267859379564594474737929129001051630604015048978719887034273021049906532639039102665779874735909834298571448875241973445678956739788824299403704082797402602733277963557201633787543517628517256943643589516642908629522790755238162217444031139643284959973027886688255265021477814884073379754054242271135296688389312084328300346163547601013520690048538536181680990697719367591817597066795625264930517998360513018534005387675485890332536813167364343777533765084397356617520397840815649564204092531390525643045602852483698749598999354794025197800272169046228115369701226451040377919012679411701889370443590777205069168071577501053869962673440043831660115378992149511566544453603964605707903460738860500202701270956822031479225324752023358720683793990175500268967483631022601282782220806474251472847720058533829123441742919111419379193923918709024582129344372196924793617375124795671054674480499210040773925638932859087808695960107126186948139920247344822021522851421675844747714601745408935033711878527205612208680602980497380958682407925208625239667561925265183356282359760026983281405572269087394204442430190133438004336288485518617049927020670459340993514374551900172370440191049732474422789467802924732491777911670369224526396816175237785778759996841940446379774465752230054287441581587554503177014846606255289532716830436209131890261849744922729338376501834481212481474595796526934311016050235706000506318733452119674496534539036806427836071276447467283318152688877563001868740841353601119032969501389003763564187298824763026565758844407319060684337587136173406159920109584275820572250866628426922269485266857589053893870804271303303010462017389045417875905615152549854591120599695771305393081310282573658028700258473841233742375743928705128430480255426081669995193917442390632229937217021371248158660572576701553394807447639062441786751644331935109682011471451890320015932295783192229719128885311877691964417655072844885342413450787604492920619772422820710250001620067242336255037580474206440589855278376807336509982172783567174460376058407428138827737304681273282784692157120672733922325253843832163088996442448827227819173886972725985634601425036749283020636027974894938836510698675390242354291621393447280060500386178240232009884120172588691620860438032714498570910306567450448806089806902864216097986411047409220218134464251000218517122472909493534543098314070164215913670482896020456082926217434814769170359111925611155729237830926789886474218825906381513671695961448725413616217140046215088495482642479552107973269453543855600532152107289496914369065878722834128578299593606897190692393816651787843191604075407436954012059946163757998940975716802601967237161674101052947210789111883603322990681256555778089413084017522337826721988261523113270984308594179999116714738297870449183204172892440470739500075173690955313203403792345583450274003872372745441609076160554693951648940159908723421833523262901541359054069976199352426554732243861744318624169079718965645943929815591104131545099025245647292877618543545862217420309934709591408926921447948507563936339236913618894721713738469114255339443814113099994626847180289874045232019281715751557009402421879251128087071407468554596342186293293775981247180399206985116668269230758305953178474937341684848782879187991754597883936229555569557646958491923281368667025985760981256177503613670177455688944120960915580002946411365510447550921329170981328154985492800312169953906321310979528312246496768544531176659493989566197660706464856565370140061943175593723913485711467270514844495839784280455125007781331248278010427865527469499411681245010377325895514547272791334377746471884566907760773639394561862376584711021666001069446834819374459073705752063736872292917544176112920914664058544137108205006730970358415081975928739615963152918965744308118290119792110316574020147799445821736934339357649173644035328919573811667097471368328889691457713282225256525153289093509419164983461882215831485559660992152876373052294234215120930268156473288724919057245901594550496023073305292350552161798859847535481561230873270551971079084855876554425789506967698668024669595939455430378533210764169199977159677099615399300287029837766507606508388091763086883205027977353109025099270454514654792287874531585445411218097690046381934347124693521066582563320757027796997721207016715387590609166924191740049270218907085140272713836529075376909301030486263335291392056526150100058476174652515309580775095624299960781715322679623765409059294505943374643880356314683911010640581702908550577295851200196116308653439824552728437471840416579641176983551094860310792191431553572534133580432701387801869868056183419584847029147331099085639297526011838836549807620279818132759458168803087794018114450594427419539774369896390919416597137703578083346595500607730947504800970031461478644294055639166905355882632905383635381208793695079508418275666493936325589875789364525381211811052309722755777838313457518554788187949242395292040452700801750854223901188560799397195495247735827945276171533955066876194748370344464412012595979186426229719091351007124794141836818634740156429447910031491945433818266323535287825911806739838642378925651203140702355751273464194741247998502768552576950601800198086090521471027330369999027286606743585852089346641742311422540391787986645072926525345931384348015537194063630824069068536290796717886458320140527530525069833235447716143459850881834772028251008285624295143489208393859251035952467234883599641021859063270477880498101605221612959994145728876731879703442504648595675257628039355813589096309948106990825946219184312044724016836735301916810824819539185855901603898273811278886867566414163226643341725224325262474104321187214480430708169210502765156686063030483828651952795874573001436501961721767653397174392127289092648458233732361507677860561360774515436206585556319487313172604388333278899988339503007562365068939509173261138357007860316874596476970582050535615302842801507020386645766767279964356649866761560758399180163783879973923623633553760641520275536412764538350600447758583708118543654538470817077782299243180225352044632721124006886496379025592289664628072977842756990076454037925349540610056158044275167520847628801500821996453525217651799667311513626624303106718833231221021831787488954872193083462273550101824732017403129523315928719680501044612590300323949823696146681426044468059165705375030131705869344767080959354180986550242128373753499684849081788957765230940268187245601534423572130193372280036269629835668702904121004689906611703451825035339542554511120831619833027623715406582714360147866822146329166226168083796190726378851375859066522272494780853739882351938093368764226770217633364743504443909399218571478068319562182350905723136512955198779999064359044318123412011277049948790942946921019086935042715261119314015938891528562401793791978042978219576647865379537154743661730520577039792894170580414339197800177435836673860312067195754148074365038474422163927511769332212117565228789583190479878948691073828929708971290663325753824459739634330828507831109591510045939244242132697590668767142441677167162708550944991230211188383036868684407479868855596888757484039197398800937204769102824460723969833859311662320346577388340747063212493530187036810213010550492420566996488457254869567193498960390382083035054739882047257823667328528662333289926344523310793998367176975448525366776970950774228376910270086480599629581189761736150215748939933397798976384883658240342198010442036080540962667477479482936877148458760147149301523975353544250576125227661870131703563061258932174003695323917848459926583209958376870608643759242609020802107065203801325816444642569570270522719245344842649645150608931666610553453903578709151831324398501114177687890010598130611511943034453293200888396788488046547557101208977757286620819769686259598475708842868679160730419183040492417652177913562158635144151684844491338452036216352732859946266321538072819813431548624505993973149832856324483415938140256504400808788258490432189560359089067977151841300439185450296371738904171038450681176103535519674203630075853364688974420567328449347631156727201905190460670845870128528509957844892218328224139687820038641911743593770051134533811734650112992016501747315707659618911861309231920809989309491102474560547917302531142104926295078307371236194756083869415453439694130953368265877398032734538488231513262451301724163156629258341561205075332990718559668890648274308308014912252097543333287568964737166630817616919624446814409647354521280383302893476979351348062287443384875533770406534375291018045822545617877078144200193611573636119662273803972570466387924645933189457521443877342649774675088635514239909079489129056800590038125641543238460598389780128865323986440651089740317124672654033249168055251578596632184671533860746113327900219704125752188622769066297452150614699459728620842606857135845480404931741015067573341510195791408416476010936177144836399181476732959620796450076424246613783346582832689202296577852434409362137089862372020439032354157180149972561829679716387260815401970361168079966763477990786607039225331717827101529608027544733846007409804014966081945283411539750260876211141807747059222922658371442478862354290737311304080100593063123550060713619409241920281487966661655914487052429116273522625080432647044058850876015899016201845811581392772811967990495753065176979791772952230525576002769010754476610633787875174654794155790255352016175194473455256066163618147975222301810792682637218292649117806264461752714754366903746552551820617162459527517904887845514841239979426410343254774851779261939666633326723392390536993525611004897939931275554414806560472828735905658951577239621444141627571247857763790929175857759270368277206287508617590994236301929437956113500758828735295146076905858447967578400697646889060154305234222631942566667780076921033139617168129237812938648894985406119430477037844130517237230272513827552507389725497019521088119880039025538995943424005945832343856804838570176028029579094934934012462220497736659058923673921095204404889371606799768030941128460579581375057930890093258030712797851093765718317845122219385420960681060447190069545550163380920718378194852907315426680179823869418933163866887156721818253423192386364483578013696516870614248207838807845530299728902935230113115160784169284781096704073504763401859403748167676101950770603103654837336568194520334279170297467629773893886336008685223686225315202138484428993580341523207011346519452438089931128580206529772161689619604974205260927199794000801080180720375720345359539145660820510844824380448841927299248862309401662682681555003440624009935810351914241837736432062307077634056875142841540472081405982640300176537747065064180122362101574721853869682728533253905528012849733137882481959753084849512795792022393864316320911243201557871849942172559724146469471844932014160669379292212027623614758128529422933378268516023087049998929780015479795451211397553338429652028692713180355442702139049994687240627887697963339788352159088675734310323497974890578025928557915375972303675731121016270639484458188113215772242367970982803902030925028819089260025689412632714561863164172491647346609417581791053184483826417868917165043801962867729466637991197133641372972665381756631648616324736082574052753349591272199114000165564664434451346923141030204187322946176584951910335861911629468178514088236478185026145854266649266571103962819320916974436705716210021404200454338831229922634201609373508725930016633944445212535310846480430176859370839435015996462808565628139481731391209109782270182569967492287748007179745065417508750084104244105351227296053209452641293290470218648998066388166177989876148952795453142062261750077682525789505395164933524352527730621853296554830469679020269531249271021945075205017868488982427952502376750262750592296299531179417154949253849489486779070147300137901244813574119178366060696848512789360995128360528493353857825329975500490796809561433983777425761403686718886923341837125121326990316664469723913854879616217602998044618764539176441687518706774085997211874737448907566974307638109150038509033126677743944251813858139916019198309653079884869620976207016085454763271199551245461198027017988283805780211009692735599628462146685145711005995859462782090749593465391237587931252184976349964364067945747680430309117767210813212315627683967257777626669915896697239564954145142615771225001877485960560843389012221637419607247797821625451852979877091100080425998284084555752582624347076076771667922405242386033145634168622299285412935815564230495474868724379076136241131640790303306131745376087846212262339461210841795407207929659016454401157659304468268038225456301291392260709073792163797227867850258614831839344498929228033012594959101443949488760471107509530314266141179211890311076725000235704981468584090000409601785936259092896320219254539509663019951732139589273907116971526996885917210405112859777047731051442676860247951539398233680261369606377783182451683958210551851437046856600928261306314798492947102674098162525943707101695127879150762813704828010183395098629047872336927146345784448361192857575286759753844893633288669865938978222460831649073774498507690809971601804265182791588311917011373110753720707046022760000365274008719962555581290775800138198569104446240563712274856368347647877780614379257078130131769650637754246880158896774141377378801073555562799719709611799161991730231773247326707775160587061046648648418506646635818806259828410596143058146771041537512440186491337756746530961269526326634901003907110059116346710985510992842516507152844382568919298614414148803363577913715760843086156535063663989334837687604759991249131202726557307743735351285598409675671008635597387191847463316612797887476243500365835588831738063528493294511174660802409589693354049580946573657289449081881451837072794461655399607014105552513045748984655602410861261595289861036086658767088037922660570935984190106946807581777472533232991439616865126491605938822895400162973865733285098381971460057082533538661910812538099682887472258401642201167164274061144087973423001499128021744715459553509048722643780132562017414502279741951560148091589491139543601228330054909030541419050826606928805822617620737472898373008955822045128865072063409558761234050181009980762426088430006960932055500869709855215947860561337266559986711756078993554701901862036603611499699161142649169994051327448240084079176039509378688240916199194041010250307484468445804000727215870987010162134960630515340764268353208591728525992530286795056165813962346812011633306659689211522405878970226437379276555390615902567837661584551840746957114730882938507156550350337276889369634648263545441325556033080891103095590766662274097311633198876988254014483342470549782260909759748843210234053395573375512591959310638438029019550415128088495067206047815907908962694133874579158598768101472282588759342920419248872367269186614942645172813423054390476837548151981335680017135390946836597688868995934201552316193769002757395887112713935440653613770653942179378533637098110092434412593468970702242609461159987947213650710877318771436192457716034142824068386612089660108498003033033737925435881663027488656147678090284569626978608514143196527282711006967759544129244251687570122391490798955523049191953827506595501007601973609982510392859726417177852400386272750336737135896927586949592425432557079819877121838768173479473478596206807659189833413650167762990695008642386156822657246669431054074137022591187702354360987370564147578241984137556238879693798874187107335178865593823051758338238796770588542036120704446406705413822920799817366897491348258214682181033234750577157423442165226365598492777319158424249917825644344014585629783958063300224110298171417803459614812250684986502018617306327155790453184625458866353391834154744165635608452459284175560299760680733388106303278407227521481626095378206139600777268495125432452717273095473590206421733208908218040831434603223001887671458778917264326577198992650423609102879627507907779108407156247542150651811308046204830245163750980681227856300420063026672945604994807509147447738067437127481130272463286890953128886518177091806579106030135532641698612632514301118174023451776435182264155193151219478995075090861869979174313687582871631228565460408226895856287227702413821322749820982554643667406547938830420121223690656311453549872094269029728120802298969681986353812260840403211278352027146573233029659604006595677892807004071549347431107873886279142558300665945935564362070666421077793480026903315802331540828509381022207362595571081396019942433894994166132010441188883162884089567918121608846005177327734439014583861744465955614871329769802654404052368318660081759124799567109488838800455784883332131059662889311682421768896264098907442208546060846305616878845707227913846502319731358544106625211459018305729844377719656261816173255536487434602163199444403608470745661015575548266450772891126144829144532715487077804069042074253622520647765658103688879297182122025536272391768246082131971965383393169628884110617229438327173874906091133840330935756859184426906162093933044360326638362752242616293290295099878412496713953753242863168116135470529779866181427289602106346041573987597173506753349558784697236599421627976008248780953014155147876612074287460780055181499878481873346039043790294988297087718735652086208844650366799085373661784268339975843542742050286465816274961002725137888192095498041129092502009417967597785473929132251475810691700130505532087962962841123867440022349576306327884040151086595230857551195802336668245536299350593383103538419251997044937238834841697871320873765297372263988066964162360172490826844234523395831322946688556293820079786716743052141181069557789645694594009676292910944451621556760791516882173892176888893923443441861241743604947276905727477823388158670508456167217200202571807561546731851246037357291316968079096571296799814477043602973734349210802678989830982582859978325236450347687995700155897968450417986008123132618643859821199710634044203142981400815865853460278097333794919035474110269425776421693160664425041275165085785396514358431866498790621020336446679054635383057664658140465858463841134502310321531342362806956754549336048281055872963033138011775588067168903140938222062599672487400232985323566066642065896942016715408467615052501371169970221217355431375237442763690807573409248060423466949643409870598687171453644738184878780501744030080506779982801901361324805385223616204556074119345693104884901320933291879964718632307562636204306430869648663860441362976126715811857857825427119352951494512508681393772473156551667593823460175663775146447124222524327721715672708481955822802456455862403333451445404583442025929391219479189048379973494971169153124474530703231287046533496188384621701355808146545141746399084412208650356466797417897560398343401340316721830905582279253888837440965347647186571886429189166055694406062845789943562947322008214128057263523601976738014309470150541788337610140962922190773050238620468173901341662999789693372544728400202644247326573713122326707485426169739802090198676539725470963357704221797454899700914611057598003021354002807029416328635649968553353507077949300680531617340158578107105747726984256262734753189034994095765356680015208256272664254010735292705701107287565652879370231324394599252308402549083709555166797471493550633797991568737562546587532913531203113894895594792586996342896965778308913108376875146286798759065650552580488383004220724287481203823932562082693876360875591415147226733908641290837142557038830994907888198621681895127255798315601757484781912199436840374295742962132787255359386783966919065813499923278145955283623034199362971254691852100397886044747862698272416132669748149872549730733836987671848210005144557897630881823662428002664326612787192228324277572670864934851225372051540640710175882795222890553822892294114116898359998934040738460428283523906066743647376301127913040521127973680641831198176636076879191855934208173492788115727624539570407002821653014457816107359956929629825607100575829320393660758993509947483605749606213126039273890231740219924114281896976454794059874883953899324624685820289581580201715935037337630979969246418228780474588467075980581493361151269164839605235276295804796563646631786250853571325825476851980443169673796280637712429684195428560053894923458248814923185292115304514212255837746725315734980272407191423430179805656954442381207525227308412012709976000028385157452261479085164688915784592104124248440345622050725195691615143418272775229476947326606317187295349560673788123323169106763136236855852168907795203599135020966644851110057887698818085018830288678330622753131608795746681668597013466933037981455589128935139938540970635519753930966483037749792820797216893043815151883727337880700412891635158676037458301989480745014704118586025391494827916118841881863798489532887607604321663512202455797945036605730258002115692789665194099980133650102754500723595526175237159682434630831647628470167575711735306582772076580266272629499848829743987568996261112676021629268639245385782835733924777153713320152051314304328291210883692367768238009602224337158922060040017190341158615410476321910243256988243966817039685503893481881154689265408767206149594803757720951633873720039738837450433872491434537555742137326302804486838240501391356397130060548805832448287508896982801921599550825240408844572880004861060854347507387195894156168153857470741997750381426037272227837543586662138633121799264884532815231464564588566920405253112330947559317615278985053619630914127785879982518933579948621945749765549619424610011598839935800849025058231735614730807472572947753229735933799017270019491234476408369954986255727816403456655099868200949048070807935278240695100027782869735380748067253765813255360438362825580041877551048758305099461894967650848327214921733658877351164155859968054083021351451122503697726272871941050569325138076483088309918382876749343204976472054070500447995017585784819364711100502337520854164487797590188569385030759974537793302799913249759137622637458013276492101888917715652459150080470183007004101640850535697838044060636371725439833628025734485308483994293143041951496854324449878673309433865748593294459553208353978096824853285395145719341783561254850888025838131031533452007542134079423976900760969494463248928867239285064796208971714913419755130813760656538816096653033439553517401432731220782181345857057549025388038103486950421060042983294870896151250153169678925146211777366399612782533143389262508673358711400330716865369355759667858081090007153001932790075884473071757137522638321938679598863644177823747599412022446482719817426531456830592939764320585704077699901482823934113418824409869655137849046726812681107955755574840051326311499323117270532337534618857930219012966244272197162286285494908736801009119065081708586510741823465223904485194056801580224460817099632498704854792988501551555835521625260793191817778162454404613096896765132610277551493909011635525148508765211405528875291114553854164888863751473027823623540307016169597843982265932492612489732733416138583034882505231890362682038226007900033211979694906087714494930444212100860597015452180058239483027216575517567331880049775516185746783102269662953854565076718777220409909586950004374921541696821679754434797178128492126646863153796705439314051714249909300407784449769027969182352160477540039046397794086285622550009813562602095903425830892212328746041101304777562179343921571908957704999942335166863046182559710595157833315225805485572837529817955810251331797015216517740934588235964628575195130642012015394857261720979288203058179939086106693663334465309686928368367238430746388101323551871297792698194518868697912839633313494045120372093775693561830650315096912796364033176971985628921708083254892181096965431675986405766056119885709032261747355106745674652058403107197387002405550421566973426598234741442874879851432710592269061838012872447366780628057623693116143674115057385838445096758552144053189013196019924235610134989090549558100590221060430787423011910528094717930252780932963870892766324110985523159520950081302086310104901611110060670260723067513089345361127232567889695120783551282319285456478402339476373778880752148177157805039870855204542208432906533129207394500534081784642571444658636600322835830738310054878892957616734988801605874593711376542558614812076578999150346346051512783351674081258095545475780232832470513892723700279954856301243682030163164015506307702552268512889232186538614618237832644476166875319338287885619001647617658482610469271132955869526790969498573711684659617734108095764688545079401131648625484548456950901314259741204952719277574856021636185992296132807397337615180199171835736712535758675998630489501919881522867807218242270608946467811305518662731904474655558494175643321664214930005850179153522334009828113919425434589351079803715590382135601747427812286615951350649493344525743714668600526781392580031985881936055327874543815451026563453251244720837636039171905411801218220128012407690394747218569958543965709553172406498008077115134010229161126013487880546197751453813888252326292524450443864921874169695200183681961389823621840111372462008032869799535613100952571977122725929858823007306167643466393956780988493727836393102539865187560704240792820510733424771828897881039031372710837567005525507377231421018772036892821971811191670962036564595333432743405763579377662562324751104375687404912161787111478359344151135610158269486606340426935721712119993332883735836260129656302541126571131306033352065597741564233391457667717393284005022627561219978373289863202590772244612007079947844688623239780165243645780346226563531439990366041748519095769810996149756223282924990575517325957293584528897144746928997116783789823037953649169374673671148129711099529004098477904918375935975351430547585001348380552856299793766121358496969628624325490558951864326222946373713958933483315263917419870168724183445204931313345498499856064417325351932629199170162383609609256304807686190693189566018057173181848642667789597442132277031628977980695992517408759690838928299009442525836834521069786815717740032076203459510177010120992199538890381335995284198283256075349695897727740103655381774302666946034424420627785762592041232453846419674233118899149141175511590355511445254897405300577359869049790382583400024112090999036674459580367807666717131031104413813559321309858581476436166418537336153358760832607229536838299829396224146155018993306629949404960813098270332204386326129987892016448102759921992259770009696970088774536442485316861974127805255364267995277542266326744677497494872008664037572436722314615066753785448200020973076792346181855956753397043412841566900604506723319192325304446895229804823059116533879810481153387495354328706941801075188256462120578594129645413186224179130698599101805118992150814310752196864679934366405152522357670546433745600863103394338602017327775597552716423320537151596689405570557907896572264466940244527801971678151368246806847964112647596565431148401296040622379564873925513156788670416261729939792876154339014470006137863926448549091637194791046756041885163842094840769510933435423943467736717779647151812232028310454048969806512308223481449842990210262381487575481895214145157620362523149348294467065176003471803392921606259095124831973644186011239330284173767699637946571921875915141463640508667973885811652564628797568091086492808492339110228246839501343186630883194570451889655674665604688338303457632549066250851640121944414287633809308594606834592637352664736873649256264632615007554014518002508063472354644818631821383923930922730381617367507782726506864691248921734340983511549439309137830432423551013570463528112181222346881375190683792384363196563890503646921496310180022034554758649530617724422728560742888887840181092350410685998531852513906993117883333701456435736892558589112191912283787114023290437387146819363896280353418848866733224192730520058713467484152893770202641874955138615311069196193087587342000554897850818064383392044118268163603346646567082006642392054282184494674242577189415533749364895467177193185461286778692103127892386993439381467245228754292629127288100449200939307420808323052677049103019128730052925894580093042752629377400797871561348547444854254569807338496670793482767911163458995903661834637545992711483080002211566085267948608135311705555800262273539094780899560513835267973070373670531992857429017853204384454519468226513590038503937179045314831083735006603413410532518966547335675117810291667947776801051462657926178499789184138002983310213016621426547511884539428377343433861593072145378876255339874889293458837284494552375234469719757538805700766792388241017655499498266722574672950339308030012556968657564873390845381539577033238882519169487100275588181592802562425991410134441592340148859948764557411274901144915407448384429946732244259536051843566975639327326877366168162233449689883059932520593752028292680267112457761452927357114481195067259382172010713891739527186158882130641358678691960702702355551653254364935949529453563915470744802006520619404607037276221878333088514654882534270425129112516527803564008960038428708573140913843390217683612878739534874956938924110377733674029184208746595635174004018451796537286486226375395380110092225252060477387844978640047828919276875058144915514916514092995559976334479958524323526047490544947603350223092816462093728869350780005323122448426765353957067445324928465534222005554650729548355282593220356417058420254799606348765101842166646830301785625277749787487949379045419874278791063865991738148169846886036355029765086829426746576075317200061796935459640693081603398613418491736926397650886257998793822902268196974164867422918538140113469025325433701591120313002839542067486988623102381195848304294636114777648606087880569930755377647744921640527114868471298404409731782593139159351145164219201284076991120557290399527674117501793750147309820237014096631474680004898066172195898502343442038921609900811607465817206803770083202856806985574001126601691091653560345311417190294212227173746959385995431607588320962314889060244505651224137447320551335464473668791776313195485803948690180013615596477599578427400505608367430579803334080995599403141471701000758910075986544296344807220497023397530786380819718048698723698906559504109289006357699800554078203640895270130729250086159458171337335522144039675300632619271111709323218755440782211247670685529542917371411062934707168492762598539558459962838025471256910524076474301816573784429590850430909910317412505451705745560914271242410688990126105217535989845255986825106371826678966958488300082437094836873466084671035522834111556405166660367790729318667998692625682382039343818753817401726481821574061885956929139221797580722191270065351892174593141309583915519943414159621625508564218390285274760630307494402452763615264899520804913253429064697075397625122915760297838638307839039332208986371240566087234065168637428026912960750579434209453126123215052255086211122304619470730723614736510382764917645946404408867964762114352631963316280229540203978836941530085390661359209107945585190571411965808711302286328268351324700318264137269482555956157092872679782065216093651181665873190273609214618129666667674636097012847240038153782455662581818350762860306460078061578191497219176364689470314480457815284243884691288592173994033188057100338947982997489078109518837282560499540671385248497459307436048100800285485951586321393794423756357540301139161812879824311781091666883064854544673756482377782873819226781558114398993101566589110121147634250016044425115363967316134069968462349518315305348662683125015471211975089485224220748888693620685935232217094477632679923942050726124586293429432855376966219146862099183468305683061371941221638235631938515643414584201753396479381994591955753595439322372631429950247572983941506674903751452763408723793756307311557672261327991638157702473260375187697143286757930509026496796225459550783100089630253279131621692998514226997229026043120132168310303442271825986740432250994493465860714001729186456793487778972531512041037038449765690528981955685713791210554307858204874277138385531069115842061712392466130764306353868811572942485254700834615227904014673812519692355242081686149023648360117932607071962155889941258788574696825089903507773540378347830564406396050108922842508137049537225337444135089497330238237666819103658220914815040102564882864224848850285218734649289883207070424287105919654755571632361701268128788348859633470299365364078604566499023005986058241514633906495972219940501658786052966286486193098894762069255708145015741529861066131841909863678551775018988185595562993650968886185136467384338466632166028332682749832784708026372841788459898769908099509756131356997377637402965605453335715883084933565711965102493129675431964807961522702194947335202261447455693633004200560535521260996384225870523518277162810866534123809457360309039856013183316231304266592050101732763644720688386329053996356689946046184958146162385610738525684821387040189375699055055298978877749056250471872312814997545246336201411444394379665628983450384412262651070980196994401326628850168542785187200215291947679713120145550923784463421514161044699617369344156672017761048551188516978660695018801668046792513439202620300042915312648391007554509928786039663843858369829951804108998077085104245847106554724308520174653538765028634767152998834607014069844012785724935724190411522448258122698021078716890861432798909011343048902528107317684060666720694477630339691368300440271032162224925003640299680411903786564626436799000798228751058682087206136587311121053602795837331164666389946166748072824080604316175239062754798243900828012806254627680825417812259960343721935863606045618016472980594632344082487364168332839802224346143489644535614580329390789144647366008265380385847078921829909268820703500062697032228517631130412913370287854100379493857130136360548169735558501836493641838631031089636772957964196518331718718991434520689923963559677603927513658116022503789302143625855959021565370124004441069323975682377128559174421668183117250039061563248469523902292417556125910586522702332835580019155963773346342381184441263580379195865535300830978188488308541615793846970044637748157795088660354017574762788128634184863278975326594173072829453244432100280377051445722612512381063024085397148669211352320596539710813707971155575347835322673570030019667754521342654893218714724203033558071194916491815498475535962999949336255980396661085128953368958693398520163979676871794974372671098893023725628418371345606130550640369522789882551449550360301485226250840966613025911200274129991561911561150368852286436058647177123936857459628223219186669932195068112157538573471213768849661489871711076256332275815155831297500418263511584472287805639502911237664145259202531158527453300496558585455773187252530889775700256848912924457132605503174022385425481250715303884968221013219959085304126411400369087159096052276041573527344180943124228177613348424620355659511182652173846335421708566729864446481636387357521793839429874382871380033635023282584047004695816879411784570235976852228666504626770595022580296440756990455157179268512963807848658016215428994581879743740327367593195628615396804261215671790285119202334258262204550991728048220942026255409734871176013403270819707592152076019144556329764022581488892407781628837894418402122229485360598314414754017166714451084874816598577846194198986595914481578037145939244420255705328955191864032656656210110540534015233055386034332768268265852584110443239212899808023834465452493343934940113165762236268470252976860785629017273148638902630575919902212001311359537160483442842853561367336133189133285445002865654346207193811504793831626132487559981255530389937690515004709956244261221569298344326492869469113670888946916263400692620014706617374595590679888462629814678151480042760294009798943919179426049232225994461720409236971400035328686649249722775755098760417995376880604375614291695153128911266082512945237425440828181063582096506538923054559713535868833249438590006564875986903659248914097196221062529353354394154260791638023828450771644050797832242955452305539037135253465899284078957026925853530043887732376738660741762950712116422015214443488663599218903124888941209656103377286394055039084472851076993852427072812336178527711256292343152001161174850800899348730375507466540771965783334272328206066681949224900999668423530183515215946035405770590217916142878943147925483999281812319221432167229307816623305239211917751536659632481706970025000460203964649058628844195494068878257302275163368564904929938145139399102683679604813556081439317727729657173370274349615955038599412292972208717291051519640173084974920886698115496305207392326150210967522078468589337425937116540919139034358995405170071806872289412219055017100702595626293408757257382968955369521679249758159899411868161334499587691799355276633757191155099906833875963939874194799588320700528947997247502062205729080354894020568812948463538138093151086170872603669123160669968274432205984594490936826273095446808956764432183813952453163960322739108450212180615108761213757423309580780150596876907373935295913360767956314464359208189838746660735274145426555422049159492901955161190212943989809515312132969542737525645961124829876690930774552496182978167616304853489291091571221652782442652339444475473449105326864123283940174572948165755465834495892331451264883733964394930097834481771967696471849363838986250991514667013610755492261492906083704269953174924281622853820205268397606592100785622355827648179882674222331022986099428840298560574465105541089940346540891491549864868154097853339508479423751308444891389168535736242610128362537849302610157085845039231034127070862736643015296947821017056205970387420221040234948168803203040092628539451155965883956764026135272352940290165899579018028306141450530821991300678972338238733020353830590891851683595756134494841218044101318012055568670454778868715814831878105058516695829450035614431201782012803493831791708206966085007745733234304129693794919541262502268392597644584775420335951156660524889282369300969647204435170464152951524433062610585863484374494577544115187096143756286123337442072482480740050384202322100204392634090249075519936244441718670788003597237240637149183794865654632255494986360648933632354226884441545461867704305233662889833856608230368836375973348651071418798201069405811283674248097560905039582009090388169972347644515493186051457018640832903180373156612242648033154967583774329789705315280902799927681803972048421498977731252767447278429129058410670124582551428860675085727127700560313931419663345544471722679919162949513052135913331006692449417910255958727875443621142116760749957284351396599798768456637781708347405731992988008066099764922951754598852878140309370462302685887422345289827122439353274791881314306750078022969913980134967276167887482029354170650302041672084630591155814085523547210995077916416490176530527195260781701207416013119416607240151537464379129464494546001897374779961067933747432903218630290982607638633403837620095255521878047702737654286341513171224098865434101433288847296945205103598170387265338793174997046483426346361768821271432090967302016649789903391653116961774546078185227051038620429905111520700843133666258148225370242276118449344553184323190374397466667015657603432741896781413133795996327897233758533136175329544091253880087525077701813653890803088797953837316901912495965712601690825845091645334927704855624341531510284302741032987845327763302792039587285831431499687615371970165926521487244220087563351022063318501142568222037678917841559456070349328046589129799143983403189398692385869306924115205539729702635212572715576550796903930878733601521180301123964626592249586302559830465209789524277612500585538099485849048223130171197454147772875190055666494183651841639581005207551252745069553141016039700561011093418597956847505475310563980284501900717494723528600098653809932664212503453923601301716862482747345170674420127668829881643244725447121978147995598848120604271848132302317077895341051351621834385035084682484329305046346697266978634039725188956439059282148825576473217248230954696162029629827231549162076733461355260240468596341696886917477093434455724423633742152115432435581948345146006975040937840711924467006424888980852096500060989372659093982492604734042831651297810878718347144086100153325166533249288268718646268202191396641078735276489283132184160982305879818543283701404161983294667484058748332692246682125034064948462925344014377089908654219755254165867243117585555385327207679095897786222341456982682670936532352224636841487713560038438805361788959824415031411869247519301581624479425122533152296923449660392855931850139185554821521358373935279813681299969777486897876297714823381423925878851897596785968125244222936902646176042538211318971615190238129636766857883724940947838106455044943820112199911021107535585271006719929486790928271090989643641061383012113910345433118635427862264739044706875665315886195297021539733588655152760553190058700612165430019784128244110520876814669576262562465561766808755719169952710814994090603354999953988009061936719283693670587867490798446688283621925401575190136335691480530878551963452913114136236168317394463287657915776877561270988447679787631403937036709904576368110270143472798095255713049363228497146617771583833775336045030820095198495120379439938627402694753721216032308241474722565869957704892364658858221867584147466117193538573563988389320990102194700083443940920195923471313092373501239244623412402168122877179284061502870536403115009600836851598808792436093079087411404633179926995178746054665255085651864986351217235651171102635629843683315440573094472907197012995428947572879596565691004236934957289402751397343178019340714175231029556331195688090863392413045061045016184979660754593737965015494326486860200973982866488378189356206135429146351839388490948286070922307978178433218995925325042976075526321231125116355394778130405685323871914810402143358423091966724026529390195714308032638932392549341642708872987267353372178522692152427449338463122648951481340184420034594857561019096795481181040361111438972807515906640972211176286758887450446832843646093868868815229024522380095063989657933931803943451550097389228350501612151350139177332235885781224419176348162580531535277302346839127088344108460202886916175716145176178540410138554368547277777632681479007269233976350204433060137998197628714276201204195485362253463598937521915680649434822114134524976149516917340509506208039722802094217228568237100690005286295522384069382977591827092227675453248833379472935508277300064341663796184030118426327112917567920419383832964424613118693541055179061011964566742689891950630715548459654113708193095566615180562082379649338491883792493964934669278414531217360834735722432602181432779084816185387824104955338894803070424504327371527133532503818859389132559491240886063016318852810007632163810659892602777926286280387637040459804758977321788754022684800136114792937981392326058250304377229670516782877160878901381275004400042002620138353910707920409072533886530823783312829284539706774031775178867284802135728421905050748189592277399532418700897273267346134011137685645769105157871481448053474492558863016211756938405042887920053768429133779656449421563509266582021590967838025667352055234218138799190807482323024461320167892329134022812926045881438850017485557261226433040158026612880326288042019245582849161787345713087352339821225436731346895601766564592864825401427109630843902148167575615363194107286400558500943546878022737404078419844348497033268539455426228336723022464840350598035887098565445251674417192093308590201754420627417331975965728999978367745471762737288282793313705871809589632115797854631719211800980893290102283100288896805460441114111435512533835226113425267519948605704716775256726273986291763663704985385728530473735722929429474426048157116427528712281235656644607473412784974761290367047867711048473253794489087081767390714695566565899696604177769094446093130315994679600055032027251017988349593185870741873768306668609306889890111110469811144237385312073552817034058781964181088893388654690884104290002524295033641019859497211177568991929512177228755879611202629383682179460813347138787893205273928488537729008196391665713049586672485378221048150402787089258014691342078942989162139586040285679383229203475823910799531231155717595283862134401254539472434232541378735861439055208788521768721323182559112426393573949456079751480407506716074775125553626606604347996360969979334347153081895254717968669933049262832407877913637725541479537955724344621998224880951048115542517938996457564779228812795622102943206085599158793856459011860050443929570417784026041582818002596273257189086372027893787749052462456931335698069869148021477223595787982427538973097253028307910781074481361015416743881297356384940009254786500639610992061647771421759262111047897930915773117365193424202232678789297311490252009923342438198846999467840799644349682428827176542519474439955556953533870854572730770555931627230727951448520484932465278194277347742564504114513712381017893482273578338878260703392159361648280601904766598082840514398307155384750962086342119486713840157786076212993044030282759136025835321416366516222566079374617661350894161731712963274736516271549598955065414381399736885435128128973713871615180802592854717536012908432264233274347567340090226106442092451308226729226398485857610892467411324148124025427429330875950047419059118556771314061111418374166369033401945827008587829007267809453382981218533385199896000228052954330408225072686409159153231581874927270838248451025811488575190015758082823904026191790426780529132982419483792768780215391770813708289052669325146948621992067464152052952972549594233452539193567127287442662242989213217787486005596977501468790335485899202486562010713011195082007622245839855409352546491799716291246032625155310811913555873846727067667199088635320716180654608701682708681055740143846401805158755094856141272492173872849269197223690789139970482073204317442840623473841448335730841740124368521524634885812518333996450073122278408273073638629286668802423699012518854407283325165613918949691127875664438677879093815913649089738514974893436447319470377385882202374892849024675726675955321504735329416396753037818460182937377505605818044533525471978961179642387095912882995870194174481411175814769816263883559731294627856956373306417302801492762129678881450445407258444408443483899283900430540854471678697974809008264737115581901159005262711789308186894920590621850604020624301828039017729094110698277831506606044906357840475233991368731496796143186554227751482099580958311044159073459131654315455124913406720710328488135301602967727517399799998687826648988021769484541917641407298564830714873451764350632601065932994681975409662524478093033825164904209397338581782657024641715189230690834296872759458814716344085916914471088520398668735586069529577445629368419699320495460137897273914132440124700180374194373535473023874682877049260614931208271584823067555860596074501493906896292427451110137765583060650505285191825923066586492056290675437883086829942189214568531636849266790510260469050814708832410464157530811226604540708792010572093415653163834752810937950660281963165492966568815307596506064848054241771502827713053417840312189109632491532509711147854971937065469944806917525657975534849241488037210949990011036192922019539936759363946056351496302058323312372975088706689794170544566970738979597511358551770212997711882846817538973888319873595301817841479578468518956712858477719766876870868965540662952413606731544663736134229513727673044780738170098933440516436431317849188574568686706747257658670385699204135373394220060019666619318531617222050264816165157466988877758894803943678687377930640815135782386952478144244732036504640892666855349495633666570728051433862388716675619256617087451538133021958894733904211181650100239093275809403500161908886534215282336516573127089831225973064427082601173331773005339601499991451954855708246179914348881525354890027656828619063137471836883821844412347431619018206084328591542005782314102095185850802207056384038474723255548245344890661393077025633834863885173787530499398250440011642462367818050685249661485739375167102519105524202361960006476603264284161868182605772271944113833083340515325534024602471361530556135847022234603445636005767741506521720093359946911848975795067107938864672283977009798186695908547610754304682763506499316084300905042118238853420479874743190454588075362177139290723653756573254246485644837613284281517490097483198272876469832618269042870756437813356183144504437613428241079379675226095742793783081588778353533262927876662438849301925561048868480838288513094686713554939147971614512640982329818718635892316217795195123685922073249326245306972155460524958317869019781970452170427226890319463338146593905095204760260675436711366895864447374085074353158601152779887717701313700233923947704283355515535775731970403452429329461403842908135376128718730499291024657463271673283972207060717783408578889418154384641936572716998822931531348694970496978768565223279807112607675700682222794570262720828105510195689082695725616453783043329185074495688362401611423212902827462386030005967870854746920954022566907010310886140649079836789256589442652483503860120915805604292434917275667020897771919939796227741147792232445996946949968067265220206850639224240142691810632905386698757592600031386633608344380897235236229313972004939476175388527244761045739304667692758435802643145423814509440344139347055761051635253166055610394590918804895956230206127122707114556600197903313577493051015754276436739172181698191420253080076031228002884396602352002020454438290994006126813036842680267435801426772753046135087908083370118231884832205336891782497707878533540158428079329929717619009028569578806548363285348751430506350641188735685042797592673795965299370210989529307788407755131114541151328974875675810908573917001010776723666332336200897717187670591545327963075661337618532118211624259272747246994682679514813892799615334267728183911132408991789113557898640872314691387616167918764133189658221883652036611498597644539369298719665504614488377381080867575300017362320445006215561746820989748868747560920912618428340251193258632257050258689163238677723410304310450877683998828284146014814576041821151133195005234521848531058095561367940761255331170842247598835057645182331980128489331480227025628390324281934125061368217761531405793824062361624980756229293190282058144291946572712658644224811673485023115314554792828659444938907904081306905822314408234455782141344665545476658657435905808183868756168204376685836045360780332967219709989849384526521082635185524520906734905410905641090846434719993221758284924815174167206913595328045793721178496600377338664110953064346234974194699339985843424178509291926793139570123025594189857889069239501814048600398944074420714756638774801368033171274383474042750715180777217863484526214386997674923867781917201322683984302709277306358564637961972446399587004414174988948539529750091857401884897148536170919838466521209937009246931968981244642343784514053227079339445403437286298309004611730799442799783856308270669095769673296942801461906120784929285941507553410265109069108297812072380600808667699723851668909184967317148861660205171885199667968260406830782440753570012460257361372086339748268817403793682513376007353196998159174709545556536458582843880632044608327454377227331597700235483997419034145839604985430167477305123659738648246986928429465297254281211892555934384471766556609736016992077820923064639347566418996584356162965386711201385692384824718470747254960053395120183325359527682101583149576536297067727033331947910031629212015248931919226035255680351340854670928562564259005906892034325264284925351038686064466206952222946632606737859428518487657832280343892904602525178939694640773302734294063040174141841124299474225659298960828524103881015367197688360819103353524600738119551366439728785755338277570036616764633694845906305617890607733290936697738778590313459542059109353426547800795216344503080470284558427469353673151060017822118923203196985160453165874347720860491315308079312793138834452285872267385209920103273258507941763466187507427617100474397648619160947588032003943507365461071603913708126341491834787154967384357098039522600604857626170297679695402443815410896392059656693278756324657010044336642284548146629319904578880804373550440448355008336466495081866969774271580408860580197981967388271038089789436186846216999486121887577592488295871111581029695537810862199869613383036783928602284561722179092822188356202269280772717227721779687360545511455339501118702178356157039254182875981456918864801264951148145580179808653482187442510954118104642067977472016871735984922236938885565366223173269523514283841809776366013340765893196085008019905883587493193585197625222419730295030004521420748801603406075013340290476654653863834052242581106960769865793407799789277368743747757851247680253835998835675798153614336413208891912862556092453874650417500343365088880082112877367670941653578740308406444389258780531743155670802927716717670896126552803560567759622718396477052903677460492201762174632506989708967857416737749467794635749548160300856407423431196183628039119910266503511418657075447454882747223471222850584615753567741308770662670277660573220216136295582338170626119570232140108542541507429548143061841877938370021797109777673302145043224775015407161248393721534879216481006977781003941622084068087961537137483960959357352308139716171297859115745039155647944368258701828092593583178597878497107644497179369505335074630987548901669707117647769520913578379488057615727185589895991228569908400243932691677296232779140635199906307395135327249676748478236753232170158843936157698547051053766921857715683222445841484246186728003683046135523709250793699020073637940965029826891432093970927668972012885537652025482877190688693299100974962866171857226739674540598240594567090509302531442758037421410770884743856129694025383457710679704608501462155114344372416852818642704940154284526387378623619647281590024978926865170505927792202868829235437100228143499688046947213226386309347714173501238628375591532250832869289104029035439150621487987230575605680393700990053637301278879633892695986523568417633426024774118480002909324983449857646160029679449430649945190193706376545109817198674960541861743933511731970422343652929804538333536335613520053903182956927619445920203426814620796205955845224855568378355861815819863467477762948025873646648114991280076909656971006603968588880461644574745271130143717781935429808847782430431239263664638224414766370441999328640242578285061679029696106718847222589738012544956294017465416156197829816527401380558096401480765955227370937127080070568997829242297064716112905889080674874873203442986993350961522549294778981293597621205837550414044085729992239172537990802341242480882649196857883851669700389426730134943697653285031076279698929882123898824410232004434549518591241392895109231318357108108796792402991372196256781472790452876767433900447000934256605933915552034443259360321298303703191566226616885438951847300344075577694813791655622072541258648486970027778909055877144585229655529001530261663333456854302663934035925142474127415515249583903603437413050945059116233573825963740737512657471579472234487067633721353243418642332193276963079100454265232397019556996686352343101006951056330636481651303457177260735366894627077986392528037299817333172091757851015708998936870354436986780423039047860556594850649988992958357600706805668592078128289207466801750904983651458666870194895635242123169558522842300595014433427216129392832470495537177945017193344659662115703208638635358314363889381440870237413263453278717308385467441910296028250695725602441210152390170750232232188455918975810964939724581845950089746986178836585431391997411401405901636342703514714224620372923022076326813580294325240760771451212264595073556507842939529473726840297076513447856850794096377817285611499587850405295555377596796693435625643024524588251137856662557973315005498056061903838245515229715850216654706661761318219265446092882622598446979757330702310832111930466096701902387033350953929456931028972010113398835157264532979398333945287766776689165818831076974508927847374702295252461967844848899072241356645019990437565932200241563172136281239817130831239298405125872583020206787773441925870879313819487443282848074320570582099685317276021592297221275250106551872080797776124281996695792526545954020872814399808793077853011270923795896281983145704240361796556752698646150548808643863269334185859517553812385516840918660433837269541123148655979786704411457875924234744930842305811547613526793987780504819751558141151242002791776279230361661304459586174277941347842917022034587182602608145815654361615790713208806305043890888633245233211468219576188102766036173448768108666262663379312976337678362435312149718405004589865631566532023140426304451396770229735122424789686557632795740050018799593739968417316179011595470074704356405525824357822767883495014313738074037172272237478258289483863763388430474168272510885557567169295575819154845435733044193599275245218516046800612094076601607309101848700805197798447125687965538989471295068686253881345497058096704034956316747590567470024989344357800647062666663121575789584625174377131605360982150626948525675154084411476114716613095708147670601118481370522908376044293452996685832186556390663488868600023783946113491885695365959971308886617022706011141969179453971206730273494928349336006803156358150559953441302933018298609639172170664832241823705106942044176061094141292730900332522158597129149654341833508910803705531164690286613145864589728938956530608931898410934368944690939510509519072706734471296406542483448551208231478887147040205447812395726332569676502215722794456469092480374732282841225268424186523474444981255601403202222208044157789445036231670352343245565926853272159922229917782227862199050898613981733471525091204360620589679497638461258190378428480025018258474347443119928933589665455154124399293677324668774376601461558141665334686882356151106361823940094795750958556714423627521250921796650434210263953262354150551405188441941466521488052910813937187870189374282011485707951632630090685784564942403535114748347993414170924396773515198877481234380367136114606890806862273427153262636975211067856019119391436577243028987784007821608141946147870913592733824702680350851235101567315162240196313155446533050470716670594725228047742731047397225675536417072549786300371988949832075355745614830497521379270160089732111499814662158546049221741435491530672594151090792394005707227606181195031789382874471272849672191999508634754424947924921430605464617973683571742338756072035797427793860520275158047037945181550531218515917981848070058822503766800631821605625614918278122150609340394671590125645668029595228817525006389580792852462077626915356134072676731525228383162866130844380963826696741666384330514328254789549690758819443675768561934808536100063034649654877743181702170209811566532215675609694295803662225118921603276252617108999804856988991292360685533045496324537388393564515762779053020943074799789154829405660259710357394121725190686127330275932429681668890592535426866679144833278523183173747458272533831462520464497740638557701933051428499636759101745222348777978630841036282392430126722721889993131064381425548193498284443889132761700731928452723562311178219046453857948051176978051253367855477928753413392856798364195842033745155785730588622851293355313696986237856048790124461788030317570076526817418017187314351111598926267904687077950831495962729922294639880853378100848715764162804341824709131458542174557381870130747204332987559039342724970714055997547858555123463102658080118556443426870440026369749260339361530445849591153777831160891392340581548300809974306609069194414990932734102167537377068835117719550056338343485108820957031994345034070266669748344497146549780162170577434726289834713887952090608333067705831741867990750850947799279349843383821277861061775540075797491573947789590042580673298797890018687092804838667262513651949966090780395516905422419298298932475005184865300120194647060794907899410737129424264661835012422633765659830604732408111387389602572003618762572438748363318690281397428695693502246200999335632530531221843149101905823613406180586412653616992429356745559939720636733777448475167247441845164735494699772840896012678929107486107544715999263215175518637361616274877226538563977043964002628761539974677366677480092715044586339496570204618253078765937065640676177053418661571598238326346930417049053479880707732880724850414457951486041141765608887216839019827623129111009208568045276236758352921538720263027404486120551468374034203124089623206780762784160915180207569455297303732217884433113535374219385975880218621861726531140457412839823893381687313390705443845079360725322515891599743988566387619639941371692277271389783284046869751619787918018383742124946858057596167620045937270642918229710997822313139851506840536609574076019034821224965257412416253395838761003753103954206143872619943207480734920778060938351474657237670247501523784633741666928233505881272573803809012785312946783274687181040371388640450966804979163078673824632438914035738755090415128060822870728414160498283175150568569662475406293771054802872118333382921019694005025810629461025496006512556038251552772909472480636492512555032437105903102587765356634614162005964572442761829362768494802956581825947574566793931968544361968268914959473745066805891002946623425250267797907935527277507055598894665155840197795205220563444466965327762120973658646293570292141834611950754481630934214710333219039032355663111695232363260497193996106891807682408777660455468947505903045528231175431614206107063117427424531553804721214297377998306476891634966387539738001213433554412181638796872242532915475320101810261251143712042373389122394526371441671553398748305728510747343977728051388882474903967489866507417607239711976341048019017136218719354696885513031231688578968490272975848610842983501276124899106741027505908136156152990131035500400004532306449437940370342423522281457095386469524031344225055046469432963576063234344156477422052462603189797558283013123209109493544444287468659954970193152687256178063845285121078575065381497502572557662621464151583615059252157807951178746292064987835059757079352733139095352511250275727689606612973343763922199464409201184053528073132438552705817147915073486961493489641998423441385034156852670159730149398454608115332698898364201746658084034539819198218834745394161704612696855618224694153942182726437431047496222805127373766565677389538037502039375643954343021310207545461526578792172987461756919181600391471848585500606056489119396199096852114276937573010969424228321381946298172145146019066482735185672722649556230708769104383895147104865120101470284656992974222153714162558951354638688442185365703554603607089357816496919530844694501799153927490061081131348897722093301397441539507505213061966555502265061176667948955342313259542957662964900297771122564974408824412283938622381490716542029499757174803602280037915411055070916803736309154545390659673373215369211579122064169779706802624283955196217234833520243779300863671050635922193975496781388309585513897504335682634557214239494551237248090665146992026865487386455521891450699921014659058531837057289674090678894341800220318095697472830981625122985834598247998511370955197274950208310346631390115573771027094560572736695061222871805484868999252233936041849749063159582849575797260018050004306526635296863391546638581381878302016401885257317237212621840094528621689810906724786955839618603715025597203194994441262810559726367851702727473883453273232218099292201279448175038655202562242386350303265301053651118352516379786876358345320229995708001905126733935259287444266371085001854416682404455545148927245930157367432208207139607687841321949633549811914362889788938021209387463762418614547420193291555518170787837144147695426990477390698619478865382193404586827517593824724115501194368693159848070045367431895701934955360721883184456783614647447039953769731131820360224578153307169524400628628241001103826292638854750718247484391522512171502036092659313459473654444821120102802134901715309790371592100806115021836658691024284384458477493405678892310439949379682842990310989639245966161422744009839135042693514115641159318225062307885193346254341257516837038123422083362104107709137160183233318767503209370496061975971225869244500770722261325215724782318756571995136051273446297506648080167653030371640767311121599701879514670001813167020566089148395174015879157651142793583781299013223918564183610035624224949668474562091137680599334881135506847040432823700076091165800169166351299516204294011942519316029264643059375229092040359880721046405590703542539893336036691515380093196617740366149134194770138882964973485918254261349521138055912449671904174200164382517322488125950347159915388604239448930651302367965070106139962834924691177868186441590773213045795622694843849076272673323791212157537469075370360938558336190783887823107529174532323300278888844650714089916489282897222918409658612756501870233630382369374745715393222981273125691708119976502377655155549230806056482605179999513625444218583747985597941969463445550649375243165777212531060831287426838140526725949862668336837506968120321324730524036236723119272393362452592855995276982670177705120235761823687664286343762732847744922281248241344664586605071508459799253713758578303659972663551669097320215088394737153703699651059007904623127448962331816461373265019798494630520950752302111871448780744946526088548242513544902715255851388495507756678029481430360637891655012827938612356945039395861253672931107618910294843465710795644477089151644868561255142113790515882024094172389814011977805610701990337572635509699562467185288382354954211170297606940790779948712749174952732331462233076477575605140932104898024937825508117595091363619660135851802895962875669964679293744538094616337375378137685493793410138121635156674732436740996811777670973389015612054589651405943420603271549474387543123965526262283134062467922529623860610876601006989606801990466253864770395178136598617811682008637557392071860726559310655025708082498373099481264242016991799730565186482140338549558816513042724153356302254367234390652683936396434986266135465044714907343896762671754423233888090498934048704853944161927547994428269728316809162357061070970969711636691575250355663101224282450595860151403623597664376210670682295023379376409082220088313334445374901934246600228452055626158280294236606949000478134857648690486582233083906757116862315989781989947904923285117153676310400312126854402795917691490043106633791179362708505104878091518218621704015869224569022205377295959986917819789743716434503058862916106546636541171001272398262612159413989783010822286680046396300215132363789805624481500662900600817863857830718669633781485866399904153352281230348138382667792726145894755755297480220131510597827320148286944514450230439043552832843947024953482809969506672270970610563058448198391808760304584693264984397352334523866347301615499201672276364240320354929438129295778800993564505358101892850581230769353096885841436921685351248238136260450070157619226955807080226367522301664871055968346725685031051119263102100095203929535636357992070790261227382471611222072250628198987241325569013508456517875194802397751800501182222900122789229964513454496529039423722642180513811581398197128393464255639642263726370256405775466916244041530462744520929586448094361561599633935673955032812228506154584504287898739382387333784838882198824628106522959910477928631449691084325417959401640336297971669820545764124849216640942289113399634808468888177620212955572857370796347189493300926262788423488629406182052881390955027839820627273248314069017976773835876582577669075194834010399108032037543241805796830173945042174462856565117564976090746026513342651486320153000135267125829295613546644989576670014499728459029057361869932563904219602729684250104046968699143820626087619068143952369449892534024859518156770751760211664198302451257671226081964596686772042356911692238441657593688164219310761996300116609881956863004703029319547365290158805440477455900299614991996874742226971560023990142390098313461282097939122212951544685052519731459416084680310168350972555344080898684623875941896240556441836906094190302035547254025953759073813189920684080157176950923859212671477928355248349348893771991183756876994877027880070913557644289421651754272688758435001187286371476050931417202509454817287262624775972464268522400403272030841259233114220552422517435489452173299970074121696199785138499371404957261497226062129525311290652399592543944058144768089812417709933940743276754217785057758972635680674741243140979044445570511834990056977098962444948071078239724631454488607770960722104886287826408787180701936633181298445739003680639098318909778530272789019787455301653695239121483193559778732824032398975415713034094252716903275429509113655389324588567974601478982216991334909952768399809880902821119023503767733026615732777350049135037991870518387893096730836847775590827693325934989821881585462722657098551617828140646487311096331844261657815040358419968649870987815318663053845676845655372198264319163965198904103958027192148070147097722362330854619506723795284275994803450289245072177497686359271996151103148728754453830341424238298525300335139774842543488189191611409732166809314090916462204826948993089732911903123452249595272469104377602876820032668745696004560577114060146640935012073030712935632873462690711141682491242781749188122378616937161455601067221098251862505061532737197221314405336826535957308636547152849312354057588889711254988849755616063846183280070053112181518646778870441125191251875930180933672836666069982616067190045506200216120118638909568546319923425587758968730635415749484439470798660781850407982956375607289957034870671176994562312154067891230331476635294071718522852260907118170561399044034499745251991518531997058858639687848399623024588599041506404430454243434082881568599114665074825632968689387394975663781744350147182848725707335574974772148086758154951562143671170565945966398661044371155865932552284999985120134684720366623904986366158825618139058607890930971731082124024574825501351571725545121869066009697085839515889672306756533598563103232698205788567178125495913800478754888326760678806129320936921323836644017425068559693067474238450671499949895690544738757403133423709456614577700162454069024436918387649860738656063632389710114901526457341010553047427496171568310122878261341481654486098971974252206042493191079123380674021877764360754007958863078642989996622657433097219952040801282080448061017029639422958403324108349699825129250614051093842157816742341398868501628734106001356590582307711715327930641353297475115860143985424579299475685670018641470634623850245377691150770528814307225475353391026959827954627122817835165870010540863072288806854085084295366483340341726935774459699099954447826451503432958680778496766396006788933072338024626594725152475462478889751959906886624361851014390098926137363330291360014677564664489652634375924161617369637595082005950879556326690268468965898569337752430789268046984151925763315581898090926447890140303962112031215483326097796803335440789411542368233230707215359146457802288188488261814128082694373483646314509309705104652907791610904098200518952048312984242505264815689631412550595245920004641058306352846642268484662178014240491513538566111134571403775852289675702014331263504449203735638265132626716100601827696656880830587347942633905744746637493316178654626212280784039292715199196850075525278365132280294306841125170542916788752403595714047297236394737977850787310753259185073787075412969514071177573699754562274205257949551772108042487973566469073869184457613916455760116487958552192128605302436815902652420440172285994000016963912358203516663040721969350951408720754458143671537489821035958209293001843705306896623917227928152090944888076422192138517769695562251374431233041333421707619974192996949808847155770988170226256191751860689547831840518731213251243051105978217050881351101033697031122228071915684491291572222233164684410466325722967068859708618954400239861905592407613882457167470792454482841485977419790335164088324251106361246151498845927351327180681066721686834647038081402276620758380233593842103846625921494402279868452499089317152563886682889401984672104671309840497018582673649285997894631029754558101481194354952179017959570921492120105654438226495301369451626171915714790930679544942879126326894582913476646600555016912305838273254219021639214246305153353827106314471513877509775328702535455855734035290122057186422084851527111382157520733918476140305412803611477049838026933418755865263743079118014088178744101706230413264114410269047115293774871397070621339477818354126557663990711453477043976802168011251846405794654905951822418961582373713830101884016562112676194641980757385330624968434719331845101864094463674704094142221173340465601879763964048001079691412983305351617179282437456547747445862944098220304121705380475510450788626189224002701126482248255764346528615571597756739062349028173380532738116908020624459421635931147151926879320279482268724356508999876265646140591379486860045933527943718127307460027520540117690991996881289143811375016353575524588854346093412331354334512922918188375122425487086774547362373356039910626850384293562185349936084694840074404906419259959350275186016409910985232550887451497256842630925865735330311576335017918510888839322185140498752946308665161609421323288073321385322241953042583927691516571323906632165667744908351216895735400579641716273030853236933107328713479219643265819126084257066151332791822194636966412349243662728257171533702351868493164631270832634301973152053036575045681997891440238060280720294579404952008815905265210824124680453450390974593711072639432347537254196438047160203776478588838552455853146956394253925565293867447087551196758254166906296731785922610117409211158932068627602639923458912975167449042521101631424994191152398349850919913131728069844653581971482264385119392672085845612076056193582329409442926776417061782873015265712979737620910351822199060196470073716323545620954589928671214549317053493469349332365725847047708681399228846672502748324419198931873826661171642034507498183672089478492419425842724001413991240035619457292620287244397290987923447535616550305825323946557465423603922717550434874331533594017825298267670702688264352673311512602001849560793420731921097869959825879921949034530988631851487810155773385800756603467056819636883687470752629547771732737989088631303617631060752330609325686320928510325429332603442941717416265632534931446653326636156170870718402447843585471589547776158135354756319885921731272490606147724638027197221653922546507928544443557670240744997214836062523418953045643217184678733450187764979357218640996150752877103358474071893357927370696720307654945904789483724050589594873446629114922823697787814795573670894801632131486844010090355009863998759389658561786614240785209456460825794152423975423713932321844314210451721952135026280100555420667843030733311119455704402349692498226951962731149405989387923918411889039226828455678057554360363986851965392604286452671108433819678322149633940829064735809652692884481068866839000945376410971406839676599045723869095057730507943654300898692679493388260171341626819733308086684499193289577203621014782274828278980530199612322844450890024523235042083792330482498638916669214190873398500137056644326291087773255979578897383832018492251021145806138447648467001521087288712187123206789017726679969954020743772222730705385072147988068018235696174422999166796192671304581456046976693703720670941646804778867106319156317861734804466536119110170127595306965401331997937136893285503604004953186471090238623801538470885453002338092065345034164003301123245181950605402778872115266243721990553641582846961465413312808634510147288017608945792018626205474276987883796275465052037812479343036816154752604046793007321630774123588962104211434024004989101006551076927346473466013373620577913644311414764080372898033981901819076986645479445400945662625081378863064109972166242870156400365165403688402482657115092428360192602363435048678017394940443366646263799697905205144764255878209293172912672800879370645397194413500426280234750883526484043091425540420392756455983367168447682875100756214107141799395158922421283602895367213186311511614947961433758732576994264330950538055971203070444481695534992232956513137389113410122099114997920799921975252225303528083931596489592916034381229456784661950182354886622157765761129073993556075912802738617925115782938198111133663331112614787013890545082049594890431073924215210130721790772198449825417203399357939922432544403948890504318365624202271324002581618518025774222245239864960451024899486238837231849884765527857292856116462466972717125562966554204279169902653523358255265656389145678953518740200790947537784012129526056262947980445274122299740325254094737983302172276160932182400864810264217167485646626102937836264544825986535614651683261257753720559949631072242172964930842140840221963046921030609470265945148721929822559969868130062866436893851403213672862574700798133625859585497873747756021024023392973811114750373302154972819484130365586858990609382836791622185656373917856328897743858429468380778864194882208978935013696885249609439142920190889316777748519519543660752983025633976633889180751540728532305259095302231754912881128844330363989739874466744108230442590085020609251875973189159333531213167617459936701752891295987511965175635030227860667218350077334284756423334357279940656916752053651804454051717371522874640759309350074702304463758045640776747065351455604959221868750048087938344582039359862826115995767372315093702860255679413365113130071151259283719568346045390917882343628971994660464917447154936976270961759044161821403362687134956487178377830567524533434488196126082102140711813539077281418652572277301265787834315496214420301982497844071038594156036245512521768372896934045531277781763910855232519450036222002216485278626925607608496179619787364498252807602113240824252427918172562643935137045869896955042157170580858875908721277555030858465856008604306954051640146597669933548565378868723491622374389681702880317257700576196027274455782794592998460478369758446750173977048592504374794159608484495623343212572102287980292855960476522406554858481710377540880189878887324125534683678493085582872691988739020309295862590392535002899803702776129529393658633915316852958310771655170954417666089876020542104876164066275754288050447998476110448197365179436883829653076421540087090179345384742039295444917239432805643745902278327927176957878249610990021761371210753510761243530311311260970778154306357548267545631579914921012755618951950737342520628282250291676677496375421270595477708971749357400163998892408410678308877170810762660426529386343382542063014542279902850904810722004762298170223579312609993839691241651333106735535812347511415320459956561471008605658874722158174996503952861867456492110685911145924441237053139479735717089288519584964650283244001077196194509356258008216091784932467106383188026938821929011386377577891667574480480812909555574144001618852184670937860247992980428818966865633911694384750889565227806995764026186705434905488606638092323639390754687455992873794200580824698886331588090598802862709574284040846847026801397765685518352181324677716348063078252384297149811345601569555239825750976577943168237314267963822962034707974045344092615647686217180091861303130137735461039693122835081775653229849972533092281458260211770112229140089087178973559577816759728230156946226671188686000422694617033720464994426595605469144003751755135651229894639343859979741428043384972090157580422150445660996335363162972468372481094111283025008987441615868496057305524269317887758076364294763039860490234576538250543577499070438057838150736048692878722040728272888719844559486768960494432963849703532817968104907007014458114546098501771639912106934255540096083934761775244951640794515293585482515435599787305585234803530541789946819223282976683376205050762072720426827513607968208249019837793686743427950602527023930934011300070703048513399279696695650750368833260943018954019691624465570724694022384194739475595439323823343995435993168330213521451849708520552341200881202058354807671633748865103613319339401221689096435383403898180821263549810186856517363328433443227606769279945236291719975714547761797697135128091521164941533310687408443689091385977130541553743200528274662028741698274031429435693350148820320575313345281344818216523084972877025373623533898737918938218741086032422559335958323918832159166997756307131936144342894642980142656239888055738717624179287783310144544326710360969800942645609813659936205227142409892395934318067738331173664381115706497561980922209184454304765349408501402681626951896634335806466531954912108772823632781346732424480389538573379988756840551947785746409944658409760705365411308002495423804996978851187944808413448987933430420408145009939899204679218224397443651936457425243326485739665113209282704367424249855287596031290891939197948927350297786052712043524700911408957707218611205148269750566896194781391663114086139537808805919103725884285860689006799760665650186300790111821394542335070556811533961875242721319269381585093076545321848557094749861642524882063285801285460244947599407115263194616174921552166523665897459936889279213353616867268266543082342505270595248483802260751072734352951248746250863091237357076863460567381611044268790074510542552492713221939631729844005216017918668567281975695468209536687814226198891185305794872969661149798297168797680515632063327147588469641167098435002256077944724450188284550105331501314609550531988646220169973907073687916100422226649432589099365268870647039580217244804292835768525701955945087709130297033727294565883986305567916079044493396176864823964390568879492249661869926502048259234383659610888331798510280986700197812003887935231954743185783520932803385897905349828028928973771350939188522573486184080069340889193665025883646649579319140651025220233222511576971455714472255508665277418612147612431992312730623387604420033820496204652199300774601853249759508491092664950613754835903828883487865406507636908141526015989548236940914281500110448928237616765136834963961695971840984195639865097146939591958653988897837522461562878813266752183494066555348920663388926409418426956112217097161509767815864382400831863242605991823260633897997025806398336830414346435183713999670658647153491714135608069702240058738667219217071382414309240969658947129030796993170337219280078286205657209665481203173428912299509593945778987854115447500020229534752066730093222428430515792145464171229675589664459345889020174796930105029524695232459827921911234517066942563238470902364783544313447575257731114248814030075105955379426244237248851559227546135996705193020018580889479386090745855538282586716907077316801097608059395713189148672173807063846096995365947535365570031028151237977976570982335240280820296864455314465666885697987772788201876087459586615269992134781522265744288730578750332714569634661015717168190668516575928665048039630569212448644104830034244747998880796571942774630383526094590230339443002526883300281849882950837559538402076990972789685280309917128196250557109248660410530465873838423070090747514953062027128900123387122922731483197933374533273086521434469984269432584258962981456728130592811660127003419647091716002965235851010294122393858198014299626857773427639557275214183061175062286414271070324774949384222774047811121129177027877749089241602251244420877328497841904451396688679563669871113906373944149089302392794247745308459102074777041743587544411986952589307785763403310924082662135715754169027484473848785268000469877304958448903476905973734536466086793125418678269877025668665322042569367934262072125920036194161864128972330554177073081894216146586129785110705962659765292708308878282231560629629943738590913403987768203881212357374950959122699350364251631607496377446151406610680024988069846206961368948466613824738653442430696589409989599611340501985565078121962049770649214506976525311907103462133636740499623445516667148630020956576969065873528742377723742514355855859036585368823382153425635012312718777875259486984369018583990827593082050653828267466863154219330906782682886129378699689871850119641614322110043674985500186473575274076643523928370400368498149101848888915763954129401155346644419971028604680665141304839930875301720346341047669530018645892173353514187934431065146928520198426240994831093884818793629114671203059287443777039214020719320045051556382858103392573698445741368632783964403958515977990095630200279564843946800162330529808084461023105285851893359767832747658016612034730694499741964338027639572453776730220022042059837115061542995130035792107350000777633905547928317554819594547918539086818646913335894644581663372099832050718401228152656068731971615246909992669709398424994450752788567868600540955204216244886988795002332998873350819764487244101206129438341142856097528035777791224235124883173601427342915298857524514713638759256417279047988656133524861626927250279708050725035592263894790219503987927894674729586868130640712203395799735083714520430488571942531025448531321924432840732244769149991459915166243901322050711000038847318637030849030733472810357985572415843653196701448302320958952732728526720701479647083659614579142990738320764743809751216923313950432458013315416378170797706475819817970370435087947440407578857965433724458564217260745640286312846308284891930558512783178894079574179298657072796704221165974478625678023983175535825221723074213366250502610507509761235732112807150799429080996151330569591593168352257382678931803339505090666493905437621967285327624034539631041679276591972266771283884279074370484737961405675072329039137102760165727303277102216216798055953628353885782949054911950439354331174580858263696673964800595881146933342542185300003895753653259638602445860124712215723852889994746188502892386338739302064520255555757144284642540742645520982766980968005259327709070949252346281914896408120366390166855229762202004967933112147335913644831142144132412625052414416978761819855537206312572824844338568137806153151261916227021779514476120598719385723718716952058272450901318589183191984430480323972025597485054278323990863797167245319422931703362181639013222173983984750913653163042331630368653762882624217959686084766078242646594373801703497329272105968830168583334523092330563672817678602123501794429497545646108840960117609702342673445643722933960471151692448238129093947392880391093946369568001967053633910591914991791990457470589231256807916212993485141603492012635155364418306230287511827922322550468142553565232078176849718491172791026722915308080347518834577422058272354818368921314971341480243956208901557659198984803444036617351046612666330375595415782766022562427611872761071572869737852796612973388922659169027014964249568140393995767628267262442386978622557080045152662530684495701687502471058062216460844780547614596260089573399300967831761696264602656778904245195226096452925411766893138285812999982915443830024919476044614311242715533875442066488431628855148057478968315359211721527985095796800357322641568758519313078214997402018635412626682159310836341875242305145421765059115310166568722180624723185959431414136334588205654198502542131243362356564654686987872227883379866589690238406768261745095583020232591775059743894546411787349062051036851968475326912015295816180687885549433218918877996648273329312047447898654998651810787500130756100598682240980833285158179463579039112263122603549491744623868944059559844653082938578315309634346529797086030648520799691297466587825616140724504183064126837264885516103970442983611041454677660141035998689751256350567788076628510326476322373756119441729570082031113411712281708073753007855841795215863533767715763606089274776071258917046618892684340505352791887590822946942692510690623611262055076126683250457505655584034975150566845390897404548229791293046250887842999653995418516265139627884260374776326593991816425831005627328953264566945100973112272966925204688643844598664867194825716702387763003646950384014324370893995351141316232661187031616614750816981279269996104036800830193051519000901412733453765774413015029306295521085680590697940709395821114254819881415275695174454789236356953535763443721959628838226548607372329394010005909881972979161656030660745615236328377955477395990080025327931838246069929167536298072627050186735497358092455817141115465486484656290191175248590985063929978912536765945527574342682472624130467648223125863171615582216261936772443272647660586071263299200093910389861133859864310123438439811416037959272192763538027361857221109928991217633319172707919330005270261070410465717091897487812486118446709130441724243554605577303480582546227828882090332723215567678320173052649620619983093306259634613359874842084286572306189584159517539802696244872910514781823064223890810083316642722419828116954407096694250025259367776828042565772529957586217763264608222157981187343521078859214136548979922118241756007662220285046405173111441612622630289715017544344163829080561768180192233929916735795400178721585293871638846906694472873630530421652209462439674120221274401902695917721724021925129225736080081381896420189416051340973954809694407743829939175537577129047457213507343423142975962453717596971495822722377981192629411092343741188097274733215740919951358938042419463304685942146952083901411388407882215659606069803298035934718151738656322334661546636993887719664277651055273085883266396743483431108439926704743910460275759367646822680757261879525267721993671961307167335021223475138805485571155671738087532236100285051609139020185906313506683090261051044670630793013758681998040793913903844958993500947769263822324998295107047302305924535664647534226362206254462639563613634310925434159833341766140783407030605764290846337509920441167408333988712709617332879681532102291589679770076303452196456413784931335570845779444045626214670520450753200950574981718930904762635981828775513737304601821377511138285152354375086039390523130044827876220186854343768698874909581795316356779477424285329542384996174875844011786899346529548342315174447090667256918680881747474810852382967339972632733188170314094411902195493912872971659468266117338313127892028475058921942851246967343502497672454988957950445049997272681677709917293257296652533616344757087144769309996193539872652563846179594081461184299333868359963092393417634462322068849632747912897231209278282733040303481237124257505877417536970639609378900023829233207722012424515489998702717800247849991392961580526120285025448468619010118185547451642214237417075377041573400232986048538296934350722437673981802774337577087929861940573843626515564724088079097758759514586257418932432814343112422695935268697195201617617157098065307126451304552037352177458444497283790353394000482895032773344275369904339430979043737470613356590774853778761281401717493809393428723242293942581706066647161446621621539706125989905708807954979854963234828886055737739533370048416650245522023125902547205944629409179655932883080581817336234514274671969907675070402498798272058451490859094759954939139470865798648672225773929008672448305275696068504600099938172634214235209392921335191111499476231062853771553631581961017412021699984631564930008575817503422379818241570845019554438031681847934990013481493765008496485123830065931250439841791959158474031317277597437306251237057919520358290929218376277378358106345811533508024216882039222058639410763081406200387560136076946559183081743921369445087737973412143392578890897376469908381579450346293933865214069652008288222577750521749077903290387561121672073143269735876936838438765521964142510774570985418445797293064350609069953937073367937856169978720408959599894087753171430497327799947112924468869068301610518742983182937518272784938949449226482751548523143913573164302169106332563403978005149411103342111792424707635873582168978991568624560041753627611115290069485840850734857011103972900620160634154516350037664987982165649683205611597100109373766767717868726045692528823061135718742414981005592019454221786329825760854879132892479382155776953268437693086659616909815861594962165147215374204880290058269219860402771595608038974993779662160692320393556245304980481599668960115026226341257683209119346232029088278417138983235843119118233702746849296190722172795470690431730554593541926634564476982641528564723228303536031717345456861318479881138749570053911075124551321634352301537756767794184891455679365655208880010630442250647074997104016945936651364655512204404065579868697330867394351620931820344523751174543164403846555898213260581930014102060394688342920672135535927075158400515302667055678927295190492043816738457502467280050101972857857404773175335243104523863672921887796527753927776024805696758659294130543619829454544184024385411500851858600471542558172605183604750718708825214866161295619945529199058982921520299763971595478491372103557674914971087508866464691826366679370360376810163037767611523280892288468481599522765288036311465427821054493693585930981606196501280328407727503693029484483721755270616136159480091665695045982045216488575962455950244905018314637129723702218103808226273627969717533668440663922244968718728768719467983110843436232418608912340392416189656982581586722094386809654326096464773791598794985323748774827901370259713409046855614938865350911273992111696101297573469126222478630423557695803774384149370862911434512398512685231368686596215799867944774377576727163359183784193470344563804126088784742726684999302741704644635624958292393488933653084975947676502243530859587882619990090162345340933870249368996150218901796524745206728091453249020422420226611523349813225129830214260454713405658035495629150364800828799020559487184949356034739333653406875019758221959557548777853123072818659207591491795235312485761105940572544623109960272286957779760938469533823880915134021339628724844642719623480247890628040574284187822445884758503652126386195079182481995853752200136620083081570297900889785223217072695461488031852762623227374144804474368829826348843797999342277862530384981774969870711746051877858699836557469503068469590200128561692015535341382736282870964851733366326380380175497780278022844743373845520291737204113821660849098320503837191373994375660965469929713810432160328614581340315357507384727486669117809968814614617065330991692829738024692589330525258693234968518052626861832087385918845861137709413952941269898330739034850064245510066239377937703085828215507636291048718555829129262370328632659698542563159377625853982162471874712408590673183452479713278115595059529227091046465190215806457543524202614628314051165302336726572212963867794040491910059285841957660489527427999501946028184534293300188484036777486209323989547925171376964546352923791245940624583000411766307580333298950534954483679515097120124772483451566461639669220639814114693029235203725099127853843157206046656802897641335981121715571269511304810754090209159191922825872539368154009238596620930037717283040483006051104625384673672220218784342831348072922139416939480943980015865453866064422804585739945479700141252303611452668736390374366595643511310864616702895649715225866543326449880135637777812902001404876666448563915275237579578973511690442734769587850216483688215692649269615731707167097736462001054954289128593968810675661353260586964780056213092677984715945270579850805725994002400569843024279885337392464977709692905022957772998325475543710617484490780140406753785370593425312133865778702007344284433010957649786193197792858333552076477153715932471711760452549821947816724139238967060944657209502166126101728305029984724018100830602562911660741758472541938662247958390470556359111862245619840028817361492483954021971081208595831611987656965157113825393361097004769066617023931493053382398479750370533405186946492957949957291241651421658164216979980563862387972308466171469332928168812490571592366241913054570864092793098454117304694093725368068746586577053913157761104234614601162913912410737527606423351203910514733188402602301602504360637521805989805490813047620210044423399566719943105895402351424185185738496418881242195334650047030751518387762387446217398642919626663205172689272252527120971986959465064899239785603023338293695911679833246107233342606638705916140712043522184911037881501359888912891528691164744635411273019528687452013876293348035507753528798417383039567480500644351708552093592065929014536243560804621702900798202560710087286456624116042270927342423518255618652521393875854044668310997491549744910661867623617985038243337874208389882379891191964778947671210621381906711971956282559337405741528873308380062742618047814361427722653480669971873153985912207156171058211562522580189728589354220882061162507452770065965657368051013386005522567083895451411560566174578546865834756913192262987374695872057196602441828390669554132886314067918551624972138851695348172952162135479780602902652910552779821035204157166645829922475043961714866749068061264944912964261449242541338181520760165403681277639283893817809967217584305888892035045811861330272213946408373834885125494841192409768467843819880292033218022437227260129831491848988576538613425147001342369923188080350369758986458614809414475509414346651260105556495426003520674935622392884153307211847234541463728462459261498984982114733711777297506067584123061618515178338449638854841740598792654413741221228605968478425746056881704449098747890761538289869265712774619855817606388813152402279646758706134507219592304900992701156761315748641099718149958320552708655748453525916539628890591943926863608195403546009597772466529755834897676804451259957197238501102681194873984943668177899126674637875700519641003247080020681650985784758102713535339453191867557752394310997884266069192219927162511210604057312127081506613001437013838779236364731119799887697028176956120915887015179131926919385747930020315103836190703317825034272099193509416134294881212564143841691540114809046059362028853720174168717310765944810557410030163250132841375827834071345356797738840294049614739080465544338189564640417307997635946740686780855050057953006241763709465520247515293204920934647561196362635308383237290043888300456595823718343710380037332623510229712803510254873099896843972084626605663027284002857402663425210855276715226554576529790134028235088971797752776709262673649035797097580184931463567899046061498946831686430125273330430570980590305639474165599482075088644667044559934145530460736220792522967235425923459869484168318658302631310901728534608163395570512074119743684660848639414978077384534444115498480442855637771703760250995123952128073531842839988546478000386774263780292407673258108848767035036916599957910604237776248987215620317235739718043470055993633738570379225961685435174240615311187134004288268303407693667990459664386938844554897854728945046039476204773209489202223333780669223641575797273022388713880838891753246393650759369582508577742924473520024142556410613084267731039310532486325215917272359852804720597626204171066106867611056968166559677498944779945392761947367121125792772763858872757178299458764571449071784871044991531264738829641972185865268101269143019773300273476102311081521679224360062462946368047066942837400043044408074175797269370600557015429278619391515647699806513284673797042059102075747320853341602306342096725713695973093734907224562842354672057455559182325222463581007074626639895766863016038881765367555514983104289012088474708052424535766857301665439490582422589467851633802774405976992995472623875206244331692035162754215037184768264980465145053527911333164574016761653961685738637499205518611586824429712104037370135087850696704491761912150867631108479389006839390719759353577345591331587946289930953535500459313848506572413617058083682797008472028612579085916193980469136870667985578020385139338162787891819662271125085148467135321204237253982919990748527052111884776552340191183969611666121049968687059999078033676346418780734559337957948975504245554330071319149805151158519379788292821790364157772218987341380877255461938753378197099941928605665459683978532594599619612129758837338694042501514090879372513815453292333005097609167637956160989114687617987476053780631342293434051745088477126194757844623830352714001176116290257295723097698365084555765311473491408301700065127740071683835253197473361113590751316324384372476703187657285986218800567127640301673578379662071677551358466587815424554747319389362144564214898634584383290984776884362770145093212508221165268143413355092389314057989841654747375342585271644342288023278783774406204181603905256911044346327150844252571882806814532534965680396090885257121152458373971647395690766706565153614466344654582732902811126864469462923680701850493755548990770764861873365057096532863091199937346246574694353511120637332768119869540893097582190218029395249885104745125344637846492388130158663518761490190128131567758125262776533805433360253933214809859923858064346314152102602745926364477858827147325727597057955289021117079602351349140433501594202031685560234420525181564870994801552677511821050344046374795394725775037187488058854168134647226315018115087312370887207067471512207974681217590424780607115993523699511417464023791754374519882759526002007863318297809705436210215683255461274227051975090578702077043839275094834683701860100096130384145752346451258546986098692285987394195984517882182295487346304960394348277136667355411300476050481097372139745716978335609721466983800379176414813699091100721658584723032330793413912057005389536725969307753836991265304010026349377283734872285219718724446495394324843291582982511503812673852562389085542424740850984174030104379716258341385774416454528048102123319989022976546976676554520022172611947531527185551376371037573212911773226167751519948299050608696327707750097591954061633783810535772303840521423695112968470137474289783718696297400055327965181322170287343708910080040220342470168866225842676336867399952804841412378219618712274259002075498376484215946007434875607309086682329324455001236228255120299564886061795464068001740675691572352998802216992074156426381092089364064967217189809623225575300683747912373100946745402993859004054339069888255532286791874843359615949733012404267823682250039434336596676838280438414702822858739566335924063382571988019494451589698765752138898558495130289208167691221688567560390314140426958100224007526045324468113559738395531971107661351999712530158698008781515008927086219259601311490662164790777683045505334163932467496371444495535418768779202611763713700798540217349516211447628583953328704870371286224640092311780846866822659700207245131653243203896044688181133066493647903446845817518864467573261734120302225920244473262930149898504210693447515539043816097161091745012409307239740221481709693327916859465265820864147552182696563899141825139849609689404386327928636082082272454414324004267987958648992370948749699337437975321752772426570420803304280711338412170595681157579683282269003205529905424851981768643660907433310651900883398026937000768883239260019342906280258237924243937202577235207641789999297794493971014360076501074734017792826111220876759256138493846526755622836031767151011603680613053922786674552602732035948652774519326100999288321791770774087194904820632562699847174865770651825027754752307555215211500712202936469790495902420961167949477231545579342569563410939638906613379136908183256022360032342493641103766635254081070820382039684773829734727649971884223840915116030226804357339042200677754482491259281403010288314073618489737051603133245201954295845630300799859151654746227538076137080591995487969712339777623349543221431697349477584896988090964739659791667939606947172829868556778685715544055270549744335196853326708564014204686172792699780563276456521138745521810682137593233350897752975354008936812137048564832180315531567380927863205354762518419911372466678767936962137078148012658012761538708495524950278358914482515344076678851024654145266866538003391783058327807957140821895242362418037803677535223619487479339722767027910808962697419700353887768549111131804076982792211002674129569762836202756103452091733516749077209793768601355933230127761253308634042454815564193862852613694099171809339899422902315915361857516040923303219171776296997390902266567312575217067969896616860010438393880115357220468784727546882039237166107872018919198447478687806410993450493497591475035300070513381792557576548238195801497361711578669665620378815966017720317426503467010395451204173801764089868925358265624063699582466545159553733496317834329999180051050829399307766533862945126740510448171872973701578399807414429728535107804277243305398614013500189120455912775574829540542276206143903648788231141725625502905668492417636585308081959837992462519459125019947060726366518789789212180759835885221043685649418816106848411657482549816664915171226400879505416557910716386254493294519431816657275063260861207301624749262815067038686655602001950295119528881456303334506802710911832133048158634069149889148358487542359803308019453039493689458245744934260300309983504869568736988701106729786035930813537249534682491076328755250151053581502376506762398617113077764574744587973508170634071121854037022125632315927391461572191535023687417726723653386141906880422039641313432975699124308822143103200402812805034439128408117146425583761528034738257524223266508510069921260262888767490128137624498086915027851145709392840405395545681609292526664044323845554631707282051106510836269493673534879077071364846806463909260731542725339129892550013049611866692663298851437223895772220260550249858399251395383849921180821267281623105311188178772165370484574751280591069597647431839303999525648143634530047188311057959855346706073010510593173014576495012525941245569088479278806667910220602392929273307698215413655291173952674834172867772970598526845966323244684646022544586105800878270130247570821347167095903451157169907680241572987435710440460140877074990717021059984688045450422746819982494138091598941841234105585820285663880720326372152189115066223716661135456190012609492933198426360943471583925510105798172026425952380437402580228240740771058458207542119800164111166744564612760509578841779184696111217343001003218743485678699469651767366307793689459853302996274933746923891885290900480868047199386653864265749199174942694751153861503171593612686629696560486545699710949486147850625156105051028227571883507585212556109102412782037329309274139337901394413424271450366669172275195983972800485799770273228893801921345340863062450181215104697698337820826522733868322191944871277220359948507614004098811719444027404145967943974151008863056697594750226436913365426188285761129227145548261459786665595333609328713835611049950679266446945116820681403124464620977373109062227202737291739464338182077496461987464390978237647837321225303687164995427978541588652384897862285192506179615041887531793468271500184805153519819703816639505513030327150936381765741481061225574850160704956976607043770411090197191870257787855086625536193847262559065965471760841868033095033431009084815925390408284045451595893251954823232503175193281366393987907199414289656160573255314772506223238640848215543359331270879470418215114084706631930490423415532355940506521373328860065439917904334672771895199140998220220160332438626528236885753486103132746401620422067276475673476103862126415746142944464467030998070833197841900080968866685600340907488268302665631932827195410863188865518793677798912895309575514373624453555412631726184677634624682985162502706155271553575060483335101565908283751698556116399822766847421716198118315168602544280622954055601540670281031210254384026421677818766727957964968222269881358725874800001794512264560906265055640839231975355770206325293776053858855423279946737014616800472905873191431591513003854917764380610102266550577239353551079743191838880587101288421255706734537891767312039041429151874482378839551818106524321331238941678507121588048597511923940438944371516948303207475549658222772975488690556418889995167384972661220101784466598215677192820107626108323442046805036307867850696994830658791931869664726904191570192959214562857361724084134865776516734092656914338781344636322985158234300187321699346269744654919659853927983032131395033737604314462670335132460091854858415183320097448353214635450165509090873368494198688763484465379119234867685417683202273183362314304746897916198618480318452039991095289900903542826809505317852113154605842420796917855391586159607468743893353510214031050320639751259255028454218757529875318344635321489404983885993451834446027194077095576427889620610221335971476022812745270136217829084331229220663558688323289715082345239947020600612111220150329963835635325176481393148371864681810727117272094055156316473671691775059329761092449213607854540037917150096239458806130266035358392859209314630609955254302105133996375393176803947831642936478162115084452191497606689647248656396245693330793860291777851659860471576574196300448366524024934117760402610442935047160226232886603302349222135928081515390697485838057200717456769651983397306511956084455390126182279762560240264001842086028966149108612872092368926887833774844869698281088348410206053822523596480935201523751778595847056801972442992386053434080804998008571920492526205124344820714952454041241877352270995310861995319692603346685184919121832047774071640132580048757369364395562932093997959419840218330493749200855698594512676538718266226699814373358161251808715899295346456764527752815079657523197400928235400171808971306249313312931846154870273541880093461405149227721142104138866197797759918121117233940332104201878553629398658323422215962195593013792760190227692048959940276798378151267335978654357158071380880176002379078996917697679092714407155258615922298602799668887892578029999039731422524103678340858061444423796125275860374977733849442058358827383915726146299879799521641006121292901046620393974962154535789949336385982496582042275976627990765451752299068068782557361304649107608438483407123960583362979650018390369226644194014206393267387576574205220471155258689491687006987411181194670562002783352507607605054877445131893376523729122712476662301898511874629374040625726719514949542731493424886598395124976677112846188877846368977025485532597647901954608244731452320872344762408439946192459211791525886164346974411572519604794544520112298683340156452166397572180777679624650301421609664548870706540851051661878563834726724788527638666376399126212795643618896321599786347168957182792354819047890730355458298659398155173687315831051580845579070927721350387714787946274464837332772387565702820746871669923116450958745180683898166859145001556340958323604398184767291410128432423998062884697449618521086134427003821193599640934026847085768031765462780975514476689693244332643243321968094226791982304159529775509720537918600145200577267719727405192552975234614188916798268337832316589249552635864792894760425456256953280985811289953729858352760538158296015062140049249112853079200200072096274960590844563914792145302054209340388412845683038388133422703733325118699711889942624348971727045105478939833753401494921695997947497871754553952921455339572644975623186472948722417143306456838246780540804390551986243205145099651398026679845772853785528526968773256787200760068159605089945686531576681374558374206647588370006690667360104919042945658286771137278332217602104724884416655163142464232393895239333644572846944366536971218548134790414520846679905200010277843797673041210316533809025705113283387190433257127588740631743524963102819040258889760531731643786223760615769776063890171577375449233435306138733330490711886864814497439504842170667633440198944278678089043197036512472589226238704438837745167714949948547955928685085402967490711717828990375358455030182782455313898688102320589766109158407427005182950589652334354008643990476922231006931423090502539101323137568048342586869263905948159159460284518945095406916319109714996790831777277518980518332340674497046700407874878932564088312925695288402989704918237456460070248842968638379840982382197789421746495177085959565663527275676861021570854878565843799643005615834497975672278391184367800898119180858544940953627443191302626888627229333906275608074539858184602733695583427133067180735540781409179922559127128965765982798216009044506930862174808339649169885245682542048611017359567159718000068025934012762342444103950714796538635695339658236309876796017460601584725491045245729634379798660962849380183257356246798014206805484443153951618854622458172674452283447943444820163921676512195184027801249611127284883162069571122552194209033313091442387123575250330611275574225792201756656349427385856489125264136607143184586473731550368423792931571215135511137085178233356802824869225761714611555122365135889260136472603600256770671878407730264997223646454402366789374433245846772438462445966692780889238209797672190510996687847875913822872937504734915842406004732105377558650027202762763682352313264774147416383941644526593035002055373574021543464263445872353085420470604001660498369346368845618204900600814441214463638428174915959684817103714986531355611024998523701408298317279773352339150201754653163200960758486479268645460285580051488302579330044002764064593607394355567613428932797819843664797383358914395749783232336057297428202829173826845021401287494685239328299554624674063413209425681818672328094559508690211837886707303081282638573795468989360583360418744095371577399249640883510917244370018508580788271484198811827764361851957594527021994151220297680017673338006951769154440670893206698172254334990948629355398133993276406139071730921428189469390352258053321426099456778741178527524043490994312728029090079242574107055499886808031883918396365827937332912509379701557768574563114625797362236428776053336399812889206948940567111591247538922903194059378311726688132708183776913313011603592219262834320064579699828126480498763412494068550368589664755130536382898933403657159885346197778028554696267077522728604838468768114758194032543821841036467567482566212725407339291533784179605358946179335762011924466030876516396445151087883300166448752297230013685960221558491096809851079242099594099041580541323530800784711825308032242656479869389881025838042093889880766612422354544591177527220742882894241279063029795550794405720571353705696510581097605259722826781879453065285002217399815899944180046966745605649802952910311803307800142798102585525248940058728164133113190201635287471753379888305571098791283307605230007884506295027884313699120925341355510036787295767285300963703460148355930183994027804695444979118570602964135188469820608208928703865951374474706044588275626277558501197020822475895329705591887239157036059208548465012257066681430717752382308938705393148401010214913676026332137235573036404351365002351882718783254549180941048518671999540069221545290716525294984104228144970780146701184225397845564159951577993943146607022434447132309632909903812349219599122659793090250435671354378395827937259334261611544996351729967659491904951892117857253881751366125506703655138995845696995935272374387850214018174570851539845864960979956080012509062157410806106198815574256805289888198274055518761610391412339436701124889069440705665054407633709495757785632428454265869403235548802122226477620544013459918691023681428713347890871793790534025368069781885808869866397713792090615173624153458185960371084794416448376707196276793579365532954177827431886912984879694843721782407825415046327137438517189991277702810724740763927101565433283172390848436494176183717083146106755479063557062725787060848353766645997291416413891538137371695383907690546776754555706643523723253039239166973666402335838120880056702778710183681259929792585534960111881058115181456053567499667840307137607662710057946632645944375258435998834411913402381066483764155280359592313460861206691031542336624614898213005794348121133903484214706387811270172704141753570987549249467179526218966249051307137718222089055311622864573900220003663440325450021646973031436977229148491848728851673458283720011698355131081559965863725746983386858933177569016011505991127571054017682577993187707684839507757597111472990462930025415620242339476946989605391928672439907543809937210564244122264329215795766450067863689580403693306045149812201686714973808667351018856571802140918253206461516593951221506212588048303043372281381946159172413379762169039903272148820465998449397123804243559632760191401504048434555623670285844152972028740753650156951336996212529302523837013347758318662735586032744755636561083562040123847141734510922350579142019537775383433725898448009344530074930737743728231098799289486317869003517565420493180848165915641285153994415549464414647520387505180277211592031568963252543272824142104317278513509711629168100276164265630462117759547533985403735856279778021750027382142607984144095946583090375654769509111801778012209347737310333685564042872304986341078381407548120021904363752000950629352042998539959251329393344685533386904515480559509872585475101176799828865457478256339631368112266100851393049727252441348005311750484496057082450166717268042343675003186579257719936608284421865015138894067809111881382608359111759412803700353382551637088461323600439891642700554730706345734733497492544625796272348233773815096417458676549303104102416917354574183094985206082381235238935751904743403529248310627319413337225615013016108017605870700429774395751776328531884957114043828972366745549864031037805703162061392712679012455334772136024863838229203547820566152449279623008206363293772427997553507188851494478629103070448319775195680896330183397100699312568748783660494355018731233267270257550755539799336113133130220444280851887600182867496613073779328794570170435564336279450595253982030013616493103866306871064046074995200827834851837361213817758808183339199339387501166193565121605445040337599653883242169686868907834507426850197166249811536819395765602495261451476016877943095699027839637257351025034484256604313279813669630214824858427285791761892236057318264412246243614775970757852682678095482556256409114560872841943553583455486660218501079339665121799899291948377921973978298600454983910715927826315914198942824516564460934524306584403337091474601418653187524123801171943853859822399990295593222406266776141729863659882127848353343558169109846355644242922733270302600978702257829628432990831495187279498407692862237022317895182976992697087707654921771747101995704345843543682131601083803338451510972577646936098663913654223669280539256667875779683676633176149880365769634199096447893502054945658056699436778737893463763678234846960562953138683746853107233739222284255958960796552470401958312934645146166550386688883370393722963960678021560052030652381688302804898767917050546357448391129112032187129722297536845462496408306602651301288315210644839856687873386076220873544103457027922557584645467856236658412214072680829677794094118469996109264028908418677617830732787727255480141088465203373221457199471538171192702124787953331834968586616179910028577267761493667881168977766457514230112017135308045464481040958844682700295038244334944837881642202217028082062019812665180793270264737371806502971349608307975895592767553243042690808683158147194778116991707280137931742781355263717543408850738540346375257608964305506522137107326914805916311370142016503096930705601886855964734450326858840016090751954915404877641636047871890912187253443339181892949312168626162657941849764392830025156231707392526419294438224839156606220290000300981736116291716540070006661262322795990973470592044181064664514601506139360293316923160733041501778210171098695219153318762882686190177621030446398510037567509157504572121187206940128408250830875346059721080604952218881463488461645395491470926591966572333723357152362543030684035361300866950357952370287455601601816803725596517217865892177684343111601116530754103802542169300419492658154200742933367550577514898632110289857488081651375545803604701774747484209179705492082562472858972708284215214664481484511612407956549767468168865514697986623547441488646199620999917698319390296292879911603094225759291875098683647093756070153103415936450165968988520828090570003100264958331419400939342971580134162233730887546695968042176896177805962216566920374615169391962344873495037245222840833601958239320990389688627376326240057999505022247022851066590342096134720011962925753062357869069608314467037114372180745352979479651057485774860919698705543547221989873173251972689326077297047585301878596140215487068100446266128335384803507243555650683287573185565919192586337384251069502019869577487960006970505413730535275310657826510851899310523772190077314684767601925361290854722751148535634297089742785702908600059443315125192049976449068203835107791598136463544935884780177064145440628865147421549415847874828308337805091983366017937663874794678863185790469239293027551055233789412579252128465088416271893115809467253840354685850796336839065651513317801646140956371410993122199783456450869229805652209218739631073180422317924778694794873173512291383224223811128551204121397416725984174005699501504137015363967221733570255609090332260046378126524153067684083107225664550765990398484532808101022938829191475438100795987061425361099026429261388316277028698752968423922420560004479869154442881663643584459885996057823459539209781705728975008989505400310303105034792424325296381413527991757030031108603667702334022548556890532764469966802687975344472736780444358605628969576114950041029531286146901965266921136687638449194832814052810337091517885088455571675116144272803553608675861753109421336721916222833533850322804905745636127363747660884977683216741316576470389590950733188412855307645205335666904167553485830969940475198863475006501515154384274209208517887746099711239047748019025527463540090346913506365683630982358996748807784862338442238688581069419266478009750469852394376982615057799617323171710765300919086950021740436554839232346022822607324874551434410694862535886282562176815394871064650670586023675179239197497829942792167441904529621154282208186149188266859580586596451862258345161335506987811846445593765026332694540895925847912080525366878164544847798093769355043439799301083883698050063041672487068655907675305457146430268106288427622793640417269845475921928640244810466185728536386749118901071822579562068865461506127436905154189607876045460654219115163886520937904117285480401626067881760087271192217247466221807628439956532421261052075223661302919811137178981780311864277151691164680065611849254407733856592012682507885991061149773512629117036387638061651811265205185148635611766702944125383896833753789723596749537858077790450699063659605349152371707520517608693091003470130734216805179594548052686987932565750174132060932612088912359110511385051659603144953965905731649367660177372475082913350566644755048703699796708241786401763240842816691073939028625005087890907473335315246108129028835830248875616185019224883794524303624951332110648389548986591304579357809233896260417948658381834744653911214907974195820131640685693483551749497747027966843824643688405696294189965475400181177924390667207219675761917327420353205552910697035917308573530044171126955423416248905397709212619693866464174898967827145124540119356245118772955580002528201879498192843856587154667429057940731748133453211547265877010487919471373695496871275327797346209793548764008306824919259069304374164387866478268394247741479435192773705027895409310147237130780007177210419567352715268006397037190620009343736865597697631806941942234208948610440041858628978500086444772698940441662033131366892054136842879267711503241501121333021913444197433623941806787895414592995347632717385566293147911340768397476185005105270290099269690695391776497891108587058537064609189232907593728317522790411569485419154698063661868013674417220101424676907773720932870256602082736798456903092748411881976057436394863181543828151128153349495960064440514622103141254104367744417863807135849853266172936292688341446507228808089238788147212444600011935174522361067578857009124620789991866413653197472292888175031623547634493129168910906329116637737890533641578278970512052302377536299357559412973113271859761168477715210400114919124024615064144539316167688509725188386485562928032258798325075396340790153144223597233540341929314920375113773701191237060007271333188560718346034433442277235568705193671535864406796486804928363593097700972315645695999337154703840203865655215736981354320115422775264318278203189386451355006860424458690568994342707176629065143601536479074152862951803928120582991545966586301627602255634388578775407682613586726164940405815780629516540897602774000673504500529274681048447004896919015162229642976699099494965692423924182383048759935593996330894674968303300511423815430708194553904637356043724555699963800659677720439457661458799559522835714849549013208764443609087544108697684867063473147742201363451237043557267889140897359254268252372546710601154128481235014717415438183784232008733846122378983343022721049904504446681714884189338317119697817259742504555370789110081637951698872098293301377062315334645981378534245044199551894535372328020673765399319791899216710959785555670685150605048552766191067443869828667377528798291630330633475369061890977569277712718794864451113526538470359173233514117022403835604599330979021909273840623297992839951692122607638106334324952507951756648014564130940432945048472853501363523439846965953492819470423446177894228848650595699689087365231692827678232856998430573800715063244255201614952144872577996091360992238468392093075041377472607533803620360197210479365084844145552820684851367229645121092332835894576326834904559246476667186868584526130233524680671500119079116316141067747083088506715105015599271164130993896124244694202081040763200970440093639246795780743883402784706481198239152761365672059763327892644692741660681845498859177517376939538215196371027461584234856051854312844030484782572190380087446720722323384869587118942359718121309128686309901830866650021539554745069874357406105842321655191918908085991877863712788103788457346421597178796361802269903906064560497209678007800181193372139383104148285733038331834397088059692689158281990060803002016127068094708860077968661641000248342139506726217222122191598756040941239028344937147429405454270099159990063113949115074015703964159415925512604233030448602657510580311840565753517933056011015266378256160562123077845783944259605121766334201031589014238485698261797476434532458356073736904761459216496512123987977422641987436935113727954024826655080010045532659435975151039352357477764823011299038615697824552078224203484742142814334091556025583516720549714032232859659784772665575395899176084577431479701421118001505436306646017936140211159724349925107592321151631068064649073433424739427946573796749244162137813308157694608216327350616751407506163001500677519268734173083797720122521859863007657801837233042843770483941445652009080513407268749228474820323578328358246345937159595898778410107160553186660690225677795553018764515252278549217373838194960254039652430820824088875407204688985253347811616646056533283449728567597778732298424975300667571722972540764986569590651906525039414533670866981420402397427639752371180773023405436494986752773558203756491284684782578941934390877182676183708358987761778889634221164094392439417982010313724264938444711954516907771125200569822937093338009505447610901151868685246044276598638190001966870426683759220570457169312368129269415221880095754997515974889363385532312774816045167206495281064668310514224785574820078155587292165310595135863327011227981998294797259145267075674837407513962352153940071607555067189561297030885786251223678403935576399898047763834265326116332637995365522215232612313718322706293909670679279714418676237445096779678199508306957154144410551343679933854912431283379164894576456966049171677010909892895434077644409551096804383118225344317321215994520344295633178936480022758222986502897576098251343076301267946071849611947783916899395365998380364303393916563537106501561566339777215396891006675683547610906277757906393749002769053468212783181888143199308579403112063550076544513982982823661773891827191038445456555724651287011762226601755749751754193479562231045349866109716981983683389105081492689704649695925852614000080913272428560793150590672083174304576803044863457872737774585937415573783511653196786467284735431188499417296831134559823075088494506754562370573761329679175275121783396996514727543317465403211624377413305315072046931735495558334064728903273254518596918293937791314087028635611554912456057654149766778623655348188656327515025374532271472139455396375845189835423424432109644635886404206189819060323828088537688386763864855749855490222700384395068185909027185781791495048199346576660678047510635685382897878092241896269880198761291187513676778139732899708973672896580105676138556473090948352490010242470074635890011183117423467577837560217555602496325802631686125289917754440975067806053058359497029964128730939778310457167146360468291094344439304489062491471612811228462535485333199724536669235180588931161204759542068325398519423933738514054702546186952162506093092048772280683814972624168265507908289029003326344353740038195221668323547852960091351022651330995668199329322476652164602048032945736412558515953139545485615690060959565116286764612056485869127199401398286664491078015863535074732328443505023041260008808155390644594098296139162029792417599340407747666500179419483371966286124521046060431363834931994142247528166548637786606267594828062603019850896700112703684984225906517568939013686825635598135207771258446952245801848807702870747541520625284313145180697764110884200166886492649313006207848493405457491928777591533046331693878283538603100454015963581907752432894912765787846629698443811711460441005106241393951061861861081909419253204743469567314489640475083585284819292405770255447517246838367114640128309721175313324671219210781476043644030712888082782917050079535956517458612151091472583988048288837948922746393610269698187272343230904730568730976284515494337815059146503057578606348584828114490276108077366714528012293488825563860893222763575131990946868718915732281703581871695692422284847149470657451871395303004321373334651621428660799717483010340537225114184130131670362912849879978911796067691339545103693444040061653116440669853796033346844895973132516032911714274816887999162879925446043770102295024918857428962297991227383776817372090586525738049570049168948810719822146279792237843240871595397786834101840499804033417365248675191705751593497862340181877620809458414311020767802230062076297585549396399626076233778082743592110543364637145745693127915468661963171623599306406332963475511399515261753994484340830383990546221180670824819534133931685286402809812707428512544870681520789769255978012314760612148699123929973851187881972570850124335636233978352724282323665541675701495140268218951923686865226160355232654145073707393179110686746198569181175054057751187700035043530182145030761439744264611580627082790976694773867272874470365478702935879796906313949108371305578466611935659647455132681770521515931230597282334767592332457298025095006815701099731778146991804295136884322913323778343538303663475420333395882755197214938751214234711192084123099081074901684115900983391957520416897641427558041409729085966981917713516615894814458437639116623991390505122338735730993138560677105977410198941619703056357350284240883733766752445896303107738283750935777733545096662455483027923905211587443259342154735328720587318975205250672208043230841060710243923484289178143408855242622336089060443032472116412009669479566867533110650156157810798972058141613116399973651473081247711320902001132372476760872086566034122657939294813695280712361103601234186975680609517722955731489251196598114902289742576071762256520012547282289348082654926058972424104203461128443432625520278909076286047449971998658736389473476919385830109976410193774605409569367741485046643267708522136033602462748249835775991082015210739896227681978080845058418152846062156967052868548554908813648224032868319007651810468635071407152726856795540409812087595782976790535346611795697945850716255967114113928393297880031781405563344709677655510834107857141173026080465341049679938284255278026206701330730195767839737897252946588300227154804452039926823434835280408531740454088257074641491684269126217284171448126523293090189765544236613718705612280266872379520706534213845406014739053561550184107191630823695696204374767812499510642131243696828947672566272027449703478732014946430837199383234862761487438938011539179869234417685999342366696253459400052651860693550674377713447084777142447294113301464913921670722275638866773379290884188011015715745788766489281692585353564251731821749045003237702046803041885714297995998274646289512247263965890977831633625595002973333006427171663837787471681065788512751309161314494149904183137772231473994632286974383294223544940184673082199712235701219222688674394883634546289373162743555760777588329239491693645582002916507048357462341709185509735755301498213680004338178163223037286915869370778641465258363248097845643426695604705537601674548574335654213079281271991071929224930224868254125089270274601225378885341822167984425846520906807673880646745856178379254080273824279485764935015616266411513912347093360659321799209035179665299825736410679149848211825142463876669842771375261879341740764648797864004078025857982599707490448201482714813704654760371019934119979486332946395576741442696130916291304810041000665185945299684976755397977230544544667071128262906638310731758180646911272662378507582669787850669755465593854771537030077542811957411708593644657770328343720918765401288437250933422684242707690270519527724492602763866796319619422559237856221258852560112490484108505922071068543952093480388754216303316525835200804874945225552699050336671836281728016645080826780122576923552120114542697247215391008537719816504088303860446411415203071295529697951633069060288561944973308799095378206567729098759257098209788345594968407946514630536860336738465646635588942814600782059032736869744868456778981268515596069487745115591942688895759637600647412926580340684000685664855111421007525738139712919488366549107875649402402468070815581260705723299399665212398715778422470078582952777874859303710024364836465583215090358293620354312359821739000398794224053918131091507718173930851405598277227900415159469163766745097931118686101842108688213750574590355715128785062142635433010208045852723256816815672246429823750649807435501503423048283662880646342764826889813646132423145561723325016417110959007474223572515000879822365209169571998946019867944802844055613860286996355601065920993452847549756990187136230930922937329922315572510315333606710418562733959540545897798415192026358154912324135588841932203237049535214027083705972431130511343241920808952262186634420574827011418690977080907838447731783769855107777034883589852140799402176005673480081548740054599794983888100227711467992861810486414059865888113316472794032138138623395241019124370025826909090455359450491013660962579066574485389950362171183224269361114950110116376283438451196967509894516811478389815742399666583625808503450077384814285367001599511854625692340703083800415302187378838116685082565970868701976984478304329819095200425023738844816486663842728823400002774745687902047182139819801743815439831716447706354358832871329391812706612890166007998976234808778276436217921764830106704530657917105896167927986185737825086492370576661301633693857447974113722884587210693593594639932223732757841338777551797507317385093991887667005043386522626735166409692703808437463078611550566814575001075763073803627507936607230778429551987726319984358206624000224983852440735235423777186980797226741840074473429291274846066846338245861290611730924690429091794862266410985964939869785301489468178709585651708483157970925960649936333598231004366822556402890935606494184925489960907189992666474995206440052870384213753745514735700968524207569370378174464784096238121222276442085724133898178203568596468822190354945408515374189537844108597636429653108636465828556872322357679223607874992184104207366980346758583669295834237532407941040027504272704457554203122376219023567164810563077270264752779580606807268126565560478205823571025968385850892030425698834967799035506923931855050384341540739739431319853246257611384530299724892077765444089460964637876354435800482266065656482757822501846343373649514213206741183441578744024584865455963814798704462084126467583963356970378604714637534972713571403696003080327288311939708348443961108960014574854208163769892356715219353781753123841825930675941455758311943519829885248591389608514854696744640270474222086877075391135520520079957448448754693450731367083589821816956209811077037122666160566457159891015952339857590884571975462538189177886091439603125555013952516662767541653534472435704734003106336271295627197246548623254600678264205443816740570081159626112756905010829640069274310889245156956043917592058086321875760751497871244445525284278840414034168248992203824585103525806018283959851226153984406431836027981156107063498695371938320171757172844006552660102643725143361882106710874916075933313494814623800981164352457500874868243223185135924123125442414741824313175040071888793506643518847370481302849560565750264881057504119395689828855287284291161431780827584718644295505942338065018809586546885221896251820119086353950384976930389284919939235085954012595332618732633451235591539382766296753418348575181521983098272609954036686070148213791192100972318863283454955843621763385922300331498708937278885584141591812422313525752913640509102382738075777634876469742866058090242173125946273451451021417625990710498006323347622896271778289116859499338669620999381933295282419806177580774562089622681130811441243147747660631544134000081720393784829532763956723837325683100315090285395293062492726059364570437244933790066766442654126794807732024030945466143685690809878463299803027653441881615101757907543072789448241877748983444463996817435989811260814602919081514345902098888588448172399675635560205586692969371724671059074774742199747880895711513016975237937981008749283047396291146728723708148085798040322340116511517032601929181891072538025448386606865102457916745862282657111265844559144430931262528125097294062731389331268790070116816104221291885019985328359339374008045071520825463339193065078082894393991350625295040531742081848583200919291317410873728732891962045834101398109933925174862569603623566327075647841056219823508603117178693706739533951449079414199674375774169100019782192968970963970347722021680923578645759316613086211737797347063471289796085071021655913916932757569854236569310226063498365630974538160459241305036876953400145378236049837030095303319786960831145813312355083914310543248158527009037384487655953503794439737777764303191150477022451810402962818653347932299955090205407147462344423951882975407755290669722033007543540107949570446695664590390372590901914602296856033809057215461152981382834309962647497062953568945451829883269067130291802602187315715196913072688139204214106200611530029154598387214991591381951738132752640315614436653053450907352473919598790779927027066051418679110203991914693147362455164238705519806179500585733954635505934437308346381920075522291432880777980552917553594099160145576011264042730067653513835454005383780626059836538243873358798273618715821590335084494042436978047466825884040479427871327033868726175006236797160349553049795602062314714209274299776511275850852360759132905471734364393590405118032310893645811671412210912893764427083432837675064129424425630803586749362508082501060046971477487930663852962745212972582354390590211553406018357795317510729011659864174433173166841371476352185286250259334012037479256080425502253412421264370809298340757608252790331647819342804482037590644514785660662133089973468553073722076021007966924185635330055472915069046841449798842040620228433702779508545050485487940161705028409241176529923576636179523781674126958886464255823102455408748242635314561308757117257793115144544614945890876849842092944389511783853966269370190537530659161825005708748578621996134361240047717847311115176887059641567637604016716374803546127846615393656704275597377625571964400884256819095423689905644051969980337861671446788655460385263309958419761035926495106300427560785464284870232840033536133196312596136760953628225605212660052671808131789188740546254390029728523772629822545633097314602572619893027380804133460021784173482681012885798234026776252054175216932811063554214852650810847471404549503271321256983101356219222051019209634619452935958532934761606567040292872532014924589247680885036644843305282909439487896514211001418923549222881984670104985946134564839173351646067722375553779880651251955260682861320329312195233590041036574136269922836227739617740118667080294067659273660897458260823771448722775492333069807126830177247690619039417094786187870152671299282128499031382565823369695204922519604198170191432907003846458269994194215069532602352418305133408507713604943774978079098116815612571854363560349041498047354174626751508017239341918652002913564651765783910267246641184590574498040438669245406028006218979222155791227827251357448652675574926780121346282372214112041505511707570405517808283137146591457914704184353306740441343177318231568393315041258662281945728631637289205011991140259225149519231484164551136445654138481926484445756194523380895434845375493884691950103627017138308598325767915960267631328061342929367790497679309408507673383740279114957493217207654248013174804713799291361661903957587142583622727202625255070788406650601639197441173261539801533598765326080035212511545499781569708779390079179464339729880944331373391781507838684992016042129616650795302808347705373808271410908615011625181846218079516873135105451033231096152146554070743255176592685931299757570312235047006975942552761729471973693828076789002591789683340289000427156775838041325501087104237106751393331505631048738561083547921525251636853079406350366769534704284928716007328511845470388260092296521024371281306605102286147368375556231894371913123035079065653405001752226109521666870968473383352871652546191210054836356791064140466231791675165061223361967332653506224586275482722972761200046811356111761203880758504836334000657266783723185653877723891329511852137367775200429109148988168580415728437966531506653405285714667083753718391503355153897417094343563622251849046588969449536084399176793926022431564019394984047683606058106802216645715748480971222832470133639299688188111750878614603064439775171481512782778448940879426580746346157070719772949039281184684116456235686634360752143887347531722966984209931415901641624112760739326200369663938851303831336120064735137675136816073493787213266654128332640922089842095897949673166738325413434262643243170422566620958382725315109372935329448959917222721154247297085151556856429492673092863542145081660836404307207205054634825256823895104750939787424750515099882102906172044288118345249788704063659625531037347849581554821972834841385352184389762285429472166961892865939868138353975899489165481363560866268329072951892998336130951054061822326252237470618759992215969688509453460206181490761838702249330923825450696004916052254905465434527584310554408589948835054339319220802729660628753325175735544584955121538911657448832801829272552055772755560198587272386601323786236440714089198083124241860716517871368007754261913333352901854705024135842631558089973307324295957320552356691376763416840107661366429848272756223457139652996557896399043572763361686102617689373870012679654633082294580090646406223291263103796877893369175641435895562016853541363914956647742446330815367443490647949651056794747657207249746831754947136651713109331965152074727858397525533684331321857576845330160789919702950973042642407965830293056018277372423997228228864519383298708321828232143995103188021364915604969583078476493762845632276947220178117189380406866644056556002220625907290240414951349363346107176272990466873345056030952903697275591740203487169783840604988098589248896958698091240019422798518682931704263010220499074575988959857419858616887124079322010061890880056363588440478074118268753524767757388922286887854218026730966883704588614542764254447905485861569007349139561007957239131288620295466166672720697501189805896795139151811068753679270170829657566809161450413370673573272827096822185121893302341122923891930897415756890677866633959742840629540217431588272406681459488548764823607278482427931439026244544733738231527334978175225447746259733325223995019378509321526208759545682034825155557003215348044251307567156817604971178535084725904113563940859006886030305563658847864981707640664320308448502278320529588317861695740421643425390656519718116319567291586474705918948702300463634153217195242960707253566831113894689469857851861633579282950294162998597417975200481402486595889965874702992605342300180544770451354834365765225129103869433002154964385713262896796833432692694770086153663211260284777618554348478225888204735330675842244094749430493739668396802395354282479792015668434664410234945657063615829167846509043276482937262972001823633710926907135827446193258128790115480940389614214198281020100074827451359697748202897204516932658067303035603308100009618520915740422845038397907455365507333672404412452318963354897621008737977666884068270843389061426509936835441196117042435867209569486807328828102910763156528061909150040178054022022906280006159321675813513238048330169326286815617699427116301491192591950757808625155426091155009606368620219577340816568197351637162373280584289092884461595570175958422198649637158752193943243961412259528825890922678044490213483609204789535773249227766335319638953427513297167505821022430655855192324263639503269023234523336358988197038085392520310584575035718084418448289991689184672897371934223001136769095478088561447942787621296751505228614593758519072732914532256770224355425679768802895516787078729269870520299775988281114425612386469334069794733665471664037057388429952351163066516197423426112550900446970754786603974555019953503475474294324587474226247745859460867259259091861128480542454565867809002906008817072765778412756949687459554519150845280589908146107150027226392897049737091877864477963261590251611795381117184726909781446555387693564374260694858203654936079842639953956900551720095268051138682569658828737671610045418206772093398217646077665680683797033405768691226897487156785854128676328259775081260210849341268484842068305984522727122906209417176436206286407703834576838579670711878476528338555228230031990815234258500669660069587684032947675933049919258680693983173803984385643942123107547642438194869961696371955730049513051439410373444138037905155858135720687065500180953611004166413988577020569528096095278369450001300025490742032950591764559105168470927088016977119096854218600798387207889261779789231843225081387024904319850532784439269978268743882509702891467785284614478278384369581604776507288808101281802610865958948844028069016593474549863360061222934968150539369004659471882170958448218184994212243714683902234217407982365821561746173326567713178808203338323807983907034110742033969990341311240699622165736366430639977912072969921989057644262675711751217393262611528328403788924765433309559541460372220584402677554941535388282863026040336187484814367643123504944280835966803611984712150616562125792063030406313612566188620960166010335389745750594921205648168411482387833312918364659314804047665126020663739800438059218647707623956502825358783565613797952077420212424961758696417535854334985406115414615686086585365332173834886090972164768794730977158777626791848436029963605148029723554386026564625032062366828037958139266656857313498371782162449168117241126555200421786704407113010716801962977220192563669882325732177746294145189881748492996876846986685274256171997331291124315124779397384162849358269408883770026553108015070097870359517733343402860992570823555865666159449070936137854610101696744282117985760150067004714815155178684040535521402952205368603320413304019723498258055942124673579759680708880874990429282167518822538146319310588571243761978866233083364965531649443468844980344783596587218932055278903638165754140768031689027265815975992677945599462124582272312400704396513347641589317244830257134739321289997449982470196260421465002159027848934708199849421874874712405235742021668118376996870091696185119835695666903705437426110688122813939813820022257194415425287178652737645448808020730031042901218895193345691916433051641365071620420029886383836596642137304833010899973418919621790069720645618389795204177388194703880612782484646124126435490204454999189783075385132459658693111844215232921528370764508144330108990730711338045927625630994773302996986606015617478511957271044495143748150947611204421688227707778997067613257249867765132074201133340456599979024583919796220504195145115963672803623374259855330508419900795598024364221538178536781332583383199489625044780106812561220106169495740175600146906395138484067046638971644278086311414868101838142167221489931937532093253265689603231257690783412144856066988747401778982664914609354318939709798813989043387447041515857877853771944597361914285582932817869406281657952756202851216300788628158205076767283647710950071444535814729140476196264663944764771850401609019167652791074370787066453977368011078845603520761414919471188947178822589781700412275597387442665249564541826669407819575751871604535551440867245156774144770351431690288374184694717935064673160113440264581339972058411424394425288692971638026960749948965873412376254498544351246564920712951566702343994175142516562587458519989517019599253753398311117006165398800017398568492757790681124651692845545399330919620432469472784779676681796315404567247055240186175677989282021980760263051802068969084873593116024582265165477658184346127326003415714016586674425694050809723137195746007149937159918210997204537201402460703084797309836068806447465476590120404010812458756319381462508175571760068603503805381390896354019600299541080845011129717664967152911768976117114590711427206668567889586742003699195054902104833576629425049179044492040278380758171851837021136081091104754950783254494809323204536160419789181248330784195662249466136847285762852679568988599772050467629148777446179200534720221865700870026403368738235224447428336078287736180348409575663537409001563911560989676130871687469107146215085803680768856725702222481478689564937818844110257781592500534986956129083004525039793045030677585550498008210048663016608619745041303260351709147560730310038012005896585572922860519011466970108819125920882845456326943270055618685423661305059783520649172745462833903514844831720742335378515449980520807909038589142240502050127433533636909618953786696662779533419780035382601796301773832460355484565478512758914305190995005595928396523302897031702857755542576982113708919283007621883579508579775294431542221326394066934651709851680396605225517075949176726730962769034601767459304756179902227579882677582681988592114589559269449704325797124728800222037230887305183991142183396694877419575158427160002851063169804493344322447899185862956158707162851439794635258608238813066604441356424867575278410132192481536524753390135966513538670286847252290025504249449117439938604689916359707619857018671510558266860655346028176125225834609916249076284373290720314848824659901972389596167500766847139630001857532055293554982164354834455197572459625607102960073560251541459336516972542989330143209431756882981049803201612495064456664176970636130381725788956111793699981918935642563915978672313829368164887889315634244981037313793908778168634906834024649307111183334616266227422397982260769305328918833807784130107510886117259561946563429929376409845284932786980942605360565022853906763443784101110477474142308773718161711311257699974712736178358534218437590812020437006090200873979843662037625894869637029719245372531523667865832082787017023113565412324307322518900198095420525997337674127889318194285322033315010382517728564023947283762809881518576351766163832543384572731096679947273916764273470937735473610436443001009709010800021525192050972437608500617533261115122655605912433209524816239253118031208771376229092223200537267608794543327026972212493344263143278140721716266986862661188082072311265693376015534605274408930289397384838497615842922712407895615782567374077415731151681690717839709990739495979096573184101612743290256081466049891834212669971107065608109184702304818730484739014913319892597114408197558513782739780492584949547656194874955809070408964022857603690204032133739412797736327573442187938370555678654974384880194736469496910890710732293702640277493109557213810855746703282908122161205963124346944783360425347351543478693801504606680704947800992610138534174905272547776503608630632668465701802823267177993201968475530140064799013379105966450298095603857641560008190566830709568867522323135876818608101828915064576683232272716955047744700078139472653359855944104006989662033631892007815558805453849358330205430304257348972466428874177915889972382726668587095690339234974097064609607876909340825266972202126767264096624126827787296408860984238212075016663106549397076862849192085351981454034297504285047590741322519529479519535371065786245817469746841049882673180483316057876304328595904328672711500972596083126706504319532518104402783954899219688306481157129903435075677480699212617932465081466574108999317289160318953098432530759645590419194648790807894895552187583240527704689760583700685219868140292472296696189538437621073971462008636039486128565818340602274117497795916425612000672640047261969808237327154431320344995795121862625680388586372055168924826265448078965505275883984425838174407033516091039760468338060055028801576101916033142114947696694169843741785490162748045856793309485942856070576064984647017445122249794204241281989553959542050858765992847028697902573775698679266072131140948702407564234419693687125388453036484377534888812248071625789671205140621198757944911114547563114847427283367251638176427626297741860068483723766557292033088979525041337623851220611140571762236708028441669902393452869248574255589778409845486151691955808251601498997491166583058279859047783645550669442710530907118414490364041920656635349970612339247409428328072906638044330367868958607392152777566614645264618533741711935041552051598490252344011444983112650422532584858406677984893337519944041297882984078251263610488793237969840149351029618591898769825276271332434614385175093185234908478213059788833556907219714752489769445807926981406436248469716711996090483066903011482044889722339501466163002705570128289795899405143287896993875798562017464264903416251746182749932728806782184948359870225510993963480161412778338651312385037983958926232240446684123058801258101704026778649956806848219064777816201448178968986667107923036366421269893918269391616801114862226233994594394184289629129387008082642819456681417627828443616521663150226406385915780288398311579228253646865655308895332395550049867475449669225086076513777158000619447894317577825143709998786928128177893963736910396000999051745744067404587843275819969298333396733080348889512890420972180914022478134813329711190961987054607566274820328190129449609560971485680231474206551701183962518713839288479872645910327293587031694380942982171085363434628067827167879181651962992743895773558457595387966097388799768656519943697403904577402314704489372374709519512179535991844154072205353825802753020870823389152150269078991804631045918829250527734565514438314301441648243926351153141485717084424488506721402020204913510018767963141803879025241734097773509053878382512266497175452564452105073811413674108900359470094620875136512011018195499117641075730104643322051879846375097934103929655654740013890164443150604147724378685069477174545889796111966254261647405600287642684578525083681440751475490296243750325238057699648681696415467373239002231655747845600027889930960780416810107128260384842301637252505725530342043854911877090682316337102460095921983214351495124283466624599538158471467216223171461230425627524454223057414479490044086431745453225001465943753606364598016794818806005148128889554180264773559832880564677570411165086342338858919699586649340997712008167832315167514890770391959204288518532391969963108950447564628862770597440744303745495560641418804321468834029098261603395843384700344586204123189159135998384809707748687423494621153167773073966313705773839717580095447772393885351617351269451397737076670414954989833374262705249005112965093743380082302445123629154746517044408900564178235766201383668965419604299829081583149747895878463136389860565475507214196794621024257249180220434037295797066088991733287886321243550533381184860591862814667849235363772872586777972465980388292668486550680002616313505676743973628815806217936034686328085139172554551933052733290665167469502584367627514653826232855130108587296447872884978280858335110753751637761896139560445720145709479795016428764174807091565659403197706965183785177821994363408791770982905307147167202978068659617415418763439940405906074065772729399582113490654915694898999973547199376261221280904478875497378027985783055566862733559363863762585300442420456292551615412017713589380502535434074824751108425332699922133266709601939667154959778572394064727398825156765336190482029481575280782500889048653465242411226182951580821964335325732392017897476938180355957879240071829305656229335575571600703074774267363992904776987018390936129581633573153381426189903833491110542338967970951508498290024795466962796510035185249013299365413930027401083722619830393454117476826632842382918588725774253773677720586124587875625284584598598475657156107117179962756956970585562446712455250450481109374638796893519417376205854838742980482620371595482616067046423255096002109537090340329613529628861001072375239319260504160160411764998504405903357301207654165754562346501538563357514416687884488492674597611595523431929163544617429833114079145811417023565024182718940867007362187984711009328822766548135675386569083843984253698519828009998572345111204266529861648571358570032830960657838323718245425331090839148598251674605770937190744293465905947298671252252278087249820703106916283105767176845820384325389373015126717665124300376888197324157292277771149819113359534293834040932405424436881672536205481014265766890592610592038626170150939801620655731011154696048512709154476081022849582551089782208215580669120549773722097787593455880750516388800107133068921924591623682634337663559938397841497896000642056508101239500554357978282635092461045473890252865481249667492457073711653817580746207521238178091908395820871862855317960001643015123379568837075746413859394731819604856881712791016383625129860904071489245512493113866521508848478047809531631858579016021398557567316697798085854413543964911980500252576764043946307377456687926406494103738800043209048233303834164777718036262459812279137585427684335612178619546062650557409776935130545309092623509690989130913552026496939044730196254275792781744841867023074307834894406679795408718175930611784256177310718850773635127403577151520999499168448765689916271489078201826087957908612555102676936968353366079965993102372462563663591842115045768099579966998900333700224930297814995987668276496877244153597510847856091628980053307856731927207971724071868292556167801421361105378338649081222122812112567239475210744663461967768435958238146647612969120695309148051462655727086678688427474044659128030336818209866455277527298150669070991556111495481864908724250034593541549443581434887626646186173918642877430865201165236318422984094384122648724682516365947446777492585246320447544050842168742938414254389570444539008156594512838580323386802535472903408801141452660048658183613832403609882157660066752559907499421883215232052396234345232160289230820546537464778491002358469969891223411868689899228647570043480743510640064045731093230605922495152349054282537373337019388767838318015137552308112883884703975644243185564317715183424513342298767070566806778608591373416593736824461743420258168460884710015922455167782345073631146988501688045776279913347412186871929909336467953892372970795841107601217276303593520954827244918817351270188669391767439725956796988389097014571039476987861102857099032880605101405239489301733241541853839993925815562306064757996193203570517878080101367401033959912744400664336140731081455796147423756911306098005569751232419408645852247464503160020704642548343277045597416391389867420744918216777132923028692290110272661855250169250094197812376478610240077757385411194749253124738547429813463275577516675726808854670517121829040627902586705708843338469000325610703415165364071236969941323208197281150195379572161381435407075784279381935385496418386439222117245597207778262459560502972382264608286603333901490938182185764374991729972145862274421256314677080631380576348753580541211938883840553861633534561210212573302878428132069524829151104017950685844386094040398182906973509011813474168789679947384408400791276191994733185561132920618157906082497439519319169420339998998064816640670330504555454383177121706745159809263557162241407124423617300080729333219136026579819242230047691521583715071349979076376372421693643992593860201784650208668515378964706393116249590583164335118891350365800305352100770525771246783771653472715465309971941812940362242749094563071526091082087020066027541501731210420558733633621372978523946259739077799447994945842185631105639617852820460875466939869716391095866303722456100830056522197666865844121605926793092047086867116310985793906479901084789267608654889699274428906572279879166578260430711150338828585198454869599809399742566535494036003526081342342771052097032962491835136249767030727471074197148218510792769729568662208325660578106263927701004416053266182072017671740464646614057462501381267758084838829805223381731631543212875916838893127800350006836597113407042561850104693914151292024585759202207294527459932618696005308950658029449589809428963816524827959915187230714967450766022721826898692169422408645163021859622006623660445664312963747215169705660302786559154032116329489056463885232674439488818529369387889616726644452941534615103349931742437123272890349459648519340842081839199620738733427078701207310388744145864623464593329406493681836700756846227349348364979470743062718490669885706770731353470770889952063921003427293851403007247703164276534955361603905398643766777189037114999883281683283531095029030927238728415497358795175484669023924186910349375037380857446944093407896837416466369110061404810759346143224920178481364225111271325978359528428298449451087979340805180399773251311009160713346904859315633223031373167459563521604882526236086452966797804313271348057534550253362103592142806306879347338048635784655724902429707285486652779233495654826042075643517412477059671460975163317219687985739980766769207676386763688849932475001087314223267121336638868586802201598373369064174419794732667453335571345961365239949953406300897851741937346289132508661414492808318260489972673493765155483625797985316625054870107546688766433948862657558119914168275949205653639359970188000774878005650783363850000303548714043522626905016536885700198666313700112694610348235979884198114856238494411133170596476352960080811228218396897555020403152101130427766585030332571016216075455670528547610238684041052610373809285308359371729240918731649460177257579462391026059580654726795027988177222977578617493452969684175852436240366229542983325269322796229978906961858738659283205261957208416630228979265947430080868302443159252654354007194155598984914047984825214785525113306543740051925303056578591763734259580877584432290710183401268374732702833949054653731023163219669758623966112515986264905187391631998256449502099834259395790492941093240718483865873250704793906072720921296295131294985103272061248126683037054619359001237746883817064127531206390660746660319996384329570750899827368405413399734959023618315470660875588216836311826239632776019758552259402361898209140851542719409842430894572132529377356543578880517764846130059133506269809576290457014639482320993551751532705080758389580120544112439236921224564881881918396615808459303153624133071090506728892663469190698386746949707322057787098704022687968685012044118976318546194150684911663403657519300275285906209143979996681206590212895924453825983084929323248218690654120425509479591313873631957687315436261574605925031898763204448901773814967671051742732119544734976133649139423809440610935732020559137030078531094681325538401400866156776869663206606384839136538257293549543051553679430626335069981270311129606890695423243150733596900782185820511958357023228495129786014281566393373448277115928098977553201827326007244139413992846095844478531654970399058475534794858205889182101456389439435093061604361354031529013381510086931951391127470185007618295746623269462698404801480388750267542468519176573617953527200065211033351440266274976642684314910613706756723444705517620931935961769752317270784915422126762895677616674891983616458429395221492353487015953710217933899051155219987321854548542795627520028191549934582440405952760499613109960685174428294441855522649898489772755108113149350711980888905301373258996443479463374248934140480659323468393221544665799607652395333892189973926398930163104963208538483724299869920577925899849640507881560387730271875139957985349595028900320152537609750742091021966367898738094686603300845187076241836909314867916759947489245743408570247630964464823960413201314829452813537156267599721532130954350607640384295571816481591995557443393299055891932143060740829265303340844928562529100501358502423937648093269329764442259650036979698557957094752337453842150502443349195587941014291146897132272271256703543869804789837514767805602745175122945091523150224293766432456672641959450206424286375366777480657011927725467988949937646171762874427621599212394311304910670914914441918122370173885946862414759004192418739943945870589801915378360984541062110527528097344452875837127566864593506024061166106421787469491045710307602383295780423669583658526258453793913325344932947016856378709533887428722329269642979393151706917373562233084048314977276586671690757669082746556173577106281219584777006419697553033002999716241476166559413282261439901974115349549311160994317450321590546336930573550172354810693136346123279968967781201000422701900330683050848375338370133978268045537395809654572200259924211816979211309984014491656274997084445394556617487617806501711074954541957419863438672482165353607991762418963039145253214179367732945625125841706541211344049173656139488895094397525522725060687069268356613523863689257983288681655153034691472214547188301421578372886327679639084873452918853883793745433687522549359486330452734489903913514395873602292714498526826787892763826867667726738326931794197634296546447790988918875812073942202915294213043182568579495657754039748639473998540409094763967290064611221219380109136269288062013072111173776586650839918054640237801643006018819317949721294981353677325280529455623943001989132772026494269394026173882382331732517976670966846055979308249684119693439246851748975728564424290697560085432852893727969314793440230841512544027223029659348911662843288870961493774348485824010933683594143254175490094029846301952299141483645979626878337672990466700605799744358234867924032405885817864667501671322220484897709690234827175548198763210184659666679718709118293938999162792741488841618565059581747978815503839071873266327795660321082342557536317453353876697951828294844560322360650936939408500522540013574019195253772185141226249117213737765903515992643636221483592935519498607222829597337464842736304624471705851599748893178798986135755399169778102080552611302048259235857545963421256431097792197625724409075415448046103611984607519792624446833015857354683660654760700801404011240720079428535804039725842849679493455635859741658866224925829125568329063243871172142853855058345613472052362645553332772647144103686677166243923613103749775837238434777060947151650813268840732071498886577408814687550165465913331392564143624015300300079170108556687851203540759101650704267027116268888014230246509024266504459135929039040102928186745394717878348999614034060188791794714189140616823133236899939316217018813301269266312391171837084624730089322889329469012285373623653287865565450610583769197227647574286135122902831181521188997175338295549137419558160042555971891337802037086015089957530601330358122756691078657094436719360416900131458739622434173138440576601057340963252161153939563962889629720329915245890138726559261577089066007639073794992730914995689656379929527211888001702982138528372053282602471524815947032939397214928790521013525530706175756352275654324295874214812017995151966543295746778695198246300505285505625394561505863630138441609937926258602793902304290656350939896929136569771085675292224528290936900025723840708877128602635445615230937786153641722817613790296661278526771934733240184181957094749792106977151609365422182623906942305352189091114710647810120700405491647096303216049424649085765158542509520602178450357902599195972862598974413062317969736422431404862234468176187347258560312169314500254337103649712482055111302091627041416765491478772088612868326426353194261344378508584986190784052196303940689679507753474336986694547227585215704918271295493762540842306814201080915597230420435248303082243245929106173160964621651334835964058656123584047052316976362922643163341308372323584609496509586551447973689193557197941616090939636473172865047958058581592829986547186175914855224903231924706361073520040613730171380059054885060079223733852873144779325653548975193625866873211435081150759339885721304909763846611363102655554939129783525124772007801457009715270346873927246465354271099394703375229174325652486601142589284639540914793030186490021383487310091205198744464144363258209755453605676994656741628804043221655235568084596892136662904396113468759503198931254267629352632857721604547405383915449523952253185700088138725525347241345309933436168303635358228226508216467244096415323694642036093679680039072937740595930686374048342917365540796519164586823447690293820638198351273982679817786299969471087130398489761015095725041365992309818598767055001561901642393811380940095175098989168607492274120363139616863759948397349784864548790727740355431453953248898494699195549651287442245186628386236227006933907332967650786545144957842802814251001921995752939978431655246675119270478189393107029094481446080495791494020068245007042678669316043098953632207523261626205376136713881524244408394780723325960536751405452982620371638620665538998299594670270568497976877816194222312352080267174794594777303281731342332754907747456890349956751659946276259671597120788199859181656295308869970463419760343087776104509396132076901132373851941053167050885374823234712094360590534334099389709908742541982199035904722563836335799467473655178444190433127644756565270794194972976020153360979404028436298007147349545028936605009898438205982790451527538007996481128992416850012919892159215673567765399399216181471844726385959312784175587835888283849502396330873265745658742731860214066867551685454504055248359120849503037281874167279146195880329523065653329859571358120611630148507816268437220926268206026653952307316661018090249044939672840890657003595521511949805473203506937111115929222864336574739912126290819411456345723609223599566796750788773318033133454344166806801280422948939617830572128380754371216574481030255218256156050332652419653245949026327138849703705159672562487967646909657282430607288144157413907268861180257603757070715405689202951393776176275579021626728207266975748107183751638887091038584418419926612496412620886438223385720291573762821881989279534267216745450151102142219208626796271829583287419241358160853979986121007772606835650842120769160276144226547027994636889154623487452103278588691424915365010532681876409339979101748913136365419234740704356455765622126060038066891269225798525387010147180105618475264084016196000645903150082571046457041472391902659369944339972337852259602635802327485476235105708915684736038941783452563214421711738793988318169628024348422073555280432240594494760876448207667362248066990000280188232904458680014814147168715859848832458857227454384100658382651683707957481466781258175211612359513186749184360246253696440900694777780156591722830155960842056166913708646496479437973602647391798643139253195422056294994171154080986541193593039742303849900823767306024232225699241162780160471101857686919185031265536977975323640562092015390910586871904706724867490617390362508888878676433030446058240952859867294377832516356199693514261091073545057709841182248934948513531796750797533831881650697161689896988537699373675074860673429419834257360621457552909814594258681944118910257193458285675398384610543087304170953482921576412426075104676420962079255998230238296771858941131163321756737894375431834626072858223079671271258604347507129206226169317215190240189087739102694589952082631710801861388719618714269204998487096118479135316742554199081168669044350971090606989117608992583623901630564004094344534832804994302565233356253375521640843614689718304497535522532041759765931696444771478469509626865739524359046436434941158345102449038826121553969422019604517796345895492783388648511071248997565736970164291299909058265087843131252714671953425144454664206769363553935234581667381719487897551612341881392978043391915864665994309394454480030503163106468763888365336149549050201855652295248353074130849597259872057286227506446962466103286227846584430712204902869921204428699421675727576503574814246927725380822471304334556009490008135922059945396362840922029444605274133924584942691283430904220047029209723450194568935549508547113257272986697530784362420113146058443240573817576283027655554178180138021382828959073354772116374644869600492389333233561608736208856139581397202572629475766563590042498907575399805155642648989431431019554695172923477019087459794105914083402622769404348528269592469477268705965401466145411294120168684755803497363235538123016414934560135991166021016645784012786528289465637334085135337597579649223434665458239566251182567172316901108957737820303826167897887686378693904485407104487572574473070661031304526107863284019851993392451648322243649842040196054230894605116643078679022250645201893295399041035976135424282968624498332311791675560225849898469021502755830075751117830545055521347411023902522128791197243261679587834748165521679298037383699458707427750432685510390939054292213264054640810438014323084510290490120666715745282470177418949170439173232404434113729429271229879088553153343447868031766311619344707794318119278320572635589630995723319938617240123556785709018063333805226795906969097613679220847148776851857164685566835613263626357504771141603174262906884257021106367134522087428311386589153340886241593549392749684634062330993441977621560602047912877635196994362043059768947528694526887974897811082050455498883421670021397846390796269849651596146490959097066182789553692451895924092279262063904624007331221406513184042118015806706651187141319672855623364611686175723782454035926459218645108834709672271441936582925897683300550889240693940121048484905321856451660355032437308131486265878310146389258116230624098724565649899553209485278015971510537192592777087096674096348163389185786673491025002369329239248226300951005210193395663294210301251004811748684796569943013345266782602753546177055551835965930303900698219794317937818105214844532524951812076799120886370605044672787368944246218333013946239421025301058920772916746494175918832910212163893469086690719722089600038678623507828893624998964785216022203613837807061804820262108087819659236333199819220621534345056372317136943485749632824813488294548194115871092942825652748313731312485827983526679904347390579400627761596523591909916803858477454162258253724653246383389517255232184686763961632868781402491880143747864646003693664741889410868021542289438441608445119999976383944935724834666498541511575954830474306151629129194145516576127320187410963628160809678808353623404640223613214082460021910781974216760990756669366796540927457919516901150908488947340324556696925680933652002730883874428365037616824681955755849648367390574232682371438277319516462456659844838910540664409859068587762934572432321354789670745177997895221147855132107175168173420911724795559181640361476022114034793808629065227620995341937322320007369456259876316150936340747569891121426043182306555630344366495756237878819471075185290343197732738652202520895007612549698282273702681416999974146534778831485914772590650092429382137045790196077659682943832441024857413535897136131151873998804319653802186915503462967109754515381960950417242714072872431924870862833995890884601813399336733485450676957079560388275200524301624792587371773598405463345397917826621820219112031277971202715717572508493672084893554299992151535719824746824697592946344960716404480662941751314886899971813918285528515331533958666698496419850049634932690359269645840226891901253668367458515110731502062202887863767313564679176292130496302112710762596443356034023841831909357125169900337330449562551365862775824280385376891430440420189319571867448412432620106493616877070584600037680977577807649733120879560882595141875782098740376353647582556280681034254448096925151818664533004426853568256778973677956799068648999956033046224399196276816774542632914896759847084080211145200749385415184753799616566859901869263626174949501574032604026564125442522537261975569925923288584501048499315983441442773463311570209725296950217308746113111360728268222849024639365664891817409725980500634758005541501333911232624786484052241567760513645355812393886765946179714802538584799936219727896904584960000230448415826417522813575634807874600026670834899692959276575064668637337530963596596941988700583750825384500462289180860150140452302871115450418592246592407435296049526844223104903681775257670858709606450611084915345004217702697011956838103937855700691684755734354710481464515096007949237170016745118251725367570366661059806413407895716333892462265302743774758337118017643627526688478625013408703067373562027909550740852584206919748072983268225416017870530362926563514030658339850456877217819360515323972552038037185845209688276022050162026260198922671964840060016488108762373378916383810263991580478485015355615629221248487163338134691856924212219647192400059218394166017442782407245786795904418755160027496409299435127834014279302187867638623350508519797833799273699926178149433317663144138517832188407285392490294725992776000106790098093111280635270217573933566441590610451437656385372924018001291871767244122501953755686383072091409127271938332966389581425702257535101292918676527873172419769392755154420143524564139244433939888496053040123530748810711466133472369199891776228591935918332269308296137910972172397496222388049332516005790919671485431219538941232167127174318348905479981541508484427685713611894617075114339784080495139441417432276288968394002814365908187588787475700410327997648355727827556308993302542866549195302451915620984060823449013193176961248158420342538752065110891838322342144310862969719056434957188107874600062693155626701025685458477033412579462150597068623980680310210015916843269902994233764724816730468951438537962860715057666724924169817344789486184756476096478037215319269162888657109892310347011026005481950429655281297978035462570420153085551729987147147803621397977923799358445653518499471174905069890384344905429910754366863642869221533439065051677579819136546753341732648620124875465151761384912986201950972517383027511536359771542677740114422709468477116848531351379627424750396038950105231664675002116322654771670427737567179129225354304538793259603972328616744724454765413857695999262342377281724042307108944153491306578956036004824642266785437298487400270417139580792746674932417869724076362930253131165588295099189616133049399903472063521771022884110623622277044673887189049494032072349599516517883130464229802567292069808026292291096980414980456831506025357373014418990811478647530826448159634166689139051723435061639519597401137819862173595472588906457892522304896338892760589877670652200109823854342791306659317680853214374712912614763883920787976900345518189131570827776364093090500827565704841675056194622120707828149020660411429895378153652086995962230299875106613719384070160458051009915960564327748884001549683381573517985540676091895506941347856008579195178889294914950694218149945168779494272017130232190147306314845536457020859890113337462111743036384649171828004915444492136093020107599689288607148309701328264431216123751949851951677983993955197642719369121217825103747391777392933985649300624051766035025399976275823719099406627924031556825951158990708351358093900383122850280036065361393927608891077955054218227539867437133950491391115188991037964031309412063217872962297374113729758668947183242934280294657654678790746347378003024552460695572510412958858598447860060492927866995401436504570968659558672416898627698271292782776267284092636111211385788910346770618324837387814566866088229780590768214101509860669993532724523524499785767556713665273085302181266362525914209282749685125543178863173210960677216898715697792947566540447702144124791816030750377297899190039182122490641972340371006005723224753112748071988446475238981988017783897587218952307350957425634425638673320761613912646765585455168526530187000148550939364833615516515136012697802433424232764666129267421683867445042887929842541404267335270054749604403030417524701217262024052643645579567213670569308697522074876590777211088628057357543623437359245302188408576027446508582118084414032066832133565552239770265833409258666790584065831152545505107936919580213650627483333157847369078280532327420015983825767118222096794145378760107662933443344119408416826272665185747731246383311250874082177492737686321374187132617663803390144020054070758186593761954268215359464742975528822177947188274075496040646993351500629466734780978309640827746622117449988390054386757319723252355896537493919618173901872109344585225474999227796402164832273437520954510254521899291838721365658218082904187201286188515743412588669756228404720517700056796415460473800841422395284982809898080711963640402348563793960123174717407787824579069437307597367858933546165361848323546975797903940532434503234571361956386072152446768304825284578264487988202280077396144626076510057736972583486602819970527400338654713382326891328962670352197953345342908594919809513903671598219072138900568351852195993230607781240424140583114146339758885695823394742784922390179274006161692506012511703050783892435689939032875993936375831468349509858765045799761495858060748043280392605001764390083818176502459061204746276609519920207217332167142552054878211406970286754675119916195993914755005250408175345941402475632357314674737790690226882317862659675909566976800906331870048864631238017467650805483402038038164675059577281059499386219032465685287180598309363315685228549946098676126367190646455632687182873811498283015422150654901955783550918998392868771430740943432027749461183956932651207709803653565085895208691779016680150831013093996943274978902285871176451288886693660321796730926890231098434963520339135557531415015675148787705855517970782260997704523135751957639939274300733212724142003513478440672221851572944096560042154353054382784983684171720583001304980658385333361238083268635496549388059654676156934752662583111773502323290736627890507188788939855627534314200692122307597667521759046838598346483375209065930605618923284113894875809781935523541370388544255191539272072404066821871926029972486122853434111145292662245709265777552849997972056557444381793651453524479725040333838156498359346483351462158675427069325835880080704181056590027505242115726333512282939333748543039583043009255020383215169758729031098394129074803177770397461584086123467714601136222656340803392767226481033754980681688734845958096929349037276937219082937363375326999045033838283158194504641256909732136779319754612286370364926764015238671011638415515440312470781530704416284788566783905005087804130421820037865903218031650120354106671646939148112475345638341447560696114481135870382136630862035407512276966724371812036437624454940604838335468192490816520540132069958816439947672958613114566356385671382329435659418452895231857616348035494172614421055634682083487199524836452587948857963510270866449682004222607251001086221151328992217111060551683602897813782713663423512109408388702990391125185995015703301167908395005044028167129296135136698667522091463228167380119592149068504035909075501063878703638975204081120753135123624684119311487422379594000772243205833775226031304053821314153734340983913473364868165332875894758117131739220343537589671233264331235887486064151641864258643148802006070705596622376173016599182702175686886288366836465250018018633847635448693583915091327159924109661665151037451359336750466149921089499802510098597189263348940080539176861627222664378886843554730359108663172484258202557150085121871964826252705086386575213803994699430342870146172684654005573993720994105985951856261871306609908498452170314978696158519170032206649050512860322694742513238636424376350614511451065933481944659363255515648830909961999208824768805245827650321295728198723028545551007415083241169505375275051443501338673684724494679061019390603387545708910866966532646948751037671759961512092176891948976171122921426689641522008310481823195475575083718641390598951845404353510555902929360201363420392931591070618214099849029739127768147763986073396670082693966730674911396474557275925339142356793382761200772159415257610457495746838684460898482474723143977836380603176998816583772041033048460922288454563699173500321440752463646783642166641900282611055065353110865063206402613964410306924697864852500818590704878985771244875036957786982534614203402964162836959479314891261711845464138935482346342817854959938240403671190940677224243856341585906467588672157495678017977217340646768423043140918932956688873618110176619654214063148650006354130778862557402842090208158457662656756069844598048293333910573930427916424503702928543536856176156712687364342483359507529027407109885334664617163726591801284976636658914822630434781091729687072104720208398527529851350517020373551079527157045397848305278229716302467312730814487442374030954044278325321996321580644812618156768432444414009992251778477463745047381583117576165767940609647665895825601808042365875635343537856142959874211903334933159778439056631111724447729291449721715492889866333024404311647560395832089941927915065860896532288109858599517035403272476432801678104321123963720283980692066362967783103321272569169159019369781693661623089029720130815609717058945816555398992547447460970495602303822643725865949244538301889372820883254834220756441327200160571167746018455922375665798476777765363673454265023204721930902711878112934086447226808271628160081165409552740285042384333645842250666561351899970937518720352987956989998767371325631040847579145683658905895519855194442679663760521817355391913240522434971556739609819683179540880115896369520938417208851076613487282243542738394348055566528011838089963555032720357273958331575601096377851698079657690122101430889993680144225589582913907002990094202964380611574878383230745856675391668093447389510150288712116307868920959637588502140412926357483301720594847240038203797881193773652642489351433095271738553142986853520883698092223883898442816863949481616178821149778780212554462140935185214622027709286186072647763259925748067566535592626743020478418390295580642531152164173883346779307555959310257211152541964673415793615021848635948319322991694611807244527464586698227780081864256400636030125977586873717658655986464661528584960349659938865540155083233547588663181400181871765184219678813621364737200151461888836135587427890834621307884722448353082559144546597539340833904557472301844476904808065046902615276692658451897460863463821960606879806904988927571935734224766460989134727376312688590705284992275442166604388916859178038495651421012148615696872570768083858548271730502792295614259463032511104414526348707699722973666867052884930508148798711115566396697813603191501265535503788358940746583199008332156106987588542390940502171950089679591927588356497103784558341108622585072596992063928758522234355869392290565376715714889352918538700878519114674481801324347493546311706610479686930543390012708295248813167750438916608367284555345492089862236864014135831728709140175793006784937763360142395854695757694513005170232797852242560324321071793219651188444829670900544045390658629904225297003341823921327675939967065130119472879099649889480371435773635325323332946316933128529089771218753405461302850116621802759479457418678172599863120878009691059024568765141588753858045522898773357186867227305946886805654727999859571362398909540742922444213773548184750968579166320957717075418535660998652810210755375339507181944317488839417059293271609659302880447066117626383358043918520604735155949811300922671624460131923512323143735623027730689338843361033067485757504146268986901493907687895502322623679890128282311378300619127848412853563980382707184953569354405453010057913007114726881866934526026276381078655709876978143610002628099705554320376082611611085359016717469602772218518992997621541414099008149449860925396954595583561230071275781215869157027043663734646291280402827533201707489800510760336545095017575816201523199802964975508968313342139340322348770877202434366679148159150976715695353649646133366001320922867930974778391058478014655280311898143032770322276874996642625801845735356688091415374717857456289318013084926037949853476828860450609166279664892837101065463774252322208792675301474237969337938956555893362908164504464467722130805114908504914523139163904978989146303270165297448704847664807911714633818173190887183633941827383894244521734012740908514282519462757838192125299739270364257528467974109131956860609062505935967046688350698344589840231845719676732094403212162113774110142240514035417735334606401556775167296667892437993524448672034572224123229257496897261072794389917629163817954805595239592194297176926659448538737753693182668277742810529533211815461843958651267432652109979376783832830688519251151523414308675319262970903302797465664495681287406140786157134086790826735500238803927557184779200006273530278193522525104524720200721870239297839577667165988775755823243083841533481166947460334443152876809448606019412558388700296488421061123300597499971611692208126556155319158952769310981614305823231536004526189885512102344282834803526527939839411376739689195325022799850495388166809473412336536082411993663642539531391263695767550946341675913305882659715037620329762412519255841921059553591850262570892481125228278567882855786668927071289837342535916193526798722410341243482593767598557162534170471157311685355932312147078651174125987563950456599517924994238504688614111240306224624670240104908902118148012604925738022336184666664027399534331114708266567599642265464159092935165732823667044530123960033539833290808870419310668555892593009287884208259783708778226326993012665677854881976947648544903537862280948928443381113569863589764460482759569170733569456391384603731320159855659598740029876800973462099413378631697303262414994293037987355954951074698035230782041525695626378711004132132505402065567194992306667371497957182835659737040845548932196648855734674389810580266737590945967227390763335099496010641251207243830207964913651562339674232113579676948826037130818306117218791486219649397655377032088179565228082699688177316675264153806235101532649467165527734702400717182353448054745582848171822323515394324693361819096160606686125228153205079619757765297726898958198438054207836854414254326709762418856209269497065339861782908539096799158195626797772528519146332951711781266978107230879213889294720542993051897183104727057291854963443032357485216909580592007870954992490008823758326825840820438613408089390219247011144071503829033903076467384425570315288276738664289714895609645241524769636307145091406527780290245377548605008107764077527437776728400751901924253396110302176322433556172190651102680803870600721394556470262222274665892911132985995280775790854463635012265896804550579647701360633297234157133227858736054984609488999773923970782391976131283430175437080731880560344400166459018462853285672168981871248781971806366937875643643455666281269391230861887281724442110480157082330722703020345509147262968741743692365994650964782084042988935948992535095984416866710986471389449628343616410186034702704247055246352943100056256628297159051814302152281468661710344432642224549627614885956152924342251090787871772360209483825494063378442420994044777795173370732711523598588240931215502244468696196835364533253347868127426098521824346955171842419776818911866824642163918819956759468949914891785366385664668350775129559428634712499977227071203147208915437242741292294533176237916988753372497651931260215489410704139705971331720980020301478340016431085062968412779909886172304551693183110816808129598353459381603837500242537455609087916314686903889737722150782772782551084604872622767622916058968671693640586823174700680436396973140101681191714770913282219708218138613388704632059951657631809406561811237622445259378976093522636277423805841147482519440227394660644425959504734919949284261448076523584083857015603021721060107225468696203429355400874758584489715718981706640381515939115682988823804126660829831471839577647246645136488827354531576165170277408077770567477358356916786662764768427297771839651750348306821779647360732033306812694856991999569077720534534379744840074726585195066574726715439030831543512629460881648701920478361871351894862321444112747847706992623150120122773994218014516709528157132213789028888123331677940961302321531017567878752253217046802441366666256080871965044462671459197189569964579514561348944331895226196069268196350630531686875836346588721034515520119037352234384858182557070878591940199836717265991689122554315052762645656717134427402696612044663699289704644059031986502757626355014674621943928410212603225461219245983155801584910670582783783885245422732954088579550356532088677157237568893792492318267105065112152902283439951858227049840791368048311628634189117378529245490055580491727966333752417277131472752957282927745532958877697469705800780886190060476472745256900682002757811545280433113125466039401774413681577401783226826725428052524311227962161324548370491785611587893433819911146138950327766694553289563611817241648924612748662860044573320341960538110479448187924910261431881866692823107709501367048556504481424555520400181669701437471664205966599582235777416163115490221190113460907604516241534914381156718159582719107010563739471077468706666864846559569693805972702541228903105919594532553774724288365146202077685313146749603001245230407992429583514487704508371010943817520892140077646824495786230004947249543967572399749445722853396229636750286879338951472004317005404677661424951169393452544618805880672362066648399901878107632352950535784550851212605969685602004789965102009869751684114118692849167665323784249002867184273189274451406010596353956827044532222913261457575964584148839396051863401478074107991494525568194500704819702520599140315109482688040435192523300634276763832403520596894044962295129062770177250333421827985651829377044601180760035748444743195295949959837342537209619041505995350447237745090475133741568818532284189692561249575461185922413184360252728033385905074118408383159461427631492177371186648166957256642675033252030218313179259932140412457354963994781593757930460348104617211282316220653747474835015383976162151242428605824519548024706126799775351337452792820575739461594111786592540394366514086773147688744959360554571853027277837927410817128923695268746086359688223570145164539255461856975387184444940901151292319016477961660047879032451342117450646974171411386319917156977784595470690285721627750557896302753872610858800076438781794856409577645567288476041968766023346609622545762791189930177428775257904862308273226094741030976181677487445853749224371997234541693047573830859579950098582480465190600959849462706748037152404451530630747708611435823275420254002274532085727227860857061822606905179657163857278371338518807913521626410646711618229788428147328492949660732807728672710541759475469248520865545196649363977145899269289982988304790673625675526272044610467880425264077815314158693763432030912968244923747724931898435508173888514030892580938010805620872256839494355268469054864345472425152847257495029195338434492775338858951235418087726035643489549924502903610789278498179634014286492550157040017453947231210000602695821636910409427632935038229213791116965296082696894026234467846807582652313472311367092362356510891542215170269047345190582258785409450113313925478912330203752758325665950004519890996565793164505628643395393835965714439480109661992935524192108118194680242366042696864806353903907131406600208311225521987847816934084276706456552082620060177843500303980571242488274014740041465218200155870056855893381545299426553347037868724754852179535782011771297791124337011062386373554482229865818922188594031652200405749822367949297497308279381172886450229787635239827185499466422520765462628255536920745727414342595363504250030452905688622835418506435798583922952110875434512603910460670390184723513439194420590801968894773376513355402712716510703566953304008287668175812279681235728399999768283569200056309787518023517883712507249657582782915292012867466511290679762499586420874913045338743975530951006078780894957870945099087114182395959024129908634828244044321249792834861853721744825663508926769999082821030309685361691224589137578915679671795699562446545115157312717953486554493577624050925610275534521001918884199218099419575887432043260076392064143510354494351020440171997589690252321870518584300290546279769402308152929954471351408979896357499721079207002045840574934067759554394165633766732030029539415300159256643480487538984698097398109241964886705022159338303589178867434041192424586268507529022337107838172542855526057176048858190550466001331765407625146773482707339965797032226773300544472060252641700859843768891992634000841069776483028784729494429680014319045469141195147419834171058868270727179785399882663670449280095605418787290184015600268937012208617661165219231288832105057546793107099581603604328500303888321412510315264367052753733139297767116916861296878359151098589824539939096925389522246142436158789280794971076240253400641632970997577433851302153772476453661699165570718780749261666376121914597285335933037397014033779694240577977652187541920511973728248234203592822999662370372229032012781043375250705671076359211971301080678943049876942071645153100503917590445559549084191996061310676853246868122380246066561047306119874586682036493673246519736630993519318206832724095539465879522163547048567169938989466859861493635559393188903632407733421629570445547919051858835760176135941963965279877577400842867381296436848138686551345585244085831510215633714624449704410200864898354445496032257288957554748301356758112145269408716506116400589370471189773204139068873164328463603353158925575282255397807746401807665213711104635959521796501714315952395009675362578267727029822706022551591799985886831672100356075378954131438857899617007446038185298908400701115841389108082388792769116271042467212781111665968873132717293169198292704919995069339187933512287496391830438011674888238305427682486233675293949149192784857061696623695553974043828693480658448199842914273290227768031231999191074232748659028527241034394841189711026186158532548190721695297647468298697576951940769785406092056939099261387407681692283207160194413470125247465921826850328153058795962527008289583857150771554386814892664922786076023687925898897796896188713486695456214646108939955495753611514741299613323974389067235632706112273317881807136598409206706484313157679151635076513016482557517445928736192215582657435908115652859889573975619301885292239086953538046925230908555401982225790620762910267455654377161925305025256055677554911413679753887649285900808726228801149686474960556660642376737070766160094499855332266783718737433765606806874961626151992626912605401570543017364144631387580890044626005637438654151559902594820030047502437534016943416848766409819967646115114071542021860057154482312908543367449967918884961025426134880357727059210912173105243525823195424801334632618382390539218873013225992162204899403852295990810517601424458890565794864089818190333490774229783734110502148779843369710455984581260799569007862012848840412401572582723452567439291304833213207567500777296868916511013104385226387027483463618562956397100753933908824557700064112695269357144948333043366812336437255125301259831454174547576930450517072766491784582250964032757405842536503432861221818215519845553881692150421513929854044913160936070907668646304812337490563534171482934828285089199324202884095173374146909310940164831795521746314008530081908315218797205190503485483939358179487224990088863572849232212727438571360166195715089224063096970891215154834559459930680811342742740825671153271932565285855351641449296866169837043510823698093832720238050252620518073186284475541974306547599532171277451432900051548041333422824078388270520961120548098638884943515468495531120487697907685470711865590451780034356206300078934410577926370673289289261840843469958082240528129808868962641352699081024883372658045102007720745662219999686974510384046998757217365140192295888982621438449841593106935399302017908347335717893742853102083122037631293815102951301695318363057660888314387260025876160535637819066720732113693629589552301447307210877579430240323405492735022956925661322347393730806897692165428723910741575690631851349193905073781963825240250740552051452039770895237975366072677836780317875196837388827040625747152509213408421542995509208159848489184377156340793460379849778753733942433753738107465203396059599510847481625963218278362443947304688793242505775468057844785888134878069552308704205517859388962552151138199192274079407644874292938835722612221530003540148795976602887071165001837771940511431116305189563763188745629268114243138241592462500620454002726239726927861487054434331214571565958725237480616681085106172621479736964407841841813929732027357846702850989589621122705206953076715898461219983530292200969813591346742745823111120494025882731277978078915452874356632312800475872168075839895522714598095443638505807828051111450599241644808355664554440174193793426998395225311453433993900359509731061326711090146488679099127631333221478007678226845371437840817783674826634216284317852821886526091970095858572811730247077525394118712037547039699496583690159399849762160823932682557786702668491549135996855936557011012289755535400007860666932355066838528011615090963368144242501013840012140231157823028861524515908351738224273249661254309003261953067395148835342862098256624617807393271167807602426906909216313917674857636423445680558649370623123688631084390129626064810623141616346842903585633671087664422146715050118397939588581716194081972730693252332962249806029721942074038584687163354870435524834474301228593103039591900223118821302322612098469277341667797465730141737822652230525068875176797416910712468169069744412315512742138072489186627238750005513710381934506692583195313758513644237881998873257624727880480146691082748326309653318756973986289552111586940859442150451073672299951831733996724744200542387579742754525104990080072705533787868438516285276309435068486972589480366720289343720566955651002957648219613869875655686744472461249847320109774325423793263333945481959656787664474105446787365905719697135460840044363236892223868529669246696923327902269216195081504720606020092737231740668583930995377170585047053735953877133604802025154482941816421902228904298392474860575972770091557786812127553542761499083038186429469622324021456293180470914275299527609790804532576566640854451541159210253834411924231228067666031134282086864446711010074132780231659979455750665990987663441294638006894625672618396437281427718414311117349082432486406564774680610036975244623716223226630877157262757844296638952030308034553911599518208140626549448844819592659231931785191925041328328926006829370950875692925748612121988424796665029487820081649389365385213441001905215124867466952812375887872707160525056956046826317724105662983629962165015663335323948021651303575597892846762592579039261989111584377459929053736122127937399035361864404554934804183482826807031739957819866717740053641297077755617552834316925787963108017914616938001183302837938412304519594504286684741381037807936013304562853259916657955219689886547055040043609743473230900721037828195303622337875013451884442533318909371720173059055657862756657996627019103555995686938346118550381514602357770959851529330405250885630259093386583811752631346343915683247791640103598091881089322706581961751190989262334281689604287046718663563419059289497623631931300631702004910247554284075767025322111829540082478732414955935869931444381052144399881894338247359954363613100315900344196788292885184249762344486636741839377902732195702534805384208274066227338166676345275217445083016360092584622519019710444260601065655206236330318896583391105061264581536359891532264407304928933872646553749816323375635587127440194106900550574181552660217596262759580064039956551012736543858955579891764958279806889939106281644099041360789738009269802551446467548035547327347481012188843171269031277426428190136603814176830226275676508628973450494652742652384530738524579191468960790315641799549701321896779057748938050003393034863109735313867899867665901132808438234425967251167855983757697934286025494513186636908366175730118331520678345693255947977061647839945927039829451233456224139261435330456384189434506537739207642731418331666508092530494068092972368177582940503410617408484420337845557324147077356060756809775577934632736149069472474751313688763743127135359969531683459277994801367242530604324314041652468571065853645619748300446322988171880197551770898238480739249568466496554927504409560543077761344981574608573217947397539778982429914990769520179533034075550108175353939836046387785184684977083568943726227474394255763406658270388411182340103304095747695458080687846113654966913154809324769660987010565177335303766112296212088655244881667440041129002212733680564742413500108423584366866008455458433781428544704901846809821756859053684067747835583820681083641341625096878125948652995720461555802248174458097821543725507693247710990305292857442178121673727728280746373980012547548610686863833684606628770164352396873178772675269279260282014216042304005131279415414962044869287330888817605086274296672405222731721030279347411741811751267200681047753812357050769115072292131107501634765955070011543538322636970978150894194568819316924537668881848996417504882226867065473963139573044971251428323798385771626037115038451585942674341594006519970003445954649395966634493153635211640413090019206371598057167909488146381653944013424982334733715497746112147488635231070883714789805791268271472069872033857082190872857149802207962486482572321858548173428015806275150169785648806251201502293950095044832280120035323839811654638052695578382244928217360769357713768496272327770096384029104150652434668586258894906788513297653942756887678928432295984629731532654428652530812505242150890730304739231210250269391789896316535297886535118235415446702056291553060493860731074043119208250431813620882266854618092378259502658099435455652419033832323642635087422112645028469980132201655020134517415173620773746309616560428795521214122260908153258894816499555588362133956188345224370581569566031689592403822344599555129968126491525808265326165698994522573901692475243342677280495733063813970886423158609780151594692394913837065118954104881960178932023859884514456773399858935006305770526580060607131164079680611335785697053173415034316898133157368240339860253381310421703552893777269281072541977847189853089530873723018300785560041763355350060202172648936117395672202748168026083320767023029727233633746565405400901088491424230792583705481202475439470781796458519770448812574184310941682123351950238801832483842048761210910891552397924906880698639523730417328062805220653207159482346531114831314523559848001691432707476613984431907021292058657919766243665989828742618792952911938254428384284154901667430710692060051024791381726509238305474984793062945360038049859130902549584129938593239233494788051625912309950524321130460264429649470040596229085167900751364320726534407463592219196006280438717970433296360300609118296056900386185080297877729469523517247092067783070208410535405380933662179496188514261588164672944588461253301125881735952896783572312368112147587977585574977184777004116454179319553639950440265972024488737279699370017470654267995068066228339528289587710895600058004842515890074299677335458636463385689850776671930903138083204744897659498045715349502336910393283129578625520127391962856591635993125604925103475960824679826818297215949304206304259968222974175450534997817958491942318035382901062976529996891439555275370941050146375166194227617925684071114575201312769097772142014530216771741551409558063163470962251390289519685099337644567144303071003429005556372244587351978671438556882619179632608730128193497570966103182887715773104902671780221067987232425270126617813094895694450655820147425382420234182816631035163338768964410998079206929945940950393888705274932047760283249001568216924353695168221140995378513646169554043968117982447089401015380984074766406463420163974108139462566012017688896859617292884340839305797150947636507225676920202841778049752238022291835996846769955134180318541855197073360307050902034787299327852224961614285561824828728291037141802603608351786538481807512859482099363129470490871520872905210182710097718643286532775141851263107218565449689128406787856652701787180663858323565310867311861971352373008093684641091151025396067647689376471424052215022187920939371475941249591183770518645271852992774628810814404213454360664568548522487259500264125259217649817990507274783592009225742381403310096672568042377089772744885901358276905295484842932586840585126029721606295658668795587262772909483947501699459525501609974739842290392301567156915888873412825296349153059040490222020999651811048883930408437895493549323099857602020656133999145776095384911751112598705731925781236027763204726603915337052409354183322620770748340921144128449973034323432008288248870194834153778471812305333083049673257894582523094625423574468367020018111413806178577005410531623421249702230671479517120755346591591150190120301230410728734167978501311122329706336768230738744624816067204384036066136590092712383533483539048686935373239263882949805567447570033357536062671035221828619756562939201550630242012745837665701130661848769437626834280347555311296179473559168346100476543450916755310184993330901811940804088886071760730451844425733120119750145759505636875420568198312786565893898072768636715069212585437829453461112103427862470444111570365611651853387627770734843333319525761493378532937836645158733275269924354506940134928958452776676331480586091283346179373091519657888976255831241993122851883040316201110409713720370866392496791095617349173712119539998669460851621374279534444143146704521554898857218790585547618230640464049278091923329081949624600756666411794865624937922140397660413805022534961290811561423953634695755969671422722004818955620682007281048437749488834593879277150514820527342791870291406762667992009986956202281286942591287917233859886220268330601923605750329123843179838065117208633586535476105768863682033297226403149326542003625146989784683301155239970433409146968603331013611765472841973499509633211202322257473571856184529675989974269964394956316678463414334342021421576050833636188322726942221356390689344568552768552139831193124879394760049941310779559159012600238423916679951697991349274772987686685226492958731255287342242695091363176758717939891352605420846940809880916755031182092466041730178853769088788161522716775167331625727335751880135063492388817807281936743553156456054413631226121499427662205188966528171886859214222860533620665602531057433813488750187249621773515580219861053022066546426328326755751047678107996893606788266632871974374627643738588505453024602159953059590030791387131569085868802295670811515467572161887115491022952144580507094395269218874831384482146136914104571091755243331647752963055621515569268055755740092977979358660737921822613549542348960725493908980582275363905916415119091429066709316157836526979087844501440088562926384310234278851561433191876985302131399918629698700589982063583696397982110420708466402749186476124165724031660370613541668978518182809138918061766855136089025020798550453595857313762323666206065845315349555399849898677725767234346096443064136203101419083889265600658589824712127395066549282650701340618681238248652382347313812022811827526162513200255238224640031808088056999910955726768297334142970427473078323244044795438998090736122636376310223007426268226487885807466815719697690973567504142965143748228598385116788111867965496953374056246556419237707843228689041772726221985021338942471500349269195054503775086507795015459721368695700107648133824179964467808679356546172991002760557082336972895333319377207420524727565403091912891752815077676568631975081334095383186043355188942940045323581336569992123966997998266018976398843853293101320949098924930530700090108281086241379384629017662270232336814417265006840208392236743177828187872535608100412648959971267444671412923112466715701180203125186928857202191514646794960871230181110613411733175474161926229559595494615244021389385591007056333493970439614616061221545949614412483779061833008255604971309738696048001489486825335241598649328633137214641925918559210754165696978482541593634935511046758767683712633609303665515283320451607187623249350747707140548658825673012059102793070238036740835524844470903866879878792369068868331227637617671214131844976858025265332787893922124258255924044311740661464808137790049450600782219582961660086551076722392325844969568981807322494496491977171685621558716029253849676145025771259215903574425936862933844306614681579837794988606591851082493281449220181601793992411117664721226101884986695414922568120167819711208151292936173265217892099849733622451190875496486907269845343066410058437548306810493760368503323886456417706493816438260667989277259710753231821442551970536798332147236936872859277214885047263176940424912515283963546871998131554570978601422455991430772618839156013068792611045081182806697167596969056671914816944703542879013724624036201009109131404815567337105590670481488786162621108135166136361593704114898842405793482439831955186967190888096385745706477777237085359795965463246947260101809875594261730197204716306532998017010532265336837106145960690697185061788916529350011188112885106467858221393734019778004541183590946197969119842335294341257889510805262176254569253641699154681123411238750518032332429419864975624079367160924145697001167567018718452049125878645185922122825400868376801133873984245256867384176646896357707669418401833365716605770648592097558660236759147849253693214989085150132190575083179496835065202389287486762601384880466262522142125234550533932945114373559344132683298183641757980334737469950989961751425691465979991926320096243349626121106824698574176737899680566634964249708645175621302244274674344949294357842739238104023973393957697984266900323640602257070138181657411631615510772181929531601741423477896650989154278966863160323306863414197049344793634424989401591091956723896664660619967934281452115725226384327157724005644024157287518502420356190787721377346922498012522460817438800881850301377258901687775947226235199283480613391155203074110978146329351024630113535897286369072805758266768659819747624589657764260922751750682398603562699141413111200188347814988086841973046809794903625240471662268816938970149681903380984399716514872879095617125814191811780116450918908117462343919521870984056559708219065971608073093214891279553073943218347481625264410426857641762107670678296878726306437502641674479269974379616500384501217082698366698446734169624076665750069524624272849166308746409166993436309518480793457912784324457731726441192722198281156097672940035697021570695965651043851677335424477641359718726694562856285253442552302644520569782969283711686961108049977464813650767745248186013435140806670268994710097323782820509630567969860833251364320761294018340569967358033072392959225578492698338859114879560504106714915200798157202490242151616490893055319901990611986712264125314512280782351523021150912176032728390264538118094009939430407947190234862662669703991507275128848252227854278656608765656770012501413314263379940717811768707473084015439513849536975385554092030464791675931883122314965929923518766685055785197420769561616668991872418261436210351167021412103749628355662902980622985458350087879649753803459740392985235094297517868607153750643230360324652832732934121687947406395344250915527112897809406412720622200857800708496256958037185487523848865608528845273797511498822347790500236484977775880412745295143064430273963983242228053926011797135570667503625982092101248656678275290075312149474777628130412022978520561384205592841694507921726846303992927598431952085386654795283962204877018513324223297127389718236223031083769560009257968367687397108846216597030444419467076848596959441438253624523498975579654513868764891702795212046700622150800621414244584591467000779425367147702752574460556146918241704612678983411035707881670630243727791444422038449409466362931050643094170999972467899165639178734811862927495461268933843239383605107587810861144903605001018152887632078237565043216499370155878767793853585971184205917839813914109148705129206967488413952546028656514971336070159884108017251926954646670252263964168896133357883090878044427431691822927205381582501085803762284845909299870548054476499221335141121225198107117841660522456873602290098840193501268248545424115247353847999054990005430478594308428924547280475503770096814689206256117874944545998117707937642843328525321338303745970170047663740696084544809408470143734087767948671695685899440626403688221706899078112077401484479176264969931632434740507201235560207169051508439012107526242243697484240886567885063149159954212605729636862983167030602381485115700810690906381612394468558582544587120917251196799269292620839592268918407510363483722806142039251946986014238517033194017422997738986283807578703663035974640800488492410113232906496150790309824238490933598955790555007966088461734335931348759213842638635728254579500381471162176960233473192861517299488220740594280393870367796368832047964266583157565762202687987543998947528447188562206535977406392675212290705377994352490931300289736190446366383898537274580402607923673212548586862283041651609264539518276472357756400041994691318637047204164131523877438839695481267593012690729360438314219874491847986585533801475755856782580954837141630477302402869580178944216152463244562132113168621326700725101076866055661083072354746994351297565519078752632571944103626896428786997789727637228450489539650221852395649493976421822670888184366349621304397544250261906928835739271342002811472502378391807709905310502518704032914249421743650472233056082271257399477607232091347004098604735185925603119600231798789282780227647867687385659543602383542762336749873189695483330571070393923851185285327119999916326586499501115974328885913899382941553309026394260575156517481291035212569052497350065895865081743453590110989976675078995742966944618414274922488949265372154708484827352720805922902368967440223583334919386998257578543945478968282615771517976037888293267938573819633495042569049626319639973909668213992596781590552744831707002948641954939265853837106046371375771057870934241256516172217615776197197672238174801306444460489813025967302672922233927624556676793636874095267681257593256405598611213353867968116000382644840888637738747655342885647942444898783992325806926146207901606763838607550075690786405346778563842389494689941263345083848194217062238340385282942889501380965033847504168551080771344709611579736692808364745386540597683688600821329953323655995576516003253266744566710075521995909109429361664885876611603355497693982748710466957265921435402140633739539571877132636422482029560566828880692546578315324812701296087397337456296342171244586721569436143736839279970563887265802427144638174247714813051484949004553391404224583518915213007791035200565796625478032894547903148273326636736447804353482847336213839675398176823835937148385087061045998416932999309630887582404860016001203270558373749134017585031007441700405776274292192052923670483623628200506974161654150949008408184776545110544570767544492295057118780903597640919720970473778130339530604067152986807548694025804575122055335398704261709877260007646909925548047860547923667403001401450432507153415855651352413362355842149275643146596760179323664049791630816531346878842227308825389545393634570799432513285146724680032660871883481931551518644651976463137150748182981886606056549646390510945715287472063504611726441229913654559899290561183275176223882688054032223012585790894427525783684603862075226571410316047578941548035218797277819800632033345713847604480507513867268467829492169422089570201189394180331894879668180076202473747187825626970195698302816489532508483430343871360390176079971822345442047762715332896767778379830789236957822972993749629918305460177076969133714094423676963488704526358738900933784642109610284315313182177601311276648970550285141552993398352158360574519737773145897775054223595838170643976942155219144294531265384059011923404470021540737173999354990705602338392776507705106487004971038294871050905892065776039127223318407739154660843206752759572882651475185374463632476054767741479958698805919282050628745631791785481598990305863835031312966141645341703005935112890996978212378872249461665485211639361579925881747979723587233850214884833916626946015051740641772931042215626654091572453700923285708472043341390792181906665775896178370970602586773754168581824482426322021510470688427698628160046474573343083228356308564494987331409918361048937595564094341621727080722389763731316494239939835227497544744597692401370150051801796508875875950212293747739091981982839660086442518219240085349992552348647949954319766733339779135712109514002809284619765475649150694604355903686450802463198846408864633693426244116011654055085313975691598110969213806970121037755303510897963711724483347083124630726463838184794512505831962568680074070409789829690271584715754467233558228378982139944129843901728007408822740197430554071919368701225974730203368382748810231762063143481251366310736046061598239097711646344877714851886627955487677489952667609646986142449596771595856523114547030826653479551303434218397279345109246277281064124372061466343138090298728860576940597042918836133873371447005344924637908376458335238008690652710790285178783144075824476310858356165708118167943167728135311709579976162577622649626083222316950485708512453657567895236355839377136058961357844456292594200485588988780420813297649780337901410436217931396695518146264577672578010679099917369087289548715106452730728496113586144106508969105262314961725074848362212908194726299496754093905145045978979560721119927951688782147670648231776092127604027659345146417324590224046140068760190812649070242254303481157035368214246171360109123435449101250951057297986596877051383750668490078732305002153191005315463474010993778339690801968137294267165395972690687310759887307515152455922708873264193277711671519623482167770205649482863831694396406398950144476623087036775221639124160079983028364285713105321670841311066977371438361206640085276748160043905367973959681846160395645903490992058897422374462785549804448849559167212188893221663438156091637634532028303635807504421824575254615708605570732342891946497341845469325680716166651231650966498843545156105011267461991116217389602930299223942359862994337869327054633615422390958331719182911508948537722156136982671042865613454977893570182933580053479824611300922783704688541479051681246647645402083585885504211496700885923513754365810080109351732648020689601891099456193931572251565906707705266294457440068522674626068482285348892835115090946042247232529134484910036205922074713675004521734402989806474500669699510006902847572091120535102249101058711001236805962940568084496064657750194462736812800767717170048889526895850176850280702365606925430458378167164038787564552114665732069074536594934420648029737861569255887967310455354868186267470580642375281336678110325819707141175166146845749776474107101755785298405568995443682419736802053027460768860382394669746046557994893085105177830540245146802228669596278568703230133535963377682838038961500516299411623781369963487826057878549115704698225297527833552167256219614708877844883653412334327353845012166087602448474928759590408942152706388462030799989128155481182749056156715331641315206844756412026898098276140714593093202396063781448602030014586862422556685490932530177389574185617341909143528375231902306152395107269973496904748570103051140581726829670586168390946881815356153540887236148867612627660061824406344375986614951188924602994206084804573756959098328799179644940290411922661969088436713308167024249858660730683839114289907935376348190563357014719772818477771930782799334045126597499120146018071905861170627674272116364159914939156913637475341555348665332611782265921063171420901310992189505260423582286944714203487144277817275942472593725274485580098699117195062964458040569690909973162802072316364981239200658047900103920056828256433778377744086749365021455693020907142158767681905570518896940254616383770694735962379794337836105492260032543912729929514453681263739718800213631372001687110597602541738460566995885790139055042458079474694163767721547009490988007451183925920619878313662207472581792727914946600681401219815844240226176516499749846539535451452963983449736094926291185153521279867855646983516017619603136350622427238139667167326979321938760292634629589857849271085629219870771732980998774956884083624932872049639595860327203382893228353891359123684603137293432963666308540121864489621165307457186374032252371332171915153396149110582936411649332598986137545328037051794521301130740853898433207001009058639700059880238702128054254843389942366471760412227188343011810735192326992994138306233866508226912155719517649062521380710184641203980210134092207517201060328725478242883434559674810099486730481804438987202255597938840413228588140726875676099366774453078541889553829311136487313412463472575285666379011858584774345401715279027646405247867416575316972102355810126280951185256069246388800638781937438193907596496446723105585362126812889683664497548430628631511008537389059406130383803084076207076516186934971185182013918135154977688837502804951259199517151128205736342600841550774441425282108646437900612232389070506758998070049815206479253529095793281140189199676608734179555857228178277283928692339216420457518166473305853531270945279899328645388464446700718374956808309346348493213079057173464556343179889588225224237972762084428788711826677855282952782622721323609181128476853898517950631934783776324088428641190092979777722776571849938911174621737510862795452865744552923131263195482398622007399505936886610476317878380155300906467127199678874384239583735718342897986181257522325773864131846290066092598892929583477942955834055525615258951309503224697207495348253921781153070551880995760133833218566761581255069603641769872059941773997337830761657743206932615564666281463916590344886069772343406598144071012289081682805596546486974733686699261798948406235430149379516505593627098726428462126402506340154594732462473889160754855021365105986117282633443795294044173127100590445103898763284863859946723573367665671564373725427073660688494687459253034636704312147476386510874435470886345063567237030162738802707020118923643291158545677484461987528005298276768961814866642823039218415287061230127569455684493971022016273416132076693977484858232512808076051570976570609819757372700970491632590926829983251628667026454872634636149931751817577035878439943409829115302238850985038643841958028333408532987614837871984052332737857775324778283685425244275520480201186563696787070748731629092873051148268086587193363967394519136441482394510545604120387720939855007005719939471762751867386233016945887072251614497712718747398697814273929695747134057385257641215875151741240234253355144238659718575807797297809998064286339918489818696509851566092338229756773425004072767804185351379181365064027266380622022918682120245823312397729165356879391456115424833370628989969513702936281753549018432403380432366386099872940232016254918591658807820603548881774232106539775696689683375294498506279535423115860829463497528056195470415444570909725587726265300238749547291317376830738044414339922576590568898915089467398929078151912282522631062993812974155399312280531395722343448832745195127953969750516826536757653225718815478344761099264527678014657431655616159578130232171663307837938244579776647858197995420678864630789083400400017270348196605546563761021081144956414099962905399850300605658606498260973553834367304694745438945322094929427632646338796950712141416041439776122207107905501694931485128726658879148439171234833954158130161943999990613800719007575585972441621847736858071998669534924261723722127345450573617006362525545970117995546500820301002152158783320427166027773573599432510862051099147888661085053796017611011214307506828446381084482625450130870414332010983569443507388345998742250680630005495076470615680402871747284595731691615886153322843275887998334182473718984218243982343715941268252619787181104313162353453733627038550478863384869252400454862526826764592318716020673374151713750622696589150062053805715436302488529205622790283836090008478558081390823372580002402567988178683955025067178570698260669778484691653711244210225843840155376660080348697359401787153062470345588861691333829739407611288221248277564409509216896004212576776343202900367045010832169162074980212015854839414836452730914692984208958141347096497274210213214195873101880096193563742843803941796778520149156640450584132371859684252693907970431552606559577460016843749522654869515233125465599301613718530804453849375832835925871074549801585246993360842733878197616013582246584402120128235193482603770783433327663899914447460791979048684467126205446178625321377210231372515364696320505264880065228103108444703017923042863556982248713948919785020094587430863334993360842005628586480225838487134797310773206206700387319629338300701892194154330643462981486248594256885375755203287931901234618161972525309052803169666185230618189278440739790753768635827446975445449329218975211182064187017429361548564986509850485521024256601899941821628785882425293535565507109644667947654853736554809556531795245508895432375169345755061065132246941962824585254369633408814078181524797193355238231824961409783132306101046698494239456276261191744492999729447825657377057547779643941374447908573633311725956247306500080094959490065648800363900044023887354210327020800610499245448956482503017253648219113522790943632662252938775699718947155833058521305266181373267896219351626706975951869101278339153147273283194186173358597113315629299548252233589174543885941390732303447874384127916248096028984650212506924876577896087464206401625640463107853542336755019719711896048771528109956727562833290216573021058947686874943597413838209321945651052707886832883100324638835960261702553973594936112629277043339168715222017310144014244023377163264971516887811835869262662640131364781584331736957232385109731965023976143758531912059295298091078714151338476177935111839635669919243640542579683613297733714089587335149841626565692756433132132623368408173467806118792379960273825586459358469528217130854425294309059118115403399376187670253914285536748839205832914386776784459494126158686477933306541381332170383078276751585521613626335249086477074901958031947786500416337184219521990419060134279037189668439616131782209491095952025341606111451318351394538487832837575883100950930042591161325946437379185175509261495658578101064914701131016016237556421744033952965197615137915848298729633593622035129909839754399594239708217355582494941527815596339965558874139607294154079338058900169658789348847323565381961698387402772620376146811977551043588654309376148855634824307052360046702359809731994029584256203497941111883580308975636140278790475262742066763585377008062747065228511589390894705819771288337518527596698497390949481705404538895357414853256615698392699404022454108181263116497574543260804273200311425715673616588141724820203112462515232517309369405226170130363318043215865949175315770978862028499551450956393251498917792750601567769327633717788860559075607855426271447193795236291679902253966491895723073408811531756918028915157539867393877153616767720404258513783281926002366578070276311525304485309676366305646131620622234840390439314861869190019096406923576480918727592051392593839678627954075024390652643223608517794837448881251044045111566974837315806618835581738752448078138477509629537829545936625627287122627082982597978873586773236266140520870424621571071232300832831240363248922308275450327136564307129466046666053946000360624768202733437326496863754018441290530832135011090940397966288227858112985309287616824280935521390222831429956155706398119475293497502517534041676582543971224382918376702083815611131432758248131528588591943291802104708250031165174222944423827346638930843543970028722172187109001092204065368527726923208038229024013464396967230344737068781940408089325256197536315135204065863105122793977395996948727544155276801717882016630479082232898524497765449500434570207039846547429834863773138998433346719388237267690948532005331699179847930340341027281657685842955079597462144409134406534843551122341552329997899175416791148794053822809264416753431075937074895642644986265214545679235987695223200718424259188894145971389372150770954270634192625608329158926366629533195805916869589282349354212196554794814643294046289449597716254609682516181032121663169606374476823304696059333140739493559918851335077524211815948496473171537053286482123305228087603045816825423026936582083134403230459425048697331876224806877687854488602907129384088989685372207332598483228059773879880241943599821771057636273013753127717335587097839488002855140578632348564821001291283887417261453181753069065412885325710192552321859372018591261911397861009871750528690869770550586099157594647937147149972038072937007363420302028194619674769665834438725373611256629006166417753195368004252358548349010012696355522968123233807255338970668266290298159107890280616274642026088738006262910675404570207379267365717623375295464687874596693355035046473641852857082896729424050896388438186920899546258631919707582365396531020618692748660696236284746320880246037815265111177126189294553890601141277928574524723772784366386436190609658566862115204007304831536476887239670618718363535593900375812822294535760738148909660318375081299297410644054704632644969028457560692199349188252472549830742966966784393292236142922872861195177263735164254104165589582178955056821318558554433017958391140675680164141737725656842121528432227695441901799632572636319732741581222578367803035014318415135777327267318318541368504908750148597468852538639329059314207879256480289521667477686141882981034691785932107544973707757230969181633942170548655871115246370888177863895934553817142496730753884075474910427133691108204824372574667283412536611891784908310492393872922736239446094152310841478976575141870041939887229776785424238763923528823862894703281795319112633019362386189570379364143615831314380255723681955280273919631408264752998952691324159030848091025981732015832061757751800185769125977762071492481888048960694490533551094068146971728416710346739655958156662449323621646430973161820437896279745227361388377162138450849073616908500377657537011937432050194925739264570210631308059230307208821832103021872240837280059959754654474599835651560950237637312416782787253198135449947937537971234943501775153085841127348458017000593703645961647677894458434417464543848005249362521864469831704041736945954791707268819042576238358066872313419944396992105357011067618943618899655365388018432250871152800601444255629875207113670108724068777056522462840882112129041828463651569047494861954249387059474057042154630587047771494285058483524119411649052850673708453333684892136300378059628026074018030280783987685604750673803542258389007939545439089018676755012294058933803497530395973090786769884252787424819459825635048882374985107516663682459467182488028483472764889059834181013794559933187982805280102713252532101629215547946920124371990486737003685131632217369515738671804581018008825553887021658722347451117847363471881222608789500208927668546559643248461791825364754097825779318548755231140197625822928670306105080104274019281296834908041941923477938275327558258875256094313321654004699955546727964060833976280851893552474286830266176298702329521076322870907803312350895547688445641522247873695297473481260669860310991849394635484507968865130184080639344551707295359534572339576822544681865385308048943156243050173392553215550195972441875160420853294915627746689252733459403732607891709628021846572890811882805949796965736191970391796562558095652397518443903797018388388223514487062186511240153629844906918283083104290601420291666377406677760539317088652411387567678886071274669143251636407613670509535557290067213902159264341949789381855699844502253415300938162146435636913905052366477866450928290732565976769036551961423509757811407564418233354094238155610891548321327755012176579650017964695551542369140062677885343057390597557133313619601631274509383682750821666863168105492168177424949232979123615194960897357318192351425901765694126031427351073136274272103137840081299615591381668591158047398270842484581682725981996150057638680949973077809295426383457014320467207964001499994853095119258258298070081754554975775721225827005705004628831239647138609710005298622789855246272498349308106095856831818823324539683645377092649480462704593514736869506737392811117663129821513641414487221277512364931197901960088245976303238057708558152304136541677338605315347109418526314971894815922982730407476737124195618406888681886726269017622320176275289314949576785650044249912435060069231751654034267078694457179339034487641081544164920418028167836258792363901280921945368945642584210492084074085023939775382779946683521872697309128128423394770459257270504195618365098409910924549403598312946520769380206438481370684725252506799139638813933550832228174814180707514586969415460473463004574813306954287509220805549621685655666838427964019024009362383068093722056807317466293483711331515101288970208882390873467600359065161254379263973300933447973161644777041956182473798988715754921859776020195833666575149974811151397326693384204413395264769100558059137290186819468641729579738859671984526296789285206575483410590035625654181385940999168908316689287360019770968522846052951024826741377252760611067010111448771746829522602976621820881244678418906369431138423889313902401589754855714124185313718101746062636535472208647740199970429378246254951925174101359499674128690814658249218624050475504912034937978074378721605741115153581778566794399331640974108148227884703386875422855807538332899062708699761033022363383923304414313615241584639728148998768669578185269821001005082144949850422135222547678101453872605230338937128640708407848982067754791926063136577693424294066153996268256039374504163498465680903393868401725792504070063314297568922876266899462444585551610542093140927550452643829909885278402574377911158607758344910703245479170666758482986535471404243918538224990391439992278376538875231871396504108042409569782284047894526285262429616693052919905273994950771206741986391646711615825533779748726374919407341054510100943418270305460232351623674406954136753344621184221986709193486750515640578080066296401311112201114510404557932678147051414225860033628202238214564134166510287146040408704236338701570214204089092128505470185288836862938610196900523774253709891543268711687057456167665737027684347034057324428786729248772285901545624348071201046852169064094449201323462399658939596229751114962539839765231354537053501850442859567670204406639343760669579471275328188079406992194122396385992441924128206101255967251505513772177293880030972962905616351996937640106614076203026645898148232183594865288479185824028421640970905109466544862385317114195725345113182369408112429295623739044796421389130694729283587808436927027517107928604848730916423207802877582011335789354149158733012963892269203683360951142883195078141829732175688258888385739087479487192338117611856952317464587463183239070530201733118672799075993298251359861835455921530229685984825134718931873624192748297016892096836957581590136418194164217845457223714812819878425727637914102519031970823769940303854816073203621606795774142549273890746110891953885660276206946420551980240000083643020969494417057095386781955231974938671784286423672427196758678097262347708780253026783717596754511514022993322631304676863530688885218090731068187586707504587473449334789726513057375295082380693293266656986439501555945214149430291516754033483714794627425009017901030040238352830462402346452229979042367228111203500628123323159172772181898600720845269166460647015946814584745480358257796979493378838868495880296182450150960587142086182865153180256704976864878265569435321671316991196328014801729720526637456068333032484750761431701721672559331999267583295151500141198976094222961940963274539466427816427417599115459434541462037513612464070153963031509881283393602977046336778237871990819169090827508237809543952926577344600990731721891366225137664637052184289064732766875962250594381582560855972330604766329383173579887911762924469689968780229195739365142025736500697898882949702547509347470232440959217675520262507951414374620815791672619208742218797131645145345271673898181221885860704541938759301483505673795299832757185518855233403319557497387178282205346255583665461604311473797402172031708366429079807382109201966799718457348569017083287097481908755261685142746141250102564793779116918417233470343460544348844605299118138959813286481642536443754545084144195469494430376364583194253972624406670627696688038564663445890738133871277555153660346956709308045154848331412897770312489375929392978695444938074074196596689338772145371668639873299343241691002756797429076969322451424450821644305634743457895083474341767562840191391617228729335360610430140516098153737208202096265089648509615028358700963953406286108691464698611546976945694185931894913093435709858921341425718941702965471292262301420982565526225600924319918891709206583525329939510100771386352276750661045700193613142714543031589460090591097395246651831874453700678228066185264231355140928125530548462451830283878119752552602796164254225000193145872953641429091961259768711042010075755243090374483617296208450429301181281494103269833276423878042817754062920024985451657483590354514394240217549686084811362971334744363586816990368406481282745291206456615441420561327351070181052751689255197321621170476960908958676532985603132806033586191937640155210524820520965873875475178989695477441226746285531029770894662185022508688042339549390534754466028440158363937304501674018541691706121564338166939529924420063917460666249749839044174518305944012476280724399779357091479446184549220464170041968697973520661424400384454691486401501542502075370834922772555143919565079866125172161835588652288749176299354420158249407161459811604689400293080850202307174011623979333641815663684614590601943875215573381940161649003148994328609820324459709842824996000446815049538584139276790863625920478792836605433025516211483479933796543209640946878677179236131324771055305518050925033817146539142748180098633780402360116485039335782883973879287321596903377058810829592523544899191143923515590401270538587159868123984652142745533537779530180530115753998462896451500019446335734582514049975710382816542339904437775331136989822098729462653554691338276247222047235503012248550717559188673632158396225305263135806079919117358449812902560782359913328747087742618484301146030389879238482891671733534859555835443447002057465352384386435139118498806024926933205709656616150722432866223788093725384860092163607743181258695854184676852584275905778488496016323355876625353654080230909464717722783390231587814484013764921611058444146920396862251020094622516210872306319056792729828055242956001614704382422862895043894375427639459993605846540723991966276730409798612580803481137228058904125072354277414463505772141647622760669229618903528320949211697363893796511661431827756360651102868254103094893768117381622444039390449618482309088805939265822423975377786113491844273400423161657187801547456698956475350062520391303648537895000756621052081637295843993544502816081057674696680144990582413789684776239199036215173374663958350404613071368795556936999481577454545361420661739411840402927565719045339041515590814131405348766118105383593955633467153001106175398076084466164774525167917378033908476736966905094849635078746795348476514750574267277947725826422580315717067207696050236706796676522284856592936997306603669261653400778191429636474935155299468343815996777482571169046353698640196414307643056432850506765765226896763007835847586876032348112365301988225517450930879683548469305873382239919485734103041343204764685181385823921047941653869516796875666283723096284275863925440994577459422533825866458848364999076365535016702364206168308626467570009175268272327919836553497240049954804307242075746075286007784844245140484608454478276828432960281669738725451285392067568021004382891241400431602297602234056180576748215522935755009991996959908769604719873815470538043758471612283892443126109337399268607679146460283950991665969924955397351034507894576482191696906665276518483211598004232386638118138032402636865292085571810644818158048626085118315171287902949806627036240758865526318798319210760953103754720867450288089419133699234334507167001746375784880548444412320076391558464822971087368903847557799885301577827641478624920949793105238004884503553366437732408792644568798402616022450223753904804267162084108369852731534393049796040387104115891951177920415796933133265719849612302163956021035842951764330755435871963213369343972957891602755985490573355300622353248724017242546549965200992359176732698153970870747583713128665932297098292985819162154522464249085192450967189897156945500118370474939061686348509539237820252680393623954332343971706857463595868396768748963972286310939492313992973894646433138256497364140341972183918333842356017827138958659756700379822209769097846502297607780255778329228050632702712485947871943467564826744178507858750281387681366492945132067262604866722487178777162856158780042223349199486602942784746259520195814149824835509647673564792617331432226110324401266798954723990300056418286054351343780961490274301188993431626553025359611462993495328868715593455836916214216189562764889527401719509857946169947040564893732270874398417420262097606655840668039523748652202842465383512791386130798699812235379972848265714447684630302404623605718452558091655019807990214313993252526146196387057758991664624846186391829408573438141672324507704047121162300090452887669926160416758098877825350825602993415393321429881671506072448464795835388401836300451644954350325619410354813981684786283068155181198522958468850771593952505668559689109837953825420824675880534819790285933729540551619855235598148506913290037327980692065666770787923775664370425220249186873015775287919513261082102624808293069871738524584448079987013461269386449444277891634968261687359858867649179981287889113497712380736336224595432073762549648928747962870580848914841185124532398029082984083191201041108157048901392723732218606167061222159047597993839010643590232743499046178815484738256980603662226444259378186629524077307271956542625690800899714331176595796379764774006215166158529193983591966884987389640472347113143187493898278466633948864150067598231932200508922783186869786920745459016176603939241387987009277911363143505338216300624821849809442928063762323675046362357023059897909028565084700214004853648261369791153322599115840721534369611740436234469475456875996092819592220931828944628342448695198276687431316122577233533501577066506841508385808768407699675065970713266528952882786659413867549186149101421974324173617092837462353906811917644885265169779666048060720868331470207494811018401543721377079820782712201556407951598427150219946816193158621940353186121588892989828558158241684128931248938300379356358298389702070766933951552529005381155079875220162952868499493800632120180026190412580861530015566618956277212279102242290447945431721118714835458032001122226462349782183750662649253374051789055661983508305552591282813334576252866086046994616682746975645017557281191632248683777645910414095656226870224101963535362947572259947257487687552042908591959059360568840983957672652343358293558995465268101630984214730215686906561558664569095193477809021596327051644537925646008521794548661030703194831205451473126034291871791041652457805135853823781092281369778252805287647874225615346692038043675384889424619123002976378083442934824269883020780331156579084385732981700795389623622696116658561863798159452842429207702590141367603875265935051367330575030801358286820607689029723905575200107843988172499358224841264377203898501670177808907406417476602918752892687143023224876030256462706313851852308084741300068029392040116264249730390317915621939854687651812402776174298939529817968849738214604262117750075774954906140808320978825324218746102182972893706743661192223638288039886820728699985554816541579702239867432096795189392159189200077316765763618159982357089270499875945396961609732668341452466786049433335171056311702673475891637555110341891262018476654893442887861583262636087904559136731883990821473667263164947616014251730325133993958530463549859749720611864116145167958926125027873191632846163296137888397224298009829508958178191799024232598893259439000108670313665461463929576294363340432305567174181275271655350574305150994090424227399889657062992640444798457232805200211595880305719255106898679793613351875273053413676651889646733218079828740560835051486991400517259741499728784920700438995632811329477162697539686737634142223990246646670441850233154574281960152901276215980581157835815854327306459493118749482030649947781713641669056109423392156719200000527457296863296573396915682208079464445329728493703300894949201423364227757529398617878654844123150257487779775904317348761423477205668582825029319191862219108603100260279995547749619870310947828537016713040268854005507020858583691751264677529680703384353083832970873004181209562810826575547332288794256125373798781057098153410777279694915582127092888549097828140573598950053488144584606255726289956226934219881372697260645579141732239722403497113156481815427798731848942672920269907043559975510317264485793915308565064272667255615350551006028545096803871157713893387117137443374464984472334756388343620399009955948895388961567541778409298329751750766013897638298715347474581521805242029173164659991489161662149203172495426353101816345433955143565961083050648886832991836617883233509807769413631734126027289543368359280254077058644683978310345312721057623122520453025253727656950770542782966721503561441272853078225652035276477877193874479925277044522211233771435924736674521600873006295890721847498663080218916038334350890780093453122666173182740672343205792393291231138171860234043866587900122698692022739975109546286179629675501968348609771730330610012849086324136492403936723310486128429191743356109458212221196417621006733911751572217853590017539087717580884933636112653173698332178691996010687917072341315301051156661036772093121688329673919554821195295476612633399304839317664329612804103236006811497080794419966134900597540009003076770178787981274622471954326867609309804073086799853933342419877853649857351426434729584568899131775033627155374240869383509127302381769545505269485206158920357840572457918853545956054765805156413072693998684366737350628851079170712560330665293020406154821311323126529508844968730366068904063207079437589523190866590123580722594034498222725118730000786567740862356639409751405910671508350967255275124482340774759366443489482182990101995560273473312495829797469604969843493828034789921917173580495454914680685856813624412043601592301854082413263835026906360795628642952290291826593127810334127589462987889559341788548087288146680154126073785019771155953501946988040206362713323867897791615248547196680259065282517144572152812473725833779463148556136230267429399899491028107953632210432849563841464912841944633206044387751601537316143474735169745559882642340744724065051553180006142006576683624498637942433414707437899012790075322049386343463233111344746565442276717476656956380333880606145573005159575110045297570357081958395271001960323772090240386846923199644821342130777179336734322305044525920650402576321367858617924973335798848785841820547481045510561467247061278376717544454215317848579128830284074128240506303244378254817095436236530679419063858798878434711707256847645029760794187467159869486695773183734776106877312725493022561883598956638930907173177552960129340901172242337661035723256342647988312851064135543631593123134543769833523423644430387234990976749517235028582795938990815806050941205451786391640386185925616681608837907262002315127626237477152731940467012667091889632288165119726446458367846575345072381806653816667710658076335593478646022325187450273748591549116813338320301235514360754960258634697739002012657406321634171332215843212304355999464120970177504167459664949844964455173451836079868030204269073623337281313793128381873101309508581031993967951792467941242155550140738861286632138065918172244435432052616462591800276345432660835612183381637834776491551026501978353786038704442170319451573240869513565610534605735407761258161264251510047409222659448637904690866230230338073063071742065314134651687503034628319962881931952680768104998348563093103443162908279111587349493889105707218494728161827787686713685052973081446130262155612170047893163915102169503893657590355860189753584681911320217327802141901838896235149014542206758347097893766120993584707745375989510432936715954879790763510293575789176684986705377695537549083109787265760845468519287740562552721048436653657982400349266667709324714128864913339798893647652004535884712612711797242505374192023898792067604593369345599225908876244131476125499832355454180713361604233242785025483548906980015664750232928120766266274967647890001383969136555159553753154724121847029651175973229577209707995479279482865748287701371880312090250116482418322761117023171680584352332381943630306812218628404421225136413641197982942119865806407314317256399191617030758313790975824795345759311729934902176691775504093160061115606167719895755773442220797542171799681975299279805219342757438379414973679576083382329801763329054759565938210890390643475556773799652843204744072972861011461500669721223267375851629048758039097897724396854360610102057147229248214202602629199284400998326182510323352295317705448281194791143977452571534973044596920640744602759530585110892500320744090711416488299030033315960589400414063410706792678783563272241821101727136750344843444727512890737990295733625972165405181432242325626681493998822006899315627239499238780785585312143211976444197211242070741485189880356973005763847062627551586497906313508792263089213232482202232156439636172637272435769686721533808047893875215204112903582242526569389676879655744924520336324316844602668606877781720043947932330477958329299483691984473986521650408046798611108383600402700616530582293284580024631704730709537390469457094473321128656520504645226045456599584748763131034247132658718748795435351230503110605624879512251351272648116472144588589882744779908657255837850282804423352898494601604677044325328023809259757323196086222200015095810779697939701288048422164284455330559466613219200022927347853846878583035407698213164480918344924716276272363222764384951682798096962177258926592235530194547911944827452274415141414196100921693369684114504583401121398295070354299645435347114007849726784200752699303865164678745438672884004991468956651023381076360231169740714687775038403798111506719236866764629368569501665412233087019784246781457222131693301206772494584498859503771014435506526069143251396225262299348605830676235825625120715778696317591615137192192333507277783099120560611747894148103436144448525820537580036446911737348997340835241628437249617773372553072522670919465353889818971166813815853130891091909829650100222823604790721526073225934781119574796089206065806198527091991198184474287538323120677209781169506382110460481230595560214189964368463548804526251313646091750379122361287420197825559639795256514506269462252682969119180844400233522843102691345451192546082417644284119634419020642718262796504948419157469038394853982037158983113651847323078497689818846158700623235045024254929279521415543639010888634185287287711394015839067112334725452815126073200472335795355095083956403301709569823911908688636515591936150181485054647731756245132337129552338734100531300296734047610094730248543683699374308181932852565294079216158632850969413369690419078972377872499210011082016131487623156959811249419013700517647203877027165023097568228011557334573189001208664840832210531326862367303786579928931126886707928699387444194512666466885825092128965784937388721245788903029679807836707297890232074756729948494116199871221370590682030658214326704649467090716219082733659148785364438395517956763515175819920764002108089526022624970523608570258521789975648083898894137520317525101852224925062773286591283532510299237023887808529124035399704710237908260474831456648959229714105525938175083718674949216497083843077564672387800621389967167964920847756596794613633742761847466429736577877127928439527523131212192252061217508943714341515094398782424105269156396483748415826384371111357912370562489523076977713796209107559330319281019807407458822964429689152578862861689990622310274157100192140601532799267787708222554836047767528947771716996149806515937533570789114564491880746559782512237848528841315440684069641118281997238637891330639267019740663991981840264426650375230248264698593582847493633409651035531875332729659753265643405685088569457569145855450669391664794796124969810575830416116036293367408349507329880882802506750316770931075136646524090078510419153776861413843833181454475273419563481698673619371744379062949042240006665888771857833837693365763788341041308348586716756765020275173614214942924541753450331044716834523603968611591524641579927794043671954091694709612603092618316317809814076961535481826504221747278884417227517124697241222900502357343656470182106173201513586204651876880716224006142696029563131671003315035568741379351272845559529507816717656372250888870709028574136470842700150491880768965494743772087020981989459243599270655715247590235063718727510608821667042754738006918984192869183985634199063990381079260477226532844468396283353972858695984723031634892523431210714731845523860797756846810628539592269449594125178676208741836931402224533525643347051963425542210883896765380819493360665642889255379551964271804156022262719506290726172528459313351099885903959871549347723487888577538436083033243023896278468644134844619482682784193050262520308311781972146547047950943656601818246253283233221229957575931695651512623592522116018363230526078046787097518042068800161348634696702794520347012721713668292579694031365240695090321283210096291008480283570804141503729437770218767638996705624762014005928742990992504554311157530559943495377698959831582464231063989138340622859934081309402802414037372712711195627062827753848683441245868323635834428681006542820351483710232018844210801497338587090738473585796063615623564486770496192810060035807607571461806568157693824689700266564281746651791217925223249026191530791431893367768598142421167819855918549423018552332355031012423214258176340229353896569545900536672355203464027730688112464575924129581650542949351487264873749823632937502052386103091398608383279397455565348892081920931896851129856637331873627621416703596194414479645334750121392306955590345002502122520960225023995403329335850001004040427068241325031752066115524137883269733638598338816533302287835916524171555228979807869810655020328930658510373307375035643453271929657142787476127724471244992675308148485786478926332740278049309103988682195413861315097168687096037149137482400372642016936186456405327931273655587315691198281103373486355282093260612627705544594601914718762171628230282090403128801352636039907265948118472403838819482277866944922088220432790194263275668065480036067631061640634727661027692277675019474514505437329901962456330456147685239953535818530150116349707751663280007927969193847512531548065983156486811796241701983521507709327734500806288325267436816733398321682879450465200920374030616719778303975826252152354274115507865514923599147872219852327924104345140488863049424450187855931619171735695964483057593729345439178504606987737954682449513292270914179495685895765296089624531439033256332635738707397673192671999856234759677040578638815424908624385014538071368738891134391084603875944511864639913338705927557708372012916756428150945793605584087782246713361528945665540851973094848592488730060208373499679625953417762594490231841036767225647415745383947573429674725022936872824452733241744573307156064154393081205207377279161558152466344067134522361570162922799578283764058683564679244905020977928827298290611941997020802614522225772027201084179702567666522092976498458453926079161045737191395758317785605113449863256114022707635504117273451357848551762020710774543297101699529361841114558946118457961664619021556711754199440639429785824759681638181250926401397462948048131548997880102158606414637767948166220900534212637241647017724900816250306173810161854843182079585622447909159158514351747287894301328583487398250940997421680792020655899207589484915057186107302873460972499920753985879885976682438218540435962240085939041008826904091456464374545766806669393400315727848542099549145329381426313644939333282370767695053341737999272037583667445417109105426202051422429726270090938101636525185331372439285177519370352525338340660473065228105824044110151853749233365705384716800153076438797691130912058305167690407945737161501706461682720314504092542866480098294610232072230854746128175760769287972214026644849945029644237152554876806153544493207348621803088376249695490503074917007934239470918336689983934707061605837159695935218703620144678601760544012827331737483561483771535674827864910315541951338249272678571669891464051617446673095715664080819987860345425266325152168880155717642691818769701617827749740739425235908037376801993219940643588178327974513648089308372408419640785391374969681162120314975902830541450723413183380483479400028502680898830123906013238940026469101364193294044959129372141876488006717252507576062288152265596420507175082761875458867944432331972647244161516032516807964222845874446465082459710694302309345041815822767018286961263533027109227876618251943275464579952872437954942375071628983805774359390226386154058491391048081351831865373622412393528185073383009240178429349393810698912629990809179723656065739242363966301251469004959728204784118605255930077389951584254417669002838440063504179750853894480583918887917066363637208499067285629459696769738012878836397484319458457505795319392989747956309371881249224174990624034413984228899972150687794608188469744714075091825392904095166881874458657765203525717222441964902360079348337917228762498532450736960204075994815871830033683305617067612311562610581433416171905779522789187291701218098266335556873413993844970263678058851956358749860410187845304457772368348618058791542251710083411070869867458134236871133460893654736013226810675064316138320786646866661218281112143864415899408092531126593526252624363769570039392573544048582178848658860024868162428373311679368006008256137587398864591856015827135277773856724809710004309496331808161586507803247289212931852773555827924637407498864995548956429318905472490284432051533544693943906712623340569283758474164549400994688303708238347455226287835711232398960645863351491904661812267176578198213268851223301461477679335367031400233830778454449732688106651459996635669934452990426268065106833234492433407082306588292740241978236889165710030758204601171174928507086559016424059501924018110673576962609478415813025430746736170658341163432828231442654327434727474281955446853876718495045576492301723226931644668869853121967982040226633564456298772948425564799702795959226084847673757979694208465407900273006946372451026415812183059833801960826210271999042169522304436863335289168797432700876552578913817631541894192250519924791813380651835986341039758973767275376019377102397112574444410599043211702117353483780521266195301826715955440659873765802650304877954087623575709488940455170913906408024029447684654474041628401478589470187892495275788694505900388688069502315154490233070983351398890038426280059372053824248528558588583422558326325729921831853221888851393686762169302606400419759607943496244422045777591089195655415401166774444499619123746373519467106727702858601594971083836078304720005861230554709307704254086525493878051517332474364120458448688935773161845236928325784197772638137436916248033119421050363079621780924416506960722954065626865215836058935285211051487191959875829506750819053073760004120820723193057274072189144198771719544790638909090579708862315283850255656992496310730610006127965137946739325718739925654790891168898732578076375238358687213046692319890891022477044268681651148250507599886468059081485849430712794423286074697263504085550417118390613384585195669640064014667453387821652417121712038673780188776787096087218449964898587017297953051553411820870680438651141957964698513595721533777207539954158948856282089579058977217237353208321534097268681594659464858915076516841897604541062915836675343992585404800407249644587584819820464706891513002189038905019957460499608194243924697499895216738484473192003355054500365981522814414215724226853148939160807256891914167689915657391316875686976880904205176709228285047300906950300627791315269143256640939425930679689439827779908500874479866002298005659263752089628351077422787167966187225753978759365645228718617332925410267591856436583861636658303000411707884317027961011225338930754179664720295321170689936610451135661361135698066957334661536062964521036746648188865224173249644544771996810753686213829173617418885239761741335038747042855914494541888260929438355030977095998712683699757108488514913552294081694826345226725802149970333780933022938804230368648952037319294448816229278610114723098140872868186681047912496826913305874687905813520231628415655613972191070895360741729546508412604675602542137212541476723383056443188422826038474065886418554257558658405153042033748195199273296568298223356392295753819499735332937776171749237380366710597562406223906623876101430185681901844461917200489331520454883418583528863734042740250930702526950798685128620759935024968918924060886493471218631250132743511369831863810084277480822240435911882857263780723717868735375537726228571381601146306199153531978783601218976680136838868511121487433333191449924653317104208177890912967414320769630044034024222672881696965271337079112057420454002176073104760564022686330819252841266933427460422406076955224886488515213519010497869350316078500395488439667746390727016791368260179090923053468497764418271421366756672258945272810832779259869506153120236581435515538072394874988035271521509472561499319223991676242117296074968994924390508285318684329993379251128025220871968893164435145738625031423671330499281644432763246418888229585609228323873633726367615654532419057568025977980732623999102680080363638891413337632034318334601591922388522937376604913164444434134053997201132486828869954757053541797679788300169098085915737002730845179931731710015464880799774336526635255489057578479571262456988571343405828527296817290017244959166796205138909275908428181186091810153533066524960938903656614511251723958743202669072360232500359504042365487157121807002582974116423909889869621519774575011699369479285256505175170964588263573752289737909656116624458699933420475294008914560292526395186008394449441696937493051825670963715781929483026952998625302544282158789732955538412841338367302165803909879939413078378551815683245635800326107370234853017394210085923172388561729383792906687970443337945132108426935108648417491015844971051851778096909489837494410087458960090614452063023057292179356434482043821724065660728170167233321986614916973246122803868481990337782756011928310021260315537039801474419297651289508409630595025227626749283910926637998651885791933993577729463194502234215041099189240754878250205359635273644032648200109066075600886406619574346270797634407196452003622460524293445138524957794340177764821543750697334422646197168265022723096320543819668038219554571615223275108806728827482104731774411618385787105449581836935458492721215779992063716417754567331644739712789021111114937421990653367523722773640952815717469237382056134310007007152675563619109331567145462232336509524664766528670134023549770538769638475673226140229023297570468214623507418065578552826353018486002373390064163348910518235089919460616072586175557232749929905007441913801994519484109400975727115293654514070170969763300481935903837123330611556393860063965622026445053405806925348159047477101481438831802705418083148807376559332078067094064963010454436771125865720164589970483618821349062542997287231897337035336122471858271346355566228506489195455475909994730108366354997265264626083972048727812068838289353213408133735188683169076564700525814323345008541911965628178605405848272401437107788305072270855256313152975235360022533555239294171289833839255492715691802728754654579476363066011794964365472657181651172030368676169026717692977483979478855376426705985243938472834650782322215618649901967150534554930066947936551021269174533668917805546716942110401232568477813254233330383677019969776347686519642109330136975725621652994966373929537345483957800385886121577016737525638021708700117730622379080918868321419082427097467334106809837999712095982306950405003719738697340938448296079886529786663445325935691731334776708327457632770654963063733537249714879283433414387477761880975961600125309849587417449185566283622156340166322060994137873910981084132689959191133232104946532027464984401049986182292048497136788072569472637614231154743580368186633834720499834446313885490992713222331167687716824555741643282812015722829004182698383512207926081980579625993026418882082012349156410214368333041599265701603961265448314873351318922895600135228299920387574755385795309572532761169084252241888620646134081265015652710729629812342165435953317075931229449882135252999247052304533764762562626116018129062656174818601160898888322534311606516880195911224980288064551770019538881086966757366639859772105972456936244408325577945787164083401142362518966686892414363507524642412544150668242331245613728828850751518749831706773603308648708067705799868853232671397827490560747054986956096683824972267572319755330224423258899793643631192391600958264668127746237801951277520198945425628400419539815692686676308535293014500074424820653508092252724806214703956652281304303989240326694168719019945449680833291549036739098955271358718272271955968105907289652569372503891818344052672718134059011134465253883058905376580241453247404259544125673677917584849349206563053849174364394406680184558467077308244864654543294239397399737090484079807496821103506816909794254520479159888191747799873728450536927622419597140283000683530803394428927878213694928846567995695115253896952431495605162435183828798245595493726827960879991009817383240881279817039820967540313767968847990924827556293803723095287812761098444051304778859346372357930387480584840945293692357305284421504647633956310586789309348504413577251210161119113902595453464252470190498500487804643040959718580133185887047402142022528624191190628431250316297413869234174880691622142077010665561827486535392908292083177041579377511157207505716277879187547483000110891823262413590004602649761963649752537783315462948097503586533510271038734784481071372729183239545355480174585966096789385333151269288941113864161326539447582434662770857218432108223593420972137957298409286171828691579118958585307561713063660274553780861010566908475154395371458881876634194948653023609509663163505193318632451677246777955032249910255943381326066834932274171521313060267991135831647993612132755344493099591126850498154426509614015770375711144734975988631582827393931969222549651179214355236197946933528977230216672979499433346351748406783282674222169612254198579718627962930949170207163989913811861559576354183321426178272951342472267399934078996433109270146077086343324831604903856814599059946363038678548432968980161436840742076469999463818260258352086939827921665675943974590109535783058768683425424826769755866632206241079225335606986178751912216186487075214365097396910607657587203781806040268543204538994404783985248722419209019013711237452226916884730342133095519250426488210393121299842248749061260109130918119195755671846606941173389941578092310854360240803965184270457308815176787317658718982501286597251728700387301206017557467378399813117797586915442848790889223686586069373588374126790949387802189964138893189089131283431768448818205962819634806606765395838405435220651274681187358190089370925388306012173382819858123672159123310231563000605178490689528097710390426715010043817550950493586242307353870448568853320230762835942017962784024287666435057054001312587255591492612479300911775995246423072612096928713340932541996796248892583279463818521029828501517591324599009462848814724388993146807520700542121531840234302904473909739735204503945344656986510915663586287313233488637916054104493024755188016316920247801457624509745518338844885722941697768043681153519869474236376785836028001379644409417419116799834036381336487480614378354810829541142299615910904330614797659099992354086273546939909684106951520531964603804156354303610547968384888641066286172631347162050077511145236420151106077043555480979811793036604039505829636165953243569435568522422220893853351962559553402572222463474213112423486312768260488303762882076189791992863480146255749742725929995602991017505198833616079824096982779142819644832669342032193619230775808715781888465314546813143887786180485405847006073473082563569791115077583120634127575812862077811962440060474085402873200936471725050386764431912206293328486570616419477056134800245290157438408841282714960751239839692062753724212050595157194954320614324373476045830183963191418315516890542995657225257084685474559930439297254022148585936627215811851003058927907297248512867970574802568914502055878926170440531230340931122853150974727032022187692274832178376698870685507149412387002514334858326904397766749884363089187508811849039546028694059811483601308528383302379017528011203438758194526173934217603482424872932542330689073863684719432874807420574464550576774134396494564777560104444768952477397120416375823713114077205261483729537540696234687233083504001816975541802734233233650330777712749501358142214444967545733099634964322502837985025936024899421102935386351482727194841436522665354173892206165564564886341189732118332482688985167273245194113614406241571130860401570402461026103981994837785358234097456019672392673869507668357316731220780182749686777620111905450152371394918974727811395775724128922077393563459448453616879174184954605242052081295430111252197998453191397964562497832271296401798238250749571120880478402541692387393130344372878051841240785858281973496163148692739021589661610002218287990962120049119578190184297021248369098230662305836983067948099031219541421311860273791313801303007043163772003854169631254128072325845088704656603566033408362857414635610494768732903583656203234493439548495238781088612982709961967676649768289047516790286109647139296864871734755072019204104458842466574227249461631282500768726756664120706810481764397049701669062732932752659378159132005919486941057439151555214836369035757438810779239229720586606857377540390092126070591709111645729677831252895992679758020151556828278944568028127103683549914649424415896860721617872894367000549389068408577521593994708979836155924400759928471080856510740000145610122140268195985390505963004237360970261754858794214796349274003331636786221745791916323462885854230625048063329733601661431808654380047611240457163462013369888855383851187191028094481343166748524017674624730172579730467515919903726852916736585454561573663948351351702490904067009425723422660604643933224843222341755828177075125226745225955773119282535104375440431479766449408680954100201581323695192925071134811439513188924975117601243525211832694709515715540011562008360128326488376130187637778913042429343236354507867190923089946103622467402432474251052766801460605219510123392072687985880727277612121260251333189447461972448823137373231171886204467116295809465689704716838832768881024913739699753101611821901574416865655781848089649344175143472108681729257551790678459746476758813018956363136948370210562123038957777846096005267549685225649188384354746247177364717895247829480747500042262630150987513345365741583094198814393922169912066284959536736722749621083880673715322797940311929933989002921175235481474071588663463840967666667135055530273501123791918720258541487288055679182058672089246569825301534411918511612811200832619874061586272170789100886149514213714773608022219003141792301621461195263687028108246931443867195537117947881423019691617387423209396036221397664915015795571865074449343067625960998631167021139968379456123191147927104867609914433380495975196917813843447007516557243984179223051257095343366894380747450174780347970633642521424508283245570811815506807858554882328293862846109428517504524896956428964394826318470020347486050432050045981823874291653545749211302044964869344916727717690769875305310882294315080970711580070016532611219896449259162445365801031281500626525615274779853575404359406671698272200581047500305798203575329098662665247834922326943196152084880499821186499557949509878187131632607053635226478095438132318811659721160792058774518947884974410124365650739409779147007636128242790994138022320589040060924498896106994429488949089752616415217057014226805857091387295699627778182785016491796265939356798778949233257243281541714815600282101087968691422938296646929315857822595543654507476757061411719932645873179476240693044176621562709306364498108429558124246394726580178208896654383948909204338551581040097473623209372957940806680927765141340327737240916089580384958833009881988276874166019882376933345405523081803722293522574648553931642631582135876930234189878117924607965106454349030396206772707905311040819907794364941749768948737128693402519886291800441062312431215363971085228476142038268992425978650527551796145158823080907589155598307354934694124199959255661330530421395776832722620358951844078940705052505080328695375971530467655477191901420436044685149812638770699289468220831497545149681860926569911580413387009493902035817273723754441294870824486771217306315018193447219428174959893383147672305638552482153290438816171284138788371023023703520572757140004348291374992298470738142979434335411840898415856159969335421343635396127964740923411978310942381271903865820473300528396785315947320086610384594199160943249018922597193902867468316114238720625304404555602682441731258351693200945579214124482137337705554406180761070655133273956042709043525726613768879639178075426532409352270941124617812238784530268823664777565446450949366531321800670150001683973875244435168174961432943928064333360720769284866115015075023309355006720177391630343505456128785947380453278973154541426784255119207813191808177209993058192895674064748221153746322912501013932655545968769382621710770407495636416064280021420013692703275418929191665930021025600453434282559199158589490494195876275601076203554894250469373377145958919394823955749698266439393899550014355945036328325520210002326665815745147086054817657823663665312416498857663781210257397612388992177086573763569492116539180191333483316956403269971843049980101696966655549646826749707716428130653673677616213216143502477985137451040350076163503059735715428914942897706560394924513782395684977464573928396500214333759353607802503829752918834980915826722866166927255983080234837252444489745272221795440604985682475090900869920623344629939954033322641183335498707395768758918625396886289523974959075516021451645587868503910243653305910386190358568717209281323795788659554399129014046292257067544622888643479478251431809616131016362122326790859556628000978769444975986591435053377429854330105834677404816666364078411443805887402499164067852548288172682695332924700918078296308444727463875874350715552718244034118600735975215764180134119831274209462288566181375153790593856681979469829137669759475454002231351573647000036712846832000876191009151811143310666922974168562476540362244703095917757707937552954479635690129270201409865950284418330117871036961108170905981124292211181508913820855425285806630042926684558310935782716340286367661012311960560648605499275361342488906663170457649632708047011677130495754587741973357596738648883339887413156285886493967423945304687069297317885743929514860577577257897509806175760801443115004197784549106479498263652641590406571532698441358355465300822870520416084768657126932466881482963866004340317251482134207560507474996282842758186003038113255552774128991792904234891933423231488485905138999916541146277222403737205210247518056185989961389961891943488715471849979393707537379868196950468496585819432720749223649089767841459212782962112719875144738308739219240552687800832068885045633735379073611358080616165717632122041919077795379124143510723733116266086990975281751983613562161340107213839012849715504614013137861176410750130381643465869599334876681704592112235360364466326664410331672728889665172287461630714870594727777021598177904390704907140275776974252954712291715001166249984940977245773608296572208788402064265828757608575346296908801733657042329565983188759415373190802545281305397595654919719768787564446767144598361943204420345961809111293180892286930578414836355767676983116227125410280784155882121287589018513042223963173970834056950036561408859531359964768101388731157445197742676070065903861580748360759511085312317939171134577243319003209752498159391124317503618519726516497000761772390842656235053133557978312861542923035952534092008061322805081745923570152951833158839347502193055320900241704418007732400262994489076213788302398159508423827638231012543231298652008572608190736004717734970670430386243657076575438223216899856799949753375537374809161086934364143743374508373138615784895066606696339196212797230684328327612221300979285053744424842059754379505074821887390934699467083736233400597538095148632737964760841290131280063325523033920613893306523546108855655072406075769893400366726069143255666912508045727946309736491258923634189685782899351728188776496121678680865890206689269505106321976721962097162216130953979936297848711894136823374354043672533458164236083026869588376091328019086797902655952905357856446305068317461302910100106348013183741045355606978765531700350868348248293415129993150987200895232854847962857304987115497790721865641777093153306663349485084040811988526158002115634582407889322997502764366586062603964540495865772137502731303020984486282931927396472989040264922920549088456793144946240185467329002833168971152194065554543016567575463737095600430996718884096865156041348299637690628195071996251971054869396822349941404424143198122286534390444846828702744081245902496487655426548415440887003301902533518738816875224175983448476319435443716731772293438560234695675664298444034503155165753278647925440896599676245114572112546855222719386740060677024676695005084673471196362812362164985440883996594680769413536918409517930641369821775831906669233280427905858748302234847330897491930433221918191553762419318404758315092483602779512743710230222172590029107506112236093694693188020536788037068284244999019360593334202637313935799646017360299035820220564061886071324878082119034107597245793890878006519687963207860454976351714823634122815124113050431972699530771393545469782429265380659412734383362979729531857851628856585848465383540673721674438554165137800363736879778839209620462997577588298931020212701451203702368652115742639182693657406545913327665815234487170190519824995962368528730394714423445904295161613516566594327391764061093361802343255794536466874932376607903813568491513088313318845862175808780954897536406005651696465199994282173474189901893602400100897983501023679819329654624075866172380812362668444947896899775181119087590012671724381545706027485422183886559776791725338281629532090197481087988635245358576716235080987986570430769688313549788974279400052005326331948845969691018243418098696434839951394313109649397405864421950512681502073522426157664229250758338650810212534823845522204515537694962318742511152973207654938660981702997204522483308867917780536915541797886478701823277879877529278920326168969262434174355996760186105809236489268415900978156811447300148169602260882717166444011407361983702973680794497394048546473955451243843498555961986913946339882726158557791966482851544811143659663144369564548890835757131043422558776304686197950201157697857223508725547920844746141552103761885045722286771755708983231503661263247379373627747790452010421879516426598769705827820380248959865504884889546824343375645240359411426611580145363467800557846613174024344009297601086973076041480364946783215719527317921813864063378766581642320617475272490136775242057628105219417628668504729385816690362072599913537595193013928271905180993922307011817982877224830779245446192621373059405285544387634652483340218922454138653466847875056621080815118042556814293776040717274560329929614497102386678365844391259098849940506017175759143510504014261493432542345632314737770289459035298132309879733663728037488633202225201825562503415505025172987867145031349800780640039639709116114504625366556470238637540503110615853766688343483067178256677777853537918663047934418960942784396977254455501605187195247440388387191197100985249576238701180680694050807002375360422978854722762523995216947637322109632717860352559775377598910926153721508636761573318998122671826599990338650158536142804435009446443547184940931653750799201432944315377040580362768330718219108776447367985764225310453850551756531217678210401718843677237304515286393569994896697562972777669973447286867646478393036731905289225279332213409247502847392175850689100721383319817873271156383444487620054067210112717964558351253545428803807868179212878507100967289665351237865466525196584612880729136506993097766467628433803969162000183927739984631881818997788967413518983595281938346982896975608500648813825739667758661150631621141191166097156180435149483319465664667599750260694186539622290555274860434821293813537376281245172170166838044019824042200790291532229741586230389643388993061896198353706420311429216078369595321709907484914929833399816904298897221685938434547922277336748883698323348965042839187210080866779202324068260730363178779330131027379635427321008696274641821661175602189741326697782128814112534145677839049421759985702842435934230679026347459055415871592512301878273997886378949650887319208192109603218916694002188504934438508353156671777884478774150234545731194142683823438500276671311296769503933024141014846036746597077369755954711505320076025856988310046636892681027305732943073585228489921508022431231430697953717800892519141676420634072292581614970955258069041134760800582516563919316749110343569339450551644869467864103470411371121652320838045097019948824143445571687075152676308540394001975974563062303665809118586116377871958576011615493974501514336649353365334808886753567525442017971517243157789751754080537236650208456584749048742294292989634513319327807478189732485742428181338176850707006535576016923048048020328382245962844371567486214792610970984567921691195154857050901536225501356752008918153963498519688973963930804492807598052553185276234154917042471566318615774356026241549452010582685759534588684992728889918343623184654397998231604029136639244471264392896066825975703506872016967117776337316780424110023488330739444012359633516571603357655903528852172575001125816525114981897375581979178603024596643250573810689951361739052955484355486126437308002594162016533788648020798349450703955843764732242749358243565929086547721074364359327336413831414376176021896673450286549126606240497300883408365161685364631129748441507705345992075285969817366056891954147421445723992778699120989794090385684088054389951490482451242742123171572828651889938758476418325536739571487277482604533896277318432243101664384705542199429606198131771736745402011311717483806650362056018206222961463068522403107409891403678668503631936895371514589645279615152558070535708045010758721510925707225569301591736713172975814876446826852808465231017556645581264915256850345776797197607361297332542019081981759232677896989520759794677507739210186957734817924731896443960726277416784781638348593519598972024416139097104309576603261554663227651997380211360730491699589136146587151342005459796296408166715753083971832524201715180977143649471382645063028408411183841059760237282558859511501400341099705224415751503240881734609119190793940951710810636458625502519629906354754130211173421272896761868311026185567521172428910615752475818714863776572495158701533479098344911591249259393690108974856092279491220022935748727956656547369045347062548284932388670721871439859173879068625351313923373292168247222525229884871980712576057187326279336168165012587882199987579096741229939081963442170920742888048875154882002472089682083828653614276410565914262436461635337029690388370526569905001454049036555040380847810331183657997982830596772575571689852954900041743520442811891965917529312620450600141794957354918573133721635967487408428865073228977629253954996090387567422813907274160751134897214587527581075506973828394049709863294191941681767181808121023822479174069656179507715221999688329750799624635815427036334902510924213087593214661703193252010802597056335654151039413003822689460103323090883916021771103104552266221933795081814831427094894452439489648201002567156370564248384399173927464045958736379379008097398213652046627253752027765078187835095422124400892344534868831468156041842201159204471432251070807924840961556400248197288026375527299655804074262285874338091185321392891688254788542821759416150609147250250431777189463089827531129888160856108977334284583173538204356860294642696444290300054423103182493124134955830875710896383058369707096052794132332110847585921813132694985125528052257383403543285602674346374607723448946430744621612422841564878512926345699589758170835665377816429602565872302167883611881688092220596795495024776783550035107736637212703605476009497741020313722215496398094539226148508101274784714279048040901754136261462620224761406551350261322020452997715025869112537166616058194567880926074624139922518658348072842454455724317185427753807039053453523213546513772839272379925124712998539274782830254295994947050370569347044398539800108926912376738135282703579089364829903382354831799424784953346239133453887638591946802108191489120261916979157722638099372338607600888883936879259290264242331267576791025066647920658625441992183874455536236185872642779977496999081651482038078450567768791180830916627503287380109891187555459170934412870044567626241401765051120697577625038096758720012823946962039309796097184327486421713678810790083187893217821499201790659423817507695649531378661346512992070747165749282583400773702431460030120447745614339762542245194782459992172252895578408604005290527729474596278948341065608994451304401196410218956196361347304370244000496317533798955883378565107550644841059734912072005401955896751352003918163812291295884418698212528700266957988763700416373080271113691094173807189370457926226465724658839076240697110065962934174976947523584388123174819878275445657341533977799288780817155784943711464261779311558720363808460219470986983094343622922092457151886540318040192080216926460748036921441850744475947635044781184739693255061963237766030212818237468744037881158025487251520971072075465002767489717416181148001402729683130167398214850265926123058856529932178749765048332186425361599793653402100866395938640971710133460739427585397055008238792731570823667094177726830593707814064682305455581067453215217884151543596165422183936879926136420270118865232489289575890276452977761309093407189638079716657642477339713443751712406874986355718748700195361761354583160862379184437014876288302114411765775538612425924559500411852507175474190458226942777063187924908590436910798609102862764919220453124307419786511615695694324474681738527641324775368169479059433538460003347843836545651380750825676733466407006682384278215298892255703273851110507742838329572105240852983775008432124233663909869069430677109026460931617700928775681826692521466706743920632940391818830077758685550445451558606545447213258895476758226809784183460199077418466347277466142944629372454873500027404499039849231312059667178653180929272602797913686784713465783151944656438950966697067756514460478794289218398999210456648012812093157518342900608205053062289539072912956047411183425235930752852974883210564474418536379659396182641988537546699670933606840003013402890208510774669137807645725181501054444283843466881712857677198326450475942645735227437596239192775766961212403277500104284154452327676010757482366398451163711949701516098390157248249462230397220925534181289634422995670940269042089627499845907169784301641533061394742265908984171342538548881406488356437712708107934433530760607963457513777287735160100270878645388103508641052263350940213259404646059516734780877970345454007097222162784716039380543381631722082871488810151530239803307524108273938644809179274653491381619499733666949426790877149052207541337951189901750383660858106138476229629722078874152830654704042723248767729552858982758374508694133004889178907471667831192178392680663696008264983188404864518518239198611086459653004801071963603031826258461620794372271860024706830117613195596405513872748824345244350693175878409668666999119580412179580733653464746439074889337950663185335018247341368821788722641187454741204841586182579828087547385555223452052936983992017042004338693391795183702308903903300070961640213898755132528340189779762860484843129658797539638257807122328308308363248049176593587289946447572765884782315201205860400335622019743484378706113943575009684789625503195175907132161971715860876907048831626800904752469434999230022587296801817447317351410027306284810939766033551685433818428123214225611585068849599688099056313148766908866108929251313001425538236945349923525929512540984097642482626824843641497200302778591884537595611770373193053870423445581648965581584391006720926108306050808823201787968378739516397101816278057838792235651260654755710390871576704822710925337225247913064413588641167403863138460672980271433783304811614084504962302565855713241955021148407734217802232520283951167933344852375432085922686707728125339445527569553294666916465152156817244986140956557024519203162692560974998426377490576154751070039260575311242280249403311880641812515014301573994090117122610133900753501094095696545709626674232894371964497829298953414420818275713646562898565834941671525613272427417413067561782954191485269316116656417457159318218115968111462698666684890564531961187349148601432137479439407544186575772785647490866375368826341253718310494920324661727292373800725190597044798139140643162986520568008702482885659375308298600605218973254672649637392011943287360401126459236882324150667654765676434494727011290526278196010246422767780729657871261474162760383730763329715925273524637016094131594660060488917920735299075767623665055657060756244979855696504714474166142128813590977986996819904474472504803161567147415742523519758703795217750531608752493074884797510662459792974901565315322442256160334357346877340529164067746526007115079923111976037202659931107908457771991736343132539734823624938149383509900742934692426402272229313175461352723344637751265544618452682127163002205355142961718728925051529883691474397271444607090005418164654301767291888321368026747553917064547932173209383411140195663865827537236809684669858224774176592018817384220672642624072642779208446554685838720542269059057669103134268780594110060622566217838032776308960241554096926736399367153133170642937286256127324030031585414438994382808056498381081297951830974932991276240753039711142430618901765642424810751430236806202902746974920333048867098651166427331752161252519886161700286325179999653793661416045584334007962351628531286548332766557500779084829667894186698071749612001745232960836662289184346941343335719624511392464165308844134592135424039767703851484904887304589990832425944938450784054147854865776848832924967153088588128209671755670405517040281263959961953572625363882575888890369832153753411007547439781311990200773126326195517885799506964645368674500618099914807727471944722713040229319060874390027319289998988517989768426726415514794208788987853716761019790761930093156980958538764990540733084077941506901025943301281953720904913847019917632571021083000368330799214817203410600605326409588178087745457792930802727544939886259475229575775593155932654624229175818154117459443391086835101232284449620557380297460582965989643559785893547577158012175007956251129033709919802019377533032137375898149062425837036815691459273489543557870708802572441823323212324823615653782902533970517019497261965464403087287310825311541514498975769534899808609145353629923814618364153232202015106460051073143209991959102004812889418982972868800959021631535349621647778720845357552489546625850516563675769195306492957424739288726753195313593783690006864670846962239201094873765008404348292928092905086165272614571268427811659999474348466914418712036083713144095442080347893195972109708941012974592920662432149275482982558274642614413094411417005579674620937044649819087366387094205610742473834111409647417566098518228058890904529861403063139515853606222077441986824948193886319280017029612993948673876254550693635684813155051070666666471081223204504761792318463911979605248396992814015926856002736346240812667392258084572777374763200876580846325035895050132130979483098997619385534407224298370151861706668106835584979177713423587651691120515252291480395249153852534463036035558792565229392175977139608243494131965410542092931989566878682457057141791896682043197484422668914329331803686392004894095217237960050487371353525850792881368639044790121794738110127779423534006617107053346028610960282077588490172465989364364354251451177259140021190773316335188267107717078729597132288265887287695919595339579103648598203098504404130603757630283476319867759330618181242322752840218134820120399575083675367656755488191440686646275197423117952062340204762524509125450786139347900650077951974465629952935753345197479689643270930711793747943830697062034691742328288096526838123767548601091142643382501543793532394947328150996617815654588563702646194319305248578955967898610968974391697643415383731036263682340648941399919261654015714017742132992730276045100861402437049501858252684747402783534411907017628145228427388542247766055744964874995013317440813410231549518213307951785442145685716616801214972830993388309879496979559850893050641811807760767219747970717392418499824366058731024189093936733295256015138939310682409193779956896970556434679249524654459783291298733523503685286591734884356842812678214606340563638766801245184495122342904220027486209875198133258601946562205430646555210184486181235754457475812051283690493528350711630858637852001466550234533080540630375075345931964764504823673306641384892970218677566316338816013186329423038677692030943100402468085396012338759149613514240630059038786857200079514547678687108220817409313201586015195958090262006475394868142238685002824474668897032472019304434377427059760086208714328398423295931357421505829628157508007035199887584056717624479269993027729640689281673735602650517804527111636303510198987940784104576546908129104062108017346684313739141822618665920565304320996811364042497514541879114852406118416585605636365643615529607171275673734487904379546799461932181304407875936813692239868195779038440467742217781792407104092434408051350951824486506744934423182019619909906952885715930805827549888517184873941302687883071118850966650821552721640976411225942343564067786607023397112175734352478800730396270908398637382057200588488137495629911263393614407531192053814221582918429217196355298551519047043279752406792031554224947554646516539917830131227960665866657537943453763221192330902347482101492241061485286544996644257544452496383427146976832303873498054056066833102113127731110716365911570634491432240610851226283179708887103324145417031845706991890487701039031574375041062984336463213721768838983588080881143742515166641758957371635788310757445070789811813696158006902739594527683300591262463809440042341861499963760215989245854659047615572683963497380365588412568267789933940618020565521901285989417078716805078272964444368890535470117079705137076746664565598703750158425586954241828660569993183154718303679017890418841171772337650139479674193171137604113450784983828662705865587231810293114406955177437341750902383083299801111973076497897402321405591200427370388164148353239177916498874985026905180823816779624517298999239611516165301274650195588428254826648076730289197353730397511304141281590840215118830510082141046195598848636593194897144799557022621329535863461653886028100609029411288271492125605096252237921164644589740405837711253815372145145713511825207455205933597426478792040323983928981309073298860688350434284104511493554340196328470164117287901480388410623676073317280084448875378602381117172483484383558981988568630181330817285615911249218658406677676367317081122225759119702154312924165739207875627830871594242409899767560784479550639966875204122210825471379470174676966670828506389497940837104365777197170050044879930615048589855055809251207282883925938560158033861621945576223822084245596479698934670538491332190802340567887041465260174062941855218735215269495077155106355185623230236919025681035136085301538442536292530148961818641250433025027479074473907341027722649926951526383469181260427392583989615642736334137266781046685130043659896526240250493314255832009283318837656782308605038477143191959074853498211011044518669345229345926713348274864390399044666748225982471852084917914579740331060434634014489572814471516546775793152119485790720695668632978642656663891069207537275115998565055622457944823131321178364140477636065719890955579003229968435394079360822561285545522939192234276011134842178916438495326020229182835923057413820421444058801706600936902949681587790090956162438483315690498243821667234336334648206463238865376194086058847941551004445084325329912842134395440099345472272621899448637179356473798173395516716907597948042458918581180515489465877294212001693647943757747402929853010658950615577126515333646217719445402043937359404303613935023035357047055363809427408917141820505522192114839608507597340015639260054113065898111264713786054855054180466172124082843916034753100610177556691310066987583239486052003220001201069682259869250392278289809156870739313325416679360832407764109243893622552318605039414279649552403954090344438048827335499333142545020483838045725649390915219763166785865773870977830339436653161591166161934301786123435551239040930936401973467904097955464095484206280620405308578761712743128149418745328330285698587864399283123813829873593044703694247178938413033091966154659377315275261278238701855765068381007861938868238742887237787665311665914162482313048911865114205835681305228773368045121883769679248523965178395250395953011162944428085428274612934648820586424887241620667505141077048964989033237833546781194008584398021796595576529564821506065038578844669002260955702024894132949271207385861295430860182973161840233359121667274478944840662063336475726970920121479695935470608437231195851590012784498188004267992916433395283650092500599319410409669372271287765066810468566978276125771429670550179462653126594342475332103730107579776535497912021790580296967458891407968610274202146049429108806919093076860323111107478490956869049514479849961532178099155450059899664543205260582153828895516448507796239553678314605154765900708483973792461250452956119521942995129750118197656044922905952076784736479469839537400621435177154613316502697779147094606804959859938777603876985623493310249611422694822666423483433808202640574657745098615251272610198093720111157912774131908654627915676972642872856467709913256558385010404665847173123024938793143536027505525872596876665740684712739667416265115809771381560280969049224180774323050313383475851118596522495118611371669306816847169236183457461712978313908809305463720798396568913083871282290295248654013636051070963728004148736837111487330438644783701268984694201656443661891057090169145232029692010681631038122938053805350620413694768001436921546258661417962099354222895465455164158145280986219051817771316034271899645050452075312608350053664980710946394543747734268752823550916204457607555970713179066972375552174465760099230575509815700344042877535591822992982683440795517055829893661589342187935914758707051599056967923956903379679548922048376643182582061876642615895048015029476213904062788391414710934849783017948270610911970468675940041597141223666585910585229915932076511910936737412231794381264935254711959097671930327600446901671116718728367019684442297612357959222635697963400626773977125386421327935703328643006708708874846784109643859957072758020999798018755995115459770599097023412569948076576498876742713298489106234028901556998990676951419122942422381878758391170935486078448880948476199745756385871367202224711090834794782575602484537072528463831103650577002333489893228904571432965572203694938971487159499585393405373648362268207684406114168341577220171921349869782545114740332191690345089181605575259554023128280900465435600671000956677006385826713609102479619964855583946969008573654867161790778161851721771268809335772102206819176965312879959498790885078057954322311759409705935061296782276957803503978039845580470580246644558848129597890541193088215926864139965316926451201772435943236105057455080164809659861045391314023836775208684639978646847390948823577957217185214211030113803212221030735427935356640937096207311292996782691987721113069313023373245308382131406132936133326816619843431845417806237058438061602356949625187511908224889952189303982407640196270137412207187621231868974858651332274076655438426107850334725489984852483736149163129575978374638817669799467662272792971593719247246420853407538949866552755251543544349948672248346477959198783667697851452217550301620473733749817732758693744471518715312353815279413394691559551365315824790706577597782080945641916633144382630234149680017975822738992597611371437554721914440042864844220590722038594482942525954538546250508824858723906810643779968245398545244992938068704324449392099258642168829690521360088969719878055528878111852478821952676655361089869523600535912522471705003063856856360893836659850011589713286660977077456907271590146643532184598129766413405174062461535437286456737981231074543839025029320729258251289224243665587966855800371077739995231487753435620021447841850127992750928843216591484002372315534158872984119311422115915900709080381869816059853944319664599788112175594454488773026573632136819197857027235435039719122716663788233748123528636829639219590189817292463296996884023642322332405758078868082991899076413682886408484901729158613731787347313419051522996719660789181251805838267582546734237221685100019495296841461019905910000093837277255695751410930457915837184901873013689055464781382636737471593501929070352639667277334942816301738942003627270179436781401635326885906609345597374856874045778194417959123685399381960814503693224465534875629600474573019567660236083687079068212014375257665518508341879976471457774527902688669390685589044461684545374123524753615403772804008306951702619200504240724066598431444859595326407810728078362885866916386037879751048424482007668818803886063021408435923471096209391635121011451448564496191596521534402318666798668383412986210918961928145941956459701118349157451393250434864641539883671551366881583775262047926676522552300606621948090440462215744862050725153724017505549806633625735048641481497682386450761459219976454858899178946694224108893495382590345610347741850668243020476528175169771833469693025745856760646496591330209165700731759340444393026233119788336850284170179548249315387341422408681969809355449014676624491331949211525022561392474046753833850220937632224654594497758822991964951909331907099181551506572513104143335693838896303408120046997347127164680812224382499772082481517680045727815308105474156713360903991217149712862405277241065280172793672822402622314450118529370313781421628388275034488073338282668819154884000372828406221395951075929986781881570816548073062377217359275337308337371557545428036571535414956387536230996449761339276979222008431350033296082823150985549487145395354879127642052278127227443371547529264202098978799887437391973384444246999955800706364648207130310966244614541364080672824908642325100110519553733880612012680097223858248057868500291211293759025723505153535263498790019888257274519694224453024830222705266013610643051795886614160834674563348238952039041722940788610674153049351746702512415863943829145244815580889759616394230405225978899508102133027305441196856550208250052405585357195042398802117231114912799378288243878945694866087940009876361565787952280813143703459073127738557972686736240819448111632720071445238994539966359050429929421619335600688357446295630196263172247382551631185686815190536131664662917485929113672948939151139172504574949293405429173137600489936870288363743912436410113076655503942148078364596261069736646625626297636390422063989797173987426302432778267300895384334455904401202511075096888951517479238406720276834944656999991534660904665560857584225066915431595572921957060269182500111201980660067430962969417191966305814313421905207101347217128487451625926497970561965799869137961225002951376583853211435428830379504590083215846389509921026056547169496025311532273186696884232229559654125053921278691241202859816092645464527454524346072397431444607061861389884110485971819265920522385704925697927570691316291563355845641095791347438266918786848869112465756770437152844583043194572404167343423943184815401348714941259530182236143708553004885931686053029634342422635148712964454893753703054501485277378998983437138535352587849699899594485613908890471205191407827325259770528161320627752753628336482628450043182150151444019327202440561952282235914490105021608372105858648450807346194377470571737678774711778377608020194073602931659789717723417440099898810347241233853015936782901997257202997087494987589614626424129567092614922472501248685859925920471679791933301341202830753961429652186679078737199281324373697878687418617983415166985009147083910966341846004495957377839633286947978249964610483477256113867259652990196920190042602608197297789769944404656636244108061319031402348187316034832411742933524622510918358516029889130641714274760569156584618557526916114785108934935123778839673191826395727384324862355774681970862133761426487863389168294020756001274211507823326359475927262190325480619213414844295326988202910235113018332743396612269283536738122082857652230755928966733066959518301329226905560512927439108907528344213469507591588090750384698074668099776317156587387358420679883320816868279489115789524372760099355483466531975293986880013131724761485594571635328746712459867773648124762398146236273311749387004123568468271866319439494826352163334346196035671245197309903438156594304212564041366625332085536872845640339227494700315794884038104594548748931550129583917738372403588153147944599773149880852563545445958044820943600101632525979215550679739598807031256136499014754677511885301835377889463650443693308960762791772904886822248247918441521659781213609640868558063419469530370383981363094375590508053157808467350914369667768691180273653827194800250261780886618427705659805559478845040865003940508010756529905645949469238589091791529274219736500649277493651634578803130321908327531622914897372364113010972092716546911892674185504180165746472309213164437277097528673609341358718901136534689297823079698361147167755894771579152443498389171537033332308517537506293639897807935323254578249335758024183856373723521168368614726015981062902398454241895616518412195867269525013857132624080979311594956875709743110829147268558366902473306336921703134214444107256358156749533129059851277760445843969209164009063301797344394591686649017538478603269803410024294268855183465557982618986647836503869085042772065104814152483957398726144720983093298973921322235933682730224488777101000384220461042238447625857946277739909861411331289703621206974532058782993645758818627755224016133748465285767329770953325809659780722166732775389297341810374158489316690715156757394534565930615398092984371773729302151018136817438118713361301147740774945698398160057607263984221179252286035853633151095201328089056697427108944874123521052528035400248221278744538231346526506649990479304843162208371349907856477665008600715442327388558219611993421722324834597233089333043551540707535631658640020002591672624372789512110435518005789613746338013143791067499036262150457779256753109200402373637232098255535262299590420256941204300889947109668937298691721983146303801699637464968699959116405083503835072243685537866877837503701172999399151385879331008606265748860200234951295977260380087008293847327172644632328199429066195241402813364834254829418899156345973026129738727121537596949064347963998144162436971091110897424930096542480158505063385506285515235765228323110939173026885964297997917192651940495890842027036389408281189188185258048121288692545701921155776467423149230836388315288678988534938812047353062271958438217231832841366627133983670861799946047066967718991867157446086767682183854847191779052490777767234239211663614890193929983748207056252585464129540816286013352801388056111230864258278894999969083987657539348307051705860821916846889836666095014326607659046879352870983699881640258019327776711728258948195048731374542722581649256059597841915634423664884056280807888238818021076449836412735646006684511832703822531622433751039190612080491708160122999636737210766938537755198426614780783112572594926236650739843263998954062249459037790834928562406840835891904254224431728644808813986798985004826785344643343083654488439619897753758744426490594771593859163758896584335681273142766863320799940120180913296790710647596487203429937219433979314123931527117519134627701307120362617968584667311248525625618843754606836616590250165551698623222966725892750577209812367199134147154434286643399832062729276481475569952668987144949909571664369022284305206006525683380850984654611052315743951947937996840103743407689002985524226872665562413777792049258257864554793527255052816505910110189580434368291259451977690180471988338528694280614093951326121812341373187812061610196284829159277660277394194578864762496171927418643498262818572517245126485483303717325466225214872976299508633947042244551552772141475509402083359221044404380773530215412834249445673290264540932652683258783403063466990424810943820206082479327227204617675660920835234348681227487142298275338365048238640626011210899240313613390106800349161956927886524302125533753347833913683715089853873577639218067104794576470641425936731344247787357684051461361290813317601675253561144041107320408830652602779506498380969865737407088505141773441131740394483290775861240774962557830422873110234760776532832373703617273344470216558883961155674361009961143491989359989435016709116019809205995028719227614734234150806975481787877446019746392966394190994710012119110905803447292309126265858178445861511416236588804557653094881571087271880486258630438271938215283122784295675705576518899831346437324487933113362902289185124501445991065086598944416194549548370432057358041140267827339788922443948387317447819422097294638059466669019654193507810166898416480795185047084704147885806196252361106646085148999549257511135351720932211881644487082867777040208081663188583809153309381628343568745130870517870046009607842109630836641134689804427937699390797903327028267761817143541838317654925631784357785628749941027251353215859464294415351865984255434229437797035832887306918563937809089208757929527022436241966373491178551738660574465854017220650488218242923433850429137350172556728429998801173005827996523817782189098174389449731404617401043627803894196103123364009674169468357235682692953158263314504500417879331780794693690012754497673408920935366926649205683606377573018181179781299932025936536542516982202368919196567216336785955589183711418841977566444537007332345016179854138380812667870288192430403401702653369635985088055811487345160586618120869483184068508017460924789571026804628721750815185316876369856558014014267186615184991016902818119309098885515160495193141233183792528860989944651984790339176814255902824559846058002891433396730778857294139951525017729304188592971764968797108776313688026085424778822215004310015438325123803683550534993050129065487096188224574306406447560470228964842140621503412944444243133024424174527767679358600861589702510323082903992093183029591739950059353952427503644465868027422901113895253465406427070330273239992134584673080125518025487629562881437638790911871462638952809541475724885244486923729296783076621683701117790498646058684787057271284277453628324696827011357682350733331729637341387811249279058968178017681173142184859898347374128480921969522719056114200948036163206111385150794942734756329691917330729727454282834958156293194373793704463413349590535528368873300389810458121217855948669735252457903929418981002593171203626127791437716733109228967052679612643906860589929314952025264651608961756079016865740222298778457416276285000334065268984620454043856635919346996005448027024074979784589657604132281791321074654308464884458107735883503590397686378473821228310032891428417453406623632021345044940258526578182877975257131753293703268348028008429385713957229671854531922645000385172321084971202787497553423600459585433055799256934725014324033146941881046928147023029479733616196517748134724344073142690205499261888557929937396252723016842195265270371243679966711312345955815849447654508856979876398813741221361477179412781563187072939455783285614037287160983231395922822266666710010905183314936626840747116485621127944627112449084902512791764075008695009536869825940705406488374457852919264803264011770731119247481333547600583402620385660868973304298875035691249404935656785036801162226051645796662287610749019825592424815509844357589134896875250871506117107981621814114333461551367431782221031740594959996497826652455376722182266691122612206328729709098480299457009905282069377072025201874952465693120406075218935369075629276254422754628515048805745688531204353892157578262236014478829405920709961812273390337977866321167427692623912552291712160732302903455833703768672538260235077252118392537472923682071827246969892893977371770921544270660092717533703441092332932386366171631702189263352945663014483219831308725823356807971703322080801331602956407743070565053740744573481083716693879380426869438921314186829004035233138350287000416532207622485384162533199024306005215791980976117987423328918255387646118369825506589506314572692450810602517059717441109943388985589691223772953771897383406091703713093954329402710124679104065495642769337343268050344072205100594607192333061595179426446581338217532679263932208164163003291648426280567676827119771249079592081801654866279259613976664506423180951962940976504452470867794400322974883209950032209680450444339725318323377557952781700934379014237879540549716842613894296603046578407016011197322991735013275388569805739348372400758797116297270700907080865521833612882095974972368676334041094133697735591503219747667328433130668792762611542384787316281802440881711637633900876091093202266869420502263846036336926958901200288531648195211839662944214912833515626133700495753697492929412561276621432037431063577709747212780196437067806653977294319086302593255389740983244604758355799670418025203771849002700122796385539511945265970076583610123949712956202754569345390391033113695684036508027072243927467725164627726915561959998505528902752867726062045297408028319699164873918026391398087853561053901165093003718991032888789192347005157506478587749222823531077626682275406546416901564462733230847745616968667402606332034185230357941806673957102850238255159640446784361801382867455509953510840833926322684569565997697031129799045961945672471865491429930311621434202792631480521583496689750901897640087669299955831622478594159357011406504460245770427665198679977932778239748890738461025942356354066236107083488904098833458147297103085900953130475612662919084666884463457521985720579348573710353670455509384600121615236470010274084414654782028057781894147399408202045140053091625971852332030464275528517269684041430244305520102322221983193642083954290819474703165931572547733609703301826837437467300853824986710969900262876873433804520345897292032200821202612126462256056255141622526697738797986546077759365527001959756872693491799677874813268724989387750438283674489005272478593898180504886885316868726290512832391193451859729684797390800666555152839450843557428092946312146414247559307735429490788809122076976088244084090574175269879573601277848559429587237482547030095053195468418754378830204455118944494979847644049913784190779021025182437327204053555232035187798608577763615618398230598999876172616742230558220712060072339596296118254453226134942559393085367868320071432445144539885328871455539576929257405774507961327495102181014097955487522393399747695586249910484125159782591920060850375786153015965748845823736157182230776124248530669184687892897735868061661222588659891397273585294362531072504698667204261202303112823470821268338316171189753578290488511274856192614000832481503590696062231718919012831935164614369025098285909321943375509923207547493923895270948956726403705893079408486392726788996448452183077604404328054013209508584938145086713913081311704522171620397075184584455332631756770343641154453948221629997675651994153479913203852070769652903571817369009267406234232325169126874323443471042542610816202574993642057373877956629316995791386802066276154854596899650296808983516890327664068354538907113885861378460091505312118250732518113550390479380460632545912342839556461569648235518867069365780221812663865937667421615338306002216743904469234653146526061989235376126632824717266428725666556265594103828411978423060756830652152935160099863229879334200892272494069757130028479878670932462951879941831948735912518198380637344158579777134763722744814892595048172251893478056296908681720721267576610308728152202191370832471731059648173970563454979012118364899515365365008169367229426838804461992383640010883657176355531488407154267436691407975567702463327917045495997309790543263184533677820547347172602049147710791407367162908081831516468795355849908993779117530168091987473685276145711019121935863883421307219996479734381023256380165979752768876831660781060467753247308630455451233868662076733625581192792292721451829001572843470225055981341749613485439151008209671972713175737920975931197981220810736873641406080393805221124578540097613421854729338821952403834280774704675656355433723926339493813835885364561628454548317076712062099745687498785237830537953270501102622145774782027932303190574118576714561176943665020756747613359288637545257439002673515965577727142964697853710951247164751891098009499955897909888894014166575091343386461217841179549597653879497240341495871516495498197767195596334413151831340336895126288187483301556330121443335799431483683003329918376699481269750049439914702740312237660019227185445283365910203502328043693038070958489367311213877814586465587674085933690878385388027504458679606349610298798656126851505906179816469094382398972148843409915785578614743659731991707887321748286969948154342560742862601215870157193518092882071163049217380825537658807572886325389905067634546627217756509552145517144661113311045756538473707006360533165366304626780137903663040078329164733711571646459520769541233966894721387809994376411559706715143196705822453691725487058665684604259015240406274675684865373782700468532633862067111086515348077504689519709627005047997847385843032862752526528565658721175877439622101992387019467307901287408313208520438964566569866901711930570207362515460376851230508832844570395615386462000320644784547471126726387398165164843296681669444400367430483383103742423250181700839210148592657086938195058384993074245796912789782602304157971667510822930625320999382708430174420125756846716609338787796723132238947935424588114989279613907549072096728678205081812557640223618371580584023184203514684900384767924359351205956244970026771467046095649150679954528804475409671208199883534400464841709751234062526340404111717487215258238309244520461564189158984652213556498286741194808480542460040882395022413967539521733067417046486418423467999868579428083076484339959512708052400849373989502071011309179127322488548630161723671201272052328136570406707068346709843857395242234421931553963315414042187949087236038463642579113842619276482289446042237697558326327221495246960788391750930058651101452451132737963450387801331121312581566972628697695530627647954384694598659793735581755872096556605983079037546391952267166105417211539331773434911080933924962072716909784421877899450108723729290382474450096411471266055177705729742255276393597643123759318813579471090244781676329434160710075124723036781256982621036860993043073768772119819326440686461322036283343834060227528938080077231461483908805849352839105487270155077379386994236653898776743503789153689751634517143564375127059341651120853833169196798288302365901640383796280643716501579979349168604399030051834133672706462895118915613777788739203719749675623863625461138932752282056080184366999788345084311728070138177581468496250658109428178072853718052219907905147049608865484347530342217804270040812408020971607473274710484267155723562397137497619985038705759494510666046864798486157332197359871737907603386570462095587830617635369695033738064229302093102770744825851310830854084004988722662220108031014329850833073997705987775215070672754261673030878589022716684301701375281697272239537970403520893328247044240905889102721571369701883441047641644182102537181063775515077864402290912157354806264060328179780229393633388988146202610552673642321873743512441696527038494485225855685237674717653948466542010402406634316197567778242273691167274630300564790281691061063198720498020813354570438765633582640404466130302873939156691413296710259838251350559131631584586261481297677621603799387727844348585748299441065639768098223455990692827745608563615990613605306517898622228292808268179882856059136135131380441915279759200065356563682919757423515232247277320081660343756744053886452972833595636122925282835930825239357223299644680812544828630727870548445039378834826001579547470606694756838026385331445793902997733907263876559012555628133499457619001989931114029580573979571178375608132287784627087724154103733199256692314426015718574824898494772823192662521190986206569885549336998370837575364507356883758911558133667666856588856322025726771977870754123404647510563127909378812591287224420331754068530909174301647241769816665408474610233000031418799753353677921290128686013264662815220598753267045575660542172856619632648437928083840101045968009640990447936037099788887120319354114720249748556180266509255547651121305453818842029255790895698328609312476980900117923567187398220251947972275395314232891507626403160827377670135187737845060270627782648501313887788326023884887738525257533335301775919515927404688111778363637806823196387338362760232980692550657186379907552383094311100589877992570416393634940484034454771229336941528031285562884122140523343198295640938125387367290612956880047955606808833236700098781475960930306849671081663245388016576276158874681814650711849492340746264317823478288879024698802836822029383720235181323001745208827014423186053220151191028008438748420515984182019776348935743972572036928951442163098822384419092820361832311785320278627354478225941339658298882337955165618292533121264458936705028653729748149356468914747526712219087006376280357202090775778805085194797517773857481785305969015268253848076900124862544510638577830695240560214572590988392600331592211423357131576224146632951986533590809432097188438583121520526315489350819164530126735080440392964483935899119770079477704179745722994101774708419806708033888508704100704783557864001553746915898958563907833006812520607048514440089512690226122988720026094576303973851978384430014115021834228182124686585310371386094132111751866937202396380015872735770184853781830087556554369105374980078089462566082256925223552419505114789089791974364555804945138994527153278899192831421987152499417350032149085813670498247597382270598819039304759557327800049049518550051813744149536172318969526410337469867442383199578971545149720909758327379338712734971152922526104303875888553136356731477803418557262890275453843302232735189184574987801354580694072189379860466390670628955539156383368168926317990170568009648489114046797399741804964231834132728867559599350490851631469213332475690647706689785686851943562485599504582803551219729968075336790663247329296762477355717347037632996605664765615535690063804486887450051128027399328781825534246153149501104076906802154027148099863346027849238096421131506507596907620253494575260862426058743785723424192746453022506441044116750573865897875978099492168143595269139293233271464283869417556259281432424506292171019028145521734875984341389752681146885969349580047303560982221226473308946633606478900098118741039079715095556413187940010228873502282121021575462354492540779823635673725346596326784376625313406935886907996538893410625029406564479840681701816359978094385723976643881945434283831078853175112478219993469338413807133236435414403941259745638906062871447803222207365809293880677102402663026197025828100819173733168617496439450084291183872177930192514802870354597549761416394037784367686829915389506994825928187489170392728200037422567698601361209342277142416106293245360543087023382190821656298623031440481914478744600938179289942257911276693544907089385391250228359781138249355634469336197301550122097698328402936483868521201213079176585943516980312847672215071484437984403776426456034611896684422265420866331944734577620851908687703736613103240998384308624152164755501543566228613617132889729063957817567124734675052917211553218399947602291773454205158729965024496535948869217933249374883287497088707040690547871490839838110813602908344042501914982056997149573233895539385641670030115799258846828963221178307882599648168934502852446790376043485695214850431521517456227677550379358167057893963807412121591794976896886351262472912915162385185574119622016643153710388157725924738105759210488556763809408793496254996853602178521599754166517454349864434112612100659426513675286023639399400398830631839954557732727229112745197382856044260573466082877644139808490071960580247573127545515364326228607541088290710705876545742112798207602701102000613601991163387728288084881229790532956254113564549494314282261482335704506486366544588548918535575040908058856578039718037250024675989349115905132684649089626800319078602302305554724503138005276373362034960811126956220539616006443203202056462326090668314431117958420598197411968819375423394741675751659485527332666640948891024191426531865541582934691256365920605820408226449248809660410600966585283847707494189465049593845651590899425921674885806673329748100776027824125291713682484487842077621287596943770213466224976575489833125440645966679263374033223712239793076181481487915132963409877951589021930518296147422844590735110357703878499741864244731281188406943659658309213248690910223116192542062147963614953596093095499883923912978617425724894157466571786102000278852263308510385939161805415008843006574260584017597786495680851949485622723391703934816279345186748469593581254473800598624640532021303863515114147669133470797692201139192177800156587937293954243922381115635880925771910454089604216318778027479014691634186379232769863506284316448809509849668188745794838013962334424853677539850119250659714056346492294488517107466721138895391869724058335577423856560058676269279853676188535807468352134164856856353936543567605770875440269305706366855208078947992602628261271382192404664081210546989670992888968195893120583929229998345136125959010170109155959636781848353500020792748987106155441380908143115920309003599995376618892764331627641698805155601490547668246931032303652336412017380361787122723890285604201149001785993153689669353148469803951350495624217116878760422984327868309623280750640829014400486685628345128403362292292651714008119746214641410851903544051175884597620734514680219428606561671660585580519695551193552226956015557818992002183597382925657194366349675405774940216345118705109181605203543889349635676336434465915904083422349858838481923145774233225067354639163977996852516361080802079675221746729033901622978058589934858953129182808364542060184511739134255115884165233147891131323218668592800346579627292055679604583364597938018258380543542500710140426277817712896613328830786763486031271524968235929214379353407776576362332723077251502711885864410321094522421848882528276206066842703385427919797959107858682651490028802516992303917621700935712848034857296367041550264581085381043172255231807685052490401948488270717022215384185301200002479299974879393399693838911908241443815171527304048373680785131999606922381791984926036660014069946311415021632921546810947427446319741674471956325276808845065103073592729298421371951184332543668806703521223460578405765704921432772253961574027317748773895733550523481260450167003329054846007222632736521375921056129633926538773034970288137388349510984428820312427807979011783969446179564457278964871781813725375837973905075938828905008893210708739126234094775906810233920010271162096600027074302795475518344616137639311803972913888323208666750546570705071234760598026111125248760830976730224391490557118991646559198127983434878882672870445433038062405558754098982924184912354097073104322508254365320801695707582788098717237091958800415063828773223781055174737050067513561614041831288035490682045173314533293000929393217992204752069487501847381641655020154829908756275963824820226386706994818423460304678526385567400864934373393966828297805038690457539857149024817707888425908901396121135864812138876786059096269324240368553405279447038314429348353629702333158368142042950128870942649715808443090106917480283902624843131340936227384297678715156829703353406959616839291601494460002705827551995741185381719639426543150573842646322267616053483157696283637382362633524016951368688414537287973842498297633764509300355455485724090856415700149827118847979397159564827533336475816050419047260021979420958996648095060919529336001347872909169183086334880636187220001224409526673879112568512434270168934328132544606005055251880248374393044702766646047355216638656097622437222238412004590857527471757168009149127920434814982138180248133415793383788283841160095624958448852948618373991661780765759695595966624788708589123429130462595133033683680822501073421284202796430409743178428412329167242811944370757205442362499199211627688774787054966999844251771134099469614049309609881815089982753177083451384256634775931600058867324858579230032189238173255483494470315166665186533282310188510219842170110315182878700236820922295283150003522790923419116067303265593663810122023659494471363216868500911536105753119294585652374457321868028781763304543140836897967714279376571083622827890603646531056966734260294701747954412326325669473250762877514443186729457720268086971933451610852851478701423840119321423301265786408496559842017810715741270752168204421418874114162743136915800373126357619544086937002526214171801520951058832560031960465881057726319224585430341656397824211666597968423706099841851551670814452059578092022848227228538778029757391595832548317653612071917727693714502288051949746127421826840197796283065642064786722633226559281497766069633533984713985072917838141032078450022433661323096452419420192428481650901928257528871086538177555508611854308322238857537504006204000906353949318023315261616189792591348549012031111974646085243658410567998124068485007002734386617719783813976177998282013269167277615637636904821809537718109500088703699088483010221435654905043545320743351076045884826217935559025400845461204736159191061103093998220500921243985554044707610213285207779928563692877731199356179303890866733182582926603838627276752524100325260720514904575442470735519041565120460758160344195120053323156701281449916520153760334869121840222932310846886047536698170726426230459997109236417266961020354261471040388282311837522450109428449706758747921988984470522216848043648972439857795181219147118392584202282271567039385738816638038823794132088766410013426254330898588888632547984826480847436772297075033234440092132651289768587211778145157880225423590611228644613936149689368550609435127689710337393384826953767133530712521732976139891789469775377742015903147825343446674150825166424488380737234939371409073592877921308369788644018323633679244580013969816217685968315103241203978980037855704828461815906722181341539102071018096396571214790007983184945471870998804417235471787962756663137469329496738827473459326830540121074723232665693744400673948911291671864264539640847337798914607527432900835760136724130750364634275037884279538649235488885654897297829850486684760978285673469456996898009286794096061466969888465258603741874416168405759976933949229231178257925160089147991276253806729336778315271618230006903027155201160275655465144309062253758792863323130047247049355483803711129956037284849502264051678857575962653772517065154493311851587202562499396707727716872311144701620333485748047697388685292891055434682588848678794454286262006606785232391520492582941932498287642093452075712487862974775403256507832794786527317326177885563344851475196752951034041234654686885885221198775879092532314334831115852424120968072912882957149299460379994877866602845696815843537497605356423519459603399636513170205404422448552598961846414006285517248785441796517223763585990047574311079839711090081363806006948186587433454845530396680453726149792215926305667041609069396423981273668021635113184403711663962428455533528745783969508318625994824162705071714870185949933516423803969493904124537089754806243877304808673839447081024757238966360148165402856806352756967725467276612559505973981140961784567902441014999733586438417236034019878727262123393576429527527836876562168641576793752429370182416189408333563525219961274328339524123540635616540752221263488205125589357087106553616741387508378102514714859595198411969398931969155596924072803160612753837676441851716641078450157781558976043051826614328254115551832984859216653850887054790087042790059419870479115646250537070254853047538610302930067270913900563224240671111927049422290735772728308392502697771078320366297416844221612049745441095396621860799933596158697877460618823553331779119212854045978176363547041556015683149979347531813712860894294175537968100757330573032402160479075073153830467457102066733466044327708979968773529635863317422239237215145266722519926954000836219769128654096788900404889250450369887244345820254130392998057648068587299095197354498413060406821436640352474221765564946034728423547465958226715313878510868044834424032834206152210274533900306483898452958462723185379384572796206392366837115990256162974944425776506979367169843527177409223018477508650207779463693866848907459068597594386990176777573862564564965876018069022535373572178397984967230646548722523907477498187975125945424444615387905119904132458805373984150577343125964826349198775100816234222008027570761808125297560413178890616191318776160645367990148505694402177896153177017069039801079006077111289577356511562597276110292213224997413424903466875856016930382231878206389409451156978700934498995753521125609826882688939462328529484950473098131905541721613703811981018655665639092044132436031608894220673283270812507929055560625444935373594804118472713823270568930151519502573588164352333014968122361134765883920325420015849674255450664784942934699041376574910566263476591655246101527185568083540248092260458555264124157872889875421237566329822336520143778037795393078437337666612158490053044623008074085578024036254757523527056010362626614339737407236865655888127648228508834717770758228317662385803303797337481629611961362192041047677411160455256501515421337016248186218271481597704147575334182495295827613803202639150105319770894864116540473383042806699531204396331280024791871494526028291352459401780324988799036355704855783461509998368589708400967712695388822415281713794674612225398893064633405697593347352923075283932169615792334826452466397002605443678877836198035082579159477611707322399410747040023992933242347042151085939054652478144066012791141675496816182714465764587756806382705722512557442785980078425810758452869629915302113441126633477374381279670060635236246015178447955725062034681798410290195747427993223123654283579087392644500723385937081766461763605334731022322162629281377757975401382546663259363274548052419357872625159362299197134102680093977033958748331549108539040870855253411791507121521598145019379376234124556431354069358095380530459458926324416736672496991532891412755834392408504180704330148736006045300426256698301093892559670071712132189387354396916213845632158986693526378376657794749168172912635489762765312668436135817764241109639019727887743543405222117785704945097611863251326405579861689376769980996532519541053790122588630749170106276053710487089333007945171562966373994991287356080141365625681888111685721699750147404226580003047840618488219808224024580864816468700516979635646399354811192644370845767982259315781728702378102817506923754752284802414360975953261172953671749396535943613846247144183549416638623781970918343447307871989835209389219286162992485969937254155858312485529078473905248786627735981952341945504939869540310193018938644364170615242356544196270719495280341145487691737380411928541552132015201061683016870983003389394297468561977374672502074030381163231274995168539449777386062119297642804294975926934783202329335702814118171193644427407493834396701206616819040290049350256069255925298808618222664540625674961820571261912701577925504903556981936253771040412091608594122401081903360352431846483112431545270647668385631097629240943070938022305691775468731762080801976933669090083852726326053979519453917283393374315244867489442257739957090886981939996859173411377374630332513474044559878972807082805950810470990865630692071642676472748195645375390281690174513479283527986967539594099904685003977314640510662446464903469099107831011196533260680724221388170227244571189317536197364792447041868850394305806996634215173370845119396020537692701526028114618214147559981536089864573968281708388980006886971890562746923676178958647196084190093458557854370201368081753670999445967066815580042468725030375413637026810953188694223070271997929762836755449418842144966419909923319988213803098409737321623357693716016557616318551450411220062091490983629457756842466811222665673509959842955740789950678204095733681960754373227024528519798626821983489918938494633039936718560021306801301245718562430077748426544564027821627602788777504940657060287386072636901357934040215805915935005434099742638177949859966844304754644673863460549751837001587573695311495161314606927180991920343083987551089115382850652451691813620320842727644778230180382391066371941596042215238444117458831781950591466988444840632309817021481262186939887222284465501218254329478939471147796663722018382444578760558644701629301441577519372099368689832960187642180464936686917718349525767131799602856522707112420979179547301658729244595562472678324545893594902457910564120748756262571828325393322104085766800911718868674200691302369248440891256823329730322833633080187759691650464072597508926266267642881990469827412636158771109573728411145927643020200321784124327530061523478336280253206431439219537112215994123159215069658601691325132661604672504791729941280149136585491053360638623856937070631365432574083355768884625896120576086054178029904898977609527100980508732747392790577473411676065836981306243315806686594965904550562463728762825711831122303899355513452932622473495649476648004389098428757260179023055778688879845406673301605596860470382808711963924660687778120017445231700392744425345471573546648972808941170837953916126040375594584365566587576923194797700212775186749575242532015523706769344193562776454584223209374069121708379708270416209590610124369635349529714164916792426910367389470022998528034585407965733880716945557107160867614710188121830220599461662939727636813740575678848980362792100154929602845773091437812288745441890365182786460298335345500657519071302603390338045433902936396089810616817131325484374480930022641420888863024198490268078698831777870726281640218629103635705080348080308382598193418381082002756971307725028306689576453052691254386292493209923580815111228592344896705048681294330551908606111630456909940343436198582146928207038065024060529522219989574285801110204757537871401117800662610687838855383810403542682325339944427410996884451158666703238796476902425325594829213593486704751585600958805229264247989334501712984448051980229454329610171969088167704633281038368804398866905254406497589631256279301111465989148283172209424899376144026698441382373869831833239031206540644951255544205553287790220890867364885427310511368718534062306591616661734915853755875893822455942018766579074989648167912682825389987723293312432707614737393688987732127485114043304255657740077923056921392088207024848388656732827774822893640585085674109033442944295317266337520218128269249986275580876322294959230551874628038170788347419784427521815451078212654748558699900882700275440021906959045277878634007584182325326156778987451214912522784761128312187222352598135880844441737572744994363588291801997115760311363576291430912113735260577097554425669837276870801315123383984678162296654549610461786997676212169322911837519309232455235284066518108943172813790454473628477743473367450567897842112489401803959883492582085594527369443120509624000824457890165917745562783079879683386621503973759040901621713668959846839450514502942892036098764026335380357097161235919370882990073273875782012922234160173808520289764535998342263396415643996973205544598734166078409837821711612404306597039167745628493954461999107965571517892318737401878703267362684398826793235710060555148346176140517444450857190770385355880653121947798063669050767561611254353442660818070729930534440983992717621745189051403092036961953741699322871809646980598519327465841163211066573326576510754913722283232121932474358664028186503487836821057937489299092575535138029114268362846858184293958883527401637772609450635211774565008403816074772987298787754424136150678934455956464575414595795510273560327128148192290244661766284947742202347295044725611973775582722032345061966455459006052598081726354814743972707702328868761533395688956336193681909787936539691924696149874330409448399124213022439611013882768484012363696434163579844899618718094220331746545010651480438823990764496242887220671270317731493629710247084376001191024129099419037717619209431761185596736635113944840815055836724953905684073958924610328251230289647175967149054015107425204052460134367444115128079109280556206995632464025768108602603407374562119149377006670980650002580420708009907572592150727648340240715160256184622911734816653116496554124375525343152893810368584449974157571110345491546184558279492782091045895167047140728838149647843693406638335735196177495419045717754975440110897742379890816462649425409542418119830139757926779612399611595344221847840676610162069718594236685457588820217275565191415641608744687515396292706919753122918062773564228102838852197626842099172901559522615708093218889042872719909062605003146797452964750852579346434213983518577857871812790051196696884476760518669556735693061175295822842488322445915182695283820215695602566480067839405976756090806627888479885276999498958975389646827625295221333015186096954251776726707451256572053340039910789174717167355200202705504856900431241360577686044768978378659684452756645937701836694297620326627428188909577186002371204158474831118854844947422824639866369109852259961094554530071202896782696076272756687307891792593965932374050105579327941794070498023376136737865052993772551650876486542186660362994680281698062739115094402472563074343924804629517990330373616428791736249265977864247690716124957220845009236286364629389221777204107984417575542611438282852760284281639508598648886561403112416024768145734059839580478748214849565599610253026768060942636882254165190995173026086642720609276895141199072851908430927781969087680813629345993423197368875020534856432423389183232763061741953267305690777598752520703180257912424802279651257089080380064827349035412477523868992275633168209223604435406040089256605193700310074567842375525772423957432325951504914807868778186457593089858699783182730193336696666246405660346923477214104427039027345984931935753796929830577194807603001494568478230959153325515847384151962780351903003617364381697971024241164030029649810826289137874692325070051039040120582286515696495602796744219171761264472971802489207537882464799241646899031345096029085825374656449762238397041179076041372999167063480669976117720658556247644944754767261381671003350745727997354708510779055664146489178314230172706027540235369799666014417927706993468957175918386500480974895756856312833204565639956808427690107628679247616955517289435879630891955759257339942333898885459646297706252907226650857758101949082788724243267776976844893822852389878884345597924244436684558911982018919188848716040964509859879750854056158586664685276292552518921416666148998749138048894969242671744994408640902705288511352197824628061120613028216267774522556389025850026012942700253442101578464330065601207958892546582263681276678476174574696787400254210861304399538640149870751460447441214948580736313219531892214082777270595321028098370183856682294980203592269638315479183062778681246669472804802067585812294761865467341291456667385556877793806763957370528937078068983827335832939086200721606096876832493408752859222377657058776546759116524389148483487955589820659768984689145085596550667571904715349545270948130456041039472442002660360235621217295691677902535025833511818749400656959794930606072463211063655137149563182624572930460031590623580461084290306251030660216163086908079426798602008540497091396274325127711406142857284854087142620547731535065020085552030805642126423852730459341471879421029480574271999710655948273563977340429794281800518175420826347176471014073707985864481865110019402393575229959516955568811245613780925265397578631895293607478763635735208049598980566727904224730541135841160724175336293916347569481614119970003829885460544166662904805674336228274738557639782869170960820592705534582164116575789240638572392011612814894198743336458419733785474935291948710817323779866138215561082071869303185585803783460289866996569161370532694117967403281743682497610972118230502983054073615887962855184823820414406108268129193695750973566163680596583275651235113476353040395174229896710295111863410463453285785498533633462953243330520348335256148457906739896628556148136419473851598571703906874900797024568828764844496686855411529377089301718207925477927415740037024721118690803636428216780912960819574998038959646772214312929415874140697511026966512269583472290214685911813389206777347829315054277885696951589533554492345456433852668464568755548348999859564450310343464328657989186033854518783333251303164091155464697694662106896968511112027320074134249226530855450239585181057581555163600658227029714562895969189794305762761259411941494068713890386652854516236938156462473441231168555541236416884042716300390598395970034457711266620445359458349946166266528282595485456961276010856920034982689946294226227622172853638794920387067458393189749068204251018172494482787893386735897258282933369820079779898137885066572811096502264932784578857567515274294279499525672598044014290236872443666968374983744858555139257191668394343427741586212104645075909050921831233821924473050703919996523861180895592337307076454904573543309564579665614713306345796159985474259330303674336114860961318289532075775311839554228859218921285752980800149498944913057268301024743996204964789987303025081013985343685923937897100060151112707447921162781235407200811773274514278932263583170131507251971208720644275723274179049956454309349469444618331951103396171746595604118850529527515708581593310915854141677592964143065030000492963292153475904544650777006853981266284608786764561537475478799855092137477127816349868071457845222170064532610281652438066165608138469811495842161427104594839906490844460897224713767711772054063187170396948887995391725366510710709574895343806761351541986217440010211687337061439490740532506851196326284599807373599247330512240816893363090037220308109486481227702546086665305725376145997069558073606831844964756073448308384403713543644624754550345510346351878621593789022036707887481086187440834937728074247314582173120868239523498717627242602710780039964171108804550590036818101306932951654017304377021914631853982189774973041162679365474353053944954927008940623439045461987839151379990909962254501350091922470271551985497057618663045112003988562915457186902766660986329831505041705033148759630098020044012010833920807659053421530987409419910069289253867489022924177931228952803594683120466230953100636123144927286700208363325074104052365199656282601647582803631555413066497002951928729462897944465381641842397749845338556831194556064101277147891071571838045857524317976858120386447337497500147867187750652268813026226659049682870080997383165455824002150778569712628691711489371251136976347230578329866194856426585986428324758290741357188963262423398744004554401298317655974192317195269502551716607651862553711246359838105588326495063144766887048490427282215841712992105350029047346275233116642297755204587598816700034023033139778883229141943357926313512540926596376298260802566489777754200425764115700334360535097427116875738706955549628529267340273959978143376597074327314717099017508968040733082524614916532029086605688679751975546458182393089462326594408647833248468949191404060472460558703200012980648770347998402034573537799810230903862356314168477358601248451479544504666199041377371613519165578742473992896568713990182041397452238538259959954747709627188758767715747241872378305029261193099360432794228765945432443935248550024053853685252195743993469131128524066515467345336421749374396630785764869204824212886831637888833414289552809390315211294339108474980350827037806027020322111209278613840719372960859266044298798687023726956438128603096041643106928188469774536222208734871328030414000830445364799526118307630142514394525114219947639853352349497719069220029308064286716356091861506206944937747523406980368440082801326011703543935178034154150918035382379693809649588804886141682275101931554891080873333201249019844275567582457194992737767036107481475261570520384175225785021274577503127842643850270520674150869177053553341592566994544015396320404681409281499761998491270996452074126012577960526291441476862507114876046432210196961982484973395336159340419221571167404789824996531407738874378861910356914784828285011172892683919748347484798663857290138487314130256798324376352170947593641771489527540986126519745682998150012805762377988951874238207374252222905891698560434166925909186582872097982252970646436684782140074646648319435529722880884726586360546726565812955754561092068810622618108880904477543902766117732136025195056411181764040709377801236761354157906843120748578627273221742716928025688679894384544864335361719315002801582914721234994710273497106613135663772056555246874436392188378611967071081930036946311214005395625257825994270699885873372471274493177622779678476537689689355753285664533160120037660948621632222231140310006014890349533727178443607688121193579289844485823425419444086841642543194633974867485777460667258856291719229568108688725136129384059287376647085978995072704523382499281315347241011842127953885372816681397443688709660450614147544951563338143769958884805556779619387898345063843518752398169828659892298975393392954386058489260554143425582918840231744321060790234466222995590878285435638277212022226669084821599070053107798305513935210432935146307453809900753505444336724828315479765398370208706556652245492023719527764115203654695473692961296254463741560924906170450811259388699328996563297358601523372945805467617865309626642376643321077945711599824800075865020262949022610096124587756540932295360158286359798352069280831246723971134140642069394065999449489086973832827349894187042800190908320868299491273297737477796058237406409730527084883010285184478094756732641630634032782323510363751679233501523743276038535439962895782738031607420175698418559281046777287228673584409626066359425537154588749869705068956336467102157662776266899286071161931998034099231850938928793683544284829831406794541659342148702477595612904499276248773424160499779272324233236857031076459431567912403395278498178965229646711398928243620929318453770989351472981496402838452195559860617315963031578753035284469103130977196544281441712990888481228985086890324285054743086349389673354058798722328410105401212422146288839387053106591629324554083889864483403460202366118142678848323151361224172844256537394764749245009466895557505454351068464861271519597429134011171689924600526023796273130856488238730518373990765174050983699711401339911482780966261031781408813072696943822185363890467294382372048426256299373260262928855597243388901392037417414534368342683171542019383276722604062183572413436913233583599784290064706432794314155155849808979454389278766707244241636970666907229486371780165704623335642496605836489231111559680436750593769624096476923804596203678895376230212893145953588169977715004050434819703961385541503767876293829592597958832818037389660611809680749027974048346478887578507938580073460773200504881093831790167061293592726804494176858838505057801718922249956696052048673201931333302949528643278888598649066547555059984323973371126389248459682535574506162319198370335517677373437221673927592421023675732389582077035523980428515972791593009688277026852729623047621924213452782413803462177552850001212020246924401385291468561074358027383074325656098796743323059236796900331909960741774561808382545316986536265738642027808512409266964767656054220254432339950078402069129720412180052169618390981770879928834830956231935034473739526650004518408172840985099216728559319200480151681655047220426394941426681828864339338730321354747773417345788974287983827383069465032518969166632458383800845183059191089061876750175195263955815892105275012355778565216672195555147660467894781167966380284267729472022429334023580061055906245836654348704300776577920956080860011809630653152912144506716490926876857516950574385955601125373534793656081222241446417924138436243690436334852421759365319096187269385699665813845401263978042774986519134463779631848321485251115597088901896515242742108147429904058620949739833293092135145585009298350903334751249818995730518319805705691605312097521308351740945464289961068476002822550650918987780649078192020076365205565694622704834062320570656529657438979273455494848469183452364508850746158046546987170934785003158271600843108761963226912581277810370090867429083200722464973129318830919264124977130604494208542573153609653858744090979379912527089511006901954017721910435322330732489129696550055256179211985840084032514528305279890984105679897289008650739472875823872013021289907172277172369109924617148746566991004394375992760951635072967922238149126266403118029670066035639295029469877792327532041199633251573005274843161704136747035541335813538856258591238837737108636388932454174673560009276573724279326365518874317441902057828910102293279656303811416052628500434200828915925146658556036733464031460820150813072289319637584675875194763101075127050029854990359966604814950737359015354956910293697283513940044797761300158686595889729675611167916534694175401814312283841678187510968105748627033292329240261882204311428419324578354054470422743216460743654188492428646507138385883467508231784008770245131509071075136112718830916954408055026011958205584135133593637995385217309538704350377331304785799786226656414329599136300528203436446631678292150061020207897036374301806197669712542488146227015460151577666429821461778168290153762793855948039319645897625597626876995817013276527138135434213568247014438239259155675506039949673528745688791598192599117436430296399891012255548678830436484491996705713815946109152970161041314787406746407952679382265782564904279063329850434639955986404434344747014013428372146746326829049218742513334387564758152164588940617588507882759065287284784036765602683954676748149729770021436900089931756132929569832263640936796234619997194692863213747537992650497407544234141252027787047853683619688872993347941187260474319587847569923210728570404957539823799535340640073513510178462563857972827693236562446769344631435912257872079884249966554351389497231127091859055381773760440577679533306536122532769784579871818464947307378148564329730070528093954484386658696391288333817368072500075075033302927973081596836083986626522679357836092334033252909324317490587185844804080917943072424851907894828330188213935212736113298066395863311303681592684137211553786946340649848398298238367778825499794110261847561830436035769718810990549553534155354714946733283519455365772055583404290205987845769148163774769099679786656060479852945091101644173836714656331318898035159141387375001489080968726874049809892621643085776902601494436696035293313300532888754560008978167306330622541476255580855733989309651097157772816248710903317034216568060274378886921770554965642239722139489530273635663688218530000513984158014422956751115976365163301889260541425986138369742105549058674793476007068133079916337566777302317089389102116016298248261066653494426124396456085389689753712130728816800973303601375457884446153060342844126760227066755659303103275281081644433846877247836803619917639272223620303530519893298120650927690869665904710503620767681942022928227944065935687338008280823576775315411217616072653870233079979019295129069796828241061673019606926107828077180604703064154513314110837281817343670159329558684183287621881748703208590764800932124640805817267465536071235320046438249052510672182624814093498388785165977773171965101968681520226592599949416142002975231656110455212470643578255857874994138837106921344180635264503631451408710026318808388378789434826347395197574929162948026635611027965964378255470585944715903404353784535245491280206081051513791561354994608716779017309260617477314270062016534859461109188567137393869318763212003040585600212729154714736342348382046422409815902410777671636478572701291140576948283696139929283546269808564273300595303016057135977128757797076632928510319590301488102507009089295959436751048730561544629751953600512589649673496345363795382063333435353190851077527764092685117108458026035081422718820713102760498760495281432732598856684756628534653327187365334952045341756259630543679152179028361512967297241052301861722164735249557915963727550819573061866880907072478716281007753192239989491838111789328204612395672006798036668904569818463130184548775386045976634813074885680482357869933952685240207576568112168731325746727616740645020226187600089270115169617439251618896302386833114503012710616990318840147252239239297264848088708039608086955826929983699953548765201775903821637450051892965084974618965621745855027996875875062098203463495674234548263494017380438368915374778061238045975608984307452271381556168844122308945973442281853338164569747188024308835228349041431161169769499551612301221925967541331216008697906218467705302025787636438915156454513613951484060766473164476000918692845790503262828580169703659492819534944800875242686961417171324525329159117085516352605929602171879378621407371881601574627546311121771058818908076264491764305651348280049068919635987472372813030410516166511101372319620251922665899659307263196901552719921151247523105546479778066292287801423572781839719615988127490438150045474506760412353841504670026263959007521342486277291538903244014780533979103671600283000999704048288150314748611246199556483499020152585411742182055241442374710758815905142100455096010854144595387095854100985214092886762735836046049614731653204787978147299743465963497828570458204850169796160384897219351938505524850808915544845375430244871254858599901902472611944400451350158215348383159231584540721989108523633979485760024556127526176024680472881337603927468121297758554671172091231507621384108543463190794578268627338800969403047834689455835558482289935201831012989369951273657313026464343198347050818980765231413964862263502420731384691842700172953269474322314777804233510488433001693371985978037683717669657862386945499244488880343290911651231164121799806586008329256294091587563979602554652927350619092190752788880433327237375061200454263210124009385958624688271512864988398390400656821846624067805518722122714104384582984554846866858096184687341981124128313374082845015770658577767010923877680518711711072781529523355120944575972299730305483541784132140516281951742173303095466322179776363566568395255694436090272554112401822444098354878761153475931770581129043133456510201287908804626242922327412112642946571359726801728468030722563129289257679956540810932417564857378438197374017677467089519230998926904159341647723581250213752356725233590008272193377672872043149402909666369887442337963276461954638355975553148118892786785823693214616124130275109600645284441611001887298224195376331581989615643936099587758624102658467016684579761817841362244359683224986131943801277187507851320640511965673913391060286603878651474379134418512899082780208659694919287116851191333598051401132441872932433143727728379547312532744776779341404385729139960905210378305128301861055796114801428066043970268185297005057279418266936349205890411292495347585643406813209298504767794524059746936413909041010315319543296942777597371138066259047722550295884866449104848098556015347578461059053224608024362913264146411898802372560856295521342879530382793373676773233814432666651073304967888672209010494610366398573803065799287063030995972597501687101139775875227183389446503826751875656004188883698471111369719887783418523880273826626596132676643135121346985509675633736006625590452647311913556981556718363825981281596444089893778123264921612952611317945419777431240400423802728247340278165094718809756276061799860156538404883760503552377999006148972253152309236042486436569211569751242869516204312679565329268753056305387775404640621642333908686719396786013840048623776681951882590542054259034213188620948985646096187515126141634528271866823801234850664073778143894441434296238651075454307996782320328671706321049739125394885131514788115190684407400338122254581845104782139458730535463893238497297724010990832187403039315204693652609441390435375676487680992817057665466374555622797660570597678100261560590441050945200019060168528656156440832152219510715313285400138976537173476294985462075964003234189077823420675395012366974771433662972882205416310326896210684956672142641059533209584731381673848212892236218358383019356228363333459558710235786790473159959009372348093572055764766308282681412119414886526483165228462015579094028773275384684427791245074865592446137370215287457741926491918752010640095775286921378156144097493931234265712383736695508025533358567909114045212111775918508342859167742205850526706244182547370618930050167644368850739029825804286135373302365334407242035793600954821514359825872100112446722136624290119460353920601563236079617772534787286778547182684060453048513870681160692394798904672394897434043418404379164307921087881329060719040066307790360231752117510869328072508399227293964343567544391693768385112353258066157308872796902497728374485693234502293030891185620787289901621128449508359740216716764285728058006007849179448050088625460640982059372406542670054993198739266627641459366422144742629342699906757666751528581688602324690086468649472577911891139252629315238636944404578572050297584246907312855443307459291794419875082953338961083029857880350342407452215774610047496045631855486099093378823269816185057993237249003263496041630186542755018421116320057854497895914272699425612636942441013094181165396225372314269255088663884282616101399425746563533397570339840725222539141933740905140044399326452837828198378709532869150848685274964912952494599895944574227376133682589111364060352538853918334661409419521067387420011960584164692341146201601691909624276675986836171474057920388338203707126791389303501785621540618025170540128855495494264411071321194896730627218689968439920104189948936357773205419112089304660450942518161874338048810079353475285818692351202805684109126985946807068557222518291019716013638777831112526555232464103831609272979649783090324894654034818106722592413120031751833502305880924486141070880578784392897056444058615436578268770172587252692717524143818531558241096839000753549013688947905178925344553659255275963474225089957335827113627528271126738740287216291215666075483707537854176262600866335167043100939782487078427323763738199221598711191584346436953939506640505629403799543891420312677289382336323352645808122435611630517439306682687385499698789388876238841520690891618357432937315585646653136963751889541856809825938703395105632463207992308455617823626678859798698102561624335808231168718446750123359858181005990530036911156627002652697680649797087421670530210957737012671273460525085649608420199321857449992321824865324512126446780064575925616387014113965395847596257633501032036385082209997574613986588861776227262197120962803329697376277481873051300972037449939584654626596205738820925211258233052897793486557894610051533090161443420037451814113863466495270119723685987761569136197217440930031370126466414046528731462470855197931268998709513600084463069180883542001875097511794859001659226986334973881871305320032988125645861457118927054384858266473513637288567500281321947165728773452994287288548710963841539178256654671708007425365800329884472588927828517945017122046290333488367064657612777157289491034537828535412903932670225440697753718343214962921856491038915455813017010306408431676448388237389227794484962209036490040890098862308744665988872232233373686666129671942011162753200131294052981083881782632052316938080272775589586997197853211813578651871389465878991325234849960010903566776987074938414637175705180299839885122110784515307914287089816782108776278786752627104438321412864783386135107512691270703777542007317206122520482023331667062918707915601701713734501957104326940446953781588124969343653077521475866167693877887607620504985144519134177197819692042520799885267977597376471128068819119285365084410941339214763980822318052077134362609764729135175399858258342746607208996327681105479607305872434898685543736879365920244840938912449169909083440739758368301838286132612462645239147916370934171283713245049566200145894087707594751036050075863051413076669055472065487678812605783548948291466119390814751079595242443476452502762976482650911893839188232358284524099831137836440867514095381685016426978837471771491288456341364422200866988344853163495955242287505450207739335837840293917231844879693989000613698215710287777719614470695680743691439549871167336461151944946668346898791843590416352647425207380247565434957734874599459582934051608753208193251856006407683270707043689119491147253321331817519131299915647300843216010911289362932668990383125949365202456068411617129524956412962551446675857775225890848737597047609925941391396448873376245730991286127398936272456610505353870911792935511997342527066706498380395473352405319493848081164593462682729246374691526270301691772189372346083049895933257806534669007959318802091227333938056094071503837561829480000243569126644522828962872410506972342247334467190024203800861913695822244168739795994951089633162555367889870889194733665167058557343785741532541313107243263118963282592699178181330531327061169702603918614784355801664614771677425116797438003690187231128391727185222539301025964546936677423870900518116404604504407398111353331200547653707494387296503703083951985626229061525424326729982527683851885978250510223237559794145557198424260134188369040181603841844195477424368514742242412813244537666730093461740753347884233148638279099165527234868273550047313391715865259942044460888028808275845483762205898344486565952994708526915272571731345276355834001046155989039184070216971426563251197853959870163379787235585592418151918579616016393433784877729667376757322478900321929968342253407345243931310559042782312113521565464458329753559942386973148869840559983810326166096732852122720550110536760642869583685171713673260470221491041434272602930367954966977158483580428249559503044741266713320957272563470130469054588863493270737248124404217745867491892096022689088032683614827536446941522764159216954301876485684392862450512510336562632315259757519868029917084173159447483735549238373682915501083209932301493476519408599623552485573332462064561109701946739052867617505770097818888024540958491237445959974356511515965805933565620176111579397035060779515754936335058896317013896250204432153891672347910748410412397430896292724699155247298277936020927285342299943875339278662124671032918654250947955626008414032779467860339451230086817864346924478178111843588247136516861751180569509594482434479009948899938688972431533278597254793742989790383294602914600239587339978513627630371244955620232242691485833201873618938676317038364891650890506466302284864664746450776095019508192539644170646127900633053453388922534740108063341055134896748314302537524614234063836450163973371435679861829003048457631793528699615866223149603528279507821385427576194049941921742786249871700606210726466284636796661223340163034375455882745168282722066441101603073411334217999801616828107243247190024236079242393360709519770602035090080146140098804615152192547737957548269242225143442685074413771144223590646736971202104049158550412294821621857031437320762339931466794715320427814261474501512385541212505831204556675113449274401377044790668611566541789017575098832277907472666933695917418288658813638605974991009226761814886427665791860965011874224656069915301751768738619808596308258754776583995597267694334867776736881637651463933924399524871944234512464387601484259444867178373018387039717079421336933558485635294397202039202871513203034052188407898419166265010303684061251214636593104678519369237922595114126531071577820852724547091277930949112271560698210185304827333302432543521776330037698056612496564218636690142394107053572667691044309016339413952854106730241747141349102276539915854313738967994185299496007624823227626080677180894344092910207879265768542454451059689025272548970800048152532647159549294321890477313629285406659726508641152768122702829227668251235843253711911510566804373543076945241345442811176315290914350060422374081931680286265425908986056213097885252072474398758655096362210831459029625824904882108294616247167367530130203933426161176418541586580548019769894120819021331862773744733254132953797837933325599655855066114096801484640118425360954548834539584453363029025752355083898203761815155479773420587147855002253506835501170904576428027987364435733013902877141462168695158356745257878864964345448569586746868999481310888358541577902417646786317438349444447259740691860975777883429597075744179936332882510387262209266115424979589801625267137641709130337301840305596824977911097380042823452944146283735063516278888007120532495335705644196137237980731525926369811396461453197851014467061335521743352761271931522441426632347040863700454275298538662350314514992132863839398990655862983910039073272733574655936378887500861952577834000541850965425219962131857108709533709412264675193127962015824115929731830216118382494957733590401226278209573192326222711613603070967760304516509287167578399575991939864642970766051737744159312850029961796843130282153522652357070893698473875305750609128085843790635088752600690181744850769008960442939455475867051663854305378659783351632713969343163650578785664136037304005131471822080001384385176538555334545903820364083344348479083258571820676248871943900979942262931090008971278651665750041739548089259088068022054259464520247329227446040362800904034534702485082547511713531372975866178070864756215677444695369583706841723233495628940283159314103443457612883164435915267130297402362968363137277738151032562598430539759744731253594878138551612849520461792163745456728166372862448458432453539276596163958440516966211055072392948830193785836910070613831325315446415559588987971146217146428791756657766054205375864949576533776131674245799091470507337374090820879307827750954750430137932467946115526717384603740477228873692620097854369779656552019273199392912404039645397145799269963790036479923181478868906063333518556243784517028004949503179652421194397701044676527434717886577726940937030737477120940349339690359268218578592883617973425364050600711966690311011134475018207411914376444053784921696525780002326534945476073202699006779735462208009008913069166995717788815241006696724014706712312885245628125871942057272152743861492411183068971408806327445864275640287821266856862859765887098118294862796915438979233108675495626172380698865852185829780443609009047401159297423154440156738066237204897151332883451103068231145658368630923843560242128022091870371797004472955983348861653367175735147815559371126288137524894707904241999855040318299247969565376414044699421398844462674695918633339780111212126857902782256573676721123959672944083676940792219448110780873239510398653405519974173489748263216318041447184750824396613207701023645776532400221332296116741208072491364716858902826685818247242157248017363381777866303590327629844906237259793106420403928427966263013205176891489898177522604095385069128288215802175812073906873802127420818287110927623203137722327568694940471025871996823774377676768181971611233842011499944595467561017461958007620832927879389657420144691204636178785183620793138363556736990477765553073842736197142449774684734450660413603720623860442533261686902883236083426673489207754063283534285305628024707615286237155906538160197561444737826621113973946468726959643371541843886038474389304977319444124102865437335122724830012954020392956601235928186486950701524073368352228821685736608153639117384437856061464471257934153468569859303700147121876953414642625439008120269261516659904760468597253899294799761328286967628809469236941292290409219609179321067497384388113809616114060323724843825837823249391372829928633851003938146105576731093907513560977474650061724124836689226825418610398940700423632065248364677405095509051072741522857248103638722917099884517415350793518602553367506296538943283789237624355447129663499024346285160264104788366310797365462747440781196828554991425486256519000651985046321070538400415391349291624844285046633781877904639380124446645510319390619833865037929415427528330384052276409373528918258655771550234681328131526142969710726401719237722572966022670223738416912634292375887653491261387277515482375934429360964456832864985868030444987465836239096955867134773591293577857683317422254489588667077940173144113878040397421922785274720718072117968135268133081370765900937549716412604998796754591266264743773063992225995099568903004877546812734536351098209831333284582354419295086087545342912585322139461850100173429714821746820177346421866074300310565167685510673938164810727880586588046145142307988313449118198231675577617322830591542145293795959629885902578661932687677839901103817571252244334420362726862376617579855619504621909301179512497445463323933128782719584218140959724352463322994243071198038889290901633218412887511387923243978037177868251330425531125399354868079509664626862927664893767091727403086106180795829678463491252089169989047074613087249776555431614717633998275483461455085064617596187911947089253893452809773523979810988359712865260261284843640791366058742930921807798282312766415147870895139036284077121959482135364400465459150986548863246200059833198153347432212809035233859934714726502271032923005428860436295997403455981934297106341375516250274598713809714963028810569524379077388360164830505426573651832278539340437746406133253727232593735572149779138833180045115829232184086877621627987137106564170043111075332478102791218731879942141719605725944543966592479546647051861382813630714106848679353028549560840230003068018423091352895193745221394708818818727048250464912443728048772067683284246623148865046613413364725164870396971186692029388825542689117784192720237807253248569736665639812785958770549160448984314488672778711202889170341915250807556676654943666575804282054166699627028008348156960091697684605728538246927336872749803155998150456732925001672209179360375633934241474320665098213486398040694505801699587345094215133360850515904167813110465905429809707624096324411859236218444983775595921478408638327186959953065060067931399290700840727153362176881656969683086886891900910407086145681464527658219388415611063748058109350131354590584162171258871211283324905176075417679781861953199670908491926773491564476956944979134149347720746658535973575689693400326070257823027000784663776226695534247370561275185699453545943518006743757994024394564931075043870418379664769722936620563145608320957063570831666766830462923957780109274327931482449390047044544681376234012676004086121864232169510481643203780933596671518531476774152516879587416082067007822458237662393083259491436585705873917632432679769720122237611218003362389045433008967261629972030902376075821150039763802375896170405809369270106993913980595506149354274123993753433762966571580498622393285736270784632485582034989517543118573796229568348791372039307994794456056557209503441579099447856664107079308732826434645196582241924950265305911065763347573046263878061756185743124572567545915098558494467399857420454606536888180734188162435971488704455671077408212813184178610316579146243280257121991720530150941853728630389770951244136177546684653336736622821768739734044556445557106919568054338092022930918052593650148323222930816080609025103051826949016269252205199078081110550760405801227111040414074191781763580773635570984668282729171308626697261847102254048930967382497536079419902757443586865188324727951796511459653631086316293183279682789076300022433051183056619793623907880166308464231401154417285991255315741361318363971594098350269412154877458920087572569992450658826541018388002639832835195801617521759243950191363177846665589431477631768045669465736142697950694018229582985348809883955285579304259576055169493433138302430383076192533702341175654754116523552746550212349033722928545065494934986860043215851797956700225786723932675149681645425026781493964610301256438729012680617017028622867939911908219875723803458656996271480956947787069557528171111158316567480429880275549148568046418900145190802425765325687894946790525713055411312900932607755731954385620429485135200971047436532660169407912396693030767274664430622008131217986284420450263324888553792836839317136312042160223617207497566419745662340175815523518512085460423579714305817199188832200678104650110967795982123726075079085995634225115370426800584482374553275585917166437986017619298763075379262370840319740152845906058505372547536615335820420594266162692637059457196421035919061420594612022179516798161834803752565914541382879802492958796778909160012728347064508871918593047381679455732982683572814134641229001622041055917512175990020899201956650835951407975492567273765977578923572903542717071364361580860370538266290383298141859967544676980570207346408022530493230778512487695384237026675399479187919019851791236061597252942497735323110213431451275953599617371062356847959550110763335952556772198477215064074205466519289207378545949410896656627243666792776086409265872742066325970662922733261403027999372727378246781539922036890199231690656382361459473669105565473234472477925262406128330094045328226393524685133675042180335749797097426476171744721634469135075252864687274967461548586168195830885156229072872290661533937288217813740378436453219208650582706666345885127531924659386858085642808916676472622012337916486871206598279040229129909739221893027086739691518285838660178010274055492337260436947975630046696253073374814538535203508393707071828060629630703640976594766598167337376751423166274415329517352859162574889428969583967509176638860514445116036814781467424544416972171928221421093976980018875881874648621645036652507921149615075882730540320587391550248474963636327343818884586473328922987139685226945193524610615957586531857540248414226184848478053588441716915371406043141802859953964249147554375609608314630791975304442750677958394772327703180174037552325704440957014314450447270441298338415823487073751429799500481194490476814936843186448508098611654146127767578746230578766927654761632033600651287882459506288051037029426666105554164063094783041833521682543782372589905274174969446506187514735216490379686339937338032313438583816028512282191032064788223659671964775551486402235341031243824348344525762784786411664623961493492179344290341042843861106546655265181960434868429839438352237791141701520537914847880700525239270038202347102730016562716176223808356221101122600735534656731714887543268428697555617862428987352894162400637802484443729323792148114221145999560053067217304175068306980623164382552618715449818035437463197624796109585833875975971149224333954488209598670641927528674850477887577461438326017463234920418912923636562380835419211678567266926413221134829374735621894250531301599765134831206027867847474369327816297380397998317326827733780503808435899321231577120552730928632420103855377034242965994399120616186625734733815284621947849748623896947028934743812264416651463878389074202765725254260434181262754989597515408916321514852442383809257294405307647433157172562366933929787950983677065798467936655830103844533295977843952881772416199727741126288725698435898284829367888010897837010394734073525311503092976414193670698857916947129588620296751433807009881384941896308567834864498688697121573219393753590365016795904500143758004219833277877048785801883167583621865143121929753484009918129535835481528341554322616484809229731893893339838549094773901095960751428446038116193452818008245076698480506571739867755034333490126369821958030731400981806522237780283286275103244923784465559298810209301731153837671321373567643029935574612009289268283744532940157387318174766445963828285046572460152382894023726023924441599827404828961901718408422913396664530602572462804435141204169443781335039539748397976214109804853970485239610790624023788960017166517590614727105861289841371265341782351966838919672992836084530362617434337988882167628988246141285848266099677528815129112100742811206931457888490219215604299872284529826851101815176169254750846132308404982153350149782752038172915934935877365423367218771646473988984207735508891936922442439732931710590331875534017300841799699782450818337074898310852415988755796158996385835579962173787345337244647359463468193652568186834083146991691878943752680568924877127718179279113030441292126823489669509779956824742190395735381231564067070561994813374052507546699562998415980391034329871966186662061251545380268782273385794307114754592588912904378335015620016063362163400101447639735232516390923592752289722801316024738440546485120185702056550472781622724913452621709363891545848065984551057056189515016746245140956860843287851046823732981698657112271179738535440273333326140603533393809848155149681387434707931930602651140791335246069660004415788695870328652266237707594914599555257409249453838727833155253140294171889010239030411228517115691534368649267651909437703471025411493980386044777770802878430716856065420423290069021154426831747552741422057293467400140427274858160662768820805992305698806784363649989798771309095207442199431931326404237631111208032896955194496230783978848795741452002033532289333234068118734901070029280602194668919461486572198686898785405403716987674928368897903189014519717650734787549092570660502722540476116893834627942472331989332523582486733475027488868630933792948015195129855322626187486814942803604273012547824228160460338792095906220069277696552036500423144862918629037194755978562232455466732903018583256940776735454326425969193287910674406405466652301196037711889773597661660366011301061595574891318635917993240717803647257668549293802739019820802523669212806028051022010914174867285467265696829202753566067575385338451664414700579755024919005045195278024153248870436948328409187569759804331811854570264336738474661471728452023815476199650090334369409868912583155593882184684992939946787274313533709111192207159290615587922873630775513579255382173444179446977584713973631213774902331490311740800789119132607074010608433794875936097523259407064663875344385818670125044639200244846986088199657623819461714204232906544442142615539812496812253577471178599708565769751690987967919333871455975786319175995867845984118844885208254829356136770388299157950549815809674096124260883796267130388065871539162167629789705724769655917994780377498721754962019918226223260109992717392348828452691804682408522970281109082441542762501576685812147011227558575294989126192062376029447808697676609988693102996484836278582666773309559029058002200821210966843746414835813080201316306710662115938006986267206049793010445332235133012234746315949356195223310660702226197027754430903497775810728698161991270268390369371561041356312435211927484597536808695584792873324106200906151966010240774349159417267775742439281022404459109332118004327835897525853555311148302566329496498407027252092217083721804469872313457597424409786708874078882792515806981301024035196559864894333161436829646071021530600956440459820817295985280655795943246741473855456092600401770754771098742850569641794334687375232523296459664679255831882436270789103557091953410131282481580743551575561661028270566821049954670778941313863766898874129855349439726626169799652958816497720264406910379804169836064221285227465338612134034395690073304883183918522503611734498945855674448928250656830472498587245699809575011254612992493227971610646596240248739098550068792998341520030095018649473582868816054914676825142995153467388766000051363237502385971034892385184456748326921071249732263223195228000338439425429733972771360539615831689449576843569724090993029116059775659317407051783250169135505181096387263890185722811462682804084066710139852954512580470672638775242937430023486943387282562495895130516597003096760482335113102891430980195136606510632890435402542683457938062731719256896086723779586139965429208662354350691073935859306954946559999093929072012128838789340060147557278186501261391107891328826677049053607622742102887516819887776865481794754578950443484813167166933206934573083346938099809272873594105414248287180173900768041700415556123118322364014462151484012055467136709817000810817769681865723843064429454965817811755222694148182523841931884993384532945362485514635988827590168666345460312280431213518718851701685202857581479727629671315993371943292446145148898787657606756428321185509746900168971634724917321470316030422781793433923526887595859203680710421650309747295513333611854449084331487325120529627889348698615642835117094918695130904047097067426011723245066476239299595523829811062482485174279793700775535164617399459725927078752903586327138565806971524186886657993185645064117068293713949499869910451004485070270417123870448929944227240348663715226562130404902718502588861774245847790440159110656223024467034218065628438977079869408241445100147674612517300471837069218588542127051871444256438735676722324889802971513413473895557930104951679723163303931057094745141589164762573816151776091145309329538635247527432991716641086068345021678289135029425547404390524750218067384197285104897790564502385951419249767660468906218197572887640720887072460985345331931060874652716866997221768876502871567875728444002878102467733453972357636728482600346427310907173045871911653486463226110691985045883686490583588134090436270379851049351701308580467877878775319529649787357270503681022120657353072167721839303240088035357360820531549345151026485133027892314193042439816788237983091503628442974384956513515613290911028289325688342418892124608756040059740198773968873353920096999213259706126125899540528580926884144961408903328559176180789459368871605755113629644499579451123886106565816615192029481051673744444135858609694078673014701638681794082100697394569824032028200422725589848408246527425310371427261355348603151509199375686316881958677245181635310315225352435837149940607299464809567086696988376294715313820403621947080406090730053683155933195843356547305498653262051889641430135809980345918548100241696990663512422994733749056229235702185136975474488973779025260334491725693139334178430396853044553030618841134842187434434947001942987318291188118744962539455348301876317181412216047105742813763145421172024734309852560242641766818249559099791098420745910751541039354895432794781089182147243067071420589600529032239681627519323943713397348136227140676326515627488162361522212638797720190598483465397621193882405292733691111817677900705792750273883009858676000311051695385525742184310352387785191422336870878058904699320471939150169167302610106183851029799270636637761788847156324904027550876570130879125400895279800549825937175659652664126709442343512113047232001522682868647712312775579410717351148221560487036578329901834515323720211851288718908583521672179587021158838605141616896173575031933901073993492460698684125834938639857067647857040014100488221572567635598442021869384055643870880074265926381123804784724162617509715319574724363493100870826950511251416078860621228206588606549312942999803745164850876770656135423451234802438760931313014428626665199208653006360674583955696094951265899348639209978315470613124312239435159981921762732101747573286783256158905563890942814641766327103861227553832647081329254726424753724566915873631399274562212166666184539624509237001595967079858693785266060268524290880166600811412837405771298114913847202005585232317473724089756032854654722553704117668797208579434486635426861379964004984563278613392502858962048451391049140002780370862776666529667546814448433984883583769293973212193201998434173036246818345682657378239833274777399368914291633451740358338039503103479337629639985419206765318865391270296042338569070278417159349806902753209685633038009069701943818084321575162399363466297490891289828183679194660566572624240698930041785110809643319505974548652123508857215257259774335000486743598624092193816850106401509303310317554899067984496707418499754974466520947754030629763362475451116066800161657527751177984375539531084525127227228994648872623584675719512243507296278542497326446033020575672382267905582816236045890604974562158377958768598708026175625055428254057059286891159092418592762733655729166739077519551890733031213042687045140496125725074034011186220688975817583390695364030317457998284219754015156262782317783169629387731945749568185824464279325092939718596059333723747628271952782495649210050219337640337109607913173276762855296220037562127370963972484193784625338781884263826370618736883767071400238042618300490392634036420419940552924394510496262139388514496705267855632052777695030846413475964779632520742265933158824223363053746082974487739143019476630217704645218588564641215862312002935249240819631024831426950228192508943415683865541586758982203849344796971512145651551143044965083306729791676243235862027441304294977129666396743603884906304901261987074596321897351334085022265352590779389930887426214238709464857169390819309797729880095707463229171799666190312712309802647690035181080372921818672880159261719226437761840012412791022215907256678346691906815762364484980482852108762875740177132155062162025808289633398743145818103647801968205773080700874071389577295099322190810236688290467679903241998403515378334018698399056900325074297685740546926852821132467071927324128219303989255443150043448924981528755127193237640400558411008816414099908240802246333482751536185605878086721661877201714385608453154884293135007290042009085570289594034371103500484796495917132192569971413803303734062366679298327076828535790198447978187701311539518757841493234752861755061812329857661295457399205719689259351945164782852135776284785954229569930879784219373831898071515632318976679472358883244659462027356499365335667812719339901611800242005575352100040897451139522104372790934073599740076231457203966750309460819102800222496829457982433862255434869201746113225602306403893018416824655119805677493840015106913549846643798443411893404352944364493850317640096734746984115543771597000231341393175497518971179364991590798955418185947718680167970061519580516922664912724159232026280377599298109845568761056620046300862576604156697287241836625717511351254241011589559724377315081251730656792446702996758564984221051302927243188608993727998187066088212577758562891657814800632123515500724562019480971833207740424976742139447861811541422689307816334050148272167106406960798940404601194962821300608344076746935208598299878834508857999068261215843477422853465270084063902267781568332401252148874243408883491571810110086418049841633388552855534423300867826952793046353146055295912721938113805123109573769839562160011596959716707100032202262824477571806344397714396449597943387627355581369507636207025284910874847410082635524767352606879524835323630734704170963200465284517750199770594253291569021319003965899850701140401257822741599625673532914843108858041879667583045881276912708841113869071105388386146253134435856694777720555728113498129911958220468700827651106669872643839770231836909808937484450737150428480731811768254298451653035008523826756742101106773718756865517079371267578823000830888973124022786407595804584850765902908086562926486816353875430095914128573188807522157490965394329582674159350179297237390161054520611568322005831962428864057274247969027834112439107330316520447277969769801160850590458746698897592316506901600157413406067292460421304288644295684317402342661934267700199393551131018177802497826922939355632200297187265529411989567582661735631596554665941047034654080583778483230441722006432856313431657383130833060702971560527435956335355003367004702246159592797569736060312265155763778164225730544374918062140325315842386037695691547198063786002529268178734999146179027518981841653088920213430398506905271372454432302447545932262896949729510456509378695187238306438144941963637278414502592652769360821481468517807625071540678482667276302195728241885007077957254740097680570095461136050650685394350321043451451687234594522060301321116502137535609419142842263328765623229270440383662734311397489450886587836789583296669930545377631439065966285500029583883532233295709534815186195384655013791215176805686621935695713702154365290041343241726236185421626613542801244818167413005508402717986161644695486630178023911973087386648484531727097170541471040209450337784195551241945655142454744455637115384830871742266592275677401102349383701523975871176384222312039245040245487381918898149895566284775211009058083903390870212913859128520642600833659348939175235900791360065673673374227812795906753774921775685207925274295096117216672413817987506078647369231738429086616074021106379086955755994364780683689985068688960711628077140665344082049215391160527366155274963451209576194750162790877318913747819748988130168262188781292054110070602689506696636079029282794393338304446952221164859822474764801175936442667155147406196372886324134109589980676278422187448700070649179289554703564339518400088390531303790767435297674942330001457143572789497368431808316134910370363731574487480096067431209990429607446578975673575591584277517644611446511549896215611387042628201309825871567284475731512663970812479603218669524325063499998828091762521625084957005114352298942034308743030017327131766507962581779554212597726243785004893391562890395665756382297701059310515505011960555835470609567245730769685429546961833610090042459537867463156753516283827403957997174898804715273809582635762920327702742061420059524329381882193050714504529619650090130124578182157019023562936706052176573003719461809392148751823303681816521607220867113026166219929175154328778712614247038431228713785829382525301395289215517631501199701823524696095353604622377398784567926224979023880152894642602768471726695583269383885891985622243513471351835769145895765634650180192194187489921925256763083513537426999328238826382749108209735859648345018559415785633388550036319726108445530669766870957913510482917524070273677610572984002930754407480143609226665951212800094273036496577019103626548177115959848802733118233915048257632220760964592011319086870387810643447241214676638559451832806545479276050348357090905142422808777926788788748370827232162734796584578023874877080381017417134447584809059385048770402824126284627039514673641439817521677498506144976409127730154759543625940557432173480363137083409724309588128907809370049418344276470274646029765177086721027605073650899588852088746372938576089332793944144882396756273598943590139582470010362020086168762820647464223738998606497908853852621485742634123993831745195135772397075304034469652015769640533092071821032497074005381786322902342378306117048999515067755217033583265983182681467277715596282615082016232513240546304254797708815178225525035422530555817494905410859243780918832132964922030457137699375307240832901946805768445539167580843695166600935396471929741170657742873893318659796344460264934782331696563466543258899329872569856976247112147214916289684789642697230066549272051261444802024011056994803463772278685639165432736316272724829552122322973783399050975429960272699494900157898781818226302808146901111605916614037716613959155584813439528147196862953335476661625870120143358674054164656013781483306510522787339482247128367824815699102013564235928983393113559257409119162591218316566316764811837107862019656867237535043649745341270869959739177964715296273647514200198567503179674979154851292193119192634184335443508243324538986574079223893806608610337186842880801687847182292203711549501186913069377500522913214493069449840896700795066514657095747855124219722139018222085781826907270544161147443164211994271050356525417670304689715006836011795355174314108982241754176869222537256335935142764385063149908657181252203198892931408935716841781787016496165555549860555248073347173662761386182170486628785715905645361614895556840192212908328389750146062232908822852231872575403761341984674670557687962135426407511435904661988306466874461432904162288788469839544468176589677740126577356489554839134840017937808629948341452578069124359336706045547941065433632725086587833173025617724661613106575895879743645176369684065219504603085249156637188463334907620373578200776057254934659465415299210575515372582414599836861312662334878185835069882272565323793897593492112768194691431649004469577033591456941494826061375831593686494670357322922839962617137758600694897734637018242766686863952133456078004421106865033395830092462335803150524093307233986196499045466175037324229390935403282158365203823154571149160067981109705090855722850876887113181151667316390735485675651012515807192572025103760581537706389973905186060778620398107778166803620710600048392613873400907034061866024771624094093129156678687780264309939710592471176687143893742365405832982504047196678885642130794147964905209681224832719010653893713137131549363107146819622553724261053245628426066532379975938694061422600665918953791253906453706703321749866819356925714280219848960939050917453763999273941066357496067898402066985306808787827989108788653239257932529980154627844333804610266414519833576080475624563404914019518762037194851316938738657057635775098189338048146723665287239866025563146633529615281256269481489337942783797025983048738097821606145634742297918552190883549126477113085254702635519472451132218891129957024301779372082982193981483276736802945422186907560872587003358738133243825197957539160723239713219230411980619299053594880527277583938170655712053163654741935924335180917713360959467852972298842790196781106755725698531446060587929466874017422983559383337985598951508844112193413187996330222566395646171702975017681394579869846996395742907345112834635565333843862830061601719813794805929279107690552066095729835961947037270863429670135122092844961243609015007061882522396228431750621177109915605334094652703774532248346311485514270628384026050944154790811581027936720157768374195319507237080418853146941369836860851737660188891811320136963570603279732553686155894768551548477832501942130707271587509951084672090772805784728734179798993975786857903061409789316134344359950562512334700377288059599385019142432950029646608409425503542058001725484166481763191425134405439051970494749611791449692515857292909405686692380177291284216618393054060049077535507673498125468616784821127034952002392151562734668012066741251701975113177209099110302212753282566209608988122569594069180717647246533045388420499867927173044529537793045578467351038675821196667202722979806882651313050427220773878351533607768593333389821656028925250561799390811231086046575571052661884090561276529562041190567595280560597684550338525550327866566745668649765447767153227535262774633130864553446990818339388723384421442566222198068278026444857627066660515246886337662934045730063307563118236742079196742687643302074751474622632676789852173286670896823612503659047844064199024047520674018232441746187217473639876074613368110094343415640111320127662459467450902419966437958933306899606903386313381674146055726579213272601322376959170098685382390213023677367732224034161881707169978660447372401106063283832541354366908263892361873142090948383505357117941455459162896888434097095448566711756326065620642625116536484627221748639115222149305963981539485392161640210044889675348371157261590187152750705485976621825408032098265423081020599065307330076638109431992081564413621886347706184526342195897038772538914347435227473786039347095306593150755909592831317206254336551512415612002520465193334974944207945970817105561480088921613888680181938574540835165802391593157486252585579076531261873370577663748600255787244340488172450326371793848839011806153571338089995151223026350850109006063924642466794057252357859408172710689058693244499588602475781523160043007562316312882001837953013790912679800171115409260397905594937916145441199707335270497751096485479605723883548361578793478666564424703966926781446303569320028262263823066965099290180411486854331402272891780261806732543554905423528426614510228226387954917843061197587524323644407059534261433148923483902417590090794395867804633548024210773889221636265355572232846433328667463357391142191915227362858711627067839166193040102466136768339390260973824355665428508710783027015459796045592501168219092817132454133179490607476910758543853794864964228879424464895755270660601563331464408349461314630680727229854987020158298542434647469910598815511639654438348924442983751149133749907269204637177608450395458903977009694881005340396709986805953904262482929221954147887987948594152567047281685770431602531581216559062977803008472287869214826571014511812828858924596514254069157355800106595405546634342433047605913407929361241288102336958619004614498288969440582964133846206758938676818846906921273631252328891572530989825427416299720618278127072335778557077820419355879063073035614689818024401972902381314330577742519233549107402802477774804020516616304414495752186413233030139752772625064205936779530429757602912522084133079924321782135101129978646525484508773654879919954041342902846569288075661505506339367594160597225975898857509580073581200195105863422481906640593166623792081859648970375626959068039975776762775867053060948619697274791091464224438580850770927771281677913413664393242733399459969717687466057870827369428166633406642475392771681947206608215115157090701336665806786329104647451819907889175600064784172167016036867933549016476531095726376245456236631743625568967262809642777986921696951046445670347421722093408237717066989813449204762526115078728992632443578826621916778187810083642977432427242868408679880966136025732176573438314873323488757018308166552144783285813799778841271471993921189023746195941269856980038432546982028228408607588631522729329045661201257390681220501579621583787624564223272265722191358599273742243549281844952456127824346472364565125532179603032370021954661194848269277938522408560916287976893222882239208803307782327445060455771184496614772438985352897488600534172976068215979474300978081617908631186532295905586570426394009533968211564183912457193403828550474114613380944083301698119660349626830654728447483351082489999062837514715400502934639360841592734496488494189818336700971699162350064691992063534578350786231780252743612576229284516534980571235377112062274903532135580911395935678109849289374504460480352584445269038582818798259325793052881026693135944898460373486068420812867133147908252335345097895566057631180301868225093654981835135050512246632495086528869335015048230717869582833325874456324570074503661195354556047548561982784705590714473852350458245083082324583371650338281334611652209251374696102082799844155985581524370763933886522273393386253660691163473214926688825690860655698449151359348801640027934527846119874854990739338548328544736196655745521511896450253336649132331119218549835356605508524648492978792113520282134952184489460343732540577596933722347352448781835269564213681592320542098685692015386436678947963416884713485973062097056889995948576198983240460348433604855999083273180202528978236688094447821479277188500954440519068628995503050350374088411994125316819723388123773508295795988681392513058182550490054412800576409424186871845659469182923489614453699264096161453428051025809661162826657865307802829082360539301229200757287634587451851026128110795884811652979015506079334046703582216186651026378295157261439736945245585653463905132959565014929955968432814953225649108495225822599065349841787115690638950318379623271634896939483936898958998024054874596078270991077018950223087123795186618952371578433687766588360110430545493670758669313061938660632176631298718778068172806469072171490415317795253439170304651743637845012302801899282612388954599306268436511354609886610342408946752854617428865438674471531933893820259551276371930837364424243018884286431976411121716511967955746203455307888538357262951948559566229139442876649598168117255724312953902544116090824424046375748136575245691281167620989244020131131475747657560668425391036690471876430381732131682383568281007540441906232702988701959842006355575960891535961483644447934746521409761580972757714405991359179188165309493166310589198344590372626248981627048613398714864549728793888086191011412429134005933865547973580147821160509816289960545147815264676192632820079278302558768684894034646604961846706386489444801797224363032129669502344787986814579261827057193376824832561953990784022525342313127162425294673911843336056282928359514345065846370948376944344747009700071792287791795120929957051512317235920350186712889012950914910457687255503649954405239151508869725174179224638289778733585606040496994163570818043466936902549048162112059022109282221160771785130272697713029506807113459902451943840737307142983623259971057370955807272264586211321378689119898545254231472358399528704622953607436579282308343144993207382247581364825921029841229001112577270928941088120869335154314061660790431885044727207375809273884127323208111980637374045362219126820481438776996950916799843005877983459692396940299926262383946505472831955559506847364442934926587083515965067989261636181691978483424217417994613162559001529613202447625759304352641324817860980128846423798057393919217943184064213605545586165285660086291846499389544835273373164302280962009391449460833416215837923863457714151575263610739738031962675744511087981844163935580437573774339888573128845711199551260317427721397843297547254729328857960044246139502709523246052898093522751297509057221015469357032526457485735071830469696801911203405861197436775953395944237603244390224772897884179311020167812853309305591138486826620498049606253368305267004370986903594583688139381823854017158212306871985519963175070747130001678710054751310651710638684170322432160368350040233304260328158395038876845833565067485847323271183835802572923330601184250746290301518798564304570649976466446898515181078673155613697276377636615847980561026361992474215144427815282238220833321082035598395572787419471245898350363507468072966975703817607616080797167344356205437045077797178105368669702763041328418093565706958712532818296753638251571889251962694956466602467219853626871840386241471053715385632911363196652650243511089018962104489314826274119697328214614734751937047574360933469642148723945614981908841915185186337141361189714217808281229673957798956321589266166421759035008470453418688400201471494662052782150127810414342586853104780064176966366706802872780149241097288120474119297803450671128052237730957164273586152803763434883028224411732560417705204968964185729474742513626486307006214350970277121436117917584613394548011587531375506928468376004873503029666693697547945586422678175611236531483685631889608092822539138488675769170228658938643595956933222981045432326764089254874573102848299866554841642103348800086995744099818576570701010373154060625030708747840048908657268162402971138273472245639349778061407646627534888388108787429367516214420820129025599640206101978107560272582631298655155578680615287020572942344644149927327821654949516100870900676416423801687992546690236919218644235172061226873931533988638309591252644166126212603251928202685846675805557212512293031822700776319747220544350140221887646857907271870800940378906248243134110292474036507333197882017551954435858636973135660702629081255526642684934326460733108153247569273351427542944790428166906476123988249503339242546612253682647580259064122863950826283157742925166673175565435058684653290347490206965879871688588942599154342028448900315968402408666204100366921058945781963926703946962774584888592744678767582052366388422238312453449283246516998282227135289743137626608608599045603934719526841828228156476160178518720821257066587628668473965451309238924544429148687720715095618607107601454391065051533791648915951171085484061695910472612168438876036592865268207741298587763184479501635058100853915069346625691780718261894962859284437157350278549956296521031449106354897182462585417216683515490874296366782348705319296719393460677353754005643852859400470807603173958720282899702014060612434897370478357957181949279263245758644663191421376633474391934493209946816124361505733040426874602452547420719697340424515101603995502043238020761975530016917612075725525011156477168212324814350415552730586554608881209728690431904099919212177490536783791426441501119254822983615713545092529271370914917747803960912174439363134811811855695498150219977593926910516818636308834343441769433279191601584207279496711232033596340843796842026547418197887599677101306099755926407879929712175398148758350535992944320573502288755265595774332929313372019789097461729416853140560325119164404789995672939225624049078825684908136539819432317759218759047573887157837933387771244783063400637761942726960000971962511687875358487594395116267012836277007219924333913279823489277153992442273102261425362916224469903345125404340836668166561032137416267790007646795727789445108416623910385655875482302676484909333448964177377558045280348932937037677494895106072323394155537360234165128164823814908449206825398878125115604335692989676665214967444099762704908655223306160168918569040300455845693820599780412728397964583797271507177593631944164990108220216075166563347292732992331931104562297688906680073254835210396446402490215943674957375619299989182395141514118508833343944354482369193441690259081419643831106114577093618472082820301708762882272342186536847903121801152612415667364292562441248531480769502541792316887302498884695109006658514462127263607003353518256362179416071893786622507472607565057405615628532294899555801444579587153538219805446598159067246785424109751683577773199048382650487534157322064072770998677595373121873294855587158366166704990416587159440523770017534316101997880105597001189226212088206495350908356059863758091374495522534930439502921703708783850735280550649714416521846221335585872718436841076136178866514583835840812187733887631818232691034139731913986994147977425854877821244377380592467351134263713227577910498661240239684730858391402219146155305273273015001160240077693308674985630268329629816603598365616942524284267804224764033878473871395139697136784723849175104574850269757226904198462688860936820754338017169673687147543519241472745502012973512807181900281198297158719938420462750096456640328957909925814750710254858288269387960663438696051414346898757521782125881232241136188267048433720362973941209269886718064612716761180737313442877172669997913999731475004704037108195518999679445139325380338019377797771364273453960054780840880762546569145897880780201768152469091777651651532735577306245761169009868275246204339848800315181287889031946318787812236279471973181981276117061321002642980094809763126554084088227374415646636038782127273591894428708790034266529575822071243622823040335020719579805239871823118389364386838625168304702620178413567302407710571335476004317575109212039600421792066291073644901648582541597160299953826530242492731916615951600494822792805656996089501844634163829408385049103985763197737302475553465454710623557992470850870854907418273991519843538746741879842562552984637675122076498262854317399610747462000389429438042925784652162039905701401247815634350243392869894038967738376516745815756178854011816494848071549722146181247926326394707413513998900605086416038095380441015903761065267276670054358691622522045675209391172650805400454801884722903968574822331352311051569121353165187503830427433902648422032539505498808027918696723436050311454828274461457678403680805306532252004485258489356010240577230180433290264070797018828605108714073905655748637264785841472444850881536409015778358348298783845764152418337726867083301786592529318513082276014307786591917641862187846954311060038280153402045344828337750150998406165677337597921599027289915033279107426841236764062326942673240671702343687820875525836250212699997723105336780862505689913260363049229753841200246218185716398088268543591545360845490202627381137583735290631699352884394039269303163315852003986609816991032672104604739720320311235288802696088763801232827438874793458089653533685000275267060398814786765771538620915176215003974102749783585902756587803999659763439146556992570445290116660140654120129543881936856019111312074003364288901946250803687819353422718064732370271054857991622126038353085290109659038631813769477407783001757234268768916145882822227598434623970904011591406252860044928372965648775370178745726203527983003436076067979742425513695998424890179164712302449308001241577218462617027422307135613771548661395627798681758965151728093641466196506141729706862613156915299253259286543676018500973294586617953597775522553491544417878077560265978650439541966462500385644563874091657564674968517015775466090452237772435266429799272545840416968477265388936363362475154721646705403163311470024402229056518984648765567788200269885190568341023383833970381739543457074838565109872738335968713250426931547821825702760282690087969883318336819281545785168466456634460253180375123918428104749312769828654727846110524645797132419308298675587227044365260874617606118138699394608424843853228759026957967509738968362849183789905506273097742040494451190576009774885584312129965362688727813286350116466903061549663399285908358114236492749523312735101228953391285113249654324720357765245927852791236906339277672033001305942801045193977740502183849410343247442416517159106456784354013382357862572561730954148433780134837549038969955152752764434643945140758639179910288595545856105068235386103179812492211003600107165802402952518240398373207896215366212675480030385070596540186898278245395443520073441341405870806068451053655710851545864072359962621855158799248698664446330042517073864966589622576183978532150053870583427245907163514612107818877068678742766592193923284285460451269568024385724412590502150516026153674154200100757840102254916926928056928203740626432883621531093511489029848899953984562693917414474447272667098927843844071236623147090594616376642079467256745375892467062633972232945917355838598189490165551774992516340654115215090205547724097163890154014067029611682547275931424932863936690841138539715704616130394480227925626466648969927054066650940444612614058059852776943969542704121365126064619768026967991330927509508956597221952767899297362123701830971211710507319287577522345290186668643957430415007454691287108881749179563942613878941829845667856247281900959233107367214096184968215921938972171654284861078517919020721081861046478955968645003539352881716352244175490785036947077672968999731835695091239173744576245596050271357715449169144012604768177911643124616759293613002038927038372161140013004937595440540157675510668999397926373267897565165508510828690266616298379492688185148833677523474473645900511213429856239482533787773404124161860013426155802799805212651577111513896878175308227661845079664701698003892137688740949801394191184004547713731890212112252385251399366619504115434746369911371323647873346488201064493813816070385678283358695117652974445180536877471585490790000493944668719569394773063951082524411790860541231032997050452440382987668956741516472310371760916353446748285621016893241672805098370923760447444463697287646956385319148626801569137522789352004458892471710526865591799432470282232318867697924486635412213023502831894672084911669024565316231252994976603649993546360659468912842528944964113131532608263091748930112319422988207715479800234101784534880537624641987517092680840809772470771444194140183128191379912735614742809472257353624970961537281391421192015569608319463650433395850093941082968066964890118428707468755073235994188474730529753228187014822848788252472896014168208423518578456329611151760231699791119947723664002610725391652056292732047942436582837058027641282890124618111156134825122394088949062689608605773398718701735830602934657803958576206319208235011925483465721810682143211701890219187663487947837467407395274007983838504208554857602958577187726139189396513925328566790224393550574897583885954153176133690190298937121653192312040991446159642511250619195498049378103439182820696359965914128956408510513490379683310418419908884222219928468640539146079486214490731242302373140213885100680197122663959371067387169516106728581711800927772217507500033745952509700905473626559401630219356195312625141516384175100475179773649149052749889095569881963672164843896589646297087043943792104976316653618606890627520687953256517873394193937777957130406236426053395509806033995177049621734968421434020281150268031009264760884221080853844812786447880424541386839504718735517253184934592806626686284979775368500335669604763572481031979347999317426449540868597971099050947797353379684100935558213523826068673374217360391454333356050718367349602119224229589499564122892117976814180757166818119643278636413404547989212830794080228167385580356523566914035939444449516971032135905989778594255988449631609949185614655745878542202269129598156546140152968405778011118269911355926517548717932164107155802747621024967609104322686615812737297669149797644687323428728712834426303209718090867401689149038199623963843693009982215455137718474190891243510807415235843796962859351554002662166716939730929692862720777109017905342941544670306024965691056930707529477872242553943039924607630230753966301036297478894795144940481423763197540432254776179248913053571929932201656743182382618286917500387021651473048033368628997094068260383618891218779668061941570533917859938345006392154281109396866496734132048273674056396805709364612770470476029253999748171736378998543021901194708991083028623397196923741121235220928531036708995028902848789825689759495744173670537133132201686441263909549514475855713366135396442763653936567450538330148716041931867431209212702277991722417653188858274591562967849681516929314642221142305513048319460347699192867144918275123194791857371921944217185494981295707547177771728845960206779528769265339174355831533666558198970102679683920511417088610514695844040744628054553848952362464934086303391756314129790888815825649205274160944686791184476050569509302400710838189359566159352781282054237443044737991403324745841156693172462415106355337018427058858792033514707680450665873531315681491544235006802477380957176771098779484712875816303829923759325554416921905426734138574597533283328250066672454447243910620301611130745168904679762344336097869063329457444706261031663382716088027975010822825683079119351010988067001922409774791717282938259059936830809708173387539080286772146993214396643214297766650040383908501507584606945059652397152077616698799602099298639367437826968099443410627170406102223539508272680222298399030790848669053743250729722421498447057031098959906099287096441807917254230991297371778991953625011426847175294226652172313518850092013890282135635359592815004727553352893195133263435503943023534774353906308258204623574517292888024676522693300400058630406040334851335403910964695388707914004967086986538179975772655297897038652791202428253341787608968655574344369959855820926044538068266908957412654911504088705045418573841575572074588589438297813121278297829894365334126140643886731431169918322281324986330663326674660862332779520729406475484530863634533015818746050802954141624796694232559022946024506099155869062052287802975168628701880235217712614794328788337672727732754719942435464530739163333818650205704772592785530170472211271537894232520124994016060117737557620721068374922322945993809377987078803325567508570084925109846458586075720325862150494449228005869292142794670323374092920599758617760396356463417443328712946657406354443324902028380798526938792628737536021287781804603135984672184389056320865620060292790587797150933339252033698593806871503695564626691545994268646440413239239202431060120787432295156538132135188400726417444918500125107334515473153063698262955385221336932491109625877251277894050963400571036175253813538167897903685870202776632973432585210451727706753442401296057693110532399215382000248754654131145577727795573814585448377069773578313430304437767648257579254511461270217646358891598277273576421517926847173462096053536556747692915887956871708340996446719948834098374362392908275754858068979236239817283027640596142901792845951927512281675516020722229957586879201565698722291865331497116883226787454342737168756456944875769958899245767492455754524236821595469153219604784719923458976358400073511421447666862901427091178559959850730344199175618194283551876191084299018742605049104151525524183616653940678095396029846004269773477998261301491591332932240366185699612626192343617628014047279802124283570898393134668064577347933334245476134213070520975210517364992552597546568682748476509424982120633814703674033631349000955422809184999622941428595593878635991800626563606266759652997058783676266453472906447216611088091816013608145706145228917949067177023701691982676919595159612244740091549990225357808105924800441806609620752488368943219136354858657898735329891981297214609989461765126160420936650363634692570832224912773991919939459879833281396450406887686458504659782666746000532974086076907856502850234712583320433370217977918211898302280787260860468373262901748191267538543363711026522378775837927565454449518953300895330384528544290703683504789918765372463602363362067566359128441865216676691027044828595582393510725371513651405095575301045687419245838518366191850711611255519958010964825252462444834174571423910079232561766099887119779020715224259354094270618028105240676789017897712050405198430376464759661443535116510992963360788894886245196620571382643527374847356762457832573532938243401747786570698657780178228612766694592414208830213436027510984410821503508746227190716163923615460851616029501270599825376631953864852312091298251481547369352941360078117687344742753988198885062059125989675966070941462078417631887769553007167816393857108749607668132567724371416056255543362871422906706305592154027766734441211391350528681466856715496717258936559353499722169547141873421365815465884554658493089863372452360258974302437669827609663986154170969556502675151474388653214140990924933153669853313387660718065625166608922459324625070330892208593973965247146388786915789971291706577596975236433587601686674745810456452512504777282094757349565698207785792556657161253870687292208002451196028004437428436685427283661513114620208820388787512734404514286219489389001917852795100627429016304624601156835345011671378973196714173416653686809159151193120571657852329534201382009039955482204101290319702895206207528076183811551630202672880693722813599354419479453797560410073774261176495108419646156318542631590888728846304875848784285929326210896548259899949193140873958279698109217347693449494726462152370276719406053060397558629277672549394456661123295152997695513796062153067019639397498596241936223610937275491567071256302223520619698107686185747200343465735875888916970851773589187100579235806632716087123054691603935571198378048566528871851365817896821380839745631705789946382906453223506557066947420231664880387276663337258788887874095972225217176259490985499449386578599776911375835470267779551956949056592747174814932437241670715141641614682325005079536020436129064433872266950377695067701885252863762414518193856238874127307857396429504383915767539148111591656705922555544707829685800873606702745481987940504825751256759409284402411482331336042714571809946817591608515168110566299025783873784087359857962207206277272569866910595516664154933632846748350388946205475834945971802364355020079342889017779012766722191060513487024817348678469212865604636841219314102065839115486631389726518511566672610259030516806961913187208239474497170460277550414352691448548837213869826346254063415099859554570753334433061323070566346548481598864920181639265825782134134288614587831386492029120645955945442508469317629889537425228929791744127911503247000776738931624259154344460300629939941361871503596888484742230024533109670647222532933355148245511295385689283902432343740967512732792087290989127248943569909313843963313688120705819784579610051728932190505332240625406668327856636052450357352980917883411326292542201089264809779494468023180267137939845556801992227960994525853006243811346127795481983398458383770956892281253490034806611512323422662954865279344400682503202425324872892123309551967653981383928119393353846831510221105511306430674245763016005250640949111032392809119678782289767115772168096519624681070082216653988468691040464799470671220497136210138562231751307541947385127081716065099381087812330649830109738487393993370773176364591816925949332762256555867302107735594823466193061709593956204236122247535803402093982614874552814646162952161424318740859191128087227789810203571274373378822231032710102171687534633135691258951092773266766724736776725934876620418408392708088243286663660377031644847725983811733769704704424430989476316666855579339370805083996128072643011141498487397695952477321087804486123081530636684068129299063966617608789196180191883288920090586386112616411865935302927259715619691976537163764524041460675091340489144808360182224908754598618126800189387362504254765004330536294421237304679290717367811542836305017297807425499523407450707761648421689862159260732209126409765916719923643129936505205077463891829351501160443554976266536914140445801820428550911012752539231205619133802657509560360723612196431543241066012685226036934376690245098921378101094738847030195414424818782673751256715740322816608794359690790225174601237122960308272738016603837245426090239560017879770170289056550952944867627755984782906531117322176616861754930043790592347498020196206641653185229980215347604772488101843421443422044985488166479822857847714222610268092007346161899845511814603346494017403510316172645879383532620996139366759889701803709801924677447318483280916365346061412951270726947143117355460401222164600326716701823506484975038599873371617797815649299280509642542776271674879818360665115787868344492566863547910050625565560646865138643263758460508412030521080192875650901756928598784599732362910863608712679752664173358090857504954849964789169710697263090947771871652380582193113614955372344840449095631864657672910802072236919687176258917962795641161208556488066652450845352579902393198386505366323593952733959509661714506227834734086650980847850615695946401453702012867070530126669403446577733032910554173806796818458109907538411115758324827818253596260765865815158238158848011344194487147249257455619581242126190526013794199449005370111421929822503314241951131141016465059872898504340617857834682784263831073880283305181709018819525996897189997490766147119702904362474591765047760984930916014980331273698771518538982190287434964142532463876680317932677196872373603096155736436350109866966775479583427274553773680772926584606515921517781435669477407325883712702726788728927656263394500594899941757506334338161824489095836036036163667177327178691804931860710360112307544352529619057936564916160777429907262652004645775710027162611856792143450544381965427320085788323919509893266053195118116178826941820278207850812327095434954133843180246020548538397597598792600298607020762756982547658382620745381441910970244377379581270365182479761227858354427638026317773061317372949521118695345050563462875473811361870975493104781439473647512779199418916585442211020023910609334063872572301438316706013003211649701581011782509496166934563373610525831650472716624183229373004184285660482293471284505366991299898215828325328293807791742822591619501703607727490931071091826325714391902751389000454708128363962269810933437080365600257983093010830062588778851738735802541665139511365378210172927345336008682632570073682657045225497338052402378309562804431179621407234235224442783151348000060698713857057799652750835796662345369126766298304337134781326219208663843954498899576457337511193304192861773572116521939153757975869026317107545399412427988788636675707696295242761595163850163622940582709537067546525978660201353354102716685786944573776707911808584376719554149797862242945552998995589547723566545535950140709269207349793027477764715074048571331532066122877236370439572977034109626243132027762117993888276830404346693494373730131126153120622437222251363532079058603955437083723214186018301324140738606015289794928365311715018575949123282907478482525087615389104375891729785042781928895052977281909199293139852035670440662805123591473669098961590482157479260974041111618645131584500124509169458931754621160219337802871582451882383452560703752508436879032546515105526125942270439043240234887463547737240464564939308393154099614151634593331185613515151433622665597068722390753758456410126678662317995951324775977802854151581778714796007436309291815710095607543330380198989721200682320388400281426616017905620969435502971821567470103212125223883578180990144954254435148481619317031938886652625367188511909982031519619811521454603895595890161071018261604526927554901315288768541228184510376963462531529111146824620387181553550442116989763935657554939381374801155880056840487828192542628672078109684168679530964827354806557574173011702955158277204716816613124804497383225621204405411680565475422286903162597106378786001318767603539854747724822683098410656254823332073132996697374593238212784053947109408946580938767127843378934374965642493196006672261713005708710153389399831814624073006464482935281306544316101435277080107114187591591762752543748971273194468862082003053425743204775900330122874546271797230003176078208710385336781300413389443854630183214905856179185871502688093849247758189402923339285573521446160996521381703593404292881042897269604944577983733330649458870097605254747767778179478532906080472147898324482382042129238535031356627482577481501676113625991814057332235892488227030455103236946283930012847636781605885843925221532808908285612869504056509281969313864956111289799361823779345076827950877486625487832439594114980720293275058397030850338038240462270925900072196570822430234378383741344577651913493565377697684823024186133344918928903341023057410145711364273742840610891281532280035653930627124070965641969109738721161663276272194959279425960147468976308438238110517229732621073421751721092235968078130494223842765192853938169147571469423641229163669280185470898042133701660514352822378000135062091889030905682804582502586906051303490805171614266062610844013215248149777185617327974364996075657067422964756288859812801612449359136722943487633812004132661181125297912557084880309086370699811615662655920496279912051264628956663296074505512820158787085454366304521733087257312286708722554151636787662495285666365706234600246467483034457895239113096342639955436759198222077433073666894744610484477956035575194683772375196214885501121227952141868384521394095413594136628066273579874126388818302201380779097057736147976694743903961877954718522910351183102947190827621813849350872597433261700236987232380950097467987105267667379956954974032493942617526020520159191510272719312139944616660473746466797234537330459703857641820800880331997697696284701975988378276320815821655643511098931661977155581509933848261758410228724544707068443885187563832558888801704119987026497139334317222900701883186452510747594982993640034751314293926495149823720045785200499462672634701033666990135506215681572674920849327580962142007573142830804858585157281239378821309349813645306977859272198434486045077539399419456146797285007755593039591051653985101144916227466746775157642004668690286190256130277532873743601029957281408911382229903306874283797915925675679494703952254152782278419700822692872603440869065140478534891555573535986654175985848766072848203554968791384027170906600764460310185217893721514281289071039367702893102175892480987335608922222724481214634618407247287687221806360438018872894098401448266164465098877150052285887725419896638853929096495394096880099267030418394420564632930272332197471454565091104061104262156894596464530821366717163760233776513165465894189334733593350805267875474679337258701714198534329568347469763276600485848305984700604669150412481429389386254432917426702676338105805772823179867715951049217950409355045705382315214879357031679227159297693035188863128334362296133471224473234378619389268862958673759878795036582173535051359654115951337214461721669570822394744615901909742248331918704155886705152027186596362834567712060713766046596461448562215387294976536793386296176864249227722676630128130258291720911505192398298226609619040209038217806238682876020385173490302244856442281628055052012561369074667729278021952303369154617819492201437800604155956786762313817673035302878537101932424539104937078898773455654841571170421594773938324553140435995386157835114136043273460047579802865788386490992732871399561854951082174571064019848339765526457966272507816533320544648966362710509948722441199834503274777089844050782834463045840660943219608296074888698212006916919190595130621023429554657535248773226880720739898142819812661200382265927248958137876268969258953605843511177238350039527043354389031702930049550930767754672375607221922098314292961455529554834057382569323663247687760112293863100458114560198080099549141749764123743752791449377548657191422121300248673018761647947920878715688374794643684625066083212253048493450554726986461706449995186545559920490925223071364864227370209856994659756187091317386735464119184850437363281885571538672318013133386028054505644582687180224084282675302149086225245076240677189721167023153339335506746126809002298969868431166010292607908003704052906926394392734914651048582561352775578314203175423130118025039149245732758113719272388552904390225467571730026433979102838688512423517677974117142083698818293688914774002763271992820804769877877916162997789218883164058941406966281756028520417102519641318045608394340736169725137328395118457268423318306043813937122699029132274327857543357378897303384995905503796117012586932715587585263628870139047222486458094387396053403511827566096278843509989438204814365992778542354763451430000599952649555327185280760480995385966567337532672395827779831324727218551359142247998052228995316259178720762006226026871885108838009593075206526552644212272638753321930725783571730876570943801615512444196348048909027150250706525556343394472101310877089809415590684668271673792486071802727785934578399475307721972254685347832423788184330779210432101226290805344269357899963213695286317768556949675209341635116583395990693653130749257627090267536948196642471869210042628065801290285730821605816316514105744706802386658135850186927871285350307476811737261717283366605545175836330964460408787577788305437677308651892328371506593901742261665509281768212696074204362048490650719269820136996550207057309674506665727282093092385232920001605946915936541128782876756573449372013280852238091746891135882591534543939998498709279545648518553240548830555387083522984583372717438065764831946583462108404975489624204268577707998115373418140865197580683997137200301065884308494040220338625328293910386606087586425013266293469722021757474659927188545065059369340209665618015203878182859444426972201072291523339449073151562388410393792263310177845328328940415061019296343173856117013698013952431319940191197151595057779342292123842650105307886408843757562047121850277784287444011736969571919390680659569169679842042312482955286782914562335161872676805623742933847612899530879521019871945497316188126263170647509053158675927852968224085944561511508610849175773330783843444917182126502826246492755118299363811467771052363526118568157731490238238956376149348729590881531094254542128851396694131499634166175938587939105708730920347471486317817137422449306111198000784837159671677924836898132114378004688235675372433296093079502974233442582192556398940323705567142946616650117372643454439802380774890746305905228212354448396133760984166488457308238907442524996706496029159104568146236976623826646039541432063056729488782299904901382508254850754084320410190525652491667814981029707014265082620934362827006496463594579980315789121125973403804099537947051072292836384439946591483217487138942740877718046643344379473759661602159594363290814435071028996875773666057829583155554371196700996753071378135975543639876372498050266084407409664744161119691218784181448467383367636933957454064290579021178028006072456504677002010746175555880223442354379548938499581923827168696103423853606958551686157540671846914085922151567702493521283855815907156204138359019575880677730684941118170985422370354381050359240180416827753189771180446390061678441229847270025455719444415268909863148956692672085356536981051121356059899189906524651448138833717337083452986239798979681766432274331496487026963180681869481878327160143526939174671785451017559125245950026301157285703786086272297604665411122527431206113138686212799158136918857125552076353244220089412135786674219680335156729444724456797570492829067925701795161775252153158014969832552607012648523734192507345914746412171254129950916581577720099289440096351813046714768240611771273469992306294646475140843510129773432069600358015927769329236992714525797894466744533513895044645827993076109389337087085797733878128547468505732060633741617221410313382093677015543015739499349131417149733441150421814661438531996116441099402378132401223715559759974423257579690476655185750956619652947214884662381821839163508503855523817162185005669923537299043946207666318164299743507571623304098450895011052140360986175714712499873081350920160894687774731879268042485436573705901657662782685699848475367892008169323853438394469517501711114773535313997717900374969079037956553394847412758449767532642912201243851307532805283936097734283382271393643557142618779145958587159653771148617328231177035753050791847276953991987529639063769525023390461075421398775468233894405394099931668314125974039023655639701146205331454247882088037125984596255166481786288051026291365681689252904545632499747105661478046254292407898814956481239291553921503444124808656018666129303541918304501737209987226044860842654620873064525290372399190397851297128594162530475526864750848752394404945285766716469730196970034816618479835731788188211312285503597596246197312600485012332798013930122422483417130659418642551529496486364810249762821931241379366507904205339900463163129833672276177370498446499594588792109720767118461756504134828551714815427378809494282430890055226316159129902924647085568432562125140671704099110608984681714970246465229735895202964592184327848153297431989946382424571173148394266654062974603418457168452382855476550360849577990476399094522590940094944224225926805708734520987083765473931683197677621878287691573825452106684719677501624264535750509931842460748145381807300608285221237662948639635214989953378200780927820129820790940782629006362918335854287508161628449977570692730613770478073693878322084565664243871599754517118673769169994612989887673238867115899440029496151257477797873703421268724495060479607638065562619423870827216650548380641433110135215744697261548280280605537489079713630395995678069183436268441904073431359331801472204513462680936197907562895898683847074263549826487021033577287390362841084359468614287205080625373680982473883223828461645157363173714194985063953389847954167531182736290974416449169179252765208317625827325910216449528867795869765085987264312337375779168197345246383306706314841364298010969554404114574049899004014592129766706462858621828157907285425128565941818570945866147104635793179177802123088330403692118014462285673569216287451987071559116170973240465579403868552903450056998813840668364173664882945323901299868528828754530996347681537732517689634138688962874150423809024325350707567250067484760757820728028615885692088857222022879753382925447298161313358985150856390929079899090054228842307912820828121664253099488119063577365366637586945047728163741143010026651824097439181840735252896549720428484420423780467405215553938495732653158271081740683756325210102516587831631767633798458231801096420338162398886270384490598974458818978743845969790737649561580381994252164151856873874493252129535192296226262273988901150412365079659319346181592454098502946434294361564126900633717886880333563305081244161970275561335027635979639139478986717837601721381930438055554059556930341038410512203896130797870577772688545495462444536664544819528624531897556264660762001317081811226265822574528309966854339397699039577038993851320545039203370045932561563151263445675300278057365230067119791053176232550628319363884960645407086782311959525505472687435332239179315028648458116344063617926115674854205585850305868823574795318381979452335994156075787260202939716234514452563101590748532113502349182372809728747240557187890218828613086618524650790463196154754983802586126895416766688507336942140280135441439616502470377179260398392008645005053644822641649703204406829339148791836929346346436338417216654673329343044728616454405271905641368229064155154235301944691514947932998098493880485291695436833678407540492331468727768088354979372168407112711884363402389785474330406413580040786423069156830450697496164204399866385114735132976030862952267890060500363497306586354306035130005104881730687968514664585305970036393670973690229305154774267354787771813926519441821624704807805335007771542993260398586573005375724208043752324525864773095921471272631785034120877042947072941605061562872947268586014249223975324738384313008029378771317809889676676267335312489185939454602639074210485006979552482756197742740822658402003849561158379694503749062243764689202355424224734815954112893872460645181252841261222523954641061924207649063486164146506184627967084144569275817851188947085481171177702721915726528752817297493663114335082162736802886030848399248532298313359832471089174813051147420719275041337962223299433476618020534222895406233877625931526188676868718640616994425948130396937842188334903394574546975432529980583868991985253196878003446312932727325130597364503564486865845600283523149074515736751112523601196767960751657582773127980158878478171731958697076216110165492146817350601795575187744007726061127653029575103737874230128100806031247895320583250251477096144968190753645892962820774000178831673614359268318837759168577237852980697898407777571970746105522431997316919797224635751973713273110167566861037181931433114036639257743631695082994234859443216743363925531756395102509600783833228333114785690502630593963150748541379437995556769341246378417977064081219010914410703494533941008997059668276733403591096586577594472263422612552868390625307006294994123345544824305855883529542210432805590124800692192068652011471568445584793103268870518097714007843088612069489879842914355504100108025987479400559628748798872881899615621775765394737811009182996944415958666611974624520293861078490876972767746131088850823512943155459006795672114930681426449674503383294226607680026085473106169363514422092759425859644863764437086296306206607363735955781284591596745327230741695592136686752064722509040355834703757790506035947738723980219743923974437425479166848201512090930774143867244791525442173913897394125681711167439622045141890437070506076565385994501425816181515716168527720395778924102978546645611125117524820832016814939868033135084322123034095907676186771328611317786977809498508424968742190912541277956685826751578231540517629269344902955544452971096847819731350148682585444974367222069682467613292016862757619623692824599132097370952136573086502722311984729438054659136812032919019497012990521258365456192746869986601317138474524762469740980397632321445218951846187478608732697066519034064540739858919071034068449365513619957038964179611304411852011185724992084097578701655722060549725638274714002697431712408913852692802882765568231412017208383449480069099137921464535048873543164970666736955316926590016297564289719910373853937598299933929773823875832273610637563229049342025452977613173767308106409721538531783038969975772317444190561686194428310108134395567602633596548738995398764190063516045282433498848846048911415039193061128686622093817972370796807724942803695987976840863778597533603988687897226031405930763030602492905885776888381981531112629755325171599194447773639643302557271646541332216632116590783373879070294246075746453605121400844547722589550076907305107520098065253583090530915715135641034820752945243923482486101178630625105284107431485061059349909346213064218800814234562386545933669430699153475244126940881427090582718907441068748883739773453944235186059753151729959597178511300559015291609064741630437897138267847514455957095019077171420917314008659661874845425427536330358433431134712016367744083962766284503080856776306343269503055721213677550552726424446587495911783290690277206885268214644456996664177014410385566958503684545879851420329990352996426953939578312210531094124955291826408173722499945326185809997160868834593836695276617383853168014659416294355885635569393407007729834957296335208316969180044257187151219187655627425572157474496257468607693008419349939712410178078828584785859528852083043614573503912966165199437118219968001677142703138719827333961008105022910275680116289092417919633028718682090284317126743312056424201572706551053429189958777064662644486332027376650185394835102356668582101497866121252444612215988349456625797660603092458728748706058379275751334359993281968267363526136447240982970447286516299274036326324439087407738102638879624052135480841539405679461624444175067136951143796765326484062346281510482007162692939309542110257350865293586986595928596904164989952270470340672398047096128675270141743506653793562730712493203280170347199186921056835911559812020215867895219339582072457126454679630668818939241304067694744787336273048287594311255021697281692128753534484456906526778008653424556588150752891394640540318233054227920314059784991253299293256703503981219528286731961841590877259356468132626182968286814410408547291535063931520629737270916858500088653973850802726502270004631474973273952119669675040936227805649062394055610048685855773519785431065336350803725936665976450823924839682616349079076600926230267825718322495373787065986095685606021427590992633702374026390958522293869352408604590060953242593337504290819592571109735813277820675589829308637126852617588221781683623966320102555043442485586471615458738530193918890881556158133945431635255904872166285723945997931260846410782021105725119386513435322052221670176478428479379939853606008235137682348806391266047277409595410215101685476037030282129225780169998935106106419375848611061350495854333936477014883408028590167685244781380316790964528128304352583518032887314447206042697081905932074736215073204949749529651692806328100518539159098479658377474604760781710381477674089893357888855156227076051270811094258054803709375837434557206195703833052808166888896674215314324315877459251655757904706509331840654359545605008844206600252059193108599467553191816888703805028162165346058635559773924044047557998707534414228411329458541762781805014130525763845153486822244486690651529818932231643018296147709869100630219773351957077691614347751291231203258623534207003127138347326613251572358447254786548910963398792010550370774438785319178158963539240137517927794605933269725885377378703564177529294370507680729004745166199252054303912646495482468707730435005061234492696093029017072690974766525563032382987870690507128334090847776319832694729458659621866289943988672680753349684189466024800953532699621946739044726584683951992468724920317873365496240127061058486609101687114536722454395473617823786582507395342042010621656138407008069388560895475650731776287468901485068605713428742575704099062565699830152995349311439181420093189593364138789771824591506903436444558025958700605985724274822060364342182355968587157209370120358475819934697084721877213973505431563860697599785823004430778016850067087808935668668408262646506692726331872086696751830169449608153531180539440546574262696052200161495180919956607462622909280513616568429986395830135323044757099684934667090767574202484885081104985491791463992481097054862927866350670202378830057336814533627860359402497056282648011109503508319484834107740143307686159514043828562900240180672523804450097102685785986430122542133247714406688346954207238662004464768509732078440337514351880690769889981042499540193988840452549926888650284194776054145533338345501970050782845960027021424361578951787656152788916808691298054622516045202494967641832193544397747832746610029085537949086005946772353468232060269491301083395994838548726473511311852511400205871111486889213075902654862520179308643452711553654931830055576074135610302670370479120655538485952239035995550458619788816384782205748960940914619689944555552262907691215725146310612283480349201296710058437668815223160115753314889556657106152635251888457905475631869747060294024039620167478885335711548350821852731361109979807588509250147158068137223086458468748601305693003976689942743099525679602254649399886031081541000119955290472298720148118437032939775998045406746772432193782494462480027219095383847699076783766344784372854893768641505069437597298529136730159837851854406337619451923954463858951350100111455514311966803065025261172690032850977424828152847788046164420108028683977995698438371396246382553491512819110743417387810553415040089640093401536603157828265181131108084282860468626783161157677372609459174073549356499300297644411652066035842354296555484992821725066319054738155623662396134058036129570922913993014413185579460336315340111124098872917181710263057427195624638741041000405786859188387006303181649964587930643715346528574715739153559313682794449744083447134502426768578878568911673094087611898408807080844672733196816077959939287552168935827269722029001813454708001816986743029356636360799680026763748471997348831931570578715883184965713641101486047746274008097875774059571899847462940060752869590040837018300460091701085639878668022556203785959643813957438347135754235263645986737966276879290461393338452170636651162990059223484441451140109189625199159863299401697327886123813399734266523967307421454715893401441271370527013041600654050129781277612180112625814580620490008777428949694778316008494035051358466447743747296631864792857100114385709743250666856398659671746491755067192111624942401736976962952224156704960659711631721202416270534107800212205864892236552538062490844822767210613941186141422959596592109881340376974834981669896407285907087654261118642515978198810458181110740152882348989050583487584895697676692752007301101875882683254975713280311072206413311612505937682987864742693349695610069701825897944832688589143102427050316421298841417068878474631599490095921513541821331966976930927374113716731507090728918846197490875980029630571772369548919914521146565545600349248311241954759753490443704563382675099371437256902360348269262793814051952835040233943574727455584580891775986106130447239915357392432685603885781760265559091106111054946001057681337322548212020292618785911518219396860976256945142429372121588270391541601308183010182510787578498222296470715318607803827738096366576478517320973001961092645852973587202219951010827290803532855599861136224037275138519402592607353343176123005853859395371178129112692916482851769864475588845827934340578396797909461720667702985323133922580587955582039626695542466018469938813641027579531549154303384587506740317143065584462205606295392567747465665730992727337107241290071469830557455731911188822651809924805981149241657655442500352188639692559188514482894178593228304956725665842429832926822487061623315839083960370522610065376586386404491313959600736623400386545877256036519016601358138487578393882978154628697211201374047875044544032713698238400699582590322345720751263554150612234982876233342638500256105524229710621809534414753217053190397829460160008169255083605629627082700335526515303287092439507814743415912987658290696584058587050712320628836914783470076002570979526563610187649031058031134076493322857048021192615534972497634310346247329046522909658838147541774166838489609669890063633743714126767057430099620965573455868984953362432445801862328855390908391669868269260750320754197988988257512789911287857179066999774641479683515996288672060296058986463121799316976904334601089809978801293747125199383967048103563316248762732121062018999452050632900941094375251916702539512005055721115626876613840025343210860922708856743147414644405205968283676574691463457706961987196047595970823135666404322273536247731703135310672580908524223620713318519843146518266807175810350428117464947983848540070061820710162610531946343396850426824799120732144659201373596308498049513059825196849132802922852200960301695712645129649834798895587748244375873669378896889728015685053946911914596128240382948388768578576281339953159328424311108817134321077803675320064798814758324774245956326703821915775308943965350200836193040426416005427365252788337862646944208310872334041837574730765385974495139146364726488114727445339398941509790557970491336666421081395035855797316354026583513256479471165268677068381997603271445783860109226061449626964927827385857592252989162653717671305505637825881361311526330575030382535484711604996763197418344842327879273462609192778036164868270505481886419962979470390170009060923474642649852177933697379353084214449690814416511417069527814648085132433737923210291215911599790312006236180573886339311407748698441540404576752686886610739507706512461276720279360253519506898994964358102196398671507629946342155873433106248655561305649190490491098806644208375418986558544039612853755268492043322106518562767078139508745860938537484251759971975318593006347213502410792603533347995027025774247530459646685283415806255983799017679538915162083693584076776256572935692184977104503674083599508679573624171819364839896510826300094188578358893806685759725272301535814331389174341253922182037149384523411760692720317855371453537958847702008591900262416074294616883897988752092868478989082426795018602889235372794252264068715578283782968098666584949951304801523968975119197509102837922368593816664009906596163080831370818030523848534124120289283973946030925522774034231675639105327840040891903492836418729969874360902823251552243545649690841988326779342996994767338853305528255971209315506715246837777193730748390046665959684040535630830247279346743441268110112876000564924587558222845891832829664105871675868070564668924237556397967729130326499826233439266149141390855811343991213613135995818749626566099614080609662430803695138242638197630065364430312134931107581652490146346385617772375063103772952057746939090350312679595446014547027607807034739081088205411379767634678606628855279641635087301805902320268969956685335492474697516128817016908856689758436630479064140888221699666299456037427875505086573639857236646136153337058298259659389297641366652281969821182556900042525686945886539439908286918555029942551160331596560593925581571225169944201899479892436565722141688708480556454276244957053668036572833754388390952950060190575660156681371845069839572045662843325151404742798982388270897296238457343683461983645511392220986407626114942269287054498441147341642408004563312331409425033761417938152181921231489314471724500869882696815766101452288876184567828178896943060299410710561296311002169704714482948813524306189934267998171151300601648254392347907352911165963563239229501764148752103883621745773179923290941014740491034974659215464171629012571525392685758324562748148465113071761268141901003157963820311939538989637129769490565849612509996968355492599786369060483521484754178733023843744621687649161922635414322146320819698137905903256269145609186999798374670211823335687956592596838647092499933725246134323123857400780650666395945031352874648584198350755438930704959510911471903021975537462716128217852144973088436279122115855840396716189336717514039699423836441367205205196652046549235950290688230930184087134935978010627061781267800259780174479984372793407553380011626724580106212103204897842016365089742143381954412175066994918158152422006854857552590810913853701220020130354384499975894866628859310072478407942409970138229180309861874597846134952149334422387456628224612772977702810393581238170586502592926469316562492085618596944587826845665959870422921234563504319597666607867095981029627202364020086859624052098004266748464581387534054809934602061830030332231912728901084091230995346635562047034122193739531375438107821662613899512557183798062663960973678514393704163860118041576592998306170390997811968813092836625996221207507911629576756088326922249243998724663043393879971240675274413222576950392791899255562181863311354314261190350963805885700044743126328545460703070917129983524614991237042970450964797479939276597694247214598054744915604023330323872956926663550824884838475382230550882742268394945745132751885250042294999777940151103752610994910189456937561430143252762383452090173331043442226705819004260394158101491363932887473247962751064628769564271516705757101906156217078265472293559848418037433519215160931199723375237371534877710558231169968049962969081297020711803901909494397560937272443040672439782480550402061309770053536921236155545253786641265052449109943559654880918133021863471742435837183400471229977717952051370036229127115431820132987665318806767990304400920472094975184203851607660332745284120470504879638976674315218747785528101683017690367525660578059024972232150362313072470321717098362836477963258917077055470329522437053297778956591539811916313372562453193581438412773018103391567520447860090758371481288989723860798692086918786052212672855713434956483481979857304996852902262345384999372962697317660651467653013476583876301197054204153005783227207076220417328304266508163667712493195906847116380337383150294247730420320210038695040746929501845380937124680469348910012033086481987665223855217479812545415592389441973270258101139375406209501624008880511741285924058595274407229049767179776087376037874185025693246591258003411637187673854754645796432394094979372333490322216427296894681405529802600942024565125770491723809015800955317209409484364744863999555315334645719466177804330636980666140300160334055248237386466680195207990263897588370885644690316602307271368441397446510911483531023850050522708385457398318513646853070747028607528809795402995514727600533567887441011467304773300670907488019427371677115820400926204106428479133169038709803447696848515167717212203331501338464060183630886206785515464747875955920614632355947858642459723500922859482135159073992699128779425609000045511783747989929661073845645928591925791024094219220954282793749994935296204455420431907719992586193129631589499418768937833367782282895990225768059586449692889384250232762760683015354483151510738118986119220075346703701690052684730634704841275025939600309652239052771364660988403923601639846435493045257899661157953905876095775339216718248740019092521100239099704894354526203835403998034008175870922673207316952876460904483804211313930132015663006736587336220685201779080579006315156676259895150473351314659537344659609826904163763213638111736991076182046224185866747617656762767372877156670241899204288518090533978794101692597157476606536732021461986638011801469644678766262373913237416952461004665498460505681791887209536663300850690218247716592598055921441459281928715803595603358652663627845184030822296374536259366721405941922270556789039179273161065781390409990847290463854815672679009256881617111117662036900394646826307829307168779720009349610020251648528938264719092785427848546829531250226013405268893970088681315630576072236118387173945992728397216332308947904029048325485637654644782379396637271636976549818679897100468802443533208221698969908387915783538482804258486518738856804287458031500796160130065972575394291281320970691058525332224826491707664375408572953758856366029411204815840067506979593164521029389736640386641356816706705295346833952008266375771643760531510850599632137908928210874472590856973148982912201284115669562883027146886242315190836663206982371647904318477766842034438633015048518771482995679831178925643170379009214868161157432531720158025990589399257575920604140208414243802953626348791653149541640703429925513054124586721079306707458046546155523643204303166684714628454923028351952302664182159093792667467945931620152138221404646324817022792077701787254744705081984769648900481564395765968143850922695797902528314227315326921763022458516936461441708904776697876531994749835617519749775940526885072258941851985313101978984651137560769751065033593372036173018958388736865393048607763780593548583161657807748539055984127066682949245802900861929448285766841596997353337879626174502738805629683238399319571620666120578085145288039097450688393156998461217953694760565781387488847318869383445802273780474514557116820610440960683632533256864269577443940705180386101196194011028566496074868968630764149742313014562915313306046812457243012903877937630561013892615780501731112128692445422451708722570379906330907198922687160354558376619611637724494741081348160244792343851113775447865507067139500858385864492720606404103566194382804218110497572326508898703778343101123620417753994293055585766307071594561218777767889200004889246159411925988200796595999269231626480213857686981656392355267642134239749995922691924363768647768608212070527501354460073560373079061375184010657384091885209145501891896585040123800846486037531281200033075208659325907109513771340218739546119959878736950431038497467826577775878919764657854538461288010233494752495342587034000013252811256566894354434182788464016688304034210654615697161923701702941708091994900410551518633557565122176506465749688100958286012788117585995042972458675393219265409151197149058883695016575855554276849291946756631341777160417784783420988448293488206879938184600619865011409535791467769623045603430038982552090452668861726302698798557906226793687638950430921941860273826294442386658344050439518903825718911461545499900548513406437682380293540965072686162744741780470289253895655561359498273395021299007613079202842974871105077415516199350777961374950872335542906895587802193766006869758077454951994412314938270744140497279397252663320204788826595655673704328704844329866170282123192045170594497335344907648863928895966964004146211838733009526855502971319951413756998417853842546464423451921276539519880814279492567601461145016163855269389752316961152063511724804829993801138327848984230596712253869485274584222585212838008212470908380374988017232313093463149807255149037564401499374521075789490395171670062066930053182237739175487063402632999867548553279211819461668430775634322477416850898723768956453373841787452612948159912315536861505058244334517947160387570093733779259949921191171676590739956450954695344610425652385803358353820023674920832255677114151328392300031627085882570724654643482540325889991872869384561796474358848849990807490891524045554918074984700451652483989249105884660271650611233730141079938190362516871306737084510993802838405734817818096978924956827772809895276245312722640230914441681793671401009862384282413069490056246525799790266954038676363909348689431800389885420772924359553887775601846765056933477420833828379740204045371343603947250398778051383405407134800618806720748353120612606939228068917729716984981826478404924048140981128556683500210017785276089154668701764517983634693745469381126268457356869176168707540428271918257870193988370072671851761327755973772712894279352596572453289083270253409583840925766871672611968705251352262342233264891032014276705348105960795150002684261197173832254398128096970108313809751930231738593722004229211049419973166475253629079656088292548719800819525976699658484129244111960811468475148562590263773441663073648839148103640414922792694947333413082014442242540898809760485047787890614621110171613217320614429891740697823934892441852855252870565376988786647654110593806551859313732734036614425433515323283524854377561624100940176243978929844063032757094196513747681051270196244435023088367518676523786340806629923558640433528462856015961190968093343645087248994354279596184489677325009408958914219331053965352781887504863711499458100229131094443666699263358127835419625661943107672119052105750338908056855319305618096287333330168751409432637609275902911643340727611481449919703181171054038714515446834074282328061500525607158975853692459196578617601918997029292976386813166815329208088382161471286970113177126020679873832001039354044714367365792603264230496817559688276826740389475744437382437650801043496869100472968899781598039654503925113672453865692342324130226568580008846993367871957724689673784631217441232502360751710927156477173592062816252178047678352739454131650800325973063129773525438261789450051338518763612786307181414143252561667992004760273944428631871762865749391571382891269350165112046016482369499834550115719785743327292919558594645321390189762477508725555135276263837972658391313463702800048251013381501843171571441562997491662608332143675333560556211723599968650051447353771172618943432235312280978204244678636060104772577663117589048721080333847727809056495755778570872884795903787055824620328412462142724865924814147296983999144083535883008714312768760348980754340054150452522991292793835140184799842290746372513056278399352762853545851959751471168206449641981238708425910011842576861208200970837714921505854820851723153103217633085775487328914068300231706567985410063236783293709484991145678318461628058634719768697976891108290127779651450252079806026683360289500345641900928692368847789940875622054986913798467148468430724574650323273553292881004082066612909814409250831543847030992573486623268987252673800269307671935726871690046146298891531206571242522004728925490106751176363115131375307745690705706844379886646507780361909452647603780044216686761436117264573769834907650316181727187543417183820906861201955891297460033500079005739374815325724845657487326338103591534068514312034433660282159355201383303511442682116486928292297478919568695606875648868465365694550082591956661459770355025618125050605364430376232386382550381988437534031202956655376079843974012383084851943835017801522318052710180118231696335199203536596616259405042658183145819631160814189800095579547478118410787624835525098585425534938431995244774667538025953552377689605155527003796531373605551674811296777505976362526459528892495718252585604099317036423698483631760932297689587775546666327011118248406209498028235344707912467930277908081837167499211835876082160251061919925386331284763810777813560383176515650244416919146230799737761505853235701624988811313032606520023118552419447950099289248026413807019224836152826375515551598239798794038881581810296535760822916573937891120007938105414218064634531554316331632399564763334222057081548029426175441914707004706935185732506524045025904359301888939199358579683516819674527035691428868715783199272094280189465669003413654944692202336586643619146613148088087447820917837152521546115534145366949425157000686985580197539122960754126593778862550263241869809439501479683864435683060861723902818456550493867494496942686873353625476533263424317866033621184696543692199580834217989118753405289448346990021589072542967159281305641589561564570993175974701984692354096065122903078197551858341871428309495073774705208133211176450457503856896318313422737963024432887582267743264528600972896112207681768367103659549394068257412763922117649966008437498943365654853638390329353652523955793154324028954967648582930508220264039690826616148566558165799968387618950760095359614029184191498702831345839277461117735026710768649581367912805546560691801414450590630131478191712345139343128451113652285953567757041208849215147319254696125186740514846345426928940319864759195468034341300771895279012061481082140313221486144013228610623686876739148963545018271880287634326123433082859700942180206605223210729689268711531837818112771367184302103682839618357021296612884940808806001987511139936478933437939734898196272407112590934355743333980116890934027192421881609286076328411645012517561748419864434169016119907581718683257328457127001691256117587989056126252787728353351565755079680790264268576843921393837161985697758820060717115277536301488984086620332982177210803799943168508314685018955030507794521201896641760336349013836954765503964855727847425177365923614721881008460526154022076312512942693195614862795023264675325982477648011195617807553559345114186617714841926326515195727309688992772451998781332554326925723243891160385690464775114998256667505132617499664899598507181573837527169926551341441502622649147989874704655457349731449583717522792238809773374158081314065689702068969386389287382533645074469409322244561652161538168487401053236650274074153353266617694316675037372422732734309046237487729216120698225385241009723149527625716158352301577805636165085487005814605333353968010956809937989660685062329436806834892375404100592370213710388209768270690593609817800881603650082112359837556524704043162099310525154116977737433220301596865375908925407774980641118221813648208421270250985323123974755781240473909014302420133982698526902832475950030322496914639495998177324054174070934426502845516709283653830601336348754167783274700830750813300463715162785584566449520513441244544832539495722937651774305962357502139436226686940647864876026022898012943100321157767958877831751606172117663861835089029213566872461763972751641856822547424396083923162219929026791148481802677380546201489548588910297034533902242154656878686617073937235948421141158251611716537229292295885520159715808554898334006752567982511635758545026732223646492893164006577908613291393380203278999772613150391204544192173187415432368565790745114190795646855925803383811277192607421840030883122022054831284217954329388011506453067813586039328736338151501211960584485997535457989702786643855390171014461459051564059007566287578873732973585671699698488101475266707537324452477480053801504755208776859706961454767836754783816656053757232800106889841403005743937178631011047551811554143320036399676770104529546499337836052076516627175776072825267675917999997289666025261359331055441910824320423482157299793162907734980133032122920489572330745618185399217962198296887888585455529300754063631171205701729930133204748451288881238156597815833207014588501783246058361163361909740271645597911110321779092261530753913718857563885124532525934076773712761630509681173020896039093069697886436683264666084945374107839817888643306110714232188707281746570886634114517942214334705093378609554716472023071045405659684555680849255207192952520100919404251212877047876933272071274397409232215905835404825142423339787108639910333469205718845942287728961210335975328434603062234639982288007315786691309131258709065300739337762377637156712131107281820318689470200952691937874425928760567916607091378231343539482907775766716076557687044366882152101977536217931447405988456047060582767667342431180847079998300219396810463710092361692850099394484115714105753916324293495585846477396207165738327152284082790573374193735486463266224867596060735749203920536436990090801230946712496742699247024894784880556478913582089839599280743593177326484190300445430418724651018449386031719664091889724330463817896487512728379840146986724440828676126572701376986953118147527121990347255327453786598682882312121161350101326095874192569284981014844728920615713406106051522925771361964100072219445605386124623413715572109484820732897006880755437830618661218074355920555665106010834701784529574066531997453890505146360282355696506893165351863656129294703385682802595359143323766027938871168610507671923551050116364446981742339651089210535083541516525429795366207763520004464145842461337764643373186327858460216784272071334034026670384501039604401733548240708525423509011722177768863187286076410563378906676987919572861268665918569495244320121835593458394663874763439267641033119091517853647891022561813376965819186475370117971170579577125410370039860589254673741917161370128876576326210309759013274022188783808194690325086562067870722152825270856963785933871066996065123021074340639363740426173333426746896247841971568718917454810059231932877404732470421292476747938457662336457740006187003041423831397905872496745156300500662260440403568229812384112860728663006873573102016637041427196130602650073888167936192642995360565793234491826505913858958930413618784633161299831071490613588974020260431080121238225309136269607784493472730239436897119923469992959102279200887383441390558450703142051453290256066768025938024946865165770355794499811280233647558186030806269923406735263738855246275123039060443749131269813246784613266624342470577197319512819589365443071788809486912804524799687135725715627974879308732776920033646887337883423573791378127958563617149137585357723758216292505590243591167241376749864109571119653992894996681150634498854937680671886953126264122349686839445601967385293660990546799301287699372325924347363927083034990494413181638687503265138946609366283957677989284739820993605917138717596417631728939951126215303436034630027602055618691054318850398125347106171796862052469249759592972187248619184775134383271125969037709755822585733831101213296243961803299658631233258999676299740110920398720886616167100668128726278982201969231997737256248171431671709833311711889554616340729217917203537830479335810217491748352456332163997885350957430843760604468129803323419032765146748550935049531521585645907627195416820246702037582113262918868738703783006549336479957889904185227458865737002587285745140094446577501212477221399606362037818947026048851575453308319467310878783644338396416595155240554234513758401490873508915822746296740902382814424422719971083959210373237523777886394087414073192907430755093477302096839927848626019983011807254537692437333663807313673160007546627721298573742243690350394837585353276627257734303618525739432655563987114580733100632178543413620800958339899327628613973666625117244318270778212042336004818119884924044786020726397980823921683624816786539561965187520955220000452181092912374323211351172092340086180461710117083022448383451823398924770308520346294062542987003561200234003393209352239210228144569760783687140074325879370405152702738678782818542987761493408536674137556974556638620759986619654427984838215750359656602503360714876267323234689280351842772614177687329626641614399147247684355135419111871862623774003337272518952593060688436970919982303145965847117833645921627902292263258547669824274961229314744288966328263601959360607788859324870482080157220905305556674524515797448657819754536220849762072734380147880881948784645827826726206623630144518365080799612071443184364008786343738875175374838674924669205093389309284429197711125248143328414872293803206158531207390327904247747999648260814280224500318706168181815964104139508823486625924024254087062804297957023776882498106608484548246256820149784562976767008035748848237735149992171867120561934708641136669148230165077126807177234739822454078119535940214169332572121389095511680535760887997884336529565215044446269051496021552194328433448718956616193025638468449373264906598854333590040354812650552343105622260222756924205577660614869621543463968561623576061230437188867098831908845170620494892476425981510906278887153813225305454558659187859467589153827727227305050004736472076318454010719635834002777599039396308708708899188932809566628819922009832028364320881940985504691855389607836174921133569716020646814714505002874618639892314461154696140793320468372082457092253584465852873350032719438856343047655565095990964336443247267311935479639712207360985708856585416789783452925484095874734099888422636177491706842157889723862776707128526609260436985780393491171118676428084723230583110643804187125473718753152423278253262999616226412474070130052323229903469569522324794382033716122591056452144630219285693447241311365653412375261761325959035205082932456254438483087128352498917032999381165181217100403927319361151224543978382307724888524119117686119798045558787507814337116762286082731012212838531904194581529343030535637884871674456067638020485639548901627881564513350453153711752151090589702264613717835674790525514768078846738294759039803914134383196003622032962869612519154788111002769765958724481669762942582127234216077126218218797635878951975635220925394069831971568997783490313830065364190749820625037698841156514162557763410663300874721857356595107052598498297634104619821302881613933912036853953218416508859114037363939671177375829448453796353452782205471040060891151697514456785775120651640816164242344842308951544181687675185629904772487335658793750870290410738310380467949849099019125736563709571116258623475698777328231004445774070957531618765260898996783434499122895726951643639834825548021504520113533129845434975861073422237739423466171356923984609257191472598227789359351579898770686815979394581054440042779939751679738530129848059840165343840264294151931192434760499842272553772923525471395633429200329688445282380495270406226094275563678547347963827565040781058438357995473145552947379156926032372662974927664102091251004667044788529391994160115952390990734586529360810688654528656494126178010527759939333898623186897927217049141011628352754679127018548491716961940965416647328613760255557839839552870764452170513272777869718909293929680379024106486970162369409994343859632873251685041041556310359614922606277887263735758116637975026427777038210820931465656694684739022619209637414159737364642280242802688330438826750534934383032252282389185230027915316155831949637982135985751828152156434574273140105473961519163074059955206666619677457043088413460371889100312258513979838614902069352126618058831769184925209168974087443607171442096585698901330152246476779505201970048427809392840931518263898948351980767325091580237688213411719699997873716489201534425373719308762991884978338672593458486472425697213117063745493372877845535817066281656294701542558259091530287182542063833110179274609805753469290261653073228682336151703726697458289869956050339477275105499085719713297017181822899905343023972335902576730052473823687039166647271468604161537952019012641776246097194698838472449468062743881290262623005241265928808966203827985240422773241147869025490031881848494718720192947601018641382652628186374073874022330468411101236275792983285994542735627887468158473375446612726083933020847197943322567940904504298744184760877451361922487828486561468292089540834265161495385539550332367917757044964331707483906913941197187701579957102620049789919766719534847196985773412344532154677105694639455157436266635277021778314242451882743150451404368519567070337120276948195739213919810800009187075089001177069964792941290080624595337680685444426004782157871801750384458075867801552277820126516373245853021907850423465769141123594761766122085033727013014959410582362587017996120614191274441757700551796026705572757610109926333917843458460768892147238601937525758868449972520268304284421015241727677560257233253636520088009002990377583305288246951549194631848842249158856181134258282109853667968248476891986648678770067685716439297882449027016214074882846244401511910734351367588886538727893700619779145306558629502200734944395218997782303785524366165339026900633130586093763468315588166506220122395550818911640477761218945303380795093777277699511577581804289023219825077807323539053124150591656114146386022004156117780640627634288425086658283411263040826742828066534030902025980976020836869264264399277234115968174645893401785048883896618533100408950097685113563982049857608615546282748230993710645019150359507901514743788590348050209819078921172698397183986946160073304204743190198492099079815036627413935139036787328202774965655906832281042865064550259773382506025681380701858922660232883443644506781507077850272075448328423712260758800830973226877749975746939666053891333066442583256400492052296546784259121334127218870206111678688152671863805660949837252423049193144315393973222797130890334077354932741689882861099830082372738680476389957529799821543413130734727074182160474512013715033650203411109562145447240199029614217230706185234737978250896032955041970935506992106743195040022558542144397030876685295544057685649534780932063699403846652416871940371664134859885574868317562355431203191131080721566250168986856414406127593151600596947080689860807346979404445346757033729277673166317654284019196623179829282296241632441420931156893986409473598595778204695945219768588250495643115592162994741555893769889592374899255414185365560119409495169384539231811662187411396469907289905171205898148667889527606752878611883841708191767265164236718401070257110311794560471327222608113933622110284431261442459748812551321892051733817486301051539410273346210292543542532785376527202839633044343880622123978055579329406380746679663201221787416048794007276930146726844906946079001206329985839661372668729356674321614471281252771629029300769426215852895103187902823814394653099671996210618820557595355321877252989103418259388512604766229880563798449420212190685241898445735501967656127649622238206668520612566624696349149584584665070057557737864244091850095731743030278515679692578734270091910954790712349855689964900256889727682488213041460299085836959348598173039042368445193130255687143800425676294987280777113030379992167739897661252185191685780991189268644235442796847422054844864748622921493512899816784904657393158953457182299992048419886300353667533237118803835785750122034434682286141824759814112348617811833412260229947265321657085727261724088056976292118897141873433184307259274954705138849782051903517770023427100022075636076716240083768143298851727251331752871130831441705750804237423758869384504061786605254087093047762537948872367393692101879402948958703841189530911132466475795574354481513412529347932755710818623780253313419208546257281892408636874741606697279558524820413879911107946005445511153049818644457609394604659907495938646373598676939165782600374093688604849852401524685642367382739858994621883412138032561571231708027234305522920093882743694492867435193563815302284361593170939365056914165087883545707694800649139768321836750811317896013835764406678423835061965798391825601995589102810852834104230698408945844514116935741232218234688585751969689901477057149758041514329254858147276865067608114536876531208015502263825466162892870467603906065024183751809048821944958587469544298627871139461073047604874488973311910449580341907752222708443017594450300979628250208878537726179350590903885586499484862820079930406970506870179426897941083190619841141184049939268817135163974615238049999281672390075928940308776782576337078475900520798104981486634627694628075457639156987965497368383593498425096274477704689020057118609788653383871844253686255977736647891739057475601821742371527173271717386044931196233653326151247413001745119697841213194582499854110545781704496005638896651490010047812820421653896709067202927613852100028517970727371487291215397509944074998183204354710011074836073561126599806854478069657134227434532527157709797606694715586699320476709350105896648512400882564002248831144654961536328178428439242146161164299854989549012948747218128989922014030034319632353385931388378238305815963962900296971034677551583574003800545299646695999841243182647752758104463253577866177103516816719427179767294285829576327178253423144256232755993687365789205210942074020635591612366777909535023176562677099540262428867912933868953074976367136543990817536944164577642125160523655345755501976068202949113200329696871260390625140566468794928941127297712911007807724645937886364633418962455076131265642404437162205561440196852440258325242443226104365925914612004946160860338276784954265210984179785663074058168944225282828009347194200911637753884559923295098561047957497035978837757173364445912195626020731986191947564346646206029710090310114018442940386212369744374525392278443010826191497365378481409301476714331429680404957738278974143135378724391731615583996820928407486513597028886476700797968752556501406679100194524990393322297861984452605242942213752484873938905992199728586393948343545074469279027143849939526254081736835524446600869198855577823274680508505314916520058435620912746858727049193254633785924056574181704389018318643946864931872665436027965222262640069235112869757712723431936337028989137579804874734448287252436779095546949162728168990111836901527224411815366847803601300723385691318611390190657993693775156168443915639819786995704301545716164116557771257980604779250942441050987974828830600569807885327152261748204927823878450534913647426825063143483954530308577562473473181855019855781942500160791111117010192585445953137665105508065318739991287017166321144685459222464077551927495603639243921221234980856105530577882000792731481995274194472167813296527976465550464683443274053175611650729526093073614597289273275392434552185466665631846850873413617792210432594428752739540302456122602875491615771608106409001217317967408741158514635282356364462522017720084774921134408181740584457147927841811994038172491835500772013671196783270539702637603080685774248890273406322329672349062989445470199392535851222128643702169334564452020492680999517518619058291337167113669171296907825199254849310343634570278246061892813828794090469203286727858053633652200898553174714750304649859121620972141660421373038224323992353696665431222144511591847754146423694230949702661722432828718635096989717007330193210159261132525573409759913845650390554607836447756958897040923757030203976521993383968323369681409236663594469532938435097584165593327539859236020626020342620189238326889712644896906062498880472531415913782009993226949373687544299847391191168826784030224657841726617358845552664489657745102276266022726705256077695297834546643136457696818418670430687016330004161266783552286880746920942704056318843470770578826424108722207954563605858102054124797104745298537955375710206060924675319985194477862645862775849916042983837707209161632836077809904570991728992954411576186619075214004428380406167094243792425091513630397112945941458224670496399833389415505404469259377590775784198621956531210951425961744526149715865440787286676993219862868531742605179642695801999646415505691454464273191609899688585647483991071923281743024110370201237636638075506792389435849417328723599201398400888999015319801537486525960825445485818398210789864661560347113631486395316774588853072140210957802039309095168039863437242823792384463531791979957560113491138865011002944578899369381749366067407895406003603028906756996229408751422836101347996511514328224144063874548828838255235739628830226972700214969078922812559184116255466829166692543468874847212747741492916696246607145223086156987968626575358731153005665362557860651918615691734135245167486906949032127039238768629209616242661847809491243301192817472944916702619881446143810728060789099328605502246162008941847477337817244922418197333032401221290516000229644114867090785013640465456671817738716296332093102324327647989349471665103681560534325049944823975372400518290178959108178121229417597768070840218842628342678054145479345483692986896556592564623502360996968633713791064299473795543365517067085241167063292444480850816636332794328560895381357879081016835057130583577548695837756809191673894920888014549250849526772859891265063792087213920788454425385606541893775417001400596066878671092357692844111120628434488630445601874922025241238535480655765476087036784752514599244448422169944172161303975797672998536878667540461785346631135694036772698852250953984152056033547115047606825804907951283565521905351219276262891888433802319227061036794716926203276876936441811815728486933853573927744065353249555681463856728149518520767192750766102004254813647128137501164593129395004121264837541424180242801670618694466618230535917991264533176521956934109674932397115243776807438067518856770431646285712552562714683306725202911878891285347681569274708705710081697922453812453389335193474529079819808459026465346842035818686339752138331381886404762585223692966107644619804879476454224988879697884376031038768163044705776327991484967907445344033135720679428476831497487971915620500329998161612740043982851402539994189609860402170600720576449112455378080746301605221737777916152167149324923174101876896735092313946597723667216059720472504019440233612509460851567838832445443060638679137654451543707571041524314781575989344975829067000123032131095631403556368044850447351523104219048815948344394304307458058145553754686200561068408586953838114233198127266442678760246794317014799985239022227789288404832543166307658983509217445388917886411332205656174844491087548611344466126218173096674854403854343283646277775177409596693400697930397049769308942322658138198154264953727275958807620739960601106003477751601980704581425663653741476274332530665619986024822051228303176278043572433339417091548189398203486657712428453737740366017433949571500516656791234729610679254915966596256472203830060502499369953041506811794606686884365527590428702952058580889597686423953538462251699440382725108894743674573074327319503285722605348894320552995059099177036806558336796991446500855176847462084480667839954856171785768495422267657555412819249033855478045008803192305761505541254396278130349060348608918435946327509040059750033623840385081904024514942001102641250942108018612597714133924647951139726138635587881792971628656841333343421554857626229802945772401081118242521708990481564852973121488470718480447652167215237263288123120048907074797303966332837629831783824149809756664525475262977486690823222383959239206968991602179223470298658300157992625734598313290011213369711906837058301011186150418620775651726290176248013660228570947399795121864297844529258229650364664096175227527794618932660319391221167310998476122697089943913708989701542158070365872031995680404137293174409105826716273422555993066061230129673684113583413428413231096877708473069926145819236393817499354443945516322274890270192971968731211768574804160060621888123575695006973639073582004463994038797730415824633647207098008096679382489262258977043725816769672978759812215591089259366550807431027949624912686430808682021838187505039048258174117720913573882425950492522781870756723452480726418116762326968399935410004543065479876797592075259546817201894098969346796836124337633149889670240502449355069849608996460967096805382554509396923255095240360200637692678863528023537915502095310844116353353250708855513078351724262306640597281592313582631917839809060472616634511735043565133738703889298567348745621260201601805584790300928777749723005715952319457789188069016068932402201138214638801560608994129662407480887470859952696115264092802346708977643380569358545277346944101771410548986229932431672057157506449007001763209265350645691747780939930684928780434083553193629440152640258487071851841448657866817661210766500057010483963231344956983174022713615275498525951811051057018848542819209138779348216548528943163553685976208121402566871187245270647758193576406577395109336469431536114934056281631590818068131018909695391247510164157201452827439501263274656357837577500793522566545178201768245157049706358576966555239033666007060559731119023739641391892534262982116986331737279705816203987371399207982575660543748092978872426905022667692032462514768754054085853715317669885009110014904922259038347294904664457640480879462354725032300779469832514617913637488294743576719975583576418946548087383534599046803446870600536962585682556568177289954802139137886109988600946244426029822034698852300984682564787517392040223468301201283458006246498150670902474590624766229455515502264049890840498484757951586995958133432367943286012928551896801053678135921616649725317560500562835895146113477824384237442667545132083008054464359447158708821247327252797020189019944388849842434392575975710217663084499332180200808413359679929756674117254206251772784811737134721535954858293614533385633321501690669033955492075414008916491604809839361358168929711481428006205759231990035777513122172645249257023349218447148078455881102366888432769956776985768756207481279948413173394074547330463135947161650302509481091350767618874876517233532752930523955396434527366747359136222346702991034213741736241495433594557539963624079617497053505120752446707231237022637574467548105061634349551649344695355683491440385690231649743781571401997586882149643149665954121514358116593185498810343318869709701923309841575355601605688456552914687605127454082792969140678769215872424729315670065156979612318559061829806311079831276456007362964833239408816628736429414826145599616653279924684940378352692008194167841439260452526447240977519744550031982756796827216834928655607394522289577122023142972743269824808323886063988889456790941491956391327016830117113669633678310740887351139447352868722471854617826173055423891072373556299310091113793101327488360884704223276610924316474497822107785303821874838488871851898698079672327379815454686990930517728244072071957371118383059187413985911032831450081245090899405381649300430258326024322379358512863304641591340458377600487230165458861511576024378051636887824511061032595554775289502165114028466881783753513308060950060965040378086822529534609161701533706068161570212870013404565156024165618935512500950763929299617634235164023585040536195221804041507247335707110917677524957907740698066862059892641187227790719872788440273652371185800246340247772784199172420291461822496302533042759346801728760390164080650580633219199031234906754173076407746927968942508203981321400868915954867556765015072791053874563765576910452570497742745324125065882638421978537913206043583170024979114576675292477886008081866759644435502904943945245611642242668170639883947393344761063567976805595420691802925395185002190976498395317388517846441005839477548631992020119783138508721629146971116619892359261837080707153381457689074782912275106112035062890834276807942776288224650426746987423680791811236585751670860171738158414460045675315909818174210396198152262536652303146180536471165054882065058540006104234335126233061405608665962245420805024849547101039988808108116127874102787402976950311592209275911304853141363832883563038068906219100182039904467613081481556200160077149563431320851019767194016184056240193351071227427849764687065145789774775747457695917909281011020814975198184396257895799751037984600493182269607524901611789709834594899166666238523132621455139540017573468756544078614375441989596055596926504962307490848077638405092013694347120386272134309316465207439964096193776145558958601812672847223984591213379108079451175585590228356054167727769561190467789594628795677743087140238632560484599418442093224455539986253503646552228748705676962239288618673120228444771305445149879179823687736781687208804226577271872172740932588688761596420436335845418082933154459897260539143064359671263506969289025041792923952606566020065232920397868506429059936144748819289778956458771304931596361800047146539805812718093490541535946690778911821135887329714281302701793710316906479334722070127262046206245942141350070717462733985941637366498425802855060878617840124056772388905588069163521646068953726868544646604227956939972155377105172665451493101530838702186409865505154216358607565243751367899895157968041823474084121878041296978447463426696642305758871570199403098053038957991247656071832302531414531717816398977488481017431303886175998265956753261099363120234214106005980295198337245572985642550267018851899247056101948745253529273259598385731405475026497387636411922537045949158155956529593418877492330663984970151267095873110267093990244199322638309825314479990372929317434287304489203043299555722913610173751857565128365383911780932841819136271644884628081780772820151180322844853641764337925172418908677974245388114631770292505637739251318834289997218486233242815494104935412552411159327397195131728006362189994614048076055810787702602008975549720813107534539806446057991578557488061888114451502312271788652197226195518917472567017692582857596503837387952618349631555887842492928168480325002675623649932408778925513134644994105030470162558306142968048330747005181611885087073307145356080163505486181461865706525921187478268642856288658346042014875441743694351056503239466045913026887249036863807563630553972615660323942180580846095235582274592634735287855102166164897942494095820805625818653749713735620932240546032494462415249784943569632135856829153375364786012657901464794207206613342996440720308556872775090452629911984583300188423901922645045072283493960635206478812622032773554418912463430564947753484357338354221796679931699258132271806375542346144129804769576902077460795794856373066226734485060339365554561198155031016331349039053744765868477034332796753603142479912050058692393478187681355484226742651831623766441709837640844998046744415704096486947621950029082702914908590731786504548723084669923673928584189909114318177868143164242097360086403592644709774118195547806708222621421293438391261525838810836840191587167283673299994197979600758458195948720947483259838995895048321239475155916675469205135176743383550591665181901697247823070676773057253252232427432905884352341220220778595484496399858956064267531040682522729315629386043513527771702680540479567244190289944765379791025849139170936734701031667089109440365227150915099363503301527633245493493436700830411155051004323631040867669312308047305930608575281379637479821996874161769606405439555342559340732354670208035737763260407920163249031823832419692155699673112909222973205062389160260187459310261009188348685222617316637826095772177094796100466179023686324100238280028362515984850191225979663150090815150903669409851821949507448450298815829473476151124375254881278488692288000927346853657693323706196047265386404966021917935796843540648546376359078241643661123638728667286403258628523019887433044629739480785423946599140562445831686220704850394386802249471057690010955147463640591368298883561884701220218603936214618884443832321457128548280030896531997457958763087438146188885323839685946677712484749388882036764962062425652999926214049062831340367009767182624576489166744652021986340233292445936493987986400037601965917757342432101972733403577385335624320665329303969990759186021862268716035234612588583492206307512285875517517152031472811566235112434272199296652243670509001549797161800388943164938550462894438986024432861150901848251747877277219215577795693165958417746140643190589614559473495855293933590811253391708870679355949599848176975424718780983324890208010940187843627302661518940362511007137138503668682682366086925114793875411769796868820594840410250894327836698267062312174401576971204967006678729209659267976471079518112695983178764113085330518375288955849229355406645944022025989498843199836807680904416027899187170905116448351726268327224998420999740877288238577492115582502821390927327586983640438113413147797275330255493411166157116959571423649456922604619900658852815365454881384723163014338497687506043739785421194635703486369290307210914815234252428831282761706763238413212218749568364897161068654780360889978136667808770638680718876130770409293818423761182122020115344566337550060722642849600299708039109433323266313783337955306207922248580825044408276143240781625982884856999533940993434827085666088776042077715743724851607476305205348129790516622931281151629976436159743953124844104061525441579890754378113165645745799832658069843964055668732672210902810877582598424447178816722709945774496193765237910454590493711102166653755346600511803642398553732634221744381005411913254808310065986103397306563866672191798252620546668333226182742606008984469042753814594087309169209249105936709244104936192000150992654367128693666589162057059043213758806144402687558994704868355402702944446285030124452591426112904270691949322798521154021214574883131048501279531703031023180248313898159094387782053740850818765535982050780150937841203691997561688842098625532173758884384894503023143818076584861631844050166076399666236930406659503847575432051592760631489712220326238778879219942211631549382636862107266489612137577213952857921891109740642492278723520740184089908824897458817458872341911914428061258106052560019637656112331250958425063424711378166414282438931190540122265772607393477829720899103712105373433452476233781227988502624013386843507910089951160506832599655771129639757996735038153546497306362600642150711690792794416865475867569449484620948229886512802461805571912943693201527448452311231169730816130495396463536847402084283414122708288229970527135146795516551528579570873846938012532440085109590744312207451999911428646314394625119829837239782463210497034309663224289657714992464867294871605708356243117168310435727778960089271658759016767817298285335875748028285528126664008040194072009302869722597787400823480676405520444809501050414140091490185836685783944581516540572440960986145036365979154955307428090315061588138641971541565104788338132589584201933622631559712619975231918795269371880109046710080159849453579037739915207763840710479420709135134115652388268084525080755964860668441143194382045766653126072724656696143308011988958282252143207971121093903980011424326048325466370536696853141627412886218198762912404498865497357655912852541396141960392463619199673559178031174607458022153515397159140808515173181576790480981837536683751633325656439100813397131195835498806825403496877378659934451576992822121010620787479369840470988453613749449120728673217538637315067157575546445344412099541778028802559752266777060299674015089537087040173170195071508593877789585419307904019027504214228164631623392987640890806536438130991208552205533712568748425144540897751320881719579307674697355695442098931440192937016347928484984714978223743054368165140271532518856092187092685009175828005656578864163876506431303354903846021465945914939716982601668303262169804733429038947738670862127336662879899173732950563056029012926649945733270163672945612751886232857008042187394088451363239411968539694925725886174193910824326212023007380855674713084670724522827442613914135300111777282440249241317434357085187549784933262073477152965884024977912969859099259359188246997040156152043970498648533624169342236029477561535352637111212098576122463838938917115677314161958379357843366489885504925771626982711029285228279592602296682411104209131828372994659957454749700309390071540046132525451221075369073733481068236053015837727706710270838079410961109490390089567012641055966286954230569804352953632838299592558994821914531845380023895193298021982365284921521892092607116075772839823968243035284389816696220691701663877226804222098736088369220296281011024087808138805346562127348755755349764251000211309469915907525253251331482114857772127666734524382321918996217829549643544932658681128594366468034571927395632605033736914088044038248009093881839781065740946338027649072323533362101893331822993637372910992485929296037335525795466736733922726516905824745340990764882769631385974644201448893893440294588560021122176905431269280759366576184766270571551637294656908156561890401084811391888387162076318093166615622957873513314112775576670785335359288787573840256323341914656980192986465512897816231590310991866393248601901021967348960061578492688842917139042569082766215779224204852211680399568479624108823577100783558540929727890755618635449800830300088519957660242979191764341253018062774372001615533740950164264539627460930855008217178470103299923228081640333685773465131185008039250438674114982792340865597475345826744296620731550641055409304916097683899917180636261536574307791758338747327151778425290359966939086616744502407111913963562685904157547337662611768711933553223941450584276029997028325782909262856581254880895551938713073328408301326653607715572153411994041389709757931462858222129747264441141586494463607116516662149966261060464035866640260316931510810308641632597408978376928739427966929362932443802167287801694494061818813766457533859416372818251421385152008941061545290982970172311266714618384048217864924510836508088917009550869195990726865956883501720966036604374404579625535022341445810781051946711313062187401104679257491125975765555685699773337017698801556270544083362407658228875056262936872356194597356286886884160378388018337635132964323882917015454074529366055465070374722280268792563083721997820035719239865571785736729157945842102655458384289752699815980019979005049769899160658855039934667197089707385964380572356955163166628487933042209542444151166626476158019248777140363765014286857370909345018302405636924906975158300193434990190555706054857798589221276845849013646730605728950387215061890857279367451511683560958719198600618471377827248367223644319549559513624421508760495985970820609581644232282500036926005311859509188089827132003210593713364196175130626683287319237457102940799086358885193334462324362758847725973865542468845526569886421174150063706170931719700609024099879648334297917290119707702787143576222236897521476417167467267687301204044940117351917231743417121824433219335777851628027801079231571341962130835808926478803545771971866170813052652294732730205208689437490671149092618274135885958865946309375648938475488908874976365212079914974210272602038792242760695126313993878443204264210703525170606242808719060322152707640476099744293044148411851063951055859175837612149656455598078763487000802388525338389385072216560840564909112400862413236501952816624569068745365150569115935988508317459740059653628958625696890674134166076856462922413032459403552951566001869311845509063779722119529456915794862311379428178903753736089721103405745145404278516230821400911008751698162659028630511372775412678008603508039458415826404417721897299778593730657930905199238162362928058677046549600176469603203760304429300065718295110141632387336219742924062750275941386620373560416284166817593951815040760218637270360732832738719532804495622488572131045448986586453338467860256961976208457903857877245038585554573340660720538748802874936744634444280668928400705423023620968068892946134209882346333926791955244292134938093940183117309936617469333564791671818095007935301085663275619432061360295150657268201895151065907290369496463959092788798235492240398494265505934731409597773466043663968437066639845062675740245543063320664615188315347009536611818452550828854528423333519676264490176735913495236626253206945200324894218157482843027775326375009506884986463803545504415784751611146666586644773971604092676650532595983601364921306882862818444110680128994960664060343565773811116378861842143852935604590251055243097959067751261643422504658148371195378223087987908906562679751683377824403558957433982485347989154158465313273843418606786419433585080537049763403581760948738109263200437944323921940123272935703173067881355364654488271601351629249994531525905439590647337873351659162437292417477420566119120241763152830805338461977628181868649849635033941442812415913314981316497345550653833770241276672895667639338523730431384536317161065421510227233333893512263838897941955013571465069820063595958085822800819327878826024983585407510942567942794995759010114167464498121332974430531069391143803057071608205086361110647228466146554662668698545125303916470530837974911868244222062269873852624099186328025279253297285184893359526069040893650165542830626821728871213021680465361520069211145084130741144896069738845014799000507369621101336760295094876878380573506341408651271637746009764922185053672772421738807886200369412518104463161953514189522641006439065718706468356831368715778128131345897479787609094227016886861613747810100327412120451831609584214713381131188467665826062544391309389414180134663067769784940070246748522916252225052887898176856376453237045858424433552190533528099533926326523555688139425596508926639147002335654821025243681214251401274250118146169387428734593761997940147564830291895058116966135594053394887630345802282168284931538239897710116740867985817207290815488789367189320772740776906364757122611966667929006717598425384571265684531396776331363075075475171164666076004449581110588672127971545060312517524242262131294674408405434311412950622375607513981758122781060598912506346038502928313396060952022804983947802632949286059377007485678753945674736839827786786382555963283981065311206304318224417989224691772854135484705566610172264808152494278778664039493686788756176599315676356528132849728682027086280526117933327427134953901503893691822138536665585737538146775928312890058581500034091926728113960453542385790757290460875825451267493829632749030463620652921000334007864419538255214585167162514248570224570666920819738910461387409905855648645128326327996901101489263941132074498656546136818994222018788414415963035193239485292249569421835408528397266195481032089087764881926574827745863185262614007845133583273455733286438973593006378433345802909410355575690422210696012109519721891237840376706061049397932378325606362241454041287670847740437690046011747479354970222113535232737210582166464365189474444199526486028828450801683604252262559547792437806307979190216289396090245429450785977668216077055357647717030913275195632742837138087521081459737650979929908168899121353874503510561607631515587072665616478073942952132207768095209942521653193558488472930531028416585904587025181035598884606055745752722231054085876134226463938771571185762658338426130927787135635712981177895219561006690727466641658194540689779923097091792558086659140952512130032455599916272240027263978633458850811257422628109970272889302794717790257183666373051143982064606384220358144200910050948014401951053587531721594489316944751046603420215461564160113953700779148002915703411001859981173201941029386490552850488239204824580606381914650978541000292227905864721463514824232214945502246024001118240717549851279262302480873435462443088752841150239030588835676511369305365841560126184751745635681236764793018074787023644809704846792466441022267622217189806790852315193339656678073417609811567204591774570059852579621081596982937982351758120514822383632995345944127477337310208404172998409046432949036765880622442295045042910037370263969545659981087186499158716684188127968930108968012511568419397012023459082389656228482633923108042665140678143190359278637775107263770239361145208647881332915794597401651309661845312006002492419804306762702994308913124907224948371540108414128635222490112455442113794094264325342942288416718019188034342832619515565685190626193794071753707945497274180524731761980153962042230869486104633813188604413758684936857928895010864258209471814380056130623989161132694100247731118148146921987504977404123634087889089138587732936532657002308813787118093151144228129413105024004936162187808693285556217953822030089349487740099640017468255935380577904150835142704180598984412588617317667328207767293550882324641198742994430451236989525293476283018984788060777405595668425450691390606945282640033984501604478478990335754280735131971878549461797001813176728100462160597222245635804670769619554934571011112846991964751995647701650416456872779635884932850634337279745754661045966133109792306136055823193051195594167738773394209347411379685670016342552186980548987603549626352274744048895537002984452244504125733373997571171932236512785413756446697642348168016004488234667558807462866749764168665500314052350651234200270477464820118644446817012781590333080808445670702222063146109939909609373783404090535725067325751248039152652285721900683639678119173482437639200176251807836041884252024087620827108988974597169016114705130660758408779605843799787468210493343732391132322421502128311984093898147993261017620488718999674287650353108421421594909787971205896581575098180668502437848627081018645975050104896904256714009148587701410456836800513005090230304425500010034187504886749820305017472313305589562740895992875861031235526895320009142673651723512434278098379332422803311771281255833583341691161200288308855975665668537681324590737628144219158183246466040340632336770820937107640967164468635525995975313206261961455880660307824199818514607744815835876489150009408229042340630322967133191232401668623486140240099389238224838644623465345218196283227657823150643720015780016338297370841782002273118535165043339539183127376475540060822655802989187814796035839494645354263586539273277303129084633186482555872385431952749628069109614248973311935853635597600551959682653891345564152286958090661751733666999189670806274089420077094134133823163198351901663932354661325379679835669422646279772291002352518832241057626691089760831941033578494694215231243134172523185443734168041365290326183798428709017707828867112139058082104082455189047019696678651101332425657146780570786891530340220672525924305135140681283224418183582480293981710211966591674022570109471202193907380731567147746490141947884754003884768019833826005102866572270619117517969567803222699377189205559433864117186296908195932643291256342098059152085785038257066268497641861533407308510781725411670688440660600019330413768933046055422360925665944042387176390747060366241092789029779403315426866562474898588500778262818714099059742272376390314041502266540501668334785569221293244773077301076737246869270865437433558592157286207974535952918067256118090278211620852533968505278633070079188790074242951210517771197177384620459295410497132878196740302711504695707432171229541494791417153838392983547160721703967333839741787295350601527851731886858096266040678390957409837500501145120085821372726264454244777197709868411152593171829231142714828982885299103454539943366666156625835624092957017097492991287959191512009217567960201413671068785704803512141336803016075098551249605592717573405755945255617392234177227289726563455815982103530689019788402036200250091698510055748090216466856337633489271215174421586866251690493150133828405787570397553939641325003410592298974364825963747352643883998091425037585074381951764221091167169049232605682106484969416952472813240994005351325238193180977001128555318432153735957132048781954691782411132243898018269147548864886529672809452962751168126394458851687322966409268139489266410841312520215249730488825698785804364714906651026296788934365268135214357765131953081395295380864506875208378307537184650141846277051417547842661370546585965333442062391699348493380343065982677550514961821574429543218060094139159043836209127417366981175934977610018085712461637783618984284668273611487387796196176768587862724655107792945625633549705594274630324819971402345348551394603157916128024372057247951741702545997429022984445545215086869905852736225242894851260183142512046482840396130248437905438747984334147967915567895507504351530656896464453066406784102423295926951604174158337872092123021124374130843073626160618076511272168272899102360048144908491189154770930801272614423820115919979302078667159285377182445152749096792860677348079483746504782936505741562136260540575442428277797165463017494180795289560540946521456566182972335784462526194556657045437459713003010300605553231047999421764070916801084204465577249899447868125567022688990778613599313327443320513027164212570611258700092197729881650933653006500175204038585493700433740777580580938961610668908844217930513767466843624007636523314776110148426612005671308782805370702254325198267302800121752515832310667876135706879669690970332786003181675692572589899184896949015003266610227172170969484133518228824993959245097396938967158314998342655138315672417228689768476241436041148472332136876012127144576670906222700637285912268061926941164036900026642682685307772407595048974395329692084928062152763772695292324749406413932208345258252715303848749085839795421829434535263763963546711999076897748391889470355306169509894977162780427391571759404555394923095472347900639793205421085531986726631448609080161069995598006684297751904601479377464851752324562897115094748491198656555275137859676459477757237933681930364569897914765524469447564674701392044514884401196446291753444341132119778379208018963734688605280842574521422735714186482054878760277438410626629031954890874109917889024939634543851420731755917500431431922105449070074665326032476377595284106988169133456319926400804825230407614787833921806011897880288870125220300157511871623450015201822171852472415059779013032084854041904425042179334181869711506953478140151885840099254098688367574757162195223757380173781923110224056320192143470409086096042333037948166661217039894135294012480626254134455564804971566630172230248936143617925020817441975750230681306003971987684588663460119018877200716659217190068229518870687240511544644730268546526847066542196322406781730063633654557954996341331042076442226618596179947893087230453127908594631639987573303142085666836535127885015775870858968393258268804275448315500200181067564873116189114686368546415111003781943761575098977528173337757165827410954862166809920769925917385385856233611296879049489615564991797645870963452118871413339218747343837836532784746102919387003053730455129340897086730905430201780578925561646375774967908962380254539858475639420771529594609465991354457053705006641636467777418933368257808413564278569471161015677274511850555483285943703018351986509492421734914656018777921496754610216228051091340685896389793452543502101891231801175055836412444494690278894776890576995328685826387810555352566193804901621958611679688986150217079465416634744906064095102248274116914969107407975384624748419247127212494916151098958598329077571653470561690830992927396271493370926049489243842735925397263568571660652688322872926333358307180818693154951098621526086506619607105616370136235055828339625262740475233321797821956287656869918515955879036543456307058594681340595985791429815107072313823454098023821353648717229981640440201127054828015388414075360018914119963479075162614829374058894981614101204281710999398420359017115508886385967033829545275401076223814256071369069919275450390646219742793133661677510320280855846859507108852703229754138046393419261014097616474846426693765585830009344247454571421497212018551163150553445093816266192035441453978539096836470092403221286610099793311493311257685241343567331587427478574973980514034984393347778087092208620872054675104876522989539084080229133254623791444883976258348838767693974750313537202677999165195064298642656091107020524888235422459726807837270602220495064221090535818297160131290523355564955957964561017289374909843811612384303876645025273946458114540184180018839115017998445585272500893168428368048049224043893226042175837887531242970088351101714514887306798583964866859890989278211670044517780379151758358552739761928015382739569720207559611486215301270734091412589164429226109537839042844926365325762907962510160158822905837061738358861162992026515376135865575011919230269574487249528917950345281778596148790891528809588097964468786486444515746088446384447363150732274834087765707223940321623152875086157139713072369335004600264837118574717867155081251454928979799634037786433904504943998206061415585554988235256608828693557054145812730422487999392913294716860351203467191040981387035070982084725067743465537516013711454896028121587504483282587210516292767843400759227081858821369173498554471237117478636829312742362424760265836162136817337439754615554573039806215104332242862160891457168958468839784279976080529936621171316057125752600239290527611871609052933757895319258515867332085954468405974285836044354140098394500370221254336886415311877499346058024406672845063728985106792945242077742520599208126835225969405062821906494764430056766708794392773801590165277574594990408069076670168470376068883014081727438367976981797398159925218251155345080948391232855615355384563394927049709607617409706067350635042264246141896246097328935988037843390613269988111895070615146445944070938380246813276823677499225889059489297690447611551916204968695217071963062975840215057978861629423919386175340380307818621834604537980254850761416455858545890525797576233955166284677488891235520995488454154880149125062433263687247993923222301639813082606423229758635520112662109363169210622430977884763550992576871921467196965832315976908861079392043914525545370372172683238692349962618634131673144578289162853589871162613408067179602402380303695453820843176573907415558484051843612667593048384677998364570155245442518809342359503299273307208445178289740521653242164404119943088702458151973740252865664404948618488866171060357089387078000948513605360417287597927690445950377375689601398083856927567645710384093876194831674526894786384841174758517880406230122692559039209969982696679349547755624688936254963706532937564046826843485597138143406918251065568984209638531850901145315954518099354572637700068273584765051673371365709552551940133134795223374198838069575063623164889984505428553980014271253917683748472508827413844731794682696279540220167376991570598254848540221024504141688766712191273216834690445192973398099585285755479921255567767589217649960064103929837767579170022824836877623219619085266149953521858018162888503028970787986032674775811888301687957022026433195009092494858636950295647009039726464940437398437169965665199381059543898555461739665798167269344532813374545125776346684611137475178889457911852851021624493231362452743504776797028869825263601351983292716436334308736507371914601750881091578339578255429171747760037358601523453745641240620099608850234084022060925745968059540929378787656996380374168059453046763331287470574151339613370154572238644606882379730786810653248816300987147085760641144395815406970096603365126450539112818317444429105031055667494721169882937424432866126839857730979008256472853592251806010168544842134930060744230515718534728756444397041803491792940658014187155273131037261503855593565841375771054869721556791484916898600876694371456985864184061199067972566016494211132827829485961353175082944045314930125942999034195857545473708174379614921147988082669152690763100115927762538699921039391295738398541764828349340796298878802433982568002344307141776619890422295403659291272450566534957680986614807695472260255811681952712385973735364159907493882503012587648432103957089969282260450105144418535161687612563952797299283648016506053772301638807721791624225353050115987554850353040571430646034043396140473260172672469995818027381215195972485522426013260284464473197275788017960730782123616561674319600544150363407769008664199239820161334535727213907797848061797500708078034289713228858541974137631210958055886638933504806517392349840336689873052653622625020474465065584600827540165869956634844191894907390081107441971041814189759986880787656048382300306472013296563318431712820323104578465657837626737823212325237172106735188061389444609005762360423549456199170952372275141569951341406370571553730263777312102509008257247495425414151239301375080813638733949558993048768399895484503357595019502568796341830606821745499462603314708447604926392703936784908156917084148189899371616190274301776658823736341766542299278499329252998136977148990515293866983391644035262522595938798016977675991843861716227828104346119156882351885191285115730676294019539932776071674926414167690482062338582346765249599065777653348146935999275743688688571716888316429893393499212021508556923346939044847609394157221240491562867019909279541976146413299286391893683266403839386563155336635343185661050183058814478816952002935015305350514477479871298803128143162528858551322580400292063866966533131777278898030770447305853831081472663989860175368424854662200323096806504512005139354635715488655160968191070946216826046747518203553155546066108411811599465541663182395972429953910758582595049951449964975380647779689086525613064994729480450671106623765309049261516194145090901873070671243960548586667526787820718678660088027889168556876324254181865521954146798272727109350310441444700235772476384333246820641359775268227745113617890213509759323899700031589423948294523911434335497446810436356206890716329354025831154306270632021181499219889152223977229399896920487685801280163391439369631838809416406229352084713448351981632267250959897141539090971100819677800178688135887231405388439402103455332387182996708145595563654165883403046175929041743687739625226574209426865852596637503918665727126238522246759316164498543487308971364450579768566032201408506611185971286930386136024694251593511958077185488404682514234165622592857222862326667371449109814014540273273820042215138021472633001956236640875225994467250998627674898218540561087821762171514436239755809018484189107451622896110553459415865759875405890874949347196683690308813740061997887955842877982587137402635749488860689175233653595319475978022850318666618051851774566413855716136502954348604981172331573849907446775500125331593257229269829289855830042351894511792698483954003818850634461318037545421282618306466179398146828140586603297258332539031058359894869256868189406664347343652927850794928733041642620225032397514320735350640073368632994332444460100405637899275644297806253699854366528215842105277380651559706312554661554293086271785451496560803291055555804647278014839608201098166213857715294100220879159471102466045935358021663752016328091555113479867069826948686719289585262443970933379985912266484183946107476592054888242008949888823325816056420067693649986001494501775114288429455365092783262179842053802892141524732031753533912894152901595713992825275531284425585050164022760457600484900975271273054204790167288972443415156913935271459207911275769437436676280231531345079835935755211798974551738487889289442802869472369769273929950040321674908618802472465603007942876882113039873956099497817636989901168026942792234351568176608915814417551269792351221248181538651608312674980638005715194534983353469536048888595460411300308042228388556183653243244387845973610502388431492150594794655237391184700864370649016346806920934992031756712354402945312196858549741281784362806364334444716775339489471243924161552152580044466804459696510865181469451782687680028615930133967625284790042489537905741933105510718665543973299051563232546301005749860393378913127351430249603193200657614930889252632988011393097650956891497554838343467383621049594026551926103050565264561769249156106401697133204472363873713584934427556578647949003747128885763357693509112046073340883382654178486606239432783570803646588125455176367753548980950430570790984632922305660935027342900495102643943672459167740303978165235141616937833322995065946285192221828049186481919315757875425536558493734190251858531225329519458829495954350958123319241195660489443971920356863242043245222023221851087550800010599398207455235548297830253480843105749145428723058289192788902262025247072432743829384128218081123397607387870992408151886103438533166511813407165002977206633367927691054894971685404073308734733510791833165518524589202162420076115105759324722121688107868752316049847139892530406649880807087710168528084536274074046037473481138373882310819031868580662266607301109611280252723589121752753298043907226079165883845570337809535201545877212376850078100289569352187423577960012247996918854011439492833528441347296397536155916954651595621804574211584032586103015994218205693335106442915610033918886216028150605772490188942901459351169513280091306789188199081350344981046642636968439731803674926644639039717099228617204035051297208896341470330088428796398243676748832946819574171510550079334196889338951230182560235769123934025135060960179313700173891259236125179264215837203125059883640379575421289070588921116763619424107700253743418440635949127522036145508681938873609919234832657794041828407719331248422866758673637617735031676319897294402302640785535450375918842545555039741238255206196160394778752534192329555197596585498792153630814691600967304365300407288413322639514931986475138668971286334879642323331941922870049812824857068515672334464394940370430519793789742776456340355538654041042809627338579012676584342808407164065335590154607725260436200479818049797445120667139530631281164155686117630401071171763004775575493250110034884252279428318295259336863600545587574638050213642403706263097235745957630212993476305072111015601505947552063698453749517386562504459601904333431607858606315342029180492614020121568445489271139922687307884679988549770205075546894125929431700077449597435208896330398346915584089470570887956174714980031400041133068178887802488522672641887505077917988434515343260482966926684138106513715988408178085886098928924467307920157131111448045981906709464816772776236670635670029379222148097786074280992077913431478138974784836935819311548084528329131425130427956226005395668499874283523441669560719048710697925121129835859875180915858851968254930485507853927441794735221571002162197701194182219260429622326693295482339450457696178012103637847685566700992559848063137878286729373084872348067086514672873303570635497422478237830813830821301412912321144657351055093842987985202913019176552431373023913381324220143539908782845699300366902235856692798888676695606316896631732847039196541952366644270433133244439108000508033879398262953448926538504933699071336214060309948607444829760790416258249672359842179559696387464777291503793789386320422313880366044254110019271475051200967623451558428697887088213916444024528738195502054809062982563925235268884032626335330005098508979079479456901809368358150763997662836956723940242687901435117986997819940581599599250067066441334189455999001959630909392248024858799045449324114729687639126093739039298123948276616120422813768873075388471038952314060751386606364502860613283842980856629029915705660676660468501829569385992468916668895880167558409818014998804263851239661416868690160699640757011579128324582914656863702443644154878021418979241407990179157381274465778858485675169061699137985532344588423119657760139418380215943274141652711832578129814328986938433926542141391142980377102688691189307341140525565428906617096081063341231971569257848783760756498138503766923045464819188644529146997063941029264416836441152424013154048633673575975821926770425882832257005969917499616076317411022518594141083687052685374748012556285267419426572658437278108603122741091126325609509934052388511546010887889084647608956668812857965180248030113361089904218997454935369878043308999174814761820685013261599484315826583547722436022203823848128877303250092759497151315273699359171098433029476909002358917381012799366046799505117411909090620612288443764227998039640405445698600527297982240343188343819313205629928100393473437992696317639994000619767891284279798800523799732256843496538282438958313873659288267200026185106293634312534695672178147497877368302623714280336690032639278163227606243777852007738395464374983896658894500169872256574067829568497598243616474960212879484599481730377990387713721477941038374435370299256707686065878822509951603370288845350523434244817489060963334896290583929649485053362926179203678698046073604358694034323732453689351622713868128508345850212065742088258503157540012443381673829314077165090319489379245556874398055234008129083020131490478252185065048707433961802747894699094272374514999083447053948360383352273726121549958429683768338833520813219786383595561451666184469276720365141381713846611262308430548632164495427121533569865930857345689510835573609230574167143988160552643823545232721543423104632909579304206161692758550571940528511344733398880364971312248359338209744823932038138581303185304422304406824590256812715433880320220709290600462723073187818920963201704679810413697233522130515574850403149053151368179927676016651589988389438723609098888309425112338046444853146705867667564811429790122241195949305833248264908431768106421158084024028580424920347839250176164029424106155441659087064076606316034099605583937283447040474426531143055025980996925719304634373372472617711033523022343880586722369115590529745188805316638619691244111223499959416049784185704954799859523763974551662667143889653469424083608831309842825606957250077866794514345927520930560328580525316087727212707510484269903718870736062092218884835930798435433618776744999436368559938434380926184575747508088104456666389030612178807699201821619953320703419320534406469850019837678117924868543766398596805857454166092090570603535982190647592351899341787031934687432352028105750489413268035088577682270396292889635407803355610878349045322262045917780446729595869092771872762874990735060724494005466968203946361551419270947414009984049906982773401414074090241327258241502491732441104697302284394181250769992081597801920152819919047359397477785696661869273807160948188641744457132364518905461274751678054184980860555087083321451768329884263201146554492314727498495734789518942637690298615257790420538315237205541240545374830766427220263304930062959036356348490703069829866377238554645110783511590633340967576979001455413477975699917392519786432244689569172315235026242080928417656226103016681864271059598856111911971144376672072998472092292946055446834179053371224577337136068014362938327585033544639497892483673879994150289595235643734340206522451570010797013537764665826515746226937157057483264709022456108860591218314993984438088402362767404473402288377107831584034813591622759508419712774796551834255903656081994398338260947429526193613316651432204044560819808806312562589052030398199517714606925930394919984465290495337573854849612056227326092993162591728903611544722549956785035740190776101364235800603142664644610872534465067539388617607544964720330559458488781125903795951319105793108548811579435281719633714920587105241218740602693954488621412397414052255459814556506021703784070000309273863009212204171127914496402574994270391054233835057728756891685233458738912291026328594805060370082812187259600492202243438103450577529952934388785566659015285617782690056520237652727616410790230636990753159334195572159159559701884958609034740682991065221036291304040801854548407939749229864865489627293723364292484026074392720584408081401563903083981787711047045639773589808566610511018462659034557637863080726777031036057893325158303659971783336360258743754056011750184173969556662939853156739917964707658522077865653478147621005143276997512181678033822356419503057957431511586140857466670446384184101584434735400144552002716119106331145659649302700049214836520932335024119050246690951221134175586730784969476589773609896227883436943876477993919252578630599252667283073575817173237944047285815773546473711547524531178817605369833025542059289888268980813090023507191829458862939613576121466038532032058149837817951897675693119609191290286486946152573238325877692905029850628827664075659807658606286320686938574890926036416151400016803078797158423246210750788454126138628611451394521371502581051035849617475384296420054408259438871428594379777586016518879114017668046639019806908026822337601070723298651014670666906581374314464656770462128025145453450160924130383327210013007506291865107090923750941401746328463572098407721546635466256662951336416674818461862422331121252442714568594045181903743094612856670299730843849743755779386456722064622780692152721925742109257126820494055026446592023713880747930813094161211331134259494669121885014292879427203740689074221290008314501039153071066790133728785735130159178228481848673762285638276636165276709277951102197789425468980403043668147482131958408824628187359258407773167651841488173133534773761098123893487689739366288659531767488823575013394938429767376140656114672252152363131578010704360318408435442124273235384975674709220094198252062294005109491391833075158737342181071080996118648353665932857444692088296204039988237166601765878817205986342177645402550576531083582772189902585394238201555105900165398421670579832083379810485538647805197266270014100796322256357638126748275606746542974426458878600953102783462272147199110221938956664377550755069559855694611720789357565157779638614145477644127363681251079920584786821689513210259315517131526204346091075015614962257842538172837274173109252597153086463035569131870755570377561886605558183565337893813809554159354184977387506827503796558889684191497196364426490889084529090257460193965397233021272185624540793861375810939245078329309000509247579319445963456264285110683768234901174057405339313561077588110227010067107789625628405489525748296314251742917317507661617399554868402487537470100476361926593590070158472384321423061486315288967907189312419371003136025573055039643967887520605557942073650834388741889240195308894719762558187269171492065418112931158589220946058592449536743741717560994557969809913007797843249286067095969958729975687645997258834390172313226273474285819262684700363295555697945848402272779695483591919584488535892541245866214695005529267893909839890941714493270854215514593306611566795810436541598430764228852044253418818695924042571699916036142268161774289098599935815892265849504604490220948939547761295643759510257094869337537754804438867524576014735127876929932535977266337242900192390535573065880925691955118987236101291133351282611728457654064101581118203722052236194287032570800270146953278419327641167798691893814833281948124710828712810681639536190775546416081996214096357079277605937901986342570703172550173209995797399152448318965177430414765245731491184622943665755370362255323817490789779823469277692554944611920033772048673191258736518052644565860183400539342176937065855121611952911876804520717666939710664876363425501914683200078298990941955623085388069183282769255984825776114351251691412778084406633481872875229044605699092428127561039528845346420212403038205895226014928752616082570894498287672630596099027987829098419131767827848266861452991940603964459477635080086435137789010129309320582881692119541047312527041864402381787025829967909330546500715412243374206826539540573103898433946816783997075704955460020659928378831382896769980430889786905058543916921790726199653855115616971016126225356483262671378989051025608554946730626773572312000810077124041634727906520019346528623672088832118900006742070828359781304603494631723948918475658411006020356321868560763795677736497054560744737949531374822303067086517844781459887944038519781599140927389788854806275862078407511405518571627752069139232192274038939606554573077402475624565379227286531019098670208153569959925543908486020132417652415028632321458219152581851252521789065705013968023154697587320812046226287915976684771842358831864743104223451910971272873794772711990746321174826026447089172890466932301065584326666938594947498749465845586589830885970189092798032132067224056017343456900521060115607330135132159852107936337165645622499471665170307054001723773266317417108811742413028904399713088326304344060579369587654583161547897395723503791406667737840630247501484391509461988333781574758398000108232785485857557741234487091319411532555598912722504354384472901980995818674953791996728785071289097027202075781252193504017140220446131228201605702482232616654262191129371115407980313645546252081866308833085047022817594506431482874131725426221413677143775704537899013462937263429233293366179513663622740977822345711498388749391646631305662600871824356407312366362096664834214669640368308874153132191633203698839923346454416100285945146124412297686194251077300110971228088477307358908580024400358325098856196988717310042427503119197288477466812257371381251116519226242655740859587636004285894912698154817097374298334924809960690202818799324100832928765562833248452327529088020097778141230028173766622016148603353458967068840017347048975280786268129350215823225196294708416293433257728342515898067269575039526249209604353250779757412296140645323984695262259197257079034591557248319985405987801842911402951326511707061035172891667503048799186326297789054900577907841089242361997121323284537192068379190964473523327016426334420719518047616965810150983429216236717816747159411008145641713063513025934522376204831854197685950388689361796355749120689497777303646063602301348923221603869095547872004381589931044107484106759573927422107268520926834943593348417352449871342712501935072994332576050020001385476799111741360437696609354510401504540423070995244568519477623860969502361226605650822771690300884035843029638501982111845560933413233640052746809082742119187797395315211339090263799522146847917800199677381774768589342032532755517151022686415514208940191332659098015327413377522596347626805632024543655978652554376431979938958966133045715380295248491373565212672917764799082316624731508078351274083784269884531276335923249318501123975027377487396318321793769951430106292659185155546512004549526114592930100011862799922069972370433585470878014916369866572065958149193607491351079997072165549223680752676816229750270245850713881383050911986487388950203620981635108512672176501069195708269003421239048864279672490874400037710115171114832701866256774987817609619393300158729931368267834121428652517479099219302059624358544113665381526535884467527080402582598420232044321124208896908515345901150588505550273367039542823832670499734788360085345778774166585206044714342951471432515600954592768953533639149595865094185531216029457888513062563560406972492601918649522296034117084274063825257615822955476237323390141702996967460767506228996008736482004836080636583911284234069265484120181737539465086866486546085828144205343647748333549372871397101819489103355713342296526707181707779979493738971157447744353592270381517134414718067946535025736305426578840743643637051709587245194235253890334090421912087225213661299366520178173892473609655892285935081637587607191683710400472137467925007103035479483242998809811755188943038701450678599356621782139679638837332811283301354895852852367684847015923386587345967692303154480832475866460491443255514487495935201442222918706876061465252132743103060092789901151705453087914377202272500398552076069085874021554605027074880954345357792677634719909669113191723445790653660680361455176784357779781117576114078266736238479243433599964700545463730907454220286239676946149777447854795146623150433383727333718433439133775066451757316190057740402741323361000835651791189191793450923925380404568628146216228638476531892504655846978701027602397037373300127497057643197624484592194565417625421598893518726841322581303241629800657747649728085547305916918653503818703190735550462976079243411180067314553454330688639842908476080775714338207234863576850097429241656553801961754710977014827454886145004331250006224758351458493097371332796843068583389972831253354030849711292392292965196869657197051964253685508161844493044570548347673628736517161400349124761007644546601534030620923908394275423345576761744410490660712151447008298187917674921942719969923474962568152834370079092924026209674569681286529989412205824727823866598558232993650537010665037269495997115392139686832406448943510111330728607140144866869411327612261419148841347552064293484515818349035464910059181288617847335336015909074405529335588364828772670017473708588165930099019026100253922542049693856865211139446367319252673754167796127319865450537085638734285448976417072957755732249720162780167667043666478619664486006841630170530511125781107976871047891163036809806153276508883499744678595693122177588179574933205821639482093158270865599467240255869536116880466275615305846366096109364656320014812654075112321759632132272204770168771971056952513541667506734387567843051990099988038755884648503481883460130390167972442192881869577242177596731250172811333724168865072344827819845386612092997039636921827258866337605840737305812961787926866306288951593930371408986802214245940236793981153600627170623931714338564246676281918243969234629698315662486656861939199145938159712561397572072671252902776348799627175448647667972844039504120018219621334561190567151753457881478257575913545734736811001716922835412937549368731182459036104861611599098478204868111438329266408364294483827470666284057576469349436958486120706751534682906135475710617569444732705563693394914814733576001276511287321892402989014363876380296281110680067030385532039702583434606147334382597513373814118156114703464319447723961017929591297200131245968625852267968023766314754181364839755238089490848290958132746052059465878457375147539401385788396872844345706564127415325334820028606981010316736110602493644037614245989418577978639133188173974723284545222484953082376191820208847360914434346573653947643193330198627058947207549462586459682079999485342745135529587930077092287623488298431441459274292638610009301976172168499338301351546189677656376023009318823772611678871010543051653663151698038493927047963492807712960869119176989346337835487926123200243827427313907213618459372468794604189086594190789398636646505631201083390420863719894678211756500779236641763072148971334762417858859713771905183283727878946553441452620954588825226574820391072678338598986347487853180569846006064555686780233884538282836307541492467238447249902366363527401981821454876362893315268567732559905451309770080021402911294244192897165761941789117201981514048936277729324297659146540477089705780546170841299619472335807909106791278674593893733558383989261528669043079858333207047880493662010988273649733095077913807915210946553229582698075460592507615672505380212296970910066600187806456404311768236570751998164159963725356587397520622881664147897758388161700787961478770115151005305992443990661408340028587657469567472087230396932544574592589594942443104531394903530003652735737768341290224260744430895194376798618145936671500031002765004345135919235832772813949186712423338833751834734521733110673010554284193053326054683656529311786193527028014531766062629539632413629589798387596540671841087016117096149906218708463108258807840201378266084817282722813606130010367142735360899183268452345621296694510081693412661876899758521210219785015849723158002279115629848351956880978277022571971623380601990029671862451332101988323244985980774423752742089708575991647013810597968239677259004269664978526024674158983205377497419900575736699630831540237484662394883829359103548334873777248009340684160885702376742855708387214455489182174244400705037022741928666734138666492209844459043123243258261194020821225325827473521492967813145719744925107452539247587383065439520103468063943410279486116978391057990795973585357167744852773629345327854389511137717854542080744850644704481399885945803990906398907993942106167666413449304886569903210188483007739616415510682856075071202252937859038819413564605753139206357056944131616794241722206397776055033879113075112655474338453044461334488284275601021696564377087174205554728915947449935226932892175226826920771191220886851714099665875655524775381867273922155112132743537675248263019002998629482892279308587446638616430001479189837970088000653120019286190158889260977347951925314925735494915072698207262800057665482482242634720078690288137810255097041502542772924496331715366218579273287797304570632096788928822351433799617308138092181232056156523570901594677865810614871671163319976861529642905128319967022418590011938401359042406326601851983845898648038556247129526847263573403021645507397310686308622937218702079704081966014290640241791988258213105929951751477502111474803577862321925942606522997036403821821100324329217452754688871066878921026096452410833028646714299519338185517507501424573887408570928066820140747661149317077666735751453650251405633290256056904643534626346851370481953153127307423140986619493019066995624921817931436987563303394789800370223525493959416544964289805131460907814280181613475640521938144881587945819398571674090652183635762069063080011041398626286571641506923135771952945851015662082722675143604261700785635027724600284449198159737615950583101145271658409735204686469224071209779886853312043212442966031784146490596438315033788229788400035037120712138996425493436913948260301916364101378680718269620572050169329504882263516266245325866078793488846550415827896785560766079806511435964456331305871309446575909211505238590883406610048438543482893625754840700930081057743535305078019472796989030101040084175040666497668978752940883926507208114862085158561599596268825161396772494742390019877713112448489353725847327592557316911914811888360853994222842335008958889068700931774695969269095296523143588918480461809237366757445066747116812330943611491343500970493196721227512057029181478962464523555284137440644502356281592421376876446673730366872855615187348544560140046620272884144672306118889002195688203383814853340150306199679350464100627216026793215789451654458856214341521925702063125936034819240674754781725723166567363060400937929316566563692351619132366668512439650432231648498476119058547732900843581364805782493039069144712948521749133066582891145170395244145075330153878823151878741509542457192768837426406998539967035064741512030002029716013024825955728949207923569516593442346239956292388993773116862394437972182115030693779483688093818351576198137830983975323811231817805709115209137839887780285705408747262404139901103385017830036391458876979096057047204110273090990070576669969704631405399038339229488036834748125207346153691260348078465574714406763184934622153088553662190710469464235170792584723236994917362227863089592088265181810019798960155321974187763479408544160669292953031475865191694493157812729289788710066951716429651521570436046576799820507896522527621618524235829592671663747748987416508308557308433266003167354577697737053174917924857375529084686514172520787940836897076108880918394250663880299563214696828730109692698260063872683435398165224202675999853792427485801485856854344262882384752996291682445533880753922076468703148569511641839533244989439241168781155499402514865496570968775213324178433945142554589016926264087751860151089777079959483566039677482984612245170479784514047277195456695370459650199054157272484282231588489784159586348292256272655678193468929197608019346105522550294273721219421960954720085215500058179274303399769687503966708353373867951893678070331296568217881791736528241064906491694819156667901849328353174348684635323938487016686486682092957282916012856351528301802224211248822621952421755436797072936360255301567558215657528233971230869637867663010505702830158941824745940893709638523296222763169336154824251869676417199144901378261817161171190445413625845659276947815367811694283044751038555003451273069014606484228022449399711679416787439743957697939942395777619228600519299062736429101665938159159687954648512392602349425750345360003461091375566831760784083402178612968052514635919532766662759927128682769522024965194043227992681079974783343537640321938215595304971598931625701316223974520015054369787041016635000427439292463389307773981110602252893341620380870119886566683404266571778201406002844256231841220436459766546110623884628524300918253847713866665548359889472822098878711506869875172300201593388440211956187073596249864421140394854521654350209116518758248823360733204394006147007998981570893301174922493440924998660773720736420139369829747315000331505138250148590709125141310300255789206893860341967655274058106621026052318058632947395765260324136381035011109830444862293036073968837546463618177765118539908428347437208702192004743816944734439910359836522925584902245975179791125589118023011976660258427343690813762994707119202348545039065795115637605547253926919974222101442108199090343134311634461388964112975819940259136409440559732258068513099584693050268756161041432677241288248136481673120954789404883661365238238318714374637201737230629397824655658031543179463483917558458637419380030655575847653441180902273437200432332150676706470525680947457041214865079554667251557095381222083597700180774303287464537369206195230200437492899758727227190257748815903116799557744485586238977997437721402756280111280842754435288665917510476974236727970882312502568960932023547604103929047119321393201882911311969959546937895634817736202910992259406602142569906699846035795305656685122245004249569169077820075779898628133125485395267148296147141418070787725701285201942748484899292247579480981257335992336857423513650887885098867351899198659644548404197747745270895066259187211685727470363751228441974887286284466169104748135644913963008303716970835669481272136009430336196808688577840060344849150147941461547310925866645449014332154510815798079951566935782540455660810428390080545623479362631517935287925136783466001928252395257240527724006483039913027799915641355452185250648925949124644991134342324006198711284532267042251823290092972637550445827473264335573428882100519312167448049803724642370457556061557590229087137239524417378399948143959195702448420198836079879864399240849505040116398019892207922641482711711230543761642131890860606830821069073988823564548078488221514176011637479597993765720261480167595479623294626622768860921534313178113063858293863879117024443421706854412911597676270675696829830588517501918656112331475971409340665992516512380653577611872682418264550078263984807502941044067083939557970922725114917479209984675589491154822956029435236679702727856043567334902635737244377673455728724488377403738916122586433988537349647947937681795092418784227122768147320764821179984946661847415907267197380613587245779794695494283430168969325758396415659448663318887351093917451896585433856380753585744478947169065302717788411443847808448023116071496652843281278597253967848584234338044191308557424435752370252631863574805202197641628202673078639431151700668412378620796541579335446246626302255797357748249450181422850144453215224410653154186488271866231110686446198116058994951210032705721862530190096092929724944005567130060243724508587703869645175500949650782773110829853449875532183234963815888202818741108596307025605411949207386419595968703865529823451073209523426161347952890172174290811285392358692453562723387561015060413507323771627139938574227640590088602937838852091404311369908573463960227826759092380771695338732960527229104989047357918994334604368861838504919360102777940417207682829040043158526395786419948272997018680412970643383333049768186828094623165830178975619482207615773850923924275368083362370490216969900682935253680585636788934782909472875201096265393429499538112069647145892007039561316829031981177532553579240629183144155423007403744275183001810262733088964880454023645077022668180183623582511964431842657648069957290709425599142496632447545824451903335569697728139373098019168212940147859032037106120621736382590500262954801906843774427066501342995193951280828128259253630334836872572879271842129052328299842631472615890462618718201924722266423588148252203028021879271930425767869369824123806163200848306850993134045176160309291518616558679017238405071803900415118067042241438512624304584903879213544256554012917308722569662418170141051274517680888459377030225170444952681051164047093763982203426154245376039368933187735147955391957922727960318928827038436868277861433430517466162167713634330449516516945903636589933089594238141928756984008487309690492112296279982054195472198329112181063796545888292890328943065158826679526409578415756161142205508605770715284519089935104154603077402653965873601377639245991980865164805252385061834478511883521385571898957819119279180412872748940811032238021471967102620798231427183095218629763698385438106792294533428525888889481757550797200344766960987875347768278087258753053725729690646917683432903583164611270171838422305653077270337237160688252906365722337309439513640025704347645165835359490715861779834190678943505366848734973401433846437817359930731527088725077777776788199438500596626116093771237997268066457238307389842726501940118955054433162878836907200808811365282580663450285109964616685774330055599429825436294671359845449120525030670133469575845735977434340710621677328339676727013150137609834440040176810067745072529013243486756623055175859245040320471133971645130260713628385626767180889560114588722476098939346553553653484074197808891112849149038865737156302880823863093796142504485932495954488842536021643156468249838911168260947235683796738225553970451194840095170977680971179071066450635719830386678331994531249359392711592382718976820407860389390481073936130786862900047734304071506451432509016895653780069415623148036222169875832049019097598175090424939400631228307175611389368155083104015978689325019458424932341630894099667741198356894126289430322393735015461661460729894426319641831622045145257680708554240967616291287672167733762784908089787354147031513761083959173941074904137825531701231176526273548455529986997341974940953639902459778851778647985907436389518296929277646899207826768410101424485000599986825673192636604805825304609788727076867298562507319857422243954232104700257989550244857498237160947173101960433877030570225368272860660410818554651626295620583695667752836384735979143822961798886227096268613911539615939777928817881686250010201609210756613493089977923253197567415610271704102675511438963151238368927695562931690729799566218414386342498667482126157863049738093216067787156486996942939024455082164444155757425214941170826280115471325720954712227248402161801637193836779578666773375560689569230964548131639191774407736091897395207149989591840240374442033392833080526370355324342063308219234205043186287222387945405046170872691778977673787312955516184666096196293524786588318173737333016716339288828818132645912709188596063018303822818239339338811259065992965002122351098700512140281219926775499241945501166981910306629231307459030265351678604324716413002280700679985939478407626376794848555330228594240727688902207891458208523081876029205450600363633599270106467211525252847304427567236754756491959964143229385198940712034673317322304277591236957157046222949968039105915778127063328842690278124834421918198369303968674958632562281845321204885787540774292578339301923032585390968103106821882616154328860167106398632278875027475922147374582786383056918533712309981447051258613048003953571481446785428711966739325846053979850314692210999105225131833857681393175954043345502695798278579303473042578827301040318653033319744931854721074511941146142491839876127362771278759173953982090368530651803431570996802847787663242142384399987099451504236555886020214023952932979029683768595752211430206843600318472391827121817800098575060999025207375459483254116935764801912533584260821705872546758559866713360691331993905977881018132805923615153456353786038572779741308825805829330858631906253842963930801164059574441538932240105851294384303049157095657196764814267247430429656582253170517146157310527170969700684802872248605136757180174863614352718249033297628558677994586320009506707034503954821496288222035854952841028083440250575153382063717621823817326366994302290105917092310601566452914066965181258038758108313525771298099204200271001251107651495269111019051070247497836859928383213832422899296423650418656576721002431268318144026024245759088402874649336900959507883969130715032422803934981412260883708793253875355507900535905398073415447577410547818260162535057981832713269882211772123462795846713630789926311570421835402233177825542708002922546541748989757487913177687311290304414753932011513911916324482745220529229719147570713000110206226434140402034581074517101168309755244790865158635108324718971819941018941801427128770040000110764979739183978818613037610185229904290936333496426661386086414969632608151594276999935937383280993323691924324609212415269060956764250279114846472715842406740464178999094775724576570122461808056104181274865428389349235064655040693203845051718288743528831030016292899294585305657681322840866298043617375190138540690123681114720676741067894733254699059685633528064514329923018088206104730105058324552246233891400578757120436817226177216489432441539359831957084883216939302296457824580041100940649589235428941851920883542570310731740544797292323274541121081696896149371538080701265927552805540616426030678751049438875240893862133696620535065284482723222040648063998161404001243415791170472923553011636183398795235520408053198016009282096553886838594578665892209591989149932943945929690960199096078131000564640973303533578149417019032400227257274657534084536786207724382652580486908645820784029888919376060131309872838237264563074932284131532415850568299725271456489461643472460233377544778108117526101265982965472012282696634701413088328811109422856660628414808278258724411412672972752118578943622584243455274680921772714839018206238425581723098081265452113482635791143993081797409615128669207151555308581420104666120786528451603275554148055878783268645494821044005305048978995315318225526074965457403091924456879769079760060296859785695451015524113604204141523604581019357239608958031050957261391963307646914101825804724655045453126180560582657834133167948370745851636123862177618592407561971286662816268349735146326283400684641564219761039429593010130185329552774466626412847278920745456603494792254785213180777463329372969679672021153715048932999822701456834200054115274853175266337566671271907668697726869040516094945877652909966138057061574809853165469418713351721097112693020894634753340256256891955110143658742013632720914791090029222693469937522680170674663329152611915925530783265855668646309035983022742123851663745987174616350420923846565722096371165309625346968802909833525123597968350917659406400621152677624656528419608611215481773170728241899167431520996792738553324851768028853224527993026661127434670996911982033745700969187026218323980688350411108311035133039896932333627705888971082830945160414152187766634374648434318344226367242516798167218937632723885702095136989664430622173489588954697109328697841642085969226420391089726917407986605959842326130645647893190120229174218048660938926576914378814809020092037924055167506055341296082762630119636319937408200648485526119870142360096671359287928956550362919074034346796723475639298325009402599943351502825614009260613357559858883894089542422673770708983655584479819474726172556340181480808005866228850423744086258749940233490681059470534751011892827257475231604621776906198237599744705045164902991223022464246396248714052820213506903336537310534730555637196019826172909225948225724496608783210916267557826035840754261164704316000428953507990667617729964801513034500728057509204306283050097790212508148258487099890738535155063412122814384401742638588602997069278939675556533228735417480470295240354043118388705730566092870603759923752679970561236400701978547159865803389348574751806463550504870817101480647128998042573702305148097330780135356085380218335304016798498039102998888353587469699213028678068951698591436924898570325840465544554941921520777686182828013020241610399907021809055260452591738814647088717925587312265918998585607434657411247347073130685496676942395142404960412233584317393516480660999122139419310166381266635050764218806284258976165102429707701573724566583767549591492145897811875106049166116922042819141210125648021956367931605693450263381279414527690197376713625634923791727391878689468991954408191847222131622675442818308065715639397051847906528518376027143682404362997658584675746955983145095314651984888219076896637073824833964770077333155944913351693579352323957944066340125754213028221064797280045628089196142218927602671306234122175233361416470003080907566837028283647517687128607516460561387518012703711336481724162573826136854103520021899764935017836612492024086192340178494693176460736625522834782730409137253793351493399817183549020650948096685423654115685684527554127749603966688882561523201327592306827750833975905915310683968612923578477253273443150888725108587062138152832274753019195173192056989881479804298560219227189154520674053360498972867932711071986034172836314651963510128817602605018097510402991644881146570496595348515342563900661086606158820996986487410862824391845725874188201561949879774822757174417466908856507280539128255466737607573100099077350861909446114192063057984097420183856619321614750049588743957471901557764372672125615019288157697374770064974767816320749122151898386194802727870121962472827755637458994808581559664275609378322200868006998775259399944460180506492287920422312526082927962273159389267215250301613999450077918538324105850851233485349128350467566777033982454598671022199527049305505970639504597146904692723498172432489745365107814721937116671722937497334050008483680245856428202079751710747887543192564726726749369948995230799494032770558415876355960174043433797190473806061355725028262302287565577234396768023324632090812271072148947215466327564880737989237098931780382954437741454970894295402203444297784120155102656495882990875208538318451920516760591987859813348926726579846461041416413398945103872621774698523427051076770443553933937760085525894618334143710253619034442424119426922145293610927538408856507768444403947657719603212532761292705243300500165112721660688650342800471441064301673843195820016528337457338390363359328864471119121698390791854114452187956754355825965677512110414056347744839002634850555590154744003349337199199279457404227009787333234059995172255411932383438265232842564244166373573135510765894433604104126218018890102513267967006731105511176966777253973323688074382922831973342218024540688840801014326264287731473723529052628797394114070082278238181521717420725645186976003798759618495983340331383614443440423529736226014648604519732538759389069465095729886251627438403043177110346287207802999569435555543887416686237052513118150161333196526775123488780157154234576115124275515972690093532933623591391953876783604041326379994207549115983215084065567147497328588201189859006106795608309298545715087302545796969199643921919632439393756846110966491904742591841422205052715268637372997918119244944226664825902193121917226488990534672068487323523172495713292834260002539205621440592502250921249937078582712028653805092400631657855169631292936171083082203111159130339757573311436317076690883138053881993053492743932063485219020886367898420894241753450591818492083505945940565223119039270991031598335537386471250070796727084358720706519657940691559294225119101868573670151519907328264373471399829056407812250800380591090295768191825771909206883239931030268331469767900305978399785892952205834776601219053909589468531042164228898581314533479468658061354924581163566864702391255035162704868199625743650652495348932590500410866667616337368577784129270929736960958785954685153905980894155706894204369986700102243559369024642217623032157862279885478294778214966225726690522406196428292989522352385684861843482665929738067839490157077543133294499851716985391327156023544670660951629245006045060682755671921482599838348704201290904797425114764979731025874599483298882797689812970442363521575083839922074312495892774157491878388972081824554768525537414705165500710838719356927725670159301749492143188762125853566728137263575770908508313707960610410242490739290033185221763687629141588770270143910420864952444002717970552672367788813195356277702377923634535788976165423787170914502617730040762357118262342591398904096528081683753118127060399872313679839897660412503476120177285288118527624179216380335043325284906467426250649167548410515147324637177698755256427751250480022435270773002971034930580206546740914888394820827230475422959158762273126184218385178646780786213349909306177208689702966699028801713039488318497069916520433373059375955693068444800466113737275391094432792017359351582960328013046152875056089407654325753751431258361860710121990795948284043945167349834627240241329070584427524806746820374806408800048437921635987609941964807502138453568373235047071923880567485556494425992230567931904939262542334876318252393152059511227652784276667428099587486389769835389295090090886539366904544339777075275642940714966375560180356047049544489234654178077644852366849496589860633342567830465330658806789792705576543489146252820792383193488254169760970115320286700808995484976554408017115550256294222942771694827322583915372447097101053415476825250386069399368012729949106221581815592158272794631277812940160217206997874639159799676461376401557080156807618895365873623303820363055497788622637573143486591275998231862083842110591226520602590895100215221750319315118329539756337419531925854876004780863454310845507086227261956438396384178395898278492244094333504455914405555972831767053337230809543817047901621153900257552386894730718169385562996477570164000500808453519094779056205535551491044984471389759810683826700566027943328919906607147207678603172568422548152895808714403935416360665970946545330874085943594648722903948625713803642243985323912681127769017280738103117033940209001674534140200185245252163371014518807002894912690631210571269525424984042328941498168141096118436938820287719288093363920403664675177646476820563242513633812169748724893718348478485093108717400100322136301365885071229361332650561061661522288778274550044484142221090501139254927272337664912362451404126792431227971047879000499654357864484801277732285787534668128215305288282831243247910211578844188723327645318733631459846061232792914928776681349774925169194740401313135266857928032311362677405372612385630394624273509042335106869826445787999880724875486858156057326293857875625858147781780997195568154944874870774358365788678346462689306488815140027914206610198904827997871186114530266628558434379136116099928313212767399911372301391035464173970240928333339526216109532003182951238119362433360719829986146166372736436447235897536443791227557694032184867435492165565166926500667127334197484861365713329296455831744308816869036557988031320592760887215056793455690285694753554215209786678047670390694432759143513898367354997082392101216928569985975421606992819772823846989409775217782756516650068147509536655408699670124344056629591468820832176336577662969380119821069375025803969819267355084450106894669055881158596136476670588997282553100758855804210917779277054639724135888179884393280673649851719248525180185119517728639991336443109301969424141266371698546729318311871617734714657760807691871330514864240512149078173895420543804034791347249065870884620300661850760541423215282215854187341402295693183831353431169886173959876751392249890775310225424986886191317822189849385353171051057627447930264040465609319918937893613726965726238617225450998289930964992171278005759242528632822958356666320841877036340392927350984572190341937000538743706205753453300070141960162048269305202548844069101763778709185128056419027656728384909838929872312524649473366641113779929163368144268493110242047236096120896719395685469542883951308027243352076528050906659582195571099312878157831672420198424553851792513500874391600563881873672799854146547692297550425091864063966363590899140054227657775849041574587553071180740845837059442720396770310177844119548119291800292832624821256999728585151486300372938405301538604027972524680269705635541553084412949552033511537150360765963744655164091659381508072273614251026533247804263694720457104260306444956975003764005656862262048549949576979857749669234021605494581989578078341829314980106683391362955862839059642366272470291095627441999841259303046445673441833700942774335076602452923180775314855556785505470788399513194431685139201881825076673937985407224707240681971798863080261602635719584490059662123197304429995395849952177028288945603704252361547389458583281180873375884398985917779947495387033920723415462068104252969940591653178114465695998019102207335983657990348162894236574638872260794501520743505223941938093355192756618737241639174562337537307623746760303859860308060965970909070776615790959457017853285708770047853783828324315576383495825282343916574847958081503006932008225254701007535601968625622496271320015342493716437602726703155762554600180228613490053114355812803075342505410666964720393588685562552162060080656668766770637565246805622094497650204269821289425708134371095629737846879769950385711348180922664776778321680679521451367767143398291498149654001708251829095183641120773979449606309377790174234161371919275751666855135130341160920578655798151828831818928710365548225947006794388438725599943962682252206067119358763241238397333417610795793237737551768178193073684211515921116926010122406769204111517729269893408062801879090489189552671550012594268872661214071945129764993470627310098801174222616220272620789374549503414586448963452775084151041172873486492391075772970219988629397815931755277772978378837003147165095862816641032176007217571062070784413973610917501411332829003790517698429218650882115754184586540780343657405897203674094771948658641589035859875539879364010109457448981219246928019882606443847336112142698875270631643880689962196624608449540999447695561857329635907627617257502107525535770289298622993305123899861433981043055751159445664426676567690255409193224728511206359444145401176077625741918037108289892365908925585219669701844159915596383200551688509609002585197700959015001949176669166085755367071152948930996985942401742345331658054159306666523714268040027924299661612041245933120875442292542944980100774655884307647620509307541250744813275993543121758080936183306057302278236585374112798683417839435860134085721156797283207932786869187722821304003267419893983890184527079957571343484296013348214876011797575244656208629518816196371429326959499154917464853602554560464163777234157140914428394144529334470929199629937662124634891464703266381545399643514839492768329153108676932514646780174240304115402065710243460437036868353006026185301134458270490037078833466612120844927302472206396306658870254729487312314200070454105691080881708758624311909639771760385423330485919661354906092090774431334023238323000337192627668698224821602869520483508927453777221151222534673200762565960771560209055688713968775864376194573032395998129148109207126811384440107420520653889655733900078281903033782457720721869288345246293995837365703878433363942863713549630107260524546556572485478575634172644181611974210573168175484325291213095095229164529711794932474500142455247005752905643871835866364146476612067685803301669718062550207022561444403284130620829102904202657317095225572820579236025076956661275851251325996222326788545767385403631186932187889227125833825654115218916557702040477872898564750711656890868785279170122352124907913852613268358807481661487752435523582623494239781110459575571112337868258746025919481974368533927441105377934315085482966545296422770100224250231728454609064766540936969019685240614719687274323039507710812562947371326878593839927874329853708519349824763553899364274401356553130140280667373455388088304648994549944065555912397092645147949020073266709586961266166882873828047205800329289758177776861608469096522528767124071383393005753217687607165690924473180206440613724437598252124861830319176675161085542470050056971928608171730534747793813769955403482822209636252515589229814278448272121245083277952185883290135881416495624363275594666249277112966962874722029156288581238124113570664230256117946364505845460679151024141871140848137525957371558794989068969237492263314386699553522287910859821941529713877190841617215935383509237571262280804766978174191353461426711227067146797144106003584719480425476397866741864705638861789088599688362495573677373484676694982596362835573315755611921636294645867206044285453915990463422168921953229290391882678642574229912784392288242323797321139672544777876394261950638396366925107750881824412915587179952011371051067397765982256437673122476625341010743408805867138079449940231240375137057351636783759036097088567191980491358036115490873287879843233967095390814272946032537736991720572824799836528405207433587574422896228439384686688714551692183093227897797905610010734626565374937214630439816613591522439557652858108595226110660281395891213025368388769359527984628469189123302083229710839868193716253996388911316802782689357674453938984756272612672199687670264807261671792586280121352578120764055846962796061564081025516092137160818618890324297715319548677338848038701874429087442506128165535904605795945015896157535727205380379617940226948730847314977401885141676768787755742004962491352669163175285688224802932709292925740450621635851919161267597088057956669529093690480922637700175020064889847839393445746283844937262324365992217492813867130688393428547319365367308300555238277360984446324472316660306207778076677639588718257693504479773951314250517756028785443908183143996599403616190303845431871593491819027706124604277351654917122052665774360657291901868738450640742068074751968512920727458642233241707660892363422227291413797850314703670581588878056233171524607700981519085078255490932666046757060181915832605355906800908716690320639720212834857638931491917655556694948346374013087867171734251225649703297256786197037952977683248090863294796215916841329030168855385557643386957341689567365936739651185325776669180976017418080677995701617987108649209768932991300320512930036653458645141907631808604862873841315217811023555839163249886435570508508332292836086186943939307172925527226300874393718165080937148204717534574295514523240952111748933628261839325577195633614320463482977116295840539616480337992424959807968764959871043358509592045183099811790448411101263005924429180136295696407095110451370630276903992879017551008385711018978680085548462923912622710936761414591117204561850434684353714541051314122447402350768218270066074605019214873387572028775153762366984866949258770116446943977977292419655761939341292474309720652265354599397642872621840792296902756310864338301704610358761025979086824956016425823236058918667841157181648544700182077268583408336677206008015583370417224421843848925397495602185089990969240991491773321381711688710184864908152033598016528964848329992186193868101402714629645830921142228461375904048797300583171442998808840588841704503034339858472568671761441233042780735809016591502767747259812017599571935698550521472660154081033095705014091423055068749873781618313215717846876158424758416084802695005692843215113616415904079308073508792407053090928277833809655774484013300597895890039949288987751011103870448032240411584748680111288723228408832091387750648997545397482534637514910960899446366152638838743109781220510786745059948848554640462327821651286931805318594688369169047889387006089543998302774811970133160252262170461381390769558597614127322101494199033931999791014983698601947168003602429820643174330703577711635645807935558524008940534051098371485260862850170069256498793194319653802713676022987677009486969434238454913148452301637545219581732148058479461830500237222198379947525552842624460987360318642388477663556636637238638597574521871057814946871970664491663475140987776541870183921507137778282161886385331276354749781638216395143867012854629544662331614329267942987840323758987946821388216598902031096631521932383138684855630489469991641496086263626356944907223413624048394335836517952305161195801571738575597493619642840224687886979733322072631045756468738209187846346499448116294902813386709607701560365756519283989207594498634005310899754483974145334109024787158020918191558382280074315831096590500551720348285897154492840324953541239995905045763598259277097464628937712199473130557516606881916829106500601210567753356598315879555985352142402128731242590017981069234055669438171211976892608583938504553287206763975379126489850487222396882532848211090448874796185105309964798984762848238165597159735986019610518237861462172447898926479971368077744537599748389912813035620954292274061219104522022581950033523475095713698189454990110309804650893812565805065072662041923395580269674319447134445113063068891714308586211535770579626061054749686429501745440186909135559894904408810463749046949894705196479824642073124845923342567865459313087728134929739792376354620777719903488295541637609939642759342244077230375104523415910478540171116710521905857487236039706102821012754552945601631415190452631561281852749420274201509183353015885543475644201151317316809487406907333732497451605008195260700463549693585330470510644183108309554598620163395781976979045929497557059094684046437949116056695888690236381839064629258724548621211202460297315131930942238126816225206268945382585050667685520717638635930725685342021556409479605088025526113688920646202185604437909932499951885277137872472310364091685623469152972947743554015168313462740944430921758153144865647285389700382686263211826849983445978420651548902771672711687960451189938253907430891336878993855687206750065740457161888308578107936066430446410290500395634959696490009129144345543096452955540041343108065408874099498106475768591437964667323789219219451700898435137446879283997620560490253154267458068214628895545756471446625232851329547847444455134937176781184289048124764331029967857426883732328368115420471584985173872551868270748409198552356958567266477111632107793756915698779378195389580193897418243251083659699164409400855072022676298270121057643602132018065594011058874653963861482064783824866105645293456183630333582214820952766654919309212998148116787954911175943827302329102237660167377557766659637344818088035464990546012994568612602808217544363864119729071223221051171519193774148993426759653330695616150841678207008955129905838250681917032548032645928022684048706597661037747418677294606789404602729796369451160550555038117922126996812671387882309160727999884676293695256174003993805622070203969820157040240884630380548930183250137214936920161310050459351141286840780688565983260592374483390733486490566984088644786769914444481735333200901263814380212351723236997551637409473347264827000548296889233560081293191119338097640061224986059591692334456755504023600516304640538400553058885046926088724588731074427741637237801581761122479908245164846144665347559949922408132394111205722063470643593295550698182653272195369138001845980445636513439993174269411644173462451602700446887503558306221895134011856518889237683110516018003287632926505299403647448329646740724904592544931387511139010944042983600002989468236927466696102290867832261518770793106050880933788791442888913449939501577585970904750358421984838860367748876754342894564307275574543769469235756467164294253274570320256467944751338268384696663144559519885968232995063420847851813053963237976235138065960845214441169398927607218350811842789543900841118355154722509791609589350112217720103756149081703832180461080464538624776727620783239952720968213973702589745408084067483368796945799772579052027457031198076415076349336958925337995636386902540858526388960776239254370041383633925889882044748094644302406609823925295966816647167539072953595363709334932351804326959107862827338172428856764794486553120378400177419362145809685124032174128853594364291219863955179204725528300260837646571684606890792711404225060810720605270467218481162915067008337287824440475471913200878486989493748682235189121509940439277189685125033199840859164658276405559279225126639894890281204384235685966850416154164849088600393703957322872003784311679448869157778701584454832423512360662248553299942202954591291291159171259664323823695960917654765125201137059745901776734416549105013208513711885708077518586667642364377687529414030522515468300070490015620280006592544783098501885008611211288113145020406621626718041351892776000658499268211764709495474093711597278868166651579148484377588617866887535013011424074345194782399354475431064722577897645046148754218574797315667806799355754838679582641123164455281631347428064101833896508868798458632169005818575227921517382507119015038382945352265712479553969310446591969732939137605879989457313001620872288369490733162836646530405569351890578443385314451643363110486519301616233524831198295202572791051456764382569531591119722761531832336381250401665318916480364895917120574885019090314235812661369130202490801503448532743618112977184488219467592939426562047960907315453062761197271145586012460633666642292787380197410917559817305489677487480978847205215798830222783736096706422006691291658196534976349424457633205934311882101949940847363550557277028794156180280133846778415949367652785793732344871470828198868487543758504904198505859093484382851588314525919488926343925941211571633328298196497081376902593724256374800044530594426101721948647435667986922929964564211493426341191462866679259701174155286750816866432058987518497023679910042318950515420494249602571422598068602018953566784660790270943983293943160518980492858167446661460831491698059169150100912070325982571475597751779156323503946837438956966543199057225938759702243490066017441191450842833439200743885460300754528748035040525484029752280841740008893645386389228519784387300355841471220272598727604509729212628022099873413347533983393908744706242338890191103772529468303761766830622066561496329184495241297721659582118489017967020671316933921583110745331988228093739475953868484767305627103936078783205317876082082273060474922801539155064678235819286326122275206719057935908777199320235534031236242252262188766418571946940338059771532534863065296614686792355909088510742039479326876881813383140735663340413486932198947994223065485543829677268880452464950617714219298012382983863442421741882641759579986263342268199897909304170082186933134156610043312547760710314780888751358696895827515767171367923566250155416700162424554126396081483413808540893027813128905013680524672138120918257980948503635176829824463817360773802209355830214767874495327412644568904966460724822121934806318454252977507535009067928597308331950533792897982426816541013307815800849879033583948079443654473428464950630440667526320243890585953024066587647468260887894679023650699409576717241938638129228111072156118962724739572455653796030922006728541625429323113542917485944698172504993246420589629078435245844181114453897389302425727858921732826023049283674874976076944300483779733023529242523112884731655268039795467056980179268136389755057614211776081599209008780090342898444272701457960477563962860804767353896450091995444076155287299692695435521803927773210809743292822080256605016534635641145412635854516220398550089691107583816944821032317656504641126242575383608707309862377399800975296029979277585051348309199464610898791118980126895159401103291790520462311918076019150976516814887091335382606318498209165693249245094604975720208548774236117488160714168179544689199923049925717646099820057281984594348347765068321929056034395308810892679625317722865796195289812653818160324118555938593484398344126467801935010681466461419801370927673702258282548622362407169144606862567075694720271366103596426459053638462320631228407830515319396470928803168174047875093652841173012089805460597058874134725920025470319719095136512877194082853459704617915567306597390786843925471039668928386682371756793638646672834189172791452681864599207914135282494205656197441794450593867213204911338605186477761621093599712310080250367600837566195726143884122926606484491728271107127701687794885707890196590228942118614874541099384784729344768283829687355157588187659697554568549696244644917360306241429660674558129465890746327608054988739764452290464493424195473790265052992258986129610362547462544857942773025718776832418826259141588330745906159747039529705246855901379614350781595551694074480033226992517416900859224439362249929549785998141747979475471539204199865017228088719921825531187410356681619232925184917831849138869829726327175180748732573603298750000309705385254468939342831572972246412355549486314191168281651100389209729670919838136795022810667018624168141104114850141054590871982069610293846140009580111901679738139499407263196577195640774008110051276105294972393546842314830586962632684918245636573722110067359860435471045454130994456580628558317355231535467340824162472166617985729136116447232011135917174302322023582454696871073953608270725478342143111215051593137506511068240013715613685428195532291419763111336854857052871778630851109733764327230273085409956599082255415789642818658824947465659010978969837888847191289963473907384406162837117113513654652223127836864299263811634939820787405184421202410905674742939916813868681364425663173115328660486664660624297193259147838027507961537298067039140113605260734089164143905714524004244742252043719560393767210988611047462071219658504085630242210928903044888910553393274884177183678205084428236467051995275234127739138788130451343853685743134016112845752014192496815304386238274478079484834949078074153483574497149707482745778991990326802435951420259223614831600048884302351153944482777693100449910360190162007858161967246767607128753455114802905553596794048749152489073051091308934983704845363389304630644557365673546327610376725234893452628054846472547177196001297404618691088963525947961403534677393764536313741924421291330716478990748728524628468686635985211880998571636949299140545023713853601221140537210104441559511667479745226769265928274293024389497280711254811514461853295570465057505293941530705841621901887307576645703738161644427769042558169555865913169628745411190397145291697622838477251786796346237497253091484878717412036089048742242670387234154010729271431404937787635041177028831540040239386324293389723870788145112505365298537330882596731347128562120328927060498791168789064441334102340195491203038763939104382960282900038839548452879015427397131995412611426337809780437862794770876778254426374279388427098465177547577652364383058537531890998083259147304336899062102716102262405791888848655677108410780300505698067963346227284983156065111371333978419006972535491876143085313124592287083357364178963541902045049814760846476338392698546378357687786640153604093086096172157549739238078357619849304880359731636397351189998413356033413749372774705777087096717011023105866192424377683722467995540804709749689119489546237210979439836909641706418636761528299874446043540058902329440907482962814796083413424395495377191022208993885790526374361228269416833102915325271102124747422381470735397811439905167236771427167416421802164554545009529992721351049329569182790616551871049990726076924909027728847038771215598592938074115295741549216859888969990997292008459842525098051469570788115407494729332658092711037134493165045706300578186167258138552085387971804009489491437216091860326600824818819499429531617515847508762201329091109259298316466937421820253730234240504858958853872119758479687460227842292126977965915397086593264538815771314442888587259315884091851452439455590703012086977832722397793096843917946382329478862152529668401433612613010242277093104502861683228635209238507846699448408279558385648415635250535867327036417216763277764576629404940230738774998597609280209655959714837925945672661356859892590146991554558016741474407420830618101994868242930849889748515430509626828649163839181257562944385038103905689095005565678570486383487218353400862513808673405015872311798317542975703110493989739457579561400163192460259941586866912677688495994521918215345823076519998900276091525973811720526197475416953488468287732090396704084732987211157704556627500891557878285302084232867916123113223152904509564467366572465054462061136340033093290559496911115771820535819536163483928846387923779158390825705965894367726574916365456017808515234229471930546203959488358808170728341901700656750904500227429916626289778695697219238124288372579248083433880459224481715243545788152906521169483865051122519088214297440575831698612776753657265116641612555194014866098118931308123759091736147551628517168370845546620510949018671631642130572773753752462483876117962072549237583639330627113101000728200971600457488899462113128720632235066949610375713407445456229928821625639572634373922588784591330321554751870261414862541237766446516207498686991529275857455152011972582335055342742865784412907613650258905054849102915422012770846024179357937740734162037924182976794673702559903411065430787612978303126846808369939190639897328774447943798160648730423702718414936799164554266341203567797189403930562940541833447336267674409240694880545216146290412197763973706087721084863119719470088593276380842936964848073525640796940338574147711609970821036074360896625687155393753568481091066789869134917929429508852322439471455363110199239635753821534221386450832458828928921150266334017721015785005249300764237296993052970184595103688911671513919199747107101150285910043714081009323539968457153696106709538951215439689909215408175009344277602556278501563786848738805127116704660823538921675601898550965539287290507310076282842973174502264180209918065018311927213475425671083768775782518647250623415051671886023805493592780472615133436457251767044884429713327468019133390067671113188095671788538747759797412325962092630951146815888222509429438333966937031028752548043377704184074890911584840809820734184736829930202836841058840231663677562955078338361920652493400979407945469067006097599348900112879279671619565680721239226205994518022002250593296333347787431291951690117217934271763480376977105425618191652067563386934251296688359431693300036302443704235902417973472753559799744836065335890775422582012100827988771570198375242943244517125112671129190724928000932605757150316073858845383590297951423628193733037162897389287886942260621387656213765459413596592149758694833148153516210869840877510509975677832727656396727471107646085217273465295719240010114168926045968008223798757030741867947690989090741724293975840714812112996810536222925900764867238855827967729523701602860577913685549152540891402636768127843386651529020083074577934420073869909879596199317835708898626252729046934521352987742556176682039931540583791838080616183374649015750652622854388598075758327015906631360440669664216504235639984195978084734755102415868376259543079208723250416392045576644884919858984826851231167141780629053459000310032471016958695438226863665847803535052804533358142507821967946837133460406751087507106186851969689521924305621061539149303152195018548712396923399548820052272104677586487638931418058690197904163735346306601983454288465755457740162993692932269063885014797067407801305248141953099237218827720992193804247519768154485534709841648717983287840233581556045132305243327857323858101289636658337746120655001644899882607478313527356256976233563142863508686570555640892927392446533211599186884077885523614549675894553314575394757780119235997204179408896572210804140783154986393211455765395322836788694126026662960790868023089468284824004111735085282094685229725656884707508393507342123957582308810666440539611344297770694940393545004934633849497509811794434829823389838268717385410722323367729373780914072853809668033000058424115458194325958734685741809042133708310268189892791927669843535891956622768369752660049524171381622695554494218328239807418641366887824532542842554542625515924599541285669741497956269633542804328535563496998325640840987300368419357621167732440573217804158925370248701686569666717171439017688510932977581810618720524070443539806105103262560212914911531398930956327107191327091187899216267546095435130717888064400591261825949992135878657391735592493837418591394922120765910335263031109793379674626259121601211343764258649984057473243233513561069954322740402528753552540388133028575488429160393266016048071179788462008332066056013344560100905610816370447009917762586071377811551082919297686382872461173072543531245410969693594823511686876128894349576612461999162701177710813161958417794601066920251774041952973507276542168314432181465956732662919522733500649102783116393360830878699185877271349260501624440235768218756840608105526694290189851995991576384451141777236122259861766827778919350304494425840033575939515552625257652748531647242714347089688029444707312389975020878189000007669887619265453741184161852478234644282097520314914311403359316933757379236780618528543728164848029348188659185389526833372472649004372432571585757612003679338990689348142244320886168392563132228164212342657262419039795746280626130399238105058951989461470225818527764257513476984018669666003837163069279877610791509735261132777188092898754040556821083312742866111738207269897059795652147669857910843538321247951681517837398779981924936637952159645080262876736785170987426184123212076511018384793943466613622737582998174574101955344480440450105516790232649214130609222738730558337244189339456598281896338794331341653788583316103089790354879003523731951421922640114302778419373184840935453298338269761767787596369333190606829544907292855957194933209285042927405710088986123723828100461711636445506845632384512765350270194342172678702907271045237932220040685657469229555276283980338553196642773363377445495403476114545762938122506618916420391527823106044886064685784004071016950109195114124152500490305404689082392322828119244638375852422651168980452656038436849101275981634216150304647027261010339846846542381598271505200723330416683734914637041047754918938461975627942292613735439078301645532880856597274485649774311655968010005245284450334914628579070834508342893413839681161993126644662261427109647168412555611763112426766141172022044067576361342792162130106479254661559802028189762253141344081045442194102595704268467297668807894053468392603838763052460792903147973147567266572180519736099230430521139163321181683693981663445295623316804938854526411673248975393903397006042600793813731257045602836633653102618439897511175975764712871756140484657871338769858968649969685555444900773394910144557992515725362559766130427466736103582392236141318793605954250144091510135839869415124135491553616339754476102456235837514847898576291362277114389410092331785027303272992108820793691306236379128514788038333984680378477624411374168065951193384134892565119433069531297398114158408558695988996365229627775742777508401373499857347407207962506268127475212145138610390770088522859412404333124409968109286732544728739111049322896177590637147090988894908119342337589065628580623791978242792756643529657645615080056148989631215322995408010573488240454409579773067099682390979571324726973519704613286770614300949970991896299684185112077064845933431318362146448232432346304348095326129688573451187103484731472891781750606922128882153729714468615405883444707502837579986956565137314796701174959060234264627377099839948528131975305708768169741273477933420652529553821905058331853821918836136208313283387826221003623887685102023271418662043144442498060259629391777099823472455244634416936025675810968041171970274008826099466105540548271798449749430009807131693239773203652908950842447379796929511023514925914318232437048298045400212933309909553050074437401337549072510254512089444720118060411354553564482651576242019790240866845646984627575202717184554836718457722304918496002086360426205058743355299397000251834930941343711475391315692975473245099591379071497946140711428655678437215794250271414412244205192980774969299317437808817145912590457810693864171193160441446752186900083236309484059600943533257228040857577402742057429426760628609178100430667156874374382236088723762128900324898050583986780425471714925219460871571041510907237424414347805644363765438406408854779838467133313481246601223664395432980888582218632661495440723975657252636163431224333178518515242920861203517901685084036834969633832954540854314098318524827520580960628246455866300333441083302481688995410484646364007779311610486438271910607447884672060209481023025080524953713864872436743018714085347139961785675362126536764685837520386204493155675650982046130265827952171673684623769010312003430593061293867947797486910350622364912997758971620257284679120572333532016794873603588625767398871879875397659705362683537391681947424851302248747031284775956873160118517936081918055686972630220492987694822605582569960353055857616577331301260775006785844062695687951444513773269541096795700982569354890504170657294563525105107879320787340302315920697042076863262681076906527608084164381840479846900256097632543234545804048659341468891789898112288485291867849094793362866747781385507996099016501046525294560326026994094863189242716925585293923366100699538023937187648160131747562564977768281486805803183873349575101619257659414882456373409725317967072101454737948989520231611572581327777123031381665907259449310872344247372356996391310445246116958698223673110680825186122766604639974863344103875587188147581360350171336282490311184993300563755046446046065079773464192069039479505685671498091077948846504976587878473397235823139034005337879893747155957838497407943693624197763219094774420745116624081301145720792123426255454691122432336915027063220809086963683025719902795843929939485437532123004553007535975691405732657270761989570055144517029624008498361675107381438801116002184937696722332826336724820882423943935766564217675072186598499509021171547727503124480244822411990766061530718325312295091804807721343307620391253284984851887049643619467611247481350299881287894243410690480521403945238350566705259177203515805556088000084193361355460607489048395652582256524693662891433294928921344394211724807616180916313559897588442486208429428773556504282052843712189029014542785011612472317219782238303590540422174147941884319791590466931191142284453065560728686821131477802600434041756843970623385517223337559235748018637556323606253763339952062633194172563531106768318290115128727239490133453057595268516346680864614325939279376348188280901296985812445660495103659179343381106432655563085489678110292760200612198188968343451694118370201714536328022608753784514006839718155064595148912179211859999351750892084242516543075344567714345463788709213090451138920504243790595283030675526991635141028499068977647057703141116371251988184042855847827487858229481453976852493902072567645742045549038680995018525502553447890100799027031293703352090350395760215330814867591874458889485328440167069896638444493307235986886807248127064392446982774280928484260857493213428428403488943019766125494148906429278973690552662352569733854169840055193912073280173002258920661822554627470251190475972006975722452722670853094434372260929245510442811102793659185986641984319665121282556600908087124571233945319775790104148813791333535700960151246950206386263675290110447997618021117042469771022238311666153228506476119350121115549979106075693433924993146773990271529240450299611947450207116556787555134071380556384867782887884654991406432440935070527926765092208943137195615081959490350938239025372677179061356165407697912907026917413031204664400012333224978092366243128293359405942784783184534283345743530324958224987758469334352004316230699598224042487860395969803031478685520459453143277623094342008922644427131518389305478498588389851700520043912440564874655250661337148622991480323835081094889575292571413475506068331552311471168320352742418700917853619942191608437860218560152928492132307838537101662896581413704992045529057090398817617879408898310488824650287511633013413218011694873033807912049872210348710153103896179310686126060799587852670022750257014230264734944842233195472790947694096278765806646870684915276563394038438633189744645734861282371140084608788869101243399466754028140379458022833613042206699900913782786426954652492865103555117737710322799612853482308336112284541619779710205658024700078287056509126491209388389530282747895354209503116446891588065336821177239338495515232188538108927278026298774290650973493125927339215101041469350159459045025348471501481204488070209445398426018552147534769164819551259143089144209970109446341479457445568004955664591030634938576219769374824118426699327861859574579115544487001378075490098102870095152380763200636108692858272530846460366614324075015070798766809734260246748422952182067671659344539214070478494154076860756998225120569261136693037375486477645956554890681891176500900782648511952102078052223058923910169785037062394765795535219559067643412338792192564676384938992271724331313425353139180455289409964067041432238141147885202659101474565398613253494181599012572723067933652851523403026144577829446941921622629304049280758146184490932711032908116457651704626848217018980347052744848976637097721978970417834286988103800668696204928826282468209564582550737912003188677570684540821785313752873629200889861693907960381872603154307926653384598599774674832717846350529327970298031067438273251569355806289256425341865606210618682312054772284283890889680678033019469250082795083115712979986423764836004475752483200948087617672287678892554001773348093641382626564847327353299494514018121315293788005293387109166806710512810930176959539131058834104209957893527981268718597624004853380435685554760583170791502353183883814523794269844514345731895873636864543964913155472255824759177661328986702841226973634116159104088617496818737896546834565948054882736880277482505481006027034684606009880366414898849838363827441982549332864793498736444175836123515253147012679060582305548588522418581058501050301716960144757347928797945283392138615781652592304913105685622717271479411624683030716568291554451888555335182393152327202206096889775097865965672551311000475318473539814695452037613610035391705101772084416425163702386168414846057187331807439909865378461117057954289409263591115558803093145224322053322366772400337105339947802499954091325200784260094951918125855346186748830273808454748311134217311637148992043721573011796359817474323916225146616906819495046091023957840309021343934238776627729521992251711859081891565422072541624094230999418354745375257569444620767956976211737318985572183069139761046755186753785203635163073598538404991592239851160256572518853596212425614246422948786447487160838000023024932863691859327943062063539285300988500445145271405651798682762493572787743914069054281784008526328721924466665532159824573615339540930111941579831700036623696605850281901839308023720876625108573921220627393866877028341013914665378146743855036093478726496971554364666767697973558023900359388245231770571454057776637443199340566154811862596083682346298725888971332251963987178576523375726394774010985412180063999091168812728522336010914753831003691588370483031427230448151470321307151780594607076820363022926414284094270817481074961219453552356970864554262510345354230541280036039256609160319975360225921584932262373343149936481320382148076792645201368702900206622379876072323760193008728138639699591237399991087247850001891031692608937075200162685832541599913817667482632850005125023376476362421715934811842300349152897728618093746935800524530213256977131208903767508561048628339105709081953030782195229476009992702357480923200912078948417359221069145385871538819428929251884925344840121612451264949873249137593023475164127093112115767650212015830800825697361570227472707487258687957934054303583096554333585310492559334151971376511123475238776271770026031241232540233500628736506373482001643764106903906291087097592440349406653560474839551885044602580545484983699663923602853990642003980159293359782534263711101870713300445471014484638418368563420271558228645653209639760447539583107802380274408093055435010955197289870747747276822679105218977459358460660744476070049880179856233785681292106414825500361022175582789133290231750005532182214798653009439922229696766745333620137434404187897656988643825529342706802226270087696259028738262357142758386903250737235102196905835918887459225734658099287815561713523145473823715604264531087951679294839842745007556746970558152438647512288936879793254351800619809696822907426619923412899134169320684765681913375668260891893057629852602418610879133991422708064247371338109806623226510059545802968927845715977648037688022760696295462725028227778088018805644709241927491684313028068842142456719403163724060618910638020671291807689332942712548908903308816025333189920717309618631827932129347054834044003224899344765039411935932531328628851167315126956140788052422347283221687705900058910821147514593280275577158751652759690229864624560608472387198075199568750917297766273193174208924198602958280417700601243554266622184360744917805891651688405273969231742411665875660187665716129495578766111755645675976080765213030837952802025811407035468252859711092419423849410046185273388825222756807173579910154724266320469376238439640440795345373350877401611376919858836145783222964370670770279246781272637874323389640165043584197103012194493017657074882913466202999139718367020176401507693113964410006253785402873100790242814960059229383440170270615803531837728945810891073477502595827314631638142567043443569961454896175231168220094997225197379661297658714922293463159904429217219192394229560479812024589319270735347900751778289693651369950226191449771178502000007733419851276733154324706637871275321742874983789495154975766044607523160120830987989501533445994561467677148178569418517025402438958096941152219013124484859058471717770418829713136708164003354796691331394153723953138593699174475803816114252317565936685167767501752363860827702214563071135752333238968178121439697150515717599108379516040786525076499818592045408205164161371165619577641822471276459622610056026941553234460734822122702228543229691515843400052002709413511793356468442213996721160168018247828809782670519555889094963251043192313100275766016319125155277351613502156917385551115953344601693759587543385716712062260432573492531869183530387322320441725933077724614075381604588798923598130602176374959901277573048008591807255823408152340053450272783093863924772444862858267541517013834177047875886385339481528017209189219663050548424813770608964131951815472634129067717907356871673878612957065374122490781047043445853884436531015370761033067090419505504445210356301189804888404594411194621360891803034248564866304960806623160428324748809649585012437265273200207509883098439134802802912439385432467760575025367184860524956478220403245410016900666628388665999102578624342322351435196203114068381579260810395139958472918864585591716844560451167694386134619440245454197623358925605021059682653238334025260936658182450268121840487675070720250352882311950705958796694684441494441843890196155107762068754107707115347479264323009518989345840491346128118768054145097224458833986048100399396577924754255469682153812069479300325277448134236897103267207479094697467342702037847997202375597143543897533155303888291569350311679293906205470867994357319688669188969405885960332700985627945812860593436651391057878948283337690552805973133044141259036112170951273680025495012111131532061143471052363486720401874367857872071015124183991262490668505617837360340051073183376908596649350541800368739871299921832163437019797677136091404359478634445382044598529612672360519518425429293024213591077194767081045727686666075819145755492432009827164427141628164922759948657423531782479673991836914687436132728836922096880267096983130593763630399172181779048255818329776388585889201792358721009029014332316508254793058841876490499489589621916669864949519355541242014407653255435191119546508787491994242789889079042515562290471497697263652260127475771670776897886796940625166362971305310446311595701956276966582987791140934976024454942966836169113403464081035313230128674395117262425741286454558259502851010712454014927760572756313098617304456805632922287118095262023036133424320008214294043417719669504852923146902422923648447920877587902449610900967971117501960452345764217324377036252179335136328071066585099290148785272890647549143071285241620729932722711920209240548310561300385306672360699543149460366749693697649705366867872802031588754038682851053552164113086855609576714965148271361692939447364209752486667740193517524948890164621767373326000196560238571740725799188664422810059135580177870471154515330268578435395715901110909208242817814580816377210462939145722915744987208910295681673204601122516372993898609968502350313415433185349087418735030454393676632628507102834908840736192446606916065912159071179277060334865200560035038414030600142015991212351034093009650857142398593689469561422657186238605006044913894424321576146067565241155062049298273583559089863005090062527484753606180742207569699411729815570623921793498148342428653868765095854966047205619372223802162528982931086180821754801290303046285863809902314397978320597239857497514627559874131612784925508961128140388702522201320194221750876209003781854487830654696922730743424257150288685947818560572833289014641957439828242718385718987293038906652308195293241583698926398254261812444832975631303968354167615227559210470938937451042162132540478474192886633358702502383085962044891321743878150388905129750792741426115906411234721650014604769613709246845519396256721947524593419660291353637754554699335335090602699356643505636543082934865648753637354637583384305769015154524308534899654552011159388041699191040559935997180393002049498212649658691269270157099262584263603803034260739456421833316873726351793448041477029117106103799978971002661436179852466103381074021328282456021831342960045398488513504136299796019187468349224724019226391628369812775578829182293581796095907228959915587478441390660322903827689218802820613531888248676663503487773149328582890427227381089926877828696371806331562018889428714546955588532840765608748691971251306907082702923977674237702915214773650752679940766968445513523329178905883300136513999830317412289106319132595211738076761890726842967074284176003253488779182581804245261081754143382566646673929910556294219945314790715724018898639826848597740995515090775832580384632857480924581867008943348457429731722612607089131729223511001565804763537112839227450824133987225435379393921557106304317078400065678339347088929908111526898899640976195292331354580674407420778752297680405267467800494336813885485805255716731070085377355581747140401893179453210866235835550983002598310605349534040455904912697203337211557321456753834763279994965456388227394745039264390520365448820870473765375667516020346009849610831922067880113392831753948677264903117519214548889731753593449004280350395084801543771991313178968454582640536054921080334387213498707547410809090930005641118796547619044557499882412864548641005620304657008611416999482650469115939547676886582388998548811070828745606083179093273987476517618250372037590249400702093457636418801300998067965407300332666869298089104401632287437701810119759312947624684151239670853741323653701146274608915367620297616958228357800360283094447770535175033032297207415276401506978060906303533333777078858035994515584698334535766078676037170271469013751702419835538387515413858705206834087477734942141675229175168094704512389394324212592623727059732992780244640573045418549271296629332174427483771781572633124428506105748609587818919500701990656023125865036959116220241607192206752868779288873341107534866885666258967851714940446447163054379486404222210865386708520303080654373882315740293249467396962573116900105313354679757634556225918414961448153734233210152352461292632926847047567202124443493138487762623730674988367186953322186347913450881688444625015263781882474548771627248475884505253610522743979544193273470284477180438884218986431607657794589080078866096197024236846284477678288336347367539493842425320705459308879133246766602970488524490841900719561758755158169843077634568800486958127450862578928005991205117740917661955568061968352134758497059880906101116582870448175675855891960542773151539227018882281492415400631192954129216491982215209580555198135378801187160975571270092284444291512999779700855833635314924588198968233383994947244622100134502065606810270331897493314489471194169857594439173340894003688020003900380307554004648735339443399255055731958913418032005623892213774097955189272510182149575646767088294218324797667994405504041068943635911585080330533552636165180296600113254857193791169268687179769859130471145210157272429092252762239337761087339025900524831875891721537780519835613205842879290139418509693370635005611140524707696108541434035929876952467076382606544973779779903724274566294463804446576797869733749570550214428556834906859203600329384455873050131805819098498469844869496669613839778983377334991932409418907680943225870309701293161551366599504553835949100648756149346914334319603651452895436448589501977379865065597356087247112295149281372731261950754861207653331559353074867079258638829436540314851777991187690085988853797807235442931343234447322008873264065363520597625793948812685101887029359068402535356933189177733802478935767554277527008736255984777197831036967813580054755378911815900935072365593084066046560687433545492193512778535732135326026149235058163540734886286441657798603119604765231405119832008794894944800044327138074301469227791104935953793539061137880528383591152977999009375533777918541006589825046856537727955402499542968937252529010974809662281252063090216552910577473437029582135682163139552619875486325497542971399708808787502517730749537903660073064234128042272307093808702959697934325487417171788359188979197472877151313824487966131471933073750059736850282807344784170666270462341878287812925005835072267971665832026927702021148577255497646394918208873790645115617240850980476217005070796470680993599519179226963164073454749763860230270552928219130340484269263520091379904450852040808837673643825250304730565161533097301382058811945568912446334092789089833242428434776238054990682637211443033380776128731758505653518587904468227439360030597344076409961746192295822613345049369466269020577705934520521201318971365012925670037505374653440326441670365178562573106404154878876345990070892969760957855403393171143489938755021132573570676132929886857392045023540855244880850498227560052043528808455307015656415270440474063054573004610158680503758936029138366593947889963277850111056937253913504107829097166519484923845976685427305543406734606947298399933470182740478937364560019063132801093945455203217873679509918147362644724527203763150573379177653237400359775325832006692566560927352243065619093208844179385211531816093471883536483791503853669726229790709828475001321480321436907462342516319266623998729510717938874911861151843660961291025724842855692616686397212724269896531498680485170801160710436614692208487701027272260125155079533723815064064840930773773858368851071471700896849067159487072298960223814624811217405863001998997199599610697460787169244694167832659769726741892737168257008682946999152020330514827743743293713869160807565585083516211662366556182669955174542842108347611598010684365324559066811921667480300262630698780130070145060586912146192590806425962551080096045277388861281918216084856131013839887997484160422803275692451156263079425280555803866976340473805133221394425482966749679717512446678768471220018606109794453536608101246508722730498409504900894178784161915445235055904674399370258823114183991328952131399515335496506499497531032027952622605628858914455186843926480252187290703456955852394136132544883806369766597138828230498612820112479571055238186996982537776827343030003747223403345131918566410025581196927047746432295647272361006453520385851412249622405835801885383100521388442285411276355226970122899354821723590219821855454269046932628448979170428579247878477655405735256149327775576146365938365681788279052292582599564052672868087816445538634644430741672535791588467648427473935816214055053294580002117169623948569414909316630394791509434446131909292095473223513776483959372124033685189549148371519845729079401168958523756859730899011168584312715453097120574988968050173175791943854551876616446947957558025499550893139712409775940877026744064794642293465744792766729285434569305233455995103862625933203926146436617453454408878554139538515217105616982670457610084985953310269486514756508619300826538936809453264964975952895370964442325873682800566282901235916830431191622204933873620038523863813999071485272609271807662271321525965031157689992875526015686957634325577529380488077415176649608247444146905909828526230643634361567855981819187461808711331097544765225653886471438629783609532722700659786241677703388290770358656430655445329931307332678075798522545724610561181271038145269041216800359586006872247734863569722355490672287555802945621506804731619592315721953059427081219416468004115511623507115398075776337416431063531447928897546834285093225735243240657671211482586636060256894277017215618746829925882289378658345288165905924979392457928456683392121885248943154942747999704377694613973858632698856577609503263377998739336089645968612329456672973311394671956805666509443688406757177074689992076980201824044243931570593034726842579335313596462617082382915561219600276617931014214202824585235717759237654341126919167058614067656573451523354239437927350650904794023257071887125470105831628946716665206962666632516891190226833087404177368920927212427369275953168899880936221910803285519556037735071009224679271080620071832277380163045013102514708763661922622886576477283193479225368124117857283619503272885324214781685032157031770997230354074818604525653185872933589269487710211698985306739563054808585562269848787716668456045913592208054481295801966642994049163686125363410823314543210779571582135738641445430862458692423038502040920928062828742387601043628881817198129460512223511580279570671971132027830335834309420237527686290570164303636636902239380326909260253839460320519269583818511164669531444602589848088425839490023927209634497241373333799420017073514208229208317693933796091520889761745202328277311125934375081302179089271614494961684166588538116560436583913822624729417635459375526777935391921320065219382650196033878145852048186805379991867559509843075583818785731508430351461516529499124565445365284431447179394137079427662358557764886929430942310626496031604467685633285508296977682449227902721829310495944729122493919603776379850111152942861380495120218639372008493435325902057783974203354936897952759368305603589601479290968716187091167132291148640851944339688085146230720886351232090563118983630061044366916903284521932141803397874723382309411921851227142342829043232228266873629227133487528901843440179496228217419514688422654390907736077186958772843238352162844050705096984261831472400198684098474966475146740949521333493221801266063117545370125983122872029529556455360296074497732324487767297120161325308613945749557975569001389304026434206265076095535685474697777493978833959835399978219306725737276396524621655725864241590067588895286554410494642293651949518781539273559263688261557182894281877716126506370300432967118130876651290013788315205493469407029656855535953364897325110500089891387117660623755772359729226836721784909662528685465009984057099005378998069369728262698191722567964355503834192469988298954002204296605041644411367312823219844926023732503211834244310187631385940616113356500101501184180228393416436859658441509778832187557127643660918403092089192709697410495748244894429601275261039760621671113116704772649958499448071681153298329294017810377360433963939834781983242440901059860201449116584056224816485943651428416802274924516215872480679375719553605416762082388281999982830455358154747084202552101857856994686913154394969603332203904958178000179892082214409755915247187181134712519791285544367030564583242278080400457421673693045317607053125893200424581223916003087763342544037051224887956798111894119022127071488055062614690047161151667939434416728033768329739032887101325868036111747375639845351196459034272047946773743289933815945824077944061500574932492346638714005703279196149514736714236583813407548812621927069479555641400314463493690034726690385845475297250182433711666000792926602939867323105818128686857504626827923894278322123664207552389537800472923820395361455634635348802885151728230290668178467723490624296679936359958482212639309598578895802730638458811273216015288321231801618368977351229873720330907319699552601842598330728831955888373144948709858093339404792465023195452889358680060671597271654567917007274333005391374398071193613938447939811235070205854434767570263133303851587648972164176665664661912279169254367035348705240432801821494320876380018776442345712490467927558793680597172131769663338666495795561713721049627307529452630067076202756902772732883992947690807577982207938352628456690145434779336627944663611665318451527633527458856492842788319943327929554899211388488680974774227149689169416787924687627892763415212305815745748139350352910406307493484860149336601165098200126099785578165754501204686630534812956421102616623351155596855114076449172933987320889187414778975306293423350486100345691091167303651999302577066223770999949292578470933035315476121433552054561553096932909834538392632206913316235023422517231368157730440126329039350016934770236964740367760380502516530545727783992241046184136668929531255527477482326102324138573542796568737229145928016376794896892759642201516468497108886572212808729564316972509684535343051570308750591630007861559739316187251882073056605883067282680294617694144651134361132826683937589484841480223523509947027349783660520747546580827954903880755925878033377182371318798654127461939338483884087272348880642574212886916777848412123589188792554468032523734943278668655318204204690179765598660568416391341186390141249050491014396416091328950909714267267928807209988942515687590003926756878674322276660313723765405451893052871875160256139101041389786256610446776390912636579646057947017547435196104006098719612428834581220883303568304118169839923993305234402382767022191297254825814984394910366207986936777811235906143584365365985407068752030135375573865657922749904068739632872989645196544824111928177695668690221271955357861881481798170585729256490657636661544214812494108881989258708039580151649440527248409969707317157281766432707786437315091071325677255075509077607273181081416178284235866514261817647210783113482823435651575786806880142078999989761069965692493363267910179446135987606238005532751067377772770788084430562462910348806491555150500835773556409758141284411584284722716003312689926863930271402066067279703688518985227950960117022130869365933618752199077765164892186641174752859022658228341321748038587190934120928347554032077731037352913829010446010144089954693930598896690221780413695446321056080258632614766671171574083769022166406866060440058879070676480137977934105351118948542344693566589651085878540604324839848991516813811335655854925696457781804810641107661710448739852079974423544903693098354639544650353154814566644290918415107186456823398888269367952785430102878938728855468260299824071210329582318831103689877082140106480576855949937160649711314233999751108372494135402386480974529062161300339998000495781285673356568606242502358328516378845544644429938739598696274349082556860812909999829164561597534309588867492830132443348460653392319578647210023861596129400924095942952311162616295166916249459432565502004346118532586952109547139404541436744072185820378649062432398460859916583618243377155790977826781404704604216772787109327122539334242776499274881647289952177891515844240675955542930999521899558823371413449878178721006746839904256172385453082992695927866720887489765116737035756326496062275819144458507354738055245489320781724522727606250969911801821274154080147763719149668329529326023390094948916199155267559954316154256817138043413354397506201745901350801656649934752107116713472350048253309970414679027697266491950623976064037385297931744983372013999597900458015002698818445636309409044167031263661366724843014572077208388503113901937752623154663072577670435817617892388425023051226951610872819653159436382436295798172281662765097641453738224086835715386477499959017000993661085747500247038998335586251991345047086200910999418474880891457962820939571020740426756074399672119721500119521529877887198907780152645643475435581825132915337048078670664161341117733936997195788370814928488632034421135298670023427929836270306930697368490188878771032258482243557519670112076781064422291361765926866531217394198255839023919446600863329244766567048039645698760626223124991667092311360423752605332335188890501790210890815646807216179349457884727388336626470773612347893867320536533103885505110553272429371663084372194576055876069994029014281598316012931497011025705096497404569998752156033451206074184778586194200533372409871275692381019352552662985503502613037089054337608042972837177823627604982417951216439336238590431229026384483987174564390924965042392006341173106168088046396691709194055749258104611688305948298557120708748132640163045459264699671984693236791072298843556653681190707914055823332055836724615522436877091484655853062755925540131822490052006754819132694583552991910032940566689056425847253903272652582701351831001657503862880474928410899545946662699085624837779134296793870016136053802430989874737184127000678268948228497009940250549094098283114983999698830077554090838702665931523649606214972680420550483561710299380301167711311451724750432052072163156321191169548187278734654174175223073523598590028147190397835551047249289821573705567481334442662479865224382411119624316975040523526970525025093792083829283477529615947033394567358390174133673215476037213347407535463465107674042291518798369767762603289818563802328236026332602807565676131406134084254156598607638841576436487400810144474346750665966675956067667988229084183618860273242168393766770385805931577486881128172113385410307966325751048551893554580329714016746922268916353136359621393732078782956852945659123936915625703094417100334753868593197488569015196700116097766697575494680500922245229671466302918176562191952967163141800169431947649487858969633231933908250447302872748850706859870860270650552843796302632476755984451294469640240498352708253130233341681190486957968076339430725073912802785372364533154072974192471370491097791700778092643173761466643171761332148914205259312812142864273602480204295920815547157658109925356388856885599621476094675164045604031601392064855887581011014604163849039019532304798457383157458284678588273015022583873651309107338590958024429050730190806131450147368076488234385917806626814183794216445725283833739034877757414745776790810863681497077070803377268833900118472080260940618968219695620248291499060973250882748197621736164351543468453616994140301729742166755202640340270747931369212878115543172622463360324703032851569728182758150580224771078182504132277860699591068754329736548249910656040592550941402734593241101446934913193871103838628427235030956722907643351398123347052790785086681366168601050774891576394259826777718208451804453720449221252652155276123487765674480122646828587839181477593903912206779745706120641031877942142939953563597965099635534514572727474922968572258636365952676774399039301928736973641448155534419305658872395583480495320641107648510280730652566704833405958340680162253045760406343800508757668354223113267847038650388639817404163228390370028514586879183224452399188221616195586381922416293426843915770918943186633525878206961263092963534856690135830663392102340687455828832267701884366425087576305876359651492989500543469299481968359698389024892884014195819727835034106827915434760509807211918930565650693438275345195972940366383909650953748447120290448278840624075030886396069711857416660232187351267781708313110018360250898363592932227178716810321802361343209801279951169891872251278577983605105879122173920013267060810735199544572201739890071306937975584659556434408302111601350791126164031279834045868609280643675645487787028610447169412230124827401676696936603017842709631155520472634865270583602410694530718016616215724416334408600748335995415989601790228793049243537303582221209380230916510868730985392892735086331763681267482470889770812238948332569170005389980016803930307124821612175422854255995745881844909600120865811979400676623124616088730628689839650497169451338406483464518788604083974425385384828420061611620915545363436793963204517415069537245096174889341823156357782016892394453512442178268943570438304368948077594580215249868088334711820694985113282781689253295816867332150678942595034658422505263883191920938037244889400264856953291146131386166567179603011198578404236950654947977682571287792714433607839828741475358726339919639678265572997467185707031938224559906619258758086049753353255874416907250994826597208538114641163443232523259735578459024871013835258699176083010927049123045437531589398511700771957302259231317600428174593825131622284730418087722592358951237064534103448552407606741419407344032100944867050122088719947250083479213157066995878666951923474756185220967741874328350058558397390177631290906684004057193959445787767587220480683073801044050815461177316695623414970967986442955405023488432895152994333128132014313142902296549523418147360312351318530777681294024495829972034618707808689359143426388027402226912979290951417302161585751579053420193627155844134957311997900533642092158759873014142969001491867199611290919629754106377069171360198020158740259427729575391822321311832157497122099604230946842859738074040144288429722112232357230173866024990454677877409874090178191488348677529452921348241798096662191879604150907289661396427708560291877243735814180805134348253043572992343189582541277082078918794030811786999705155903771615148741580973896140626331125476611530358825637058521818112792730486687045045186379606065308306943472558761292881733783413016064558590394423072405656595051083179026033123086806178682436327293170096899550181043509192653782576418165586400420292333871380326039470462628236302967983727126493184543283865540817680139454901105540149738153530781171179943207624218508805511511631330392033639157116301907140750356910476614288547737182560706637513360886699962805441488552787463718914514066913420807853341493948525790178159428855144078184130743121878072130467721180130652276377297303265517218239541263742565405105130066336593876799660393117170193432924202268148705492672453016853898616587707403559317390995153255417164483499754923779134213502197340495889366377514049711891050608939515078269338469556213614061611802863564718740291303183131727136868725537423991423252762206464237394973643199340954938924274685100497337521397065025592210961001696485343127186591993226017997812590946835302335412675735321911638200615268468308138173949398649132048035359145619427415342298440241794130952495755093372660967598395433895666349019794529132015563231377726034225443796897490984453127813909498454420158838627217867397319119013096266174517981316626405072894032731627387879730942822245957781678867433860964969321180691754228988069598140273486779148016199164844641315560619146545240062563767483957276356268341532320679774628494142212316142053365144284996766606125384422052279018467087016128131005319052692544992520733108494520255775789856543311898065633672106452051194061288039828720579108849894877858110014168272307270860660041253980482688784367315924633041212714129944888562119436499941964476028405978852432830894721368238258247926423055571823290715273042381114588536341339750383528799392800157114482892931283701341840646687946691149323427435515337430114525294871432240827408139679774910583569316774530675976694615098479330355341140356390505968052082486190304443023366101338302745668763459560368420644296512779792832544099680867813318403392364594602373390544542212042941700063390489550484005151303650927682717314721030314229421975532795770265882266379071863423108528049517100502433247576651249692538030973338717611462992547190377277447643413473111314823400522341609088764948705258729828074296806830850571861528842710267838183387725645350451816285829610139103627581439737683612548865362221038160225227427380617953256479581940024104491601083843703434814882502363638036688661471907474559730288842479097692256755395675983496713251794384499018379817454852921407170885710757797128279257554104862248847997466631378257299954813542297236027038381834549966015519898636706709985467219370955296829216254415909576708039545466381170030623100438892155318818739147679522786425333658370831437215951678348648659021132087620117839305765392376309964201790040340694002199506116143778709211289426998437150827014943409803884320138924478755305158967857747067311139133334523891723097691033199620742996510333777525170925883604490032677412987436069187880190652401841675216009231985786697140771287971295652019265347558175548869122709404664756036722520447936426996530314780781633785263929070657517387195178533937645814173645698817813286460530124513647988501186623735397215350426857906158276230755076779877669225372295050088963200678264130379057807969621820509403997728445621962925853797378199090100151109987836371020051545811958274904030486635163860893646898461107487692979789429328055664377069688308330659638529474976704266950241008246590559013410693456780064804634587609564271687456843041270568243023582539042832751405997750685191723473879950298864200863005166064959490332445720441639647674360440567744635343813647578391897890135902397730676029123413901536351127115536794653332203247590764451758595293519831111803750986028405735886075597582322160258101241312346648166029813132977243323358767185474075874469569317062446600303456832547362609761105415174711090942233060330820261080924785322243014808431879307466478663837105372168338519195286601463925126462063593169333753821017243357061196229253100637453392891380954938574379452976777991479926162885955788824340329211494021999398616398381902668934623413629732774970290679850316619694935631928456981489777743158717223454363985567739187984961738118332960198983896112987494079572759975376084926644457269529678966460029681191728906630650976877362053103384921309425571692769655506907089806843885400518609053964635932467063359858573194899301023475713614241572794795191211480364478125702550949141311115333985174156927150317228936722494762389164551763485231153663267317651379348406120065952608814020277300900304839426880771958019027649769171873821632616143565041294920744281548211125108673955553655897322412106574822714032093792469967865966223349078451000270579525410388121403935730903099412390507281626953569723641330142715008472037571487745285939231893722101440985030215520033373123928426814938778780501074385666922390110579639025098736189900840500939781452832595603740693745949412792973433428971972594668152458315493709601328922608973723300504588220632114684470695658834637161972015503776860549653234442069047261661337867326254078417841101854141136561600278236546594146245138825671167177914603853745428518348600539512818533923045876361921236334055462662053774000939270315830689124404474030346490054858651924702955325746544324621547354809320553355682624538190909655219425727491175552317524109036198217563026268024093781664442059406801586016258154807094465247844699919889030318878888350117694340293764771186208724322720505938050760328076252939282179216788308159560982992486718689525369864626632413720488674621492331353044358085708035415844777300670836504921735683742098934276421666677986985333367668580472510469046068174563579236335078114942112313760826666578180328818849601889868673356279469117495085880112354043362507520571559648448913297515161458378088113546740531503644565444156545193187389060819943235777828814565396365067466499430907980594913189695111166873854551658424117979930040316720500351950229389569503448323026435395542341467061375039177604736197568304210740893785599885008677732803176557574672799690117100722786120116754819421345043647826893275589691192743443453224061629109547548713729027019060003749713799379124724149281531419641746994350822447693640892220788415000926450585087939516808223771420838849650420919565491345466233412838009779165261570591357107180808384344794201940569589196866115830922909915900975055547946007951856655633494369236466976217337369274645981871957975034129339590172348566329862959273266599642522925166526365952286931966243193742055262615966307791063344452600884436976722403593379717814273763073098929838185747838385742868043222755450310013566946614649632914981665459116423048543312404721273415067861898066991016283556141801849210031924789554922125054079318326969164279817113557250712958161073971175394636299815575307285035142288373197354262399175199200914043096844989032916723527158668184428589948336935560663067425352290620412184790392473065302286522037424123285868793872230444469147038827655501563224873246592753161324082657234886459201590757379869299088864988500277611298177866683839881501846135745813708447090628985228416579010171906785143350798898534012005792773636127008816863385112348487374023779120955009451851639139858989557699361947555870428621230257584267852961925334729954818567642478791697790418876114834463355846945584762635750811903257362271547892425828373059743852200746551390358407683634220879910767221494369167768997683357775301723684148124804312600541525041031882119791206280961810852199163582546114776822524038328300596413725256944338078701083568746605198394906973364020110394880523443796437396030009548865280053377761648134255157886051955727803312523842654989592868760962975931860636146338291195296544657403575383775050609922065833128764108405833084042273428404831799455132977174786680481042493569870827409471737723882095985258675593649967017124853442548960751933650828721062844281043961774144418274970881620554485143247345550138724586739799400269861304243421348899342942110811127953898612468371729091668544760427696117261889481248371236605196173142802767528500836813729612620577585202808973190801984529449911598767749639650241552090655485389261193539194248271557297147578649549986295400552263244060779087882864703728409171889920156008125340896463853581058203329188424190312912857542496495208006279906005016881364700971276419958765312429646036490536296731771569305122660844768360231567277574626574875336740167751756587307412275456199862916232254834817729118338088096904707652679006861292382356241267255871984448475109602583013299816495013671442385852865899704038945638469517928287289784017532004241614790231275929894623625491001545581092617733677651339328273549663759472809774808410554421141977540129062690764410283947639111091692596623535385454131705723732267518151798792140249587862926109145641266677223071467347251758585045182727005132801240969482225329699259031284542230794962789226748497895814209249165309512457667535832396537904403596841707939734657161674967949156310021848046090102120805209642745184072001523675018669108225365908077913889375055996968916555786061753118976741379179200816999183004270359675645315347501359020246913756839614119913529337156324017348967051038192137405972864345045051665130928780132787876504784025962880972303093745335076598558107247131495444642191675340915125690641302879050829426211293450562707970963111331621807225085516769067583493385543306141884183129713069440709119053949374445071196110413578721305996945145388008675440855696765619197188041234654514625035587427766861634389997879425957799187325814305997118109728784944311062412675147243738913482643104330082035484876210189015109418489154661957648109805062458128759338237597691337299786820881817687394185348905205858617260640281364085512184445518007981973755017908243317415765491350516515553811562767171687672560716887567399436547838938347864324516014420717195666264469989552377378472116134048688146105088236045584578325791001500626327719827682684267854964207924753197826179139893075855653974708108247752587159260974347319341038561624100313248946962148387680278348550129451991156073076895429229098981315391770962064278638410344655945198882949011283581294447936458827194681374324599160251963070923449108545478847569078966371820725480336875454476455876651627559357651498819847997686763731739674717009116852084373821813640795710648113451173295133326163680471086707489611832605736829714904257933722411323901493080386409700701593446183748968751156004151846143042183914638260662781487046660979651813427258190223485931708444062955611781302944292581226857747409594281119117966060216758505997257370602177180109197023850424433760512340426730318717683719945517545145385222010477508825889508455560367459275995612293376458448225662005450794297712438448648583958047158479823970191506475417106889836298382194013187057909937744042423808054053506827625424564137362861700473401956974745139787160420949387771723192058362026224285474185072047152205241536839676264806469098277140003040744333376706749388283271249014284158330072665600165925194044854886145184092622655365404543220741157402071670469538097401248962886027110731751813958839558778143506093933719689850270450535502550242950105504727590197370080914651506849126223449018860582172479005372044115319124447584382275701197681562977294380496087444848011558831775721664414605727980009174204082627221312724800961300983423895207265586130498167087455144040618521073552060371252997820514053200869313548952300985411923522268168556952429182573128430925449949003673306174587699498290457337870928007092303551016900422803644834075037473500603447749104242863225327179441822339142654726820305991251862059779063818253383857211199627516077766146895074862496231316335778010917434316476672655526459247941976620738839426767137087688953191369195620495000906237318895863734549476146118440173318405566441018458963995661411976516435128473531099490539657240254165736442086178381562149034114408222999843756849856278735898103863765710843530003105993914873889282960544547576735104116154992633682031329433053776580228466358521545124268807453418357371438596925312997426986904231152133585320283509444423743751842808324038218689433827220972514689130368380961091534723629237185027999908639800419382457927107429167431925641422500892848148198767918738802451475326333285483604265372311456672726366028765268679131084347526619840475452118723717309853723437325849527832098015166156511728303325208210136398363688555520830031264175728415709162981682850510245944298583076241223732984705082986730197282427718430179599249702610183436330767864747236600364443689007656397893701694938445571408287426559730534837296360556288386182857119063169918267600916069633931348645102147953763319647190155673380610206492309185920135941438865966904283590957582831096542413245704823024433229515363323394423681000097461149543570618724356719701245736561097663445375374424595045364729614384692221751190629842614014111675663492425084141704982773548588592766634194010289242517785209137697507672190995154087283753406135950869393724558440033437829861994159793768561687246727669306466877754652316380990760073570055385889708539618683492627039206688043929274591934511381339837495915034044104470167743357914310608813113243198651621592021213936912288892358246613446352508787383485642450173762729062296612017239054905212155106269285423305110712506559407156571269009613290268544778616789773749811129805939086785132239830691323888071015748329436100041413900286627605019324946526715936066517345390083500605950809356375575574429194526601600739842957792991616258844149035526313479329451173198837756718990622051747962419033796673948543492552346829736985396002308324134035267833462811115493994603749037712167743707530248550193194647670491062148545143167899772927736980629573549515760789227426531558800038813815116479473700050768878818999850740838017772819605799499197327100538280300923309693843784158789294743370148837328721687621565462411972354732605132892303475492821438978383627230322981323738269394936122427985039035670831971086209749048222469179831668562304941993518169476692404400571484991252999907156689624751725257210353420863818941707798659332111542357429543848914407589883782842844856162404472793781862058652268863319086456854213038347890988468740622044629218857174851814789385563682145992068799050711037894447776305504378978496950968075201359983683927549236331146972177814555391977916834017018672593480837338340874552769289006120536984010686770196354431155801086618639191609065713508348855095047701247466068592945095630805256810617710633128242215449932027153024234907088387962147066259080615645262191352679751293119199019900019724357163566460910188797727201393680140544893122909399192067154467708765201547263305666450715739801480451547559356360877808482786033071750403262030455614531085490868544465636867547424924421335747068518813145553036419368566222435657790963051189378473498165074958124396187703683522668529439004343771539212760251887811690792722005015857059848403015870933534300058094908306652959923680408262339565577788932780661841934890748220340450395347923212223374407883566245937976721753017906332557378523085988394254674332056834011750883192211537177128526241463628002235242450568948258446455023991699093933225057134351264999211116729743265725118543202587545328552167453828647090577390397594698850858373176229004663927403851638135796873587549754171933856895408865666513352001125329001738659045724786038831838385027017763165803180756453178925240755811508697138208737500135329746058477584104284998808031813328186944072593565703582450194088914403479129170144874223130302798854095209939775439187749243178437082165131614158698925631921142431243092116813712792130752832188059925175659076718672221189921141888354605664386050549240573614445710778341480141794574745412407205197421516361075160057082372053307326236639221789151849370303972314431221322272515084581584446268311669201908129416118400398228564924186225333257040646192294584507477134319312636113879216353282971744620235920868810857167923555666558867606491727300705165789885445580559677736291626359499709892938385709232217003112145047220916209531739466342383464905685364792074955799058845725796032952578613867885247948606089924186007991911534145096129796310413696833011254146982415751954526972099549050865461660502902665533422757150523783472034481297231440489355412750795847701439270404237032142849186960687731030440868639649319731855918219629925429440674237307391231775073374538510471161489115911074807162703384458247023995724905634010452026956224390483041785185798212250532531702769878674393040587666251735454654171579705485870546691768165764230717747465545231605908409651138583237790256748176446658172059610044212566476675498201307488004934529950299230966700176263529061884106626301273344297259173987042136573524360459186254089089684828063634225799884307462324205124924267497921145963086115816864133166588247733645440757999753606029953858475393720574348602457203323267179643163332572934900677042824108075047136992976137871285996002946095967701334744910390404740644844991138980465204837068334868499390201840476688582399923166383186948466937492832340583258960565198681252975976792283558239558673337087383254774549811374162772883003324525733090647087449757984593362536964690383956451777055377985330368463987180642769920059915883049947243492934876033279708720371240759340280988566528576150722095350400470222962011547665236244041334831219853706586892875232039780118953465786639334738895947249671005166285848876740360460701233187697187932119197489278184398544418516194583614710674277138388312945430507877046923214415723988618560902819624042761636523766839460691161138735699819011331279978448805733473737695157407849395710985439516369446820574793569442879313177976053868214104715986647219388631941302960789049220476839771382596919905876615842502136949971988229436799632342352079173545842326613465666908772981854738581771100106155974809195451549056154284884671027064401828206230127725789528451802824744288781481908231753561897290966611863409054455461864153721371939201669319318127780181557728179462397421607551150153408390536878557169903369146127323407371873491168680091659616808649129442351139872712436046634542975595603454959865888361191585561669654673959664980756969775077563786965739112617102349906940942727880221437703133717729983234159020342869280889285628812188277372425450893267265763778127275413684451218005918419393546285923710043580935043305282302661612908454699242925271613840111029734676744142151387245957834316065815674786017508764940907124408920565460841755369583400182767288549810942479688615852758395767471242078397814503764911453242080708442774759402118281950417636261333045423880671956474397538085827106135009631247091213082867819426007445438029149804177077505284195614585379343610662770367062190715506486008931456339580726097174147997803550167137740941722350866937285425056502354467224026047918172344447006402463551376890676812616205652827432900164728115021169941508574084212644766854210122891432236146836442073716328819223020603240983022800474972434680574730737176141917927666063746923390425938799340317300346473503892960316160159604445135409382052162281679738844723708122338756859198463553361925343549432279316836409050286643296912216806800227252474099252478248818326843418076074690414504022094110203334356494751832282616625521388937843118341909983733215334543444913492625360404336639569841380624822291465769913334276631685177377054738479178545431489368992584780653025220577836619948098310133346231326206392041293302256024713137372284915890905988781550355725561060562569921899354526987675202545561162126391752094890941918379709954350290248621163296390414315790467181228140383780337213035564656880026474054781255749531856593885153644779284152762256729457519126033274967617853419852102598153688915047794746696201747287775838334613575975468528182410306783059647614862214660530143532431921262096336051466140695557048839052877196736962945248436806731065376267953666790327082973782531868102751190897797013176563791095675975482845337198084144846098617039220753736554294928042643292767240797865016361095975456557999885572930910970690411618810199357801059262415424795675858873508865468940342371330682911172685734291525515080606401088133443828879962041138708302589359016405881277158173778633671923199684922211270405098124568203518658154187738251522834020522766975166054871277844821645468439817080658468817935064917241163479622904903292395553148238378017994567043337681106020840876754703063197245989269974070284573344119525874647039008841573196978149070619924330570235947696784392701479497620685699659140414326012176083619805855867221458593671978538665895935681479994738028974797422420629293488550155420680693989003149129376641347933369156505777424199038466817966534241277202352519681193255398840145925989811784085319133078988165154465956898253921018114130306746774467098633632004058025575986877177947462189515805988796837718437312515991125378237766014289333743589831614699594628716257968680992082124883926939803889150939919583722361623934140778117785986965684894522806964170118950127091592537527983390629055058408881236577929325243936054014457924602551598693423403416710746029956306316125965349028661793456612430967336924145370974325100276181096540781285791488919990938403858859572898823637483413981758691775407451877961648798150094651893574245926930248346245876272515831842038540807425808708653967822640836275308318392691398308881583082573089992239583650964580249948039445151618138931694240380400822182041644844950715569940850440459654675250533106611586444410167668567844749808103805745386152289529875755217754777544786694735076244677088653334266132345759937129925179755264985009505633705402416275193907793154187596632047069189185693235907913401986650076730037390037662201151506300011902162140948271448637619789383388835723069665742060261440964152086077000782519275350408422488718080507530496001505941501029439487525598548047824357309028427553132136693659344270307197307807329961666685738203775486324511434995346372616027250847782705937585283391458525381696887365464076573751019751202803794829663336901259168739564834875285162385237785309214751839882659709048932005642249261899839046315204824242221471767520998096516710587132628505607856897583122422202103979803178260631556289512528194008637673209613688391630322751013811533970612494755227723057276860933111402943250324662519907397266648143283145609985140803579365625814230043834232042279202604203926641305037391043332805280250490489677360398813174883265943883301873013978761192259157270586977684901377891444483235276783620982984256415548456256164589124935232794694892935369078554005584119362540794500107609840351016452283695891862764777502654714762318514366786264415185001114648326459002581896041548946189991901164692670662453629156183701597059816225242175505376347181473731304417321378024505136311671126098506808533242575808431748715655650082892263725632638997681788125603539764364064241398834213933667705382082809226781754522094988577411786195754760504947001048137590360617491759288455321886339822292605879537894766880999872678510073596007467703453914798678373519980781445479671585918691612578975799184234726740004882849909186114199864589585469006800390452554138524842336376752301547473434957570659657373458669935728734436792943649148736322704790023065398811744181117315500117030568823370700135591663015904470135447943227677063396612751843792713968670762086860751349732923804648590565856837517477040696786095054703585551963602362106277992221395258299638432319701682807571672392629826929000554868268560905399168813728622953910722988393006848934199508686021558617413506541163252596528384605499466167098529400559954145492493718834272411585101452148407215430900999426763892413501945329516734128516503313024582790472099473447119770691024995059990566896684087131475155094445879476148000558681818360109574661460642447412639797547530781309536252988354260698061858872963264358861041290916156004995411067361980671991749745991026625492828245076251655081794431816433388728377769407767028434616055927082564177204572897490092619873427096657890421460345820193307881433537920529231120970788079743497569625466694045897404044389699878703438956172083731538200580890356346933348326523565551463479573630278316530660171944962040638564824947588174842050254147986031104187623340226475319425353804373583640578418656150793306782035081827550362826003520160061231456547921910008368768093378468233437133229911349506390271566654617652556571958854314363395816483843681725646633245098342950805599469032533776172965750887067664207492338747839786410915038303021419129602704568863793743635163850986766539678836804073246793510917579667167491730007286489272570193387762642663404008773373027841594248997747148347609679264723910431496848639442394590307471639170027113761104976526383872319611712104103898937987347212883462927865219939885642710628269764349439516459127888604823650316269891872162196487763191369064911910912851028812817310614880144929684088804710016404116015298316282345763634796297307649080703788967144150227542864804849586014914022833046458715569298768855097444375136495147019726103538580803812835200164420162897248314524848991544787152998929253357565882074638400520776521289053487919889397008191018801051898908867255758953208299584137212117318628974382192712409285965653308213680166765292627237392374654509845693764012714429447647383237873174658200198296274675069301836547073662142084212360130698093638040425227324789101507835194595912128622726037098458814568343512040329524336713533411022002943014602279061567126302719362105773576683291502996974748428210026784904393730965178827467185088691465873599177120311767495103883190662393908010015622489677117499394684062302097081955642288328883530672283064225010801643282504063541161174046871451905334869145636608649966308782697557529058817064701895547508614120246725122774795418245363298447764119462336605720207536170872385303107284143520846738600544714316977787278523162841579052722661876602093748273105050791793036939748709852275581858077813902705480318133492465883904761030258943818112967818535488655254564355453869361684948971351416153917678019467794650711522195552582902072638968018270133922151730201064897153501647484153450457394666201447419619292405530176671509870597652893257042708627273973335717697936002119598402316438787960722600166712108287932253101668247945127162239506752578023416230172362890372165509831097492756632378233178687605056246200785877597941590802416504078837790078592620159881344940310713869240731230869698264758027199946405755416987832488266992411166934006182288919406439205674865595225015900435385952121168479513790850116653116278807639868170450063988338382197032171005430436870227314093208829014298085161183259803348663332218319099439174457273541831485695242572618043673373268885555412781620882062319715736182673364091960695937531071673457912386358163346109101209885646064353713771928980936550346154882902008518574479486710086877020797285928616269128599312059600812213930642839667574281710020395994194577885541534652304714878731427693369819379503185656413733997805097042703850215125443198338760888920141872198320432130302753586907081994685540001243293677764049982062745285432693880320305448845903607847479866911799853627599318732574266724246049682962922145485677654784759383436460976952699292765433778392477214257529529308416594208811149245774922688510643368095288352501054304319225203637828867674508995592873484668129591944990812466040726936567988103844357143827816644525112435768516796739766339496357619752164996737730214718906714117526664794380517102139957227741162401623507096479688873169835830147772570126332581018659711164679411024702819571466370913706828427747279021728634176649796350282570721279623325874286003060901449705988824905719924896754614766399631880488284833729239686700219687837267391070443808479095250359562136088687457333674447222457125554471844256459294196658759697509383226854603123283886592738265976356526669125517784507100538130420037508130729850857108225782933236697915869794141232768475929814595686669758007723109580884592085281455651960801739357876961357933975967188073741740567018835752033950890406837246850205201519118619366740879749277567995315362532139812637781015224493963610118792517363917990733026897599873938378664763953929522906524904885796376284016716890540384597477776582577980800943991045281925337225127570568034718055623026183184650859482082660964441369500837110724937801080504058430500446037933432549696677957358342683308319821622964636462727509077529102308290276041734805492991516920021924793146268850105421742967425106061088926485466050345906491499998878200306954548795180916507869008062964782516505706849936587001449833807732824380972945235942857160939302459743254176400099819238782387172283647551108768168358396409721970115659040393518376835774798827279888571567058315037498649053822304290192563332447242818378116686351102592177211473177698549493674600653332598233640598239714084896264354239824160427441774530447001115720003938751938871636967856545317225022593667576973873993849120345714317465597894517908074133687696827259841218595050665468273126165427905480134363572031659636601942065423601522832917129990218582531167777955049089150518750064564497456149237011095714432012712061818066982238756421049625959344365250101495558056199825864117578120457605041747241685258053429527995626247359133142105294392484138805281938308418779012674894720762580499946735180996474520111723975261357621741754121237937017414686499111486366803481618854484035446130146960397200562209217491260779401510692525545148970696150454874024338831511533271959233767053099659696082947528605087150947457277295443985412210366874684232768237110777669781163822911590217549694085750711552465099020682125665472568295460567133071554274766274154525964569807642312955893817878032908298383069737041023000427971917802473035806688355154778140323337435430394715950279461877926670768636283782334803254770279965454968476982352176444027189994576269041951178943333241354486341364897654929302509730867075402558048080326507038069008938188347001930793813950861766579090861187812798930109698947487030493780550904583516453368084576534410446091452316591169339014729185270288097157588916400156655174215511142499122391672958836189642296025344505799449261845737461092985212118569233953392318959526864482798530612990389608802443847862827148361471202695883016932905693126134418534820008150939161032113087016452042150589685818294967582631555862892116539430634184553539993856229375736163649513791559937711002418864560601238001338980037928638462731780402909506268198513164335911753751455252575447268899800234723447258008532315058641608858144493865876235250256089885395965863975880689749508055126908352927430952559853376924925494166046019544190016914718205958223127836154519539804574575817340893227668614774810010589600018510576021804280812882752280436007693380260329920212667654293816134109670316634762449821632466815248009827385593865900526275748298257657816648281356223511143555178798302287673175806796434866382354953594395838355816506427354714035715117059500051314835398649179775018413813141738378151721068416030020462828847812822985766092496983259868392100111458950858704823908158219001517491338597162652314338669010906219214309441729525681540524493623371520345747178355861053887011581654159465502077729736010447584378608205131814084916285967708628436281222566460955012005260639394966472739821465499191659737128992560503796956176476593055305508333925457398188991853600955404751927894985484783237449769730367096950402483852095003890542689660465414764780799809212363678465438375713099933170686275227104334229663100074204578476672541430629999281883473259835342058509677013186245994013663886287864476969828822035830621561414755580898787988304945005763146376491100867882243081179683781368544428354829458665838915547270267134849763054575400488657997171501939101195092004213661056716958129868076024731630745837229545562730739159710375490106801855892156524141792438578422476393792280852242313029107401694939868832237606551036097054446066180684861451097232758501271592498498964025401458877409157358525137841611158442573971838039599595843503757234467207687495645429375033536740963004901470567176042986735238546664228264121054985078331315029431456248791051006720358370637244737808963077746102150911015367339807159411278668215218552494513584061369335311913690489291463703873802589809628127635981690768931064074223691258134237142106048326099247701793313263342454178743899763104995560400821948150104683949028924671253103656025877054236923635148387603706743855651404565258568100093489282532108828065910639424589766083012665397412296306348639508896197733153524343167909396524219396879082413851628675731745517761868173637614892480020363642055096553316865400238963948739663029687192237926902760967142755238187624189110567421838920143950401708603615335075449137736819823746495276533839446581262526918248270221437674203628417475927913797908659276524907349904122979619022810907856876812729067829092190896179782879319268211801259844184223983408739844049212071694777374578059258703514015493098878173761910836321173168145624783126617063516925362498471662678081541181331111628796490977536579364499019256160340905704769004563579179824541396296900234927372504545627788825677898525253178446621947940432120667068794703929084888792285562812436879723709910956761635618912410334580454940465580310007251918869764653782953853317397852413124625503309490774317806241263365381453672805561359361824487431543793286092714763556499843621747629326024889750810048531843965055522252872581596084691165612793055067272340757990145832780290205049770387165232230532374554007863685834699604427488273825949611414316970754649394812139966401669200892462714472792450430071847960883356312856846465948559210342275862001299252335826391294491662713381004447033132274397516734331273727405049792453586733999975198966227634160535770725059937727483526070648598862163627716179618242566273028087633588641587792366795252483317977465828468338991000539690593896503123138177441507557812273107828445589136448836544025279185058979402280071710638294696406990241515798745886163039327468891441817675227773427089958979080327825321501020090148595457495385565175737417299774821884742632602886657448080414251128072994877760320842218985700239309975608615268138013725705905162474814257225016807705650340852410944549831167163060162334784393642131614770397880232750675869326492474061340399456317676672299638837416975424796310160545305339921891188209640502227760264935723203294833413078020722360794610091238238574439188727225007131512348155612414967966445899894561021648614591041393732383996495244623138821448859579624874486829277715636191880885056629232952742636016399546537573787036998818047859245953745203710411881653411738335955584387137046106381209997074024694255072905088976928885663342228936854105689686926374540071277302762184234717009084495416933408674062079863151330215148398875968995966368180684053628978565717168471265820049220012108296588965627452347073160684408476236426063998575941099171339479611773752742950142461579840944844632766802230659746385115865249460712004133675516619951830407406374918251962317971157144592778896905451048651169904865420759982884915849228032908031821001644556528576890117412839860521532749119673817586523410375780385225203313719537098933504402851728378342779713417994396286645233091855078535430285579340096924128329075073444757375511506303169876583984309544654896080378277857203470494640115774055476328179636452217268249220213417736446544859699432872816508850615374940289957073558612356553418231163140176158852114726224844818075170204658723790162746632811433694473266645213533182863501898072513460000192174263163635894726755247677685148759718608908089085831922065271844085834022436561594282343337226461713268036940416859598869527822956241432652188213089414776367440670604413093607038176166724072909218572756464779478867276858924881345594755212302191270002274636605573876225870648490086624202902176372194290401118126402686349172005963309075352860988014440260250955144656615141390330055546238139450353151814082108643328070401930949836888660663954726038917935125183216711041073440032058436396007192951862324945270558063272925443524012434290874320308294741650673007007408802121069334199449695327537998985034008162523845204824645685863581529285847445102466663144814642047609420327265157215034511284564661283684479377794558779399217235471956251621671394404979475038768347883820578900673876397563437503892668061267492546194086389253534128625524575876206782003821252928729820880908605140154244735814009925368948326240426183977405859911554615088019677438058281556794571439473342562253162944229759674217314038587771900197269592860020229582604033018615617813347698331574388484184913426031188702668570963721501706102940284535838291614369135700479881610369513034178042728037214797695293195207445033411452872723188809789151010061169526918934263763128063726309829914535236966704593448968018537540916819510901201963553620757008871778731804745431461809056638732121640480733437188315445386896797681573474906808740466301820291347223041943384512214549434122276032368015927303324743408629279903278752313753401850424281158627528252747928376162045159606404636787654812950070713609187394404518211672614592353518484669995705425245439140022476646166355302980506594943087736800812314426752409759729385180685726798897475603573803291156550068557089312031279770500977432365124129989013913318233912543145775871592152506031108858390394005170336017781350839904136271348864634301502775113926363439870316626764140760248731217971579683664625532121748341416922346861355801708725670300588976333803109768514742781145954308548794200423773332669304951394656172210829892480319171030783428558105462927284527445217491821834175115270077742945508477569926850907785240932069678711056106598154969035253075870396116049910441340631789890719053026191583295763749859294348928776464947355806482076817851090645569100847184120684357190101981034141272369285990342637444377595681284302639497824311928297796609816305500926872651620820103253318792692839313706151662607834704993997634411981531742486975128809457070354210452627823300674184068241128061896301993417615418675126145494115617820505121797293835323604720888887897189532309647069531071843868048369404921958432323293883170713498828607573725196979704709669854920424576278910447450410968454933357014924652567566219461582529298641580644338616848579972409850491622498548997282118238603987568565318311929303434072737476840941179457608312993708821527342797092863217698045569167595776417156375346950357743103868537750250390557801573465184212629574991720416800964314785142277154504201983249217952915603617684160724559563569636636202033529434135117049528353944375945654914521249843151993519020280878561026855706431997221698254996715251359217230051613860622177648752450001898737968819942682312332967549079705092206809249885883037557992607662109658097295428583517579332556595817002015777327117825775553403980137059988632186461434048871163919577222287413156407636159572909974988560332685941023046126681620971991254358229920406238301574092173735924106971099011647895484323218077414234779542468507598712231665406734741051585880038962683352360544251054512847630158847770808636341286855000209827078604774375866250110023237602674088615047159469129598548670465871529245396485549041871994420862988191289406669820503260409415604998195364288904951469560924553058557627167925311254403630475479441803712453797712504222319782049316682566145491663291810427254880249495517271662195520647378751344933302287185409243676123609411633707275061240356924292270837897774743341164140923832957260162844905234799925233203419120960635285742534581795871039110822287017872658507223351046664795934460545906635418812470174042120479876078100255086238883355230375367945364137915256905020784013470356098045534292419224237997102226186877491226290169173813476413546210862128771671813024289931227376340772550460396055572580269111652638908911565296436420750117580227890089816720873938072599595024447284471793212165967028417664585968902356791654847845851457062310225458467133381914379571142816739638806926041381203180140681613469631145578309385447430446223606444376807257190399863295858250258052870867438531800701238998057457318402681913813164003211864137753296350920917104252135079183858598640567756925979639081706921935634790902046276271725544562808998510416913367971564279703963893089948224229550599715580195535214997637438882972459060972501268706243664839939755421905246070511849153588971740330072352903511288223830926659857214485785054726488105503734790826517268059191070019361195926336486544227924972834235956771515141419556805309939117568923603140100001621564180073017264426522340131474750250057638638895008871636397516556570315554910154359309945268134338142142226404725095857550758691624337194463409647809228415247390131903464947202472127065740746286641946374266021776958927548896150737883282177517551336438464023179552266887962275262032056763814311235246134420210635673891460532939947516493221991130034751264817237502728045727868810330952695495722591751667877366408248701406050374577348349194917768481799900936014818905485297188990557737449745979191600857281059870255059576240094890885676787241537974865530488525482717897433841771089283868805913731516646442252109149464750458217560850845613727378319006303900290996228369641564986999741940577371228272298825541369436454336339759741663574780597249325492292502875765329633852404550084810444301539240240324479885579403269445844656175230850997955107665962839079869732420927825375823705188257021599696284761934893059207161964194363299009716052607498498861650669756915063176747065975038706169545525261002521772209703809929733670864839735288793057031765212506743351327282663569843668172353867642368767401962546603178825705403145607684603815555431908049421002571628903988783520848053062912715051854289619713129123142780813776923506731232882764467340334397060609263535731761741774848083785882795798161688920891706400177495111390358382954679510727194903233671334303119870028396829645710737673517650346876521918522071995319527961192931886426092575574600155595735836921079861370494277110314166774092996427321861851066859744291810027937915902186523116424001104092383950692779330836034109800412595049546824332231749594409159804009510033058976496668436978692987245142290886724526597604075073157843658333783636268587387053374995051094798853770515147526300932622451008394219175313127030040770448641172798893058174900450318691361690535208768603776778476359739916927618441795218407242285948189186248023686849314606546627230704467386881729444510631494103734033036275527457391336420942637375294041367184943854607810827485063258006741937563438611752871389312841609216684306648368151205237863043237092154458226069618123526685108364207908727109381277260782880219897172461555285150910638774796229133852161598885398872745235391155568522161509114235043248595791008029531952012684400623872523877316665084705818685733727155481343830760244314470131143390902931267552310593384675848633840104097430067401541761841669665939849681073983492889383495656296420217333649768074386502599203061610069907543852414268538558685448503815667242557286407209979427002431093765617349068131163677635404928708668554906367416390744449664023476663559423815899808562203393250746926572106047621286809429416969859671970065379096184968056763732553078762272257849781415109189769818780889915594165476453909332000333347071646708701154289316918217782986165391235156802900007258238381760062540393507609886327683527696360658681827387126704294733563077066016444098018317948174858698521153670109756205967079431971626810881635512703989861617685265319872714870030812747775584954586917342044303911264821533382194214331148300317927701261819714165918106429364444060184686743943689419705199917825476733353870140041940655577466845873448243425049497927302698236846418493253302156203120212333998798107796250526449679132352440289125134412964514327070034962167253458898876267191563813524949671818733361474730852202343327711841702711971273476440087797809964683494879895776327355625867373181880871663353397686727427255929807538026900522585304848290009574602157693004430399966140339172094876185611947772594234790909184141552687535166654026281684786536932868390048435153637712145670239329680068917518350176134230327779871048692842895476777615620461395029507641593190673118238505448526365437014680020888779711805977521622000023513447847086569518239338622710843395137773160997640046240277041034829497968272858525117375293066534894539848923883783685220011036033857486741193647707772566703405492441358272687965515070802867138222345196146472357247095631597599752872485593134822233235401878155705462148052907094916054546410374957343084567100744617035613180192763440259804758193125662745331768889556330720376297913201961624130976965968340769074732948012243133517618111339366162733070769816417065012601890974042225085804304800541188968081098362905858115784382455808389600857908879984437912294284861866393739513078609911212876064705880186227502348127967351427451093189029474991713774736665464794304831223304983242586916995805317847412487276443971629194098990641660683707783184990533207238298513754857791367854261524848456023460342412191666001273076054282396384264807491523180700895340725114007558543985347949581232106765553931273205810664234271178182116705056719226308121571695785264414870752346965494347198128012521103430557118593436906214373664486761990690271009783769758218726784396785791449960590091988945644588114057179835615433842891191097350555550233993552409882840980474449570720102633446750671218665263436261915959599729598461235186973172786097773652561167794381562255075211545299220748286138554725997621223877142296497514466867989073349357035290317242907784686258463152393663830016018832637989923548099522426158810133502082806022251819645227007440085769669041241975191795100540910341816141349010832511539064322386404349550649208816915333220987582130256064394801107992692297082123694486232292311032122384482167302958525910548870974361612599680938300903901882764654043353061426453419709786845650639672403462077140379514643091166522019609003047238796993314432401525518336188521053801464223189711195240687612251379020344407700731364503890587341889984395049884804709065032013611068528775967614793831375360011008865601502719105861756997344321717284086744902571807060753397521831718536911955364589438605666091538271061233005717239275443076532121311343570177724221757304719280500127363906357995562316252955520975787173130643680779852373021090250792343083150517413132854828745969613240300757446695304996910535480974985456337724208653127183292475674157493863218404432455380472327122902472984020546159733344142013070029862639438835911571172853305752340587767374510119021558594827093886746943863988419071255188749358239235495840287122848559602082222894164756651979490911060426053857637562181636987430455154984761878858386256254897598773292333663280259867353524206307167884513733487210410607229401574617917580937387727336694038834022553518325403702124014149990785110496105585171381902355682865330521787586882447484992418717070731349195619837264281033923498186297998782593442877855605536625334865089415297936422340485681688065368279689234408538244381045778515147534241352977006678558576312728759973278204693955479770409767792102358927430241637694089332937229414763040911356739014456855222824745638512242390743812517371075317358523199574626548256923859001015757976251785564208950654700017131034072837686245212052109918148335897558826524199896129770395617470706960390898901207687664883650273762199879389615923530081538290633998158776008300674444686587629393111255483656168398183526681379115838622285608034844976387292108375039639302062715861994860624299395926991786708070143350562502154206738261216568412795809322019425621907369775338549032425988615681859740082580520162052998063471694714730555578575977053013793517369609516807098747783186247871671366061558859521538888652628456046619636948133046919808922164556603857745126835549194511396102850287374781047874000609622265869829649786729614481146041067123859244695963186599186210839090342829841277836535395363834905501936679401134377071755619231279248082933760394719766515309185661563423937228937419021364264539868010887998440415279639956145522492103781532315805737417998282177976708851061404745051684066299396590591577675654718421002946391159042382294222534767571350600364870087727334887384509707992754722885375647439409557600479387258841850017982449263159609963736108555122324197908723158616294030842087603249687651029550369559848888202013484647787172845930856030293316201103210001519096813041424214970569561853361929751441085025091278500496387352694189940579349574486703301324843561056715408117653552198107132651346268058862430627164483669414763950814017992292952195614943451821976194069181250093609510739399297038112255082687477152742501041971629261962867192922235433236725806551799198631007658403132028631808199364120497214523732201894748769589582736071835462052040470579070956499560000159705903618375779603863032546354183530617421509925250664981466320823768813126026966150730132099185081264144752335846345414849219185226666465793832401748157494490576732591620275836342695101516153764664302596916289465246758195474421307866489629211508378342174047715117498793987841011896079542898104314547002973525137795798771358929576547605209075207322745939437412169057547432652398594046933079203765531234935944381645545139154907273792503604667991933270419080982591342042413783093732872112202769435161875708491064318072251153068503691304497706612830541475474721205398978058830426956015076977146409587785790508964068743838944733379571124329269543059296089384236318494901417551509244576715347752789819859374604143455997227438556310285408073479872119698034615285087036878780238156326119437744699251741140165098194205109194535515653595876822470956101021789160126285351001582866817699520529948434874502209873255068873105047236683246543713259448909386654038329946588918757909448658835417051677438707143976551663996032445512141498269528332662662063173793905887892638388305425684317755325523397284258689264163948237475962382823845983706781866329147770533567337214540405210514673516033670342970544583838487749943048903351324497099692022361105591984385598406356402245315491594041167061723260582668540364203789206871639680911881223571171051264113276570465904665529126474880623564249813614630538978182368412601448838124790806013234933273949208008247322449465922497175412865912359774852315119303583233307986667258002915746416221605049656076324031983305851638993068007869313943662940074253780992512869095575469733574092769041435202879914168376802242146397573870416880472304754188651362490985293241982866330825704113327510962795183984019116219922678167693541840312457451184713940745271456660894084319105505929154095114735417939553654388767647471717582887359729135429713610957106726881255624713482329854112535761789541928119051537824557364610474709004022291975214235729158786338017932828852804715178448955626287265616119583096731902987514736565597998252946913055878129864446616137561616663832756858977929056886091046826976400278964660722758004491664675216225504800950249734518055105486586288660933054984280653722057370606132123722133414520024371080886648738801808210089239313490731599505952770117609746166249061677183555629404728075866378844701880705838192047496305609460589239036825343278251575726456960762186392160001392569165552389546586624586968292285601393980044423781278261080040427079257249732055226682870803946084482571000702884538093160199855621094382110695407661982451823662449312711164004414258172341610704180644763740361151553083419862172494260893696414190287265206830661414001198796979247392520696128557077775341261129011902582005136391903510997170845961070040655168328646451717585999808376415568098836706087724863656847650710563284408351855363280897543084436188941523454047876148117627830133476051787627141228820932826092644108686139362619613379919851565338695556381510058650827684394741348850936493283679745905759583810257857520309631878665574637657773012260983218836105939411687390690392628942158384024517521476216487678706554120595942889843095374889571867544676981430488973967733942458285469357335542570150789798500005297830292754467084002972247754283479152203953988538683826983843067234861327983701694763108209526452540679102229296177489014215589403885700865084800285154697493316764994743883576098620260880917374465052525139461950592980274267735617640870633174443394242142981708434617486647539243410332071826987404156250562139739505169538094311939774344100265309089975077663067771272502092471599943044007671325584583877656085234720101018465058203729664808375754650356863354073114486040674019487693586516002481829099976437104810122772054155606167831708611930622901148846079644817383165839047153907872256325527187170029191315857088057396072180640270721083688932618086908495116740567240025978591254187501855533511254288082990185172829462485202792550143733702427016246973567956905987296035876329366215007173763515173935687906711797218082016260127305041695888642243291723821076170535404936763922058406910412551457925051209598463929899834267864863463879493329783500655776516118360984929909981597305181524824323701590171947542925269415056045918666422409723404676492085073123183366432503536347820498887699366854135139381867027810493442672221517838517193769622615588423979345964869929964756211060005654985829787164538904442619938739372924214485294877772644016492614044493706614159308758318362428664933597880580517309153723652369729031266357237402936637622148389249719887756585516763080426489590877164651641885820404223843255046523846986224679225932970963234382635549433617061980110656563158709231972273437428935192381825051281560313471839198051685298006874324094077805686012287540193738140297045501922032184693060489844106058077223944958774832116786089523685709189341175608998522837988283763305348813403593999373785286669169042050734500228714936762947321596725588934704662856151759881360221721031728916030509151584644590132255173159213418204798375952770602330165521530976232509913749336830848250014160913304281255148370298024058958747572039671476502452550211931530104576399185952399117622317066618334799897009633712736049317489171258320908833027578346345421583613014710344149315119177122091431258750404583997539857379064655663297579627044951198610093013430176130556559636602318893165014828314716048543031901768463843623068815174839907418511284785829596434658497201919671461337903329716343468928021703100475711485703520963841473139543442961650174740193671647360386142336297626300906645089049300627782518972730214067507133937877391502924834639470920546988720973690918470354159216522110044782279002331907221495750418995581341590242917666959850956566299911303919766802498059193282365987682422586262650077083655576873138852636794072710968867015783485158298469613736986125199038592833324267795266778237520274522412707588895865947272687679613941755076150238709707130638178727461997274079352356044484571094264903703362269115057958910745651126966658270755499273034031997740595837381487983468018748119908717172265648462797156029890599649230799498801612241801777832554205535841970451186501602355159612992883071757251174861034084155319186117642696777952722997786474052118750493721063452466395122246820384150754808871713358409036277880954601671775161612698335571518192971090266121476502566931298968401151603209750379487148182083804656592761415695703248210435088701359753068772321113437758055637105256309900795455528183066089416585961004025303148834844990473866060935610829724188461314377954297386950836868165810021795955722744201242250684223046146706633837867469639965732909293812596663388100508436482719837906342969756626997566731071367565465312035439532903320564910267320229503235752588169128254178633905325388662207719442838780082884013865170729749989224331395080460896998987179226622613479384509510341882400770060046261925920254081044517811034710717874261657375836409031361795334099305576431887126529054642298012785510455721618764663116097967932586242173236367472213208288075953390732736887815872300949396758431707818625782046493204202435402569734674359117936585823230840331329645574982549558864958212249514933268287382446272971788784872054980438224230664340971148603911320962370683998157486763134953041543728326078695375260004492242996163596672314076763981578134012329975344417920023436700412470609837602629011029234429786211177214331277118061900176826710193443445165372423470801859227537402504236979927992646113080466422730029765012711808233162757864999783467635130123952901960711284514636317897784179140053208071584994220287022062906412308515862950256832749968330121057874980914807023287066339979886076877171305515805473732714720337546480477009116327998792712073748721125243369906196659686879128122771595205781175138288010301069791372954168961660876551207042876593020883626465026738836657009469337881454911360157077014048998903111236906691913529572240015457322149810419711837324582819171322954711745515396486794294696337213133151978571917341335266115064498439741682311195026366411326670020292175370849028190192914361305143247375504378845154458245854843408718463894345369419604842389273053465243870679693249992564327477919754162150885734822886879888071228170121179529010930274354844890746401083569006024696868436790519236704040113296486524967900682213835991401186141905301010826987773268139172316083530763065196348838993066911764974995256513583776483914092613129434696396725639475821345642560525288524084506660715157489156413146062017731364152251296577321381148926334364724634371429960053483842062579978162967392517897945341522946277003361463222947590298027050419903592908447804235585788624854362755296700475374200833445147824313582961043513815548838628155667522270188325036304428310967333627589488742173763186496317296296067137119389722955272843283284747533661170570602342394275633710048273037966097213987691725991798218068151563755311676444257829201289094135518745260069105052034504535928188983490287997045415517056116819749688768424315859457961303588162429124351192035693416798519321637778726866917651862124432076086922380696128754319716439970680806505884714817924035814712348246239022079045751185820399710440231999704795756296206864102116118524147320338141403780280898941344362612809396233439874290367585822147614438163036596337844591990169231033429571904159421879968861515287858908487586977550607379204958771688078238879687986151213559615120246278294023430593967737055274337392527610122956759058933750011955890900610462255542836511602182824290338464393031763948306205430192664288308439632296769168284002694129797218797156379583892610802856721318975341828692572658328303588052472085772024008619797073302890634513709841779480278838253444371810421811098463446112628772012949096639499651482254064369696313966093151129726381493996000590245950422282473983167639970549842653669257186991094701405734824363465023153847344269677363233028818266534666530420689341675038615995816415914758017501312252956923711223680272638965593599146804538926474992945162084741468421574504680157131954504022335941976910841767753830292775159550075564673508378476095108220826425386268453439732340909643873989986810565374156400843939317430318836201489153974618487599808648952201151165873220812565975526090846914148783420013261428463078837432902611498602206830967208166543921167189079759913630275596959371850717061905237330068584029828158762062820764722519875936837303250008525448360514276810731798126765323997409526935778260105353988881059737712947547967348378052862353641679920943023999209698621753925797659285617934598531139978827423634109886968703036393152859603676439228888376146601466804042809171449738879235695774714428287415487666274540161795211642271496123603135102807455679524745855402003918591050757688425193381383824079438733027579200961044699172996184476202408310265467971309283211036154746578930949661213746225613282397859056278101973979173233054720351645532102153313537142039457067809545891700725825246724695029793781645829374123868378751398431378648971709179912926964554179273435472921257165690003438291886009454286876772057237617170089861125750124196557919407315515906327165596974382805166414143522931426181885881446589740362173432591648099936543740856530963750695648356955118234585174527049777817622485860565100575844221595572020035121419293237557895658458652598727238238790515225995522322598165742946002059954950443939531972557234425271974364139691115204977649314147843687398632761626083511571527037027828626112764216459061609060047985280752937444920194636923816151416661348950172878245627809551015862507713753473972768727453432498280649713873530660803449426711845987224869812634737418068412182392789656942281511838685714760306056727342513192336061375716485295500325844502106136440579174970252262419156600292210433947735371627531896966886050177017302031280710979467467560716983223646311948076529835558043951095634223391336387270275922570669287142890623000701864677491157616221430001377794799017699001287648385767469596802464390956819077500678236696577872741149164446339804606129733877137297029760185945023033126660310009735808259117324009445213772103345807432533493845526403757716340215566286866989737361379749994761188124613558135465294255774375933291443881744543506591583546356491661071542526067489942314474599774549333294472764189101417579157915972215010480854179282582077122145330737594338415465029999273910138702170574602148128961089980461222349178366010476709459751417192353427445042944237520806061647597350167602450914171812854793063512239762308344583945344436683016718548148070035342809623875807781515671372031680765514917310769647763113911980046980621258804901529237830951682557325928559610146521451777962635388818920884658838258281910232042605329588765731910163811856361818775993881755003947635334427438204770179230062096365347577885561180223658865464326543747012947119247039651529401538772830642895123827542793872312175747851682375979497372865075879618449814348879312128444461549866111936184500279568359389826695008836911128036343718507392053665172117862897419562307822415717844173197552844694376679631640085085355974549375869247334095182405821936149960114585804984880153913216646734253582298634028167044589505323921017239121196086712888537729753857921714346978871306587958331508585221851339411882155321092873787678378440824132744335176747423752628613155991954263710327816800189358443438219554397968553298987912850516236277711801849918005116009531279871127936867646276965192196234498697224363785286020416797656726380616962441407538284983158647877539014233490013586714148910773441752440667659484188182209410007045276803818813455429794031124617602593254639627788261029770505734782311709818080936629878677433131699947322986877308582452974743779386720812815637893499369651968514982157704967162475572427501752279103914830283784910260561856985614920317884148229307186036607266881918039471921276612834139233295041607305726716310130467298603961964118429566049751441475648227254313162182244510678817507894005902807363691895089134532048307245331064187215257061452410898573802606867105463094816820691436834348246472323480134248913774602525947896588793366206291661047657534225477083071160933226891870767539102888740640581891715334570460628322955907581650834868684738503501139081307785698850841047013926695091794168076363829008585125930895015232108358956638426586501570128900430026883507365081034051902326547917337629470864922283301138076945852008104964935479050542529519240318898833742413867440856538191989795123959879559019239194776310936413925139350394703554679772345999013550980360813626982967415603013577040402608263058519623290610161537698956607102654298808461910880245030570956890297065051958745166408386069311254359542698084995491151261414017093476742745956827137949020662672012341781578909745046468547355164298200444171199185928208118257880007874883310021764829103118027354514813869406367492240544638353153770797846715943794775558223541645711087100044994942561117105371358738148471415105782300821948477665757804009619867823627530160207298372237216162939207756126766656205749703891546315175799716259299497043064880605433897237796967164494205617435668860323427822123001636976994646502724427778469520295894340916119764373352869681171043715005566678690515747256318094232146371846764577016878179579428278321371905676889590575373103979952353644756760902999887398678380315101849315003129585203908240189131954264310039393650216168876009734657368332960823588594596613673778139660120238056186296153761601394271953991524306083644527759609604129110953073993283642069959919175796004937767507128123404177439748508408654584802502561741211034999208147296503347190861966862212450565008931371282664591734044648374888708020919957477027519482833808163082421020892644588461816319627329774005687872515946326005055643253644430255401938351052023280229917964920978667640294252105302070083178754876714947925462653731371396125240873732435580998790256136216495653772279610285767398478514951810240293379278051427543466687313136037680330743908418663825692428768693578468749220496189461469133150792461723314211640587957856533971755714826531697052994812617201807456294134089049812732392553975018597629317501469360569441118590166082706769820377122058711788731326146861256530872311089034626890125113669311390375774804197863324820620175655616858458707163514561078319046770286475544098162876924234272261821142755853812828475573871136851459296569282811776153414793262535505358964082367298815750274522446467805007474767525654210768935087742072636199575568152211737408098977159585525076363042740412005434003998359013680247905057306000329974545090573733212224037945874147038785092560854680361190294273416441515252953340614982122027375223310289916091408452253853209205872266834551474900136158376676959345303535264700888692053261271645305793337711098198655016553200409062047289334515947970337980856178512061814896523763346388956859421278788123146279637907574251189664892995384313207154283756400065817837048402167395270176947470246141094188300426885017053456842744680559351541738180378243762132000193630031638755382081360126763392231786071830550350618177762347265068416790609637093801493861250572024879859808832493940634283960313506102427763308268154299798601064079342676145209852134003347878339937180510600489110359241081028131355770718922871901914616465220508543693088817372384274054506895801261455815641896281812875715529819555665188880250860452720643507254901425569244893585197096824092977746689533209423062046599670275900014563269003339925572916409102152762907170288612104561610862964857226721169438820662141350947321704935812211468766673679614296112909834956179661307118857010443792986400834329138530254835367555169386134833043296948581558483667046853119998701978864370411904183218379154302589485536406649625945014473654235408393560170470251956555686198823125819512483075149650108362763286103588414382391632038893016741493827865378376856550872515351307668978899811384159900247366481800008151205387452780739438192982626059629654567403371849334307630897143252772330727123123270130617400692122933271197586722579750006687064722963492908531902598925679335289243130056018851602007382065910377104474444208048662849706182924496007376132072996787110576635288855147831851128025736237458687050595351768259084012129243550920157059668570566762474354280609590569440843370773942334502742247166838677164324421279139113717992501272629260034834973418971500834557052573150363290977254922725567568170055606437599614383725180068948100823456468318860940965942334414844382637130992271490506606222238614631812656145397387876344892554706674322135731815099509394054347719208732253161601237083048979345927914048984522050028594483313467360007888916417743563474953570265109003388785297111504492972136987676572838221238164791299087000927978252790393479376496542933867487834394827473287224912256537666385586482692431255089766322520997841306075706910795631531087087420902330031449747656575078351733705041876142835094401193622506349544532754513170310742492492486063923485217850685838552698513315583230638508722107294509064916066242349189827954512335217047598053474140118752407984468441160955995862286788216247993479419124578535684739845986656004071904242988406846056548034222730607532412147505543882354263517549759720430800367826141329604723982053098720051913442758873795064046202753866162684406231627872103408849828053864662194744816895912446376999998642715736794459648843424976941910109552304989061281957318392002489182022475827487874238877455893270320872475340619077145641196244675886538704766341234155063154800923543940438280503946475684263772140342288534603972393015814853799045988320318306460952982629666583825886456292375400940796156142031700353213019505855206633368625262154412013878150828041895911930813175760739535355779287099798393877272900359246445099970304662172085420222975304901596803052958571468785197297686940785661156561991837424604764601174605482811867850860499324776787704302890348426741169829719410531391303077201071894891349621186718126918302319146025161341054456494396404276698744232330637029972543779773387248271112100266267069634108004821497738557863496642757651945113154164663666820593297758296592247453002704059484709337402330766768299388735451820459107385728165756137548740975923149400562777983474038966669149151425204990961327000148071465172445575201660092580873973555090281915173351367703844727073009275283827931006547072860931707132517528231254999760949141102922465899147395627404641118639941998038542446754654559530756797845648508194573105507375553352596401059225377265866608803762920259933902227698577152736760824273144003477612503211853624418577484203484898817391521591211390048991167364676508301806227013156960965699078849963793307320193794771842755390944002540389694453993661201148980289306729667825026457688861062773836849833151651821442445235953759113769322770842214224018429669128850314021796608065201816949290832379932875070624826600866161869888986006807118128829325215297265661833001334697397979364312129925917981494073125970223591252825077103082765927920736883585002685838888268344963330392078801707017456623144982206876940603595012108010948115896002429742857376873062140952084433478213233527629733113927316819399155773444666892884261253478322602993139142060434686408749002975226938481322994610628602572663370062551524379397599093482655221608975893344373327138432941411719551615481423350660616685275163511000612991523854021072706476722549325327890113843686718748027369217281016555475052516028246221514026395664805635953612453717512258451642060581839512359051028072860120917676162796496315940551268601228174436584254276324327804827544814046874223876338202251720034179714882448060363864119272923938105649687073052159288994763773109401747848705293687780387254511203176058720228991514400043793212499151041409880206868791670607807980412796609608767182390679457532719742938839400259400582688064387956912084439763108973972092491523238359554022447491601047275846795694306786118280455886415761306772620763901590849137511237950456655584841449349041306810629288581430414388165163916337737370223984197221865685836873997821852456765618965119493827003871676490349993379677809538473660876447851565688403733973104724372206193272061355791028949159938184269226096084700714168723756248091134543644796105632721553684005923591124447762452164652912858497816602636804510773897043538090059916212033983823226605259167746968462116634117092096039510489124070866562298146328814527004480244747445597783520159383994599770335001420703959910520499421684897772797716892747508582210806764615959117434764808066390661024078019697713114021167308135681993533893326422232050299528646130504496724394098076012519406671356128118953426199356435926738450458164104740981667686980212921087787916278385510203777477136811281624356904899127217234043248726419266822846245393381894403111407664761308380284865176436429146133034569549149454753125817062770332524985925173828225742793182058856825211813301378195972225311589944700713232317455482791771612415827320404753141958240395422696460082284086692323920907057613723286418205172619982062934437074243077207743107689412568169311976155538441134629159742693909695683154165575333492776322770867216471633134199411450240434344998807030839881802602884363639616431959906335199166033065712798493246042854430087941505991233181120262498987839755099050386924326922928179223170425734385983372523429196666656701277818714179069476999934063436461933414449181470162583288753419265629905175786277783485990141177598483366767984648164919979491193782083002445277845379816960718141796744901438021991754802321064090892066467000874011038432153022904407525264349999260181346126575988724809073456832000544763841983158860254398731788788425657351807409851279039123449598972823694566951054594288624038456906854792467044246699552832268959305263837370747723627700688519732836674859361091515910218904525825223487708597627448890775457377327958989031214231039777204088488436535507547245591144713511954454819580784079353578670504639145441299913838833986598668929081699833249092243890667284003549482071472053189074566107105053345480449678760771844209540923276250614767020230794833772604252548576450756526655794548211433212208321472161250017011737399201878233270681174882753517533490143362446908781794017504803329408747164974288654556077420004449177951400994722925089513056963565037859486635551406073756560951741168284693971192172249742594714510527523903020548927203943711958326318071119896090545558459818515780434007423693537637408247165433004917545865279745850711790207441665643214206181512727290635205090860788958759643668929849532137609956913265935200428753483989690992373093543654179397859802985810051443909676991563397161064802889675417455913405432530162634279078294491923418865791520716408522681785380594548572857884002034469547576775806028721360576044449690959375328740518154847453885765503167663118817228333589520468659338506831770157803513367527454783928001181489141107477637572330232219150203039291259280462390433588981104967124707542694343987564602301645001266249618435727859897741525685512363220455165317208166682036755306235518686319339467266523090699089451566787839257392578915922008134378801626095847223141575002817628472963324876487442233018931542187793592139449882761681152969751602910724996798992314540493388695947861662413627019721160048509632229882655806601770377493588378298422748886281144428739287413931413639199092989917668620806802534758554934669051839708389032817749311331828457540668022114160785499626299275893684381156878277748253308508430012795366791114960816050536684696124616745418438688789919769736319028898976966353085808995029874172406812205754008355518622648622704529773299800013609265845993482356171462381727156236710633640020632341727396902745674258405425814961921247377551994676205478437792391997748065797973426316560132211605569466794193529902596517565671867348527889474124766152533020444661611952406643310685433530463457698073465037629452859057049021300613345332760207131405413658359004571679816878145995596595010658429607324819326346276179907620445619721665820252043176098921915360487083344629413686984599462086232823048901110724963468055192634710246953914474843673926259340868573455652923916048753509694709817811061507805185299221398365053992036762279732170453724553931615635430566431603530147083352596827213864880941640429956867470966883872540008695541082903926060296979085789537108784453342402607382584756400597351370043374627372831052913003666313994527043958772488373937336498874913219259247497727846997919899550308071180607979328514326691629119380552641449760174486039493825333248234210854821792811302662646644207689183120877325605626841182586918765829845338768864922748055195099966250819075498406846572865636274747181832608399918067436478220374410820475718159239230766966551766181090086218388829433719758255185287108259352356134005472467212445382373121304140063696526977839442100270155260197909709316569815648366063081590462588269558895905617878643136348618463144944646963003766943308014801648088283190167902594157757226630473926872408063739714767240583625535585103043156465734324919577682571007276274260447286072846062226684972469128075544667418826370133938021968061339752428972807694849110959301739549410737564425403790064405835816205756579690077239827008569774230535181943878930380974839258000443959043028164845691585583388943122284630938244717168863967167235738965013951657962976614681553417471451054788743337945025853534661955740380871610538113335417436152419622150776227267672325277107770367277739118163658131464227314420232017789679063712568810277733998246663285791706420960362975734895369410116086829313745301619336471018971590370990374964415849858888384841984712061628484750659963433585168349848956865577086577786316723477793553031931039158057082999830588919029553472906330165970711538261702746582173206762916450559181012056745458460555669697280407890304761772567224190532574741522513017039079973967120451281088055652056874055710541220226610129959092849216997699983189727224988358186044358158751841648755522583822278897178987835756921459673648676202697607060303831220634614176324292142256780256226591413936987535269067127684712208438214711728647222507071287636561700729183727655851185514617504399940787175382859140315659586442562024005914186391778759642560402143370540169550941815004619198928982280715606719896317579074486122502296209889414806223894919659779888184347946945636229938842929868771055170034246596582322664729166968744670018874382462011913401708418890892349163305522285430733994478561623985374121037598610468555801820803641870318950182898861025221214928119916700923233860510128852284239621792006517271628603611638876124280905534681471320297337958704334893767613050694985325517115694668647262047468598457154737843564757341956982992891722777437422295887262605498318908265000076596454436513127139329735498360060263582394602070439108028175905977476586910617168774793769578077463968827408227375595037951548017490150033075822737706141839139794471089794533121690055879807387008083297283417466228425042595732724244437969423726647319655293129089560110980661322378424093478557883588745140999191372541204076461744550921975888752305997207578587700790430997263946545977500102395334158404051046115043941195281761285745399223402986285426144663358379369532434787348300440985739111093116286722535637834082289289359484936796379605816623454266150503809935503732902992373538662563338188976203048292840735112110726735336999783676092124516595738414407975458208648405943694093613749738535907315195730189801251031215702905616115707333237961041280658038877803553914017773394687750333355780119187671781012987842926444064454924502276099137531239238067736902399650279035632816206558401795351972086356199967904752550878648551708042292290374060998980177954191680550623740181666707677332993891022676486730123239736119391677878349731397366203224584323941687452705517270457086777746361207900623871910555044646587147915757998288504635017840885473481019557238349510029066797400673052867075081166762883372644751657276929386112042806437254115289903590771634207816256844652014951695620860066926272244587444492789423567461026245867185935719208340280735708153895583397681584329222513876709110062534748672354136176714448996491926968905209447803260353171343124713896690644764203270550446741561280880682366454647221845750081734953957525234368085516482724227227820166786403278687833542108260347874706351874465580965654446355061167870704394245134810131327901601754518186269137976887065996666557971677452191507253436827215008646733390235354968348638846935562546919053554130953565973196141438703392473411957398296389471106673974280954934008987219213764686069736063084150669538606963643064807668513687408196193644761004554831605190049216969467771001405658489461589162399413837781808267705253071912552946412519897237037977608427259881949781925562025443621248688843814649834581257009718794257029051309952996742913263567891156905450880693212661440909665864346068677291956934264881971958255004362985960126422649461865829802780435184249886642210108050579645951493004663449013337217165157964291333425166213849606400017044768840845078005039866053714516540980928856163642267831129131440125178489077553579521090417518759641775990945642973575093784103045367798753135783463364449586196094094129378786951395026794035520448298166229380718825751614596333443018208864800582409874371713594575023595481779947083816226701931770867398688034385049917319170775305240504116217107889529751731564055277384972520087533258993221336121951702679194334562885773220258069248468037912588320453841570235970659257224518982003578629069940234514390125471934118473113675738561962607206994975673373927175930163227462403365456786070872806874931079847419521388258031952501481064500276360385254234080520366756788776106959947521506537314284530046736589881795962276568477437199827467595973122880999338783767706945945278002555988761446133052408396639393910309114356128277990051708727303625265920495842761899232863403505380241792904291951925463238559296485406603284595127626229064138407685301674052254766160515521682976313643700075530076576133999278715470105523739632587112740594696804176077450624694171599368739788861302965139773666389771995517761899293807896461110602888156814591627543470651348267556200988607444445818767068901091785345397510187300571658218049331289531006276835163040111824301791260694351979185006302006689534954178777109869698503111391312041222992051082045848131604241736922945412811635947501513697440670847482281710605870850067973161034307255435576153050196147826477853902416242392398359856755770730645461221442501325229459113358616268982225900862336107777752395536338398623043310186937720389303488920762221172385922020068131215006912855957898966024812353822308301486898230976667674714589667734242248406336948345361121648221936766125376946564285702330454524961761315351945698823385302127994512058285103035272157888857597420595696215480470927017801209394222777148878087312604929072746223434539500058688861693055113886296133989365894490259420919869139143381838076280170407176598693106860357996623019150187498966637078341729123518972503869713358041015493075754085391504071560905722501136102735259660759550917234021649864732766202733428234647385335254955710211250789983344633552027012737089206170795618869303104049715832224145067001122846326409039243246585373370979707335680428218708297229587841687658512081536337850163630848955612302517506897247432161426408942362294809927270122553984195243009085886025765708908610810991749785273604597664315639656252984597969335235571191348033028151272735568203820254763933870651595086750510020740926547308018226625031107123327423504660156768145437479352029660897218453191264452388582178864687689129156157629571889823810635093248933356766777010777650128987823459367598572818033906396568814411511734366858353561306997757175652936419523877000472936110050888312879335810160961273111919275852072965689735383980685939616157321918421873266052735024167968862857544202474037232772459960059842971835529976142987429708004852537587989798832624646497621835576097538424991030252847366997953202595006344160495541268613377676968163457418303098035937246713780537140563643042928102887859663354353104872262365068931515658093985519538341888679095541690096873544706137133146343173764255338616593101706684255299731365700986952398167490832982075003919857387814837229884317135144981614534450121297123290010280616941649025722258512837158987524392236624216055853217367287185321115191357628557460719758693747359971485575119252769658857558581482903173326618072844572832126815431101315929013925135417044929622359295650748943510267264899472678438691188100278978505254280683442501610992407191846482563353912906045241918935533784374467617592226159474015745767655687256828056251350674155780469058390421609953986506016865005036811835515539326266748290051605289321200830232982680666027595292915541664405860108430532861596715005287969701655850926124821060429674778089590147080509182114616468170901533066977185495759851708685607679793527278697577354576739754842194501751002126310119405884316489949708221345361901113236136023708088609969606668556580225779596285369057643532261884015384328559436543345437444223334583090245348882070117497110087332890154142673788074668371206996701329214505516923471664932567271134239362685896098475167664768328251479533928220547870160070465726713079625409282411980871517953935325868482163477822845056678569343421617186496413405907129144589491861040137952969374110384816962676450876862806984347893659008698264492179418158702599863463898834891850173600801952591714565617719737012468004276431948268390189150851863944201288701792331120124047173242293923193544918756425163046099821282036806054161407989272607581308773624458899710395924251309389399702070698269118822397496404462140251626611941403359170836058432218933345471534582542812813240865375175936617568074947921288171212895326379943385023778038928290831769258636276470339467615232469650877081533394067697245623785788631190327433408146292082308089534801860376326887167026212402278589568178730026805689089255903473115832526151161180670441455776126019036119245560247810718124305330658924293156475497082407688866701713721621795206208303436500808699335400309143604445313107135322632941271284677796507793232293162785534855397071644538844140686372114079084347247397989507564646648279165973564220989044655211689569983616482280095578891311465014030320949196180847600609095059665702218307151402471272431651100505719303293919749234032918862799104028358355274857715269461809204159921351889991781305965534718892129639331486439515150319092096902802859226740186365931341924484229147949599039924952060025260527948488459569656863191577688828535312633670955832168023515361351706513283846939256702096257997751099314154128832383176401047439238978211586420924343894045275240682996521610692172116296607235846782462640579952295668922315182806525044584229812626532475016716937948306443393313273922308579694232196708021609575578537756419344104746159014292482757751372876954593126791841090235844602900322887452131194334113310397195213856741172174925615913248713096942053852786995583390241568239690779567432377666285284324584541186019832617658440347897634161785219173798728589400053578468345172913931544029724252848653463990151543405654947558353383202380397416260632419116226425992876564233958436921605713644081618056429241721624547919910670604087727419543465149074723853804462441634327770885518232479007057655364641059900614625606164830892485561574536181087092644465246359316883845124770567844480540842778987346592943969307832635342796480315203685745106118220514999545193391879240954359028451535451168855370349592303884557643067453082517618741526390182523488765671903501323982954865342093505329162696362522876237974396374266591076480471441387844801923502313042634036242428373148984066142510986014091888967617961413501728412796670110002116888939767306176534699754963077738025491249449868235521326046857901666220637798930902800921570253573992042376273383005091359389118577595620487072504973646311150601019663107055173940602198064213476748953619973303990178629091163458001458684094150780466341981199897963894355448059336792779625800437754889574323571906303305794615611488650743552015670237953373563111136811808797883245533623436893960350020372990714480838878899280931145506313324149221460758715965386517176079355553578804919919485940893559438954065328629881673718674036679546777560375096138969970516553189683029683593509229801923415509918369482247165201809512002651324145818301510166418756096292503964034164734891458798659604520880780727520844192778585052387758230664225583389595543315515449442746074952779203763638038488670888990600729498861354909471321590429725032622772674166931369565754100914640318841286349517172295325120529187283318000467747630179916138864485615778443984639563453848593626016953954565538088626706109568105369802814091935944622294007058277540955693745194273846684731100496337179200817950615582294788866051415431289786495094019641470914643999114365903886407422950337498876443204076320460842268480124422406225159539681892820876973413151094447771699450544918747923142531327133866217845875238703512420202835956899284635761889218839495129499552535732080811879613949353250151924604368409620236846163579426296296033944044250748248735667551881396400067053286565222058730934782902941653954630098516759603042344744866106764708721251494068149397376002027121903515620994312998537070308036612928050072702394295287557952953741998106657851946112632494189484384229332748952882387430642571059999344054290677463454407067753511755775115611111688850307076957353417880362983461220744718963373660133573000969746462502195457507761854791698176286136321388897392011099835150493013483239009754120236826156063535395505238204414301908245507219386674278031169375614511149074627136090694590903249883448223799065297198508457709231542135995629382236076189426477272538404378992374837257293080340810054112990777554172981785807867299346336554323728285817774572219727360893146867340870127091824915162482001528202126865458584510056334332202163982723349297058783097914898179680713943864784681485511223204412405173180614382655134422040158233587518062574997067512847098831520927739669363681459199774736025223685989803467747132161502945485006039140330166672513400795842417203743671397345818107546615062987334712004995504423967200155816830498180500805850017629718476830012994133785478920755882600684097407277421574982169483148417111315382437780471836897548101323171632278998640409494608349630726197921665684131717743981791515605041193119451272503366643264630741140749024907468113453061616043106453354378924219256450413040204970061053159387432182167838657763036582264229355590577000763259727445979822301450403591419772040750739295987199627840532163521937695263854810635916267024303254649188356824281166111760976054773067528934493608016219413197714529813745774807450586981615632326585260771935018012898947122871247117106048600782503888255521791676553396254860860123703088930579294299457976598056580456551646469297604929881015147482605871856833245601494238562545207704486279620331598005600778640370601287955178088397899143073300193227010138721708226421905639983333095975775889052795896362122798543376266902025643036711997048847103283082346894950666265700685395579424618782379764492960194149172121544861863577016423389061456819308789366323388237925290705262829942058132975671696786738613170020006300727038892245633482522626798255882467222187287688364273185017944293529781617744935518427283053602823274955166812406894517917872314775348881376640749886054069021554050524520443055640298460332273460478062773536663977834190563869179927976062072717532733945959716981645815112068218436956929399703649194121210166841023982618191377006032265545652144902756130247119386089485122320180978304535836609292767024837263023468765400705388961955521751658279532202446578760198752300764660893073079103212204358660629549898760190858279804458915634157074353923810195026673702041103509117001655021963011748656971343484369832083846782316918731723190292394928690763264054050337128619259913103104886880482197128618467729676800917887533413402166430265097756415833955200109053896755091922319107230405014762485473806157920856841920502217356226317492733921402591528444461879433509334574325099347966152006510925231575669335325433432830230733616553496431393659141037480152514726196781324129448417146172360967760064806323576877911621103165397043567052348455422113570358190310067650506798721215824746112799790647588849696877288748565663164932976796639851221760819643976149258710870365032802264113263918769031618874012219339324707345236653480274295858988770903498342762342762603796706268830008747139106672349961233608119854787837011159784893180658619507446921569348980556399256811469628760806221678069769488993324003072704571585104112372114819826552917179736929003739912122656751073042652901705030974867342021166058423579402212951369897239544910556710872247128655972715158592840749596939633903369006752593365485265227386481370226853455559759982479971101861952758194015068852198700601296609320573767637193330518868859847266720501337210144597820877361688385037792215567003243068190100803941368639989046773132056612812586108325647489818977812560959954396073673338859397044589419445291232083344473295925324550417068003465127961890560827091793958932094793974449754339373988403341941143358051494377095351541604232518361228283279102134143347427292219200130150998783600922298382331302279816837217759149001873555606603005628644124960686856279226178337220914633718239110023465126237858213350327638858690780729724789636173399053038880292741946595870460220056008807058470406548598618313254504348785023268457419852947235223217339796262292916394371048261978171353358483490676262791476666572586772812121411640264853130280584945357976709173170266041626241341935908617047995780942727643016779843520760240356216302317165475882540085664304918511767669268700965284755673161469657988216563093594915882426425241028219926160466481058963403458363681948484802705349147774347198464936812597960745260400658443524202632251182729249564557953511083710721600623282479069310652761618766543015752249526144130917043906030300026673760541953264390022256377442152788885685179611064038771553564945299941801857074812461609168128921402797788196435142031284772811457251087961030481692065549056506491306985763636828884970019325086589313390263224518414531263216745917967823706139433734690821643257351510832807518982836570241137654143340641637496716437906405007957791310549099540314062955709920306162313069485064525699355896444112610403742496023659314743256812469060112039591376855756452133187266440115470883303010920139067897941058008638105866056699872427821163725362374133540228642425073658689978668229359241663891146338592341072894084701920744081117003044907711638267120647752507072950531051863412974769020291157013605576670911065450604395508666488894687210902324285105518156778646649067650794732108126579637655583499096929954761646768200064212143573121365958651173901733757170251461833259084254818043543755004049525269988996462921791796209876356276423750648526886895040815656697682587135418960998219067567674838072810088883644200226927795596141559547418953428388590484803507071908814059956006894124022007317697536076521995386709879678079011139877904103064773819583850270360266016790401733627444984671277989528946007551573152254883299967736078899838549278382656547092716918142526737857907212196707265410035891010520673764656352026893261468683748307515325027100276739646737834611368930786296295278599693048681610307384249313146347517049766560163588100039651203509516815953691344467252987942146754966271307199226586156808182462539021061031164430126658640588212148424358026656791850821682487588339332804022575615539831894183641642843589928082966236398162190452028170191813872791972842050041638445216785212756102474322318074813263983215477786336174016900811874017972031589748994913716081616365091658573359133251036669478455918971272753581711879294454936859928177171517514443073177918705407114647939290556415516330778365871119131409871751878708716037939665389800297510373799442390519080639581937725427167614867165181119149875815031949872084742632729695354255704969628799682409172504819570649445555730483655213696024442302394965836965361319804827193241874256423084310383213309625462869373887066345926515623730193471627584794061408450477299659115279620456035767180136317398339391747776322750790953332395995369911467348169468598572654346404606619656468373329151138853379785638787326613179765628209849177933082117811282598792116283788318896022772307666570869636032168877546416741661540243969807896430506496108657790775878100180756961127554908888401905469584437723302465810809457763777782046514793210047059095369149972037751546450030180738142308969087849999121835085575487072236897817556632129395420795786029080999040105427743415446970309450203399026802823392749517697703908116128014895908302793098099919925406635659951968651056513156151459263017747076673566917709491626315959197749156945173501097915254126102118895215176550351721753487259544799045998454597054601668888888456513272772903617993912843544097793115720585232442623430645183308748303331453366239696183977549629959928146932571998807472627496732934131672781573896022296510579285899138715421824789851719855154561156270446908601402385122119747694891156733174306565325104535578279916261389931322821073449898032226343186253203346077732062973120359920897587520903284399642728991052458992248115975242793379511561304757211736132852724947977344803113881605309495389054666398910812078332680900584947251466410139149203545834321262913364443028979850524295539147141897268013380018901569610116199129040759206712338718650118833256395141069350563192329174782948342526732028738687126565368064959706632661172965260397721851590663517039750973984887936137331858273914957511639074588683450478243147981102870775008409435534781562599430805910653052141057793522634859085731641227331613046302050517354707685290312041540808334681818889143923765685793403595993915397469682865788062634089610684323294871163121534892244775852608567853576851537308650446988990527664586842242986583344074808773428190075985870362007313791255905260493060584981157657420626645971209082430119303995917311442736795001420658875413535561086975559741071680137177087203060033165644249013499302810704783228938437499700409223443136761812961198266257228548812893851482534022503826782640706491062461973614981092557101455220660413148971611944319211180934643725743395856554388893074300804121384376330490738421164367953621542115535333465440575832949412138928136885646648287189945283524098723086487452662781560833770112851165458371567817941850518730789390531426801453430243584205402895887611298799153669993365464933185035539722537479764637431877856866072558015815328734009158101730375915387478942713424996497759725732508975212417574896128735104681370543017631930667452764004328195288763417840793782197197196221359368335318783285153379905077385504041428291132738732027356643648466814803744150676833935623440708944737176650271949125313290072528389805941767415045307152741764413102010582542161180131406965239320778130386598929844025562307338108923573666031228908318991919357371731901470255638004648983505936079838676393546681200315777557189286296823830596730789142438735501624037358538440237800125361801734729254255485427624274631729160253090999166628826933665918536615355068656646257142427947474059258277342579706862046542465675783020982678936318050608796830946299759781973507000879814681182554812428571191684220519538001444148542757854015381235823745759799570983059973830847464606243528236599395614098489560843909772364565326196773641535488731353402243209181091900332309275180854306834086159311436118708035896674112701828584925328051526510923438796277135903485629513095722295234383601600313286227099947146344419245082483823854643661559332125974475254307103495467115066666338473205416702094417313424813320575241918606105076306857682918633582431348904917937086403377628316394223749734834554093873215359260672546228286654625539265351362821836819129157909741463380627100886476129668186225611140229638691013467555855695596595895307557203918196237806871887769534169083101322722627640501972174093380287959484924576533309353925384463237789356216123349609951623237628668722284958132534509456674691060373833410396196881427266641595823738277004494593757350101720216491985068713238816580694449115338798530440303100675364922771061119314565863667898724943570368416781883836274622744882421323635514124627557792877661792088703011068847205730248193810974758966481332217625994836701603033015823706213245405231378143253246085516543049800701583280866330569278319971547964551529270756592124727304055929966385882124055308724989910207590136376138784962624107791141827337078475304512321220453535069673874973907378684403908212906962263381556665124070469453478875157080267862818366160777284990521653864612836725082476207402160873886214733941265129220026622155602929552819166265029954033535381367760868576203460045326707503383827678075204740481379996573946178844377656345393713903258884843301148262172555434710259019553524934204507221453294935342687436622907807821665754558965814124368576336266620857770444766455056848337756972538107803462003086744563675587682646807203271910672815860002061831761477695706675867700234101462940355532758847080398054405639736042026605351981170151762403710456705530268578302347658279818504014410950097903328594146061769854877233057644614737952099075620216126519931095857634989199032343487965613082560580501721628815774567392324130348500299200086569617415928827523120058087799686949370786724433414517594753309049041745949391816147557812359355740748157760560346212647868476271943677230182681935925495194532637707551672386055754893739435478745671077092688944021809045679691486102054835144031725386192061299916193749901963440119019597843780946470674377559885796655727627345814932434102530679872559087595978281548054448666627575842365841072787318774526926975590380226229627587314794403841970397165940479497604704860155740152631736378979457542575525748557836245827693533438464269548147172866575544575993198150901654562730151076364628093852912446645822442391839335906032232482636169009164440509588174648789822449016824756883039130693902724740033223058607419468104616668309144697129921890950263387119871940020232399759722264069740337051012276403471088588426812747274852696296625966612376763798234503603207469662176564373996300173547527881373437570494765467158078471268265004641237876376493746993355185153965562867527969166912173260627782674149334107474787141111999352291225776438832554236868899713322320737620961073084147224020081799413422866649175694659210653310168793695956000225386163567174133586192608438501554269464883469299349476523494500748871995843884349425885545613065862655518269686064362937360242189288347724534798717777088010278621282065702392114864099308623495722609146992242113189883117580870130447838881474902607605032873818116063688677324133739931495674326121323363760713915063165652859197765189498916377702677333734917140098013900185654870748666585174371695773482135073627656504699420293210275064790843821102547702611281034982632649875249763859891752074896499365826967358352862230664114650579627597596367489225309030424135875896297013922474742816109335785660909239395457249157848477215387635711600702562464687729085694478845533684070289927104303846207968001739966597303447641903285519225768064861685859792645122194145187354208382680087999914112098519125586529586370578625244270369274743920780018905859608092602571864005835428398490304363259939383876558393345838813535914585047666831169614176372900683762550396970980622398356241773833728906141611162691105552575595159866993378773750082818334691832507044630633451668198702967258146228622369702666405081059258478551465290349392804299397035994137570593062239368337547418903128547760592896172703695685451177450582428288742855164650156494092552110990850881507105544337582020935514383133136462157190302514601071710462145439237631541859417516783993687880408876437610595810442165055422953220730922155518627061143348546649672350254107619415005008439519670693763872974711037758630302065994083061642661749204055957775535813117095582394690893931824486688873082356337605412726676071937114552163719299422012248655729589168913907105271078545944441823276702315622410442632009393652890091491044335717826772647048610850699357205136743359195780776246230088972145782638503630564719496843831388882586552276666287220725853023315196623627387710670262759016390612851176775828904350333746567502803242106395784189986902206135213110637723739344402164009921744497202886743294110390524503081747972390638549752464384372087983470067079073729936095081334586381560340663079985487453956792994140327932444102020813743645358685077594822797419179605073911507186270082564403366963870099462767458403123846724183789576198634256274385198112594835360229530910883674382191668055739216916567758775343108537097442165906616505012625290313374784326035885819833976525170060396455994979131587773340309678589850348038307712721099821935320960757893113137225703420896764321471589149674101053345332386333120481969754857252507805654004945616482370602896374302218979088802863103044107654217161812066506473979060724202062324363800376895525300430644794992171286113928135230698155388390719737948765305811950645857727283047660648067131888440897332403326942128205671453748844375530037628699965723071567547681157870124675696871340065496772577821688847946377392801005454542770384717523481751180963978485403038717769782372428972262682963736320180306565576095990208022395632310589016301246387779884352227648936840715752275378904562810747731751778454303341190690800498727942408654728413674649542309434277958563666076731721747567612938651739762674645776516489648369119334821780565628810268169255323542437889758078344795867823864611908667186399107763129292295968999080501888389952403352461248883643007129902387939903150090124542780778050869833562302180216401945047885473268059074047016078224177288846696871249202061669069504336749814357286102917424316689197142734795374273127970524178064965208031392567407934349901373595256849625277158031479691340003858921619200226825763914581767329904727002287816016403141683712014877095065961893419384587327904189754847693758358448588012086122693388138603580944807081245663536326572081992518423906230154359917896437467795584181433910143574744208358992326663911602682364421591207938114216459056598362048973583134590111678482397346092130932906232085202774718145092044097770996229933253806565308227348847989919164220605242143586436144134874779972496804109919274768000208069117357804591553008115758592186733242535948894856163796712938977273425283331730499571082983411129306629280967192804735964409384078019618180730718402523387263596889993212221742611065616912927412235191944492262054855725344586603977612545422727279691996040898895086499353192116555558965290120761112709450376987874029843797997368200005473401177458580450838290518935264171892385072815528381417318902107327831169043932847504441412945226784490439489480623449608315900212916865589663053816491995742238043032811206622818714992147716981902459556284337784078303422349048743017157538115821452477023222228159127932902963252098581576808613084913516505759933902110221190861809221807231940653663268369788267494136122502708538602341478743767453779736530478661334101362734283138066278891526215918229959870443511226829505672750711932754241512920651496509656217749096952242659581539406105426856883029057698139924530941906036778410121430369461626743323608746107426734384225917179652038162388019040197803696900922984055340061750918444493989478179829898769323316995900737771416650624424782109004782474811856486262421222047848966593344893858081179411835416017683876438881222245731432295721994273766154562128806260940285625362409796430077195204424426081529880446650592181589074148760139533187872135251877010906916171512046431464160855453325603129613374577976087714105308013685541017817982101524230668521779256004746666381966260863708715180216672243657540416034900150054818416097645231965070479794474016083931075456488366057002348301108197005270128593169814067272461558397981007302696440693059058252068117339604667894155595925117071378411556576997023196652135705231996375517587619273731111637725432214992671315514496395165903000339672897743420185080755921176378373147960118683801888697971862399265815085714569308101610719076031493561657123045210919693006150141840270525514344542843194687785518306129498877711165327173111214043878077858880824032027378588844893531719385749015812598308990510466239539155809855092009537945114529893262110627170595749276277632749319870173128603864645977807764026076708671933970933527578857584176391661568820242152239864075698242843097748862604521902967115919711320307372574640067178336720852233930942613822371483856672258678116486864447860683535112329180478774522281692879979808793741839441136961827849529370247276771587665884823522842119770192247292432351820253501513716028001276179435147204947995424032237921979834182487000891858155068704913676311016190869764754036848816236516388441455944206265451596821210355126962307760697275887434273400165643098930447521059667523375616596851006365933389870419338051510355064409458309833762931655816552495005155264229820503910809571432136558465009784548065511096625234093750691655122541996745714714104522269136846985742870885205390063367324409190255789654489933818434991284507689881208454422722323404500044401373495837456918359588280862323566138058773290821794589445160717152538963984597098782726338755175004226275909133664467401841019166688187800829947192795907264972933386654936222410038052248505520026609599918896840445972847502419981168678464584268913428631239246151500194503280280905571878132086407377808101302127464508105606123603003379576950078866744833880556272709477601134891531241997763536396789444545909394687626377130983249059457231272145327177468525915482363936720506567929796686739962187584673948587684920848857784102097262481470407393174397934763622158356043215825126715985455353185521826731560684300510477803165817996598005575683787140178885744259178582769127345694205651399112443995447941771186242548308101221119505245667844089955699971885497346999672934201685453398771887992943518735020519187087548542946713217107135005602368773979425698214943619096075928447352535175410957763289608203041275933554361520075765550450680997282962972936211456183205521209436699111872200819280412899055089697333691919971844495162936966549485472824998995443374149349295615735064435644937050779218861603916033791908566065318242543790340659164960475138795815959868734392308514719113559829963678965097266555856167561092132316758270097419352060286847848707584626551462617510409519025455054291645100593616725054213610494868337077253982213220186736198682804384829981068359039684958493822629314255337048305098806375919457380732736435199895086489736742163666740269195133839116952501787189863341791270751596936372441578416101601356559185214355535660223676398247319180679869451564570226536237633346099226630949590050836966811974563049923322412597524233061355395778408627110610385670140959245301692778478121893466827360088150956812353252581140666916428950476906236198479403042686694524117886773245093151666154580421145930652355157188142444559013716423460422127703917967665468739288271229389134654315096649618544546458274111939522047448295581333539653701684445528052120178806557788724308594303970276605186316795209708256029357067225744710606956487044662887753175488110560584063106303870950854112593018589038918598212999796711523842871627019041448063676323487055048734853999764201078742913506068398551603596269516927086910848632399297797062303114194421269581844360925527818532469490442773298897805032701394501674477470600546793306662391899247537385740821047563104016787377694183705609587562166784489422888078989796753246165828162964174855267732482094170029632556719162822244829538857484334767341098494588921212620672740045613790727135271014670641816301375075397296871893250091272414568727642901751715145608507341150683491132417936277341823052908821018435970902510640159995609083591880766005157735384740106962678884664641294024827372763883757244933250514465046863669379790683334727752476314349387174149237875356673252624520693347387094881230078966905308198311056935236181286610192671645923442927306039820777585901708713659869726805951804312388529671014149574105003201414749092725770321045462562065425051157992043256959180107881727253381649941503669633868648707524764749876391791123180357703672004465285028800993591612658281537033574122573210079743464761658037165365689478775716152439973536205511071032684836049191209070364395943099947460546893139598104687759404136960278938353641169126684566734151736723095756977903008997866396381931026877050887431540868662063548099337889336777316840549928626806174571194579552458190781068302572908850065240165681996313080698561265444887642198919392132740146121850692869651844278435082371027048061403985796147005761213655995109426692407798837814721189542093037435564507709202212291255639738550443884873815250795959157016912931694837722679022465123020983931840246269360419402352821658855652979294022806175979839353217742109119356904027581200730393020565876021113423169452860913797035189052369251388532709600339225403268974596673393305352393517834789959643055985258941980637504668243869258337666346115542950242826415605505894475552215831340844909661261620201737175689785745697101609860789145641096939211213256668382062794114937323129388506991097979938656078431444274054513745334441733549834502529491397717793730001129633721766523107030015539531334793684485775957773571317291444449457932164074692104290078803520615509227469904054423232465636446959389731435411270682954597958620120213677285424253089024196929934629823215991504876028912111250178056850701467913275284344700570695711024582406035981658763695616624753567804779100573617907749010290298970103215451404944412236457248381991266019537413711758558507706101070315839604163352447378662947938012070989440430135968023828906002629928598986035128713892312004467397619688307656781746675254578381280609154881020868688961595965502526748686003954270310179951366783889302643044702037059306094411948295298352311369059748994905745976141854052999908378505573237218016540179294918799247604094967535328704420159022725600326084084521823855447913401890452159249514791612154004945959883041129971197106004069469087392721509893829503259435598468520432514237864449257759066419617383823345956756484850811162948753631810999710074786478910479343847057738573867712075612703021223059740214439156075261653320973395366080645990004438054883615643356900472543273802393168426317589530700948025985693809791429601590603441112166564312004800800005226090718643289998368827080872533803897796398922560553206119208787696100229895928756091619231804066100033679510073608192544606135130700018823780908832136378678306960563295836795245068391146797743471256911952327971127886422861124604463188871794430244125500516626593992502183067412914312178351313386361734491358031656610161788101972850870343252330648820754293500047006587337721963365792419020129504716061748622356809679382128281814475188393864923189048189753993107402478025843133218340356103300092094786897654349177608978766575200616167134480256241698470344209113313067914294503424308431568907045564260194846559940239449658350414584374710216786136918010680551530712738346978046484940979854072675745375439083437737202377603373722161525386332267044684855969675625138603827401630564458457349320922394029047365985762539658954674007040790946003033643827322574601825313371358646946121712293864315201863423809423511548779147360067610238843824113926606676323489628845592942607774446611419617089583107619984794096941472047185726366504511222318229253231123523310187016773392021252011992284984398123062671028044744536736878107673914031009985094917504122941925203392913759196291069682644186562388816873046386530979819848195722689214673766294936443553398174127097677726391119036378913241548752885447042667449669973684544169345080474878461531585423903034940052387563953138334386467626075573189342859751910114581643713885249381273905680457594662756725922610310530204978970059006653531449706748673356386210053694321618457155344530787955277356002973373207279324576354011234818267011921818383371379971419545437852233839069964582420054402839511907312566553956954759999322992738097477449122307082603382006477719927133089216314967044073903846680767192648814701209733414800947393275905534874987209512863717717286246347783765670818611944771573727862047184459945097523209998628577642180152384015772089135962042744013843421209321096724828625694435702917566565688629148231630664972806357558914655198849417664608901280018064615764904830688180351138099014794302927435379694973203286617139881681756556459859008616025773080796141757895827666246669032518698159522423876105972550415320451216476222367528306394996046925170352079165489770430617145059597489661441060832468987567724906856607283815444535253340566550862925733550513120408337309390358873968724611885527983062773340874373506726416554059052609203524389690547249721172712621505672754183890897051728859936002597287591665986754411958746138047204612952035522722950114314929201407471990251777782625866472896663847358981484628459837110421718587879370823124741268622076827051073625884688068446828539833163734370054880578741400721887251546576226841042575420545337927888047353935193557747353808207439486211149291749084223149054363095026826024587735214809941537653920898576356385767187882396376479716790395469346980115280475271041613189579879687943983404855882235147681069187201538241336278981655116309391656234522551955979419813784435981307129586535540682358731165563233978969218680539127722140022352055512186039861077751616293712973949916967571243046371266737292394948441441573406624573271332075388513731512393781769513139479714479319007374880762996135795125734190004404142845330444227464929856155629470106415152531083651509045574216071762433745392251932648511331845095589249595141901280693861294939085373780159335933685572155724688201807265974733025378260882928862892735967514700969553276472133811566547181166461720409217232472591653915089826350688021073765659320310088413060392172960282967762601875816055864854898992659353902448657345459247297421445397746006139184657012393372044469917338587314383911403660434559030771110120912212557128300208131545667653548166126301464535071443469649240279023375643948064741879426620640861007431941673584022442351228862803032246472018868775351398405896814576244250457230381544947689056477002990783319357612201196961594479775866278376854874622315733741826941401964975221989229442138078284879111459728740309189636467822389974116889712061692375825463012096503567753735182643468315129383958092833643818628297107103682276408198370662306987301271013852449072264687214860360570189397157888769375053571151095181135355728671501551492806321798580147459449666919642604369949462823919941370693758958663914260209969915865613213675117719783602276006478345079581005232316862406766522402702969600188856381796266722292311024948717828140521327927031622359381318430747413126395959278409568500103081979411610426695923137730040821087622740164835860786252666592800489233152389387047049550566366938277862786577387073104069694904904468289863172356277058603078797389355960244673726784248367885179407938228665760494630783237351395918794271900520673899112401935301727921036876225553025453199519365438759334417627640264822412648830364612338820172590026026647977527062613124325380464684652261929269220573924228993289545088364996153518969575424812922417736952548790046309092259308232558214744537641257648519473504010705113488915839213682968462518346370996999348133853019792358644824930719523343222767445445347413156279272187752051254855231290172606308790450620706347473802039064878425583555273130267244768634850199466752529721780018092089620479970676488139110054956883977785141540957636528286113730632200591003682793651135392998791630885242265872803998622301510489714420423779694836658303918351984527280556556728140727048998864118409484361837006734216022113735288296159922077049181182135387312276377733219082184252513036089272097196354900335318800365505759625169478539967644867573667685269899508568432942107221192262428508418860482425314504675977787518759607602080536737225944811068790037609530156089465635040945288742069350757394567558193257343699937229157538883570532654651246261058840636888871827098755524163217032537481873357487277707359257387918090123406272179765121605384180625325350460040008794787242144417614704132162092723981091917284935455166410521472943387014081196437856003245708361384108383107960088802073147627990211206805886333592316254703706373568151529317993907789188399989085655370389933368440306072929909940492227495421163970887850559641568778965760099537165047759850593417104916290879215915658949510176548673105004400680423054849456664409147416480027948375821823025456226088858521931323372488381927018650222155753761160822612818472047436145136539105412208248679763479927878273645466495674518319828214287612269122892265895902169545876159561784924129153461953978190448854206840657593443734313039711358318811156240827311738353816056670107251627327385029053552703293748019353874662737817666679270377734222240461295474747072211000525890267691383046481225979188511428798475172781986825604725957863360367422435270431839849648919092463259000324861034647081545527268980909545523773035917860432364569955880672463629605071258617030760302325202091130420904991286685767500090548815637534727266456455261835869509129960359257520290357885789450011949239503544181984899070423054065998245310232333239390184970112243454608733786310999329108859473580018781429511677789722083994854763599354864349491282276560264403795500095595514589512606155267474975785432363194756199372027074283621213289835123457936362517324566936028354814292157910130821428077743162737388718323963527421849153769111835463888680020847503474557932503445551925004165893409651064269130124318749381357039137134093147756612679578335706770058583898693190454288985839526318315333666822360333530072048854710750269548045969068489527198516271710264387391209771625160752341664444071383548140236099896982522664329325898331268404682198144204857719378060425986390168301074216412152101093194798371426190838443631278384437480938385223487260941233331378329178287603056569855003347016866853539884371186095207563462808314250243351710701846274427845276330354493168198305025956525737449900498718425048708862441285259724526564026450670609323336488813361640372672410448452718864317048101568052786542920608682758060676983826627299541859155604890674761697264560279904580046470194034847492426553583990023810640128837717210060167644053116458144203989158987282370826770878076512265767240722764157755756060924107057141560833007156646859860347038499021306052517295285657056492003594063827698097019969368730295456564686681689532429345176917539469371748968497709625116505562498002131656030534724328735151446825567557361066326734164323764813730611724139657325669453331854995483562147757017765480314600626412426898393460325587985787717243715779405991196883047324272389441670398905395476541688028156923099948122828439015679302327500851798265432762741673953309837577706895972692860945518880435594964387995913189923803170724416672147250403278381267491644820267275644657167718077687008821930775536616089453486471754792979319185318575059028078127533673962364194442629741858835771617894651705233875865887094325471540613014186816173732358304378291056621791247958515218738340943157845741044715544768482151792329521152259961688277106054982634776697316989870638738213637190708124474324666978921351016657501313919087331208318996140810764922504494151167748860226373504902325654619969909206938217195523542161688068964161883730395777644207169753482770438422151545298495144992304608789524637115207454972410846984924104338520258627388957736656345831045895958754746976636491865145671979280252550171153349590364852839454603336722003199672081266705027943824896664937141290307303531739110665095259681055134272583939111326515361123678255473694002512548321479298597181418565999057919479305183979259294447899786222864278224380521434187847766324770673709953626541144935454291460660897041398096254004141436608435539364182457870557873561999719902338104253903729540699000329486833099630646535157646028444824097695572058910842765094250255983668202167359227157791467100906893184322234890840025692788563978981578078220396524334824605062956934184399792216678090749273743705052322994185848392019892397040059308587136041836195265348503740882819182687091457791374426774978925288474821199519916634258715677735272534064576601542294564144788849762341646095134461413665501746224007710675299505998739787128758386850816212696070076109687788915356880708555482026431903916927794242768396812586851219241046893392237081569120780724095799335921165395633075956578626700905420885045546067094511898540107788460676402924202034610123321157092631420335836212979313629535483433918803156597572982984621336349651335731256291307144763585378354829748906244257877408666041883480094156192142212245226608630137234829444429054344790103531163866697679879755068672965796815602907215231479134107024356579755372735558659410366122706091251537650348820306108281806810488340059392956233960233947018803777418556897062555425039170494055323449782616707749360483826226263682988754970346101597750683924491100553136564489860706231877835608437961471560048943402667765483122565254857545636102812882345554835532806637137119494522218554818418905348034026213313609037780309136324206532615823557353147494208526862245499784383729153778265180936778818484702896419208313386675769743875201338395233520921287865664828494583617817198339484307768035675552031149230267757188274842954486992213121130177183453369592637852133564054553756507903864269531071761261964941758788200423925698335632717257048400613409344802683728719379238466613110212289162352881008128860624927006060957682119645618184588039693210997135669821130402162237299841115461888936008392432512261527225626981191272384263727543829606117201119011073494746344024631741670845020687986685551255475500492193911953491680945336043999693266412749804957643918526588301575780060909432127007167505992633773128325500211608330650728564815999774986895960046761818768658858655351344109669601353102253510521786826042291852484212169404582805175006316749571114386644432922451698865622763000753026095610243000717024418455742004689944704826774606299750526088314342807739153850042507491153151604262925005079563801335242721884760568702956872812753240565844900692001994329413151409303630387031342051839140550480469916358839028241551976963460188636717343113765674509206431799871997192283579471402491683741535000129674986729383707361119003505560536982488804750329562541995563172849487770392719078045800494478076706034810981683405886531971335550047947130659927719675818988482293726665595220263875377984446004399766962506320416912290751235415778573147086638070242472862528956169547465242342264079247748510632031927440074300100697297504691567119923989694807581110013008792146018597041045166590511138559755273106416712102213221889164673796021947124983640275453950504309590545003872726233378137055519644817224397496526977763367812395908900091376868087437725825423723791186262886750702510883770396975887394399246674728284226173490400851347102646108392880263122702337968328080244273812918334552182998865110054866495722700470423643225939563496043634768462975063452322442394229822031232287303263697600246044221292915128840045664818015169295628527999357028723961974367199891277255364841621073810340230132442455632775484723338275225463761668726916806882781245379187045970392572453106092296499673511807120344712315723559239985354105185591125855428204803699045948583809414245001437552228590721571154864008823143991856586411807486480344536880205350923995622871705132662520686516087028975780272974005969971030616325525747649272791942578662535010644234976186109388927165106932033447723533883094838618670822338514725318001691475124232155500448379066604519858894199745678895929818794158410458956166565759535896248412986003940773747363742097520590374950486011298324511346703797712957928819628105789127758075506204669474939187959081404460805369619516850666757380254422953249458064599333220823772141740067021101001864670752660332801927057117348854539357271285261597223374289013708194613284250400769848895332103677774936521517114211738554390311236372728670379773685408358702526452087509978941036243584721210023123225363386676630110642293638292299481842106085290766514603852524862601444463888189002785076183837175226868342536154504523693198330158975996436932182739953679286335467078052640455231716633511612749398405551787159996779851106956991453795688172154883226426682406012125973973353404617062705326948087350829541111682254236833712748624892265200407293999921630231258482931221407640754372868058480216777545233430849288915028754196515645664822497881142626951777851201682070996285822922398533104856705043090113451109093552701104836361083170591085821886144496540238982150161447915357636002064032469978000090412624173002601865521851482551854748535858773326328064617199550859293717137219751770226179920857522592592302754225840986740544789657193314361864739550823003133087286213652347580577504791579255361860440773310113332488011747178902175804206346643565922546804854952968474334726499428283257234097502897407062141964709098524676875577887855784367489803885691689875638733798085962338767838799814439629972714718709547748893926391768333210429692865066029269847304155730876283383841156229304500530109154777464841969974675349288760990597393778697565226025007711336057773475850925802979819551337609380060890916466268832805895705575365881578851674235224693471391043787919214148799430260751815836665501897305684292054680954573447103976285506873953505699146755183481605163989917525023203841539480615465178668658855721347262160209290194131199776524861845147022809833635251585783609536298371703551439137526388329008015336916939099486387982076128789931420626082942459803723523836706931514079819417156341011001598460954817896080239469253288167006727035582482964744293512529610670044306272075132352611518219838475978168441759433354057628779057619303812999006084477816020653443436952757394499059202021841806853009115694412963806302414843848830957558296151512045667637104021739906673385364574644470260466440051417047293904773196920519672119014634623186559595433554506819393437943289076316592814037848139958004450833749301348711959203214475097959222753264162283263611642619103786259017964796866251462475157067425548236076592218473766081017380893477589499669715994889758475821360230261659407178147048925667257800910415459977519918489917398151398540906854196126200248857639078153360219766658411188745770793530495300774065181374117464628713190557565910650510543500025371427307569303300745257573947354809748699505953832207696070719277557418085595887468975250635681396735604505633354316387277694528589581372481348614646469386287838659627510462482014749747762032686792836881653996170438568096805629176911731474353994334431250308316494006938849129296590867114548772789464641995568119917985904680278577927549466657072073109961401530727216389052742758458961568971948637700078941385565022351401604368911462040689946942906721459618434986905217747344596960927858351598784157219250156569362308908471934916011038844338758803710245173399467945290788156404384984281398534872112712320579120524582560167425564285327264990177690052994186298357276643139196589942406243336253583250295716937021546575643968173312759880944503033836825521883316289295495985037574474548291842514145274339449071423493574039386122563540488285215751771102578289693770737477697691137321294017891773598397181995606128515874856385679751603726630323625663233729409440621964305238486390650921664430683316989217710228641223566331356926305680897778636408068169581009528842943599663360776272458110635669157456293009997426077772969528210960720523620314873340179480479004294448218850588896737683403700565297007677950742229924890723763373302962379342023110083164247083974562224634726192891924518213565225343159513433477659979547238466444314749108927718515973129392077022823406338257681720120114199284040030753274253415975565981165341357486427140255901660689976107096704525372298350200603322120154319550656420022719274216875253065055014601034096440020756505639376030858731465948076644410097103730443037033378503478695539320866567645093728761465822510391900712548870591507807959699810801569711979286139810766025897068162688557498785701517647038656844087701376339591055979171708511408336421639588748536470056315784158999754843649927933150909202308775194833562595421434324063492643213951078986195501362311502890111314119248722410096789784757679379544701799983295856290371827077901026191677458691036950236116124568000557248206963566273228097247228458753407591417777958458869228800981292921347869353768136752034379521904873754703746390858226443737973519279931780688621149420798216580105844483086012841825130415807377270366614278850845709085961120807975799713349498270854237534267156935776963636379290782814273586598658507922009479232554658783663832062284549069622389448411465116560158859538174899293191622075754627636611339620492542261246092626271846114893969297590799223569916359609283356209242282979679229434388375172492990830136278799471996303714264960955727184034970554268859051798621747111906537037502007156079289314354794630876126596280309998697206310386895950762931362615581384187474798067945254250544028611199759693073178362909220426561992541072221601767049199138358480955483766445391889287341813606163577144740894991091913529344340642179144032840611088693194324525095566124970865134529564306109384224985461612883715620378197785421816554914878490188677958772206114442919987850773695580693890001374515266085147742941508780808015082571943904784155630563606716805467937995286377707737957821603895301981618019151757478921048972818615385053949380886923323387444098025010547894825755107980584700003845601309030513372987377808431699903840019477200221531948758798266960785590151976961164440016761268599726837752867973407518631842063190668458685063346423192435024884458556219782136676994507305060627072383874942530566017803673349794427609890516181120488902780506202509977533344535331247368821132629832648068189638506511006433684473448510391470214844758600800044943649851293688084570492311616369862220645255465288078743083479203049818153498852708942974115792873260724816612171639640419854552826136743093374215861490777166032961632641681450824958652294553532285845079782696590836039742605501031871546707792869515977832498048148859855007415833835513293884280901522377245963706565058220743585347151933496694248624808764597083673345010224346734204907527418570757962459680145989512012493726818917004630417695295604394573855075123369067837907705804755147642097789787532236467273582980125776490129857268298735186695350971710435028237540909745308666192315071473516675695690825169177252869013441992008020811669314713616749473396050087776250303348167093508470931420789486431829085135386322558293284194930476490801861964136796307108000370620068779882555264689488868710280396279638730797127369517291820331446791657174539245838658578735374283430397317621093948978637328455566786513102662845250905455117351126739750265840098511168175964213363056656163647556509273851996376433165415166826751204258670405860567309307326678939551371813621238868830880204506143124864404159704954868721939817370819532116147493297011730943349670842009780419033719835017126338475287033615174281900831126969566680555467317122162551329535960310424118479893578854287078789883449773412030869707153242221886450269580331999081206256618447630761524087940649852318205783170878097068077909146139099944396256542987461335441037957089793031142014367648285638341770994015152807923947996719382144331388022805045785453102230728088446860131228824830307446024442536411809191891993521747909331424668813832370734220852313965888572085823607137575358676903975869533950383129181010180056953640192196152603593801313041464737808852073504234739054562388197940512927507994402610067363257678235948444563684110824064636164751676845807687447586822706066391379638959888167436240433537955736724988544082522425704659315120265067542925208321404798281539805749306654562764943828380410989481626170388277015934310217919968907615952929053521009919659219440492383351099073696711905275247833094004566224577005478688193010228175816256564588573213358820985180225900578397831900803867065051880659331871454651854807665551999641776571105908552912879482228789305444386899126588417838479372480099815040109851031631616553055926751301864815659153483319890922006534676841282250898776526730392159635810610162408485130401396967664426010044884394707782808065937868723671998159769096174260528101787175172737526805007069381812250645149515609647429251703513568358536800611833156059065727928476286169190864802095444535463422345887260206353821865415707228166462766509440501417814999330165449322324493690889917213199500984549017001689279388013231502863303650273887038603820063711535115653927826080904745728459118732638594501361923581234426408135336031332151416822419462369163833824986329238908251066785150340772886102072060968407453340863436114260790611499187692215403874885246727209155902554967483807498483051831063924839047342509315940846945713300156348113746420598070188803235472933947699971667335224393534646012120552003822608906437217506795724547296393751996799435911151686300871364335825429252498799960183453885931063871412600273871534792432446590619897844415405263243896122431267169394092421857421225249996631938973904945000773268044451532393812449335361294058635194672838674460660534286891783715262084258557259932559915562775221742805151811821258477136991113539956736319793243727712913725574586008480616353555060850299599510123318884907739489342619769912029742922558776193862212410049272197031955463784063857795334190796073036879709955320607605379642625932751255310055494066387932856315804912240170717010247018166244243603710500886843550810961795913325937367319176595860386600846710597587833543313195184695879111937773057679031005239175411860037920230530401379690299020725613588178294879792518435892882853525752673025757244526345857716513557086871619766898451640804797341585398522565526918341253019444008589141942878231675706184936124165418550205681727095770576420238047121221867333971812765085859093589664058683637376370801020262423526403537844025941285593814656004577523371223530154885967963443585196970279891222996155096035344804064335345821199059087561897310263263327710268456775511172332372163382766598849818009167564301182646042058412676336182501066518969492819236825091625438975817634238468341613450406159632268479398729738294749859920019796765757460664875424757532590994123188608059140908307331173077895420441105645563356154355967715013676890019537112257524464377465382682291252130893463878676582135790218199914567692308462744497913001673259024301120812387978926331170618772612013628516076230743636658291213078786669171372519100558185236319006478801165253681929421126638032969957787323961416294933613358452738846942800305298390355553667643070579356556238218051900901175294434017689092787811242777446290499284691399464230010659306094325036960498716413877669742423748753153111329384429176290695973381512543473972859685670877522304681116549105766745063930472652755816407445753431536209044106956143117571380089242797140931450752886080377634038219257654074627769454417957881373754457442498304438990048725747297428230948278201215598758759298338678941077891382062666304998866567640392238856155564287958605664235573049936067948566888171281131103901557199374261131877628605365628371812192743169547071032990343376240485192658910421844080260756025819719149204599870641524438548075103864347857770393288493292011488339001554735918090756571430187647360849110852672732416322645375953103998129714210327471387773545729587102612421392733042001587149759195899103695582914546426183206874873547337567139007185162837255406348960913947428299926995069551725788457423264717402001818483311971368550038733547498562451463122916032557304822122024118943132861736950161807053152273136253394253167992462016115229687845961993689167326050301833203442790058039424959685158021503665624538625005701063787594477661363013048612225216480927454347471378835857640898081007805688123178240423714077135144116522046597400444990409452151727013763253310961891053256149577263132698990834979707404680484612166109848193473491923703898607534633281162568757339170210761390442380265073316983844263363605895129440798594830336827663580015252509564994477901298760891969392324850369819930019194215182772029734787400613138884606264407537665347196884780207360714835503660095975746283828300862659042024112409610270161023084111215745807137753648762978885089695964148295362446706471466201594490588606001537592468957460908882038633279562214511801997295896188816461526063316683506353526471119499814104758255651206807834676652425104442708837617766633076033366993375406302612271719634284630610798720167038676099761846966875372665750905078595502645845475919859373169894820732883162401644662407449035240309868058863804632247164012311894459342174802855687748148856977861082473103197703218740534667590873696954018134084628755941972902491632253645537805211134078311904803446032427339604411731219777399416620945928204202347531627826129503315778970304675172032598041144378900300769129301429054554557502803310486637897055795429884214234429997040780795648504125335376345629126996459220995275189283494550098984296412997151998334803151136566241476345600011251876343406862408508746914668764020500378705124499887675303365074830081712660560086986700620028654646491613766408297791619623637510175226728543869629333105882388783466036516959821672128296280237381648041693899724995481124384765991175266613137244787489279469278448786553409987836247858933121052750310194904235237566704594884562197903489279383534749098817346459043712373113751239328137733317677395932915980270007867223459101425639542647001083209645284273738192822344677482962086439651030803901864522618845597025052011502387657402280531347774735932102617036417384414586157693721254832038925603615919033567308238187771343607603154598985004899287554438874523310124352948020410594833971629132187546480262737431343282372424142920966978640647215173264616419664974405766235908343607918987149400378796177089758692641800458429829628104400863911825163169954674183954563223617999140588000017087914145364071207507320078307424808864581105149941985483813136876273694529910292484557096540742340343239856006878737622681709224777681500706476120107086702780650845226903086045351289703108091831607007161624228759076455554705383682195086702136864666146893186291134890502300583571284421585946729782222437044942833905474878201119974828630905905779018627103302196501982437565099661553703044628466424485644368775020215803953909359841513151130539474583173365870527931852624518237714072489960799909234088066940125316486885254271285016496396341270400558260078746826657030577723355324062266730705360365075453444152273775382876478184178225367585154387090991235867707972269144147294812583015623404571003384445095526240236417085222274890797623194484190662068522831769962732597053397308907391654001987484271877208509673244202682632496212234498346716951912973781414548567093015930333529219634873156435580550535573389113246709861885973708870445433623138310691394086205354704441440114442314978791931236202973002072013157690133835034517393014101559291064354469308657638341982318494695274574918260695461550631488648613265279607784811251508561616944736691130300080897063783679550122953264170236281501080771994811377382309099469711925265732644425573997150561815896003499601261805387328038592477887695537326771301684943303868979220264166016955808236126705298884019534118630077102924521675083084133824584989367904473112383494705438382762564339768358059669484287271426942882362937793993141408071659763347335032923605509899469295650162378992374196948705095731887134847944560556868718407432444748048872688460199741409784928624330651256475856237170527834742714414884103914139541905324769877548446219511039488084843058024761275516889317084828290807497007821853720664025348356740557937750493427290611703819681893273316659850037796446881536233488115661003616442388358948944448958635943811747491783192317937475285472710880668983164394200577619880477216394234781814496087094462005367107215407275811700208035570622959840397675686112023812539735440669683902363924179230841221907839498771252458141240446117346452358475126669889323035996068308531388944491630501417060187645591938526305057709435974580716887904008066538772812464941246061036960883721559802362496800694529230829375545512776356720125098529073980578359729528924692386035581277175365724668475422643879238235372883607844444487943374130877597311723809795350339867400659431205537651972512858745327388310138502845002626725907397052003679528819324552727953002123642273852267152623336640076023749827048766514707621134186283675397412165482657269602032504100386083969003651383060780350771090284939033513224668502285289908431828363690303299294106470973673513623255519196287778401942109589156922744798941528799696356222765959818318174372501334570686897235034065345967838279655623013693682567195897629552696467705032962771132399500463257144953032407678715414541692362527526668728683570565290265299897437802410107606155952290403648887186178139085224747016527985834152457814093849115960073584193419597226528696791362446419216862675101268357732120124875289445619419988870381814898485737897367024700961456955651417578821886181423904059352717643306826512595406458512590424331127142702055749649641164049614500246348019477749463925368647722605639691462351472508255079915068296877559287348632501271531741888921898766574031079539176326501364978721356867745368996532384835380825643199279462735512665839881785447813926134915151915303305591840111050419711786180685398311441265279824000920612849561637602388098428711159979288348017448270519643180763902297887679589675298423723232509917132085522243409473007088321547261276085651548850646488125921665986169967661648956715267775284093543444685136298264168794269387674437214192481261706468852338410971822435409333236432031636484108265170532948500095631498233474667492247549206845107129134520704143386558273057586340431936270098246015335764797925214006318923748340207801858275625883650465750714759792440511773209861054101716501998059092339712533475812236386734146152467902968633969973405052321155130167632959773120022394309889773431718051787424844466291875098625790296347628841136740389348426424248354732460210721594860546289265094902214459510131391894345099085361405841738133125904951358341991562296641942499262082423530995972481015816133850119661762129076566212908657617344176749456953173857626232383150774011784422700542506584240078449434484441305691591204917908300974963547168931125828456235503799461062555202574133906025273245642829399399922240980391633216554819500549631978363510314531442940693565561782651315245121147872468271799260758328403331522499448633429516263233106094340751141982643420062639216286438689150504062502474054946383293146049543731253421085129492543043608729258109873598594749880944835357391384441233202852595496806183079827040754746838884789928662224831603213142120756585596925425909526729944605173506473042542784961437188003099158769926255992581084025468389382470645169404209153467595749097816173125003433362761099525458747589586756110492566775454809611257784368422087086952615119971301068504651592873871664116049445689172600078803910786958549862577490489355965733398138578820546686232397497928078427418764863535898419376641161039633374704417761079435089408078473755833663682686147250166552615749112546167591252406368339738149975837502392756332752151960771718095465852057954253380061422207727951082843740272852737312532326642736504620003500432572869350075930572696162708261078698400158695781895204856238060056981579313289011411032767060162249463276648154250685393395012976996360336982440040054585343452587735370480538823081654404248017831188825078498013045538783503081226221613442940163626929846068215063042761579914572385537674472172850440813106034213968975777735189668237307767760745249866862893400817344414181267228833546472821599144151613077510479957215335633587033881285457971244935214117535631392041362860154783058405464090935845492445873863963976329841799534059772032880250651773282647961626547083165263600447969342687118960854443322846773278472354008012078583960144226361370740196444892527138231871322303733776547277743456663252398181131105147347408943428341299011072536235125014900184843761372865893647091228725119938296158158020823788114389382836857843395303680190364474362483381992244537584774124320322084642462327604645749188361842316719860826684999122463087492161708020801683917939669329130942819990368908439099167724758158185513462403992515571437040083232189948289977567240017317094166387410501739847965383744278215059773632464481875903771973293321821404573618521972926998843847605093952565496426188359679959899057846840677132327859190725746843023362749171643545041610153525949892932103123873269543983437458009092058047308741781826129153698763100594180175645716608939327658103518082313423706577929782425637874459731550696982906299912224990489612390231052356365974162863930556352754277054898790830477043034462723213130714584547473231375036657064060988623273877354921633112597357846729116558823803176887185567208184679656682216445986741548006763315215519535790394148564474757350172122130711725182528911816433121275516884677716671280572603965147386173495085763481760075538433825154924006921832877421280965283162834666843917252845324261417582071119693286174560221818397034644565438822132807424503728608636623209165634811981373733854387404749864273442176132688486303970220525658926158020905108706261707088704256961708671393233314152686531537048732940759012404257472830239162508492522852430827507247259312935116225140089924422766164253937741541405130717158244840309072262285582630278406182162696364258673059176627167828497472232959945026232193287226909956158686511935470902648495473230148732524959424824799882643444093669080079183125750018031179164127358266957509430032784995348958232754167507237747573319308514744141550472170219030916316078693275473610173856582729859128761720974696751393325597701876766528157017557929760672697999547915132137025931414781134330981054213557206335326382278024810014599512727524158813891308032850138146522435366417216841690852641367768186631616931133259438138405561126735481809609278024509139681124539581781596317087858795993823276306683061307134456668649954437989744635605877356389934245475126860006145982053855051778058907449446166644480664977362855774548662910441661030774688450533270481898827488695012151410249728739602841881679057966817271203282920759859148746594888581019346411544722242060499996139941403454227943372678964846559163256446910705252177356590379443689401296733043445575791765940052660369619810231670809287936944925868200450052640536692525776931162836922636272973973626110336098044808386368426021132169114884554567647480875884410588385565947225627501700765721977432574128384793498146322460090571800081693346684004968666510104245768037342482541625350169282913312801480513178745434355440514028940790412052243221083851723737966928943227831035197743514382100530239391494154508850440142548067149621055007980730146450723622595572512706562724790863117116157971482572121565133904606618567081708421797753182604889006189500347608808085953649976610295864605193346699365267800643406632710686017636304414968252828814674241694727203024644147388123822264700980092829706855008653584893214354420697820796065033659115427675597511930813582305576562010383348778608261388735978421679441561413712706029637900444827820587404439943894709053803921357863019810869041083560941179470545604885230814579530171314670824858463303662100895912772801075255296572605673454578269318126423422294200813989919546325085167920275596597964256492940856445540914866110995516631162618226743688384711142741298828422440753059496093930168945087640814707065891183904419627371785227916250806011481546025562925711319820677029246749808818619235553526037939723552916415190191755266055116549505111344760167691335692806301769299386943365904413439453059510933901633932775042191585558830309993823880389890853036211828331240270984370057514373731518939097541606212067220175795266088978223691273263455312916456506449295549552183808072319258259051078229390805064952040423614446326016606442534303366993540036912383950815507302281865513832737255033289826122093952204373862609892379325734013201617077484883342576281215598213093046920937700699526476885738168821193439685497920495178908765334221459186644608621985127541293746262668758885735601259697626319193435078635239755095329495977501112185733518130357229930374928430137338098068043502591253781534235079513045566089808892675759971195770348036399164565759032352340217943720404697995434417778182112397824354659631931566928974816101579752935242984395756573496238764482000422379295525255835062512827619604216858381087107869052326291449383371531387284994801788895341573362953082271800706201457115053603362269763825382798283157100664322959955346391469564325021517175200022123601148595236579506351776188094543408148856214268321826199201223830151218733017425071046075670268010443025016453491250616859136076180443491049194781090225338283856109258721477506408412820868875074351480203017878080392794201113919682394455946379213733880136441671226342659087121989543830905484693628147930562031131060763475664027584215277440086697714894563266611268188010818308954812837113920095377525076774416624003289000640178904910787950050283645694228431971919485799142928298992055297244160597869313329941952428585423379097007464474302319423748511382466931695151532567353336605386711628718332299706420099519624878774967262148415761279006239789894542780161677221505554890530722568250648918963627583646993940238505576876646974246629141604850583024884805880831912883340053908842207026511872931126444840837576592102993207099786083758774068280116002490225493028756961725338260571855475494018862514902332726297151601109179061001228167250586982632157585743163462255180851789841068191474197528631871991856826533900470364849114873383918994725009710904993444550564764101419595731722957500776371162913684954243581573285486251186003150235418369198611828267332303831999225597390268751808997873361655328867182844564329161845268881164780667752303572609904307240390524003661305774538260065682717417965918144056442989862594680172212824222150637511717146953234017888543150465541486971701309996200677384448295919705440803409683651142759654584230696939370667806855269532608713226916622811502327310051613230870189351635174172950963217579328150470864538377753429879650471593855884546587131820582423493237941936990335163239606794217502686083502473866618436903217503676898700858970332691368194537984880642498337091351154811056714882589057984425350299320911213650527286650806499280151909675920380916101503172978445969205328599257815418321224448037286441026928233050796550218684701709767746959893274909554075028663676779155123602148136833402210196647163223405562158488295524263142288460505953868649034035769272521370366531586504756438454059927816819692585398926432009580021171327374075655721421934418861426378754308491995170877229928819072380636685103553536506017787474481598963509590809189337618238946693816164429194497705539815665961129330018626241182651295922852685445044675892139658420203708100247174940695388696694740793294600080822493908257829931187642087412990521640256679652452644087318075725327173132888039647135566904467827640947842531077065643366717236258957094898641662220613223146305781180169238306449812216798765715147003815225766714661738438413320727157449864590956643967353466669805395269534124678548508133241337204676501265468517324512696680113399825512195882582476233973979176369401752991242912802055055975563556838976258362135584964199636175588400339995287291109583804583570198044496126116210198000411470642848850493674233423814628126315493824240277444437410527965715725949515268878032169119359752870526168522340542237637611322729249663217207454305974698255081185317507489080996667992174393992860801768448896103226012061422940456128274680645649175565788410494768703105859681458292430528240210061923820297058644492538578823933744889779704008181789251360113960738631452652968955280745499409000733407762249581822209917294673228970695620073768062811873585277918715836322668020167590787841485197777299331357598060568165668667386468532748987290182687821322435586485079605688196007152823909039488815351297267697515354852429414667948497429882414537910546032601906302155591727301247527613658943758645441936391075321500557757449553604075946249180435125937016324251344085726092935444650189050137330881217915839082008656378890111266245822130939253089117523920543673207760458362567282285235963129243961549664486470412294115286665323429142170375048542468862649646269060548356489751507138792965639014699651086248801281930164616656235107850109237332891015863825372049221615411855511892989628967743440556551230055681648846532519415380345521646553466508897651417408248902773460487092157392024912462007386369249028431556924710366942052946223759369048407369700764210805353063106346611549760397584802620337141937793755209089682604021309904730993051983366530489035266181620774733345834313318704665613469463983384079295121429661409593628779847108647502451211639533352928590287963362235765444495717413964665854874682435863393044150338755717074265555849655423486320560877744736027431129183333715240662224774378951216585547588271332117968723017200710151153017241682490880475314123685983919929673487738046832091215098850374438333048609889066224671350982321979755780422235089785470264556294733744641151100647126917870550072751420375750111083882117897620990170545931909395162574349279247631359762516053971794934123246137868452056812281414045732778473972599980814167492779719011308468096430876839670189204866530115153582684620234580747001199463242980526195358103341675081627454814875570150417466980985004854730961570427634393808964103049798757697823380771708943210565195314914677321208840057470081628412540763009732805477127962597286047505185787572914606132924917841183493993063151745589305729468007355384925217007637347618377910654511234298935231396316814943939852039536253068172537954197436514204867051877048574459965519397625523322361423621923300039081926735166789197097030946655848120852889029548940476310677051271207793008102436081935317030602731612916551816919568435791893509241101729938884244841482325397494254418901383130856770509575103809146740150730636763105457136340848854112243821354642313380802854735732925670410563685911787692423019366349916920703054598758852051726440360936979932529860598659623427677671969374189793596622909379440365657836618467966680278777438206060309630520793281737073057833581867850463545637915788100737230064364968374168089149499303211864255376503395871476359891917196038913219508419997470968612381385463137476204454521893850123262146258358982568949804826563914727303936884255421154062390979344587063415791201534450275257019563143195981611826103952514714312750687869647941764438353586945539243216983940647949277675992737012830602039246803683283451820100924872575220082621150596813820143945996046226292053570615495872866769394447972732539194339132950724782082510740239993362364572544512534475769183334998764669115864247924649943760248079553616110295036299884895662872872153301220049500655721917637588826202303202429766283816983544671417527505975864513613423996596564570954770573855435523839267223257921018483581347240083724669434959149977037600692742511838990414659287527558396380042125927598921709728985966773424153637575037586529507524128595953074434840628266250793072137913620417131955352407963443346078444050645642060688384196576665019186959229023532997536675730914609702478444545833434679966767489042997195434907872942620466813472984104147786315939208684735641933476146960837110900447488075904650157962458869767284998844594653786075730587434458485559839630280317743966519841428187830359174765888799040141424209928845699180983545305500007283875963085308106972296014653643622780268433383948535893857467840486613257469073232925885344845253462238250397587181440517852080497974211165490604169840080525562726037836720915678300990286485671318032456462128311375733243925967087532373605683446841803779150901152166366977028172275466031972645511777585182071885448791948662798827817545655062587766299669467315464442795870540466523041882080008761211933782698092267455219528994241357804368543394727959735709833203322233356135987204626673249563608063277685078193440096426432535577348937253647864705574356593489226299075750978790073292878931262963500803670735390656271545674615017370570598171792880878231231135503532420479962526272183822399171947396276017611558252935397962595520432270789603680331567368664787953796369814012044880397484598541130347735917024906578875485967229228083453536491963682064170299714262545132786485989160714384818677575724072480629755368086405247345051907892421005394477714700688903685626591219228346418996835514421266449044776637480970311399484895494314256886519055595068610171823422676742548373571957417129567140809625219359782584143171517612793259274587217469329359802504319916863749018955003448186434878566108474264082404818304679979192839719363734935739379342617193536904350103686440119183948537089317631304623280681233703923666752670545764665785754934002639672158076241298385240772661260479060600671266749062412749712273797379698064984996192801437192464525116923775127404372063180243100698361577353104021501465819329118288917191287714346470505225521215296439731154345700070844217603727581122671070111945072750923132093793518620972879694422348951275437237432769514500256431933304270886566044158734304076535782992635851714020299972960141696371289707007268109254883865096517509704887218076677455051864957258415141900915492695141255251739527560907019431305726237677613517320786848172287706078084022209034614434675142552639716002505700177358368782090244398651844761676449291720928149838553492126805637148762858961667013512236893746833551743406428277948209930766540274918235801916399421838230031305620490425543046545325430780862485275118326452502477653270170401152022799397294857586253852112991979273275797199516275847178697636520931988761762764891445918213831790032819903366552363608729678290843760529705257738085957813947161853280814523787863666372906852179850686282352374647081286943069795077437898660597171398727236540148591308073142465198180056480877124602857948439204878965427559257107319622144386782080676769276174295310505125490812248608089819818757995295467958439624068632798016993335372942865454729810211812362868580966340188583083191087224275963564335360451981407976683108363274522656745124427931832069029730009541485327601318497846737763299748444197409056410742504131069590455023166844203538826096200140276272701556690624942222710331807814968526985657807966807669873472945470477317101551175068707643823375896789486605373191775070776169100779568370248179109705315705587617588309279735809204399119999802548300291495158429896647266128983186674749096864408008972590897033730545471725669233863091780656639833567689689023327566549172344812942103504232764242287357369974485087664351612107793622403578697832835664126780057196338185296560095622881417667692494563991921788422582731496861014863919084934112012616357166341722297739542147874328619280240437705287211429671663986006624804559079071025578848972036805441925090994686691858451196890278506932305089753182762238480574985894409355509208907946766596342873103823278998773407746913239232145576990190477629587600525105676794048746766098906638385999072259325383919424061902844946295072492713636121349171100984883949694188891493174345882081173349298270156899005328937536881574739924173415434145734331574170238393603279526757745519516546641940066332167285484872702627881890122868562733348493548377509255095194038697890562880275296095408300937972356224779400831500132924914075791163501092811300825676260091420330800265198936757984609501508363993463994530468525845617216925371904287168486464421479585099028282820230178083447586747914017082089731929132434103226582917850442548499566127980530081868860568307921845548853926153239665141277331250777764630486489617384541220303898714878349193638044601473359509560368296791607391957507668001556915574313997146017718100823724782924789222318706460675051943753106067791450821512164990005542182776738179845322096949533774682508259540889978237529093665375720009379246309190241029369937365924112682422709889904005448070589268006041685158824769245527130807336687813156240406938428198054901156989474739637241031613050431624432500127762951409663931100118754816361827669367561777335761400096459008281796461177386971035313000685619096529424734195047395627743036193447379472470376126200931662864299262476941363958784171078635481279086280043933711026704644244749819186536564624097185927469867980882818119436924101965287679336435298726236383343703119532323576382992448942246558395971565851592746863491503874058274674424318117817352687789232255203202470984236818261955577517711564732194155749255138612866059872981198076211226472003038386792579373557133535623446351474649383471724790129692093457596789510225725996558829777421538411153695292122557948541870333532642714643142062960950794298029700365872067721663355282279310082396234036912597297171366194581149310066950901538973263845790890412114269765327648668492869515477192071308859428519404007470276922262109183924122817529152789535183279655324238160100350277165581755947533737864814457583777470933550272871163633983701264152104906975406270607063561038395338763032506156953518651742795729030245522956862070855258675194814491374244503199910103654756702384117648796962528032997808060205396005433015814982582707140315233351532252162990349234712258259239993780409339807505571466845474520066156875323507218512133231804670988342812880911936465520498381421401896795890312229722437352249526846890963971937924737167224736914333159667752375469119320742906902922717439821144986043561531573654570951185181628776049233808696145649640261357520896581601108101182693421426273904389996405318762166948409947075583706158448633479814983342125596510154164380790310992747297614523947241455407684580503479900057593191811437941471078848673797409799085238595750912913501472873305191691808812637582950632091420291350182882189633088781907365288233480630075643400280581359639018420233454210931262786412844070084316627949284224845709919514486041685623173336706070893674523743700696954252097449646636110994730861563626393920346142355908627010753129678367939050767315293622791136372940710263843994109718459034696888750585245314205786093960830750086059963429784637268361600515054727962826837221894048666640620203385000828579913616211007210690651305420255179263450095282626740548203754817896895208403293473461419876053106823829667924989269506870617043474930732600610184009877700176650578283036363437530391007263200830157761336553581055204136121631647456395928241846696500500911157278011569251085696410716410502575430909238921527175864931347354839144260400945988447073472977761493720123794372074495181336661736044521892471241844508764321435813135830708127900586119393650227754789267244932243597828883903609693096818613325422710679149169813961298088441218121841995783297019017884686386066251904762130659676998892553480795709801237301307445643666137286295720568152265324469992729152614855421332057395252798384247362377967428103184989029005443506530424529781201812317718230758436060324157713759712336791731638224421038566769793293645611583461534913163981524202257209254374927642669970202120638266214903342843283253300786207777902315473022884535945773718916945680088395384358756502240599754069298919412968736011749114320191086410815728399138200375885056506738700366449569787713755353150154685600357805179622097089300760171593047688894591223502911546002143714265237636955559365539690487214391429076121042303082560522154048155662688068758570813271665929274150244525124596680987352038188443522610322653097258671398042020105243293790286917178407453693223324162339747914579633946591870910870034995706317610401126621039803501042801199348641236903439945851243740720038268198834744194376911220640647645228262031334706588074754365701561475805954060261770805309392856506035626536123773628935468342230686217749421267475427968268784102557316150505577100620516758162738232657674013310332015732572573629309713705549394899880884766348546647854491734210283041497473118943144569154256912927934756659344548943198048809973750258547421071072574557446628798569945740074781688939925326143129304127382665992092227645260109663070166844890595326864879834280653471517218355767580521903033777307883652997931498430218082125915688057700665554440704660343961622942485236799608046068472781544114367012436893226885214984661162084116063835556105752208862361213970768068297078807362831424559683474474178269336825908657642601191701940157604540108226287276820566427946742075235360768113088078833905809705586573780671247696386114082114401910518580630767628558026151139651905146702685923554908478504453648473403232718498223764570990999787365479804430858616885369430347626404492507335184100526356236673083542186324679166682784297112016173101242151723991722492749714083518646181216643206012978885518645359329134576560593153221838595136023912641018089185628416222986257916777446842913605558847497895536194339534064488788670663009408892176284366324577501758996599482440469461706704770064558827993573906162526108005977067898138409781724597029155691168408849778685140700960534012948868898138752743046625638739341913928692542105605259651808022211588848167142461104622767868564115615411740239659365246024723080152845580311751287398130524526829427049107384991608360530927500343949877658317162317063932580220680585677017016649234341398949266218172944464624729079066762172933563984374602791346650254867592627398761273630327853528709895105124284043509475648862861881151610069691063948531222037409383189077091862130076974103649652297116991722976695670980694187050672384800193407874102700684446040953750261271908516713118457891324716721119554122662595949086676070043179831054518653748748579907456372464408986204902195732593323124475062252486325243835874699534650708054894610190799231567086519402160250425327070263465017610959749612902517354424993875581682464157519051226282750509377642225493926077758177121191630204845228219249778591148798245882496110622320496823478241615510121206932760395312745122046483610585157255159507121654808618737008368732008806331676444351812269387329480408920176293559728750515546153206618322452328763732993457373515397578626522553375170260479552217027953259821875747497995766155229374272060118261705955035101004599096317256286008693303125274026153920098165315362247828592122108733470143764292995080853273923232970692503418901607492215502932815352220506067029988284339890687502595880580264014034015422049721610552290409701790877981784799902778677952492476971946404368013268993751738749328350626142107858369707808031392519148353199599453375582723853531219062804249252126173703761447477516078907765592699980949307386788334065246887148719275293825706532325986075742605067180091551992326502969833504968891155369086631081980945521424247326778938157970655052216280126140223743584675480689472783132253041495268528213827963911052413827629845945760627732623763000172779927687198599143756907356030591709546312016868101488316646512789796852189206800031195651528744171106924915521661271405940757644395848855014846754196149552535432614303503391061544326035466251121786315826744684868622721832384634310274263988294076923264200569792796185119497505509108545312807078253554423975658226346559237372027406619980744508504304583248717002212877467845491210993606939751281861762837407335598528624034778480661990643987108912561102621451091844382660495271491187995714231990405163225216810062862037208356566169068509664746142103337420742216381291257997915578817702336298359880450190882662293500912883172769754309957716393106130623911843712379572986063886556516603097944625244307130785031539497747490154383047865977793010418080606595430136954001477312275874115886109475304803607154491124216210037983137576814296432100589604280484730435174508744506509430182228409805665600208174259747419365298740960865123361791077584674396113753939657877639765057480056220241593551061602158374014048576762136919141589611480331663987647544220088870065549661598409893405154336273791427519266994864576919933540725586581090590188157817878595946251092472324179532894264739161476175834327823844152098507294851425828037404256224349040970181042645389142464081453342507064058586673020276491101336594331948501744289356293202696594959231347349938097651053014081108994503953865373871186897509757916777655602840752065823547772294801480650539026729949896832679975419942957690678809256459173210065368088099058792862370449571530835819762896485350543502220425693740919386674366757178154853087672580093374948741210485364064905132486323026387095591420998384121109819791749407897718686677480756284416209155159215892253597238819433292985520227015195844100749992142206247227190733566953996458471258485891892899634989889839580957246165952977629634888984899792505728319238484716894854440999383972723894059581814001361630531405853751080859680459011798980028713055563221042702259145490745033862246429541549926934277845629157045166081903023193426163095402229180861081188756061826533925315942264336129568997706842849044081860365116559120886058981107600375584431551984811339457821169324365231595586803320769746892448439505435691177636752621008583750289373076627190406668358816262096226609448087574619423628219367345589267363941416655775255093873675964983241116870006899542872831510683068676103891981950777717738705174802231218423805759829944559620048595803554616613977680285660688763864242471130151717397897993811819955287141830106031705653606191048181751273307011052228780890367692352846456535345488741118876676464277941364894036692196490482699669730347204370409004392249562821208756491508062487890924944373378282167703280706008198921616644696636943436415813589299688146829727774408224990331564044540781063402877234449133564991284980650989588627586156598921110139982865341506511571063239683475869908102230900776097246936768780269097655026286700146643672275554780961446309382988561849839169038269364581204524423554523194536425321075799509159409203307633479765632767513446271099042279244932382576309839001366875605181935543449731451680984370453199705892774424668011422905562231462036869943474436011484381032735723826677011628362670402835890977496927135462793181666039284018799233017633859771121034844744527166586035329411145243930987963085660235397546389062936578908164696703298716572929767500927947224908086299337139457734125513489407269666117601207755432604430268425407307400101701507330314316031607153803803621397259489639251527026259973026063959948511368381587941223893969211225816057313698056962189053198042310057346823704715078301107332778628129892986231590406840264365072673157613299804098846064454737472634267076637545185385844829768530288606752500812034595280949405385604688479802321224492494409651190704309382670316930988161323445086844539764128282604859500108427397889342487451911562004281454451533225156110412006459762758483275823498889346657012872707763325143618766419464990038885837119384732389594007880266852468081643408508319873150836982435550134323083695679206553554938802006925340561180389531502329736070218268282100671043192759979404919980067593179783911409263333943717012013493365269915331373997169502643980204571031613197797780359345623329701029475768070986952216962013317207337087983549212522301937574809965796448704040687248759463110976901715603257859783791674114666388300664927554736786829122249354415336622967346092322071791808663084695020430408048259256712482088726987546168487439385132149146306228119781548161533979858915170945640789897976000664301623079771347718063505868349683119644913047587489117936651888121478798780601566313554757286590138116856996053056448036066371717402588207195691780489241370183532027615949529327904216182937979377856157793008529719783988950790691891211276259717695733747471811781965603476849266241757318037525762751570422550438165542164388891421436023873483184427110475581087954973879626914623135910500607954297455030369650640193725454536716240386514486307907807915096583660557795745249161577940041379403228188787175067477156402280544637440341233353386324010363826134105137765251056811956198535188983459891426842559375574354378658628254289168480288153070168295421299905309357777018632199391276936541480148171450732756126253905293176300872581069468683303993383988085568713759353518716918228647124849394271934621071329997832674933962054306663263887011025068647154130487875687406661135369499962204422970838994445199045118434473526011515768536305600506369075249359045102463400990716861025616795444692376150055704462488004787920037749158912237747700535415698997162891436855577276347141060967058989921115140116311015965069744732007367090372794908897188891241187093262557386887751725373156396694111427147703680985856069863515112397848428870403122973672861537076243661007792094018079295043284216312809882082220659890120815090047372462534159532198802750270267050379370241810241925750405755772354472736464883414962401321780087758511238012785047796815095460245988034466756127652718389257880630050022777070510816175661504475721113902636309862665953770592545677461725474021319520280594965391163046498185396961682139801800292605718446137104005231834831548512476902915546379904049053083605959849296632962011520036682139279158304695769027835644756958428343937849790394156897622397498480560384737318921050048016189837508281206936094300447643518043179778359612563848526447811776427849305091200133078557736020487803640374477278473498709695844372401120947858746253657233639228388352796691162042942508920979806952617368649246595776014426164053374907354747700767725792937742130798968187876050416884229230788073304887692040607064004859076838792040098660808342750846349799656029023052675008366874515154734877841379710651611764341060430540323992528799663937366596014678772165201215837638186929820243606349726855921250783961934787959444857271345850383714329365126778862860300441217066113786451231915695428331635464296326937513319831314362211360399017940643267200979934497819342406708361973251572271750187341161679975979798389154558565602665214416806974976688019948866565599236471124379608708240730579465554563336091990603838678692745998413846230617645812802487598620080387013338349708170509337700538914490787338776557339497260421889071607389847318099106923289831464287409690799889054014329048167765307883409786133340567517660864981899039768928736827594236465714572914250375109291148368845781802238035117535878442198191676095473435877890697624819173773030427276548415042596865451426419188357039633295013982675033338261112842235422869889374890559967686535932420042731468040523629340091425003146323365165430793690799908853301750329747910702724660511044616171594640071896181210144976180586086830249987051304863001789481365049908475749246776875713896060697202284253772285852179785842709738193977180744283102583913718749709093039609375921067618585999165317396513778661560902711852979326727227298623824729360766597851755948692212577800185556729377032557308458661416842539425247461906696604200261445021707562605048402110492541538225764399887998998346189665669220794780816434987307949570119967437953344900493909920637726043165047231783460253449295095840518006742199261024761877961635807393347789506449000668722875998518934041960867784388331139687779892789220406682372725798241679435441314652206890811060944462725202551091731426175044994749442506079026179661698619988037446292399234565460743930843271827652956085301361747222088058754417063556581227053823521210909854234188580383164799596690638023863266668946433160747463426762385490544294840113439876929895376342606478698905538032407638516500063406440179261216448455559334450318213831762008019246477181408124296873315201954256793944298767420698175840772188778371445335054617985704021262245232253043877007853125767423496711881454145763900322760542802724047069002039021603230062366644570328602462010062940060193506237253313038797931586611204848345926949768028199149196946719215444495619776587848797533232604986190739694041769511438847157662708680956080763322133498276767003073248610409441974440309519614236628409747501119584694348118468857602042100554275821185408598793892372739421976416013410091309077075880592666493789408739329352853628051316170209175115107383948628281320267501615203698887196212533230444439318101641829243882273938789759553837038155260960024155134231193856040113521497342066550792448809644428938720912401011978563973847498946404308833329653133107884903310774654781333626790749999417668900613338226165055653437028356208415339657068571081053333808164466205074614749616493801809733362871853800808278541178995683919659247408687888567374397053586962644387060634188889316107679927328642165091276981006303840069798825025158709724239090379803720982964499025903584132258157353314629050626876715351024913250928006463787042807045827382762498392966987291809356292149013760214056900695165046388166580605510198675633798483089585221758742536848039606324947945064240252049479545294483007910582770616650107783888938427435409359772409679443450803672768968118835116933019698019504382451400252254126467282746705357711201734288976397549235673979147300328837376311158938275301095239547395266080402912641908623709264050361709982033437674843156438068691814579909721662981603308448188024142817780294738032946029257064944960725556232273562533901846173705306784289094512337251239395938852207266621534203653821551473856642378327864599523639593211006912453484221900903095284228101063419402094220373080032025041272062077499031156723615039911602512199394182800750320606256308590386772591535513863718878704202439475345132455019383908436338803351226285714560531023654520941428008239181640755027946287857019104399598849744666060643222591101725818687950893946026177143844342526232873415188039344132729629284733190109226834654756417503810290575104822628804386013734507941350136663327360051182650955144741589182681180042230072053731259348979135709412640098206166162484814126104069137289803069079592468466401524460962377892852850352313705998247711136680013877583766715089234525546400827998981507618300890326222416016647569151809659229742979605928233396477690096971227122017729547972875327272673333328995287659535686193710311777500814680104475006360528452714650770015656374496441646651641942826377852782000163168155053015852450341023185670392520206927979271913977644440819842391942806837408352240713427287688275585727151445385052939538027690762516362785893765341435458617822110421619306849576331690617315086880063144208027522172815819398522956063537052689247815381622641555289195153379840955147360808322402338262915420828595882259681986457657931268465903496834874103447116507168582575810504182267057832211015176144191820005296732991917252208770619704527399881741568268838103251845973124595174397023812603714695099032383158434419519863365214199730231233357648218118911262347295884332169831067114782509523321303966377187023990949539859208411475706008123877520366983172534612110220078276836614759320535951145814583135803679570826285497494296352723349987991756356884842930838625764484685263379372993778975117000032753505077509786020797912359078477727230251837679976283386772749899798973683658219423380614917425580676495389793008413170031481877725308444310932125751642699282007762846958070885573592150653259912636079167228593352558641680274088377358323694352204370163481273100635625341589524084794955068858004647610561882865341466920799622657107012087367561443847776144183767058728859921806189665713292587237240255479657105609532397454301376993951917529022813762582369470652941412191685078539690773869637360139008136943057554668745055627903405866626501091831106899585425622447981257490261696813992003501463286320240647495189043689370315789992423312470742140454184357714518110653287657656931650815025850670214924917676336757479941493465261108799566088711597175153466432363655421035057695761019244567078173223728907026011311014776161331105428556271802949820663938816534084155917001036567452223237765302355120608149369814708895433099026435206695689300975889558382321488173097086638745291726544950559484511049354975742297721694363075837568291304979388022186201902359933718832017063892598800021602556516484994056848881532254221703622558422706231991008545873450237203148974371533795051469900468673824456146471071577614742449970998639700357961153578470224425632751600172362549974116905741587429693773043780157848926819903312720234926327356281281294213588104269377951101676202921512835096152592225479045410058957352963809491292339865130438279937210091373048913865917767990002593959942829500914168308833949035320881165554890596951726891872277491591586683538870318963427012427824749801832730695872391874647357132708398779727936544697243153873580618098074324182395084452787847199359070256476133437408415763523926082033536976983030154257782223791137118199236045967833671276003207740103590905101510904309236114386282057361889492678714455272526677655924918979153944016471813540742597201989422715282379053486359615936783520249767245104831602015113375685954777075742662342091500470276769673422862982402794767363311386457334047606635553253111717366384975720418178031856651968374481608361459488588617602040107290471086087189113454729539504005466586698789881116819674522348586352048423849676675297375771329450342445582140757156092562428190300252931864479422352363178134586532387260463680062825176600775715807744490096902011267874612015704039163088335632543929022076030938850297052297704260665788048507077827096980789355788910823571535343675523646574325295724797010656054026257654868116110040617052030912962564152731778771154350298588252901752142420046719771368876012885315842961093342083610307313221696255875905081297366570158981282822901310599978909332703076795783348643913332366210298955943775354999355098239570960379418909306951618888909177607928746011024675685539957891507451953486537386721656797446061025944867512620703499647953067266973825724920412680670413197124906901191334993416134485646021454025101431770736224645889152987162163954965920530140504905483259994950045447210819442638645455229344752403746145872819985327141408991273408160409293010510393756437851854302103017790666175482048269796676273153871255067001954092681211205381011628048044851868781530048327343129307624170809415306907862251412846072705119094816664354992028969794046015663410147456910943074948036418246873587962495744800286172948427654433122328947669039529738189563807053379804655866748196412532228377274516507958983365872886573534570088973376258093441076155246676657147430369294818801076021568383995377794919889602284803429494305692588090125906526689503702132047269375675434790710701478059977783416678291846646748394813547959181223791404349050708005649791918858406056754852122680570503355335623076252664076995552473789425655220769222797535838271928133539426084241627309345604826878799819393358378817707365393655659981737382068422108766174008865335876697041851520634340530699446475626913431262506302912018561301821897303735959566713180532853287149608089237053490416665412304547375554829006806531957339277064780397476783225940473484087048339282097966366348410352612871845156352353428005646171307279983200447173252245864005486965884035077903292439127445040458669190971197337035390387996151418481625806760915127663073707073042656698930629848908808719987584054506997354058712640962060329886128905294282116345328613448820440913203629264170085707177108097704555809379236375913963688687580905936981787837677927088301612938148317116842731236251999473589907243067365390178625372128783076219778854020816490420395158829514133332229631699068830717913341485233329688889489647949267170097776432749627056189298180456829807653793314488596493528055930443474411267885594012729013672907844063526285486162108766023867231564102369318461939871082297071033875088984011873190893108525049578977530181903493903800217273510283899224423167374868350943635779780545281040744931769003127250166543697130205131491881647703824537169491740708574392270217453228709243377707172465525256771499968481531512311851589590774782538262232959325366778657864522064499900699596166315688711533160134747402795636719036270133452744332772386225634852754952780242178533890583100930756889846895239015883438232377082344886029012816138969202043625605876871880820966420181671397639169867518924536365866088209467929145469710575096564959058511142467580761740842363066742279593988455381406328709421739681331569788660523394645411057499442556994786273499057661972734319549977630104387782897594439451070509717584073760879333250267601594483901760035973903064968954900433434296635953385911405442546262287815660550251431622736415051829455906993621402522956942365888599967081822273495957412765228492102468583774786695652672953882278677673893713571972340693431721488325678316611128292408157140420125259036922405892437605178939064687823226540321628870423169350190117046830984985857983103082050031987583169847314591505547731348140759484772402577924906742294769921192190205526791291533475045978057819419454702925427908542128856418981134231344831085614826611318684163028723105728763986265837484620102097959014984805764517593760901139281084917948294352585677931599456429468521155533251439260575450901910038918684291517589339504736765623104203424287619006012579936158497054644200330149586693473916799905931671094420952772194712449640148688474982371790068235874605471975677255693758222417820435800115871145673793198347685990375048425645822683448400604495593012043179900455900583796145310629012414665961554453056763796128600052037198464344382949376953332199188831521067974289938577587300643370120458766351032668053273179116566078537913250545767799819859474125100115393297681583405445562023086497713295067106932485662111493150199738440364516394453761502789498253257529350122862778460991433680703970905054096505676212559354498333407436371342412946440050086780221425716152036909810333156341401934174863338655508752033798514264908183195720213576852279865845306189508999427123024093121057168583352266450714215756913178973673603606580500933980413446704333403729912182524229943646825064474759877332967214818655237141443401445850996819618198319860239390253889551571976953097104575307860868548381702783536238957425480378637921756215098848635419207040313160812474490348434364785223643173953024460350931084193016483229080513670599311892013300651380808250765335499182471545334297658289816961628737678370042621862348104271479403568715972555664525004233070348110755316417034436494315980480381023976823745465373970062222432602841702982103974349009970406743916063503333453880883952836917894134105231041417311675196919119268467069537837914004339294399165916817036868854474487306920345348575046605921537611707848631179180950226122290581366296899818057682214557640468306513286149401555201459720578468341356324218021445933369789862226911731655506264866024334125121695546674130235493277920060924389228499900278642670894707993265787843433338149864703240122459716640577167181464493813386600515354198901690424478033973325957393253253903280796835900775431045135327680525457381908683284358784469544976901281340688808665310416189633069737313986748559638610815052571933091999047491206330085905654268142709899931542386649931754003102429508431311098492542641145504101529650188153174572537513983529967706233342458556035729083651931736195397857520789036708268157447416472236030263350274244391399736288187213539777012365517499194778923818775588809745114037374908351329060757208565100263655544326027524236123605617977292307175853331735020934765299382261072154848855286754349952598073335038297549700860812655303354544964291721431415077292761608975492093241384814469280266336652171434954559386721815185799300669478942006584356050477284103352594735737959099134098438327400292207667981910929540772839189194937260542414563623211413120644929149771480047464060418723191343443867375303480964919433475898479798040292566671394263070712203744208950122231248830043688938910557253572652945281579438202579379163527623520836071438670499630461609092474953623432077429721584261016580539514788605303536893473815535338902830909091006629699390064062588444935140784886802340706199080803271941551225673336570780415585638654746668434845647367951742346734335007618089768090859886903984760045750410963189276134391720457440671509963790061188479133886484669386266443503392762346991507804684158651756831467449081207560806274425512110928361993164481001396090239771915090477870578774424408154443814368590935271443665940130887883463201377019276149916497764079726582928425873575382042794528455978808455246073487293392495061015041575450480233171561500064291013878584755846070383754221784774716852493203647590208484062360985406588797409106898051316419172925481656717772324018165981156914081774306331702279034933177075882306653068689398831681851233500125143823753428261073650815695591942006107867605546160935678421825630691352050345488004947899753778266005940528110247337114466683443638822449527484045035625061191958999038897416148245669373536098280304968035917333753589114612860621080143753674145107706093611095424009920845414486835334154762587926766305538717479549504978167762026120105230899759492846118055694502561056518561089264965937827412389880707318488721805878073653847095095303927639642230736558688959390425128864710808438126228620567549577689797898331911532229027508849035046489620026044769836529162485152787959340188226783486800460017044712585486110352818008126197865352253796964462475062327037733015316798770875041193339369104489146533716721848632782152168327628219970278247017486745702984737928116585192700287335788661408940059172158427608566403740469660334068188623338533453800462259263333325935980303895959456825076918533468581354086467996437546847234508094829161406147793625081824969492778309757376499156581394135739719996595138439159705400473421286015926457320379896265798236990327464216695626442155275083446486881280308939827029535206831017309883897171003065691473135035854870833799988388559854361760825027871119804002544527576174933882873985704407300632536122655096256235780969694121506539505104000118519711601638844265258059822080677868607871292495522470178212752788392635318976181476176211473972873037174189033484852245781149837890816374910284748937584570191114259108942309474955250129724492965303786676940202822891982075466016625832289825848641269643831758124729189627761877153298823288644055572166763124970706991766743484518410566156580985614799239634751532806510763385467819890580385346171020633939180013085965566069417331560670175525526845789129568465308779436320824888391753358903568485461836553847145825657872385528326890122819276095295342694406276966947195835022609546849586909938199172112660328756800434668931103687070065497587336886164615668512318545960999838112986962766268826420178147917311628714354602657102183514022271702316433743541829217154894401744920677652468219662793204111638902234717597506248966590948980376351515770984614804546975565489642765392374153800898597176647214542272958137236100914975520056383779960097150733869338901243175191461146425835502885316477004207415272009388553703172947575771942569096066746742697715232551672234246828813233717939922475933058698652125707090292211769504206320742070016324675619651549148351747287922191336021720634210083959189421413354072400368445283210818261840219311440678929497309735617929107207133648260275599718007428408348523308193567906704498731845296644556681103613401497058432604470262915217097574238997906503525272412336017429349744219071102340852777255776118526251205096898456441275063389758540651174868429084181064415256207843164454585695785257170804470063685156209022167287826237723687371548933490185596714675937370126818502148318186058247316648778887239535516703507181683026656939940493258555593210842201659731250017302284795787454613841368867067867564263966113522637801892123313445013924352587721211293467349252163435966336951346391530499380716346507672232012403955811155359586999060504124033782510607109724499831487929944377107351279151527885254060819967341248428354086241771647285518960136263216099991843413764561454472148669648091286215887330468028759275543011109714900446812150683105850294671185652967988662367021621229529881217561592009205357835401747105909016807373826685891773390003228801670276546396689457031533996686979318626311476801853812085228659861468353873522289145911389556320374893906219635406783031792580615949120931361140356871221058133407579387806756125341479653167537865774257790426198940478834846693406323029718496564000471798113833220398327784073134691414906427956689385475083442905226798401725662365857327741168189545535607945909017307322143157022853328427399161517090625647002821738796840532412323798883694049838523226761013450309712030207500533280237904400285650079924848096529484705735432241110902601282775524280515999144831084878439758190898479395199787680281026083061225067779945981153422339753449071768824450205652057538488265969622955072777876951769415239279503420973801587362914551503940461139117444824953709620405198407181991258073884710666486571487990882500200776792946929449194542743566977872512638719891487479118191603969559449621827855586900016273503968657990641822224079620782861642416685422382324985075742965866933358802326834828357455601598604113214137794554498881276172750224226908993733053289028224827876098609037412454316683859520682960478033188640247069820574437235303647936434393950559334420279572265327720120695204407907661403006664858391661572886832733160173785531356730408654486364027684524503630949861753154340563982879527318930817317313779504896973264776117021673364007923712311267644971708519614673553251208569912142608553029395164546884950824073979319579799910718184396390296095075681061828201237003771770057182950097620472916572908921013699737746557527219971676137184334689123185899681424774891017455019307809905975682714405538595803360666849904783716175940778219870775211309341274102484756828975836772833016086569505758143386465870015226882903923420650091420006955003740840463679209953885221074817647330209147828253390653999397710556684803077177640768037059640899274773525394168656219093120210259674860808893354088491148483578888015650073769237240433895258121627220876704339167996604485679709884944483942045275508847311974368977047651821317959574049045828661875352924684732414056959614356116756288525933097709633708321850274031450338419668811047993869687453363505535955804205178557398001219279044236781845424549436593383916676194048175425077332713872819328033383580577228481286440607660343443732552852905034555134044654679719060428809333248588674258521236759885039547336182029144897626064086052378046675806110030494987194252618469968817132024489057777099888816020843229346931590206507585647999639508352362870367055554791688083454956490227962868683885147396504667497577789062107586374264153901024019667535121106265399215719880392667198323943884398967352549790909065420467853736866934528385991152637416395831364676755894696440894746389420157503326159347930329184843534450180796613226944087319122669603910009280881986412085325381533974591899473602122078689149141867841149787424300280600344098728936877425997201488410129150577164094213527500456593420263991388457711372359684347694371620045692170776373931702963671977778581084798729891922130463225562057597220019341392338356854858619379394808210748780304195970197034908921936339773732807682087624822552681690414769005640776720751304259784751164779758591473679394782612200593655275185450837910840578407264312499165999420724895198618042513510177766625055306508904177953773676554804437748755419106554754368395025575657390747118770962828418211335395087322579034336282126004136583331913764529110041111366618814406572857340660916708578952812478232640239751714625909952771293167299349059167172424302026440983132407196642160837370226484865531631473687456251415009027129768117391751699353494645921245028746725341062015326687109934634427576753238977349694063798866899639630936006586460031776514037588373192977793104635762116525136778594518955329330108638123524261835808698413053660050054731013787034617761336412283815938865261625140186475514052039861702710631249130933873605227106804742116607103110838034698465301290447009953644184806066890242740918569254744906763189819084296811706536377833636111823648321772621597532074693893537771548457702875796227583953563840578041314935090071179649879974408047193755589117287942433382610860340507380954008757019597948432776929318428548786688594624030538229164110931932146382131226501036780818687713103922984075071134079947753709142808550226446010998008196384488670138419514190914701490216869875561098004686041900234803117684604875949694364360451541172085876498899162225120762080062531171517485160874622145240725508306336221783275578333275836114303300623052223067219277671483681769477817521889643961335793989757069938510242454363135984864643070302750036215640956961929681943543754046472674444063395154824399443476407128839455269574898533545646756353268924663333841225487923755421095510150718986246300552598677456662683537019807460612887973098694504660670346247283090532024589327968429038472576845896630985579990232196633337544754837505651564359999078829241529798621740973417957333189507713819023795779363676768986246593244510178730895502532245618579389319137596260004706085017775391296633896902554741031832048714495381647532029749258405774415537062470891111499621443306421692352663284951895738070923952113630283490725744398551461552448095670529931470023860183171362383700959760094777927459200151724181289007737462311537530733493216543273310469312454224187638400572098997841516421058960285620573871912451378256267676211148510359611946476484509926081733068594292049332419569740050397049968777846052249521762289448141342975827774501440109459926413045276973052332524181144376800303967814357448515044942472543428237381896458401051750928185329768714695577806767404440313637050448660615764908942437344299205297879422782896305668469486315539116857011159460261655314201972448400694941320707071967216012509846239801110856774976213146050201445512514178578301798004973747660135819860549708106237952782528338467606700396360504912676963362528966616462562317234404842664667757407450931363127875152459753195841915230799721591428306191507904382095178129654448587474281958437318720731705115525047305925305587259492030434063475770344130679266891947471364081999335830593248456227293991790589108277156470842482826607689061470580147685642935478247858830563214324619902773476664117485855976350911204942763988877126332638330162767032242949926702338679626195972419049753770037426635685897081656154918613107281179678794519418438021770361202351406900778292475326339667531137450716242739750538588669448273194734672734351962127337061958015408548611504175615476636690811306154679941768009101254903998190198176223749337826690790300559191699565385129443963460225046914495932397665807519641019539716083499858173237513066665972173145082609774949550714059066905327679224882706532114005313956204025900568424308914406487257147362867033648763725045942934172649026023476416028477474161482261174694511456918159442270576759443337001998539215837656400829901550559094442060696381939225008050726812748182429896930007209235067626097937304839709239602707536365567476498093261403631364304466832863428071194903354501846140530289618104177014944623657429066514581345272976307017821433249477047506336586886360737156017438646010350310499128913209165931391188451608137134730110104319200125303851601874243374547645598684001291742067970161340938271492197055365312901867836435804499197132012904097800695959768331907727096879669649838527315715316492275948979437483893729214131276378485214448243542477709147659120777613376988515644644088487076915396192234070667263031875097813134604437212479280398065261289146075025728147540078915800460378413337928577853427678114368167786279908732979703478623613079513049476847201444645230325051645130103173703528720978763353611993208044237731672746927264958485789646821800749890382701381705900529504341800299715487702485451193163486408515609174104940875348951066803159932096197404164586075635845105104064681685246503742099676847412848488140250963934036945579272588944839243021962228527579568058323385494210307573718324289259977912185427815755886654342371618688618964483904722185954662755746206076493822226201927232024795604900601537084148184394658622219140896784273833757351932872101189354892108993933943863959623785431864628574818030587632093323615438329127915506675645748832008893943716686233794447609042212538064974048001993820465549295109969610849954749328320060755608195923461735506067519303716820781657347300716489300334338004207146071424938862678344632019977520052705045788657258700294136892975297950139771245656848531426120683004075869935805613055978547467856794103568260653239925123553777288025784581497558796443071804739488843812330075901390610767211364902235598019590421280601935302911148293480794492250623357178237765129664254478753601591430419200512105992988113590042198529581460575939750997968873159509796031439257674178884030148350620034464927237956031378973947359207867073150308226988829165871821799284645446832928479953232915750660832116149751053583389395009117711211416109388223537060877897154787131767576757575486100285780824584278520514701976405396375958835722286061159017890878772344470993608479480681097992680546284222143387302896134409560493902666750521212808713656819777408340676588838300922466140985794123344502024484893936321631248752894201598715224007426515308402588208801790189239465404158603871113579361668999987585646642521151555572381334242044060872201633078654856606570142538286069248479458329851516678271030676852310286838487097273190000893670266049910734657108075995255793164194337788786215404060450498825202888273682150844083718163933693764138366668220338328526261786812534057245500182189152509760075183141327652494116463116613524373181103602668106059028256413810374538779300370395242151764349215537794505112377138090843645975509437084686526776860166659689014600115549669563893189037649899814238359303926511183421400214619024849334411098764373621955995201928544453795996278893137976537025494801571606655300835771760834589500595308301133324584473631829492971955726217203702453139491418641838550723417192291683715293528997303905875038437641625822595142681370301457914151467363242198420849407448451085265353339775212429617186267576026857744972807784470464437292259425614856793156316366526335576861708509209521987707630037675783834105404458696643307941452147915161367338002018357086563449261151325517300321791207048543190118305915546790569237280524105221479837738608142774082015764178831011700890477253770866312299074896814877449768568208892126552720671233456667676333481545601546573447550939680437868867521669783072388118409605305893000847339517406876446999365704288523544419811029464192452453220928144715520953169243573266747658593403577294428315092464120724591450903303000136826078280617821955450679809384190198670609988133860011153638348437363491641102569832709082972753609410818055259060981773921339505024881571423167823382825763642454325794664551252696162199489854205633137281732889448063064681217304068778656531689569003606836716873705053624633473239672006216239040252658840844385009597312004003704424247263621752713615590185884847096006184843302373829585438113115680965007125247274971504828380519145136332382088683884367646788916049880689739682884969249026600257971048893284025741196771640858073789213429789827881674745855442264090671931043188526712350614041034048148314753013372659496936828829240708502674920215617939694536667566709752284484687562606747776520397420559661614067067532581048238303298711276567424398601468858133710361397504968905768243001218165898410189024636147577731229275807187400766850042311208159965659843421466962273979653584650134509234207373545945038965443927441745367627910850581786308779500314840537236706177871122872617768297315517560441583278257777905590150156619081234906381052301447801681972875375736611617280288111804766853464566968374424488800048155443418807163168043888146244138531861342252775111918196909772505076116556400536591426092253435769535544737080063966153321358807677690960617393024088223316945270363853727255592342073329382153338361349337818860414708546221650515231135049618181061464046918953253896777859732384209392723567021551472355031527541734872592242610747901688863158656473394520720594051320038115273473281228045043614894662846505075718668894037992565532402926702206027858480211585830763080118320433562291630095668073043179400867299761849040044768571084333091830673872894618715154680229419488343584750145294470268370484592779888345058464540669960883586651204425560015706275248689410677435513939499352900190631252525071521204109158636750316695897098371111389999046151951223144152689875843093775451713361966148158445401487492294251153667386968373153764832844945843310151506529020344245313960086456798285976237078204712247105837819302049769466467321083184791126807791035068151656482725167513702032399286307224833145498159545652802050176033429362070273691364837066650492076909515768862840373332793829188227357137919181303690896666745329112728379135946686171295270316241836523907852204751141812403922850820917890497084756041805820446325306657929335615069501947905400851766763143231391852985514046941603749408644396882848152760284713269128533447463837362326810026172569804520451981088980219918287841076695047220161653778427112370512441400462472991614536389592780321039455037641704718364737764237954107353387953673861790637287607818755055108186089840728655323085044450143624306390748121172916569990164514345519571469255773597439727927870626549564618057938610727914536272247598650291220701174958908187311972139554021186711183048504728187250806939567934500068101402260086466568429032557379658781575839096850459641954001945496849328100795629099652527068963979412773813321556718637325421210529485084832347749116144889668322695423834903588522241708612453758174200433669567399041439492494053228484372367980125239600740321079943791721047698617372711371778465252588608545152272969935595948210698229689411997847941879111384786911967159702028607349307442408596750053483520328381435252179156405000522803058025019229090603344501915117500413438342957593202534311480842216532180910132666563651030482033851645880585532983689735981163410757636103460766028428843562319641436505355639878811962502437040867213801304390286364962580260416351620174200459969004624690069898700577859563928638375874770852705754113366297265695700100859345928275003150632576512411313579586456630473971665560263301314031799143630031874742834677053447062437450397839199508173992059989706913001228547594393126067027205875769222454109934375681179011189289600181470353520990025662539550017628980126566890672532466176525212455193856115416640478979290920686225475859349496738688922451866089150429583594652923976652655700596407625421735609167121785789568310328818234218430409365873090080295390350006292069010289213010779367079791131078793933135678711244691724700868544881156162208359103277620957618423541413278793416193871929331462252692895800609914097545241931109124630226675897542300651544790783206972172489479684150450284033995297741497638309312380054173888746398902723323248870352740937976425789917393355497471800991347761352626041585420481780148572186593538160947636648137317492536775268737681569754929379361414733477559365065197153023823081000123937726258743412109261619303640357541006392669193497760727022962400091748616059569475923228853346643907036923732354761637272648763896655415145571751498923519433451150475908243690229307550556181142329571018727991241366937799151832826799492683867420069950826420516723498737435255010866224756133467670780542819876542690744483785432066188142173777576262801106372045658081132244336010939771231948925125266818258591268824292610461319595843264965753652310263713037661787513919018991918538478289634273824620927293884765480059762307755931393991701171136911680135978388632497758238909805343918491647429323480449538175414301894374011865547819280105333199752469604224049333706792078905602623337060528039303521026052701755991381439654157417274136389441700491152920662442790375717706277025917295232996156312716776052729429526235521581541671787620650453888199050810415073719373404876731328589612127766289604002665475322670191852434868504469326823113331536781235374050711875442349802971173014723540373411223527222085340928916327407519086653648500953427178401515530612299243283888253166328789565094899632262152727449344527318913049906103342723131505210660940929558099332124191827271669066461362866894490022450850517395682163148227710528696690539721389075930877149079857618562462100955769620587862679635312488207607433167667185287892434476111418991895848715880332614145552757927216755148978288624614576500419634658711261557668724614857446439543860766823954504763355246106152916200599021955921639543237066343055447225409234472842273308935043625735824106801578021282162884446015447269053452906419225603678707678906685747097449623404134120687607011962804798823720141872502604739486471187152922251100167728847975133872116141253613589724151939159438452701992182197648198787844328520610212685095334880995972216071070067488636872819686907904014735334586385992895396553939074134264194824701765471732446939836700766107185041607746587896526519326101177432159797359255826057940572054379216200458556553012740638321595935503317261159898507471777115942067508592978615162960004185523157696755625963212111684501488713670083985036993182372287903319067298065130035232418422325694206787382821808070702084133881313109200898284883155684900443598559798969188883536919689045122906589312749845979837855479608433602752368127913867078073643116697449302801749827247310518794852726841707328372150866761577028855458767149250129549160187303016216079456820983091648872977269300915718062257895246670024063586253418279654586504330231239832141924259778951811952770952875226928057100743776556792159612612130396874986593494621835756271519583195165881749525445805236318357778417854463003572457264043154947475026382110479010936701766080541471953448653596333036119384178418053189572681201726843764525051197240040626379847867129097840856162300168158099567286988588144238677133055570486346244568661814522371692006356264955171117885848713934773963894480159188010553031294234032872671142049168371362139839521471230389569655345390118700127828511245319547390207919329186120617830008735925624198914763734286042938951827415552110218020064363785197990881640136509114509407792504448067403681710225945355338931023330541500274318975637433260006096190337657486057207140142143954930347275663491971420618951350979836989179252321427422302285827036108659366992629977125393540303775490975787189853048448507421628319142826846686017396041606939470630779175548260458127905483564739580043715378973751883096300108407262026164110541932931033052948599204812143905889412636648037929195625092147569628885085973696654570601529383167379082372151578925010504565801525367611653858926121865315851244746871663223071499039106917918626862681188382457458678184091195774039003159892320518872464039600722956525559846729716780124051528620515641287436028345470577978858920184319413633363573526662961895518062799320168432533685623470085634200582231590360168763133256102770141337121977062386420779999923800363930720208249180936508129689303456656738535198980637548703183686497240169412544446606531920360567849403130959872982615307345997191413735995163283846017509257530016968841530473326318304906632830462328114823419701706898385995518152257740562946979297122889301241043161529570714571067145192541160514226379329020491256211428404066646941543637535728364825290350479266756028864111148337202162033309330559174177876463576779086189730807794958151010066044313978201361785409425413318596709624764915758034012549777609118498925473129111357056540720961759859924818961782540450995201996847955975311630143840645992722830498019747986031784595284930174142424682370266483282393607011913132818759787627550778335907946537714978234433316352515362825490407885242079559848076641755074206527803297871882342961124038226832368732260281547889861172314152763877184041452107671446295796047676732068625938288589768268719476898564056707963563472818435139573101456293836689101877123560738238246610003297220166881559894360993732563316843543439654153244458131263870006703381297766037237935143712988930084010162903201369115136587710478729150393445001828724087497855642623834198354682264756230861286213366076337367842693050063026251803550256164095604527179719600235864876328222902269887482692202049635308105268818640529799789893038190630819889850793555674457406610890713566204306103181821919770786751971068239782523691958631147557569995214943242420361497105683402036328584257197610938020485199654527825384314640051161080005069562209028060032316811547661653538866362386168256319994537794971004591258153817265078516142422175585106634095227911961868370793560593252020593700458281535188543142492156105326629993796017033906713162609792587139089248814226326359673938049543935159498766516452960877079208593757078415052370749466476119331803640958164188452663560723661963760561591507468706484054553877721141317222378101213322215635940322806523480544092490796795498733636790789956546877633699523918967588667481478048615594638172790467790659250498195632792074417031437752835914774434306514710877241677656487591209737351775014852211137303766062647575158949739006556161169284077345597829492564807932371446463674064437266310962309564103429979362648678276949008668037239367793456736841736440570932780072967299261933391369328389503918768572965305244398673341288434756100036635079108742977515796564653132986214156185581797672045291180702737946613107102355461495124905783658486189632006508791462981432748765963963922875284540468261751186335050011560213811140449677167899123754031289390687522615281900860945246666865192948656730599877646330698707201730680443383672125713965722194896626426209222000225483630294385459378440679272100197633001376304819057867259691843028434118141210293352503215063946800403341590578505530999932463147585755197639221440022511775607840735695211523265576940844072959611400629444291891149846342970576542606823366002877623065448541213921282385101014036140856370701159671518302542470566937772966116896929091791730579132490155296363856981116537552706637874331854350657288100031953053590020407511714214878002913351599065039423329508601822061480629851581768248598864253758242294418812107098176104078254609556425544297062023080342564629089710672047087611870839614634338905729759928553982900505857131848768439273336129439783053703924733480717437122152122191362928795361546677944818591345602881778876217866623120830688735568364301568718793249603149015681542872208251155095045419121335716735335506308311920291061919605084990366373847437452432138363549417530730552832658066279930205726343823379304931439847147702605532402762681765299025551374106918000295143086590651973503886926979523011048154247362221942670276239213401424695568492348955622644088444057454259359612929939687248117697276913207195127033115137424851843011211270485302959034734038415627053395035425890336586778008493586953928373714801975965849639582041474318284206103506746539005000064338216547129435125030915566884411997225486629986630650062021798962303680645625128089162694116591587156227684560030284650481246235184763915973784734177193791928877184104425533680465107768005719111759156209105823227968034410671646201763980240409008108499385000288770660003668868089941392832869773329946141614229937817334741570494995902099837554934769757079059754943619850122179502292226229699849153402642606679552390407145762964320718260608104595245541183731869713678652148813273264274998499564094244302058881205741141827352574429776986518867414916722415849589013256021609553488448683443246573635115445621798715585665653547195013026369603366632020484032133798697259860954404528030497456774647336633603490043585305172357312272765955752088057792657863000960314717727829053833812518369579003695631336462320571009729130570274814790292111414925761018719648369593541391975028880531538827934770885136299135292607853692127997926572272483674111812539467462515534818301085295469413236476656435319187407921677463928327287411237017874629824177988721194715780941801216708116452884096001368057027816645422266125520479446065936485347003586276859288188435596227301576707382039389825871550443293574651998464886611806770353034885523120729520301875197130425031090889740729568606300417311048103183223656013118914522944575241010037512690247904900810185359794586241117965681803031354298044337071006018536877431972819106359075726072039649699548922812968249233254030481092808626465238964527152562435161026819135358531494150146983297795508865200760382960781148073421672643748852779548004748979244089980191426134943299648749727866562213149761156992542346662634841673852512868994180676301589034653570229410156899376570064038436808739973688389999598433370607223380601119223511412816279591826067609091700351305361900263023157493867068285903422297650860603794906166584417668630654090178662085170597646222230851026043497423328092379180645823400736411308465514951272827579300257406160127587836139483682280893738076714641329750634053909383516231873825489024016583469307806486923286379107268626660757597671252601951510579230675657368714424984260732482529594806063778988027799884827991242186138737823988685716236016226384798544280945988758180703836844383290166462217929521203953820381041905754359281091577243257062533423882194273022135674543035523434056530618554510310184651177327489386407036692493416586231281433133972296943533921100081830191104915503761240017317430688414109677507160580669505540808999989250081794009925022129649776346343986158721621486569489226376772237054530861476101403731035044902404848370155878404536821906214189465749337470858143359620390388556338168073349244653211926582266881740323498146634776285444198360964576074890644111727258047789940532123235957044187077406016458639282338953554845249203916982122022547127312590763793363250512277185906351944971648337951481453007156358363488295820948305844513479352421587378567000703026907962383566072880622434728747048862063770766128893213554897792602655771910558933287113916930408403977997787289250694617495684298140003914495788727472648143304882092822854789067746609220732156497965198323254330381817593393562774805056317101113419575412209861933876699485349975030736116447434437250680840073900156566040187898655258104685560361023297251789499224443874741284699618927701064443732305064497240771161211923860276123209040153508496418254787181680918532914446494623956907353011821008894073062742299170554795878668589576591789905935987120547680884812966955644317314369359484125959466366255148670534932021165912135898555341947104866547346336630219744504925701138670385251706652114216178245756125671737937583687677032016135230193741360430224144821954583544175507751773219325314479623152247627458841537541283684262252295821260266469113394024882104180924599221593934223330286328640211420463019582284132448718368236996167413740219391453835147906038109231685680720074838242186722661260634575888020221784931638469848090179679609742548372199286034909993200461835462710002034260229220190515500422441112316248710692842631115717306369988901592624705879200403413732952740520587762053096050438137183944610932664648191970739381712438683447481126268538420813019459176742350679795554640616302455858822801771163660639246732872677557387546984388132367984739655199149692347961070102889856335173959867903393479458620482171718455462775552576123875815396386240467166615786291058838417551126167354812985072887269839735096893857702459470461818185874581461983225655405533888184078669407294447971374215039744563937324395455854026159225359487739078261444252149423269276927158674564270047531135504690343510895130322279156342659011809545586460927907644238878033469928082881318268495393115411764328590506249648147175029769573739576267326030500253475050756910683811513907623836554895735935246326039524715134881614212594992971578267896623794180511429774806599332571997358661805915449611153808114385934815486923285745643109757385175871237993144504563872707920633708024502374468586052620314869721565708800869085252768673680479108484101042809707221183498033065678171996264194569707637240241510995220984473867582593680504769473304137378388772450762998286770409010223191298904041850003861616946526504118345651886319287948028103525318146189994689586297256762808618793142751571656658505067139287121211731267121609912091527551902503804887572018493598393696593526343064543837741654687036067264947905509493145393431162628894935405291373324937205992975191342396183862307353878512180916018351121518669276717622573754890062384116808004432041536354538086059272585670183985555579729110287516795349081123933524919457477315092236676153264059161694807074671805506652590699070255168832835540113632473897996154285473880227869543804885019305140091750113058500951934607415102245036048417211728184287654115259846632011973642689545012513385173284657468404982857170413997309256015097046236644145536388356447900805476588730704839229943855998082700125025893262425826961605855974333735368094659447881367823745184759682209570473234528538622992192365172153514043735100415056174498955316382108740007389843745383337191921568042177268969953739944757737989540648641403375080951809106861798900877254457187417692576244657913475359954785511396209992924803331651250125407348621981603320994824181799508106197048937730217407554217818249300561950996277036455635118153146967089452877242292328555880621954285712296651555822951331683315707260015653145163151786233011213199755872935545961094389510424039980167337361965042860668654283303971347733222286747001081006723458162860821570067640240564250557148791899599904600112588067392718208244726107645067895996247480028951035215208166206011532851180998914018311822706322185405244098046493130686524232868794521032032384430666089800009357853321664059436488236766996816803200026852135159128576888991316917611256585220115863734191594650858339520585353838227509358778740793740742009215507019768954800990064285357708253916491376848812695171616995335182438714695551615103853569182867742723093362083392889000576820186286231212539960714062404884781569464044614083252129590970046929684710302151984061773488080532018030473500939222682867123371006719050873567245404719133404960173575997438304310920444697851613400701698891100703095070687175387689018882009186596309215846550846750541409018750735282079522984949020480240646112320209163230330308376989235546117792177850726738493256049818237804563097167166044445033091650317610651371526051625167974544680349394747992037899505840856995855649893248429209552724015883254750803268554960600516061156380753455133323400070394784625786413846450789022754826152039778026777845015917850394459248791288457410017355981271705860806303125922726899867825912026776842997443563236135054045405899654934474058289812927817647838856615379818025566287132992795115378620392427023687940029709505616345021638412443242760067642379952538396727499028155267647293804543363171579242881454410158456860027621424110565680913276848999831907409708998790441742488565765128890897114783882512101777941243682549718567137472836119746569297302125649947831595135322123782647304113101806306431035607375496436031440891113964986139722165436762245186067270951975990236942122337956849235102072205960173319524060674996104065677624490675613373782043764027633984235027187001253867227127565353965706721190395146759847270083618733726721560053571815200930386221416053213512280798113942104738185634201952519597022267521176248519327959637131577899256345278359457462742390860864321376072254855693597005529386916991932529878948972994727376176909552503383102666184299168228415645428041080761845020337869736218783481953519411510772660017010850945599159186968592316737350241677152486032383997812139524465109015848243824758610242647744923577198497875725779801155937266197373724838829690093309020186331050042345988649271907080176765988761038359932805904680637351865776779009859135075935715835214333846388860198648664423796784421059360647950664582498871815189277769301701956827442846754615773588131886321986024344686855085979527910963393251300061951452817126070234571636457023557872019215232040275891963712592405587675442247088297668827768048028614124995290992955915941378507060936326335995742242551896081536012977995451084270128377266892124368917436487725069730037940813411313626067022089292262962331633993885898044704042523744635462923833651843085106344371858757448893999145606315075501370102378854872935182155188135482885887080897286588134318026948628816059888749382878232350803022360544784062943577688537080962552533620636182777981738495732326801054905230728847423682221366830028456394678885913723746071681830594305252186872920761871925995286154806352956962441901992616446797433866093136564567261071393647744918508082865527778778289798745564086987290978366948978475021849145276955004188964824176702216625945426833608088567245803889359422460291270803164024970386204938513739267234115598699950073300017920097038841549720732476489418163086097880733151887666097357173515091334994169834749636938262653923885587483165225342923562591116191523931394245920844339478416831871307465161644928904289369497851662506567559872503298798514485790807934498235249356900803371857217871737284993924541807977147950820892126961655341902010483836903624205737124858864202694991304639442541683954541954087549520105798123324034198302194512849163054933192594463317935637290669233810197084198357005035094273146031002734715492261096742590073346101473357278076777200857010311726408878471703802849417511398281315440168003197265461460968689369967774831796970429158033011043408841377324227584333121676115956712773897001324796435981929162012156207286125598847057520475609620596818704452670585206210138392705829464998745687616507370760020774946443414648302364643760904008419342406759027646431834656925921652553790702349472122040934168649580806387353181254361000606253128504288787663323776385452038469157628114768111932685037388940461796069981922724284932073169722942694109184025561010862239879722536551104329517833667167041995564303770791134840783482464148959938164442190568569044334943561074947690966456424148929787138917853701776674710753941526085702593936259430352902592652203825418350847364009370910053053206946544318751162273152771319845858901413655829447798541534735789477851595880770206664785572245354343312851470489746100259236549410293323569598164315308168688390859843521243102605325317893514857818720157045619206867838818690368155529941248940169322558823010690542446628608710546515653635653685155309756594363492371411364376084983505778652708749428546784518140658492861611521310398327871513041633416291764373645593619812556940971263121593932518708236267472290115553460872703328647369864342257248755482082990180187297306242392863064698400552392349758915624664278984622250065111251545612023511001604200098337204446996687387961038021276430550819521491713701717666689765409984081436760034720327372061520686105945792086916201190050538395859545179361270786402818017405664772828698127669635064063180715636511604224045428554062038275895981289808751089791333036805844899993574425235303057194212251329104503894701419970730169137333726753787524669152287193292610888868935271336335379700799234993278842259737322246135645413501096275976273968543347118129988195177463050684066827802603688697440654516649568796307926710751689521959967652177299296028170367512068355136713381599426421405132055442003426087270571030502349589750483210284203923076472658421845224126830619871363829190927302532511472616413055005986904924288226569884681221763906025762659110766136449878771717049917453607577727423878563807797423617954824036553088785172475628709307372717291602600906797094524825965771007378795667032955877143169449085579172696096603957668538392337520958526341909164910449048527699759150854150006886446489557733777722336552837783299254674640187731637783941899219493465823208096753832511866452100168302058408595577522342456870469816603024090931700413397245378280202226433435503681535010821495230124576109187098554835634266353610328270573662380180119695570648310939306770977217323807877390168846909274656874256357535878330357236957278248081121270055422498301094725253259991486732173069350990108440470862271941500559758870724427000295754833910887932215326169330271268925791769971617403305826861491305824663746493446599676162715096624188516589087280182764077458803168028805159761960920895824233413708950609612984641181910098713579586799329852836957900965825869285331830621723500236196822297243564171925518677194766363765624794927643986335010355301885784765627263481378081499750977585172971971093782756131195278484405873765666315215946676530339601195425353685455320383426837007473416401922257384939742118700841929294873862613717756599322830183520911902500990575146234925271340661322914403299159975093062751826315088699924770761883761176373548143358062302593363912744486890456092641718799515409498257035303648709444633052881684152884942992101778970932200519423236185780166012910713864560023056405636693952434346138911902101086449043386837723510191142483154271607616583695181253884490074666674151709488383837807676548531536785897943663811967685743859875117486515075843240292820685770198937188475099950599344335530311998854286353219298099009119474262211759458877930934195738149818617714142436309138860877623028602291625500860777960761559328791447246240620711052660824122683446480684929275736017025213342388378986831769267733241823008657207491401964110551638226086685938337913798444665651421686908142415729986886721113956079835845431587084504120448376485807753694571568499605108771366907706006405144808034081053465103324270204961934611123148679732834360517351876214642293257979877507550705317867984855455051767238646906871446198199279002649870111458709538919190579478297351434256810831006308018173274899344269075410701456226584187027506069657809279036001586570368889541839138098431970636334769476946937216752779580858132450198518161656037227304913423667615752287837689918786703795050986953037355598362707133221440246559189400105456672182962640390237629357580265982893803434032233916374904508668849142116424252913281855488585320598295875542175187013099123846591669337872908523761724327256169836602213387626890437134002181003953292979006224895546498492143668542657402640444231877050801496424851129377291006121952327807381187512429416983031039227071439397419792647044568818373262389597203116650166349915818237910547521766948660751278041903284373187693954442671274275839418456500367079908893878325954917802141969382490856641214574529190257879937471318002247421106153973740828927608862852837143986351779798410755282696428452656038744282107287327732474393753522107845254502774874489178802073869338094394493630326917368117138692233578455890363769267392979168820279627879665806382694403080288652051212847271069301378644236904789410240945216906594398220769531194049357908605015525798255624894260745014128262710730354429857363545487073742975032359567488140955780881213818746109459506714317502057420908854496556557118572795867305279380803436996473752431335920030984330812113221470077862993146470842047253386799018470713455474903397131771359930722785406583030199487887606063806183500120647530662544674023306092906466396587463889315867188686263209564881368123080591435473484668075815367060111699878448823082470939460376701287905642248947145703423793681173420557974192555220006340881809030862881340751934494613743801595306491392570288337748810434581810091787106697540364433871375630553478788621336458916334762141062943800934019133225911175478645087073563234944536550570037513187209675061928297824072676531820729565757235210792239492163114106886883276430800057110004226450257554226458492516903408282937912374701198518793134296124107668652373246346836601486147647575067463055243365512272871969219282964828379292733954525324475853134521100357393563544350514582377082986114324286168859596439449582532447614597352628851258467791426548042536822502150495082578859709025014673084523563803696858017278123991117472415722879776736111649482935656090550965937645390833344634218377362298381505163263172502778965558840246971569604380505768662283003318092700033984267337786759789921261546887132395370804610413231154872844697367664723594811615888468434064467055470584818811712928059683645435182672368710834579422971185811133530593494716011928429989449877004671784048606474426314855950106856438701993200253327057614199072330884804052436682904999081172928018977770985590900253074404379996227446676200997592203969922477623621378173964907278991091730737707477128528547160838146804233892804171653047340881692436046925612316701726079805467666377046269141040600292738855967631421528890163269392667215666357185200510166747309208476167030062672718786418888776707604392300641416188096075819314849406860785223714051699354914698788104453137411435398403631714581226775397638538835235878830813172858575042221550555856701824645235424984241303770219555477523916089471158997290332153339107564013908527465033243929939728521761254908902734154046806073792259202741904584183875050512219555194658791722631210498623209741500460154910421894859797907578464138280995299927720665336795500315607516842369527850265828289810516391276809589517269883306623131860121288867645727600878226635657537733341336282619528708587394220005929015626501239355816341906732471144376055080087290119209704080617972515412498456917819417126559757776716914832785917144880825488054683817431717449886666971878291688080774840228458637335070130710586499296631136119066436036949797326291895284101358064019577837373341203995846966266625360666341983216514331543046749724930934806680118020650252299791594015059602190302506082465954176997157508247030962129373140891828547697215702967107036839544543451193832850797151663417521788463124175373264383354027264662359686335892579243291095884092185226081535286331089883624133058113454030529668183375696172578416936377485352776030185080631444477197108699935699277620835348946753679340479527211880439618488355224092794896835143013478658297973252203666027334426007186887209838600890332799694069774380911383091599637219284583514098816316252550038463997576825422465225256595269301601991883118111962789304848503654349670734239864380791111426307187619949397899103756252135354702044301223799044368765985926830445191256381163118130605053707226050199406827792829115295430088807714910485893293925110344133249219088769530711494820992165914448893503788468826781255159956204518181130724982961630111701494281879025518648314690856904453240394458017371187937321593807965972678948348162059137691255022790350174195076918612005442785109132088443865259480464153569685817291976062646754547164014994345787799311350021004453799369874515314484950124550872522297978154477201858018674168091158730586527957261287609146251664829686211273626508081746974777596474485034172631416242698327500714440392347239954317959361465632407639810309814075306798651308531935050390196298907959199413153999289084930529292039014280146895025440201559502078461255863259231356253333680959180530820328980780021571864229050521451308459587573793296820855809446136688289186340856782536925174619313855371458432587500500450321673549367706027702648032846262754234144773825216815296417094901814152870133331230799953989024823450479522631267027614471595283783914056936828981897252328154694061467855388163422723293348208089244835203980816808796406374166445768865589409960119163185500018047543547702666883707851678125425398367886631668115547209853265050717074568123791408662041813885459747229098038295136164311586152613571474178565973772821891429196738514612788010642403423541249478107778283124267620342100607519634354095464526995099637707229950262065533384425025873026563812269982977810175488480246528848669151151589714003293394962408242822518264558862940024705460069432423726784925850681451390578971141534343095405509134634368232116052717864651838623587839674003542005286064980931916787869059350458611343781789707013115895456935615127678709699161491150477036243166946710946468880490143229588589999364196217708154242652744393299050005188191593090980061849425113318573752887912557347382701789263716755837444695914498850045521376594381290911272441151068957908668315966605709622152354650450606175593187906307958925461186121179263443478808887891590328828875397236943448758099173044188168868717213502839342320991278826809165209631356670088286895639345265070896164470712072894856257139885541159927263629154362117869298321944829873550207631214252001440067447032975170328371654081904194395119050890515082666821768643417568540555241214817824470378350399731231863115701459520270576488821921658910009600362688289453046141538808286453664875175327032597313229701672248883790379433990188332821657161293000367194272074256693120946819361886715984143883313592937304934456369468938522882558332737890485886831363243095145043653135631520357997399486742112031681222154989169709530563189272621555462615914838900359617881782603893594502253974335419856935023279327733939522714089089307521543072865045809496971364983901009716376622414380799684425762211354841547081068911737163221634880651041479409466343868651643979386740131585323429217000905449369598658859935827073415215411934701670700673850381398969893641512214515210493741492791134046812098718485919059280958371434737709878307921998780264915110809689465496207601381541119237117021510030327240615224202196162544486217713995382017935996968349481136128482641119598184158885843557441666814568621336135228958177531955944684517022491651816271423956437883812810729498994785283513177613434967899429810517806360157379405804898586652755098004056806339089246563183060619542525735150511734072475261842771807881064586194495505337591641241975782948000893705595563654456857402766442816734748200147357038979007178139394741317698794082811735447400473564787706753279426271491163428998255401424115704998523852725708503829558145669214633588330073694362923598596821598711167786375621735336336263932295814086773876745901369603375733066899247418431898185415198009791907947179208484627199082972982810976020628150885259782785468368736346917313042540222619504133851930326643326519499472109080109372979420581035245223614424973822896344682685647044080426099555514611810396034547864302867440357931408567080593755091723192529778617503345206021080970028838675367283035492938610659853017477547609674710974802564255094361603478547822298686506121688026839308685460987082930935293884122423028731277423983035427061959848382082194035533325731031365225467044669658834533885022814469460749345965458862044953035954591200727314268663767569325741119993164854617655579966495598597589614143332163029867807384996342183964472642634881558155718183481531376244309683861569758600416306997514447211368141184301077099477825766218495267679062561117214204175646628145417595756067620633728424800233357802979590101348869044028053605739399661231573725866096567275807172945532815720284718860774685754322514534555508239857609792520604335434066044503127033793181535559202507151273347801961909553126835897395967455416702764602947350416550821227109092970529251377757738439045524214751370430721148642796861773271017113479270868819552011458289053313544326717476776364191728540974160061747229130846159036011439005620317444660673485454256382207829155964365910391213816458509253692538917308533114458872533512522822392422056530469517007041375056819422047585098210135365967894283381416070624184155359972123146571113689604697977041131319300053508295824183645302514414220257071513858503467050394304565031068063738232598081443985760613611862470839779988933953986722185027007631665128474027164407328989474266689636223440344191562478909152225259938970259060471660702992248652131931480147405573590730995659846042936891036722942600070016437327474092301454647545277549976078886881423587464970826902651735471946184223859652971330837388981068830187257655737985384319476772870767473510273147475872396087329641042043086773607478437253478342525973992201486032401494677141839463880339593638430534348864043664734585539876611365078166012579871327034617333006587840243956975653274439167120130278818921333259602020988594475163928219069683546883670070804372587762744391329872750098027364247139358383274431868879498915955929690105914192856169451022418910932405520134050181379847586172008269918670941336662637099876740726216030067531151398107474508548613989454230558346150547996953462456137540295557809508494909271106116465323373529971327785647134761167236092554844382728226714892080004515600606226841628158908063952869674949709117998192673946265034312173720513887401464511964624302822972465107212948943109947167962039625983904407369065363486895654104645343056836947907240057568679305614569466065899563186177342274121267337400715610855586251940124253831609287396899176649860293210907109935968780665858052846790552634834331478228105680566574683537273366638422825646135017124597488233118773454580949147871936587128788811813776359983758215013697102353877248825075420593312933146784575388931580166554949831918847044701541500136842042556414434103534430567200256826244541596215925447268039696182310912005881924163643111072417048611660318042526610806624368372708404788931084953581118406014274542622389973961108460912284413539088881444469429472494007722890655427839844903724020151088745845927066266738030011219679303144222673971618286211315377606834974901801328641049356114644578025708396339388608870284688545794415372850076738545975393644674241271758104042003818723278737611318471197429281390290295182892564979444596113867443241008625965825959676934365327571928069894706999337253333140074854570543679162540875193545955140362053254118531246861773385090470060531605012059269603033815179980620022887897049355721366531290558533237280570698158023352883815404124440962880387317666359260473421484894110402402120265367383772085088942503679219354729155501283563882389833614234320323692025338721681165058689457303904482503068425355656865222971336607359527954037930429943659751850995907874063489270145019635517551426963636551336989715457939454321568597309987276160473225809950460626897292921360806812019711175306309535610246725953001590508520381454173479708936524494724224236680260590969104876699788799532644189492825395738675806924850625768946982732037582799469147427543497693432174853967340825187715646460947265268313367581279618707003447643095722650148492100540034844421745405755188633816060081124540219298630600121964380798764936099563347070692741886298410179251199182516599188209587878993073356157937965773129244090750644449853697749433393978928016890406080898585507635269661984993167128159900437091664309932109484673792865949131813666097789214722094190500670662031221155464213873955700382670196542597848427092640160289118500392847046185839506313711007441181892687872044036029722687391941566942001646976812454296499879203069093842108263392783175598644396815855732493282788217116081107210030693623633655649005332253952773489195452585470092199151140166119964353026465887589500935833521782847012920808945501795307700174689251978934914673067188671150963554406454334208712389272251157310348406846204508099960238049780887126189862190481718234330383338846315562234330726134938556540102524405002188477807746177552374050369340514840496387485704762590361644111525587711081929833459096193897217608434983779325263165216173888812864376280926981097000293735143784135646385972974683627320544339685813393516929776553955183034410101045811667402848766646856844641154891939025416697312230436785447766785040565322166988192604549080386829026269635500416848184864261417191452151234218471823396765619198044315089483171852017382690323669600481500834844230894406755767832958911549770713884965550454159739440519196261571188645871659042604720030615809016475535676960931311228548057540930148686151454654696704749418928135197243482254342306917890617432019762734096115140632304424485151426046948979402115173856397207273559591847944504861154441138484478459173668980876963269077706198243226966711519677308016360963332276642717238084991343916426293894368625974117780327667371932074602776770383810405408545965743969929377574292652356752898473340797721076177540510275832236944584161318133500831924781651436335109652126716716752165372080700136770951673103766983039153622857892255301412058041702369513049822501490974765249528295696862780680318101401184222173601205467505048225195709403409479006917755601567121670594934559085301877179461316314766161340029840093873091021441494012279998935224895333717890316172389023706305917284533829740661786223916712447138531840261419758750904324089611182286874149684931744103919931408905186725814963725293607403325273588563705650583617247845007880571675544745908725382773770991021098109317890397131988643227027678465204844143964946391254438384215422487555285362632256637991782815114859749567355405459428153077770234480611363414253273614267263039434938539861684109838991797421751782002423403575882475977963560184233774733862725694270363996004014442926729883565072354237381159450273777988180717030308858746830661930506351984823951844783504315889647798198191089738767805777445661021278810593769409896205555288266074385465450822255264007175418368915228807940566980238552291086715023602702495809327561613062750908702606038931160597030765726256878543542657434004702066093071441571370915255719062595673998549828718692827628737978486490370847601090850835835169847582672599737623765364491163280968035158589732797841505918555060932398491349598687009751918925836672309467627676724713946860900356714360588513749511077183215610148945442551072690478012101372443321875323846969305386441030771483791118295308244905574952126873385009348723213920453019613851231030679398192507484157713012677551442201416799782137035358842786225747327856662461527134699706911694924567589340317621324791683044041328975390037621901720887754100307514653255833254694209786192282792783071217489381078693227615453480334159603911651149431225754309080008609950434507120783262954141951603833378098497838794959304688183694973880322030361916320601578314927962281212907739434730174771486606602183059159890311928828907227611128035439169719896332999005286807178183377034879092634193383323244026499015874077473072100631210990129497428620471425227080170586951122184797908565852832858546230069905783803298487928986192834685145215500818178188425072245252560535493594347272264697618509702609091495092314316757180457256471860992361011918002690738920404693677522658828883303899588981742258921557528026439757610043184414738843459087258920485357643864292982129234679020509005747387895590880360718649191577111453630189517222754233968498700874040176169494831881595609633793647313461557336343079099835795804248249268035989342740509230919868633101294598772916719898435445436250136659217037325847249438706019185349493172875813441254917722661865768908599355413841049498270913925779086901166873108506643902566257470961915745959582735827296703085983172853819069221259176065680573606897824825628650330871655677569923400105907572744511586021936249976444317691070649912274176026120424938631661821980555908101878001251812079561485793066889214662707818698498493630884209865429174276508270889655069442512796108661202399572006923472246795356692700642436572036778567249135086903124424954786456189148247356726950689995270290631765571419670235743360083871491232501258165900504815776247791802421747929141561433824733902981240428418383456676500035909925426046763060201785241197449836978438500336565238732897237519942271769468172855759850048135539875673288981367826176779778643726802054262951328696380492635895279028352645107717624885530831050060586307624887753791270825428776910118569368410963450456794729270157571577095822523877315512189426405183193239790002456977671383696248832362264689505621851422425556716858901111439202037438965357687560791297729555600813412872176655788102159598450628088598235076125685202027006965875000844465762730614142745560851514046234267976434996011971968279614253041279018108635729110491014284563084263032065483710987600870546328710454037348993633495435629191578943566340350161254291017504633349791860977467772285703595018368643628515012076972951343706468245858124808376816201357890596897183307775269611756722785410787333355762512523124691123504147221564048231392335432933505898651076961588645274872504656945320505582363671999472400241167094484933641047186300266391318590362895868946487609158767642939370606723702822164018422178183299323537812417857758451971703959890418621926110506920059408541457680416493437883749098378922479345807439450243236601320038671082577705146657298694466787483263193311320350490727333140625585409167092596147920697286958923198914548648347030047557555456902388623223453057236692178916834410400392300099710672158897773985731437517663208439351211448569051219856433160544228631345208171818364465254966203236939992678986069105711876684563728635030492848525965210251793698280073507547187883884671649955082857316159196451064824171749858643512482163325794550071064701490352874364316322295399279622381580088878944294217866360603340597156411450166275403508423847012085279597404403076981526166966574520003926169336461555803978339593884887151570259700167270696160898966906934464909936694506285706497521945945900960124666504297148410039620203702947419826913949851089377072126265573390168248617082974754235703750018663256994757283961309822831564568455637221907389735745898234205831589657844006642164284583262928484465946605380794959909080331723134645534222529069004468605477389441516305648446367784028540802467226883214155702015547542859040127361943321172802918011750617702374743762042548647149547407213697211930515882568817270219421034738942196840764529496383221667338564661649949381685606855166559188697210992535191633955152695708590947461699183371978713404916138861037554278148083329653802452068815533657822510594022873088464934368996563276454854702416195755634239152608555328717089890575440729035199079601967011414422567688187003815224681482925551605469500601997570866954152431157871908077904666238886670966099926613156922278036480245581225333107558094356062942929954536866587000373326372928222608443578084114470369761559288744303836196384200312362610981287696485359035771717167032032634804483623812856657198122098323265276723044516164787249313410818480290056462442259403658938374304779991183462711481206257167955640680734113167499861982944331057854065367426957855487072671834084117301714910393433063673532210720882185398316614065957838694201982865751498843015624718449985223387370746669596434275735796650129166924643827048026955788056583989822040418244647079250660721637715124444387575460171661261505167602456589438441811115616016237523198887346667514032337012533548634143961243544760634508866265605189023320148054243747688492906116853222858627844241718907596270518319152384694981868638937253455145760736105778033502219682468703106116643745814017912285915845842774681205016902817344345810391938113372290000466828269754154652615197198049864567979787956523282164765731588273237858004070221658013486804290948427170489085044969690810138987646463008843308141252825362474220722430406293349388390456128462334027427644504546574325500560544236874484984800847671413133775005489112944658456821992852268765298743390670302914926640124195298209028023687128392027294197780660693635908523245112961778336334527472326164165245468685151844472307826706851792337618142315881909510159475380982041373778526208064943586146359888551099453609028918091592828414831612365229519704341146910256675088917779807811602778707962177579858287509920897674442566382657935817097456599637373107539255349360356578004898570080509777343533132574165198569720286128971563927481468060340529927055361051444502110343372410978481240499812695291550141384297185369785336757784180890192249155232579038383004477648592834758759518488433729930543444832507251204140836888348582313559100514219469137317939559487579105356807182674517868426405069276104986558888750944392982564783237259849956702244369144932496011176885023717317682555738573980494111357698699846507290673593103943346255907971171740724445382773173291361228647621662456374789530964090502561426226601593538303043220608912489421959816845724256661253636957624160751125510387965138884214995158388080214537185748370236308758610384953582636458678241167392660270324580618235756066903279621551074495345663648664259738348823229263944977303094758733272415021785355939979729181433525832326961315520807068513591617396627280646808991150017965076607831467026886256192318883426290384578791991677070177626637874640858333921004357400807932846303085837181652165940461886325985002093938084950900905573053997827898920725471752045611600145069675242007754757416316524720093454007152924674221024243332502079990494588149994651123513417414335394323994787705672076017781538707616933233960228283063997247249326470867223182536994936994000931489351746352370740985111605270917457890449486386954408201362753144533348381113097415561199417803609939129049877821002309536601799220663994855786427968319618387577435409433262216515969037672690683991669116236160323694340970538590968324195309960427737709526857862751549951568471501824444978100000501190380046726783212884985061843240756120464031898731202519728920841037093048366765645952499294931982626185055746701954919163135219873954825607909124462233806006390181164165050274036356755659142381858252449443884073215682000858420764851269873599783438065912657101516586907668258636292970091093577331146599875345335765173357842132446354303112808692766450145845066912406493434109870150831472489050590168413348878740103495930428895340118781985070810070454858248984969512233685233063503502651355371081502113668110197492166527492032813215748640479089102370011746504271824116660727806949987284259307337172829944960094741322110730202403294617707447317534527542013865563771134235956361220928845234524831627053174758156481875858982195234075406899011417946416178703488608429061673696412834134862982976996463868554360933857949752165489960965742534932267540739932681011743523863342574467658167387696203235353667706715104954224758688123835300357870975212278360822392177904643140338045468669594626718353226943294878391634932201855215042006253780401057161262938923621394403134381707272783517190638301565673710250135782630764156805369562178676637755554360303728908410613491968908353604903499451661779957600183083530639868615672685208917694494577035958029841089068477363303325799818473392488034776642008376493918804522928771203083757390778528520613031892111451373326997489385785392472458508624203794251017313837173622392666410048967034934836341940278396805275985223866773400189541525712477355260312128903870863808029742343752864103899153375092244055904305153403371975404211295729073505440433775677744017535724744129090708858193268569193645538024247108035431562184910084539514676980055625103508191869486359877944145408125121060550720318280832795384590542582068618373955030115275633105314692808095328552687161719531341171378970830566396966834901771142188834972483562744307728160954182765002225865214935574195526498831778412721054536139207205480997748011626901409995324884420248262929788272401559651873154307268327785707244666758323095461730025450110536065746316277783322717092058263196978934987855663010338449486271145117870708530450660035327685496083755373883893733539493082799378687819454178506455438140892522955248286994993340235244328639419229283930351067404580904185740935723165875177611426023198675493945546629662346943032080011777189832351404733857157761533833902168212868543181428832238028898559063521981127103352341505202835125854661053925081847952178866156633129511544661035515532025806354210191539821316639288056123856612305053382180252915388847636083865371244603412258922287398983688402829791944044044681993923049099307641035534845618288789046428168772050029042910846631609556033427184965380322450574276091464890829914888937590484036183298129853414291056994435666760676543681658684539390700220844373981647221987770708994883265572955071539077079310064790017917804391748204435034387718106672524223861944795174140490089008303087558768118065978699173588483083127849649441357972395558137412873419842911891094903409026552790246802585195921799214044306064232405661156745268715497926948793007885604233121675724470556201402491928593934668761303954444339285745664692934143405185476804977838675905902146602068483443831681412237671535916200212948937945901306679667757285079565541064867064821826294777476828437027435443395346927163829435775905691324822984281629735651707883813719490259507795321933135842602782340711650146381491293053529830482212715431961183563751646291971286012829682901009479398667195964564612944439866484152349587962314407508334749945698421897951842981716883714678851752739983545472451987896533238539604931247836665778400877561174424405540830897769551566117944672074549510951140573605143505910277289280133440633271181255362010297395978969891852577660281307249566418491303927995531735430440587612522113459823947106673319465383749750086287691958506762209847667186953698553283731809628356493549490572253139983585372700123736171417549986040050844782820068482824250017487215836122197152036424815078269950215007963668370082303526577453595024126597194897812209364790807880259605863032502365335831641444949082093770687290880448004986567376496311684898110103700624249286287812226226749590925713076993178107389792512343252924057344068778632849471588175960755501563371618403600413587014875141324092625401961697526761995076308719014443889379063381868134286120349949479126124756975026281156705013351023268630528277884921768346008450413825223637776022675158284406442595277908220782649685482227699257061189301395904224819250803558020025978919749647303616763313765304814923404114557017303733345882655262147058129063154043827677599093730035883846954649403448095425698634031188818123123175785075761796348801165508847785720203730321713458995144912952905413206764002079089519024908487092978636369792162952851889751487774632684859235510757879088988115021950673034313838903534026795247898122574695521367514706307455129143118347338451892924211247058345081411000743698329437168355159435495297467793544534389589543772825239004105921890352100268364619502212603479397081211057502661805940429836316807832087500028341582412613056963459999056929160091609062235012440070038796775610869330190841318285289860251823523021808640171973531453817104863388898321365439375637370380376521204435446966384185403186640421346142497481401884783327927112827779643529076893367195397256881730484246807257610720131145067879681606909993340382546373016008509952742638490867867542397528646372266656124483416281995035808028434634127741868279484448531170043592312179922494420914975635448816518291403001676357210875298249670216619846201893673282416885096354289565585100552668976685294577098941586722120156675934082813070292426245855809894880620192035016609126711935715210414946264810783755301157584594000117864950595302357526322683359402962283795157343684751090797168516392317980685765770408305689982066707939726153770788751555896478104752154673518255503960183707323241561665726257708291388126225681477021750830866685567248715953533602755186738330359530252310365076985421066776964752018390371734076037672880015149060942182581258851606784742367281344015482805326221219209349791597889512049018369834232495030757805109941448670777512435912908758992780563736964674014722153638143707386038863240342873608946994682169929777191780973562350782832698299583191804398081714380991321658498823889492444604710210950748135000521505521287462684501927506410346556718439136780096338805053412341019542735798029602801002364218453004427125545320325017882599891018218568143091302136313336772087823890564589771150163500573215594754662534321839626747546306707947853762622823960526909747293598754249451881454705885386131320987711891836649628875153450964792679507909699770304549332336192328325675518033387333790359547403687646885147084937267072778461307061931671158654383277169683358053821980321887644607059748063958904921084685195836362533468538499112532181805199642635763788711580349116180244986684314629917519568364943710698147671522656703695799218565298150289974463708733252854046177572461304878393361979762755147359337576680423094161047565318218442152925417033359084637767388806457445549893034135485027136689964933415265476753134065858865193450402854415596369670969546236768288496547854426360193343617409363802467089919586399324054955144811270306677741813033785701853448553667134868105265243875408421074828148924250834753011249279632947081845427726546847461327713012941293498501144160291125631012362900247565575148003949430200071252117961103861173551056227605629136489395407441448534543089179994038246211252580879813262438448593481768517218026883324833933925658084126138088962929625619100675165571779224797038448821868462996671828701887425098779057996765989933715426137052099150608988707367086259838764984256560215240155335478105210011165256917557220645793625130737305979347271845761855186311838568107505747680248122103671379363749331074283599001725336051788744125498170439831197307369733572639075100606700995622085697233845288932641959653796910826392645411890071967841070691229138958795718531366659210493658954511339682771897953205921894135458128041923268016396782909128812456065994999302476543197378187815793956104175316338050265407124782810370433824113889717869481665464765438380856800236926040073874255326349877779144831885929234885263618513883642655786497079732204558656872162622700875271558754591745072822664044985624968167795507496500744545926183673379113257845605856901764875624633045889628910143855817252199943617964744307271332121285134335559242252662359054966169591714415341308284989415340471633268245804974906894278331708687807193619195524741030603876469307172486402464017374517078375590188016156391225645445968190116313612346847033559109689480485607850934573341649212767651192266285620135826009932680876900029084146167393774062622146209415554165209967889101837781551326438338871292533454052733119827535917080763762843886707162201260317372109206241472925754340516541769499042210976815866936495096266176969184252731739468323922360132186820356866332650646504320438685938028424072372941702417215970171972586583320646562814787793681253202270748628633179083948531487959315914037312733017544662470811124900831190782577119772018538482100064985094393507644528293168231489296231076874733304645292597966740359954243227763231100602772093988186475115416748541009075008730307093387698172116752583116939720301082693728884042623651472861934158170067437876149829277308063199262427940396341193665282885476005723824145110002121987245968639720070503925141235022872379564567758345049889670315043747704701519836896096188928328139511770598666893248254767215789175993525732375070268114767771776500670370084576692832644536967195396432133883271428056866465720811622364871911217969347866482773455495824343651112066796571994658907525703558952530567741444839278298363039298515771855523119935380005392817209604885622944126512540188275367723179564523542309866681427430487911490126277891556935098015951961292478384098123974462491651848175508673956847759790689707551135848733765192322824058900412941797527185934053395660063569467624980697521099564622550616381513440804132420055838890929264291145917056327421718748317488746114804969941596133471684623278434094253376572974440138606638480327114171823049096371152035318090018752874476567124786445825416997892552947760558778932402467929500447350233516213243184399026647670092535681785118163083016913124514692645597880943294812550493793942869238334479211674887734064126784129510830960415628205103465628103473563204718452627710654998255084014218657401409700074115006677254103070863391355125771813850229591548306450679636295907131524428756182137111144079427651649372156288140877144767624180682068709115160443995443532391946307417724298649103969190794555914537805312761248123764722382976822985086344423391031922645685263388904709301527845542411684158598809833083479533300835803078825095863060471484058936096438017009908421285397281247323946469084455752141685111137509960863707310129175414610556681617215117511649287615849083126984909777898401594067386578442684766269306296568223993043910878683389351296766947661286738507446886726496048905826537326227834450525633151838004008347352327385051045852900162898060542886991635748112673726813012003488404392228398737524756916252219539093913514043398190271621629050042157101509589164006207440110384987274639962987564533810363832514173115240461089576551636253945039364647375586810664236986818302562750534274200953777723003242212499603101181183757276236696631740567200863667522300098779299954549981378516121389994971996967707058026375165921111641937049076181631954983152073292985624834003194625501059847530057582751716934893385590935847925934148225127873710797246741721682085411493742435753802598900189927966098483844352385767272562948543267087282165604529662545557102769372182965157239337886380946927850154287401045425902531486880978810680515489657620768977626728914188667575409416402744249107223793296479455704386651842623748672222327426856127739827574173970226338695488361813038134153312968144433518772949292539556637221288592744724920482805354056548945341512524750045989701038964719583762613072106838393140877752967285554804011833524784744754287299853396903147098291768620327281584228262111428201511208107206997089732463990411258087824441887240414393837646374708309078891470153686184189379689696717002151292452489629501843296336641364259537588252982422904106698368800938536677775919593657644743548172314238509522697189209410870535625516278369964082485933842986782410214263546482375364413718847571037404455964116969961813585846256427725532298441093787605159074552180753915004681806317430024685705549722208277988533659372490314763202102909698346447005319195278285459596733508846591317856697209818948020042900136800957033529202369405795227272609364017178548498630259550598503373723583107698085593434902374692714731786757683725579838669887808973424065402730782246089794027134997372496516466371126347415102551254976022070200848000926964755440215563187366050260965845126683609336471526960545320685506701805996466456395991399088547835876650448823126156440496110089921523463059538324556845427468042312179081196387065651238871471169320988447183799297758717161881374710056000585969396147405525625315601956842556720960093537528666535068813607080980991950563982759056080717989304969935494709686196893957428573808932304550575191388589590829913493884000587448628908644138254404760537279095335497825514108035288673990342394061157368917001828771379393068813983476708098375062545154528221551135734537324551444604931512389415058361828968637807119120332875053853615175058100842240293431458556679146388630409362490901863330334825786698403248889093526294619059455192660400679319753978460055490879342426869968058530735876141677286640932054836619911836756597017935079080604289911582804258034748564990643302134880386824524181106313280180068006639605238293332266947351576077510558357801466633742848107532857522886939035121116181531636780748165918767269829743406850374152799334879093085384038083553080689573074456462279816807016705030563995210939306689215568573186621844328926153411183429445282774112375881513747735476335013835623207121881419093447614862314160736666130577807217257446727625695581959100715961940991367820167708318787400350619458692320584209170386433546919643416901708449282243019324365606222760502556054758422026831607605557072299747170970978199304510108031473755435344496081113619635018765205604851907563318460824563606396346670922383995584497136418276986108957768912837809222188474948372474532070611362266001574614082600789048480960409722296213883579200888134169523759698282062417072382483624758714738455037657337423911963240719675193202335834046698741601929323584124473684262494334221350688598672965049485136935665202923183224497720294053702757148132708357324043654574082388699682896083940177384011250563408340221499039340592281474651404991248923241526171647742185576445657971458689778573442996327590094898399332529020956798652928594735598863745006985837662819288360032996812931388918839644974890983162379621176963032085214323655865805957908467920972148896118968529793129456017316811689107056210552529498498221488676541495043056603516414518809140555217178170468690502225271247950097545331939910427083242433007273901443860571513578803281532645660284124452116932972201073485600194299339539839197637699928567123120619698066801292887886460212556686282156192727207164012195110023936583246221309729747298581980123595199602151491838672684272305688487676910560297287585857151051587725566924826456142075827192752796384750365627903905261650414767449392595521422248135861011704555053736834836849676451164440548503826286982596773422870962038571333771520408322965400264508511028671451158818730432588546968838606180099146538579396290941989601438976439283313761335062277065519114738269300798824581943615619095441618357968984037883622510457520336336065713275716073907123863586878066711178983299466052686761066576869174136750846885187098902307482741885436328507791159962648719099201983298726133599034635570851977540748501720510611853115139028129531954107682612517099845194465950149544770203432501044507911904772611361603586964707086686864053120794489027615903463859112174513247015463930002348956181533203954704155148645313525067901212438115300840179853006740722540968463981678498913713492610315392374180507235988138510493809260342921278011895418901397634201893351467389098731897298830410828758383334315844457671148927075025362232074730914425674052848966552352416354119948557636014027953517294250571993988236054526966463258651860356983591661087076379369398578581058666171583046636026085272822100102672693634280858111341819895151587782346684816218506832513396611964090321260730981844813742529032810636878267439667588057475981754050466639634281688640506541999492659895919942213485594244699149427965403502545191452409164496076499191783729505647400164522899643582628770299925810956113495684079669962794173777321090150130424277306067161058289636405020456398142907694603563305921765291126328324936471236370882753390433352221753285295085053054403560707047091008114416544858980201369518150852258730213411348184881860747929860343840190066689652143377747392416752125954317381983553181332553132209945298932880188094345064428885608056666886647901274358283281987449077357452774318510988265513819455278150866333981351204316160487367741206498858900338700345257183957491495568155463648268015568205439398328747468015589236745711141319951964160809520380894756545337588971371500472364478010342415691503676053381036988141650698176433750281723478251181600976997177883955028944682624367636890975341194192013168759629253015960263133719111778420926673245643487642633443474601630715866196930104490405860647678198370507864626313068135562845257347916319349834048585251995315612732297133874354718664789302569553764229012015376582014850204302425811931216629009200948271643678102445227644163216020148719324273005143280637722025714460678177524449671461859214061355354941467769235159390630926525678580841684512655829853080343547879973854791760750549201067899769132532539550346886476964373646238471446927923133921447391055020350972717770883787204068785421763241127483982289104590528245327686793942216397838383623074080579301564670441383491944730168274631457554466545358952530355271013177497527312829080412718501906324860409712389519853802997251775690807464753476307459428015391633288692879239639630079903273434502227989513376505562592185660350047261587598646204451657056421737452761031915816682052510991984121874871237497224627181036427539729817501043307762881275941084032556322341381690823641364632532468678466291953970762339629419243933171211949927988660597287254530840023815311230705819501823834161311724365626376604255805336540242096036996578728802668070915996102714691306129769770861578895105784795532349026639026065631320026990001088284167317302145052806429360192387787643290974042474806324948017155033874990185233539868007478630105391922058784286351405689581292175136479902367035960259390558251912479308377940196857573428390275470251691254537272935693455801385121702966133220880338226283305412583822571978081975360561097723279255326426135856270088610631120223672033648485307245212584456737909113099681997991598886648249654092234833115795826381888354033515198023237458497517008713601677277654593819715454292770661485064496867490168935059016005649463589927373196292843205414109183417632402229808010781295754771719610870065932194708924179454358520523233627885818031035072265894741887708671096999756808668199047178833354614391534712904458286813767133432022964204896221967569930581830835668267905185003893090621042136314540254409641957877229555978676255971403660213016566934327905755020300316083150389953308986306273225774116102518476072207913997391651198306898705220575797360370944397086168247305684082824744088566617374869857948499676533188721562773450307738693184670124937635770960191392726405753363893037468525864254589294963286161188390731251310041489863440790460512806766529409101740790003300339926156432538195472270633005652254341977939020327425474037226456597384086045244491155481304303785532946218463498440868386631333300328450100016233905509401955484103951372078898991667193539964657864497909316016953855916561900148068651136529590976179713736598490962922318419658874401601855032443760567523433141622819039597263058512335558742793449839420870491472258524559210404783774405194961444485094264817854998083877082564974437021658210089742182143990804812239221027932948572450363459939070930082077473706414626316063625779792950527858594901991754218183613127376356803171175573300673698939645189410880744207989413390445571089603808301123522936401141532837531926648079649771150107008920060305104511377037844009494750916111030164881982322667273602477351071302784954018124652614794705142958498517321848267537691123203583085686069478474901492631011558636475891750963278705089949960529882607092426677849595740404859162457699831996842850230727364556992146595497733268463425660738651413364417911303445596678474020453868347852977494363088447749219583326246318516235635158086807464625206394565418114441609752769636017504186266352840221432864703523086872210362180595125478667068594323550923272294897670913742123780541754525817061052990235836911054863610117494298490019181515344213033670869954199446390643643018469583952753207321182098128834955221004459539092692787198617252294698001826510697891114671092346173324188578277275896137019333817890174448427425861531612578450816382947586967988078111377898758373428183965183497806158301358983335032360621816153793425355084105345912114610106088897901241142393777817449097488406307122509766752894472700021241363530073108802678257192159057713096378346774895178602116034945658058676022490822085375702469819982048205762874514317352335075138492303313166427848651857664576401730255416720002393446772652249499413320600585261169955956854683732273421200684744732480892831929598852881222321584796471756952088110669479389168440960259309157465276388675962247020381771290661007927277181198391145338143883744890949917424567229743775449922113116429474125049501672842348385600497833469162224898126349376382628632869665893103279722995676292313583643040915918167249392873035882078638373422991333048306177576565661356455766674697189964578751942202755340992787457285332783826229242676469875279145127047962945434415881054032257617400405115679578075503000375022069174851095407566237458486825482693917640958683922695562543974665302626265070740278829501551894885256505742098639605726994696940468082468926104396887982172474835606528902282233261216888054399139268738212925730772052959964340788790164183876765198715557699492573575585091445327567423323353101620501731428628698210471827977181937548871347995658635271771530520868478081557351592293601879963874359553801744818430659293165408750433558616683999899040074304001619064979435338055512848545967811067782953290710824427536715437899995972726005517949625819454930545610279728502379722810017427651813755166200337137540463909778562156620450085001915481777884823723891052222593110065575152002015924472500038512978521181408621325034035815236105406656936134931293715878586490347869260795040606027321460307158287172905932414976006059229516834396369286036764414228557811570576341199588023071471549539883874972384295356608145144520841202845544856987348247867811667647023038392732504410881522670714488117845641516327352267941613612613730831560459737183845459702933825600064136540309464289119088861464216393174397232847067259601776827768308588366078056582708643523435935803083940780646956430665588724956211106013674871506703333656051319466001076068716330790681262168117407400747234065305396110328114114414257943782123691988892578200384725286386475695021887898012644995864843364981932678142599762531163638930800985379408930895652644029007127370270234563279949941348034317294270924580011629343966590472638735644648487025542946901618369354365461683195494554687265540209117722616865673319250742531325853266854730888188584907992311072534317145385330945371952278336582879894123140755067295965217410800318681071315423355422848912639402961193679315779297958945085261447671422429651864399913420711125404909587520759955572716856093503762641545341404887075377382355588174808989107338696296280949869775963999759561240783780400944707881714606361466927752176475647090190794665472392216455198135342891570129945357232712017094949979111041875243079386895034639015521655610703986383138231003249238937250653389069310794281530975704004691718796548685176485392539018769329943588299172162290225266201737198631226584119114151154573203059945024001443890769207895658130726363210847708291262918629605217097446890819904033514001031380778517040852214543548038944933409478677044049477941462597520327020516259870325921194782519196654300445030520786270882768188832880097532960880792486725707739629865064058480502239920282483347457236524631196779033099881891502716718071538694929246848512221632340152800714800350400809694709682170411685788058178403941781711432361304203365151132669185765584164964533512097142770431292623623878688934364414699461070360247260155107910590511637512508649325784398106999883861308382680021681430066205926608483033738677145747160011961961942739430031044299064029224557062891075918389161520947598620741211512297187488806637262949478172609063262892800255218108754244198033307756819058851494258848505117618345153002583530249848196053515327197118509794955322416132555327483123106791096580789586532486706670058985961978071081092757057823783035898509290915073019531463559492382348839918216737758752354913143797043691380767695308706451050835971159973375844975080008720441179624011870552937247969018060494640387589685029432082888078939959029379425937151829016917636389629371256835672766767985012620866744796397215550708508551150527592453268667797881142595061801577691537626486169750738072675998445284280113708794706007714313332064606811845059894484348841815654032841938743835654134525840301040118324691527410373279602200756044798390284387488374375017230515585542866116805806040086963205269611043239878089811190408641999682596497814189491847579884324087104013929935871246426839569895396955285216822289485393153800375017974314204909945289627479826728178460734018462207903998139309121048854350389002827177074486347037432699850280660613989481665737864728541025350408814216629499789447006675349560353388075998307634518584665581680444360548027789627741967299152023854785550027896408628938243195529144732408471464063431323101693351462001194382863684658825351545814563822891528564518981921676663352853123709710625174671998310908052259285116153326353691110835504748567344420956416977726591498869792877284141274508462671719837536406381988212566975900459370905659076240661235925038921039726446194872012512175739369558854973929855199050546389462587586606677859063703976630038310651151196933147825407878512005644115515448103757236494010959733271408227211519917988766208342985577963934491639356381277818755260048345155378607401885777621540822291780533142085411549645460307977191479150604519213297747746144822182584737273098841189488649326078689961896525505452044332609988527835540125072694800901960936523942898204593680266138437322984454298244034509619751218273582464017983653798366099428821477565513438849609834732772832419196183230521867943834439067092876366105758376817844983370244314135626102381731817506923039424099089300839364060962181803664552237513772755061507443114731483894935003487734583777490770789753452461752598062973158607148052085952700919937099997529068061155752000886229709609746316834427921691016963689281607776924977252890774262392103604123860971929203408390563564717410832703576638595152654799509097955613706568471097725247084248394435175001811981660262195221951666822090114709463064362491243531324709563959649779658189022204355601320152246135129190137195276033160559131944614632508446059170614851026309485034446601778884003228132282321034066701408414321864556460948935175784631332318297673842882496873393062391190830737898913692184252016400902831835613066470929201634539637435489624825331889078129729478287552679105132400535565223868591092686224714876853636142790033131969775272761639290938723343030697040322621452182043704542862716447804547240071028996450501923986644912639467080348296121041666243494154962127722060666266312667294939372130214294507048797264427288903576765357374359835860452025135222121164980560029830897548629973783116386788228079107843542822118432710680179153287387856701337684165885033106382844440076472770867042547243826955533120790828910991120842947436847012752789740953184494160400409546060948990090170247147088621688070885501049069470744947795808266636045776537805776427631628427420235257810832388817795852460340552709895893764991818360285802989133438247358288814855205966502170422441138056168844479865339201759075494238349422781179957424620339099257941092306843671584411996248939727889662085850741542023248407766390549045651600183165542980795076713117937255485111452455504767103636760273693518628987237395457273557640612087831769936438463219679077443468528723465282900972767282045813838351031198785304715582338672914220958813280238039461491591701466109308469480379224208867714846173682687534337338564234765902097974749025613441149132741634267287876902698694514944484398283377576507732079422949750205275224374785697347624434912628951165517956970341382175876593017772133411762718854998311700089221615530917707232587352546941168665984726360545659983985830805205177175504490799514308304326478218037840041037309729241878581333900662073223044182849941391586601284779990765206474312196588300861211935862104537736420786709411664615662424010206771362528262044637838644472912015327182575706408864211430852316516329474698506836146302916041038216441432143751013620824103352888206116982856252194297750533307972579003036597185347894235743036437205954628571126984182921820823644903238257068565416069855560999362095546173993979612600498636811547791290314382079139996001897728662589451295044640587690888279168595666211402819832893315441969686692069536788508978649508541864276092896801190334443730061553823660916929786400806537349650274933563064130754590095598261918293572391266815900219343974395707446416181651960376987722840387062810575199975251439009959066022348912023612331046086297548933714195046010944132315020565904301071543970963552635192645231758187276291393973677045648987179173475208002767211697055639881543115900363041795252608660421494563741845264352273446710555140638736067904586415419871136107217987176454290889744989680465705701239929896775762370959370926448014247193738017960435301271624285351465162851259188473425078154692368855099185628322513014211723791486946250318831758537043604660453534009657917916537285129508986451611612053168201455829556896821361828824165297567194572524740992194500242257383590204584912422670618606792395757037604853284566518055848493650888041823940020942849979041775369354547215265111572779120668539501232969970489246370014254155667877641754447521115655845409312445546404002932657266647915442106366191539828301786599968576000240224245635749775074880315964833968553554653627870047442973494910248065659424034034551523897288984539612144061604907492268595783501099799684219659665046507788044249003909307088919586685323189245943257513117187033572156133216960863052943008416334154889295246275428726657959188251170010581000930421480072302920380502072196266522254038163305739111429612152162400368141440153027006914962280355141086733648576086621247479674765436607366570581976062139633632241580444243555140071867405081682912492037861199387678394881937131911815039303806160136089032938119370849096688453353978032811953849612017804249058794109893024525722408473852282880372944004161650247568850355080422691754770412748511744741733778921094965987325663360891707451035556820645308579826142518813965739286649418013415619764434654731056275537867704740138315725954863774356975975442771818151882685876494137490288074136072489495376231350061127510292012812098254083793891213695149196725310490972389761994654043365705522106855823579643843889736676197660085787518108089154393374023806167718992436319434633143095564784566568013785405834850367072338387475880491462362531907159365320392442553676663321887165546600765834406794711643534073674456602387468739156936616502683663870486321795303604357314208078224834940101995622415129257618443261871072891248148514724468976922367462359537651497089630617274750876038199612636850358147259141089954198858105413390879010745268566075112413351781084444841936170125198641792687661681027473947215993690945116549972048694449388199707157934945375640602867130737483809342447509825994734351780567122400809661237958772405725953971832854205907005606295031360788971315631671325457796982695934828037122406698483902368414700110097373788729139922565174248863953142721758894660664240762557921996213583841674330824987928506904569357447904252372324358281753446288630552591815905456204462296697695616035620330772382914553650106060348333576598367627943491069823756674785498059601535219834505222577253730291203146886364084671794005123321702276335831339220192890253709497617603631173429741163414582066742949459492137667423282084976356270319372054246015893197822186662166750950634324317822411496679150201302615920583900951624656557426288547918220777335508395574850350317473983402849193148775312500815079897884406766490445174023338115773622657043362758793512107052968718769521074908300954117177540254760106832383064262849285527518101677749865239602290801551817354249280183129092707931659554709267109637362664127397546287572206002068702000306497157734065968319737672220562789986502143442785505828019051703207502751031774284078397143199761714355421483164258853282027399513573625975280211246324336384409488096486070640865747736087915732849679691875819147933111853977523585779113530797831586065941345881739745876710759153349317221691462533654935367575594260022613146340301322087134228045324990793273959383344065306510552984991152437207527954956093644025518514669123745401710442952603397890859249990264737061042822628661885292321041515763755744394101108040288280195197828444910316713937285565715997368314592667826399169696572582978577887879638699150255258879137851035352260154017677749047559767574431141643649741063541719436947505578034095577060097802412120931209070950417587979217437635309070473989932325359072876296369486355765851252874194181413395299558610730485306151672623297077848589706048275226175906518616070489632638320346953700749037553373352474209128535688080126959249670089745907457529964097102221094913758364052574668467366291867954279211314645421839581562996528934845619916194332467514198968995708089522915616341676136230946612097001169277834297207710856734731964075541566181835231102094328395984598539635876937522346331318995260111745372786450928375964572846183405115327223461640397478992337165912219208269911292631557345911888651690941003435380065787046799779893038475788617498336844727896892113547419694254451614898594809790201235775929041712431950861887583434838719258099649665974772391206088214397373721845370300667059398820048035425763527221610635986654015419815054638210176429578629489840798043225251776648786689039716665047340091504477365409076911944514589635879184660956758450289379122683543775799368350706232818605581563226322723574873761253006112995512865174776500497576607915030534897859524524738009580831606183159136874363480064554366575023777293397580799036943209385540655931037943849688181169805976685877500791812870801591368654918077772125993813561990075448015390473674901268045740718038487829078862766833053827542111400712294673637953856415105390441327998423392278638482683973643385606000607458896972455835724737490218416651586162038250121701089519905557082658208473245808436410643964744450658006154043424674257722475295231045854805364878076398888519296893510825952881167930320484701236513503472827995176886269462784780557667803431852448372051909493750008084840564270626013147407348480093206404921874100031763725984457512830100089336463578598224996441998894928380876513648057692522238554608949039427606958457906370236792892595014989986070048955329875787484702529001280801818166158165940840901832093654667024048636295092067320947035059362762037704242153395815105807920248022382837766594795354116294383647537173960142764761235728147091049871227103112662360832294791378815585762454646356452181229690904033562154166697428410556051621338280540308318189319994146800876832409023628938706520830398800451470901300452300330350867874419779805493003281020709488187464708522626982596587967423232392581215881536467794986020009749350880463343166553085586827301945652683369772952932780247140775711709389809258408018876565565714741220732438602118321770449952665530890502262763915259765225327808830381403009660930208687134828297083586688178448373581286697728921449946571273148474464427205601351460120813238428985616858622937784517274279967880431610380278963316590275333057687843778045302735828799061719354651459565951542585048554051429212087015476816248419157437882175271558827776266928915537563695794676102178044431774527320351066295519265427479750619855714645910797747217940092201567501578786587738318569887606531126786685118445195776195802689810799450972183816418249482690398698700911145826528436380774354680783928046931106152104092690941364562897410172361640496151135714854886801306772409455801101953544554015946507162531808747268737237173222580193493167182125484641729600731494499466049480076613075897732145443829873021196011948608993483988402081222770180434190491691957683720259931121148133518912325541965285748255302246427691387762254547095489566569299471695661666454301303706875766258961838256226121542368168155035371239731605625061435457794059285776770560931366177171127162164315372546074848878021604323951280640516659772001356650391869013278381791853168762940950633475892517293780960996170851290299357518436189442612709901991489249650713625323738065578412462127785363748770461374801345586509710278130714711759678874082553239896444363827600193410502042785449312836396191669592464938153583317950289587872072037927189864728797021190417610455934755200055847984212810806930252422993675955218483690944860060432598685329782424059979262134366889020433020987479416526815352625401144350476485154240667484173618696508586689140365066928268071149169320729975583480533549876602483831412581193442776744607360986342883694261641982513640305829220637045773936839428853069302364595919231582594821394907629649913776857340578568281797516336092506712591747854541367096849365748728904493769806540455473470809448017086408068857106552998057229886037260243949793551396741551376505313496004568072169680867598957081778935212246493094317136653026718042221363469796029350244958735648672332425018561942477324589656431940303383876259884065363228465442859989640943507582481325337634619657699518014403238786028617443854807965770985983276119139819028484778230084339569631879548837413599128071360993052728736748411283451953044012902394866950605570456837738690217963291160788188296967226792140881760689203591032902854354479696582533838480414112477128462293681836808940490549882306630191500178026221740315643328998309813733516769245576522956349378834633642640875590245040845024456355437085628701674391954220290371867954973823623766435508518632609699167694796060948634211938159292505397998100111314249557312543917314151490974432959351717024855999989327347274633252225526283513669887034465851678644854667214207995355705218929362588777254425241000238792009780427851368828926892471561496995341549578814057007668844418430185100420041414558933290823630529822172836577558803506794284160736266468238890545879248886013307725999753766641278673070432674766549444356835934920689448512605233010827647845710586427476301632871558011400701449537207862499611625387639112121953386135647739196928181230099882770837683308841472570671623323983501354573137266931521687120921045284438363845973412218408542359916161162858300724102821755885310783121396644654586875571901889597369908162015656257948470896267334186798892300377661346616826362300334164313175735338461986440322987750535285993470283741895449394175821518590939244432608342139736488084009786695551194164246029708881627300715902530615888821028785780036691308159985785378515844201077985940961105109636019413697453302739403889983904549261294973021090343573107130120994963146925103203315226800627261718833133798451653103406855307830625321095074961399849625297334680528120012176174236518920314029936582128871451132489202328799206929170030999787826204621050966697130903583432006125091393571122651864980140452300136200969110251736909921193502401258816723391519217533132290294082902135375076729601781799474039376338650436919484160908796933773069879686578895709147769062454837723287757462715507876997951973216059098868231269774178251328259398634616100024696290294267825892925300502111401671212167013956412344219905739843810298789787754446076827217540576689524396632026008595764898748663953555332130455000526433217518475051848127146791208511741485562323919459183025141070468913588957577379773227982631534612363211437368863061950037353767643606842348528742494910880452565744927945327962255212266243535533235366529159306119699657059676332585845219728084032784630459561451102446105275268131190169756085460407207893796688674083949642443697821320725331146290406569039734571467346216842261627729819751322461126480400955672248805908840737857621211754696789948514571382286244204158179992091432362680526060818702477950726308378129186950428224418459980585790911691017551612657491907251596495756932891306997346504680968651451598255469879469680535626909520373902838940524399634411129956416090844541786635664837415226355851347106619543377965880729355551041419892483734127075865163962029050552230104321997549348098702945483327301629429869502307330644231524627376610677883912359556418922804979131929030921175233071968819389005814445386164828054084928897350360573265599046051212989495777561919954458487641815023423281186402354104227723337044530087362923828492902152987891091733782224832908708612262785037246816384678726295507432769032336632875123083191129638650218385454694001082570953422402355118561335568617520587343593059115087118672008538268175357969750275628539866352850452648871630692464419696612298648609570022488209474315349075590500862928467246552915424257416998956698644600334195270372710323130549187483551321975191125981970303670235644559777896997006885960675399017433374976390898493048421542293796832865719987250761409242080385450383816878770157444302689191138499501351587895980619393837097325328107619957137069998771958832638472614657206718466840944053653957298202218970432526349661840363403680819190979272206628074293128901444091404590159097766650878746417880959700728050900984214742444657189281238676307436485122044858841963478470743566962705374121852879403171498976864410341680118134262267416809203295111185107301580008493481550634335110963762226869704648865475453134557281071420632248878776362063485078612157440326203792437412037596194964471159560160916530167444126996559987508515117494565661755758759939370978545436473933583258918681100777167873978780451990179365483058622695928409397951733379537599345558523232809354077642410857930818586964998201947112048769110324983299282556879196980266460973225932184025876942685065205950759685661032529255385296081183329850736020649610794391378358077143214891540109683626139298669748453253641962386176951477753249881605169669824116512462311428655680583217883929410436816405114184698236506737536345317304967558921868834933907553511654814410121772946914607485608924865328683110469613377389039486396418198654625006550908597019043976723957461488002106063775415777542146852053254811348723057143581261925638725601014825946527361482235690252892530860957265702574066007196648218040231449735099785822452016584555181624839585431340902512634877680728414068551652582676566583745578096744777298742599560574961861678004701536693714803634590036441495298786186763109118135555742786995570035651500975556864190476715218816958574186538149914975857535176221837805564764170204291885570090164168156969576792917158538856156392375151687198581003228609456534151665725512760384449829355447711080675607797335044187772178969926819826719519476095329158339181758423393434563721692524002072227083829025330601137523466765757707158762339268750856382915592866558443945772609467935914754716892290794391021998667428579234258415831725705658029432072343976715537594411967388603874941973886854288921673205063797094392910288558978352158544553278720428909317344145569572660263827221829260929807638233693365797917741406503096368418565443195158350117721353373103843620860123497884587043828948129006591096925789651671638238413434538252471626663125549874166139148749356368527478842252829622371176451348479556683276050744773274939239858908962272563194109194009653206272668708333993825991834789007824049876590003917486281599684993337301654177253010760229250956433330806920168821359599587229218960019894314706106598524063657393588603347510640814600063785058037722033727726457452120803003311016639847782960295780173842976837440997689137753757133532057155151937423841049431316262708521175255643322237965956748964206348128880002754139861391258070687465962431589159458052658772875337863756086872538578755928813582715737291399123643775481543822030731307367075118889338053956240767433343030882556503442129345950977846468259155884827333533224497736121655457482073184290285387879791050748521693697781712219343105473813501114498361399880970820158062328995524288075388327873181594383490356646373988228933577565156430413581986813310274770724516702778708518329962106631159940886227492839686165537240697850219095983820982542442934555366148079439609477721163973897601833191788369175571749187390591563716793713409306667713328119377486520100230244318686510646811662335066382880092529452812398775992961210025154878124976451841466447870625631505122528098971361105007776478639983233823958284395681680284260104193240492533503655403259282626017072508154975911733123750470868565573365711476809398956689063106163998557856400900171175076975463158781206520645875192646211181883358822446230419840018389312477082087392962405101860742125164475890677750370443613454029899624101784694695351808663802930538142200152783589380420908980941181877663667966729836584909198649445998233433600252375926248044085772943306079546708945559100999611996632251283087018775691474514300980518052386228900038806635945011308176559199573102860487633017890876514770634694888016666947496387140672835014178174635151047759142823690335411690788292988354835518745766434050357554589246653050668495638692425512312792840468164855953718816762586841516183934859228476737963375903821317950173892937314558731707197451181397126529760404241879811388005295432049350142133962372657469359172983056765626345173614301900200387456941637469144783943754144459119324133472498960423151826291075979024832758423938837590056726637036890106882844996857104867875828012777381926448704883578248857464901607699294225023636121737111576331204787179067477705091787207590315630446186335080577458838779198442524044239309741959028661890947209787700636312350297180563554627032630842521076146736193173443791324914983103040364977293343833615749573882367241827486512975801676164598801754361917495234274251645638059252479945208052862750094351075947604798531949963421442154993203969101637211233076060375182442281596179563237635854520526925748329429068031672895431956941459371220492758725057773825190627346976204936447405109934319936129050511860182952364885210873832996929601476451026525358744214419526047464435757796682089860039540944193838935090082754106514868044111559280227111839251523677677765434966434923913084170025517480916154679062611688194251780742587264438453871711446147107470704899475517491512075357844764667280250124195936946702590376949393624775530995568502126697948103435257299577147980907322630798161967177934740356089087292792678891379896670752043338511015571438664603686419697757996466461609980079957591206606481545773745869603264275588157852066767853911872374969319548933211857734653174855202092846949071848841291355027763795442197013597172262475845735611068627821204877411367269866930269226814640892014386975855624475836388799841866023316009666615263468376291864498673855128187560563664409146392941264100665429218235480384178109619138891296333121530660195860852659240192704145057588192497343730457571504599269319663599960523770152687788830044183098919302608974097250789495654776639036146294735091123591494867542373067208095600704477915350657878231948959889105122841277081733511648260790942130264053720762430773370939742089324438132273521482679218637160125465801633844721137236395986466867184686505984170968436024279566133154935920073564394851756361809141600938875540295518846317313619682028574546693175124760201815008179003205017664078665466299213277082259512823979744538951612650014464938839133011489262038912631150661656493622249415912738994177887828047305875226199240134984515398578921164616786784071787433609415555397371269392807431564084885611162342203227030420107878462191284217628717282234339596865177507998749513022470036750216650793076170459335405897839655176234533984417787720968008939084399935671293161779613347563537111401377449686352105779166098740118780432597432168595052065933630340767016568283280613684900230242842340643561263148535151136873335851606713298888749435654175060701922031454704775886374278105141084465965145525977412421217282232621693339562606835210097459797870144768764491455513893682989308146378252741127347988535455065132296843087530206658647625736612356763532157685363523073755671348571034630095204289518236370603323118126496985766150791013784580104976384511991331274820614935034769216310748425974906922862199011714972463417117263757842195384327255909436726209448075600797361455997625454729482791973172238610261477456450898865039554513872212607925339205876216238016044520734093643533010603338788977903677404983241369810898976625017266899802648204727669147965664359492942110598414099382843013542815841420907102124362320323923985371870420271465474747828949045725537893216753777845175855628733819337426510662728780455009519420901455675792387920958768220385161585399731737931320165736565045316350401688161854572203502709976718693681465217215426611304225879313032507815133163634725670256198348897250178438299115501782268584321007377717969467308424420909305602042946760816344037619922000816768736868363893587546017777430093753788295469243460157125535539486573169706942551452319104831131693437303148623566105600197293027564777947615341409299380948931817415263713061976277546340962274557157441851732120016927626368306655396693497870017220662341539783970614800208443811539999136651383094109925644157530589018993507207729801898002497734360172937358384458562989005996496266661087491852120965838299250099378523167444186468955704911534494384034739881878488616742125230010428821522217833282840870703973503526276764339231953581879432650630366147308512592592569765723409864382942607809361094320518703618386855925031759799293150477911716413298191295215507385830710268655697082540257810764391188448017812557743287841875382582746570303497823735830938106401869938609049908435014186213329616680668549582505537148205085350802002919304344832491797921411186811313839775616721857160478815674970067635033982091880750200928239956406871725700930099815690861875793500870695943577983470220567666299948088585919225111378842141523482088348658572227981552943973633015534087922827839216404189540863249211330394624775574556868070978384039687258356091336756076051453240342405156321712308047826288623629940568147651485580094993696969819296724146357136477873650889496076664466099112971912835753771007936551183754935415659072397944853445637614104227044159818342546774973833418687986057211971010330523314855736442392224140770634898642889908708942539437425578854760677377552049953537609028885383716737152785869110571090933956479304476657822215947086381209325440109772630575233566584049232497990708907397228706117478988937757900583063604071812873674264656570763233412305101841894514082295243162808044375757391034494612537114219708302946811380452642564020826986693356913488790889780552348571394696314871237118347281646405302742280001772312189159155234066343750155788844025500008877615241257523175156165831893765311309762276850521693128362508358548590052314248818071601817484459282651333011498291862076662738060752445088494227390260301251803066992582535332998709437730663178699316489141758526195948764703658451229282042847968318580381692234449123105145952917377327036028864216386808645806900326889432936023111924858290654002138646164756728210549114862799279558064301608412437471949476447380898712951591947757401752701295708855303385608320725829057787498331128382548355364975782398576270974601049728826126750086036087337646377935237741735245057810881697262097682732437959473039016376082074469960566557468559275508420192887728126589862528759472306463832976384894511176057815115845305368399166087390394942999933996570920941226825484628274559189840667364876517245131118391614050387936144982448724997637919466987162897477588611914062169234861879824074361820306274749601300122399408244203237501022702778829262780123442518939001392540972634879736208377763495939021425600586901171939473158429012554716235292906282618657052339908887140939113839591809778702837258088342451244311575384606157261544359401344802183243266156429188271009123522063529007340463913631595215715582723979073412998967518781368529247607912608617414259871002618071985046503929626048762429440741963015419261582654919461408388909408669779669816456586690328371618932731482818445144312684336367955625346130943697363411953995491231099801903255810068293341263222938608033142375031912750768129735625590930447877076690409399838537946436409571262782613526103820564581707867668860864980903998748923908913090181531784977044909692306274386451067605972431002937856246978463520059155296605156860563443742519224279141610770183192553876628459719623922034972036593336440472768771979885717440363444326190241638701140917014138895455842393409606373746724374223379719282506172685779367153061657500033334437206650069869364811641995560442780865466280216318191141074470576399411204539055907707290440863281720448778380733093616394267249900562564852968362143194261138655144502131151748785250433822365597255937983833089939577912556817408730278383315181820278901539743423419055592640706697075954131122160413656987211395108737394838674041093493714164926595160891251408840830051916696599262356110598298184600427648904675579552028910960644076599324518159308051202426459832464491512906863449306470248371277580555707008399950884860561056388949486491222708771433084929557726041041088045937490650163460108775817824644130512495215467875632914131945678194430239666034846078982357021741217532202657179322925993216541915826090693010868148748380225533377760822242614817811058114841355610107774691310634423418617131300408261115776715084353503843905666506522115726381408581417980954224855647469676246946964824273435512327477051927410561176150588651766630419313690952319459252025051298483511573072403746601986930197834100631068792221558576166572789198729313036220729397608943678248021291002175635399528817660086350931659845214666905532789465964720345612051488899546802260090417040713938730666805580989965319398864760690687849688099432876382533699930382709668525731561973113364815650695518306680879928721559905264416124673528009503894938037165906931275372479640573523902733002997551701637798546238895202793042681784842397136781490020926142310590139535925004566923174323992859359445199279744067007905713557396023257216297880404927511244434649656252755500835477797706949377502998094204353979630313850261464977607698716193974387444744278656527749506215110150745390347368744940874011139647288630507357324126653710558745954746809908472715720715574350004586819575920016106553115507012120462489796812511305907679259290379634149400413653365838050980521946981277420204304524289378489107027302732709437301931981750723777306577160536955578443516300063027189264906593193478753291603076138627375179515740271879949072774325835262611492822433566923011136515243064914959272307467791330936004046857268072416222495910130169392162104575939244664781015466599236925120056586437307143310375280092523294624934708258870794964720472295707854505582272877409483896180739671472638636142743019164486217432446450653335667611197804702330190632195142152994340909034589400921295951730562501126552069406648488851555019843459908074499138046622189329225376186519593798956570201268999300216029729825253267095406014064782252828253982678396401599057543794655358924825038798861690283411466713848108765949844062532638942021415012646028727675207403325110088768255657437897925611283882724219845083049162986432984012880664440615609989284558311157821681498330706642064201727786884345455173060866342632798296422063445124538862200678029505227997142960282529971913788787941790751455476133264148908410223772187547485867629335261834679037387765622114320346343115605402459468941071844045881267194411660818393687576603207271087552286839337504859191355980353531774363094357976671539445993836986733127943240500963963689971721865239754383225592331280786323856466804375336774360292095240676703993103578047407191531917802508765629723684475572832696893500973256186783538107484010111446161633899206760674247342889293277776579723126543242029442667319154532750365245419229447112296269601551145614711152586090734741228136260180397114520706202545565310892455643247235437146288531206952986309616965265947107639095719370645230171220102481636482882519026638386519869637225765041489468975690448597267358627869799330249935690919655842988529789113077447832526560624884920313241276478855629968308151593547605100320310207387092583022192745321800219019955474224605340339721092930449500496012245131946512506199372861460739240813698480421784700981722869263840290945420945721360664344576212088102008153236195629625278509429069731648128799135241639201895543077232392501447711676261230438753680509198978272767246492564519524795461680210980575764012362828433022212389555886107081625535573772489277220282958913871146666562020527235002151819305149711834898007233093455912032082432808307664918768276811242214971855277487972240915238333669406090405952199273470797808554007472255045566430388378636128263964497384492956240463626119703461688015289855737503181673747714329883981975181246432152643289509194412780512952773475660423893025749387716596327545288035293845659728014097217009764425396079307897405370383238578357064039678251344245854138800053360932946642520359024853497341198456607888483735352783673946938728815948866417331050236450179554817752426422379642808498114757526298498908040291074579470980871497975031613516672991472548730878820370121741094628476910182396341019831869066602062290152984902032852968188358460160170877256565723486078097776489199919640368397048065738828139113082177248631707382434247854818183730945557696494993879056314394803662979661728920827590907584944646284151346666197324113257830312426351031639525486111758106468578019729867432706654935785733415145367515980211968037381035143415911714989503117355242203150694237838960513651420052134782323036979519375036823971323217329204893556834057200271626612048888145814347744229160644043919771361948572387946123858578867556705852120015287062021366842362161539082305264700097205601936829694639631161573505066497491755109865899299778641746503304209401365105786758432542570130023666676109942680585160415203804719328569734614607379293557179023487046147936431271695168885960620422706779720406054709406959066370831330085898792675493747347779877302055031624857567478658567171633598964907618892767289211137210870425451581989170308266625427089970963593834298469422150474221160726951626036559974783713775600464991578873865552446748015793981336869804222834593973512013123919592582209695928728893001147874418719782159498881241230113672763826356643289183346918450021151202171350146833540552061652319221119472017512796011465630795125688035734922525523346898435356436555672258926794252183922603523749570805278236946715922117320941066245727811239269509659969215257825202195382856471107590997429719993062405987579490703757394171591882040221512551309899774341852010975910605454747188975681573161221175293030863955350858823246712317661094357070862969619375009785355604215660430776791935468458977268229637823330099547044816532497026772718163269237465241598110436590973507847530174713124376008944926032232115847681471681616511559615351422818464043715535341364690637917260264309620183061486128088011008081666046992851622538547775460190078193222737007025151368190512409677159064299185716631621346898811305458981201424629320164641189739045361620459096017777258757195152606737798989096791163978648713848635677143549460747791334823210364822392503098352551862003403740067121034617262694127005681008550158767599949919061541964229492113571116150050909241220358806879136260416122122458406145667276191521567959423976476120630856081343188354888993499690001568529922278218828480953753484713656503394502387479955457103269161592014413949345986739798943505386583883756346900848509365725127759075210001058814890644294657520040986060694217984529486229133402334828423964311892437225290701066276616270414953418139518529746225981112573209353424256356553530055422651339271697799226939605862761187331528367875308861154196494974638036685459171814123777137704023133228928292607357458316449259726377501965243807504753685278480154106165412024061660277409774993952653979117632307732721709512021447648326920685984772606446002104257708957762675105303576303114945322644741934360097344199486478500157500989135895471914758050194366987767639705581914810366584148238975139814139406578792127402997713088105199197772104046565671271704795878329011801011574156861382669802194292989224613149764644611696806897733558277890889095839331578545997698524916879198624552964435879343721470864952095202773319753271064747057565414987403226231031597055209842380510597794400069665103721454955201453744154238742822831283840380458639009556837677183082577589943135523045885440608863676591923933505103795318593355219468339847529278073996006699979467558947281640953439279931863227370551041113813563326437343535626333941621494340727298890949505022669449227736770740717237024666915485426780803522432405081756998401625997991743551990796181629794786650103541968380570885741831929219695855599171057325149055177263629923621038322368726535254355282840296258591187595778840140138951603184480587140409004702587397405881162784085794137421054799666961561132168010724202962357165594249198541685440627561472846648173029953032969498200787857489598606149975855980529577939028114254723779333318313689317743541739314146465486969100589140748229864940875226906605812627021643190141036923413538244192754722571648977175155821721154576687001226590194815119671559947764782210168900904654680699968021542209029792469039232663708953568160685073351208934181076793336429321700395243981928323511735810309033776357396189558104580438907410833911012657909962958359884415236338359317144605382839365123739796911718751261683164551816506198073649175443114176694199529394451431861903150969731897916928042500339827682112217048607983257032386239936817306842583168716353066083883836389342847848657636534539877231258614646683137914774214857221856967691747104873357153164852183257873157319003951782735216756160075227858506149026038821454099482752240080871524270882144418727565476170090026969875737943218093626275427823862329867691696261842771354722970180681428391738724675656947312299251286280966964692641123879739095350329817546029009662893026657668255284090172085212967340591222778188113184282894569433760195269873621015648384875738086929980187245740678198024502468652695409314188443584296986768472448798951782865363383899448659921772645621404030566225576490953501413341572552900949086247337378540379243346699886465361641976680081873270574498254773753397604504675668314451647555631131673720435182956367006946704086661335510029938333560771163749197761971669024915312077800976503802482226737773174951017661837799785281044235552465412758626120355472416014424234496985854961816481090316553073398610479255224551081670992594595254929058125773163632395470356786509335911452725059964028253393265173364936782389157093999700398675860315107170120165316611921864561981379960140503706774724597067720488746895988321739008241862299375112590813993604816078274928515471407396663207916572603655614863606863649836163738744308338051838752547670026482017924096565081453298339493007323351001707609662970887508772131091172045470857201208440311238328680305708745469024373205697465306649525727665166009863154304026300592771179293645520542966372277619115143322519935596688315495014512086218203263240749980427662124376962489858992405397396887591356309503393530168349112507882479698590492593515484554696594322327758579766216079214297686142599737859211002419377534448891566418376538519884208233434175044545645785717489329214685403933929062677152607327172811729859861951968763647649288406015662970284454965026555970998954115132676819285138088405983880006803689135469688100028181775584439498249775455585750417350404121144878780713489862611495451109583069707110360240441116370970675593397639431085058208365445401350682280954006097513375711292699824460632098251770753721367159032934718223926736004718369179935435049511227236519962710859894427068664869223668489825310639628853920670388447367825209873084725067647970566323326092989716833039834867582057596589051856907935806968826097469773595917784679584462469622538833595506935468842546977633773746943359033972996223657837622253386019834926789661847358181920432344259791411663846301540758713361767609785039937634619828650404145437220997837358469896984157113758349042620211609366331794818912404310989385701129344706483330994922322731658606304709794574961645867517815173302500272257667306262357703485058199947391221032122060878397988999862734343890579761400502044312856484704546707449828617438610849231821603527304147135151150257189574386617619886619874032595864320265123050507710320671959036160764534928041102542361212882367655828291192892262218893470161185268203961290328921182038158961462380687769449886784388561848137687244708272527874010477597133927137231631351978224214704183008004015053350879229976118393888445617049263118314898837605777179487248298567637988151039260860542055543893580738172385708532780100610456125414673205555100867138662895072722394931549573194698519265850609092790636384700412850804880270448343965551868304492141228622324790047666967053526103621418566438553901545631823470769468249037879433321900674886005583648729287978811121847828685507545276744813985249381967390232274380879018279460587833803555543905728109311372927212417174527863150407607353190463391835269873716554392144097072247265294057218827466700244591193134125235312633278683441740457222729728426994068006214349687248681298157397648342021221848731280131566705080621573065185664823821788326277553858285593051677507613952066888452448954163730489606845462260207089910618329859771962634373548063296882426012443787255133125072717503069649936461080987310317996431476199498470324743713712586059445165820291797805519548606554146893138366964216538585475638870748752574738287803853239959927524474762098777788605535035244525157099252109630238859817818224097719362134580643772301767705892517135755468453885466264926398119759031937714457429343198725235367943336823808503097681098853119576237040156065579440967551980614996897643898049960865780232593230643375293603757022817422317859287669232758488517401381419585469144962056452207782532599525440120762777432728064069592314844442864718706321543861299078759012430298389800950717670215578594945869132001067300399619187963826497409038521441998233710421069423920885054570577284220118200124994350597693107594292342917503788353929451672697112097015077515263945767245035107545108486220049569759772390961614998622534789335250385640177560222111100841359499541758126381726892069455509224339695757271069277362746921866028319532250091606605644606194936254354377102137574020456442793638930367854119445709227155949584504352938181249117028781097822131500071425878235665235562736793957786089640667307299416026129696183054115078280296865774602381514353975859360600750427179270173176547700725664700194713125292869824868248213538310894491384220209051564595375027482733158560219225366229166958438921035767918850270650710680164770664933473450649368481093600370210596376526468927277849245224822225670545900542787937297974534654185589220973893631614473494466892596401788175155875749112171437704396175294764593521348821676121809603889279119121417977940024184748186534753160867813390277217872634194683522849754931459573221839265990745867148665226474767505898732135974380777681029471969173570131340264189222841144097623443791613056805496553716495840212725156400292490132381901738615842970315390055448865335029031719494870797029988004403472459589266759348998661401710551840312551565370262730311193504247020687051734302336399443416626953920732742971706720565716437300998689610701907029098848359986544697878306790812853925987698104900212728319623332039477024420843372548193555679745885937800820358484453753917011917012286160970068966106963731292302215648635911041801552668540326195086494697626907117142431514785651279683691677847536562464659209355084692167627384667911802825248915031207638985158940557866930038815584218371160257818181539592881311285345106393206597874595679186468719326229606549989238925265656028666479955859097629310377582815599803548130772359176963624608237147903946940458528304363462941414919298295444600434858721986103332738894203887667247189775514100623512869032837114843040836649935115084216625829802072132000898950563575324166371993891297965873008772615652423215857627588773625331878441043853699691625969112009354673447684583043328415792602428803835657000798989186149624061013703102798137465777356530946921566687410600296383530460097595372964181380117859530832035726862337667615825484050207333564481826178952484188118380985936779875266231973247284113928180158690064026775961018280790504147574965020413990383204490435765451129896967943819156907994087451284525141331212800666759176150504813781355480229455784277313511135171294012038379828639734992374438727156259721390370465951605172683751768313709902719518276171429009288830508614599657200950236916790897003945328591829878751741303413321701305681116733718030128351062066188739999810789539621349500732693485741546132094643336461495728399768952054788830869730156977373596488759922098447791639815178144834978233502033400654813318069499458125088487111258101319963990548186023212205488404013434278380741234725604403082222811806107802293564566715806234053169167893353294614310200098971863250644743636820654179403341678549243899546038265618730005001172396463524798531625894393598405096948637859398536652247751355151458919649227807365057431074876026523056670560146078026139421839185408779709449737255569316765993592006903184748487981964777193370493834095675828841674021385807289653380690291072013293565645008234657254861518183792365551914393553679431516649957795837219189220656790148607278776096939992690064580276433524554422268393345304440373554397565837950366150681416144344693996433626644379364541528454268462447924537385351904726990264480373398976175217023219558190697560656611442983203934240410459144097450882754185904235341136239872542446897920048156841236804836818561148786447231545397400529155632449276436854681000682859385100056560838381787534062824758293835290995706762515494909263445936226385011949117180000799977447733265424391398582990198172563776769199262684097583525011092722971399590961422288385265560811999565977953648144503293405043747878195454675799561546533824600122542904291017720754632459490984449087408735693050592370864435842222585601667307755621663705083097291186854703856465947531905623947809336465094526879098150714270571619434260099467715030222420276074394934256019237470460639392101890240537147229822342203902403649928572843441233802952352686952409450228670933315422529722245151276506020553123381019956753986689056722310920938958974404100209118449421768267312692109278009773313368014442575539153082328776389648831954933170719953711197878784346589664475633006598751220071549137205909012235103760385151385206927788585339416041596599519173608023217293566219197825612597537634386443643241765817477464846964255867119994727330615873857080208755210886404070727206856083860239961921854044148296092602179461130863557619871829440167034391619165884315352297229858423260637207213561876415416715652166905610199199087085491588024338430141378256287263411321384216303227808424097321569879843905775345373819761320922289402743567317830330508995696537131163749357970774297857449481347355326381621222945278509361749063842642531569686689936359342878524499508232716004207116805114748727006697737314538733941900077408504179197688605142221626276974109320742958744262859299595888379682341160890035662425841382421937715079122352135470691685125823016656095318050518754917285978485089215906137074507503621163897704377383868354459747414025424226866063397654574798580825598126776217528119711976274887566630027999738908806878966170347665588045810013189965994106870403300093834373572984799065908898015169472916955616711467619020146075420408118662702446019242605387928847668248075570967326305602906831564640429136407621585009888179667557382774126198171724260534572912144091328240277020494197253269581439461544466453446072457866488262463800484266235449855223045037970774278888874934318682026631234639158253977840303393187920756553562884507502697806314741307357578091591347216082860678493393018132686229537778575203029521275925603898285429062924137868205606029080942020276606182222273721244896386622114746531225323820157990492688219642262806496077513142234026764998422243501825444516999456695498929902438194966205244365128425225896918065110873477416463949646673570483499067032428545648105597090582767196901868600232369849991989364376201868929978666261203296166138887039722418174305513168391413633015254930195366044691449994807256746480655589997323568337547900524001604970746190790422720463220257543729416755039194835919130711354478204600414863123801980383773447615325683220707613704767330307886151512735155841083431084295944313787981677885150370714101056971301173559050862661692855485278277353881332316946465468565072523263941855613931471734770246944105923790981008116926986075333774346687610954683640285428090294801133029291731607981469803530417604155535124723752122778151099049432636318764267520755586589201313213526938746166899412233761073256970607527021603133065170740362934924041419316382323977377697614121628675393561958541491437919636385038530251817597217487519885978663591574197920507580496165870623010622697902291607796235237137974006031195856556093392632327042332339307500768938045574977723820021284016845666034352037639861079665511659091239361339331509078698491648277653681378128415826748218229285899748613567242551399712115973199148105000010049649364335990722729089432633044019078048110865815578855481112084614191429177216519748026649005672608034767024762523324970178019755269078415523222046938746098036386396801608311318928714804533390921864922522229445745917614631686727198860986887038726391838462586022517200445882019161835847502584858570906456708885148515804643260542281914731801509853529205465857798921233561500246838423542026479884041462072947328043886576143499671373706888164864924314647597430136931162567766710133728189878892154082493771993100660279899873558818733960087949067580669118195612670932000615083258747708623547089231885226677727184794473593019450271694399352294894222594685771264304401867690770334836433640077197602440155075734704649372211940684531794446520162597672149416067028678630629167380768760498333249158379435456234657864741592094480091744420529971161535246117556674840324422704868219484897985847497282985109329160149747943315975599501846295646393316281981841192523804576863391547056889624937615084407071017192742885293437767050453734838782919120920514468648895695289561089645461945518113847319689658454444851934131176813674848593064201894413512446926029410388292629220669531809459768194301302210282568228673447403204093563874700838070054857486152574073081000088535362575116675307819453269289268562197931978975243060217727147696020615264820868566627869734887939405273813553127118873631905340908642119620148427606363869033960395974485442812999788732812199080120574343548529025945067009705962232737028048020850984658534587388832965094570261238720849823690705641171068365196300871437554339153451833479124974894648504437007191285434677836199208272196086143800217964536151970515991701103671742465808188941781540691223213501366650816184024090915226367397947967857360036200019782281371699043476896543052380923196228165055562361296018548124523339316144641601853507617289509788418632025879698491517579271989728149493994835367809807852923245417909807082849227647205029573821430669844459939247191621554464997148671318847358401333619700954301955242244129321693620641953836686183020793194885847208228421130935176972313169020877762089386138145088919135986987324114836981682348831572618063560689797058961760082998989645349653490090706519086312609385232636630478852504937860065622834022881492197912381602832871157005821154680644067961918271966439640798232670614216796862120046928575930764967865530337627085112187349328817065137712852427836562631897798116618406034927076096554113242230222084421227943291626876304750098707241689886285911327370307695026865263554568237603775814866737847643060387658987807798176836661789169122199743982461257038965194465625941582354680571293878868335799778291755545668444707933160452952869918682440822726839092399546857161339942864697334695250485612337177115517562688067957046982316179337605960338998448235579997285011879194192055983588353894425050619351914902023210787485864502691202372777733217507158746163512248054682641006966814550747534236903083399908388864058320938437497386094763834862028880834937612902842730377520169931080773920140293575769227816687208676701244155732598104264524122215680892815434251894943093039493354193710303274998571104437158834648722194672384424799614074432063003393292419235267294457670592234307493339693848730729461556279659802530756298386063767513124500321956734569031642717701583210226259358432497642353888483161833005910572568048614978233635766923251323241782457723710514864209697377301437040788759308294008960646774062981557124150266088351125017285472016231942752822989331446156264544079300453311273881137372048395330153906725665550219975101519546996826781783142425885592236105228709176700576559668416342552638203250407200282020212989145818625818251630126616010059979723801981945639219067870961648335793535287117204153561438504375421265934449582852871762711749931348681685543863797878891829481695490492589712059638739300826246269380962743049707891196035885318687206935348094824340181549770734945036101278479135981017177220341421596271867233786242286374442361677752849536938545935267049336402216132521653285363531511860244922809130762773711970464854695362541779483295083978667221695174589764074261027654583408485162348636260437626243449092694162238689440287050886130819793568547207660098367892214577310360869895361191990217191832649616470384968639011756753503015745853231149021493453099477514974601714181016264450007068662024310698184539911295447459082185581430924000374332480742812684284136866427722933663878493314080944992423981518977907906018746880210866513584000240539865502748008610571484873097290724063503675447764718774893956675471552036333990778674375651160544751385327256054730490592305414532655881638824039293165839579806950512650659667883983035064364002460701866115749332508653483465403147399014523227770465789078184378629905892772893632114732475133456298916668715798953988258493039408027309447768147115234477214931457349487925913886960651348066902882708220740402706730544346956042446470288759062573397271487340951694030161001032916761300438982737479377107042498685866578751421107859193311027013560151590936332076820390560615047760029992374138755135040551850072018215271490723055602309839147830140048584137468308725816638389309266095819433642597375092891948620332144843028075457710258304173057415423267302324011345891695705930744816614449418256567262281307413980636573457541148981003602228208772512795316885748227925018453035432690105683001052043202373199710426511039912087338078013721527817962857317382810308805298869318787296656424297531211513058319467365546679010450028817091610718922446910269234821482509339496592466103783037290701736402900437484011644561608727850586483862195816536741276155493663459329670289733625706515025936225319425670459332022237303226088077260369525650421056047636131392258868732595644257029980668629316991253853340592419576421789179943208558665980715184086402025259200739110873920306849326752282183986900692331843698369373314642398627388181035262177154366538755466885190034172269198845903126387338429024248280002996436255514983298957287914042958695135684656225903626436434379241203498198764362142731105989685146004719470595938750106929994034179073541216452883022963866758168029415521029565201392694942444061028227109236840296940267518603850211778838733689371721539279228065677954558352533618234378317286495576205803029778835990736875098029912706434254311096221932514632201006314678315593752839700546128784931551523082327144011318109466493623669186198268603754527301179930869531520581088214709099013669160032300534078265383602476162745950677564577345506914796437941810167342813607051641147364056825075157074271969273272409662782812531511112666384740316982254561331997071428453207310774976932759684325056853003080648202342769364318989120488525038983167107821995480996917242274163996889538120519624326132232836475017365601946700891894437563927814007325131975397073340670584500377863057381924240962251523474219450133265169670063594806583648863061035227844426300534937688165514431176365270898182359257682593459984630098362116350873197873855435328732088704968669744348004007646435625300411931168448292550302868770398968849339065733243077397981094362449379707106044963808994581312014112573159261428506794410173149797001476908462034764828276594249356123401292888751699030151222409105095863481541885178731610165547595606354112747860252632977434014298138874584962676124433916968767493447306502371907884247057673443092197982713028892702689994204455813286164400981531925449938720941398496189060340317509696065592120712559956869906238456581131267553883254641796282579778269181464450182553850380835512980820559311790548047125099863142388504736845107295508283720608435213947136720943888671957828725365307084690845711486031205428192020600022254056569712076363488779629070185457942766491907267193095013845797957072659234792889495095178607431037184620942521113905179418316275801848047792462461104231448341219821884641146508617336755157040878754475344115281378131522434362745383000105549578452832431377477083529760009932854824921047959375037191611683589559756093804514068218964849735549558012176104940347343449075329601790859713372077491108447217617572684713509935870858609117054331216486081209556790126590081446615778189907590088117964479066829176757971839671302785606083889516611741723399844486774303735206969801459987525004556766480107616493566393252329311268281687412222586332387604875741472513132555778630547532135847770413567351487949129202899491435706478672411298542110742072295186674185468128855063820851693144263391749546921077143454868470778643188260965905236158242629192634315513330901310754147743079612431177626479154872322736296667102320340454165273418618018436270267143956735126315707335917106603416600406242761934560590275502739649692039019148035894998768206151338332125115653153854157864076874532865982041596668902499244491306739774662825297158615203196373955184755486491070243895733853083770058279705228336208389184526501690330402348522967807780468858355984973960194361746319981534011922827077707328548366893507615743388352458517129298749494472042530651663408556201114833919422503846423335567083205389925675168006913901096297706491919966459880417314832608686701322786338412442182289667145054596175592677850943632584479366598639141752452634471042897294456466439509217310177269760006739044448913867858733022368423268125872036769501645129066212898865174020945994318025197222642928538878940223873219090531339779690806052691355585453822386700135872121008011163038365138634738327890104776946123962558281333365432924690075805250728014602297802259866639242606517622545444676767457731077452269577738986454377930093224471799280219205706750171361234582496996605562591354095294391463240858508525632652759730447472435882835165590649153111864055435769002339653390217007012412818535107721546272585369149822401458792043616198117680859823047873407064860736604277432347701251213854456012060062156291831742124622022550046779788266079691196914527722696891655609849809092154111478444803043756583106625047245955180247205690969208711575001250767107855630293418696306642709400053971451164006145919751800216366638578055565275612234168829692477483696002329902837746993471333932068784191243803916051130213493568482336130017744427057438946622558325098025964396126325942881352626146235832164348158583087901524830891705488880789441746127074262996492919583697142599627608164228256079411784247957407747550001282932201219015711425160958585953809943125328175154753682335496467468347544764825281385012075670398059192992234662096901499737028968674102770152275631908599108077089082130700553407543176103721050581388146000858997120932434527478010542304865164734325048931167060540374734395794733466955254652954573295236659464160001279935519500837139877141110479545086877234947844113739329954086587029555496980743457041582869341086960553836247304671672507063277645698917976833522531559115124102295186447027347994040533085788041565604460528067739583949506441829457181686894704120875466047276393882409731431908858475764873592558816430307147834316680867159178379713193796671626787290671885197635940925656292756882211917549932804827439233082822612735769264009926829006669156986903366477905150683689952336477810185171618718559438210905968658076620650247948681014207125691704323171513388793134503520577218310334711424103098162526745535747077189882753916457415709418075191615762749402381527599299199792434055226030911779674626048095070781252036320381976603790302111779712430889794731881559099579618012289802359710776301503085744233233734985333723826629594013004783132847002200207884258621930429342169543882518857349155452967303647384197498150983714222200185889374146531995887809857391958529048060979670477595404901968937403726965617480265461396820146940824879259837593131711899478584944704569270653764844270991972032121486488030498038187310997133678129141864309945434232756804373333290648104741619030940747620735553218160124991641117745403338668014275842895972686781031166839698531478351511483337415307554180558596403062477909944575127906734674764451080739168429853960285287488092350164599081163954372547478154486552964272548531016682298195894493384904486863900310257826146287133612651099393246729818784101437119038456989194671183984270161139406741662497632983238540963801032988465630488820911713269131678111323991685691415348243037972442322591982889820448398519519545160040089751152635218066276087812807395898082478718229527794806896686321430558264554959933661748680874745978853503003400090977170178859173867366839119457856802357970623635455135789864780327731409969038137477170108060648694195231129694840945963079731617724380129574755127817094281541547240554117104166417081957604085136716181854728683927716141235844943860196347218160781421397976943005812255947039573516274577421300808827661588775418633867420666938658892977962630370201823576016521866056810374686130525768522841161092337030081133337537029807060889842399029846540867254364106085295412541975435754598515000984576828100005027916468012296683603742546173528469178069012604706585703829675790564589760806592265284428154615739068036242998318618977841176136652702119638918835845343667581855959000139914233972774263166498141179943271471510034623748488965137614235531763962123324665220886553889256531229513466831215677000639838514172035464328965388133687699584402060026486822542431005522936662684221112705763154336064408946327898176359359995123737118473416701024972694507065468066277540576055080587501242332139933891594082293585035571477252559309643415587690391520640632435738612982981149763496798497262336571007339472804959614785389429311268715571485854073583130218800036573289313071312028286129494955525267852056218554718052545802210814768935830705624906808672459970282563951486659069812501927515626375166772670138979756170194555153367242358275953284499341235833297071712855092038579864213032953552821867106846225515435021991568078308022997136847061421869729683286986860224788488332389487581017446549996322221493627690973135826337674844464734038532833390840008611273018240024918828286621678780031391410451959326201475924842653900036384670521888578688638192206389964024691804009043105804130607661237532556559520715794596266350348760027959175848254458226612764207183316412140838253528229001788893058780504479171689343081954267908749092757319603574794265023354948915364554637693319059719718215762271667851495088529202191473702124885197750230184435575570618849284388481582889245014507532592855831459390272901143122384810178650284755025055536704893120418504057872003745093698909046870284400240194061809136562992617622692892386045301535980897703660710987419186709838503749446874305029724120189750863337796442368358917278425227650713775901247520269991338263335662340116347194675576031657408273051290061677105331337017672060668565145300545842871911916694598749463657450112358865789825744350405373199120702686553706542038115398276467118878281243426865372745263469169905416810788704270680836160030155452189616152895550668266302484073706321896911775993278175091704545576947560177760309297818557399183325987936034273503975694021521969560320224177139362086224021212810135892120814256912721301791449407027600419336823084551881673420211779609033767783212226323404263575999264612036437659228396041063202097102522780405097625723245306426628679142398525684336156530554773184042696586780089591348412253536801873378580443299055258361712920168083428831017340278391093793134083165303940700882379121666122800511650765339987398465054663084699116510204512646095212358574787518575397056368616750481636487090125540487928403390443383051693431758795546280399535322579944090977247233804516167591584037537875390587288395332273809459406406939551658162070234415596804759019226957740164984264684733149066178801768024315558162565069265581822308788203785699253926906953482038872135562357335123488055063094496433849474556825104887620974688219438735662495679522693158129699691421714956795565956070117529747678625407248813417177009795159473567376251465187581324604877561729178022161199414081853551176551985823812071034431991118090788427736191835913709018661560416435121843906771394359442857055242742666129743330760919817032396614682479808710585945188709056141267676981282630394257135179932297034028267556969161174959249840560966392050185733095030112934050515081087237063811272126841893781995443279936859632298031194877946982110653393640373248313310611391314759603204732568700240043592370171646462126078470572736114673894267725314596809491674770242438311620973734300457528984597033531982822558433232208630775240486920282467136853536055483554484973374616071817721211325394639642802368508403465702961551187732027903294972842388936938410443865530237091451479662875056829896988671025115662773305098852936039557637721545880904477885226325116592559310204404117865852546708362306698646841557066595485426557272372986310459929216428203033777987933830800819728084941738203312744958458717472473373644392643143945272514523373974706972667190231929554099417631124878914217504921222110311982532707137945373758292994271708557161816409137373626050382445953235541468114937403788817633781196828931818096564547630810056191384974267073062635800333261966261869034943722766344648650866800676879869444065530956107178213689141844631625191743572242483231331244794356444145566363401480185407216084279083494637782527183405246699126406997470220111962445611561124048174321829028819051315241334382579277897573685682136736253482633905128133566091260419549892188822733324942533323770064452425060734864555954139767707306281430044873681204727422430461266042017047402492455677961171775345841688921015098163731489704474169627261206039034151880280745360869735420515376564485890947678983490189672592726005885251530201897599812205383342188738958204936748976518708753833324769666276965454836398701885563530007635698113170374102757453950137255139345830447552583413531610150168286085185047254504887814442163017198890632420841982923011594430645365320212132145654574949589783261580018494761708803432238607488310270610544556698040814861059093125756236796389293640131323215543042345087317438664445175702055064759609074476605175894592957028895938793167599984103846105723397196962228736475310456309870703462587107379724381841842069771777781409012757476986604686161008856385415226296969042794245512512715823993460896767773873958509131183123587635634982351119372644444334831749701657637053452850454834370283800433739980169599784866038543511007020660120738084900955159020408044483192463784642097517179151458353390392695739735943142524962640238518373266134622340154487579532809396559143321920440842241653392440525284851700232676621456296925099393917634220021116111327055368029497146351170444179548821929191740953994735540182643821740204828184440897650638337689340740486868448810189056734507356861645336619980746374031052993894266164140879467693498502646028860724473018952921637470020857579730978714323639591194726430421591627756357540657289286180307103427787830372552557640160274164284509065558315399270133831643530946155248412879556929158089969743384597900693286426110887779618756627667803787518478319587763309724845120646993792504876781545613381362714626275562144446258462105055717540091008268439416210448574841283363604505941067995565955284690470368200448832548233007474144781707196298514930173783937994641737193990856179387396683497799537008444457744276961562567911095389747852510425585466928569083519369172838055800103756362495283491250692002617694269309678077525235861386215737500493458127086712494674674768301470087199644094350143070032279342932938927437226963459728933443746037886018696174458735141990464877463188401965447685975121826374716314787812147731711370029745564567534076083885118152073435754528464924090904238341738765561178963012805899470607437129291466566192830808349426351652846591161657542060912535880534514335323446267934098250559708891150038834182582399594041150769088032956030104393565803280957192430794519995608936797368231224511229740859274115531338663101912353423997486177670862839964355215237536986322550156615068275370607069094937905193847561625584905935990421740312693479108873388577702907339084275760911489438705188464483474958313823690239956173047957421368179407519850389767298734723551005391505788803849189921904485395031236171525629210837711740163125807727123130628903067218055312877607025163372666781035810261561384917184253791251840653926062807313006491282643000685114010406288654620055604724235953438409262017587662371818252436737323851859640964458813110025962493846769993279998102034566349400971177632494369220529559186244241753096064058366400289186937295146573812718125514269563635449062621471915437098239526957827465670622436282408408454647765290692037461288930796793782792252145572509798681747940383252536886011813685791783271012326949822775529550159508666957910090668241047525067797617973780096273905099807579324068891033094765333654670844930919324693054445838692498305999474436194987902594344468725343325572126765935594635110579698748463540774589779829667886149949269544864075604787477027156673001225869887746966123480231926859855596138452927530475741938502148856653868966224121057247754871660441192434247065840157249131047160568203591046582616801849848116690071866619568275705770843553010419516883100928576059055788062692228319528427013296199490974834585078456482179465477660826724326131412738275035327727452640690747707729303752837498493260592489851084374549293766382243513953913267338599517215404799379064973294870864730418002114963028090496232826525264746491974938845554281092804408180589740652754054434664840559585090451462927010365014547184342859105340466652890983538885840967654041158190230743382114350058751522914643412548606256883046418746054361715793314706481897476894221977896416068374063844959417070669320254120506726460097757142712767925993113945651667381358624640257311152401374169957344737290756152161619483524795700975398280985131025737707524147664411605304355654291037785826915888973291453212258246022359745673468274920949827952840661215911243859572571270506449229607764676305710827160171476875576317610524198099961466683822278632597703202932242536729952604684768374883426682185616686205542503624850124712777360331818092926561230769044267470023909024102232480254676211164217541119449518050478299709823461570721364593087541970516246831794636903298711123824753412718487832448645763898447610671567786348670936927644208554531867683678559636989778331732595550797781649468582823126992415578137450817563796017835386926217685792821635291717837240466901457685870433069505576568387762330904831738610034370876355013044087405858070717713949022861752142309124458475787713894614057579996211351263415478182300884103383565821997452025589425314142286842962940647681785522248066756796325598210147134344518952456519227899878885102026973526571810169197140410098005717996031238075527028854294911279280971655584983957675893376142692133384747564476175681724994046280972638875229769392874248963604920755523279398482709615791971324982842565116313892474249854215504631952428826393081910148352521572140080782716786140164452889834227648797241816099656630172381640601832278522309717670993702866374235292640285435326493262851042839193713344190250021050805521454480187092576913195530806198864945482197775761526504583820840865081711542108814470865746863715089433122666093109215716449089608964699603967887131359150010334062161818061119685006323541336499467778538587813393676687660572271285444828826507963902716329287946827641249353516838477916969380804394797353828607451848054749329724108559879597344232954665344038420576291096891276927783052301967830700267413155851564417820072582395887270254991077126234653601634653044015293648915883242159321083035944407616251377924664391050715698631569450207793584544113472470607285633353969832892464682012443631204570872667169181326917147784446484335616208592819791439892368213601374297648739589828865855359322986544705587619993953063783278797752921310002055080189571867685495570498289977850284210039198719216197011690078687086463639418862675055757566028907860495865457215384374322090263993283596990603098331189578405079993235972671685634857728076679554964334634048526778959245478468264082778533398180921541265365193000983777837699568565118705049037980773856868407883133573473763267569251249301764203796646098630029613322148292790884615822329571991230537319569537106361899075409121802984011844324722866399967209418496276334562784986618125102288687927192807965356990577437774820167505177201589164806092022484824522774583337412019676762889766526600349291693774616324020877896922333145863434572166167956630401870110059287959453304019994395052833700380298732188764201844214061425582559151902699483000219465630539484328861346959667538131719488800427630520761127545957208581258424220955894804962783314094487294017694945482140037385902686551543282781252032765756779812903357162626930429196164489171057137596939651512680375953029524178498875391898042437810452653184377894172346886709711473015128445800662200531413473301574344924201487229342550063177077328643847016802537015046948047764431948958530267942169934654373486196078960248898058677822148606951101486342328171030644516096634008223509503970554972848614240437917300286809792016652246666794570133652546403064065955077764570803325322520677379182306554951584970390679889650853241576004836984345720378597426686017349844985614593411564175072217047017110324342651357007860172596870955335101391603531449556190167922935580409455844504238308340810480047692818662696601600396319894234537641428547614427318419682830125294403192709614650019578589265728238301361693476349382030702078311781495039246172145929058962256834106609626696400918153713633960264227228302295799356545535102453961549035364871280586043378982605024520659739731332175219229059238829078733918792240979048016416672883323762693867716335611759419670438846434125493839602023773781542341219553621305223698077059331889847566264911538903282999380780101408414696490202221206892961652143344985615995412338180762505020315990813672866045815247153123793906282830716353763749540699182958184446531795855467799637443695052388362868250653721682883588359631526451002108895964357151095661363421119614627760873888113139027388683892914263544602609462254106718395620262285933145362600938667718076378431366052686833648700438200013866543690631939300313046766210291705797536799766101604668344250494089375513096268542158283062408754982685498865534036772249718511370085149460112905169313007245143590925249267900675803977674052381377152223676591803646274534363776768645271818820634402732915495460183800118516010154722095900876680764545630050122621635111076764461162690499209364576791950792582508599399127357151490225470618139332511237496011614066752999355801930118132866346659369522325926281693608527627266433183402137834460523005026195576751756716347525621241583195883816658327920791852036879383423696747835818842623911242091737529288221573172362104386396959458285917515049965697426976586056194681482955604065781079807829366982785008508028735109200165624549144453133512053816885034732986476977914803106776932921480362766668545907026521100128351271876928498737103613491564183442720938990561944390459470712801745087890949964464076258391013215131640859655875929647483297447489832140389057131706215300101800851477069084161771353091120114665647638418948597470898569028474830647939160673389202341228613712604865396375611612468206631933300009150385698284441788837976140390354863667403993747444414607053828798208801003419094260600896073805108251211917482852023729947501614871580711570018274240226970817250036473989440908664841934458267514821290694966287604234042831087262488219024929965198517656027338489300485504761664836321418361952236363312365824620039111802815256186800423202576666632203013485071913316235136269576094609307763336104241111790782899428896364299663328944869025633148375140249767428763294320854932019528099443918493173957609798471751325828831654771434844038800774777154137992909970926324964799951567128765578308482878648397060658873248412411078767986714752566689968341469306498372464281771860417790814151854249439363593820440992144631348341713494369165692042150954555917417052639865027383416895111893789715587617565615048784448527578203025965844609214317922256802654724130311589558503867294560649379093574414931679977905171580326554537663161759715649407857967709237354129990640238821434465801660096331383172842054086479852846427730275501619076016852880157073772269624604911389558441100670275779334023959859891996923910609191112458257293381293507093367674964830318375065889186812117617354767880825513464220001585360856955896947034191503922188587705823665673325959374951737781416743080802291367746617904541126000904197016521852996823839705827254587975137382573820439190837572232827136314354457803049642240359235840546409754282346703317139827842299177253175543840226771701951876956208563993182345197926910470905381876602917853735270674764259539041601046858668051892435412260613796527606350982597846579558116551870775346876022063920786372844994170915857286434469782056494997152383711120670392574592305268436081917260389321300222576425965079900476034750162098093706559045497420744078509686944086414540239064138245702182360066003355297533040652725925476337417771243673728878782067057760024347594656829025532930680513426225531654827991878971312661458884199041090045064914701463836725740337290731236671532829149713900119638521549717018543056081374734604741212329431840682360522928418105602102586421811543749884458253249919127966914307097115482955510415668191937704674231873523017885544401242709252220608156820474737315345220380642340936617433501595755842905227991103852882466012907598363663445646599981632810955813665579862544742396485154698229043746064112061198459391190413970419127009733647691438920170992536581115313312090030185704053684150155177434130995596602484714469800842341915032063523903830081504394892540085388916333908903434542456966651578698056180906421789425533624365232572194532088756376063947037541285698352429821884947102826961034985667056832763643649581412888896499866775381766695827203696563324055625585030696881388137703620727784137411904646648133850240654552675288164878090469640913803401818083170292964981008894653408049288733894037631162033373759897093169956191711665003184966911626147000494592587217779593536719517976323419986273348668783460369427939735301771048375372156141223745212129320270473366876876538557535930201626785342333635037193705736805272818342595321762640506782516479769872511650047538889067118748306460534236409961563054498268682816494652660798976214217494113983665420631442628393429804525293975236339516301936125698451509044248667599691781327149372119885263755383271877959047725493413476188910616545862698525625683941811588450662227432764850031545683480234456015879425126672831217605601712383490828964374014452296577901155356988719964279374907118053953785298101167758933974446378002949156500594159367267809565496168905028091278231286784836310228054643265462555549746852548569373177965304475031150509877114616175124784492574787458571999698012116304991589762152794479923673691633527775218098601227330534837692699018618569234613328469953310406821892901849456225820633533226251697313877898052375895070861271104418491564885008142849837909143263220592746781872727868675701815928857814960839218157290161490189041303546137993995089976614048811607025490538378359431774071528268097380969270216103200663183398585997633352308041485178561374066620690673154322000419836704306286395237136059644799683312705192967504887198366261382752970898526258713542755903757968235103359786966550282987859205591876723279935228947168338187390959310383450597085640976322074478406705641470880825449711286273652296322703533866055818230390786753805144339955120514822669353151610736975547489328945747901036879245602022231552940168983360471404517787521356525885022566397977948212805300354561349949081463220600367234245394313990208395197871180089157542970154759464869074099778972341887570907226670956015095012155461172108384482528172453135076626384985258419193405765531262189344016118321368170929161221763417855148295759990645900512600470409146649266665413689346485547264363118746711787852954892721175293416189192245934501640182332910140984509844509478560611702239741105762296963795738325727178372790129158529211537944344531061602916674160842428053157856123755361246529547061877201340705983812885845525029737290345715894045207784927037127803449635372089455233885377820022112773085151795171485303591197232734338826846726775993504871166964722173825334764053752078592728494797054078464143517208071442365958265393303768655571767708895304324037669657288842653546325318789739295055109167921363758988589663628776676932890078958905057055919258775091688821016054901663456564123012131678178076552495270206072170767476441389152339550007133909967034692040174615062257516737611899382066789379069754308301131575869284480443203030443641261779735955031626266912799833541437657644350393204862859176124667807199824072089554170156894043930678163645810405719562499149863242162822975580202363028686859067016573692599460815183189320257072990097427704055149696200163544488391858128097177692987783167287940851988146469891357955825333168979938803886469797201795750813287506156174603500639191646831200081234712548220407600480696099708232590728468382523820047511975433833226352552041956704517332368237975536048434812820180761276542883540322389874391781671618977787021826215311141888272800388927857550282104030247516003433913984019405993534794641783527440037472739136627060113970340111618932791062490924142654947878232049091722043626225654164775899314226957446327143010304877444702919968496219099526342106290751111953362228058067593903132128347137649966896965656368674393018900994515865544783256548067481797776963459036460256123035147984547259835240525319051546024470424382631765521827271903320610269179019994619025300787643670967568761445329499587210197045871532889129405773361991868546332675352067441609250932599552299915813731699995884701303621380111170964767481009166338398414869900814554707285352135710835036454001212542362981464941764888276756414804319365715436063836926247393341079373474497851563156687188832159222625077803491199938280539644921514663126787601225644605012496074545114375548503633034879081443045187314805545545977498320824784390131874743783369482742946423579590244775864664008783428660822052288832397244254032786058233312683504233741018266479049752884913434022697425331608635948386370067724604521988796059674040620764707219621533760314188935033382762904524511541973882517892399006512240140516996927769466406378665538835171959672078085947628736285973011908889254572808173673944036859210187336463352673754224621000432069627121893390653249455038983779597882783293634666825252622105219480072529910258494189171102103845919034557107027141845071761443100681176402842098602647566614902384059562482980918114226598131344448314771207949710306765269130127669375096066327834795607848634914362134217675988902608791466664433493139575562977034947599364777673787726754847910903033634686139500729841357592788807500520780880686311983444574325699747033593874178288832740692405271988941383450280597410060489022332541709287468748344471369376015766212984495340633427319799271883318789342241506650600551345613744868115528203806236418101282118676511095099481868963481227724435604765766772205743090514428043434011367968381023252543695699906212644489205184063343328535220265237587236019681139154841058033660915571515724040869685487948291461989801887802010417767825788675659688546832532189002965904488262571709477897931348169117486572209093130247827452172980922225223841760677596591206240686474298977720932039537287025466070594843380893223102197755394934233861208649294796067191051639947923421446976022324980234304759631927625769945219750403851357063686314894755832404738668272528483696183315141458724495639678307219037155773975464511535496487160027066764530925114848729091781419195876665655197663755168549207857720954573394055613362525471463287736182385460248365729680789668203116818343424095959737478152999758267147021987466996027902963627705897618226277839315564101899442987106272530124878556313139417835249629637048571286799769879202490680065265648492626700835951579074235916616506502588932892757582001101119153934692996114522301136695014280136467549021742439860933434100597628687995067031943720861677480665019869256558450599992136639523335790845980033255892989503486782491497729930461688294115197457953820800273642335390752015605115787758556796506536852659253447083261207081500907434008853657803291482174997655018612488465014093308665545765354259232745377930744537522186659346433465567694724906194160805582359124060317661633438214939987274013723895330104362311710279694365646929460280296249977925690363762858279804075939753530083441757897517369004693040941198210060383782122380998707009031090987186524574534057341494944835657344211449564192659238409230528094618169954097841873740054690011676121530732468621044418311476181490640397062575895171344647046284182231891817792722029156013600622511454082939465815990809625834973438694182456947000600876084086371939098331487805093853384792431050712632389324764037816947801862902376908495807585540031607902226185257480369701580428558660797708736355218179254437825875458419145181354169469577359706614333024761604261890182469540115468258858145883271303845351694876753504810442652065000643147791866526585673734572448325792472864494115323358623777043921359229830162030432398359365691983156168998135125622688330799117647378713525876409079276005683360335083233339352627151217403768766490003527436064326100685857246323686584560592195292323029298673034138939428171230839439221313406459024759465342178848491851380343954381021282406485651716947364323701570136789861603474934430763366009092276320320414195011601574516211557820385899676110064361480059257149610810879173652522967193865049487725737471759270335973037292972896470490172155779273910037235806418522778731638821605498547435888553630196425914108383218232225990247252103106371350271147814504275397584611929119959409563802992491630481289418188801596440103362552743619819439509966915753189386642692388201424844570380852733377615313144890964803326039969863920164609613076347334382530900814207293894946821676071558306034488206275560584705610156673646897288125315807668459751164401304276451766423582886485864744432824296106139223088918147004471177528679656405507260108699729178508415680760823526349706539739752217414617732690707489824076406278970307093474323944011690438036642781986055976507515038509139294321140371983038299607851503887738341210401090912885847427042049484147564875206577213313156297263428272447927744245696850849724409300465887386444371197221848704172072581760794828466325660784409897238869593596460412248300713984316588184281591146135173678311007431621064223814498164832202022711968467173911292123358313590156418956657860371829144296400648331904750852798430083565908512964354211872742434341534728261702471793773189576313645347108039083506309083949004138117372578923772777747285628317328350826096760308179733388500539261113574145500758110075334818394783842504489357121627758223466079039878040246949740514126799030345015941560748688197149444990284304648950864346424320931660462020217860127287910056213941650154441902663610452295484182300662535986740489633693304411655364391177551219823461863999298195815631063016646609784185172829884171607794897318977374375717326667835647942243115917834571280473984122807384912580881304966262983090886616552716940985789075905320361607000091636085997291874519592792467076615860925737228341722990561863189469288385841336990423033576934698629264794983584101218783615860360528803436467808651339984034331511327806136309502651720944639522639712285918470305250917228478813108232037192541493547911702897991092089967352598090635013698791503590422201220249237895775883299409764092498259828266925957035857101822657540096234572276228536210935560288463197362086718178502662401899349264026393139353382161649599630456091714793805976383868363701413160457737454296999917072195005741788539375928087552813405068814480181158316826547877952873036896495667321520158368694693569195053895717905238070121473947935529739786556416310819042657191835431784866147455698123165199745370205940901061056503147731745559722883966273176934744713746021945924944785180453148818922294519043891043498870385229352388697893133732241298993033072591373819116228714360945772224889253842999775602825589554739495107826322625288415160814813222234982401747355154153523692272792002288243147394887594030073678866770713855374026610229575222678171021546341261163026861688482066967724233448563495687832052642018230349080169352768834706086495750071348374633517563028098146061791545722490738938903833336997097759211767437782895628994777085305461800165954142279320241805514346998224741152536855981586048180296574337241114356021348360475877644335041193055278473900288173346030934023381519613094641522550752744613530094308363059861974634164314825326157816130743217588732158854469393162241799251218054492128454680428823753855886990270104727050315222835814481958230377713835140145401113515169560643034527013244671130195722218902880234839059655385062855652119272308083704812859364739057411976142762761482653750681015815964211387214928201648788857698899854312103094489707857721754865775418436593233441169433136615507398755744471003612966845729049986988467563508058683690238119737810785707796623108581473346525555637541973315444817689655459799379601964590160160998459326513534022506473980264837704970640517673914454258933774968659469954603589139416044995331735568453351294031226095770566151094893558429262854429027896911920337801980513050886697493531488086165248121360560674287064844684283757278729071494524455689130876015869964500472202542427597790756705431679905116254724309628462186491015855836490635715467105436212477815518156917577548391016332553668186274839222699986513229744300204686365216982925412219401827135451014972031504616241010554026230364319789470619838350441517013850531437616334947433971277682567234086917501643292454229097614040471565234393248498444565305769027041829178919579497143330614556842380188088701118114193601585349958957159606353207044368896180704012084741698720484194366648322414474731574756288788633549086759675421790449365707897690948600021390081876430976344044565023022660321469503622461819466607326092599487587842926157899713617194485945040952069372893231128586457465735114136418763910395986088331155402354326338703175132096513840713935231008893105341387603547795964465613523519416029915815556150370182513412660909877945910190488284037156648707444427694982187146081690410673082360966567944583537198141288169506260706614489280060060151865986562463360291081942406311044209091941709894993951220124852257376509438749186994716898943313153918939073017994309246922045233711668060362610912206457293930489420221788241643948257551309869260943395624224337843752329794363950890504680637645049699595785290344792902923276064050901686887592254586789813331211702526686934132504215640049021631705355156558005763600058585474832851223592035053983952121176056718811066442347168029930912668456318477340743584087895844368098891742185742626590230231381507855404828566769262430934948518525634091079664480668020745815384493444526377205958371419537304478497703707070331623512218061551970332168985131180712868768763367573797411548286763066965763096159657461576488493405912513551595577263790832647545061925008709824393430741237716811166334155114534876854161632271589222525568602572716869285918980124815201315170989742613419329931464783736590067214677546684036068329059547895609211216345928251257475913973368071814616457799209995336172438966145905237117581285154806230330112076633059266238090800361064721329724823382229324650642213330977106631415524208693633560636085926017245966862146957301706052804892903233008559868550322972453558771026136888371550495850970364456502109661011760643029926807756307606776301969918603546343359570383168387283239745160226113187977938414094368404727063198052142173969692136006127131771340039837265577170961596535086074531299708495966363324080111448437369653213431318611896496247693926293152602077580678249150933803019445299106743476470975489440254919106418157738623443031962386224801400432762059329863819005900949430756303758624414041206772321137267585820543064867265987201196207096089201249099712129169755930903733969160691143001898711491909686705254326662715428256964900299169681593505109474068492530188773198905331076978066024626976788595793856607328942388829657848352997410219430455000211430822543563371246628950576211330468821084506580980661210998598835700063623774189654144501374504873226313694290970080433970449435559081550666052399429165229759698474503284384093870733943325887920172390889348929644334412524910282254567930476195701622776294487755023972928315817381795205817179681522667338297504550975362874712357421961842663045204604403730785086053284930784918470406072738413802884981902581811516350932638827961533859829848974927595116028781519213105410438509654160142397457039456086959300591657720452389266724043418151636175068441812975795217899580216330702663808675538165821254112695569156898781750962881298887276466497661007114892764637342330513354679278286726678936550460209715575298705323812574511567029615107476672182623955714953878782675555669327464033587726546209448882043631022758599615571144294866681766689045790088646609674254383361494045847267270422615024744913210575632762001617555621509108745332592668838010181142184642990345258085074482189874169702745271506828970222276862187854699608814853186786913084190105274514942120507762556941714121418156328282257225691893384749410086387366954342202737352990555050908946982629438664828184940109081156337742467720590952697692412095782150685027493866767109112430000331272812573107807149841868880426031366966207110510751669017257334462366483228360969086037255642292466923421392785900355258773754874120442712788935969029515990281584025532615575219666031030021468675433856952249491114598159543361721154507059051961161831861342741721261922163566101539347769523460352688040648853800972276847727637312207527849162039348076985807592621879954641191912413434188983871280191164064308617483029920072610150867308122245720163430353423817115137883544722033391615777289689416196905637793922405862961018972104734125958825916902475736253051976290278594788890902260307551395623047922238929069677952188246276180230795281073689271702861083888737480290502841441727776210777609518626309031633125379055859464415565711517359359437330770295497702610362778241472736399622608753507142851693464328862162109316445456762026677583993100626289087879267286112280007039882653660653532560663606562781154277124708498411600213264367952426765974519188701741681817895170250284731034280628137461627964066024398928233922146128255867591090251165794048139053650185225460659672344290465280564920604495015613856232848258394976911198602387347434315370525312006342067077646124187515965815493109085972121091938334311961527457959529847836769336991154880047373612236210032394391072967669476467861907942461496810017239010619649001821387482253387466408447311141547112025831086162762984880919178920611192955325515453574569562342258247426180370713916114783030623952335972342726530639981209253723088656621237589706490678057332602753341013646323524572182990962562785171127978716561083639547485659040178924737508590069748667254952094799660232232163661569633141446262665852977242290608411402376447409351992325004470051188940299993847471566942523028539607709292863848206259309160689449257610553100975173051933499298615789439348385611653296302019493050722533858082843977181337980661134268243684524567920983520092301079342634007640937744829333016917626071394308087001341827525904063479701388420585575841513694098020495840971792334419586514282990419894484684426300344022229490872770990567556335983494279369227119919795077128919534213979301885189067920826868686825736830527461620674296165958596568517486024118063947105927697788557470615751085697847575051736018486638835644404638739842352445291887931230902375587321044995426643258001996229175950573460319343967407626980927705327367930307598670066107870437060450712220825152032325060840178838833435104525391736036164227531987473567270908494121000618293511186263423623831870956663319155833076387230833806445342198107689191223074596554677280245737297118975566946081966559863232737308071934850020536591383245011629628246889058718782445376005643278199537863650180121273979978976768443782178089951896330192013900155081937213649140861144172176921132557504247417524113592549796451523735760826158882106834645101426054198897887261912898431757552608852162365215475273013719468248797626984494152078992756400963818778587759690700004957666861292547441335189149203240988025483835722252839796350887068999636746135593780277950091823293914091424846016448426078440980326610566216110608609918837572408084232681438296493129993801721859796403918006176393369350670409335387499730033022080259331123668825362032815761211920957534144241732641437761094388297800815547336444382128419649766070635400771688894282818940432668127707479325448968163077948796082280034887988973491632178539553167670492128431064039891027168059557207742184281021144410127958000799929785878258073568147047326827996665969700358144447634521762515743409932172453162360029397407093199282265408354548833192711199524933574897039138121752665399878618200038473424209127896943230496545297337189559770706173664224614453302919277297326623204161938694622177279187005200911724007937529468382512147346304958187531525601662534548777358905407784095310482709348230642884379985681535325801237185659831930911201615783780550251280435281637872313475162220552938638636514422908835799911144747532102598489607033941813806157177386448125325813729439190081704556629754807026346551503122178337388384090941250674333372987217755681294478153397456604265830206691028736422839111083972278809648036399960769619257930680253121277383125380312758828090506593518671310859917123942150326008165675377714171965267571375275687189455754552738484174383783529672671910455683623943190664587495837987106125509240451133253870163093965211905830308801545508555233330104857707811378048362825094059015604255425879774155229124324870543655133190269717412117978850494969847619773548636180730327196257919984814009522953344675038073619825126835912501299178411823882005981601467856908616696370818635955527171148759813584195692047897396364162336715852986331393599517656142270773056456617289451176586321080886618830207999761059363840146199642734071432783672539910937172865520129257479677592110682465208150085576228390602208851568768383625812859311995138679218650045328119025127327410170799788714386196765517286221057967936658332283800299029194885665876820049133421800247989796854615478512322176198692495727121761046990757313432364469161650999600811421002871920978162650948590567201965579838713027967665578023349162555438178623462068567810710483777177378151376486082000550881985813850974856598346349680177262573828085699203674817599303718734936035742769540691384586949882310784826232234262517607798172142603937290512882715368343555231402446855241708641538243178921674373810040680839716875024016967208566894132667420264887623695302557255200068983350908684267307240828470659474158665815577722089514108143788443491621698325417696087249965378884388985881929794726110300578366768592031756556653842397031997131473738063706090597905799826510151898719870239694566890260832985972308895043343229153564460595467599211671117683882687730845271905805787269045363887435817292520794082714529404060657205899967462304114408776568868028211481793491163996042887063116432980428651434286050028552701025578810861089792958773019087889827125621729216243189571162056782078938085965056214245534152778905105021196225263944965362033628511538106142414411950399688357828621665653406317828990054270147734102075728311572078156224988227647818307935848813037268785420915432462336023185286699907133740575002004174523483335266622267935839793958259762020029568020211048450744758835422244170501211744334288298951237869887161331970333214890758227363600520679014932428613641655352098120308705170344119915531027880158973585964610096084638839153770350652112067230054258765313355576463870733485849560208519738613188334675792605595673039951317991740265284763927823705780350080067138135633221516536950463656097266321950728321785395673363308444042294637991617758961458435734626641538623938580638762032524703942922767619631042857522990077645850660449587919303411405851744138118921210532917596251048435435355394679245799492478249078762205155222841902209124886021455759569641815311913879333711986653088174584876231064456648484946287351723288845102355208050926044981263207461956441827065480873952706735083816253704553043541009308274998218136906537573672305967316341480530185662082875784512688519436337105273772646322566675552279107284608857228799776507318877343856811108294728825077830632586344938455370047004358540746773181466029066256295965176732771363138501552503423879693225195767952814627167706623476414989449922913782115390840026686093605536831487266056976194126628969235912691067579484810209594799952226269158413548253498818837911658480456440222746429161885682132570733372055859588669935423805333485083905107184067801850081501636073936245044641355023566181487520172417855450575358542423421026325516377106838667300461808559166132285956916328204540189346860094730269568744744851111431201278674615948837942375610832507216402733241646495315497521667308673455727151986672482985386520076461161391037182042788595586246550455695271376896473196351632937408013544615534650712882641889798780038247878796330693915546142999894419494959418427184450901779061108130338904682546927433037241611028722106103196123953103080894841820557937102875551398567345504254532255001872862027118976513451059689455764469668770688616617611751032890326436281666589401172527513884699614828331145805927830256785390727949708572252536481618367902216711270393563654801425464100518689193619510468281082138150586978143956978034071624201527982910593816050095540024477708075327621814939375890681138218611152629678062693169647569393469173343259942028903655528523972390034933352417460776789589424093249907555463060080492047476721221157768338600010421766688739997027866307700030649165291964665482318653092988191072928296932190820799766291820827575825748749918549612421506975070210395712613635766083142024145356142461632567298172181521480580637227422245033339156287151292024476441529154574021582939488857083008571281307524335178721089664616903768189429875403026497703233188963653822609266111693633384325934561175541729892820873717437731650471299614286645322025990944682489746153422174963830023091537991207288940232709415070713256505381124557132828837848222539900320828601560694280690971975640172105160736850739408273063313557023021044145893162133589785907701065049175305515054655013900112893639892946856365668629078392069613742227627198634069824526117828001567006366180947361751627184957925327350886181524958830233544111524708889876266211103517533879205058438441525032619902958123164142199144459194878911424656198626350743753297444938782888703583889616416918814776001050020582183838068062298439119098916929715014277594335479133844868481349999192768059624407782086865520287685687604801500338338508532749750943321631258780808279044311926871557931404002332958364826359081734743427297184646856317410574623926518668548018344524441763904601883710589446173007235906862655130567933067280091226795364510803877185209964861675217898333614767546774783572456259207694427759295664257328901741679418889922254664516540213462398534687208473000242853881757615291665831381548115290560228734628768305852342888265622333997143331266568785125441354120781800036126024347580198297033995360703005269495244410106361104733463682762389558345600117704232607652327401724499317900863547976934751524246179657843555954153759566272755162524693571421357413062472355084531962276460163981378181418004725561816036384286139810998720382954002766836519195066798245604194807961940692337524064994001060709836901209560266936454025560654422638608694342286742728110455759839709719107203854833357964908288739312935673211083210486915258579334481187432019131506970420732523388552764326683175313698436491358959095285998332144023594405023201844125886454589768479543509987165221500459385659248962327367896480889203320436216741125898627547003311154803624314990256064760568140659457850467200716409192322342619140664170386980962730995315264840117785467324825105235355262582420120615103610554909646663875598769280503246428921734204755711528767369240315073724276426812367438745721795696181397195989544882302382837377926919211241636797980190732710899152930786259287988467316068574946197533656520787585342484580812860888646851289625720861885397561735539974961798246070615199793274050642232153990558667021810123741864225547835968442187471532773880391981477838090810781770767922086615910021323695714566513268742869302266334837321501681191218311260790646562845819945840529334112843862662566044646132675306883482774595458756007605809758720753509174102961031651434666900163424739737192881204423752421728027500343377821243535535337136006241149383495542473913355863307018017432795933315412015931877261863333263728245992827210647123417362867465756174584835989067812978340721158523134684125978229388553184761797304306063652095054572044581437268292431539634816903879549782607534623210227924338887066450104893236798575591802350121343714927376037967666045127227566432844210688245966658582976132196786560744214252812982346889961812990357228704440726158508056507956475017732551281921015892869182271915532514776364812531614124744343312728169345381007876037762027933074029330580409152347841335254357946915431481969382230152600134150767468257424192097874061994459466812390931097377697647970674833274454284982495219655877641315092457457921533884810193410838383717184857020565405917706350247343223256544510054471132090437000784657282742014098923768244349895306960687511037130846703062072661072690314028997235964618014569429132713018265321206278159914322147889121155186088054341691724630079456031946088998317419658743587600075851723622725690700441751138779773176571207895926122317357980938109743668875520350255182026500218438451072338333802587407148008566535017678205882892907514781017048203655367161783155096805780596456639425294586899678890298484881006353202221332319845402600727043013784690416061617942101796974269315504671364427768308651635703347388870568555996117677252058061372902765254299762544413839520870881273310869743541535764018407126684683268516044893328017701261990539483433329366231110440387732206991734369054629537804356551074972319732112881065662911810143090813670523147494411058747980997790812701260259368934157593722828087263112178387403103868494990747217848759157235024970439582991929547234243170139225380000718272552085901946454092385321153071349908330437418314201350765328148766398673167329008400557071095204437897466765405997846059706753578707050904179115855731595485220695995458667988377002990278755663633787867477553333146136797415380689053475656996119415948209651591543220574506051469295756659817956057824171957285410646455480582776188688553169743294690715983675135874336895687537051462335530861689917475254124816632779670113131495087130008614298449852022714758546851792531117290937047221191799104219863674269827067555765002151946686262845435071556669179868528500113449983891556710627389059573611442625943713709716370270479983771743570126387826468404162860324506040645582830690958121516421231192373201566929764466295056338657084389029471328803590780135722543809233951739927955457907468615655949945239925450813652958779447913642953650497746192957145512077529514363960013680353888843877559232397709129544334469967165199337507772712871102340721880691137027419697896472394180762339413930559209537187690844341269333455047217171654609896784451551718402421481903602688109466398994218067757352603776353251882562579856295187426852827812122080739936390224311795369555572931484109288924992757187880506799772774487486803350675066626540582671522660001739463776828241528450775987461018230029997520558911926094608606915419057350611756382568330326872936024641715886618821496140998656800654528517646100351890766719749678916054107833527520737340919974705448048772086699158504290624160954833639126727340880515198419581091148071484912619824644361679593832361831181439099041697298507279243368168541754042404606188186311519742542172254559696928719002893815554732856646387919978347235554661113107560794261010235254375072471336075624353245810131463943837921511637807646610736753019734372930145790791423619175258006955595576098106789953946951888979078828636604968238609159657988152503790119495101775044435543591520938995214535909914049411685667988551940948571603759602505863915245297678805438397320966902422969397189551930998670938666182666798158835794711740300228082991537552697723685213707416893402171750478444773971423871603881504459625463714771752771220716897449020756918769463375701950617218220811322915447052528142264038450459504817008202534458271096248310538953936671028170408835981383894229918294802735658355333584346620814851291830625785894868751759859288006172470514938250653129629208573290412870397090765784282209864040661713536127432859979921942043844584137086787570299302493014758899327928735910713415479355582727455396719214400905300829067475237145225528747436436764567172128758213954530359621203487013870076270308824870680445038185072255061297327289422993615719327648973876767981454741172654374143640170039406108783890425299779301010087087559750374481209951050057399654075672839168462440996683857347654609595495957689838884050364640036347014913821862419200830943842531546128372914726654913808988184369691845226819321008169549000867487283923985567054037164073529843475755933214778622105068731499355631796012653900491771775546536602466713088748580796848794732788488439373837208007663983151635539984403454240969370230121712766085391468697713890041174973151940941153609188310208223274414228745679624088534634211648618817179229124088331898962787404208937020959464236944134372999116845947362852025703558548256114178273186139151521671501795158464468935826662090679809392866980322611623348504257008576112451390756734395723464987797234786086169767067611737829270318430893095084258165688425523018393988375404736781890853328221607183643242291790991588360229549667907075534978149737445575198879871280498502909402042123809696589118946062384696121745213229934723332577825891588866775727748084071872855626750663318407847045125598024296543797335952522151998367870594304386321833171699998281347785412766654409266297637207537272526034937062481007015309309825947053167073765845397550562062223834197274078871766289965573458732135770409988935446115612161304568357313188390679402275479358494514442373705333444087101688088277648293313048722202787355547524064273023059507420338081034919908966641833679670466558745300213886974882366895192424046209929684156766538897698452826933769501655642873670536651856783732936717243102201679209821020717891041489414234752105305901695482701599733854425568578156358035339074581999827293315443135117684076603952610564275456797851606078974995668051132345956363229540055669079500403127022291171772499928909132852047921233523113340032615489271418174753248025133401652080540822526857695174682324184873134920992310164186249099793898254582666079799409618975869356056263727270879564213818627252545108867906089521265838196595064167833113200267175149170784857679831475546846436837261640988683108237204582979354091220778508508384675167863311624519683000550972586744468732863571186062866601789245227496044116872569619104753479905822238615543507942640744994372971307821283407401656031286468203457108642699638712625029226980361769947759571955960517271599962826274387902340255851663695340813377691446960139492694207212377127605115328336157291555735510423989880536386282684392975325091715561686003249814203315127575212510319484281760086461698486341384923395808525125081749208153452541899904029759338280616987891420497588607554544113331727956140118648724137369441097353084047262675984432715623122014525253209449720584423036876609437378042731771239589360704638648425928102957410295367398666556900777197125371115023560300746793846388115987963048320807652438344716653748890916756008617946057746491218084775383547530393787635674930748461095742564491481456569239212104491442588040059987852194239683871214106342356040154781628878356337290096901930652040650353310027949730167508774491915237697859580815717456773321154026702365627455322223492637129766421643609767025572534305185509639528177320389029309735920390491304205010931017485976411789223611206431201305362356862481474757181838178039799546929742365926608855500254866257670286876429378205255427128904139716320551047507410409660303095203917200423059244422177867969081949803850677578706436287897559016062694363889847779027773881975571901271103195469571563627858379175608699702378875094689583849602392865649000114935022642589891245277441287459006557176013605799126512166094001917145004296865604591999610585803942217987939224654310383782617957912694889986910452454971196880048568282328172836560083392658719931274604886031022643565393052519503301367583291456143001281290333472269984082281761499279904983863203944892932620056440404461679346738982768328065487519273078554718713346131530289952940438779767110911212438645879325009840650962524350064694789641498987560397830644376689034549495114839382913768419970539382351955372928844797311376917670102882865776244705421750597701143016316898245527327960229035400243948438144808200525706023899131205901123353013878697487156657353520479005962376101982812065691452077435371807319369081345902415755337118368023053642256186445576049647900496144537808600091960732339489241062954742947241673721098773553168083631420079680106924820144142395964181231537128788785804913844951935635893872532169237474987712308096874414869770425272149583131727408537549969628053994129557783686064300404838731950807145211336279724008502382261542178494517627379359205089532275613979947650707277623330383760580619706526778724125521813563536949819981109170988912908801192051951275441374505848200503442584735281683719339136622665606532610419528843478457536026163729274102271136916153742550885410116259874894442098578078667652005165332975892929993997002389786935819948737958183010143418475831723552627682908709684872372395101830221554840585374523693145318509565239532694819955417608038005640792053465712930306160691208680374943672608903709624183201546780849978415405675915313707867736862453682461817671343808254397932875836553942206399226700439974951625810765555569057272412006887833586259974060242919990854456607664625456133736419033554871797054332711265852587713207026907397995065088445866298953711282937477804056874560817874872818918206689960463000053638725374456172461783581621419745121591183443534488274818055306917001413924980983098984841481568199875579416831578632206459772633423946605556850791750400172070675488222295776337723598015571957269252808543323881664890722043862422024043706939820472080370408712316570943971132987635079482087325955693765940452618188085950644128560554844599328198148038440147698355010636572830845655918987353388653807831466316307325657255251656188352511146131818344682273953082840742260959797789176071380350119101835687861244971600286723758812475862006125084277952958533454806825109976548303176973233539559570013516018788022524940276253277465311158304184822942697882466533750983847055605855762409749506446997675245024968002995105392181758896759007544883991095740679381775535245366344031749064376398891710381150646242167660136175126560533046108790709713365759819008630944378535549261848468990889378936080539763975742008750851075827693270585944466242867280391121044150134563230921406116533490686770917388471947682705572775092699354562151651572756576434259993403770984303619393455310607580572056536518346885357969657847068478177805409809955249005103365620585822352403474852664160974397208492396644121509245655152473753124837838129494872091574739136888902881701489636564663673898199226745442953386017923811791272733903810711055414058928931421522207679975786932109088508884053822478855169885876267856948936142341955998409249797701858224695225611176951242982336512103953345956920430252482438367007127208903062623782491768241443819201712414456770324580884088984664086008791073724452088909494471750307508520748840772421543227384182130781236541999381862946000759773909490561164018435422550825805831084394171145901658755468356914338938944376557078249848620419366688267707618854398038931885926282886217785296598137899803993990176926357076834383404694769442890955026337137482608440749312294504805833075843712433264673812484588725925219405981871749575411678941997340652678656902574084156714006190750204022943498510767180759681971029418379655562805735908905844483233537278642699957644616617170061395208722018125466266325708832320294451474924275132432437823962549292712600357330731963160930153669311233771884962783313232946643895075381808100069980657687689370411765963774235526580895240916326149451741229749066055217734558894199163132445769649359640787664334866888000935650174187969178032724827565710647537305953435151731166998257910156439790052948117709654297833784365879629340084485956002337396323991751795637784950651323447719183522653553765149236956956936110854467493189981397906343237955003435220052063430251428495072419776738572445360518717598917650388343325985483457942454156813252978569022612804221186770779928530115830070976866342760409045254616728889913182522842378122831253468262924521553270204162611404164420096537712338793687902178861465469289816026807815265986894223276936198339801668514118667184316530621973541001345011837044545286530597800794561656409637866587765461720802921646947490957176130027235991413704422074443575500986235032035706723545746843653610669275995016522214648159453327885709841450840166222181547294660074522754805058337136860286930231661692749012606722726114184640811453144047120079576902788779942195359658656459693088744950424152926897139058114060003720643280397163192915601433095030489049174619740341623977380473518733524588822911099629963680048075615707372293010607553211748012266113601406179499527886435165029092930223351129144185305707514481884632145885967152825324851170920831186982945093787698584693679322341189193748459202387826766012100389430901699702657890312792335849656620191484464844900173193043470483738849294633943223546106081460684270011624618618811203500762437089544696634646823895796322409128966629113384217527287543417421353814578443903335027843750451210806397852219115789770721175606462916206931024282448016029410372336701440140727193477766175527008105605683186569985031823633691995286840121003415847126426624120937549995606682850743230768103167626549677565400918248606508645067211010806020915457050500976023804048202214695214651660943655442319661820191631261329043727072156558268200947199198891922186895759048347678893099937472769828609829075031679955354032732811495785583283417301311195660280660201521007381033283028050199591315374293254088482258708958479563066641252514015539180146915187246042463171376577621031431024633518329573952600857078931441235250826948024707561590030877760656357485120086117627543528066392690438732859130695289274712779533861895021954964065845298155909770735500012035247309276689297002810466529230629773083097859145908129704228299674709142711490176245151485769163263479334159495414279871075556191109685822574113383302254995665249771583403802325581449240880846861674834789080450404778331087247642684988309370497543835907641051802983991932436926939959801357720260526993538431192728297214024241376067602541945711630120799677872443208867624675160961798399532864089464231845106620608094033187374836197472086902506087096363666872018764847176834457858963807451883011922778909108933998069307682608928609897578507194948955085124258902581010485875126673327137174154920216253360505420742085284654243020225425736906237877609935604249694325751062802732965868914206310009804579786092956848937849508688473292108635040484364886608399447165498703964417288706144769171169260903429986699777906561084679798292467377321650320502535471149163428363160969622266054397550758293662940186422484836946997181975944845887832554956686963072555263763266022814844659849562623708771249896919711500861364078516477977086605113870969269736079768972540070221787851377267738185463366639252109149527841900344450717154646802785085830548374135668495693702032508256660445531896852873009112906316911352646741594605382404099257071394145403040119963753941466986819821826293688581168838140348165463335149853197560469221199821676777850531448115862399209830384186482708950294560412856073317860263220818315552423833099792678901345463813018022541288928121544521576312301778419125725481620574362074528121825513641659982057550541688671182614477693003301683353249699370407795952146229000870304553119703440587025676266040996390164634282909058589419709512643891120730310903804325146776150219796650704646211991195914603573460060791744197413540598659157401120012795244705215911988873441327075497343456249077128286504899154819223804270152696245406816073551370483074421268905281436134124703778442248202022268321861257788250313548987383658587526260213027871296540524838912189001023938953437862107897625218249402249113814427023822578567334086788336097839944986308408451126491302970122228084190760369171916654868901299535425017494939957912880165005975850302134684393398840116067248703549142730739883085236679973943823574779413080064285052467150293875235281149187915026217032742160698150811471945246645676536087018952613585051901725462533984921490028047264653057805981326937414287681061642553848547265142064919916463113047203406637830492748626323446552009870880303493222937765986688175023245415679068615915075252955399246976292861531361453747101952409208423255905616699387507442838527906337541410903760383853092048966387342584838519502779674211225155271544962531091864842481353415018050438620965746199289494323416935705862354618119070907106507967756027780663269190174276221306656105489345386292883210732249511768586979493442646338978512854999754295582712040410285062761662244791812555767441034319669557594133179550502193153964739780213642907185128995914127842442471888212340712575070463832698592832728793669370947844472536938277138778050119938541906607095845830249729968288095045372564279857313974367635988084632414008660388645128520812314710442803800749611700203350623998806013977528795921360721430584964814513223875785085977175925171985674248195328203176367624177513626042461213252547820579582234009029452644136311027954196074629217361630204214618658871179536201421343363380045734572444987780804709488003900455107818057021224399186369374590020117753887961545832681165091969284895276475861320664351595112749677028724100783048856985477236877791015884372844625021499584312883621696146934663606173678428961980696837742582410021660444625905059769813441740376888502439205312385507835481092445398848498795885962125930400203897711864959160307822195261518131716756640816241721955352370275216005427119797752034061018427082129637935847671395860277704980199919517210419091075982138634147762145016514506623134104206944988664922099484527544506202032982937150365254379645837804968166209592773625819196743526105640122203768658970839504951140499189376052037478206323969168191323813649625717040678830400641648459987597616204461215953857117666276053701693777660256751960164291979380404066649422524443632346753602017357000158095458472286385938738244484071404174079378382229930430200201324679143725830947275047970700688258156384940828190134606820539570916834182314559603111043095812483180246069353044502512462575817171685928027856961832142032067294124444231216354837273826338709629407172996712689727479049275792838600777816741851804325783042391458883726329779026792594591530694618994545190790665982953658229030129128771613556931284194802513485514387627427541202336931809961238963290562325792359784792030211745710824205498771948030971030105508418260961779981763169178584921906230710929730165052750542474469645119030935687356234499718252659219459068548152501058505831384571302848559442073531782599332298858189948236721160080768934746463396610522510132803264021355219068869037675026742180104838082285952422632491439156264627936579355817921547719313190609842299592029697060648706210745551462701218517913614938487834955942211349711701449395667649958078976094857011274490600065868241242476653488400750837698104358602361487523507989215838268436483380519999307691670831659623829119027091117683275756986019044292873638261586285493685048336688356329817696383378505219429347176450877876579791398966492962621367011631647157671706035382177658884850027090703052351044490683525375260152090282061382356049425549092956352154299686224767486275488721944944638951388084818279805584257759448382778383171519993955646376307845722500090490224607918026691978419671214521501982467981718914307311818097921417894668419822781802444445648758127599681890771580355779454846760496216988615964582420331003304278666305119333219269244075973848739362721355069440702433329589566482976377768806549598346279502670225468456399537818444974468871615222524693435780238612741546349216749605761659948498386758085505681249453154140768353009309680502424389634810412319582032563157198894552506644310094970482093571410817250414592031768290207686998558567277015143348752715784903675876139626274663050531335597854966246423916842074938767103394671223043012390408425650825353937295760420406148328918354239474959089456961520690218726963706723232477769381454356385587427414360079644479330743329388442640025232966360390166536359796163964376735149141687717602685359133162449352239589220374586126883332779237084121632685712667666631105292951381814332353272110977783189988244269053613153983535986686507013642697138135579689751468922017058630471254020218037427036842475640229423319005652556526887983475911348145079340846335245304969985530155274936283512549898437299266135959676514570908866885452477100789628020273791903454254862613699715349813345895691507976637109121470829859960018910565996925901420889869864265553748634913126009761692410479216899307809207768469631025967074581097259920120597833126280036207039533733936487262672330243151186434513780644377072477879391265964038175094762086531360902260956328719271407800859549947507648401336973632523705716921813900519390118463630524083143006614450749834513849732888263656215056054637940133290080822879697587930264537142444588283111980366439048952027432412942028698969076583759871335148046606827548839321688886549143304197190131945503142382312691688152815364473490428513496333975398033053190740254412213933149954554384597678128083397372518799361861025594225177447652485092884168958512673517915388868319492808145460362486522779847238942286172767922922688935390695421832820513068242715015452748587776626544688475118320810147358898603642290021068305892686805667836623256406965525230643791933984924936478507284599531906303940761083857541530098596219812311455136994287230437078758023859908239355214630325297455196561567481692208889779407767837203565478431669923141884493927198483702058794092257708771413685892514012885359759242435277474512305073733167418398956078614239075868887902185139508208683731816858935301215308813541123809573982438995747258789093421554031650481036919432029187653495418166093663343713809146478633331670370955989581751853015239145816458941860397294014307313456511924816213995121792322707363888577499911470626134780888120062229046866065331144510056688455747308768601927599126310423735450621337771344958995120442405986486910889562416447486312632301665331985907407794776282432575408138447687754835750809112242771876633187497090325949229247856607097134190050133204974817598502432162833082457631573305499455077997703951026366430595314390960121001434552667113052602873569740891853552312357173690078482960302495069051837365107195133233771461105195206192203804406700554364712826076102032907285182061606170701353080182263717553218515308325429945287488187960476190665252098443489294142632823434230918079297452128291556161993258072205071711161205948172249403937144646472353133947655413196882175035545515522206581705283404987645518119632551236130973010456126620996725108480058156353188543283225902113561628591500788286282035406401841482678092975176515966299208764223973925311752641978674948741419593259337014058776810261012546714672517331137330552220454488150331366236796574491483022686907270147072017796702201156080746991387269856362205553689569088887570603270174171756661065569886808504024217562945493540735354273645095025284849558970234800066852591564224362389529558091465851052444068660910049037872588867890933140504770886195511353908377740511242952667243456483460297866539988573776456183790818949291506380644553318143089200500804799681094537653639481649212262153502517023233471771729793134000545919420566215992403587004198069242448446040786813666318472902023339451577170236236259980497569983789868347846515028539947390708371067761160771550189861753212197040180669648705926285144643989412317603884628255767874653535223823109491741124548033626326390223519486364122210483581276534825531632924278511315046195139049685751294757729549309816492667122594127885710175670130141266594044464077143628554131084193273185375659338022399172363432350806929888856690878438558221355113037465793729391093907496890442512866203806046139867082585170331483128673925458041030527412422711391518228363405701011660360691532360524233667848339410710287147006108532134197759355596735941245715859384494614205022903053510783136383514527658679272674040729747103876774500696201840099751791723550285472596771202100091767857537306678835804464037298567685936346895207455362514867381718578849879626860763699874807903917165415868740350220491135658413642525174344334482076384524564074450827356649706443035802516525447147151615863367834387471489744072863569699092497801095937365074068120134045276653541149010841635385918339715148181461860359460851410894190753636353277127722491802802836340945510274849086276095630928426905173979915107759192184280814080309674673765120431066684373698203559929538165205189665524346588053641471843714428575366804860436417536699172162877071233759286875217477489202048754319364083575687281068664850979176960186636408620725254589914775213971602385640220710093469648883212180993314570117915545994046845181903906819119297840506265145214780155549962527339352159073554878518542883932783893522382997666912859104659842053869498438091847520278559819441142509077680920406785848992763928395726141204399057013840862080796777120498337065144831295511682651193833870239709289751405933093102220270433903215431239801156017066060282165015055614676435954791782482198926487805218580710124051956808164751905171693003232224004474923443385986985172027865070405115382830586875113307953393248240797691386126372833079493155490853446156829961735878466714506103422748138024032072573413578586376281811013584055690195055015313674138521827354979018209263961968856123939950934232653382809657831801758580172110004720390131709594357230705541256370284561163782533706588245312746649668521015411523539664771355671716214856365831486440900262127106173435723737376661197903583185600549140743172945284447557642583443576895966455138498277300750687544887692229286079437705148069961859968483228125370016678252848972077739738931246946896223429398370711830601466360080460394374229664751408944617989893006695240361626912176403910843921839984304599360974516427434773475049820766504261678874284376322365267615243924651618098837381272034614993688019621850549266382286580996007796006014726389122012430326968026952238984229814363232697871088025265016987642936731758510423979068383980120777128425253444289836597153387796859478010040682257194686799270577781145779109733514739370897558517365797363203476854185506211354082736009924727855608198054713845556511237645133029472415391921873453586671566363208961394606712978559288926429819547171542821237426651354807263257198987559711910072551102010813727087030307170429869124604401420852244158466251178237390753822257307932878617966275069046293088199920040001068991451236192121835426386631239074826007511145395882953412295268535433533710776283867748206202142266646869884368398862545198832339395886702084321895689747984372376884613432490588063068882950250411024448587929209652909562085432789529310967895817790454519077991791321919936631520402480272147945969501629019553909220080133456938139257986335656456755546803211281593507643761554039719241825756436444797996046896834563625620752367402538923161323284098120449701833546411710472576731937494687163925493991164382736782554487135731247416144332100415564333098007432076121555353002145289124661032603050122205918378165405656495601075875470195956936348521350981978735089733175270654595112922066235360762504639447066013492944484744689486388659336948373183482385970828808044671183624994383193811267796083414215883888529213199632190348369241292163125812419391484034481754119692901090423341566077411295391619314612217891376150566441375014191398828114321185078897485128833601038515340086365251587010857944706515093137061508759172478337997424208758810578534489653599094730434918628908886370180433111043969336533583764572358823530623681808548081477118416510071899008917047846516410094861013594441805602946621464360463756760847588415608350540727757961286807544137424824637669092776839942303387656619909011908712007162180209696675793696998533982344909257345311046283000553950251464682563750456594789637002252453819710990580698150863623604932361931533495712663773251290805782545589420361567713680765637603973294728173128884601064271734277331004673924177223458067381984098246797071330909862988286321657060543042219642544090735499368117060406129714436991770379847363442041682762826031422535645538490186217907757308463035269416964323765831204551604015968357305410523169816439026187791366614279977632304694688234457075578671145140466788169331237702760640570917158507597109391721504609383500207267260430379927181568836788965653465123517367467409667753484735888253895086593892695814801079478101928237973159893730733357772651192349619114169980748423413065311370870348853257220122416474443120958261079257665385972460913844706818225929491138998401430341645477996233169893019367871316318996377270536435321402945635089233104917048542591980412311426315378867399961391711207194472552797512006540066766471321982719042193162196650791485081289210912689840029843773334857181255508984513658339975184673503867277091071191400524746630829404145434452965180234299407778824269716459822040004328731949656833144934036985199910826107206580796863945679267577649961320037109695967468267375937466102218783552558830934079775599243064022135958178218090578202034658548102088598656088422133891412996288769400592757988165324814098046417358293119603419615580368650687095669389175918482345766413058266837045037013353583340913078165674812434968688286614290233587550724846618964801206255464550855226278152319216290216035920695748159864114244564720413332214478115339208968232581526582301360332812904381313038328419184312009969120020952401287546109351054005173947467956910581582202862583095129696416157737021763084266918295076637628436492885080579632652035315652286202233676675423493067857096021986941252647381349855324003500713342595309818970991240966280402351763822333231371532904532538189072199728334808038244396904371423522093533917256243823691662037146601201363854895888907076270725237017213174739282461529828422962410196621526850359872173671617586711354263938280305177281605197569532833700242620531398872192485036563952692810898187024755991289318785394574860812071494085133154215282496835673217067421008816845625307177698504700583097058330618261682037143404261313135386096296222490101516268093151113542846443666425819009238314012191837335012171999834475982474310371652240578741824810144454803265763691971565127207485624109428146831027918969115513642945569202124278062172017618755158674033266709763594301681932148697461750255283783365063652930714021342944418005478262034298231885282520145573901910917030492896167377892879481436954207046532057456236591525537791680095670123438041932974591877059513684969742351185609752282615830472663306281253799600395383895222025874495837377636039997280837809751621229152045801723185399576613064946581137878197520506292791850716907593054077913442333903045734620035285734663382088761212484442392106414273677876535171993669537799191046136532767061954095665910407563436698655050716334235392802919770339257291029236162776356318614158889855220859720089791355762821981604435600810368280781008964544392445658165900543073129516718661365720186089092494132334209332579144080809405229522691084923018215570796456167533960420478249033680815192696737618347203325550595683811469379018542714920188683420265467403244485371693485552079879933323814631936831584533544785750039209209777816937577216260449520745593944437114617161696797644473556388878445934889068145679315949043938393414506203093613220522393683899642517655208499789076306459173441215773039945638561351176249593007351086845005156504728125948753365978584943163364989763004948942705824456524408556375402274386042153530045246586328688233360723334342435777581713556154145330636097702477167737756615070348642737049207912709292882832671926621355276727041398621444753921283628791702066299230371491220401372730057833556019641115020798742159060244136178613999218714134472579451633030382397423894293406361153157168393090888157547425990475330077890525148479440353594617219872709861763027765032401120704621929571975270323436000225622827337819174679268623672195266670720769167732962443974648164292373881215377260385443408241943796328224437620571209224350654998290420571832237136009579305083089630946516095239911143177638283684913123669695308402872407722637520956201162699048144211333808086758530664974476144690525747888186387930696058525962265547432168314696960701952963752590527604565483591956715883627905493502773307239271027331022088110190887045505570627983362127494752695839966668609346432075370403002506872579875764814630419769848382705621077687549304324135199283176531078410008643133854749128294558688067468880631459684050563000339731680370966933738478500302180843144637404724660030843214172379009121053854589651371401046457801238661084742858943563279505009590252981758824799727664331733943911770895708713956750264660023527083181130435146380931641252747883179049966453690816481748023768969334661113557411361002176348984882411168744025431881416829746040726449387471073072027638021083946746359306497869296089465174520095181761202305493667804667834285908193828643062663674350706239527324124091693955003816548423666912702036115392024390232855289180040748524909810129717727591026855620755686317674527978826864222106820809598163996692140853058380210276967660876832975634753934125357997122627844680106656357473430298610198704918533160749228663993283534321838475942828013787908407982304029630607079980335650775050863511043465985289666556980426253661120182572775600087192578273296214978185401949440038006684185279370081756613313435939558640601753044265613457496636152512651398544765583531719080188124871084337617467005396804553787138413046868943959463692670487979070215600849576838717685744286351167551040932295971714303960819069424470717796956370554033298142529139173588219355992940863826256273430694157870991036475835791485760072129296204069518069264648324791512331232741582852695610258140661595452993932267193750079639444795356814284495421061783379294633857582537122636744987055320301075150172000991295137907416038099631347270351941110892500597811434042520855977706843330096837879044780357004312474850681955089954846880184832768196206936689432372627214705459317245243783630455730493460191344641325624728359471766090459457952553610421285334088563393359511280713670132458599446290449615758597949994463422395945052528273038006521062071198336858018734176876764550917305764678757430574037175864110514722160189827014499910552918221106088179248160515342830025632764110430883702738004658296572455648371584523246060903945958198542368546407574360337395902527617959905220430283754764407506118072022404468279961440182849767447218810507998821643260603941376704628226810775815599635393534077906441892615615800950116734061809636800019074120966001432967399519980400044326182753995811171745286607523682284712247708529407556996257285625370989228506628085912669952927929017711660295787287300442573604807902073062580225439127071623249430082434095940135576698935366830973774765775938635617263641999208901249457607562975584979072215373194810568606794966376555754508288380960431487135624984453072353868811757445309324960285413233185736306879718347846309695503174061006731790670625944986135868052293104295199630066134302052674686500376455531312539585720217300330839307891683404142065657085459989515530530951739752858642991712512038374926438432524385071200094783911139535405344870979079049053999843451251136334424105882238850426359329588393755609206879526025351353220246187018920534241908755614880586739229522475213185093594613779110490364646487828897549333192291683706940397043231102545867754284488408285126003537926504031055347438109079286494684361468701210406811827268733857891174743994966298117983112073272943864868208547965842174274097989319355512292751517838383494779937209346956434456951365168077180340332334021043452695506662317562020962923930022323014030901211364603003943584458128572940964166126078658987280200656245765444197537434224901539656745709663965561908719497949621863282571201077632145171543968084133483458605774501142404991409407240889442066935091681170305861058837300312176037467793801072233078365003110000982912826201661130643204574285738339441047104548821689816535162408002063027796682657860601130403729556987308664617643530657499524454812872311493007826594676914021954032511151414196723011006149244135435773610655812036192785064575303403692271296350027375886189319544037695619332309072212789185758994324821761495827016357080423531799954211539021416870263061660957824934108359350941223009891398986789371786652528496542965425221110109970542034276363825987875186295896120252413342698512526596066518844566820626766028540150117649439987985985443043847120072267490125700328194472296849729290027056001005981074406772859124257610436583888815632203252031919493449132835030039190619420115992731107694099873117743217124995882984196067090372219640065701459291654465751123373365283945377415089305096663189660428163431972990156420509485298083737673849287637422864463328815475152332127852795424335676509168522127351585274849220224714756521504779979868346697087185379253866687875662793206137944178463404435333026712378159624904863302684519196095024818551475138824311557930128698960872506065012782295440821375931612104569286188910476493248952676574755811102132183910941111515501178061835337923715867686094700674007954275386424089377985200705770109921643979814045263024943727520087719747329713649505109618397444303535958438809175478972112366546346477164144947507927415048623793296858391665286569890909917047940708041060380530503395539912281706577805221462943956377463867334368046249401590178482679691151523149374728305406688234351547658418063222721594731813775777393643282881952848725649678489137422769436444688077414183980333374574429868816360065610341640600551024245112011591605949372564836966250118858539095777770015310807899293203897323984267136626459598482276539450666531660601218203267596663106229221269789250488440444417886686289130782005771381394308865290300968559689586715402668853957036792622211325437220236517264023989764088999747360197144079144121845441650495965119388533709857367595780302921538313205191031566126289317154130345490943367222485491124581196777832588502798977402323719797934504018084378685512713447537719363002340168886798650325674744285572750898344820976506160843913182359502922604045907825005150020059484065625035116733311030725026807182448878437677277709245297042843986006670144430239827020978953443823304357416453118097508952032598430075288954768247807193803609513042884137669559486809184615325819136830332783436709363807704719662343656348147691404623119737866726235887247912213289092109859856391068565514512170686228815788898153395297151778039391671873324749799659926292640323124824484505356083366402964757640721254460510882722434290953356624328784967640496673196425365396385678921415424264925330824333698255370769910206710213125967436471769792156165265176275032546200657371122682327945575735616652462000861550138449225317568632764189966053990924427856684365464326449785812156499563674288681752449265388121386957954219360929710101499549207903363321314553490271559766194133201785704699444582977897444770399599959282050221797715606470755828830197495940600073785802582362102371193419424241766021161200779145845239818322131937668929410132666272470736207595185717897384322635497838072099226963887764353136041697721732133423900819653634128118630962842807633359444184570950611883999513693821883186578614775780556234017082117536192910704176478511626848552206824782472000253039685498173446402588299483446819255357593956568275677743267102859184605133746679743595280462524749068314478828795540440640952166205667788203367388794273615219908895294828852888577886924663857441283703151935759267765459976682002145562932206877265347755622971747453681884745194757702094958919446616187279582929864815183405420610021829457221383510640834802928851003542375617379796612923098475350352892112499759948583569793298247329271148561955595749640929505106872954431235180628536960439479351086303883013027078088497133003960416206628281933361067628734769859030333722346659628252975570691638283459497954412385857318297035726112209867060716917993293024723753861654911140612660060124245617111281854136028253762378040482812963660782850519591195076409683711540761342459072622984397584779435748555552131671600490692578998142794094842718685122488285644797986781707652889363336971319335965535090772637222077364015042052163743168190950845867399096867939187422829154146819371567855513699060978780957699989643389765421685798933566002307103553915884177270723244018734603238866389767290313749871147457567085044791547805166148866208462052339529610802577235084664902448362964246301886374420335496651288602256778334913844770431528967457031524156037954268650419591671071307438235949548118069209699794412912469314988458221971917996066271756290003123823165977746448759236364115074278666637227117358378854631854813363250077716328508254955458755697911521615505445873689082220214803929658554176908847586144437120428880336476259177101241621531938368770413399145294379133950027663299439140183560143864713234228509942866045975994295261891367951642991867828767058982147084816965766934148697022196369568708252978909904773432349710335411488587356330473885246765098264771840874106746583799547300330302674812890255011988406949878818255333775914198607476489685912280502370591285550671573040111258583335651267194375897178908528228564203848839449425333377685781615536782364421096517239938309760016697320223804687073226704957860676987262687820533037782982247106487108594555318301234857914070183987669610659511341470971236021462935438618563013729446783197949351633283393805812269865001011793729264763462678390472130488467484093405771253829729665365990249971685558816633773774977593102124754413778372109085191327206412358795705815465873830577589364264791673837908135046427078497399224840663640823833418571056298678780025230996477687851863168050966988038660506811598800516719321320329915365786006563899166885872627682021577874895260963125161364668450908443181265603105647481016635608141981860183087971474986775715961281520812054168650497905426450794677795631970456803656601643248652445172472459588515201004979114648896887690930961091577562845495285923808890491947837448697962283147605227497744365959314489257820324904451851001129387919974927711733786671815611762262005841779404629559562577151765030467760771351034452072655997231084536066070466472592230446891621501921619264090713498932170454236619984644853662158476194742881786029906840507610177249018646594751205890056323700340717078791478604821346206896231437698596707715085648569397552959524930979131645964305117815107126111474399892108088272027353046371115176605367558470304107521010934451731493771881764406047262089099736298353531269668166982846863007666361510204518242727020612330343999378851500398894454974451325281842212461374495398088557235751368539211637931000873218099365217081169614591952524795445257460252113430196615662402234126558580717545612598162251936783571985172785062075047361496756561939666053351470054573830362822444412576420189045269917497147362740831836879343049453415048129356147381818458764320372430907652333072411147781191836738036985854767982428965481386898375847581839864292785105335154697015019115092021547432513617345660591671256389046839074253059388794226678032413293646570942165123416224396928462668296412913214355763167028866079791364005081387310080197046001994622364245224654129909833975740828663555259269467325984451243690971516108091123228490888588777092632072221713882342843565040445152529244858279057665767162370620580946804274853915119778306366307524543119182001168750714933415793928783259052975434961365066711901852189927756557385128965088587970123486111023275929171874623722691877145230031120825244826693726878258502427961747168967740611140089603457108563676694584430638368500525178269110235024599329816357095097764391684990732916325965239733722537764995791653651664812020940882112311592050182287779518518479900591787152649603740814572883087525184350242873769529278401678006521095125714765630401706913982414228196519329003772749670497606687181695190844254312514202225041544031333041941677656196566229073054581523520564888565284783560417469795528877625216359223685965896261198964033311121455368590890326684254886762299679776482575197567261463649473034422769060042207448906530579683534893618895748161767011644470837366193491308166075869320718113661795682643441970417718479430288039730669603356478744559910284352030366952951902774455100894302884763249504178778368533164696416331682961943009475172047827048965403890017015063023090018314795812441815032356333876820170344720946238451736955381857645318105217357910185282231653769148645156531198652304356052751463776913180594641291912130883979218083661063140185420517400533038492659006750530501552927083614778161323051422729958359839121666073225035131730437341496927982993285244809777634818858309953350269207344705490279741606797914538109383844637104701363085015655357300234363758110981583898740687698096639691872582956659639441419180089068605735639400246989613973185830963443578646943918015336301494899134594240873021977847214098612760309259722946998842522855302800797282572838339024038114460733140286207163452087003484573112621306165018662904910285229068765457920759069311187416127581397583154718675670971724290371510162544942486241185033654935786894279173367600611164855620751971352855742949409950874339012258474790919880789366233745832127045781080376551619687958866480831446489066318156377556895718356638465169917664284972665942817632011682850187765318900299427454438828139006282253486777420428572246559761779849770245408826620832137623645895645363549946873064549108039792971031916776871813024893270005511109858400393013545491063324889193449239466981407675574476247198831458858705796296964176209732786437763383644351813802611497565214209786553888618710962732372545979825408827524445622835842261778129396647955571627947937228079696509000073466225440324236023409331779736589535908304307934154248258875698123699492166515967558171625060253243261319756649145810085744798886393046401750494421315071342918801081436717679405372394826505130438624057091792661180129129485785957147470366494992609827327500073596925299981369883745248410909591112916971514649063502856278621981228111599857611995594594091165118483782965052218019882333659179891422205645558418079239911919243815237410072630382334074329586015169925698344392708476145844870033374831045433731504884109552352408256835765076734922317596102731428872209057492754896008473882279587169465007140537996972655128002793543680614679741148820707010564722340526998342363517467888639043987283637926995848299495355154327664873455196730776334655869865563753857571690278942599410561613931688927703089501845003720528841910009417691892944299445060097177231004869192692515579075597713889557901899019201722930865672796509356105147205729168056297254977628403842601275854889611508268405092299683931682920177215250322046284344205530109125779420452010408521347082282415871984680541091987249159957997965588257127376180590064452442865075463142127864619817698032001901998282559606385406507170923866820026340079459559477445536278896407852082228472429213107290242327403333108198336721833434134513312030401548688727106617595093905815192406579070955527572950629230160192693048226655937196770213670760976355837377539508654223797951084803249159882472862635161340637852101009382586674118892180583414092690054561364545917948954234430499689219238721288499180258471861368522413725768459791300969604755204013254274960563812176239620448959851079900974011209982988756740998755689779561677853195687040697576731863247777021385419663382853666976666136682456327401437280281718841375369402022375925993914207413753466398429232544050620307285806480991949188111375086918829046671170019782993024003605586344169640414307524166908544291979374716976461392465230623434151489525176100696271762095336547584631874149689716245328035281509533887718554230809740504098395459384994659464295796192368602764478740457695399172055696448552757061073063780153539864593972861130822921721167204263068054201578393465758927210240794782392592078701292934660026541569676337729961913025663606477566768440701735018509110590310273578716601722509565042083449419754413269852930293836499224823809794518594688140105855133758716316379751599333792341777317729360565752896329197374840691746716509082169162564793652068337824677723736084497384526241691893108300584983131192563175928219702760018693460547536921037754328030927088936866998443325309069283870209632504002065269995237349518449226649083685737001071986776362448543757782723234726351551504208102006190499262926007829427111613792304499968208998541852652875543934253255335769451547033378387261115003489400204494738251525066631551974652335731583235743110902852188851278849106149752711370174635916193544494415135474229851289289918579216713567845754368280133073789990057869057557917560556517615936914122086784161910915120765883486236531739963121531681673125042590873565936411998871616857619830666092614567873183674552811389526395508149988430934995892985676275072840192175061532729134763332992654440481864381625600165680663778413169830479137507897006626284117930282350656163496887979234155733726152946544664059840476755250366241565605770431271069722725801468323807818623303922272362516748839731434640339782385263486665069813663771898328269185904148370679859264009540985807408564765911553201522770618519808440995788222069688480453537056415519238437866889323196415010455371130419174603000431551202689206383351194402085853536772932862672167719643560769563911511375553749288052146752709394380677433309705062051219801740944120783491194523221249288473094720863336855646596282423768618139340638798012035346516720653698371919519602020406842135409659871051297034270808883130458236325390199608933384713106327355888802322118171240975157419238494778044039157802702846651479175529963972526680783048505058185923682124744607610730899392265687154062254033028143840307369588485831280450316743072666712870391877452719617795357815749271797446307695102219561193029024335549292214119311248675256105018160523677914851922582262412913516115208322614142547479796781381415047781134944423637826757286071784035472953503507597159253777559886449493697315081782646502575573221260765122020154164926997225954952575443596801826382773519853700879683597289188796391999449116432417983630326381145231916845229944491762947706710951556962870277384169994743524225234412116547785045698068242160549787508083296196263240747435063781576666385395009967129639387767462328255602121389585835477861506942714027523345504652529736933975399582259025254436084554044543935726923395064813317494074630082354260091769905211686358691405168176179613641742186483443704192878556624105517878762082499691975867870533127245248556872110332137020645767013269458688086561618603539578909676824714090464423991180579625996937795818811066111694381854603730412320125620871814328899166601704993893009464344541740092910766187042483689703793423608149808024553315557306703027627963260045687086544159098906501946701065298321757529268755756308578021604632752928031621710491510076618427150791023364549270962579648760172910308754000422128513149516505101734607891326504188164227484208386385396763918031771851639406926927800778756466814332142011263397331180951412390129187701751687858796110077538959290600935504509896511210148009470765414503868333080787605600820841449570593559446980349523642197685632348038351139854632602514929850266383463809979065303655084185343822381063372185111036358005049932855693714854534722074598669432019546304972024769186081770962037880281673644297535372312625724303677419643579169251048537944457694908125558380356378884714265429676083093743478043194170202813185933285128076512496090249665888152367263831273185459218440702877775865954800864414119041622303561277411191049880722596219486091871868476154782379441553057187052264095558539138986614915937361139804452904905898019818896116969934791225533899951970304534112968115375315813267649771152500222203843386709793305141587228949840949127112276492228523373564228999286404910164199622362534908059496258036986138458490437576485093862880792291576800540222001386324712263467611745876459709963416364007132163777265742969684572923073386601165766425610217859273791634205453680864553111197627843303278896576265252885882376068253764415503671062824241459152984711259076410676475983115411029710166818089638150297583420505463290673175127117322544581597034584515733368778325638233392703543546956568599174771752691338880930352930750765444308003752572682968613433815930161644962116424345233969503593412492738158192636036301738987162932860068524345218640912591621555309744334410115967209719411212366904027913691001882706712048974674850802123372093462184207626394116465783242453299590020535172712214507700261325430824044813266753050509114624792254780516932598303595168445742696294048654459429065635871314392970027774852265016811351803503158829400838641098126097261789323787071044161603037442205337004679726210709616638846380524854839230285031220391846131915794379329114188707079731376214679819765008022704872688012024444280269295888456191417853826536656960983681635018353915065498369026248043864518484679010154003931660869859952181240638836145991085452149439610011598248699767762680961062894510192974364781997027073970541241482168690105335346713290324993898805003581865198238276839286085248996387606629019955844906365406657103440591935506470480897973661091712177075102915518959354350852497962846286711642859165690347991455214949384464313141760517674898906455046104526538992154130225584645192169431363133716026389572072844302770163795370359497887432432742610225379472084252853755761004434384390640185453337851808508540652531933240686734454879233606186738822707537077369110243099239198378324525650835555468294859212435291270958594193953599298099462772945889343967352028410204364621966894712988884325854779907493676017687680417639646935531286604734962813921862225667969659564273668417571894766377583943556354362328490666494186099363790850819704347735179127505392961062641369200958329337823865689352362623088009938468434037944158112796900859948544191965531295697496492181823096173139785286261072121380096351555648922476524904455459718996071472249689429444876075473826778148106865546077621998506125091216878317839519353121315961610403525194170912596441367388621149761333829935728516835873384672701107126629119713959722552580615567360123450305239329646528567670025950954393731511644013033307632040706676343631649830870576584759906573539452740991717050862649440963897048036868564421790912648993336275242499039180879088473562551038398473773765342231881547296334600177516344647520235647684755000803853862718270802127374993676037745424833412834576891007170670364349574765076022089538358409752381062248809111410704894211744702545806762059329906884453485969770195544292391940164734588520479436114462552900429770240892678619592894805410616242397209223659738189269927775644037821418135402873690383281942620695870176762758859844946977704333626856759739661379442201673619311282034229071724147213412804482355352715905541994179302437296609555766481940079519038887667412907788793026696734281794686246622379924583691032762301471784514768023785432678911203651684171580950358218060530692396558683817564813267347633469354232142300128466742705821563748728101301535847980810449904497046247216726867425711092833814838510577836024612194515655828976480720481738725050364345364028240690634220345704765543617414323116921574498534026980881195374485535481214135442844792854115371198661390762847921368450093439658514333578729359970421639123318578635570020777851136080225258824554178388329375156750446453540407918194096809239580706859678388754579775413575111680759892019581226470666474431552878379763973086019507673951890915874497689968644729377688003398704230878325599392906761737975854520187854528608627259057062470113532707289003406308070678557123779024380297989253297643808002577272086183557632752071973149002991867777213983104096415681897077495344870275217791476476715787006101740302134404192335216258262314647519088550405907263987359886216465863367635929403909218500409871319776304241999024378632527749466029923024269441311216340305310068106257444296672045450813188739787496321731394689468031738313886167897537466829683430252984744591937004873190391807233253800697333476720681968109814714145787468576132138083969732850449972806760753742454448157998123155963657711161088868820216249023965381581953302054072998037482506262116740023879420855351189462466212152298118915006223816706193078783479708614000861367584933677150592918965762501933215547429954261513455157389967753641123187280832170807816559877623394235900495610698450679009810030603378462782231705249787070149282093631849821624725389047336721139919550445289694362006653806192865478316132800091049704125631114550551410377643044890277255394244974354223757477207794196827880583904952294025689727990313618797950141772531649119785684548806666085348184898450253397214243190568778183277974406546374066219750132739957697723677402224432835167298820483262117327133707962598208793757817868429606243134341772869779869272508899050669154723103256599103299520660271916349135445086599487334374172362028662499693053628486268157756991257308756435892284145003056847139577433699530163060451444398605969859933971638645152886704356169523470770279298657617307933748207434349124029075781342945471577415635425546361746370529203331942958615625064940928743418461281587826788693690269373715817572605275196334984941881269741848327184500918488117324072992193250836766544211535027616020573173565220911646807322975132519906462647499039802985345618861260533916241368964176614773106312793650426778840778149558560959375329388587776632942508367718396634455046687956004234284433189055597169063972110452921759454867903372626002767554748484860798960826062825456531186654509260319881905201162161611343937322369912238629395268528372589761297911571588068985758295577686064686805000237277213269444512277823935337736748188394685534497762215638034347752954919801925754020111614923383006954389151600326312046968925559529081991762627554142693475329940672445281813535961128752420138019462797417124705203201721474907434543053086021055079741592229563050982496661982288331148541774075174224569397142748386983182703063365367306957098148889653482483211091317113857460173836074010166376436232141752830978649800036798300170276841224647869041307596225154060224186699738791733380121241900631310330592645393314234603263748489849933447899104991130776831184170823780912963891357519196408395606587539909343342063094615097593981556079985602088111815245446775572834938787260946909667887812481454344223944328026812410067507825364592772582013452986811932921669066800743371929863338036371766210625330296729393035511951643981737398929634286129095168462413802582990339190477176641278522164469240317107659224957127072706733359015707643103518689234524091160310948237129453812075410366178573440235083884474103917165135644372548442762827829639694774355026215160023014071494211433441814131897071272538473788026442369454972021113377895041209153171553481803046892515623739371733569773317763188422385665320145407205764216177109001860156041727001114165331737467864085756058444610912757598439964905883368656695659546488909610266622443272771311076847702551074024998165494655076063437268427927284689777904381854752915599571757237075259455511853883587382688383323457049900253408643100401473491525037888262163758488476708896837277335111878184089931862339876149627176104277881134356760858668817917762239215396649375556900155936881995747305774961670954062583442555426797536983655768278909624421666606248831614120853434533751481278941278657286768883367182299650061416768844455214967970501896171132462416533793777270873592635320848555968946946756500043460859116260253124783213673580599030665334801254481602334870963315797660381438931046279600822897463427515148540002940055803300417100757236291680331487379425539864840795646976411598350459659288299225927350983109837357651755112576849582718702250098209127907589532940568960109860403139874429708792592647800199957889331319756032447576375793127482825468664027887609017958946763907366098604295394910853004228340764612719889764507111290967422375970378664731751896692795868702613602281158372632613167962645885811065344482717811729234832244531850549535002654147628541864608682906282919111003864676311580267134954877551932369682558200869169031813857232916368704841376538904250385038586768242501069176913963103062124956060926018535403783073458594119402340306225069494323135603300418909567790837914837286887209938510808346993688489125788154768736693039540146752932208689141141297073345824210907146667668954160095385883985438765884686462795246501692493585121859553818319216170651581780662578237266139351883995799562883394829025631071160243961110878522339780704309814886313597687204462394853303261006107129844560533618193269614292909691049440913861551730004780945586054018016455249850245172153707270378052108618317086009998054556136376004616452836421092570046412388893014660436712388613588092885081013419933240001144832805906955633752615801965493525903828320785811185378875728344815671928020042476045528627447043202268478480228365732905123349984705815746260535009903188011770545788257469315681990088451583203789147046676228272045363945459313639030026595531979333018906505771168520826594460468372640143154606886176095614364303420792112533146250143415035687429804768704702023614478764004179306299049030161776290551660995738156398236567814031922804518879221209271600279133928679396970692540845874294434738113071045464139857031901062065356909821859142043646269200264414368871716631294286737465094326042861789431545452004605617309319262648300889852310555728850654439970734468054602378203362297017117657178423328812256373656591139852294840944078474139552618647349454392055104434841604800801663122075970853963753611657990293365527585006386051620256350934552718678436636393734299272828902494180830352091107496712077456823767520698094944964436370662405366605681159698361363717449150817304891377671176705694216949735751567868634005604397114933789470096040021749506389337140769655557827757499695037751391027618107170994616481580591212959388642874556788736466180753406810751401153699460410759603470001828212987915613930006535624711128676867757735297165331402857283787538016680995433983548837290801173483312703158612889180971041307686860545941253961464617730442675136693219551987156754441211916676188006828664721889295462358335245565445961295507855417194378634179659022968616980708986093085533462818157880622397413328720506715067372116229863437930909138641958152872091872101138311331855424684617306390445597783558605308390277684118897523034497996856691638100194672498201871279528855944605838671573887987013746066554477555918108147422729751608379362408892019617177202668465815605984328728301350075787086841923203913791737568981245547603460838846584453572984680903315804002228294380849776996626993136868590326402004390846755426261927435234453086073260137354407899016189156321078629192615109930297197221228788039775262026393213027255256037131426614254004195271529286359607970875866351689866817418772896935377059761372779952860846722462033961412544862339661189863736259956988438857418617856240928857988837717242808782822362482321834403902311200825054861078242457484551947247726955951038682108547537995094511069475781695883913156332794591704817576366208210949261055778622215350176899362441890137070129944358228919291965512030347692475544538447133202410775336151881000858351382129865315521914329498793153790728503434008015574607732512221144106665308493911873296283303378588456878220823445844253776167503115513770895628566400386458207800917190034312325318201429551609737045865119077696863882286716494315026760045929119555651008810297373892885276070025359335394056586495478470229299983980530243369040211628977282215500282941548695853570368310896563110345917413081467862528407914603298713077217063576295564994128670841850904350414736701864347536921785000344464909817566916287759054804706973482541031087924749331812964917852506316682722224770873229553770991147076721599983109539838821355516547983393019384865382704227329031088527889674876834551752656028185575612180260285505834358054266832456723460601425660732040508068845717180165775690618635114470887188685941271032758226135584132573555803551244631457021576120914806502852853305141593443632690683725141229450008508858753656159658335157354349862670632600955927698098365011569520911544231777198961767883165813331082672510168109752571977902901007944336707829361209959315430736265663548089975258884633128560963978550033603086825859872056232957670889790137803527999118619276239706044237052861496166079361173816544338618383547355658309174817390470228297701276020940543837318716296140437006630520813425605989137905851049144809408871896735789693534641308699818806617654131331375484752012761610397312721198684318177329415183563117826960306702897057456761007322199779719217241177022391045305329660037316307751542056640605331548959367201141330706855358724580818745899942323735418158574046744017173407532615203826930007196035617869821087147218207642509524633863637549060855008106503090763218519833188828822537122748847682251291218017082102894826068786651867210148511173845329801450442025031717104295826297677526424120033767002348560308422554724380646207215336046610630648094614496243269998368709058267420770817309588587412718390660688126040812410508031476677591542776584413238330654496986334493561126585860983443335823903347965242365047591889973549941195281232881034872218512026647122553082861554399168489659504587586080087909169826728960833105491133393868179655138301807166730027142422578179494946093169162156149965255748588425894261561828601578204087206407797698352279167146115518347387042913010705291008063557259463082634443702297851272855078454207458879514446334744522040114741153956708477943280779896451464371700801900302189372285927733548985978385404881788484928491162090522461330147924373310369615166367550783780041440092912928114153583108614969096591534687976069545170852411388270437379485983074775572994989478146203599355370216648357404200788301801406171979868612324568581652906622127176738011050548106962686493653820973857794260682574902845857052734540336143725129628407948402085581272957254617651975206760477782312797173248580545662252853846341715717200429137586075829234661534460146626231481784114764574520831056706237136839094086504122493822560179893000884094355948124506638728743463423329603230976818070056959501014961856740944448752710871943683001604030325913269128406760458270664093672603052298713054836119176939313267127092523869319331529537492083312504657466973906428547519111430713170396998816874510574224015338994963407840385978575477665779527662514734492036520065547798379137088451265496564760496407778786312262199513449967690238172245676598145748374927507884313815875472013513167151260059893172829933326214469776597308129658836351311648516387349614531299962434991936504592016321759151754497456055327609657314109338386408102272833749044560725980089259330484990375032892518866054690424433942184316091296378886627099646681107882052072699614965250466412889125620815606230612709045517714116926035211304928025654116834163753887732363705321409828079717486197304551035976577760390102291759885660757931840969447661564501955817494981708733446384010323574983257428503337776178976911657271583770264170555608542457688912196961983243402692252383092497118087822933656034883067843401387467534444112288429578414221895411401623273481903702211536016399353085413976470457179335489572168837448624292244931241383115420178235845961085823002408183493522957119901201641744850243411672505322853522413633098548877785774645360232095599216788141351398922089578474638507659588882543284220724516988291492187392486516020158131134738891781889617480295416134652147430876213758513840282952968452099892483378934105389511327677979781989947027270861243536045840600693992948758517984684090295583453255166489751046133204061463218563982153953903071695441982029989617507085015942553634131395258141606398645698009464529700851984130162058420072654089528726778603459801708002149599204878510009376141073163264409237763480195842488166834397398200787671082486961967438137813767948605522423668131453991170568500104746863277657422393312873133493742638146230814423742726363609238294721574424729881191571731394922399728743686032903197395586510299524848214902065339676131529072574872856505262353720792241429522586185167796404045348728994397288547656296721623053360201208222215951024119160716306189838383553734797899959099270817461913181486528610265674483793957061500332957108034603238504232602388976686008515762834272522587481698777038095441708727091500063141003118707282119309130426660056888571597461842459425424881858088277156249526679173108221973936377232644663416112002028788394820678591848129379013798332175270367374035345906896487909812606456487744154227652448168881163367738299162626079398408941972593315564069255386003428469093297232643942341574870553573212269173728028919747182094862394580574019810219999247892797611528525816074261341866598014977317126576360774237647627571018098512996541946320290463021591095416350018631903657141917735306837800358029962012006670836473317834400483873594620689346928599934462515253184084384336993468802299001913858499670498637328780746412436349222306962801839637871371621220877301943056412504292192930436133349020517990149021935637437644727452360923529983792411800728407502221180954584837014155028367217393119878731454173879835820160764803559968274027719602735490640661720890275398521022052832406099957738850953972116160614119761451035514412594787664458795376979739508311487954298329078084348861938898821310684103421747403792712914662775864212550018728397417857701186218485123904917711747489213607733037701430065875491220305231895530638473603169207319031274557313648930339767604011680901940258888508369144150702824163911288931885054622103595549817823666736452895294290400179577798265737322459086839699432246992543999761098998640494428199334507850396862848085514527669885569261248001146960417434555201946563472264773799940716285262346548886178566510846457237113327203634291874214976947284793690388512406696280734448474054647821689812678443950274682360942587737356735034538487351375843764197624467912203212940535222913895260564619988627391562320202374589653732869577112949494975329960454182287329675324582214131111940863766129330321031552469569499716550923285579203745070720083135695149811831161039955845251952399028873762145017579066968739713073957207467285862015163893131282362247742121309788666266088095002656348127311560537270042184452697325820998615656348377374515273984573979060857953369016938577433378462597610280447713639355236811772145606643306252176160410115824115523263728637370057244146413401837406425203693784243857301937172744710688491672272912606536034861233741077499747488719144254258331944414633648780847298546985973735317155115369594913423337992759259601304802817765487778720034086789764923706958735424639928887495406317707319266927860999140807116355377335236151751873075115136041472635490028721505015306209938308460829797984590266689824474158038383367520988074358976794415988530578807687921273433700869946824654175344688190493257813541632331721414929062582293974339063274552462369792101749213639719770704848576687579221305334975928233863588387541463054199146113452902544417324755644620649603148765935117340235916916702635768700787441685274592144990785861798247473930286380025395080823381718884230289274541108289202828033190698397481201736732145169093666644743168583412416332680139385055162988398958927228782668704875137045672651043919571623894396381240219955949814016266720766541932320256544814495015633259077981373212367937727233921569800865593860751387676939434976881574208700847347719295398411607547777512917001858239795421642977786279519721026268509648815086442967089126748110436759043324185448624319927533159005859268730074872447441483459035329958627169188290787603114026075730169750508193952704744167053155848710043112814455466950600684604260423850177010751080781686895525898449353168046142638241631582697055348281588225259479418741285457248723425721514720804078447122587482719179520144654968780192384559930734117967637479597892986204034136050922729837917548238618813148785174241854730827106732196660188758865815717576279176613572549257401236636086733553027718327522530416448287219759513481799250363966511950578921176514307488887492927591173710718149353336086337192589402273862316313801606624058127914022393784340896218424425826929777702646059537704206348606714685897615163265993381703729746592884185789563781026311617659838750221986716592938778683522096486767116190695401353382290509287145192042992151693789727277350683147452473681416908377850787628489867454903329000803382125812354253199297823037926330670094218277324119799240492656497416309161250857899175453965480089138058956064272086296936378051503277060082908821882317655639301742758831362325123388559466956603918738108129240792334860269859913890736130682882407892059724244159962093904864800602343358150312608163238618700620679758504218828862432616074786333843236579278396140546803321916089128656208958748174770452767149120311883962894430227766401932233652275893981406291406305036288017698966593689107121744947007299065973633011439672642829972967399469830567132415112184659189153907584461800592166594380318783622864285452358317462436027397684008596310158324749054578175376484178668154002690098247454741649235603505406567422697251631420798523050951432202628818443621964288756325636966557618922922116246168652889766166531399500684981492727216510238445597024325457030910555075477360535533858170237514027287270966246086915252192709622502319518120235391153802314671775271249713144648596621859573801268876713544811619756754905337329627645893939503629079850028512930862902009139660943932438774908259498335426813202633426576845892479577876454164781470999557849341228279413886573338135565077215719843767249106165577841307451508788663760685249950928183959204090417077879048760878460117728793984017710123035076269016788363336597499718319398091512281849719436774840758341079970126846607104031683479696466575977653791204337403340977878198786730436368467052498078598000218194415503586697387135977734011638872789069303993644697756586682446162219695141367874154653042700231545565643190915865734121107303584430695322685748995945000802192624694284836764766630891156699295940815354019751722060290996743677706792039599410050379732112753961951581422970169956003747046270066907160444970430540106807854708115182542614940352590149325183498264911182170041539273525711487076096721376469911074082008680620640273599371528042006451461411379372700560349819666199957125712022726698597753159052792426664632091006703700945558760085539143031466909721834168508986941332294597969884063426897029117468159876137893740134916590895466523648118475872771605583474067747278044617851525844965562175891076826440793245952769495027685616176325419375447764923075896680966143617368918930437228259912286193260719074626219230200674248844757879208294141086549570072342417858000710714916107408132865241921142710048969922543797448199604760975577405795014362368744850108822732606494089477192433012274323894366025141545091145594779923529460614304449656761390231590523473325109225380997121086037753468765181246495039989645088453501563818818878564981309594713712951640052928996738211044339192647971794050548270049383510957198364959216049943432607923650814829870954995688837092912533947047906894322684368052027005673128225667360608799437181797439422620802176176340888857714523037722426150855493852764479866261707781517161342776081500798775933536724864155333975920496784321548504966325455482687709405297187662999129144758039904001229148043960930442003615501513860273070563998030867545056727981548851498890736299919273938968311263677922938608074208054592241582658930848100117085828611138314371469191153395033947565782750255124950207026553461938871593073376965020342426803182683976584893076770402394987378630001398930289997239415281921521922353815285433997980043088828956992817879805687745108499306873918604503086237868171107457524531662053163485183170678798476221813344376568890884416472093984247686709869691153973689466184150509642440092631385739548059405305902515342053944320764176163092936590278405965576398582188564058982842158199787103593446205909068266213934113355562213060824611257246772957940471212145659795108277645465549624778277059266210611190200167715726909135149816895988670082115763566335025921289818880266857680023529893211456661599155469736525861661622830021951255234211539083645615252891130080678327583268717938580278078660226895861239316545894487210798307230452749852904270128579760861116316220462281753885625891859699193643663339748032452166537830800646590275515535397651560694746572798304598868801532498825205849603244400842086297677701612360102996850370441692042542475643784783906036644453460700031420567791616635129500527439378704074933141203779885679031523018256174422910734892610954181796437608949294204356853583553471462365736505110884195486261885242579786818683864038511009343277109957314758054087135964115007281463666690633502711377275478023137477413953689970737692286832436415007222706647524662066830293021493353020836632631157617294395556643935274729764672237174214718969863547865508260244146686025516421303163584804535181632682532446056272737542126484979995832901527995475034331175501169461196863272281290726923501583434581922617441726801641470699484378195964560094489078825520448315333119310774069916811505251207539800766881495778678768275150651806896331181019037131019527081091761250551968010834193909956480186262963877692517921093551447184317099145187333700558684985009117648745418169665740940255073995739698355697922805352540407865910244818039164862118445123758876152267282324179563788965436110446268087671747509128969857856202024755300347480012429241781549386315900209835406098220978141967096865025547921011043253792351427828142320755980340555621873677285136830672152493871971660187619512184101059149124818754543875880556226043194717950309380132743129487417942156945906561338063328953378828469528286078769122177894392261257413017297815969096976833118665381766232468208570478923294044855359495795444474403280467707067476311986814878434958536794047870118165182736087045379663057751124484269254917031693454117879514751247088268660334303837048060254427182195890195774284742991210240294629914892066165850384331198134001409238589049374613644752672289250640682191719165882327445460432531692575390854580043053957796252903953697632536594008462503561859137375925406184153641935491769256430368517702977591026976989912378322486177835728157785712697535276899714911509149565172258388185743496702767115476930453380114915867610769520987068498565414521124716567201919615317294958446010766547724435158415307988110132918044595160556943095592156965256253907864440824215332719523396543536136193395048986902221031280604146235088511523410876479113557458776899255621550305829344409634116758349833024251317464373948032108397697429704610016732593885745721759111797537151257982350111181365387740836493184583727624429732788403149747001107772568059479802582891571307233099341920188258848947014614762372487952791002288701246301542442926594545365925739673787594077271159432446571082997869778504095656571850191893617268803302613512621084309348851177177946911582643994696943907105579441577510979332881457139252950918640860087845598623980112135990396463789712079261619793657223422425618134618453763008591652968238697172091076378682620150184359155297362506208374383791344445291922318129936015576943349743371958622237424493271645413466909918833942245135243022992989581486739572883546661784265325617601932652862611671224303624301514107145723873360573939872867984482580699068990359177153197984565737124725819514638441234869259427940132477183280222245530212958042674968300477211317976576423601702834633793184815934667278713516003467203962069908183965475057056948875715675908313746296206527287860927596427110273760139482277286926527977276386185055104287954050101571404672081001980443840216936947478735807092051888782981282157127432931419321653802659502214389202988620198272749293210445133998316898811370726525579526488966199072805370983739185694882361882629475573468250788912063024476883289698641649018831247725672630697987093120242036823577515065645105185886133850415117746014278709756021762489688888015590495375686325201691450715120998331068577962349863969464115486423615715718298371044627820044686090395128427645856713371612172585427263271441600217183445032384746166178505775343102445302133131992392692748293339832074481203082809208863152501292514914623737648266860655305701471795029758512104992838818148760179208902587582681948025745260850097429437079680213377099575519972452490594359605036498627971852170902324408473299565658306341910429057263552063014863752011745706034644255358978813781931919841031501181892161949676493825557975140650895142823447023471366110015800678801976711357645026721386428881170273904766716270640746321296033458033700557545645129766018160653475089149258054502462469666611934373946785694947882125749986666485242213090367923342505650209859215873289436495810333701959429989715794926954863737062353912610342216788806194110970463804688530033779084323525656862638850514019876918769644680790406129789437939281074472341015595169285377883129842190510286413260364747043477790879137883538789379770114550998159807186922564087957158677230979464786381045495135325537570301296479259214217809750605192337894986174132177332876611875002784181177661560880191325414512438419582112221889788762859903452022648205765386783320674779015570127008370895873066684930410707738311190247258870108733733432587407778327152303730712897434114058552576762928070708200976850707315993395364857233853936666444577374905954157476584333554172724860377694576802790995727816845587082534024625128209752931314215162845838516582506779683533812334374545155902266477963342607229753675399800897864346949686662396925952850314082917646169410676468184356865475007832265264398628921814253107702120396234937119672933445309876186517591043573387035211040632881091194197143902212831728134795776899788162730489928444752757062413460686036324124507950558805855005979342220220113970231088360897462356769842758482675199621782590607005816097254188482659766546602520021195504368046206724119873806603257277474705056846873897559290570683725964904314802020510403599819639712418203631855066865737981718433999121014396439769221859160396113298333810300088057072376546640652109153523006732233801640671518301940960378624476470628151346481245630097182104008728037188262943074001748942617678341713511466386936418173778099910713915926699153479152435938551891025927730171463376748100047178514788738882288721183113749995189928641723638528291568355208810742482618408548090559679884741584330633376132576133052479199743897469320519329615929042341236242059932749633306176746467439128769070095167418923531293717941486964662616317339346725417186390060668941980414807056125185634533822741046624404635026401269098216560486343300487449977322963240635131369871016026665348474295012852796166892447964858822606053941159668394316169442415312006387896304313010265996299792308550445523527058704616607223309955121205503681223587599231986168414941702204989319195925478937375548897521212683409372999201052701339351757994393084694174633421890773998111506742320174335858933758094890113388829381062503348438973495770097944632342494200774061362024205451145266489317347927059303749844493777713551085967505183938871387198386257717382603958570997457118570200436887710660607099212140867046401613027823047400812433000823907987164848366688518832298310713230058807442783748372742777539240712804346592208810148006829521505761296037617712557966506407086383909131377177467244461327151739519272316024600520805762599235339869344215131232340198957186059160525091923871924532006192455077206933955064417205187256378258831177187955772265287441517819819408938055038627169438967822284905600139552865749388049075737578353812298227730264826205622515175841987515973917312657077952884165484111991128641576168175160172713834943093346657070493467918697867076985240964131023774651783564499892806182460891983700623766855104685511803152564619670490857794437336137281178120665215216368539927344502341130223938478613643290763854166546160793652917627022303921259837909899448482903792147894047176061693018236314938725009344576551441685116527397247352748881945118564385707950986640234403929930145727035394470985388040586549260588383314464142161924041646392897953498052355903662215043251619373918050551311728616932478247802153038130255289662078375719300160281076387631591779511537496086267536498462203478204371121241862069800687003335874191278024761761449347521883549236833426979050292827336805779383794485256499754356418810527465395535289948063057635619212746808041120594806931453407203313108310029935983916497545505262366018257347346673201842447164990085813029488655083143119170856357071940642603169352264450044229906431598327458760545947990595341714477273653395578575570186054500663627007494390834423910868775285500506436464822470998959772874362721110538117818377415694988154021133221504426818398131042521548770662883830733210337210509852004367014106312319664734243581841083843033179932732748481288845804714369451613176787446698063931296150693577080393145364646539537365307092971429803364122729874913918099346325345523466093998041508862565257712310561451644199077549050941847940762862086442929035379499290999488687460520156971425243168370914269226615621815236162449606937384510886862936484752640480377859805960061668336121622332412408596369580483210874693667849007111681415100271024271700188245542383796208556265467164904320770538598848060214701766690924824095859665102254986674091853078926740791996857847468322931002444178477505913043200572410026098700324395769921771877969758707121692435194390503555088374693119892332241640845050009295141637205251667196011053472067293151327522975843048420384884865472647391380409920682163484552897941774348429669426690862986836799341559446333531225350638934729439138914497480368029519320081444493484054781965597665801619073831815005325293342076868956810197756538615579883925649380886366848287596859334305467331191504987908111977967142507448895511054639995724147067492515051980090501316082260117254944177771783643874460709864670946875819944207588511141753279126841826772399521270878161419509148918170510323950203321030023763825414599304978487047893293889275402895454008161069189949733906870331333574776839372336148346806037863639128548520316428366774731235572026112586313763924358445001843623993117277133760412765919083561406975419317355156295117852536787851459422446135004876133546646844338397125230117962416079766608574165303676358691933225430734915387537397057029078632388857056279939520014100226260426827529254522483738333454956625959194902812519370611183418827738274966983628097281293280309308866593985592682274046926669330440869214501236861953795364548659163386317237302578969926991575673589596490102812523537408430736386373815748777600043903783348768482775963239887484410408818216413344048108929616302669733183844091581936485084002181902118917953855812725596044612999685055301650889212234358602260182164074951063342000882916466408946391644359474117448803935429243847991741240329011582281527315434980668119867712900127788950551744226305071886018992062616852032389151176994282835473061363426320170165961427628451568204555119301524633204406091211802949608731091811257590317510815740213488552419590674776815939571039746479480601771388371607789553307350606933348471713771330644960873300885544588612290579208024402523559017444797123701852381992499306614520944819722650629256960900982567403030789770963719935920267238409699000119181751811574874409824192306486018029363453724828127842217307122752311572931720334057624856221702113932199075976015112036736492146343292337340542694611468971944221473688187970013915133036211010102489571876630568376397370679719498995649430757439175463094690522640396271466233968810545945651198496306999307075694109781123065443897688020428099224615801263474780060065533163074657862764849345978231824876593765871635447677890005866524518450778957800159147513289557909902873845069660228253103481209556049134054840934435709052605324801093839312656065520908447364977437641953289496277688260697313127670485424275246970374584013637494074954990659012570838177214694175165184688792033169896414374096904754673217857308078147575651459701000753950679775765268063985427615090347423256020009080623663477878059256500806181396113546608451075730336841477718629187238145831508989950918124880070374402907528473936467547085256694513163413258801555655728083587491759504806618574441349787210255124837398095259237059551903202293263828901362063969269917826180778499820102760246233745668444601959224696697567460849341698516721050231012308330856840118644042810537804857093384964267981791873445790507218263247094919038387257142040129774610844531982844964333909939343419242405685693815417314806954767616691778437825121561888153562340759829130739378765737185203406273762494665870685599712583181051165998032546459557832114519667733726075393192010498608735429899366728513798342009161338212001973857645578549422386242667463028240618687968097498564781752180798377416439039867556306895756727560679072594810556017868021458196018163988199060932278910105574753091206894290201786214594849459960420033534757865891351670195373932765617324469785349126446599380420375556511948405616849184505198253021515364937316947887142574531314600933719339744240340335912092347908550537215322478951661713277666005360353597634379203341023757549025161940727421066188351254497692072967677324785203169231776827686701235525842237182490905308125538201729578671694186240578634888304485920280094031003242144714431849236849675734935808944237249555856001086551154145504246122160569117433376699565077844815213170427759013602915182051142849218966611454046007944734913387980806932152289701909229829224312869616409768391698497722136308551995579906983863425107481389920818825711422322780316305326211724137040820015762590905696545626911185690695840178515928590894467436873446265058541323726745622662254487220798051359144588146687299435328386179731877450194385723780595617352820424338401847245128202311130829590065424640131428157628604636758796368472723546073863866469261943185057708884798110738821925082557643965300768791490255851166750645805894629965421599077202270631104307806212169747117058704707403558681366617019394741071508896786646784889922229007042332110621268824385398172317082737127050016660901941345982189718295039306631025340261587219776867546258853245949959324769089926682549407115034917038928185410221823500489247723707760379621847022422063122822279648568048126474901707199587402093044823907077331628121363252373203546261831938772602660228056569994467414998589638047577477942780089127518394152767133846760435509457292064184396121563221393756689049923425545400227970637732226762535634916804947253328252710229150202579812884131890292363879384178503458995225216609210800627843464478964091548356306630362267994800337211399575505289726238018390115008029878344179948606101338432128158014381972300009691548922427030322648495448734267542252992537791014982660676590744622791595342424674067659725834830057342167679208139709961788195403215103061220514062669321630723125549452286188515853743427231374812298982675474065557262189752930238742059324983866874944299319002703391496921976358203257550332255846330969730875671955872793804870258957344003052426967192315790659473293571254142496538653401764687404322227801016706757784646459017010968454331394571404651761196754056020934779597837285708789008606382825626404487681345588376894306687674500195397686488187378404897541214030452004669186890769607845976099626144791532846158191339750568682921488343942946795417259356742489913675366308429964063630930778415795831791668258072201978838072366926558540068864187879805954902766901627371709194621257045519901614463072119632340187917643915337428575256734871148364299535112650049857204982499039528269990414932032764575274734982392078311037358213892413882314866022914632882079160573142601257994307344342410784147628345401946579079232051307428263021612909064974418696878452002750697344038767279208577549846128897300373952895534542444257697015798341489578091548753356323703281948656415679503082598121158780044007405716875329269917986224519986933169357345409999545388652575023354267820049009470340189416245404610895042390946230343192035192135295127607104751520340982380665593386317028526405367781427438201611237064142540921221978485724360264836846541854777683696963382236232993627697450029511585817209927689711306678537842716410673959560263923628810971024802020597884852702471494132780749141512581174952216200917453978748040048589524165516273570551214726848261796996981446951426494421122045735024096498424948540650179276309199676147036708115535226476800662891871148137341177469790119408504269790612092473151778626998076147660953246363421462766562844619716196032769105317511459415228123314786363118368641451649127654158669920332449020845006639276450920997245817811287189865285689977761358249822079363275903037465532644394753274242828985315879825635621920948184187737808872890885379439208079692049982005926116911423712978077970160407362699013312136185530463841369888045351942900387806528645445366434538960042885019708267396727273340077932951800951318552663058837369375079012650659130532903688926773721444574847595975624589012866095292943274092057322123996393111863034349822165670013124053233413729950759336723502462819629026501459122202106747816154830297840726714053455368175913342313141568770186053570009874129096924036215755914803926707092130365733353766710838437320045292294821121799481647908527180121856181754648974109675565153072387069159549912520203784447725152873209170745480917365086908627289140261502260169361992739153456360572115357732101234181964801751704188265215678050140347708443006306329863389135229322926108827958459182636293915199508084651032329424770448904973685841341693649500924597629147402332111918151598390408659845289868488432840771268051404477545334118331264326243351404105113583921609736640625851901640277760666986754728402884805270801029370466782671899501743864757793553404252377211080872126203652088836644378311374470478124588740977139205195835037303416121486546820629840610113249554124671891056615732803128185473132257504234096229683337488615259137055802422010538461829075377919806225484362977096085258639033921383776678172184531051882971432410054113499390281894541876655312799278676448175302235129686971666926827697968652947061549263275984187722235869335515261305782954826338428507921585537465905563609188065200359501433514156437079492608175100109201315364972644210971187352994323823157367421760699024183113314242122737274123213953878851403389092862856366156728756552501861778428714275976603687428436567880576075441562581962033495129717467527943563495606556440439005029948577795583132886533528431857165389505884438065855801968146844675214634640872466783253854000240612989242805500919945151041011328306196214965053086351878453954721830630019465824895353236168095726103841673589587796380928806773520660807997535654219238052019329865207814413999362826051131250002404451842605774422168118153791104487566514353754588869769327019911888727985031276438322640884444470342348271112498393515894493325575147577684992588566702380011113894668069268730045228685821248368166373399232484650641378337610125148241635480807936525940546089573835095888589465701121067567417411112117364001151307409366666011389625966233314987786825772617768290341125944253497725908827731722118345126497617351077160515253959598860922095133684989585719878400112249500710508215480946764623671650969806306190275823558226539056437212807502394833933972142935653325524927127369069590409505271571022196438300892611708295225899715645219804184229795651007042909424807529840794797383834412929391783230982750941582296490328027412123112452533343440952134137821180409060831561442425029322769174695067773396976867787225837469475835865586138742610786593197925160821720363579578461790081336647393625133990577950087000663127461865055801587420703377791040011487743202230540075039250315020599520851645325272635041952150780791452457396001431244135837621951915264866773248843241983933438179440223549667466752221613845877960100662950155166608299860970237233574038889076730064942998398702996596519773335555480224404964783006518224342035290911482931293264169658942471173445350196040776375623100896223835221264819309245740463397459352418897640110383035599340683515696313666685569356024262556129716998424463478356553709138752985732949952912736830307422439112345770927160675192656833157210173944408054692181750483094242117707914339286626105156378790455894259500457004388330323874828621717039245681150804198296898752199101167456894012977390529200881461569543480885400213106383218314903975598684406908270866074934926209235966677207271218263445639024936823023650860011705056242410515688325164281536264833459600770511328969612189648780321198188985898488298597826978230132443201104043886391204077686321021438145208331492358788044643525267973581279215313478181559688887264363056004894132999535256562012690027589814444986457865482111523601964268443014553433321443547906098906930984945491761988641444161821350447088224737570020313644047680452973429941840662070493828511425641684269935284047375720008238394200665998334839971891742066232153069848334026933971459972197459704066533301812941210420458881607035965680627976308554696322980675413037110709229529812520040604913563454883738045982919987779449030843748391705148133134085682594682172278847200798753977664258894863830374751341652372904201543390540723824241524728411927034529259961536116637291954587434376918034854293168741934746043815353940230900913947518016672814033011575718433239294581637476648430138738317536835200259520800536959945409068637353669851732893110537877023553919964852579289561793455495009031571525208895280191771635640133245391887350735994846195631314663525946890075495165180427366654243821998094409878076531762158401915158514507576759552839462101568712597989162918280742238123919522641208180249310673305058646299606940176411649959465884607077540267054495155363471903319203265387929104176575154470634766832543464890587795852429927941545042561100569289099702548139847951527898989894612949602179800924738831594791102937954363338925933190601869796124944487805252873754168423297088787893952182612694565709906525177349812686082490721426022081572646307538879173339184083838082401727117429175171549554728960816493821665270401424333622180424653852528030393770663787476973948441098977689168685785719138234095944739416803964560858917856044213547242224016899385048852634708090513301202451864469446442782454362845203050040378208967217336295339093647097919909459666613898095205972857849881102438700719512702605962444792241438024081566488590453295934868032695496686093789550490861748862131257391427621664731332184274357838898849336409619044471675626753197332073726761010339216140649602429254813735256617201902209158959642474347364434380212042373778043901898201594433619346509544810044980477625378711515291748842958904116314627497734503185330261874608696445687171324024661470138441582280275190137987904618432983130288352844249857343436814860748844727034568603878423460127634444827180607280150116510861859956007647247069161771677024349574772473383048868152050313957478160778233552279400734430495293836008694303394769467825707015768591855616017097347974726334277955426965918119188522862952205978067215937661153419793535828094816488839015022997828554314000137475663455666645408465222950948582263856731151559734103040934974237385680270938809340943025505901129268051583511519643227583449869030369516985398562534138192478025422834610313654874191170142490553018426576250010425282672899089215820789618764767463562594633915882964312015239210903219503681658946065605662291535619095584720220669782951765635070729796609648771152159825098760728854372075170871672835621161603092645543397362996197719864383733364369681437973752479417648925061375471605413725826989904799120721117360519929563716786821002173795598172045248308914878294633623067413437744043366661351078976209696502348394519101485796303886773109026317688864497392118237697023378928962682086008446247467525811462265339610235293429614421894795613864389874062681289885804625482926951571385993270151866894167463243556196393106295820741244966107286276010752511422275824327703587631903464897428024758104025687848332749613067669729587410576898285354119448068504691621901086327519559901884868955750715209392922515565193630288494099873118626248826368309869674314377415473304986409643619025843392021415308186431302418399996639021021111152066184739102371296808302025606349361470375791065746887648529800236599799035508410574154542082132310790591547368465125987785123282859879824769542480988033545371066089112537819097142275681425031205314884481689587452072907546300609252924965694502041234832054832375794915188783618280604622190545000558226419203153135189428712873066874377277097377990658443362091510022251483797929101230020603015050793568980732131836873008681176511213671679150817281379327158389897334421937436395873691278199013846430687804824091383507884358902689930019026898133834005127431203613216179013758628352515363539927556327550658424536638946172670564021298511957285077613400638453676524343439047484279865200011006551257918599324154855234356467994037294593298457497422433037425901206605238105926092380942167264891777450910154676802597261305708275995207626168393392189092966236756898689480467784904022365093513760534863927214212296106054888503514419133584482348472862908816327694180397451850030445460933126821183587592699828323470104908412267806256290670800724129357556346627437641393857799600723685392978317331500275145746230399403403251394959158201867458572949398627473094588577621269802234700587006319330185917992461140813154100905815121558040645770424797857684862027539284893905039891849195768587674195128683106030440535022745472731562624026061669667180586908209200961026986834928965234981340167533446802449459069236398744852601150954819538312867173442035356349920174047463964195405326374509220063333736681958444945444212119489016672937312929564133867054896478701185087218209494469318720363583770997145432771100174873899846514316780128599078342493777470532201261633267115075620284823146416832313876083513172390423311788624710558459056360049754797010670554012740038344248679137183015263150568042091256729503003107451274797158324960402624709610863100555648195627106504850605594734951843281026835660815478064300874244921226478692351838559218647960281755127149849160998147178653248888734795204180868033659540089183449236752362733643163824683493008675746408424386211901566280920816633401818350876488065851198505277567465575480801920608836465991998293149597430854793849113276701980813054527185132390591276734774799705115943245046670217788062925275671914107308820526182812833803992009967896720061289906818860685038823468779768706734969883012543063793586436917352099846607890243560327038325106310689271767487549846438170435366904182661663691848116326890617209288424179937006425072658445795759615807629410318190630544352978109903223225716159923293149919723953400075750548713154705909462552913487086594632303603964149108169242157627325789065798453692027912671988238359208301774752966047638947779320859866431743013160348084160536486171934135909010064073249567981373817642705308210524093772286549514517376577468649474319665707368339152734265961107856018262734294123979512704316666381720851378472121845207531073162696074580623796096912206331150196762323705730817534819050490049877926030543841210709348273597984881974465184054288659326479833493565008419180058254882496823738333188557813231680378653328127415905161534926201253036059715342620130554848532387896025244109445313493817842123510401795565011755278242411295536482733214815914112234638466407378465304086632020272601463736903407333822334289198666144526121612982606278152255926177506794615456872189320597871101440082189195735171075082818536014392025839514607204721896948326359326271612275905909377160987546350465095955691095987042288304270976649698365452922716913144062515815308482130317372193606024473702476054207678970696587090661444836192878058653119237490121755161826117221393286264573737869136616666587989952526892665058888304124501404518517866564785829114800218306056610854054634444489218728074993616574652044393059667515641525647919092573443733909461857664853041903607501993728316061526414324790856052994081565991857020320633889929950354384745093319098822075746158178902610807346427552341970793283283748678054398284696605002848105854496870708294819084104416932851563725464946534515527067015500479315106365677506156614841904663724679094777609014036084268964683525165472882952279970337607524388249013606468606180794249592260718107812315918542524685787483681214396340886024845980908420664323826791037446227527569103545887817623360475844323715006096980070433681621891812329784915767540761016291129984473912653754478328737512953983701951366188306862741394031798596135307232727037385980794066317222326890509419581344773528013168156226816917278186759736918901719319434126580416977280592047209535080247773285023846159484262560907545620684945239707139546273464366638459319236823719935550074741098293341409504917192115773643523305609337060456912977523421148669618318022640068228639583335154839742706236503193339542651044215248796369985071947161825125242515242418940347858855046013206479690852339926908036110412753983161052015847600080610011762932651865133465920602490109368475152298928386925834622234249681000728826504174051851623941364668697200379275024664877465984519701307875026892131729122377642094057328461545432229719365794117800244567907282436334762058904036302230842987292955581942158006336168318367564545479758677999569547951596709830998295126509551448627148573078565667235577375246518144723272747855169964324133485264358721749886635267141241630817376796178639391962479276133248962418972714208553741883100906272657578255020508888040541769317768147758465657825027852123483134061212223481548119234723555752096077680330900666758478487983270549003314040918680064883822656509589259713696429458947245313032817432196349281046056887771895135072381704507959292132611176593412155595644611655540360226812095362168267028211715026231513871748635294044916924581127731474554826081954356683883600509228445963995209291734949131024548007612521840697662509474670763952679052630570161079706184691575089114677529963785980243704391602271242765595987438584982559449756178882868511129511114471886775929103172896099568807582601660103509541412244653695808276295426673515850517164347854100808381668195606480471127349928622763998710290246025287895113072282141270222589759802217435632963512359182102631281646859819452305193487580985352132079599388767781458586426177958669708300496209456287644976491179379402489630082577089219996846798046858785714550683384445418494630500084530182370265157457232724255403626032549349707008865049450761236808103109633029760908016124860213286384049258083216764596060715850220088410478181344125299304564172176712130095525182449905461559364468360563989106898278469747646816894671095398950457912384279286223058820821030810601057334440571309736449483831113699016716472336286833831752099399534313487293435469475194116295403721888622813614840779177465619365487847623156546175314395363946967061972541984809348855468153022041718691864241974346293460965766200487547630142302239174015889547941951289859464910668291345942407212230526532693835074388983197682598585560500602651576867103722615608588953919000581760636603418419149197089073813043972519615236268190828997659961373214486563931059971796484225740920602938928426480914247642688293689191352669025968390082816850782007273436272165157171522832180592641543697917767275958413932853464242902545060980237580276154002438665854252623419651846042971715294710421041735286954154023339813126739593892621545148596890389637616782236172748661172546617018141568928104301353526507888490180538211708190471686615128505434343243698551764771090361877647412200648417464909111409513526426746163832951002136647264445385767853606980547324755547998904355753505880979352310182073305868285311413193400521602251408196542614675454143368122030647016094261772076024412901258184808758952239656699614762495961919233044040070992306561736475544709541582159320593715801825412115946258224269359425996820315459459243215137133823193248187240074253132175779125013361459574431286931532780584631907043652954641416019708065748797303834470671840124838384138361277990655575432431393353677437078738344908821829258520773333738330382631833518299226516471278888042987240771113738881387180527203783088097842350102380048330363374818386766399563227610116409165403215344888300411208729926823372829332105721986343486045292609638590734834383276082436009708617323107404612765474679219291624171643419503654437696490175685556377931634450542732950614022329369146281416817306059559535703903830293810848949944030357006642707679121879797175505258856814480520443553435494526886487514802741507309596658643241561260045843325020702659962716403475484526804014882775046027834140931656889281930434036261105671075351970039236596059380759608157715972424832937484351937626357186591099658213083655470426807307300339051281008727716939563588420044406339098276889044456747386801422351962672111174826947879660251308119287603169029451435472666103177349402604327549616869454760750691221798413739499671053383870178541355248361835107753776250953477829962722759562123488980196637885247424706572682003831037057106230134181066426411863065074338733596202335683611935768125356364079134316794365106066757862270654676772761553349106325513065657916840763670964600873153335199320719613003803345445626085911536844791436319038060780249173506593471000345071040618246264339387603403540527342277655143635197170900226396870619202399364534413075329667208480220496531293019008580606784837831268162550834114851903998389974001177230631251938090829990551480335733404736084294191040774722113410412412452313647939082375068877425279336648559373224627588654909802041195772981330504624438737604432754356824879530214804603931261928260463332265642875098122459533202979189286572521688537878432105667579765107803741319771380984726686972276406997075080871712780455083922647170425964108195539371776465739520082172851965979165755264916864292053720817807710083086908656893952006459146557942662922236451589874478623078066288584192643378202470324010013043763299811935186845779147853635462555317033556155270775581029605209513983254740646868831956808341165462189059444633742174682051401492238488829572567355216468589082077422409974318221051066117176894772254027750111633798603709624922905668094580206542767240950253513313725824191112968483640793971515549893096415722282276284733529945161965735013012529084865669649765258501940637845396919043524326188304929554801153114602004982073040753256869025433246069005571648277147762915254137909273522711282150344435375135327344918041258489181318826202152181015528447461835960955888599074751216201410927403195302062935931273433102954807333139435632975278757431543157948370288596829965624875246603206246403333888078008149117343919203131243440098475024279498840068495818316865944929683333688317367795310054440930128080304605589662266588006956134331749023150882359928760087418167080527081567907183398672492881693483313246001108081261600048043640879083138132798929550473296260330297325296482401793348476523849479812581156867851109263580451184254008652569037071504828632991659180708699410581569934793036682580815759740358185444820297618863027957129651982679433356675636177830518005325068034429594774700489049549973006664046041397931306666068295186032934317500126569684630637727168120743020656792883259937184059669416576471207575020350269202583787264744328407898194315848772772712669262404573321832955517646199860950230021173801725822177521618063185714188683918349103796471195479065204373291330589725235326575396152107354727400770436914075885294401153942795682774966559729689257106662145196710359789599264052910216672029967021004463768596964276607667221281220221844893607966693154692984983410403308951828087784691434535528597117100225857413202493556892752586050936345736089580828418523130094423024139878836240095561235591745468830832990084177542006705040053472900840783197722728072681743694989227820123031999470222546958328862770408412207028864455592855819921375628762645563663803983654515779603599317735996545282605440277831848922495457364813340130073023198368520048547857948573522784123510189413164303766646126982823945487832830488137956312573748629678647829812309207031471317846075052655507582451761318687199025426001787380017052554713373767136067536074490295604790045469681869942538311118681416777267500001138070195751358407864018606740903852545608542052597419699168931199039626902941163836779794675307259550363071104913106866517780319926680960514512546407661591888250750604453194987085222249023358071082029994496776262774303687191572490564205316850132797838834680423113429277381049044657469961197278497896735175948383027186029870490499453550955174898583971396269974175837575169350976479833740416927333318827051211271204467469945073274350508425754673600192767446240233962684748334334947284381569407219818272933222547392945732737814212387924017110120590842940524659261280071964059264196448808068199578769494501953119890501221842686316408454517242567094544035024582819725896361041368407066607843421373687374492742897608425906125581116220884740199548936739330788200517325913005221382124659188714852208576877265657491412981606454662174739406367290168942133803021096744016010957652522592067712947248285726905194050269042617572335038629087252142383212206751768646774884051601492373826206295438421179284104265444508784679773590467295480905368115109981676203944777518701619055498761094338773064186570724028308720436083063422739902625248737022233237379577049423176464424828005143331249214884539859689674064734342164730926911312762456699411632385759573719335941889148684762644067637501390640692737105431194254743093409950465235752845547776302330922992598224035601136257917900486573213637248481587406400684477981451605181428297282872369816612846230694127229538250354817113942344724825713709139332157141579083259218271408294710884648286825592771171500174352600259888352054462974501553832792535128198849390761938826083325759031196995838006473393006108049382451817173373476208120068098623486015501954377991855341431024659150096122311066311198974082116795704973934733906188421984064386288291889747616268284339239265188456093744995160505286642069151227346455759250375751612855821507361483530578271433522293612209017676478510943806859728844368225572189043353887832262373622195203968447590939433719946106774586961880288174181206699481343803850773983699657813409820768942983972350380608477248406879671840663897889197220562463924390040160267927719208963665529884719412492357520507616921338001940771406758954473297297487252001897980233544941775146002643009816979959671483234263178913288264740498800308826139144882631808439872510679117821820855681752248871092224239481478123763661486748752498717563103111367854804979640749804683404120110024406650889168151380406480711497372376456785173343178763770008855480378392509783009602363190073552818491106266661917849004930651428368095822186319342886411741706890033123422975064046397781507100084414585664892612537876521687424103332159327557798185758385435058470095439906858775842127953812283436198640092919231093943039420468311974370669319512938641887569909545377292226326770896826006083260844356551479137025650932254473926647169129072306084125313882712091121535854236417252067755714824839065128158505897821486877461327413728534741805592192916607295801967256888789598776510899916707255254874390451213271490620359439276818782374752999906386891150654593379378805963194149824529420447687775006703605770104903937242567572193283320769123096426312392257242993448130302479893300131876538706517946070396925086359924378830541228795888615900313295868913651073096226085253892888115185397013919482494529487186787892043546043333409039425529896087775741793660085012484049980454810320939337266074326733916632114809554506601721882317433569049091311288087964700044084924616342956683071599253053807930025515917931518003608436691888473163858054709045852654050107727196403040811205196548218825441506245491991578339099174229044436088124405341328255324637646009254913287110713415254102882546625709603984587786482600787211263283161867104807104165495485723572317547960241070775678310771075255456841037507747012427440096297653269952911047161900191309762332376345639703601487426489567973831156742834327759254786932682980780841768525045414813446394654598582191561275656115989532902822720506802030675999517189560930868006412920131518467722529191133234102936092241927687693237574562363884974405170291203716580331866847204697654364084413765721940552078560372951202397759020130356253076268527013792878166826543501374301562368048156374135338290102621741210253678428436314006474680510152077798278463169904243063601294565466239542764278540503574923268733618600476767643233260634706724930746625778937447427622850381009354307356068811757018758428593152809657388972656920985442482285063193259562201251043729856919147769799953079016284344030204650672891961493847924333375610313741394192862222281134673546139708825166759428644725784012017725318047069171038843372442691314710198901031059248278485609882433418711605023612679125561313215242274404843924729833570676759185591282773934198292285719853847112913941165732739622936470479874713233768158683308981085826005041303921480383904150223628131808466385709289588291785239044693572741858447107198410145288499969559593687052839829634800186802578058144455983380109170143230156374733876988229673224474988895033330811808932048912216415725231502111442669835926135324492783485494530255085200889213506724181089197506700880271940906748065975700698223994438495789129207764353980064591024640463341482586955371721288121684885198194839682586942099111285803718175628960818701346105042863574344930731591166097527516475820542580126845888737012897449875283282581533978089382933971958676658297274554454275164272142871500698406686319884248305107862847793457297611806473311667348787743930877124720508954100114041456520980721653131305971773112462728311440125526241865011670598034237700719641478690670892949364900415934405065544348360925590815234899913119876995082038679545643046464459216453081682197090325566872919915741965958998615099870468220536632871441803128012363061897353591068258430562219682195608886033977286536632351639835370652606890039207555881238911510595548128575781944160922925272172797457362789336699175965663284381389323210471405719216264715291580750243531287106064750132484700784032180960535563922027757437085376786208368097676482211384152095993136129160571361193883947937180992486159277350218385937513654770081794516943125694043959228881026188728895621581944966661650457509564638824957248035493092321965723733995794008507264830447551620290011289050618426214243656486865809212013537183824218074675716372820922954210624442773946492912139983637093405344608162123788718058536913467329476096479524841416902813532749427971207772716110183460739868406394875007696279616508127735048264279602232910523894851813573174457224648596170161288719384827309616362224018332353092873290719825958064004765816898577646628354137145007257591896010666455971079032753186204355437335304887825492022279127237098158985666217137305205044145175278918833441152048085248962164232305525256422812586596856964962743747453935613408663976089414505057612476270302585606155480798392345044904396931761384797050716669032156396018454620229817616249340065853959101656597165395497311296365043752422048448824005945044271634382054323810397959940586173944223881961837732240342487313403909001268552777189837024503539816598170126954941732320292463339146363694840174965778585145694511141139098463625249190838317232247373735825903933346389153401180475799891737054313297415539762672662537503615129883162749273355656998864406722410686001069190328196730651319021215170540996998647805827743425345896885711477143557468515500138125212361209276597969149440855017463400638340602850004610494589603442885133628437848020314683201218521271254757419100861595520383761588087287222674116702711756648503497573770075186312027173144687912949039987671341539400858979862425326467842872057973690740099561211078016969205564087834937187040609806505642754215811571632422755286051000217080843816683945247145004508127347852930285434829204362598679066766704570270376387506100495662054746852323024725345347793579485873777241190938703621577136617940120522262873752714790441148724740785758426615914034461859030675578736917913431884483800388863371518183886821786722710700446194616283128769655757247582611269268378364684961357274621856018556287668338717730749632621005250097107265816467794904042554377327636513784030103268115923758049093091299418133120886541631938732777412069229937562035475418807062842393167666753276954817660546970217360293023899706885373593050949147325114073542317282460616505334196809972576392288225354325977937167915870022251624911118998717090252625857307132993726989794380644644708760553628993207049322392601283441307019775306825637724047819128454274395206704910890508617040978489307888832506437139797966655291012270039733570511152106602462985981194610043667250292422813350178131007250787035222454366083135160825817588467358764589016132919110689114193802522780738279686232549154753934241303853809533552543608146618259242013581236348030448610863273260493797295260906407001086192509709538902579493482550915757316578316934052923708566800405589003836882441232535538398400451745958772096767536632885055365401137974043674996861000000940647159574314325928313677886483072490426185104391845672677342685460274957378948759741851140993337366328463146589788173792839661975499233871625694673125589980220275875283352212907299768392865737775201083607485556240341488341045237869829442416125601242311960835802548941476704610269154393439672679738227575017471877843048724579953754426372771546352166519714847119748673156561873059588330787347823920050819328292863963796451106535262712106245766805952419353218028765136260290209180156087580129868908623515080968245456290590691241408590847853918629567170927592471028693903570556601274776086230628781695538706262071842460636179777013378567525946251908634309392485140254222445757772742972985275380884187431773991435402173737303553568632295026942990983002017270042353081591218941027782870330513644909601110636274831502657201951079670679143928877634013725330113318158899198544572224264153662048453459667820888199013634563261978078200617370332534131072398216741300572454160012532003157844014333172930260840349899074578797652292202577000300265280655450386180222469350397038527018695872211901477383665397645367913226819008841973804969415779503493617140748228738840730555331834030426913733063381560131464183620578496527755155293732588558142571757962591099563263221303814650820122600453201622041916334993206865311869045700097220301263945870551302860052964314583537327385132115602049732186505896913344653538865621281897889442184354534869788035530404223636842131213798768946408052858995303812265005024222794848632367076257666567810640234956228178988411393268379816700699223402712054760568777514052334831801682105059564198133957490589321778703112380708253181530038280924959983816298459660038355260391878494567788071880250125713646983187119845551368795837014899264974359442681159251355295394641968777178764317274244541047401874012526784576073327420333350702318916898177196031163137288941348598695469739180611347656586998225563681317426120439562030482861625127520454365532728210957461183612645746168042999572583258880565588991435136088417878001475815839444935529500957465278380074650791553864286688553129848639482583710595056992032888284779721236801024535105304103156762232099169534237560349619634298691838533843977421287516478189123198581577013633075748558275278684454253139359218765729042256506787690312541957389567272792163654691577306152883938533324824014618185108740848713013402716037413153972830714998195540811393645764433419108764039910574861600993622712590694579317978974018972387469219998667312517357635122894098585786372568548896678345788557403916917453786840364741747756904237198789516032600810167226754608506625010452740357133424431241097776924878911057823187092092010374752425725837951039918994642283373337523036466071845057186662333378892109605111490691137583074136092661549060642282660312617166941047241386657788877259068908717945396951028551510843433886659899326905124920181628179715848477806430427649733133122359339330437140168802152290642413484123940184822518805067007967061986818825655134574900682738537696764429267202475938971037579732247229072425433250346300375010969129737904113751318646114015006448841845782064652138891709917985500531948538498435588346964008908896438985787599626082493514680365893925335651882685924147001921758666229144226357187826029245788041075598795328436685931005851999424186858798901903366971134392145079191526892145269434151885613858123111900490702156518780178100242263045257353614007966978283003679174326293467485849803248453970979206596380006765342352472232482222546517162115602052827273612351460619354185753552226701377434843337035611901942495007355951031889223487314796371494422969393933010442324904176635578084303338790390739442832071091249009479304970635724747696102821320547548874142602520731094821585853790386532371576985658272216042826451151434000137917495877460133045425512394570016896657196084332647648119948372387858579942043952676094092381913284943257225339827809038889607985778590003529477760124709393024952509857859695082383750851485762367127736768400210175824034760121021926808165604823387627836549488082900367016788368250282839773231182120393275307628527733411123880638915882797775184907049571012781074626490659919312904280018236815498206735008208021851261712548836643255500668227584021598032959864957005975118462037961879002473982190633089105128567351902326595728518264020854159567867929913835710800506129924972036383835646678867351771165143940906971563186124578510825451709165980413230991305134397649213449883301140685606344475631932646072471460754095183660194582478688143212172601447255909069567728404110089994401679149716125876360123575755706747971787122795057189865115053250102657491614092264706094181159063707024737883586534224590943124268511057521544019280389364693982112064166780848475014099693479771965271322386017351016209707614876666310701600631287728724135531617445598470243037353801629450019433714144660836739390972725028516296377288587963391813977052723298849572701456217190424923109974221912745285756901905225780823021407934496686074513551940507778176455057156200760359329431754506518886658896722708976711412017630062003000121883977547891048970413766766143502314846093956585295219485797513370479146463579946999294478226588901068923333561675431645936187825302864379488223182037396798327653966668820458835381350081212432801349680599388661832099320362500902721197475433976056067221548989980176772474986769007360240059398720419127174375966303869903434855517348169511172065799834825348440259263921780934921308231412752764068489491664609488879580548887422537828159882364621117993277009568304962604280591716418869730665276334985469142186822054257822969111369275677046523980894596894921465196815098735660001007699589063571358337103509499617003191385991123261502839739892432384089726538091087704139456158524130260903703191489328536639862847602467061499959867774532519543401884883921464918806795545016527856747221203252272796507832013763117882929886153661039014979333207136915919999975713645476977935087980966506319873191899023452110982403902251746882729815535352451157133999349796333021399555478493917054578002990660081931115613998450138450807899130707696809417780039565180534558375275308510306696571840002134702439982969914876563457404174763857744733907624914361315155146780112123393489758183970155853190029007375875484195515217937068429170545469879662933805163301058999936985216886205606865503781047108492647320162481001407945421238189656880243299804618823164014919893694535774336880475642451846224366605117560116926027033938965197922627223722217705587216169190524340197643939140196911037611044975195368359065345452602099675108170939373702863102715164168343326454956801215716800186033711161963431139963013393225887739607058201035790978370871809106620412232892637868987629629084557117978804718670755377136985903648958890800072653148737066704188903217727979305338814533679164608187546859898847680276522333199791071100490172737939546713359465818790471515372540500316159972569032290688051004586812348467469127658985164824671912335587440692502951524398912163773644844122777813561475451004246784890682857632820653575238853284236601765736317051135356198498644097449718235631194188265862640189423523530365119883794039437147840830432917386798737394013613871262675038709966918465172326276543226575183324405779174998420827884342109775254967413401976085520292169564452528790781291230561197021980629941470916338204030197396761777258526493946259411892133894683740767209875374721397364662925711177377642534872937880774787016466003995219938260943183447586837592803501223649258649860762314197726532830626778869461662593968197891431647057182628013176210882673771668022624619276604179848849936244114496307768341042315212185701967596143986990197708396408786847147860782934858055764884125715073425028906385823490590185710409559041815869047988371102424485187940167782537565314336237865181144827913066121150785924864858947767249330500255285068080359984147740828727232894982062044835513901487761172397822907287141174669331499720105969071514897732446323791826089409232933346778610659476882909071983137067064096343554171188754665270874325621656575314578896009361839838297179426126131749563189745138807879593584790177875400925634311202471883499623569432110625325471743033004070651802741168810266153498111454048836810513088377719582913671141121232426397053278627573415758546228607450955060624873415685883981387871897318434689503159637112077860408072434110489858229538713773968463673603331481034163745767036394200132823709118605487725980827670547097830480817259622988951174366299863453233232700136488580274649571485425047824630843635308522419519286342510928047384988825942442992596161197650076746380168525022728117851327347244094748694699897585365363520463256982220876982655069130452583864254520630638497875578201759615334690952804946693652816294820387221708650468326515702455364744450736132077690970276640555749678147259766409838302679074435919143719499045585632621955700531817342658919368545061045932235356959258105253564496531307757475978989117577141149097011152062577898422006267827781788473007230614690792266052858152012937645010032261292156256105244376919405287624848345277429840875008028691783976441512764156216141987172494109289518294121545202515565880559110066475962717374654590116868145612558331089861675766518195472138628170970865666516221435304916067441222463535387997133625304704553968984428909939451096818478441714548655561364488227452498529835662002487357414554641884633973441270980641656107563599273739944905623775539127713175128738501970944755077521740859583393302081225958112394333336545350359329989743953128625438051831034623802393844666034393688264067601926155935686146909423896706596575485879601131284680507591477605338067052824092868007269001800659953292132234627884469653268270368208353708354885621454139908374228179035719374877968057638575934952762501730422817850022318391738411303202215935320615616048444015575277023243235478510968892976876557814062043173103554590164343393099199177453992196336136200219509882352354981235672987603894820016378105669758498302670265947085703127372568861738794071787607351250313277881023688093627270320831116983151478141857505206632968595405099102609962409292573191742410791802139112279859109221247977591806370971798995888589996044454805090959151536800556954247812817215735834530597853747227428614941287466353205555768706200559102045420342643553700736150704107204647013667773007170593334962220295921827614707273857945788854809101744544980392978321879842215013446198234044950058097579811029525567637929987343151260288622285357773190889670422226035717921954775749379126855582016746203571506974428201270173056497817476864216204642686735717589315747821074412502272362502079567501483870937448527119490649186263115996498163189059665104672409640273626843827702841866313183202964270203078273319578949446356759714603451747398197495357626957120809807992833658388003284864255651537433237029952215958706583897383518039817113881560324313498401401088639585317977489956771471558719160246741932617569938539353344264787646003445501807879238709310719759667942271324449589239583315055159339456391275190510536770940223867177912630118155313332894266895692001909575594827096640975855505544386761227128334837513777232469265087134842804541627734923885057156225983300523407473849965368229672137753843795565262250076521616612968010016078050055919203470756383087768048979596978258021695961998962804782323685480991177699505980917693163368370531215719453857801193543055288497224644809945672348480425959011589558346394305565402352003941503833532832894967478007241192298688519813017863571045415772404485581526789271965649003991511373492964089952305946127813675216756502461675336991255346331930660475906894269210013064628092673763788435325299216007595742356340892263979486821285027234747892582385509861283450937026896730410469163436288965381049807721255066585741233471959454016507843224844492717524526080362069680369456659546949584390494265063451571677782095501496070958248983808050062714508334878759641962193973808213883494758260437605583853437488278899216635536676781036386096238583691279032248592311995376912643047652093874591361658354381703401195342179289115421599834456705173323719787798954551002948267439409818453072014474474335649724127732203404158824093233297533576433091150483513438529881616295387510034060758237612738576318019633829469697376634488312696543642127214726078164128612993111696047959676241047334905361685524818731489000068869474932025232024222771198873383849685531539034012414308901473588095051134563683856273068834986179242965650028535420345043861398995215816680391488305500822565287454546177775233220402475444276566267095879121010403928443066744291387755511454179169665490966670719307563614635958950816022210853602484165557913945261808628551622908525125239740203914361369568992947047988072388803954990475244476474810967850040716414552399116304522833149986606021701170568100109509036848020274530331003968333630767170409989562988407506650518968312789223454168002372186852871107061862233552039602559553426759450324873971405050176498838056576401574493510156371997567983013131711040283987744754732672694040856334486691565668370899745502481298613962700789967594573569580922096021963594192930183273471746166667052099499517143916456979876921608844516870822665448724562344933595145946042426436603016007647909280277582470785211958349821868139717819812904884098561036230598508885952787761825078571419253584456128337905045808726735044575947353796670312323799005404801953503601163486713745359855487291418988658484700226607566844175366173451520259240027548017516040671918925236396609890567726735331710099464846120834766450493536376494708680153793697037515530827842012105639881809808436390400188603579495097399305677689027813684875636335697121425821574482810663236056406047610481590227030748031728774056837885161328203069840747955346184645722406496581982374233387792621547297789557614876260563925821884645613431098943484333607624972782522523435908136418683308359261229285370087536315029952924065486801848938751944042407162698610481451766472397331183031886698452630108398757699244633935004281859897407154390339743063010976123697706147618056692193617186597474452472379396394591940714324426096837017671499405134382920815357694973941430786979385715641462759652250064049878647260707277255351807760831856847838505193230545563966032773902897111046072250952598851372928741217899572772030962006079903385545436481836679868639424303272661464766377147053151785745677016092882409492744831751932438561809676170172154416791187314328166065364942734400875703135811382835220109461812621231398403182820708661055837973115021701934936349931323546594855637957980990053272211264377511390128270945270711170352900256853304302452149723994146389299536240792018904717168470797820788846036394885149650619188045356407996767915945166876704142917256073922000060360164310098908689538216380503616257140034362934220699612095574170399724673976288292976968891485206859053202852529234787760729027756653137228269529509592043957937793218918706162392407036218138159616359706632142454193258770167007449949002057549379547447963087406324933386217906618759241894644477345516599897825952788949525801279740048791012230885226294332132994642508746063682767013076988377428464793792881470732035411927930453049570284378332743575263052657323260707786130264479947583628628807699394684247958479285035921143739157412418181210286323178271071399330881593811053639900461446889458281011225447419379961914711797094093412830177995790923516483558870569917144128076868452510512541847916972894733358046290484548584575685106049501295248233571410139581559349509016232082674077672334070232042190597076947844617786866282587889115220480918311719113546973751613510026677741205300416563289263374088778410728641615197193927401510591238210899929958281366484328661490569856296260157201313337746470404754064140868051382258239093174575419667852564573288877074920250679163532471346476381941263787493137734746941465137560520990587503005378194215145112234194121601888319637516029474867490232081072867467319239296263130335563235353618552857182735185264320326066096995441037650363167834184848576547800290483560552904864072090548105584881583178885394315532923200551882405493198945348350323195113595595272750506795659921770494381576061437150191644850358239479820089363809713682345176918619685932166641995294187044156411171589703600953645266048823462269257868315089869460066976238190529210428435655531234661796211383628850408176255947095816855097108564744108026455856758756149178056681753661862603848122217342750529561385555618361795947781642967185565883799846453393120243181458667551253788393039783843861400166015381366065143671026151069462062889869523016432896595136029347396778994353852478984943746046615912338771814401242058468540431128184200512306517960201448369475298007490918566925286062477082695528646135667407843326307760884335653699494511222789823134295401457874951910828235183616724578540465988605860979640916355667937378969469599875697682628084690508836587508013221813450784097171409713353258164275589780614878305543052740129190911831119853512320310511890155815154946254949478715903900703081301800682677876207830309097098909954448252971115985592503684899349449460116630046023537965915741249656981480557546151871771351867768020905163851580411423402748753798681460696659147990318840022419716459306324382937373974935375136446142733946346735830371722629117686984974531684046824569101343824533974462348724388477208876217506322577289336984820814221929382907312766812650424511922692021581166348237063512822158746285712393635530727950694165013549653871651669737292811112590807140024442733697554540427219793088583459103137443945143768847085461287196855329777666545660262165702239135327026849691359685543103269668392823328606752303316524047479326165954387078481607294668433391037390402402741418653443053997097469370580399403592821056820846402936830745210403223953310530346992092638099134154560928057181167746835343123980194894572893919785446294284933358139230112513565618589588642814037597371732762126330845507611978922136552212271276266822213863388027218408891732352226044230886342096085986789446929190793315594232463541003882006169881446440955384816559005796563746451447338613058846019566639140661080610988766641407451534077585921145603188594055994740628516397545164049333569425947653283430100297543131130286438034817233923938822162952357783641488615633966247978351733415530996610256269197604771595245433422305791532825792080169979375827306018374088148756356704438177646599102103802707147233295084615211614518223363830309287897817650456672081466990361380186225423900422299424354984274396525852476926781999073313374759248716489467683282474612595036175925831650000849231788059805630124033640518181312522076376704793082679450769045518932925406542389052001509776267187411130863313929930902552848267152475374690287363682132877677100874726845722229015089047445929218170157323733804774266614916007681123387129648870815761295446654873071278296748488508730785616836315473622488340969262757924905598842643136055731726139130197289424085685252014002926376618069641482788393962429308696378824803379368458877133317688870360758978097339667648389194180375650646791656566267217076186513223387771110457778861413553411627978186400554496223290042712872247831424448507258218119450673459850318307294472369773464913823133333650156385717181698720159670449773081956356043532073452218913950870354536051899897372417100380109629552662855489332095438346271314516152687958640318831231338102916018500973113057041608194456711455965902214410789052892513986813201770315469568217793473758808581377245919289390841786591458826776897654614022767319324766885839529329579843011243177984313476655016119640135224310007232685441785668082461022556807673950404794174518380348073813767499826378260329529611207558433562975984558379611466252545283135542772002649282624947532461143480429451289859155527086656707142324098478668091023826247235724400047512389763068002644392196996781313921923575121837551787077841259418187101019789543737199720312769364584723386930501740896272893886955506457330288776737812093040129055426119136426567969988387583377520250158039642286567343131837328985342865671842257347362604334605311436215170212335429971973756377934779895000008631993496891129969607217182870160460983126811227031210984545166035127481158585468493792429122326984284626906234398471812201574954954392907364960549232187132068442122213442292149292857950156377878985723921104650135149466088951001116484867923479868275192796696353568467626753588518439666365854252241614777031670443593699993205744726822186076615711764329412386229888923563775453458121985642163856802302558400193332272992460881032204444235218230926902884621078274868628719542371803829932425716281704449282386443369084792423368796409712553071149252585026376691866895055963364174910630707898906601967720362355928811557938891522569740007935927712750052094340706910758864936210935327684737269814277490204697453763288660348090887956151678085796701599352494592811718848599810285754340866070218523789847780284107262383178874522148749333189249121911190759402556779133364434139966202120241260871909308215888268227949280406353461569241280814313329570026722651781461143846497329309826927328883210938224981860274339696611758619634368125886455758216853696305586625735603667068973565349683090178489393996571381407814271048484165050716980635945501037042453996911380835990999225892730350050987531971399490409245081276548736191627183098444966337244767956692333646716753181849645700894103353308512473060691449114948924160298718661129888900498556056435043909443806390418214304701074391785687469540631224179289067139640581366570592603833998157853840553431060188462486936074652514919838696875615544373729079071573791486791353110158230915781808591586538737976147917954074498282528919397281483366008630203475493518880410694493200983063911888052841858653626090507694230227289973551164991918880184340454610848095435667586706360473564380848588405798949115017325233232421739544314713316992067724438001395949894005526036891275994456789497889204768896323325655928392075202952089012385153804064297373957299168820678418221993560933560983571816610202959980491428867012712342154442840064709023337762757159536725720720316145511665540094072767028619165202471923525962697405931992227218066178410548276099103469871845390680891181532675382685174711365512512581524519862066064428257347838251480783172627082365718069655896852968834520547466997856359912246722694803335095926082012213564344623137799238966900095871680524812161568558447462392954796580233265221907472542578409126986973288162176989039994018739846877524997284499816601181678650261666351424214952666249145822280642529877949391389068451601735927255187534184174144309595725033655839647964515919582923849320518077787024799871482353049751639809303992292635383249217029867582667179231733572604100234277288592087057158957809308028007911850204785057033872255621758707494085259725929953364603046711502526415759551526937102389249860022015258572273220376786655946217238887038290083131195865426972321432302664395141442754875234308410651627536724117021098403188368349245093808490371088442570206622462010879449325706146655867111004747604802411806023255534389348678757977225499595038296396981839121697090807907635706384557141241988992530557845655185425311111460114912843103020215138009311527314993858916360134432011217730653383012646067907245603695467437950063444943501892104954018885766862966669467330246214093631358406030748366508394299577607870964020983004530854629021484115639267585134023043655835511074898558221536802510034322782238914323022378334485459539693519181248713828500945795160588826770245313086452225467757490329265699515080740520240470465152374504046313552366667198401318263916094016231916881665249235916263896745843446632370965550227542227542720221259909351856383271166008638018386770401910851742330520356947519775818924576710057766009742755077207584033491202945898710502989082804022204303043703864142522167459393088796667172058568820390475851503827141746222113373653425487276085018736435218994954022896110349891371194772576338402422750011213032770887010493891134383695463268367881450098968673028151632646466297292767879809499730424682646609919372773608200764750857198134881174468936251355967894676966531060142263289224988171890324419880009626050307963045280838827487509486860937784679431317197199669757952290198036944355113511401522671321345746276458536845291359440997727426181780820191718741970545046537260434771817690458121973849172471389065430966406054194854265930273821285993732080086907488174171512439739755132191381573797265461577496102852832320855220934973409882528860412519770229811611332364368426248707976051335186377983585595344912381043247337044959196245019779351525088134718486334671815309122220952521715022922701629337810100545607980287531611203856119424808742238554641014066398910494340282309395314743874188306103882289383780330836308774335844781868050003786544849564277007121456315313322023935249869886684408547299837250420443684344834823061652311939974415015683413837794485699770014412532103490746677054668737052605103917328336228036196743776607391917113441963533118678390429856392785849467251795619513093520583281419339729506099306288551769170000861727672827778725280971186316174869612341953790847421861157646524372085685223651778615307213362052066020523961296104300945657376633964930310139021746724650167922269490033289123117993573796818887311865838110561909935931274042376930931251026315891756827032962605054255527237236003278503953704882141383998040821028852605924164624029486021786523539288374231164906748198741461916954274752352639755897094694953344827597100744657231171301736809689260239756254289523590703051800477485555130316485377519652291701668052148055834493159654420744130241292394831190377995652940057370052054730011100227340969572643917016363571732014285023772071142946160223390018781268751189912771567927280048778128960439247212589784686124035931965326656800562236715589388140148955977270343858437504998877385385508613375884874193407962538902635521319554091532679387493395422405063483953557307197310996876672929959346775195990536979832932512568522129575574501819187627132760652725841202641679190751372039597420202865461699410450307085800578361267941763126536738021869024396308069737924574925298700282303840678939032018557847270906614442694080704242812845481749454621315130751170709065738648521100578266117890198358063919298410530995767651629515170241016062260710554039928275317027903061379727913527329469667553633252777514325690901649848721522588740504840718685407497760179270079266581889343889513656135642046835606114336407193741772014007835070463606343876611230641103249496767496710773114276470751449466315991918358052278207045694908752249004538610654237792667603804018754711786533918652256780606037367125956867182847725991720317213596441556920674393265550881296596804079942438738889807536770653918511742141499042575936538270203603063348510408070731357933767008662795220475122643939152593669921476597376953171246972978657704152855245131658626783830989888925361958631111234487398051264857302448853421038261890629219279730721020152859051285211961808028177441599248769471062591224547501259792772832163696316566125494990533863186994297112423951376807026747510557679365627859444936460699844724167771916114411995344127080568761855711245139059485593025723200139001052820760339414557681011994222347726287883986518804744805039770842173775224413838741191287411401175079874589830046422339121946662279351811014714489407591107953843021777015927267039399213591136904681057234008434183196448045281862672079569294107601494855442957010661788179017749540039963167254641303588328294568797500275496607687510633647118443769681480263728815087902798157813441850912058743357207807170086017345423089720412254564456392221172176580051236334364534941997625540796317451826601588471389530367235969737140822578534809693279894424564683823587844141586961712830866938642489009282843415019634970459314258739119890198735723147987179108895991522011540476674943539436606271459511803418439497712235837576306820753317375972548473789093509051967521726753242837902995100930037762996051437016001409002133854724791562802499272297543852808460157212417573308260110647256157549346383066371192707266753925997491375192521562392432503797801255440790346883066583474569333944581864423271552615520761228035671273953091516203661071571940649425271149055287685368447749456192099586523704736045267251890407652079589386019474004338637269282283859179543530731272018815484519272618932982658443167471407706199990169238908804061022129564127986499744849282549597923317466341255829502147489057447091193030438301063568221673981484878991971601697086766763560773753929600554579841334149108021177172852330758118176665120076696484710385587449900307854843716076727189523568070196200171553861211176407534689238751722046338818490032874716041376026511873403933277030588706533783770620441881928630245157959000364407773291166899917454964558223768535464008927174484352443182062709776757364368914353667433249823145246804721030292063901190138339761568997981434444165581758600988765693245232916581510179311761712106415216535781588603775077424385724189997025226429540289279837579944111841745108211547905001484100084744821280506979451877803391847782646822528884383566290945925561727268749880658754741773423411724874831150751359236726031756678142258897304549966262856620799634077014492110787367814134084523150865537741163548539991099779609172481746656927984862027051205041147336559816325392518414415984295206093511096872203495253967831527897090956132134826072278355568641590824862512059115558558675291918041775353944897896120983868926305937969956816041473067936498869567002577636455416554819408250435506046406574526802755165060583640747722027895985637650717528311146763556701894216544552843759971621878848770832965382410472394618669545848912717924654263515600298655801646971859835273345698929602554037927032342906652357198391646065216386273542316536512949408007557488861217395200397435394238118514103825350989562782704753516820096932104651310723757795689676849470380770482513212196951902572820639140149613501639157799646603697601622764361286906062655054457865233447465143083983777642997023074040387973987461240349351723877268267469182181732682654651713460962735601782074026073080046895642537851426556958473033644777937250360012437126817272437443163974011360901044558571779542646305561376976842045342066634718250479278531958584203645004490197471032927683018472991211956671695635529975778474444028274984929891428555953183152310367008024845344159799253363078328539907789923333743267328735555609772815959457871681992828730325977969634556714237334554445888409344455985988280171489732106493897789830317262464947567805661548428304722015917983167970818990545381689181110489304070693722611546671386105779374428108563430172742022163811049209306450144882843467247704485750715436457100681464689704561112432611748963959375772043903456482436870374808531419904356853866417179567089850563308237706836158081025440583981757419329325420893923338748521576179704214655735999843156975282808879862333709729571950001800379166479687104702973178063662042584690453930235955659935412668907788672169594743408627301189883603264442310700579535156669806514470625737360761878067659395426171660359223146109602505049887229452972089712153801797119729487031132144242502370820999241339878148638190844756168215696428763248421277554361169957458959906557199164230264094397507959371424103848374306811681137107055836361775587517436315854333405179416556591127020865207629601512163403311898083731085595059951208867223767584203796040704663568966057171314056645374875553445973014255445053102080373432047070776049498373961779783110350733947265570939689335476457175007395667113151041295849316661735250718054271299876126839369119775264373574864269810073203394044632364982943470825757501965436160074059702381369084167399270661124536341603850294156944815604776567233689333342973194392278993206007501959225580027229004906459879596029702415766890136619736668843284187225361306549564001468434513322046692147441194657098937365418426628297394414763708833676720237911213603170893803078004624344772749916699507070734847053762350808953235260295589483498877590682393623494299150194600759268142441775354588610272622198486831564530202647168045601670287157415712565652475358267733434039909184349141742187514054746657122766560838760091886986619546722948557212886304770397857991626052149292342132893895767616373278120920434569803235804958191939399075036656631384392811946462160281950337629116985808300547627851709854048848422593693750947088074366496455458763681167339019902371881571223129749258968826179450305024755364795550980963842627917612133706243631523724511107031676014211149293830091220194910604471147472114445452286042716375623959415800813549579609646925329559180642718623487011209257398169624600739640533826949885200995152367156205040159785277034885303710065334169572392470577778169478039663130744275368093709143622518912458363545493853619410429405355528983581806643334708285321868877312237961114941810518379851647285839279409556667078732058122792990674974242895951255241395222563984886218303747974059727801635612908714145746258742677189323729284267608597431430413656391368087257768934293500881059723215885359203740873370261918317421637664996092238170263328893301270148859281118750065113342201150730994245233995075324075974866662150247461767090378648312452783010392130132279336083801964025845799310641730819197188710956005736278501830660256930515004150229721896593874872091974986449347873530791743030105282152424853858819127701940916354323552780865470787813052333261770639147289633681863630922002079418305373577919335265947773584849212621369351801456663182041711620454932301013730329108294297914266367988168532215825757899413942500678160246299233106630554044706318861467571727087793640750583742103080107721637130704774013130058931819131085021798373191460127893538621270101815564388320605746383802368898879564974356994172388867953109567923192389587314883594753511405358957384844892785527038823526622610962130454239823458782970344967464460949763368415096564247149893644400031071715970829671213219568478364076972762519831118700036036670354727465476457664278311861626590898040549517126013801714845633202625521980651721722759228460113093817350031604461200608098982259189612435458321886244912030419072706141896522671702962945655560892528681337058028014691221522838305568085991407207660150657652736318183420654016189897123769412704923485309705135545309264788835138302181296008126888286894503150693534356267254690995644103750019636285699820595245504852826507275553611572770261422680960156485061466151936600749252948995173334941275900575223815438605090880628101940342356110750227855643672629629565094968961842424964118482506434001176400008866177033607997737667932426870162195538615594346531571576863135626072725250498080872214290796319059490327438992747207010827977381321448280644922866320442560522648609458236318535307089560563206678628520468238069041276138295521456618927569414535071781110892126562602548807161756063106938584183163311227730881094933320707984759985342060607782038867582032536347829631935906637205146815748524149437189860154168801999748983506672614959465643780693777111975030728523595690705682687210992662154260134995590100961771025646200441398113978047133371491003396458029532414947252107586800312330083152749053552680749351030421487346721494673030857780467008169807891394948013297631987401921821202043079185618208854267645942317500869595526803163332906628296327606176341430308703959921315620107583521016733658909475341432813926084626658490029159593533702977444314722338304960886308395426618517544811800635152331949032649007819794395272946779237251955402360316182253580766603002096514148928747091493678518038143845584937947329064561529125362892297787914918014763176491884184016652745966751802873446734626078474791476829220324125256444469118919621538773145561551408535446301920704191873785010253474310974537404038965278387452622079935508832621794954834005283476425395063190223574526189825990594948217942208173159668840694735677795358814322490994880331303455313441795641888487155831692461777110373289137689717422563645414696135784311243124103465013744953759708053662734054386436199221749008098946204618647553592952483032878172102864447297382750475362679989223565902616934690911248173653155933541652001108128614667334299221331133100939987483324535843830228415104930077194109968284604549609352120720832690915733563021220467149196157356621773025952045678144775812558162106516167087393724695299443468262398603028556080816920445161232816677194610638730205044643039298962004859594451854505254708737725805386210311962204547300254543149817702127412179174031462415505579105345528610775178457379618505093159433504341810822566880614258204128510968320812083749704198266349500417339268296558743164874666214154789807504023169318827031558197807534307810120441351692492938781188199826804866128562231406651820484347501317542550206050117142568481470004157840071838627437944645576774750054837667411734212984051133333977475745169908306597112064063480375502233825524390674694165783345092807742468066313521043162006707798104548461969855900886073678185762262942273195028514188018007815743675279952439868823092146877497707282095966078688506504835560742822440100564293091138780825603028052032085810199353826881391768217909334357791590340273738781128980855120982067489781359594554119309202427540789964897569671832107184240090170558388680028174096028314680872298515069889133905955671326728120357389233129326157125277713401811060990126343489451873839821567056317548317763065001887116592658073005228652941486954876424677242722180620854169141486158755808729420705011117885386213745756047933809757467047915166887556271877579979455046207753553108529734512529366250546394606407844345967895582069104814849256343335978976092700969033151978065117699573035597312558565409800311467714856489892853002169335746190598724004052160801194780982638703793338397428224726493504203888726182996242971877002292552757825113035473547770214829281041486194957686892104036277755406859733179329687834905546440855645367370554031491835283614844288809065019074849558269255510246492671716005388450856653634470385165131656657459722384202903038306812434581871435509594937396440572045011920187768500611072010934788999489249001055963034409607085636707745206328677771425791706286391040620280098094769722254169751621750541495679450275148928670503873930358264251803051238281502916350637467187109226524763025960883905577779328221205310998264316526480302328990561579010689846022569123827317208068633043250113891775084948295379577597036232801620390738564775738297635416217991435052255535898449694915406948268598509931131205775056917198837305913703737176488196216343264131894517037276077365159712229935419833481788931739864812595853854750303826629098267655772860395327363504610106823041300110515528777449524217328271833681499730776765765965657953538625675281286588075419105326288515505589335198023094596065566139276310565896386732728278054986494997603870039004955386628565991728365975622514326949424259632217880923263517951830050411232304670809844726089153361977290804596462768335685149841017756398102332937888711268777194721760659710032614327286726198954107041954790858555815296324278848834064176965189348528219357815800178718103925328720683162080007410670632833796587628032638126765652834460895419182390104894922115911500107591128006452211742141767499665248320807500173830920591074032267640999220490075920314095786497967817130091776895060789947473441458179918601128648100092926802721757739841254336894982094923077466633680165845119250654422187137194436849607320650340019740339267366778106145045267860907522343405869965547114364376981325619820113992888794460510781297596017366718235557340561333416395263236931158267251441619322502287418070877022780725662368185403126536480019832388367755835744815933246432448155346830896093590738071183619321103707192705759754640581213312834316765603732999596428479795894612150887445291776891851112892011541177431602621320122968622642765542292469505599534750246816874203210171050789513350279003552838330623928170261907739721436895680687246293058587694018743182473639472099163360270424663068013415753512019031941481093307146778985506525887542856812930914712918146107131596329523673582658195478714355929458286279477150058560898850329812850380749657242332896522012728685983625009205653504610328628908808946760132766509965383326888784848445457178122644139547499588281980046046984532361339414210788147887908435830683028520345270341981702559831990145798698790487399746046722823632846789254316646744654347758165802550458486416468061799664135130676085764578610170625260424811651969603682382990412995491483088137354921158301475451618861876265442531287218809760475901174839265132546561398009601083677815744314877193161472202230662994973046281055468730432221652983921546221034125575881250463273316692480032181116307154189470896548731663603310482902426961049877209946390063363528950493524807860635690810437868294352028999904469712244674462697329542040568310994043390028059450060916187501168830867949872662846554561881742659732387836556988990500147165373357479195656852701669509208621708170769128966082961400144671349181478824606106745067066141450090762836413850936828815940466323866764522838124219028992814198377634859598883119551513042698289302602356809150253590165111647868394847931759312126920965333013025088128601367285090276541837364781254821071323525663282319243623943646368589533113380118050533746840557151036493519224687608175694151044805103330703996248024024017729066333151744392586439833942732850315347007731245297215671400484598470052727128125744332176202103353834636057172491698340129948182837178514052954297447363537554744057039055801999295601884566942402615476753216572975099397460835767489771673528707442597569646475417738437381501827114368805596247116277540997802292155925517677546375360231525216982620482221505414984633594629943216190418682443926826980609738834320626062750018307017219060167862175527678443072411885468909454527179795117333765745665923418204721685256448523657506175654299497488466401379355789230189156367322668712974707166399191289881517030652929821598771925664240809698200988108723232967543273678417799176120565716141295235351929461790777510110846901592979038127129969465470825916645346990863617820769033630888858847458735931582397684650962570773750497622173748214590205011050787006258382551281044346907784366286995002054480882576469634397813604729386437872229176999566292242160203962572608083853215414441013152708332559162871723310851272618824499952653955686422547442118737226409524342214144968446788669348379623090293062274827885857897106419734864763777870060840420179429261777166497395337824881564352248917844137812599093709714215182416492686458363471879768944685676583611740210617376102172360348631633902710511838590015191916029281051741760608080205176403241899506310666785792808509246178719598857800969812585922948523844119785768950288377277955586975606329905477122290099111978723908949466565030441658714287873320792783896621298723320631171143909244352739259387368289976765445945519247052086927719682999462708638079358947108531255783930583727856620517938622884750701035594081183249025431130501922143744764799399336969432686468049820348150232657315686156074390479226050103933158536754695008376881142679907383408891718262395703285521724107562788919555669268110525451749620685957306482942529365362701927834764405970141587844482948334872664726905015260667417207842002241298050997237758878297981883564766900737621866470115494662752521653303123778821956219014554297952646744084144293223766984916346124126303794622351564039621253799655915545388225832805600942593740833704213989699465301747748303085306038603476410629290994017835271604945644118614410723802600916365096668198596701094838817541717618460838932223538311312148789482373624711086350350636250257514876818254342208576628992303071277381715950648735513176137524088556496182827497307475676985535133808254653726822447991659544616647076209391120390954900904354925994418696967191883222792303946486901056852661390127025515862332340122520063140440117509532095279976485420637592280343680121696898415058945660002370494527317638962866074375520040350275205616273423987550386487094069372626542588745326596075455183687794796169033751611949168518900800775719027418866786579308762285606266863670894076630437238357173103760149375929586252811487868139202775464394495212443633053418992110394592142673460153996285134702513315177877765561977387617884136296691365897991116763484706345831887797124517251577336693827975871512269677352279032363751440540323935153667190593038346423892210049538293714327140642711718270648836838909999633016949343870545763859803144259234415547356098798832255880877127759292171175329362595381355088726905817137130206603806367070550602612787544559840661979619983775050539061402967514624334430381011081072514006561975607047942702022072345256469242751915039518912748881815400914487571094073553155956068041387553824533952025992626413457633390067536549867201833131986994184817560284451291929115868387689432352915439867755581991216143102152317334874466017983926489525626100538000533633581039169311526302151731033849706703267330606881174628664053691405277699308993139911581813411512675490553502759891504103383363442529848642479478999798707269602296819031742474246444981849869787384591960116003923412856689781473770423114563029416430702698566808315408419707849415299167789836549016032919999222974728177202187625472690297602931595829527928679041109820059880387230619365602203227328447080780186749960729913624474504267219131683755345328573278499692897848492045284482451056559773496391570138031184516006079934732733342665176207361564754097571719722899150261297275038220234187460796632985517164420949181894105313396027495225641761603649860057527010012254017163309945777782152654669893151784282694052694598020972984467839588708137452459762033379584490990399402389328389221055131093160452008092788482769035466972993824046242928710773177215240709943178969608790546681958034812381901016886328062990664298155296397344089333622442266743136408361674696774812638251282232405302617362732287410165283409752653522149133084597734632990318485054153000224736467242506282554487768631508321392009815908369959559600335817614487825721885497460635005815012264963716759030652762247637418839144998764279327782699257433413588086943725545981005022308636371883900043727881331200573181781953920709187957205290308258133558968091742962608267732208431164409228070175450900624667666430457505146823285060851552568425385809350734481073170142049877863744601495887110673045106370128151176334009757136922237852908842829340514505983534270451130324038399765450727470532413344075763436549806064739556347940726207584066991320218820433185963107292456913846917083016418421426732000831327160599943243355029366015914742277967779178589775706810951991115855421204587168776786896550334000286442043066211687267194435564702797662748542493571120350210630631473245270640776883649502375838533566965425893095009261363402762082781450728961610844990891730967102102365246992341891312638649092934392394003658310094542923228951939805888222946976950627835874210803671787114677239819782180458474870786437940312324639946618812529602130852804939190244044679347178369221326595619051938150447909200118905868147922523675965127113321059240167573360147267005671768414027613907582577849495240939081657519329626023811291057927840333634021432545860573462125972243234663949179193670900159483342791140383463943983144980871410431554545944748320383083210014686305172930715386198845479648669791500053843055065931679101114616157905729129819469345336298971920880141955466812307706294210069934861523854098326301191604706635655569926665804949881401582213539848278782884877225318600459989528734947205376791678423065578886839003124756525481121957603490828051152046116142364833509046005533751301248772526027401488460241197794786394662561316872812653526632738464371065605902858570926606246223707039135751581395399011316655251233547518554713348005264290071988642308411699006542190528407970322162805466521182851810471134124492610352953888239930660055321339869419375789907256100383088338791870333860573109746977507751518179548617572446782128476671607582081324027114370032588627540717571146134167298984732643889832353296594616390690703492256706745399985557480520024568594592501368898175017384752243432973796707217205368688199445132269712745819500514262534402051816078379500401090725690981725244313889039653582004734102399173795567131990638582260315004218806360276689404888599998615038217399582848575945961804662747033793133560595699431458768968337817937630410503641816710728701854733788851463320325351019440482666643369820742718904187525066124318537543192283635422073103850833745595738078773406568359194503374795306341945563285724419351312731336420504707129777312610502320093545117464877181264478976359301778937822329474046332256967295204862742589864506030209162243103924776447542546767545176119806861488035439452813072495225728203738231466059173608412416949837039798360448085223062135878196781539026423333117072567839695045881206476837884120678532413008838572872509600641843858999750195716117484063296909198728846274389736901187156534346174375921238626976347144613858008905278301651399993169118744538404516626498800778016361537009934590670015597836165453446168614155326122081001638445868788276109175930057220897837606540985622677697262660920368251168218600017070955056999091355640905865883400149805474743664679147019601811490287807406904471651987093705371311323783045758841390161317705065262826610121503459918596465941871955987685425149724352068926801803936734726902293666581044320640262533887093283024402103462092380877860077735798435911829853258749985303536186289925444502692203707949101872224481285023593319144438179216481975536546160457232996083905600274616784811313064462151810717560464697340657451250025186904946870667088334128658015459191876770761903595266476148308335347968221775095623835812041415678436169296389492508543955201637711821763237708575373343372992352820736548417620577222382215247688061479771829529342612400177924035660030000725086385581918567827357131000382237050329259834393084677720839766579830167977807199459556878313313978034630984801658482848397279250717567815163588635213968487362200193977368660605017983980400547617909922397621204801340208609410344209902890288101765755606623263163498055931102717563087552513733911663162730243852673882606735537097194567013433962965250344163780169341064599659311166839535186194869256097128306362927739887866086053828401894801346165666912141671576495983970236207538185431147949072354712008870981208008685096734648261081067817028070203030372908329391910364919045730537749675504742213060549632586212943262828359239133886835238245458515343117401455113038557603047207662696497867367058809727330473765527436673518340660510350539491991828315622328718380087897458343460215139222694019479205841449589709556094350332767516135598179264976470133453707893099039064313298957621374587080361927510867008401837596532144914642809789905374525761449553733949378150423658794063503433465588070308302304099244165019090660324180308136027973874579868873870296788221780014727397578883063155698068248405620054217105129450818001529560892112390374089049279904979046789764513785315342195740810037729187229461129314855711882086344011810871435428117179656854870331665494923679584318140323652160786543194575892027943505204873958337628614245471593375038017515112378542953273692044641245050797130379614763454575106008104298536774676606215551451762697656985934477880653684921475222111451534737168397015129346717905964427136728737392295185962234970943972450944514532350751655301323040033501154144427788516098278621286897382798137896812254916969975256837850489469408575995223157478314831641273325384122914630339101747129711708156500833678325648082279707230593887107501929032841562843494673386331647151745399011302670404768665044920722622298213718668904330782301570528320797931700507349372857583222136732120735238143476923550679579061856853000518690256641958770651829848425916097658476075141663549808693690701331786249336387790672281462335808197204438423639593014043439792623723332469581391488109843026827160088116190439519210540534569052835386536036066867472639039640538929631565445933845956818478270794786275322967725586315392450182695951983845849253552368785674812679286962511673826159284386227329147439966833176812541059359867367042367619648331431106789892860675038058270706512064545068121921544736073066631013319104589202476024992533464168667323995046332165216126395126840366420438928703256667026131719200175797521574095359476640641504534433221186787220004339179651100828993291360682799816494820288327814117012371083058982094033850532563071072326808761886894539527918287062584485510595168568406038137483368805771984244503743487548432301044195173858937496653436511601401717339128976010285236872835849825949875778362178929421745830346081661761376567293346166571311421500905470387200576587835966108632794757030350408926080540885041450070669734431727033618423777275785165633225313848041266315431062033960199662076412119167527824120467912122723881787715961453707074032583271625953184117997822976274407094483217251470650013692686105957227010788511859167028622256501907483927397521729285608310064433499526036974038489743780628576380637579722991318410379243019108381451424082291924664697331321409155951414724336207210260370995890105534569604877766897418953994406374935681453513045442223737393788683641483392557226188686059607718234688587701407282570604329481963201885344256240854696564524625364383582975222719411541633986871699426840670409242939236676112661870854625700350366918946057973433998474104286585910649035987726985615850056287380885169669763899429374094074416899734543270141417394551388920207009431373176854940082418339849505184071858811328763954941735147385761960560157364540130813272174007456955796878891612745727912082958491601142431394645214484351370113474316614655517075084598594652977090217641475922015775269496362383071956121896997482271212473651658798230065190919340958930429415515384704696812174918675424948550382887947296247062107688573425550626712101636166546411491739242614256298608727612540568592544061150090015203798292482920471582827651656758017853652327148754788931194826797224817723386095260017867467060991495190899245828179379586710916981434276762418046479917539735414172930495463446008578674329320636440868450410522659948142403015248723381787128956363552973819667542069578923814040981617195485775474544732790255408943664301813579976288981412525865319933740831135785246215648988368362749556872203404797103175131828571201687949027311397692603101945296096974247563677027464206697217202484356794939901768568537775122945982176589798268928648564551844164626024397668287525649292846565080933140155289038751537907686768843087942605511532203638649904492845093198806095793464168681628057652289251998589031524201581145263452543328502612106176037650157402826021088255468476113267197743725982712211881399620612563503674306567265470939264003734405330595620402894544615286178489082991893788768204022606134449170229367959770979658083918231139473235501449458709261141077738341724902347898865971978809574485492789779379235700550305868198637083094968544132218813957601492880386173828860475060663176043419193532036061457615362771512985720555130928297198764316468038524311184481614880245135364000849424078846939620810630507016955691335401870870046957434848634681210083850430341534238221951114378165401703172883245517048684922443886563425234152250722197190129811269083969049872855253534431877664095970162660261072681943149430252469503039669190027241266187091707862058861391296922751076650751844148370439943979752146957185323143948151950711422285864359059000825227670461525622254302734631556838285655861847574345327326758460962345652839396077574718866142741722026211723966537704772661042908508335946449314740826530789363575033171340001253597743039373992599565104892613665740739284057797371452697571321462560859617969784104366507599193671126735640100378800429387944008848856506397627861357254872413597730785544074511377566683906510989241040085119372983417054900134184286223083572902270205150349491788881654758856974333197070335955358334935426811454892423222116891472002147895007248064063037086848815991274212235076131503716880812022009112506263850390703068946369307181028171353424274126304854995667840935307601474480900522858779691332891264800532894292990351633259618143940555140165841934624163459020972156578315118555659047863541181798524530928473225698932969773506859347254594036230390877135682465585337118669516265351635692607254939514116908441245537353297934596791091160532820906355582590875028661953652615934810076303654407341581794448814046122007337627104769081232916436339638119000278389215314411580768829744963475084459641856031931919578550981408736273267725034406166825901216680701086878258897845128904330229413834550209063448053472030452014329713663778893052176079388898852479781474884237838796725863098104580527750619726452998661678469241386352827261646537578362300178391849968443988854023446877474452389249361265378975595607584509019347144101364766570312493244566102677487611708168249256212145748644715563382962420702445376003726073287973890385194381831460924898935994378192052567364166044023360863101306506512261027166590610256115937299278182311003475042336820067621182319654787463451318234261159289920483181704977731664482467637466783653373474320114224430985483577562536990172039956860458729016440747116396205082615667196837860346386257715067577850008718188244641716558844632919908860407659681005438332546463967225417071917233950005756640657819074843175251842324444487526037027032130452629437832470063212312449530703818860024666147751429853478983230067272303392289896822373108941766331899313358466753513429830767517670346217756411955053640040879966466211536701602950997360019220234521273541807464150229263757954950930863129156586294014970181344798770575777945169278294517177459943133523550418724392046895914943719001793218941415643818329402827165705069213763582208827478901084702718982805387782250374987524369305773890025744056265527436497211079243067043657687861629124088214717756006109892220851051602523611367095392382680197289318916359492311711518049761025413659103548083449647354350240579357136096301022151626220063020220319356691081575600910064090443470682848258065426673813612739867792285397272231601807417059302365900146842922376018894629667546526680396200309769137932820070485571841320256749983218439451294816553863556480574702588254776690731200100829679032298396495492593919258013909785844078133062672900932877547023955702543337412164491477283174651422622119391102079743438638883007806830320044928020358800493988428987696921039951126282035454354551791204572089131628896109711062922926351272694164627895259880709011291138047395551372446330097092431385914676225886057723716271868039958520512524761580365086291870906591067590504811352750626373259548628451504727377607739052914038132057382425977049848306747378275260476561961004151739271353562804586070472288602056793070066989580447850106875344993505737109839387053413386462501826523134790848594899256233521300800221490627556752863576591787168951674127620888022390353224469138417432068979144878345580422193350744489246495873796336182671467127360364814093120802358331488100917234720681701126577814919043460083056020359023127194218647119037472837531865310904269610552545016006144606165740600421981443775920621375981526096333968966684239595086585203659291541738574828461915618025445144020716456702474630789491882182735189173044383704088160086238205457253062309443696159512196607351740567839074770692773474914925527111315911518154971157110485210702931896743049115509782625806450515269411234048596126531301666878306853840105655819624992583954985745474815252074250631430148352660402276406980129092283589822485384473116488302168188109766799062774150002967555091542523689452978697532503872440816799440649356061181544719436169432945078556803948509147692396300191392180896361447980658454776852125477118514691835706905462984530347148063586553959412778894161798343867092099615423281924749665124326391041717079839844371313436573278083678021486666741789106316944908701430470747061550974484594355523806641110484665842803522687770552030522388254796854288450186656487120606886126560739972093098757808982319735453174864873285293171461495122659433688507019890380080986563983736954226873724084432764441329328364678563804162607084753468377195489451429264770861373966887015405134446031576035577390265018915491570688320936579593663565434033937186126711582647409205632097758761171933891577525919064598784642025921807683879593928013558497078011447912954120729915753716002074205220400135497724678920487618748470685844629381209007851874942633810306238046290469292602475769321383014402806966140576452390149135573154836534309538225126711158343022040907535848542696101727120054344714189039646118091120090920632696774416266960698418471943042628793705769185288841169792824458354086532187824604086292527977606874221871686908787488371035164725896740813167703822005137649604370415915491760089258577342195283004594302294638025126358980180194839020684327665850614926141784711564384435856026913486806394786008204934011192563571271759653385989669381557413774406109815873978938251434312864100512113540355624171120074187841144758908722097186590587269235664814453368963101713256698198604588562055471596117439528410617699461666213093305080211777857694641973245239003535403668525373262536841000058975059270457861662643865191597711811985012867841444978166754169851517371843637666898885230844251833934215126070163939297000281291681143502954439428888548619034672333603381936067200294010383548833930477066457895054526298453835544609888670799479084894812653014197579133420404227415549778780000071534080214283399737597178312517053938574858963061329815352501187134362287867406417296023422590267518040434304457984982225297730993238492152563311932306234077909309955345628577484848822239187474647477604474711672095780963820246311695516098308802384092133143895585600882658299366260853567878335357039794909992271162554253905110264711908491898869268017151611872780865955622218325219571789651708262374540623567861869376161625958128101398164313869823469886607461361989833469271136621591482918442836106839672266094106231296078874216917820604677933065771390071764587059401409445055775519915301745148459672486813908774292567947238512855549757128230667155088944797564842279879451947546051519374089756740419362269172727699879821227965004731273945255629633697979245467923480208464526121670852598133407873687750429421098339443202226034987800821531854082853363518057037397705243309148887928832092612577667781002160127064197847917553122477807014102925534267496330862536522071615199175997492722353109049720054070758798760986638682090476311440495663680084221404306252014730883794370877089635063055882342624955872423300133277637361904074731333742875958063244223085688704547433719515866848837843990782957017182956674543433485396576526386324445485949842331677900614847865226810278323847652417185602653012254629909883406383989118410705175276323003485048185885864730940109273722210606429936635059041231712712905356413056542600638127786840143143342790070124557234615022629075117957607664915374346920947602020829359578063305814007896523463266380999836395346938099208142268549674804063623492761065255309921277254267372624141293600645322113185075711017707303969201855605492514322683555777908150186513031128795996276760633327959850733769521773357835101035723302071270080565693175893869718066178160826669009923624519897354450370800559606603782540943218760211581921497322100503963074092376679148582215592981266936205000543629776368765901018327200778080489422499489039938487603498755848651983018462689683969850790440239471632626239978409024701649888669755832337001472867446907548469975939858914951732726883737486909191882748932182023758329623561786182534512679529832423050693592153332520674212725418095472955515073247667442650876536578383919963870578787645348349467398796320123033791715744537029676361482174580363273802639929345955420467039552223310022956052376280399025341586557940238054619221531634434125511399760750443388912510594825820708029746255254907601290384399990428887153429524545822836154172247710688110960671435361423417636414623620567592001662903913971876177662279005784243169387002729094839464576923543642724397595711673856595652815955101820438105803210820023220054078484990978679565737280193891563771428009703298839341200148733621782072291551227279737633626398916849211221616110376360275347957329631968086557128312085244602555681269378059514946295806823770177220111873063538234591861790580647184186629008415571019529273260433499260216698644559639020578469723007767888316754345513878155998493361057355258581923610876064670085205934094398228453419022062668973143514193305198803822396720416092683560757078766711981924829718208107764021424237698077797738397867006243673175475852477792005701861446805124428740680936632303260039697689396672166741105843792918664748819251512142305538460421953195907663543620727636600866485552866743205589372208683559563339245832636908959788627474129109963358174252292093100177710302676570157518193796222046695284426991602767448927839118843235232495663523503271037227952640406597366805110905763347015108832275946534941513090221015275264986170573837491122210751621968148189226904020890749705049975794568674455775376760251060422507902103912401111049418928464214513712956913787361176403670363978301926032189677870504562840232307918029734758282454681589072373064380826025509256034797471207310229919629260369233981841506264626245602576838059723503870204639912138725476438874305247393690402698820907258793781874302145016391472897767771791555809819452035139126636008960619985841190133827276476384796467786734693125794481727403330819107316789034231637830582933032940833968008500410423279193187494664361642444626115665550238666778312846254256249385051363001902307038259990907765643205566752760985202806507466900721871722381516381663325880214689550842919630319913480529850790295363811908108295453315824484440461565660396563883447154778864780390823623944499095039382676255776069012420579595883814153226032278965659405281778481147940220685868869476769850496992203366506221060339713279979773640154210844644879120061547750237247199793801826377657947637712201330294529674822583358160743351116208886052045541576801880275735389611380650059791492393309050017237846859208369230755819845464083928337496952686464301987333198264085490501471816390402897733941538123829300851900448644280788865085423323220500868187060172157794031512368386354840133696383399104844995331728909387950705017504063074422878137543680399194820712993684477565559816562552850057442287065279103344092968427004973214013431996540583294950035484098620885155254282637985802780477709435428968042564316078992188849512377089281407837904813796278337707637085984409848335519171173840928086509603655932328402602221014974802880078729652319804291075524373307782977710112851345266846505194799323020003056339492607316075161738626734438107974176667106974945317942540451273357696495618675495533669890383735795433342033550548704542262384198235877983264239063670792867095632959758387415074301235870375471799256797847514392289160292459801332118524871524897098207532987387579653577732225206022592869618344444665564388111202453682917121905840624512285603346480598519411792027286595012272601580936626526505192238033559898126852585586396422822726386362608401636610163609191252169601950703622816815461320997510131975584717217580869766360974256523939363645044766101712803041320559416980998489823315653310717709658763993503752311563466217358906484911632180135285573827832644830346514462280917232050608759052043363817370903808671716673896561296570379964144478568044682781656552802048553214555224287232394724236162804550383268815956934331611423151971354593265238861707960743690736665166834015096217228316839549184104917381332796318296192875017714954927886608274512245771295401650680936731829100037454147705925848097257884714406971552623836005873864011054398808878033450722733944473132777269774203930543564814402355482595025895860114098009124455885701347983971256426918480257142446699076703850418416004057952349132744963664648032900183732357169748378497235896161960930954339798889769722481629739657475723877587286349640195498335600953732080362623911943785805856481120299222072896583563587726343701585953029730817153739206195287724130361565149547133668305348484621599712308020276151199302837954886880301704260985016658806088086488761266950349384548178569451575211130416984958485914316559140269534496930885328385555252862337042940952168108616302414033110281059132354436726878806948085249977602858444028477545214741256903224574023204858823889238534283001274594992199136451880788707627383814059802618024366934353335152894861509706766271464585892774932388093171249122258103042450361078858522404224638178354566033556603501290700076972251138484700519952362339359004242198192045733443175759965170016165410397483619646624890502147156492664846756212065584309408022388398993330533946868418566414753521946675428033521220145990867127406470042662990698525469401389397287321150785251674462828932657715561055489741274733273060275834917738108303145610503452104450240447651042285667565851241103629478857913283231301120847450027871163968851570697840257319597853434418377793227126891485941804458092773912442384047247247645796564282142887642637424447145837933923236147376110613654650856010223795693368956810613957323695651661262216996214750858611418326155363526437444059179728005424252921275542780585048432263359526944991612751125802891552999483058878945677388812581005340926772914519130539577686576532025840140299465751939954677962489046410654402094554519487275975150797270651637476070090303449761040648046291085472640098782578526864377364676181338207136926320116196660621904933266124396286361674543787751058761352491333032973143148579171550248332586067628829454400438179368998546961818666785784493588922143079711857133318408196837653944056101162780594439672155412789968562412964164469948670829016199741149850496505406028307403561900424287170792875942756732261935449505158990120279023592613682876315975867923164678262354797937750083017788878753086560091512337454634652474355864503637102407979012679330625088301429229086346300669443331198353996785779415280798002326392837550540708014473787110594611442848989191369156909079808675713292362020903440099273415712942763732891507605978368973148292023551684269613414048300040073973756122919441576313547789784463792715854355849434313717145133391083602934586043599243237079109319359846161222156499734558496692974113176861513234632011483281496925454031750717025272119540042375726186999514550659335990691852063656497288641820076517981800914769862958552246853323279772630311486395644376549419006888961200101080525290208000201577488413811923835696398946499757736294163395655132805421719681660066400182331150916829487940680395215533877509311962598144671420936300899547755698034571623307217293033707649125596387868488255177484741042410690733610027112298927865161532106235370709551314361313514094605134321933338144821966632436340694155220155926044370406327639116309342150516456877152423961143895209139678074445142134333454241924021566238208619555828276026835122707713301598091876490636082259951861914855143256367714833464657429587122099775062861734749519044515631945181153360844434602731181293972851558866740427223336927997215078390265736555273121326397671897367825386213777434755022225640375531809796455558326065982618531747738364780115033530032543453383838039890768697595943188951913276719643445754596862238622146402963214458668292426735537528366218719888718859640431327814975922367609437137461913583113189796981996842964298575582626889823131914088742104041802848764975883666377064887089755846476394210430149231459289078042886791116519601410148885085939544233326013696478463785386565396486888195423115060567679385905141720027688983296397767622182188702981896809536148266110832065972326075225783615012590917595124613176578537057710850782358101691133152605621840812451096736475473164841119081327498155153986158441402084080595965075995898024511037779159556434345582751209819326188672500714580703409277975369304289876068492487830012611005351005356382740452492839267432292549129696349784352965759087592747589912229199000585274449337799081376541922490821231622118118788146025020837591799101439390037460720910217600719879472767951077583337501117877923026527419151718175815717810616026719821356348943465906708311200988349764484075966480593479033115129783390200726770165000971901624557276471129592244659628080738709152732560656368440135522134641718631407417532383376859348594947131039320402239802828661664855896301048445252693527598997638482430453115481908356635161326293133861447447122918283108773962941642932730901868855763422003636344134454020812211027609660444646499483654688469604695906273361725985335196872916223328260475700826268941536956101770331992423247749369496632032938375443871565942927532870619486485129637987767320753235324385116535052918597661840509538211602063424871830274615304507972007349474330638402088235595223133424110860968370099083684307111029582050466875953176848473898662829557275641809824472142347550786961463109182076123714452461774757243269662676985141676657253108578525135881781162234839485158692166002852752967550021840301227013522676392873530675212360149362857390722486259667641054170255511241432840935654656417221111749385948147915263430487317268131216309415916076412179846125157697100592710614858789050540320409854122085033689953221609332240900820734436739064928959816896782693741063581707942736758583620288309822637376413615958907926500772657268362911411562673068464177774101811223801905152611660233318939070666709363983054594245170780638513082222587934477136531932231748130635733543822375361460260690285861196647763545543730711476991256956170285682963575391977761543643494860221184755767361569725607423533185089299952425197033501785055472203893012000220367214755616103351992368466600031834817457758615548359171735602506479405834431467519904862247424254738534421990860173009392785500460350426528009283897626493981844663198368641616811512921801991573972904050718555906727519585612840998309671501479135006911196510968213106120426230468976672662008496922727419727791362842052541935020728450498212107085695905199105372853326041183460151522388973565537661332784806299427270172993071034338343555480094023636740938134699303331876551730567029474278350403003075280843112689536405060085579312559768230727341633905310077967096748651210897083149890700170914155014264718217226430242863814185920913088123503046964160028924049239237491005880929875754281739914477840557247109365222182639834873556821210460786477698927911485257943680581390076881475953178270409803824188215878351075762360559638239370198156002510389979085859681694762643670186595347942243420825343859440111026079065607034169389597909174338110445713527724732448071510106529433688129871119847635003098742442908969241192303018001218652480794220707342013446231534492509883837280689450227461711644076307806132408325422937448525547635563154232698941135347360453795418172353714575498612597077933910690922703982889615774326555748163377260181087081236141944213678695624808466310735494629624593021647568478327072888401331156949383241357637525595969709221107519536276964054715942168164580580969936994638571060025169624831571206887974190907439407479265031296153994833138019054500344171497095023213026648321633799818329211910906504678893718882269038685143888988702982070013401481469075983901707618174871266332247237425415772011674511419877899875780919605911927646959607157032243935375347343502887410794544025406341063052734917631771828015837240282646787981058119972846066447817278429613650112452417810871357030002678455204150213307128183713176919327543773580991336237863652818863871712328599459477481502517053260736572996732327049606178463786756187007126452627510515069978450167291974074722248309164359877686925053608036836012520372759410428598575865196262782211127340312353408655304629542518635721784347779470407537271469464071945809461347339698510498074520173800924678182584424839250147523624309138900744753937410390258578348203939508350873116431803679210204423970743156086203467610174848536861708959008753568360914142330162171653893804735499433680834267701573268972045492449216659406169553691354727456069831324945158914994143809547331482262291237348626308372773404633527912309423532461912433048661419709869506271976878675840942990079155879169744439321334682784321438967641541219917766018161767592716976241410522842321174255596617744571132382316524128237442967470065281745180012619914602095007205000154792843757146893251726525218897436656752029652182203961938503476309489591662006775613584225355984252328233760738084862825662237409365852752230226703138870034238892274582538004552015305331076943950329013093232608976905337908482626663959204377843530020614528245793071146478284707777951042936350178117381815352474890738081677084969651796009274622023397591462064404808778677439384035533487011379189004344377798145659570011902063887759827460139168607975369387365220380986215431967990801009000279815814081532219546970836385323512772359720279381444073511364794797464423860544558134838900261369077137531730466322267645716122518540545941366656242976425023611780785399080920540183926396361437488087419084121641691371771354265477232239876677421170272703504776212235848831150515889900534983999470133097758768710471139786516653324726887543666562375852128591826641575797317767008221700316342939215650398490174459939342590950160235472783332910243829798813519781593392413630067429156611489354047568787040808647569091444097791007808525442773687459113329051457171181774685664955639718499928580530842603002065747633427126066609374000435526466221543103993852020389553004566156811305921989147193554985289858861528925394929609710201302516062808827104072092085760758304268850604250405768820926036845718822019715609018020192396458693551327517076009614244217153347090645920524566609826756106467218409404021374798527719389605540396583427287061887169305113089115722857917658819532641586536112477094309188425220246971296705888516741502804476729718132057805670862328763163132786152875005001702693404604651329470972222209163239058915869066163159031742787250522629320540358784089051594731709577936268805388254762529595904168367737210699942267182733419329106459662554129538514970898691530997372243553619852683138607805489347715753917790749154484252667192196480269744861778020886430313113764839228587322860933423598441526973180648835543162175199266988102724678582654366299168307640758194445154676849482592473329931426793984011172371274715830128522995351083707485624157763461172318137292223892263380569322789273538704484013882446352331011027640216735154416271980961176711419015226547912868748577343083995975049984526232249721042624510108555764706947396300847419796395583018195537099129819471892033461314283506186372030649697055611018291582651690113522147817736096850886135016926028271009319494336864635494897497836296967733623711027074816068919612091880968837703611080134649163515656359823494761087617841471766532966365041457328116307733352919891492103511330410136965011050736816653519447350093402546580351870306736079292576847789186325800373716466040150762960759380064645807254767330394850888606925564948473317434889289784114813268215398216187342772023622143066014378202234353648310564520583295208780944249977760419499174421891496537287730754911515255898761541981061563973557969887938623272264585184737984033988478434703822112258103334550216972480929590420093754658216020266720181190176128317852276661963951194128507995400623557038192489292436061005006186504021969185258272227597043300242566023677408605000885366521431224917915361550797778177636863412023227772955796591621089491974462163935448443326396466479210295889878057278753518528047897915578507197738889421700663966638262098530146445335790306630396364802252229977987223902750524849815914773062602888711144459354500495310671357386723280181710433596558238217036655850192837201201207813186480522189222499222751373352089433399921325511916415714162771066826067088775615886414297791767092348695408336213553817350445005799627161046941335675410200224768860240168607537792166932723148966599806082193389208900093601682847049947641979280843014823735813573525898778906122856785155063549054626043640180848712467745729400515943285738855389071845147935921946959874770095006259557236125739576895800196969636727423415051105378797728433566160441778429418575022558815132434789227691134347870792100898319503713896158448322015552410588813333342081433658562937501017627887743763646546081303686630572823295888612162662427748951701664797916375383209699708786723922081728611650245535277427094765080489618428838827290925514437158954600877162046824527386619611883436949772775486092242073794161592235719746123343934983591708224073712928246441381468392640436039387730624178319960957576041092754873199934496727016254731228265683560971170447752926956063976659134649706376348887184828716929401048363978400160124502106923916131511761714326290664578774214853610180195774063495399890599176611744559982256564685824150407570071999030450717587642256255180445321873681243065565352547453499441012815263266166650070647239535451555646175541831499341193562646162271956364726801425373758453858484502820288514439813214203929271347752311499335997130437037824918901961380066454690434253393066458540697921980504018095232492910657195963844957942242507006587002297589172201092444248666768767146666767463765107247759672395261513285184434418043455274067412283621128972522501350870667589435508081834247100967440969196121260339408497059987433449251179262279573234392930605193728414447811616174155304130524848385896588996393217861211255164262763020544091588841015762962594451827117219989638145175364292230809290218030817305514063205960912592118329859530603667876447699441965718770311899737568571232415367465449010392138971637761680276022910553533201094770372852885580942942198047276282229768336337289310192342556438987775824595408307954529366273825031297675478129317627446049312215453951164763163676255277505414327063437062178816085876345033084322416841000910787070606669008733677817724190310043484475177105177656150787567196687452451445130617123126775568668210136983012321510546537530784140446141631933209696244926425109979284860454725304947522747797986674644067206285732773743740373351049062316656237084925150901794135787468883594373812131561243680155333022907331380454082437632771503749658221821951218640641652970542372360174850603243069678404167420942951695932390501510801061487718940011242042235640281288087484815704656559979158480988929416167602135400378702366563404884432674144420384592963675829354675006140680630239759285376315185319070159858147777073946041589077393017434170488034153794780291375156231665319860588631666137913397340795143860350014412426295783602461092722453703229706711086173553707253437420044534869022157122218277350705249613407493935973352741089209581321469465298410343358127146032549093788624944244580785540066140650525955859153318146000118678842555185035653448287866017123758599726654763133350551912514007671129706561473365856611246168839474588747550668702900982688502584390237264240031122465812308012151008724984380210196551593302454653404597618488891475163795910977741004834818519212714164354840433528028852222199054183250126018578530023106736793965406920179462591468979938829507113956746269740521239864653407745544596310734103019246337165838099550856922166351608243302369546379745165001960998227816898722599194515673223548161684844838565820377486011526473164119344876368610679966194361083996139685246754384341992548411502693138094189080265381018087905846612500410713679513235098904561357545792264873857141729733103251147206139733694162772142952500363004499260806843910210401590375522036799081516258429995438561142955237656362008979946251717593506712201243745585267182473736410292203807883622100428809324222850036864851666943767616959780364283891598139145180474758572630328264727017332486206705557455044285794257393079322033866297769117447970708647051125637284501332836713236885079330506922603379697638533090259815586063430475847407758940293628236478534906301593574914401213907962759596127258628697140684263338897744659037171081433474281907687186251436118213927937894271712079613163247737536695586474839261474089805851246946060416161755758319923374123893217390268112347566711154520053188788114273298453188147602638086983134303440162044889652586624476246058985967661362846796069167949875733920917018718053575363223347211676972471547998079106969707367799531955171341730938325161308778631616558105295710872135770474191950714316958507122587693696069873848027630645207731541620339882584557989574235037794749129680747068737282192406819268513880908929503504440475534275516413433565451576754161299397677401482407859837750707772201006851711219411716494334823697785168610148031659741794959891904501357425839122664105593807835019997314901773380298872847023701901387284765729594978830212799155108555340499479194410518999618602824984553838109408800426830461504650995956880562926444034489347484533606700323444422014937473363824650606699540447529404160161767631207803844235566112387726048253150418731056558591323114058102930991827700707596775135502477203191469199481804695586562574537007317446093644560821112000384136680585272725346257741048201630498588896649538493324657312248824119391162203303763041366800513487268648574542391841075466280244450346487936392898708006753670491106438640213333881560262563293308701898472863692894962716201702425629695961861595620432157942194836252457124649965123072492549846445422090298914277802256000833974846421701666298276578124271263475005113455025288650678976437612424819171076131660725744896339834154482539083387174777549659480702845760142577574120117161938696400314449809107879630851246023968806249993588294459876808538352546158495580302510818925102691779939130070934604222692283877469634522935679858793064090445717106434520638005274371930069321942253829061007064246290731456187322058866108056157552050652754830796842805292937127972739309867287315472808064428082687075027323217480142399728032374805619324874740142699874960447952951418709098179903106019601336073123446845716771811090475050970850769573887666850958356739485371178187920877041035574871952591788464860067777853155363651153214752971183850257540867642903762727860983834939926264166010228170545330809077134592139389203647124284065208573046823232416952967273123866637066130404342315736243999804419401163526203260489412249421867261407764684777635824184374119812885493535357221380030095607315057410229911881687456681837545955884625004517120009383142864010899379816473278863665486531462911077573313934575083316978561040778623670107758679784164480274874962702190557861086550600069453502861803689498809568786095780472079132860148734177807762571277995668159128271912332994814115890927146910638556764120144293371928956513722434624244325957293115753128435422075445533771226718474149633832512511232835133953909886318849023442721524120974390395113930975007908987713886971870567094745237184718277911700184894911266799497585568751226384011878888073185269015564167483434603268378128408618876818644093743311938732427489810601728008709699332075236667152865806691926992929011755026151226860305286591543795155148863081793629076546450664287276378414597524642921776756349998439101385888535777852937297198516415377353095527826889207041804862959949306064280428944539381654016546003029043308894016193482772390622332294682677455950783235415701608009780379253995478615293640730707030116305119921572099395363246255634185016799713385997777213831620065994296249760477920906617423028039124435653195576385571861595547245710452686873427623214488966730414133149280792363711562427784037298292964180091305681447101740563466829780613153025020462892798839857865511229653235276413554653319588364354713058340117777058231478375897951527464228764382987104327512216664294059615795653613996223082496787815887316644361865902825671771257929706100267029035307825115319405750104117357572475121718371169042396919785031279501057984466443689684267971859497081974670204837711599389831144510328350797297046276020428449186278225352410038251856351798239693047918583814192199965406978932745230248114090170051476194621100178931349905130241315092877210937637295127461907020153335792627741647730402221161370165846740251753449602356233612510584179694975873500807676689056212406100507417901929622311211752087215848120299243708172177286151593377982371156771642689180948272772969008260575061558772201518020035361733227643358979207951837567659241002268451051972984948173707232456283555350408575658091053889594035227470770856590886254571956962573155259620616401025647653042848092096612909992600644215376578394719963203589185171085317842149500118197266055375975172055081744056677627512273688957057912606397485149533057827784315267756188621055034408070185455185350722707115455840860851632545330030656013807237768762305950210419068411937604678438014155451269709002844990981421554514089038048693667013013261999608534059535168549739829868024306178395185065103271196059032942436383694110750547197441708453307521471455638114659759953384368556761491203704386865033403625708917382946632949395306080810930767406390883843057015973796358320013743641757998435146879134425294274436885776729444102461173003721401358770930159072647326377262905255426131934104050648772634845415574166756669919037972612160879518033521725540651899001050891139978659338133394016916115471345079804198472655390237926573483035799635041866870075490335186063446641260865137113642784543366923171934492267568827422004792989666279168747382258686729184870039292884328368571245376212533932545018182682043804814277523273311722873851857449232544290871868092660120138280859535024040553167417965697514531315986733296898580213200621527346380080132364587552206069111397190541154277575587625161197456412760613210305139317496310600987628232960609273949139494877298208851915537597212433337502843352683650639042644088118826907317858403898031716667384151639287618599496044462064751957832843955476793925887228651216912152162231465653854487652019622007209201599222659902725741912840674889587694048105282843467960046526996949985901421320555819340437551902580398373621723789109793515931596091380738939281704773179199108019443820680760240892193049802459333279390328064068800368468567865343758734128467210867179413794348849505776872211454342579856137989536724855705190559692888798432072013452898537149240972733008246136288899438314135196183645066093096107564859210743094818818403131617129939970191400006584549392200577116891783729016369204493741934594260526914001476813093457737756643713657156596147145570428837338254577257555569903438945888569596192889573674187579360322242001130412711289841334092798398177547620811899440404387924352765339784603643606368048012950631543531450323818169230382319406882134371525559618238420064611695634567730431596319951959363674914292913738984420228253376714660562555847702181622391449314413685827750320848051879245882600224618901059276945479221561529138948680126919396817254414627756630853452006407179858576644140543514901278724540017444771758625956682469610757053737088081206563274996242687250181572455148048494772200772372110643861237847653344062904840362549914065018627247387414761975090918751280583469332644842456877997792069075600230765961863587956125683092399522555540001284062816498578685119796216416781563585149991707269842349493873558966654470387036532638083929794845903872322901353862990833243811385311922641760332238352933675361042287176346526725925951779070608535871300112922661019900690166283807386763470302112275203580283894196610124452928971911590860793370809609786873713928769513816006111495929848977558577045365866628290277212238423032008590153442592322907474541532752075612449058327402006798919149186933463886546486794346098062481836115638635106851460395970185127027827082355875748274889613646509519840569189192472858124737524439375497460510322009674358833164746533274033330226825197024477843235842144110863991123511354234264634243386985428013279791110099400627204515490654715971282657094759752401724066476440913806777703801853200260946425494077369014673319677324310426832268789536133565259073015361161080939237556712702136216054763209297233761007566037422542818151731538876283817525308860665278642382920423263344784992826418380406452754461179330959333406397374509181688303324719921567842489559889659432384227339925007883286429725837349648284164781153384575149512043925385047160083966583346399623488101354832504814983449157105539751818326808166518855760298575096244481198742425836575770559764531378551016913813779290910961117694654942975775538893808208414090980042212681407063288938880228502711086190185979823230189133525735561815535930557007005594170077305343084541187047412976689431697393221048346414703307657000096685182048719281312911820358446992599307587020176206095904878523031688419943676965536099095777056560193554350095791522125074731684810093752907107679655947413623378398332365144011292702752185282395682986821876492014238125392522220630630503340492437780356197923398268348721367071961040861699607757994992719672155022173392442224527450611274843859604358781298745020530935357599186635785126809238747641470657794890349170146874521577946547382886467324266594626955157579690064891609669708077815966512883970794702831935415986741553345060278771633057862970830941389611041247821467809455341978208364231986765843462399971501044044835910632860988815376518589797611830785602189829595286116977154175712072834594537820541021550537514467719688791882734774388723310325508416223490900662816494080093196018401449724477776928082590464937760722941235013208557649950422648276867824863937653028530646594118131453738492954268021374780017806595423081373694606799873799905744836103731434544021440383927143291112240015101552423481453046931611513077013553545789181439638294271667201483603837726898799603048880071503661286838350917159184678132261886151609586720743009435596872413302023964877376128908414743338353725551163151430541746776746041669618133122437728564046636376696110220475945230265393419402305251127111262710780064953564219840403647969625116265368766518452292085110062786111733450678126966791353297600154352785182384700976062221415302274813749197046663313343618619154396313046585922413710256250237729973525691498881711675509736129953323185171117840136113664009720246797834019019436707940546211003159450853263267370262742169266064271530389676587211567408495876738055460130977709512497727417827826022978909797019368636457534505300743873969284029639522680301891526460902194994332114316317031419294234518378960797320759720820085913840123222863703776518328623536667080872722427814742468090869768682721835735740256583027834269143744334751408975433750125654038729392692960595582338497247628652624866959740928300789799446852556253218807785059191661939807869715644449606643988856596226719461473479978670151538388489486929796611120273535554739122220979551662730719118226336782267826300030702736127544756814462240672623603770271431661138086005994548220713310841919217519005673250800560707205761431873308477247479794968801665852577871077872107097443035932318435547487134260432197596349093334340426507125513336551820873491198035925642920984104183393865604625871331781619302016847176992500259298823325633096959844888022488045815448923951375774482041744779387882071899104779445161927632170486246832709780008194920920367685413439702324178880593555015336827672198573113341819886769384517033743858470149909078062061724398651379021258755532990320259271652222749368187393205580820079246316423100809726161287794197782009564993832582011205009744083502292048035726983651879693787002482014664355780118488353105586071922875339319019142797224467567844500804951412929659493925815764420800505891968298960413804965077985408943308717716114125563144174208864183308669190428752145458738175410542965627950321408139783493394461944766880198482709367197753822092988589494227466140126969734429362488654081761141305862299475496260651722245389474288529719571078996818905103331749348033358784441255589524580397702473230913492423309804360627723230082672092034533213619925397632216117023114605812826432011065488751680634967288740041784293798070749584587436042692980641738903987723503431731260078876687051244561401139458581874128745085732072576130223238179187384432327249310114325614456897844939181828074463306626455972726802438213535318025157393982524389619812315872595909554252169389951936563383357997471682829320098343070465691182327740458313361543645721953550916334765454465469959152398551690737820400976863117495435979524504892892943661768669734732098441359366406656452616705893710381349185957614696443193488046767123093526353334987896425270993930988885182058717024619300315926700491357942922462958476571773007455890706178363696831577129756738288252204267570023315985195143866488414162096396274542413840677777104313125109061810445869635534886680404136857774528375011387027682646708218873167969730362910674724564242972598596772657466188901744301962690167542755404749635784668267768810588174616261517857269041073737111459583573338034415285396858057240882131455948386799987845550613290212731922345823407388361918410493662042578942878633259946966558194235005422854386183806650532846848456365694527860911796164737172987494080449822827422844813543131543448387021956919125544204260084372522335591751234261489728251887849919586972283847404292329017016338121990005986692767740561361855054338675172339397930446342043778949266332743877711049150412176038945567534284457977775681853157446228962515607890393020432280411228922909302469610186958068157695273058558028118584449083634044196207523350988350143782506130976789260808013092034087543618630016215031819584357498769242744393002175215764776887065928192454673783780101136967993529714557052919429322303523960073561078688914581073007776048384812265987101215953469898840047649542303510237901794569356186815754970921183916373831532236751264022110120213219344330587093738000369632451936280453772796338549632541119425693189753048649054152235359560571852767093858789855181872131919662835767033767076431527227962949986570846830995163492204078321087536345528137416851052749643251284255037790525246681218028286930299870588254113115339597937009876132690292105674383694666511905678464988007865234760825330040289557647375338380623850791873944504400418687600011687730966680545678294830716018322806887204598271189559398429407515695799313507561590775073039190756625711284497769108412240380973832187020514527758386405183034236827911895414573222225850336616780965999887565166737023930959893958101051732737700158914616477011213205176421155468244368514961370598038272118425014579420162869546543559043228129753917851006827148528614827681294490645953894867874263368833628702777160591626467247194158186522222348285179782256864220439779624661194835858842578859880167939382442655103190576161066009905898405369123157961639774811475509970312396069659750574639076490241139519080783923704483120243224306049235013481698917599163246572936937156837020967889434543193276980130884368980869150264268074627135539418707861503096140730811751104559816610668381593237769815106889976500040459036080334532880818643716768444546568901368367633600157164467496307275900857507882929479308366847992304297179420120561398844084909987921277899894605604592310972988319992896310335570421093354109713677927884173206693305167266033297060835706435189670241556999903209075722163137371687909039371328966739362524838102929859495624998586693491192483534495236294289837355010680231111557671052646173127566197064936931340893291322166192121023100454365476876065048151566799643319461677385158113401533639619669652238734898607192150627838519706644345864475950136455478759285896304926894628002511739355874584718023503374267868397089739580336657328820544601462924210064819844978919307823878320370481333752150302442218879155362235955353328566931605021333239914154879670821408799260905292491672355366602052523353155050839638070921715962250021952339044694693683156879687239301545722014020273280281446762232233829122613055777445564735374058565506149600128470008874879688454119168209296189192828802653997940021057589889255564467291715432611012480033062249206274726439796886316642240620246308449414426933263302939845413765069559623855380414856708407375793141916901351339178633144968494902256503509989608080862808384879740713624815139948536095729700171725967114988258192826434818051967667670327410318121860994689762205118742090603176923178895621034208061544753300586171819616977964465662890885721394536400816391846359560544472472260193553283435710593004534196612655231740431464657507118368256128734499602788216720372501743592263952213389067302355947278104456500614971054008712992236584792272985957975746404158845550923915267658106732245705190757057438999980364160621590169234176012725705089730035187582840384426570225117892342905218554535178350137832874708155139645127456370100710609560593334162351468804244018131190331118583304289725883207797448738081027891447226607124079139461328464617507540946181811659060921944804990754945130246078826083993913560299193376861044554598506599892806603576159211464215363474297041136376262679388393633001710229772140272502854339614776988558500275607104591552081330254933267734000495628298378628908517901415475805921006254985642056746383238607707916687692346564403735805930399637649162295550901312646342956327749331747344232071887440028894545441932665310530226662934287405863270279866960486579985570211998577974740307513883129971761953629714561507391905648411165328792720969288898699106702117495237984706172356771976228548269004655829454445702699199021295300187018301628496364363462924991920160652519810137221466442184994663514469863472479406495998719744792915250720372142031822366762450882582400991402263716052963916719513176844172886952176373503371953620868550091278328800751505762697315807877913057744264533383038209247461745788482749276950518691231468599833546932929517432583481030174297853367214739647856668393378510669913940912354389384968434098830946249082640828495843262684812222232371963891186460466849350383828054469353696309040023138482756371956284916650905057913239304711906739816484283368463100294799764801388321698028360457302579286106513772487725221477999386782925894514253559630836102735102095293298937798666396893981004466627741149295581748194777673785903557799766967657878778158485196426434373639069027688352159066544742428398931293437054798967447383141580229327620664922342373198876226195005956033578479465673679758107192056007888828317836583555095262611376420577800407342350623307757876063612014401799314875639393588339895894203446472607445186203079721651474539182204253231878476385312590135995540986632213388911681450266520230661034050305821065939339343944294516374689378628333839223947632038365591952505117760036768524930837025832648975176859576565848748324919479996703489515049567952690138219980977773312943374508631245843670596029936605612443126088810733408491286219139648195064010982489566133172410986065979663213918153576979807757890594244523069714501547450390129461408250621624112434637195694197263061833231151941818870731883012957633580042469099048930559902123772206148906495083515498734177055197248324123787910940467419953300581626487250444891836657456202887434252836545530268918807408596653120932360519647676786309741323547845478971349503909071237098105216986161841874666826235585177140111421783871627299661379731100751961419817999886511786463176581447862813564755014014307773800158807392679907337185229785071188786219060283751862683259403315111822991783858466072268531850473559860209211338658229741070283718779388492252111546860644075404931231615312001799099449956736306520094040818614245970346443878364350845947319198043820650147096724260718939481200029754604767224507257732827841762165530351470407874782534132708338675635187255170105867128925102624809081972247024859170037560801411633544180913789755509117661324905596946950775629806794268198953442147884726357108549773736332632185084148310167682997924212944380670688757680401704671384063419430668974173350901659813443748516059042859872803955347427384405250460075630030498366904240492696831445041432974338892241352236729634984777303531250379057542070318610771862789569676015284440373143038133894404049789514741121267295814819857141615292873473238492521648455058427518078580447373877648371093124994763631500390499651624620613656238261625714781188337392193355880431229900794144849150467781130584126009294962229820685363550882433594614401465999965045679346350694532525182962586263268051197065052560651627719736269981780151724667394552300854495958744680240725673695342863847855640511796880698591655427597168532987711144718535148584077503504859422395557236319602910716615332579601873542680732889149497556950342387217245919806065173373916384439597062028195819000288614132967596553323664136195581690093160406926532724262492804251773780668581412531377890567706350317498417882634241114824825768352703505593539115187598439386077515232804964725015988447468758643423995633692220172778945668635684557243485310713666666451391149949556077889048459579406411546395448582173088550365014141952518820444052718329696932671599857964029283359151304904704662709214574392104232720225590875852843423804000765728012190050386677194442602444525680991894195245779743864276892916047739672030408561429835707423452939767299625641466845563831663654437352353943320699670122584220926349948314989384990510179123411446227744426224030863502172742663635671896429923637856579033122731006221406659644896643914610275100234887009683552171441265693651559087414038177950196165035150985346166552333372513805368550522712258396132711478150667251078586636567338462465976267145210766767661869610694433095768312195905099587976316302845537349447525275031449861702159084153388676871641465519491658868789673611346169584289818627460578537822643907012683393846877143253725847531626002989555127518086939058471895205951278048962441813164184687797417411175454929273293266103925549137494900329019384260802198092138710971885830383612529712675442151433108974714967338088437071834803536288410190899768412309884962636735431910631086744707318719122653654994873378831089870709605790456154683763596051370816530485703142050434031335241317658354569358077269874788516227014803471694938282072099230295200507173846147835470593850128619724408987054422119895260997571745733789018431226740093637744510330370771898111033811239232558977857281530135255004976053286013187113416658043562354281750482843605221556799266197856107461674855251309157949243697794003653141723656206608694979396023451067705842516711847763173497368454559050405448399782710229021906195934539316055428728701498758551734783693607379140898532716831769254636123244578744930900152046651792708045112964156474133419139021322586467879781281472903120787994098896481098244009867283371404308802326297713596668057710080728096192736836229862192466224582185510630093481514629845432151870537254095086473234544810718837530602021547780909564552852586733043625040651619190203843972036990204534080656258015299658521106941327660024867364174032301510699210749150351371947373530321312414292968693363954031766169180396678069981121607223282619392268989260175360678227315850114161772121565408349915262371731828281324499511239113357532843656466000114698000453703036311741501213843565764761195726442628456017374369473197356174785155861929977207414060258131178130359003236669105774421509916913792857011471078383464565046944960512066816866178789429349141032018287903881503239144721180383649918515011143614106110945146912881046158504599238395432507240092945462010590188565202787324549825602316295384837801592358908746710080345397451310017762744438848095844156937346293990230942897115371392854187069885693044920858244333216443408402360487782854523446504392678630888465653280914406596665998738135617292318598571405908973382973246131483014197058570538530233659570172773354177344064813384740705267181282736019378043111765198632103654266327848261869661363360076602009036587198460879181769775737965327111396432302053654258577588440980040745526069652268876628058211673749453355861679669630287322538520116616371055130414509951907198543841883788622321259415612662513373051897654201960095873332279941358401866999658465842959448708421596954209698022969649977133163091990535505127534648174578640984812733106216280427626932180542711753613493766318100590339624553949207341452307804017899126489480875251038403046302000740874734063073291505076130655489311895525709767005431538179726862762326081337323920330075314375742482766274519084434944274482332888963985396258044906376811039065144894059902434821477984777104541871587867274575224449894246278959885910475437737735523831385284882901099153047372287073484047015566679145204911468564046088346289791290795917010009701715874772606134465083952896995551242162021923087345056560618540827262929379917669808372937022423140286719527150710141376501686390947473272031566434317479022846037432894748469616409116390433517577924043143446259504008849803467942038598014810126569904521720212008197528485217046948897914606849542065185318176792785379030128696389809063392724325325611579521951174412428348271338050281660629479577631402196019849310152026076584942740585788421260284755493307159705351330713331836489165383296029621031271058371078960639423578349548377770266225944987201685409957204277466574943017343503164206039294572583837825175759536629423995880250926612552555633492308363857884860419355482027903150960714205378946545628382268310637569255653635880214754863300420307694530297141146985670700058730318782159837859970942180870643778354544432362097969889910642702513741999684737435573822176751193146172680395952614568437951030340239226751239652435932285877696822877993220162691657638709074884525438658208174928919642308055005140103282313417329637304631285136827171776874271666286237817985184173375496796198537374056956334244574861037832364574299138225480081124932868628394785756777055450854514694034829612206793979858304933129741270542345553141994767144403526255457999912070388556980385679599477869716515370916628690583156926875011274318217205315371596911066286425736113607076186789394045864212117329026991090645526840134579541701548641597954864481550513339810211988189858142254589820871098568210190028950206542770688852370735835175789623618926784031872989769572625930827325231775391938100416153643148904445662473045067375625083545295777013815904864523363219163904418821625722345778223165466392809053765420423175701503810137844980102789384758541859146695131731324430204182272078264070316062197643494493537685922326595703901356173464182282549000080497689518324740085906933688798704917529316373316388591415324796217869336656927517613958110928742554917018616374434860419204497483650225141389262035311302738881681696506550952203643080578167867434548787507594317863095138064378814336510104327583624003475466549244887192190396224107391960861074097381006532231502397634326655788284937064897649325745766887171421011567880939681136278002841663657914209399978551709964918883810401033515342387587355786110850861568957924913693778966552901701128903491748160075709417859281265467580196869312113366762596611954251925878585319387346633177481203805821213702046803674715124088501636918411109343575682555211469756978136156914957083552918124583556263486641242671699669699562486031939454481638412422992594164355539820580566702363750801541968462627252229146007261935286934027994729255128980093683650919632085021629245924822891020570052724607111997773135261897728987323782943355163080645057033096732761739689780935709864078408377614611621972443382717790717064145247038004932939527209360445502697195450594819325038032053586018122423795812939124435775477522675843995300664410419602027838038845547080782335654304612614984517411410122901917732168796171837575914121838417836274262061524764774044797218319630593082671124081085864074185292779081733790223772022998721651245955976662870261130267394622180359117137421800418938959744275472970196896615289020047131359521071139613706414999547410511427495638106591437004873844146261850559284291787663948576178963767847263443071044549644303419766862971651468746257517216389482162996597943573260931460821208431478762067908680926750401151641378080385878312536613321034143218901386113660612839876883757616824041996073577423983967394497724424442153173675090812342075990409143253603533428057186956507445301649687202398078516811762417290213455992194350956413127084703106164479922674123346861211759010222831891246727122295230793116756132077174889725203642344096443956940575432355787236355984932243192035399392744600771874670004076225872907600668493814863968556858032921217538691357928993553994189385074080401011933556770858833666748102970729050390046549898987230122508934236769365573302613991554277150150946083669541741598395497661496798408246893451862858789140598271857152453255129454297609101554164416538951448694996256770316653420167689538145830876025194310604832553369908436932603098262108642274951099787189009210231582759837131831655333576458375901775504191341098895443935193563243312168750097717243480842763455667457751884814472302461569098305215539626365067575799995926009832286945459583726023236327594743097383438575949393813057813870944401567662048616469260375551296949485391371901183843219847493666927175239864408335144603775619077841601398849652295433313007483157327736633255979843410000837864559880093018179619635514337844030249938465060976620435722828498516780606573677748848552742694951593798957437943497853934452617153805994744017348136508486501243241614831697806471607837158781865870226328395304111248503112335724203904665400810649050160550287525070644420129626507291677277446191748658998252649347308096328730621869005198647710818906405361354465656283609190652799010673642362615785407883917777807806515146101338217323083523603670049805199951029970019001180192859179712007406676829708736772101309206663401957044126410640672552338275647138381900471787046115865440453720600440114434464962911238172577215756904628507374310005622269012372887922319732981068797570664923079040671416397589247073661122578678584720057579533355171707007552212265358453620504179792067406722501409837854842761740905046547680333648741748625677882521052067759220643086679115100788337879813706081747232370176748186517694300628429996043532653819054629513630846781581064140633706841006485399640958105331915643295714317525465739748599471624512153849011373894342421162018194160276364358901372752650874572122130497222551493987830899388631545040464430043172724878733924105284439371569632010439071884686127498796776507980164196280175898131453585941282220231311731691587576025401975203389076151633976373857428225423036475296918809317991678141327938798260350164199940855577192776161998037102738619929494236257056401679726831542359953024782826811135592946500298475662063884009597336366126823752615334172237171794450220916125458969084110569452658350510231055434042017053866508476781239245668623692256614233383372965323554656813260452081007694369301909765813052587976644795173703209218654028342275586936222753796793641343871300963496491553714654283730639232227284524038874511590796931460311302754905618695595546385047555742317440614648244766127774112954978598754524169204045134588423870707626958002920475246012490717657760615029582509266033541299546930029625702166242192708488047457019804227645368764160459067853155980054442616333614859136165360892801014505155858574000006062489516621875573093032042619619704297131761256783359434078345477980020637487254146879800798405231891661826351878635618143868330608532420511606761243275255469581800370766658163253850567910052210379701604973752195595013408020232019538879454026627899924245467484005817739212966327757943046676715153156847742859996021687626636379156921137495112375908614689613523245266519379985538811314809947638129466303522353685518838220831479820666525885523734032260833758981010197969521179755406760045443437541061200473260598984382931600482206487131672773808801971064821568591524530515856744063135935943106240261969478101928306246871038771330408591460200679998142920771184941640950492491102399431186898051267786514017423766249380714507057992281289079948513233086328008115103549071353717443107130280304706924802293238907451298066808692432684291194139950400213944396530124989567555054161794796997416867351726487668777342708783470401361185441959636710017383165555572651044403161558369718820325459639203124676509767011769612997678544146314817090327779736115209815819522693683119267495225419178178583516367277648031607187422987633582429991925596843868423886850264079385606180799408343927822558612387399024544614776467699853936056231358370119124033155898556656482558235930909435053067348712978357806381616624048386469800167504915510969910251158771593764046469969474859237521726886110189718641324626156446128252860765500904946687692002707092359882613955072942636183198326678684543768413278471857683232484676309726765898872284316570670483430570027278148092478980758427833709320182084404274248193763529844043948321788771982828046360207981488133360550892912305174985890167841739675834013362865092019153279275151394696480240331160989516048011755309942319420082170284120256410354067483085918092889718326223205950547336943148208443659042082427225532041236446622696075447972663333631825308611265044844723176198108907431940629644695281249974930134365302108078004341848730452259941065631953617185803574720533108364247630456661770331854610757965808959324392010205672812711396197691627210035209740988026479763682784529569206729640404986397938166323508068466529596446662731514523993900067660783143438630310798942846037323652257402295541364502767104479451160361426129185030296847671299997335295979853953938192417851472295417625602238582210584894973285149233074195494711391793471048528827765086406074155272810481803334858734165594529554671683353135338383494076462386672455222242788146425861260459699240649805188404009282516371138287942829123968732992942595563654066617301724059800510230922446794004472996388317235371454201637352521956832300421229690630413044316719263206945113574206168332427683095537472043160349996705000779892741818721682538494000074278283540846737539805210021964953432494946773739505608638145577853630578212147883191448046928137135650571874285443387091952531962042271764290506550342370414250524309706781405757900545069113466800678853872389586403319253554222208889828646770774771118017893040708131366271982196936344435820546315875458920090420009499286943036607422659090338515926481370749366153831664609352030864923096684523395246694772789335567858029962121052323219985608782333365908235922621003560249861032930171284903553387819164277462642387720107267497280002554426256234901094120242280342437349579130857916591982883763073911766568522700498786038147458422758253995184550532051922296054443193949333389286274708728648940613090819802612725117301064725921807541260152886012598103072006949764201056310133053236832743171461675006650847928312373154854100639187962027877585925296506049263316190198568508637868825972427783651404278163136716803646238931294247477914309008709238126977213209624831554000871257740230128873198686804610391620742734180482920034536818040591164107053401598169733791306934689599202597548968594367671726465068850475764615854847999894431354188307754173209040693134195561902469791882945239051226564965807611405175523829012054502423906193178920545846005949756179792054335526620311952230022073169939194701258968833288319586608162108129672989861822796624766935355169271540587808347349060064498999329347883114385614251399548459454291821217485839381521486792998881229926585506851175275873979766557660976045172686008211317783642479781118521583040243010090992766432244852180870946841096975272450709472895088009825695406432248737671077703644200108324363324501677173363032261458511608622672832060903702897272980301952863096950443380652773615237505988618243142691849240863127073478666063999996808091473917974540607824787188077202442586406055425052589175980217528077784190426460025375801000612133622758239973621929984098258770048843122133568097352348413913110905701079014109610178448822332054380936480691729373502919747316971132605458278061818416737609279374467526702905223966971839984996884232474920419652960527511254584401937333298326919340617125485871021354934459037380069050479448413255820627743587619646341734015761983211342282577881208195950747689689748204077711295287339216111322049125565015479290712958559793114753937707871515689464175627652893333010274155528865073310604013242376242095822811740451148787376447177284499814332261365004577590782949707582181409073058401026289851084157209401213544663065165386846988839260613232274497491722148967721210048887207198651979151117532925288344981890363738042325535618318939227928273284754135591652186132094936498462987270192262843038971164087557858345565084712962147866478772455152183565556422348214667867507844885814124453502214085473794601308420873880746696068701288552029878352887426955072559626707895927394737029917901702841400774068999224507163204317251182106424289433264403091878672991668572324981206857940654643933195468200654159282164435392878709967282169831022717118252675614852815270808254230984861535417393255126561856877245435922417472474480365400948331739521300700498711767614950584540680795815044110485792738707869853089480506124550266170491971130059008817230770823768045405215437883657188733033526004724347237045025773829227100035741026067365776732944830029055002059158866197325887133914726746344346578346845959780547275809377797232179256466855224336996921480115872447881399215144081183830972754228716965314417042420228336296776914086735062948200045130995820967378365482248518607575829132419336021844301555665076389056592102529070501840485747951841535264387604897332179537095350719193243464566219300458503133424598792290056936317590569867859510360140758283592905607709131744071844370717965291504135961278845752694483406988800020420983167910413588837323570597317448328400062705504033091705588051278726950972945881652961235476648490304309156622448742676605674469645839796921663836218595003111931588954474798539076610218749887465536196480666943703951789884656380006078296542864474301945587112521665639553597931471203362969363008792071065031297419283546724623736904115286736203137413124898619653416407273355573561191692213774959934118947533688285456355293480131093322528855754895391583708606202323285523159295014575744608874371830501240641132049378312199708197016956624266978787005514491449902751234865953955718042060132968648476915781449264215284566968248293740277157527431618589386826388907983007710779109076404269394682612365330475022761782665392465087135233870993996574829139251281205392031932080371923969293293208059573626096374430850712280023708971268451694153178157340027129265882662720288725081730890425248955479596490320012525362433191473071010461378985550295132893488415143717380713022593780417033229803794419478657276252000529653666383565419901177710697001569854887732321312770377246960531814596550054380660890274291818257177826632090427722179523771070539823541893612571259481732793767707896384600735274665865311270617629677012613989877992114338374733065712278619609091135220798554378687686806185956093192302051299373378400865046465065341689732620381938236067929635191721724744125918024213716086373000600979253829195175549596577352612584452772177509958813892278893924555889318592243555357546447876150851431403869744660207540645499684637027115153136391665604003156856664373245603883506344691012729897171578862891088885016119644633714324752706464795892164489483028478901154434451083981339219959716115411103515638445889851898506107774657332019522640291668922987925420769914169793891857097736233407148054560115588515434570510212548662060941896577301645496162110964452294438452849412393568016997672083836969035053179615313764320684065767653951620932703576637746107282710033258227502740316398866573477602578098344625086783590284093261115802043548815107635645059295241395879411260729977423805066224447631272471085231850077971167428979558663980962182039713874253866653917984576420804929775785536310364214275585855478923782246720149866211526323648663148025546360824724642505370207125192336849690262563078858218973217898712623143454478304757535878740091977960148635841652486101282859839675943240410836715731915071308814183071122088707535403248050818563142767392557208850857753275750412495214601518878530239948272656993598322754013520738342063505217404634001735336580124477826606193419345416769849466541712720645341473822951114285554815080688790244283307177800760323499582471490186178522718268575357952817976837756286134531663198354705109386403491585390745986111233119549621877111944514242698785015944292899472656362892068659528230579372051023002317359079290530498082634535303119182864789924623891239475453250776630847259827526140790575253397944399316807690297436823574418993053250941437012770749745390081146539939051495826457948792523061817693839363027846261822627072132533759385525170349942696874419781301711148242736933255159189477424826743357463458675315587583021192816961531954007863525665247952191282573857368659471319179181524116331308070239165658421825959432530375964011213275809666310856787314575173791901227707582691067371989214030046995473292867308111848362082253974830024770640945452936038816761881884361984157200263470819780356584767674527283724622364761333472560200531884421523259630990706112724441287978647153279530629848801352501161413865994576372967684856449109402092084598710681658596146770268451065237561884406968825737657557921458322033607433752282969836537870296978175660126282376293028718290200716679558389872805499915561339062314489868134006883888232828995105095689405219826824172142693767865932649189938595839008411577335472862753949180380135274509919029780927073205405988372241708805594251776598833954536220210739002197350500930780156941724133863439420830823976915872110965163777177060029451735818536578904869300806834484072958677898575010486129238287782043711846925872302545568247892312586158428584063625176429380478257159093991125717558394659876283764345521619279470805940360277819631984557714520173722595259036319407857195766288896693720888277568721344884252421344252917773258731875889343539778929481060023639060547014035086558960545584231182958692475071627289374563252119629312581741736814455281422351813012448573621439762418331192972751645277492616718752705251681712012024183487897636448801866266253439137018934547088740532546769976532496749482616176231007288083184424489042401936541631311306487021126585985146948167924460412105825073400355072810418876953581551811311480680377924353540994227698038712633602741554145407255946138990576109517633875027084826362081644081278728531932048368754275847403886548242934451265597952591807208559982939318614841457129766995171279853911065223877632655954503832664615711704920384265659117977467659831387371384033564746869197607903303475012718777900378489056383856084181406931706034974512731217751673728753701518859877724947474678097156166817802638274066159803601959756092020368482145174891129783136993387819045685396043016529956135415603802825077605858346397383656541750436416971816634852790465717563965378944948797041123410007479955440183234524205317473001729693692238372894970653793592505032453696234436785533586533642024529033082415425266634588053422755490936417980414053261744788137012779740059050259564994873701525475667264757736278065441548551292539546227821704425163971688493187320595979372914125394544635141256125517681592152541408715431764991823006160165828173104973216864678944650686796146102874338724864381641476550071136871922058164433833142242116460733278018947583150297149768448825695846733864193378678099109974430648922422942522814366740343876500589854117861996118480418142533124806360666017769256778885736922835629182326685125628889330975433394254188473609589092280867946169236218079414633859170513676733624933631693524842713279433733106320197638524472709446195099772425418165885413416853688981153694557516300365487876754649480470428798464964578302373801918845022565817321305874445403415472128591799327821887783091918314567710437188819724691273107645655443549598386891671500994493491577484896733160142152492862359568242415751980891017752344735058538399593389674582647610316954016036776318701802534914208316622732845660744531590267202352199304291129685230090459497845300241414454441987316064373967062883878789676435412788938945842552047637456287208428775375105503017849531020424843161696991427415835890133377709754389616226196993405541692080106001330739281104214713852224001460317593776792636152204943312471515297425767839570281350674280232254706982077625224775765408675955895821526110469885070948122552045038609109386257519994445083289175659550090526207708764857674696005144202308713703634997272632456283050175318266740426063613657541943320462147954286110594494593359010365009388721094891450140554649979703183376192263918405286055856444937858736513315560199263431274498009948635287126140635025047348040645098054998474692584982559056960111179753792543386376002002424437839169953004332010731203840625481710258971315909636569372862051670113373166626724759304713742238995720210463007584766117467954704000484337291525806363347396806717791735456177396077777738597132314511173740524110292467296723868450569178413028511303663212445443292623808161486451382992276290249264076562543408679813036311756469774292158865433954833549671397075858813617168459684102893738189136409859870565060778411964564179180765996768725426910209768510577995207697616685012868253396277735549453549473734759227968568301462514295293174353514609322952836968791879740383909718551043725312046937724799162591799645623733615712101779955143352533839109928862045418348380685507706522164040071315753642224727063947206307273981562290023513978123164036312365389831931610903351002927938934322221166379295714406746892417443309566865423266417480426106609287013868823239070873564482903563523845743083096633262991635169398495081398621045496352834588435505232799329008501956977954303932605416442135886344247768205133286539947594882056329183151008964611104240004914324233086624276476965372615565224337588917140188041563297692708651457348114153014468652094596922257763603630103611832660737408528886699470950946809060511358758315009374580859212582029612694242591800463737576751132409258051163089884174807497419303300464161091861527895567601475775866221458242792062226329276776057094544464096100018892291234907051966128601369864909180927375535476464171321684720385460069352716056388327583676315571457108964969026265215954960258143946250814038044880620574997743337469806922791894638146232912447584415798281995360542735475231308572121473987837968791926426993965740558774657209055217676231589355345826679662260631815427222488251999564249222186176751044212554711119097239587480255922726824529396812312809646691050198619883075736378483716230700273547012705971840353114765414665414184244139844530027850541669807695741006911475832360867086096325816048300850272790269033044324826875846189199838165497578667427575822445516086129740867379444225124324203906720486204317925104134705175694805326404329515502771662633110820993615897680243237266831109398498568183246707242581330540091318040488148762532258353562464974523322969170241538547260671425485683506740039210515628824907705616306368774556613684784483810469633866461062125325818631457264389507671726910244026678875045909915412426847629924918664466323495636313047713458600584341484721663622627368149517010224082909957645592396838436167951968392080830514071580314936474937825944065875809174235325153101405147927498646662103397097338253373554087926468635871662790538705458974818504948768235110924924414524509695727466092290156154811435339865855981073729628996788912149232270296516046755630370675455132544034672705632994547862204364665556148273756564035812892580142464815148410263386535099013871422140879846394907390307259036744189352837906348333257532904580145787451169082790923569035750649668093856407394093489473936044884490202295021616534935514973683836449999539763649590336077924389601760567257468058064114394129293054314624075328343059733341818857621473516489181652742319622503784600881120200627570733862554924198637187272492978774971123339570433462018730438297059481145862011075489024966596017668113536943137829036320511186540044960122708838468892517143079416589724428653068173327131818510481772999907422572209148985521301086981932647616905253703422832371168390067052052042666184072128855032720636443084182200251673056005515535591908092853049183311410867255451535618207846234346739575820389579133473290496853127074349349125814266062834304737789684950184940426089566543814596220938204022053358479821135693773995163335693727257800187823521232341989081170681530780606490886746967798387651066625925005465976750187816307189172309459021112707348274770327842327553038389089868829653926994239412551899468519655661323441878986288526790142748666338730271653264212737763710517466988007042154476246433885635684694100605214309990033718388837241534900206611757192661025931981790522009176072677422195806208218716034771853860076038541256110105074645686780093696461137661344577165965613811958445459731090979831282589756736640731472879622253101238732333983780388671242531276125493342233882653483690674530621341269551593171265450724919723507625324375493271606413500916695459709014565594637513570905166515224581052059285175014307940892568209864811104127092088711586697541714343632629573372803707976718315503415442009402116074110632216519658371172715522931713399275156863298964533093330355753881278046539920588223696137571068872352488572637547125699452253520674250960372695352810269007355486321580163149239909305573089118632857133810806003624862664095872023705609651184871676782647718468171823411456539471768002938423973401873936357681075456970702641191037312482130762498275346487592238040613893038283156785199368167348658679985402206441975917441387924051806747464112414745089115318736746012993218946758271415829555207484332413091215372087824387305910309457588862161027272021814321591452449751563453731166234003770251742163515417799311519465438527215105671758662002984776618337863671416746887215227715792772902169463360616468019779621507928458491147807589271615768432583491567901728874389858951711359750130095006160772250011909560016253797222373914930901219965320585210252316936526335770296328866553180416142080409762878420980413228075036897789110942955904061654648220546132131127296306281906447103953182039827096730626618619279086741784877196578562548191332072266246102289897457394654650052092292683397117472882100448040809064658696001867924205499095308653870570761605093126977220930953494778459480322652058757706609156465400235482821372169022838587457469216062007282847356958356402714731242175781043587260979862938962949413564783601084938911480982430073732142851929346455585658801608458076921164261240297732820708770009641450506935784608995913111347500938522982474336192763218879686198496339750093638323376592048412723799581959424172729885007111276327810645041684566830509047076087392235070496979357329415721596197651851999373429548403798070333175151457860718373805326450551433270833536225527266843144468599224622139119314882823441493576830043797795296885496315947394910875937822597885834711807883329087391053048179359870591393649398370190972121854976830096166310446871822988452559238489055344746949536481164519031159380625549747004578160735679543828466429064336151059258211738655015410293826607142758884908850707141883077889425373296435479199370942852125014282416082270905934432713647180999323119619459193678355811633541441039604454973084506662590871991585793368879756193687047781394329367164045077763781833355952875019148631148474786488618081626582104916336983550025284795172229709789686779227217974525411159813186697314586650873043961045347829924610790891626514456904081006029197887730240250812116948016795932282747722868319378137500719920818373100843845242481914594173162054542484516829999997336298281010215731618194091193944059644766777629232890334349123017719784450692444671070689355543973809912584380111988287951999255590873520536304104073546684092191330394615736642650060873660535152103290041392618278509857060979895151947057473474384649984930620122423296473228811082273889252092689298933144000976537495836097979325065508709752141676873977885601164286254731172509431155532602902913830009229042410016127132478195426736713756466106260045318525073550887576197069381807463928109577428732996860391536946959169198116203289134842130242439007999167278600055482607438824943001894435957540233165410473494594818304001878936974858149038350417925019174268135266730991207397399903190040808644812207889836744057735776374646035114869413930993346966772032826271445680416865567453140151799538729452776074592912111058023197022826007134538762859685862749757612804260224188904491596814285773496963352023157608258090052658670611023549785557940348534118528676049462541895343046328755672704005685046700156746912757410135305608331927578172033217623727844373797895651013648755971937285513657517740787852820443058889224029058837572984697113224203102730692960298375897673797601167480662281626686243218444434264881350103727846964052228117237891554954015427109346858416263808760807970862456871478829894645194597667255118373432734935203663391711047525036068211713051645591801040443520523344093719137008488161331526106721217460376644821639534949189800205923648862297333759634979441812923387203668581878247757857030368584591686809078586832606889357367421842296347449180977036964883435462082368378813234718088139359380680609464403728848101187453290062581790821518419450583293131886592731032785963986865351247641358604540522207056570018196224682512586480767200550476908983714169625726273825637146043453173654759219363293165370422613503965287691494753242681209186756007638217888440855613409650540898471115618161207093209479554950203412717279792732227563219963262476328223120893558958402083364465663399642325154522075299998123190924886289789662987994619057982690473961373904179691002274036445112519731786520718789170104440181964562807286083394092728680916338369882168039964216978111160420326818255394007692874953848346083017680648362612405461231166273132745104709345331827732546286084980417396503749251978620884363008788625057922304749840656318792524914468444152395111218955650707625415686290614165421341659157038833503068865091806564245741538674606883566639476958232125724879078927984626444987038619202699733119332915407979124408938368336069991754530543962592379056047750344339396778205570918145210399839079660672696219304180572823784520642205509065383735392955692091940158661271380342065027928783866085310295651111060266666761195402635220709100478570293306018208324246351530617803132560301044192289565187843151586308018105089189181368664158249969754211907326187143957765196215652498181020543197054112652471447818075829706001514423728158968446277976481302256255276029757336931925103875452498329817974228676823647610133217919619182970073036923767509044946034599684728205552308541257981000769153285636495780306299966589164015209074675490113763541814045085108477812133631826888686402192217178538744351929094343826703441497979815606409975119754997209643496926469898886302905190545343999822436422136494291893982830263716635989718086728419059413234684106157959605726450172439996033519099746770342978945853062237790941013976107284754645789341279843887209989414218212225834040276853223731751656342846933236072879990899311218428804796705379882030760299256467910371987810344185659985450118112151050485593223683211783941524271874474347528847694775154993577285335191020258063745049192500877971171955143010579986510011686779753311049478292083155711154087867528311284399096159697633591758576635431687573575792526489721818521355771132192665641467244535428522612568438441763493651408663824811539554373289046018779238094567701165493618537638961298880297262378023624944261326714609578363813398430889383312396368122163605798557790170942142344383002416407086781428220828597237343918275500604721153140669286378846131108553059988176727011167567069339011921661212221157129115356477309106840042068049414560204387454164110962607079090738196208461061338911982450642889398231477320883223638599642280690373029306061728617284632934907330499126423338102665916181491919103970857054959661765626401823472154681607955299566943251255543333658811270010399953420632840547159274294230720470454148076972759549971335274709983266672888602727494562992460994528058415126918529166413050551550276681040523253184702593796826328923119199591679153454590383969904475982793708457948426912799729812678046827400307486886063622515749679133936773434245465871293466184722674452774895438735199152259955783368195877838522862278527721921257826580863900017173538463955589676798037156405712098309399548008999092207905482164962198867302289566291294236790795869190332519568094295060037316089833773396226846532382470402041668128703926489771950862005114671783520438582778247272478427367992765268785836864491897664234926470884291927192953630635470522904805622674446992206202246479345829457727009760094535808640000323575706037553008893204058380155637555308844950331244969904698603246221334665446149628866181676383688718707791762783752932164459809670001540926592741467114585552587194625909969809301526671240422080418760439980507158575263446454125195522182664431875978793813081420984272949586792560241770987103015563002153271192799986091415801127012766981606125372613259521948456097116896072828731778640797073462924087771234127314661610963758607615065481312477151915002974744663531410351509520084032346474879524636134340000547203431034391155111947183926919241498941005433969845495232132685659344617359731044431795319715702636039337001439113018773562828744985360291039531466206849710367244348083940318258289207899754976168995624275427209263372795133743476300068113544968419889276527240165259575829861205507479422327477742941887140462308732721933175902511215524204092651947642443516437627036561702001932258217256169213452836155735748162730248007874769599354753054717091199735321696679466210178428141884829319971279547228328527379487605733588466529409194234560718825479093562274580284554375795679594959917106939647511708802497305758697162485938329362189190496860726010266380358419809792661708969392575204785412602471379174532750752204285016976974501111212730066039292444299574976534571099444890727001733469862021029810966314506998244443438456922335473484590734594791012068377058131610253809234392911436415663028623523520787279681089817288043702270338083215870536247607203113862000561808527013213270475470345014661329929133470077295855674086285909804012804795713189358971456776454527786272595595168463729482261210249650781397346686536766522260449951956769960702601721426559062778415838139497787141995716343575727166822344400203102139099214732403883661385739915064544040395820959871549952940295926100485614877277379921145427352093945275444642963428563792551409236827052083072281153197492290461160993758238336895451515138591254955586684041829231403922707056405708999300149864729405335504000434423601623582886598825158574329725593007576268451241306064676941873967410103781491302785337475451037756435127337737828147481793193506085999010259366425177189965693847763246203820478782867041993020692569351658281880551436690848017855212401748542256381272902201896390245048025179405767680614877524150588814408648313039178490274189990946259515867294630603348440605703893783093795510594002092462938838102703814130730829960751883948457283493370803642537159527868768925814428363234188267139321446560852732501990337610977138060025972328259010308292834200967699997140070143371119963141568409330434314164238844597720012487562218473061905635811999918114280902457113578498627397850702862394908326949069742284095931548631156563482947921644755594052855295959903079942103978775533787341219348458986326394719072448985781430612712660020293312373682177607442444792280062234169829667188327391849007735392130440806771973596476708348267977967262875569546910266926424651120586543117390308844061702383787699706202499812712079267047758566368996181986013464643596461649122565751904441911790279409169063075817243876597215531856702750893645989976949216441865947558566306275960730699905482593809581180331574198546260409020632865228140539374649018823063127589556084167255854303784871604776035152777360549840668329959091676399828204133597315817799303892008429840223249745327094910346496056250848991756298738183216180682938593814093794751825790922086272716294518707808688420462585048545951741778703720544000180385217425960792478357873707100119195747585102370931522514807199567926853075965377489262114207416138675306840313168850842533643693965605155597985585128874442082715445004645976191451955805115473913212204712207829436778332676114588808737023577820304007073257050115729237568682515716057675800645532563315505912537397910798224008579379951633478104387095415100078775421898723500707604495528461761280576147080519894104497825221907250966108035082332041325767738249292748395395518432500518697046792025286354207808276568974603451868373449000494557886182822761730118469814592379982179468527190407263010071356223947813602269312152190384024892947313704845353746355681860805638385322093078823452056195665741019555485450160620013269007887072789170730168763128672946604451354705137698782517904302318659649174004824453230514607778262393289206963304723142817474190337229520160935154330751439343041846029133685062608818307656783777922711072661597963434967694642603400453688211438595214295123320674080635163634899158501778789544657576342836813809047448570526795541999728270173656893520285484994333786418422753959564041928766028533530052681327493192264387112214745597238052412304624345552170694065818007306824968539415535804337780648076414112567030386155075709403664388450730211413769364612646239889081315035758707654588396906501526120975120157490897660709431490932737199405883025839154126793090471490145664492523217868244824410160914606236800455223021986513061127281130252297555375999772932401859595553350459775951003179243969297981432890158656486413966999147255801999701479629834510211266717429056002844093672891532219501202120118989427089267863436269420554443051829606862447264168412455418476825535797432029888912138888169265355816957914704005194322506111246467795134938964180799050190358209766550363638891891610553862499710213437785619674556319551430947108536700219412875980723836385099911247313902450789127143920005191808834049572399281076503908185952222430477164701281947833042767434470550448592241421182616022247895704515842084949926603514709878165964216017977484502423433357092357454058104294736522190170984926194905084149700484779910596742469568076966060019424294720307928443532601236083145007328712770004371539127437745578767618392143407724990753392358561074529775863565486379529374320210888067820169387783127470155269031571537329752608308816383082440548053698296548775279068474778978856250297341774575576602656300755205446380676887114524811781270906006949302449174737962668432096243913858063845699558442775624839779417147925732892064257099371157183648386833955684328077071731751988424423272107931742822899971028027880317769427438365027435737144826660874310188202429041842041891716181409885802181249381931714792261310499413738930032673145472345494073637458917585848730901361529548005159265131822164155797208102738259524228625882685282161741443847569760540957635842010421334885320988206573312247062555449882178140160625326314989251971109851227429671933014986996126000151621393450154406023661156138135244466191065988104327309804727910009203165608424333882876789721781951448365646900715608637326141466790950660921246395361152566765084546556417128756635778186771833471265493732353350993910291893817711074821424553134516579053745735523256611372356309892112951547345503813014277862989761475376661800707134653361787885805252722927744997030762312927439893642143403151704121354514181649741730951369000997052223392786401150007961542967952193268433087388510499531796575352089081011811641959136039503600911443977400398419065393796610550761319803812656851743313803311977803436541475777777127889889750942763106594151497433192458272780716397161859456693584582502732673528329691399492809369541449029019963047120649384995377927715890377780138043563086781832084503374682372854943246674748028354868128223551906563915749461881056537879019384100751516455213215668222146637253349338514067789221453050300692334095100616878001977392291065015181115883272286780630924488708906781404741489280664986598273342624388941983561070442957883498177029118952418102630822778976072838878278762358721699233596198900065287073318916289760957512297032282723681735381680042256942188429442045594361533307948978698715873384241930494636628867130945650047316264476654465761569181536768698311698560219293062723275361751777715198853601312383084590028966894678587858843289328440026461023574537839535865449524294180651850810186060505898327765954587973013181127245696754217975895730344260570928767938544118515555822820177954701184099274487995920627172774420423149370065933825484839548943075214829521509514846552330583530353536380285622338866656728096318928763952753144295697570357208275318804441589354268485573419770701238634365556174220872446949907236365860176785870811512770509913539617987760766913964703526514128663118566276331741947914398111067771127438401204638182030706404547902491604677518890972871715165306120218817383087025422223931339331727505958823329917832071464192903256576474546694818235304815950858400227939634567385472700604215166915148012749583420970374578984503034366864204232300239880648622802303081864437757751482427917997517713446169143660273059729865189489898834397170997053023874814739528713073663719838499266561416983761205730426317322210888415969331118826781150864729675510006032173699938195017930769567064739493792671480330460374055270378364863972630537171036630852114720383978142628107371030732457462221481095565429426767754445911114613077182879002307916774708866600045935330232934593993999993347568155076768956833847631591234257570290422275624166886987947976178639731479317562331931007053351690796329998964589216562371238905363480833045477132337067600288099858064793363704405514665417449754280931623848940253586712005130188826644792484608483082795231518446904205044942919805010089401466305713016025849624427204726296306819506518176963425504182210136032936604930020681558365803866021428627847971580898265002229656127708419246675709529992891723487936970595598619024776668589484148793352089702289420127867001073005262105842367044252999473745317082140581874038445143554235456930114170177520687691965744122666934799294408521231113459518143009991928289710292481519181592535952354800932226806461359569207289928849380798359476334455783782846990349695026568793441761682203208737155242346560675572188764452119783903277964039452614449751456260793659848210105143294639018071082206975623815731086085442473281690248118095854071503074735089482479812501827690875848411497711581265774379651863481887125055530633337087015677921358073396767329492293173303134303312014609892378966817015044251669668637745084574920728950315416695664832937359351971429272796480099199736898216743034486810521142907023795829222994787703795525578496977436969661250132702615725515796447345156978688116288433171347784123882633617143971554932850678478583309629152304201057364706363018841862542954882245624957524801257712827702499531809968456171586938726978115609624304435058523626146680949836593963064922745748747724613040624098334308595287603055975071108353236150634379064431297962765196948511485662919158489800013883315230771559964695839929489385846708437701494273452836296689101111864912257515320287025294506148574925002053366306505042966901577180377481513623228002895940123988589769935585357987756032506010639775757281347830283280048200858139409022197717017128225173439160861300679586551992235067122038717427961435276017970596376642151666178175174576040204547232736638373981328421923715997902459477298138602260017723992668026389176048175902015965406352961653945026010526380054445998734903294494083346809495780178712088222721560251502473169153041689887842506235808091895529481273231730211105786013761375883168643083742611702299899205288289325791600123454516732095068298417900687490459551919100463236570705906355415906127266368008699521933141523311120992518656311811819051519774086015265285715629535930818095472228775140086972275460955547298371479158517781842326362971363785583708359989760314168099006086013579920461819221129997746496833504887356190933137053371345723322624633475005675051756888576199994140605447865722942733671356411940633390479505477042611459798833271923034911916390896131449537040194797271544547908102522806188992232637262213966945695317324277460862742141168476091847359923486072747611204460188275516325930912232688031132942230132024576915720943308978616894995629696747627854473775191793639612654029292643270409790837662926011221104057214068829077409124833939138393402444274943796649728277407029491448874380082264434908967625406753320334827612834982995356692175638678727389817066994540146841667072535615950700184788998751754517711872393159834195244661822902616927543990555903792934128668222182050066364882500335508987251191155830065318293516866045829774897766765756674081777327545267798153985920187716039693329558674996088322965445619154527591975702572389480498298408936036271025738042517734655913233382688339820407070094059826839783585580991209673884721561301660769695007892685702401149586160103124278101350684370442629964617105587084449683068951727350519524817555949335361866461951868041426890448597381648527271995121619301792681899640081000741121027084865925809302401720122483224515114738756983797250476303091628682888384728609504347348538705465168220176043838502333165296246470511587811634466627415363028874948691833238385176313973057252958699747218700178076251011243482974353397823510606775919072905218268766423994764347232627777133253967808268988576833065057291733826932298884398987939187723848896132817198903935968630972522230071484930816459895908820118904027485495532222728256596446026998674338510540596137042548112076091000368900432055523258926440712786925631434449522857022452789917341102478703498355946492069337352270921487606852470936676411975284449145436131478208520430479124471522744869558628305676073951187874902652136774594166383110038440198569313553479043094557461749989425678325759421729226512543984391786918421381889125497128960834487936818534173498145712691937317592017820111459738438247419375779808383089735848872267795067717645434392578202965462428889986783132398757326753143503749988954488286602086118068018336652280010964081669443631747979235334245821357687728530063853113620437935723216479351069233580081796373397635516482847280587774467110811177894355940980632657183160078445748362424217762994924933059763329525583831315985970471154308334763652337187315038469421971299095624652691648206649483810875914015422874089851306201475831734190478466561179338401454489569181308288465218728479371736604469514529704926774929626427169928707261044608709592369483331778574428350430074923205139187285684673268256268210104700924418097930401792419293069025932557655446091275027171126528161988380469672276498191457564708678550207529874503902853937186242640260119062112754335092251997327676347586764005976127540882457528129349727277599146136332956925049774031796136241686349464700473979493455434620877520547724029098517510269498042894569069726963511876493810073929621366092877962435798708019411018419744276979463464486750148901017693855533123477424382646223703981039216906679771679736196015665141174033768484153743554556938326400866314748479745296467343954860307933572589494184139949644445875953891231905645484533442352644249860793078109453209150714698481412457664288155274129106851555827277312705086323598474394583639004824350449997338493866517768123472804991472385697815797848028560371235681742049561848881482597211594074657779036334120698216354168855000764505843527434013957740717785311758119243570245916836789938786526090715151896085845834047144845476963369680354699262371491989669726175767973664940719967354884011401092398066669767875099084401909914372381099928883674720700090002849442505890864265834216940312056431931193027942964104980797577887189686946175664881820616925037421263556784254550582913961416181695620294624206722276482347276619505496897989473947964506857016960236419793964750351332591815777382658163908886159218009546490854386061237769053338329240499857012041113977190162401137946656799551435047051855504535903835413585577398241066221198669665964353791991738734888235432213472858775224281656314303224926854162434856040856216400920034017248520030157025965758698196780607837502238123361684036420742707953483082298354210782535635039307744743389829144806922199904582252289545144194231833498043327413032528555215107688702665900247895063740770523533074412452971951270619530724242341280198033962194698494499011204104196400146914889449134719448171201122938180883624882237208337373860716051339885710868213107979861265488763520435688944254044483644797201196018954164596653850291582996393964442904376345087954975283140326103202633437917521254119729636939813774004780983554723531727736611916357695168009338576603643985257032625572240338200852626191999247236501248568631338355320076247969012379666901513073469187101920149822123469868902599214245139801516394285126406300165112107706390191389444359514066716966007016377217112534861586518513787941477084897725138850679241116388297679695325322939566236332232072658239679741917785704837452724173258801914578875748261858766092845890503956270487447808273102830939957640148636166048451039698557721293537494603132927483178322873915592341458451587795415471831421070382317396065046542529278296709548819108226213461413647083203955086393260786931850911677586408069924640127539803799473684247577576214575412008068186747668584617510349961632738311808169933068382610507680649700622017983493619349752732354725942129191776327825993096515472461471675268162853230778464435980977074875738843517791745893425514658460348432465324378599248804483152423881171672884416210129149493121837582113494417228827870846668035931937225139839471602815565652202882581405856128564612740824311979282522598351926484375078692565172367092887212065670817112551984098711194980132276592127414570227807227345036661522176330163585779628287765911107339932818860684377737523477893004336305557151102867838975318669759342301357253549906375694878365891255166998513047644535006756491827503373853536070854157121473579150933681183897501963846574310655941473316582912899708266914974432516424755432113596828121540151327898374603244082852516200532082874989010110730023238533906011567485078452190814071974618002917628968581403084578337646516652976683150653314897732583336224700475440840332323008174212001353202744236539520871827190749003887472492784797670395096468699679749709289049224507337855868430379143404949435423870332281637816142530407094239344671185029859125968121703021872619476387169198035415363388124859707736944835349203012068448815738941729349270769960864088969990255025967556244858587521198587923415419400976648465618934302890383601612132022163158742308870173231136052182368681413070294184681977978279160822644272320855535422992387384530012060667584869268000645270928949366532945324828345505203223977230330535471095787083342819278844600181047052766147729754929150040132375775670016867649574208180771543356945633543564008038835068711166492771594009316790885928479441719287785273832143425309861149280877228945787768309087637077650667624984425498757520207744965473551289661075572695535063899720781462111409623850436298561517259200886000033700601712751105176825953421186749051992378052961949772606842751950196293183637331428523987467821022909480552920166995818434614065278890695449306803672873081853653223207062419134347788368562281950270444589943000158811456996138085228971645266805288151037450018612318576445871920689144406291576980608209303516983053416150252590689247007852102916893008203797196473680564271739504411390522291445342449248566999877637402394760746557842307435790210419067627566801600639657000676324992119304140826998684768192409922867343528777844781454220574558056548571257649793982803915352191059823952717450364158240503243128311890584302303726089256161293634003853789278156215227314334866641917342389391286370710735626227402740634794767844467642609892499755913393807901150897252732144497108483245018372193902972699108244926953372618533106966656778355555523208056817381257041290297609919324615550681903350222008970214312688314165752775427290875569297885450960001364228940289624156977629079169540494470787737508524603104630352511236318751876044542765219667940922751903626276076954023323658851075737978066321191645192829145368602332981974977706214180490076555872794187452819235103637508740255247311556693502144308753842844383063776901585441518334977468550278454800471371403748780755344563839998259102277668213228744082877155026600214772898970943345548305187412651399911447046728159743776405323288714826139227126807724792461484712507222535469903018605927441437837069611870811422112076672860464271437595453981660385042385948910608254049800238286412343155917644072897123728479101329536960705392824618233462443778138103960967359313851152421967933312142111561242636262056254502789958249505317843599917791174385887182611061579401275401416734560367266883897672954833208997187451242678199405256356896873296928247890148910573654742552279561838974756924278454246584988216774020588994234861957504342801558018136399689606878405702091838348672494731053583735456259762565349186872825773298375845100857121434193303389637837211044901162629058742251689514777301436876875637818573316585944281141310528275901672965720720519081681700829750198449308193158254041322509694104543533729001230443610928929222548304854617400843193780871999742345545662895215483842654037761608108154795338693863964813238706363477450087079043544998457007955571316102922594438634172512606066357607486272556718042457994764068722444832099258987645150476048714772244434022401403853586484594262873691378149302655775871486742471366343177409759189896791968342053637612000072321843558932062044879970560114915067332877737092102666828644468679116425803613420767465419258853746015702599529522205181738853235466694953441788226788648912452009433255705149733711118339495477563596948377269752539124180422056200088973643039556455022498876915193550073684865821950564583983955655901004776276028205402603095343263675977237943093022218163967951999515857998326135149963588446773820673726353038031128714731304534629237886126634039396047985165313133672574063891830965928069196914371971536267667447345671603012251595178909776902000541426704811696300432014387341402199160986894749402409492697016372691557981192029117758611986392898354383948655455505981525350535935262497573467040684863006672582724203321084367333534919201188300812124141384600363721384829554213569720955229766922330683593652816721911964883754562764501733613440636754890484209491671688399224967503683603129953769826406745902567776898228678452706272907175901028883167861651114279180733693267966424181468264666226091328439925951431021284195862836196784933429879817260875394609391259505511443867147002955467093339409009401357446026919320409638234205030511407846060869579548294536505238978859872749800973179168496071203362860668428615773825570339297184792996449393655345408299028772715106111539979769978125934591130944366928602401504035998010443789245106641053148263891876587004159790099604358468848706412421411743104000244856245105595153497745940474610154009540485127214761170725766805203627218772801040604118023622561348913492134691929912066624063462263253527724081063118539598676361837900172607594125013460623740790630356248101206363330192286239650388696046275055067835263918764659550285598749306573480970091841272227118044200521239915476216757706047388689960214153878674737320959306867075279666960465774635211320479879626478663826217528251515159433717159842050389085295791512394536753288339804556899196748194066163795340026890886028882710715271805548866554705760362824853662926774998727862853320090434096127198525750072109060180696219864872159858137474161149134206983079170012509492600995779666903661030325926689571421108217829760179307951055208730641218411697394390666088689580999526796105455492058393081324673513266348794520970258866897157224195901572285227200926154504571917266544389110458754494352145275874585832766143243573622915615149548888429896350698888240185960599448816514265378403501923273778590510577865302995494802033391351500865598323342957669819162623437603878098148985916362255921540916226150443141318163143803432372275449283872523818168027466052027524223482467775476274591160875097655399533244523390548067558601840468821308005358029267842390078186391946890216937742872178629446266770178607873140310959224991691357223461835206393951101855537731404226771699112027583961265793131668846523669524133256723416322168657259823455663839537677042028910928226585107651130245028896680071042955731669474865916786998474089396529921878606631334403231247805305945157080200589040909045194877453675207062201850855038152363111837574636657763424617000387711995202455566876722553588756026645725794029225660433420427052528042300594060935197260785993491918464697303731780006752717927674872891744170307293579578902294018058024831425442396319107317254211041138721717791628402296846654446440385558985726612233470987128501188708116155205515294743143120019111073686796024708034570478165648030309709378960186933969396701064663084439616673372933046614129973791885386471259744732703274087151074360148133019691016804265434359442071089953660766818353412734464750914428032853790443530607801295239247284269940620403612889326188758591687211935789482692709226341357744950759827016693635711412887059075950095520743458857098895021209291323542425223211215812816536820810934042015907810472186479575720223898034057003831972163108184347175846609782872848560645482965647861855418935630620770009437993260623477748133375057395953445605078145553617122936128561437917401173456568932439652753944550012773353440141209692454368276167251945401680584105924955038814190054342703517590626820560675035455328213267894414334901894567568513633229791203095553969916820667088276445874480063454960748740539983685023279416049501696409801158957399543398575560811468989609115441056215476401157817468588140950684116309401592459025013586283964899537369917183184480775531552099388292947727292085738429593742258879069055219426144976468238673581863263931272435482190857918172129950267614444565190967094457604225731246240376047704345569128523824815739679143156930787133971159821955198845569447913542747321135556312854391883379033758818197368109697005530173579781979432531775688929107246786980816247984988209915702572292907767382544420055389902731182326803851902751359414456530500383807291634024422965196510053250195167586976987216689320067347661697944170804516143684497554760194447276382650324237352213952837199364999294974396730268564722841131162394790452999755202322232627141716436204670585174950647318818914289503958081254863201287470132068097872396190317181583089570408034477995544413081752377841335993286291653917737269110197647224524127640656914315424367033790177113126251138873661950189761274166473015186915541794665276450271427308583921753562117796857698923804257738162606513807847120946595694179608758100251350365845309349048283479401531456934533654414215504681845619043175414783524051349380416128093156403355771525238458290802238849721130569358263224838204717647968690578685387029392901916620208813918426276127406024314844729892969096876576918984879859860596293333138493554964411697393953226259648708227351245976967737655506144410367199012863652742963466394818899281450558787094141733164299815418980001124000193827827357880461393178433897520390104449408744344146398306045709305878673389908402611006231919406081841602116938866611735461144711699186247797449708008371172380960724059444451528909477790233923629962254896103538115504947098616806922580504264752608614080119276551433356282329783054570322657425286536792438279050711822700451918909781725433846623951169028674992852198203608855166311918402797063946163418715466491867793850662545002601025134556785361084948896693772022506278501550645697327628862114889346307406363428864814306067618247088503448010852627259309463910914643235122072738811173525368477488297092885916473777407863308793017751258227552551653449509177921878151885742801601567388320073995606069837434004025852605554787051369036426565069154063993757013713447741078430652434923957404396998508653795882166091156650504155918539615898675722238155866579293981100638239931990879573517477455806642379909641304508391541563459407874771593069635311576836056339550503574185802147357967621125163034076166287049958966522898590235411144695189238348992876469086769233961892717082043220295817250835994818564878898762964046695154672343209818234881667117401794400362985336118463476591250903159307097137120274570727296725864295169187175788873661933109535842304667480140487958454567280825974460343412364286065044317252116014351803473864556259429770639641768510564725728298597582597989910744084603234452489567350262617157257499844946425239246741869417910450378324267487144760765762663465817430036449163261149503221126484389818232492249736029613259301843676036703421998595088363784808412204698745270436731218884613795698759641160419741052774496918271887999182522172333857612627059778561774092190244753331548729366244406639107071899383995527644128402008642055872218567028076320982441194547855233180950826322712960026709497140300825265590290206927490791388535592094079120638276226137701805764769025040721706611411899623393616129603375907361748676528922186827873583020007808065712773849446371937906639574906722010546245341758336662145883669182506793050227112785247423612344283458723813861765486333380425466464253066272172896191396621511528710953720637886268807579627540041597778931214459207665345989778719917901488182526075090517164070485771087038526761633858563509462689927894938254765105207337268352406012132363864716224770145662887363878085529481486639846070344214786797920450340016730859904522606985924014833442299634675742388051067141254106186608748509305188487361244909237860295590907983024505650090288083585266676473242887346505743841043922130552208738982753887186955685714005286780955869545792156019197756072343954238578385581893297566509247724416857059800582213845623413996353565044465011149682583592578670277031487473709062506795144676852522975684396050321673676539719351910659617737687164877511870520342914008070327002270396642905307201018296880729973750558620083398446731149205724887321885911666623811315022552833365473933153292164035842875434657008777926999376739718171628483584119578316471069799113972129101780375732339849813471988225961519553171030453441523345260150910891607962688820686232944193249916226268336875832371468753293086885360182224234863425514895361037041198684054443376519189235027161832258107577506402753441543099833510083020988803213663368139808532420243537902629408818574471434332851078327900920506705236187188440831110548216354932361315219306720169547471501556373363252516555131168946157073789536290610921397417571767127113951133850527616378627342288299229144430692631000286292172328800331511192833406907259119464122403124649134062969440651466058666607530430617087277151555673380979096567144307094087312132676959043854618184037499061421764947282667207121619181824516585767597501485945392698523661882246205251011820022036045531330484697373310908838427007561228696816898912933643009190726856981351559776922944374651069970647159994625876929258305647301108923876023075319186228887631384971440105951242784116059982903312170819850817367435630192853459806067848921234374525394246287755688962372618086886817809484331199060932703041680413365616255723896798863102320144036650276906869655875428099065580976339562980973110545471537732337561318223357285064781989816205512715569382040893053066643430288716817363145278584914419582585255179299366833202041913630079830754585064105581376071308111151315033365972770490699119530631347105752760074052912219444166672003261092644143584679441348725268359188723057302239552364315754130927225800546188096738449267142770862343396232463820396647405242159475653927029764474555317784126412514841236913652902514394509890091054521718882325272481149993489981142091288651371330609646221564545256246239275211211181468321922329064450878168715644328084359576741884945991149411374146122580739438679620379978489105360370354011169771347000179163616863311645957381123470302298961167501718942110565104023756897605971255887405859368602107551268283787162540655556882166905241517750500730313404877308811018500778514016843309164224406126354963670205061416009277130113855577823899087602964927360449231434755028517816214964859651130878703106073884022115994506797913284146668019216120973607659314969726193058182173052401010901124631816937198929451534537527544669819541082034035964383208822393138682746818777669910617805495875145959903492241702876546091056582580747994080397125363371915047224134594510472707093327198469697535515359443486585291290373001657655752061249188671947877513874430750065376581604256612802499766067089268555675362409615967267983630941441348275737428336900774411026278100015156529524873650882378760026940644210124114760185679235122204862140359219327924668761298345514023616918581580031986923632083148519277143419623005449764524343546391404026974316514633365200644664682859325833872214983975982261954726937706852702575067001690881516970569657891122462809202677077845468256497242112461507771115797929076073741672656746508714121685191235605955826200484971272397340155766930334892727508934385734129810648833933794893212609838347368484128538805902160423219319240758683980082080500403566470673159117595048086167139993816075095576776513922389611262360174337180359710834409056905508416370676162030138460079358590167641027506833328049239401984784092947528684445982527858839409022273388275480449373586616669066492283852417333744760990290693884376165136924229131566677489065544277065659277476980199103060248599513283071596456718883956071617129727138628722035730579153312194311624898368912800665181503125825109153322518334540588301017135330248659715250800820787468133591833899134526512399201564144174719931236726314632782808924860774031897940430132903823603147969965968771151751865575952079082110973504628635598168340263051401716614248357290291839989448336367502804292706389603014199571200273448832506917435304405568824389805877830208212204827495160068104001458827711204853735489918657693186759935298766849950243000911389985137342623174377318535863481492870953079436985816582319176362116364314169100928644593823074729137316460390231272415633532959809145802655105185785348210727682967552137287415213831768985256854386536823299488978495599212814614756392943715328643616887926557608387820881411443627758568302881263152844942818928456811924125987250307164530839688841086547012914469995167510594267801439126433772466160455291514866831491690201845325131709828888140661900362753107583067092408649184866749873313428431057781652449288773396564379359035075102028777346451407035837580913015104686867600862252203614694952589898926915943698652806123850306573557880775408982489432976204832099597255277124762391559409147290793988976791598152264927708043703635144642733229614686390222286203574529434901468070909594473665097065815803997378500812672833626782629110305436063626803068666702572740141119016068017318851996626396788701684223845052455562742793688762853458531094242079846319076123783277320103500223285113540843415610624176469828728670776130769432067540627312636369595888789181844471830196098625410728490432874562750041772689290507568303382523631785857116369797803088444946914671298925799603035662462470961548198730995473777414997820648475591447978643017966126961132539954235407984320089043754658997223369991766439442751790846756821321370610550607855106004696487937572089671472838622274087756075041907405630435980612470368023948681061839205460835929734513799919352821869049861314410651234175099625442013643535056405351763425604468851206969622814332231880835002278021737513860228292441199390555960261864003232262299734079417126886707578055746782981310444864985937868074003456195340677207761157413553633651113897393170592122686291949985020290599933654805755732390428850970248223539164529165040988718173889685124742167809588196004799813545114017052364843177399365623462815973307611956989606087320946332677253679087648410247336152634680491948197665723756378607462746487267642358339828216089937966097529163201864499210631351988314896574003447296899397905003963417807247166882979548257479781851286681338749517808851072824654750822111714519163396144393740775286439651294465797364953191639680248066299413403160534447299545362473153120928924662386885245638297548689076136733135398764793562833365420022158280938307691295968538200614649820905629847703669048934336794528948950059644599774338557291717249196183503906911961019231704327621433772305107730737202472700188477669066591821800292790312353426770684761738748346100723392990156924603783770531095929276313782077590267027370084158129680185644467867784854772561582441242438835008418385730679605413685287326738004108818415843771049918548798062362123388763231568304155888822564600121865273992543083180692809293291451692487463003453485678928139045663796390900308354966472829297809934394373243757750061887829842514853059688453844965468610673627378701677673520824117725797272064772676332094554788022286720922493568605913941717712912178471979869147449108332818421810798495065977140093585455050880478376218794118622424575894592764078690724026167772147806852833724907572148751639701664219179577337564318526014748016307670375753833468856311465950667955732038771656767148032714793727626847113905612619096365437033504970305167090531541927000054453972239511162443087037461755488441127449428596267399092243025382923187276336931229487233903992445832356390165446263198130985769428718632309675635663117378535705218148849825808752031803670208312284276815135236013531503867978342335887820433629990075127574141554626559712895988868768746716897038810482837956800820321366894505121178172922687755317918043166370373593481251560991033283507176308761865934011871935002347944522401457196753718039233843210221135596904620810142751078150780064444276229396486314969898038987600800951373893647292447320821859486877603627641240804453120237064640045623399367682636875557754900395209704282696480016030510477732531975520028698836996837139008585280063605177054454060332188709029364457485830989918442818649461463480501943454736906293184302178667348493847834281688178868805138129699542943678946934607647249879904281280623619119643158165387218962045181210421765449713264464398597482440491995398228552858072460952771593760339611695904793472336152052494694641735887457335104619950480027766042817315797021487550490766836837848518745439031065150720625253282634728182751707545462291280754258947095707268787566514108273871475695970167907656721937501542372377878998627021298855820480812455310255500794243453645379705434471979679304242612467634472261809926731451583928281708656251014049666163209957489642232631565990307275811147557730068303002532485849640622856404026262234199832806449400944463336463622386986955368762185912752666665233566335632243436833114293266588213749108928638096002921537458071672729523139764697192977510418925366907828552157361977174602755336809440093112230384984575574890046044094971271406993235612261978542937803551130093048848618216739808551893350457924104539459397064428116571833325585658766671316228680784548703759617873993172971160449358520039701104028849796451316579982170132187530422752559778218946764478354163883225523143063033800157456965664406483760603050367209640738557649638076446039219727772452410269382552239664621793852642924430673511516799746127548616336939118972990539769403986697057166574126824480951357123017401952018140051142881938148746129376916193167282587612559915690939842075751302693311981393226674755225024045712701771412833470231541503711528842413260099708070758451473958987682756823294826146299106695660395951454397425916829920177763680042271137285439429081488341478516919053631693527208027230885688097547743147673948616509104511643978681085611098547345640087898659671615399116324648941515613294844570974553347014915530200753224999159981486769328759488984830554017056162432188088945407961822980106596015828864529569346297879658912651159677161757809487026075276811887709644172251259036913900844042165420209247607772817087802298266647387407131477639909585011236334465064409989180044246002699922976953462180879062000853293398638872188949101555589661647853602743513562259667201076724331247418759299590729540913574785322835448326834081417604497079055578643142982397788646064134024634725553610601160370436757992525327757871201646733264095694974060415516380926554552671505906325960805670680147880220070362699254163767446772909101857334684150509211715403572416593924370899112839840892967782973097571926316449101374053650456657485161727120799262660225761902522735351168590139562998292118831684067439706029839760730593330193449413093927230301179593358337354771345444226016720180169901448355572331869371963038912756762388196368564116854471860116835694424081485427925572928841696324042064434619640311213672975810975653793912826721622423241264943909551681849356851884427236206417535219026625717213438324140365312690118044409812040805111676026547551771684135371546194871137926286280045703235202852179514545254745326350732155498657378039149623903898728178398067143394140868218024156981540121493401998581379725659781705361292574022979706988874330127149627752962726166027063501916248009186858464427779472658937975644637493767401247587558750162575543655154111000043179995871283636340583468958053026539760133444878304468363891408576628491598506630968666487741651064722704605598649738204703174016689912893822188380230729242153974944520691125345822241323019566875289397112248808987555011892144972487947974774786370984578673553044678347342680467842837055561078946244185422384938404567675811592925770102969706397723552020042009678159168373828735357467817365358362787327247955756730080776057741896433080756732072969034611423978355229773900340999512566617371223082068015120144918032496989558717727225025437958294199703492438187484527748054697321007298480915677853762746129589057945407498290453317918292812303272119687789744414823471037756096036132310716233867664300119657901428669033360445343112471665325051491120618536622912059590430545270388559709999391955703482495583319047642940018632741592063353233924730474938498360161726697739760597557121703840171680740325390025456465285311718293503920456058819722787133229633787335482823708273906456722269071126137082983577369142015452672464828131388616330932396239461847272587045178555721200071834870557476218220503626135377729961770190031648219009602383756729756615340165698084261028644519471481593678203473785601716645164862095186054330220563697639071313060951143555750701918134288920735264937827590234048998407775936043976893156590063192761885095673348522063188394387056636722525285361971752832757271306121801378120156850115944193377753172508716009834525600135465677666711147763284736682835456724009306620468698859204153138024935460775206352632335203446366311592714161543579948249134072727645608737678099602087277084700828276896417661167713324671009502615066421858221073673629107731244532881503208586808538740592345961337217538353373638470028596686092827458704591138413182819589564069768056835519904243665466522292827578643412285603576525945994690776460144804055793135879770916008434045345173185224884379827896806753952323852832737898451011323924376242078627962626121532562093659147378286236382160766342554968318596942866887611372664505186784813628250928309639002795592948713606726848919973701047121578653741998143911143247660179692516457452765861928086100990510986204589168443627853293846544060349248777841431404616367622372331813261321895406171479470631629279342474594126802386587380040823769046950013769151224079356348156771031624037086565017020347888213110591526986221254942799483260120075272744630393708105823877283033921817523361683987790556193258061572660397607554557922251900980277102781369621119827572039705380632186222758749130052966256047344895858935452259773270330019372459423186262560924765043132116068017551947163539348602340559225627542012106449153861165115303580031943416645394654483916174534751737859156254733249910694098466572667616525765256640216819087213764852880941079277935420568263292534563926329853818044047091986947284111179630436083666951854172568232320267886280767025877389865461060623374643229573299056486253061889964758385517681284121025669151723426626390336986373800286517807571608755684471988740527967318867435877838945844763607983503492035333536493354192482266951851470295395999207542330631535121405670356652672724309966875139278531048719681370808226876407983636737372970617937455430314654484923062854719476633686765361860602770638184396106849888221188934102347741734689157130078961287645787736974808898202848648727032700095736597183172749831007283589791852471624028225579056968561477537801697751935367956079130783504188471518314153684947020833025549318359039410770423819707859709173507955493382391613641055867621162437552709238900375784030456076844661813988763179087136859990781318958117898649338052754020332538955985099631841796453626181557828338074146614569448778959134367224972797668186876612890669809187569080247184232307016501437920399250671676500743139514823220207581016997994124102084162949164056927006321750536433462649004282374590800919613328638436832584552809355210109318724418803723743544581993526408939882826806114449770533726090061269955105595320652512143392751975470382419767910816182546269477518778671938904915469604149743308909334512676604753822733135437693688323095330380595110469600301804524613870270714862120903741202002352875178932773362914156755543715133020515602801715951226678777211808903767920733024202610370291370724413654151609125101947040813561825706523207159901667445116317855037833882908795945046568987680060422551867634678822385158855730006323567586231027160033185780703828137835151227981489528181123838045545190166704875424457878095889345127234083917099455910162268904571701064610181158200585428174527692130414317291200231942224330194176450255594630534511395866213277134362912443689271641176979316717414904794236994818628616825321790858430212547733623659481552660888188738653382945999752803121326463001213953726548465645913848946408428135043124979795246646266752581909311436238489652223494886206775799502634961045509872399418517172698927869588507478160065486735264853234796990802007367607948698084707970390618508852622270506179585705332615391541166736843387223145347426428910936927519780014433402684503940327258721541830384893968262350201351045496747395826608131566351862388168661904988212226999496210498761178294444992245929658101953781457213951426642421871954959799182524569329263411406236627429420820061998359611113993350081680312830748451682469066336376524924373092486087290587892120374604773724448439615967511641297918852110711295986991284892082652799514436778117363699387764267271004776236732003591805828489128060819653696365347415880732038220323256002430410266157237350034586107720838517851145397795723885315709276059283396576645301550137867811011194018337145470588258389178604233869849441507843773473131575137178149743407733600498173631164619795950371317032833907471093823827096986209521642985951316050133489660317261708899606900836007074892647105941301066584557293967357724334662373469279275165363756744950677945124826831885795519931253413167498267003710560147705466849684304219971627922788831848472724074038873748088349525593993095144412954562545240444760365603356282379005868005089953034603891100467703265436738361712957145441092163862997186784024393014280489831800308700068192339645619230965057929572760553509725416199016615387397604639752644836251213558203133168700075730258975327432583403160003049970262147645831102314929775235655117956514669097068985602626817585382466470989629206987228273055123162515218161152346879838845320604240677952591650594946718878198603982479423829886151817193693415859717675399425154952547187985869797392822900693254489876667071601853683857413260534545134156000143733205186488700173675577668716219243970367506526388354223672559663251680880743936668104921111584747710368485008327468699364639932516837212415015988789609827825917021204858244217085667403473947267742534529273117849742785942707810404110820549142992964251289025602895547611595686521407906223384923119919146416670640879986790488227481103882073213227123730798312556643811378701675160944522006031305384483767794050264416806819699233946316636118794300934350222157576264821858745873857712606389420037988931452611486452225750033842039774274150317209361214913478788852235804701455169245471760233507515171224209345222782919665924971844597345767991973953355525502325331262705834577415890810632263714648270608637507711925730059675459037670259352227510592627402599970033246224401182824408968473095035380219878781521356138401131146923909513170686477731688973194363675862251219040551702885542813228346288058661655554246648153061018652514703592266988004121811699193434283678685198370749353269539792385961648136340804488718731069305188341691596617617039959836120901436736863509590142902245452744451634923300025519449785678704537113756882131872054950312075770384659486688706869793045380899718649581319043814368086411017366721701516654848729031987113416333156498086606715376908677833566595467001294053538948523790926585485907317344624324744178591112805792145824597833383211047176223915693253416430850756785156821960617290469721602355574254692638465714155569603691013085017747174415581115241235354596351375445062891996711990750738873363067825261167738347475121845741041081234709460895301879572157072127298616224220377562349545157740438913637824355713370890983741700939237237702074295982817215951265531744754202457946346484512683855804050148634859628508216976255502097481817635086916697687011758382833866712379317329728602827801704852598106432118761228573342290846414934059333882990622650052254473806123710806293341587423598786388920614222450420168087641655832463292584831058948238637244870468607360714983859402749639109823722312742376812726236570611805672508182083792269855756826172085360440453838947776449304885039346357517181444997613613357171587104459050691197645816884911838349913853118579435966413675642632343843085977950245758727975261119198859679620328554187117049121479779944053324620806836908176764135601331872744369009165006308137513928318499416913988119457508045483661590687670358386351737967269854264967241230140157493245711650744892745994790687531418500574721100132125327030747705478915878514786653090932101195105690480511817353307922848598547313666894628777978262942090800916997225930430648039726814001974797883606332337019074243710889813558596631574112641195552013562999254631730567549165429258927477281955324639396396160882108156948110687499860388845156689311160258493669361641587703887668472569473378232547917605575225038637174839189789948369005020506772653309457132452435488411462207828202935756438609464755179940351304647253931116582311949219995879996513877028387270072017601386491013922972867199155269086203828030097304876525279083408295770052742134970648403271063391793264480553046222123567087692011924797815995399951945773622955470509767658864250667300728940540650872122792694634667727740525565280478549593934517577148455968795137728907412023385725828083673471612090747580848874633173908160069913429527781578019395547930835859926723162631281602690802993356120577785069091041053394690394714122984266758309954162855774415402835430257377335931769686865151726530016952289128250265896471643682356416202854007726517923477612451469850817087258050203583142970545537126522561183514822687607273925325139506668534219662527787806147548927643352319125375230804412214364281468420704254075366378567744427445711109562630747299683624614280496285994546528652425837332174663045648186457371717217210418046683191497794899602835429825290742417987963291936630519338093232272064074632718853486824967726493083741210701821616509834726865684397034341734875377086790071982943092141425830169021561992963457356358362813479413795029754001705738349286433236799578012808897225962420684563660283999882466126030526381726160399954579861714254138915973454272697937756057524157076627877249492358355035851857386203074843906381899141561946286387449949867172409095446812805946943612747041034815509293099478728639538364858274361524305004222488652407491838966862553857661660055467057781450491646821267945740165446902989690235469489216716735508699115705367592474492536325859960598673154924470559281461051441322923285221847246751963384717619963672777934053225709181929173584614291984598113395955460517890028321358673919200792954706378261181640300873614971984302648466735137755824865607335073998243902786469470735886826888923161942821015211471059547931832862908943939230607848064264499042353198806920982125321613482012174475934228089344787348981600368032002957549041131762126752244412444822648492747702731573340840052965998410744918265169833439502477511551627580094515391584841519800574202930030516163648910075512384508891509128898877698787388732937833971223863805576783986529399400686153715715773670782759144605052283678336707848497613605877335713022207167494959876995856736671960519951461282833806858246155714597318628737808193975200795363518749421853587419844875891934401679665935687963970872024773564919317177131586424475582292631342085136776805629809981441993694426815854782819007929811648848668712172607376447217597448788257392087111806776266115913621323090989219640083758122883388063396660357483807873347436731014035014457103621146011875364176115293004441999082665604381523049047621144507612568869217460820001735718010571105963609380764298707248611166033564689966493385070357254919780304255384725509891811999943570143979117099891866914248761986431504758574971083664975119093508378608497666758599738253116680507692092776404327690321174696305943130404307955871856510544160447166450393955919301224175026668657673821490634103106735427080903983977760058504625836180319680273678981486232317031046992280558993452588851717875901241893059112357581922713331850602853773860122467792266750248547202048962408066011990764478546090460604862523321873905072942134648848442403330733510592317648709008102604517620061983621355448961252042487001741129703345014154590624201153201907866663562231271167018067381981878124952066383664652824652250048521923543413280337157358467010803635335688527885363202896833242682347856656809579740478978658410866622520841233500094438390541711535326527367671581217664655258503769351584574222153922090934131994418737085902631348691557835878315939516036110438676216089050991062506203326293122079779673391240597030715306568900904037205716746009712547574936041586302334691835362413331997600970492018066775265673311880514675049591980805656736563178208653564393226537171359585422011775260976842127896441621623095142297439785527660396212201131435004297039744641429318079932966832693549606734128648583042216256726312637807200751946216439683727241784404105520238756841137469810853680417843382077137638515495976845116780967754823681864689172537992418888977877699536313880983926168267605808265972221286284688954421740146328849143940769110983484901599538769178185255387756388429191583059351800464759195359431092838115667165314052464718649040509028887637327095302826115630078452591966217682119130128504084575377442299211707295657966379574143958315054751397979310733471927622606108517155091466728743858615059128916932458317047949471151939852960991580931545510201259029007497991633412404922283033460542724028227068196549599248956889711020171017248391941468246881356648343759161837338171835591922688135821243167065170955608053156737047043116522707915397679400307971559151348072629422334975780923613859672415127718130620505134300569319926270510661588349342190985725881658205863869448879031982492451121989785646823185058054106083424708098992404297964335260630519894932911765638284288748780007967957078240734635636308892031647751173370663434337693408142154816167644064413225477015256426440585612027162037568787775959819849827807690094919698512762380678457616645612439230765288835828804486857698248714835899304775396893394763149166145176217428864067947240315324364227600584493835975784111113831005352419274117966452166662277514244498239337877976897153030988674441066819591368180499489215867150587432588152096112902729380103290832566958260160083881406821430036833591545164791299459808843970508353422121463964311172060960623131819006499973555643877236874858188064293117503692267222933197773773979444016221701204851861148403810494417337570221854501795060959356563178886217122526567586760810018912224946288365040022104662540452476058310498440847063519400409553428370311756697214898323419865060081209015096586341824677323497823423148393977904658168199436053053750393027647621159743004175070249893886623743840419558760437718926172273250582273191868009180467154661345454217790173007889470796745340369033245660090149138477684987427883622212116547879498124927524534552806932993158029755303679732805518015066679738138361424992708901548655170246625211540752068935576956918200906077498188528681496667061538843679223844503118965718367624797005147754291671906888011621387252751033312494930814527616688758168896622121272131234756966070464783573600806195636816871573592303669531469590340868936408397724713674744037939611011114308492380872747825029213199398119522164892748723536819187199380082394577204468260208768006193630919270288396726508542600718357709730266788306711369301094454156726975521888279436643483798335113202448788687047254874826752436621317449826226862239142033070628591050027663864697755626309758990105295730333232346197048187746020679573879278104346292337528351702940256921576271005119646641523700805830165044024869995215904922123679404811168142992310989465739100174422095430201147469515415536383532608175965816178151517307495333012013878495440758573232194034033390760908010896813816855736469357192400802145262497445637065671331603095232973434804074777721617210360396938583525221703408716049890438969940347418117701861384789364032641365706829998653836241467582783802093221580058858621886800667896337299799658842182924717746585444158662245273615545179783378687689770313689355693750520232673531302195992875029840371355228893114663517100704947232051777026234019480122282126261022710247260412217662199622404155124285590999392491158248700684283853863682454581062725413914635020117637553645279163511883201213742660871945471679157785263729462928979392731223866748886985950936288451809187609698614835268986487649469781532881245845229075893733047782077746551282272065511708864742935502344700792500207805319529919026886925423503808148947021793526148607291863892936329237830498230895298436729502394590057225951360112067365346273521130960363016850397207913285426253022735949189846958612750552728293856053993730875136669930181499278770511361048921159611302068043334655243854443455542482957976428882803674331438101963637780027376846662411478342615018012033296703702545836668791664552146848125999378553642537985710101261742146756728816243626692462000323262489450184339816928692765336803204362830506206049277268559123636570175022374714133745927082279438574433941667040230975974219901469205536672554012837237265008169127810017073791508030829967004177975752600352046737970274892551053780888379794738705195356156855898898556348442028343813668648500766852050754799543247103557991840668682345629765314929538556278517514813791619438779461289906226284532899516034164862027321613928310430555752915896013930211219459282511942913553634145291847420980450907021550061517246890979230251033168602391907075693977869081281580467399255926144012851893181799915608137217998795114803706175367933468832525196301009844701545033946409590534115445084323950938381429112531981599124945301078770302215835750835181467069367041086333138765890639223253715330637597557191484061278279204785587288438678157151598726046905111274458084535240590049362805540497195098990438640755940535992036793195134424616398953614375293354088347515924759207549142518061318389203074089726745275525406984439751342541601111473310833108886138291341243214037951160846676269235914086948260041406367072449332063049995763082465701914193895659249843493569303664359764412259861957597141396255665701694219002259240133132682468295574383328037931712527312837427052236467938277130216230094726772581411522173539955003394707812296768062116864494254820941632178589053029609510581341264898093184998740926458951333080521690340148835337340376197147688341419446572508541159802653058382474888670911760585651197472045843883561032245578849880301713939175825929221250054791061056483296249401574416793874809516481745749082126768801920458243308118618577853179908706979407730729424968793573249180392535562561885239428750099204146641633158146456900352853915495929285913701720174435599423759178447970529786449407766874487408064828191284316263110317040465123528688491818259564953068440242277495747725631100193729324449299354204477776984655268910897572986517688453343759205657974995676477747726093547339879886925521512190323947100932730276976646597510813120691289202706958127139859396940829124386190512074251659452888862674974659461645134762479779341974970352152607315467215232809816616152939970302710106966956874351920170521200743441631731793953053987966796699544714879060429045451507617138316908208539311681478144254444181142411817118235336814321761149123697579362720360670644686182579698000295604152845407567256312755477272019974995619965915515511109842199199649625737946327854172981098441421024794399080755304915128720944383512242860982104377025697325899233158559226780431064454749887213190680811396058887708112061759461313774961187515478012758267414628293274683442299680964167260386450754672694166121265215807204646658972316893700733214941519657382905285888215925096219696057160294211159754670000432479111542142785255944044520316967048734971932616346180722046538709205409811221086581841596169441863271780287248751609389349448327873644965217692343040037294186776393828547784325628895821285897222999689161069026294138339261917077432445900928129782603813968764498036495721587813489525378318623755987540924083003613704105017155350809988840803563572845598382035134367527048517064973505582187897117744098864859260330220913678954067675787159872002797048596691127204539604516820183524001681091743728531906503743151905008649824082371649570477364140995851405722283696740893449902937187138421206218745736152653075059014195194237816257461593786623950130727205536305804095163910041255066045822413309799464263127895166094867814831240039312365129178311801564317206894376565441637333230887966215443621957341901308816268354720047424122044971841434459588485579939235418684136350456999585039384193396197092228255127412504976459686932743772943582985308582926686211102230124485333210387555752984580375312256102986709570848375453840090971708274210589140281430267279419767174087179706872670140328452564313039511045731611189949035493867897007211829311886596239588508485734142874060642912696932698922868371059980782656638069169871144655831023720225634891251838209861823580687920600473989513973474550820483009061255427792117268508735548465670877643908334820577836780369380032319387116820757524224621493912026602426400611120721381033686721817494372396838209529480392081010034044752270193267989802818793039290350042176459359383323821206718848422142990595981459424254133229971969055781307308999955143504805208712081081320699583303460276341670854103208541294159049833375752638581667958519872401983532945352462759980558455953772871214298623647434549700377635498243400626724628599944363455744899147406899408124529185935594283514453292099178307383819443000478920794477551740073449708178907611737377352202015241766082684207464275906448802643875802878816618598015994683909848602458211369706620273748226881730436704885974340335471999327388684765063466207146297890181942260359471015330377401862021141021412602478470571709935640134190336686112288271481444094012195576513923363489880104431301122554987808689532541621166632221121872758096437421261745135922176663726155101867986415899975900029463692269131179935257068215464453923318554018249336574705073721882675238363140479346195808447845419390666355700183066439425481661516634737595709620424627772680697218760098387448632699722409018695325640733851210702177972328054098002361482116406708049710067595749407296921675338543200819808883591737735810057193943474615369081522754248364736576167649314310664512814734518194803002509146366128898560708403351614712609807272813738583983896678593626854748411431863977545208920176860706261407537738285806415475022474664745006372360371079986933538329756733899665095747208516185266438201661627857780021785180817335911677578021669691117025358996852851315762479075655207185194542874118658218318785698079284460324251268857761224712610259908175915403287304173392953265955093583737709419843935472227353499948797171715599753580252593460015513022708814074506287376488274808191240399944103510388645344048651155667042756292297622441640801682986564563853519862785497580793780593665229415515378400404171742290452894362606487846970494069257248471045344586066465097218349862094232627723693957479383099182964951209165805600001581682178072399228684250181496802601068684678026363290493520054485674445904702727256476405088717612394950861841794615603643711258347530794916966744235812157919359513370004356575461642978615091824484721742391101693043792157834437059562052322913314500552259272980112883785743546873876307650349381858476665425544401648351283755115696272368686411136029820524843883490448635931667240866701246442342852623899944895300915035767057322231677706612439493525473155530749337740159258718708657484549112987126284119194284578091801077827985155626341957895247035118819101085254456483250711434328758282821320575354250866816736461637801491582581571206835461888459804135227509804190482373153044880040648794427435219874938536256716998436802348325795806325413291972325683035633825710517909024989234754900072601124916281717085768791354013130795307758668935862453441863499516758389723663127281689511800251431876592248670901661324887297581572810966833965378152403736125960491699024847927698428301100262154477965550037947448455528771757525850222689267647824680804052338712256508036012856626236791438401305288054405529146383058490189653669464726910178178969416506435772091281067800848312729466764881720143811850449974733387988934271237300566530986701933482996213280008083807895806195458073838601162464642755365758000134274510647503723027820558679611725233082456864472200476457422034110707932109533975453148440936512532250874303329928793778894865840625941253803481895367647014086186914470902394038284906904579796363505095259156224530535797161144432388617265029381388503458858740309521157781873056523611281259951703286803275993675667805022836849194926584166418684328664999995298120881728366077973212321773201484242258424768553844942414383707003962913843586738380251992249799064625317731048872089938341876782936331695012246494250232834494932653526741767309987898577585895174625944741306456211005379147963180990425881670036212350103929198355375782031439421118094631519514417612812682652913854088366092139870411385879987408720275510874521778427050833776848645254306221772374227520910066223440531793919332355164402302594749702256427683409469493730784222132479501598587645841015392976474876872268037554831101426176332831172009254448764292008101096822390607056952279297714967919874345003339446826378559507440443321693077422993440027261654534372890597286644373147623299092395182575934350507352188492587425341487652543592386758082532884032408604080900533956769822383468198124258910417087975659833750005933856105848437837405011724836034025392540727170035284025566097211745554140553486026113211438413147288686962789841574703832874944534782398909560182470007448836154275296472130623248297309978303794081482235861019940484965806890648107977949696101012119608217634562562243014645419820121845334595249083578398931431378644278392176248269635454916188559778160618562228257211212575266433132964396327685632258217154199747836631862892958303952663654950402820328754295606057471562666976347961160742404391537825804137513332141836618504247688298389869172325716983822437500514587683615003368641496305388574794121196672046069458355317833323818257014849827373855454633192199303819044698814217903999659249315129678711654240036591295102723519395387963262951875492953063565370676892793363423470980771226599322461518241702612831696929470542193088055637264621222523072522056990761123440618006155317405046554775682341802257294645788185232230475711295046728713893772535565707422621762484600755562946357192513654313578266605150188006533471688976139430192056415250846750127828439273921146496719349282988365826907531830689415938499767193557168315687481131475119670937603601153552284848431190151628013715406866715941234990938081514192690400262981286671508665842489311616084547887867844949376524340825641154717456573096406560457119191104820022787734661239329106559253395757285285663288854314570442087510971258579036072271235392300936676182733955190677477708336758618649495754580371543147759505207755816492853333493643107577738652739152602064222793814516432959477973742342539402633033526082457484852367114128136194668978073443593591077248965123246181800856048420671989006403954591120516405150158848223266831498183667258074939453145163071638391944058227278816786759949261918224061775963164553661267837432468976045178249834455398977684734782960636973860783991139737903682752485756724920217816015135704949174851103304515486141304497846391357629475932414429469985287974781767134877688827173862120582982829999307922756174116340576370646941133975750293199722336190434655667810652054904285429511248549497650560451014168549274331913353491894572073494588101777254105475374307519803871781306735153812726538175274691429061295910807699235321932404810407224366402078498389872195103683016713030188513565131916594541547836495928811327516248961192753640923016432940904023604646680117210329347260864641622023567214029648427867389692501407165864074524277815960942212305903469265298099273733437542819200807683204502900727148661832580076518981418520401681585477988814533009646321944301713448273731573624329926213984198905218628419802805492490767746740730465761871823460696984537928855624212272423588691475147428775951132451853458013071134630204509589879825406510333567689331781305085048625962160376646628325391457327664142970889708538501348034120126771666956226451534590756247992258058075901631812965129382846577328373260935738834670159846528224011686936159632984045046799970004435404395972430350075410748752278963647326389688198063226140535917017109899097429338884046977885401483589438527610817736724188320182052681014081359501172266911412663775685890965735676329330913621633385635398945755629871408429629053555052156795205109547367388616812492354749998457030292490151011433785779991764303121218064686375280563293882911693355689450705736177660841866002647641210504314748595949154196699707669387333066028709224551902244513489114424174939496117474065991664637472891820342355964805787360375308708855229989143274670712128505131986771969963399714137309193793752310042541456439764936925225150295027600065438591774449636762453260910995465977196092338734834198795754973849404160383534441675573758738826250337764482264581864673428890967609182552869693613457187405406274522118663132700671488393276555795523897954452010968581480806305512450512475331727052312934352398886039808373865540952789242878351360042343318261344553684201166312235091989955226707478127287428451313788551761457850140898870600077379704223267629605336497876830183207084972383011084770075134834214491458174603031315074789373469427684048466582657269475837843677843078895136621888938212600879456111965236437650408325454209375764184317480655237215150986979601245318413274772453338091712387494640404283084781930501235111826529259159366136478781044264741414894765326908646031937767481158222671348829960062995838993687660205128742599543584123240380268253302845215790766483131583349941917596192003372345938792560606485953719444642222827644904197951066210350219732671635587866659266805844824995902208140261566382047283055899587587845254596858401945325831520428479173265764995705962717847973726170327848195428904311544007572036980405606995697299127267094916622192269508843975000557946799735461516818650613893312643625386403444906434759171957876040659308508770219318403277664488687110294490551248279093949504888031671445302814933314848774799438030431235978733527934607782187261759056360728943042114980874187460044445750821839653782297718135357945729778256654894598500390757110451052108271965035660570718776588361699172207546723476335094958810435478165288383456751728290112527160158562268165465759870221392070117515937058135306306343895142984048247250204537459340461475472344947654169988348044801971398637975998995485645513405085198361241993416063068644131241203281557109578931805437591954949413882850687785782772267252486354370182049561408983174604716118134082408192253235247103286390188655561616699770024189243737730146585695853581212269963480097424381646168167461561843048045052321192694638402834025742030964132163832068489763433571805053515207327503072808867402742370256187904227787609434985515739877943631113328735221521183974127958709244837909973424471425499342224547475648800629169535210900703929297487369677670659959341002075652493309684195254762517946478869044060452036466421427650489944533939654081423012306796512982292087812645134218388625778771420614802398024870801123134741945749945294747855572784578076868055464339615323137433727766552827275653003034399366556084812313767376071815538164228095543403516952209202353844145437922201435679591165043623872066102959521430049000220191482674294909229541451703038328700503268603589700867945304144846599050810927425665105847500697704106273043187425983435387120888955003656175748313183290395664548326238114739546112274172487112850846953000844636619930583443370463995552949608161421731950416222528666081421636332558034371544145804560460213446204459895016928873436324101067678026911752327790116083463187542332222758022443897324043886506665789633417627465287884264024007727211520600945101063952691912265724467291204377804684707220732378091587613269844277425947990121916144109854299255748591479708156577687570929703343127220327548311793218425406504976529117935994292563177722897793221484197996006490915812065166302915252249758889612716778816675389038076369689281886159758499568922764385493200053618267683570466960685603457995886725038470350379531281191757198724887579621180364720470512192762825205997949089805889998122868052367819792571132756692422684735268144566726561224525224778784913806488045383964139492737795688847221304740929519352430212949551903725302476752473494187810008915081044447814424386784989818235758334734988584476859566849512334335906058617029820076228077374768128584360077259218497514708377511345964842524786987379269709699906617818314523956133147226968781137891045290547839567774083504337083358454773469885477188529336323118574104417141739144103223744613094648178061850391194312163769618184318286467986443503576537536921739166503176471072473858983667453518899454967466496103216691215360980693537214863677517882261505564785228713738417369012193567550729758126545417132106430313895903424185794789178878153445049830540164515625484112631594395756273059420594164749330865478291507437391627739360585761977044996358773122468000065818942272406184069642109245348749900930258226443637910186952694664715197179479080802693988768792772474933388745698022171718246364562864396253135845212025476481131049780121067777260441501231062717684466310823912416549106965029744765679339344201188535614140433756516357864384385167910305986565970163083866240481546182190701903867012173414039108767253007178742367902927241797709597631832566257011178705138523370607886691743166054124817330629359692637285268157723322538759087714117064536410944447889272534703329788045459999564139158978338122694760082992949009347346806010894889532966680998199155230905874327701173939020771932708318820008947465651862941678131082429519111594260165096138755392089878784157935045474799072222836986028859502210000729943534028525556303713402557903898253282073924031433502807921196366526697926201059021228848565682847805733181394750424383755362478536113084671141747856560365089580081080478879112965622942923944550083540719830434540479594317615603266030929997950508873301729648347193587105180280275468917293468813877941830036865744596883885577843337444142721555469568343688301601586372913590401441751023026885881843271164579003022007382869274360776103693352698815245687298143682658171007420141004275347600890405246274413196683054556652606942886685712060586933803809313995344741239116038607287835618517968980359262384294414736692546747048353742722329669486173296727006064116171563930349010290368714967198032385952342562700677935541312479014557721082787855437531123533759987255102351738821978363704944439967730567455519889859306797340785133590097886293246291007399491839799651772612957171823222299346892198269436717570563837399259036988868286227232801925568594223817259153713562889650330873601824783624609676719528307061884005987159234647655949282615008288639212629805858419906906695718260993468306865805313513809736502324334162371490845727275851709225479362112075147750003377617218762792350944069038217755273910181455696574119234055932329447941675808276456324632016577546967274491647781530566340375212598691869699735283328706701945390887004613272021607158745920658425758786872022332290098002165006871153006985396433280577832830772955459603976356178968342948881169394057441766894870069685416001952079059106384144049580926657087460491459064145982699150791364539002457843900784186326611383935922011299866567164776179242442062466324786299632992305825393200511368525723817794671287208558177542362720917490604882925300304922765657070162489145782436085828596891473136866800682843055917891734081853513721123393996727695034274091382115880739482820284253974625732502978784387550175561245028698238901220617351611368389197399474193162521768973709158441491258866991955517833957206486531507928246050492588240427387470726459253720077935473092780120212778176697497310152802712674310284573057680415379310555013979337476891948253746582091710080238812915143983466829148106390823956835476699435306383581659378063462170487577079064597861843760515057366506038895070492949425716147868877465207064239054712774300448861200466435239967486103986411102142968503099504001888238275450666561109529686715313947962990043897430624176341615473373665942268475949225948220033496028640368772433691226792984925691108786705930320751540141962573888388614600778423831483207442927736436467628271724628641499334813408142243353732445426145471620038880031987337658358412682429437703988065809061854626186122518296241757626193300098313785309146586933117121492793911619825783823097545877680153532003260530558403350517164357594871992929133940949902554562519185477598129490851974219998150282458452050464900076586596978566056971533806478680812351249444064541977782298548496300087437508095388121959389548206410998191603057499688251229690938693627704220316302788344489368362298644111517276605976499387549598129325886572904655367431569079331176721814689633124084598541531426872072941408480892760780942098451047557212871003403599763498133681111904375107212047076340296911127868883812520826763147870075385159802960742328831037039756052374878841612502462060676017071622973407470016739735774708491225082343944954155046529073270023406321652886255551737588803462010721930637681906676073900851542498631252041141775070755806596945250278852653092602610886123904653397482978845519107633239287185494317742613868428650354122617713495850360703577520319678033747356082978959608682284908043891112274165826327509837862974563269144743835328285588335606735816599367904259596187130033344931553403205504022308785410589311856238333293279098720476641274226073259831974259354485657036042660072776095479757630210897921754351537677828352465194747831898119324736810056896275174247761974948078697657904992688786175763238034082167381628242728914880941745822923042907098881439158473627687435522056720181469157806545512659156266748145469193545198236564094901384792051122436885328640937930778196803166360550594517304517090598203656691885071842485853630748665396954206029070443876704992830936183384823008101793349379729570172843115931676859013672807126581894846013284243766588803328954869551975884440901235410065477015219838808411765827446206837142598117806740840422120990911028993124683180302492426242982397666900193227928334802591577649395801899175521915657640095503017255348020627893267825343450127111031471018101890021319078143407087529776124598572323071998392398004757453735111301520410078376856981194416263444209953486542732592752939007021912820234198972602877227548638715274147043838910643178922997706212469704720722619842459415141514542605653802869157582747524837251317315708137335663660409549544120304940593891104866135114360633608395045811736957192654333801848712919072702947883311158030382148685858671296671831236101926349971565032944703582687264430104208657855147454916474704016736099459091724547950115049996511139476189135173535378156634510907649045392746201666169656959164792868942539867251215660365155300278155951165316541841187427185956047508987379441351537859841402248202600920576552275527646634523664316005782792501006193365908160274821120952239780512037445945715839067194075958900981030235086395469785462200215461107031948805751715687129311128473662792920143430703726441152807311469061497576646119246941659673455637886149850783097780201092657603365150535445855262439498029926548710374994966915785731567834469191010396863046427557950082725941125071232716213927060838005912328632222503149259606704722614231990411480781604889824498484030674463532846196461985488720540511204466376279838725424499097797776081025290456299802520932887170210856074984094102523939542699527215808087723963424130055314734230001617924912243724215854550266861515734401719365896398435643442794657863455873182469707280360976869157994510814673791179221535236132037123146305670337109788288676001260567765188432347124518855990375940498880681738604388981270097026244006078625555225101293538027393240165881453853676295786694675155364684679210165579615703993166923568143305878517319689250813621308770064592436572215545981080064355051715520312194676585011849554104949631614522542826173158561063056842945363755063503873199940372672727927250608453168343415355637003554429113970209330763580052902871117525409706158699223288968385818089273858958061533895553229399957753494754916728016054060769133542550388956528313427500438650699061998115782977702601148403066191431290283508296173745018349953780160127407208424725353036387881083117538983840123486654610329690288086374968492443952475308956814632727922860651034087419157976456623376908397812723147796754255129602278085847214603660144950176813710265680537070041666953911587289604051082376998958660655186994715132151035350975937686102357190795974922897663233299907756850470224252588016248001470302327491065505800715709550788253051285774434087221844179969606919723623652152043532753542422799198296358027950668383678006643930915062294115210955836999827887871376485227002457835555400666545963778432053199663511147424825938642991964443355431829771648306956194726069682477324537954301726279286701528596052588416028319349685997850172195062238492308905395654175229315696291725475782143098414909474698545109249512384106350284921168262463920380822691893661764558811847410498262541708238641222011761547393186293022994086741368004220494942225494456624404946581255753855515161613032224875438792370545785682038480808786339116172153929544565661598789692116668835134242797007720655273637803384864313385062484030543626537162214418721114719156883418871654013494970377371961674483520872629123440101901190516636198407518436750763843742704288444570428490286273113742071483502369450956433470389670255664171514178116451038334076037190423148635992792615855299142216955897408687733290740983152144561357843001116128213787382822783255344799178147801491382289201851280907292716951890303566810829056167195053413801354374735719702745101230762593889906071909240864088075677436718479018858722649979481682930520680596114355848136158470273000586893460569137635344935431229697511488423236254823196919456910338664871318499698964233438824869262412052734621721858839138876079675757389063944969641881283078742806921077907611947612296659097925344446731956884837990680510911981944140355521076519276931310177750444334576422529866758445182743420931441311547445011773034608770100009920961425686163366891503645312955284748069781591625891527925368643746618830416136720750461782274448171438669432357244346778140054856969362174875275608384359024074592577654812430730606475376363069218439485379325926844580573897328743329653643828347288919421199424551507424553503269532862973453304413923817102896330570574701050031960736038201309258616891820785861226443625543557168021861405204824984092943135812551449541323338944269252616349396997347057195196669024941707406464083748655342127019883813675597317299156648811859765335266287223690133857444152833365273959126450240216998832269188910597688634131621620158898006703786447999798908578439758824594673149110618521276257079030844481882854592631779467846630371994129618294628479403599952116856431046861635708958474008028575550697798712809924252841264716970276436738122535251587372882739337181826919003481946626041246818997344781592355006300998916446553509209481015081562955657907069858688493133148822764774617368552240736590414590556851504715980126088248069521191444762786132214527035910322254806997487813304539861751132105578068424968617807075588835545246760873086151218762429570474936689930011144800492293521774068964091829128034285617048432110270935022435134336582991107087051070373843378720750395010816679661334556553512877678344647843480185682156906527156883292048690287217394648937210251068511469234393586956480039001895749210821966612610742452497956696956951374261843131729628571834900955605687383920660656277823517272916424920819327483086823325455275813739661040264304992780665483001691640655809060966967458731990479541635443739482833947685324825340030537305542593291263557119853154690660025471228014897428641247031960409440647819256206000146193677263081773336085221279755249937053672905482636786155892676499461216047449642895193547235468532859945876197822936180379042543502230613805925139069044666166171998847154908898832078163603671641147620277858447401039892071269006937685528280281579151798065070521425622979979765048994031501840631334546811774287494437778145424184232680422905266359591719426327826414027013400638013992804769017468660127113009923724574156225339807482349222829279861694338867079201777870961624527104084033630287386355311826561312850587136013735967069471162149303741970133338176870534861991438085224026084262026682122165988868462630065135939004068962421518387249915907266406022662885402459837358826205690189870749416393665622369265543666190571432686635225846396379214055266388848075984140669402869041833635551315513071809476018170323287314554214146500884452107394547246657631304041167810317647947805277707932243276939884637858170269776662781065812152541220740003990602010895339525304325757376291392363020461174710811471320074745227148211570080479968786720106399241974460201578532693784245439102169022518642297846647745712183769862357919518281135285462016124030469215113041472828706151278306644248191302215661590338660967835106719294376820359249278558712412432507923936557373763140043144252947744528349250745395595693211769038390404050158468646429265425458793593350046227073647317062524405596595773773941621978654993297069379790767117849461058659771911139095387359571109097352047286521139251135537651740469885817632616595161146048669767713168236836724578787699831812362357117146156330831756260357793624898180175748323041243139566376751718788358438081409810253380454532875527895937619424080147924079234982505463505194956677815950190934409146469996933560039238904118519444463552512802535333864176426705635649183991206888880923501021685066085294104969100575427559512799559647416236265366885422236608089072783243724416363875961896487318148576390883859126142793717328469530011231302055717313457814473356028441566701015311991019941058693776675266690051549126363199959621453433868321063348981318917248091124076860546753263949229932714830355956539799589013936310881513132051024120423107879042624693917342092164351987355438353680007466399606980922387583895543381028693783756234981846288911379685422486740930497916291370488852429566532670415753743299821735992442513350179442751615144626967590535854959777431506581687203066798687333191064525315649839466221813280651341493079443507623718684661101349109696386489136761177453644251842779156942925161615397074501300761881777010300442407144313001621838773963912580793895502496066876415875460454756982383940826226124196278979214415923462212441130597922159690268102780464188350675511088950979161870327753212162384364493431282567210556929342480284726343767204540780728485665602731470962949474445385791815928583978314479791644799599453232999470745957160838726386665884626531215823926874530226520756840084774983014770756210730057511435398331713846557755875409103081716890740215759275579376199519223358590534107898206401650139060543777885369281099268283448859918817891410885223791046324195976292049518201692087892137510994913026416557536861510558646023078908902736466690853632584642247210652134451284556437582094809568914420782647194381987701882934623917057660380134939444677202864801608120478492484093567113127666115531707228820881677995966444943622976679999520537320259551370024195167757513113198595921126451894044250679222257901278492106896847894242814387563545732358127538044594013069259116424040738700093740846319437845055750531955137333352762052228403684300406807871928334402843995353206282833005870653603977008533892522157314184898299596979274569007916186224153851532649946060638060463775167619125738617329890865023813734666903899702919909726428501937771984752355655725847067087464085160802017028806527435630712844009126769329171839158437186575685413176960254890549044452435467204951291117185532412354716390844271330980794239936526131693202208568672444199806305197735621827090374514034047126439543303721553143075195756517991844229275403504788965378481730165153047034354808418605527593003224711713095969834853978988869984551845803528091991182192384521256028607944926986122628598542894076861513977549766293125569281556599460772873173767850812106768348723042794580264177939497787926895989783820005077796686903582727139337192853313923770581871052889051811262902696250290702154856048836922272778366034619383069187058253677097424067084169019532483567492249673416518575657402211660748554902055965357195493923803459109773575552682794975712087208460685751970834307604837224550143371318729372985695681244929523686200648256326518972636962936320717376945588134770114374781137724061534455995103494708015718068954580301191795274300909740721714594582937104460787362102758448678994733618202837195811912664626622975836837367202668100522652235062785985433625247954901154894804582505087025213528829287743023272059902253047117605044691440492704476027046288357850887454698203582271007332841661879470979955577763536767519595066520883450930466276124996538771299703141047912119587524380335149248786105016194228924843031760251556688327680772915522802568628429560547094296664691118137718665642729767080069197590368062161043724674433232829258577182529026702947740288493027985600306294565607337600237183741573739507837765528023571552582251978694921623747819148775650529506653049499495649881704910174254746375664175601806113271378452207643800644053743809929567554048934306036153510686477439166882589185782086718677463143433193489385710843669848942029208217257784255291033924625760832031597880599910587276084684468916670949772290899509212417506859234044806249975356937969819615581112445817246942929350158168451865605659987104848117822070823283297572384653172649074495102364075244635382206053622768036789888136529858494626479134003208289402231971556263962072843936255693724869973789308339935707245552362682046659545185889968160690065828990735075898140725670445739105727435042697253784945647022120996422024091863442754369857128270638954968328315213804087954452697762977408051263464013951825367060106459958029618830473624637999646477939382837600431476252444760320251332495291866480454754063214794849374476106652550597211164247139700893805380758316564222183026705073342013430736224291171904393147488954239989795589246557263660186780914911938107382430533439431508855433137111461137324596869398584731178041600327494223980633374002072775837227896904160905847290413401055428938016473709984961147153236926275636202671235285301335280025649376968639106888610467061521132059868327484342604889696009039825793229017568774878212510133768961443211773994820090369625116881684110099390033630206332497713327267074882689067966544856502261885058957458010249210594337561984718883308236232777011980604962662964286577980817670673869460623577805705324547686163282299718336447077740443739264853420869670068793383422529782439320235308408338584945227028307277128287427859013290414567838569348358687043062062354206143028158111764417917403199112868776081520987637657462213913947084349605167364921873978210335884658443772652323173316081023964373067306499836807952231651214836639224137938753381157051185427102718991908283182313161706825994304623480178784888281348522366978254082293440005016303501845281120457369040858350051114220228682090052920138375370764730113216568535860735247820273731568166999832214669918157609497553502969280313067845452632345544143146698334270229550571433448102712405054484698930588509224790521818240345829403878667823090324890632826581499426468366643908505695500135123078722637193515068225073181528745482333351696392325121540113307758806813681670244202151134185915153598803211504721669809027445352517077120872523909672270236557580319825861601073807931616363071006576441792753838842814008576356643682888469244539074959909565860743555449076154113860973594771075468172117406758118853499255945324483654203298942166201099740973986842472010406481113463604248983826476773669927663752722033319768444403222147766397658632359251807264875692442876563862029162584178064354052404130300691492057155524042436725205482948602659483610907717590650280691881652565185648591700783117362971040298412852347037236363255844307705806309066733868887903833398019314246296371632174460430591295850104478580041307435616350595156416821913616325773303687902583186348997206572036077674877669803383847314785084010871358043279439382057062671901979488424732383008650651474680809296750362027923648941378230315389987940475849244423013592937304164056734754875691143674006352020556768594514281072749126252185291168794073771014390560500646696694986131276363832519923617962185017726292668767827005033100261755909784980489776080952121545298902797382325933288359688558547769761629042308192144096347856556435363115765410635761319351512997428484014765681247125668520461413619993146645110461766336992000103008317730954521146383635098169116134397851025401216376684910974128187680294709233201461204882814049840994581198414192702502186532739477487835348357739384464483801853272403324707401499671468114104534883633311492304872154382775944551843083333350960154389926331663913275559742391777328422368018748877074336493602212661501794125145597673284844700685892691900909228594984281668524372138542051107083108810553278860928782350930371932994783273217786616235486151490228665113760581185774335411203254691185067064149952499668426719528226681313695586303045823271070019009553375322912044775007216588405205751845857804594581363012905781017440899148629797727790115383948260606514643818806695035384428694287941330794086037503072060035508628679484832570988140359673886953445169258271923013095407546000522109701695855173033546132526310133647123511094874337287652372427841683149063595111854534997607966867426664265044662172760307752956541113495401914876747614936187420208414338104604631641311099555048717877645948836250795495263489397640292169157022167162641424557702630238058568539999442071196189883727637142434493778607349972109742308654233738885516251412535867401474043621610379989271985015688860604230808476172343234930789834287405264120728376814860963298783017516196555600063637964324295631698217297451710361271834084693915995063706379011401892149039978401008025639621887862788504754799136522511376670931086975797067947875452819345211450911366220143792783856761043420725992647733830442921640571192791773558781961588115308523775459053058002859231358127271620641848116185280720154889755374646257210787618891268833033731852974585258072728303974301096612852410155847086561884222139317917415874858905322125679721213305108964120735098362796448879724632736209715357569806172299151519064831524845361459131148681585417801703976066040949418107076379759045006808304529161361102615735213819595101387363168378218140725811036602635222179916034063094225636535707241959998906929867368419311965103514879804666656210993947062854387149868964442868180650286857508370025704334615468147512902343114296741433911608848242150947769929119735318602811432029889265462001114505615067327934986736760907242542804803035405198471053078983712557401633508721183623942622984560783722241255701847015415189451536382528051936640640945240343661976859175962937472105887221482560368884555853636345710413514215797079176358536314767885370022094546992905586094571711766313809320693470666982135908516739078161535428779537070699680438580725207503143983763357301291880367621807596615241799899694750844884418190184366488841278352844242601927927701263076717899753099291123607182013575809505952983567726677964365095275461361319987656781013524173389786238412559934071706110093669987526612071472184899143797275722300422990160547120987670689259634392334753750818641557260688332286347575213036080071056984046619044672211878130547118677157864267743981634777575554936033129726283584298004729030337972435477467627925695789774744079819917493361521275257356530380449208482388948379565937101183191158217860622854188391748433908166499257962682564286538966192471348379088172765492380950626211480695266004551853320965342505224792819095988430834335908283459803690698897543033259765461883226721884312902509265213006803473722427646083541781920200989099470857079600512255944319314706619128079523901125042492576107963470283086750983205630563308766455359792539288056837474086637329180440678061564749860732832996016283245377881362506556811629026039133752119485620967070093372571247495387285204731533104311029800942603175153461236385966824952146707709663644200969517305288595828563615695216597257306647370968498667253529997359681958342025351982015374060995429101964891661175089529874059995776947307352289839720780681198258921148081016011311470460239030960687033810377517220897751275287949319544609384023388086645107853496471718894104831987683705501163766927796248719518890754821852018110852306583244366031559927528444202512185822861616981179907988682678574387103096619578326171226412750967849539877189229078111367183540803744442382237038910563327959250859972411481731201979699129223658286990887954976841826977865569556903392927560901104842668794044266879412079167652181639135329561963393461582071005393307501588670386193865283967735846524947853652998358588314160199888036348110454371773134565672546552836812715538281405302718392834072612793377091523799076282278870578346205465192314319287370597251136617225303537944821521934170293642299806008478103615960868720915636251827464793346878461736417277867381926191701375589005060679757021274949401442630387916976479473138242358185775402592505590982252913687605227425069407232175136748826973707386980815792744182091886024857268356161679237222522956924083233909053827373393584634563128918972725160337854660587743717471705271427169780326998571278027747385239033086774868497952862191266779231714535969403901123378464870922041274982484244381413391045274195992463531053140288863893701047656432463697857068019637096831331391672037314560439814342531871260225638821463372173078655944405690607374127456481964100697657387041882324937309057559032739631354548165221011549061584864796821001428471604250921759354215923986774988293702413587832641360031412812304449411655911676765272332796758791143076977347686334467055245727787697247774771428825587085769170330059197062068690771725654596721938718978643859522905482588822583592201447568688992618097984222861824005773123856046381615695886226754323353546266362567979618074557265419591756833553733222960242774096443623646462811861315062165127041162192374770580482414806189239414837739566045335803561572762119417598825991598558649102664444564140968353502321511049785878603830099726556857368872488083238320909354736269515254919771601437013613366248141963306765572872638153925245626068700963384904847012762135323039339502317482859725249907513434602216035881901680550495312312147073732694253389844921024874240727049660198492530608728855437800725544986046708645581575439944729608667309253497985102132120122146658651095205663037611502582718718366534050459660822125350906767334192318296670725532428854622738204357106562920581677238694477748720609756032083586098698765973292133106273061956752193212190021600822116238212454981344692519277790202229947808982208717557921313460352156955799845685831482046436200356516843146534650167325474135506254767821983321012089194985723429636165977621854296444404775859776428845608383121296371072766217028540038166405611729110001681811652490232341016106986038025922676266367890872955547039187160123812290706707459460320896013324356191090106643817904619272734676860554071219787318448056272658841967138049775052633765188394163060681766200514713557906230483843877515381834963341119810512177258028795710028332758913789478101703551740502233906126639603604271920898620457160276255781485173396329193318222664596111641393662714499788167667723621715296006802066148844135512517394766390795874994133198038687328188010082154243047707269904487477069728232354820485269975981262113301431373808410064886497876691349065232213697828108240150496823614630261121771537862447042050359731716640022859538180496800007479369657882916220755546140864830331115528992647490896136435518898049592406371178192439293188295831022561940538221227835233936215336155761557027835383850415933918299994263527392199535037001481265926262497128270947724031251007054716134851879531319573943681530790153289943033472599357427462984609885075341594895819990026201456273928375542306629356984153121028634628607743016320351691007768838988729603323584162237994907025412231339357580859186638303739772123652054609830545014939090771043344274863594365297024225585734623844047398696817226043100657657611144428532933143411798648072502865673903702891238290468562606157530188816264211132687833866356715092348828486305237342215534646548406461761786009318782774530711801064945106479870527081488610942938234134083085311177659285554672575915209117194490401907497692675087706551817892117995887221845350068090360694934702706455486750350762306631146038640919136626209550825195570397759424997494599150944763289967656377711459842345214496646324379191279070257299221226320472366885421499240514049068891370762048900110309776244073768892743811598609693112606219480191592071370419347640487073971595693065283524766200860033401765714066281320897447078181876165568100396846899320240060167344036339795757180711139830266811522734135806157578432687978836864130419679357336054050044652021066290546976536899082352714427795148516165005434383175506519509506126566147024445056774413624973734964030921433552385318660574549965836739923469482858399899245157124006049003158724040800423841098613497461298825061968388810472800036389634650126472400159615710598325239249834079901667679854973559741709943640344819928814708196525465725816150800300190332630032853210561657320968201779557814790235935024019451096306619573164292925880977631457496021465415220896916751339841036771405589556935232395769128182401361235105371712831114521917671609552958577662286480450554439791271440670161476124133124187973035894607978497397870206264100050611015901191986956619041347248537647952786826498790997776962569774270347200628965644932167343924460719828146471840578811956872886370228997807085208504485550066650433794962758520579249711276851015597161491025424544169806074821644483318870875159201294032687364463427140274706180505368580688883664089667706181610994713674282554339241321161103700762291250067442147925252238923679019581383649476056817128839272394240355332330755610067393286944124220175197631090608259126674561726777355936984276169424973524239625600729660006743999019808451188979999562994706886837289004680031293607557033588556201735337551162616769283721818742573859475184119830344353605364695059943047817569562161275872421271215060394998706034222578352101631147205860031797759185466895406606572601778694770451557387749712593288040285691200097334216588814346080157369520019982348282018554760979326853655515852509558582763835553637332112703204240671609017449753666984284100045981214622045742718428320208336359851168047114316353486326733654619936529832061469266091259313680469139665843643707193323852490443730770380904250854259967765845006180567134882337943209239582292384341562563978091534194000835451732725710079872927734036335529517995409507199933252293610061752584299444533122487905167347666868520595738997844560007574881722109817796208029338971671090728816121918115813819767564337861211958723540506031552091307358515398076428182352218258335363896304602596640136682260390121037341494599414916903509559150414857756059081188565543945625510338278864302269770335851279129762275612201250380967201864695763995007347322955712678794404240361641436042913427887063111489157376559715646875456182407433666641341789891909463451589782135357783334136427686631399499078592134453368763635467671847808197779660445671371930099652909000771989839527741198924631452681748698225160097905242347355106247741977916944803082707409873115837980804906997698735985365041406764606921779346442017261110193758074470329613855285734775966771574542868540999022362402232406348399264983113053614737640278777248700492783179544012698101559380516887256355509692594478603228745817973262876135208807162681220296989604131729138789044016196927864828554240202345659101350088997167203759773631009278810852080494689708683442047795581878305340897231326138086605832322543431374012205580838785073792785097288043288746726394131953378021130481885759283825371584811632434408855017945429827936885505931591817675724197878172268845339181897943427552656116522939811088037711054193171981645606545329893894876158385108975303564545957139738625506867355678863870409889256598351341082795752198484760779015008465335441411789599118433811147975072166962546876529032418222658880588980506121126768425233023387704152055885542511236164860996857885235526919478744740995880194947093788336715199501154767502865787620228784942844856294144527142503197022557501862956175339109931178450339822504590675993444835520763010917563847760073251555154801778271018603302808881082083314303222664532077823845623293559991455939984356096022096768375044837752034798341035210135254217759326748178226549402130975275777266824225769391083159897360294995464753868603558746784886130271229330990380713882789260462575491179942043016535821671675915499112812978927144991512374326755260360734076104384326278167146945813221364434728246116323799359424017401798624701086058176419569954345569933832802010941515675943387026678037168480215718118950333812454246951148777093633915525243494340860767941025836430763153463086096285336922356937360701132974019040540426125665731797601941078636107352285555070960073395764324080350555894251726060485866691469211815509074927569182881653049705968660765439137377636833933987636899483150625713821511367423740492294021075774514722666933157387622476925651689674512951903809554317907593173670920215021923988657333395538185900669951147087546680314882689059942283056806969463468853995396761609917455132394676206220773136540339231052556964231458312812037760270859615156541487885203000370801462361437679270545441038391434940467147832441439575940636841919613095849649895045440853276396954757691879097292379792973615041407532870809546138847330033241678902518487632639743104313669898748341936764541886745648712477013966767956381193333306174177111337756331548809198258682599761744007707209276923461378715777670897073699789156711051496024523564561855192181128932554618963105698899936837559149974765403388925260772077780829511562475323984436378677899290945261158106575359268809518471351001738408390282870658748509019020704741782547873769756007500650712328474025209971040669001497684962390179522591043287553371883417568867547057361800152816279064012320981668355139649641603370948077914631085285061778175935668482417243287497692965274043316531513946911003457353984574076654837496875979628384551126882507903503970400880697318947783459977837129345287110314876135594394043090801038527400912704089399889076749363098095510917033475164032529861897568527213297184084981678279145588880220090961046053260297913841212161959676329517815409224484872140705459895737355226150885801298801348396983848674699757413069240941284113217221437448797530266055729973614468645012818226456787236350697144320744803193265142099467013572958917582128168954836299045915066127004555290012114995673884797082659538487795266577243271255744697150737036070343306582008285866039874958126351604591159185220228045429695423701571985248797527962293053192701844292628688328853564229885683541201153012809972730218115913478377761916747354429429570533125395279345446502955217798670265320822019571880156141763006968684754597500813512474576080920201777091299908442417705200204801548027270165989893630898787526033593336806267822598424764925629932166177428339313447565859447967441142405628575498010962328387306717973831261437093406774994731853385464800870121149906880098785629047765140283513736234901953370949871737515727248930880410297105444676567017729484454009202027085975353728110136901988822301625251238486368256058097584074861179530691169634541251480397381418214417626266794425833101242989156592837586249176146621269317978740449998872007184096519052295592528770999869279596457232856634401982412107383606601110507115537697471457318708928795258113200164847707072678361606594904115036696945596901188704394584335815857828402128055482540458105000733961235924914998824954456445221850157466568287032390909741084483119319576175184084158730801062387164487209341594620314196047541108579760583796335452295782118411701576141230523027703324091601592059312979117572655649787779974486330570814828866570466737164352942704604558731467806781288557408252611712164894333287077871622127501576931228696013481502855118065764328554773932648895753104178631299339428505345679423920549776883751461796037783126550611359021228037752309461807796043260775504314478365726225015601927570545411218066312392280830424910258923304789030658106085325973252322868051251061866267326740605817300849161555537952492068087778952496868364219293839347908271936099294540190168372320326689043217550918092610682957125153626930263043726513103437513046808050246670751251551524186097801565241933282500993740054045950448709509767686578167549894720053754118175817486238338093580287712686688129205159868922039225307605813954832241994877210126228551110833101452775530345923687781028825180563579515178736412604673663970012049052929429534489835908186017591003783359335850738262200000532021501364823303945286960890059702313424759773068302065122104364424241103112254350264680741765427271211641324896739727450990514853286163340137406952317138164174396641711701990896976938856411089215455549503154085477025758459689419838872033768641297932320647763827527524666229050760301732359570552157761501794193627321464821658541006574464175046610805980092779105239345291562593538977593925436340371465774040316685697504899587920557353474837055916987508324815296278385491973672001087151631443741542202089121467212437449398374027385076895038199949743321154770715436152137177881703565754647678726956743269709979413318244608683179079479098269399427389859054849107623921108453467107826987612765471362285477878284584532385793579107410025171355944695306741699603386898186179503465096390845003200233782516499570489295180415318158568392602506624491346688098821711094057374121617219019659956022327107291255392671033036857435646672746232907172565167632652872696466873027692280291524211562756301610826341477552141020882296108841252772129546715198986056880832434691535125248719566662516284826401624244752828905528996315671612276143028163041500640109415734651125928910065739516941904091603536320846465099619554556688028922091546052710836623672830887121421281822204339665499836747081247643125688205614704992331023486917361820533409138254375430972187514143845392116417302733864345611492988157549314703067596739625082993676141729775408483841951297731428527906083577496573364996852307551433475282925702677812559019948511435592327763212352267886550720037779117093163033892377540588068615953845687332233557633219048245336673210509095489252252215522410826101421641062762687000857302277481260820237406668986168723193236003334688112582600007905776137306603711919289223436225345865140837483311168637586183361486121044192978818746351560083686802074312089557725718763079948625123954224401456033032071085396088749611487847365051329078447747410741419117521726497931360613219190201995190774278129038187859289565957630878005826915692085810759140547842561325386605688533530491149314150684977806172095148370619955232962040553646730667046995821482939050946288877012747566606114306166016000776709210097970582945071405439311833094899832618241345235176241543915414440956341302760721058493384823179125563811531719970205236438858885525990888266090539160937920888150241660418021990083590409572014340414579117369849661422850618278446008302571646041714045690125421256754217940324283334244117180377255407828443192373295241779149322450370781239394476732490299646662182975492976630153111815687496713303155935349436501293693351357887556400332856482599826706840056070314978888725841013364083384086199685329873552648338740800699436908351955470638333776654802577786972537880535545661045807088747024421425993335858590649961688159811611999958142713674747538745832476482580918485219525727184653607511266609385098853092827319619258612157346238438471552930033499518049881075656030275180299889705455872518570887741612199678695042600563164546395147120984671834096491471683753707178499147362524091183193160889915177024731164269956041701199441717589776068193294181719467725951028714715802669148800235761187019453206353984335879638188809801474581921621500669719264864607119491248119996445227749295158682154919460729949611749165766583811185900062491947267653814157781973626818885775213293948911049107345753465451789987197682641884175520857528400306083831940069056355086294923493271654422612781910504480359650812515086025994215406992597549204837163291106516646758172228786172468617853619618160235862643951262661579912816430497418196569149851126428576224074558719631826243648397478331808517271033459106844161127717312832156181103303511805440960905413134012486290887530138812307695230179592504291394548369335191888376765219554198448569842471869910747575638142085185025588803933944625535566996898969817206419318105691888457077609655807462758947183739549413005017461984299808317268294599147812015023273199038196151537371013175950861186082716302039405018543334215988136038877093300104975319572746118513404161985349713933774772950200299758884302997876605607940580129401633612882797076529305246781058875202081349546454633663515561928820866773542477929094873345550108969183495951789030420514616358897321806755411230045862312697790649129173108078957268038314792757740011334205607406017382060507125155329294506006869635567925135376577477969669402842866269709684346405421048861932018849433913520850168004889660616338054516321934120463796862315620377502959691148083027399675522077688758944735472526431844209576485414848139932252931933582308776283030257351814864269848182593024192808491433756274785409816447182769625044145308854624178941362894003462683386473311800096854034559128038150375950063173643785647103546071235266157613992057274901306273105123338488322219221483312654064696244913431652061719565606423808271247673678777605196349458220516694150562457209668598681899213278836853852983305877078700068063242068007626433221735618522156301543445707241605567339785175358108637935720949983273176026456713461096538901396830460812001141521067867816917078521657808151945495684868448368010240967684068732250136981824908110416918838777068694537608876424311580534151674192318492848123822386873756817263764418786830915540697435931697521755631510850923518834636583455689099427525749115028839980878973324582055289004115563482703091231815454785942987643270718633426314315035277682156337146888538331108884457428646896202624035265042718752158843143606061250012507950610504273700672031702435974673930984318639757637916744365188192536126763352945110036851859307241376325605319240700045303443017043355289159994322391542961966712319885943404021873493867892626762561048765286108528908244902093334920956811099079481371939860190109506931062872551023852469934983765234157374841437866823029551197630462602293188189641279753069022284134567276832760822311588816179297078447595331832720079242069407741257892262569531163526485386667228868980107784246386673551774662285762931928221077385308664239675613317008859369670297932997862441034976210603130329350521478739326653647114685508929031005968444364190928504138082442107829967482903095739725293191156490296878302577308933981896041542667607986331485066420098578586758431944416838072264536602493621143244094909656929795629027750013876028620096126518405180684976943189570335982527658083591512451913003268938984507574886960605850255770859574703974624424368904358615490626162777459293003849999638184224596130393393389651767410130207244872019543403520539178824881531513958609585862722653541605063467353867592775998413858164985470743800979069197757107614794589064965588672310155920278606647800540235165026402778264745785439712513072396723757716740700401313503240515897961410256837798804021592763740697008671741583981863741088679828830851065941747356085961249695798100093972371388069871318955049371934489887084141350458368978221343300904798436264794252967278859637680508702054488046311190410624592400097134978415880293995804173210437814638167048989435936499518107396557552746165436117797297545382593747076432747753483116218020149545549918614874333484014756354340015155770124951185336970766270565289222699273365493269327115583751901471961995368540548312335692260284365074140879470689285150936208185529828767541864827920628483353545541166033621342389189249720097731087839470796424143457655395232263510624003118822560845796440437766006126547843547072428573957697141941699371795378655879464140712546419689870172458824053867179825606361570307731189739189480789293789474858958280377040277832524566176387273747366244926748772112492619537056621575258177507631799420812216216337277046938836247790368842361279728899886472116116425993451979585569514680810969696464224881874794905223131401677361052491724656776088903069561699711927294088570150407380271279023670396645721048717456446383307328155899549075724475187832759098781293666735696245128364826608082327908810448718432230278973180508449293320138921262782494665499852770543627030828921817504247905018571890411385764500027549432292589196337427627815142036229769765601527659349425232222697178618938596824710876020172064457690314561825000234493704377755218733480505149504262053797299842363634896191696422835019051713063431667073975136467019761145407323467943277733004245600752703179447812805577797213197374861903916392973923195506599388310852815269348432407150919757976986506347928829978052368049658266675511278126537973841547533384651390562037783516899967000789295477137102140707791753355105195298887993495433052551306127726757897963567550816802280452980342471073022322837226018031627736103440986394225133407249955595749917225305340982283440306229352183775640407857833641325439103651449912222808551583982976402351999337061489438251766807075864252395006545310843190523509415589960426451487757086521141574420157583945126610942621102394974630027855439083749026596528306125900044677693817932723898983079675316580746871860444103477140793295852849439806260796105526614807128959613655170023802054026412154468048125376855827299546085391447738229973408196849800000446095109487314911794476910439987468546357413603859581610461916063711654577714542783506226995745382197438788113429926274904174208095253230608599848545526245888382058260621455812869804227899238706320955043474863271063567531122375685394431424117963831369501766021256422175330954708655232071448288360967962641647434657369579276624466218569388551922820575434853172439207357710753194115484250385357780998494417532265980555041958188926051791711185998326915932087178094592720890227173188234686759991502962967358009833086205244385938746462558317197668699870713032460555926987918506085646551323848362639317544241138334300484828484690262534248871512202799801063252006437412853559105613089721707817706073491086838476220767005014828345092745637537417237905426335958976876573580849751287698475140235583448684922310912996624111358732394788284778734085410184458440964171473582632597286231243115881187282725703697206575475194646338811096459241951516809061793004477357749405961555301967122845556655954037207493438555413836459693982915241287553884261756882878001971713942880734129588240276305294834410899110335583630755220989754774331398827767676248854049696478917199035559523609252832763034308914250976879857750796859070742600327110831567859787916658920082690866903277564000420057449933927822105614931509401158733528972836838188858335643554737702281916681587873264106601163696799146616958782661179931252838124951417722045554155097385227860120853080412910191903014717289769620188691001968934253958298236061013527898319633340064814485926980809240188991016425468273179775613016749768550373282528443307484401984383715134363583980862835362665782337093537144036841959545987730274609417136027427457089217295033470586929595252503947561639537248767778390083402253670280954065518926831471940888230564646916092151581696866791504519387965556318293599673440658810187872473950203707723706703478298516671435841893790401297742649221526496156772122899315299115302309410976451663556301334226669460365101582329625189465635342031412252394236562950210401847089856276320286744220118372001041844158219993947251909664150767420460670190842061991719977117674107292125538299121203496841944524140488596810064126859628894157575671879061223263614317873989977816374255038059284178462024089807568862394265293449219046654626775559329972963508104674215094580909333897459047159743228930311770540390440982220358960080758452928123639574048283152140371221113583146934055136725785771904700131534981782661949894820994606944519885786909307880317516827520854703271825786338622465405783249696001902464257570989698599607991266469181609314973979694097190669925822751872236996696778913949335624424577974791990322963555890828607178603858155191691999148817182869355523724361758817427763856214280415296477337446303889503471637888014022430159556298048839339910295101991780478310777991806978909805332201717342683275565420484015743551425961167909306358560281279456439947401665537696574731852609699076299715339293552925070918351916327386389787824311085253987025942938931395946428523886078764091000922955525673718959987369413152684459290335988388491408388222551817391530658131800448834510441334754564215485000655275696217841655129076428432724396881254701237119947259491174597422282618827766238745624428850661118451441950387863180306102368858901840000635998735654006743863231584606236852124851191988178825756731916686312284067480908890446365493090341593961584637415719123387542041871275912034389819512079766225932435902107727118057433538083171142465138295801634624132241694699676901419723716243242921205675155797661093389407403053872148023104429647954736511075330859062426552961685117364272056540813652523125291710986469004296028647870401751018630871794118077066169554959588290275383765935105486921226171374190929072585057730496372716313069185255309926258605957327558778639634300607298354078144914980636553495224829935050978598642388877163254542738019646640545853628184933944550951730835668635973273142499716594086416228865067043083987370321118780805704962792798496831410619326051073023718382963608612536477776187343178327468991565355340420432527947922457608876087893411441511383968484821161863717694127472906099001073759184318262568013421852626317555607359531761574480929079713862711728663784055768902298041218602163078696838174295812903154442127470293722847929605200024447131488079141995701355023720031928862590389441057748811662716997644642357381232027086054414819368642709583392984918208533749055139562434095685890019182274807536108051134993939468860078660292203778350076283917490840470811600203115442840885042751199007764723578878224441464817389387509247449451469115855042492209128701010320238983549529254015381705422290354953165462335379169116887407561441271123004872149944036584517065077462678060441285892261824827360403820882201134080797400920009266018617274679291091451492097868365460865889300656241396732876438915539499300946100376823462832262086152867528267479449827597606204476530622993090660855246661503171088104957797750067652908699540757219364503081664160031476673525112257540554950620812453259666333154820188809254489468643487500571026375541106793788562094752614621749986215039499402190977307086332485523029829821393567411531513330732837501922171647386061820812653596680287946611873498902234107370829545615764156033391862840398014765830916053455899600245810260014522486575823338478438043234803029722221388106270414259351638036466481073555768257012625617084454186513328373314028562115675912896528996981281511435948837326598142260621978487126233829715492631223553060570279672866357407045565802628065748831547382821976967407412471100298514955397531164901339038527729797068803248223450817978243903455448286703764686392053928130459238443496706833097655868435484397887738012623631291260259331850505189792880876762865925157483437337312371329100158325183853843044558015404483336817563724553816048173162502300475515674152596426497192299090822232039564463966870876682963003629355795395095047104180853962256957025377741512330799519365126798056499278360636056486251633934485457258453572164488746609269144665810756997487481186177430107939142308978125174834113446638376375127052476872270359250058856223090163600333539231335704644786935620729989811509758318487785725641597889702740652071301718410522135867552310124974701359321417413488004088117171836620250152018007214564613746518952934708998588404195547604531535654099009143842125623775257038110838740757109374012728167346443496009981172421960306435994506426074574942675475159257601395850312823172202140973052062073882431969980590233335458504434785788725793024968052441195359906693083254343766858873622007927045411893686329084707248194222062928113511727025244448839129380232567016243862878554253970189320941648903425664285717782042306126976136528646189250896342192931870207322571901286713981728677739435757490396822401397558538874651953452866874197486260021147625483201907237235733475161379526962388937676968427624522671254759382709041152053385901798125503979339923538356739101635210559764208599445517775177557189196660544963409315401076936609518863669285693215504356532903740701815278193421507612016080064877053009317741216334915346415215148183661849265319598618987546748456061600000731267090004478965475320091579740471854467287631050884315032614978599746643534466341044983466645767284484242953928785234939397990088452775563714390403520091076048403182659508818769583550398773646554455272211732431380722615318578334185368214618814200624690399592801332219107995397243098383864786096330336620540489942925917080100654530903534707160317412664270381854434676316234510586750555933495399632657595222416906430603339697749898453918914612364502518115512155873435765584873562133928452741879658337346254899659157605399566621793305167998743601992057101409893254226934472078432395792033721112626642771337562144278870289497623483086541143645995697725335565074801650133389911253626864464095083104255723525880581064564992117902377244169294415438959245915312018628271489887293001273712588135324700708027214447988743506864870002659578653465402520848866110574540776513663413710321029567359715634276437609604077012335877774332232730995686578165922944788188660781661879709248805130600611524231443092255546262544417417550594159310975231682812251958524014370737124675479374415901380897935616721661413100543907691404313572253066942570443428253236496831872557177352780632373338986675415367289879429433361485470152226230817448071899380407145809944632829562529192989817000625337516150186891524968016933322671392575748324307361070118362467209290850728888995477270865573153138766011264937724686786808660115129222722873425426555142807124485263390370263412413607663322792851419484641108453794643358301769715467408574699028823478380072001678316578771118650611289581772984844529427057874829281130781833539247351350165729253886587301056148184964349238300590684790000391463052285598011134456653253771873672790923375944854494602521647108046430726431134038107452488847426849207565721785046864431929045619030376764729639377909171609483198260222785002659710887814282633976433999868854193950531704844825663941987255540083870834994447624464326348733700645220055563787325708033363532938045400917643035000259962128352242796392818705851008322261852405695795916820720094808678318236715326279782454431303189820711182652122926871534232405411426299016815875950721278845533988806303431653010385377840591016319762840061018150484088718136518764420642471575586855837180410011272528509353796799271663029315211328200954810773261454001698615479867630680041957774518684843312717928610426311318070822399630636559234918294267676130913197822198029261028445829562910618125651691067093315646776571703171904769687098111448081974332687528252498963503736182852230874544015250170431826028379848130933417125977209378687536525575305346456248208926513646685362018720806262244046826275374047700952082606064025666216181314405440555089491180275477069621705814876308175313894955403442970185962989394169559710808584320833227308166570811820314621400561236940321792308843418097092586068297820496342272024785601011048531612146447908489446953594766647338147061197502705618853629224905121894157007994284897385189496001261659290443468796421234494495933345738843013269992871088818374830207525601043187614813361993566726246575804561572872461585960200133776175585825814425533449385967679959136743419202079873532641762524556732394245249038963766587821630035616045646094443971346044668881062242630523348987300894887038833434986811420185193393994665947036923802799728869199197504109597265778449844642820476380381182830912794160962010578868937191154584942235010874177497823567390143501109286789157538486976847005158965950158616328204092481431116111770556123702410024068299599851520114368499186002404311582620007403104169327517536401699546443766418526712634012201651881772068750576299583388901067092338363802420866305616636583646214511542782691837307971700574218462852419024099268735851467139559529357796508473515460786257434928552700613101948251170626092882271230021033279032087747943391019847865565946705420144299955097898859928150090754460883662038293478555539629313811449243924477194122026152687117799876912642598340497982742091335982054353394207290512208740564708090509192406172912436598166362607607605188859376374087254093014400011577161154901323980318471516023767619787888261219815482893606856804817335140644946620475961468576016372611800773716859320241777739877352909168269237963707082900755443780325281711582745054707530352660358754299065017403995050594603239084513689952067567400311233483052509794290631032890759742791271618162712313388127818371566082012425308704729282804709404282295305443431723862412581635547995556366115653272739433344384202523135537356781597876900235384444119994286062642387762896509256612095566109232338927145656836476047935920933377119189244892104256309170985077719992261681706000567183412874499057672334625688907261524036473120369515288331514612283028605111370983985670147949952424656771603683995972711912508659455152869622744551869371885439575350443681952156764461142624767588049844721565990500743415456598893014023626821072989502307491577849388533121060947650718155922817105807923450417684393468809565724438445673743148677890377852749389194172282922515383781619986952613486679815422023184060229657958289351876871208135010676044968680994754892225049864110526156523104369734638391684778043212831867474047116828506662793372397883643725023751841627093432439143459513511968690351066036557283933659724852620127494741161707235463289889892999658527372480241970427962260708131742951059042576882282266243167573041334944377005318116578540201481924264010828768905076143057514047235143825744075730861770920078181032866798445241604402159328522578986754112407172171210755191918790951802269909232150363784498084756045108436171022137316646661832198134989304372821404689406417266498209210952073329241876627158452310815340111230209412178812592343969061119946965118432779408718512096004058940643747703915295915926318822251611997173070956219879346276512246580849495834959706172773170039401702413223125916518195812624305263007164625492540257879004620682985239541481238465353540992119183420597580459417022491131234841982876606745620224871642835973997613659132574168620919136800314514559098690656808519607029504528247896896407269550735566408883955034237438931148045103137072671337456171306718506534508240982771183191621443293011161199038424996699215614178450226348242601267257985142928128422749819370128931016433536430475375316924067869277930859714169429451225002735332675529647657573945664650273401903371637381505346374260664857350153489517256850537582577895869975120044239807188590475121810483044398518556859150480642647622506562795757619220981261033187575318903468339390158016815217078034248629793476095309918647156669415205991079399255456773054065764713923568722276450033047901355444369828060415984625662191653436300489904639955194693764891844920780371423210181513994715957708757078796270821986415442077326579419704069847605835751075858109578424072695632606981302879100344367350932330546268514807234358400060957208377270933349156660271196377797288910204319807375548974842743054954417097938327083965970502725036163271955006355225728492845263768819537524313422684077048059983689977564497257275285031445216001605261138985024116413444628940719768949274572830305779726988703608457868316736265137998613261012022628022495871285295903983805884703000204184279051607335999303988376672449404368594729566599669935472712900975245996978745178622977404413105317639587925369917408487195307660462731330211116943706822778864381328395049114683899939629702639539527957152907061538997534179180540896104647409607227796497443257506514787167759342539816963589571506844576727721953004402940371754118197315471971879969011401079322083103953554088577409585609317426985663700519824409174597081628758912799134280495588462648056473274901863129044337640803308157719066426197475756927115805239424754099729071188090528985170489072445173091219101022287444929037698942131279457812232871201137731974349194240924340278222553934005995420639906100885166869358140589999038709806733810457107404795195812273532756863723430228988237688037511817691164115551685207166861460285972035971885334754482088640198520528687489884306261039546807915127185160244565557947661094062794069149915222783295888652539764183118321712483730491487782954563470841101376807391251779891303327541682767798839022265881979497596955881826204113561397861061813512485744445358708619299083807212551565454115948545210597665194813925599245633692121290008193246836414369865739164193726280905852301233509148680542039165551370471099980669934556505739890198696544252242303139534417944989320369729068622591822414683755667705888229776281712583560239968357967703540886922953553370762559942157821748595347940974471246708850415854553686431487709136873044770915426098370546467968895522668550255291588385193221364932755598052204059315544889682637055151922752006364286837371620692278069641613175685592077327255949103661519964834869987607197703152787061828373300773150935979369521936444564940026442101812177968078823708508189789726036572402979413268287361140352719681202247452166968793705916018446880362111498762714923512654917332384474188019706532956592273369415618966792719938766310401137843968182221751918108827104569800840550116738931378351208812896951690543305864036093073013893267448676153735740178134368144240048558902158177063204806697210547937549046132340917511452489397263195949205343401549110325609400256176729220879414079716472803687960712021919577701800790068103485281907031352779154945985857628951002830001306415527070815348513491742630391489104700215989430182488980439974710681218542780656565980135358723061941924828150677856631319811621069240537828405873441498320133081139772477579244436488673037995694686454936719136241783071269055248863999232995657559510170840260708592724129389423376134450484724829397846557843564863310633496856871224105613500644507510245143365953985401368663317705923841649915340003678057267594270393759910829508704850167492890131079307772093730663559737211558734870178939626965726014763980629833049161752711277716838623895369399551294865733339559840212392139025696796322336236839415740351166495364681879324781880227888341504410801342060351289165373569988774715200835208996828771990145784749691799194712640372233440578414612249712124631100022753861575609401818968544418890797219189233678281323269984694525880859131024332944772721403253787587701994015987098360290614627867071196818355075593166263017295694409100063156426172776908355906686889586898456886430926079221218184566008998504481589775191822738013425795904029332355544255585541664732776356546995895485354947865636343327641440011084244285205176825473744899106688215039343438999237258306815571342143730490516196458243033667548181791873717386309817856866080928813091335148614842048420647330726124510904699294858242373463573126189362895916260879302798997478879127235091542347568283175850600978651727147622685000978731126735255623442537825037736268252455531849344520081785180217142761855578356297206660983225431625281375707582278428817329601427926570362720728077265160085577455255563215569428822657494534195556799480360551142986288404559731306426356978552012161451437390981083016147626141427975018754379408328146963805253029752235024921341657309415672765406145622101995418781348311103923078860801309989050701099505642138583776662303709274893216241588176691419940738632696160175804766857523708057539399486240882069377547811942835522142752419928590055479235999480898183949820322676059441160977577197588660557222870900642956825285051006105630019363682581353609466339716216401057386808695431271653599249049029998659047754505542154048574416425947195786952246056120382891107320948104079312457221928943853996249069314946392083497582622909966531743198767427997002750800988891577067829894196956080092990158687184656950476413649112424370437719582033900225246392034353466325538160811729198012697829456462849072451865176734554233657357636917949165416792277975078055643280379944743040747918354476762787391535859504354524461283058848646498797543619431275785487517314083515745500183336393443519322221230389386325451521932835808206051126663860763242760291604527798208113764564942883947708590601362242802567238471115151274364121465521745579505790727449304283470814749260162417782195751616063960199081747776745916794605448125615410740956538149987244163242542621252971217121399194684654012588091113589145077402423935092778263332500910163193497640762066397482129296670878858461526668025120239266087759873723604509524887659811797473781092273905126444494661571790710415952723276538925868572674099820297890125445172445024644352819031719285470693046656008199562249344513218692303811348183490166131479699228994788995090920580407041257800467475907778286350639820974742605437190591644977275064204730751661523424658222390420621243596424820781996121194383400438511218876236979068897611191766923514364703700063156352391975216957896684236470135669125054910805943067590372905335897558150147683467678612655286826798209927387131895238465231325375529034204597058487086424579062727432053694847585313935237936267128068822772254109676899680802369653199238429726099954285539874756680442638342248180652871083751843769503069075597020772315907541593166724248472932210668166574459482096498878320402228214779623181214533888297966817998012233047148219331736832071641001828268925142379976172572624432662121114967878852100508538266841403687299243840172503463898354278633071156376055676911624939481776003050758930619109336946920415330837957491824043095745230765671306757952744882970792655662161504587509074812170618886132544153362204273416025556691905876127490729984499715389118262725564885213097004698849835789992259528609366713756312878111284738689337092440827374372397060741668543300481309577283487804179119613276522344677670788600507274670104480567580905180252258009575703669849087254482279196362486902665827373999060028088491121988567113868981537543863945619581405834495171636196936238505147445675585876325359104760512374823542227073141040564407210240453467510531497576528930780811462210483625830830594141935422618797147144207765264022667635542299185387432941690904868858861323888992587882066540163673768422119076210483160296322892301638366294588206720947705516778824049448453302603511005642558627781968005088265159138998812359918290208414276383214507831697074342156506148108314206561288601606596357858986588565391477969410166415249864098423129337076122257420135270776771787031620014788837843942869519696460521038142433151633485902527717715363040826841495687637901514345910611352986703395024807127004982760134186984988115613196360569005812501112175883607288546461569036058504867561538072342936545470108960413460098347870005961469664986057435847892495478512740568962424649101570878009745086517805010852044119175996449237033673030748371019600667301706077430782675310852587294818862515362214411067619645142460376524976433298029411101723846231205818462277454414523944311390310220250004529768759069560630473844604736609923093478323620989559157506683477402924270867153533424637173107879081749867710489643957096233082292143339016412114352636988093081633068034607126907849956673751803853016623110203067017270998794622721670430287105246246831612454947673263987808208454683489059656838150115882180526877025358549960127120645405440092840419557675925705876475072133649177239262581482536368666061562792335443634700564322818267277841500876359558533251280567119316816109168293548495232363538608899692167175116630895147977475553789699902379995060750636647180858316382379625307168334951442482517770934521898453458961439463018829880754405456798635130298433666137430343888502204825930634474869158073538344399242410001396249740746187685943785075036354847355491354159500294019099726112770473462912162975678349358520276974123540059195189957662594371433196267988539761278560862688517086751652358525586677058769825113999333685841822739106249682336220933944463013432350792802680013052634917724935738424979770032833657776931985148027842109752834671481052036008036633004310478621423107316639942209935286837144426682207492271801198866577672080743265388616128631156316562584645207393245514735760895450116884629969526080022421507231211074698857820163257282188795807013197851771414740691722523375387261294294036305026050093468199494551612944495923074159799729486098053997475250617357415736499117356921189932328440018774205201993199475486400842039984442362675223386642276104817891451203669731287155761201007113726303089970742905432917541907972868181299918197208147848213750349955660447179024169832834660661192892765229784331254549964360999905170152203084467009357568356963299129977408942899105485958508556541447017200282252051739105907818199818830589454006426395799467583670160429465939061509797231075805906767292901880916191817239722262236321012364724255246746086370120517897085050427860376431802234166314591835543314946391142864817229635269152847035578678464687342825410665493455887032546809999809950157475526978838893709417818596852288008803644870608059016666181483036655681645483917666178493899655495327471239887084601086377583236271254573960480609730535526774893508387469953436223504159378746810685526542802033144208600946669176235319579444090336182853613301303163729768875309010813533094837897645375513378918455397441287571437918562784985834846327749977405075638596582496446374831634218262488651207835921657120067225412265827074289622767843217571852092762621223967016769906164458018772658059288471008551979660569023101064999839081094257458597285911009344375050533433161651942706557184173732875593287892151211023910207009980299515851207879069810145375682540156942228564709945322760726126465028976984342467608571587353335523213712464192082241055825353114752569766274682840451308140097524635080113353176182612817596911654607623955897966473407791259987621390961967093011386164857951681066420089369998339712402650724247937143162153094544736420620938524178205896455770793464548104168011911605097912186500605543570166187595752282244624685981412533362364608757874069090055758346357601414372381218976359070445878983169677003000336929603000864984312543467176819125524714033885979593931471444031359723711173057824343191659005497330760908871810834159751771321023601501226694887826090003113657253359472502095203856200451267301468667802201680567662201711738596845784690543208761767571742513101609405716312311789896660768436665890208500061885375888376320855337464945144899261683530501963175037341115752811793690907341122614542081317439044192557943190775843447955925670100653811513898956242971249176405470972146537090226043131272420943723498856127488754897779108431590266870659589878881950925578277650195932688526873298734133952660564537395244443025789389465135794500552333856256920810423390264050921424865786499766839403529356447307260900084716042490914565010348970037274512511329015061577733752501909276122845240033779248392730015363633685119354411751985291077827934324184579762508363912724520031594182289211551107889733981245517117103688489471784895892725514901190902633235154978149222152273848092319599788203504457669452842273671382247365959732844167635590329847857978815198843016880692613115166387756631486800052850383652070148479011285605387847720828151594718177569474242017901931753690334182612531221329830906839628436096709935548230451947259142314670170095945017774098090857464860394818842142997567954403457688838496067410511705042858721029391960599241969469930198927314654472411882650467042470896559194821836598614993683788657045632079374181382362788288573553088488479032249891910949433736263984832107348801627757830258813638224599906523085519236429270558062202494842144380313297861776180531240410299830110663282092538953277933684232121344052373882040027688889926944272765803746801085026194032028449196298459084609538078207216913987077562936392519152283776205321746594297864060666789983544606966532855003934311716001723755690851681895058232278333615156806984328431804972313298710445229548304705921478084353965065245629860408823729764791159768396579005501322885063172097742918176573344291216908765553990825342314730498843067446344135511811304349614730026045556402624773766072401537734507662133362279148437019596927363405952522539953353704412454191904360404790906469188695513433542144903088063158217083181490147575412309341436615066364574908956316934327131445697256605340296683656250079276509162209845936064177117035028686279007152335043311707971208757123612888392724894263956642202996151083884624128965298332138831474448887936484397792104211774238571189647051647615446786447596719335965598450910735258410488344745777217155932294668621354991561593448827216457885463469250386674547466036421320397781157128221103408503404460868529355375894133767275816794518121497543531096507660136362861276496208016103832343676295877655731096206101349758549333010429769107044316033014723612705363330063898799951517489997388746393118602828658860055439064297882897811680316550665263824041260275255437729711045265917947981174949983137569955997110380176844788263470770318183084693874034963700632136410541946460537514899404314607243166131493692099031031039645819353819536899598500161259655798217934790045931626098460774106403739458692182520170783407220255480904691000571662536559631038797822829894185413636241639002963767893762728639493606835013778747246862194734028948976151221976368883609971762553711990717477870544511901432567412724462964899926061092475402810075581289841294057621887909308088574948181536036334117909576237998542915555644776372789405928599984844939225063039053309002262533723740915157679516856082169146660778471528248017589015450450323134558904497877919045541376737879867020323426918228968936417144137923383910778003778218893107962883774982893380061282418792594210346992598377035895020354483930755970724816895117588383107856707640456873246729798299562267056471993701041525667387865524632943584955455313573044231795244058826891028320443973625814489083908253848991015308379541115725894781960047707656925989942005124055943698543037073597369403016618983375283346280284638486936155071723658659705281111637964137531949637953850958567143076672206508511009399532088809577936275946812419695730934632391629049652779759632748653385955236618954040836457061523379885077549849637331314007056645028762246144590912130873886695440661681096937290978514811000264334853876782184528728345691119752927028568493638343017103070824892960391403238945125539833328753791925681574803819056774386502248798035375878017641389204961953520309290902824437512741832670845762472367775632783649461042633482486380629400810240229242676074706774924847896354313174846579852283234694790383742464977069940315333053024037558991647595803983190660687704505912520970239859164570657704770270301442257306137808268518456758248103129583658115281773509584495719087090936889183187082800938323095703835986606829795654073690053496154250173628118689096157501856924546506438342317581115119607995557367543092901083704273236529099823787699975548975210196098322079720425442287544629999811683915579210176988506637650453195946780095750845710395223918946774679475000986004449161467437808223701726934340865718660905582517650413661416188887755705324282601219613822268618064449962822299135885958247010973904447249804529839337277003678428451994599596041431540168055903436852079147683649621703454802458307594702427539602253606606573221556395588710908900406886434199895115487862984235922978806527626525015370098228224458644590254049870566065613512151252212660909355462251041150301149787877670545413217684756824317767174184918046948891780964578393974339506501262030438665029112775904323355596276910538293986422361126704076250176551824498736460940752198582722854284776249402573959955535690920726015285634615446517517031906310619935030372145843794379030467437446190800557037150199451614115565823127785116174269611008837797732241818140971373891627154749882503064641834113976153370969653512696143039302266784437883729363901089973996374958458722287392968829821341589396618451209230623721016986214411164647020492696969273944745073653004099394961035338004230145480590290973785696295201481603441300165746430838930377140856476907377628870640855269496663565846108949959742001280613495542968070043321206722546483802471980656718388319301242910374124655727779618955285828189092042084173458810747574740223107396639470870629092700582445245117665073232303464599252010426099425350019485581346085203103633600843207549529811943010864968944344476407354195063556223450023598120839801855188725648400320813077882230253861045128264230679833445937068919128534297330315247875309999855501117049192675720654512926424532082684170883717271551274183694099129622018378729130584339439735811183963548038279543950642761972100004847177283076594652743962873584449846290109506324608853142893126499316868526244797024805465416828297683726555276051950805095294878700232549224892948305411887873461705446676080575907694081395093388964327155014635486150371040344014419486623357288739260273577955612140902974645840363631196427360716186553013517905650091566598219398969156519428185707881819263459414643243646620243058783025327730445384917797877462807966026339558605283622983305878607411942100510142448522587413524548416372348758685772559165072041878533420895953979460379299526188908000413685488928461662876240251269599294216671836993473267638748776151046874709715870220089898049387457813508348139013103509210075486684859612441340069269596644758877137774695835602432557498797882478539702932760938396878683600130881840317335913770181265343600451046797271526988691547184864565452297710106124350992459420058511252067297247675039147221603291863101524863489118485707599351139283454210316911253419502646043604159786658961053029427401313427659790516498824531078166460528032802655887733628426033058940343956898332939763896316022610101187203730827119324516308878043437092796454536330394670469162335958285011923499641945938229734433053256488284440734287335921519898603453448855325419579781656157077876603171507984997414372388409735411949353883686091332311240138468347849240167030580734607799711438374265062438222556783031636982492602276170644600140719819382942219473054440278853430241536119090980725568725721622823681275591643745778374727979147554675930109499549273589552622600509507656824356228343066795818924273713973692508172827274317395449718326241029506419076786224601588505434271388144744996144502890383296808154974626697983831957218737356125634250020839227057134907389942912904252055297954881390200870310279906791787627627277567617024076784664965990484643727494771843323693827370918928514087517622337375135298411592165794262045678565766297056817495260788801183907470825936898420477936779445411153833465458410562478529649195727297298372354387552481818862810055548780912364403395654020532803057426763100124116296502986133771216324443893303023249110731140618674493513403558804305392196999991314963379071554120888870434685372170884416756004754998941462281257566591157372714045511323271434310244662443814786800593639511399011281637118277283595425285471106913890814108221769333354769797848474110590220523498553337718782915472518318230908309412398916307323540738042178687112918208374344638264437637281788791441872808621484354393858598333316992084789532965098117829534283572037382982168648638174300997596453910692796999443875078257975810919599640080511464887045047113429556104187939469232971715555063446539612761413057215569216281945364780338323028118087990487186727831895484388884020893622262763236134020500682240751953105482473021377335355439063056511937614132374113755491316927975165378047108029673439476310664524865192793300639951846702413104826334393114349369080592591134964020323041412112237147547596476441219593345389060251356569373011386782360683752653940519238663578270695100475598420391081636431639223847743269225280841723676316699878201469556054616466008607083131815348641092051372650097582702127763473652593730588749841924499466554687246518307464080886723243326404144955023317882665383541085873337068405436178350193177858201487204856426838752437857623059649578565115742597279876466376839207185978848090157426798879947617979119885261584812082197366974004632572750349086809532728327853356282073174147184278255717983859202619058750293025197198564398234429768393199017573581589025387999519140047281269173748324319071124214509259396123743482972340513928281925413113395036764524262021218121866792173023472117726094882034140239206386378373606640859387046410025833744171154620394173351411428969367726344486098038686508832581392639641021566071696311684260996909178109792174327711461482298937944421907007177108153010313179528615549412659624716509809253447228621869332479378841194038320036742044270302050082435659719019505862114179757975333027092199273385767893755706018975646525621850570495652040733157282285060225614360695796027988202129873323426703036866797872725069071328890349150507455286065591920486979955579902024639444237422046378408258250208632780827554597116313608778123768943664240495218233454477399135520677509326042586108017605508657540681827611631154111271499918117258799232163326518192397240675125691490777903008282354020428617938986743794832346274805977643613535378140484841581901606680275136331806850518653392947322716138068698785256491141531915039450796544275547362101312637097499821522404716416116049959676340317878512395347674681381817378342601105288812494585149503370944227248432036855030069224343019070012890010448170773019968755720881746455776213999840615002278567599415388578623681412577176291693151621459013184694581732222852022088235067768196205687814937886727016612818816283074430881970100387522004054408023415295619260290007668686407432787635784050287715636356908616239237285757810473615897475520283968507009753180507538459678537556023675702304594089847944515355758047566506068847366116812358855694650444305759895067817267866659628260732601947742142460069382532629459836093591619617575647032744120952169162275495274921376915344432341100462050538007356169063095181010220177640892426112107218178155114433467390134066913180553674248462435072939158652179213941281332190760843611584278197228531124967074588518384744178030103013418619769087793930515043557018248142893522012519237845556340242906824429118397523190699199702740654581697680987301464734221482781055111793137479555625902243989738874144942248260873111940141659828558294726486894189725543170009897381766053319654892092063841278225761190203338650830766439203546316666336688979944086292188702493855176093986126242108250228254850325856974725387331062408544681965028244934813135220906968541365034577481701512859381788916812036671789252180894608461659414519842107202092849657669829834171091136626821600027549655810617509023727683948399553859670985635521271170361890879712794102467007699620536959665171887220264007394694889955245496459604905610261769016546155053898791151829460668528674288495413216654369777475283639469242307352805565042825386539099877414699459355083386758314976869023667923504820048334823741277803514853277867257643933863152172009517741738107643600124300797277730873069806997648940976452325442398831764697068331550307071110445566351492979234465753703934439721948104625951053183385014489704153224819390700325195389669034791272434305672409267877121754433319571735798380795314472795228558578933554110713883344440798890520418124491477388999825952660532128542786770883284913763900997101109656109437549702313751842359250761995887722428080536552031893783397344681904607453342845075890282621605218935323976528923125656571708642356684581559739597304438309553851638558967549150689967320248887576560207750531916819802327099261100124070389503683403787400962281673623518010066576745194077077944434266797836994823427904845316396602020571666763826812666970185242492434839634042619597901466216117411298272805877607597041622404523723783504549124919235057978108357223726396156731604425297708855589527683588275500857895986272143330905499723360915476288842391776194438817995181958328978242945476975178086625313093375423166344448364382701283712981258713291941395323626776940467904137012204851491022824070735799450594803292474484007049276937149725199680002722086858169804686367313781703139178309246672682998844326657515675327663372053827196370343931251249761074401470131062239073431904451281684365554914007836382213219400857497188931209023585960121897189752448747644615912639041200941301786827580359011994211999349961571034248540965973909130145315827979997537859483061822195689393182357093611992581026317742464141093843776287122959806745843510210706977223353161231657527275077831992435422044370579625120476513774702125015586296888264320639158589399502663893534075036656132203256636255117886318136625125639286025996163276149164310581509579839212835129949379001087761809795878106426568968000542595998487448660567010350263047467758385657588613006540706062160646893947435661343110275933575655928352347090411906162947885808883864837438219316763233184422486463751773923470329010786860877130490063431563937103231442829050059071617225242749337159551750626796284385380012308573850632131236645657649933060550559223910440918618139004660427003287026345638239320770764899806407279207575342190960021218427052908180480908037092739493649488868514036238200552629922535286932175723165368426472262335467630355069253652287318254598022814110239835448071031933387032322791048920960224448090465622726733736587029355154551443321786276960291698838748148188525127826726357577053460032643937595175173653475224260054326602516422829186167347503717168901125419505862471580536247491284498119353319180714191817742812537276322656618057886647148125959353371031380693621923318422600143785128770362808827517989587822022087784609039550402619272481052987088699241677295002843763887290919165744765215292935630071264865697993833339411854911887444848223846662086708912293629082682215890249876034396207671025950155189032933777276212468792027996174133449645688324982649546353515033329607965875474406592338588280129760765025247522269026846362889354410705902794278097071516945771532783299224680683216595819350516068672326949864535743045628885353393027501196962418509144326241155307449124909132325716160185257057039789739435819866010305777418788867364351312782482588046959800444512844039351123509487195524850755206844614664015693363744336814098964959490278259258630110533648811347170911788464727519228003002864388795694184017888574515912294186796295215325612230754751621387499970008204286926853712961478500720993360624263035836352799465927191144020858027623384370289423335329109850435222425525008833527989178631110387977344661058685792774860139128572454304901463197979795124341978250312639054477647591599221939298607003624721217958707379772699019476944282906950552272858153038544482311568625962892373819174751696556148156190636626210696583202627497497230355330523544050443416358741223945406477234123852163633819514848952761972516005266659070656027489042517164537930753624222972434142207163041170582068538620944926678160098784685410888389644409883482983133488647767913263578210437429012340628031216255637158273760405946554280117874559826756764061136536165584875019123450876362545731980442433889109613996228047513483923459228726780636290565244707205043919765517754853393650619878359560960705765806170029292997718079238560884485847787370816908106760618189592011608160146862322047025067360406293027933561125063056363619131342286063708076717260967263591421489389584759290319545056246055305894279654094623856684130208322692178161339366445042004575724557215289679787221744468179758515602071382225838879642797993575146435449830943061208767217604805140711923156098400044755554583406266222121213998544595133264244806785421666849529992046408589368708957283299186815392340770135820475246374631740320074186741674228428104050507083333914408306073130131528678604712199217748922559152235998789816996338474869781237351448992895695083013190441242453691404722128901716346478781301385447278201930616278791580505932759017387324950162967168925240518615446217191693098859597370798065806355301666879676337980604137372278551795511689374205176219796816188253449440432190627296150844207726127420533184373124989150101342002531851973164106021769622807265694909771634790367777354666480477357601481726407719314624111238609918957925598874224415940581626074961344276854076011370000135223032058605236188140920469798123393932147335225162616720614489986505139423407572504987250801212538612635848019185924065950208012939038318395891677217161014873206105606847564176123148317774477283283915652890037708331797032799926549545269518185114276300065760751260488505844821166401252074625661515441671897523774534546389010115712401437042029874998096109203582370545648853831952132112054996896185010485044468885909165770177668133064893830214854077158878969093552419305326745410406570049811841518429303962860364525052882508176964350834094670520146746575768838451258050134651695466418571277290123821823909256594374106436829610022036457821857152402569439597340181108674735800817893880570683201412602335901420222968209143518095303569399646518260163475499715908889616486605054181477109730579119348290570223152598152239791904084092220718860952952531321071009375934131690497375797595781492182763129008823431995217364479457973013557975880666061391276152250799220681102260537591965227144071688197983738536246916753079328327134940833051116231759440278392048431145050381863468150460972526407796582042646081846640727305427758036713010566336231623709124939898958361078899525805827565867324707402196182494974862278101114858495582984368022200239531633748800163963431734829477669403500049526436311102032694658686544124063283291167233481859111063305910863819291241007423419454117322015098663834452371946637989562789683037951291732599627568579843465284665520341854044008152931900113022839679504416874376581720227030174432770828149374266131383650841108835770406311542481104683365016867849529199421794543629780316524267620082627115942231005862207613150737203706834959316501644493854545616165886397740760974414966926755584254187504187004277496174679680991982787511508410286770895926293708102754622916002893239054439694701252134105183545272478236741902656944680674040704854445624637812273094488708114766001305539766939173676214184544734728271222865088969918626746056272409038436265253034630573595505357714695143518957881974962657617468863455086449012591931150958713107403024634055466766696607626479677965185654367786313018463541351000158250291576023955695968564410879743162491901540756309188695208203582338808084844172937514322434160276434242737704945606340857997862594552548520668780864606708819888226623894187698178655383703232014823225828980829324890420098435151900974481887222816964943377420752584167912685788716576402856882278698592582103530017231621997106235461047301105924528274507308954683524428635729962795263897091451934950176720208223487370678649540969453913021643341712181499787091483300962775622801324277940806391105481712825124187380003533887790335122554438958867654836230781196342192017460352315293689795573726353110044642981224106879191718923668308318333059971692120443925189938178921311342889679791110548335013167699839285508619558127219883791638673831375750934346027960226495291949071407699946781701689726334308662312941119951067817739053026238269328971937353572931202821267777484138179998771104161509743263894395442926040104395250963157511015473746936321868247500576187187195382940613588045388761978517957314315864586383615765643225944306547107782004767795369536270625140832896490156702054595499850160038900441979908055622073604520745803248750314694136834811155763293933071602592273312067236173160906367731948929964325416892919705558356201344273848635272953572739410956168282074249339576315224436930760745167701712241618948956718837825223239067342430355446876886988248483992326970536834888973142357737067146510073094977350973126160232909843220159439886989935317755390357027373307281433422808812275131733856085829096908653195151862190965022763907068234333073536699566173809455639954535593010469457181135214497364818850026989941190258880442360119921168738894445233251264610150576282722569743198363264397993743699312576430384482584281550808431437781865452073799100562773230058278609340145261379601509148790398356214729678709963826363271180000007490601104829299784685099166078293540545175196113967840128758847413820094821823114093468381002169896779738374730168378281110203887682654493236322802380325042106968054706323059641405945422164425048665141764948231451023611876387432892278999251435822755195316636214468829806926210165594111115342126320623469722918327228827600778463566824541872147352819142755275137613956176776991732995228330761757352753527093306835445278223877652451935757986219764885856380929180951479767566208641235093942905232226478936154061197585404761152695855372014063742381329521810857030605833414169403084636505192292516257316649141582676792376703733807935478455230593245307258751050772264413712838025408948929692321707961159133227442102529230185292071852278405252585956899004342616377184326579761671852852745030390542054585772255654811794403119144108325488670664653174606430977969981718808429189197190572907169875413700690599146747476560719874612790003495666322120301497779171677084925446099520376016831507140684848728381301524414400064053395203122436196294584630566698305394302756602465460527812632635221816031594487510124435339357980622511123556832897266601784832198377008379014541265212498119354994187992991142777927756306079283998249700878767184403107292947759741483705379795008667633870334659247949846211128476540150610462424522744267869341342418640583164843030306872795672272726065104824861269749613040340149468279954633498956351998975829788719404518312668226684590136888116566243018008093018340278753453245363488488650181063130486628356123742764911422309177816919947329293705909984524369992675577003459616907533051329097206860655048481471192457738786215644686824328825058121566172715364409426952196105602766941453340660236643860960230104349316129163488886320102809592669764814000409710405403658532356243120536229101213845792885316870792449053040788835756246773847891794462427301207406665657832963980746032439851025271813825351556793376062537812574085682148053876461828279910715974995889153761887840945211406385396199140386719431741406277261609388713604477448202277729601816423547327612797095077940089782906462303995299970412901934436303730177744777454280301171841442422769034591232532631772047916043168817870194407621450213877997027331169487432228297002986184244955180953358386740269723490314626441373719694339723262936685817092711729508265127074970785383555555487440061587989166829511891764438368886746281287830049953053105859800088673269540337823137260909574192734757799450699716899212763910138845839816961156381683223481003261478217000354380740920726156687825330269758178486662229273895538562518363409339130154957099905218284885707654114086933926111596285592073578886153733011400131382942327989571217081167608357785226429241296680787557908999996289177025160606305717362607807106702413105317632509019655531272253102494640526084159502014925760609051462909877712340366172060212369910405472691960809842460583273439883777754117338597758775226446081490003302687746381183572456444725313556282171956844884168491393235573964133538538017485751785005952172424703437594525160286316753213373587410286043842675553015312637459861717264019240582995594609833480067115576761313297068257276511079503423020374346527774704928909239629560646993413908962433076334874074641874986785718019180581887706857256381658972318948257032090866164606156575082611869081194325473859348148766680582989041519562060132914460199442293115634453790629972041814820526000027907537416051065007636263776998870857661759926629516302434397374929175170411544820798747031382133035186294333286484275857687934976725211242626804092342200603805829315086162743884631900062693940318737672598458792399380763349397805281973536422782775748456718914694612914491432695064163835286973180483390013232535617642156963476958078400839188617987704102306438568215543818821989389704808033071827573577206256738195455822858726983638521847393411462999203396916218394060393858992983561236349400333109105523037780916041302278381588264019171712145236083255121261397861115335154909925500190838662168466781529815152405124095172794977049623478948659706148897124813209643494056239877273915749804131709734512555819860520473225656314630139601198045721883908515229145826290549496508228485786572392267146175499899682997431764501672831331858109444001047762982469787518556917672940058852063111549635828137733310091326695067810822248191146957701911598962069318390968601915788321453366479956435756291272328969170368671655265456936641528656213827552943455214959897898933194263888213019924892568952716712331452440649279175637139187497815238475855469065587520252407279519580184006485724132652857307987567127912065871765559344986226105634578474561021734729212712592496039255559280670627461584614444236631413077960589149175445321262587806179526114645351659096027744740887542450187324074843406201742951023411388198709741126703004308145996543845434987304659373048605417638853909435977547704977126780172519258437219617849666113444836072617718964653638289498862750254687803012812612605427688003277221117932965517394624721718916379575398682042057736707759484184235885851131144918268267561388749881745955075848609906899904119858100749151099918597629921567885062527830375306325140628875889549255431008311475582828189358842927738878741525035974256016047851092741404154441017930197693700616036463351459029128304563142100109134786100795012324634381758939606414397763405601858723291625647659402602567194656612303992860868889319376991840560712702471524674562025912922524404106319570904888882524910589618778757174819298716184803036875796602674590846303389697108679730285743573116920907112046818250122413790888268042866005530254786388428414232275275377726280732724634832968937091684243651375584811028240400662486477211759386246617475988089970746258409765366852549624218997563251147667261219260077814848771693936227640836443620892253267603257920041081366889433265393861605496049422598248500122316845758167208369897128226835739076642057006448973821200026764557672291993243043030053615765868467257500140621467548042636552464513258532547299458835007651522737432630506286822683262979035667569260648154376759903729803264318956137622497284407205178591477457919169277237396913201305409843541020483258358501403898090646592647814402883561309756463177862783362310163685561132942420915695827647519291418991777703444424139019187450002147235321303084664739178165796832901385618034749081593872464758598647102187957287605937680732088567497845167154891972807092637304782335117663293234410979580770143829800977992696458474492773036662667105247385504296114194326936454536773208877368575329492131841826135596850818860991085541836112349862598337805077207066035106438046998455838006974546137803432015953372987168450506234899160596679156559624971067441492213830863979491556666680263630858705338783278527655820686548252440154511152100694870322866007870213594720338923156453285532605129567019683313041540446962548483263851860796366529000897605237009149663660811031386248806721069325749864884232425325908456400959404902502353713471990641079094795201180005423613618700807460289950093190118470170364006449397579784849618326239663161907352733818610267217740868125371745931026593602610400749672153560332050963895868569972699594064406673312642515990901250949353432650410144874496540738513170312691715859829547777637716559325292926309472647831098424362551033575049646804325247565457496752024314088988928632956063316803902214305014988004075082897760466884451827705025904578780577162689326638532162613154070093580801690610209126336493933333239705568449793178899279992726445597503138727268049339367803610860650644526237401989260212016795276503378335389550596997698506428320562643849719683469485497866380258366712371015666174071086932180063458239066676353396371010661690044761413300788514235950431937779859588249800031928774332524014633756276824422677730219279301649009791369330733660308571412931546265003043240659977891719968861171342812838935188247542248807215514104751137477739838388931148429943633105027631841860617329614032940169488223409238688436796699775325554863011342127997138507685480163040652177885213107144573822160823239033605202087045201231271072527776933306239639222016580037863069622119707338569795852483248759050067002096295339751730379558101350886879479100415223581085750810329354437405362302184150884836664157879416582293935868480284727921127317170920294479827833779333360324508996799621961466672492466186704857110058210177578321519208002706969509086839955165064356673562532414776188096643349609782763087786689667548735974573927435554853218537741457649149356034389882124794540990780527937450262775626012164676407602099329014661550406629423085014329192412448754210590316026078062157871294659013049604480153814328768228687832976805294154467661609015702036621273634227238644815254416924726495606101344450945580574866448347390528670119151328174265153588771419126385064766344863772043935713268430374520282041889957941854653004575241178583492982249929701880269069371609239148458280362047448812913117353513377678625537049425236588027538515033053983277586283468646917677690292628857997403397695804715886073397719084619284808259830121461679620918013532736274462036807688464531412724468947901716555293989010883568627744660806681486124773869014169225666836750497612969754549168457958594623849878563196426920933440567864044405347929453516660814703246718642943944731561663374996481723797508368014983227279852689399560529764558377735719401229709974847850822286321173853208810763515380192866535495728885736665655215037141784648674618277641417909704307855719391684598290689707118138415269291952619309361927565021072863717130721580374134002497088267608056080301906122677359273307567625550903581503102768780062087676557426563917609569886865769174607972066202596905169817924056486089389373992599775519923034332289162086511655842675865717070723940661256495812155695789807674056582371118239410799068244825574600162429465927000076069195134286746442472224379788989875812319527841117014259046893426661377203713018214435822715799059336126830098612131726033695641394609512099068014240243814490287431135129917760680333429687592515357070463295354195757290302333903613657950272783205988292608174429038118847689154608943463298065973900049507305190775667528839993625765147102187241165341579822674289798692876656242177407187694823382011824561322911960000067664190962026526203451054469073141053974596906442465536632448956546638723847973565214136390291050222377656602365620443190258493858687403081151150988896034427095751039855664276888189035242873914354158536045889662350467037423280113700055993591991145518666357031822329458534175914415582992036902782255869879340086332534041368240651158823500659898957562195550834048533328063737193602668374524281601970953270095861591454705413494166047061895309576349755349037398985919220005290357844244706335477743224501997358296425651983666665600703488716948320208060885493889149137139640132037811759991556298774986382870405664056232801900869979396417625460199379023396202587773102987734088259454780646874819690168621630755036192700277688545281281538904472144755772039137321357011781615803257189731849475491218914476193747177708871995233035807387385107718031516112442376379741791578836667591130741646210456163042698270760220670340730088736938901333716638864847577118212729228138229261582299062379186819971733873586884607283132539507239897296073933359541875999449096971502871753780210914850142662359508962142201487579535257875055902814994676152687539259229564198773454176111480806067892728768356690879588259193650126321254979542025969256405079802619704600141551204163170231716431698556760848987134286683308161357500404938038865752285485374455279396578276559381332557937233035718530051225759063178318864883961860150333755072298958813218630529338971192119975851523984731558720331293084710984031847610298100061201165160743892147759105306899654870704504010217431508611795251300390305672857886631205767479602167503539062579636743193571691321275447812132642446236754098581000860959809579030479243497648160096153959034930380902242085137913681489450239982804091206496266105243826109003210569585377406146655554160886459977605112000294564256400498513514874276086185585644235388118458375725465047361038038059887860481486418052163866493495049716606513806936081584938595909672848579406938404995371193498128537727149995662745137545753007061511166956418580013349352031692672899161135502295771469689833504216801220392810433983929512595441226195681401909329214726642233847198300138150448324705444379858084891378466046784828469808820528957736424541626466186390518693442916743871184347300318792999230928592064380042370191299150515072923485277746058682310025348319521614825082407889726617553342821195043888999578278438663807236468728989361890460177836951137512988044121035430848779196402953451101974976109454699782857764348464229284918778693202253640253587613973495789493059639791262115093678037990629796483574799029859419044694165956528604299647817198043490903284060418088966853097578012010764584657199498438332192450375814502408923660161502144875426610838795681679141154488609236119122908015016386923257183578400762581759967399365401010200768293722246787548004551348040634962760791761833312441050681025047678900662565300911987080079113694072145573769562275576846759129062186045046112043635357599727154376228640953719493792391775034314645080308429005838402090864665010205110872195767159007391728386968214543987378907860196897695894317861940034080973823595648135825233586794153559417160083971911999193044025981833674436032419083934983950926052595822389634642156411066563895005141798855002003040299952390943971079807788888355210623500429343660425085578936530381589111774854625656276644851443856300812994259222016865514865588633440718641802974053014345211589976091029125184257812349195723615218792437792375652211887882058231513544763452652913404522923759936864977028084802429505403830787890149204562945389645142999820235049103289743484105515814269614068270792243086530913456603188836589830867113385169887973142363535197931706793975880523090464514750763690372218059457234974589552548558075625377427549010725505562175287159849126724208468032861311453031820775623054214726615862333522546306736456808055376275492197276821342808829885324664085885306765262537129553300020693394875230283240423961781038116640514833090611701627862602103522547333956060382050112562627339294625871248800640327167868113439428755566790253473566282658562129486513596655401882060440629275986777180002399064208342137377880023198125028007475800642810732060657877881800935161459671036481750064701057419163043312168344201621105146644809441193015804094767793064615644672967057755828939290710156329426076498504600021262733077997042482876564640684189125594808821562686741671145532747407851866029401615536831307824458695094914189176205530401124720607277391152303020789412076215465499930832452546220835693065735837868392308381033757541296450987568879235490221986149559826027669266482029738345487798269985166358956658684939090524966942427212465594929112823898942393990874679254754322717732585412124085829934683364651214703255052767585001045822254832233430756097076272949439443817551903241367446110571679208275014088347064697124503302004199788505831549052754732014500106383771778412134179014741379684015485493629113549297101113513987032735796261697207983344167503058793927938660606832737587064915155931358946956808327396928736425136106372243270969150835645645053104994892376894133399454181369028196296718811693191524570558373511373874282712086939717163718119920153289826411815535920323445605212497426621711075749211278942781381198560186017886785248967208729394825585587050865766756173380023492407175531038343249444243518917215216396894514360527200590335738636661622942965281176199893742347388846329019058235066365172399920999617619147141038951350144485427906848441107863454640849518448425415716374118137999738360739429125486650015640482735925099803226160211260736341316803114003136794250116669700218045529603034109662164187911050611065070287458305182506050319635502679447838655585135760345642956865591731082935060165975206601972439782443198762730182914384933264341728493710896388125038729857833420977268528097065411732021113836981479109949160259557160175758914392398751128250336194102007486484299658360912599350887869135044897048055705326279469320408277747876854191270721908370055458441591735783790550048321552682123416683621013022035797390614004478054992269461851976782212029181192423241767645872490387403062533143344601305638271467803220546959033405402114541608038774988642732794378724202125034666960238249356775520512206583699702405929996173707248990615842660817929456412105840273273288378528669145201009833046684877281378378966532147019215720571871627854457246593210280649363361431244182153246292255427079560600491642031788081941437431238777346921045120629802662510760005421976325216032220395092054511917165212027112293541768426512344964409478061530828847607302377129382061201900344128668066263956300494163148629933041577421258702521437190861936031942541830105529165065917975546578294029129138294425343806772936402118420392659774167464367695489999610429384734309242761763218361164191196398938075684740642619968257979387630742680722491298565692873976255283850122180071414511357069874791405873835531842797798425198515755273813898363414654239818901612204298222324840404958575887977575766724727951414622947019885425496814151454545906542313796201294759419970140235516007162011681486075255382087046208746426616931743663263452720700767211634736171166034384108666333850224668685088451416931679171268051568542525863723403290888113752458752002705172788424321103140009373368372870348088673978099345959994785093683220676344737346863399223290360346428020734658534560462750962418124596625980028764963969972092621285861829909699542103498361480738353327726971023856982510815577511894599761113044188897550117606308876077949399714518916443371597627167793698243094624262020252095960433549566295179691304484790681204501693823021745726440521705242061851315838007785183337251978718192696017879606981520833740996720189262507317596199955043094702127379564209134096991882950980410000652880777736535421863929629152225708455303686356986096299351986498889558063346031978748782979223106673048192970617074517242526158399952635154550577149660214848835533669599361994650426156510009936658081696354278374625762955416084461933842794753106301224313991767550798522832069149871605417626851949358887848198470904003562559495208045852726896420193939882470440331325337010263278316980233919446035237537044433220070266803400014307319262994768475646887041533066366947946303699895549387638046786422294882307730018945047064129238954354766292538402425594984317268956049591655845080213602874209175409849150163850672708635585020833974552601941482673890509258957040155751511917102671550011272999250384916582253674005178384015235188847359122241035878752436282607300324879101058589472369009965372344296200095146366675431370602644330169134972718175120341698713700600019261188556674125329048217146516767763648944371366656289436798342529786438059527641158106224882205835720951711767503923695404517343276853336487225544536059655521182205651294682115779131774596672104348572386882382987225146766161473930738177519731350951409711039016968937180665329552256935849282774861402423576626747507467976987905397040874257187410374152765474045895141130480783074104010180121169407455682986111034062013156919548637395459849925752374403576196065993674910869785526789182049362490823339044366396559440049858727764970568504549767705997843093565854887854012779211963490329817106438355076665838836199514573411933780634403810031844952664347093376968850733675542615404544550993326858223393807281781168820240323611103161356652481337330784075278066780564788826987291216222148616278939209274300385312985748999767128616407685629007601445611772156483380321461048387682700300901217895249891189081144060560396340173825499118704571144358735034193293999716288836401223510695494922282028796945333791412030477702018060472462864710595971212390681959545956886997607978482503179696351605942895615556667233707178187326626189504113628878445551767054398556409371256291855079789024339627037234110915614179619410487694655120905281469727656035002629093022048612502274967183750386743773571924366272967530494745920379392684771583230998726064500267122376295296056370233658342234651509531570242746076171028342036223666928144976983468428801029853959844472871338431535862744334652978220324258708325949572575694915975792070074155878981188796478248324652424305341873811663214677824950347493452243353480106811957086976790068801284746055473169096437287317827114554462185608130236242750103499336326504483856314119749918341556691307778254515298202895180985378517495309080672156951828103830595495920054197302081891193118406590078022976450523639530003543715164853503997924040039391599824461546652837393941315237659407279628669744941776968247657672524097286751187696914877550770173483085467701206418226171073057148135547811828341339589073567943609099920042690711226662411683943926751929734431117043345839064773986909046990833035424910448081858887971149908951692034458540843315544582639737117978674732857835086319042665020874626103320652678038658617273225447727981884839247828692706667528603130471251637496049610264668894868614434862444048509357819283490838321533021461732146462752430842452859554281318113730721913502312066039308599387106061242689066445149056899420244825571834923128970135286559599306100662812640782104291042897665692864386940282831307399880560460975619674966400973559106478251991136104446621236702953906920438371462260134692161489020673408557492122615880284513969795684039222748426079833303319926174766234025160949979156635258285205530635750989692030228488521463712772394568940130364689788442946722805162284687575508018036253810258051540964395715873931248265989610013215897450383957830145690599743702979941709617839680174310550751316624796940617563568674683988988985425782831108741386157820721875713586062690334486797190307444538082761658921617837103713373736301436737713128921188521366506589222258922779849565229091999413241196768560869018285454197617736365571144707224009866753053119965430596681756589108700495974937540000154799365434957969926622567150101772450013780796148557061593228036803440478388719211245131854091692671301664656723498611465970707499014172581701466311054033724375846535843925155996053670634659180232935609127168792746842322640141786372195442620899991267643231263533529638190007362417266449489951842811182536593648859916016590937522887289286508458998444613962948438049068728404577815214468248040809495697302727296885349089909802378009189103395038658184838563846089655555437083648930288139383472099751531466339665487142963752994239372295944125967800109597631691514312910278288376100273639940474941228742686723440352096595726445022253996477302214128182366097017344604152572635711747545525597036594732463538192630816838261615100357789424155801263303081162805246761714261923451905744760263042236802394483599685162687883075555692915330071230031572951461051415970554447373882391567445354197610690682610040176257277365986975577679856325542637528820034076716008042268055717052512353623610494213443370442768951682169988149451060903092046788927684475183262064370721625347429491983191035672138267150235661589714788619655689432311593057316453082172502053363236025569882404497930627109037546242943048767309982752110186729274968613637927036927144458192459723717490533530876525810763227414294225767151150299595292809927237096456073662637638641620767844728243574340353027050198379192945692807639639644874518737144338784173161685641527781539624547350488474206256513532759101081547098722763934017018886984366835511020881778356574827596072728852053594148488504477533820426706535569270169809248402277352893112895239234938812235104826471418995903119078647393134704965643095596866751389414529455234447282036974134908840228725326493429386979056943437083621499822833403587505671060606121644798028847783959857084781263998573372019937817332959184010435686253153287597757476115932933518221129790604427459112449778992623070551137856210403170260112281690413361192826173761383714389764027436350503496982599452300331669543340185879971221942075075757941883686455315656280053150349236175342028122829374241390794182819145554458738876957950929117380836292790430737421092840890707689837052146071474499914440352717014130253643078593870237711678168474408024150334599643363807061386087888944829945314918664786133057896193935170389991777612731209563571858539074680810324160863940884571800009193342307924302271531881993795263443015133086066235700780475551522980916349373029065796744587534441204153645573772300624326732719787286463906586384096804001283833039811981473937814561701027465190776695610807946835939938809641724005942023755918108344114167508988297316053407890819901916633757398683452746247059321744460643846600586221485412494567497911013211739172658012092171514360258000933506083953038128890436257198655108125825867008406096973296333363157708205139546816243254433037984957449016100412151891513126708092671333266438912872445422903583291200689209960012051384763193332074858813335265672960109963767864745059101620361274222642805810885592479810825937969411094003159563543286657879342962404457464656208481803560719354992033281859605655764903487873882159025959051951388986390106728293853298842790443856848758247439020966305659035216516202647370357501935283009554101372174970293696377815247369195842241735383579380429260055144527127907994107157091561482359525457685177205761096080191543036786128380937413933646512836370703223706998559074628132378863542478883473669543499864312604370212863294811757616447510275245531692422875330282295886730990412122029367317163851371761492897328743899201708582729390515898913507376228364112729486539746203321605153308513211338820568106596485825789517220742926640132167086836713407039430431941607563312213335981699297834296762048099972375008693905330750314598141837138253273959947096585124707070875407100632101583483446906936031950884930973166552041876897291521539900319132311496932398128212700083999726188876706522633531067491527933138089981174386550420933888407621582913932835173503264210864542630977352812435733714548553860101969222413940389915641508105105499362526886054822065655182516354271697703093210202223758997685552317891952363142387853096292109806336599830043671721235890527195083453789466905541259487400301622990229287865939872459016491403126827054385396195990819042970773748033274019107598581530911947349508342606903830124206374758162472594297346374065654452744553080117488165127147592728788334935219859760924534255101915364947044021808147783999668156801590431657363156078729012663534066483263607839359012612289458269723572401725184392998498362234633150664769006405752919501022130268411286724301621600083562453877222384311523421974253874684446406106172096711316402074154058952209332613877962295868793450942229632013810978770978194105517614523578299448932161280043461890524514686151078971338688012117270743798351360516681165700893128673375326328849082256480309504719293998632212470000825022256891693596834598410015404196819626705751018810548159577852714958268279662615031169667153093474099401491231352191528333920146639626465513497478287013277518123076158772445615653900716203132928971505420323124411005379535123961594433267835107081386055526986793796859032066440028613107676845628839338802883833666148697224808380968071806489850808789993089356738680533576249145347181020175253254883760651296343385075488786208340522057144510879910297982037785887885575142952491691322840073565197142666106561147969617646119006897377282812157220235327964260450743355313397366601730142026269076066171548562827298080089766956496869045622835930023249697094593770405323157962863314028644293133707528013279041604337031824449190982198413446425152799234374484885343509573030170637773465693045426791333002642627953640821017695583609960147376059672538788882882072180121952273240114339897902022899102504576358139491909479215748197901400848593332909228053219607084817313229064716245157130170571207351356570431636793699979665687532002615579259980871030051526609957332322201328483838045666167554419323926751393095750727451261074949188323661150857067610922981152588486006186394397263700753634872956144721615112192850248741771650989580873360027304157905566374808520906493991868669939272007887243726371140289456630542902673507732883626268577585536709545881153944871211842945842434304349605334784315079422505208915853417082078561430028131890638158593718829744133736647101732653486595401707244732699457893724133271295136924076083747897019465081001998411692033355462124115264458814166019804555738064124120850723401055666507179149875307778641352360797372631618130626727671395191912956006514699709747036648328643648904758692818764217889314967589910141432638539321881758119473186548090614704912461037089633548610246549651180197706221815237623986276679823060026510472581465171615677234791374664822570114135480408984585973891479389712267517987135363233444700603463016152090443985848606552334310194877305712177844199545272488740873205924588942074866773188124759202726022911050095464980439349183736936561236107582103337621804602473484787688338436175035838191393816790809475930388801409789380529668968328636181341486387078617259465052732968445125659877503447036991348175288273249865907760483253329698435096669305632426209756035786129514822161460776723073796049043692099097690051357914423463800517798251696259498174008077227842856174564955920565166567105319704702046213585773300933192154377397656721040649431331582765754179780478391870174156259952543175427198588340323877363646602057843660534158262755640157024989337446442776540663303824007651985390387180999522273960026657494740721008678229733071892149578800010182462992854652225333984055166339810318382076799082295935961050843986162171702557644894518748573352164609077356508462269138413786952318075048663509921429209031941320920022930420479084807941707086821590730512434608588085366491856711731151505368874844400579930562836340955001974363815986841094902372305440330833471600406252673746022989206441681486127028574342076164561047100898720905348069981472833190811843038707022290391965037582609911302939524223257952437307874194634593994056622362991324095651454278679820208518363359328734915255228651231824771795717592689490176354667917846799501018876455762802994815265786922353763470568583678537002878092048132988218294656796840427486125267561897242525838984270615747966734050832872123531908136221219514944787710335712586613310735444779680187575610903912576107363912658591328170608616939678389366425197586538324865534213889928418509532578851953271095663011163804427545426038190037217643517832037037108821149171450974463014648241532477371290632097577451482248532938414193419849079469071597103117670060720543419436302527600999243693189766360987197891088431936137840324658881985421824027451938616082108479029270982771684376224386214238783934861077740081852527848866215396354794131177710299132864147104970250711213965932819489962811650646644048808707779495186088453802626851804229759736669642962169793670072048431389272744132179670340087834940461959875406358468600540917419587343010293332808671607230568985293443846537785202083607308466031973468013225643678260940384620123557571486712476121712801814585866622572668307026890753396192230362256491672697848452101359947457655454925466458863657870062136477899863432674088517104565024495385780293956699119227549794077080682838411784716682685189213761531665712030528524480669667848191581766131714678182914186968286070654844401115860883248014305364437096462234572877781055303773561626203282317713366255660449223513590395960519378202529181485500832038926709431529918959103483302564670119678877949089515231506258524439809081303246143105075049341423358554903625769487489845328822052942336397064743827453286045156166302105126926570677767812364116857778045979211469230544241496322870305112413187114015163790823852711840879955046019757134507569974377349566966982317022485395420344845021818666511490712112038005523433400587351141393616922441582557413610894782518960591334082567386225130966323258777662132805722787098311616915602191220496777155720974895837860758428549628918515479537996730538062818187363744967017629836973896160085263098906316120386728300249032889680342458781690405250702977129480234530140279581698620583371486609420384025532251761861300938148938820270560856816450695209725088158251080900365180343186781161813404853474637230013771352046805832500381315927403069841617680087891070836528210804715966843687713011291384331826276199474323977130748036827112273245944211910392387248541359949131666737894905961958145920278796801621729374769785651921702435132549608636836821854420189327464147763968721991521402495736213674904494928090732770067160839011175772535471172436817210697946769928040828359041167272581436092611882062907804512548636340958592865743434571050002898128721312842575882564864652402353200353035480318533780044150480898024616124747892391044413832776060574577599666879363860569496286092089369345995507083492777715383756628438340262529954404807921895871073344335906494651911461583338520721333124550025755888659680306734969779808904904668437360886939138848897638243535499312667882802817785389843313507541794754362163763717534782942726332079001565777380423209095387066351677616678721223826373785937941067160645279192117958192596987426144233836661967068211519781928350494994270716947997942896016146061146732737887535859108747271376874620547021448230883560687310593100612480511532339581801904302566167577312279590927110563790786184477982062093640446173518012384556712929685158139202335485206298665624792644697262696512815607322263510437263544378427718428935941560989657958422046167494374966036165026160405644314771433907035897997424923136574201646302532327684259005034205251682871610010722050468900772931287049531695163196521670997647801706637268384281873058197249775399715323075572231797774576613362438396024777877781876283817529125364896245274206424864848710938468359142997925608679843324713288984839581832749730336442039383117601099411407861574947459531628782117386119410766618846284554523038276567508196968386590017492292710608784912158071950954017017999342414128458081172220211945462476966464053169245771337900622142469244228186605567155777582709301934468464188718332024944959653539979086493230866798381308790032528681703363745529310231547537120203714754286839230790956471370290814920530720069980134612093306044217022379345203747167196436811151156354946728313619186869631235269962653348795452894855752772110619671746939153733257198693374935581864614585386877256376125104837290192359240373529348319191814128606547120468148959987382925009441466157450546849363898379507062112131441489131096375196406136296818916453975753907530974223142095903503031979817402312653467270341871319219209412906886402607431695740561807105923275313078559048358324031913528107820374609806162771885385592651720252766416462292571774132727282813975282691764527524012080553993145586105275257759036668946796123895117058454632080515960108671785872820117189107046999827109969959272869563596148861775337857042125069424290255967683099666101726398747669705400453795057339644443847327776899054404584453228057683964919780704931658517530960216446598028705860431435217584735324568979441783414267476059895703002305003872190917070326711015199440221444436743602574480685387665355797774399934879819673302100387042198861790729265069461417838886361965505691949601888797815323702732362373226834587785851186420919814883280469505172622972621419569974556900667312962945953169541056335702047317072904112567186994994445524861590551605379122128300778987121417678436656976303004751083562981057670808729144795516605021921009992957099800527275227561907029326884496504279257298597764353112449666931958232942372232758094149177228237700436385506554918084580532230589557115354512266912941409736136174593446419463087224222951951546843648465500727886880845690039746919917317557110443499997135731417085816931718400659938697399347852566233711050860275329756445196559435662732883096944447741675363592654372575820534181905314107481196593609670129214560338049392549662360470643363401182881202113217243366075672625419329396627774427807770294818996421610858347663507599289218970044024861119231965200593163916500113078852868782756623574996467218639472755323955305262695267391341496345081860767243279247047351155312630416600924469842875269030355767914911691515597833550255020476137934802784543621443164204275578972890138317978495373198960504829663161386511279704447552743687075180176340763718210855994386228227589696834469771577660634748731166306445631386648992331149845066407156437431776282041067005286468134319815280868849543745115664269591010188355400525757674570897153338720371419885418883022076879232000347747544083260322946678495770230159972522768841158548503418972395671559265692729525965536689356240172552029612062675500986484784310107752851836009192582699835971119642008475228517565176959195913488481516543254187479853683078905618464496904706768462718389931488067606681163652608046188267488722507568143003554181084716041106467753443126809478110660241924156572571292547935122517467281634538376782846721227922809271526520216474077127222366917828513323203074518547875188451133954311076361094292104794107755557177606515806586091490043353818623900450967425984672901880738199720927446441850487885929468970116080629211440168313664629072728178102191561018219962370711923256696019059777283624569784566869813505379941152711494131198054091844772267055659793584530933727454251754312897216500030880186912637820928069705954612221808873438611057289651041236985816340320449962759140649760092831652913860441100429582653215382624427833282701530166035532156937497870450991626744263833291008894663823124439815205949600263761514845417036796152330316582733031829312839317842612966625389989639017613554670907611833350678865487753566226704787121308085740956886517235888511401773970836504132816578217152794697066843212648816848385696102242170502484269049255327426025578030500375006731106153320741276349988799535250685827370838562477060186258762506285253324332932924192538366099780246127255499200776029527718504741480075429569252140354820307391986911048427710016334925000120221246714692562340803066318042650735154101484784358621947002797201129684063534467460963278415561326933292139195086475208201619136591535021667129957534787452218623022544042400803898711338594222046045404193999518526428542901031039356100150722610052005744900333334313782128629032235084113050970026024642036463679144981137382086169807312734502174986458438805745443480938651535136098214451223891198331859825245502950165411167812662909459875220204899840545860551483448499344161563338164138376651465004879749357431794360037249435932489027665867732456378203787771333040774572168974908421945599735019627807752284325093917349540797776254243283822480652857578057796653037824900419037437988921504684487401775386318111700504344377512179696292383697154196019105185723324345802191658298454399950134858795986103778106578874950832629340019593705760318328178478732786879161817430860217832129651051132829428031657324825497119839159266477612132431408390286797375468851184616671285448725304043875145015707502224969756482884824953288318334424342142690152020700001283730451807746491798444913870439017781459140540525495548310565529402995846305483559461910693389493143547437997839113506705401493064042034781490489585037404410049252988113692759591860303291809740459894428766765463744107543085908496304921292778906354899484259025715717481086987641732713276958159694939896881123058926057755154237830519053094139192878955148747971198643337108876187423105016157696353470790667695877390543939205291523185619996566816371777166463162796305926403348165175503058677666793300048191810301175526929507886850841258995751779473520284352552461726759271568677704226420948109201142344798167865216219265828834219538897642717836868783224465193247787421436381532553551682701545416475097781998859276259959432775508374135547288788876127484430750531392970004699151667327780038964721495880536753024668254157496962861345486679581482015095427695129610588628148350331457117664644873548851091355585085715634162184482004159521763731832381280152455188315730680712993951436739160205616667641636789593936545382063143767316564772316204652060669064169350864316234943741184488628813693293462612626913561420762519327076170702292069814412504507514444346922447463705653389234504014032766510444169202242209932214521339174474537272819135021479981798892880027628905220408393800517839548488480387615756071148207286090427440869598855095166555429843039015606439883496476746560882326708796163273570337340804046924819014462679438147698458867628282477095599065707919872330481367657532253518530965382501554032977460227525788209537972480400991957284446999472839503874775577770884277750768538909762092251593203487399556925353896145899253568434109488627561000697112715801530501756454369167765874194762650500752470898868165647198713097688205150575803340988345361625482133987273313168588164006877827009313557470373031188259293860043443907633845507892824274588841173469693479640019922755140492701582202395643564293957234479914980589936126938260138569741780473106421598310370578565234188625001503989971037326744546267400699832987156630599430512341824066280344287677649209818416050614310519248253790499547545174152924472626167431214724639144257893938541983593633123640865873181934780067501730177526663718878600359884482913230353133920214942177303004854589204418102186083917580401463981802278508098716000855731090724461308634009683118822513961358344703061209425466684543795491336991631848303574261978035459636103734338514895427667137788972837501244165826240107005588474944279451988365440922314485494278076442261454048902912427481963985368828875015579447160643349004000100644198090826492334444643863995248939763089104054123439993491215782035193275715039452376840279170317236720528254096195211594179444632776278074060072538157048040578294693120958727974712681641384183139233907100620638895871760315062115140501523225471223283484823752015629234295601300539086857206855578181786918406289446951992162572951200950214901470015080778333472823508361177600579855081320382777491937712327851251899105959287061018713775978833872362924973983807536269034577299613001962923040840710418730056702069948077148077004665702277084822364039617501853109240056549415937156581927297045429158188373335004367267393149510260958882858731262655684201703034948251675622571760849865187827983693225875918778559469211972399435593569044732192605509190204003760768065825833769272639691957073199938854327556507281666338863035949602309601533845113759145233637223717422024331956123165093323707669839208723572138719696568069147239191015505119553025969894697987391200261204008024302285410676180460974995499534017274955885748729699005578339632295227326421200501201472162489272732407965761629500782146608104431467019105947274884280938877661124751741338219141518376483704276891697560539108903638695381145405710887298428224297247432680437431274062490578186089820337431883464832860374895389553320064071812048739199153390377647903953686676298092092220108874130961971848987180250947982980496801434062510949738912315794799361960727121743654458653174721198566404484523206120529151278792570948010221767680461293964760357090348204991035905098814288773837483743034361791902008766892533956196883295688964626086079167539709747056409653921164583438526699007147158185057430734817240376618887224328124713967390605982344378792112092240567221384196006992105550034578490408076244096158268872383502421947578253918724086769396377842104716528446362094540017829609460337109811784291171214376407250418295577182408278448961421334374308701033795627651826185284082942900543845058501117382183621810881033194746195346705196128583588374144825691640764560568137868797344756947528251134989891451500189084486709631436605741873064745122983285073403658199218615645619917206027327158358846724636126891545518795644528572282156108351153450049717243766047232292595070466557352964662844284058848021341280421714415419243566661615609477901093781266091297954935078575026888016549054558639427275082302687170730339162080091975270848313778698609784123589641793907865688976461135310192432416412779371053922543417771807541233236257729741544309536858021880326585512844379835059678537708678374497181087806633199951710564233484272618694221656872127206334536981560545092677111342851089087442686553555283962272573844795721291145447886261099745058095638165939417935760531729928325946741901979556340715845569104171209429526694202428609205631287898637350685642438047896409973087865833701950107271353217650764902973057921841059012147665795944398959515518311520883084749530897314311393440992297578189378976636830728802797418848096594599346941037849461986398653775118935901496298608217901712564460192159493725335778068140381063844366693056688434592597385044274484989483167394631912970132288976907726590722489892694938616693455188126567469516703040105315732109697428288035149056927491571822034805139186002909993947288534889232202454968579493088639240873068811714053557009448587181196351803006920321100528280685826454579948013935935294898506322891503714635009003149939992386876156708961218914067923456384141111039271177554164199434658896504813552847958292693545414821602333606314561166224352120738607671136526562367378005126934366305847990210728201427963165028157452135312746096250432463517770090589565747433324523474816411089875497202127302485546334683125651286211187032768626986800250885801297291737697723724107982484329539530196986464660890231031718699322182058256118627033741777704642931359232326525704032015781700239960522979880536661311529826072065947666315880022950709841611068190987816971950300986856706659032914384559651986831760674900645437293938035703176319069284359859151251275647923235654873797460854099224808588515911679593204675136473236806126119754586883526878310499619450167355854186126131968205302575754515889515795717857349709127142221265606690150633231117651136847501351594842497320610804040755941002001134586007968420386046277049833470934567751461190376182301365956727250583758238206201907963778149798394745450695613907029214460900838748839494072232862287757681253207837270788614541042213308812026394625064598483539217311408119209798894699345335319590217421346885383745850638245995656975621027611554538569544136934590024413611611281877075482000433353438080990101553638452224021542661094882759494434969251836366042237556718205791274873517584246138786460346576452888906927384685986918782762542499086139146539952666680223646740114644371778256155664164486754618840547783131561437862716898486116641223853375168427868924287846445277098690489073458755049958950427314622302651381337291146527243596600655983522979450398075461233697630362488846340097808712570524065785963066336783859736223621312217823845724952238964629288649389176513656110832823699068771694378277661008160532084388314463171270698627184318457904800170423376649396917802399469822777402958636388833011967648724008839158533502837690804937802978982966442855209169538763665820019000955002850350038865619118747093985228284077813255157907871213935807087814638779810295826731712123100835001891570217679464080537259564213536305695833824752138682491490832350753554466107015788725995326663352872387680439894378547029585465240232011354490477454185723848301566965977420598504128638702666227599768016548342830236368125374917312369867304790283320909649848361029441386964120312432045583598809707461346595251215001614158870302278535974046006902031739708065113150635114966026456677506597684062432367826094969738250191901170981759247115420262878455636152351705490001022708137972188347835999536975005498708060272912217362052836139246417611658432278717087027961379655674836157556308918503202203915428306524182764139006443878983889606093918401999258933238502702622571225866853001728153820392757228149274647488465604386048553421591950458302604321345628813940802402674949453514180530663842306431777792615214577547648238053515510301413055992551044978486083652134352927725140398455177929554335315015797724630286839617244910133931653606838726478904006466060286444724759445831485642858220531880413726930087240341328789941249529642391646656933796227098465727440996963260847839014018032821035585111603448343858278631032808917009699492445829873045355782214722839273870431866608857890409850681091958683282019101145268620350058382296296928949302090493254392879221252758755949309355688453415564615360194644570043834593442203243302111896291058095353830947483232186609333659065807438094246231514163751395771826784068356176314061929038278984688795502988484975095500831363828475188099937778394850026832831105016399751982208464372532120762293382469064759083702644486250846005259268123631958870853369667936591860842999929627275902078879643554625508177528745706824934931002325491969244082123300983210200254243959201016313589450834805519410588423594238259625609267063476139753390712952503354165831255655928967743152910743614176910184062156253962011970966573260456286014605613692649435174875264713583216133501747482819702721861604603939191335146473858842537768563978347669923404715286452451782603134581108516833480289967960201049435288513229346566267198319559263127639446801384685428523130805400275460193771372619232497697075196205296604070585611165829435976247759924960307672141662825960732123668731343552538741319492793200263719697811955804050762010595411343399905182559003272398480218084619949346458820212860114211577462395113673801620220504638051104097317644498643042804277292743218582878622438907367459010809748946173451928728747335607760905097122966246862618669747913706227125566659743171886938279830468692000639517072655329691282533050192518410103496838476442511266304269460265035799080345944406616033546885617938615219689393517708172393714447400531684666275416206980245477335946138318798802474481432748970614895216552412588003073720305513628976038344018586231772375042195894392336545558973192642135482084891005521188041291179181996242269718266660739458751981053465689538889069033224441180056881305343511706696788483366906998422069996346227401720455689227359262898442059096746564947256945607564153285091049049356384609303381605983381594902201732607889179909256766955063899865643076766620319272466151427586720357552031082717036648579516792482962626713180062740404817954987870692009886445978827305107144765589853202863483400585334246417260806538771685651084290121650078429905038075487989193748091070916876817026114905877835489672079697949595405073656109079967958841380215586812082163379888694572462331326689155885169734845562374805965574973361852196785061096751524129553447974689873390531103036879647032386393070182664501850325953478239670043993707501459537452066375458288367108329646171628286127219472578000737140010337467350235436285912312084864237961489415490880291049558201516983305080527450955201758027696759355014170713876571125229436870548907602811484494774190649853468049193763767946063460606169870812948412218258309715962746603300462771494764698101980974052677988716824483377861466725043343129599489204569075066553467042014414063896229551432837146609860963423148002070937939732320589452122190164830795792135155675691213639188501825706062592050345842511168053884687659330306139041414707223623211826707307423288737581972192075128080398738595151774826085960578307258760760655572620368794032268943868735232415047514518841447309291503440771941198168696857743119532835292383820330220993660601460330797949150369646239339063255030191498065803602574466572477273560571922267692660221871204962138560462438709059463031208060660994914594685543799695035728810228910038369448604667987362882815074375004489130862566059303474477271251186948822448575798592360497185734982793560336335840416896647576579076710788449584211156013724106481304462363625333227233308845443201801269738418161550102671787996033644749381182845432743367151205628034608117166332941911072569006367080010216577294255804747211925343928720782939717631829150446656499467206121161098353705910520309049812155995724940141822405974643101527491673830447602622368595916569399709867169559721113162751972923358282460734029213351683956618069849359177852236517234621616960986636476755456442988003737758236932209855781149525306074471534964332184590872723002279224653127373416794984234679024943572565769328412944641344890495268893364358180157105213685510953269242041879182981406266693060220485129792123660348794347344715253795010853920743939446636547949698202355972345567415429683395219035522693174395920507937059598087285361519369032822949379214894495488425479589655257938108167458513040723069806485180280562104565403591392162073974085062564622982130955918541530593348739955010676926988167670388498782884066955378784420581485758887244737377878157524936075269598519932794478777257298177865603088105609921153926368102089376059114616875954331020796386799419044207980422476499749698887808449279334947154352624321032225735471593736389789662515816799758923334881877141105728024583868264420693765389978574870532018496456249423157589357613388136405559872128246418554788520334132533979785103190460453302392754205297428407746378218031249150116614661192692894066499206068098998064782239785821624845076383417353764430944179044622273287470340526537043862311519414351974715191799487919891057350253776170365335540659540481964412068527704282301154739665930020958656547874617013944873591292404315456993388798584669153854776782798440962772920325434583109043531251240993318873670593039815706414187155012052457352608772178166547566548488175172949451421137244037644600135955319406177144579476816150932152731397097085605481978955340254966942213383500282569477084911137897034316698987429414417139438140966551240751185091075555675390294434472846281873306273940627920964929678171243961967233542364704325771685567486046564808099462664761053532547021211002545162458339348683922139834883415946354478793642157914923952773016194496481397009880704911446068331639030380876547413576427919047547937082589644780768775766772208872291424648881127779010857505139498273631732767298457296433075896416437856923228526951735743021574845004881601136745100226620299268883932541749446140207267178843882508943588186749088194788231916049397682706699929930207594603132922643909249122320172684431805659494016501453484279911713985110300675897882857332658851024388999644378389044492425814598921415520348535078941457402460033162785740744515227884874207357135692907713622576121396242446432298641521383835545741122315551162615899575968525778057452930806738681446515936201309727625024560836824950240681352463612296619653812858544502025976348497336122543140856119756499995137636406651009957903069653820290110628690003001038596431432734906233715302153475407623716750595875588061646526118845186423796168639620433633071839180532949967828930543450409004297001307328551756132765616178211936216091790749054325982643765635249259947725921534672205743334025327717295048348477800568012996594979417384967749948947126088075196401513234004413542532672962572186019281779229810206274633146631980357246028335259281417666891782594047402981911727708625632667613718104491365781638688155451993586695349273539414424718391030939520094959754494649806636600781726450698432968059666075394193760479537305935483596881397011975033464524466034997214664062246204699175516723047071910120244885996063768112954387410047191895329104331517364283280392295854216629490127268067498593897143635976345170037448264674273716809787445795291199936360797908994083770790574824160797623757539362082293519059090510396290123122426425964687574517432063023872570547562829108432340107534842339098649457427753354099406467044280879347966275337333396533964375326126878491759550254102158713518585108796253301695138277719741203337441728310719073406278135016284697092532792530827555964618252926026977836582132323863184260078068280352089149773861830595257500004777497982402437717139597032488037746350559253414934625587559051426621180744107473686186803471765586206049966024384851674621203223907910036363385477748169035313894536643855066943112361517007408895494174046855730390587057435757763151102267302008265420937618649502321193587816009083058480747908425999949888363530621614193435028804959564990920164548934473691522615795710133797172330370776439786154571524602133033042858220511566496630849854270946879239874787687069750770285617301444623560573807362760619771751118221665440594919905576194584747213447181023476404909042845543448342677755357190860068409293847824594047448659295784385072400405140424016169392081139785418754456605825995388151193164879532242085953287111630046349852327773093995394276236454376541410438009855570849175848587111419735105550292960303826484470153748421664296954882461363044585410656549054016435021389269407529619268782384702920241149316199377266234442990856422449586345267831116144054750125120176440581052655627977683853331755336602454435826130978269077813096708115228459418612340417429675589589912037315772568430967344356312352402250362101817270006762090947037090623274723531175580222907372996528551310747135729632012770296192617223280343600629276340955075360130468318655929212951173875536696107845570652591221184522733693685918102709763111944996566755723661838387246909821128496279957072225406943320030201818635047421309024609059629426006732067461652192167415285306867808781091831170297436197657602089280764204919879844391327174248510637780015724158746406721948344374044921048427642553073724673466135363683862405394686224078935165001515890001051740997271238461159802860913553909822713501020434600451173937953654783296350421374686819033730828437654685014310021894397385597713662976685804933631682490392085368403858913573922119170259423135543712438132511100102256141280072487375490351492613568581073505271056722959917789545300188828676851025638555708030612869514070965445203726135578308230555983142694464173614776292985851423437631410990151368603007390595635581691703948574168590061106109451007503076823289256185614789862601360824113114429828244647901537803230113689371134237518950179706954350363697387420183085775348907272182809108883291264351689324523700940899477798123685321664261880887825853623971405834712182804424864741077193809694403362311538665546231336112770085504530797504990740571285107315570940325777907643681469679322747038824349857419490979878798953982813424412280559862105182445028102362610126855872752731401363487922236591399012025571723856208154898954767012863772576292114185284403165657112756719463680509498780782008435327612102576848307394149130671849955180136684430850459394144720997893371092617187406730549547118699173509811306869434520382579430157119194418629128216043105162714468085594389173544387415816940187638097454655718474983906602957872763645649807617599267797157498865125824837004626604670359905400236388369811230702522977177937602059714088555406543368148898571570191032091842830303956757721034699828070419336212498927848389504006942421821433143533265929315229019032481636940028564816096423838058938529482255874703496756986568656818273813638401697982768003565351251487335630729956048844851185313112633109520776437610770610688545011498569122468236408576861871496357626291650636813967297405016086190896533908374656844803569935996037351850565871912779541451374548938821856452150794501303247261172515801116313647770454136632285444084918238670803476731484590479104823745334988576581358952106185303557819022474252573108831901244378901676469486756632448394310592480419197070567130009557164258823816878681443716556097904184404747767067242286677950790110038842243941530202178113209067007591840993157594500286236673556107946104453081068910983234395315487445449921600824034194538540279716040609201744551520883073491219420686511490629235751498570360071641905657488688247855848071487520007537353943324600159693885463774639163111954107670347794446515365004988313738199774406129108413903721929255634082659623657680338021732272182192015596529098155060370921268289003539662898071933923691497968428379444117456814623051636232195176702770880162640476172687973938133850556741453105118060573426311866145461662460720584126446308509142331565284312105775816818945916611886965434914485992526759837904892067477916976459372935169828618913450580067692902042227252933719961132128320579253718213103705983192935861919923694361617286243660451842363759753630009520368882300603871572718020726112913258232938455800479994982509893425510429487199005159010664950671467753553402072984147304698889285152962979010385219769183243593552777390519688740015499432878850158272746997306300959148560749226664389564256550789179001087512218544766396650333120051184066220223166958641457454865329586788139248886454195494964956011662660127391436966516610575093240571031976797048108818535446989547761779052699861732021163020592313168399819727110377457469523149435272130015821424768355567157517002437724050385917449248891587575991132292077939962064914389324358549185808582220599475886629720375594932131242665294255882203838529005613458914846404922229694927570479047752106990727181109847999413649760286195173088248601875178237016024812786132437922770621299309818754094587546861209795151494027732681782693355763399546637355017605580769849221776648830585597176239434677401017214350373117475724841914222285554726667165963535449600113322367328434350893682360309619121310518467940337552906886995191377938292641760767090722591533859426325440295435067028552196978696075342273753171128717037314312447948374082903003839009167895978219195124927227885128973649573241908062074952847558570441697693992622708907033970766920841168063144643387224509447600455809459713735024164023529274186198771902883959237561405998427072965490636604087474844130929773874384776264741543343634821983514693624972614963237366827883514475551447103895857459056760171828499064658287028582368438812020343890225044075423066706387630111323254884582315280586573788818577961413529520073577903036189976565859300406324193977883025397957060262675232559183203597582452118508757365512298307223187640492097335531215215257311334092175944764822443269773376504203298269894954847363116209326281126132738100866551307439284667063027730832918615905768463388694774378842032674731790518487523015365372705392718813149262485848917298608762269899903633267458600220181542929256503957999870089863245845077233103957469056172340017656308961012970909412894552867994628100391272846851882867684611633951712656592687882932974545232031501774738354072400691947958818515414084879147589243783321152662145799422725732519567692255739063217656043825823235521659077994574601361245483069178822652612216682592964402644707091774793878234538001442489798972880949469827636341389338917688971026144655490463995998843176493124813482165972850306642957479757244351500725757729187606788662595022799428764487524913613754346541315315703133351401213492973294869198000580093232895762692583091006105985773795297157031309898427519276445840169160655015903521159795145980013720054937985375353478477106787398173887729420888741418510071769630850012150113610903530239748422501212289329614580164093612289909913680359166489439505596811569761136627044433883938422249096068409694772029526245213495303327620981883692042124903664677817741237261803783648100891498136703141608590729155962799775105080820892695477515418050595584533595573276620428998809191291708917830000246824226447331973292969927011096059190302914316056808480876334535303609372296021227565841571583783307810531118547727212583832093729661272334595658968418094000475415477697927286832201026786150658238335152812880650998717686280987018958252119324367681205139114762080106451284506924196185561471441548490621734208045947200284433218547377079506702964849927264875746815600429833858804449319533206609255038571822990098444163058349506272242544051186675670772556081424402268672317108334769427506597178390666644309563819572190398091341627007841328101964009016069567218561280559135527728575860276208065221112635445783777760808339567998285725105785991059708449276070877350326855213157234514308527204725812580544038691587814813177951564486903325772439649588766361162482311178643935883629802576450398263409718578180565613835575661177749734731635564214368580766650820517315914015770481171666394947503621180422198230866970331403579398390778999908517148942963911549343854672641739648705751849670159813470996795275922226168032198389353473465176607158312387105748480752766108606098583528067877026620564944252228399941126691864685281142038090279118180497974915196756177717992191166764453090059671990403646945793844201989334539800532707861415295224481003612441002055642509342819985453417795216378390642976150956514788954952478726595524062962618007898180679695936723519083735428973693638446667395554438513972765915496083361410922730381257235377406202534642885891153054685544440838741099784534211487536247693571539801613104233597269424145776467153771925595304631340997582689997635173056028060839363041981102238237375255039275827979559009799544975631598441326116888215008320678336898742506335744078606715707385782851668516373428350849684515453348473658413079435715004486042650471705250131207231486911748458906278373415603622949510839873601233016531243561997923123587561370293381803619380909455221318965406194892086382177332412723435392951237443719225105239521087765127357592512918178075603226948647726350933449398174157122962979843718979521282095069495182818473567321428222921542215787534456691775976108658725973087444658592239631229359044386607552978941699912785276991392949305835795452956964109834601081799354689314796986960893599376544506470317461880935706859372037056689094597884477430511014917033286086792327891629210019384667208113685987730708485145545254797718078732265170764184211536915446488138111144472617615109997234882313181772027476126788189769762770784873399909146987772246102383998549202288386970234493275502029059167151535474041614954321175892410631362578292554096479292377882625757965963888624483571795176776463912338122378197937174619103313445958265379613829670298524523102769651629929038631210975357502504685195693526004326488026722503826350634884419758632504562165039971946612363191036793203505619996746225573193180309563232295175071273907279369877052242112716673523778696371549431896513912034467653470317753205698808387425749708147655030869942629257058868450924681314626615748334050219544327826461148983209648746833605095982535525963648006425802772197676366380897542060001008282831028272984037707868931252614671787156113666227946073567451202048938907882861150025664585142181284612332068266003675883605527662434033475304557056807106451657091297438561734066043260296294329353146047088580901614161790710289699905123638784462507383913224235599249673694808347036140402842635349115480894074895984177551005886338714874740159750194780219821570943287552472861375490853757073624824750964999941975473595354870365392525440105777972058309441081006710187608092930951070780232442483790993011424358745406485049138224958137367665424108375291952764769890707278174111772800780784551940704330590830658938177743756035389538197685278489355266226988894560235401249227454557862701810137236489150829064984651156711435641087889120032661280074342350429624761734455537211810590765300138813606552311621124609738578088290565722153403083938218893709988152444576161926699559865447679659252283278073661487417504064111917948247444935537433538727888277875522242093965794521860301650837041089850000999716999491328874138929233852855752984986924006795327830684177187863347540177396470713306253495545997030959531355839601993279052431106797510029249180775982402893787496353773678428390515362101355193784207497192472332104529913929675558576734313826650015321410876231070727651097327611200952972053890180555334701499104261087260061334418255038644661699170257108695687444476601809741762574122898457962162175117615415910623609509213558658178429004394475364271787330865700878807038466770163113465301393259282213344406747263748225324011868321626572675463700739592580282298752793731694003782742290845515630154319333298740255622749207779546747249108849230011406601643946314336921921872674007188461404814370014188912358920339063681594936055489537416769229013602510010140495379409017000308450799598655573737091345615496312176391185585096216273292793576917558451993421906453198294667061852737122758576520323658748468132801646265693879269006433052937739458082795604361433242684251850649642269053658251984312874442220591155811254128058814853763433157915256873853429496200883089693665367611896846806557015684558788145011048697777121371578386984008231730789384420971085431224829425586130886334224168433051394727769667461809540907061956111335583180698776944237589179403544580897845185054525041056854291841138386289061098503182339522813163540201837170864378107593527474975205857660395064111062780502111000381004219228490242291257617390449842415989795833692236785092858326576452862607014390724419714495548958970970596329376669449010801397718195090301823645009016230278971668705761025324434122789441095290865632600106521471522000426312277789781366687268428907890924994604501557693323514278288208867868128543743026049924766939404560917661050029031398386297719297762375879560407361101845359290203263518179661532744385937393755047544519927233875417786771010528233500153574378222254341192874697503956139699311204554771307341045095847791943122792291884439231742592967312317544483070211668052287456392058094703938308032752826819447009254696269172380090626047232768581958328856613020794732036433973971934138630771602209275561066011492712434077290422366093574964022111032868383417531986275427497648884185462298012763442126995012632238831525374171042370307035065579413464749932079493763441797702215512452601333792708395049261809522795840645921585101480605863192219184243581649357836796155488330058538171231861706770633329320322988008722190738619503297837204430468863945465484617708861822082738188567072686841366300800761582309000807502967914895009122516919236761890425056103634542346264382279483022903766597671189846660865209693552824114582583280444072817113044999985229745358870510455949888257091629774883456607565826053530280615166910845280031377617878678811025379130729142313621322588908890594407440232378494039542331336421623328191330873407407479632205478547763592002310419663813352701962334341337265458446102259461805167833388343718030855266341749674754804976219937140972327987853556354289405656226066661916774935912425184304525575275331598139828579900028936631140184676978906793944189972388294232981860314452691499234735149537198097366911899938128615367544414504266133540204384124277080112602173951699956725220072597555396548645733656338958016780822375574571508974075994465488715076712981707951635022592270803393928226585500478620789780723862594988336866969013398724321614248559118532560858357520150814743511799474803469634061176075852933947638615636655048806383572998137178008961516452127183974361651691265580613098912991362518629325140086320814331560913674524399364684962187037139252299315665766066389942568576464709360241268743506918963780265211766602926931868781644699577982058585662393805490129015706893912656510809586682417461067325953174652147691044478348190020404786832608326220248943338346329863706336571744253097132738856922295305044758922364268729469947830066592651966580243928336810287735541282601343975735593931652281719561722758027085141881923137475715232826464898777346006191121797206476170955496598898570299671214722710676706080375284199077222458184741524421251483652917144981366452452663883392997337699298441824180093704231811303523487751389252906352842704759087669287593938830225763127852042338353881970687017797515299928124343260860937982631044545528137690300939244906602214819540342711840306340927633051801788149947030246444023662004574792447758432540001509462845436093279538013134495520868042619972681657174129410065205413305735529792663069410268882389164148824319646016890658660766561490235502983698419192438676451198681473428536851502832181257577750052813352099952185077486672482971669273884425877144739509398754270607601809850914206568944470540502944439655395979357825592437848499635248262360137527935207665867586463366440678940153493104472790263268469345744733363132710361428888099763805625900486827113921968399066373862368810305492812013702608622113370800188034340632426774535568338108595943191433806155377151094993035809752402245182988361321349586647496351422946489307345326131930103144179195153567950589413472610983196983998568780518077808246866796128685160763050187471541718545282009632192761369144993164790476783691306106166361510939090480720186156186402773779883832938378288526746560682025991618803185013045111151019796778053055359128840753102270619789103943171937925454085219533814184552122523467133082678320095379475619312585590754072689301395139256102346954355204677760486559274603645087266075996469375563685663466862383941724587488162137436481629222893280166841595402945156996396712224756814793410277854976857397891738486977817982135725224802196545976137526699478315581418598197221979560668568043914963340463382316015871521812773980266204993926208902880318739198594926755822262916388814388359191815269214276486340107583610555098251930285299235216124423926257182182952657318358628279679723159042102722773072022411827782075388073025773206248285211125146519887191985944172207216559334219910521656002409993923944660000566733942779283588225498577760071549461769031297910915092253783845574587260866854901007229426758985919886083423728449093277695882947686886867641486510884694510804486352980819482117564455215066978994302974847451000295988104062830800891314117215454337652516573294451508856624375033620089908645885835525507437906570041739413397729597361467334302849369966219939717001004729447343362346316307169114181777570218363840010101253897175225526570935915171154072741005403489380215307428308296430938795298825478394269881411333934217902537622063570359100267248041168701555483043501566173758059072756837652371458476261052943572655405570654136300381967142940423839672707424227051027014006475422628723124957151034452917804811545617814771506095018538910016572461200082355567649587891131903383022049581589339039976687064229258118971700916939675172970816264506681673801291773562900309762790519462978669259069133796599804333911523269787472970547261757034110634376304214267819695309145880353445456270766657645889251122486631173496913565364475661809071382151320221029506918216375617171684828239334781111894271887422877189056086620815801487994954621960172797280350704199235713123312318833276639165753394652026120050202989945341004737338040923276876023403459557854353606406062820715992435626887809309959521935742027900836108403014158473721294807062794432864614698650413114125935121983484377969845393333736418784201541685328359825002978409444301750573629496695406619724182394718901428213192740924367070932378685109804442113584031769270109674424327204658689618131488231208320173103775585655838697640002243713448486245653255875752654318494823168813306408382646091483721187975570849613075749487174107068750320833565012258883150896528102168911824369004395006191520068152541490080889222069026002346416666620159841324321371239588826497686038709457831879455501460822115591033798569272870220165855617895799791027790090946763461973191946211798240224035652137027580277829819549750517010415415909165916067445257673629246527957665218140587380177593358012317793409048690787819221805541725968682221028408799323653920476965645034265337665755526911416675391051958272351235770344841665478217023708026005926868300250755474549797940560102053225077954691177970169547003666101162794595787368383843979331854924554687995559031413340559402999876551880555107344915221667724149486132009208382276591062611851508041155646165219304224822708596566583688504811342837762465207028725401713027956487110076218206508131628545807178832025784996409552229382792367721959082200306956568809566011706953837359911723157086302405942846593796559667726285387796208987154301547515165192893172553418871533653887028685181855243328469925449142720269088067782496300888608794094817425137686579388566126826301005033927184783610385839974542969220518212738730497641381247656505000410598586517878596237976541967758374296780461819770131913030705966667307520477289376734208430003538073606196058554046755155911135361308111661260123941536340061253644341443693417574260887035931183931608564910771089062531735016518335224279180298257892355011200804281911545282253822374688030341154683335614122634573316079919798036664924441981318771322961559408017786474042499542724995156572524919300585341081993833947879692759203494532129821364541119798357792463551321053470054240935110957351547466406953051444477786562241158221632478610758980676760906278199194046197363859640972721808842944758726024452245348366357519961409273913709289153539855721492518710245260659654648547158564513310577904469637963361496669814227382897201150975149342950411419723096062651020377789111481613393138884964661239153286135113749274789212260201684784170482515528769546516261036589648696996054826290248382180031702103733249938305780034723145271828746229256496973486733543567816472269364557077308447387243672864557288985042133077410065099502065843438560532425660996571874450302979965917752105505233802233466552394672896379353623661499032940654764334140307379132257222228580223646293525507786152981574036369015958961084163164981077263191707867957133807894352925056179362949839879919438279456252129118001409892675308368587122580989739234524763761662818024225535770057776112481522124533987578652022872723582938905270335333708423626809733399964312409871792973873102276036182852936316115137697463126351765201361572561022281120209327257637098677598975404752378184804776822591598824705076069373247405583208424195154653979803888757051034644035393735409466805278457871443291472230529416810366686802690443099751349299923288024254096875118780522283005029209243538717690558680532073596087664466654790585934439068049845406608492544939351699919478580415519931538712333636692814664048287008928106431682202565563336038065543110328931820524580793662677897937973190737956033298307404141649923405137763649627154143031845035749241889727246179746026653927551959917976210385349331201554947255761226491223465616270600059552101298668110631946867231249592787371902841530199633971391498008783889771962951570203059615632892985555238094516389006296571376762275358043234396874741484095908688761695649308961375464366772873659922360558282047597640870007944156893134647081284251651315583652142041107832556026900683042900737707333904660158421069999876017415394470445213419870047294840178154093420468957575878141432786074996781988980728353737530618437823420460151488616455030585219667772777876520637128700873494178852338820325117450982338312146132825317947084585441996947832160826449194872207735234238915407775230967420923637620942036613690455493304252290946663384459065294262793394178144192625350153097469471095533410654797659559412393005684851778444094340457170983861056859869576197879729170023647389760241356764838938355664146571146548541785669134115259424071327363835400652756373594434847177644597990279916188620720163415127638615028869743376772719797291760236638784738042025550263216147380554245526956315786317681558871041517622516472415251756155746443732544541815110505750472764601919604317353786102254366410972810886221009038454585419965911112063372599038376466525953297102054660996611603005471648768471748502029834039478175420408826822947712909366640285623088840246727956097707144220342245268809375067351479699057601831698241460167706852141063364358992945103355551101452734699434452905157888441511536334359720201190575001644098344018633850131724405887094075727200789829825601393362859207908527403733212260002585439486729517594746724978874521242523700232753040991467410172084676174900845438792811054173663868113110397415695636060198691704527588193266173483158754332938895396758288884268456139062593788395706863191294678186631831232455515464680899776769746520302920235281943768435612136504234636079917173170208218492085447076445924970910248178552008807513900498696688601028999386494527306565891236582252600758604126018452308078839415463921145932737639429522190910265302284520534283066177373441899749011801354290532771756793143639540692808450697917189793610167370966846759763349969882838994982822650747646553613157569444411127697028453040469902643087928412190324269362082082838356989536036126976526217726076460189692402998967376237200666725771175978542812149710711934408585619045589628863752494917080942011334130044703750001474457717164799132406884185387905974269757109176393589749587255547524882481565046332031398668856340499749077950437761061663870532337155630762214841918901026077205724641358636287338163684026024632615815649941895191104093173014465830650989376872013456450208694250034995067457704887722687915375181522236297403976363064186713319385231168550201766838148836601570791494461463655391362897523966309038139529229514671803686951740525331695560001316746751974928378176625789970233091590787031252406313240480032262512715768722063433592129608366398496951006059812465843635925304109444951180088638822009048072421846601393321163088765148699290429182687934261122242067341016570478130579690682424765915767940587014040615797837258150763728882935364143021574224770347512415032433490318192046919763597284473489524138593546410702613726941976231892175664826683731302298425006822053670900580767634511552310151075379169049897684253964132218938083792306065276755547553145243936366985155082516423200454565202203945553648486260737937154298332697879931765610264505550429983764892835231548767007546837428431736710566971169662647572372565619199964332517227638276518393007181304111984358431049094302408023984987769682913634293348319754812052169116767178272868746429447240401411491898925257874804320451509384120194872307538321422544761474869688287377839691954951109777229894627002695235313327070007001102956726865312377134303026819219688145496214181246676629093519683589447228224257540042165634853045696492202024778474865209011109037063180187039522559890436904404163441742460942487525009005341968899424561860429556320971267167551028846867386380610011331187936293314531238653668952051612198000896205839011357918944774826487278597184541024439760526196715548936356951436608370390338914422257492122943160359557733791282449730072557757331009697183424733877938274040988059226073021765351063910519226305747966915634979606941157189111320582553712479154309441775094990448215659323732224282348290449658389589588450055313914018606182318217175347341625670620428245973278370177980315291060149898951692752519479033016472629795547520371685809024496644598742585455202226389690765479715177035971213231292721560149785220209775007530569291852368153597637871729154753970896145111884604758623553132100011560984612646061177445595055434696177703909721489597945908400544582012372943754213534855074766700639540701123535751205926288344644078436457300046824747144370900794295905248579175303333565190869391107278999376606476351290953781270125558334173225875056265370851458846092508776291927240877061939890719232752738884713125755341875300743948121875826943877941651739536359607988826794228763541918172399249346413292052768298275253304383082977803725808736881782238382025875991173856059194573731786294020995801006634817889194258822474120872114233763068832934309455428341872969692085198708103115500920275269617877604223091858645610695821718870045150123774665014943504528989512076690027432288712552793964889971558665121316788404301636806164368667449950078383591326137884943364664539165189998061573681283178253157185578209140871582371952728487527706597804734416020647295570269174201580178683961104301488830807643693330570583099662628779790638291008654545014462846521865566223048578857973696637707932717968447360193699423686969057623833629355693685084902367718975452010145180653683385463139685362432334761876061692799337552049191764206425147068249442224295278616687353807311206895263900970322906808694401715236455300784247763262641132856517286344692140528865087365474792441214939685301914231015567488623196922719192506839188494283323283193991486236987218597914166215448019342308147017013723910399217420866280027326060142035107911036526304438202462941429512131308014491726854880461409711336651383965395219482185567893331499509058465105907312686787414722282045981404770309264769378377186103032648686168325951720718620036790177935636962774462536756392769107775199922475367459176004836701239231213221380732967804548828003609687921470996568396823796779520056611562891205505920011934757580368609213959104795997913372650495742887074250568851901971779251334490841209415057571603135294359550481528179714081525419593897247599439734067206048012817359565170532791738427966201640120387092706813007794365555995839905808790799836475121421785564236862665212254957451734691517329446521243945261710618755382311526076546591994440645154384637060086285728083967092924349001194544499201242692909144574421823062050091901893570962891664244164852755762360814389216969171042351480813578658083767161903134678699241140652164232289426576758126743175944298207507411886725721105818666955742919893104599937053382290843772584734110033998938103747183758831224706915423557162030289065008829865720583763270862040129194687032551065867560100952685558268958829033646177621053722321760548816022467180540154838085718815800514797839701910935852654671549791071368484904104038712312256128288819282438688061859221642517245974632496692133173908809122999214570713397846771276701079183006786699928144559664300182767825763964300763702574640219842594232989720203716427907558541168129228191924409101481007966462004044975617660324603454537210234462934788107236678943010703944742814973733853407578606323728046334237781542130860450002796027772728012866083026424959993412357577774591771104426979266972281216304080256087850149249522828675048212170419537847849389537249273743814165985965501831006821292754726888597788990409890541849236287226525970665603041611631316963166017919367038227342195136258968168055362576982243234073994343253152293460103507861289309373608033197788353012630057666161987153646383155111091752225522727313008463108133210482637472204570407644215626925215401631494207468198371395088946781594748121060796072783904024606059821887772543785803513051424446720545498068974433376824882955758970189640716019164247661941241207629543660495932882590361459720008052073700673663945122897413593622495133958851916695430180485060547818741801748112899126145524488119343182250180456439385023218707808204450965733711651566304591866474907678645503143386308159182473771837343523542555159342839337233612689919348105201077201657202113437254322825412704783129089029821403444069560120247322284477320194458859291423153527127340090045127469520591169466484788185267859255660811289470664344178719148736979536187607529468863022763024624344853989516891924087992435583994002232770344525770886252270964838283969226864683155800645883232261518136851874897827214301918625996020554278878779966753562385262875150012924316828088601624512417290484379784120592373304763942759727534671782710492769413722147884377401010896226055898231279131338756347247921464820419069343431145071686581168545901566964092848933347447708512196226954057571360508208864739463604319431271750636449389804059644892614969625938134195168679464018345970929699189628216050667886013665715765596200802018424576080412428197529147509338388903959224837922355308569573329760270922305269356384806484046421057999369417628653895987940669179851302002496852986209526632648935839647395913816310615332584205379386894710544324382717573251804867993622251969166583712810640413642058604113279402722650141221854590868534852376320982267783511433999477612316773349697010080979419494840732697587715091561010216077922822052053874233259967514375332820390151844648717012982331160915754929037358106401230378739775561712082028147472800088156416619031306927980999182108929207568927892009423845905991948183983454940742938225736535756921923680955944126746593113234023749188571636590383119694876764912931863212381368269196344820629728470693436869695213995853045840492228868632344396469972530450594837556921891109487520198782785138101251465466212226917055900662790723729843513454598939488990763570570359867976424471597843194445697994494871580689757667364222945504608927455851111908248229194719352030117478043339529027038004036468762207539402336390183541742341839895022255969312967224632241734771386126707314325486955373076952472619344828806995369120319751379884076577169949531535687187390012068799595860006683751662711039631383293328193371701099829231078649931218353190939522279469277985293417829092547311126054125992745380969471680565514291466790150646703449130692195336517731017393904426559102640210253270352477228617528392771235233600312301644336596299952032016324030308054058045496939131392106351693668696532944446963289026406916673884901115836659525241371792916186240064157796888707175027740491777201133967333842179271571456102515538551340433691805215336560497886095249539395515247987193218444761088094497060301017610345482668904621189511170141271830551838851834764934605599728653071257443945714667404256560216484799842729976956533040480894318108296194207840036737764811911801076763531470552825813477776155372153153150173692817812343155474351967773036385500778832797104726860699092391338928407878999138072400045195366411162035413689656904079872275760952613394329993055395698951298273603814416458819540031180298234915450789055984071666379485862246525278403016323444578545336787472408143120484700738709682797016031696573452663115579681113026180715848580461620463470033312359543680283533909423917628368893005651252571592581453556361522227118100185528678826743552332260786477065381223430940810013415920485092779086988619731901070609173054343625702023921274637921354490856465177603652389214042588910812256086906153725695206174918604488795457779939419155797259038031963111425434003769975829827712246675568481528907671134111643456296054004043260079937375567203932015840754204930082983066366674435404040673829186962816343326300159887689568678431930980315442839965383328015286818167690061877747095039479844217679866124231746252597496041074612097900175833501680450492946964989372499373648859356374612462243436590349528088595226807776946527031723826543861707180051905039218021986347738549203219861317726581303293271047951081953356674088006469227165999378027416905800365470061928194243474536996203358890155526796934912429084856121818617081949550438661136771781482379932560433135764840059383741049675925773402400366453801657023297606111571324319742410112471497229981795396240933594265843317000480300433579589822871788054147749308222385261121682034608535655103548510401979186662021728424467805125145796220788869758484778249915164844680016303325844586207860103533650234928679384579072440413714455178155791432044373984670077251329063990765980167228218153804093496377057815943394466311480828348519086035342029039842803573290751209915206676751053838680567908550168117661012589039128482139819065098282923875562301443125404549553749730859219708105363124465644422413050170147891471472384643366320574511504494230026356066713155497332574672403041049099549330862858935369142393662736512710741643792814282379524708156264938070567169980736452325740095414015630634270908504099202722295140476770005665994626276382743874214544919742082352402866248447003775413872472784649800542702501757648362618869524730407634733124762851700156887077300800772676781381797613510297125412304047496061842721031898552872408108912052591842416061528628348010629841466402547686630131655043890357878243515950119367163188301707321566525570318029864019298550966357413343659128626542115904649712366726625608655931023733708766651257785700494241823420327304287573444478884555689975779855379600741164503257767266509013789952366152726930472493869078670041733198159634266545141166709497792310268477465602538978906364099593566973525896647233423513059480636362288130349886085328635589420878521703295690596299248925262881575628842098343447144417328467882664500220790425650703559180122179951225824262923692448701602057881319128647628184938201290270520251128851285473447126757039483268178966256257749444630455857557242966027391727264630500828939832035951144311154508712113785974150441061475182401535062343991357665610209861125694782830966103902110921190320617762480489212682348442027656610498472099776949998758354684357836553811513554335462985865377581671458839890466202687642317576402973204288975313937236619742022758114048176716433593739901074338548482107129842998207888069180746599934406675488145317627068793223604782640990064199637888025356948761236270205371401089132238117452627489275108018483065608543249154328279128955469034974289112754612764150392088980115361640082786330150721957608169200263373486813269651199417244317771156833423567107424992436724119511071674707797363355995345728455390802431659681646286154552021512527313432456816367784881868362769191898828536372420586327852521703461699676807932529230978732258517739359117861036825385197941526006270526303103595297147096866829399228369583970707577044677022983023218707610754625713540349005648281804764934489294976214213014836374749990799308396324778038603693465352156939748482044134923531991141864374576873265821293930237433192829900403804803976101201287148929730760912935185312701081014138934933835382731326602201004459122791555768040676099667761024670180213235827130052430203105167397537137909615867547417472708499407066318959247866628031241221253227198029383134604057205942346389991308001139173671180622904378176177088384658463978674465910052215848750706354157174086064296104987838389109332279358625323223013910784008939579467152335916002280796497754795395118286252261104236394463097951356304649884577919523396810386641208782552031894101474953537629151547728616360850724011679764739931910253990923628264631582554555951602811248547969372343025184718445837456741618671619872600585580471283641128401678461868134680141613422589593432910881638552239388107427507766678670868599229382496121575895206470534686885803091418219185324401070387847339500059567666220605929237852930678800802327719637460034626764142154232405908211255290764283708107094527546059335198630459641049246627541031110269278409354715106220128463101840356779755382376987338688031443150013563419964180676192799706394057181495874986332364758118757066090708698183804107726501285490345719580413092712091443906922477190299573440886122555004999516700850888882934835370408254536102664624699119886477254461641614772556211125940415532709576683840912551822049181180088820419238796748151098998409891717295650355642790645043684049616144609999933194277679483307346937936766694832433931252847787254185823026284247952267861884113770256923518821340346834301400434236279554469366899229422236010784015980774166132360928061453857519989360832890971014536797306844553848682222860131953981368632696780075616859744648579861602939160603602163821348278337278859819734523174538566193600304348059463670219698906514496272462311230089106814173804949543113348764682924091502294256822871521159470779343533708611865309564126072813951132018779099466183173139418333675678555235241606712442310552313434780926573257887510198752158724503270785682454931026181709910271490229605573585823565450463025006603602402331453432672019755997762376601632176988498994871842687239548665638775681622334728812849699243774567767399601509675580866102575189497735396425893959121456013563959830361359859776579628830725836898765483967847420080138403608597210203614159500655960135754237967412691886992970787911091323143670829004860598139431179038651669471740310747601804860738946463570356766372071022677187728889598663785041025181423395241054954245985462299068545573898748099352749590863525555075178057638156140551480528809860021283667945436192424242340128375894613213691570666624659958272208936766384008645366755053258833826934044886186082700886345137053120196668075578443071007614145681263570179338503823706270673611988241749055944116230188510658583656712054028293262090190329956182120647239639555507991543273285410952821928562005643752563050103746014298806704020618973261569031916927488194885637841423213112183491889432884658520971220541379867683635982780331253533997850744852394964997689074210802376515120933152411027162098097320652817255972966149876132046534780299055993320487142063474578639111710082195686565928961387820648365000526927742832266797260569758651147391030404614117424029496868749575473604697530450232845949478280264924094826325106402098350365360134914935007587953082006772496211494353699543720349261263783763025346388571607400058713089271158145691379278035555252902060932410111267046600007272178153355230591606675565956830957983596906087390506476329269034891673565171855801983257041163966523804516442255103727153446438298015017566801520090056155018606738964835242387423432211236165153648118511472975984008548465034867804806975340529786456553091595808188197180275852015210232045293787875289800933516366222690061919974677001773221382768977535007866065424072394608854606259749364386221994895256187401940538543720524783076216860882681048271748238012237444384442077686661604596962067783733014245460854352167820539927724090828157865336218321839777935021986464412434515621308472739352051561150607604546208950551012207202182511602573961464260533151725368921838967623260453842259810484427677529417207195059635676972931851878040801802202316269715704228554474279473598951640350227659418579593332405943728371609748393651628654266084258472904959194189925333888888272693748101089428914126800764960029063617561108108723407963474249876653206730928199083290330710481619728626496486904695952617197761413363260578379356387896468543179233101908928001570018769001356683924481802167572574320933788356370417646131723736168289324247458511214423693347474635741499690848439180496875459186629983110435620664184543523816160696930619405151760310053789018533702129798517788043719685350106326583961079798364805018773821677615028552909260275650021820848224278967142696498530309731805523216926388572869616318524965235174446226792101678125927554893312441626373119139495629479015515351542368667320550955461693043824186604670128748191222256016490609985185000340383313429858922975756025889578228360714914733197096277387880194940236575335309102574641697782441883090495486183363967140245634902920466615199194818748226610176107098465569119810673986775822653574950462390907345043554564947721380542357789672998816564669289949055068602421109834123444792302481576412585273381465137500226335556701992023633126559371757007720349433205549852687329794773581229829730513203367463964008593080875500774707499263336966536957546283049072353479903128433914973452156480764514690874439931570820126461766421620958896461311105049880499977682538216697732706694401027061270585182193917187651995550589982760724714928405057043860472452650977312245262355898822203111508563716801098342189370252866522789658623591307312343931329458917136290470500926952383668767109441311928003338654180351403578880402336096632492178131637855475721143054651741649054034659315213987749493919511681494890522027753639172208737916813436099263622419759149843747503540562206041707636633797517077457826885982969993209887856438480184625173249094546655181705342211139642512633386115542564727887969609424340758721994133872070740150379522947025130438467829104784136905885088811946368082860432744219080292213229839946497863821068821984877374061070765934501517640031257125731702432249367409740877109637998488493755085225395383860456724231527963739283208133902430675946582495988338506036407208629758413830400899894878200332953025408803000981719814292782970637994383023804611653083406881885947442718158098162681078025930015297560493936288389334380388501960875692139473067741550104705515392341407119726179488911409528321276004764927176370887573125212771970583091026897869683323786839655945550436274607122105671716118609307373784525974719279129085052922553267719973104120617803904352045324836490308714224691484485626113648891038781818994663812005355252035162430064991207504212405059023990651659738686290832006117294318899491456544826603518600315506171378828815660599753403972849527172368521636116581544408755433687320823858375141782057494845252283418604575074167213973044483974199836094594838985356272584425271627914827630984121715110921781653256423667703321561852731109401035122517622443507191540812938779648572858047875837255614197816006302624631004018806412363804465667853073970828940205090471641002597571184584305119130019967078809967430582342995145440976531609401772778442527766286202325959190522179153366091188336669482536649925801264643193581809136971876019384010447774940863028573009218739526350084310880819293412188215715586286595323731806627510738709359068519354175715141121600824519196678953892242373446613325435811744204017576474528962841240279218135851279172206778220309627094866646688037882887640648811530860933425190118894784101187050342772285951637240017272328704649887621186537791044415899592601663292967643165018257068801712686226954654771774139935332379336315360424852954187051025700865361516242060921060958849128750857926949286233522708651345910815862336509722043951794714305670044189044629756047583147612045732749774995951656339638180487007143084360746543674965852097995691864068277632060618159914972335634568197594153649194804679557408172083474611944819773712524382541681387845706649423524295245794042585717759705918797609880222100081541475412706530850739788169308045113163071571342881230368492002432543844833804591994669963739482812469072538766224852119897332331361825162941910968247143873260327055366578762247173365562667439442033126567294291070767948873908327815006823374541711404864059634077967307771883250458628434574351050459529090050380083084105182386312110297976041396789946437257042624814577741874663365606202557196628468250249640639776638485051698704547549758098233480802597201758763773123256101632963210481283328354197568561542030464377370861701622313310240876107461974340234278514033301269912422980644078177469575282900401230488717963655948881558105527313092417884655734547499170528056815463255686928295032089490284203470647466894894649419672332448937878342992677999379565374702493486727468514314810144402887307876142061930595933308359034487298950620731401448825763359485575535956695994636633773342432929589948112419095436842270971169993049682831071288501715799202345589745188843407050662172444331301566392861051439734904532181061522194876661646206157705729464158775755563306805464083765581566366272051694390590654730778977173401627071640262278633359432084420444461139478114124921667856236542170811809515560043900571322543066867540362818601697032168254082069695884382154443365791013388387051125590750685770137131779097178315944251030091196232059924769448676198785736264801316119593920052954610215314442521364122824471463379561375155935186902300860104626012797277844674238781425662412836502914543792281562745470327907384695262963889209613098276203680240303217159861507689132201878300833124738690794138339880874113648287246819776377570279452933587951666155362308555042077670204972089337300789049214978019003262363728395796120570378613102063918619402782510180965479066580807617949326785957516563774479956319145598909442560627257610430265644125135880746924460456612784880646497890270321751247505343733449105401460109017191964637350253182025198702986899458645140841140435968430636404399367172144174335338759098285742575431827323924729409913183756940197617611797791201978034773514446525018294825679375773572740419949772868578011159282701352976626400364279620438068072143342331186785784926173454295400407295908746610613882365896363559623225273196984395440010645158188477727427532692666893212940092564434376900997207613972245361411045388435916370297254984288404229515841819351639441886139667381586431945572257442674495671612774080219950857116211981630443588220900276655388532321965391778073759601422671274436323742066490267329588722505741530447033997906301021332841164125826214591719681801878363017607279321327716290677325295422958460168053520275559790963400407063095286155177326596372043579888250249268502598640596820004138517784453782519187635245173478168298342443774720439625521786980651438916008756281400111987077557601927607623225472063515446402594738032874785843755123979536662813785101536119750934260928425438744981750844151077055448066757526363493368690781618071291781108040782637554475999900039010654671904395634128005657118688617469805421163362198509655074147079309506844309178652628338330863393898804061480293034320304374861333841586191265062332713505112651638253778488482083984450628429588355353628292069282745507442985303843374796730408094814773452719582934758022651443005724332995542613576102259491796321865135943181818451017143999729378942769136257393049019674729818784096597806504687667502907384456283759787334610661240030239371735628222539704546343506814011367425808264306642213256451288183829497432769644935837509101585456094482040485351637246865703338374723892343849194470999128188546065361808767495150328921810640402616029844343603148120089307930737997022816136686180537481975083657674266091064427836378687398732596077167722939395595776362961809406533000051033406151211282284812459614419964757947579897315834070755262226870197995220489851316124985598556365359272433667360022309897925298181776258598160251239043103112582416933614174274094185305117650995752721707267600461743362342527882265107785624092258794011984857622831888638196604388301487834353892135665538778285066957481589052378623627473809157840485336962062279481119795584135063990284758184214327252283111366624422953905023951907291164374967595176480216016511330565623657954033898320337140649340705616881452353872584460528415883545634999118038402133461282173194476968148017890346509773888544789371312046877196033309625633271724173086042514945051719611261846462293350526685885990308714850166105676164304783651025871641096604622271382679604373569047972507512123616046975933915097304878280790638821084641008033976558854451645017560919317220992480338042930254091570194646411459810189747221537496236491285693217203453243425748088091917204721355303714185759056196310411072074867400153603705451356722301694205059183109146498453139614099694868628334223471264269762964350584798622658170485579447968183680161801144509793058573427752676778277082880802552096926575582463905200102889391084993038808124956608538612152907715015519672436350353427728984073965736064267717601895471284230806795371922667211209235564359357104836728983672968715995201213734474320142420504393094537919908013121356016822753482681265770927572168440818698963529285018725426231403809946082907478480592020139696434903693905244018566299476951434399228193221843229257853009889271890864852876402869543839608946344029784925539067339198940166992982062042425349790095878573444174368849879716009455453034573077225594969292989108760930206069032279921579209773551036294878103013767555945003082741163428020616956971569452640979118967912397887297134669682255773868592227305070353038240764555835384032904604825997259187179238396415032107267330659383899361129854591346719399234215418619911252869006475170115184527726073816161826413915696412489146110238255810334554493432391852503521875109618860240800141952537427099837266365933350112312523420236980354152444579429300473772409079282015426156868992564793351162419983889288665849481908116895501858379487250128257602575126357059028553922604641358757978048612468088591925705503468660257506591933394470995151235822814973675550628580607622971070054439801869346446130529560586250036218642582570148548887379067163419883138103550874200578223984400238330881014347631473530627917867135034370633369964394168534075809690562225841723566348440166589346856580619864597768449479656264387133487792160571014018858374482510018978189864610290958184259451301265375994179709345865348277154419534924913615706233936255833373271764554929421762733094174886964746789228263344272217759967410932355836974773962980503819796158913907065608982258239189798013599738665793575443174780467553167806442439237351863560015491741794096702912912831397013720314810391642474834416585743919452620227233881823096458006313874490331682851771233640894371800866518566943074037594074118039017445868364370306637885042690844883461319887357120912654709674875257986524957922005939756590293077464866545701071377237111093466979726875022439304047860586349537315145104126357246467568184335837288210360274267981183059800332663311537206388052681581811804665795012971904574812626654526123851171929261439729800818618128898488705581981552856448219744128179561299006643265553969260581329505322681858353757178998195782917847704286942709721032903647802542814657558854545706936366259868883638783318840561664953782997290970461344985445424189202207602230512989582672056721298689864826794090021359875297481598558599021489800467947789805119681366886231414912081869181278342476474878044522668724422496785762753211453061941033984049014717833687725600848753509828668578545512396526836966204866375992742701515355567415297809021353553527089918756781681886128262766378560300647003950572254376544299800693721581195976476519251112535889480723740468680902001667962246159352860214587239079571391563431554236330619282342996407425265343281155855082831064481366305816593961019022333837296686854357592938153386909616662548494413149495907295342875787334633582732683179558412791664726714631767819766478510596484293259165304691591760101945714217621523895043788548029491284556803216387823803357712562947285161161174640403764877171066419342395601618868212707013893081636920051352634492081192193115640218090886233350257630648225685051255156160622737255880588165360210384746657860299479605995327499206609010538819595431932765554534516936050018343519743708978130869652451118189836596285490553645411933561899511463893009122431491959948053200107286742517152564828316253474846275600015059466552710440857622353360794776011871746096228072030204214020916928062657373129213968336248802912749658460024833180119676283002089515922472065458383616926991561995439366006072235577509080933936991193800117514507313771847517016373816102664645497447023557432555597298003047736425547051102840800764744209697126621364507579681177868374982710208283303406818413633941594749809668987119383062893666092033513635264473715477573429973494168908099618635852252623907546231698849325248313016057971951730140316245807524870309542517036611182055836774466940933198447473076948925513199222936713571011627265013717486244241228312649737947443912926080759267747715097826730618557783932593581192266968521586377745194115187628512040662928948669246534482397550563036031628286249096838452316543662922191227007421562716665117146605815883416081866185471613677925888473362342278428890533806875084862426561109633961324794478235241989895246855554841905198142920007202003330498393183331484709089902503514341042190900635881718144500765919990381839013071584241095496327100188066304973638970379349551832886393197170384853827006820338283104606489251481775894817027556880330668533572872847884772089577912132762939461385091006756833915248176009427244345371260755326799151532897457440550930923379897557185669358024432039632052078863112055418282235625738257971643439483194290633671772502276580869616982077385253046673173476234651479361758942375333855966035896940464269646436118824033060979823452463014244171155030057657637244388333131195688223825057668180622826600752798021462414452080315558735558333261803294890116308916421442506305166975287284195957293931630076580559336852148517598656473704965372788139205801785273695311840021535545708197774005132257475760314908669380454772070259683566101321207116066601051245794882084769235749101588015541708344827222566126148894355276363540078838362623899333509451927152694115891944783863051468761102997606388661406112366565154657794619686600755698393893047055991864677494469271916507827160653236984858060143501356459041201634975214020959619084302489207858895598617504037282805308892445014104415030819889311632626542530383515659587727731382881822678182916341254974866677470012090450947859896006400597994750345994148319260496511256676156339125047276831139237214818762986122181900197536893543575028839972536159117829418211907867920831066425338527709210304537477862692721392061818439394600224448522076963883043303301858130332807536949868874448253633711664209606026645468075899741305623508288182378453807305188712105131395651911767148092364233644507618141131409897768477070680655474367743601108268128517497507817425713561049888556237998423238484504996465025041901415635889423353403913400154074535144084613695740353822572542549649406993067600185333266716559742892769288318146897723144289018992951813346276010352571243959805471725660104314096225157325688453103688573929523024797835013259247658383385992094476941682892460953522601531865686168492801655877239834395351531354868543462864217537706497188377181004905786202252036431022499311958953247042827340375869619744142104299432756209339869273363696266072368900939474517697204575892343154401928675721483947015734367073793086705978624485604786394180393920435870497753978175105094573684233588442549089189720446158924107415815106652558724877413171725318942272696395446857782075974873504131233874766432436047355106097483350705826350423357614403908373420630933596890323609038633427231743914486465086589690345458861605546508993474944142002184523695747593073728910612117472036908718445065977952513988353863172539102914114221987405112698077772748843343472869488267189644169886722851729783458735156906961892343745672424841279126989185822166767340175440401134158955129784048920125932423967832874181384613337097140227007081773282778351283888977317140755976720734424701157557637884572642627541838657666173732707842693063597006453113784281312823888807508222361797036725081594797921620823456615987828550288339548131424454171343574556796436749167647833669799810783102876313403645801762286702240357577647238021190347445823996634653059897554580806815569733422003933420660250103596189891737826459328803400185129700568943285091800909519693378363475059541288740592842982696801727683467224478998844506419385465217780111882498285130097860594892251261525375039613971354418934762284887793307282727633828893768827789898085035395041892918423308808572868950740060505897547066997779689351053215113696205544881803850730303168764220639235929287817960094861971711082483382545501925917062544123906447276227890904095724632509450838338250856080328740380234735873856363646322745515251884324706705080612089714964809063279838217940834967820493620334070073115804533930825456758549999466227776618262014251197175167939796113622783716252654946304588276194951053305435052360858399208133523544331080379191800030026354221573009077389924562822384537302069588119480270323527001080922600901919569415705126783717362105881437057939897947709070742094130535253963779202120570584744552683181843696969604542553265923143787373867656977164507542247116469183312686790679126748239459021892058953327129036889119834438677614988329236199702590127752691432700932173007474404792344867966182328859150898108967787130939474794855005162618989531106136940045536074032268001660433495899671536063304452373420912630928482740878819087413910351456470586406601775000606541858779590516242367686714632397088670998242021145888217658222105305750499375569221227364673760897912923257563572219095423161238525664698355242799361696581671248986181975394794952808750356434314459940435854595258162933128583070869192150491011039522615901127950881447096823398767237098536148623707371673013416537045228663680658541953289555639469267663979753475120928390775670073650101475538166677288030867762396353424125194586370363595317555236859922129201025850470019197093968520225757600213653042340452616798211336992527694477131719637855957606696651961403731863009257614842082853387817994375226100349858323082073255159619375202238235036505659039205486603622319500208876281465953525938038247813511034062343840562198920600816269573058462451518436037230806794214043170051634435503369707191405281389287699547838085277912693942493877805154463735453215086579825967866537219157455139958300506318663307110226420116379271259302968472926299800300482701575891496194141017259314561338066987583461753458676164724507606871234021729218717133847034134482858124855647093112035890641058703405234544573334857967178900264736051691473410711300300427506438105794949472849124217843040548574528554701908527180560317259680505859276211481771815258429044687532919638050942822105156041048445092249564236609168240316591005696940027450344246709382026386978412025057584986098392970501954585742206929686168422469279994590031166792443385963602571376811585088761591523865910128440851500302808400086707440773637587181235614727311774208095451920808038130582767881049215103529567478934586178065815978713925243741460346581778210293880756945310125917570525568685832349619146217616350061154423460316158285524382486357295005200207547889164069725644924252986088839605734556513033522503736393865862555373874065603673366594680129537067155423070207543820258960773562055528744401755652977311077345581176705926358824464089819768207874789139500283159499742787533950962144832832983569896668559441088022049519263475864605365713324070375906773109111629667905228011101667186944558678480571185174979962453259487027784081129218705021573963102191355433876953873875260036614520319566000236756878193099032312800643108139410673759536545674262175769063897063909880685404016879217135713503657852978302149416706853784219547538231879059606564834090036892087067170230815500763653631782333892053571245144914950393971543324686424511545834243077604726709161494954321412069288581073207627993673572772935132157459793007661809055546426032653125159980135750448915182415104609298844617745226494549380426689510827797542253066753569253915190866544559718535050306780511844644188013024659732291700155593644135727530064833245330182076842342850716604880232076209770481854857200197019902532990807687020092555668418724563141986909338121306946598735383825272855475481918195025199421310567448451148491707311870941696341321408967313497431793622657714322916928788332990904085871357413248430498336416286347181440278694756522179475251118812374707379721315952277340284251181754157130356486865029877049656205679822125237332961204762841053649416746359049484692965667474199320282849184969373921254676677290100926603185649865145742149358338227207496721242418674180953078940915340648721760092809584982267340313349338772706670697763278709201065473815951153831153064346637572087765157493952570314123121478205208898009958330419911936897941324245907345990159790580632669740406598042831097191057168123585761688573113398077607507790343014027394095066935411209158127638157870473255134243461668805197525182238123590649314549689615508109688422205888541569368490231046975345253627367414139859317903895750185343171880464722659073901687694542151376152265902887914117566338164550907933175656900655271839388573064171903126743429444178846856347934127633838195319047959081889299631374621621640699066438053009136673123154658621676040463161854914676356510779338277971026869487957943332077759756030271520311903289755219703000332595933760585151947896037163568284308612705633889342743575232709005007636734418813835130793805831586945145488668402911632396941463827178264350471438936373189712216708914593503793305924851141943253041208158874361684917307511233913699996625710132463032698677727284629062726777634132744039028604321557485305703597874187507453607550892761937030243268588042355216698433729811047593523356553901656538039939281607922100692872815772586689905509182160766272878502652474013217676334374232408321919839961981885875727346764653157097098625099394483331962464548940419150386609847750978889224556329257833345640613205386868866909084633825784081696089704918681645626787609550845345245273355764164133489468189420403831383248123970740287295782360733977797138882639968693538534444919823462239327444228096729670099478275790257954794189304903937034449255174054425324091943852418126019200569958179230234445467746320343196139563445641169198320752802844632504724377072943886207170878724351477745968267829709647562735242704070426022076548013010015547870627165704723496737495668322021495935728818617126379354304074392715739375062996596521655936363705745844362787052577107817064455508483363342527905057834476899069126951445284697295284199095366079439001590203583218885592708001125039322431225027576360069924719887049181763570226547314978258065551349430238230851316400318376785195119157393169644157458757130385617183574531745566574111284455761972844924957304596488525545740609479527918756246055209521122464285432345528805391386909375774772862567480381867849612948280649238295021126919134496159569940950708411402557705000909497802943865659709657577397752767858889793327331198515238499762970490521288474709515182125098418379019336329858158219247492620013835762630803150241045356517757130309613391855864847483208839560156142102194407756774341680553752344490505598936855725547584103728356275661597633387980236741743523146884409910726846345752810690995842304823167418351701971125170828787162697991324795509698703505958785966289092220962672556967416214580201514850650706523100444864158908854744367980200733878951964553144809935104184299502201240267735289411104546463563220655035565058052541098949265200146838469170165495493984901681758848025099398721109226885867966547445900270979221596201884390402482507137798945448624882683670823612775136189686807691457566055025965616305498943076700305752937142820348539782840741418201757344260457748033775322490238977153082352307767712765309726670910237180063137648095091029073649962209081116149616935884626795023418411868126083486885747965782992874215157255662652890786336836845574097388151845743660759311330386851971901207880687670323544190899260450719484938090484006738376524432693133782373207011941572148668998851444903446047840788908932721004372936703095580436648545056641578962170597116878299645437972858536791136408956573031799605711386965478016293429074653550610874247275192920446184460200647704461573423654439609790717877718562704631069591597885780067584700343931336770654198072700398453902816393287008931408857423353825790117163885442629297986564003328289443531440447792500426162747907385734519888256910154101751122977777504836815031130159973905798287608930040979754757372987712376591556679668321868573063784861790614587356331545792322860004777852685857628498792070797212016204910369779650740507298791601678235817160011115007487443123277841934107028635036647460212256442233208980328488279570630281325867457779885150594464860439568015119252340108696690029280985536466546596368674472499975571268941521627452494919037844144381780240259598776722665487299267081415779583777943606443115147563988439988599517563422831823376200661343979387439410121907900889136247109377762716851092333783369074278924165988318684726850318655172211492909702833115306155726952511815738866331620276296623700163618054946449717450766890125965179293886599836069941425988848338042806834227633008053465422877506844189963111676698961812972103367232087712000217012209085003011650539651803918378926095544212347141339712564942854293178428128546927844225772303630520731171097279613154501993498474062941831691400270304744485250985310955381105100486654580590675682196004587696923906863255918999710177349478774512718175749200592639375662035880689739387966816588227905465655891129646714843603058188065541156471119620580825404566209602137871006128381657700500530989090913104752308206022891931595624401806260825919104668240694570272886505325619696384192579161664986853761368888341926473058732033696244116681505352666450754110570264069334879001830675744444374897807166657239000741191827014247521055425075795243613368435703941271756533529591329632284057988352001183635464652738061213237755039156889523004297205192062100357726504028491621506016744969533393015819188891050942593814659870742028859826503600331446395365509710482184995042083391659912383429421593455142676607334556522554948550859696944512158019749781507159148814658484586264840065339630006406010033587068021576542573900267981793457668727928965576316424069113005670507560007180738361420749500039262183220721302285913913610693190824968510999832342863391419987628145673710294566598619717083348965491804873637408017077122342378772223976858902010333894518774449380139527214647605452737230070416639330391395133019375631720411120361050780978304490289112177440947197570898175152049310994701690747114300904240357003067834635491650075158285061817894350040543519016008896628979247607603563370044569170534769417388009450353240227940366455584869613492595846441410449322291182350357071516247712449794079123418381241482947035081764726318613128216287300813745733056999462878765613931083722013766540165339778992151375950206654726721470572567758313646163824907905277131995251916618308348426154640294292943947155770445857686692396341678668568606129772974917424229150072538447201651201709234872552886939335834402507270190756338564460932183800421485130692968398876066521930131140818114236068581783647987001018033298295938060746289887355629321190533121238261643488426741723487656003655829661892004448761750018288684618105733768847870524496016070862742134846301807364109541155810735273437324842628607654882185072230900143709772230096240690999530997468382883277066129214828198943803935086416319782369397395777185570410127662317541673661742005722740739226993370274888037535881606845508533545380646223398879597773985877913785295919821922605298572798684246027922380681654275836054338520328741077522298528748708757771264486817519731526999970517354566304429847496004000086532379265816005400390768270375888655927854893680517771979372783654565537986783832055241153798706114780179586011030684815591722330742565890224149947087234511675805285899726850392138224670671662594021907497025797721654035012899976822704702692116705610282633025175251480322221201158223877093383399976855172143091992459816534455757448859772888651778975006025018777706884915959479331033271216407257668194212042627381007916995722859668300839952723746114740834949656433866416013638245669057597206418141814283220928461989619415841255719229665888797577466367999761334194960859706567314638838387336105373176740254890823073268808561653821933331585200739511580043051413739487134455870877525415437092165901187761355269421135690470928225645433575136718466397461535054189590969641450905298389682425651315091857268406273026783517637393942528758204224539258741812674863792011951668411996821320201055918996127978537160629829197643033790844488287428450578531141875143028119572826295075136896643982379777692037585616741499956311358247186167054490838134584880855127542499868014087286117785134711852786875070168134026714969156320050225448564994512262889244386798739465301667661158568290930509878475520487285313128621532520788392293426954964592527683669412194138905247442412162322793950999333104500409886910391912888371959301646409467822083990750724905796591175455866813624700121858188804565705062227294689131972338774949389347958468004559834392696227892195190821563596453681981624086018924682951671669717750716087439006484618774092592525393701252796352615112345239061874319675865929086265881355586885399227125177258554917829537318027012014018605797973808644990126435965534006455284853326628497921339316212427279202862897941366744672179241525723376191024846250834838608615998932474283812340559716659028520394194308480734785701159941297770738712342842980961834971982430858335711816945203190624858258862637326480444115585995366781716688189169133827641630014397103632394532540032632698456426690312641024690887278478142410650134312675513639423035125278312390299439857776745640563068204416907999465936290990710548098512590552891844701619020913841558874500041553248225006831094640952471802299449878890231570340348003569649043517523536001858196328133144058197225412948934960663843115782297881797489868845630057900511475781350045223930373116705198318874320381073370167483999531277000135601728827623487438131777718167860018458636347093306725063347655138702504389051067276398496140818761262539329553023949500101975895574323256733752076727346360313398197137682145606178880650599081065903308432775276617458852020327721380180735134021971436775384003544169578104634024068343388390139972767045783678324856572762210109152285842383725062979657245070359419173937114515463181529752232759578812214944532064455470895108753607541633504707907831463018573687040464152688525851757078715094740042836489775966480770187711314908022153518340030612123233254318110577755399013983089847520063452584760363831843112926889901141577857848773995190660913295610967911196965371056898966905406632724962306627033552109973748580755126677582107012898235353355627142436981381297809649239503086748119917234596950563817062656738303352283880964246600380334016868031025228277156636918065139254785404123562516127094210229593327977114745031229063720192677697088421227014144116133794145423254967049109508540961946027870150856193420809359298416421287198778965402164957968983102453159904577896606273147041330298887064574298686955336035151052836846219624302517156712523157440616014270304775850900175675926510703216337474130290142796051577896403384040676663487938736869133392925340368804551856254620085440277741976961291552589113916179564469987557170250688026147180562299723196752421569485240789430777290009797183338136945685759645248319330769463121020580839283196509859694539310156615087619141562224939332470396318957737426605944776277471590419100130870911209012263882176035804502882644980428464757812907928788824874460749190243593911159197930264722856318190259600304504774929983792918916879774608508831476980242173096013968666322137374641151786314928480125007111948453961017013514487429072848669452061171659416424561470668315821201932313108654914648376782817585091418855842711978470834449368065220674600806530643305363170604028041761057732495132998904354508382267378144420836377393346486649058278449844008704573240697452840283406987911506173437053158640176831215694878240774664401653288335946244380903811484771170359398019918483116017620265921531804162819592190379629734734085553192171352355258071612026428190671849745826868780464234161321744387921176849744292419460971532092529830959309391897385722275732355481879457875022237536894149121674318232179081776989767846555108526411290128699776561415871862256992402856153683123075753451774872172422878105678282756650355135769859614726448475845121398685630143783202776067341534015136516802052976446179741512162813291799616814437874075648252397381483438466130894199486587188011971119896096724966084885800765441854260591777777983117916271754573334343395852494048403767315117169262029398601088719489269743100961925076549493123760471013394710423217308745901165849007292949399263815567783699194284623920470035867938789735994291905920308528015980765666496576463458396493154951270496610912564645330582642899224372038409329905474079782980327221052900182606033004841928036513602319461527416981229912365295753861995987952504966438851880331956855412143389862235356759503215416455018970382440093775203643920737120240421631538708874064166563415658955840482782070651290826209558194161448354611454536379658821795442279588362180299673217150541722862992094822793861264580939710546131117891938442771114684508327281810837598072318088158975398178532066779044543872566085328156215051033195251649634092722629463719642499119620525217728578359204488366529705925824644453921923848091622239327643825013290746186949581683519570047823328733382293086710008233537227124641151882482952573185309917487131074031523908768186998228789882456194826664550427048994205343591026746117965101941587681502597816907944447096379003701947762373035478466775864175510657613009421664549590612218261898978408193237643938623429492220062970686547253314598077104271511373699499465933384887025626440071761858495237049835529766263064855642998134397520167871538639012904527588323571747838940899817405598044448337039377563282753024742280594423754901831593363503948005308786274652495439466230167711759859998922779551620224979956965980936913588263752952891021423571279036209011464144126367089459952542332811829792526534855281293618626389235256110520164409457806829082381669139095605849054208417045750404972859351161705436573824325216125902180598493713096329301117740800265534276111981275142552066217600235156352739095591509807283862426155059639129191713458506903346108069957693937650232367355585658878630625089078788105096679315955661970637916913748459917588171913889769399670518428880708376286515145475338045309763231025471348396421580580079871051694198941087300914041758416137039655538484018597596588902388639053269927046692327412299115581355905337225150028803657376859553230165440270131729039905477260392873134622202977667352686885779753183854994522282303074062490189485773039178778715861484775499371039255545705544271126787739079165265327980996210241510327428674177497998754570335265823308101525473373314181258505783310091593823357820608340770985592366645742863886535144167888307465638045805200620283646668797179787722766824084832519695066886151986431913661753980758666458470677929048539459173826174107632879964698331889754356195250628827677972912977776616179604417520860868818710882092282939897606536885098695702179325759682783246003212814910141094682617548684310876964695496752762320748175168354897941637407605378240268840228978865881938586124337897733932375750634311521076772832543115601574653442551203561552016220938510873653254118890418306865038762282722288177140474332446710165411754619251534374372075047349124115718350876988369761136650158307898046758190627612590177538992300962475483439714283643910762553780136026914962372266529029646828226002209860839400685466989703685810346559534192957830199880717164898707595540506719431239684051261930068137597280895684471147052206325766088218571945939103566182970332911656139974225056603382993005808234709178538584161076080056560044598503984496115980765304580759566885208077370859302474949441632493088810634572152620655703091008291644405908753275489560297813432773371512883751352278194980740869298757404547239721148189273969389336984020203201276311366749810843050764332339789765059647397620785240951184321515607684703692513574905888291430102399814117417883197581529620286813710726893920294281925914769103205705005680524777741760262415548774013117039713704077012467517520553334250186109328939537749108855118823656362186473310470420717024651986855528135438890362466497720045122650293068000598059615898107146844944846085114100364248829876023605935457739187725989457336454597932552645314755950503483438802429836271088268603784857365173357308628129804093610080339698131260830333777287660007672324211268062507590440375480309385217754367489637154965900540399959038194514943518630531448086821129124541086640657671393794159150991148253088950073802807220634747491682635136465466015145712380441966460660930831017979503279303494568015995142417601614064526822858661685872693839773188001225307818640037292304513508344624432607344177343451545207072815558797851104451003972149069649371697220508929997903507683542899043041385132143533656336300580431041702126897521640939315377607214014210975485374833812975047605903628608193925678005112360460230993211208156439457979013182177026315247670246626227358044074189682638931820523634827130564847200899575812518466781916953244117627240494918742511275355494452988809036992866026245322634452722976841032133723115238661574449559226972010432830848042251552963240489230991200474221280467356223676510814899546417549761510141331796258683677407515289228029775851026597011104962181530600693550383060652722652489810896959772651641992566387997452204267210951496140950679369849735017233978154232025368088614693111564354515460180899043215473371366800863367808431060334549296665963798521614175795219859459406368898770572657495646467332644429303888318044321613713358366068637193928773758412887196927183801770116954222143579239292352102074323817820796776526700896172872375983173065843899347236761443764401842228496891684360110785524365201562821728638495496481938151036542384631400857171986269179699336526527678910373226546293071548188413692520028049491081586936016805588562340051208593537266553683745028700440683332552864489050648862267105730181556893403775370878232071288123365627784202480275860680977829815956763720493192336797817180362177099718145737661345958183958490059832328049717650299449798754014858114127017669575778165253546796854195807390943320791795044848763510811348035772519563567329051147541921643058807567120855989551836270162739412971676979970533084731258055679024073430746338132656941895136354519618646457347532312887372251610808664444572387930504044454242268781532859641382344720504944001545836114412874297239114073284925629788195321634534468156655596914438291734019258494966680270111439570653650298508907647304799162606238056105817566905646224092645964249330773608624255767234192536118113551288429096823515688595805248893517013785976702458685298024993946008308012799857232413360018732032497914265088395449609467024862594294821033820967693739237171736752562702452759717213399504289191102191348474626144540634627957198514237823209908382572649374376315047789791460135501788457536741100332074753260144185069797256951979142593918091183891051674740364250397433301632657859166783772507712621305336905580087010729107865752588939079598214374716600322954593885090318645124208118294002343058978910331063109070353337024966394866453216654311309688301620845424206082517162917109259465002257198050254725079250786312134031593724015314448302771700384868551979279056313953574938317247483302579249065336775038762049531929166026879249585127282795913719843155330021972522601298647461002070634594621327701374762835803081913153269174006425942398842570608366972069656943512936044420689389847313405381158246227499810653514388182882827208516409192453099841647555623082173039289247626914755862092671523747549443189770579133100476707665799924191168469376979152422701283729617519176019531283145906760445048885863733914373044860052321123047579543712242436614879819982923759895126237403909384804964203392369811824321970754599680750888304326849780967419519008530606365516197806569811711492358812033660174823740582051222958020868018775779915642392936488731140364699659272903138961521256397475638777031594633103555351090050653284036741660626333732337155837673958435597192279109708623159621939960572522447799707634244665874722435964239916020449271066581998704228021137542482056419036550579596411439321610767079090606282520608664035305695607811254970424162200035543287365840621883606966515292644250252027363302420904321612711852242427724189707955946061062484582361963405757151482019787505836041524540059155176333530253124143483287711644202493470458116364242221924717228141265436157995122544798920621299239162629258807835497683897884756982852823459469624482081452492373599606821851383928210059719739750347394958318089811471244396237224935212706415912631498847538076065701370386352672910853962466619875152700739669319347372853415380767875614743280667653861852305808549483798057360531736477955865752486820515286110594743941182331655795762287924699463560532617785838046300353563107421842491613843755879114229418320002151376794602202653356577803179404559650027915255575618559921523100156891128192190639049952978625395582520351902958651221050906516191429227281873639542708125568671994086957360184824080117421961155503418836968548979252608171938640727671493809529967728799528647301047747152638142594018546950561819921545749564449046368087719400122252762235441616295890855725009206556740299342775064202845424225851240814176952290234656082597597531713515638079779554212423162308553364247228338510480182783353549855782976212463971701894265304821895455744681352391522627844952530857758587387083887945896488310919436602397564788838304510777499881174185678052821494609951207049502077369247345912316788401998868511009196504248620229285659203287704618188453211295298288752430475139894007939551690178774898697726108253070318726774642870952739502693569192895569708349470839671296875120111073238567167020199795424522663316147946245836306556319091164235398787264188863694173075594831555410861271643506358553908951232704547627252842147787554035040857692573522055493108781772158157745730142470012684593260648142592705648500892468033644222048422529730443494304114043201949632040022409954916949117038736221592932184821034854638667299292925145817511140213445993137791893331798558478337176838984989498696234748090335631897195821360837036917960949149722899765874172575544510595680389882191081530122909667386679414963465645454089171299520901765405654817373452559582552847185714567625310602161091654256912666026692629561100702085036602295601350161314306533009605224510405328169146586292126368297855791269071069385878622348906692505859407518128616587074602459621887429135825739181768798222980685954712281191962791474172136044337142404432370017296103328085370825698313554199249339112617758821675264751733648235699401746580032341442976468460818903526452187403347180914731597071453529943981801682108553373352832187053052039070559969701464233789920768708741242446581850292646297878982620011579260926987612002558786760285511100516419900716982208995806350910857472728101879014619361106067570284312799167712176750898425963829706591734668585273023353714981574572449087754279821349914779065599774250427157721121578380512955209482138845472945676474499943372907689225704618535819146433962070411931650683573304491487353394364413012210742879267487731020442923068309947239347181766208256618234958841212091998469640412136459383402801612861445773022162149394016675054770440710219155387783680734790441230076443530315841822342952852364758340591221571934010027585994474172344666152063742764037803752162595106359989440291896278999820929686838619095075738320885046627839199660667039042200886662243076758040512066487841170594649695129131897195282307243431631345577661411172213152083551697136934601280626993095928981596339855488120525354762148906815848067874214422269063940719651936807181778767359393909159350945632821969073233285775245329836296713365439697177465719916275796745167698536601870780245222713340344085882222391239936204103292520284053837776628057286870910332275708523986509375374236338923800646946167365120387456738823535662445592547117039016298352947056162539133170981084027200059457789664259988325914351499043010302418129207719029217879484397681757331265981103092961977845366731032276096828342295905994715200863514879953875361047029900323869974405264143742503753000790280869044445491012902246365489669043968510165568258881774911552344976607046770012832985295654812861608223297245218356566073523318391760772883078543334688007812970385653055212228679602383260640172797806445238614021854328266706673066201818805397245496369087410098209927157006205103710748699267980918977782257027878986830770923976350909851666097611350653133220175195363169663691249122431093166225402762976199274479483540885368849409236741545195894683250366441941349144009787031438464516715555043330510755217902520939919980786028624092089836394035210057989775992958128152987253347394420330795003725660448297044845192578935362509102927445091877878430645631286400788312178976716146452582280507475626574434416348963179855745223907828934738527135853484457120148054613609609610502237572048477611731136693204355733447779751592742920484523425346199747091393416124958023361506927796707330682440437803126507384224360280872324823424396993069465980961477455407702330176000009177502488835093237303693962872076046286969615385453390655106326000793073317890425757457257366297018059869963106561440350638590699913951628201596508614549288313395270048552326408871038350566524350749070055994553924276059071384223922654829233008794798425133534256964083140955609257852249381186359246030258887878019062492584917249994336572564642006878681998067917169817201472356775045507978505790773535754482457476794023587246037237393474710932034634785697527420579025480266229158891104377408211665864922497277453672453851532337329951117749159205089125352498046599695569391934077942855203041978618698323026955865435543230806455072143024109144676226234388951175562797645600567646446182795337167909693038626509762765739027433483332756185584253759550504488818223310696774733014399113357453938663723984439774467301849655764276965388670370445902534239183975489559224254081451003821385041869269975142813259915912448167963935750189148337493259474274911178195077219779705033985158255620502108431623679920742843779555093643693927194768776824008035939893278610650324723384637876716152488780531479427538403963511481005984144450302918959764920483830071852406063638687348719592213843716359462268355806639931855768250170730390379579004130849337328263925909588579807720495511839678068952521306681836451296907448943539033686551201464919813402385129575215208233637208413413622384557478689730738347608413374806933472522237000040821468386614918866552760869542975612657500218990511016701922762587363790763655496422210882467218916363812222875701334865571852664433921355463386171523899745501359435497734119199378092392333204050793178498973560847530074645047978776690778274749083487055917892265216816679946433834537263601751597381552255654939055980744754177902426018588435378296873957975620693486652012593452705636269642980938316374201471668119015552658844974505798974474187204347092893816480695450916746857148932666633541273900644571220100142897198279905397531726167317894925287848953749403755776168748645571836256629975211843945107128925705303786698133004423865977799077719817448853128121868404443205511463687157690056569608049411924414735930527767693999802165663524194374085097684307927389244826922026180135575580752548309888289301468437791535901917168972412708971072153350270786603051122387533620229653994493011140191216750498367820790386851295041906396982485994461562569673507163712295461966968092715949921077718421405296233360037663342420758562896606893378077602794755725423441528897934128899625980293726013425512363815294962991955774857324524167778422092507883431697976720362446044436817746102961976975847416307364258720190156848977287722089732078030097001407674160455408058680646871932665306638637534071876743671721127285495898661092824357411101300614346699114602853235807323298511412711616813103894682248140862793907166600572237499084865536547317705740410186764771443618021106432009258239618571818306492871886519274054538934686931682686731085025076088187977091379396757398719831764141448730241469683105827895996129333274150311906288878638450928010180861102994926716672351744708091471314511781197548546101760157976393404329343810160858431311803021883349169529073749622028194769949968950275158169427113305208363947823169052549640359616271545465089973756678747968325740064516984910682368691274140347742228810955019509951558306957402000281194238597401595303658727577678562021593385726685597159345331730461020263974084005662141885005656169219310599667348715788620994271423825859677358118759326278165480219189713662976995245139166131058660462921941784903341193803883286645986414512651905643087277035665315090715588032028651369681976023948753674768666487048363136643766271504173512469715547690960680130739989244006081175841139689174998283486678967821473561493379214583902223239862498521941437063292150768135472339868616082088463945516387240225480487957934860750723521238480097068965735854913362966972900326712167293465135902550001407754081887862147923169805805931324139865947369067269625491408050241342261334477233241285592390724341357593779085993940520233645056711145623193188507129239175768494714971903206845904653168279179208131712773085009469273347508042587870839805866760371415980862748277372264438940818541547493216580796564865846678104442985288595235400360294338838849138492914861616416932055170752372593770496427770423552615692366724124898250311373580880703551111196516760614164286820685289639736955378526328868116280856313863201093001821498301582315370529498924807350203269935868480037412452277665490921203724585206162138385820534487646623966516634821843158122339414642515873207398576974750805206323250224721118923859250654051184385007092435907900699845064689479938662956610575425853238207691731299289913209661364342159310616820267568430566100227522354302819787185559723209208422467025155539165289434238975116159027063159719048941904302029735060882780968783291803974756528943835145405216667619321635797263006233695683503909796126349898092805444730735562725395188370534974828537661850171420958914864542849760017105143188864469752179336002567775925034177261969139499247521939622847028326720245380095764226401000159575292221894651197273722419721988594143215364041856240289403531173781827942155821985802372794345136875041042926741490388707993674397781355327557592761447332107622400700298039071311885601584938537273630892084792138567498343336171859571961530453982214055853738883053249951934283247173151511606704379764170816874381360966430011676250284045451179951539641668457198171624291363121683454810422832544120836867857348899335265267786841769951715598558666781008350167613037814822806306820509414799652020825363226022699336093426473178896265980993206997477287781342594489089455308618089076593337524229072704813424815141180391102352557376284026771251710946378294301127032449981700959324583489953356797688868810043652860068348256301926162445046770726221639426146032341194556861732131533743167119935795241135224275394365026829925427449583936401902228340921555726834531209951931034002732331590708976993765957013430009003253202273370116158988033432495333073183162734313004233140405181093869356692400546355369510035592010208775897237447542977450094735619637842053456806362293504982706808567298668040004132611036593883443781185492397923272822485365883230118766131400814823450756120982509962221242249765237794420809004963495583329830848064058430535353204528425790377558475526646665862494149463487046843328959887582286056164080743224838530315485234903375776231681612856954715937224601142086883192719100583340652970427719090522222536381764826895091775328536164852902788035609430992375220691404361352022856952660602068380790588715247680966215704643523320231318476053816560190876045584803753032306244859635120307728103345282880826762762502553643311250019480005266176151152770113718088897628872439581842809773598780727923526844024829083816225901083518548460703382665026446382449567918830139793310579524946236655786214832790790521614430820195950487764064561698952199945996465119031647526365388005929144078679477485684065908371038707116486768148923514232168761549174792145861198784485126547577200449513417209893807054797121167536237184694639665544949457890668570032082493088047609453203879779194987868951198536591701514372727727927925950619316049683521304053814568766669950973114133103543313905679026746886850121040564751021607255970976948737877494972907949740411673077311457585197975952897724886102125833206988988081666111491367602124519797437754589411188073414523710926187341720275248325955712615945877239813815746932811903621919032828252784596986420018828733776801829579836052442533540140538483139690026479705462982995248865496567617537190140772838186241093159305812662460851161582540917719006815972029184049979033862389773282937684108962999518068239232124559995926148211431094936505118314347839831021235135382158105893482583929617381037703990992355637147923288136313027535132460256221232345971475401486077537924211587550715368596213178187205349561369946820987577685836117715930243525863345445441419829402242979233477232469695948296517945446832270762259641682805058910375258609741431767249650442825420398648376168323965601427052650130838748249358660781877833296544520950419097726003829435638305105082876188445242817871461476714965213049716902970610763546578670177678494650371898029134039518618575413121388103240044435882738188862106213896397749984053270708257304911691776710598171107530804426730055144880561276077501021998787374292036842393473843707755881617316940798424537422230050281025424600042971611716963152717242010716432970777094227059430939998703392318235787199480790174035049964272555104428627115324072150923412555938124375753534288400185673740830252652989910172726961058497868294079272706057643357161224641465073025706435600271484794074068711403436295429630044655303847886396764233923828017871772440479943142169811400687823950561992871827985741096581670431363206537973833836317669517066841468137662672921328650183362734106597921529812829110718480204808558005052250827014809408994263937486337582279201048292824036717730936969012744908867976385598096596727172869627722666084324937690588400030226754760556697851022002131245313241442382072739452180413084918176860428260303948785148131357357636184852765815884343772623157377605765733939054841559803314363349553334062797646741028352722507416758387805685340727707413735989518380737876923680049487650089587551161100033594602561976960524241566801726782763629471353524540086641612220301744082602189267534094262997848025520899227327192752928546847499339142925015623154921821406669975454356893521705065146624709596788396137150794701163949402469718468052911068913727981140648058906869989547758151818216636066512424736787194898576005637770722066688444466000019408607343420769587375181197763422658509766433197163459292287319625334664443987007424741462112565045034395054821454527552137924892916525367422267721499947469762598914960063664279695751361461176573839860864663210082716702364618908649526757369603215837102939783855874714522082625872845451088848407306779353518677459249038412886730007741551892533412614803175056949410593337667457425772160974075640831259259140216541905139780949388310501789369736240662400030452055094815384616746025544185042054602327390332346815980114779364340489505873525368942214810282142546368892080223107919166838922040444071311676126289167441056284299251078811303873669052998654179609847914176687547787229258869114318269290759002214005824632240676096163775333964235615804486389360807814323695525049970117824763345682773208174432426482563388232184142442320799473537835824277626256012167613000735700315646843435535917369105006066710982760294108010902103097434270019644514659924922547366244797397910344615206728860944808425103740754907058069838768947764258801619058257563524870599453883261469132456968912334540568640002112040971867059843312196789947899200687460947770418126182860236534953247096565676848933489499204428827146668253961513695030273159446137775479760043391201189711389542909369771003090200662215556135542925386920842484186821379728252849369001551021752764616872924950904676592985807207351887745998869439139725763339008867917456427763346236814848658357719365623187840639045912177795790392664575344043009848494086122455509653103916925371410114559957058498122141539101407385346205622727265010823738865838346298668957664286355053247931679995169421157362164903448907843132162466259315508858504587804424338930800297632996212234793445962394323052331927951955391328582777924498005140804957124024447349311697697508335132320849003901248065029345236354451023706458881672071909002282621288239780118652615945667567502457304719567531226321731105890650473500950070020033622831573923161842603623406676204045885375394523271193489591881469636493536202074530529082728249824675942293163227695956816682722197500788367399840317427470824495997020731198416971562007746994583815876650197441787699783697374779368998967913374536299806452353003407592113510112560799150271119693878762385160653820008309657711332506780026750723522186125243179811253283559144359315273662327980874735386187912842530133165648180662691689983347019831277321168702991778400106577626093297957814268177613387457129534642705397987851454986874479876351168472905636834086927052137352376456157274220411202361623720136419130267078706382077987645794922891410855397189243158903177479071873949466850233390320618596103388285664431986419042456796794621027509459016539934562717323280003725825711902956518894426878282658396349016453219102833854424436145277411103159320226914751164392785964252940986351191669774277304019441231689152446653007741550456030118387646994001816865724297487047126909773946633190245341346546517037158600128874546949572028758414268100043435152479029758581240197186991099755191476224021404878243734871922515213164447043501542509154595391888816499324685444642730887698296607167543317712580397589077188680985507022389339414468787021696203001801465299911350217788165420785601425623575551380609606520847423151035510399671495916530450200787069544800014140199398050200783258700379974682245424939596806161579460968199672909388039680208946856552916771270417563752694000008862358869108165863689255696601292677637617957604368554273958979063980730947651966844858651727698356598128291588495993266470868586444437235959200169179479157853868038747098996616865196716980807208319093756726220929938646655208774491398222634316085943909767854325098574089500314745991227473433560720973898929112182940596514746577228461406654233920258703475847176923251025672960524125420721074232534678675911883433147404680110266835549981538120004418761537934878373069964156847361363091190475058395003250227675646226993062250656486814414137992713409027333657903182593618297296958950617974985375565238674468281828696699359847121417852891438292851450247154088861796678399852044883718181099740347535303877777076574688857599882139749025905701535473911420513130945693734553669978074045382552782010043132544939178235792439395079804479708100461007846190110090688239597504979178899712656270967606753151702419157713957309959680695494479030459364615488703212478614992150215899211657935417138019927099870324676597903478825103214663466449872202982302415496072490174025299371983316767336156542039719399223078181706910487550187891407639086180141075421050266464411688346034139927567291959674845405677314687121953041808039955720031801133826928676294990621382300174763733724549492650301756353244907526957120254705649100876880587067699867863310110828385434315564877715290190775306182266725090137984404265400734957719438104151523284468728802670440758171788171654900573249525514383832492648057226664102764696606409291395959436750148987904723536727443114076384455156155509657480124851712052002207339766766540003324134629998564949213877584009640199945115315640329031551966902926480598689961347789131431717653111958443699074356922873505096203351413704466123138334344386455371613942662258290555574469397028567535538290128860777133730531859503573342412780733386866082689149591613879235047242370575593818079911150628054859259975840837614133992327509325584141944248033605918657736399197251517740890611458151979821903203100300892370186650832847358155073017283998360596844639449734723527001266891476760434723671114759566157428520527664569065027473510111021961958541890489992191746924993925096780680519036041259770703627121884262394212300797160899104644606414363186920616958836957614520822045760360994652512643507728337458232764196968178916647845705022607861503882430212026786079661897026135221894401178519226021625690893957883325312622874971841310405949222137189521080419924986058511038227192977413572185204731016377711727769402519004152643668153838578923758788046261243018616423779977043306974166977635631024301229998595577944840131237282482311389142521397968987982511060740127469575866440903857245073980257659299172962253791096018420496921372527842707705278793551042998378397243398955098599005795346580471288225229194295525592848975706272972504287158206243725325791190963689571811014366792257925812698838493167557072279160420161028784452636444403667127555205965781811374330603478517057585618102320124503495697657522908681383593030550870800928494150429755464220785327960088866680270616706964527821593184209810385891877592878091641858400583691921854472773352030620714800646035949286069902026431747223638514840201546648557438638983907901418245972970009478362984545509766278890301007629388728080473979967270747135042363788419388716132080191679779172983965591900954219424387780386943850307514514318330821077335922592812261578731172337992312651620582499181050220768686549572299253020169286923178968490031150984349250255798444681473999950459163723764774491638435721106497001427814608234890112472788933335434975378234193154356972371850281504071040605034977099166009072735753318785593646202481734589749923069677605922435452433677865907859433101642785886094470063936055960052889506404550678919559719396387041714090992398612171245383072961507337065005130419503241613804574655814007573332682458896274806295344137824263664287122325258470176463330034207066073096120748469941366905350020101853481113920889482130424836586613511686129085994236764448100725493330132157178497128335595289965030662730962458511387118896130992990266835356873738444539737276763614923367458569633611996089489209387104664903277993277650646768014882041575811768681452197350623495499956657864220834179627810421905991325838271308228564979950311776807745581229242552882731338380272043077170710521990241948532803145994382917958788799315686979509215691684512630584638466655820801951854101205725498995955902599687317576136720253386119095162050415554471135034867205016351668519465947791324640038252161486444728217911654436895959990279598726125699648144260395836847793574561622401692805395264151589878031784838642779357753614656931501731849026317700095727636679672228695396705165242415692938223260438570362413730438859779154252915860596588498489598438458361925229607209312612507672952899755506778636621775424708391839721868211344896851577364100375565689385192898615743476972746719306939290462800705107276462265728149720178299001928843108200419720429924720296286731085091202729369642973192575919429101127259632343040423891439929674231270942753636275418690240714980325819708956984784521859083684836964610193996660955585663338895121561984620151570789044153812012091653783418489458150775296488320206762576809716212388854334153399928841251230128548478369434597089113355169659296130012211220511461087940794482026170332665902372034181728909119881875937592901213739252855660228786697074093020782890598315760184070668140312627126609256410373713864889935692941475150144889029804431067327182165522294589238080206601337185275751074756474136340110654411746528048253611439022918833139202620925556490410118095454486592833023360079393078608895825415964950381141236051681474028987195805120237201824234032549575495645795537549761468522937465714842685526529063586902381642162126409315389074633905105887144206609888703336067325658721239366457280002932627847175731912866040038455606591082262972687633614452163644459128163848035161674045448176115971875815618677244376920423541582900286890814039762245997293523066642690536501755965086120392109006327671713104629352784895070765455761879778573302529359053998385475210275932306708116893423599665854675438815534859789682605971537686788357151889298304339778099364750228076096965745675294939052730273623267545552144306964456805402822412315426452150869095858361605532638365202420809801803292417876717917989984323275639840366758872740226459294973551858157528117797628852895924580780646424197263451260960187730939784124627570060769674505795813341536752618840695265017701112777465088632535728379291140636701565134015842229958924473919223212613105237232283963121140776108049107046172537898921966892936497269500812201188908524636528459850386707489444736859568499549592540354635525046204024465932001227281989931351732442526502207724954027018286229407438102467875871890562255971424433075249102326219542247630815566499807622484261765894259415463682272701980725593869086228281683791517734537209197747333048148941131069081338902897127441663228420538209958465024021534457157706649862638744943841703591989099747073987586419892121082134311090010416686677297183452874882923087803383075804775550323530838391957059637206682448482107047837600926555196190643061770799313853148425417039144387809242434090213339720671876310515030729420440519094616153341638132319117566602642869365721793757543150498005851290739163490057190700486639221973024367750212725102156728817463450849017688176986591565862078145620217958538935242566116738800881975660970336383826770374055394182086770407995158725783305794042532827102390235858756103495628498404878170923121335812650100402583122489270153316704407117309474545359411653801512294155289004517933423412912795037794400949622370583334387268709642462250778906818079197331352939362679926445226379219934167091818023341206105084044757825771434501736143745916952523289393339296863559010552077011479922627122434963830330552632510624226660049779153789798153098807668504780301571163278499287866442051202305159603260762203987863118875238303544808514649129213174587758222561659261466203342735057068226503140258580040156698979499942058642001514001776033499704201536654533089564955397000342506938784128437012922058610303529960694113910365558393878605938858026313395689261313262294562263171305669687854838517632499789036885127711636291933922958461221086881169768444569258859410904412587257300393494221737185894239654293467244094048143959412651963637086293265471458260731037476080529707633012690612413871058916045007163047924757765098816760197184993717633209926550438329451792632338453502594308788641024503366069959404658353458641171294275981184502561392077967760496259312831101588128221561440127016180494866565093378514022232306982772957913249544409478004851304022130219880286766346785154423080467828649765550086958690707179028127945869937419918770892196880300127158616622792973836944968932201639186784865163183075430681107287759719183100038898963284549332816127095974347451592722375133310756679323956888754005704585862785975826149750411871051302007361372949017192770379832831240330902031746501634825217400905159870540692928581055702858333230187659982641994301810129665965897398157005755968543985513369903670649546218666205371423861036856047504010583990253135342392261534139762434249272378563637900533747955439779355122374539841786971800926442349315662087144763112415025255497859068574767993007062948539357134729758098962756817897626396479407822465418023848219935364377239344267564251674754110174501553334473161591094165293062322381397191117329930685928974715273774490138080926042392030688517934326925182043363849941362193816941175681014335694283400113278154238304260959437568371884352053290201316335119990662245945625958035663594784253408915827477446595868591040218988927556344251504107413691427503522988770542477308397262778910071489518000399359615404276977782012541459487098586207562059529113913261514808876060369326314788552099408950709786822477501645522019311030301386972065320267920590678841272899676967139069401340490184374435168839966926016918379578840080569353962538355837787008842320863688727425890681173221794786013666448869504006976738552568597492428094475339917967671083336204224338530552386462879311840926497280385388405911380151147926354467135566211542995125415179809305147298996600234156494539068354528650820317273899490634136544288188442903869159445683227112169869691225125502556941674521614587907157994579856365091122772659023775023924075822368872839588267713810714356755760801924323822347633962052692487925748168283404984125383219824624859580788239147038969407199539740758699527414936841958653089941498977872269262420302475801170678847840318122258709913702536607048909796341926750878470919120674541906679400217766583589447595330677212727245878219264505426578552239131017841185066510785411314994485800756018660268929678935419731920752856480303235254277918090055006784513567544522670293036668401894624642928685476575325356177552556155962826366031636057495636124145084875253964004557462687824043655633429184365526434807817641943309597053102395279773713932618751087032300391451090925763870377535805443073003417297408803818798200606264051147938045509317898406992461066902968825816998072623831138962586707728538372637626124995389400578809513712954526461419474377228260737288765614461115828542905683726360092650443997974241968611915350562398810528486138914602945420828596844903902000365931688190479113756552253080337395943307450219448120568576843817094706729711837959584839424728787154865848551002555915368938570579576563418980571682938194416060344177203408920961945304020443585129023236744222149460073997687370835822833046301187699889058869320858883061752001116900829274393449488760702775707874796153013975102421991484083809762854642095094762714120683748510654099578701680268705045034201361991941877005654608031085568272287467701692519568327679528623288961915810088058741675666547730411945366759061592015442585781182250934061033956554810911462339063107518510945334940286711835165799892460431468678404508388092893324420078413739251952256504918486169093135045656982350936873098412646762954890124254691521134457207866258823860083646010688804924691378218804415077552569169068487657481313750331574711256559129324716144191629431942005697512104666839602723348208481940418957460994749585554081320801196418525168329325755122591973101480459981855261918009738809011614996601376648369530612878745268681031412656617947337596438340866654908447176741413081705047511169009137937802794863261271936960030393005736972545719081262272131874389320166454388680369709584321501979159281220851011615567911187629650910021134331828269880288817284217798265666925728828277772028140900145670503140260643194170102631950352796161567489583691856149123786547278792917067543932370553434278938621684027380350240523305677868535023050301717264006076331734065415867424208034739752751624648999982499986521826886498979687268175864616508162179803721374434022423652442632125815368406337476730257945355968439900766031200556213957267088443027955099997952746950795031144410941649295769334788868428611451338023243347207573828944685612352029442675412000608036842715443610473200638696608106060281367872029442708535472479794187890889657323416615700934734128675622295951922983766877796421420174359236128317246649297467298800123167353602928985447728002380215990626244665273120503939746739647040751120638330082342942172434554505021808038785445747338063115064360811918187570837383666530348525313765430404610189588044563782771358141725139582208036396665624617223021877012154520202921232864402720494756555883275012165581557811069050151818629217899533623137264469432740122530149968366397098945123576122523372341843072764565956803144742041377027268347612937915939639870974704509093587860872124443974598066810887618078516921286868846096802097357987550998684379240593375804229534880487505385687521449645561962426396443530808301994249794391427510868443871833404023363807282177843462846508868656650058136462586076254761406783616132312088158226913483764277671318117039356521657617655731478081107451670764303851116165602606470042838270338078473248089036894092681697674062129191849047248231402319992126926553747084533202756253153222218085004041645015456843111614359125389484185623229584573348715646774192887408983740001580739218599222104588889390953651596825081552658958840799619192674612201014556036427714373360640294884486393148240069453470612813505276364174425207292638248539532795884113029523610119277995656252024548158485975755668237144574354119392101605277579425810842391372103167131660254301497574335621312475526319045731653617368251195694587029868339555970042678052576205597223417946942702881334821662810330921815589819089884101853277861579575368443956567083826175375335893296144066344456695236819406110307003735753547198343921949937120624204471599581065685659110237187935405111560319517239131579487154540158363321440248922179803616112469463183119619340128995697253331181785562775716277227025428864246981333229813089119036818882250294997250748487573718882561693667915572057376576828048641794206220628149489865304231536243736506018044473726316801476416871068493622229423715814581161910174254700204566123242154455853457062534879323911469079210592247001436060589276267166715821999832237361149271096485726230066827190610513129965237818812488550134522392527238424899128261145940474632155470453397215406876898216383618625280942413485299966372279664176838668584498822524120461755348343173676755488875943256140817176618631209338817474495923346036478903339927473919002271458419103133892977003906316398092684514853374060983016183164833106660471508688883351854708660088149066535891292406514529517114734201535185530208716405537230911991524036876449418803925211607110017002103524448105430887400475038482694579301799775003408957518365453522411207031419733099044055989945646551392891232155250083097071789990424854452511493249236864480098424052487112382377430662410700761151321031411875587793966279432691997245621482549924880621400246536187800482582942521946297055922621699314326528239987015087773716305016126531642578731105329309432810258072405378634380441197180938637249518999739284259241052726382506938111016366759423326326385396939147822862498880632301797118670775388099261996730776128305543967355513293560198458894418468551604104777901247345681058342973159565971740954702322378761466535772108151633494511628344422640793851882076056785272632318355409898419650057421052034800646937782260497457860017563904543570055727175956333005357066092541489198093767815692853837142859906137141469229309359387948926184750648936210837712739615886382718127188426924980462459768885795179483606166810520934556171473753061229247366289595660421397108964720428075744237888511104383538499079359607745527560008400753929793609994794771739988420907319981397642730933640929136716170884099827184596960025111181590824259972078098734492912359487246306053567287213470605429601090807722251370107752076664451940660202195825212713814267957529803795737316071053857292914561685110887213794354305730308807743478861047009866876757781995007724558060319666852479694322130796558431801851037105603892196996805874145513571063283845541420632984182565478498202590935307114880640802511615268365305432104405455218896220658476593639818401925791057959229312281018037920650155268117948946348471678556473366186551925002523811501945123650056942926278428875282460104835880361080689292897347061903105816430306370478992827246104672293898229956147849326066336438229247041648785976786726190945581493030253166813989897953951641340933709952413251248582431208949123869805860445624044871168049746823850979295847178399748197681114461705464721593370058300202210462374027280195326448973129343034630677257948511645818220279877783947203562743441772572747315477305688472797695834154496224237898049523051433952696428422159216536604328706764949151363085569769696252910335840336601353494865472468131428636718003018833909459507775711893133326472527063545468429643195330061432463217478599313779272300226456442663412927102313036689595018602685530765933733738275922243501129044597021260423147127442228420916897657010389187585792342714778601633869472555339572901703549320667230510432535239894546259546880177556801161953638370714363790131649971838274043525601178240374405084532650137842725445378666360014018399726662123508249016888784020193856477261038902798494046136819554520803618818170948921680926091012368387776108742418082227589155302721815569001896450512547625810052665832893216592674579808775085997384919741958029696496398691375091475957796390496804461707175748963039259043438762998937823964052758034994923271339873933147691837549152295975536798843887702926599674830379481368032951118168152886760422115006203037307942302907644066474437613016120758010345738678334328091300653584857970462218572589326187522642228696644696894469926675255184853960579712288852808738568673447436256671169757484629184951179431293642869272787319118069348975318004962452016530593983617107334356267565104664957064586058949233202384750527681143267075322624548463822009088352744029338541624011502313943610936881323778692229235010702088170499495141629503124275701414720335995430775795475017612185325919166639969101708896737008635076340849032791270804462623929862226102813145223171268496794634538346244442067126899635459133879619115546132465700029529479905533780680322621907559065847137985700741225821365770902713410137904177768971089903109065912667740959956949312758570930978677339727582840421071100399918054410009232255632673771322494200368598331607587917006966248593981339933384693349213206727811407973939853550606911076373457507841949022926736902104419613265255296337791717566263742046198216938725957989947204194222888134792102038475362967468201618611134116057443229666114858197626832104536547070460978509800020480392662026208088231673245218160143984832851809219967388902917302752998194762121287429880344857927109498774223724755972669074464756935847659907112908838207584599099942188680307661694216773985469383458811499922302255207551826322557060536047371985384715984402853000855627930030420738614496114009876970124492681295913851554206528917257063059631034719034131982205582637328323178956523041176050954393653178020770437433150849082451359387708174933945653397456423441027690125951824973243460244708154407310659521866616480135049505680157423412549875990854628094312780731076372480561193005093577096755377102808233137839663167500645331716345703655351159334404358379087723848353447315768941184551636310155248960573491657295543757108172355709249681129023792245843982529319259717062251856585685533696757290025243856151582822456326622004082571756594036348340055243782975175784957226575301118148780210944627048924819484247372047983510049537328324088692006309541697703207458722817215400272739371229124415877750171585178709807985944712110935415661661540566008334675429427302449932897361677500976753873436194449405785910838934535477251611994188714701387312970299237735659974265822346138745385281341555521306976914369314545319015965488005185196038416494594102199428849498217493195601319900593388109053208649526711578238769847223579505576050032378937452921196846845691846118805618897706106592907432828424366981592782746056339267857371818253031175166382513647433381425191852750141238048690382832161406132372711484326298107656559598455106091727548309253908839944403051599819181576343277164806263813183884982174470405385948629578667829090130963947633130998021464621683417825109651604719075266664029809319355508735678311971814818758397944246109603492309940716676286308619659723725688678426318493562797168014964765597035862902585531697698011471436153913397674812212991318715751348900264095556331592640282446563195334627196082906163536258911803320916340013897241575143649587192120824133055739068098322649663162171724596872091078859513627707027211258667799901741153028916285062187389988889854881554075922260933235924245728920687907934008825371263901895586165634984106030242342870984406266108723519769699023865228624489417921351653619641890779056859012946293871786332848755881087687685197721516259740164760564105964484121228037012089117819785507478440762699049694814824821831731196373520614992955689835897747362837483854003670384428979127973736247156053218760047292003256822793192718391044406785035455490056355516347575001635913550559354339036446891432536598560560608415121343251049483504985641647148199341744035585525578062311622333554890154795309989935000286652535560246952288660260238318980410433900167976096969060486409681936154456691974790785883388668171067760490156360429388901954180268339166311339022267587505784962957843430550528439643925021447850442712689534918823686988166407865264148220053999465205357042909539687218072407217665035659375931299283602483870580959362701206853826330759960915244778594585821089067630858749350893932445904560419472906253050426219746985936278743535612900152868239053919930814747333029702717393333262622299617185580820433907766172422371736288807771399687247775209013302002416441770216503129101708940779736416084703217171832545154857420078942800830418746585756253783155749432533208897469281474700968652886648881165456360913657009150637473167301631048190354383736819258444057960585603848203635590582691705633001561568266572611860283788799697701070999579517829951005868661724903748161655414054370987543664736588190747489057327661769734506401152654084492383841898989966868603110005268734873355850963828419530660743513107539276927016675347006356409479627118404074494804748720333203572588283514011818750079237366545400304930515844172103000604440823259496423101314203238461615378321672155137023314974776532760447469792920935797048106993759643347553362711327006210342201375110362234137043164902214076568263740063146344841418861578764945262840351332044549598611302969635926980575338094086456713450235010611458347884843627742268591209693783543649119977647508034583870152408042262567144978720081156293749603242557270074127528853826244171556313856029898328669086291720310592611462536470119608658348774363020716976072842303943003297351374078677882678971150016683355615675670908636938288420052814594540814726466678305106089779848251816066777658366582329224954511544801667622526504450867221315953175439535001736952632376338619707472247533883393433510978016507097261893142950175787919396264414814038795054514540425103296131973007101136088268114838873427911035797121595378037997043511592086544466550467215832555937510823834419442419689266173715580353752312550836002844199337860840599999748962706721996331948124172222250348467477633885321596100026622715281781868719450424964242722675306238792032305993178293009703720358545880074213879488127625833114272252822542768930796339557628476588478941581690680000923229781810782594786432162989496960194831292252394213745617764054108571958094290693983657703950282962571786640883400614112447192806425566575868584122670323564270064831922194916291212600126389266993489822924011819292145525920859883962867694997010033539190980458486130880766216532315471992828950167477784131062879608733969062397879380766043145119742128016010754867852694316464841185876573658203394301286185643042218181721991404482884130500344491621876361442316198551266677320455866180704957560751096075536382185813345801892663460081145556420621790278188276321759938891347264894724033724970085719404996729047487426281539083330600714675245262270346943279702754812351303756812785355340068563342400534313525799621731257787211784073480839188870567416898119973806131111858186656204621889271243121892189294730960689832523036460529570706931287215320217415878559998499908474917144273813110670360178040606823762758017523232660013104846168909803449331211682224574887774227545195303112461864657905892903954059007297930576104997734927859286825586025511529930839559775334558797978904204222235766223530761825572825328218210199040765223109017938776352306154973312837671388489467664369703347320303066630901012746150548386618566410408210371592387805140208621345791337865431931636879086326699216838995767842161524852970896836024937258674957564406078883638008732692293515611051636672872392297999696975171884970672666859319064893020392359194854010455050277200301850161155746559406010939962812182112944003917532499482710142635446113536071368433809116704007265524737580813607420919663569391175914110662762989246076833917091847056420764718319701295929140160835784509186902244631526855644338939447479314133700137881197790107362452244118225374476195062253287914356622234939217278602491268643434512875675849333816385672726765222986070888572366347284271714482237544345319529493724864438853454094062045723539072308800109757385506992485588537104631037779900020051387191347222082672328494930048306156651154899814535896498155634404822898817760714616572742167926029860768968611541321853629165484562503323720431430233100538777374206733349537021869254410309121059923704083357930320561004525096441824397852458980958235996406429341563113730415573649473572884010072101931126295279501997894019329618906466933031137358977557945443604754628505831333619271441990008418305960992670296543763340193989326616179733435430556668978391545850422167777655843929633208300175401598024866647234309598545466728678602770469371234226323566992597826124457162328593703334832064597346556115041830134279988842615764847383032951988170830806552263073986195921449238903119264414554724073381760429790157487988346390799272548808575200573259564415307067701475184899680229017262511448944029540531055883773120986140969619957569557508397779360389716503835463484275242198500759325376651238604222129282563009115450125852996895174259210007884200735373359102158044885285759863002602072144844043047360503365278332818603833756352989701301366462114584072149593961097711549367914788062284460791540018768998347292686603090045148450423298914646524790410556718749404389724753701784673544711046188381050381793879225033176158683394352651359658527369238200827381977372418752122682777561366414144648293676131181880862376301295711191788901311249410586998891333910807508579622355180875441191621100150200329358843236059990217296062412502760286397285850561130616248292238069751777745155917378336894032374616588098833634912784197294103754689534979496061911810911633712149166019915850642232445721709164736207948303498466957134518379800312704552271667143640712074593968886974564100494050260758613818378540424748407951454395290381754108721510864188509990159136140201959463619383844851394593309347329421984315352519848901778254685414180422670148602349574478493320965197062862143728311059456096260672537070765427466172050169163904511915042320784479177030358068040419169925342289487911728801445012428105065653837624096075617692774095208308094090723676265542403315340737768471579180269845825613899404372522416314207017764362757808531056323539424568681933362041095605090170117903901099437333922915107907017193355612662086182233602951558023527422120041949014177869818613550399025284016889552263145918722171564663558278699242034957315284983557460680106015543567231922497195029662837818795124612018882772954774495962123186021905291221194854649109777573726056246276051586613249568070007091395238487486357928239046173330092138605980883315697345212617696398201917239174890464152774483606618586359694906183972469854327060297928781962254939832144940893490384987407914878135223210922240950395947213978905281786395320373861407784031102718183215211215174288110893486156840074252535156906434767442409126675413209584121960654714002776654918074908426765835921609395899979109884687942028744429476445627206930250183578860260261417749553856867215171038501447371690428662569368741872955366373889872805679461647671405923276043418813880607113877825196480128983940291716488691690089075779539495691603145518220558664950022543501224864490449651605451698443467480534999794815239484691244839880291525969049101355924922339373740400288444148108211280311816771299890592644522984528654324315186785473561123352141240408213332815219127051774731560050966583591074992623928790375150148101872292894496632206330727978477898412152070693724526665172114955265011283360505738805682044070794874486796624759539032171224680012359759879650129282335742375725577162618275183726206560376748073765732619576324553854223235280738140824869323473070496825451963765975899982703323170914895074908669524967261384106511577033713965990199245914761720725316933895145664661801023957012711960123996062444704435238938630825290203083896172188941347588566252315563776227533986194761801509862660450724552759346042538540520099376019505061010580701909337245629513552207329884119442588277988376153366241769787561662924809456323909143530511218047279068730753844504658976102366799097932981291282124530052680032132882644985246719056748297906654535819977039434878754094383307763382277182574804571577461861398163368269264853044426113258434925698454706956947706585389575708030429807712086634003478929871232217130890797660038669289649475056170001581226025040803984659110361712858202252022284473916677293128111387628814180167293916334725642816485946196242836414514933582658215117452266885410388394160742052712501303647226356089778492276147282865044523953653675726673903525601556496611109822322379764838261681726628658619587277794153447479245147004795733763206716078989016596614463770237306038887216677362876032141182572250940798283844576283982446801605465500766266512571744361893592343580658798143473710226224333121364217479393741614275261920255559864453596498530396424416331303576377467854702252544237362930767250401484237138328045076441191375335466786612092733514200827343651149353412189011081600893601786463363286516513603425858227602031483200269798838394667433106145050983914432929056453647595521955543445016167549848092826448397784942903177352071326517606349368570324639659246701280080300427593996172767633987146610639265853738065590759092427796296505530236220377766385974997348422790109976734836308011830719339537908491089252524606462820714985232980560364559178042650718341844201200850570780282101510678741342214695596347819536947134274555543828816426642086441122357680133363322374588791603837944389630102083177645285743506674825224591437645747878865227212704373488714945922247063448730775806042193159468061519646910507714651676957687965475289793207997156707975736458646494935831063075475166292335673889923857588103220288468010290663288824756038913312388221858439612581306761256694293655441824923806323565329244902838769912485389978615710902452202828408658377003473166288663735580796750403536536224868188818709110151663004354120429272955571901528184530328416662857466137887658300584177182689488939745285327710549199081809817162808365578032698354263433625818391771447120155276587194192764484402780661678490749752246446933510136096020383712810480224611150011505064824262222803925009636529126186019013434481994879895442752592573255184098294782644204930961646826760502302708887662423728114455888935424655708828159272091675899252171717625865415893834173348392638785354286536422533456008635482931032922806253716496384473372608648122227492679985686395915430459683198210414752146948724594132562706488689486720419052732062393259168915656559410950690804522581022231181469141736652584091191641639267742283109105579722836971904715524827189147118127702754988717664751624348245985704663084425258184673457412439647451329264173102102547438832161461468117449548696762684992277180950121086093681777686113439824825526228920150594834795511102139104193566520203393599436509804098531554159516397903836120238070575733206775564092986261774199288981053950062576823405493315846476238752434599193079979115362786278181334487789375431865380579742018265260838523528751352579881742543593100515218517087249774642480561010197130272613747431227697169341291337402449974349735443580592116941988611170331673441848241830430444214398980510599839118004547765778639474444370475552344978378253391015377616833330912429755336553254059112985032105044535650600029930728044804411449055763086510865462460238802428343093694970705697782823391406929009349746953337172608135426305922824082143809528203375649280179149681948085464480846451860752020458995553100340316215468491837516895644491915338146367475008828870448944102583721767066097163010059230994028075741048207262182266856878727875813411624879830795648418162599805165505725949744719637321742266112236701714736306524640868178171456613128163284508692273241840020244196237060952374382370346728200620714226440534502168064954928962131030206843363984012604087717446025552882345729084911801671806869734593927120336344911249076532369148790645550020250172048807618361431569495232039842834266666190802120266780427536158403442468360347343541266149188976204137219292401109615254656142810721076208136680977641842808664970611933503758565781840434775451781796984287863942023268062324088572480085211955714896737037068740824874886468802459776708232549523350040503088542359426752847632691679490700626414471225296494790851952133157857322896894288800023715579440748562803480959689600059522189665836425515106808914745399351411131334602497498865449271117222967426407690016256469262369232454788780279067623538333300428640443451968847211157831264598165522424000310304011460559886701451402026433525321686631633165687008476836653854497742240357203797310097289831318204491179853580641567037306946216716269845618200600308909472097525804191576120102214749461734079324333880524975057132351019724019626139888296396791532258585032190582459815071073811133351477558049539137452464706144253163269538337313935352295727049137753677713734043756637359756975429650879399744706137234677828800872611567788573750903699696009179182255883235104757283177172245794275756203705029768967068419683178816829941686855588871700856405806554877078439910285134788263751196695358102302331891686566952949250745547365653649112954787344846292194475260213871038339198341234043279212144086992182234910875269403448129353714684002804527506874694365345352867756627316636083531734940637689616565551098054788745397602400828958605329910066699483333393662455377238395057805616820206820536123501888598754418323868278314916513299722485618884162485680531657292687619371421124267082131715284357161083318058088332490073212342352570827909568108644385642063701335455035393298218418964775143479946348550942266146283011492796681209263159986179726519288464728944768797326587898803923338558084614695968691358118925374323926032353322972778187009650743285674759405318093682098344355422345931857631137675969859868965723892430231369573966977207142406011246403233899004320168200930264094169479976879966751679181200522666432459216915850306579279403573647680305110986530234961515174740610050014454544159708766832410980140808173745357458820663356877238746620690996845255491567324019709537255121987038904896129344917050098585236562938326968166252353965603965434652485179778018047806073243504071360974316536603526764472016053796556209593930985850112296048093940289177811313388790545106664720191879327588104429650780712075708629420074386927002349836966625158559549507058824316662403829413079164151580634909469419175015943387238882753872287452831822939577237930407437148970499076505990858391194530376516323372067315485217716197418078366340713490193254045850488121930411628100639668946907486618294693201074578434488669534760765228319478440391736869490467598684658098087389413755421636699683688215576529036761217271413192782717857158412453399048913877133821048373338877274793267849082858783544993895194097187809598472435437248238868936388624885601751136960277658202020731591106077548884851718152650172829300055347974313573685386377871066206603988374779603898089941113054094581696276453765200642366139009616272304379170702289358123871690298852472729972578104181967663187143251173336646966986474031707356143496049539860819975140048348211978760809310383095841150962540919906683090113047030308406070957875980481291771649517529528056732315669548189445971553952614896513792983514546875169972703165531518831149572006491640187931995471213260222492926060159154273854985771421031619655086357777497011296962910833844944186457311104518523152980860297416319201692862831058114777422620583598810279204890308029324107525664924653878635981282982096559903538610114018431241573836138317221367279507504374957670362759788355307952134912994779604173813508517949766002482449518053639138670893440577743285218647360133511915268802522797002702160147024708804924425393014121236927444731856414023331945758284336567655605672755863542272682341338298028663760392824884720186388137969387161043781332332370871795122940941432276262268769606160681677713305266997046185759097373035579505998108491218871606524044245087271008215412897183804262864749523373813386798566376261496872335535225637001833998079710616446662875199541391845821819235612148177112738398701418258808270295909693046164407379446465901729961031665173010559686330140970674415949764368452604350331118317567434141481054681326188965121598263537430321519180737640540902364805440726916948949435387932469368328898342088055234589958566162748365026158208457888751579098143428450465214373441654714972794101180686752726291588126337387671080895755813887263255705749421633002948506641861101819770020152802300029516672809303702995238153648151885782782097731695643709956443395222255750742911033071006548914808755118440704958235080084634023104609028104757874919467194988303650435272973890417428650551321342908601387181753897731167972992319412201080730274748250520615411059206760472459847810829934018741783194211814458659763129737801343122843750747765889635723362429632783762134642257768587765509318403430527429958342477365025007604488125331241742064564690938544877770615564297168273204587669995436023556919055930207955066538126319448549683161387453996777699096923147745525577551204932256703282567933328248762128554443678687266369152545283932699193156653226654106229581412635604429373648206109442844691395404520847226483195905038977566250620783756889324354104547135565488782156285524071787889657045368626100121485311433349946211913351031631044693099779035074357196825656002580129101036324070045601787190879271015924322851264766867195858041079190235237881153422326335450937044212657519695922231569698786719653883185894466476466270679150012631096821247651404513521910504677174582242137190584554118300325824329551080323378832949940673824380975781666808135978287131822370783743620833192768435353021794656335481182371091108017204131611571776897106758989482207201998376771996370963673330610575814954906035193705652536307582489503833643223442101680899494194025945782427655972927146968879180451398895983788970813667329419120863004801225350565485041172365433344619734944843355047160789654117374956168783298643905044563717533016171667225800774534819685419999072642765368505776011352691340436398863730719732277328949250415767759984299315918739525164533948647419422653564537012750522697797133001618457133111321411842493006795980300448412126222595601958522054211246515158746816218340545799911510886371247972741499147234239069797172131953336656578238526071908531166359823904379337689789092409428802207874399340899896158218207233471045340104566669125649123817918599295823829542629392448954778243478342422054614666444393065463664101424845467357588697969200664824986366402743762842362227268047407878379642100843481244343444963235183431177360745457209617982720235788757064237176654228576558601991797567806446072874253464753872833077141489480316641894683301497645770937642207895819157421117066024396771027304697818252209450290171695325506543948917343086706757454206848525904308745129315401491500995397155752631900568905985035205368702694263637196129763399102801713582543624738370789983914212108054884280878488548912887976161081293356920679391035492254152065471442792118657664247582510506457794216113132741257386713322759846835280793276169785623836307010268532453997092124967278021892256199846608532786328100709988051338803424543014042583208537394589627289428600347260373153932164912880482411699834172018311814320532820940869426109551306822153579913808440118337200117545273593025036148319933809124746191654260585032361586479220867722942891352428024172803585320874946725023538562996731313150866095589739942136108843022290969987966042513385519114650708252961407005482678663799044937662005860106451913522922752299368627915057561766637455306740193884694333786813184223067726248039652117297090869523482158005154997723659670591289381038171734266773771711397351964368010583255071687190527946653896007598899580398146387763849060903660680382201717593978011882130335422373734286547566532241453739726530024007089953160647444697219624202550286403023511830768391614375698584230431340497258668452471426247284017410799526133652412481409328326433997568993661600051385811815639041551322965921193660818606785606604420288189742847509387202332201371886947906428364259008203444259302998014259509138195923766790622708080233693648349510231044893358981436777907156470546120632834371532985394697652747077757619397901718149453503254501343692991504507542555104407723288601374045227578077186032998415494300496527792348397611914173098161238298538779857473331387106955351733361823425915617471903863979522115141317877642132712115769038128679992225436094569417879817354605305201297537958459243545467450131011951192069917093237347957855812895143013029969467006995260499612543843084068235937810212764710037938842354864669558951551733928489990557751369548105211833305248415114585807164547490834817196550943114220599606771029290624330129994878738405326968386546984073537009992482202024351078050457548693739802246432458637823948073843058627971242004808937855101009501563700213063098452365844821341868504659874819094467198836427578947783000139638865127845350329235788907311210027269502138082820156119389185383233379237480502811696289569278350569139646877576574666178693639226392695373628714208946238160864253661058532067250401416795929393241281930922590976032922779628793451026392698474997814048271028947991978950947245109438946745751712503691686286804011322445953567471676865052476838137333391160495376716800428645030263084551594319968836053722832351097354614045638217456283238833071816314506618389237076777994223255444251123500837162298253906941518009388491622838630076278116556513565377422598823984923328459479093551840091488639677089770386389890745253258651156117396633915493815287062075040794527475660520382384618126250927835238383390919480656325413378225801244164872426015533577704695124737045267408718513515162912826941459972946546461868639061266339926995902369202753719997399183489062416718674242180810442021150179999680264571992325206776743844053204569275633301904610652962434720385724528484365818660499528740462352953376114904712657664355238468100947174205163795618511133597067111837088404917495200380037622068623904164414941178256886172295818234706421215485347291487032397164777802383929382569296697930218022217390881522676018182894542934857821352484916680126846709482520341522669986169830901545379438725572487566822874916225415675088661331504053822167195949210228766680724449207313944814693741305668782096121590083773202675454802592394632967527409492897799682601986446381959721717897143140559968693655119305080677256350697412273244714537960328339930599660547722126994848224975173927682592071027867913133327051732486329518981484280234224361569855593637184727569832959790086430207140971504774960453374169204139472904953653096982019528647854532970992011309464929160467017405230284083224306122141085153441036642178733450513434759382640788370082654877772117927964780050979978843405497863057009913407619865812378792446547114907307980699228937976183655640108779715743286470209674269069023622106825796760576435888299220221972665645586399921322043896132186742612711280110002612090575766071249287965312406282351093073143886258905919968875887168480819197318160031122053028693881823236658256100815514860737856231395229571798189953832128227999577141748820480031603295743862871942491180213435837784679554660582140914067495923648995407653911889774641610165294461308217033719982451865140187581709635331418550754220234308731573028608600278692771423497894362411804536667239430763019675927838513271999077401857350496290839126897574615716161131481510069160709676753584918910064434242052224258383719899490563355426481452122823943953075263858753981070739982525807775337212634664509200292570556141955213083785358260132907869111986466964768043162707083412101102125718041114834841529579078011157200348807208461695133723652962035110591358233211896879608733226353819709052923888969755835003138140837781335906117284080532379916484312678605560712574599451116774830519104832891835120612971693387715365032211978520652112752742003275744818214111034447301761800655105888337253443589708311695305654578797205349211189721470424951401321814163351995931531281494160946479499249605210835844665588511936831634675213672270390864896813933887857063526597461713794634853699907610729507552682472913165590863290426860533752636028462408190767524933357334799759067534892950272247220360354082092613721395785438958689435203516851860010168835817075011987979516572300824549476400767182475927275320081729758225066326564125437961473449540088915042245851127599219311632511335952591889472625149077814010629526461296610531766132863221514897490525910617383388625922346793831224629559201632352138239369743438777071987465793812437819227579662175732047324474928662194211257874236204437649492908708451898128795712534407033040975204368742593764829534356779102530214692992619332816137970060711859953123085978488937278945007428659183280053348455926519780061993836225449851143682342085769119159639598826115648027957203711886919723020371683209951982445900786643239844065526253323683558978818117418619729548348340869400750235651561644066521483341751079334915849282258328635628585330803642207609949605714864919464851762457797587358867752759922233273698127349127955312311487466197863384351825462094957081109102004916292305797071732426209852782801570995201233709461814382815613173759638233651477035045323914491825623747789827424020507620562101238707688998330823331142996246860109037286154998560091513185809851449489283097150320877473766966604824937144060506149462040290584755311583118496948770124124045186712176740013678701194511998370496588087666382215633619972812239746104961808212871598755138891050941479126270699579490638540289283601209658974720206235294409911214473961120773553621819181477474163569819867354841650943060779945311702894281734419165498091955750842680180414100170366197334536221656748149143145433919117925273895007633207962434725177492911643672355027067903543068072358821308272357041629145972476478354545793032603710038717098751649924469484402894756743700759887966276594904503257127742954256178181600656181426637670076488554504352932974771367109737232460027015972535352883063699398579418762637589086812374328580294278913295840419492482417208630216966660991214966435573153422445916447148070581533074124528359846668373772083002386528884991618135773290392399200587281061052852595883347874751084688587703916667187026897375508031952611338125879949868131697326393590929430111307340795263888901558770440305824073773776440040512266615593886035527506926814673163851747044712765292109850556379296300046932337928439794620588921608723712277095312308778602423428033299671872789734521167895126771879546903858630742168279381467469324054911270439213726461648771438424622268274031915426494389038849084873384871700602363469007000780779185185904607574339068338234186725427905853549984324655456290169134581367230267380560013391142734100752802640547649220611647228218750025573361576950815424840737262465705784627069942820273412462122759134652953857747852533897538208995212483000503659380596914632415247989040393503513414423571643763232110033513461162883859508933512037590687042514185819145547663049784129742060463597549319809014028760670287334063418364545175897444468002784967327351551977651215513130837558929112006570725767747250711501528945965453239261174951782788039581836817968160569927818756420077507313692140518083910279008683833633535378867514120686873419307086450033749989284493895237463872245102723818016566649319104151795043452615049282488039712413257809458765964842585695713325843480593750706416450374233647538161815008954312745782587381894820034286609732482402969414731962098095970823934278962643287121456488449072107842853345083365382126452018056434694262112712234529557328069321751854386650022234645177002023431621998546663716445523898111870582637503192027963974218122286509718785961638161159161294078448713180605110600554310605302050503940176536073402831524956863237014452022363081739128109432198945843418646349780591527791894005987368348511675737705381573760151046034505893699799456577058183791369281229361523289978398772267884936726822937216273671083443855635552303219941366087048071849958495485513454556114921139746427419097646633982564860045687322789631092102269194419611795283636359128646776604790870628146250213269528014972349857811204003261583816682752154908918736954328411064457144372156863823936365808053635513522647005448354894770241525478677114281134839849085384917457209864565333436899676668983325493412627494877043735113926457730835641433746641024261437202525149947135262457562751026385205663560505534072653542929477284558455207943034816989448149209800025978813645731080538824455315277776604372416676193646628431394179244463879132080527967895603713765733679692948943353456888691196281867768157515818382047502309431751893485663459144342142342366402994239989764562830277007767629234613403294460323979125624683388287931692051184162245733909338642242604543189340177681870583484922435125092024531784503538818879016291375320575980644047943608515265536627800691372766233718971953214480911683631833577989226151737481540771900084089163050335343252720060930519511338558039140958151558741163830287492305929941532135442004497247588956244223736127966004795401683832065655722813584899379999700268225214713260210147834209405204290704841360330381059837116981338768721895690658477952500814035682437669834956560080721927886058998122879479025971347884325687624531960635392701399939160440951620359207194077139876569450088110189724089385873022278384813077320165939091703898725973910743335400865700557877467472128636157810999144918008960926978023838794957000950151517329130013206239259233344118834340608300120996208215758210042783892252732171184350529197753205592827623989683319600599411346381607701550315202226390607051281250742827249250865958479372782330811359036028433125364057668193633816255648984033630248458638417731881078167849627690161981210557328505133153851276395932896816714955588125493572064154374626149139442392782418848522375892180941992573327533754051976191823358031942717712976321382260762209113888736460485466082094806654321995358073880180164354003285308298192455863019845666632505171068305367260778345948184600520075769753564013436700870582970572060454550867735565926160355977799629798366600478591550911515992977085503614841789120340285606877461309408792412820534937819973466488351516409965310498655460380390945437488936171046147845719374942927846135338621003942946527107523677685901326443618934248491727600917504177026616261200241773295674865386379429788827831417902827379710887408332968354967178336066211600571020321131082794431754015448221962447685090917657998358138358771795173525258657066550400087477448165195364892819223407882632158438310085827706003030415311255390112900487615363677607703174313127822694998747161560348395114318606551422854402755807755965754388480753383109214095220982182186809956115507094301460239325209884996970843171775304625472147005054414581249582722570032240515179364564416617054833044231990558048415570199259805931628689881619239943283853365392193665123952738619028383268563877214774948623173782334113716037343014225229405556002731387184065921588221398860585152313377196244197533989979757606399405365049272884886564682278197462596853969377493929794513616810773183197348657022958317617551638223717226694127447376270720973217616143958890151767739930379112810875316062339931227355774238495733648611203897976490039152020947138199874823768653412966045801900237638086308031798626673794846068927447296995097103876844660428350209769224957036851331328250118050393066373665615502035213530786009687907838469164636161256345474875420961665153579639587694393801645417355554115829857142247096937246589594867344564521303331040923355157143994107703759579750248741707808100505394495641465007968292050731815269660638806783372956418552811338763512317104433660653918707459585101980238269673858172422581334890398799225646897708187036963855575195493550423895624481945010832097875739541093075683706692960306974360896448568313811078128109973475508341620838061544749127084208696981264668151529667619026088015463779710971758363922455115777351598873279838643154117439670053400387729882775700638425113155911058788320931517037079962153623862080837682181051824067440136171615580130414649013904186059853667171676362818049251370496644273664956930878003192166942509435936104352562051267126658789651374111411102367068124311908183571676345070625933461466574797175320796646160540294669903468239484400032415041907329286942127710717798660562966717361943505244403408891206692039016829322312055786750126417600231660102872421577665325537135642032018257361692885776890991911326683116703854482484123792453843877837717596929004707003048519011572109434736436758315751885003539806615751101848799320640521359356154737911932754970729673790353642095409273568284167666424610546317406712103517937278312929288586629067813342070781716499414704209833796894731594949456117396907274048229367731068179711639255678862668310020962359696096940757446946511839667609854211643527665798368611869575858048443568530522243516505433800813263835710601853946741817997838927270172851023827821175340866337983607358850095607643222404666489326851466038797642330633723437409930806339474364719735387359914117971289432704915093461841040193113747070492405533567459603013878373580238223553615039767550058295060306375778236123437741258604163332360961089002773765003177568324633050117161299594418020792305511911807842778264961416142954954215020641293102691225981989027228356190371041361369408527218804571715403626949583159331613212780746511840655810408628320981105650487482437916525437286567299556427500117102400783729649900413697461209347731811161419825500788076234019951784780815474446228098082326447891380297984005950848465166519682591708513214668728300438363894684686448516138668963996079824218385530721232145646316623850313093796756601945791700175958992685352087664182831519567855093907988193071511987732473595255389019705663084174401347297845927803299311288033990756763302764932406330684317767296715903166526394888283243623349152135822771972284272434825367417530782584875074406370904784122439121064135179500468913771924628283508268334962959896751312082495259603440245703625339381691017667608687176856552296342046352445227157333393907655915315349050867723193942505848204605391112055360792920164025273330991523794075823329195146412903721297697034768202114908521725207648891560333586969188808951549347901924729674127835025063414072663774670808798327710896479821159285938418864002287692859670592190059907074769484867670588071471908230293621156638966258340823573583354958805357134230812965342831740496576333180314098871706469360564857792645458617074662324484625757084790049845103772383062936728491425656357335570418754458485221345202306472964185751743845549081268666438009172996347974597984184801783012787023563685201685261995095784969141967025757174692649398090981279699713983962365786831347708949141900000038470543272126951402726559385836583232866270882415917457961987659067806970738718515160194791917709237265656521399997309252055176101313890791956613271206679217025330356342468857447746293843753182274322921522273962790136764840876195860678212112859755178541335859269286859350615728928087532603207591675431699192122093245712835836513176348533315839246917798806576353980759528417344485376279312142859433803570879535009700603917292695294481354240609343259380731218578484971029149192836805075408009454436692919832446082492423627992124997405994638281349139582469262881912660422076679722494983146115858161019757598506438339235818009973266410051330894893111872212888240774956380654266450259454342989308199987828320358138323616075211911574843183752401026389683027178718310565036829273082990024152586798085831305545713433660858490485558208767073331224964765475143286064024432063781896622811700986457145943614750610496913551686950047881108577356128582729177142328708196003941693677198544997547874384771564155636096812264364514687545062000776363942178301818237062787234650801912311280471840129556630121712467934479564769463831384032947815630218987102949496688484386779402681385402063866795477768715303517262900356607813951484377323706876551069114777116230354896872071724423960213524919276765396404246837294519268628743701668222690864021324630305616293334527500601290118547951899589461239790908531965096599053435395328943553093105579662899353501815866485928192627624824223098707530125534644155864770035309285275760007568932116239580261593948781399083201657809743716984301026026383352546907402869642890885558637172554684711949006623070685383341685414575259260234888026213393944224410899301280838284650075636502505756020808034313688844127550763810702018041224610566764894359011490180740841382992223201113079375546285352957494910096304224665017030708919529110310671477858664297338677400572600688521440319820970990973043345104419768460539287654036958877578778987103602158778145628769560073693175978618887478722960990409658756543537604249129673832590993903742347533788901119409563979190842344900323305890062158785454478025360307123351304643438323385666507641290689143340097944401186522979885761161535545191259226310978624362403006885287596936103583284302974351407454639070559485162247513937939132562837363713944871968817641158699962680462223579738843793752736231148828841580463784287077494797134265575398456286185766072309574854937615727325843019963004313783578690272934633994418577674407697565048195773767544298367510716598653416083669962280480779430947936585923435933330206941282719059992878336473279348990838382839654783076480935850452248147904879031680956788011082283901516569862875723816751914865494317484658848740804529893755718132660690057393283997049633782902491766807913821077173812964713605824294874553173158341023280249128743865148607857893490568542887305307330054884905230394876144872315238214883683774892829106990602430001011177162280737836996976860949331101519793928207526929358225109508764178490050236416793023385873807398414246333788426038413146849810809677655737034785991556240167757372013924893863581632235960588599548898495673970341647373316605694837884942969905999524035936798018613672549476569736232254275651429819450918729053084216677099331284686982947199489127895321714234710938602337086891425021099936517488383115135558596803809352251432185721821380531308238689101604599858909519290757066609027588508284646394551501841685832633783117922610821566726754178786395451223238677267981658901137068840850227632119966305847141839826116349743694415503465968725164454534594838608452294323651724366953140427523798367579454622999101963744679345348371332162379452320478657487203030854788389552120342445401711942260457695039961750277684647429897444060076938543668716450982236263299935072138713136766008633502864163968831004250366597629443142807433738853130148102798897404514800587679172458144427893202157849113341034711395465323518865561368225093965662429130226469338449029302082812124017502363653999501302066385935575960351557193377393527168867235136340622965695589253886700951585906145655741717713915103775856484399637826001175223532231887799103874704066003314248035992531952183741720156765021232930110250467997654110222421834767380654749126235859589177271293423794768995261439461614831541604723642067023722915189708682697573854933161893575932805354010597749790347463096924419812311668236142886426150742910725014205503770628942104359276326414726982238196798736755246011275163942891227240793672333461125100794110773338358949097971501738192942294776343066081633592710360485134058441045496763375961224673973353725649800071260070604742273978257303773924361090657509710502499773650533531412810342470275131244839912507084077281340363870399132814084709473905470314562587863344465679110061287445134548881991326370010565108872157239793432271871097435722571206436067857911671491128881343145672645640674839214679963130420725802691965858055192721635988735017455876972566242491994432029315384642932995099574027336728539864281146724044742068238540560051177150284185057170448807094106142057198698762919550145701072436599322216423871646027464624961705496219325806558136355837583763654125259090502106875010051479012911203903043357410360628264856770421550615395158748810896067727541630197386822200932423421162017767663203046424822109560803690726414058511047023536775495595441920492215400922590123367545937042906904656672207509210586419220123555216492170444862561269206217382470624204426262963605041831050602794399947338377380133158751322563864767315839877742466667430857340137230997606789688462398209509599322821183418700162914552767971232311396460048853192552306550303995872492290623369244203732118771394804793353670846503947807712648342543094805524137296071401949346879954638533208130734955203757635818931704885457678214223712085471925138684328161077051277282361584367458736330909828974031124188189735825361917207779118948495460545758853483073365851179619768339113849843097911644551225320769714534292829237432973191349716844651106334173474731753128961583600029040672654895480073312611095704874295250001584405080815680640499163435701842263705412725084807222285025850176948821736234258722616914767260484536550109262812094219155298605949755146837787973204806237228523606747791687828493481963786147152193038724649612051520865908343930319650748633318062424515862862759433490427237711230566993305998936567727689206465077325723137266189029493310417759894552399664293329713495628307138951877378085765377806187276709730848636879371518994502828881132399693566665495161516299173414527070869278983867654277292442554726210430867449352028831665288913705637498228702332430040619708506574864300353543923480861152736758925784775137939330897106441263347589057112885879871648002398267959302675819488644370830800650710741255579633753068376894509912641411623796732159978716529444851154231393735994416161487894739615083320637938720454381061801956558307309886908254601824366885136501555514220615915172891326163671793746766287659842450261496742075436831539904867701282735570768009764408744155416794145086613942089988219485640421693934521502707120728232492726159277989374689388766215690919583821737705134067230783701693193676688567007048360729558469157319519052606405323738744493745334477270887442897154227229317774033349967474053686494786224990959600315118449752814613844750284696310868534414420211589860699062234319920677062993030925804841395070317690542682353432328516812293796931478124333584596703542125754128080489565064797255857793998888087544267807824801481134402916032548658194582976691646762499759382024739909716705835296853090583629741363633399930774255706764279923679048800752276921254643901759689774883046809917136463120095688394969722210537511902878594726109662486732391821283840570093721354298949616042434192112861126106114002157952333259117969030087653496693197676201414827792775774918731696845088745866889638988944481371601494102911014891034686640531187151150065343225721745455999991003036551746908703351961938228113952396375964782580086129027428610734928879722939159686125685638974692746586769997995238745695519547282211537091544009617535926664535053164061898352373833867247888129196217089203991269025392662465282183193479745300157975517786540352576968439557701024630705351123721173188930350596885451293224389220013729643665793084215995738339027685274887648536846631427899797391864838148460431422010251208077451430552932138783076071835332831338965063925557604784617846778851374243862121052046350269523486220494404446129075016129102212518463881435114053798239240794094328787328462730969530810054162634300781362732811194662329401513729226142862445003105304310501876957713885153653709722343916339152095367648880411759442826481641903242203493123823446610051638510467401786171013989226458597851087043406016665498733543078100340823567211583915742446317111494826148696933526618318368617799579674432844849657894022158938599497062470730564264610822798027780554545530409659204544775249249378254688357276857872932276385077057827823095450561618631572597953037302963642977673557976172522410662311931146887655577675771143875637095283613379275999894370633708264554055508797982618023456924605132936670901328590321220506156317904246307642146609393919020765745872371588995075345718436774435259547156134504482001385373006849845853913134032242633060290879722899615662052403834283815542147145981414570658575639589976377633193037507236026673364113628844760431788368198396998409271138355939085143249339926031349820019086753805131228913531972750202459638041825324394138478406194737087230476729798239250914783853442660080728853544645611632844985376305627634731125249963207213346929652510053491325083234114205445708951930189205485440169927442006459701661708312309343435324879557862979590497784018952589818371511666877641541577065798980633513918740646638894904769221566779075424553828573091045675884224364519700554207538321717642850106049716614399784051886936339833860218897584926180611439710053279174547452495505885119538712509047023583596617187584985197783833182517636964541551432440839904126988989252600793491550134323407311147171683113922762467953294762090501653744465893679239840782489466653023705624840363873894910398320339014264310648439422908172601058427840358435295605079194688903087320074805799421921517074141200136498519102737385366608801383684282038581800998075853400505917078125184768529852692521638811966410672599674841439627138269540611964041796439046782593618777721263434602245069702321379149491780501755546686186422371665830513428406253990090632398750797131185040012341785652609294149828725502816157372023860361836729659359079183007747455370326213837099872066829516039250099079934133591539855931850039600299804459131270413483884764642205645305328955935719231416046973186640322755839953395761674097809381954997273731574941700447798284084623832250277173000436578353932783212980214471249344952273304927450981019828882845741832608840754369032418556503486682581780577848562973431636175831620284268056922902795832749685820707167861960981969388576678921372176473151938811495626161874781522501296786767059588223064873744695116189421429045762657581514851330334901213285497520179992482031999520871009723941427255841199621631704918127410154252309360385417389048659390580584184972254276942663082722516577382553106161142591551271538011456064771949591000133909173096910390716026728237738120866198632256777676512329930012333866898373442959229386344950472381837538110421614489014459124020028797715288152377131800291617318339859337694696621781880102485518030839874054358574725380948677992532664962583065788557776375574337790294924841661122998115214217376149598680401995498100383140152790608444495018666641004775205629662347282318984516431193868816191869497721827128265022974419162359715679830320503537091980488821845647355391601674707750433375485477644732761687921778545226976084282197097810032686388682184603945481205512252872486299272695900577598499535426774643425418774933696683787395494340099293936671813949124409138401064305409669374768415852563939388237321004657500136652898945546003816078357407865079093506049563669024462665504236996535468597055461589442255226182944277121437227466264507267056333110373174667543423338861223108844831027713105666551940570661216758628861182844552782338545392587160768891160059187575553784625665121323955861653508899180833247702628556831581356586408787497291718222278914567026248041228698155450801741401299718464732836655920010382795017092393559316456843022925048731902607146210503123991243819485564732897470235487973172851219478746444021162652884646541157015741512991878507547404912193731672606279039619647086132855152493459267313097334890789831848379113354473258491782174712734065968862918136412731591897250451654610529625327893803319014987555298844412527801709069577471274118997973197500438223721248461919193457013893109653787037197314491375877002986063320997661162587877257135368934650788124071729207698923604367144210692327879549888954606335759549373695082186552736568774526395546920914837274025114287133871774468589377702602398264432865505251813726214411827800779246950479813139292089761126667395898033235044093846600730884865344752152113155321890624599922200326003420193952049783991230222378323867488744685367006317110302081034827653222782510970777985129322984626311235546332243858581810657033426530892308952074330363007692004054631364781872371037912485986350532434178067903298422655597501617738122022093940519490276547025661382160902720212313373777106615287195887296551503605804054767067167843433167595142669377546832693437821565052687562680234443642460274870420455251832471494855341756153348495432229544127662921057466427276130851394949378961492844754113337035757499893164858178377437140077363180762129496963862265973256400862072025307664037575731528077789937114391321697429767881600279895293864220601487574081242210479589515129991241428871027910989824832580409698291530850068183224786542197285156743005746594141508193290193950268354982224673558097615529844493228999206432301507350005716098806880425520006349482267592865795384853332187672096244784135247374542561513979394548824425695540893096554524645978390409276916919920432868499554369765675584679342035126482102575392792718091515003924030909435365699003427876137080544255450402199312860900780062842129978789090896120924044732471362696432614396765467980533463915721457321070959675715035942752038686801907431104574681887292893710962890077138890907349795284799235692455263667330861722761205177084390252476918858912871107622863281620782018750921271474937102903619644930591011508579348743499332438698932972407982324459200525516405397745521986846881649317824552859271868940859863723015116892251746140846668343345172451978024099261598071750562565680051196333597560966571044896130240067034112911222946414323204992834822178949475655117726683400561361877529307315750041977619648828196306879556869006664235539056564311843522745989081436040397741441986554236897903696453529500898668477728520404817461606994692244661977824854775155855029317136447045905504658040248837670812240156611593749543133838078573521755530608281465670025650014482928228923309218561002595014849206041052064201695675835634810768538786339570255060482275453851553190160592067703781971899033394027811554876695066282955256659856765998270121200695877679316191727116758011838323372271908348352389181824113397939939168992835059259296850045930679467805254932654320420727417824444678866513055737894900240505855458131931316630328851570940025811407281004059317762254061509002350098208941943304903802608728595508486844939732022522443040529905891882998447074970253080068150988238500218891282227911026608669140507834490639824846776500431445053787894490548349152884589198351739080106771016952829863733783006272530567513956563989355753908212668889605487365239487496306447464284608406679180286867174007212641974617497524781899218938480685090744408042621094715143721423667926678916890748349174581750304199598082558846392915438037579911105849039229821301627194928517112322234851833467826366413391852294864443345954496117883814300290234241205876362652379302887758249634654482681395953737091484559973244362844103464820915040758670590691976583117664621507015861904984152932634875103037452160938971034989023919287809263577180811064538663301898623159361885816305560038464727517199865485835310118800111850704552670041107525871868616545203556979713313662404977448432396224685120410766583480328786031470023687142466551557744181921487403208428765427729180946851446089947862842657345333728054703208436422032738810613849246179049084426240431171723546202804944036630284203242942164018460663571033658997184413734972712300362575679294988921563507335677033011364111540149883588504361185035379748946398180864239901726888284885667368291084520783982780395735973480279941438108108260219440235979568947268718749742757117397688293470995603642488317763023379588159006346714887200024115629054750312064117521105740227613246363720056276645276389675498845766765234456958444341674397492636213881700169195235597496860246989485489269015858996518868112938461282168445629616422744031953535025961492002897519831958239306598159969395243928404048448702509302857479827563101719949325691990177940218816103902842688061968576140820808502056925702349999686598199717565949820293352238192067999131166457212494664592594228495477208309652808073958239827245572669589926390207660267191837017636091437116664912959751837300970512694675629264864814544107515401731661525484807773282987337867625808081199739549119256423857384373652755916900310379971822028521214645157902547376833953981627388142317461557200857393755599747454340639194238487145510951975334195987921383012389456607316552905013658898849841369856154675486368948541092426935257714833705311876647059529261283940434517883599491517710262188462743923511425379018659119779138112270204306678993466231723982458379239130718833286196024621543133780114948452368488778917693836011992028135258638619597079233675916899635516629797229334725705417590633937685843545784708798465235831657380553987783632524222102529490574603364461571190122075938038414976250992146586563752334241065658203173051635719530617021364959374676110359208824185791077156899615488253485421222850347342767656639762158793605455557110803737684365547342608032359241105818202620393030571153561007461375771936033790896954580515050050277299574357952417437889505210851987389515642206788506944374229379751484860402476129054913698819926246101596054517578149183772845414721342586666424685896812663005834396533777621057333960665868681859201362913504867492212464022712450267562249392384882974848837518824066121048728420971374084246938555463914456310212614960574971869387535354385681495217889911867178351219520759042491812073189889556899852126278703338522217073644888801907287469251838991357317321738083226529776767805901467061636205940360220544081995088806913929867611246374070621116337558311624225174292423983788742182126833885024746069208674301455221184366622580471382763750642768820876425143852909336506740614656071881799895187353884507046758359599319949331743817786656050926027089325109494019448663070880178165315636728847406648547190850978648334794373415509132966778673706343518077536437159191678718610629425484234411608840059876572552476795358703832780098122988783840733468496788018530923460952718331836388133574437845660746955480453288789325178956469034059672258933456521857920922171294209410515085593485639003813635647673223874618696028949865889285788707763360978784041572163885947426480468670908071379689587373382225080103249743202269701681557517396972580866161674176803092028524048503565049826928121947975183718198882542437820971664627265884491181097166905651802653194378378772004776554331754549466701855016934208687385935492756397848884118338641053026910010667494702264405617231225237664024925085959488215912941987935012235425182825485092238275053590048451771875828225760515368411811027605535625400057335862136668709486543527467840971071191384239798942836695659625107305918975970356490819955022650635220663701002508373153873428773190232825067742347273693316084077232001400255866718051077273078927771859238119023534069718409028507266794185221044898831335554858166598935890017184782170670093166880324742821242516762964513889939523553902766086976969438684178214636107969946892677447193144229958307848173707794615384057801138718172638390387701942287397271817180811001415028719070539876032383025099356593226392661859716026614642621664772870549105695736728838739253967462338541130019764063916716015072440184871654896618967946558006698104075648373826622845956905661044721331398222733289416568882944744970516901469614835866543651697612450802229717844353889784487686309454236413576270317585026431236114612675260603519169501951766042118783961708412711451152607301609064860102347270421588632450606307318383396769608154689368167158540499800178532028317725630342146708106210008196291820421040747654729698966509419327094571880306729797055162824797199614949828399676124568959453559602013980631570744260577590374358785105617932164547072234593305620106178095795051586225363246617167664053527413514433264567507923486028930084921225068324696974913635813594027237856269276175314336916345458140562056040930415150163683263914627925843851946248331775232454110082052079639234869399322093680368817817719476840084909738411712802813492860489128769102929996075781223312140351137032210040509398410645081833833994668783770406127233013372202258459796322145048265194223888377207412938989688330673240017834451883785257282679484191457135188760214439741388367980979199152574660802876945116364870045962053265832083284817289650244077368043530409333360958439103795497314456024661049985003039906886897110818699324567049376367723758857603527847041894136402180615237916616714747522069866202873077810230732811614728967976507203147067722127161967254128516070989965361039643277279346438628946341574284337794718152696698149947597637688974369125243141598961768060549979145663325181249475908220472456843124447500000584755330861463257018079825304205271498587557032679393817969691900431736896482749519222759404825821443383429562671322854535155968821576889217752705869036062965286930309277613893570886271418952323475566886603905802801097257806975315251644630397303259466503669461652343453038735380471450748600149610396433085484843579663065744462849103512863812686247771148542767119286964309376890141888212849707306542633880113076138016902197878168899494634226198025880418723089447849182300271177079724725163301274917931191441811493003689861289264687475416335851907531378427511089995484102118967888274403642156830287902427793342764525437820783109774475235011153589482105916968955439733745832070254817126874018281437973005193084043074414448182001923841788989476790883030401658125040384168833800171103125058010704568278855211815631996592720879266915915366947796825220281351249018838377364824142819976785531712492559512695537571036834851420093940030735550475439621613403043399037786587410197795285707438136201045471575719720351922495713091781526838442639873666782687534951639187544568546330141246787378163170849140010116601198207761612317318963556759439686965416598838684856731629260752526055107122705366180336151349854804848082624212943043757966914431315681315902861965507781574368887484387650061711086036887175743209385744271742206335215286731166505114715706393551100974899595032237424497936516536817982485339368913396873751524954442153517796844420686799449457568484285934071324908875615749009293323662291169962250159371239574924840937377215148494023946190995137351794901661880343507264496585801578722446879248257849385295172457994506230271544387109624545599779032837900622749788246168550054956954165370026114784166499051549736751816246410625727543975779821252533597085067098467925352492482808847601767159988809359453057810229429545445106507178988226023472086911820769066397493099474715516956536850342615762447151285679885930918746700899482433833753699859633031723596935841165202132156432675334714857991932633948625373105129060221713706671283865808546980615741107682689368537942428280521210345293774192842919553839782248115700242921488532403074334550625481527734540966433841964052264708301739484974320997327871378838283232910253781981799312004276745921827451498767887513020502805623082535060197113205163694698059354476056072764442885877732104480182043811455166938213581124021415581786431766235320670027861687161036650719587872737697376321095245755138947703403448812830829119924796583112255511282219504518252922860848800993410511457651847726933662441205152825384474337847663872096543624319901221738211172410277861751921180673737023586735116489257665819878224354627797411872953741881215815344579144144062044054431733313679040475144640406148220833471802952279937089732837469532368938951159887205708197516198316813061694502594505672458130321550380466919774505638475768441438405662241899134172642840875102101982185219003761636544457252375803073781895804599146852841490118722856157109042460548892191259123446094060102834567025129909537755439519895685339259037034108721608676859280747495109871164297085142168276267999599852433417774542316102475651882375340805442170664409352904294612844188201402118718965030552744397377734061369203427361931841332581119591294551762418042392277495522481652526139724652812725471360400309120763417443846818464189433619161312655298078800185928614413424305296325076090278090141919254066580062663677937829645030069293979985505950360756184306996493950237543386070438175017890872248116794816741709266043407393303113762195787305099490171945844610227130938870327502068505380082859845360383612812395352744961504150907362407459113521563172776375783172086723142437680387014695692964023021863825141525112138630125633042825337092987400688732227415265814676969789904832574419141979835011490799919413720573399854270222482757523375000060127201129886194957336876267728482029188778204459162983656066991761908030157024970970311486870443722270077976859712645319457510563979164324711222887669841414932204332572902589084827034407932192162025130073134349186790396941755558282083162618878002726752888700929787100491919551446321205409340405822362413301139002449444024383376967217202990272180980593618935750010906462533630002160609793563964675989998465675057814300406387640798651003304743776677481960338460875010192048808724366275922473590477639498658142709420534399502618008125305715620038692051171927249723563944134547362548975836340624120456933289086055301053502777252545131550240496447997734574234546707860747300370489972409479359429902091458227602811080785756183804328932574706797113077246020956250136575026434209098320139563370167933852021640803510891444056201704084456878393520849585613254843829580976721445777455734306257174391856071781615514853659421528652461805586147211443349035697783165581406831256702482707121841324085274933293799641408615095039789814267999856162062618717724147884456764385281137298338506586561845988813200019961601986896986493570146259176775302336080039419583768112408679563280195317429567189325725848886776640368259919977744104242896015699624458368965979144698750874724587261096797609006631588663640733431366545785994625256772530216090904629043601640847915632040425443182255109176287409170450341617505976361772669622078048990661365820941918528455113945005923258666360108548302712232341822246303144064577478159433598509544941458161880561973470333352849463477355224624791832976480606589166017366826904359294430414700151585604974519959087245344477302742509848472076761089151247093406564662188444658902597526008460262020491418388831327046716794638767543939467841686449707229017769308019520334304632637457532773894936832198749507717654278258742395877537808212662523364305826015000235913328646317752605107865195999915967081219525106467800490352373731072050433868955846943551670927872292604672362473530500705330598743575618952592929429241559848683880478193894634943709671291509357588620409892300092008822178081193127538361041575602263603506062439683094470782657429886236154942616132085157323584751263257053417726196254364565528210886922397712198567223758318385840654645654966909372805576236061126376927836143472413629511532455153124330353631943220172724587970282013903986296314661787349071188388314981075310417953238771608673978501377268314817854856701876233818248952111567782078526973104250424401737068889057715274540298635337638282429083576342116027230557122208892368708780520264382711342300232967269766497601854292009330302283953425558091918890698238263615362025415443177979571374148263790586711461304247526984740480267316651318865382863723532592745683482649656141158935910600326513347075484232871747437333373425390535675257735211125204654700771268667526625729028718512097844165319215899808356552607045640557006466170410128918247662168028063627234822822517843719230759837903199798891937257667414723211324597633654520153558030946141419652112105161962471110438018671634374176366239495502602907977027100290838105591360805766566085077884515888727659289246517803871161755021942328479011040577219575612798702335423166825677211201726608624504193182330050397980182628007885618692300374247669994010611262044320711335158981657993700020780722638251564143901158278408405039418327867696654035645160458287682742660359876389491841782119333775692800922243809751759074294802594357573401716694579750442199866656493242936594301761031514584866014448707928084387463272866989795604758954438818669475499502122190405928182989080079571454690748923933904319094449719140210100953207729182817728840595439024892052655645284250311105511610887056559839576494269532038085081931825797002151034616070883239935169401970091644628457603672496478876441792318215223593860787831182288500032340141388158896040714158030489857841892017249033242778743040581489487168704340126867631772436373152051996073991172349849936299154702000560724161180012021983236981360168012373497656928103128491614804003238018109894008825674878667723786521319313523281423532414242497032869007109511035460424418915202588154961690209028410022890014518762267161185007987592370941282452882836657670860769763082636644872307832681904368952795271323161168309355588347636166178724055789192084259115512881842790680909138642404007765488272892057200903692996997715848934704438049440823533224596335372174281037853573042000988458791342622515723443236382119776943846862218940152688659878972472516792773181060444691440576799635343324947432277360483584105395909439718132705906476108026151215500045565506115189784359677827768568888019984790535962523724189729904139346589087813048903515980960896707636530132468800067003832161705351685527414996877969919675114588305564370509511929829413081580993370494223125509829278633376917906882359406536571998859251286516517393496621166592185598036121277160170832157271900274260398942162100525957553912119944397974851766577769538284125165275944200982745368858776236178823690136453146202559281009883475120976978581777789142947534538207334608608867008387445314245392850975316081518223960708743278813700716156983333313983740804329580933541649280807267240333637254250949421713761315849482862156838506114496562202709738114142075474971259532034160569576804090164330443593018059379910523861533778727617206075909243157396076755594997803841282869548913685342988002472914764674533113175669617328789611996717902881486628737283273341726779164624887348667814977140391098837978187033273859093630231000055848358242136575857719784353565895147610526292396189223813475688161140246077979649565940324754306046932671055549162150715093586877323483780836878133781962549411012628407295436419541886073673295891489016025033406397994617778397719550710725317595347779778616932207338930766967271141176628158551858614145271671595064952615969269344739758970687392288815297515742935606290650942445444101631621283227830581446255150729745921894159838039435034004723303642863111818346487257839901342521403173033834422746307221293148403990041728436478897622967917319793965844446553133446191812561300828551008013637291702750298614934917594090256611958736636143695529503375767008168948839630523412986363500840590035474729975520968159406367538372120905030407025162611606036751520564929480940908724986909101907375240416455275920606391378042390537890101501406544030850719511959683174362196810091459027716018527439533691363808412193768552050641829649380370843894348587756797166066434656826984636876991915160139677141368661089553627468384079943347909903083792699341124180456672645460337770326441918984931043297921827487564454653090112542272662182537328183553754084391756828955373761850930860892222079519441075226789704023091404823427545018272543769188799086648766188971290778484995229927934561701494764160706104367255749423871504437188283928878491995225502702124682753512274097509086141942435794585361422336233664577891122078140725550830888215015765885452449852447485844974626614688432102376895952616639704001912119392254256826517871706868839362428005864078511302726718499763421293019883239751289367508454202238121275596233542403020637880235586156331667576609731339967158674148148082857855588257138471623238241194496448599115899419973726143422530568176749048608917874468047683190761509095812054462882799913488380223780607078007316672832294675881435173803546690472122107335938847239101289705085026543062979128052900246683435720440426979291176483456935041350800861632502731388757886167820630583230771168478343962478176784560841504441582077108089796580514985717919491351901038338459464615930710816536308266368285002562282155299582724781922017452084358165723639287618394184603787046094753104600455743599790684514833882684303535807960093705907736995145740202494317528429688620391681400249852597722661914862802563851614826801777929202445842885975923648270956456868914745031066169144776445705297723195956587879316481432481076208009707911116208204244615384463919953384000388091843512075986940527477135893568778377623443786601464626774132401858828000134552769949651804729552718447414563760810540965231981010050990401618780047766863105292968859212831938897515366458049802219841795063835821594699849902801504041857416504822254667186620200166383745428858249195633396072905691821943059357981473676316205587756385149880988877223268694187978479405446605789944018839747554291783908690863576257696381581035944536144994801635980427308957890696892185397837015822565363641219117209116001243848753961585511955633205524924216560728432803886500818454084579456913723223663189948225671782592621697696102001991487516202714052716099503358552022241979887615160360806684585703383144532884361683721092961111714959192744881169729955191021501840167733916085660091388842265675889524951324145522972684341710575826700952372009155867757170913750683233871898279677452703435403730219853970008770201375221032939068938516885412025095353133642742194942355624739559896211355019246862996726774472810064638901642835511555972749902711086039747495871922973003825944697643505456597295492161752845596523661215652214797077955536715771149909222070622817000117375625303751464232501913256927434084604460566869349382310880125951055076483216182185297480669214117940985597980644062310831829090329930720085454034894598234717673562148315353980926695155872580103119138113912001051794736509226852986097234195130988385851941513042751544022621541025803472201477509580945531987044185284624962793821567299508146675936423489948193988615653087211392002726047209517599211030504519895750823400256186948174371357244806495145735154152887910495510972817143364875593479389817425812226891306748960001832669741839621676748219876477745809012165974947822119496317463136157091845908482645638934917833377502773794258862448955160229646356521172962892044102984236736471509888432611317573236078071072512346658109753732804591423107724564391567143184331514280900249200992164968766037587892597995473830165471555082368057215919992703198111134400286677219969381535833507607088128757658461607944015909672987296023380787394508699935951923900245528245642739354635910050895199301653582653780995479668500563741371676341149582312176356413671957719211885120803307786722803461614922257759429572215397797240452372134843315655455024586807211318781733837843309038723207980414673759831418900559022932228410907881634320977385309674863879716682928685464550975253392080514275064597135863039525163860057331841139089496154855929567515844779872009041654594393655755601413981851332043917457300470668502404752966356076659209316299312833029831311581671908517903876424616745473276700856226522937022109570656782958018719703479279390576235877860199765963985354095752982598272709293873824316105587219794104176236628648307775938559697468517605880272266666398244322155554441684821667679899399098429323131670689791047111815577267927852537222780109111662829301059497500029256947030806808291343101843482601685319382694247458554446969745294216694123419036970170688447282122204394199038200442950809401879377743760409664105605601655403751630959224010800057805235215212646686285808163255026594010000317245715768649425224383391286350831169462874640626972844951673918996074167383434863909042876235124832016753083846451760079977567796711096221317006196238401536479997776650853442652477589730105133648939156870551068803663428932273209125736767614294033751713651944908789923603153900811146090530554499288828329000812519005698653507056260809681551269025627699819797737403050737028629865930897610947126011750831642747190696390865227105348573827703322424070565499948608236394273833487204990536302048580135869589514917824591361602554986169072652566199398614009175975554008435808661485246589192397740977160331878264178688315914747807097431706838177706798810867502592131540773280783009023701883386493942675885265598789666785919638682159618353909196729697855251774603047265847921960088536167614857869268456402141708865770314183338147087374577794562007885030181993287521288308443985383004360437988894675548400818357168246694274113400622018150184802173994396471189020093953315558178743377158027354451669795671978734070447930411819837834673273241698556502571292653626596418851871386001097317960774690446579330597209817812737269752637115609915556550081753764566850940410409528793431082617810346055246978252910774342066586235548353367447959951981975037213459778398644757327024185800563039148237456458599819652347561043453117753926378082149491701432556558027954844171469836792234866568799625685667086705450276033802069645690957906978413817779651087986181789951415143363317512922063457187189214063679731341815356978476762555765874373374112062069435269836411513945997758996960691592064291622531032867390360102656362915413933751533345244807183341231017472890491420977952787497376156868222424724290592587988474717737799053723383523003175153795344426139186991776962357538783478660653262295746529774953747623779115956659490636311976918915352521005959063465058065397054113160354539283621774031661175039690813151180582966718088764730332889680249774412345471620450537444018385867577165609715558337662043454898839095215296600485562252656628405501358228252523427456579521777633509719692893142759015213561897881716302803488543803356762917841558130577911143128045191644477595111489217842931789270946015180192059385913343889021654754661313320987552832535645407204375211612007205368309872549821985260989935825339797886247757068649782622211049711759250233350237000640709333599814835237406056973891619028121749366482811703830880836226973202162481129039167569740763610486106615385849703017139279395842961558868625584144948224814615785621595724472298045191237644921695313096549448762779771793861590923798332322996821244486893231957004151134164549091766838178109831955532619650981877053733285448092201452335247202401616240159418297151358866813958300097376399920900144867807690191222573030233903857218737243038042003184329294201824005404986366125007167044308536844357917651127550725867269939305808034107307191972244059422747931740445323593741316139970484122659685450207643784526626889549352751176156256998793663220672640273366420895388079649237938830362126720539928665114910485877277245167553323365593654088829603525408403716904564387999201364095777242334662942033551934124135252354383770875941876765727600359863011386528849321769143305493209892784194404265173206561762291313279258997067040211832814719878220503812337125617884603555568022783947309710649810077136744949783868983214787823427368375217106363519776305112741924138861256787663600845342469425691145126175787362001806785152290748391483474186536673062559997887439441531004658746224021657569094972823159998726590436664539157527196443561472637839159079580804422141074587784400646620536557987478096217382875934353130320628001219703574482021499352158472296010318921246162756437374526917051570199615440688292192419511564424881170619654522493896633613506731212937994253325916112443865905105793573918417407574231094745491582673829020684346898148311638135606610736555449004862183437199856540737850798326162874706157691757192900981286938758673537962049853903644151054031099441315779370644498135863190382843261491921073849716646953881540892324993993000633716413314356713455383532619877905771640731606301946369254663155610564666117495177104484342174571065988707460408493113786326243276608996430783438156389036776674717841570762679687194446911954279236699427306180845184178778885070073102300931113989567673294711910266705465077927614041834512806701375989674397790026888892977873836562696539490696315677544742143242253856848172469811942778799880800419435450360625549587290645790152390817146036809152159316505890985370967032737324593794453482928910919248085706484240373944325024651557623361835199016278804544189330185973159214221472744709930434731044299346941301125238014216167590801788170120646799539358234807209889714308927343879477913736538998310632500900845383290040537345333408769016897169169174528438683430014626915339719894367683534863030507698683084164707866021965013438805108375872779651908953336047410310906788557493792729560003115165210661816155892371020459427840796622679446810098672569649422257755739971165162211853693448645956079293123609522107955175682350758489356823093631665755493713083814552899349996939141011866272846119309060584391446138479366187176396445996342845248658730401159843058711127896254669421824623888609957987247319879070576835571562683386383844956849029533825134465298198900667081777032800419209289812798980023854646922389911160988862432928248029256366604711661172501699342476590666096230278844042732393198859745230510319558204947433259985386082668802215037656616361672372487271133069423388169792686719010629662247635484874822064066193932867642016157684414539860385838749300349942375785125330323966634407679125700672785769602658852521264435718864772888245309104589161217810664784217075042712133318027941159640814618481944848014082382650956308775373063177191735154175342874704400222790471079320730838313863062483479420138056438120740680792258504458382220512154652273408246111379880906655377163898980817050194875877307371315536770124145478326705242039602720895266041351443704012934487557962866888391616618103339741951509988338605378264826283387212570259468893777609819479212191150085529064410527239856827603739883389255729090199766054135610194163373948456298847889136538679360192705189440687230449805494841597152988959313590258885252727927270070060651557679079401392996816684272515358295281382612513246265220214028704939544882566038455467685872024127445912230752366311529144931865669552605341466904244646764913565260520538996036485062452260713729396919911147564176426419732903615359708994147710687872295761034844896749825680156366360427763540671281792373472377449962063420003518910597592646192237307018716802289796735705478096033963019852379551820378486826346813456999519899665193089730696748093632159124208254142419541057099351399154845935420807146299715147959446289067637099592735859981949021819921845517482954135948941229845015145413767261923708327656958224209211605590515915385950640957041647744850546953338911190022998682170286181518147419682305916807195395487899915298019595118358270363761861123603824468108984248620952263208854677165731623266372191861341853881505493998896449225815353577141468478283873031254432828610960737597885399810975151638045849533351852980205553013722993924038437789388881658536626946511587024152168897115520517498222723872336021728745865447649518961892454068860356788966807129442145983277462758322384687326354149840609704957964572098408474192790243914928675775107194083374638660504107657876188808200925543244739057745761218153805350645438865164050605137276949406857599794432292747613855503481825048693037052923808467176962980960040060304199782225165371113930027810857105529145440621309271696408210162413851146291141406838411848563840642859266812587507763699589750288529477324739600554218803613314730483259442095715948084473312980808314058114395436349771609155768602935183763715044843683556246901889452238011818486400373264608739047091089645482151472230012005925486358377630740752586112419462094532567421982750290681673729173566280226899372868542358313968087681108239823346663345141713337679515337247038746175221158144603123559045274526338377481983271005560571194655056884539814653825027291047910539562276581971209808217168618904489368060908705159573541087443409717697519129975690777490523913861331684734719729637918869951437577587869879896586073275473115268348399344852172030316246079324044379347384224587098835095903113624324897814118080253113553356059358852390370687718129992563648758781494510323455693681993201186052520388393074977946871999678644103096238371069635709917306537150506601814097076629645790464964146934344770338983164645454727944254883275698896405631419413036436763713189156294321021980728058248301850912879736136523666028819660730282534711232113614237083306866522442543939632656532231433139236558350663215932519325535035259519259552512626813041363083732476279802400475377535790924404863442327966490633587637174441082269930011404793060826687669621546732688207864045703016136982621040635169660806803380536800894236165007419850857696463448955477033086631268794752819483720005767792985965305032656861527560521284509786570043484836610061902677245472521440226012814608291005907466284971814761781202807696115514397490685341589247790447040696413041616961231097173310339439423775531165814143005541853193982180779506266004244673142056349915095079377700782442103008976238332439593939764052988435259765231967049967840674562602740371859038649264373763042363308636428218872100982388084263553560572245039260811505148181443049797502633393552724982893579487317725780486871377215231237678531968691501046947312486529661062889455099423379712174820925288163116923087003730250072335685498536942169034225967687159848099394372238716382930116367820594659050976885913304488262966800301804535840693353893526197485094001772800995952713242929067392755031571421771119012147025279416659781002728062178611368301616370934438864048882481792623169523806290384803415680550519822525839712777077257519282427053265761183227864977015591263668693336632661778384590873227569204429487746355695544723032514180852199611963393408430082109487777023227319376846816883927583755077961979632923825247886813207428688278618496270483398709298278125046345884623180600060397261627875356624717688126665602734316885915700263825678004107520461264779976840216700979178010885817820084694639222469776838223438836679803687156663226915935790235644137546991240355637943773581340894210007427672234781752832012683051583226260932111220335688045370974361442081854710457530391006432099043112657922524040807860497796325446980986065808480772618021741988252619418111958003463032958076475545899134309463691310371862403679571707072790999391662616230886514423420830779553081640253632946613148469601772578225792759527563207172760782987291331115016268500603954564027615971282935396227580645571373462751550282401573395587595972785639552190031983136832346886100685029442296150608777005791334379613729982819328342858407065321981640797400453151747755437574150009958608590003242369795882081916362133729069194427326912460719504955289838255683732684147006349481996178597145403041507494210426534017945999434976650486975866492493292851021980300424114478789012513466346772786054732274090104683498019132591390297717595536879382469539743216947583503853998200165651403287433272133765662923215623887570082850119761398064199881149358249982642688014970508405129246251900902849990780731423393534782539026765932414999631869617737541004877912670508353307128937389559310761830793765066150049670603282656722805971516982924388086525327295694475178758390617195320690075872186317475012637487491641242314264030828730274049127698895628086919822977804156245320187838379010450779843358289070039195357532179833009951683797813475765369955849653497519314977310269518936905465863391262493692470091988834887167548567210584959808574900528095799067590113855218375697545189676713790569280053158758168831862034435133072106032572502362266448477365717975157776266621526551852450728911226454642047191155774526369051294915956391086738654839604002751293639503906588093858470236552441341358132780952818500157846011600002297514763331964428883285791777124078395584633830449826381686229127612309198058284152919959245832180478916984331658900551122603017839927079227190220475383547989650795884860445987054558969852781790141056625469119718084535317936514599295967647863631169216439632905212941541789123409709853916304802869284002460861912096148684860648590224507172412132251128179088867771344630167985404118876994898501655959205135818275496438300439010940923285801726565769225795188443559639852231443621931734580183931115115991014980176532903277234695038175207552904666099546878060078230956526920892327310596487829405594041970001671556157426937950366209594299228492055483709381436256731256699482064404402980921954097839978397795965918499848820081214392099383787232037997528307589054421109608314172735653686050503403690045464476215878269397747246252844849324767349296446150577009028639298587950065046986488954875921129144410864308671917638459985412558462819201296548931030717786885922975880754140937424928441118323307534758845334030453401358448031082470408966497210381310807161307421267080183482552519187777159390789086173697957537818874801948047702307977899250678659898797336883718183878383950827346645954057832480233208444358194669631606487789395449442432174653801112024676283286463272477895180708582459863273343651976028904851459215911211600812470391873366268007999529012905172522546004017605431370971695364128352645317258197818979289946487410327115676835737839912471492684206901112967830496851163484971529503520458372633673284459233611024115116048337730467338358377537055455820795883120935432402257447100991187762845902877802300315335277180907060440731324689077143173054069812963871074020382714985692766834868727016027405719887597368022994827929308904153892507565758441554954876904842757291576179763143265527116086681102618401165327873194088494355314647037382983965731850056225327503512996654120704337778285947099680896209118128768954393214697773086601276946695608547344277050519299647462123177433205323426752051464781239911890387008664822927548428554458668713664723326946111365413595117855852909997579417108476971416817305074528069997953070795997788969264683432327319047206002414607674601894803853938687971293292224972616260163347332788272220290972595650489560532682762885461263390568732746874149660611794073630113102596436774248742027205521699255341944595963769691921672201799828523435947580218370872375193071167239188713674843968891058305109764233059088091201012249831022118649214986485723096191567396248438951044440677271027245664242812342255768890828714030598625041126474022615672716145589781936944203661050884598191307851016322727309809342645131632916219011038712987754676593636601779232980921795094586032025406259744876651202705093692520375837440563112269848468283978419948135969699026061861372750158475922576758474120079029543975640757701560418846449609577973003718426334974651614535448527233517891238594813972977179957809670043511019028814940113326861452983382939895373231210616444502404378855913023944000009447750228466144574221947101779854290166007419029672169006171521409061787539678544591400408122183827143285280680099552283991851269499776713937503628437247661897770122082945038068441667236100689734911328197927335127382775289804744479084251204337624849564083891655124307591845072483932455339550740190155785278793270957760874049326261404686404322553965918344181039643889689182470518997219253331118784130402069934095571179862137678488485135996655318311642493950618752285161489397139073014245604690057676668728367590348680744543493837133546502422612094344140378480240835348962035200027459865853820070435172449226272531222846176140508786998892692142906066285859846204463403871749231068819379346258386433736384556253385452222747207639360835304498887112151557065513763675329692324766984574863481591690866951434840526632364769333652281276709352706237771090274744498198115614894977688347244138208909962392515432925685872616470190324532577190038856862293820029126932632399040853639928128794693126928394608924174229885636410821673564810483227020738145325198030697393674199639646990862615235789966442187879278156769570001284391261243396611339797067427609041858546405163337151971602392977555057723159562061021848371094789637876050272715863668050305998862285775727099445392411046212476199807766018995613020268424451167108434758182514181623531986823806350087204950122864424012568138280868389563736181301791143943759985884626641778120654424182626601310779549948831332634519085057883866908031567337615826405520171975170737083023630568070910795988739016221964907322233991444179107436563671129224410606835336649844679174295374806266451223368182456360443723186407452968381721710707869916017953359061420985647568493803285461484087444101643370971692986199565424207952903122078386861158303008709227513689514037818248353743937855800912570580398532217599004408287002113716615968270331498440644300744010859174361711135667952745388430513208434316645048539264052082376899833102187943080859586855383348457193722178290861354942474136607765319954470741287064793429140682089765345095179215403138954200842628118200593813755305777241401452269381144469162338753437989953369868657246809011486261147994440772389730911819201754690413713964141861543803315618617392571163871802215340764465209842611995680475252962656592575457014452681618889602664540890363251974276827040583086058041922663750828311099883653208819247518383025509709609853598985842339833417088353588547265076050186577065102442075685219405813579558452980550365739486078774957620957080857538392292168277995382970096694444156711136794517038215046065848422678935181506535031795789206432399879322327001765972946016056995716095454311675111088348926470568034398784625128097794371780146380803983770908632568179554657627898968239144791501038643844543024339460864390364706567131101558625647738897329598953268907208214548759648488128936046418447435592331191874693859131204034781564347281810504116489924628424937679487772666988004816963503547391077634127675983405316863646032156492495429083405518485168954438842637217449763962791010240699336555722934211929623814095423896335445033258848470858385902780576378348734630928676214654804799108911822087079031368803908493512995040090690155331183958452017568106335937773463652423821505608998801177159810393684197037452036263804545795145903391918199744411452955786900988479074893547017160314905958157481778668832262582779279153440457911667707515753024650372691938029385917809590446370506573724644889042962703455090830211454246587956097301305005159877914131148828266180037099158068044706107936000678185839621704224193074152613737485203560701382337546559421569224657865784255365291351203299443709208122418385919819994828759268554950361378573266850511683627998716877670412723785676964282570820446752572987780993707636429347142901497838214425053083897062324127160531500617660292918628462386508442142696928738771001791817589193725112759475292805986803092095897569091353347198322266115636829817134264178410147601356975954227844216734627384040288319022759174417942566454834475103000268251120003892775597673993698195913167530624767936528652896788932765411781889189678512007250788271066856905280068090354582384085791800383242765568378933216154435915427636624333447703768169695808339794045547875644074463149220411742508030294444025328556083569007920932256760009709196781650570020439103073295939597812416566912017637255982816744181301631460213136192087386624115734524593805517328219332209999778217154341431559945530750534563084230907462923368995738373272725330515289495492589685101192183426927715952523457194361417982154732431392058222330830724044555280049339098362656127581459716234199170002778942526119965595473166053342317942491384845877990381480518547373821381007779379214493765153950622247733541213349961488611581729446692784465919669249077416206274337383954800465214049207371075157288678747230406806708005002275400984633243102177027357654884710745598286619302104080033875433498888597423297834033369150968849122359707818575925342731627328326672260848970749459181634884203485362084885534296290758959230736206295438077420961403970848524493288312901944276588086512585168404593356607644264793564550965876885793514666149745362374504281604606953656279096619836475764791037865934848390014616871156844517469030489528498305082723108352457761422404417137646975908968167512840421051450211271612757228692190598230276561313943128504115370190275466768909974067767428735184725034727583282301007135811516421931341828904574275178321855730577934277991471675459881477604751687160850851735171355813802934857057264824953420077862987269017263418768595254710005906438577452618072246081293307511933681616575476302050442544722868820673689948204013819558853564889447858141751642355111640066408984194308061343648261053010587016977799901655664123407714540873021274341914431013165808929636408873935223734590111423416494928508389159918752603762784209993422459578271084444611028359986531006760144475710685884191817130404771766899811015466281543634044056223385858840574566655685700405642659697868557064199975754984965883347170543307535767968095431764990243441386760158208548255407360325110634674139682965857260018675247310829246197549384802308858461666875525365730121595128400449291592282945999976610094017366027506257596687679979062684887196664578649046279027534602837214651957734726669579471979085313356203506999206055133935075104719054963871961012529116530831511655289535583091361768729452600985912780662796897052309445669740733092529601094472357829916782033310919963069297580805045604182640140583168000358043418184649972570037978522007675802404851022258295287225367501038739120589088327646228478135326506772635734127125727371793532709427351844665086145223337643623305725878079867838288471393604470345406876985234117922180373135424371843108411017219811959852890785359608390964678255494055762830619996983455204279679998587731368977319105599491842004636420156787352397159719198623600518589719567807578060808307427177632165082683743835163172451052727484812558276707561139562359151825980368392296977958421959304947734581585081320840702192773254226196137931300765486151541341744976833724136858047409765763582810802261755872444744031374025676964151084940628008841345704368091639913030600806174568488472111180928598697503036925865021694683103864966513340414035669840138505742079022382675283174826781954928491624177594821816021846190661002369641490356972534007698597137909185000471280848829088831795936828213502936435596741510924115809815454098193596030537168960876809982759516733377620496246812180994447429195552812587133864373602571071829557444375421953070115269432037597528997884148575997346829128823472158147092557635753493491210514688531624985105689554429013003861174652611437704624141883271951382077544560111652207733545884562290051607510556436683620672334221391748911441714620612055962642822444575912683757250021755856846670303560746782472171405889158649732782714996996816480012600738367905696900533342364017231624171853817220552861662551727442885397044967688346727512329755825415432301694764439519871144418643212608723009930705289843876448149191252682965181647133943486425417724772439921864444142374157594599080644611364893949764426069555181126898266545434596766909623589456783760496114091089556804945630426579756153048768641882988063513578174349778749752633292008394481093753279531873613279474604634894763914673598451753092981931467623144343259078988452804716856688746632436926314500913520459315652852210039363783988856380773716131132649615116097605706694761257384515029478497916543757344449539261425921173782138302376566913154186978890107611042376440739533902438976413958513602991762820304773108118146974328490593275714872999774159822297643499402780256973837488341342446645717645978841466047793347310288216887035034573498833983874573880905551707911277068529420935225349425593007741653653388186920643879453007856243102145205601550089696910751649233612476679748940469729325575758108000217072063626420398469185279963317055826198570111046051772432343031938999283828405967597549532249513014351865646562418492179672857222053282554367424129849389038044819187610183499051387694459049841456093081304865008571341261406180809651617637698138693123973823938856305351182593176545120223516993276481938887541627330254504809603258634601841630542455980345323374316674557302803705254800806917786072125889571240592116908795857184052025523011044873644685769517378673045368921368192288779786120194615618847882649083742708521644221240326509201845792913667828396048509402181797818529555803676804490594374941590709119267133511998803279851530793362016555640475638521283603913809287938208083404606704807955252110764862324449126681322156119909043586409812256728335689320908750887785291993927146381158302054886972782533142000099450675577656948985308424009179560294909323937505622501817605924071819654425839116440339566952786849366864355905604805895568208868641009703186547574632811950895929687949222273698961869025572805997215307643508476526807812765565559512103116692830075763551787338689700483068565615613899983291147561981494610274774559170122916253915227534937001956061625420496184899558413273197558583352442143572713703588993356939968068104315393212645730819861541773909447735791507403831125328969094269225272276206679810238718958820813505276086204474982479565235427640667680930428647523492758397472047116062761681948610532518312762327213209764861217734317596852859867010814496636366391295233707888825271110662480083497140325766999733433946529080146554364897557604812439027600045075901534076178373431125221752426060503084335653923221012865092089146227747590748058019102750485297446940447691847224649843572143230488266200722356350639924114791247659242390684034333761266708535885997028539037901023538821256675166769446645576335721728576767708364265535530108793980264349046941191667028476402151612550405551283041121648137030364901572497390917347201127857855227563754456082731713038971266034795082604939088835821576360506191652668627625146381365697638520684440110852567123230050093255579869483770377157569572646687064919751134302489588388720455600134398678089310861073804902729087807791328084342800210172847002297516670562034393125459018487374251907505359934773266500366814474594140092145116909121153999863335650212401212153148737906254063971629770752106624414014755383358052342821569708435792400011640811370581177418365467026706323939675138176201186529675202445570133334570386326744692586928257146087462880027135830620324160937760072356323197858844546395922436946151240633841625885177164581777634935440893779111024811583360130988349945257535769647653484739423509648536668661712385501960298205026736616616868595622219899364060480487876148899352225895150564609949035047456361599218095614345043178991801354526660181537077636892540355333023950737872198400014889929274842489058824835532375770800407081923784168153007838141919680649197935507711076375258848519578140339749621055743325271748155765976895742371964746065787685674798915361282901886135531608739797165567045995684341808925655053596205075774486632311774768147140311293914710017716971857080894112160616313638587560405327790733264880566944005932766041466005475104692562761887571217683361209339721478102455377633005012232931938176958671824407073822441595325458552674056857262339185395577575460057893606986782943486764894471787753037028947618080325338958559084974059122309875052149083001938039054991910925529847176873017009132470153233347831084333302017842802724257367022684881169672360848586733426518566052735484591459101293802438737816279219775517797211335942284217503179088911821835835860456955651727188470404246535593806017554610530974489323728047046784084554995666199566258124155037207442349902364806298894191813154804408918360684776492715148607529250663452702570556698281217480820694253217264596157800240528087238417294186217872216822995871930368355043184066908729435722706351450457185895510721027647866774152399285836298530564271701080803556678018237010207956088257856015888197036499466532693498614231327245476906632367782748186496395115065018067643810371407801579835957503689497231859761399423969602694998221057066563018560810208113613474939406052265113724644008132883630266340844752777377020810693899425220472286825593417891550381276244213000395663303122340129905377677220939818362577691326237635593635466840229566782289136749218794996459338615358293891934522100079850276144675647469977404897520606642011017382620731332569936031710209377593913370620478710572193300421575552540152891480827196860097506826428861567878133136780242408856967071477807527527062825650322028933616126135518088941876094006834315671772762311391762219993330908439750052810122221138509383013021383964947460371127649847404432467549747741521434880948852885213893443710794462344535534627692670318907545821683955405935400150741505948079998049910684529007066573745854374641387448370114110464956687005645185359795138820619058309325101177996711136062194966081704383602771426187898782571208646658229270785556355602441946774703069773667967821012912664927037820821651680017032282063954279930908319784284761885881254492937077882051658747868546812452972308512318654952967183900284137817912587201979924758659542286389304041278506650393363202293446455219014166690945674135624351567204681297955339986858602767354407629971554679393730405985441709097154619304671144129663252097722698469136541752709565314643630949887155762043393224074754509119569194254977996576602062723459657812836467553815861902029427725610688410044841256739015086856207883480627420231624174111086221035949555123712496283347742136997193818333162568129248456079004644940978779051757266138681344512139740815247419763122374034812371923601559829568355754074880686263600458281758105152256710028457887558862043707874954495644760882885622963773271902592823980985151509001283961461184838987983937031251958722207801976103807145524930514210526884729309495403269889649994323137734279297296380983419152804041355374156767485135382157911503142441991483678744039608930720327248326455387361447699506587962041112426181160909509907481979145490495214337273479973006216081779886768510042801629160133761337263072496461693094320981042288076612151893106990790383904038609089161666753332537142660266038241177967054136633178747782778053894170179041622247430579951059341655182833422443815239029480006648317718730690248879414789416327982184261231384460490404788099829004503203741339112638795570560925650974435035737227108877270976205029833272941203413070786073768161013483546779596257912520630703550994530538927197203967784609149775346481094802343126860762071559731634349325565349198767602379791123098998283708169608631314635982066348680061362445794666662007992647677983878166672512186093526322264118749073049837699119566719883861196180139584250155331067717954859688166818327450856474980020097303003724668501603520620719014416237615157675917446381020921532788800897736982999170114518899640556787878191472834333623629959675829517460048602302079319135440085229321534462310173545072446093617264203959165490468846875644208024504682996897792201106706177541725572945383080646111245063856460635058163043985097278788452752287883248336222617854022580586571729120257987047626044357228597579467683748537535141451279754423597646490021141136633685982215620680896545546780032732934120707662179634068441933401837874305143889624763074804316219182512811872608293431695771071558061533686864335703157683332518811055521142450778288482496537435170905739303316944864111456626322608555401014876626772414241473340980881092258647302908171572320820677720145526665586391114569581355933002890239962367045551733195782911886314767282163347780172876660179692514524821539393918756617277740230492690521883360602702939281796633192926095789245344789075291847154754251217814349555952271263007464935562009662791704617344285610796330580386601341410493359877082398869819973485645557722531143048006965091671389497941018901765403660535165467317567030605513984610535744656319347471671789464899616565761747512109481713412769148758821617608228768869022658193120187024157647602427073884705125906032774317029511559797404132453001548280024659445536375714031133845927114068408592345687165837989590708046701723131286863077787065411711878345194458274829601174407527886249104904665021099172750247747780086122340916842541692624996173070839444665340960126939700744092394055903615846565000547385702107283062000482700530570310164804473088084169127998916379338940659206099792433833626808323101011998714714190785058227189197711122688232170004256624929096474040897585690376145517479674840101376130790036582790902528361426279260156945132537139821617735270413462780870149152604299682265312334300140241883225432708218304852646142093868296492888848239028419774711366482822911082448321431693386712602602828829879674025707923649200326221386976756980411284719956915609689165232351318126552978755923003953763419710051370834725381783074118043055316771733679394540320441923598844911763900101778610913432047011711086602997494642938359153357040659454512988545891603277185929935976207219350033832284265133165329798642191286043850686833792695314624725867181804498232591096788073238332470638792222652397117618639104164643580315376386774819094753253105738075685231750484407542350335774909462529358627929436678632234465013233550436187884148086289689790011366660917370284226377406797945281389191899155655072560452452343959066017702889053225392240805985375752694879305153585484290175219616848183775762593501365527469710711748701694616790801517011369944220584299063155129523078860753665858532532279858652300403791715440264372939250626869685365013744304081072010829271554643523032169949208224718764098239631001873667451403280758659326760272358611908210638932627188252224382923339495829039235240719644874575632502368368291847680575164524651199859247467896965893276650724612732443897663425896691550361068266384991807949745289776872343468568516988379389551159341074467714380746033965855532579611978691133926729534365512512868014418087242300528171911926627232926576201505796831494059746470701822437300692509145103943627400758079351382717646816129730285031389763973847082711038226308510143539723098043099112378136940698691150365555783587744766665724731991908673799747289676262431797978587823655809434964522619625805188359648687857003564455893975993571279976938270300563302394402403194042624669408242294871647476400829749545541432931595796200121732499191632388426023580929263868564697610573585014023264441374735054175731988511916563012990492554759784004386552955986908612302548166080120539891017772798027935226071984842757159948926946774703251578821692162054167248351760898053938782736438747863220081805011289177453060547999684186029887049699982072187542804549802980774307309250673789126468661999505658112568330471845713416023293055736577226570602091225965013421728872940683585569388154500853414957928432195567408107596642676727401391486520572167005024004948810222436143482357103301941408750508307514863058578793439850084950474641193413456049657108811205982252637976410528185936931153537999785316770151844766100254610705250026579736977400370114786444453739950559460217895271690909719666344078766396159511873668173111986765478337337220565833594223211421180429329635996080505377094733845461154691194485190593043338493005061479973651194938262862719423839573584519383826535161028263735386932134408679470928598930349917382228294082289177295900785849377577837453050225717680344424515040670186632977593025034712457411925928546669997364376683937057817025413177355249035322227149354692228425801494777297975328480476435933889941193933657493470861641002612379549805299804013055256707421396722674124366738406178177748762970581994195618283134112534226070755893818885275484842276863751584264382012154977317101236047804826841823381328651978577614394184974034600925789856050935436428704221582360556020920872170095345963232255451034078336075979166856934393416679113398868730359724957422291686567065595811866087852445376832210194152321789603158276028715434090741344174963578371367982310287832944778059122422917321787569119799260312120296405750124311977279446661622927915233928465091878830375225799353988324903963581676800373590224472170923421770688669960225779827731571241697634840473189577059527129611986393363230768252984043174197897575084490611306376842649642950170127254324521652706724498925802644598373257001998127146540206073570906894210913431608264307998716790807611812449012629321260364272027803639399821597226157727941956684996201501781830375656115388414500842020487399734471917387107187509289200290906934100860920116593202758665082998284932195357199840113267572927184172543807810419647338626453760301448042150088984557358527869282248560065963206487531916631102352567219233405960883907264150024068592288351887686065278530742633273730251565018494231089530165882476662265229345181280126353582818799832338910179587160303058807667127874514497152844366963955736508067673972690804235622690730528299710248321463475695412069086352786272035699639051978592928972306601384456125120918776185415666121271239020275742512908435027027700280450698557235688890707900913809262449129354060471611661947178670733186197377097049648370820461931477051026687519327070279178526314453405282115997348910104018228302733855687818861880752353208140679334626606856736511183263073017202073365054410814782416775437648831739018471609329663547996143860326445290896653369936190697759369551333502695654246503235877629117524387199423534881142775088131566044916449496183951557345400140417915201410401613930390205684437183065818962624940710972826353595144131929496612110625285076257100194603310663234705116441339797809830593056884665129637206317940661464581870518704871106560863361496942082440078263484915200977423762184275660230855584493283939294871945674134012463747326167504559399713607650897728292060637640068501538406685418611688860859142883715996315903322104994739432491236976345533134341335021578098713802039149843002589643577791699614365695796175016118437496327400216684467245102887143479281781749297382128519733446248774805506364338817473090643980075771594017854480117326879211842170993877692224926100162219174082168660208664458072505231920847740624946219529381933076903750433567850319870710627101071158102477678609640422818591772997664546791350133142294202631082027875318341802924007791639889552762518114689277159227398757378729130806892897361891224346350152477318011625110864088563289176649479036984807163630767467460290274554781161248595440146057560490171192066753738492753516509676467020454420983088286080870609465072628895500866783980415335058988911097646029939999934423368043866779870618274685136763124375594676801945496905594810530296138316421589924801485356473748582444353842233761041428543242369887005156417806389262220043931324608194154972881698402283639989072634347228599127641956358143732528121222924464355126716817412816624199962453745226997627371813985103309812606332503510587047255492743170815170201913276302669702352916571302203972068637482264704261638579088593235083115841998481235857347578347092388491324520780433979327330264556150998885099654090979485290584998171937550238197018593159340851333702893201339999107216825283912656918829511257903743011802357109829544573582844782193213022556477884595236789836403683298814797967558019727827195432860789679493589219253170617160560133923333149806385592375893763422572055013799281231725761354609845923898258630856319974747928918620727200775240386378230357393131258622920846031070366303281889044555501055473339207163033926543540957876786013834835756035798930598556029871303268645430995078516866951176808014674701233549706989911034090155306119769772959525773290285507354870611919690271335934817452787900049339459637358205100073281573473659976694480691073256733363362785814722031980302250636202982771344340081952437654305058589026445672368192292210759137534605581715074194942626404162648197632757901214277575885823756019198286779446013231228588566628158021629318510667016364927087597311330138165276272120864111327941711545490775152472359208111093726476783811230393846556300380561024748790057762715708501768394352662930641873556088208547355805192938472825548809656203975143910913408292547918876860559945392493322669731344164112031125620755222049107004123744780376416683627247912431554416806091564798958059619642993067948015764516307321862522258370975462650900287625994301650544602954710354174200859200320386596296786996534213295247361425291346979821845971153613327277745780031547703150796892510832955413396465688814359331710747445447772752839060709471572710989672526965035229340777764920547241262915641470951056041873992021834196429007636835970693571193278751313682862166601896159841772951117155512020083616105008617637119268316351091965610299666991788136482226127708711065142131988219056105147333835345343448504995677521690051079620844295139238303793721892805691914364857946922352082710341448304657117843135473233779714247405837214859374291775440807586424961284934612132935498241651621201525181618038931073419886124271088019895677560338525486310057678507153842572298584512884440101971297030396343379115639183832284752858734348873240501290229820186567306797336999215454341715069516691573763920704709217266153284889843564802446238480772950274620367529415918480680525613515464096200712642279221427470573589995337759878464398349509940094057096929486843443379090438761237079557365183868098477310669191328315252915898966480506662228358972263421488883991461600543133908329872307593037814637940335746491997589453996746432948368384211994881551992195406289338204545001839344527876220231590094620509418277053153836718147495969165289220561538029379891663608485624007972353020730219238094285079040804544340037694552266686542851875668639472878901985166802785767984876932442652184365175681901819497235444293460625238510203876831983318721620197027697409715115941574779225271613762065110440657519743724554414678125414560302461674467369728933474757191701874917500695115619106614842349734678291095870277447886438560586449178766846818168400264945188335706578782040637121894392397615799571317340973802538168679207688006232077185661225461995424024300798164994151292517112492777898821227142937992011475667020981208273224660313935221170777299653861984782423022664159779206636801568347183436863817083952077355583061799142078406343473131818151276037916547078042381726443932599397513024709832419574608835130639764091372371069730495467069514758763457199099663526378063100366798077424877965889434227237720294027990919816863687527147826595147725072036271783592180893459503189663331088467236048355299291602820396789310900316070107360827162822077977276438905293358200668677834516504504905123057328342104422490385897613505744391930943081316277463867469198964070435477997544807629253049895404061803005231067520962168031318898397571820720104258713544190592863146492239026204977514879576366686627818878675228192357326923588034894757249820939647623624581343405535343195120008154642681242714569072963958596473982137635214902187137993214683292874840270275973954692507237300985195038510906704056422856383253149230295740619759248952842115675032876081203368070247648349563264885175412245569081348985580457936629996877995424763152898082629772598624639945470234883155462502009168734049298784931853918880005663845603629606553156120414940780273692268811564296067257977407697864685981339609660762226168031193192954820963172869573876187063661434018466390726638111915654833373235085486110515875618120200508064211944305116059754381852936599967140108329723143257117852591555264515494119641827173039200747727533266983386453828928395122241751931083062294792589420172600032685592038916011548781942865022145106426794479630108189693612595127010620704843179725928188588194165424162156045891200552556457104998849561854639036683727404345207239565609974488583229148426537774405022217054917718760700432997999594417859588879464779441033082995559955212795604081007704773569707296261082382877391607086272580273156553916595304304993658641643910945930604293415660537764079076471235361271196058248350199788671443339507558998714686750954708355239394203252689656369589655993292969399891920692236894734336350430676476077685662215638292238662838689491509163364381034756189865664435934374934637621771302469381077157042025962788612505747208646733764502180511142121860917263777737478179906216028002635220343393046006116386157641067284874120066639165258333662321708873036291525760624488331268898029786542526018099480960735883655788449391017348757948280839446170233193472800501330178374119282749149349846834172751109806773921183707645174886469806690601059146310557763238738953228309238636335086776280615196511394854441169569689576503601182179762938140702381076996527202831336854938426036981119812115693202804869588560934922162905351682671900331083400312225545287048439441670562361512159701367855431206788358050732535033172148415894015145768824094382807670659323853503003788621743527834936003723877454325534757957834575486098799626040084958601368105365562130702250958343087586447926694954323396624868249376417178418562027276552092049209450272021396300052330475722984557540463222739502035271909176538200113866918303747620878569553164162120713600371127975554716037432891056478964283299481866586064644770154109544614894856060164983711218725122999836581731152858221209573541669616608629903553789324139091095610149006014077526677908619879403687156192823843973078841489210311099123850235663667307775946781113748754363557753962002721518756138076013609789923105980092582635308930213416867411186120034720581013040021055980090323346469173004152423341963349536901049725528610298513157676193606374879840668698065021578322475323938995159859113544761995050383114050601041716094748244894284872988724093629126491928823221007410964790486579784252191535585551802129717786049032918228628463161982577322688091687777920623530395856770773524972172491221009619655207180716960856651571631503109603694677145000559428875089503289806204665021703705196125874902528342950594107546418037668786279820166479752305934145851027007298342471971699429879919127292833516040150072463593335841953533996276530712137062611592187667410557465964121220900470897484924123041839870066693237151338384037000110918816666513970050880043769111572515750886058363175509891346644626382410854310632160209156475303985040262428188624532036679520105441565611885965579109116759943579689257917836254785001319943211893772555279276591624498751399078607727999621454985493808678903110545464244895917597131845573979664690196314994103888837546712007147200673967956535963021553786809374684546116245238747901536604071006062181628612395768480968026450541471516355187606536769614766137891618944218463727812218653671712262220270806193864072477544275721779296969402476978489323023697376157424954123520453705128863062080749119653713745200511344271858029580773105680832314584732191328318351195914029126850530560906505528472283734259151887496390095072769099951047772558949120350403353759344264379734328914414018045796398129092240192427590111439270242229955156145099598512082747420075452643880945077348923706738874155603337700812693735904349181219752830079070433293103916760379598214842209630405304927730359229421569830247953160387556877306077967367731552059071668099625637939696945995316253249269748756223217560791807932355710298407852435535029718593708642802628923403341116453132335208039350314599802727974929156528505605354234116449326651648955941714168726786437898163862584420653400121345009225847430264774329470261497040084003165481680782616645357835582152537986971083660480824738349141693871304051484822163498090600701811257706265539459728411804871576354297174837059828017804417293742530938383761074569431927064698302414592103306957088037531110564170330913452844640840675745197492550863681249974325823577484779368040910484152808651942546516137158741683307702595454713067110374505986911367684715745936350550498071866707377662924583341385694086611766507578919846374078933293656205563914067724620350958182826691656516651780898561915946900119954666860491998722765653005684426686706536847963113525602049532350494639883801578352459780584507013962494204035073867429460907949516692144368699284263383648384515860828825242787810144804942450714686542317924566246784462844201756849652430527274661876646656137480153705213511716131903613642112548106546810940512512085895406144613950366357840167850420746740814696960226649555848018690972498252318506334188932488964255130278188706781632295508972841743264494076078843648747466237529169630122650547573499359747644139218659168836507484757160815784144314004341434161063553315837958453841082270300640592368570538937150105926850768126420979542904505407173491388053579790173304599342622103372217483757353456135196936305490049827127552372507477993912877753814120078753930690381706327595740608822718405518113254624916455942945184410160511362988558407288695823118838142083851458441902835595108622079421020882739627747182328242188403566261900300266183811547008124231613632226888677322399763405853036389988720879951650966984390202101296501151523500263952434694607587902522491464263725602039578293101786111148129235704837773881635526233817408518933787646711457637111920124293680233143842528893821347788466603910398059348523665943707647915661308860500538467835727449408084461462891909402022075606700942966932059267595697539021903423444711852127305819634181571187670532921950653597455337213588122942020738890802320129285107203187907905792451388528964237811570720935790423161486189336679002655259871253424252712922299665039909999235330542091848504223407765649804990942457031860231980677652923188681691153338173011143265791469721798473770829771411337787078364163987720463706582241017046978530671587493841490807769541580878271400633657599272047028157195357976133063744987987642524842110918832318247926680344577103445211765974496917523930336396771125567041584012199957272353502819587261121046216669254721753503379964507278678472827801340290855515016494663278674520676569729438981976506314679261072310891487876268450214143220221173152376633138355931559682869517384855821537184192320728282202735171813197228913390241361624670788581703652691069698426474509684127198441375913635627688553466387895685690897740159787013344260222063217544189480747019599902840349673483815449440978368686894791864730639466190200481402866679540447710648314111195828968867027055007384685642988086618233597528851159249722410911964363588076989613721136231249335001989051136222229817982605552937184714038260160129774317677784013835959360125287667202646594104537645824783675442995222310399973954151081807518938331071861688965378426495830966710556156442937607923683212736769240590066158241313364300361476244210052218831732949961286710202391599020883248757158348514562213968961777512487988515743864075209728443947294910251737026548723526450832938200536789949657866213734816238315209597955708645287703249567039406385776880716138083712977217525652598829005463380863743793697873393554394290391660367589262194083247127171063294933951610986261280146238274981897423072270572119777175238107068173336115498330903845368639836665296483889124317192295124137449997386558304906928980296267673477812604716295701588282041473082081385702937206965035829290393571158819803995018360076698551651610183211663562276955673067554248687040220895241418208514159865123970291512687874456970746907235081059412869437260140942843242129681373551714158318240304984130319638138974702262803999742067891176834611184131307560632042942688766902665768079878260716022497751965139434553099381274579833382348328812934737052037156816382026488358406178551206123084937293740929309013860542232455745686644499056234314822551927182905066655060365007385395603009429928753401730278974980495763685763225118144477677948521593226453433942830874655798795315661021097707727611751868599996062826506896002923325300588422834955865184352825309145350634832151656760368258645553788020237854883172017111420856939835710861185933332221332825303062024858788843744838967769736855541143809954168924029618450327425206552498080216877568514993144309863057643095671174988582121284034940103097511975027814467661037861942011827556704273281217741163743810332118432337073862980779920278235459022816440741925613416975447462656531786116802494687655577802527702716236373238685983758238005391508940576444557856168031470493425417558699497622923853645943748405971272603497704940977074236263524541451404426941256059557174093909806010847041950771901133938024764446189015713308331958746216969658899290372486895987221343472353849969288903689128372940545515182244785216738278238987027606616456119794711557440685788428022348984933858371573819194899853855721323368979612536851554527202095335597721513713600253555312103133639081397595595470025072706203458009281451001917549132172325100843984746019503978668841486090884391961280347624732576150086686414972012993769422087524982515235227106980905677563787212204472590271656136174007736760682373684252899979729565875965068365847039401832222265478638575348037352198613576877663424722890584458094957771555154874829366659185719567667877299483013195666186141334617640686693442466885468100799492339681978767492580414105189855896851133042429587983902898083755720971672206084719054389367746505613885061562836181955415493670366305602864619744455129945048414099371188428853222199860226901393851039999566930934949794909405297781372403038886275409837067916346825347143879773761395554374864178944715150140504203836311805595587607324475534609985367278996275013671819284546348042440175077323756334573355206933955390676505359216540029627636084519383767649558381156444419563992119237292412166870976538627825676826115929526911928988686048143431538697770408474894498811570365266619970275422889994784023639876039401380253467847814762868313857631561204332342093666859198787953165429344026380552811595261201004739123987390487050323085097563976886460421756238892959416185513775206498273966533477905401552243742165130275485037754119705233539065599852423359931726131444659365849478102629622683866697140660608164908806373611855128618367835133499025848588911115132969868973320587799180300651924981906342274453834050013462772244767975221463967194894609817588742222510399724263151097537601269649744381917519959603356303589457964813985192763709270725676068484565568551294468071306859064021891999089466179936584171584661614043924027043122761522967187580736209319536112794358768557476716973585807867149219460752702475745978537610251977832555292274209792087669120995570255168107299640260775549662020981689073596457783169226154472869547574518331349618889552725847157843156553012248530324584608129541671751042052903851051205258598684882392042962187621074659784533113709408683284985449770567166371522502658332581151836854566897901484685944353939590962503607033603773712192970234023092747732338619406230889738295854270461099511048133529321228027125478168286058221628633339324619729116307844985639731536942564414337759465326794910772212703783613125850417285855609898995417261105010579013271878806034095916261591058018685167978739597090358912174280836713786548659479437218689792639910992482308010602631419742177422088214325736068302285111104187281512725744089248398581586346904090024084851740233568273461809424724047189874773212037245730744029124264852181183104817488789674128011181287784197983211201292461585342423219731537365964726941361324458490924338296441643596161225583400618562415239774932523987041326851473104785428195662449961022905657303119060483740077194847896051005509221393234034430901842178574686335612411728253437286561325213606047502403704650287210366869683897823413142131924114423414901048391743280390529972414838635561587247288765091143408584247558272290031512276394765314081394489494400643212740499089587421648967036224616238134105732184376636185621558577061491653689628789786513496537246185429240689269306217307601033437501667367012002466770977876904021015655574776598622261492929911573835882860469399472690791514555175769264662965674947279786576838236321718710861054953656792236052303540004344846007465165517943137844241300329652453786477329827752353437237403189133409999051120794230599962495070512515887625526556971989790209530904041750176135373591538538511730069321278747924539288760585543301282166726628612674582101146547349742990722916054932763455749122194801535049091263902193353593659776200870490729187618609555771278806364350032802581323760615551273984747246245089296437424408574097301099701057714408890645985732614128039015214735322103728592525744389821757631948784847251942965682605179204805720666748074285112652820392810898940337596769661610400289519270286869587529027089649853378194774470060712224756981103710861458283524354630774144753508407832712140814688534237249370360665857435961448938112050389539067981707145700873209670709856260684627031647903561945916356306054719161549395702818770610913911412573076444604344778100373374898653853512616629230473567994828517383914154260051615695398246991969474167052347326756534898298895253096807150905621452512703491662668633786306696830482926669696393258327927348458462229921786984592959684195897256990493553888156872808479317591113623240734875136123706555526746789098050597675504331407903574362654759698892971805907476511744211862972450380791524521737974307562638019292322141893779303806689553884765770105728433108006175966711485201626431090684850957949701719661527353357976205306330155496229499374407143027769803859438758137213748819097738459335143088518641977677092172542057372472793927022486094476638710903680426099012236412866298114372971446397588783287563216974615681814131530166647256134919288934660589170325006814174094942908411212773437053538329963745121645399810647884038791417931726659204530841692217240814371959322128644956550490616023974675727829337285394479333837003552798595741569293739827657061793949104858977152594239109618311596853130986597530573271061654642092444650888774204101547097648861995024078888029913239334763457345093286004029276422235846832089864943437067719238350232119549673086652747007337459564728582827743202408671245409689803458001754922334633771980821856140004431035111585586534811820351083406096757501921022791730554136916258212863192661054302518401278484223045007327451662601884286361554260774279368515478875343555634962150289804724086415912966365373321560725199891806548567819950632762384291314187832770640672936955138550362695179886583813136770466936787902503878547104737257949844947557341128119419720932931911437722415914585734063894448816860312343847198613674197240465548788198143438839172278146423864248716886177230183462254167776861717347679252759673990471245123367820899568314759293533376274005421444391252169716190064800650393046117929363642955827996759442227100259455395838383449489234563708631709808296792462781134397682463158996642568050392777595629805350182770985848226581727036764354617701558504685314989713346421498865852792075546444959254350388323213204703547736050358932008825902072432469543800520480346258125041782160661181654422694598611128105685133238234367681853068491660263851814369748172175191867153412647665180681160911374558783844639908035358986991348548942438681424581211409296456786539154570016286480074871025601441867206944366461412396967512208077490726895902597154069554681450164393823513662876144906306845051113185070608659890930408129608076417549092200168373089598225995077312343451013189778000369754563681097580278575875808435007355734841323158148108677419183899269218294984884258577020192526612116775016188111201701471558282142838789397767099319739384225997742953596026954850380243879120266288545219684407981516838040954497397325911748600402239319684923862265644839444947558835311243555630368841776427162681188958574239261171104260166006481840044765870396883430717095323671627187041735227349722114261351079202649111295976234207284913316595400842976406986167385966506710613516295987226645423693316941979331312012202417070082576596447788737648189344703256860492531447672755302406183669451765598368660700055820728182536689725192379466019271547524247204592093649061301105447742970513524068816613062524997472095617148535321968995378077136062423797758208180116933380567063533927735814212247753081344755406424120387949643720642002602655576613685901014318284332033513826353321977906363423557740799719276967558128709404009606914202324329601176677316508728882545221111049368621042756494626449842305677205005765001523224164227892936777002254922843871040298588181030349122632690106445905912969141478491749401175597805586454274888535572049466185050955036846882528630658481763269955663091993741003157870816959407655075171573057987880264103439901061178245344488881511146679554909274051103001906642839001929509850708089477401110809835966738102413477456373477761040610733380363190123890058947570050888434786165394236294822890788257637063934656251923516163251560767127077105794533573425812172162918394744481610346446363509545733148891823080421515349206889410353483279726857043637377258698921842379890418004352334620210730581343639187553987760040347538159600493194258060135754858219122666983243009409748415921516049342903970528094984395717230541574307946532951904932207849963189582470476676143411037447933565145187451809235166822163620753128862575459913814608643108764663833625786652198329797057469535784593692011634198425225009069665997681181646656799128176636418138910558505522261689099684971980556543356903864895240417364313971558125263977162048854832922290405465854673817655959296643324772093757354034118478451886747091479864117703966291805339207948141860123318590662180761044272370818202345354665494450671496373815689179164947866241070532725965156583740462847033605500495299963163478231938702061745183227185831029374226708606955629613843606645891916229251057816087694728027863561539913988249478526009660881635543493185543871812615963973908766913225677181633877411584170952100847010049445462727775644696398406155560243900681729434680455427830329762065692118664206570186142715825432720362579983995327085192135489449639840338818785803012714590068299727109882267474741727176470079906778861920457984007179658871332185129086093001887908577252726812402814405560579369288652514226985072280729603185938832943980871684050109130464072262515421969132517588128148956838333067561291858097686073586586958324701883088405655451119565023979005209200402125305942567289638675937532028767305548596047099013290425938339186769416904085018000893951706343728798131672446278228141122363124548707038442783794608079829616142010293144245761910095933397641634343944896834412649315158119841623492856116432891079207910488841386305176954248682156451139999131067442583822946349894381553709140786619694570604542805973528553125746467781677562934002356953891709625719625040105306062379782533117503822204820594043831043471971213478343757464709932633978472555781313330363445869355781623016341395540039777784749586724219333780077827779269670906187193148745588465317556003687089908323429455249282456030530160137341036935497621532949203116025012399422574915399939240490930017298023614430827262432998452962292122438203410207558787947169719966590703186432678247272310687068356328695144633421965442011285250275789923706445999764295331698842187731917500793724387083579614022060888504804020996994848373754800428631241623614459452811719846391116605422703787109535668588670790225425250231521498976750217812565970861797856370438429966093048253339790820395455733441665795506331804194371961801838148094769754055198244605111948073351539460118377833987910382836899933791728112243323254812626468376385250547281155059572505685199247032479963788327715814021614033131409541729137721644243318208301831590361501080132240067541794379866425429219700916753735481894550510061447104273995782289735209099470277344354619965631701447154341494420076059497248609233609844412029520013527105742398059431683788760310084842141938015321049459671947018849626867963782454709650207581807271119626858063074966391884651268116692573635532707850841965132137177806193074258541968417658803580193097286373965901087991211792992583909993940935334053344327896346880280070509495756348211712821187149902483872713524177026835264454310289130326932413704145062092702292974831432688730326905639104702862231242789705598616484099857360512879458006195233191082300000317099841548124071171799633839521798470217914854348820012136964100238022551246697380768386253208824702650556400861671537630792120432433660187370526482774343531179562174494085270256396110135651537119426720204563024249215315638393444137085331718495589955322019478189689118037831346974801471706663542548322454780766216312593672054416836548343085589363863125468637714418885093308407528111790601715594820640388367258116984229094405450188720249458619446034240638854751299390957895475299528687369562879855042080228341334106204007788590916866406462963199130832362564157847141799663224457078839274293077784960217514308967740381034149689299153938800461490056929340256038591388366278129225583034568186010459343908300371029371914436822878931663356060171271934047239073720963776627618163005389461762818803352284148687928893394747922872961113101838571574066953051727547060165967345244132409055600494851025671303753648875242048139377118209316960627173387074694732023314376733094596743770959435702082392883565476783717918638741160381513593049594128827919201182738045389603527337172479321582259552384393949265414598029955789350293468702689407143162007575678103880596447489493180188965195895888417069916666172826336791902041661967823732283942337531286825573297654244523775115342480711474244731353175387643365596038470392079267201612079186234002958910776336136008625991216201168824567222261871421061580170729280210664209442059794636633722203711599833178251871141742696998588570856657040654797083590245410244864443064500786176597794133072274204446817893474908532954960508942478549792028567476670094229826886556888062524754059963218229295120723163192484148427219211945718982460575682125057969414348906080381642012895306224801178854725072070018365914245865651069504235475509595032732296878143339308429443294034763816427119355766111741611553058341532546936764165268069351720556564286110516459729965518534974998695195958256972179507796722744574623487018297781892787854472980023060031182218382787178306208200052574874005849612598465504405359099725794575183415564803322483294398609212122962502745230697850942847284462291532993902173098886625524766143421183409160087993525039120815281440493618558961754434791664309441245453324210933160978031612694524140988064086371833014980026039386110301533759255744561843314886995119275536713192219752167158366082281818379372037064334292456486005719997231484560390146415111107103922376836553669945584944231543187469278525509182318533263203265747215289424448369891613909216782120495696915791609752305923048830695116455025430692281451115190233040686299650349380418871537963499051038636723910155520380642229664610022065439320674178515598915564234458189843220826667639344097215129728132261996503195763864285637075048723709745117452051493960992238225524431611318514873499016166381781054697669535042446764641786626602874380740344672867438317046320582678080931221885601347057293428101182356068175492818273099292211290270243166574134532947048082998426526034720082587625068320203252011576091284510678782210302867026341434059258993844860088356796264130153502257634424582849521128984197737365515007960380418650101829021731261277242355734107942011310657786618192958351733820662848875995915750851818526052083551338991555714375790232551682398117632638558449431986225847971726707959185481917042739647532721054954240187830775277822800558904859768988458631896692089717309431773642856985335092129965854029914259525581362414856481400498707844818560710986034223723356711974966259562535965211124285952911400141978720303275901156172479019238129052284593164159155047808881191629702846368001072036889778837390420026369856590384360489561175032472744297236091825468746066786719946197848137534978173289893607572414809070748154180934105903396363044264113163952824146810036668569557398407916131209468022663893183427433098649249770918185830754572115489651262707281407861361031138271217863082256024567217675566948629575498199986844186840865882357870559724856579465451563475039864803518859229236461710341086972603186104072370952120277920024607670709548670927606071050157038443782962652501618217086101864049905793311931742512540913136010273613948018879433468772187167900572378362139839456901012688002119699711303854935477719415987751166349131661557439180163519753551587328757291099743125664116450898646289243717851758855188961835103861129043939104145502996411486376945082027454570151239127558848316773944445364447479234095312005364373288942444092749986121258183206481690092279638473586824315757662125360442912560487887374826526077599256176202000794256481025958870781087127330979435249838736511503743545997198579450521631237726207605331715534473495992857882290853149317884190616365323750672898421658545241565991847891705927476332181646272753823455679921553386424960902186625449869192111912995508000448775620951224006550722976857444279230009881692374736507189561912024768186022318437712114542915930301230889800984694428121237231920323967205540653235821740708300488249960506165081337185798564258739474406171159367999840109176773037534320866580867162071246867824180273262321365259396491938858746562319203664899184917191578955263854242790499043830258221580477122389125147806192866681348474737128241635533075136714896023328312288688739825164175070908819345636081546724795589082599978976406935008349416838953291533471994546516990154290051364112545442400140768340017131218880429971524743147370056444985515578555939570331530107011554864618693721287620471671375819202841019671833607603822647127461320875282164237944922555672265843617092603882944721371920780942423652110458612433771928349847916482754742762061053310083449131302399385174151292407008913411642453348169837230625166277116361130578570198302411366176016354427153551687332702437762287853142688181833888849601978048531098952864287175515549198916745024874357085843151888687746125958454595448013901567169039818369960947654734114386456677566600665828272936799249472746852297823647063929540132692412425080090554133987900336637171640452147175582349408957382228298733712421052728226941815351373499148902022065050466031874185677428266967950387160114211123226799221523153400925354130089141366140160155988597963523919913377569828721976550424038275565840334360843161246499927637659441286538928539205825787742943636997385060102207598394536321840438635668164049163043653665269339838420100922373171146714821715611684626746393203682873196407434237898026832839367820755189316120316958622194911544738765262271837378155455054809846498485148553756522189912080500117121181436007920142675062150889175886459679219099550552980199432975163908295711504223508087330891988547206988201721612411686946904558377243872926603471237797446523951859346590487865495228350306928272525944972268789053904380922468490393792117542657197802717933927911800892181895581781169178546600940672087952131976627636186712117669925827556907067747736202849372716064926405317496138384532824241340983899142886666826203526107584099315250155103198647288886553820023943918951250780164528713931205616124686681792517978656634445241975980029899664863140500967410736520503580220194496702024375470232926872164341252718426374982909644453506873785242912582135681141664089353964457758589567160800896387631918351585367659476792249005610888719604525081907478475095087496949705894412026634908700149407239564225439865143058868507630742696066572629403462473559534466605139684214982157081118200978831327484678040934670962205322991101920696268396411378097145048980544507918268658774137255080407553564272026888638105190666466166623448768430469170912722440549024535781273494289074827738273173988668293574657987631774032803966514378085020003884192140274426004683359343864108564181254570830002315625951287419808454276407289217964108708192013299064894239485832068083167723882107952408750661982878498489969534470375185168543230519028485386690450129772144637231143135823391985049336948060267307448442378545821955564110117839271638744575064938086413780711481090021266030371941328103324875578254594114391361909893919981930518088898665575109844090961764200559525691594623752061464186221233933503570128905427806344294524710662810156936983085211628127764157009080233141377478645627632455124577812262291294873926416956627202109880517807052980348858046925993988089495888743283924805166944949427702105917733553833863964412096242412641529654490352972362037234181217912498647228042995378071344373498088737242852346549509012724502565137782140717047827418839341656221769017950605202994783395350806465099128584611474974576246824540490661626029734405201537960390520145027958625369790096222323230095078685183236086021614791930528887029659227692524322769390771127015092070682487189171395289001157920323539436892770769622862559245876549648509725834857086332344044624178510549772737377728774504331896536229533435093442017582906287544309533162156124401523015675280525331830857032990933002584358741810466853060213256251425232737958654414246209259883218845585513161664890251584831817652232195760425712655074949835079305745279002567071273710724571764114453229221166295857321896638252539104821638259677655105620524250041678744355000663675803685886813081035395354527237827906846754990235844796892719553578395170174435779417007100190813843418239209778358238773649325710958173280183483018005212037634598577794718617056322667511762016432978909152402689287398344475873271776491141867885898106479474470968361464259065739771550206330752846169039694965199757309351387675409544597097248964090362552608377994830562500339737512701267904214477271092080734773357134123173146923024043882340699747712454155437322481728376810586187408109922253101768105498724337498228128359476018525844647179367046042809946259845564815318802985846699884047832591742696162357827641993154939629723735412902262847187021765665115220208123518243922064638853678288833212744098824173129816583750581768285847536507803540927955079962403263834745652205827761040346198461509676333786002757775021993405868550199542111055472539665706325875359328412020951519877188391861461926982544638461967389587258142860343594076897150413330509107702097906954063301432625712587809068087316071632497502608478496098050189945368370951210137058770479619090312180115867220157359649376193838442395605892461876983834650601282973622591792732622970804375708903021832052579696049619092511317793963860645103230939473643008022183590231909565938553804606457990438832644343344596953265662350287619195699709165647894057218820995736188540042296146043401971016817510300861706474518669856219263417145897294506218089240703132609353786165462944428131113287492473738645257408157720933936251179841387740418874639292340189890101881097259062584928138305573848645617646056580157848640784690201418126026366427453852788154145432171996353265239436538845874708537146743239667622364738919165376479184572936440970968030869783382080385537919494740354943058102350663081170412368818070970748419906932382456698513156074667797960053744370302514038743343907268837189566791743286655558629960462471249704693881388375874002780807438944966798766492643453249683136282324842943045367303976980215037813597087756640847924999317343910130673874532232429377678706896541176399415274937688153358294355044862764722127271203943894863718634705116993092104961252670103965026271166384808377234934843804404297071625092384501162065227078020608377064360894086336304170372424425995028373059443196854764030660637433467454857728138541449548604926752427875969951318083413297620019910969437120761464502278583364997606486692590847774543095531957720461493328865886990373434696059174511134625598822797117457454723011935090536516853031732643565984549331896222037833252358310480759801245250762378466651252482874142720383747732123769890692650438619671011755265283106869337235272952638524815995976076711527757989064373441515301534476946268105790903654906844944991984328501053680400452586963801062963588270879780805912380696610659865073908576986537571836620507626658245108961064145055049480935617588326801928999032193699215837868616196752742416482573381755187003314140982606646990377460281272333980750235837127763654855141569704727715721759712560364741187901577960957999576162569933447362035073713968801418050917791980261565789382171322696886220917017980168895148698872927240424057421951693069609938888672736176100050062640896013972773521101656799103792063847963634436963997771839847895144648933525506138417490238887192054958328016380303525884956455925069863852794172205557725444448707751733603413670004439330724389048673760583415763664973844947013558460050055217107995823024413876609171399137655833277652279320768050641962210721078261476973565319593052431714504887535404709704342551519499204811076768291432004995483856197458305180923489255306882700729896515329963942084764903217061146430073358905274733275534900498066736059000899809013419666084485757220589351031170406316479166466108263146320247086738887351685746598986082675235198293693469723963590865599330320952322745677801384671258312867600539262184741367188699774860999793416638326526069371776469521812250901804760484128673437084869330999094792211582588494983801929706551571634414522451022922498938615837785321380541040539875461753902805538471840035791953448679209643134705876394443876204160995534529880431306181257434059916578485709451700239605820339854006703892329628981135545187786342000749351143375234284437127289538305890800869955701080920540435667064894261086494488777565694251407060129966481988758617110132495930034328435065380694717566527838314910825368287084954668859494492365095907286235331655983340514604930984849615066899605173080035052069048068673776927127721540743390855340075703702853712199122925214371037635342866926578356518562447569516543049818901644629485413924041939326550256090452470784137793253697291410315546033902601398026930045510282219977160875560536915285947315334215141410233897972889927168305705578134434477087006393209244307145943445318069862953651308997603335633017874256569662940522626437947130357765779457176236108024329616394174058580534245428156127231568922427501033511788133344308144141692702558859929070740424158036861266124166794972379775238852726063266326161164560188800540759141951971255435565683558546922496857961464678313812857912908892386774851413423085706802385090956529209289167102924384899640829909006870733532292945550238651596266317900030183432544045844735423382637842610156773351443677213096207595407776989305262504160469199528932986809451028416788447375535581897639440561552728039228366569401577040031845046941409141053357475058630209159639047929432687410974991500551247817991156884838333250043359835896545641608934616029953481359613872315593398945730424911582530081685778869270444363069095043543946947008831024213931224416059908145943168050161999782764778063059463089847035364126113259180558926511664441753297442006571148151911611644623345112615956163676768423689810850325360244397104909175699127357601924147032850163359494836245224697067240594140329261271267042697837164419961060083519853839665789567843629556284129468498688241251340605879442535276707611064584408196914508616253832560390193279148404972715256087881717292329515392447893402492957564951365226632551235824600847862005307811746142800182697331668111397469778927550389303458409781912424588064920409017638381678142848439613659627028814618640488792792272467511134528093606714728772688731588229394508496103248147744462557919710583920560149650934160620940407629866643014721549728371764890413830269352182934357417920325071362531856719738642949524349501574893442979687752199851598040826331518610194249347163943050140040452401956612994804552798738149982436911505052813620206126613065502627201715758966592066508043166868199823797189012809838070075752600916568807117168798204059995038105124156641182270252652485691694663616952582682639736925737610724821806094966709025990308937564389704863464874516585918347101251708894954523282780338227649890284831584022095170877493163012627734026835228586852539490513257984348912609703302789011343031349178703461053000703792044134732516913590188822540709465107401062977762553066472768600376805092232185067844487762282019100735083530615567618531019792093252811329903029767434381560774227610168337125525115772545254299652710236374841395412653798327153007535349401007640668870910308074639448110752934772259722347684898152737008490042022817116865061774243990436104425350370276593811323170540779079783508478587194772599557268887865372486100751354231302537412144742513026056145347454660293743118131986686514812777567221865532849344499091019867091587772054925893707889390922385772400811440195071643290039887020300512681016745074336768226027676868308096128321485614948979354346957603329756077364534361420218970326847198090254401338907826795771723346423473507121485730923389577003600339272309951053699459839557226110676592424293802723663039687373024932847114953632071232638458836134046622773561857623734067028076924541030427794348750507529742645270860541098797576124694943803555642269281372437507253716900187798662802279594080696396998866211376968621010111379203975912525416897084396092850565976354360209849796198960470485482645445572627015644335201638062175778428401400487467023419458410863550662389621450229780675693154927415474090640081346948683930829905437076614388350764095473870144545340009535002606773941136035352679818985227726238305126262758878251395110114611882804171853268887189013543003785086362181323709273988962551725295490250991503025374770924478383615510674411659122929312185166451942934893392935611645613931779461281020493119490118795409809474906845310105103496127784280323429209862060890507466401423523117445238941200978380033691750673469545454861630118946553958046659549051748599833971545591017278453839789562372831324653543474120225412438223297488113940393944648299098392071213635049871167983701384317001495897506476949270061702746888223804912783438600507953011870483078835588369682223052223283069314737787596572158842860928436797803857573477323495895694312667627373168617558475592308130091242164672581262121617918161043952598747806205256196524626717731762113867626275672127284459726882402287426195707760753591976843999107394137265022820175677331463584854548722246894100908571863921939983189299661412098948031468774439078569350197312027326142496166042556265279269903435517128270372290780741751814942991719335524291406839176608975381145461218129981667078751229567448546156213259778797501509964482641286654387292242793272011525041448175986253548538080160859478424546231193713384908420322564553514269191536964538689067735819541390897029788228468791409320693801411304207714645812952302433082681434666340751281951461285199764222551682342492282332514059100325645730982842736219850728797361036892093600115835161072928617793884458365729012382577500332100975552290708824869333942058113756121321834092235675872053419769139322144976451380839390281709873426627955826064811733580302560164246224043497510374811870949665616460791970208603849473881218010629761680420620617987531118806815462747617051612529719635462012348009899912902669710961588584736453368862123112206213756257186760604708980215263824542715190070513754824025055131531151544275614012061642646213840819480750920441621814446001228730625178343118693334564068407274030668302054072900967498074701593732798031830065908375321191686173644750015765051909355013341930284045295934398177658091819869514227288328341481868859017024530347567528759662680533864628604124496698834917205867583305186665297463917305986456725267161936112456137961246945339744376554344670280362390107692284576583793768304448384751701275354431267284879009695136636225818147352781236498979830622247921355868070499928562814540943987710940985724949163167263192062610558779814125729758355377174576369462089319993566054719568395574495297441364825371107730629943460917016613791127538454099255212237300562045546305480982561589922346364424673626131828058535982492099299375138325150018043303098394430851291110416889131858276015961459314256084488114161654621622176871605670205593964554603608627880383612825972593662132192070770160895952055804024803645309572550157956204198326076913371268491207798290254847886040518011830750606942080189198122304935792606258897860081608074744097019019569635460407809573624580948560879908779597091074495105118466841974462127970650773737519334071457421950296434935817389852890780057194654259321796659862803387508494117457070716673434316854339570007384112611990301088961239001404298413918853852379400341178806673775880851758319925138625158070560091592023575501998833984666616272291253548939697414388484485502612507377768527648732171487251249151432532575539768672986337504098635627306467459965473690027555709913212323414700440851564605659752379012733366258642195886355445387168428751605193972716066159221186054956889310241129155250556827088633990029517655193986450948416542954109793417623981274079875312492603272543232148485155051307347014049746501778722146246789741358242415244531351314630888098589133653573633885535089369843129089929344366359678106019947561516004563794622889109330987330777172387148270117633598883246045843418492573534197034826359906790726888546309751930790069444919531280524467709995284158020059654118527458630365687832876840874078139241102749402992653759969810933503049624496095608315305593548173364318404615334431955001867246521491876158752889377535560013190667569663284207065224503355162032340148291844743278673110527382312766527471096119934748680525365160046179868292228988616220918455183180442060748081954252393773227217765454827696991610999081996526750145562170138808704929369718313561940935779164999704164954757757940710223193963722178978409976923520558383987028411639922536495711262437794303651550766447862888728299336012329068590185740660192065857022038152824250782777323430163556388108431602153549506125541479484983960596125558191777589541168529114210786983611076841561548299957789751402831523270354299753055824808822273715795128245977359061545934952739169777638996347859631175447204427046993920610057395056895652849812666122606983537539454370079328782119063625588005831460373086806671858172477890268074855214892505484212118479894279599565956125001159210384909758341447823154476207264905569596175229644331409502531349362642815765508249188394993697555298504644888863548340043886531610044089934674770303231238763621502163219104901693386200155388195593764275098559889304548864924416992957790271978475196703362288631893463553524959529553320321745434432156253059478628728147761539329605463086096411208452969032733579634487353511362833176488300521744454644146599862223177714614349482464653911385406473956723553831126380106750683513490346454588338956689118728915692684071369259731542938794211460173913242657358949976482797765693503969852690747722458107494742738772915883499002378869037006838500676685094802789993611546839374728345209442716020492476008679823634563070306591878349454438110092128420211221902357194612714774814202493681978275131574025708517414669056059619661857514353363401611344907329582022442826858085240705897208369660850699744446556711938019718814700193965565509165459453206393040588225461338928147586105243769488272016412096161505049355939012579778131453408803330436644733743978717271851262706577420846814762783055857822760922446789958469161896574653090375650137621138633742457409345562132170793728777105791573709418517700928792144690768697447107961370048939360352972710528462869647247262913998127910770571503604543539696737785320419035956186853667888512185602231454653407917526963679298804917931667482303561819042428300529182015022721939664882852798618892454250805977914970625868582171595120448447055043869309127411111329574966263033057465926117511010009637780506069034262100263769970109759021454592347538985436758226295320468816643259127604193572708872998089308006888067645092078959976095409407027948782733945093371171765630668655429334631276631463569576818415520522679922174827352495662645194824442912899948484842971361907067726611625716666927140452619899837884854266749081967900805384689085605275226227366066606000138049019715349623215187954250448181137752914497257507466786400408103542367324880315269532185956052515305794123534324388672140531241472605722661040176858663721532303881241409879928138573117229745791046139922886027394576071769243272395047496251053626109747233352826033659034862282322330869374403313332356881879742038685590646072498344092938831161800121932410553385290878089747185253409517207216725170175362239212237441877070388002298463723292142032227570990250227381193923359982399976668335761951761571142124583288311586053693756226764940673103606124789037082572186202184444609144737183940658580097876022125256066980527330387611011259556715716207472287467896671741211136911005035601771214489188882125334611354045164872793648157407210696893771413830523768216553234128487671290321773162639337933844896668182718471896352399416677510468885112694107566311925025235531013219508650501875843872730609897776365467957571120422100194072577381188970432442481104053215094679593512861702618862529942677094510174573402718700723287990054030538472546070485745279470894308181381574491087633617580147241847488919920726488182455938027555717755210822197296767295427940633591136803601012709263045220630442048645083948431250385222600068520993277834661271950524961335112272882144042170303713115265738956241624723711792773262692345877248995451424734953429855109715368224486469714076337258515269158972864209948058521976542343287445310347992360043683048392101957017697154153933117432435833447105443450040273055622480159370372679538127273779170928460502175127461994413128130787415031464132205831729668073365759663458092030151263434335828218331063268238456933203092222411882307395069301350309538232741026662943416867458300151958048655910572750526880932274745669566433135572648065024344325928980887273646060118941429689149908914137565361357969605599308309744515746585857998156075531772261228736574016628487462127506427306326152245305315590253697029430877821945642215877570223511857224477314770377851787707575949820641250338469649092673844626982230205317414133524910470293829714335519395341059793256850681315786154667617148005703362697201055894688416718302448848915337105903588325728608605570403639218684289899854803209598786342595324300923094999927619287496014789759801004563215327671979567058395110320603946028515041816730422298279341680178912734940391640509696799617763824398736571669542495601123499725634968161978821448183944629154529045422741817629318723552889192942090811650122423377610032916696786344769862894149375102356570046633193238366163723927013710146898574359573662734664385260074238774565816065107281125398286482814914336662032460995595033054306186590278636588792833923442993335628062156080260817604626820097316051465189640058597828278152424491690879444008552910422417547355117917148822210441469561840933710625702937692726524470504669742113082331836141372487697997740661213047384240736537826414674677878507823826135717183630144638692659191960454982712182922598237957345452638400224236353912501802586229646142003614074227154376591555664726711039926089166281101721434993135327050497351481042569084433167347723255957821967228857675287170559872562954455512498914038511398411492190824221109754393993484788602480637477066152088379047148659294500330569080250691157875148008163765387755257718716672249772525707790450627825281706067472662645348851148633978335165070236629884000165165540674085990457822564479247815405505877085940248119636860203823145842426541198515254378748994670575698635547574494668140340935708858971122914678153058993260947907389696177443597769185161244094106553298439804112656974504212527263099864684319794373886792414023067129045523687934078694106989812846926372458406596612780785514222230074790426401764510165336572398333525118832045886188029442493577619889986977317711723798337732895411606870056877299305161909056067468960394388254122417285253771418614936973619260103205438783998751099097260283355765100700102886167280380181646770131592008970588406096846627797611858496482196219374733066191411058311970730224772781321672755576730981020557207136024124739173121606952595464979572575251459582078286111111011783205352903982649145462221230885468452389919096037122811364361125980733447046966391740711201311417702677693015042782678371743260805727338326650678739132379411504322975507492426201140714253258608771283009424077599614510792258278505228514347696420189656476834373639651470046385705197277368726131016645261663250067610900271243923663028018568504735925330218885566540447153553506831301960842342809166875261902684018583092810896350747011614114430681635776210007810335296919587840539723161050131279468594318935092266947033646075406922432863662479024634599546667326694390177093907798885287850363068704500543336406226784400415244776435928481411893593992081505304435007910278296557987242788864503980649926442786437844561897327972081588941488453438472860803234424455461452748460548727841148724924647143194214840066128951599555904882198051704312248104951477547367077461228833557823211948673003170872535743691520767862920180377797870536236549418801900270594570262271143979204318247247631294620164125269369721385418765030066841130628237704301786054683844993930549853056740603196381878350301549612985195836740525331162701067780158690651120174762986919589534177729130305077555302823835169800074665899969184642894283325356947587824497806417958418433560042452492852316303938839866393137662720252753200102450556103879587765473519921766902985038243242772286900317348702917386355276106440916580223139647870571097257735677781951526389103837122365388381652823736144083480237521578011725750038522821597325338755860381069449353496425772672079913456690516351405776475802138673313498729299224173976999530709036643412050175353461733624869485676284038242161596759913079737698786550301178414344978739389397400593168939496162494109403572764994766240518854263679692596188397120783518640265369463646208386083830962677118919146608477289879119213013271166769402262176737985058338543991478091268464559664955073209477974055873327962049876049394752570683335913704705115391144453921907553412138790022827943827250496485967578871822414072142975004463626274193230289477632526292846537792835891942632306582628369503625666617811356043752598129134057513269425419193112720044626708161937048110496135167775820774819850482169716680943418509319533577197111458823400032542836540186036152270033704677589507566399547887654745224422061286473512337105769142587693832990424066597563693972120689413070878601418875120629062107395663147946603009819839682229963756652737438698865659626867900895720971284765383457204350629899435513949445983112188312514243803226539860330039666171736008132341667369561791309148456848318131830340269761500832976706149117906245704813718894667317208837098193191094804705990883009263368989624547646367687069548869607647918972207482179467867137024380039653163384860617352334135400577062217092428271771997165218201820207673132527379115941634896770513475421570888557807680483751368040106186152155638644923625091087867603734063260732870746085454372521698142027866321209234196972224422252483298435622204428007338329540962840438386218840524968895437430343210441400183027752945944141904930061432161988928046293307659392788141989825305995405480215108111279026493277083384639617498713157674928694757509268958626217606280556211982144488751467318751567142247934521274048508425162436777765553853959216963798497774867357175606591925025608288209967744509311938958943856280843271345848359410749487977135970095759482797346877828194316876534105391666313545215840149613603190869583314780863465087903998669738655921407382221868045612847890267629282324072092895137235462591886848344164145636868508620727577421939198970481188120818978490357288369835911586216592231482005993029991353274178934694830710104110149480664094379498786033598799494824388036146470505524863620865358741228327523613351669200465869302011882681564124021922341862302062151490740872827379851127242226593185886460675973297624658115508596552082007536459285595660927502841561829088125179368533935606219512647008110703431711252434001441000924314479336520418851668897201771996369969576993757390287778396259819195342251702694384114539087119896362243422092276317914038433746851259977842556616937565273367546608910948046510754069095011804536885661889843002642261911844676772280953567688840121160854195784751771598314396916375676217631494139114034922606197147936545132733819367575921584212119405349640843858141413060965293632800419187750912531494577280851062880826896612013900845629580578189498416373397249101079467256150184990148212779321118046269464605380495568245957012599031508287325754192748271267654452716893038990767990364678994506823545099252266398798546863957193309283553100373979658641232441977248233024751758577535443898162066545266902549218187941289362447223157404380073437627832024239818407743819497789065575394095029010208875345325073363106271892687456224308455482239650925599789982078809391578732926735278451234458626800671216922494787866096207714331514077660726155521897544367182374331041391280271232123397041823883001629803384332513713972002368997901271833921170691257454498061406681233292635664577379449608148581519373040695335205956998359467425996587667692811088930137185156691756817560451034191456373842514137627414133427049975223955538518025856354681716129811661765691476566232119477648196694342800072016914863741027680562962335795142446378706591530521857326586930249812993195016463331359676720281237011686938323777201326565716057443767025472000714686882479808477646486461079280178619033304428565674752643502308162219992362223486160664865833749581530570699550917124136328723553014368124421397873693372273136192083201388296898173772026870658563851136429933383514829107385217101997450364524828442647712658964413587876599926830641306306507508809966004617016179810299918257539949542288971217297048551580927078095864334362487249316333396534700330279780485666894835604073272401514279516485199026015669812786001622048878614809276399721664374582681536811141413641813267739780707816343352075389964106844945290357564172598561748162319468474958643606636871174205444103587304387514563805808760472491250834459090300148398761387521284745184032768987354194616132330207020230524095393862136689667432785025266598697967143500216981640583382404842997930464802030250958033086686219712877348248486075050016332651471302602418273234810441409945768459116137769020276080502036455712286958907766194593780245655624604160188983267766751092077253459980254603260972398000660590795205580082696552891409700945897238684299556059936475562178902770994332534979143576042975152328335281149606934781288156934835674131964183853453294570903003261742765182351506493652930527114839888158044597426437784722610504694817827015900636300393431177830453810207757450387477562023050495046566663329192511562934969689064284731257725008785896210196373013034808699567747462026730303118902525768917645825905436234910635796031565104554992551848277045457363010496070551273570532734781239993407394766304082742399877828505664540824719022706098742126501245802445141607929342223079195130513635036119938685795261678296261660807648921533009228430111016839295578761931555828795342980858706941312435349148460761397094337181062128084543863088081343016683630780523938472917275792305087010041187617087335870669035249795252063664416671178213226779673954495430203662245598660951786227362102278895070109547957437611579201501895065785609391991136035029589130494360592757547003179882978136964900768707004527447219218930035339937022369101651333455315878484059570217705489738092916872079994439041384970940597758702105296464927891125895015629509552364582416666977934309793024769775393682375405679847486428344917437819827171659494254371740279330745552941996063856004780118558948481974860158369954680728355214357151101768385611626411650420228021632700229944377550884070716055749938981268736439362471226322138355129364242552980272516201881573477067906091046907152415523400980367990831793121287814201439438491216710093864132330358505770140025879596962437697452861514924026760334507116284304775071373387475827401287422862855200369116979507710009106382324094621820133607981163049291634581305448062598330552965233640350501699552147218845589554347165380561301995423646530746777981437229616282255616603734611542025185120408870057732253163700621131190891849646999300718897301780245874702318009857736492209773502251098591834900476027734557291981706352829043078036809986946571549040619116600839000215219079670640172103323809686509617516624197876931214648094437742052111417547706731565296622543242630705230899051588941921827900846101557373988046849750929893435931445330979285948180697951386821825727822871612232157859180597437353260871254622256520585630267951608262890666987891173148695973804350148381804731094373236690318367871614068492549163816223670230198318005394418388991409659114300779221612563134180742035910260694049057916816670804771303973252106106347960296510895142240304462859564024242807502031491431591116215934709124611556038970860634896500615361896530536314328987261324601623725562330636760243016277585076143624904513632172101148981768889401899320100139718303164996280229336475867452068632297586140848135637153106430455316150466240332826406348116239455791556839692098055916020883843798866343172196391231258735468992482024147182974519084551667479224574633106152454614872259102769948106424723803198184339584232947719922146261206692548719495408201541702717250156866708638514096400685442716280924017097491595309312127952211471429076627645899554796140470740603561312651509538472577368544712818818331947021264570922757675805425608536051094447597623998569852382033061497054732096112432323130042449821215815990758210524692319424783898406829427990274170037102877950487788596253592493180556467489404270558964273782079130071869930730534430314409852347783307020832874640481198919680832897233108653557771082773872297337862721615225675329857503951528339151426542001030821482025849100477980001314358451214096486050726340239560143737791540653577817796706258338940119915570048106918547860818005488659281444319339261126214785325426910463166350652420301254721630589193588325093424865410947130745640715381867941347985974528721640874557738490611284059617805639958559872919145691252681764477109262514995606841962169552579492802895143368780666150601421367197078678037770434936698720442063250861194680466574907427391633601000493112087368843399242469305906652138755767665631891061496219417231938826599230347242245986751280350653884562057901869793247300642157319000677838411212858580247747316338148338039296605346582801296369048035309053063720925781489938433919543637698477785910184528638538265267845718162258324505709095061912953288834576274661328585075634517528298256733466131027069265204756623713927018667314194041802146125712072943270404758540709196669960594910161717131093833485755296455614513601307241053265972909455660605175259231688779972145990360929728998568681530399927678725711045645421995064359155193174966293829322163140307359948643294424457000838244206270429350673629987183034160116423189113240395633466781118276811053379174252590654828380357737617616296031884796070515314793330915828901614645918412171157579044547603057509177733344923289560926952079548827068427778094272021787755011784197847336891649726484209115648641075652975481573705769467152047237054398346853496614004067503965468386840728543559200856251700818035034408173320297545696905687772102444896889997882882998639416184923192462249456620912606091008770348147117554018232957774358197184079166916966906282805075564438930457340746348712762100332464951721136203302039080869375639264706947094037472524329073057838147494726924769590596823826037037086134589258371062639496500312131991863901778367205013322848100683136872439216771652051778926035461769854277117487763146838786954940099926549658246209921933562883009988901789583184355898858110928842671133140533164901007027167464084185694461495347048166563583033795779512187167876667900015438629597841934842878145898860770849275096035828697960996476930638416342334618505042375667284284064063845488946423652897013668321208364368183947103942201222607697352801724418958811886387380773532564839416848766067599973025496448024014546706095706189260883114987852753829959852044735509643835963264991386859485461117406574175059169650659921876019804522755984956666878482974001173605787175087085116520456791383036335348379184138055975647897791861110478302113203281547117800067628974715490274484561922627536983334658834556185482827257805375552741945123376587774857147529559812504779683498914485366223173684926725515145819040077555366990573801802898979009583298214124760971258113087001748609311034643497071719348770278940579862148005692099372777935703636406620867364481622859667456784619626531552483234878137550068186945178895504960277955650073173412226654260078967525877746482625237845278718861194433184697201419956747944475377790804820430827066172000712201058200775082349067477310076702238409478058500336534782777767144744276732002716714818194928347731808360802634059882508853652009621673614382997300179881847313855383206226579902507574031142445253146341852891716018485984623456988009011364317387092907180491227928605750133491233591851348758511449961704980754078142932221255759073144478553066159024755587139552644721315254589173407773353548226224701455673159018657502955932459179403072090157019521881071767337850604635968875631457932681238491419981248123161426458740470901116253828785965161864083849571105505697634944400416613891135603503882453431986243026349119819072888497592818137296993417250562421767704978316557564836613145216264642649090145685599621952126732253832949651507016118836293388411104076696489272806704122038271171552136458750235879404177964300717635701827876505098509032082433634365497918676015905865898014648387643167102762151515744320958053109380081452888295187856226735031251404622997404127165512592693479696193027774342440826013447090607625949890642081794845329824353769691813763299068175098912157911637338629454772171811266191526973602352659463986563404553018789611184082942291644024943743045790005422499494088369893115294565770418132771644756581675535053200362018901690166467242087121349239690237518143720959471605354706732390527335370108674657402135789353124720253682205260179477952892559441105756442974427491774880239114181066219312321067292542635505797524359143561037453651181442549952521690774663406133515889339526153549276047324320451355262627315121353349681541140343756901769136660777016455059401230519373517707974101520049784784136471741777967503481551991792776608179615090992738321195494903444769301605391645110146478223321392479994186985905765013778359066654979860196988064367110898654913613733954666301325977806818780030977576075327557129757580304974420112590356278615602113960356787999088706861655363535827237699603271174721241396059056379873612288660634924504897659186768731283181406673013740017058770129924948507230803249396506990934120700986768795423974266526823821723023994665847235940523662549012136832366603595980247319646518297350627610713640875455082064178163175941207489745641365601689465499152969983347561094551384795032964301309765870267432678610547471751861250178219138087268027042115623167691309117363773527520953449673111129501532666852181623571167512999283140898967961262617042698664453374473846454778966497250302068659861259445055411400050181992684080068585015239736146071196723391633121884388733355221194022451590955039971531966036282478461032056655144800030407812216299996820383972354591883444203272475134100774052797454001076108666894101971005441788228389469594266792131122441820853601647456620503964820851018886656957012885603427647652417333537889696159060306675774480790274614810797710577542255455757596511360970512241831722920407281845038247941109398317436758951085235840903650490900831437890369751930181129144827671212909513420159028714016682434651449875124128052836991184863312470265085013967137301244328988016038172229642893917032361865835740121538970002954019213697125367210942445356452420190200152906221690806151446247862289166806163792477937869080742113003444567516614729694716797714852015157639210722117033433106515576101605791091798155533938554213572845495223574736481289252480516315664965523740526607709356956645822202475117340454992973616512565175598070365566678866141907153830388439663450526357815822403051021954332838051039726949994236557503083790498040415561844575490012259430966765117886199176468074454678025747000429159560438438593408293630601806019814703104979785727403888560489623362681041180832569976241986608423465020544240137379724528421566129482944674934299730702961542296339603178273516331312863872333875550450775135379533178991765926892156988097853438941803174449721734559420586522535209377571477397138272049682148821412502082145346290509492298644477153498708944405728953642383880852439134694170325467113059329380442002623727579034162764012109580357880933861080885504935569496727885869249730037910791217344833330554519215466513262945612533836801634596554442938550948606789931595852254365597977175465995751082959669408843518208375226222704126352227191888819028094920892336945327064435813152373510755509491022532731777767883058616525942752637713276779410901737754248723812805245908545235313469425629291254213831604375369345456003528980075481020079677665026173332385712572480247552164311027774488306249174529518151811178560566879271509525698068963573775897225137152806827990846266486443569184720512369035426418354284797680945437166538000753512597328098771165313939121366314274948968301525223335917848556270951538680533430050637442377605322195477194750443581758682579675596089629029059151652896528840815462317165892073582163562433948180765172811741426687709219331169104098624062593207934771965238217601519986455814728745865666437286897474832246703982473021283323881465789089663319756419677733521059164317686761681877054045460286743136043943016783758604731692077295210682258836065167611048240976144399200650542119511743385181597705497678422365184050815000232415102881899633705805662352768915620557251037736272273630193497824358044028172198141828589852424841098504475136533022523926731691843134527651828843847393426141929279467139748898265634643526859896031480042237557414318302453064457764674275569195136678371696858908759897330104406948544303404853960375002969746928484785326455560227115820031520392794521292669672367892723736857270166392677663269098935556327864216420193606794787453821384227233701125246721359538306595039970958258763451779269179722624426197787574931494054148438618349753567963153222314360887685154020811000184126867147455671563326795919896232927377077815374465175219078548971566144901882872368292861511346215562584466755716263428425994095270319918660282783694014184240693918049874046343497037028444217439838110251417905765034732971171654505270134742922463252597317659237608729711276618086021712197563326301227542241189228923942190884542391823368333909806899282484862872141253958640208991069242275415259854401865983406390588093305652280138160653963942342499159889108300047284205172229011389520162353339291813199230256164098270382375638570648769922187093004520661087767865351334106526394102050737781429310058845028104613574858260047507309756311187002520933898295987729729383836767874675727371859127904142045680902554111577032439620352808069155909328945838598216868442155363680020719491632268217322588352480133059459449254351154795855258026148882271845161097809670285231122382811727230015968133665456549660473368445728545696829205234801739444846760465002646194050514295745588911323357163398082862944276957775909079339613400483709493931446287670610590932187606025769823082972515281738476887863561552795562069692371009751756421042600169227628555438432276159175519825832946112237916945259587936297813968067551894529805018923949972894411629242007059050845463997601161949603089930476314266656045610935355781196250414724475209011756306708207891225027031155186041388116741462564850613450851119842635292125543665014411280289975786320770815848302245101065591951303589333886842038569180316066469514251804927615937544356268475559527148688202209124708955758670829710822074394545455042758008295742100008194456679801497550729883807951360730063985134291909337745841486497230450294797180903840706994056739197988178247275093835503831192404372321726433862934919217179042773121896560259315218705164762340773965278224095380047878825519332428534095005985376159311250157410195865001329342874848072560497777216805960984632588917579221387745001040881542943382729138052208749532354384745234427246390693485800430653628288305031813455998937258375104279203466495207540951788762469655756294622728905745682292271074143910272979565150368299028743675712433427462922749833090793914553563083919328924693146790234888103292776586954416241238817634712738757805480251740670774640294468869599147834488453003151772418651687265580806805747102970608328900711605263204087815809926304066894772370002412910881446111107769607479440404067623665495059421255773291375427195160996146040382192281445597461062339452906491118692579600763482541273505757087011822475461983180887151239110627091321118364917074813860440953149000905091536882005574862890029146651016522164684330527590504791971571069583915065281894116647866993350516363362136539831334432842341180933527622775589605345214033468089118132407959225132006998534371965131716811473657913294384259162762019385580492742766801338161281061307829153922652739400450940677512292053718173660623497251641034751918769262415351183168180942404965446102178324899384190689551891576025577465941777264234614895626229980959839244098271443499694395746644326341699396874700238102822915406842187547224124917067046036925465110865817561630294431641794698484026672334224915939763258575750011007764954325453136229804485430560877357986544071760005621606060277826180256999937322489305664516797272664499088692522956935112651343518680259053698846541204595668961358608372877425039584413270704730011189349432903059166041446555444160845761979844091027404384776052535508462803786965477714150905297953172712179956424213943074767931032291203521651618602263596963069393300493509224971580146307315156134848248952590747114796387723034222837303204802233905926967081643520190181662839064684309204244122391912799205207996576155055628667850605232048910058770944754174885359830261696857431267562682453533154340391094302061676722033089629950779162679105105143938826540872192585063911418040519111921763394547716940789158085144462979435304880217400986946538046097445787361837350184629519214128687823596343498011239156748169290428651529563284862225159944355486879948212234642369389919288200502252889243034981951144499209294447840494542573797654345771978048979570844188492403090799525301482777241439339724847498803706601709569816206961860062366624570509777109297565712950918153966817771646582320093721022457438483886394433920132006326025524856005898194902159696068053771707314835250564967992980609190991353601498761666667241855444267330156635928139344760385464675104430591508813743271894784183738094737344413776860397520933186491446506667182085798821271896066549935983893479563113918770388383989961954297667663202458722550030307049932519495239023462037397628145928098430181640840036437639683916938844225356531682161524105653112954102287471560719097550925249781994272177739083589145732293634259056322265945599670010949406935933482523833896945525052486759517595384263530678626820010796852082552563569732886388540911830858050482749502940234999375241633825657131531686031489817095958082209130065069595342296902295812680931619343269904312803770251247957518406059889952399813189107984176085565098309662672109169079706667285229883065894410428524612061052870922844989610500046805566680612537201501350885865225464365298915045489112804981704983058604110914381234278540935521013777602717267801678226255612634477294395194714750245026693821848384315860843674105591025166874652412220080573254104009958334701768844666303234184189908066337205337113148372599743035073109760034201730497846239705835488821396199177598111475025186267101108608004601040194873819281066319467520182444647894186859615621363657252581795057168576656833937573618884505193287178608801063280739991914298131734073109027562649228458198765491147432311945743702953800596550970542987232011928331864323087981420953455997584084052303085881628553386445157458771444123817392144253263751686041187618878340475419264381894041350679903226615192809382425127842505371588201897801553758701294885219707673890797806513946839861267406731003557096599374913557743856735188248728700956483772939839369887019015538867713741734300159647357990423512489764839567736673803098050415152592979071359311456436378521013344696864344749742117801466982023782080821591262491778257288665483127637439400346333575361418589083115564057724051824102608829801119814701158688002974291799251281564765553824845807485317413267912427634886602220796063978152017839469082474177872299426523267360980653288503724543070148999375410126002254907049892899869834985602781460847303685059089460199797487887713971168205579542509402319294271369381486683346490979559711701684842399481036953622291289287479176482014235728974596676476520096930105413339240896235513881188632376203086149787710799663420751434685066224140796063626002719599073814684635220549964393423115831124649659440917297158409939634855713815255897464478068861970513009064648746574730740573753512184039286582028633199810389565230839979805136192052729797876037342890712930797661608216476302550719897919667262554542797196088088818798986162392228962615545674220276179713534624670845003306797172672585159215333510512607353689858376923611409496065849744529538658046316225582226051993296943133240330239235148537108261818614136056767258266076570631835556894291633140499116393032033398648050997000521215551333968763423509592447726642949003512969425086716202671578634214331202374601702211940220641791204596301862879645935547475102350506087113844806777754959342123874120358841912167242689182248080292395675096475666039591166899063958684251327757921981119773460057895763736107459205267046899477202492207484934920037081694585856952479548037593059540208663390961466857479818286353568979775128669154484330798724621167659714668368866235755805455245235033643013522543381127219203212582137598796259152080177066507266669310466263997798698262775137271291307907183872697775152277378403004385281400131271438138743005063048254633700866384409883479401576376200485649573434543844161189153903929190135147727386897772028012865837435870327296306107672839323870122244040452685390391756009309613783317140444959173222251962485017108819560675926127203063394263410423812488336242509675658187936068480773449343029576871764579387215048349745033327951550774189606246289541485881078932724363417854125375941033795150529547766718612371520483627797893926390970274025594105875399363019341611683764259625687278133633089597633018878063929306971983830773942665328220710157409994219778991860745256106569880554050990774424833613911739993809199855426766849321915205837104853680567573911289373012889224149623306374046392619566987973540340911344034496520119641213430906062524067864251364606003140699498053658198363147888562700406555037955947486564978855928705498842578242777994216967351354013422493514707858253800770625637933586550627601583354989244520481881965853836822580881005839456538360727177216905691549340132331263970944850492249178561935578858629387195002992003651557574715630764719113578828662704944075113216064105314394821913954265800238052021762803506883451030597046102359652226716624019173059507005463452346740799893818785219251022806436503655893722213074807725719333636080508281773577408882133602701396340359708971754240724138780825607353531649552877220386736199105421397327173146922355155821219951311268917947717397452708807757823558941561767979140085915577294982108305194266209723500259419691043841137083534716563127461966205602962016610973404719795706285880565510228175951904389104377405032191914969095356899727795560630036221195084433515148766203369067153154104200879089346049655349493283065236410225582564302526833400210970471402700055293187135366273131937164338374631987620395167946545038684756458870427687827558393703360725820266799008336338517638886669697604547306671025371717220659433747655380464772731390252836240104974533512528465395445482251235016531470724302636990409390527642184986263245866497183530414439468257600411110029005025011553339899691366939449275254335099927590632637189676365787550030816169398388708983328565400315500357859543113672724594437560416582487877876548868788255702902377885883415454348708159612406440087714632432961539986599545645139466099429995482814492353411604685138536723248413989743372053010983357869358358878756131011908078925717060293822415952693774532320535864574241318751355608964535198506556492969749097817792139370915021487294459266988179605886085641964069543155339319573263413563591514479888615925631393387822093617459649295193700969330591274859888185664137421758708226958629187393555109532297883306066178428096408165367863851048759917672495586832811943430133528645186613902607306120417620955122664764174574233095444331822569030291627719619321143682569074579997701897193104873876705476762821151038371918325399796536303660679459083824554910291430587630168922412055724160934944370248949910425498293332015912072306278759222885639483534675141380607766520214542308266674786992078035845210894016307958639662822990029865819817290684020236159750065010433751838176601316745045600850600451449992209637502071263013343926165062212158632280203858636848085914906651309008297666133495099390603980853598930132564641556755915687841004017261988751968074083898712625287953441871669739011789098979816056046406669163995818683823227773526584389146517304808370068575820082221973837718998430844313699739457689220036894154515827455190291000878570093211358667364455337246827147480975612487514405930363193163865039745296277011830803467259467910305189855986314938183501567096391736600508122884978448278378739719920878904982149092734061521413150420325129282713310070449772066018493839391272867574630193577062394535540656141796523941791168354560221104133056650494824610960699873666464292733061311718539513589055176225271141154345420969048085965444117091566202678200442072565898617814903226495001929644812953761089755712333025343490211573530942817133398619933038684161046256890396864301782981167051844122773466544723188735020039911462531240294456002207163493864488188016956576297967965899116511606233163943419256751223368461505164294641662843371737461610511652383949038006168706613571467054174523669925087765659117684285826268050504207924511071301331586587294975580012503493296421203055909110684059953323135010688473039628434277374383702051862956772521162500985020673476253723600233663985062260688060529063665657781021485346058905857062988926285557300931542402785404949506743537085255310757122456063352405355959369981580668026018962052457424268629574526765112372245708902494779179266657176478044957764388310877017790085739063541072231309232528430196557800081679296610376387803253651644299774567669383319977086570717643413345126108858747051298105654267475348283307208249439636708800590153677311953626578178204978821238617557054304351714099811597742416648574277560019873567351117913961456679526692122330360788453931818223244029023219130252490145803109138063065364221549828176049030521170860982959837883911357867632254486326454615371496989392047051504653471003714308126968968764560945843022830691160175373085000242911427224966134661444638478588835656692170471853124363978354965423717354705606046439981176679637395952182954569423946494455042783354439479499508378724303204476668677466197435097482435529900676829227265611811446425928729357276102777828811308010403501986023733215606494896485438319856606908239702618398438639340315462137980357479573275232054298834587447879582332191909644533110537875386781905295832201099404178432644830657854295810838292570925827263592629794206613852658885947724368080662722412919328745711582273394397449532026454952608158717083253299517599273455624138849652046889742451435698670066371058155836518447503078365961712854934914212734646840108831742489716886130845120314893698345299304434402525007867318015731692324530033338661061024545046478513435558038972470631293095148726142151014721417498610480564948562321728550734072300558795369488654616053060284168415312805037274051387630596064696717690058490129339052863979158388918903297106409322094607587560978679275469741702458883078696813681374838224171812920791323496172047081156633160002369696322036258039257736745820357634634117184498423651487836164608497415663834641077666869782711665408001086715434312757045142066598958234504837962093672159392270700457612298295940035409247814618400852772822184898621130349537688305015387815536026661581707186969843500360303880188260703850283441322536411127516681927313377256128452164149926566809848352741196979888432581833930296748704264610159191098923456887094073946740611113221174616046125180816279823422380308537963821069995344965827515297151175425775703047459038903254603888912883779483897421326671387192242987968952964508783649594755078234349928694901427839494306888142285189127243262618988951261427980694008452695747160726890767500269126913932935950342636979011782291005156572947643182261692794902279519804251291833014585702328664134414041315048949288164518520221315638679675635386419584834939791848466402715346602153636482240333792932651451407066965644976895006926966086586689433557202958236541709050392824887050962677051002527808576792761829060924708779688491902114717438634470219151519413354707630960500348613499765068180308046829803990184491430978111492419014624114523192456359517846698320686671743741447833971035981510808073570834421667063258245143484811678864095337881548492581497150231910232316676401368501636391994294164772688067586245564933493070009827286318347805218783929747532055984714250551363332000762228992615595097725029058343823710581749767306869296604072363328494750176406429642224837581249095495398096041074450396714563614699408894794886976143821212922608358832290219271375957677429137909650379908491540717977801273521090454302019534819098978019099614278667728637112220255316485821173446329281816179252934689145970118014697374698633746105285578949813075902158520504224460003635302484145073643125651339690700399278381546432433935054974864664673585088554190270093027214444563969771045369302325004597157658760441684370723174117190487452717252128569925615524440438091844474616526023550204822863294320213414788095120151312535510527113796252727676258873890958311318105492652446984064252255616514877939872051153486474895178948781999092399981128738302944973880499458386381688514268980931759943618467039985299367718296470813813870072804411557605781098355047769841212166191197350105969893599986193715584592738151291279347256654114603629799917237102842311548807096014957413044236705065754375910815007542563814247981011507876178153778074251509197476413304743938290575083093205395518442925636984852974539686153630745035630826827566448266812209304253259368920287642784758286476630509344320788331821540176054411841996274846774618081087217316763922721752191583699830878310758423443840436657947668501925390477380084804693245707138998685598185133451106355610199413331267002950461557584737239376615280505350160661060867161585305295328377205953279333786518129337448689708563760353521790187749981185299490292886807349076259331459132168463121677819063748072209121520241929143828274215528331454751349341787736610169708396344308857773572932535526981956182587033140011860394222791903840401708974688173363887757908347982801066389448080369803168888923161796548031826903648413954110805622799166063377165872801569957251149873564497387180633139538564066946913504706957050431880104533514029006624010340828177977668139211590536474915602925181935489645211519379588771227680130676322293494216524010773074711576217099208294038343778219986602070966791887628577000607789738596103440085174570143685344455094247340224519923725433355810329211643734892148092530965161916541521133923805979433598727180321163157336108412843416566103710372468746925105693177119845831249931067814224205887836877922362612640957871122777381303545967254929651470193618520886619866194316867123529565392743677216363734261294906773141430825668145203129264539565061618245790991867737142623275543155401937538342201144034899694303941156317728106835473435346096939047125220120294147913954863589780784189646529008735865744633658627328637418340063658736767763591953244035693528728376425898864009816334593092462282874049047199012775415600577058210632345078701714137445820065602371941036895181746896890309550947599628468348840908252862398737088095279951878620953255656931651861608587510177633167132148795412629009130141183875342119005919215958367011681800740640870219376475166380381002536610849184867116922712803016755462559740799725194768738353688734896508772789566728440941883544757324912742287429977305900463586029376003971886611058081842495086405267700165553649444183641510557979142220557604848494743120433149817364062877868386466378359643945001007998064468709307044060960528785744129950125780982546617677371183464133515422222341766133053509001282516724119224751123190719755222203867919390975530648229579848988625444021272638706105973002839783219298390191534554395063976114090266592147934902079542613719211205533721850414994895640991620731253180609269147478976589474797612476474844801647103363580302730096300770287050524949123431821391112128701154474553754804116685134329094805459917324302986897565271032559804056197799031063679059306090293608308320673663624686333925364027955363239207639825734520168713802814123002071757545459438278465817590558702630287605919272852567835719421025103166883208625550369873491102261386116974946097862301811822965980023679213508289782792852936839966941316740090003828211629734133671041581791291323042783540314168458735973698827348446766423062683385164546117443347522731057476295125995063574933981619341770537082722675050385691839562581025582067010622641071501389307522234299303470407516719382819775654806368536664568928234821168662042074308049129438522965441502464162313700783125363089699624029314389333637873558452547267292744663642963708683417974287934907617815226507010726838140110445117795552786180565039401999414608626855020132020000654202553183094841207314993190850390120922326461499391628922689840070683976079792643902306527306395370693444881430333792102668612509453191797335688749609044860385839709032285102032725182485657412324644889113085179452253478554256912238061154728949968142624076450155575935852485792456958847798781705785577981248931792317883105998478960864818586030862657131847260242832350808960115128074253753385151281818082313060365224954330477805225669281974841030605717826498606298938078505074089944629421163103233562165153874309288638946481281488402422139518629834809673859468601163969497652102187325370986452787865727534125530481841026914942513455326437538808156154542578837845055769951147038595289849904293946224861411467875898510694444719036536139475696174446649853017195083797780591554442680658453057128996147024304697658677505232357914238703207757968348792610880081073879044125975560079588047606362085997091691191653017559781954380710365546625830748171426955177356148191109280693423651316028397443479975323603608520063044235813167209498424111374912569194252831095466496914569024043275560426362622325710872769135273298321478717755551821871449749617055480447373287553245767267146231542057051041123545188196911689940829085116631772538052904800117247078687480699519205872099767581121295099830721209193917993571681012081621090123719078056930213133866543376857651068069302860282305581313384082093790767992151889709345786519918729458960754451392571371789057352484854360706088226156280059660888115393478285283758884045461689325070323730828849213290726758175999206887065707753241238423152409981264286954275828101068553954894503532718980656895298788233312323786572781211620499262806606017475089792129918507261998493477162370272737030178525148265713092059342891401063259275069114094347867189045637394975082311241741039559528931805834575970522394143569100832122841558810375254778616227975689865373924406161243194544614480918352540337668065242215925646999423838512857616188767555116059486236118036800243759605103985359456516233284021248643135551779319359214517297833747254008833673740143743095253014556045126410004383946139407836136306035506819031289345200823832759696799984611950464579427846578851849447662050515890600744399585923921071082977294231173769942388606659158111845071136048907273509702846714652633663170749724592815999616907129078550562928428755708290547534394438969845942867160095240901007704356418257363404530401762490215612984417508069738062315349388496450657877810785102346079743838357620819486940152781684607975361446650932739124969155232428718064975897275267508556708535588851421829713058183393016383971589033523510884069905618219109720055056829747664437008070133225386018926929664096963533514133074688808905129058173291731888119258947778654556871892116602398337344822790714299940018219906380360102759937754338769572502095822833442702534314010921923843918346066278682395978193528067476348715254074120164006582943178421743923370217926033329097788216911020007155052415508037992591945028095273513753716709859789999551908044026444557846842012097512405439141857780904946905776005181819957585259886757386017573955071440555531594503773708868986194994431098350730045973043367274938114281411186134627964487739226566977298044600772051298798647701289850080597461935934026299097196264758697291635108397582028829506603287106231453723443135996168685555111050059971491853117927841057839905179173851238362150863050688541387541419444148947361019577665445383109439263353573509719743446510437955477868056072215619555090695646297993794046874039422149983510656253623348372675306888107563771692635806298080906556316874645180120113126711551875564478235053726189087438596110380610912878751892237437100868399502905060928785046011175663923353933539535495484506662333349430873492548872266824298659099754159760081927221520730466466314184522234583440584137806628678452667172206137108232427594002901031165067187284821200787669222797312159986395623315258614397837244496562222812734115239375646768294258185864172597615294408509545894210891253095214072290968821405988976217042277243009534156886903902402054465165508828491486153081508060933470339705539310713969741751892536286509167818476842746228125522484140912784057696286802774029792602510505237445163529953522038922931581172444854841826677334673039140145550061469737835727161191505575413266200030229108723768645475973398438995586005665185762287501473886226070725708517609953385085808572961181156716699706646479213639188873209956718611189345176873946796237893457564598639499600892799231116929870701022967879850973925541295236602679559762811560407475757793127131143837782113643283161944481867955061838491063217023408282638497255259548832325985455998806648340492593166198588602864159129675096335879663070873280656237297294283031224290657066621578559261083319690752251081183699643935464975879771979819500943793587705174748499521712491767374981464590773981790920061378946104398485405154368442251568089849436931480061699998795894915302620277122512376155937727640388248964282415847770935241481296043927209772115263336628117913564964439157036156207351912353242029417002938650853598828856517756659562382232056135683820669818399231495806427006076518396166259919186655389086650499557124958390606948703896959804948180646102366029513493430630172357581040697624563666437584962334205708309805501240925383378946078001813677216745646571703991596795218469938370235742863783184159448782137607290776719976509348122362273961503180502406975104605221691803771730205600990615638325002187294113216722875676396291007091625324048817938737459180211512348087371434983472244156030123518612316167739414377793050975770970798930799549677065997290621593067048758296583660384412549615731869152278676743540813545143400222795809299778351173211987025660570548258855065196217708685059989569438656245821074740535758280939902205470822606299313868419951928182091698547874302944040720897306579880679559967927910351107101199323844835249893829477553891827527304041094435677165180172799954443483167307115585496913933155600405588257174675013404467164697252044399974554103491510205524021297940107124895030244032449533844398415612326839213131645714472521380263427210551046868302395456153739964356290341693737162202522127617345048431681319437182859904398347265786201305161415454425720646282299747429424595266911541116174269046345627423050257331375258760984201855893054455405270637430211082788906475473403657546899317296565693738356539582222001009352659991435349845064008824612641824319219201941412806981097729912234382800696126194505207815451432391286564061532727054392012946777023080182243997764281592316650271959163562824534432778841919037602356718639798008559905487335835158921772572320351660033569028330793450661477534064443428729680027058531281522931856152779608939347287672860592324398137134593995690554215848750222538312492773223383329584521290472638003755841923381028275362020296583618281303701574765170349219662441228016777427974398227387810006730670424969680784169695307876199735917275085222667894064740115849263723417157617682556911881495631599820628153258854789822228696349397294280090336863459390715853735739406503346245262147034833795931260192965086033262020928433964772494364163413583079907609484416699949056044160293011468604000115018792188334012790276148268966857327091311696155807853097908194922300646477860739835449765555745795081078581260485972762637727537238255935125406743317865402586346173286989698064406544557234870495484307213223045822216982560815016835490949053856427242496245979880615801240713106787839674659424966328074252391091513903355600358564619433953108943624525900933650806005929895440136605424005107300050273463533230853910878541161617745981019285446606118749768154267261952677893479291162490744188630450572447991324749548518634568866729292499543694659555054814531104504485857017090986360176995042708884483842882497440319865290873297623886543792826092108210065563220379063004760187793847048655068659418810227406409002948443174323760963231926677448167131089530152760801463333538621024472605013365729479090107554398768828850764297599432322925567151418030187194365969268417721422529227878155914899557732349169487651268428961902180443920143395974220504526488763133026571429054225530300155984026355223918037863137540429354260461486406014473145752838433872371238937441902064704497134607468412122122324523922012219086847230865643181730316430270865326889742429705871834672569292139872390976226611143424793976782979295363255529491060668342272083778349668487082281801084312699885086252604560635281565557990344087937424772176017286824503215750768679288128843141771146591538837779950105364157531421558872009864704829355963131698706359793735502588526853181662207054316649671045506960566954044560361440265852699736937643259692304460486386674749834770685773349586005733701657513441407912553530089276901878871929999555555760630727453311514728746858495894351304741102316466985956508745980375990342950124356541823591140998713243332794544182759566171938891341504590371975747222177978942808263774548704293365101479012874492301001469390384628569371200946910370094861140596224577831925503837299601379824468606489463022224132453699115319359302242795320489836829184371923078960805279676277777596667680351022345473165717060845186347181049127486878820961228685903196507621298815704348554704071193759011706235393358790607023732837036987494897974232859110777634612019986827963734473747052597757257619303134877248077555823814107374402644269920110966985137369546434082595683846059815389443579982254879014363015168013246625385016587471293171241625482278660990519070837041108121872006714904079434135613716251209187705864470362981873637524826666225311571352959904757694416002490014908252386898063691770930004494007888008680694553633914880897353294386576546665514239908506316043032604736917316241742968479314966564505290097864433421829204141639664415447326511132998734849907584586000377051676991494746988710912742062217200774474528667114839439992103513987046971515820039105290834088684316678059449319495668285232060863974165217309125607621454453740984916494585748569661429905232040515793242809051750723697088584676816629537246050038081595787811600497694408763292927273605262035297020576483902871218005592440232425104832586429208654768984862841675423811927626325887333345911232259949896685728449635000732897433085272663987263657216940789660553961664310506901018408726435425121097513169017542039435572370266132056595826267006991802962221090583689446251809783633615456922879509558259181500721033374381234872433738288936573851295564603796101236820012331691972988921545592437513384828883048414185411514010109959725834456578010037062164668100221286561140666096530104573935809806176465360791777931310279530547296877269153053030379774818847953246392327666764132947477879091555037334459949689007419065814589920837951346501193738183645302380486935686539867369616522825421799059874938199438602014176460385835247477635877603886409507348828625659370350322642388986404206508899972039420348027608036619289840305700481996008462420890214532064935020298159160327337691326262793817267946890490547614074367147050688718713776355538008975297889678364810417666364621122381489402290791717977952075294321066135257488033954451993564246170089623237945369140077121070587629676820523669182466308795692561488951731859264828702826474348691849042927392588399206756899763472849333313519077184269780772539087706034851090334277719669820786440728854375064619133337037186074124925269412688203417846423101848168740115636446733982875807129495798969283817953571930679888985978683235579588994096270529853479604388423807761492225913493117445673057136470083746854777449922668621378296427310595852791535158731896950297859065388267869078869048523117217475373682496614229340297655160422835755786358210685778240411093487638874632974366070296888925245461570879877871578709869150325788985755726517164044109968363134160397541195167025412145875656626775594711468855256270585037324242505171518299339767568584954494932054273585580732734116295219267594818224422200564454398187856609880608290646943024928689350151194846088708385728447714654433688912393439246726088864678531223795756601307402357706603400382467010538437736837221793126450262577712621809161255202984979163183554264588967450378955511122886589699654911140064279642758631298187297175169394141935046915388852743580714423565299712702709111933885650203176456760540555888428941349271696109547825744895272155909294021564671182348147518219481373630854436264266570655857768820883738185405853352620297358367081293034040238414878042643099493914470295419041479034880678028268243735899047968440097625149431508013225559464119798206053428116323796434374540408284201204890878733920057232147199612868281447227628851467999658905990013277224800139170065553715381280747249616128865918165715269310129084252979756512450675956382791201130124554284744575953201055546258921329359709376729031634227753830170007266041754249542892454003193955679483117143262904441685314497778710100400842067043066737642834848047455258388798445382115571838870265237631422306376189693927438780508789574164081945218121550263758943670582230779398474969442738639467390345145502240840848124983545052867376250030006256077549398510249025812056087498498996323934576471213983013360035314286210190449064143240555392629920597040304257421184267631765379909097828362089583203913932735295565295163346909396575624248396266303557357843661115094710869863022360850971933352552141545130178470707508744900892748301059543404188057681719885486997637245822959654948935460762758254701368978113800629529514950025286889671489363666849648613557924191460059814037247262186545312617572303219111165987994437314171915013268135460156457918982909411541574081882249290738109195595322046246065902555769407061869055092726610180048374899760079630772053118771584018306691592220911631473319558836236392306022153245547269942746908161988515703528227363596568613409027460246918045203677607151192895019152264795843629228890016814470360352762067215077272200713411064529664344550473578313964816393153586040538816833861641560997924620117686083271409587825748951306398830591473558371622834634315503448541316880089696235051657473939082722718646246735659185988180000046351827693646673319334346390794474013845263855729479059534727128551731856286157248491299197880585455193723423765500016002804619993444196676848895992380646923117458165916933664104866191509817648740394605748911680718863320394714932455121385206739209983165654249102501718394227937117683023111320605819974042881542576025040749040640769662743702517442667405286419381423527698321008681185396749472289997964504508840327197569387862661448859606030807870347354902422410267613079625860479934114748746655395444640600529940584959040947792747687569137095967311125995493260329336916274787094419928053853806195107036851164197719619284088231430894300297415306215285973720762885858699815703135422425694410060233660646169070891927882312043909483655902631240718695763200700570478325098132394339789615384004396958819179673341960929403897874066559916970852663336496175869019242399840374748922261561588786391882889799525851205041089555378121467547849223636808499606766109799557587763975579893259465870505492499784941065255457574214991895983952808515166438773106829515083254552700303761115338461633067771438625653936686183923650034818666019080186125909865784507798850136418396038694206552990609280844491193927540760053209265108811988955977815723605751519247153869640155232092323843215633337915430062323500984667107809510299121351600944307076836337126288672392935211214337837518237207770047784987644681880786160378628753460599095077415475080169981545251334661669472577678064925803828003247817227828191491873545867670190248306499845255280407461981056915165845030304569563305842860153813921457987942960552390246693824226744270555794265228186229079086988731564852781461633344547055052888983086912226727404245302086563739395071950344473396278444068335715415349431819706915407502273371101550150297913388255764499079757968013506257128154810844162791194198025151404144624977077807127777589502422408391548269203970883918322351982885028653052144334520911234291206807322588946183374783745574804898865530297572174289133656488584130211556275040792730960131909151885464205816239653909559745250176190924665260726479169410645111409657552467443430766965752238784331544294447957086394085877463072400912903846778194660729133775987672316843142084832952900423370668792714987179314650771799441158272113538166036548126115357516511131736744165238018480653225473585465521219471585319661690949449298951471963953085181325018016550060629688014680790174737394159678209620421926059650105779241319258455912999773154685498671197592671539948054166699657349860163675362425211910428460492382120081903171286849739530514475641668417645526855840733191476528178334436322522285914412772664537511281027234589260870933524441081677242587643309100418306405048990948139708726759052881508321406027718216150908457281691685426234583783817477904925166823258308396102996724568796370967953586748123198094963824787421233378674195924504710439771542532079285464316235804442767689329237445664162919069803812927154988864488281768116886735395741717425592691459972676406340022020936158366210199982235222820573847366305299678013327268967499998839092564341835222431974004015549983315262216300597624929486378821948893724024395247623980987695693041390378546831523924056772128161361090666467392130339321902711248159940241937674013685035583560423723898648368322673396582396118142880861083271804157806165854155249016820384415425698144212638527788979905556049184232471630604672456254256045880145995360282171128888546175889549389945117738239528113602500748703639977665422076838713387554194167765113672831225124006408338749235554747100233985329147208037285916052355970615040500311773621063467103789579553127950794413579533707192253829225046574886344086869320268703246307108999793047538621828878680667872050409641785874741411567078701270411205977720784618984898937201534388690739778407531914844166314839517369466376528729922329546665746173945316541179578560402127113056888576620404154732630542250879148649430176397545296731547034368358872311171992722985080251687608187363740224864535673734399693106447172558304373646244979219866508095522616216560276784363845353248357841656203136824122198231892329955313155994509736528603918300304485804297792019082639597199786457529379989957517997319423728424193974831111622075752191063448342712993573309939498108924944788788192084077572837294765897584195494768986317787785355189732174769255836033725552763893529876007579227886164507612855919575357654971837352985831476488169356884454862092668875409745327061750911099028518285100511805763259538097737293514244517728201845058273555873947921543546788817965083508682740068343073641635890682550675190952768391382752500163200189663424409051945459355564479632788823912576473171144100982716672784200039199064319213248281135711801952203711213514142249683661026111404711589918942135623606456919045948557874417189170911042129426681445896596467017520373041255152403986708790835681830831673883450183754367084912245409776711447563641366919191295384917180926997235463651964791894521263287737687229721620549519674074108687216430279032170687185190917405874754490971232970363487426833657064037906256398292550873801199252086036627966308888016506241251666368156789602314367946211606256922938505762421087871245134159786081383105794573879075632977143597774993249335398210758288887516419265872873322829717240158074394226187716508089868122627081582497369882989654656791259618633544139238244160441451088470838863622362037099807139964076627264685336811785197904650091670119598295576674399502329459679993889795582729174780925523520203773025585865423028769648268056546365384211791821458680607592767231568150879619306462824004166836309892503315578437322886364325320465065153168936174197753170551590037496900251660574265907308169643569197489127099438478111623822129501183727831714156912750422229744708879578776397432961090570520407852841614950826325414351812264641778980833434634775759642373367434218481512284017159316596995680215455509003855511272223354941934791817713364142675175999498314176884386066233500267584387760816867076331630183783101741472333457785076237101468279106893406884618283561338572218383964592068157244080923702285282489684312818804574069142818142023543311816386610201851642819221707200961443395745471525959924702015656540380754597077758561593884780298138991039328955007774170508714962586460166104420919481729737416292953483069220547320404742077816208705339119795183664824887831191162649841980087673132950470756837940353577677411297520420990527453319388231124664248924252307186582887500075148647608593783127738732737461015210635267498908593418530799353411475987919911308074433281339390994807364837920860535319289655911910171512551490167936234748630925508380278882518773018972939797836649423832324890726906710316099881489789989611924379641714696768183327410718000696482545895720978747623165735702495245315150970680257546601793478747506087680519275454330859965734106581197535537152180360208233717020864437189121384486743292013626972778322504613851005924523280341433245151697763209812525153447226107218875547959934115523316111849299674975499914616050574177912106210509527282144980780710731604582953338943443800104528381161865064592733905509920043302282837937435040372800447452924095779912355769626775062302823686615977445859116413665535027107851194049048254268618593217709235510088805142363995052779691552103720046661948511280848823975676270946452550605053801820783415131919211875968562365924336747346397720068197001107733676494287553771425067068218788751444439785832970983794215167087198776303097097250301363313434187616071746490830424375255190359975727427092820097813322203637165602649572786716933254335728202994311544238824552627193977237504556003053106474213255928770840124990769146482964486248989679505931489553042475703688671002642002188089116597799967477571371303736181967761349061583916509184240673398534764362960459691938930971673491579701329875024483526891906926046145280643952625881393025204390466301315184908660582520173499368069508967938187290956706394901747937343099307340475384337123709554215281782088819655861005602702541447946625787401365227905691566410952115527708329314572784272954952838348743753910855747027455867049391827648926595322447701464060753623835450021413882306509538822793373947723260862353671092558137893999599885090083181624986199139384732168263077938442782748670951950866718890019700146296561897175567446004132230617409419438124020837739236110085840649470437466485070135986500931551957178370722620498399900306863378540804161908863380430166649425827607016937253086383818421112524452822387535122313828029841087900164878657198848474831253965785706940903647478205808141726799431308871537113320043797781565422430127590424204409299849267841105569344570830430559993395510905857625303587431282402744361546207176359302088363456706142726135877114779676489312151407822861825898555377466907474960545504135989803137588594532025485433337713291163964808461410515245582585715215812591557946074918538972418693527381961079173558374070659819550198886842231919105118725804468569446493078426895528030783735765992989195436801258901566061910436585599952210132414653739514810719251380664806578386147179169870552777420072212391560960194576086547249025486837040324162244288770837825810649315460591157733734023744127222636994893173735773740368961629473290007741419087172885954216796478053500167338619482029057440259529518599953690437441658745425615139163042253272168977944001493187027341029974962173334122007949589222630350801321909450000495533076781999630491231645239639042132585173564234377589610500788739006805334222629297814556983055244460382969874510267940125335672666359351445816208048965140742747744614307902308304441426465897131346724989790507007802933518260568943545015494039387617842199566065652307969408796139558426208889820883123536316315164018300041287503469664362875627218512564216891977092642668193178680766983276726493146762568186048159676756178227590327849533167518287264902949622174493111762765549697072797700059386796087361889264803436866871643809073373839900242037073797155532161706540865235460444409096175589015717409435383432738736996933094916181886742592088910882871185463923902859472889604962591567466885922871812381987369079848903926923952258695630031419909814929999113381943378497236364606374010000648267591349651286669024869431792406956372341551347010618429761203111288435851409701212674105826385752373433983758980269536708914839657581917057082194597050789159724556980066528566972734463427187301751900873743305475491749441484561487907945189583070695660242657153668816505746532402890066986195279974719248159733916417828734613203813675198394426348204029590473488705939416523621233230680182321316981676719204680341561322295367817362916875037655151846463704546432489694328516087003527135047477247960007669864551936589554776972499330810783167226083513029901219189805155080318800345284250707232635513901160525992512779782681291128440111621845309994699255676601313362474638579568701663407671817586246446531846835867924376861313884255690810465892289281663633647538034077779018260094994838803823380955901638691425450962019468925128672986273604276851927680425954431791229229748033718442578631699195304158184303311707529439728652864498636140399599675206492656577065171192283020032538874303756526253771936891073719000235904835380804102101447796560768485301743805556252296330791508810918053643067834204398290278231420511655067646383174897308647995302503609909104079917345171034786122065859492259190135053314232286873535665407062700713646280832817038159923117858142692534569529695263604579962298903927871358236673300076285960117529606164170930961432217820915356947698650043560260604811542317341565885891672506555073886419135956228386174920203655701102794309542260388503563207714733876239459797740225320669059239430316029516719363842654120328594577110448947345093567401068951544729689505296740550534291304240980214484624153146403236081964160277945469555878183656142596183134436562327978231564529371171745575944180651622704502831425732180382220361547048212864596608309479886478089469067933991577291520685087562340217920915620873460297188193663582350653704409973630886436474722566349912330935417179210449105460596567558061377973968591218467884315077520424902703447129025722189835686725859790551974336900909733821370601556759484335052533628328219258373133784882147825985243224863966333395863628535023802825854727937689127280546758397239232287344998725024739021549503303687313548808329762688280188051678259274501504760253380401840418450436314746330365115570402374253329814409292519399015360857943296729300598380584423366756286229301084618950265986745595292070177665665361608708450297494313038027693116009481863215679732410196804950221883382725039185427519145130259309438320342146070361621913399852971778069387234332703102886292437779002187906425702285894483558926676284184855786830314249011349355560177277728151995813649746410238190263206929744530587394665818102065513961127589764558949759469114593819865063489650512344652881826706023007048249769785594959972294416283383341627316915528956585069963371069495318755451681917690553891593201733388269842785810839255743995111800337745357213579250693023591018264048922059922819906925338153671311589540251328604002948354490374636540897387287994514739895646153578531016241393636348283787355578204649960745674009532416854799844213915202898287561599887096523460036097242316640981553161122923070136665330315367724358012288847866421565297756380135736527868367776897070477841684710134337133504742376436160508417465573576280243200171501181094415111288770724917715357501995588091084718225131106324698961441854307780566508246540102954647509726989507293316234027320618339931283173126692130640503141516021051066280261020173539519358933273769416677870662170102898231225393317322391916417330453506453392920769923419919801838559216134843392357501111954494831581821724219456215163573287184437736611634009571461341029836742231135661929378468879267543732576288428666180876102254013142233472633232311573866062276398252565486057963177634404782203513962671651621589853313626098183097472990806042203789950630203653155129285102999190791548597897826299827528921472930200826788684615356688678513223970590583137684775943267348951953781225010786526231707376466492816931086750581799864950383559612114772635866090195102760976379193200052743333964169918009401695414366706320430322645575591385970804945256769869266810215159007401857334507341676400468953563855190820582199675323752095621392173280101552421786972273221208231687554301177704789816446600739789974910994456945556044571195037394806320219967735770795006425011689604510828406955011235978669908679481149056890455973503650192175267438006469752566707840735351697317193148590489812212104098350782431344314584474234048729450319347664343467818584812628543714592863294097162259616323414529035661933501802628835249181822085670307903864521284830312738537827999767685583338400858420059499199106029715338055656314816140446870898834720333334333913680310774944796183706001648135011058588683876574099347790961725584522045042724764527878000837139467307790438854327151643657457573725698076856152101217098824867770654768454921654392944133473112730111970255450473994595886674965089256741250414452068216373550957031614270221170141255034452179356620665666439379804805304286340562823526031689200403573116049847889355862559106741290023070880573736417920966307648607927246685396368379675331966587903273995299470457465194385379906861941305928138672203251470420742137034046907002887846545959199713360775099185144927465212118728565127871125873057706722955427046174897233883769492189428156257263568696236563200516054085265213112682858757891741515852903906392172024740303764578217729127080800948717263319515828117521464458757737263919052879387888539595154207297320403613558547270013678034014048067586786994030536276120194977969973239069330799689847331443231023163400197699247414765143896037497524569412960494396346051456489029269308404555182373861338602156658815384050345472894932695421580018634016105298219402059251972621270787627119699932275117025097657340708238708211622693234185574514426929590056656589409562660502669994342845500944286576125962036745131384533712459458586144053733482370904959555447078643012153298963021874145959262946714528985978686012435199658673583049734361999600879096968595618362520098443439569729917981291025492738645709828946993849224960740717382458490998236789867974674182293351952696798285111900955538217982589234456263391119046361833621976822118121906710452575462568520843107108576355649880546344543736374061629351482443827058691423757057723391109116278009683326776198972715021022432253878942583066689951212029725042019487400722579714581935234967150936069083382905521870195109836802519309593730738053907400600448713244069344999924618693329705796481271777648087117156129975558040945166362025626046120199156393214066311094628662568849443476616831468200840844994594133644224024613441287733741480290598967427436769908933164762235635249829624676137845371502423500516731565407525788890445138450975454957998548588340880173620975639954512221360098174177815559732623817152501778352411943589664545588100588014795874269074574615050743203065334441501861000849221982783635980980335974602161191525873917812119829824795780798743601505828685280068818759518327559655027635753208203340890934281719811710106003516825214445316410308585527186233193542862027917254217187567556279578363892744368473332091170189799450099844845954860358919701505324615631295693219332316209391642414519904656812559201148208868795448567775678240147976541094682917758422554227485978596958391592786811408168277088647238040289310070828672561794294147151499384943506232753727389041384640569753104613971406283308085424923927373648823647085232736506477499970192674102276958111351924835043561409214217228799944405546982755529680672131758242235042496446605632198975038231907007701181171521796975630657912086628689033668849875080150877162595000973233863743229566086401214817326884923345019344852400386603176770911101010043999032903013368419381318809972072217440001399253991955783684822561987464656321058967004439779789842210144125058117232994442406113740855484850519298199869369554769994146181177671251525560025945122111436273389612608265438048818443494386638970542720589981353535414692262720031368642123082110173278694744968031004721375974536253374359501645843946071737331535578335432486727115772771765987990853745773763981007692561744698999019836332951142967391447224642827343250508995074562772634604668694567344134166353471859452557770564153337425915450383927815954175147864494663660964748045155322672261401515622287126281333729217894185142129456614956238051462146334379809187581190087641182454164086806416221128027604103198560652888283286632749936453222809883544006008331636872471337398987498242584084111322652934403405858445559214671602075986637493975021265390271281762026675146738211120005562446860354190341757906294662058914539419930488755380301171506989379554492791058111624755743382765078941504843898373759868649559992532243592642065022808885543503482991126869695383181966212515288563208805598218466743729956411796770972463708977893280380303841068987507526072953287846323591130546282422975998211386752156492561425202322455993802277748787182209709707997059205180059579593621166016624686834812028181233569019752292846072933931934956400348931624821068144093997284925767720280097756668553810533873950039315860524387271139381006852060978698238803850613971253525010199805963563284757879413874946397640194975621207728103138102412800483212761214094720602614802024240428796991306417922745581897389651796866978752932227346749619580386879797177855954083993401031021416272604384320256521427725356990579641885080716652766974316780210279699975553503667825279354194341924952224883146069617540191479511331707092485106178201110354551633136393651353829362336265450237547433395683770263478419296837888413727919875863608005741485877456372217746151214933616760530954414564830527176908559391540083500788152781469585771906086779325491596254529806417586516626194095887754027001989185694161835697306676194612239613122494895195572025368443805315829848185146178915136371282113594833938935928735625829354707788996667447552337961208248435025765094731778178219559112575579635593099780483702949075275012621302660542243728180944509509516794670379438371786686805252051300835021249073730978383835457088498703331101281269649844396312166012801935934747938351822572718191444349535579006454312380211072465995621212619314669908401268405234554538601306340791313526940159308399976754631674086931841025840217145098203942758601567938480160349758388495745212250148255734142911867786429832792748640989839649382407031586879571902924081978217921209952613564654037124898822820391032232894398061164905221744923407718396508568733530242972829637005182375016523657368598462464672577641998479169807218227309701675505096852019369358288087394809502070341218410629519721870144961043794530792617104692277327076216940969707995055952332479110397239444974888736145585397246444397296238991957286988404949040613604704025515422068746113704195575921279276171944595990464048486908990052723566473353828384648830067684123778999020204319460572988047269958041042502685207571388505838379588656375397165906882593516959989507586557615234566677803565876173261585193588134096557219119539899136011245926676937925246273827894246410524336195735562525673624232246455456680034556555269189698705433178974829571607695473424788966423808154068675807096736577067611811141087907016491966968448638059173817370313662680751716832224443354920696374371316444782169397938366825483140601448917922449411792410716659964741318591739676255631655428707180090294039015032245931294303843337860130754596616168648735525994632894620013317479647453837799708614471186009055146036576949807889594756386820737588868877421560761775093538905750670275444346907594561419709433574379980097606302875390087633017917110027999574523923099261238610053258915208013127109877974207487629832694695183594835564964781254222091332501743902177799789596939809418086967156940558659414481100659524782196262160760655650449214386845125176940337495204812061362735217459049416644181549311907801479223319498395473812974166160239022581777161632270541234728983581413475729966514267487806072242925423467580369909044183183718426531088531165076698824263701878845467512575309061495886967719305947703975197518927614761182378685389619604657635902314522286880661895091667289336174547125631090945691550424181227903503167821861859971073202887567019392969747150478966785444917403178209213032251040647746097555050339260913791465603876416657251238754956429174625374671734909625649160130339598058173300930542053981722754795379247466689702180147444179915726832638212575200023899126355564705409594590269751372330151076745775246669586381704972436989527710500999124923410473747988495817467019201201280567103794510530654900465962619528719813347529823137223108842207154648918435796942527260766366312376947175475965339991624074191253368624475318913673164154281470043479456039699605081346172056946738870995183340016323614735175275171241619124922066326499838928589263488069843660031184831072623005544389054392985985173338308384006221477480206697953880482444349283392797291520474813930575419998080461004230258024293897834405712670873231235938668578175346001173138988621951454321312876469812785448620922998652752473711882359122107326621243187296279352846366087298427120259091059376800699846521390886011259523065802724575872036461634736740933117026503761724153641217998796953873267351988489422669899556890182399764729148355778386253867980533020097832395656884225338704349895230292467418075988297083167524463309664739184969797788927094904543304030020346415185458067325636340111941284182055486371337893056595901155143312084561489374694353339161161510900450961980064577404660100957348951705601588245272777008983169349043572108308984167107378319274375855350756115189568467118055103248801337792046211365044001458110760457124089553088938465058532949276465023888501117370270911185043592352996496094382537431732468750446673809285053949523520186623282232649562663302015321149649435440249857081121611072355489545174836827444888256480713137285370084225784873439784371707183757891918644000168378216253583153259123270483742376499172898494357872462802184256931617142903860370139967781660400033081518199695319724254965238682022620652581153147587290005595394857190583718117929525495179263381700554504932416356249394562347578877215862992753876898025439783831383863316688799752838186590687726783355753624151565276477202866604571009389993736906591778992025046310190082892131156341234375237120132924401647250937771943739599003569430421068674749823760055982448552409882743532792593289328939170079648691808296592935140602839052457904878420033956623045812921247541918097108164534492756410003271755454502531810037698871286530162488079295971131968148251139383498746069562622579464846674504623286809631553175716229309900320743216969274350872681637781670090596418908379892195289191578397278755685373544608621244879802288525257266890234877130260352489959265910544476772611112898785230691305121466567100943731368728194137522383134120116545313465556389132346638926331942855906787968850761890471145088793717582077203758000462281916100456569065195183774354238631108110829823572214236498215432716288043407173076655169335960802393682044294549320495499282450349236072092466201526130814771871373934326488309977846316795278506555169106759858507451527404590379002575478130741080962345516844833914043333568781394742755904147747612592757440738771546509689179960506934725584780418800827187877034682562138212037246834168539539443819620048282087290893469367046775065881288786792328022161271883580246402754822374166848278680314683983727943663566485638500325997043487217523023918066810582743911049821242506430732864689588075693386974971664873648516771874196997451435823059439752544052724099065971995151727508727496881311997240799301731670596754488513315644135678294666636898225422455210344560011152063962046850090978953418977922162346416880913552065419593160128427645988024239868685403098346704326628310947587950587959289662869847993656941500435401140631944034906739877999637191086787941492717132571551256066203249512695752576743016478810036363674564051690805076992510042640027363768012477324006280623145106820306404900271838314906687832019271798317992353301508854104082670010720133449918696458936483690636192660067874814717500062523871363424325952446264013616556228695229793191721891036041833959088219847359592386925145815490141763577809897389904046744751513537930150729289108634207942301312923976933587061985697540896485705617351190726930774075259004027231795112090010566924808997111787211348557275835549104825518715264511159929725731006501778232706873892226493320345718605070958573915150024745622532370728711986558850661822181080883399438109536856629896922190327293462434960775737575314828508200438830909442049944788149404532850027138050895459135713296459501014043822763754866758174614920389712918897620573396918621413084712799294304401827448088491517549880679156164593343071984147757037725309813516829412489007081635533553394322833043827709428743877352945858120231991541937269749197670200137213759367393940591282348073983725377646430853335444744032506431402855379082548645247309760965713349354037274291012729601212577063716465743672202174174224373321141336966865832858426338155834550696235835215464787148912317072057870824393090076821769301678982624009285224616763469058265066783412895969376648701074148611405203521997545844927402958825158013970785337834414466396124067464375359916105749449838835388764374616335799814814571502324425323414764975013509768045782034109736927344037390238272558101572831349215277513331822667365367557312696366584598359495453741578636407882735820129317980378631701420197782561479931581765482322254382698756170078538780986348584224112292981553312134055113692662728282010568703193677667820653834937447008276057830008217658700364532022693347937240531480836277131544508367709531506487058708131824524096654188904814879805196563680364936024534577949761447596403030156292067724881218264893947531807962492986671367583048565099429743350411937619464634134848028000234428178090547791087737679320129152319336632654937917408692883223280632193606832839209815065225096948853823697257210721768789511090832551020909500305500788653107587950817070460401883140661025604180372100209418826857411427386848781757461906157645996010839262641763152680208588432680311777885628607684460257698262761117566246256804153502047288070119454346350571242938485392762629422042021491729070067937703897088590910627854970876683945126605257338830999364489381537228396991480125387161125218011230210724522053090963929804906273441032494322062749876325251228181455776062209056628382516854280255366370062841175254591320593909917400500145518925817091125731399257862337617159356954877547523002604304313843602882275716195974656687002148016244321753700853219178254748534953575931858827585948199311479328349862308582748987163859514082497990208178248477846184753723149280092337094706145229822785280415817474598007415113139817295210209488685363168696744877627105242199600371533693288146410333668406010241246216270155349470903979174219287644134202192867493264873534023238533166142737443548678946161022476889311251104873906883119111369533736066824467515679779565843906498461456918170029252043696535505286241838855831184771940584054195859402627987100294420922672150854861967558721497454336919906909644471815243335090384332946890416264236254535127993467989993967027584410029353678068504619184281931123043310543439144185209236090323758128733424637196395697078972639105224057561219779511086940300607642351401783829237136303853032771911517124349372632618745032071595502961130030982750236921697351901367128934626027548916524546112052565693321348537483247400936456487922699925369044610929352786938639679118909498867643840357054998518827751988774883025218843353988597473656103139084415316943707301713415468940622877947120362082177604542266778467162136684496218515842531313089412172387863062424586881140428623075708885976463815150687542907109162530812535895689087093622072788233813127821781167567892043581643018257049175145890097837771320928200770994987312743165390496725761022756736246519855770408121179708639016637642236923017410763824744130910282469170338562693666107480816006946882632083480843907230093985942625437107202485834706977861692260687598468730712891136812315385030217072943571023014307911959361616485033364264084155339707238320391925219434118180959621649228803141804387623986688962056903844913563776519623267011048890114141559305236078925122850772856777525519982731454071989569595813777822444409721178942086431228566102462236312936767388358519491089646849463589347368992489837752884316200668480090155223871542022189798131882068395007006248556870883580055725619183779157897557448171885738982120221607929017017089122264070592086955422699705423084033457230707666882191629872587725691517773681609758654851391225410785338093237002977612707821294474889860478865467325291943332977042257977538712345192187065282678520784422106822530513278120845488201979702462515407045807846922708988334864621878748428990573476008283454719482853594896583243977701607742536505513992361143080664098573083833676791594370176753851798012769624523668861074916571004558731536597206361915419136280270527160724663467411397132224175273545041522252278131093080300545132896638370535789082306869467995375220577516241884712348222193161464410200027347228750226585765445065237180847512682441014690369987879446010274568208548474301417582686024873548806294358088909925677747322366693297907136791752730203818547909572113191544856000024215715616579408147606553302600955594523164322760342895095577628623526560817189530217837562527185387728835663586041129033751448012859084604490697136650815605823937188222225377180929110117740279886684663265535464906858824282679163706706669251768461622490814082425573617572887415508068349252157670927819611714825941347688299074760141143208923964816391206314751589988875950429231195775321481249152541781035914053998110786068212400436401623864165205926876313113757157171226404832195350460211884912362666549341489323913730179624235337055972218884793500491522866585496849282188927997660111218058036657545917561657027323459741158173636078024162085242476424713013475353395360147257654873797339949743521740412980819115545474767832651468625884451461454299526706330450649621626992438784927142666041326014664348956200380690581801335280068243970336411886512917960686134777885266033452014100338467642551483052556278743844426158246067278927830228817841983382858657415108214231617854901961544623769510600346916717991690082831057166319343050027297569917885415510493677288723359550679504943486863740391570175639680197562823013470351264603573894547690038104667733675453023404933210450621822597171246485208610910857647530178322822888277749433946687543843529625796672409329365354869210649169962247180876593863448475327848018390244006276067747350478003452551847424656199855153283790419017016739408782147106585915023751379713038361179302838862635449537805073909450570109614992844634528765503510107896557679752677444962091027906707923083176186227039970158704456168460951900552585656274817824357844178283606509753680515609052000024495715491583027724556672695816286400604720059916936680822978612715603707012634270154516704909356277775047874725876118688983954826542716336562955447534048034361379981471534102626616814660221242837933743312772996599136825346252271504184628635959010626448800867532370581796383448503079984228507661357240372892711251539782454887250759138321204205082255640611149838041510505985926035651612976565852361052796925748279562868691749241562740726570543878859920515730855432911650205173055962338772412768075224282193207044454146579454049874792620633325760282112909520858816527462419017400759841770172614057246162821279429533842340312432804652947695312600467955384989302914876357159037139268093514623167777972824254614261848222523887444211572554325200501111350836369837050879217692110128995080688584441270831519731838668413580333598899947807925254566499317238930278394896541843803425306929506168233890620982587342550558226041954959728564986486484135998280087963933450427187177095484184337983065989634668410376884340018564704123786528569760260113401507971403269246727539470921808496604454160765223625198347643270110681589866044265923799754182508330717851565830953781797902605484330592066751207125379261481091876232809108874122896502155542665055940531633782001561328012265941579711386227097087848024710892812776816773710962743953091040920751350257507471844924166934763685587967616467708914201305622729444034647418177369622123135460771504860968589087699063994598741017574024710826102984299638322544033175953957278295546346358140088176714974328747640596798458036983869729985208739931789985171771212249582052853062591259994301663088548195828763771837617310084444153904215543754357536986399764043771346224228701030298994505792757753902072252590160737142135645601448911818183063789859131444162063907796226005634984201452551962456654978166658729682767393449340939763239229795442700642194078355389889111900281785027813080009082493300662150842605287816878039405823387318159732445248622171663439058993848378942167891809682078508669320988883975657781427351421938074251791078565593370666471813288526345606459417137582991583225596547844837066951635319642342232599946787622032354877332615690464143270281669536356188675039060677610064947800145248650083754788317606607038079752333533889660306267155439197627575925842995416529278766141617954332062790730666318575440506657294446237307326034837555640298892334001768826219767466982141789388889535350748124545147590992979965715295018622753494095744376631786430908600406860720721226309042858282511530884267585912444754787516639220993608270742249745798130700037202147203201045583589381079599379098507896649784269763826288004047219803000757227079852814078622136581336355310909305002360488794336892553040763775586477490466449285674326022692066749795037913974117354957409660332141728853622523148298452982876167304302737521519198039146002803624546879161972572765393482470094530401325778894749226444747731913438973292960892453493797610716324150431635385796018372686102669330482807619067996530608979452691775452223252879360933674382242262925716893666887646857920865616719471846123498223473372422051223828784547393391078469789572525576282852797779813885124889829022252177261577076192971553572367745828993765255875568338826522428018754384299095525736537072149250488519476396532971662292732847624012963105114327577633362022035770416428565149582103979234693032883959348268193040943875373867485008918938452160669164678922219633558308579533288120556612205047130089354784135365012823459891262222190811362995594078514301903944707369115854497528823965029030559124258256055826124445527566093683298606552106323845509868845929325992034382738974608605160292369785298295069354017874148030846395788422245948793024117396437971848282582022796270134625248194743804694009968246129542857659852740482207558687056151570253353838924944668359356959983159943126685994033642556592741931433416401711747059954944425009993388457729694966388938182433491022645039080374783706943500379684666197398818593694880673865878531180870428948359598408383831085643955317957641493881480816666446568395921460331045370319486401282194481068157599942286771556760529286515541820569377648425731727901843206272824173556720480663889554833011063549640608279978040655849246558572894197054746011519848718279123756289800236418116108354634268600786411804635449917750353470965861620637494060434173401664293569909420680417855442593298363596269276150751933950532244404472913658328469224372364286689097620158231846127386800682674236880748814395921053015101872006178121230259827516430525650913563372651913862745781980626372956728176432026065923562712173160963524928038115605003520104135354623204810209280967066405964107644956998656661908259783356542565484766053578889183393845206836520137674707480675234705915418008606557882376723484714836677617317221563541408610028364853057404201932073834739181850892640833173714566255898598309941916961173087043109004867425350326756492456993459677504739577083207049593790044040428225464771874092165858191603672499416854585560782639574392394467031993458201300445689742315031766164638512272005525111243618054100116115484690641892985880198409299895128771978034311511981243165554672859446212983397206612490447559028550045765459665353495138504382741949155750848508186713750292242825062041954821412848002206362284822823517075798990282930500991872604575890085918686733506198577478707910269480823478288164651143984307970549443718545221876226495976158449569709032321132278987581614356194402543745501052184795447271339492787625993570402855837788912645782417528292482295290647627607668396976455885775118635507161965962111896084221775429075722715251678091496517784601448133936076158667852614625632218085367900038188142531550911501408629488788622922448451382427131176055975774958454619043403998555564369122194666005298090128422724050165128568952166623713782360290605321816600465851714560917701794756436428077556835020492248602131417139629940046864907493956454888265023731706305166986467077979670476633454021956223394700815342528694110758499143655583065603040252292274556276384557126673733123842629774701390670842913285740720564545557394372901687538661942770789106295139719433668111739035225622476657803342663660030700243710796314864707095818266421413272719094112381477418865594826460093767366489475745304384438060372774003021850676221691070433672342434208212684172048948348506959843392080859004378792011236882376462823037505046897337916635742974481621971162183154283163686164119174536682780594328624063067448423512040441532352735433383344247031901681076665578174114242305702338592554119948015822341755556772974947792991929872739106448493367939453346253329517949956080759521240418235594166499206952881299291146443547647431685117304914202299091135812237451828264547871352667229023743094530383164346068023643007417520667682434010409515865753305982331130493442944235779854650876319548201497392291783133465407203349083506945882758399307588876393553743908577612706161524046684189276186415617209752443233494977421875191155350890006315928393227301979634358465765590042210156108557796580878881918108157285582549956461570823738605992970615324684157395698198695233061550406066988442137382081807545554568114993446821869963263074512840496643312624558071909902391330777694836622912756884408560295218916728493936822970246513911355890905361044295751377272259609234149587460141190622299846372502249124882358525656704005270583411892526576424789908044787494106311947501795099195781720097946260262152167086945229218759063950384807214505331415260913051525591066957133601253794708602255435771439816552105180554908645227294292093102124746673824076342148417610948970569124786889542124974127386769107056663633367303719644132214238735555331313043824148423757068097390070223776775505503868127738266104143473004147409549181834957828924852117309092993283689719612413956917441160422690058705882273748155749918749043193385268477909116533301148333488199230250902802605483139770145842427181871643173594578227476941729208228953023968901187895624260639500953465417145020275602160445489400798067791539403974053592870854566709334605462277040567464003571046165303147493963649570699845423062215459536517086727494682586584611752441164249399772929421655229867150900174606702311626658761291317336604943642269213539362424325983490986655348541080480472978859428670486597668757386044392872876180071847048909991589419965501624904667915478898408923393616954047746630681279386311778870118022012569551587282224475596772584785798198964527174333026698714358434451740289447280535164065403583223905509892876521492388076456984832293817904684127392423970462926257569110038814360742382198731413397067824076219539236867262879759350949038532550843193796263319549625913516504193375732137400399410858092881291985276901221921707605222299988864825356930377099125968543314243512224803793433398098160139693742385379091259142327165638342651317372358856507979624013785397113733252465660063834867252430295500439827928518116416010474849971613500343659593259153871418912661975744990122799125231621196269843478684301452021829568352489690530442634601986312845435845438081692681626970553495853932233974180198791055585514862609519538986190840107642821421205368788934481018073826228627359308374252403645853559221054671353717887444161814422964120211934316036295025525346057890626268261947045789053103279778641124362513491396450442100386165678135151956278605827773358873635745638479337854573629236357521326328742637525130376653108198475393777418646699858296346898213820273431351929111626175911036969608720627874248517840878107810725853719643132054080902614689602517460846353118163190956713595293341330091006438230455912758350734381552722282782518486155572521116885407218402797817543142218833172649751058986167990131418452925829006602363432549366138638171726838605616846174936907632954506773359731700066740736766884104644214418447968207262067779505699962772270700913482157648302504641140437271693106972541245455992395634080520436288530747122732326063433576673387565907319249535107710036911274855138168986591790015272682848150266755530694874851037653452499829613614537104641180959887534243230836169903578091208811806660974152631036878865607284766149374505375089810903984058788630488548583328790009305975006403302525322972028650411631336252465745339583354924500146368622861367877982556012238879032942841465018947369119459492784052181606336721146087527800984683251492908556061411936856234605241683834450357960040252235524374305181576765112461550783324991259647926654605840836241532763414703874634635413349368470000295402673395574545094982914391869443525027419499057809293334564062729427427927959179979112527255091730860051170191044042168976610449623266451695977596029268263429696575027692853209459755601098710511304042458439603804184513021522167030952227985659661297148704241996125631415862853413760977617045411803942644442117004381641216611078000354472828366066533551752715914164351874354713033539865320871094656105751238669842259437089937558485214084010031789149613139954823969290264834175705828869542339014707495795127412971372229167522541616858619866192435820929655119769715208143269640743704376673313260053719038059849281514411973272983386247161520330513583397837130303023132467610653953467157063854858678482028377861855435040199026321431455607009398311222411788637698028963390857341794326815746467484002594502316539053550215629793766374189164486535144676903825842217479370210688629727477483611132766443943402234480681936131739978909565082642196418765620391752153583569961797032073990075227224399586322802332826808480192836640805413193846492580829676793958910072298058255806744537392871716586313949082295430075446603309255756840822325462187201962941875256822308069925573963154082433265793770144463710917380628073797956136716262462031919198691576994350863293684645447541631519922469196391927014749607186140269325838003984465749191478160815523905405197165373177677461083290793084482246329172272183960604345373118751214730368666253233944953112275681368748141684176624195619664188566541717051709793331673255645907194337771466419048405689364332013015538768899996022651647601835230804690173016064789539498585637945532616498213616365478051387330304879067009410882712624162870535224987206942227693079466629996481710145331361658019378423015867169905107395367739160659424122675560771555972227653640249457764173974392936730725802772515604330716358369867779593157375742908932427566324709039667554432096464355756148209935256348044242369939752892535274367461265013327262562758350295341091392907480986641313911017479448738211956809380446973336547864911359383028257531654180371841132195108740586825963280634059617058035953733733368665225713978382053404057533142974484576692627071587679835973094022220705466698255069944551475649219262502885935578920317840654725731920135726059952110300289721092632457848290157845089575806303827018339114848497844845864277029658845202686794303827980120799520322444112042888448299550751578229690648460858978197520053216269290201303500577889024240772252957064193118111149296480890088180051269431428323197143920457235653315142927465648922449725349946004673282026185834721939881783304135030108995562676866692772823392389828686912754152795641433077863327648552648366853134741447736485988854429648772429980808443889500710398933109076890334697100014463701577602867016550775294595161593662356090621772630342083312193361275827455583911355318642303068815208026406524763724887661152738136347472500030152685105057608538720740651371197265180779812294164220746565019624961648315337855578575624183035948542307421904097944973771096470168848244542775157545499345541985675137433411670241727539536219607177144332790930283549589698163640935290027918831059195144107703643778828342022173449368575894466171128224838863013923844915731034516943504827131981024792148486467422695930842307442659896713480739356906461227735248877456239687413855447551001016642188022125890022630050027430395138435953801917676664839754712202529422930369546941301847886262953870363603578584308349027208433186467594860625298077072524745930173246072490361170377797750306943456031020100512170145519633485026338935063696032217960462193602453219541601637229647514201825555190558955179196878909177292090914992040849702565052740716604094414668690271033185062236502783340366889910956720346965925881557371165586248744174891515736503167198135491600866682725585250169735947960808405179225820929457044660299266079932040154198466511554796547607419001549824110614817375364147945837788402480463593974861183685532866772181623572397035998947496344593024240656186840862443252888900766656366726446900877727050654227467362747770690685064364449557267942632442994918030495122902672392482444418150776664529054966342275803648586440975246555526677596460436957724478157784190343369129433352396984229540100864093085210042537920482243778297948831006954202408803216365568656855717473562287073385106063047216765531690563330277090005735567768239028577960324024513332421194049534198038854833089828476596123484263875378170080863188008057512360428492833148711314123998155595073675696227791212662072212830796873462118625667008988003812732402184552565162709093410939225657864661306578863737431093236514506720417323019587308715013037174891123760793288853966166268633722051500768505714784030714511534113030433399695545865839653947287730760864922902564740364330585443620678669453815733588838879576337048190685939465564551328491116203075586655804033758546368385029459835273449452734890541768660657112211081274671826600684446993677660540276060922686224651117520825377194664762049406706325859983423303615095697735563649205050996492940751587991583638642178629123154518844771396663806823411112919647411325856772380037689927826981741426206941527202397446055604743699778545193136513863613890757718816092473584156982638358371662162786091276485481152281466287358130760591067603560438141533434509374713922363499426664002806053309057244172937781008831082135915479993081926611936208561273129624322667259217608896365869572655961749745661936815306771659858179116266434917237424627154266098747208996828032248273795053713391297960875624740060295297787408830887574553261050957349236492778835354773659582929557517543048543966355768314931515439593012451325205164135737009585070570653419845954755482511667652136096738574665197905901729479392721771564253580028646052632630829634854002687910588649834410657973177941950881379198664253392866040707291688843192285596363202182594307432249924385489431580260800036680540903073342902121943892197462552079304437779055144712666140422083365307664614359777185368997526172843191238635220888685866314647913016120340446586839412664373552163050198485802966400469632678333720535295577713962213524255028712145253682612163583065994836052846138147005105007551654039423875688925123460778353600417001934294888648990977246300872992571831988860511552931422439258084994768102776617212258681490676841483658882025232583217034706331613844002114263760734735427600975912451596265355331466769323861791279744541051298349270453688271069352112207155649151577617511475028310283046057972465298331259846357106322892425200445195241980192040279781408346214929517699563837120525428028015635192910788777757129399157566165827034134320693671749793852212491057183026508571539187558560162181409233145719206238839852718328602622273158570634747295760159834192481838135497253048138276393282868202426021495982881180443949601023466110287814764711163362011428171917494846338652389229726273714058444764866222230244776471487251446964279206761866569328424093312478635925780567155807893933645254066281241272515930187378564213488883714262956079684334913148618792902501911019190930344130593635499367612151652721228228647606523008807392763456612041431118285157968975164844444438061770049646383448207187624683458814750302239874368449808767604963213523841283075115329414102360135288960117472691683143910604816754860456289147778984153055693574627943298142808623305975920581199439195563162259366461461594486056005787215795046174255899810354961322955527298033884834191861593714508780034515472542200907517066163229323750653585016107403074573468961051365459992464748259408501345028826064224489078718309389726200826395819504065842002779614328467176079402976965573130110189853432010325484581157828799920747892970791025888601147399223252870680585580090541314579495541818621575774024100946835224752053068993693834503844687490512443912491740915962575183235153210450512225144910688015265472165545976813736778271617036216854499148999246422009208392620429498176067762854038952671815513974642497395551189300761915803620949019461576875240214617944332612507784261004754253627652206352265339681246584603178564526464114718393020689906622946216418881902186530477896204631515399807677579431112289140215131262701346712921239792093590791458020780253274893485609557386580206886774513469731022776152931093075958343003305001146183232644033791248912852037403181759541192335366044356941910865961764805141769915322582623257577412742994603406720715531185681983710215744472547863002674078468161936881827794085138320538585211167117204490218384058870935542548901580013851669121537800219333859783942804231518455899408883586405748663863212719972359206951334392834362892319793670660818616747388222291269675640920303252062619784385873786854856249599038475139102236867379849062362111987398908843131571491243175800651494083251560399823496974012593532774799917058901601136776659963861454562941270054038673071663400540300893829120509291475797845282597217984211550420911502240963731663120431289807280473516622286249762297417972137265431465445392276712415394585573634229210208971276436642166499423704153004658750152172253045907034364546982650874972321894886839970680287653585358669843709486982463661017624575687069806680944938808767327212037917941835738128569141132933702860667286228810666080485042881796140800800382519806926602938674707238914624013905979991375999720117583265729015403941917142060106423458498417346873960642898593585792117750738744553144408566209690673480944022424880726167406975857739714990084176458532179550967977812209079717833379891267933372570612757137260256528753929138225560559671649833351711644333990598884107427156155056010442878574376749156396682149527601668881432025609196749774839541594053317046037407509224889114254211551842810401844251478557165653092290796197821514715020124788987959043442562236824967428593028695964123734507734321724565903770183958124419046677983700764306378361216215022208053922189841764028759871704875762737697778616840756733738454363995526553255522397764227362730612875773207413285392387249476518132851293022905175444784483105331152736484258908501909819191799387658617889100156919619846854061357452858456524801486171002113512986750255672234060476426325395182512922764049924481026353099097670139142893928522249241475991828415399961670740745376932411086422290254906476152906930586217892800923048451680971312157739246064156065309807929354098950788378500425681845804855937670091876211165516913327778200884361468222322849998078398276394487210513490393534651517758915586107125288548003331674379136682434423817185067002668076056282912259198969275790883476877777443824939127418192473047061973715625176364858516138926219860876434436372521489709218160928193950672150980521840878445041544777241932057239359945008827911481741331288358765256161273373786449562722245556876324549248156226065118584455379819034585550585165626378276502785489872097447081592328826037856065957737364305618817931385133889630969393775801294326204618480352992182078548986500431346285858076460525089040405691892187057841306218489823616112843377392062668026847103757949919803160259227965750965604497963907577973855761802853429410164392957851463823703964890644902315522700441634649176280058030699597408174830733408244573473797595692566293173917316237244582617167403231270637398929902006219748888331316986940995491090366714725031552329626943784705452916651118964821317651726747184381915583541890522340480755620945390363483857071668256245052648566085432249875418440274171858082205054789476011327601992424296313416059407293429970274324246901034604099786064297539565943829976999018820586130994559089888616096574707602626211949245687108447565714340208405131586821181565137289573057391835703570407386633237964205852110429112107652450225680316037290318419044830268949286530562131046066856246915713016562218738811125717307497427054869766905772505881343748947463304221686316337001449502437899258554348538722900225639484273743298690776022610697263606379045978295884440216130131179386959243598447749391311022504832845847052827448832984018852053419932909482895190557875722256464093625548458215876790729551010371037797472336476742565755826019330621550479423428711266766281008377220386023404774756223545882642584592505856749103490189725298703833056752139248738966223452679617857453692775761134626025585200227250902899756941500169029478509281618683392683429401429378827499760196211089380220821234509467429220788794584883461617860814249931974228474007454116565595725777072228339626932644517212722330584248064823271612445882921527793618366120237371465283601437409626920285912524010816428093455520278322093859593748342089490288188781759562777618986024797844440661325766005410365603973576165434624417483716535365209160901398607367707121752193388035311308005161852769545920953549196044220777322716006976909397496582923722741623792423018640670789138605616494780761217171280830422219035105065768763858281251827795815508423980372897868553074953715126126280000363084431547639151012648626459603093100903773329876108689519964811863699449450088934796762854830619902848296348941243821205757719431286797122777165534494619640756092968045146410362782860966862160962375853657941234003019483268093398763429806452909618271732180656248562923014356934576111794103162759412873370526101118626783366702583332983656598323012654421166986397768518019577281235310839578746212872468387266020433266312180468341240577481212764488482613472708607675449414433634180318388748256749837167753697721129701961397008805100351299333028844354070327223302538305754693954836877221544567966343415236604863529371654997039416472291650990660297691920450479086068224233602771546703485145522525404502382976894324965716641276553336815378054128932422616511768360769358549799302052553804820432408797741822246837674057378639521786943060189879893236815787437915881009708537658329921975466882923364715751324176391156522153119854149629514850370057871799421882190816177513750119689345066742008393399648896551809992278379393583259129685290864693620331973510762983872812038273634076142200421532273768753088636695892300854855754874998602734013050925204116013490561849441033897171429302644021632863056254618336789244686885114511538245097518320449005739066803057801682902897197538788125579367338226016449338027376184188748541840968295213323090389228471637333393780545447627814996726004725846921070821270779029181617222106912315721690282813704942117824915104383480001927527471550190313541215960310656140650745561207085963952891806682956964432834200639806214472916102340708336475417143206009600147167537243902048715394281896995117084748715969730246370387488831351804506599646560187724962154656652032218228376201430168312735618240249089186526832607989030423489773968006260187193957771602723038608225567040055875390156332179892750818411882836427034318239315646230692545534225151170780504101067365264210086957727191578169813191857406878565651549618139686019807734895742472774609956577228705022810336037455882720318739221345368806580102100429486008791714707598614143290810729630049719566110180125393484655280768254283670762098550772892328749434719598074903037051429945668154474013916250859865449389371127977717805586580922548565246028214238412631089605502185448461520627783157919518242255932248608465865195130407541079533844273013800148472850434212232327916463682056009717302583131529808058516026848654321828919267140545524028123646488278555460170866592685427783873517248881197615420354043309219059230664778056926536768561006231657633466610608907107621332457915542483774330708978127287667778065022262881524514184837141738181001688265154249228382806981027358933889311588009116317723982040228897623808640389806470268275600439576668595419252657585702523843775831868045633080470272047414804280421188313296880460477763505951541215052144610544867361232998096807166940472354742609485756957976283386997807631535540418807185840026099587555797277078713607496650090041048177740801334510745110020660519630499337298757033117844949020143432906227380447599040452808960554986598878614089021250525450026580655275888138892285576383604058300175241563070609594413827802973670220061081137072268884127804039355757426766666801088863780463912897610107524642865142583091751897960103559550732010638953031313646386955197701256937984205326309466818150810324889507988773210319098039150896953977074799606565776645562086570811063608490514188498547823298013814131786435723313263551544086530371265651319607289246044760568421526128136659117891434486563913716771545926288269817530072289925968709303481822488641645036511715321728254773870103445702900006603947167938837067654284407473718082026344150028415887245279403932841537814119567576337504785004696113708306416702977073004146653615510423609646800217961457234035198428891981840119188822244619936839073720257191562966097498884435764677814538185903215767622471802442694750423495473801183438808228267975952127532538605157963659985632417278437476494378087622546053081807876502257286087536855280664591755300850412045291331935950264099696647502002119416419632248995472182832841845334916172588669432997005801509954353931451072275403208946682639231792837808937740250286089895144691825916591745502910017086622914625609478074747267289887808250421767635625540779994378480786145008562205092867282490237989795835528457434532346736612907299014604033784335433931922120906776018394666890137866011180945488847738787264479746814799655427829338741262513840992117639546161708870493290532117910248644323862429678103856424314420307047821856937778076340039552881108232495880898085598645516355896963821158539728474615982870717638757144934567022044578484904548913794187210340475040507074244071600624406817700750360678249007753126305580357909036531429262861482498497890602472317174718353331311171999723866987206955291153354426782474832868488482980804938450822414651889691299007774394359401351732776037161644403907730153015672888230489316323119828294568480539825959141412491686398594343568999098129240032791003294670564552754048559106850022361205364430834005569339285844444963639992037206125820916192936247049287982714500358206649717325095741908192496795727306431304578754187495569315246589361098683656447043241737340039014886497010013254072396650676249598043579662282656187217004384893145087650877429766181282076155046826487531431281958006642544909570646972093713807103082833630816933981406482363574602366514121858646393570731018861931502450295938125099559425533018216546627225334854682132786061451114823722340967681118878163070074885275036487663548994482609904384208314465694607373142924732732808253761839970459679335268449100912139598429712169743404605760591845093006327897876797548386227329519097401003398090876159099197093481987999258946827518052433521865459968707881048070939670768932650113831413228702984866934713727923989933575589469832269246239677011169453619890965754993345951477544123757041163503562899070077641126340589202754061795944549914766213991068303239208079255410179581648248446422289900308238703408049072840913446033970620162606598733848998510036054272577976789071027923925094531173824431852149912539170235436098414815233189165132719039704961742177755613998791848773789586198796841743813911605962578861951185486746858433036945007579970471225380271735695637718348656260229601850547414118058085499455141294583151909777567193158009476850334057360121543379087265307964229357081083405135507468460293267184020586956477396999646005596156319319762714820744417534152741112300502304158824536301576980387909328964055372487846089425415613838206436501411703269423212413672027953452813475381718444114549016345469276057575598825097930924793700450610043098045245018984213740574897207008215978053778273201712439153307219322095139744354527471000015719529011693328021287695568944270196368791371846996758444603109866973972312251508482074630318365712906649390222959773409893254474771187040471809323174357324794493053352781743063327506284429452820395978978379379544602695610067009940616050202773326949874091368343491869687959687842303733594614094674075155515668120154172817896750023926977292899948366707832296952514666470897474728920744126155916842557678542628135707034789546845731205245599071488670428025949223499556532252638617017822030089940322190736400865990970469458477402297031446318619699953671545685375904851890414811653199887473594848365816379855419393169049723430062607163545772644246055724955190595817512431872429198451015528007237392317048665749796328903010385099807694845178159502274759422705273280783786455152789199595781846515890536336881007240049845653400605253274170401735901601723063869992579101287138941100281813137563985684627860219542058329818439404655496426294174026682793217644298162969268545837210268194164911153588056788954677456778933936446759542086766439280795809317962825182143572951274331352499279282894050231398833192061857013559893717070699204844152091217546782486661616425276049531081774483613540927743483850279299793501475539054186267871647008793588204923628184341453551296064633872122720569558467046695495381854036915500711634500254586129634306763239498228656720556920659848715715163290761183092072296613473246063801192090372034622947983173810020443510116934328255719173158765381396545008818787328769714888465012969875011068686208247500517523803192369436212480774018927995491441227582588165901385450785137122158854123300364172413867731435000312656127093857291123617949176774948990733331440461201541655284871252769841081213338265719214312347169910069106576653869234419173915550041665214610981710114088774150630284905313952674040606681114124516071439086849065138041701899347156140593861604124897394347960691312839080850029886583051488764084331659252430815136370530124443696510707024558047506271571449350813769486982815488608107725040992210291522977218515009961739977172461373459533713916017647643556570191919959802566339590942228662122169291654307219558494374131589319203591677475825980700626522562318563962384248312231444591655454930605206903624886958450836732111795022348431309181588756101248343720256462246866678580993084035387947611529656637067885947557255368791945981519319800410360913706341408403258995823701143937177998071951357928289211498471968809884410561652423491164357688798213162714794077444643202982299037477489503727380333207662682441390756873246861277703378771512338510316966952078049113413490197619893114254788723996158731131205870546542159559911932054392928832412463346939288837957116512027404681083502024129114279997058675471242506208356641787690232460848797974148741210724754986267574522224032272985147967644007395378779165186726731339823658594604483281883894875484466684511596556977927643421328978010846993891197253111825134624782302864289204692048458447510999132888656601788552485584888567488851573151367872007796470899442676512939499008049818175788218804695019167615552172604662626752034958037758550983085019554428709151050479788043376454041459857212779543258872999731311968770697885765344059694197491334827009357998556494246537885175093906981609516311469269646626753396433750613541306007692628618212737045867093765084331601128145607791645210515635201706446041366124459235194283902847756152383764116743870610047735755235234568172494468281536173753899984996460011161756593037729402120760727639928714120164405194542072635517976362849093307572030990059709518639199730170695562182946316647493131176985863469881885086522479483665246924320398253793713425504864293175419026922233570214241467297241165022766582001754742632021335350315460599774832975057137926326513536240572657500715632086502107367976476516651725626217557982411056986772440936215079340933186513198158908185443592990507514613580397840119121720828896409768422817075468788562060100027541510116630793426848654232685336333116371305000025076543265673428764474607264564637660049937056455617668088571404216185311413549386743598380488205268183987030277274419754713932149649923280581792920159700201675980950588665990211891505226943359732144563312719426646848770544812771649526960351531153989754840279940977663583494726359122975956179062361630640183130486684506401236553014743526689390296612050656649111627990267877233992396422479784443551248029634238708381876609751141914899894900559284834663427102643054437663143512871025745250699289375311519494358572746496968779234637954422820000947879207795619255324928238378748302636652097351554375980614802770789339270674575053017699136920391750280385367951277735641229001937324469019721314942689988524305554981998845079875257488527244516017850634389774241545533913032998192652508026545115365006046844386281486530256287846148441386268134392395242211404694976854910074452040252950690841775545844442708826442671194409672907204778642996265407506936720803457794441969524009053243426303762929091708802958055608700713591320279718171668314235945184349941102860887879016649358498270776721873255885497262188569655413917479676245524902466868350151190494908962257003069385736195051058543663112514887657561421731933753246671341103864275170474027501646691343163281025614460585525754463095892494406168313280759359781744610980222310570537649876701457546994478563392672307780924055882442781673973131861565106690168892065841339236092365418236503001306033081178989930492504243348583951207238381434359869051678561218683960484570492497286583416279512082816514621442320653988802239788000505157229568619980149172720204296589161800443657872440915233814690261893354372172410775122108309104383285771420028629944783846632783796820308357442657968301609721092315343792640914553459797175676708861121851974263772073073583099693504967668585726596250617894658274561896959424669782334650353369066295170868556317107040160963678774639751306913621777440125730657248312805103409991582331744048311077193983548743024330951251044713633116081069344036143798921340307012054526761947139847609982746487474371083970250050298073140854284979674600810871101613108271367107306049693502462103152373504545498391832170521339211375535379494249354457620943380927349374007097930930808043110317720506399321740783873820078537250847323783168995954782572843746276663505527359787766972629828127202915075700277431158874701283558101280539922793973858167035961019134127110773223273296607058632890707086841058006326204345813453890810556842846009858136603467374615351654695373617458996996033539903721711226041299933593489313479560117533782426525113658602225901493438966130883112938887459317414406019263590806763571983345637442708530246348814379150739350531926880387546672242453496562774961256094864647021819018246861086728198455828872585725150260535021123468527049902196433795405462546314053894492088578781976730056038699192639090428632046656018093634200649921133715177799218632858873710336491867090755288172908665667729421924773401316413143260804366220163991893553928746438001905192413639933385562620923308846644237304737492464689887513491131957401873555156116657167799180154838615669054683841962808931806982718274266152458907293449500652530841310232632211920247706521843687414837333616896388673258397357641604940543999197598746606425896519894669876484954935703142664214752834747487803940531045026185274692222800967044244268791735780140602581627050190295053564597959874414456464756486545241410283744146246605665125304197880961870849330801306126598800846687846916970839923266271043232910201934116612784836767504720584116196447427256308857397927657459107942043053575874367602577044203988282386432714290044954183101842866546752909921573082817227690680956767642403238010335945053042790434590651506704657065001972655570314714408403919541143490493890722637287418080481059639133820906940315608462078164300414519494721988361739593060552152754604742857355672961285571261596131113176950386875032190220857235258286722669674308784563830606132987731970824287296428350494538068418579147056926310978370901205264353300207240511388659863368697522223919990902164412071860089215241851136585971749341258632467280377071224576172188906566867624933706302221937839719881830901385633338608119227265099769549988136121505887629991739561883570512145722796031802828508161434914648643542670135098158365396575091766921986684049826906230258443846627894700293139262550532237752494205346449746122835568736293691470042676532376736398507920487716594269119689415125999071948773558485443995922392882089540154981089710711017340274413703054088648472087375082858058780717220072391288119181029230841841933084667056490078113624055823684474323473442565118094986844155374235044968274152820896862554322935316752048320564527710544980302370394854544092858465632774240381179724813171252506572218001583789992352751651246512728130124810505574909922777916283016959270095827056865916895528947590262424000072099989269324395035294794183907080738077550919547059178610841088839096294843866541605431028588206732890215635446963185901023732486487369982540814795571227979121184359207887739383480584802969705087541316319731348907578242302575052208218712937779156581649704103260206974653334405619277684095244347094764444586012517269817629686575183227103950134797134118192997797238081870105722990428323062754608508137377348281590592402333759288671490771414096390361275511071650993154639603472044785084376142095047468529093926657990222278626878627036652564777060261627868352693180045721287179730461117838026017844070951232716296098509462221808870825670950600136055791852826066712739810705141918349063988995281794378842414361918196622801536685982750650623331542205339046966328495541213100414694392307127246745571539217824054208752747824292855570999986759551117535604051100360182140942037440124417596226263659210270907582996474903242603526171907578466401853441636788259879530696892070115046366921446609973257635246526678080621811719617685685482110925256330173018287407278790750977992982138107755814701820971198009920159604407794218273663829723140487854631039400151201931785635665786996229996625290410443095333886834635866315226403969771296318023115450464260965726696615634591619481322431604591350532575967885732046704216195587187012319522772126482274926510111453766082684015324412530424387664986742980812912432095320424685622378013528751305490700823945111919167771589467609041651800768879513321160681905676099251980389348667062191756883630869377390847664433574153390766620883276600109678797766679985060824826770683363588610141197357251928947914987226413608339894595703270130742904123428159367763070338720259220887071277853926155387630500742818135109885715699606374936899751732321642116854142640508619270915932794803006155311818031438463802830049753299838563221697289712838367778763335201536015291960594022791134425453595164464839844506660609801029402671161852484607079490239155731977093433565854401923625548889813833212930562425523280920575966418172902170491710903560517405662342667343211585318661026613589098696076824343582099418078674472752870807256726856183364926666464408552360699758525289493850871624173461395266622909943388639939601150817620335008624177689871127366439469515499403124667827451685876246230278068685284025718526270109051579790516309558144088482412119423845205371219122296632921814545475632423178017666684711070274674967178568226694153318532896188485913420290690684570761532289541023133369836213990975113981317709064983401864878070259323874029541848945507813756666643665082932130691168309443555049244501400845627788852696188038796976381889819026143343836662432251903288332008630991099022382966170816078780589678570986675229296262642909606574254030717955321790613557159556579324149759469308693478179736640293913442910910672588129382501071110774014908251063519969849346162040271210712354422742183454655864826684833606751378134546787548969831508397163125182522677221266153610038485542130735543269329937633644111638331256799167288782479906593802620797093503908458419765920490059384144229287197448598957231411686736379405336397033620439957255772798483591317658408883975917457853806994959681889219509036932936390132429117593971359323541867642474810032425902756255286836045600682266212031972934325809426473538885063279539184244258033590251146451203819553616230921570641969944739765541673039167837937073083884988899587145004610039618454070386314116938327713420336410058706044471027336185805961205869148505568626278418570747695056405090313151437654086493987906038653102657408548912807307695247234687431544160402346690400472080247681895900884217194683103609380170289413557323253927604098400946294571475480835772896553237496775634336871866757969133313994547221887846667138607991950998151763361654755522472130312406796191314472026559183728481111442105109918218088817512060261550504801040084196823376787088671830455261118734528532984991247683948153965496972454687395276066713826702661918399993618503894785287659943899022905566288050231502438308692650811249837264916197373480720204522642873952635564558133470659165412996521293181598531995610393599033910008825318213710542761565442190299824265587818485850341667340819834574636916353563088681537998205990375660072511737513022871174914523691604737780360901171811317849733189418310915370674010159195938933627419140903171374677254110076930278115241433799146700992632482942580042988096771920760250404410558268231052656827532753722430593923971312650809185799806732300862363568399214294471860313204511104053035076622499789653045750585238098857460873596936062141225498054128627904312993755863193831220562545357992504669995462335941162957271897717331975805916105805469812472921223779187871338053309112087902781197332844961880575068335085323384954710086432729958175248426139067959744520326179239082471766126495735996410461085051725157045900759918135263809242713148420741144083942861937277563203599582167432042213219217743499509260245500366598695433200003857393764700675639034342730946810069952012588069988346226741137148623522510657782164842372175786760851831405818937831847948050376185144457208530158210182133302594156617362082597481887399741808745183238236629511617312011455257455750922891622361646169381952096490700766743716160544028170079961677689647825583681028197931095167485233472775497595788290870397718714769406064099643165778497784291742917506198376163024037610738172528870044239100054185249647834480712541495593279546259140315961494788882497029255488011542213435461128377101715821417481893660003005001684968976568882483583195643780651763376921174382742029967176567296347892728164580077704026277033559252856208276208649232148555471720251649539632416854111650995911305813843664285001026056211380034255080122511618946270187291883038235083579366197458909231371276955659164094790155238474521939019266120481202731668000702184621708836341150247856670779318930923819823537074182710671578353780499907708930253838326332242652516322612099396285500060394672895107099007888097454214054420197611407923130883552039271458417852108576085820409070796691244690910925656097376029890219205495472413775987875747867007457192505615511428076895611817664832122012822276643568727077574701236107382213418777193970871219935035443779449279491908308358998595383989105637967581227770550676448439180350841076769696694819202716157376875661257496619068641781755849620208152824769571021000411675079486300757471599229479324765180525419089543811067286376073826845491889491788882238920922566096875320426052249907982680213658081272335906659802306097388759587178678424793170245659136293827645824772323914316982804228160106833946713144907597839914395978733401697967355323090175747147838725519634898878935395408704642601587836455084779751881645681049112126902480114998231190032422782128959493903649833471348848992220268983796557152061957061376877094749375188647465434234588390056721241740823383969620594647189567387857468942797103000933536423130638097710353554478986539335666390634418068464170426035726641307320366986394047520807656801983015619617613945864024546486738161774686011635554246835745065534712867536052724802732633097426973161202226351091311152686389025592268661304938822404058859829494829071792175956243902176848476642601567274516947113048197108726736906976584724269579176530706256762614316972912602718633902302481419990231385698596808768388570649790276972613633834352517649689439743738156510031034403361117545183394030723056743476900449912750829552831729199780705548694936907067655341562463675451029277462893862298620859972539682408687804698824337509772788236214185678893157998783504393162556100805135246081436737947711421638603443921392543205248463767600315500409091336968723859252974929220356993410807099727090600633470170933392677937118038553763760181483569723230868204056374872713176351417826645385428062413819514833263442014585706112553865188035641431113338120400515792900167925032472858897698477104453064721440406299072261629910317172508008369442127344076043446364962275385328921735328485254413370315926491697819535828193163132957617317159299272017123055253627992334608595017862465518670265150495978612037522619040630326549887506872591846909256726535915600215499734854008841567260768030002309354658152867841092978630974443598982112417283346951218571214880654603303595020016449156946442083361127664144253547947858178400133573495502976295009834237606753052206284630207043856355414061142105430803371043943656632822297374742398878339913043542595030182071712934838652084938111438245303015318590392912914882480120700095186191828791891946330784605349745907497996041982827707872510344507272785891445183452211022607065352244518814004081330101506414016922710219670683149905198051164785075315213500379528311842471944031113927004098155642859329934168524477935044641886802016259906734533494334242486560920926320242127227014464214804833296546665619036578492767564517331903408932080963196458294142555684792485430083477361186186529963697657334229852965431559118519796783845389144770791191367955227720425041793932649341959838537175914724379129992123435775724828883447650190382194732972648795882677866745101275367905458194132083579912319687515578215364822059010369354140336756633704053535049320519185878317202843888489431157672060917433886238781200162144166206227182950955875163511424836513196256671891777740685627889768930838660610680959219401751439542546922833633727330232119097615928492797917766702669777041265214086889632663542645329153888475366462761749311189697800275329105168178122782832023088357809061185142812471837025304838082566883015240499928518311012387752218338291506365259085430421086382753994510632355099070380165635100567445212088541134620976304131391096867354117177827834010293559787479852434569177370472323320591601385721245179070682324585709023358721037464846201649359329695333020198457703734555176495691642135065229039458424627799379742212915302286732731688319684611463937757420717656499467564711120871005976863084126203130516902137274502981720716539014283446630142187319508368781187578286425745167406453990406751070978431901001419005807421192096991150000046209755689543520956161691985385168498079534103957491785129411086063422158314421600242488666981086381101964827539520723378728855179481947957036556736489823594387397490773136450301879530061779384631443114344358730193919184463960188481014783120822432661396436828536236509643276926710048378935937899111664977768750970873246788735183058600271336982553015986735277611435099310783727963069644981510525833522920375797210351657404641342069691647411338016373812250873558833224831853076598237881322814028784708577482637583524559566037721192728603595314448997284408700715412125401443502870368913340592378943634856970121258555240755317305793056183778287281886669897792503772939541947655394570198680947624263812451348577329339600483205290699800023253662215880223171388180858280209894627060735340698645740404653713947143448736449199012050561098666506851495315401066703365580618305067492449401530459294405405462651183912312420676247328783354793845950656670162798199433676454360958752035393659971566513186228336107766007636381246065255745017099277558683020539216583767864175879110746943363541942490477766762040278232276194987788925456353215892427148940558349378645487960123438365839797423837653251683668513938923043462366002174288428962107685139542523751806039421349400179544847348515224271658620179776824191617748558163995107497423718601890030022237201993071622127446766051715289803359279766583750914292451753064922745209065360764211414632089830755922174109663404310731487701983018638824714879249391253471143234632833491174002751215150188840401954484203777688329870698461108245787518086135600052088589223463643392614645169680104076532236083231345444636650123079151176067697731683043180095749143149898878769770264718265769937748861382570925373756741709914290311190405977638694882483926624692668795348439138043328545154208860697605508590890763794588309846961468753529686435493281138062569931390358500462532072861821029170483063234153778851583302440969867330594247653585502955403343087232614055494938087368473295863997056329384663139873787520124050856353679370007535730080099370977833314448245645854782771226816908080631819207687560991941501023521282941581626828865882009494641487195229455645956746716473653679284598525825602431875554058177546599691045526196359653961865271775842446600323335549973524832432473562493770066796561406203830462806200660284573279883649363188410520256883157949743984094081094014035417717257226480790781309634784242741521746769692145435352380482493040614438528514898038019526393341679270598674327618927034453821817504556480653821990250135949542210063339246572742933690158322571087608055489103619358995517022289967042006793863365130083522114005591090998940847963770235890834017255800893377110533304438577197746587333356533921316452126540373716614944172294640359426788397654995374910133355071315147561768257247452873558586488071405812431352281966496628490630632719348009482828225922977682487030224336762133224908421922936238177577407587896308359328384577802485060970290240544159001480879885208065079792193997921667099490096294449939816072713207693936914240020064619603129277974282237614661726233422778115031232450646259619095716345871244552003364503485244221929176264429940709791861500970519976495762937671980450736149373982458827942545023267685423671096375101127517459269752012794497837214322433098146001082905957918836366743398549003941101559028369298806033137988523386608619032883584532712731830475635158940372090641569163849906234231007768554153911110158326186396967060602316913753473680511708095788336938993437368257908813995750391665795733076492961857933603857575147208904968777104191582903356571785237443085779930345075453668549421737682646209272630339535638562378224541510704650341123826296330151288815366027331356064589162173921352585561058878673879148975974451830279091090453355873840748873440844501253224480381838215734572146546328670580435172881420693192320475093690743105700561042406814083913513175287417140232727320495878423375748842057037881554014936505614792778634595278832960398092159154490619947599507443907455910684993037978105020906124556353527534287024982250523715302868933970833405574464979958748650377154695263745112333367822055452263735585071337201640921319067380675774321314924375613169759435835807366295390880883139995250635792100148638177660776686200526952044234577822899141876846283255319771645293601040645115482899313243326545878001268864929441278189845967971158662852352048749786277326553869442288734286095895260552894369144513786405419500722868896056347828353164265434248336592388621821662783889041298004008330701918663890149785129951636360160539977418883520970696706360159989468622432086963459425470751738885576800966906667680483886579942485855021414844063400633181897193033288644649511846565398046704301028805173286279724608211232714580364776936824279845708190442089330773876606044156661354750715598054155520582931283426793200812113735454812544751764649224825435326439289188786638088492562441419046231667733143840575326839522321344280708781308291206229733829250403495554473287652804455058507174882104483533662129569779401257259946223695626547080041795354011024422039953403558844296131124680438921408296110469009087608966095304496971982365828230173210695885557180415114239550538397870004059106644234099822498762571705623725342610246805895502397308311067393924453289228491617974054434224387204102048937167142085803772195625240184750440870276836868359991102087490313154866672155241025408236866887451574088631167086957399019629037630593728306956584446047604706773004752268079896463513340226225880321402876191727611652228560356565629930780055747901119259917068575885497042579763563088898568348996114872292253364736109198026449647467461051224792639152175267601856023159876921371063598510386575873768701519806115796051398194493726803483438470448046184505814602990626125532459584124693505914100946655293170537496240533565685620286764915985833192672854893518510723522401867223239884513074527050693631192598862382308068067980472675042975531799287552288671920215551729078514869901090651398575578162809785853108173213312559178225187494578131822937305318193972998516326041255571767727659741970406853225111531067208688643982661304969861112794163187697261988672258542594564307272353727536548414856619906011892154797619238381351153935075328384728375719416391716503116360828648009109021151637473693702657911337299903969305680697029516854892990411679827007319347372274447661152202481866512945954897319181378785163549844112142347965593670420627854009530145912882537732075297938567677787939369099168034585446345526450194006320250179180155779725317683160335783568200451707241368502739511050006059552985969645103055612825322302064420574541582383038115067075384757071568490301167260956071048314514116847106041822847613012748846284402811930549636485499187632421628432772800045406838802937314942070069603403553739364030419722485098107740698909931655760754373269244867492030361948300613378070443154713982862627596551755581212493951316460700851553750473186213920840834060208364745737117620939071676413888469071188950705278488940729509516869558660754070670970094848621862943230729014762917304792196241165922916467096320525652586159037427082021507904322865972838077512380987159986297198556318467126368087560661329516745932186755315300766380325278295328116341987379060501177122221320967467592328843329514518719457139852800723196838088076719512205473415686114199581504718745086500315448774199988502734557806147224476157742636530337467902792280944508320593497105789430973407883238163629108307113977407592480313331680149519502910773697158217298302892722462463894430935792871443273461385600764720685299185889250364471778088941556764938714438131059993223141884437396775369845581671240038028352443692104516308322846882446575946814054767965704291292709571244411849011642183917556794794284091404189490395187596137160275790807901551688965911947788463463518518242885065766218555991441631146437598051156621761462439664210772886256967064555066589902938166370950135247785077184900081839380228226313586631304734064993991572381563466856463357259969510108976118504238939202142578928514109948605779431734484530433249764794153376208149306612595602439976500001999342631256503515014268518263652021936566285857825978233408291424864526170246055489284261212207129787963752572304318651674256715632740354331165908828252931594091863693781813997890620956699876689764826568324756118178052127686978592744375691340636691504343902080234144726573037650275397073322027154538654126227071855170421100499226007510004829710465221383432193031146376805156905659089853317494964868997329209861061998944751734402326864745083370477592495688261697190044629919094825669914956538027649298370201350540296160687018582089031920233480680329895754137093091679138039321741827845921311390766019708493490519909519505596561771713885657482092070380761538472849643633214407050767678065908813676772231104527055114396152061001324072654027640288225392983784089509684079405455704622918767682455297110924258213848845017362703356902604707199679432460235370636848661532277017412100349747415962005872726824602756253149098452784364120459286896126909202397411361482088294808865503026689286414198367926593723887230114502451372597960350327855244868820035041830616391367708462357657449067308029886254927941297807489042957247522669574145020044044800756972146534476599119344208842249821484600329261114161129708467554353975692329969277305687845367964958533958086364741702461062234018129875080500380277972392740224304643463078491222825858271271991715628731355650981728067560187423497752769251901338690117427525863322537387419902944333104071149331024190484199776439114021605324877417857047079883165694066749012521356196992132353506652468365158680836247977942747159523296930500500680515260538447758568014588998466092311712360997159473536861941001072325688214970006183660892735141011537621114435535164752405989849913309420518592870259424531456123370845487015746056439007213037230535876566532324592930813566432162009016105241017778666888550633694386539434341668286268471940590689170080694135619533568280234389922255342159182024413534031388522946712847348819760843538334321528443715578676174194538244098699453434495728099334091344982257363571458988108491283215409732181257117754274728700785609327858111719129705052600645717534272251790511433575852605697159724308792349849865152727531953135140707135701320208815363430312194850561103833539294108198730878637918709204988516638508583963577499228848559284071889550946663134912980146043924126701057826608795245092669731058256657095697175731489480828490044872446201341304762119313283001569935543168120545330681470520801239441655120949558424483427336691310178456694949823875999978627575203827894161187052387369753893522698333908662135013312702828958790647590030557455513526424052365762012354379768858395042434780350631581780530447434519271914517251084724082737793989060623612265738529870334578006828771999235744360783563010416363431766233987696004644863809498360724125971990171918193570017652165719577296647331549784200974885401568707140371679175897356995440816231965334440034317199896698591944665541518040689146806570306280370932159818262766426002876759008107946534675000276405257707131835336976238216510755767161651573695436433712719535191405661131994613940525697258910053224328322473658444642070941998594307714775417216887095110289639173478115868863980093987642935964912501759696493252278875411976202821894784267136543220816660950983891373843001238065209070755555086049960306253214847723543449444028154276370019188232626265234227775098344012123672897574572734529818403112830759040615913151194154454428693902630156335966025796421066023332247663648824981674605700659519249943930641124604188575902872827836067130921877875937743493278993701821618627216588056835348976546225386935851547580030212174310593747860765377874792315204881706834433322932143593427133801296501903864431358502571170241087911327678454465317966711566017859932888988050799296654818428535549626472764217340417334814925887346680305291179514001768986643592777273270830760611187039037593963917898080031681562427274339349136021760281544975109519968044347195971403950133887204131631317262098249782452919750484086867053864814034925289737412840039837603203801876478962520427032477243262791238342229502807609657444727881361001833332156102213027970358315111240757367760735643842096598868060654005502644362328333158862598093737021392755744414021643690289594302723427824760723005726506365159291016751305512715883131152529328407177220409221085591378970230171061375548197258378554886525095342674771786764049159015217108445890824543919751512236677580876393113882386308593560942387042752092716675119245295961736412199607744172060467730360161499391070967202483994599813348344172068806934687824403138145813591505013674180374767382569657278432660483584960699547224419100525664631865573526974122062163614135785397413234276773931440775526787088363495141543810326921524474302082605791313817674593650772590347322599463432281922510190161420014487892744782144422592025471561009868867026422565317986408735826855165597322181544888918048151246289258470830392600392979073763482777108568013283205840721844159760274902807669763843908783041728504580363083072718369018167569943485827589369121519815677033235986921428603538536050759334106379884447592940852671311338671353395789531116172650390740742798825329727725328810864931528760875904412191359342210669633025882056207586740645513231606638637124151302144224195675218876428657741952547606455648454654770693434772951722878208722444313558054436568515981238511962529828546344239809754863384100298583718530409387197026723884767022341336907244125714708006852135978369386472137954742419329190401038564074451232287646557158259434868332261705524023131824144943879368827033088093385665324611367667003001635464161122768326935159640414776977965750440387686283221591094184741644980350867099841056784700879054726427257193963565729113262217248378317817128772789450477048288555395182740562710774075811165088540732800488713300262569230690961675817190041271351298721106244816854924481008962509595549772410252442955761524346843889882292218406943142520618913045266375700289284984706414224185789314647332834847313780206137592248627221491044849324147499231049015610137813152165961318718503021062412940785135181841161735525491125310222139844626334680729356513417299855139865152678838456475436703075290771644905121748861911571762004241365304574343104477320042297419685310526820010232936205798358490092784584169705391432275692490457223250503703118619993868884375631306810197004991022351082478992452059471877550429820161893971788346108498593394912563272453039903831992059826195782901924115867044169575439788059388832104527613427400638915981599578351881731652645412604452046873449138077300160239293212404660587646253833774819906535911622688351318892452202523286352709925563604884489667262073521541016872576049378146948677356365209070863980127765178079068365607624909057448017600108287515424293963868518216190346638281838068742104226392612691353156157806898493958423442407185151237196450676969485364374763745175414701548182358201505805878821316979992459598268305498478984624245843517892869186238991087079806055186173587419515114968922693831054860352723981424709975836038437844604633956566071071254297975393895748901926530703160311523226984471159814659960488906057952213615014748452248595264389003498510938245544032396545038581135388959496093543132817639462373061680067687643640625963534339974550804883967753774450328756087338529316121533187081258782566685754560215469198337764994527710402039507076909121231732265889766300703468699504397306276409346986961995076098489934694844049072032615200054958340519865181076183473458481632388808815455282186245374872959349863497263964342591199762218100628884866313774826646756952921192827410426602710507177876467380266148931810511352069008006208239146019605436127027304876178758784240791999095649342911390991664760833665859098217821668865074890479839794768654539610140170263099027587634775448285913263108016944232689743110583198630633514647405268398346194952921388279398362516426307838874375267175600695652232853849764922160197347272583526429183848432751764082933835344487568993236278185782334676585782215632201998508851064993516083732889465175191847756916477569488616723416248811837240515008519850622708798439125234985034904894830495325955556246693210339906852743006383623113495118686016224580259771156244716018507226889924651097647801942203505620705715768575054690776901713338775228378963909824627334168608808741988255109876077804289046186716747630392542201735312318636648468173522381294710058102847840868935787739262287204065698933393526639087254541830710194015194724589696104739364495283302784218319575544817777737633326546459273856785173178337690634395177573669488159376343030660561409855226981865057647235428582585613981449212076046780016010951945685622760119300099373578205707321378384820027623495244436213472988207210548366236196855621220786486911982440406934590539098889034837579091877873227232421106254026548653565546242296639290024066608635415528555790895257004751752922959967973037198558859117738465269680378992673770579159268152742060328854844151327014632595111529338319901334234533705455519895937260695400622761428797780090479477285834101447964672396086700788826958762928814007474411442191497972843588695614649128265750836774380316495990871567901523917611660723373809029708626258699927549612910611622752312530328884238494841612235096393132585463398134882387462168734259669222388708625004180926865019982297929758015217292778621337006239123147270802639163884403666777890163423003326136064272386424484284240256516188408921695810005444446140314174226377414507395391284609190107407958976993263340141735379081120186610863448915281441060535753650070813538572816857464666282635962059015597130803977623450810110099917140395291151903687459893048883142449399282759428430038157901297654419407274805460353631781816147943982002053482884011677966278977612854797887293571731611148437923730991450918072637463574132083395256919780073096029167082475260433327204312831786617312527796986215889554069931964079770718399873551642778302209600488333227347045664081112547103100645904682649951615260587624128714820313468973184465002879197716502071391943303813301067342963605390528633581301751630191407228939200284386161369365812099912398625257698141327656667109507554575122960887616468176501040306027361554004984054458416710803928419883022807679407111813842956069058701100857232773422094334934779460680930044827037919970269289706207359350356299579691774739318308343845489127379203022061721337933768979889492370964306489156138376940607108405932874852948124411653999998536743732263775926285683369262282410180109117361009511439297298824176395287828628859432274828239942289700903093556245768238523452146773743407217707623421659647042334880383578564393666421457895999690566598075858541629263013381527333777781899545869193155059270766662196408919280788600669066612712705392730022193784585250283071984002435734209789098276057530442281651567773196151106620042756333507968161135674860651356458082543068637115776710719275414675446808977273349792938014012042670854577625615059696721102578421183483954712376323873780827510704824247551518598551581852794998699923305358436250598254788461115077709701337924260293825544029608757452757738051948146394249777125883161132107994368343587421276448877834961632280038488220401969414412101016029674589643244706378414112378376784422621203157227603972423198684971356728850877613851011710629520675929199492872067482486556243074348258670923140235094926176088190595531687597474469186048034088091608601852959964316443906872818002423142961580570074343655972437044110857565275147241427405403191747770901897677684127875663749605530643368512074110606466134605992680056472431362258014779922452666090286342584105789571984497563000109110845116111255079314578235007666511951696830404982466349713353662817646711356248440538052888523816812049886677229964765748666718409820810787378766839377136956393595161671506911221451071894455174317875565659865218998244408356304411748875926894973707390131283799807025205078469214744651216131964134325138578806004703776924355991673647218078779839822791976702102064991705554644879398311087204387758747193324578652788916068733178685911085267095974314045924776243620306905915475775373942428497358806907848189426080159835560970290558864465749408757812758869276892301446618804682460763592013929882558844985045762027197841865854584966967411417337816669100115222994270665320135220787508307203533919697812317341462203548705103099671096054344577392636691848084888890319442278789016996824558030679848173865266093782933825488166065085889260243802232985588773974938075750941360942122264476329031725460630136335401463527363731881974114301816395149912335906107424114460766612079286212201274095377690166140257436138743692501260807754016874895624912069167625533872739436468348824531171119001375484124590753189689706828806280972834473721145860982005152849371053149825096069436415236367328488745865674739256701224185233494158838802706095251495901334173180465164347845205720080205384908754110394762326004227487142303536720291481425405104215591811584485444002954552540154131527224516927554037687996608854528660351181387523206119993050572402701787157233498239778960573583520605397783681971349474906652087689322209820786788474646823525936142790655598567655395606299582254585956820202428110863139207381766772999052499115460508451918704841435922224301668113528299323377410372356150272726157777919226236595308680135608628262412701607130874478930835699434852137555022508660166713596371100023146811405814649063133105500727648930446520709589836496926745338307036805592911270982800538543812697819009125717467251596560001675403204476541335580230677114242528276316219093979626223150354816838409962439150394428631440241372880043278855198169784035314622390664957609724603666072405463366677450943530020262087026311823865259605644360637302471504384895240734320218595508804431068265381597617144096626861817921313322284435057201614608313776558915054171593652128025466808189783727517853108592367683300106021041712591793122010757704894061380532171295238949883356874291252382448605913635456553206691948181563784487744708666257149497901236308011945194448721530362051841114345627551747825622096449053726508483065200299172639582704981214150672501712175806643810353387301145014821363230204536566719098443469162528385638253098683727741700802610371723049417752892672623493216213183243207911707866033061652957999480101326691479018346862644447603104361877221444868514928342153223379994988646633265765454416502920235480395249568872677490791637993818110894468710407610815138224217089993318290801071531484720857550149908792697825286934736843576873910105020752579607774686819208845614592287211328979149886384865219135221362956667610139877109008805272693220963358576195774884297665901019758917692773356286067010316599767633133802974728671087331220546312401386916758914215374297498195984866489886949445105160466940423688999433354851755619010559973089343205222823842965025848914113346167687930685716560005877882074503129280739656038557436753126058680851392376838863111768290318486798639192167701060140483339182863106631698154020999374727869693571167834766377654913676293991377857881945505668642681470855063069497628740402965962651723508371449952493160876122562428250209238727282282131289964316734235238325360616521306082132056149196021217123478086275389281408020243832779185632496472685646123588049784032925510707524897401304921386157793834083856340165881830091335180694391837534996561911313166906090539067872698975102769207500546893754697745137527230845069505222571218051776963281158719258404608949322559825525684617033797464114311958875398271484571344908849237894771799251724813254425318916215362212147132858379877063954025918526887818576514381298619300961047000759815629243269483945960896960457260734813550460299727064218720657540417505216456516578694024392302805525144721442579094954819615186064721178304089147978991782391787886491773850475640268369766577463210979079566401444761996066321219978796251485006133284961738877563861581074463442267524532737242223807341301797360021802277704383565565771777720914081950867041805849036464416258080868770468207852056425513541543383896333802412626408698872187951250597682927244712206437823119948636166038322268684945770649412184371963457227234962887349100248896503433287584718843638438222476038242547800126808187055769725057962919728684749704908392496611699792377349718302569889731946402434477061568242776649662615024487716915794942701777593494457126556588160086382394485937390865821349326310645890880354017901457603244960880926656887112550481377262825549448009744541216817712140662706519978394658242675586490751691653201826509097871319751174845689294745895276365807038031562227961801000821303606397313528570999752702423243957952106982325449059020162269390699659384241900128654038570462174254607283828055042692365347525803074060232344387112068456578023750366504529476926479960855754604646178047780817350568810199164835613582600253793038692738458740209541605194772007084793259869403300776769330924249120155678811181936131354716336152330458071442023003478320366075326101560433829600510950381018426850262703082185961941703346407301711662591998558437955978203256406853582896246341312122255898975089842616582844711002824482194966036425275466268439745402273095426571101039488917090018793263724190636925069101399320194584727057757253274390000803689920805773327066572231355961756917581933507804937477835095230951724851666997342843032707451696022352528662885162999054467961019819336759453838462007086780473037532897923445724182399813083856479247350996676721565277971882191940386822069588739283812605753176231309261107138304949592080138675286040350612143860443343253036049976740369566328278307527769329974715968406544822722367205892129668292277261918395177887735240539387008794678303634886301599416328170063136114142749350407480021208326240196448504954559273682933782210758446918320154683451235031874838465533171514943649678828478898208450138994891843269898301379363229078456900306744662215905346470195284226779868776766718882644278465120310158985505902692097728704974342012686467055319693900935701566584412507776930134320118681672177155757392293432235522005675470049091259518338516744112015701978194870852387669284372713847747496112630573579547599618551736786431494747140399255566418077979090970450910232466639743020666681446324190962660756619668741493651163682696105306335721826661478288675798355521616749752184978904791331604496262309785270911977736313516980014429361244916840368731713884124046933718066918355325937980119463662827232377752315327313771165833658376665298267459333879637239296328540677784039843800853704599888786545605881776229132963915436944769404264690092577177961818851160889706990691684708113407114942148112044882182894004865257114559597939546297563102922933526410942013037375402602398540719087726101771953243357568208607535062875482621130705856755453832325170581727912564994818735459719404152394673925056168622652522340291011820170623351427075409803833180847054233946651454244396511642971831477135179854954607078036760271214639533741560732914759805506340346878420245026636478116557759753889879259910150705418160443871633200322068500249460218943831363963786689606152253393582446668143782014590375320205264776011998512576367409923804957506359785813145623880415950965359627559620684556169990710859115120537533560400131051714745948358269628001936617773340405017707968702607044132876274740989930449463273698183195054909044513047137980751756627078899392443231739453230495499177721760992082396235671052347208885394030595044204771829132481765015123321720857424245950919771785496556282453263055418928695552413229420486725542365143496340766971101461018086505040348491550853325454191117684154822274683102661683720653924711705119502632683437519125018979591124847625353863541632263739338546026398725044898675801883394216608901132040411038719241329518019883991529882672461416513857285722253391150641274407966700513336854854523025539421547236300441776349252014135742565975074810034338699269982403946462163143739579621579988457460024398193215695165510373935806346568250099709377219501117160186737956718539749390269383702836576555160477287028146785104234997979567563389880230058860735752699409737514804050287900783653687007000390154515775800440700354707612914188114283974940410461940831350051457175550495739942955498403137623840492783542866104959005428516165035080373135178689360342754389425508890368133367332703853384415428873270026884663280322737381956117005002324614567102671480752982532907264347029074650952257435981254527476269493764663495482080733548685613895837418121573898163226532032456071410253546782150965621616453230708243932522114685137849340419412666261199475902383676285367994378038494190133693496110105176916833214869633544363855128823614123517057671676468733697748850132957742907496405684088032975058653776203038538550420460505797814019606881446934433290570838490056508075498598138391193238027447105997483351101609741190888660457155846256493561048779886461550268200069727180735634006422341202878145795993882649243917737478955329516366396405034962469158096806885829314213597609590075624046022555791347737555722310180650838779112278509667950983652246238541591444588906716549743486177912357282167364973635971422983785504210246539848343072147693688244300724919924531973821170575334703114547569436647601453157863965657710685230842285117308959007890416718251810503753670610640593709527697970111777052322023499730327530690221784033222424680270848646952772808783098863535139616841931347851884176580128346786845342907639758370859352949270721952789280693701048836379484563578940852458770144661699689131699921929331612842115039052667252526197756384068380426311557254487582726445936198573153128507302536921023643631459819862624132669351509560335733256013489071305519627186139463656078192203057027293844256893445009475048828476960902565731275372319588749622249007189631488205645644903487202389303875532625047269179292637619309466729988050188067702015693720497166715837938948624871116162192586338762981384462681180202181075881194309395290235606534835954616581459733521993101235443727735510302965104914885911239284191210275010009270730319863926423502215599878078921135168028793315119375810405871070901527163735980347573660251098254475077112392490685758929797877911626964661047364030042692591071024984427805605809434753159161879200657867729630135958463959684959086825560708321410773069186221879518433843495937761502429666238190083334658500845104684411305587387974744926143299249265333635544620461136595161903128740647371109492616775205712541959500794705886988721845412787899444895848313799219029252273226686187966669067188370833271645567349050235986914984440703803302549112286625694176360389095315141931381545710566744513984589655170387524329385934194037027138347150555519541524239919402489532473626053265152342794328326639818781583698773247688270459042413525689914458690909034919854735459808355657711789295211573040884806816766441240614168046095279163495528156385589670055723326839377301294939336550896192363789567687112703395341983892666909631300558243308631993596436869024293114885162998763279213765602437200652591621394421431386571870495401461309062140134221583220878354528470118174684102770085785586653082023523714960987939797911663731558291818684248484232246946548562974110515347575655108002047292412009361873916820427826628767149946094780347099806218880905122433654291778485271187751578258177301005263351693376553629519929277533851742038139200883398127555605760233276661216957327959055787835046086616821080975235804257735018294520022427718702879998676219852456422024780082392597629189066562106922695039091380509135673648904865018929998273939206843638584922264648451079296994472532983283208048652821213561893140367344577301438857577780923975054516766431172094742654842250129468356806262307227978861568014634192324887061122709816768950824759855882629887180501854045433845742103930875669270210317682302182349179350644853977115242893680515885498323941699019702467248056315439030594459998722664108510057289880114472694469140824732462151219488816677394658405388681523164395363240334875712865498522488230510465452072461731090438441399437596474983795849630794908989632922677466507063682008042294382946040406819310303540720492105625854055741425130351672459635536448481851644042077653808437785664598011619054245076441092446963502465425775499348921640373391568857318442378701189483596890302019626331412592172467568005292975668128135948761907278117359702067948934733310068600035191003070740434655470884758546750568133552435624685303174349204407200381297530911666978203206105651455771305515654466745046499455003864230126890392852799399309288422881583128401618233147228476129483275694469869729177451993422520649331846855408387968998089142299594214621264570876181012627648456670277793331635133832871317770276483632285639805606610465985307016588845797550683320535731921146451813554283068905064984715265596013300277347615639314314694117916940583054813184363042182945937111205288328395728877838157079157935290300811412381879226221298481474980654084837937535788070599085134190641468910639294500871958869042604969998276290565825870437437619006866204280750276446038442726678091277079819112596735097518042072015095883953186620812541614868900377648038211589251141111677062427328892879940941193849643243996120704452482565647893041894353016927285832429907290823818523843755736353120773653566737463637305158739786747055631280133337533422664437576469013509703344203092124772764540866002901040809433720895304093171324962755184991986607000057956564883004252883862483541524563135847449621858721733215837558430344777779379083750738126919663327042879803363598755161773441643077948340131002442064045100009845797302907433445497250724233935311509930686322872824908252085986187550415469956888468379825198467254321889522201190371273588448444154983828209789983009033653648160882838658195760329065299441627516083823565255413188821783783128869641959962222390326100209531359741242352041402780293468182487775166830098555532666656016454191304585401908622204018948035069339413041932102358887270041784741304675906939574700759086491933977476665070130508733203452790766894807868863610110681667594417874795193542352620707646859422276581270196719442780332258751641360874415586608697235062792862223980500843641639191721287884793343688383226966640794682898858148774675972432207833982349859807016822827598776878872601722603547409912377105354146346051303305125145138667734685260414827999038734822799080548565072540509602112882878126524104722836190101209596830638660038176881015663033702111682804150957173356174828030721085434132100920566571598083165034670224365281631862232385187691590982759744008299693146175075695901503568104539140724340622731256373639667683116581272249289692789408566270246983422189291970101818382176235012400334530094264951951638111784969812628865488235584544461971919440909024888455029379497105930021259375322368916626616834376779623507804971400577096152272230292340996358593401811536608550903839248647928725874703740036323934883868975219457577046431458882910504011264837210981180893406830073311508876616383727790294250504610869687636281126881629582425868306895374797506587342987364394667379029359825780640793785238161155822798431327937070890370287184185167566170933233573085036892392214870368631164598920434356196292532198486397332886238573136737695680731036247051001157348425452471592197319680084090175217289206113648592223606104566527418854654290277500912407088671226100234078181631196069126906813802029049854223936819240062102186759730883438219817309694681613005490971055071324016476883800737132760940324089178679089614469815444193712534233619309821162809743592233003699342893014343446292014138434002580437774101012326223894501196902087612569724166207119469559244834906199486383666753713555498104824182244591473390446533601465561908304412405371226482554373769889051033257896550447414354915408014137623641805302989457578716656311252596146835155679139607048962289812618437291442162264005545336064813413642524996336944306692701084753727466569230872562395636583202284983020345340658991090484106231725888463661565579016009065739789057934013317589726898470569288669226248522247417736818280754366929600515446094078753707200379728081305170608678922405478225050817283154759497967542164496060692422679832535089677345917375757529566543322462159057793858083537448752328465241920028339411293049676427915458941790481118676627305373057217251488635097235773636067201566061712637914303692541621134635236549633554964724078044109130483115270754268811945652358323486962851800178791128858164777147633689196552364212813325350362810794095997096586218203372013598228720647874335591241088999159763760763586563986096304451711709924470591769532358896074563615791625202170860498415460956859697687051110711399732543992859907559667658913867581123433510716748759216553983151697823810065198942318723831492428474575591730457927820871350615592707449753330870824404366427802047313610782475658270296454384275253981523825948564070708216109391654136989345106778473585572076774984044754247310550592821846327652329687155529298096319518590913282020543508908646868959641631314999225418309481033451327639966816270223364160461530488807017777795903380696502668863266075782129578329281069136213594170275983250074706703212730627124630339646055202415160999586912279423647679658065681400280110402112810959741798161799037699931249719791567157203786125048819645020029485211320580991628134755951747565666777632319896826848469179948563151879508367409567696932768847494827085533367912258342539268644222593368725259600513474046486927012466413537227332960165304639072832886710688193711146563965350568535717434150515573809687001673845918370906298302054792210042788771115928754634725320312813460270012293745309539867399064910423310344070293079014887459315258387021619638847199583432093964135299105116057313376753791651398370807824648845682711466792096768239306830911709637164157743436481721004933254266797864688039624202817451136864259982062677534657252985010583058587292926158355002905284843604814149896070080704417059690900499785868270911454998087818968160705834402031585105267395314609825903755052298611531158441787629514588920943143079588316433080941265579854593227827846005844442045328979396748800965161520507823661009614734882874712973610829071144189562193436380415072940793509359698585756220563415778293554517565929305188019716333736573699133811715500651352108677748367320208277912073563699846241627797630360131152640307179727925286256429756664166861495112323000370983997587755656233559314748759054135975108213967111580321637784455235631792198781888516335348780319164186123771465323806007957529696169641598933322584626361337522608045019894660230944427218383134678347637779562532047344149665697301186586187629381433049091100743860814146252712011166725302298443814043949808070199813773313923715964531853948203317805299115802665458622198526396011608393663371376713270025547747393158087924647062257124345417718987336858207463603379875159363470219354278167011119217376995801537351035054014101240414639246279857604563546779794687792105255708435666111348540741126567486121037603465568754992143224688435593844692610857879734666571113854918331410669191913788572253104858736690660527822678922785978420986821121460539487231741692422525380789080318002724379796037371345107949113668219125988766260089382921100459951486662870087148065739569290466596040188317882024245319644606939329893013252715498615107249219314814231045182253006105246489209980451875860578051071362401152933206681525921985253867742030774598096257530230239231463524869678087972534152970027967514856829961128923130219978552909537773040177246031053129111705775276485671732223151557752989271720163301952238204413536538883461126365878483958881508820691151890995106929175455804102102536311464610221418889216795992030876917412613380364508549540906500001857808798723311460475094348654405919469936086847353177189361622717749621703077369671705826737672375360336719807963961210506964185978591704654176959893355618518508598750897177225236173629705540639092117930923026347702108398655779579995814829016422169315089771509949670496245111091342654671439511654618630328046615081023285142799076686800722385916162674030803238153115712246551658732383878910201812969718169986572301824346805639352737730482249125022139355231991693175096788145814651248036443514111348167719906450669724784859304328333820180042710162694418449823109393706823748646189995173208104750353436273179202773332329810115389954106230885680861134510615328227589228750514519250430105914540564375747215598348337007678156005571932900076773774646441857972831214283595442676724888577936058893468793329482877774664606707177537844051612980593795352958731165770137980278010949247475790524307270406203422222586577483319045514284503349714778154028910608000525463904933698267086473708780653384019589859236611741293316097303429451143287219103883164385072697092427566853338696057401946175040225333312434615822731538990992703815388323027363505944590850978590017357916082461354090715914188656841128248079007568200162010765222038693437372550626489421491476872116206215123000688457688757964690417702827881223559133136005157653712978804865715755670672655338796019991317296343948539425097283773518417765238633412708394453772950329180298794061495652053560261540367205090583532896006857856613210966917992283163990866579284976825989491269078536406763397226672681022714422702344219628657472265987919832397353962375184868793163774617269218418439919134853544974618286335717775955494605968589812195494064687498331548330409991065356200660934687491135825496217611046083988597204287167382951469261266213540348768496177499092459612514359216680147381102096202647415529553610174642522055642721712328155998026282255221901463946816242036437351274134741102734797198535597615303401228758906533570653301003363502747986933164557791555956748969228009186405085180414943221329659536753646622193178737096626750533722341325117236928485121517023820058504060544934270886753054383462584224890774265332088618528900347503307699937346838682669071994020871155682292002659437682557047436888872931200362269785714881745636152708610702761643586699084500219297876711814610608025897011338732510308105633203734945921543547244919601510211680019569773363916302018790129052970219769903424890207745877093467552624605943211708145401376995917396279669573316685032761719193667079803069234266306772464153126955027068796235672804743461126104396657049171551051846814943123630895083878778796341154146228838913944913239666570791398997348754744888306562456766620759864447906640805818266836483164037309533107268794397295411524373547790659661257349256463705692403081711402714432403237238414602957986169290420499547708744596733703902174131468892220468944794341446514901363290519327125196064546277528989553137704262902364630048656301139345352683539091948761837923717849809762232904696195622481186071800512301176862663478748857670524992976352544284530902055406378410043830648601339697704270316873023996093940042051975318902531663743148840458335609498545075452438905743578078871424458776307118470025258726557792953162988605328164363859188917971661531685279152685962531784643708620570653990072436547376726255693107632981096565221026035285553607441694052379544054071931395199432569444639288009986457014977052810260850984052213155467188272806890396866653084786151824361354936995859194625034982059146971493220453003561723251890790622185682930305554669113599116004051924765060634485580358259180378212705400309605464208494422279259142405204992111050598895616757038959724383084768738723030467078782634040016221454099032158529347214048462785190061786614400594878381201079149766532724888799677828671864921075042047994584198396765692360108841034195108501988585383812368530381536078681472957486322612894195791200978166642007694633970923122768433277873727821306769063808286228129037920670813132375788668784562511114456325028125038100528918170954072449842177612145903096196170551036209797271609461495874645562985403708932870159604952319372290759138603893106877377598834660902836922097026100980568718854626373554197570431494711393985479423902546920510582166838081401739036343751912983925183197436847927050569486251119206060670798583494429279653575109441910889264205589146409057076998404427774205993850584861010461215380115132325918953135191914217376661152797788360878141571855150821252074255147839556076748618452909711118282393925761318943478465975381201990481633428395431711147785211921156752779411475477809949444338075265512436126408323588070764788509306578999591801298051944066878057131110139888728827670384412502260191069753838148869134372928957866080249079677281825950666392678102869476674507881471778191157284682713345228706142302235732576878154064245778107242135917027512053970337327065368599890273952628030707291663291432883823507148761675254372217676308162920892373956426927103950784036267394401290095138470504440396723699763166104124524189532982276456021625090287864256078623055141266831690228583882402989735075509162861674686871601284680256538838712387168312312633728339880725779853411865206928375436751524949224580465627034349765219739972681110266008471803319569470468465901384100428223067781323190108256772047635297963567949699893011285960167495955094263459652957552114181946084202655348836396300334555072958679578341064277143233247720366000469803677515606427512945134309780134621185771534353022090086242217881900700389448908484706738157898673109076999824538532618591335169094641724243128770604728860637697872131089706645739078103457391892867944251215655688944147623427154431626759994218367612302555259005472684859472772508233891703300278133771027609147009268374290581624354458300916606493070038004791224904352608666618287280442225929452092168512498959101298758024472687313184311370825000273888310258548053711838017205113470691163148332532229230947662750572510170014506884582750989583008004987049058623667058877144761074700079196180417826852125288473574031609237695605466261173656862818313811403191817480426205813863005803492108517125404115844268159330460618480583095520990547010208382675271948717606879126675793378207285406364590163424213200953478002031213954260049186063349027634864846889703040602431873954735780325924124270103869837938365140575913610143530307910948967898595924563879724360134235581576097262871709575463955299926529178253705344834224571203623282522237938380903940092156806683796306185033828267586683140448366810634219802130582992724417543052085633746738590069982105412381088740530504297645109086618529942302044468809011939837009197821244298338409759088373849500946779885344836621279439689296509355524548845299652653553816247151918238804579950402201888575750131973140889752000969658768906523212077241414694411718790023869149359240468392758813703360121552287470898617222434678180741054732841263486836284000512303383735716240767804634076659436304845220987222724550522164478984188402952038093364102846628720602960447334356226092198622162619944404214926542090967630892327342871693107083596604412378490558353715738359195997081339830931461267634100365933771678630414238114242686130404668673071371894767397194140109731342809761097831448167666927276232414309305773769024863904858155080574564572359620145762184139544586448675342701669706214072034898764080894556838128547111182432933673174719612595613493163094460164693396980585216664882613978943143584546938972839291904409253105434443725571543927694769572620100764384964624886015578957186454797610019856388283866043653746406433892344971064804940064826358026860453747953491522617257467680770899312263633643054792328545672736959173838455103492097212360434851696994601799626956238980881086376697628853576881202594265008652900503139066562774320600600498437478256132318669414654226133370274108966365059577344006406748923443654463320310460882862301966859273230096365267506907274198197793995521284668206839740379742292507061591100379133296773796595682896319648851459999628918621732570241576505987176987719004229766010624296719060209547981914597395660114160518322128839655118413577131501886646839689681086688836567256705777340394668569948297398478997032398810771058775286445711629900591100232341665170023167727505753428037865180903311368591548820877962246469607447379152865983001168117786634795262846576731577426902132029701501078500027756266508754609525185581194103705972201004683028318259521503746562397386646961248351210089632429244311182518128724551232290685564474382530774333628133947157264162873709205967364351604064398071741293558003153304805441189381200631644109775698489169869434369585125474731140638669693501347601450887064163959487572202551375704648532726886367998790139937476100833548010164364104953008594273136416103682084936433312926299737445348392460011113857490319607217413088345041280126913652007155639105257411829629642446582507341740800517372114230327770614399145740684372984050944039922100596279887218186973688078931393613995507137446385557495337729201401232807406871012767374681141972671965746150831039649127438794798635931954378334640837687256150115145932739860453858246512062800030592901973980993242273456455477546627124009228999644513210797215326728892352683865294049951096610028461840256422422999959760256787816478113497988512403183787581990563988160603342128138582468362454344275644183743664605297764643909459815119655169541144185913919625166355139437338313956627784006702922189692359127068949852727032590868253882017453741654549103232363046510867866478325775767643616287759286719639863495757113892467298676972565448484611200603018553837008264228763325116531544348368605046234491781693796761885390843283686184379231659617604767269066470809877595659278792590491904811835221977683442465749487833090624541439554412597139763072869986000400588400444385867028915914275552237928584125477507639343815912046027149793494816277244926341086322977934117903873532411971690432441324410255516688816176307189430188857713470278879103510597231360238128020909590161757906172510458667624894590513726039477961831116375398150026930249593374229180913306720900952601294699634506610957495711719686430863071428266925247379202513083605504304096208372258216595877038986084260649337487999334468593755910650887930090663067232790030924103267958782000834426766340447628376450627518960556459862783341710406990030312879411408416250839991977938498599386527610107312526008535715913964060318272344421860856194898589959570186719214958114129490746751097639491221551310057326025216918871645753941920154984912502812116365271216376627949289723354252323775900647694306457620027812207826309762608138003932241513883928643109575955469711972304582663770673415232188517187819401823274435186474846591957733188203087984349612471120373575540181912645825728491195037121327176445665246722157595797872101098584887437870845146981702980215561082237879715461160045366549162901760403317715854305418113950963782288818926473046252958156794921277771763844480493823853648576330512924878210019415327232297236989519911312119862886258401900294909760768762632938117863880762882531639681712650434544027906086950517289631284914505881573107621962968618173686745324358529876205948458207141153708199955395253111836321716705624806616727280652695207531280036927355618594641592453480055797590198204998511480488814617122394156923427988508153398809772726797894881950190094132513812058901242235610887052270074064971448749483324683878624887127602859658152596014777004851471477169471138325239663412904173451870731286902690622370895376469140237634190901990311503655106928641626975304376533967418074658811680971742458433197565414088798891147439218831298388010026128883500934028983715587697183280794902240095762818120919728575610006736798625708680878558526513236718506236840208080028530464800356411656880380880571141055905459167177866345052583233183767404007026855113176643762716918023318655038571220587032065654761204645250079942570873561301116978250685571040158899392999742669510261094266135651122944652154698640939956759641111292645712268306356569073070274394877038972952810356845366113797089881387154433256874302417716835353589851127549668470136947821990898500896522785007336444323853363784461111943349654701121680634396798433608417669546196390683107094724312361882844908604799235954655316913464429346436426494876031631467031838495393304152565121415958755118485481854855891122248528518532256113749052669921274328897528614373379936259034447080222976192589337474990880510679017481431338733229786736867791120778978672032342438094817065196824830424504246077454144240796840622781714386955675406552990955558856240655754421870610090984708950213829273443355218037740259916351805334114144398309793775538663391620647177001130795762879957304753461904550333247064702694058359065917821352177124099398318215033537166932221928638262559686008944274204696493120679373811873996586846296616510684314104296954238527718684063695462575668633775510799825991058864865681936694572680703325977049607277947037745275074961843539992922893723511146491408931640625119908279854928570720438114774046123732896316498295420086877347969952135811982051262283679327041154685071795987105030632476725208595443651103691469823989225808109839907424855674147874427799794817738899511090115935563839030924754522018950355218704071776702868911159884878736731870952945568456922774034571375341390932873024620577892197929037634423081131359778966498843603808739913488063256801077995535613995747845526216656257856847032404683805633141197062890192598323732177991182282817201980450626453076549945205821074335934544170131211023134156552674615495666243904840157170340019015767774124981052796028694110534865457454117695466626847781264238203654692864946230019464086951110086225490718639305057168141730998892000245858034893414067610685210261750521870413548952356790237666256726481784629837696941214703218460030524625679084394837968653584333678704811611126970560777528960904806879450133325131763060712466715836818072631735014630185641956171518650830317502073911106512275914718469855898321835473704630341970223602484169864753057314372488161235528936420618496083065629750196638516040918385111831979440298951196209166369418522161158848977459200333794232292075709725765989930431896966470597451536949271313643713933682631014046227108125998224362408476526869405254551368732863726575636702888164669675055174920931896346363839575455290659100814503017817245108343512955598895954898788720975696090560310855717323121101906052714492831686431006823679119735739277142974891574081413368920037215044724412649554123599144971428926920001887893074815016662404364606423089358185844109408906564446024627741444129247676533032427376480516404714502118518056998039607887265855174289541425239547440784228317626960173091294141720830402873477769948469256741441117082324745187212351011585244680337157704907868056451780728517803562276364517684164773234465190159525858987352105002458177651325447744330453130362782121988587912690911994188516088431664965958280741942979858240279506982481731538653206306124835740250594513624725594046418808590026821713498810240421009134817917362703692080365416456571623141886599475799286246684105925305738083322695916412141318811383384269545416524076709337528473788921187434123956944066557923893346439713913409441539203151152304134049065535689560340406652477185195897252913751151395162764787920502978292029966234500217623070981935562841758249065160645291131913492419958566249136699990228424001502331294078427254374370621508418002908115962935731107322505507892871518918321617850627979252892408123625635375196474021791862775308028931555026942979783036759813304333351402371407474762096445932807482764894836077858704018180787955092811206182443514416591036158960876368123436846130919153057518336620863244864014794710747381901704661755686341662734636587144286429460904100001783074662350887386189280275704340012807142652965838311399653631737904638687784977462673340115867213195259110783840893713338782537450000326630979072982944106738316548111163951284893463195421777350262151418796577803156937431443445389908983760550131724136521295497462662733209045645739680437728559039993083935339138533827525783973670590078381145907831731952262704835050948370054443549581655191049194671616688841581640030930631118499820571678666720770107965316678014296795227435969705669543097192595604648844732194488922552699225245815064302476021595219457015940708166602441159495050132003295947699076455920738889584427260112262819031081035020557333335991148902372196091760921015091848015713892746537351339726768628159423415348802660491534904831048200403949531991964458380758127861972523414472717555279160795198384227723285997567088830976311964287224310349693409136671616758525615280374193975519823607651887788198388398891107909842453778674153380420380945647914251597369714728827297497334550187765410935769458171015487850941988444424295268845039310000952083291644725146280532372549874886092336277807254520177722242137115959224707306135771843086790175766036764299357278742605468496262066337701187246983255095616134391262237575462639556049950332599704702939679445465155431880252058947066283400383580751571211236867592411268057535555906612446100933442579263428755164182422405783515086435520985074130654636611181480224528466713264087470915390219478546204416161154813771049826062446678493938067848726145920493775846032638542568677571970133063847338138036592075204987105849010611307644535394135926931419980379190959050006933568136975366486096946855116918877795612205892421359016744906435284272173406792194944390728608452728763155357414857646561563499028221750674132567109476556304172709750083301465303925141362860624604215052641835887154046391840288162518442712598339401357667740835056776762465470540816159928821980833332606757094179512297537322178797398736790407557466638976962527940022909386198064564246719948317366216463140710924996223275869580726716349530067255449805860247915201768639921187017000192184305716086423113819855750831845979209908693259561280123741087311558204885719337395783628912206959429893544215104349208611106666495404132446622497847172237148790232330015672158660790502623251117250219452358866381145603474942615270479751210017820707511172577827868302673695471977321655438457024051924547556349201832040193668853983669321180265570965021896782820464382923380915098960675441451155258000874910243308717938874535686137589179756909053399085948467851670994420768985016239388166018003005186226772187013786828973914108601501722243594271047353855543962612177543181939432391456027875236406553883434066559785303235438013588582446178018890422543922866318069773816664472950550317307226641370190735792494251997956274744785128655927989146755167079089225324326911242357061111201207911577553869134259449523564797677084966165434763748225574030380222373432258750264654574347018196297869808586201837465215802826254495700273816012185808439585414053316167855574017507650907166350854903947198396020623189862701008002888611109424483598749437712983374374437739416072894682698257632756424011637584762920014112749970253731104796966128650752101058495519280641256500052775758381946243559900738712330057027986615596587721446526450820160481319620728544122013418297035821461448403245243576495158621665256389674364404364567070616904708856291069371896283612647821184431047636358764963252742612284006237198708272614148915090292020983657970753716772331925131813242523256184283622837168347947087674174247996934903142250142347723026646394549066604076859931935241539952344710815919596733999548989074583319852135162206204848418416459952408699686100669653694659320921000443632138985142110187845699591279398389958554015166932923591070171101884894485051706698826307962863379055675303715666526833488679154990877725025544999781666912550434400733754475149146120547956043394800952562204470904087875455799638559325760371564457236500670003218344056538522241959834419433585399640453254037036739490043031640169932601515851286505244404403002691984727675485573287326815623138928130355966962743811469629681750924048625082159287957594934463854148117021295153779813937554248483874506746824247040586776906868764126568119479656585888886823359889949668325607443513994661840573692990565159087489514843823764667628422038436367374416700276402269814704671358658766740103679420313808990037900918123628696118471803069857810984199214437900368416812445857160117064224741972115698667353554027564316289884717715645010671559215520535623559547785451500067620136454226283903711079162147630513116750480664316620631539837194447146491244893095136256585687783436286910388437802454324076563542031121918332899227469396826235701341194952291934570588154594550998703830871026788878046765745179112500409082056426269764953284852318294210040478983250514880761347764591799631780923472727948954756970855738328101597464418099053508285057293060364601453453572641337799405492828291688144243879936483404878376055579096029301413791348747031382064469911317539744057924842173309513336208508836471695928276959867696158363179069861923305350929560182120981396790420704629080378861917531311836227233549161379453276356318339058623105178150895080373655011858164246753626725379030258460841655125892046820778977839558562498856708284782917939575931015109349470863299734649002716920289250402927080401982064228087235048450969130318513909755655134803075805726542511220116028088778603493707845896788160148583056990832512390136211484417278326706219306820931856187273599771763870653921073470083813003827455091696629634794422948154917016578194939924137894458935785744352076778369784853414013177960788769722344237726682995660859405970550625452013913660306863464732420269343143356850722821029243460124148058330080058311600716022030902698382377749107529462306015300700450950427599988753582042670489092102909796526992594549738279248473942242667899099612904970277687850944764316462905809148889178054874657843811162815163564260409396303275674674826414179128666286999057903392949913436925426615094874785634111692441834850163254339734735556902254053123805990635019742884468612995713231599390509323630673255824826448199832740678145074965750839799216848678683798089465483281760872087929392714278398167280386653575268744126466178816281986897139844218431334879125581987597985126146955395797172853921578487917619262924545984156814358129053302581863956016587937612119810884045659955086744349950315296108716788508694831617956548720462113056932938895269967730243625434566618023851241805644638105818588455194325810199003576804999108856183850560893235247600561887991963943109049055472423145445674572842479681208731822648697737603985853553338030679806820589704759996110458097329269424907102596068813446277803863321221879442523081432811232455444015516599086998569720903780809043665780978815118480731436866243659927983402308601623355570112764355940802518939772632892124556897777596444339971568639621638271861781478722926612262215287509105939971855595081832790111657078202348861272934933874920317836449120702932108317255065354023026488206360637921152375317337390401921896919643256462455306428733080822375184462200245765620483697860205608728705007798208842665412378572514584203107167673816440327726235785914693083908862744648396317760820437746892499877842093712850361689632175463267978816306761562181720589813332049074754636994247448026995524665124423419917467112194164855827145079373549469368480708261391832910294356015511877505762085255937151742542435784083397728137533533314253859035686070860961929501063938079736723434603204440177878033392555363817303851992068632697701313583446995822787961181277040161603434845898633711681986475575868434899610067237371567001504670998904732035646770390528597171543006584768083655823653930806978399970255118362946630981915922442007081869820255869599249725170713321241029137845961163250423620974944380321454493473259666359990497581572584105467044228336605785448166567919081573212918496811357895373231153364360797541068278257098275823926547304387455557592988952745601970114116100147816573286323046102484266494360152497750945358069216326945787385896225790725741519928938381678742334973195800266708347208517981084729892895072985850324851926957129721721329987329848473802375317465654907805911839265225830312880267378881198296071539916859646450452917793109604879661768722463851164170103761034919173821967282610400564358815129220983719532534764964565087018119401862412301018341536976658385108618204913570446089079452207524259724848340679142711590680241849809777520006271997159381727870219320619891442554862347187273301037586012615799260656745797573079403545623758522425202093171314594031269042149642106294707720951000422313519031521861032663476248565256135578435858258538819096832395782132953980842077590659946877159754847978416370274544179802402673154113312685972302612904115607271589032863150845531883267013959034768139111461768458519654063171466154163067758944377276389066551391878272415419308449005263587072921534163163874215416232977947031172490283334986482306014448139298930388416694461378284913656499302480375518771340668303187155724873134622527992464474465366366251878066811649794634825383678117058572553424429830513412345852327820967661326530100516916277437309452990266078809791509480312380171472319980397809496120266357689119920957917972930463288847465733491178488409363144993623487706582089801556804794127254392518200043115276502161923164125399531566388335417799657292777412535181681833106007588300963099185778395495339341759281672879327881124049277568775634287686482759834593648761997406712407761876646937210809613612674906348816295215824808075151267280415254680638935239639378301725485446081339396777424609441115026129034618610951506082449359382453299641163010846440818000878318535231046619516796868565658993683113711582317232003133605982506760590277192856564850859734278027992142312245914991054775737020351513376214933312214219158812562291176238027108650743297528475544666789762077890355801878476118101241959256065082064676028820706446699836450840846286604098158678925236997684356744599680198142236435566961898226697357027330153428143184781946735080971156917894205709236673509287887394182955207343882178156467807634952783472409821164668998166335394739195139834642541400224752366537173883054858335637543045035619880801256446232260985141537259275099062992874134086018185251806216240713199081252280689270154111053887097911280908641283397515084454650948979868437215731905059742476277461464544212479460773349500904023886741275946602578939911823406714091030959694086903498470450322473224059861347713441677632190401641402835750538648414698587612943199745044800433468999893665124297899417660494016479570587206641619088322141324129890723365054335303404924615724125851071761673896237459435544199894991906162277398064980548045261212292887925068759920485825854469036666877928431437258904728069310821691552219709683359565624344129588073216967423838822167681804639632307323867006906773777579441015785865425266542346625125150568061618150322278115495222246303951782591838624037923192731703754857329614534835508459260783545232166681607515072462622887660377744723182753237943214096818592226985163875419464307930045114323925902417257457134436822021923607461730275840877614911074813228050655035230012789118598986735674078698030984677438737299979992214772701618182551394676170767446015627515717639917233386925345438609734629952425254647776554506565043781452962446225731656693422497992415455124847608557778164857303400958847004709053169548877365270576896907717404955734785204252835243501269686065925549900911840923685037474841588940896172168282709342108768630941440088711332006412697889200681372745538840240452594736396391623544927701938113321475482748985147482371533401531686388939225009863063860077181053942166717543529558143117192043032201472217020044984587771102656715422700593513232310451786440182821670912900355935182307425646991836884511548148824268671239399692193820276362907510361630471001619274676432182228948208691186426086104323289866216894640801191894369232714200329898185668241248365089781132085004517274575021437532260890657892685055933292132269907531267681863963468035627452910635221120169908647379834000772548303873057093529248926146238711266049299694764655924239360393795843469960321400622264462307385919832943055403247797443487116248579167732052435951176308093012234571466597525264444431073361174489989541647584783384398624969879268683950147048514456376552018141834898780837380429081461123817438503909542312831392310643429630606475881742062446773477606602637131995059513245668003121572817895350655825179318991139416817325862181379575149832108695560799635547938173668673025073274278830632168049631617015432023773649015192197369158596680321770306707390613132030853220870366625691994998934821634940133137951308426630254148378848817196699225965142157423399511716615578624590985753720917009486892799720918745822211304870858330009265640477990449114853740893038892315175255955235538910913073002326979090660757170267411544463005835763242912903039724908494982154155135388958786515287539789790084788038552309082150920502757029016943500419600807649601591873881665671377796253357879732233481151548993467543191773663010861398599289760939602465912717464968736754231413058017017938040236617494565358398112866316290514557212907400441548113853515468079599499795634103548103567429804893306821268102730561836137181146327195584134782463179415784230546356755983044404707942740485953619049883863349598983517177827115061149297802657663944685857012914868058732353947799119050947918534960602741660271651113898922351794275639138923045488137485068737000273277286032816425652846203949139056606296091449206401733758396489554375787739273323264009002117883202108221547361124308763087003826737446395954910675448604383125910328218805460562976545122618865066404049081475953966184986452639187415832143660941692981725639466973414264399540128599040141897706724644271099261086441933516559339210429431152115113125839070656261303883457624736018434508898555336465933914931394814123839845008252712507038733530203803397776692797187314896131120830870110749602123774797443444396248155276331844850107809293563972411292797572186951463425951877245610766735049500154099893350019627846896777687266550971831709610826100536356890738450334316452014896160973801663882505678102568714334721423191043493498841529703034093471023334789690475342869103154843909147556521834772631206012672964818045285055001452790973382737377302391551361043067914109046278599472129270316781609833962206687932359426044028726678200906382087289404114653468617690367185673665169897454180256105983144108290454551733085295426309580133797365772180389731889518298077356503831747491779048397476244822823855478006260916748413078160314137239337347474722623919841890013519625222102823509683216601862793313030616996255806286119117499367227788741087026735154235964814318654156761343927511811997482413906502627502094138824808962115290663771590863983363422827432683226986534774010148192843643842603594652797146502099943652552605423648010710670263273593757719848609219073484397911817108119418824331362276382979919234184321958196987669110663643482436478458293808808261444216531561464860395491411594068631728540357036203358574213603677534063920815535119971755750156141256674177207761630731661660759376598304919064801490154347234874233838625168544843653457780844327119657117058401687109111115669969822887745195740830199901177532566858382657228933091707301308922719142090313265503411691823698548701043960938618611958086357999898493916601572082985089973652570016329012429221825433163677384915112953236261193094428617160910146262262255161494608426665158389790372325004523990955386836057935423950095174213202580383384969513751530768909616605834477700693107926212294576770258066626447938938988021512136198988092919319079912852395475841518605460496701872717397331293096702371495975788074316648743194507041245099791741449266524931283932619480589443810162108507054645976104818713889067790791836526019289849362526109709894088922239067520322795487989212998082761033505459135852306638875302219875597318484266524851242015058122997413673546949358409649679877415566128974561133734093910497408301619400301729523166670518340495009213465905248586006374095804900857501293950917485385766287740629966427900590953174421374945563214560893798131977317096120012133891644863073336083792813427843117391378099888673860018452741865603713494863961124011760124661606244218519366943376856915612814004380789645988996202031915414044093714862728432185258015580933851293113985058165682342903152083895268195118872198367858167280280874563797073483133565378409531249895714285733610904930505110833389941241933653034813363628939422464792234645427685829768409899890941944901396491943196795187199529278609931170127774298546843813114885353914005615191362824915130421078568242747271308895131595881213157630327213664658734358136112358651801648201950779308356813234413180091341570461782460737046340787421180003849033236203838617291018818279198999206949577448433971900347591422607542067823950732241465836341673907299173301589858568464885143310262882837951452419728612211394059455975654239982085463538760580790733496815261795980447331958674505696834828209296063439075682717503698903580364036211302749550726122813178240136501417156487847431695776657035111629671212384802025995853225648852866933915149956806809542670244336747323415486942105501482973095030186597436692526596763577408024106554261042048853388241727391886367289868548904380543958039125467011468128995395898124141381063072404013616907500756423104400268623492561920520483310159805586525190226612844697645416348897561382297690370316978856461427172013693698540483666910683783110091082916306133923405897145279056019110747344505776338513661283425267962313708483920185414568533270545981168717402107495843314065399308887026635175453276869643601588077364227290054375057978001391925509596122358436916313451068389133097408562129880103375178474716084814928183162363605737858165611112475370423298814828748001416268491817103492367243574088156780029335835805038253887353917038778004604931953500797364118975639260512883323610793851219748043067888596490043416352114427726674175388459063517921678241723905075292148802330602452664266929969647088281308078308523144114909396808825076408390046398687854081733000698103726366848052084754156666883110048988676133382273908297833500646309684723465559203820299732615544176077691244448269483974203007395624463962615281988120615927335471926929032386161919399570166641046595714442508813872695619036992067582536708168417978268880079450353085962890944236235509483375196814419103626349966092750808672709194669311028793653115318867559878522172441508171603170877966098675242704951372890768126817903347172782862122561083867097232980592619007144492535032015716265985774389023352472607030208506344943690556764275967529921506866448271510124166000588573161233080540050694523730308392524937000899280537607225208053463797350464809624488349203774360405170430317103022812949864505792064639410217984994799125861141515674338018119543234207833150237188797986087313321460082248334020976060975227126589702572700805320909417478056309112902054868189740294715656510695261975134445705947169803164103471944353804818448074896866080533530980907355713399893810805118286628608899835070663334637402026452473052339915830602317381370415896786892191676893890386714607365590032383628995095328933995118646132950310305845873333446732960992783662834880070861309239430789029316835187848402399425593015047542171683934106791676277417728861032501729206883619615530778615332998150331938636991881819258396211456535163647199769290142518864499994832319020510610946805576580269156081574915257200036715775494886105810418151207434959395549559758387680259795141963738017264974560350430585718610028699980482215946722654164762062979387001569950781878041495058966624605127299152800440410259131141692970114605538747014820060912389090499832968189498455055044221832824660413229752001974471956993335324793239664010458759772008142769069147531952138295911228679916319373016262762114838867699572758827938236100737632907507471043261393287089622064102573832853041145732907039481330886507440134422790041770417347294614939881816244691939217897959586848236963618930770704046498900433588937503519408189786331615862582444318943972272670374985162209405840163348643795215374497816459268378133132348662735973644098909814588419218666638717234775811610152364993044479654202788263900552830879922275483109545038593879682562463228274536845771839763448512261686380791690971067529571723279489139200447283945017567745746921330134170769678112895651736457253681333359798128688060075759223402766027770545436986481984744018031436036190953324302542180089780936406166293505621918959017335188729631598068034451287376716706682509110161037161754415537608163600039436216982965003339706886392350563501553624260110661038932241905199464368952396329420387135524093551688187158564329464169916262513617150254702456983910048174964795645645064606855603024249298278879092217725510053921286110015928953056900273842985022654468208225992212294899140099079729021795224165344859923994034458305314336759079700387121016431589895946262737186147157506905756240775259718298405848707860573777933937767452658669579855460717538404016952058992186568457493206463426634215693995011283350689730528875020854514238780843153881372622032270673953069287518529932141275327318600615709660876130109612256121930978251607089529484931374957019293567220547379915226295283294557221802752386714355098197314645801505770294839589883095216400922393445521820806734891401725064774861764441580485417977032084563215579877373530665016873958923128735427825089210917426657110240275474006714560715784181863952345637669504351084474640334460300581764638905820941463364123242107874248691876090099104597963467986908493517719335436579692340911049872118581405512257687381807459698608604923737127158822123926999078005898451297106773718526744658886650718770960654258580440906925021213022759837793384384539517372959949881966237866803447956927317840558988586931611558431050000152362927548891179846305358220513908981576467124028634162200983085659336280924009244202958179299315354052569490941819493281245504845540559033333033828784137310687807844215254732338193767714278973714152941635392047768773641990638983353084652084638794811876458902966635074941661853700455444718427556692953395668028723791254285542126542185317011225991263987455542467903703327870167858458568950992695200344343478268811762466623116579702768981155287703254208415134989262546899614377671596982203841494056012264070398957667459573123651858325589477534123461003251258125570067218632808456619164203851545088149635230115172669361514603340931855482042898674287263090727326389879662280692814228759650195371918909290338262078583999611248175208216462784438923047654519161838869195005258085534960581396940173219014096554015447088808291114141465141135220019641124998704836561927629939742520442544600959833736147305002604655055190219214223996867894631907156565567123561697083582053131258543894294615195084815216794242710493218528383020360531823574490338043791563061314128356882778449773849813541490427843778729675710849885848602611636183799123541233416366695341640697567612996186249042255111536474036212505242395593626584488118118456764585468468083226787801996816364884799641986920687917794740324264140648356514674500823016655383997428866484474602958819610015149884554558577624646792345546644810357576191148632430582311083020872626540027549809206885634869683223245790524238333075333624801715978339389025836009116769133163571027430961416819001630662249571582027761717287666557534460577021401960607407842700704658105177264830227350589020726420284382046575259048311082292164021529549697434367575060148687486533992503909523159958761812470940269959371002966828712959426237292881218968567590343170235587877370721414092336656910714578272545397333175462899010344372066123644722048411304228449538363928825171630600634931139503331475414311152341757113760057620482677814191144237908330135999894290266379773564164172918024755306406527236336270124953310413688107877345120557735498161564141912507351673970479818916251077632683276858267454236568612532397178351107382766050286436193410076166763313865088296402504611729047483788639155810078975069320243860647620631456242656934991575073101296299972141760159766964729506978874979545482442424560965423983290824113397549917978727620277005626721142224616761656317260421833110662385633216045524597881216838428699638838473812919942547087079950873824286064228064545378557355128180687896256650850817809463460708994266746513957167491662664209298387290021228858081177777259169051267354880708941478723628939020229545825025629150102284241197503478598836750869988717469417904024249311077277239518086339140620170073457369799196467394924937137834230760951739809671228736763154190373832689005535427471457831353109971079403739455636800033005653964161728660384843629915312772222981321381187669741111316184127465698268382836362415602027456860877363815208400396698490456968700271932925778351136208415836496438667115373906851545591967353233441122703574881836585501671245855669435404544603807529833817006105712990707596885970072268091821244452529799111482229765797427428074846125035753681595094256355904643482788120997414651799971019382698932027823135274709795549369894924853521468831999354567173843104957174936327591297586862612837814216910899653080050814962974848920269776957874065495384405114764269244611749123357143239478976736522880984111778084042929519549076750734917838240104344804698317432354093393086386961922140398952792507768912274535421310059661692404623682241230288191671788278681751238743398879297824797822597834324982146296530834602855094348727522854417797610730732192939759031722493887194079771599146810998331143846122324897328372800420711648530949914256084455649665094368721309475575932973277877549619608008811338688965780526093681012494548940629383410256198484327923238896266783368722111617319401387444530143658777662573187273472191953201274926450126864139229034108875223437214957741327549388561578081751659977147131435249095280763512452589990753704043827749566817555150897407124794842001067631142141054813877161504230230349851783681160078412981715802274642840536133346684105808962152670737534874168565569737155443133091455785212206235498001385346334492465498774186741771777091826158948123455239194168252166052810077025402113054119951914346649008743543886375017664041252281963844553357429495745189589938147442486895033010633406352061240932951871490755129043366828509090331538327412386031304609624497577374249201345790700688152344065887807600335342561917077097500876001010339665830878107690954811680054251598208136339831645413073611307695865674788268208559289139844473223195919220094044827873421991577275244353696168689979461944395692631015015357242803699527731326298539116719232245456838283373822058345258612795583818334723208880524168156775209065184243093998116156398353171739018005810819924867254054292356120771033728953335365022376034658096575345647292932187892705136765809316695646537792187958719016804527810222622698179178303281081026721208883529333590260273802902565460073035169135701785444286747281055032673794731493547457981575502617470609467456367066682094238167111069545984254147245690402102942795679124945904419783114645189340800184411587355565013876986178349154452233478718851710793515714191893296690534582214991270567563273901611900469515894004304494763864174519836842918067131292025627834868703205974929746099183573340190464520999987589606765619657685336175612007361439356360414827839193672110669018443782626743236459111116038676790395283210141758803563370150415885663994965624738948182076271314199396740342016358628633093915795338687240666136428006496244553822892600243010579274960966176502000762163552799243673002374730520468987838506233058996344511919698412152249371783805740856518690903729805451267082238087049363522453138957231084264329867350963036769353886333327708077600411855628285058243950216720156573477054115596988627181115897144407033535942746669548212841556895028814932246497602687580912290812931030125720076016614369620161599925473861425628452794088610510550439216749834493906368772186994490082096348321612754666891669134511056538694881499364976349114371970008783795238846752371542507916865979752464575813044545860487942655917364451298813011118697990171694642684985791892203435035725811208560431974496869291693272407607416424860379218371824467704893341315891489160422519220414162197214310699815836582774230856461388990466258529095621845595516077571937227723531336808914406960846080323686907670120358284655316477707568744142826908873940639064200762372215366193331097494392479197961818207771928284733101832952677111833906749051666449991418153070762610230627137849076831922414951001064968599314479914500243176310514240337642888591695822070000579498315650885057751133978679467828451052483506625815199951750741573652217171873350855241789697696749322544178890310018145087911239598398382330479942882925335559016155674493821893002449476879424729909656340864059946985763591285188623992918814016905380844783589894142258723234140785368076478906175210017557095725498334277296472685091909376688753148077730800896784048161018351367570831107266664240369073525556798574448916869199694295746627863936441526526117783713217944710667446525264272903685192885002067869034956633997937428135098943638430969094939281363778107451994829055069184666227394835591974860649472239542701355479271556959186395796666880133328197429758257655113897358727091701531697224215248620422167094932908322175068034066743791022350676418031749137855795685917296223600303845824126137214012520810151520801421592938643860852219587803352028301214754822977673225893201290552271281993160891301500757243185288487192775199816628434858150459829511238242813621301852078481311020728044641433069170718735584048593113738373902342038630279348214207296520903730529030205181137517254444989307298616970568418053546679888118622725782251770849960829157954163381944961948644369686763475918993429512185774045130156103479846229361903701828643978978131213491748647238091003628266921698229480133200139356405028160406000317086205893638039115959403613168612434080526412726199075504658167145852153816504179513180181231348597663769658036924332598524202720619738493383752820568768657660313704341761095098259804102717297571586369939083114341542980040295305657423799462835008004488264256408217982683523971928873264717862931385755378306484548800010108683769402480223903168903442931379963063070468167043828669451070913631554110905328763642265476725837381616489459120270479362128824902988407148420477509469805707340762673474531050525603806199323967683056230947563163610372984123187892310532505859187011415587560056624478447126115019630914629832922563689834243962292600722436695924304616922839314399215799027807868649993753289314008397326028357258822745864253921879106571245824720727581378341122450354673019672807295208983976972689697623402261111384636990367352174837777930598086740789247566271077032885064010075666414513907666630253128475528666068562140074030189722419261980063450113910490759786831470825826998239470035198162762002042654926099077936186270973981818193652028741499553280083115173384197007735432590983415273609142841566767286434934742329519015987192638875569169696192172271862841995818819063308598078396556049682882746182040680292379068098140810359959452780355236413498158717120606343409231985929196226063569132685606067000910958302168589899524939580205472164051962146354459008073091303465881784428474694263198971498887661767648119009542171700201893161047798642949655554789962107925220928696989443911419939627807829499423635903390059351084892421146457500351216853645579555249720578860165756936918395735382102596967382765800452616193110429613047978672765890897586145563376925889142004515427603393846946299264087676470154014095954927213628186140715627698079777601392998548048562520424861942199717498540055775532053469587726093927411237777199020876681703503645753931149444490419882333592129863931346604626219471887839583683940105634494860104405969718984955165105678191255733799174515857986840283773237108055922163576566265653643909099154811730442168565896212635119010437579310175795552011518339378295846693572704695518073166875428790211475737366574472677788383930770359991986717364604502763401778030256110451084021725016223875315479372583599311701577261318520079023728692799824554282162075782500857216226966370109239157500336802686181060450058820324399332275657028655539235479958895093159262719392939347534568277624773217814189179401926005451064597539704213672211904538785005534448412837350013171139568141850269787190549502428239004053248943200739161843454256046438660004725696617848714504905929875158528039396177083766031119478094272647920182418247302168606300421629064282562118170722064997877817250673656903798993518378794265716081622531551010820936916035817243593289811077196108203651751481352399348653250662579640440952051268710002736131223689953567406342923208356758432662200805856960922415259048209913337024306620672653199574709558356472925664555037534386333308824127650785638650497335322174699498146736664283931465005716322253113506722057111288467962939715425946635356140636962223352078963587767854228665133610106689455177704339476215221852038786965540497707164369412599389715041445844943099425993957700138864063337927404084426911569272019637854970184323326791087075877459747185520830464785617468515055796894629523423874996161802706230002926491211337014966319653269582890108368989096038381510605754518479477781502893869369999683337720498248400472627772473787103831619515219717932125567401869227456052392057098086487220169691152151125255489539770659508991207022905426169588208672145150437378692417475183906483318015611896090859833165807155271705607141126093436809082404699972499328553241550459024464366887683187203063559363323149473632769006804258955770357037908552800131505698203062652632628277046972557122576099894684474731371953969048152595163965799507306565251933387120641641384818220570365146266032370053992768027468325677328743963460851453805617982381359177596251526065472357409015455484734870660351980363480973809080124498693289683279096509757948544843618661885184238152113751678505766648362890135205683904019071755872877415209661910127624855057905656550074665575885064902330897378606262001802500091463247474859948986893082056430442015733308006163563739318161967265508631516112539353607666666131202066180377645564886595814658343907379521971823739496531788683694863153765673447313834865767252088393460828917814687496670200414493570708718519142479119405483796152234590980744716038006233910472891020774962059892032195176093833560165870166222735079426153286898070457348081721408221862570823771540167427939441696362414510264105364757160133500700401216495407645263758553637132076046713991095767677910766598337032350367492078247904199965427014262054844614323639607591695824363608003282881212448344484678051554421512785207559402654319329091324852090416662279099184671897130796888289973794049413840985205566691762768192571150227828527646278485709286931619911620116139466695543416237140504049861549206000572270281510085214128254074691178901801446591983813703912397598851640542027815464933723180292181528384174488093172763067789048282455143898350606716374528850978870947771323086277777375498976659024111611847789314324361362528337049381825042359412788807561381294704604709680713782611924284569231870434950792463663276849621884088059772838363976741904403193485984341407808024769038962720657243601724028887496599223826283015965749170337524247058803059227979270580145979807527218761054280441079632364815133288960948389091933777658612032816857837351000887654392990169982181277548756021473301679043128784567630589488936150924697413900109468279948584148211656388910505231689400815635037564719986925501881974669998907878536106091299079717982811493925649109524058293474846566503213305715693980457370464383516066078964984891785679926568856140683911199118330843386811739637902338455122621275821896658330860063641171707282068876610487450447278140378514689688998876379833782036972976734017210332916677773131648954556450691161841512279165256371017191993044002530860616274846117992066187499638691422924062202254574441183017044749395987793108399796421658457472327155628042380314082337401289713961882434862157398673627084621230231005185843290883082018355079595273774080278072508476882798646256597714173375081696915791185186955582865793525429592107548792779114990298656707190646611070000072348965634533912439090966739096038981091884785114955219615102331565381618004207357288615542031825704459684040360672147247386819218972919051204287734914930650231218802246858586011375951172226881069805880598910861949984152509333893729145608667405454339250499966059807705837470424762038463151604070271129066642545614111510758355863865343532613246917516069314020788823919258080563517903588713472230042649356477005206284838150314206889880635414928500041057130500841607474239381310791729085292515619201747194663626964535307888701722406378558151554495220800385615094023595155207633994062848752745194883902575465039361756483066723146538205614506306897057286627355022445692117521576077087573646652617115630703757004385674163625588430677451022451676857928453204140191211646531052671051293774046397032086497268585938413213691271664817652370944228479313295025219445715465132820240531620050720497018760854657905051592636363375641624899683109962876660750539431349366104309235364374493032223785587990651178077515614377745969102893611345761936412985433713580948940260405093630772859797141870094562902403244433955773287300825491537152777713415544761870839473297085891038670011165022690511188977403438641458402945576602747811173655031059785498969023378620650073322448845675316424299630524656578259707203789031089179059230067059776806252104652202754768267842523188501665130267359972391818692124734003919811112269812372627911103397719124893163862946788196077306554480127040828413736079266621866122862753614211008434425407789925794621599978629506341094346074829667752841947736180940931552908186306415256279369820525784642892254634401913759464925819358642573940948896789481785739473583751389229968045591159909605818104449915552032303039614186403266761609730476392147187070144521563354126997134575863637471841722380139677955583289322465935622963250464991270863389413849501834504067753577105233175962284087863540352378044500555797482575172461959976718376218484968362504397861634679852233812786117308583420725260173099258554243503497524936528998076067777283612197578048007196566260372222628806003079487878842344005190089710430549012408841064632289146068330852374245804705725905741506839383292197471204654560119570489676857010534804404029988840087230032267943454176025303079721865580737396699044454931078642911197350080970061961709560590900383964699443514286801779304488475861691874818091831397770962987254627086371050263164970140869523931175187419717411519372965907682519079303570186632423348867280982100902473267561966583439235757312068771168452149039424485392862423120195462192772544106902132773362506216002975859833914634116656393579754230626545877613828250318126893396550399395908299472135383008997243428090357270812972771975999538974626521725222050996867542556068679973438306713385230437675286896964720908521280439612747355375935762910102919586542444786186379663469090646322888159962974686678449531946976050649912080055691072412816706205427830871396904986735643876865986188607406341105151821258030579403362864237739642252004412092402564489911159971615568330812099225345262368333793284642130298190408539160952204198104207920724709344247068591775598341622628901560383143667004691525299715442116114472457469442439862796870966268009933117402941404447908617789964401667832105789808190893041495831422860950428780520320988329445101321499686046330332637004850861885169183338848558928480562210346959133921131079801461835038917369832112171329735107243550097883427866254800689394501868399830486790695231330551365682869533485045915693009472870422897687277880254033355719567625644114492679849400918285148918044851809274153675425283928911052381715956733062870911671011387022974649922939398714792508672675173749639399596206194144537535269804698659823220758077196424824790766070960115987555144716231835034303352010944240774480906062268490216063404526385034530610948410107933395021785163029414764266369468893059138931896759891370343769907946240225022869648726731211135123100206675953978483484145966078226860584113665186288803465145856197769649228602211859889782851195852336289385835560156298244488654166411375320177752430123206137507138407599681318706631025199572073748868910208343420427809728376542080004074666768835195423653657323060908883952935686119964398060960777610081965635512175951549482465647077293277926784419779809326615875710932692185783173489820338152445194534652477384497478136873914127169038572994616652801448600175141760436846791867003543619937350492851147174658519991819825170118013628946214453245360951863515923971661913303853104770166365068806604994064129682862991029947905879807597837091947806247659803395474337331532898651881938007379758419463207705928440039295048208322373756687581947779618984296525928528267693299079317267822506398700357791521174549598006569736756871325248576247032743824679101115259450087508752745914053268712998829994998616321885744008089150748364093291582898042532050481890449733919896654086955954740314871698721789422070690815802803573082269846694267992285727332234004210351556920262813969204403715047452947792164341819068378266183071266840349665062846967048454382073308884953324536246679541983536114347905090506101756613218708792554742697123154519680057411164990969686514204197407944365102931700219671724587512974945004089465741120132468386717363456672512055564947737033450456503402366787576152994202159098362276565618256176402295484700915742717659905987698586276487473245374395474228692591073793994443806444338715522744422319184196492801485420570598331261589180171013483184846349940321292857700407858195187411641877368307756252114901407697338882373309004300358998117215127515087583575827019765113947905551495099033121009516735721963050037084386830834223180630948679920587326544482127744411578300898262955253725213141314370731051148661942599656355349102998665810303164208691440428835980999567634735732971045528022769554471807838351655530029380024501538882338556333762785716307568718672494759677376343359331705710691975608125734015394989077494726656077132087797369683088004636607783202243597438675430291153515817552714229267361910009489566691384968925794670244878924780495759789723703256501876107595615821419880797879545631363188283374689906339150408805025156675034583466060469861844948100039508821563274902339400089655188688421517500383593336927289291679748684749085213765628129470211325311119713917856204681301193683411079834206701269681705397655499699488839676395129100047778063088979548112762757345675847624943081285806883752767418202271793608955721695377326833989729159068687268537558192399711326781564873012792119876661213627374831693947334313642829128685700941813842646819587331312975750149900004934998634194951405042512783385176334628275200396407359270795707159056446186116980947687772854233987756232064281565910969932035092076255250729231122692840251872691933799612227139295708779280034581943059945298393122777016246756591793583773523930413202407425888909200565673591101665604406303987223155156422529048254027754626432269365830624783983637466289159609004407925387982738529329745645707288812637286116730565757942111356417802185512841376756977871887250457239474202573385909970160712374005109083724520974571195226784225644862044100922534770614327375242331644717065062800952602349700932396547301839069296492603746305246074388251002912982607935484398507420336053522949633761009390016643227196636908720201926088421684091277640987806676381861053568543540351137617630973083678421503322393533411626893544609044328160197325529458720340097410758881423105598788557982048172552956928637141410354258672887588073612489573275072503315607791498502457217898428737019326630466785073643908728427774578561545926762456290245613222588544404251839574813162996488064035307000449519005809866758424953760602212678107667779580052451303228001130227995104709846880706585746901373657715005723161532925308053572607423093737509321936730337394876474252057422311723682386266162532506325410117438949018745604530613942190264720278232502404247225578737114266327495420362384569685281930996826679932686494046872690008645338361152971185233959035811582236434651822609930460963654289073538820781912758934229341737366960168271873617069735379721194592118381409106945485976440801283783632806834316067802462453839152074092895028881333026556523069276656614088092602326986409863643245171402147289642680945344919360512419742853884970864214332099850927071426416477578944773763920546858011263455388181509128909335011129657925120705462694350907917563770403854533947786578645591338322035274392248802539708537233038980606660831875198530305425642620518314347619697893204748464579224031098771022598165626961285329279429852539662180068389790301303332198837911078863020043166534849818330693523671928847615782675200770373212030302866873147973137593106755474923724069361975193144487166523282855205525329870933606179090178459097687746890606269028478037617421820674139926700639126525761721520315691576930887868159958730641736016228305807730483179095033336929856654254070894676228363237822368240522146279267809393883060793222857411576449462735610922863793569748051175294518151349774926859567827496513333714577667625720999808949940397306490332225835439862178566910734340785749018200517688417101258334035322289025942375475248954874311185167163290130394342891752110825440262578092303267752281294588828069019149533918972983434637687956347065523154161999706222213049812957715520555155190938267758063704382574059944661069757259703794432340416784515639002739647622171065953601443834265258481769222802651038477460562832608046667211793860543841700158965190351967349580968853735355895079209397447993498793688150268096313257602522164337843795020388830261277145348815507764316263890702333735364945830543752777028143054324587144414916821542181373125092197464454101714232709584898632180187107176521511072348900370637993471039779026556910496475208213481422869098949114124085699266934552208602394379839166821018755515496882203865752053321034325364200903054874411391166336945844245255247062494135995445869545735919121595557666697551049088978085305553957099173440417485440781824712449543932869146932684598391666509305014855549636528617194388583935776418783967857210475493091572701390851421830653356245211468431186345494508882905678262588611758221045311979844502187372223418983765656702178968161295188798232156690059892466049349054085536645872549441963452905426969160922179741843139546341742789981692452624715426917518010180081295499056659990866110318928646680734490257133182914485505578075279900493237592405452589654842928666064460168881068457082885142629295350669877793128290699616092036586517580524882900843858080409883820046278444488464387232526615923813666224770371705585253418706026150732128076159706254332196177644599483273614606248758302257820669016004391419268127006224842800337098391176481364844797748181497879985693771885170093349020956716833073430327118725604292167276523645017810133834346849952140202466498294194717445942766057262722957228087534438697346244626745900631787438008552138576630976836603740787863062615616958764784404681848132192007730025348326850804148900878072356274793366393157007055420400774169738771530903895582470033900605804804515632548853529109554880764993413153050896094273012618098137596388241274099025614873754853654560281859866436453386488969367988609569917999951519545300502873822908621579958399253479016066636975605064156807935714707762920810755966453077305549322364607672109970489850139960369139854929733645431149803303365683488455398642253133264014931055164756641742647446180012504292411466452121316815852686592385994682809290097237420020940734135478597332796499359986634748180830751504338561398075300643506106084727350494587390969089080896710545042373486838997791721498212139074058711564748616436169694040511795940169441740214905188304971065007582510038772168518125294911391531940671600188890400018543585725865187607267991299811483918827713464092992170232369312210352188494979540735883001658694938959264528354236263536083557068131251995716252651593907945287299620813111223412970384416374113870165968556107171912150143689766800193279991359811920349404149837986523256715410710325862334355975678697390031956564593183373144312156275851981909046790428837346652071563779683067817687010570155332131345360933770552619007342649375941664349755930856799849640587259826390675272731105892308200776769289846631288313199918626848901754987654628626271266743659929912551348211161732973178980123409415023286073400541180151101586853854739764322017364144321462919841666221462652348227625307562796292124963927239008918088285446644534444679725057364560526261804720285772512520461721843334782734912515814794144267846180769649513335837646823744868378845698746914351963333196182422908089038562955139696974167443204097029544829334030851447450228106348833332706933045483602879898455766482712852935895111768767094571137835114948677235984026574225456588603874534491810305442815021396453596371084277076894673889928847721247190573258447618231300887371467212753191401406248280796518386971927406151739666071063224705672536986940979571150784969425790956671491735818005180859640924646732100013691074020383889983471431503382728340824443104262985034088641366903803129482668876980617521923923609689439050895753726738053466717247352232612706759611138095822653379025131374659802837321588476536909342786140340565564386861136913820304225674779992100398144602121777628860332357122396189794695568334642403232467875212974157586463894936605760226729996495987994429851727920393000150117896556661243460652481130515260934149741804533715229943428590563738749407847834254436838335390434441605750827335955152586148037742309337060029794540980056128240162615220061342389548477797596317765721465320631496457427836235405089239741338008445179829682219240595469814353698107715599178921926389888381827173575364208023321234406805754874146524145011597884808845579223323635523926398244919620994336254128831300829209152357378974938311206679278969881759747676573865525328377519196032544221888759387273025377028426551165886037572686743699351185083696031941826509891171873774104376582603359246534154916695909739662415034354463659101409948270667793354599136140203235509229602917709343633591918430126670843840534766867690490179543253458394358860897106464382612206819788839675525943062702243425264114011982928804120381395082696545661396973383558172643932698161072191317187939566854783691763257872642030813858739643658408186516877697811674062244814413002968285122606953998451805818722417632610752653193611500955735596076664086159125610725894415751596566712266145558983113843762455013059220762046643510000460605732534379030974280943339608598907396586412851737304532419516147815432490065170513153618261732176973158907970810639851004738831931319912411280658049935543408225009080711452375705525243116715666644650172180127610433415056950571924626002330832485155843860021547489232194135738149332373136492562829372042107735426717772395680476065157380776691110709983884375760894033350010516404944331517015837934852889586911464461407851765659015324485448286723466307077328566186531716507995908561103872014097856602134555371283736169750076974853736568591784896274777303676402344407218294000454113720658699991940107320195632404164903321591918846739843241709466868527152784002524783548580381120421608184946497974388542216733172850406288056980392632982770509156119667171348793257559436355189529448723297078150835977521939440722853121940727806048413267777252455324248344777370704605951376061685134879602872613398038435104723439690811480803896415329223308002218279748285816550078324622670546000817995181674157208634016105271570538127640541337738976865203733653021381183842111144432809328680951745694565303967587905221428409274121881462805113080906915036770903077835503079844420211851138230409977151209589099342968233749039491134104127128091693514321167507487381866436763430963253373494599348669084953953781083058019893637192338956412019858570811384345340391846926550506695493950872419675060984909860495884678478865690988522678171103584312865703603770677291923232324477450924254924014491499533593437561673262096946573357020836470120279075162590178256319933987209181274282682907939388897106221822133679025483467258245198952332327659294485024780775789221046864639768512289149855228469712638280373121594616638949383991520717722695570200605317175781430845846221457957613466357285474402876893703931146840013673847963460953972490163357703880275690084722302930138098708181735676480359843126955902898759964582736108817865076388921727704498556803779143369576573872582970333648808987858860545962151457921513506424442052310810616482009834540131023195167072061977509735258441416476540186079737512551854107653034897371158378744190043707336505391402283006928981776348057820005125522127589462180478530937885445775390895576604879084411280197712591580125519810347225836109625639351652639670037262203498272007988469842091741381947988645625818633438980434498216785778155554342863523987257124329134884696812331878410506148755028880906237862029796574020836748764758960957112184346686117606049604162161524114639008307134788452920010874155946563941343430341277207110939484063920735493667245930353574182125182953091742097442035975973839105510772869378042907609262701744213392726781725450035728405802057780896235210876462411944895959374884555361317258788417871064936376073324540815204666974680871789956492329777039837166732931963417056599162525163689973641387397770597924085782483066347122536689430615743976017681691800863266086301374743455343240037401846600288351357209847272503539395564491971229432636238801532694970934125050929445086155901623874959307500504178043001866583069541599080819953571741195243741805159662541771237850520577888624488077531379672051109470637941910720151672313476922079942803651213274230688219914098618686376572537493610579696510050068784144782790251842556362494258223519930528669813482515356854414450726701279134059251637948056151626986168291754214576068143764005613826538525874449463059502179631586609796578503549376617589122249101429892027161347537287325129992051004030068740351318426821097085995342982109950427379432307257998190970958281517747131855021979494820726336263727837744745870429413346319956616429214228047059582942119693322165628954651481895091823699333489631329501448463658118802839478986038530348193526581082699730217406074320246089079266456395043613870992449278443917718474817764833757401582431868917409139447936645258229739262703615497593396040894393368736073280932706983250119947877764370482526257585289498771018674973973884905552331925616482923138880504965876022807885307931456063443099702270219190255097658371178903857883515978442583975339014729070255403316650353774513039125569338587518274688023964091774587035659696253586074299399402169576000795009526696417843239947107962030227269020856296093651175628275615158701295704415745543510913531835171631517110037415963897854987047534727342017713971752131483728816421031009556541208470628958078384511123515619402960828254709823583676362692974983650762596853637047957639132730941023850373533003893159753663080656376685671736920822129029647347254285465184528156807766048880756169670138230478016179344542533212750727455816969878416470073956086769055985405000416000882850368177926025372420855671548490170632481593016566842319017347186438861179780475781008510696637381998919710188178552889089283510205370988774773433772915528925719780695190806085676873781761175417119440290230363647860231628800581427854748473242596362713893143839651481904473430211222357950475356666998183444598033681284589789275888904289355221282635489749920565415344672329849994065288877612925179039337563837913533123306823857341184577976580354088133179978141280788263755942223176555894164829365169576043430547983703115867019726958290860872415916277792351141402187973643839826582674342977657105584227380237182331614424114866395703221798088742239961793618491584674291019726824064738054612460040873439457259682462777482724478066174634966337372923134723587909342446497279873954793057441188152451294513086758001377826133311204946367872865298790760949580264108387580521691331128920653178674559369880257398906941729020082055919922676491162233126770858782425607894032761690393427415438194833160824567181267423100215652927710182738796368862841754048560166511967370997065698200210610338020476322287893529526516710980893764207808278072431941765812461920529399447443666629711048803540822578344116686763025631706410668981668588181797369246694104519767758850250997296754272473847586273888229043763592939698503797968807108491532484948292696006749005658605967954519506736823868057559460759141383521625063529308750744940967215206910989999798692436850028515750399671869705769779772754466752097241867273020915148351201818553906041029046108582645748885843808102862542569561734902017224394115497593884701407662134704550019204094918384130567370202939977406919751911096913372631492789929260822190656071181754174741348921689056303950872253627668946161885045384129284175100118250217866591768912597468829590551963739445635787893396295802475405691214519608427199364274500271051219174480578617821265075142504424448987607222633173222763949399975450388117137649491040906432845459831243323235366152284542899995987037232127795876146514621330153868218873646372312571448208593815576759142148552129504564663310621915930832368405399514428484894313479024358607012067510481396791141109100675762920415548362587468100196787883904837252297380742015895707178973230056888302949205965017822976411272736514665645642366904245131330387642286534362716119216177698919594802696942221383350969699644845375963035136939437466434250094184095713927337851473098260032938368741510326827869315819630645594107680390436596961069920596544461221371355460955491983027973028720127437579511458315618105736439808376318185375569916376456073449783608789514938266635355134506094504805088894080521000881279305307822427388615943862170772760032160155725585980216265172570791845752032605489647313784922870687639369626154674146496413109129554120644970173196637270615030247891826422643055028549601427616483555510852618097337223217888360770948130093146540293156275768739067042096843075995673994707634254105540243915885952013807656591521815080831108195126208041585503007128832710720845009492784468900664479506537159030302463095806184453861464059130957512914701116347274146027112866473598382779646761300226716850082502341380296484495341054654863881930559833222526336069628245351971706981055571348057845548850834504204108780029145681090222189747320344559013554736034912275660650689827674998011266078933794985295989350772174521502373484984333236840710357031215948656683360285920171441209980831782620485079300911330283359492763928009536183460194729391787504572996671694458109966302387975501514331199610283754457653329722174202978468240086381788303094310000094500032979447706229043944266046792522767318295857086148004278454290149281087340792500028498179470183519220300838182662930563313348752937015047772109302170058067992528109731416111709046025472257469513778967698126161352388913576717407095176891502748313656769566956269217098019059311445963848972324342971785867170852689152102143016325496578488002131730638906909883476345150269845801697942316305554931573467003424312914807093645199269980593714826936739224696450434620041820915087061280201049300467346053199253793612287866008926835162643638890748217915120988958818300006820888927628473326392976534599452844087190646106004652406229079125068214509867261667391114384501219489235860422682077900502160170082800208477071500917296362218964465199985008368436021159202723738068353314561721761707335694762457446144450780363545115061328467697222587821289667460411214331203009531052067835496938476789637394232538902250404925898400128589158606899841391856311723832661678469627405208501302304308744328037857585416177400988893229253932741627187234995383552124737424899586916440112488778755996909172223227902296079191022428888178876269194454228227152577596570643006056298669988007069541663799899933430517728393361265730509175354420111882457581671637511410098631603279813054671403725021704426846286008268392200878023743290732430021775567616006228145388993871333128883102063673450004853732423983014442785538881751063467278967848299729313306718268907470070173440834627251690323555180177184586494581600845808496394293338517861615304893638214868969045813984453443175805529206620014128650441598729914205613690784571510929123737297121320251354919245731922566290088821659652357204356839832749839096782564316213573146975767912990520861519324183651749804343610138983771078622882252569203003216667119127391293399757779368351159242588890239680257170089573918952134260954528186455470182991762169758330662594907515426879285422108714305219201848049578970608926086307587123969428587347877677982692602207149353733645869284578230434516749534985226459330457684815668621085722218717733425569277469889945068683252410245689124274138299132595776767538062948511624592551317689366141278951856591424851788072751930950829015748276644527512424522786695709831503011081375991856971886318363213818724646154629222911049185532824327252755819245269554575235075420254406051212815181707651313321408472102450729324662963916730354661744123629936833744567842729720773574099955377333469887713960646263363170411256704576404160698235982842454303589079947641037243091866827331236698455169977579419222035660255557406438573812607984683920927514032293825370668775151091804405114150152330881188594006268715941450523626465816950507077802815081613757313048792225130721389115155547816210180890668608217029756863405443138724952552625271434627351751770706510877435640737700239221928945279704533597118549827500731290963801058343099583885187304304454421745055749573945328166576161454073015543516032141484639728380859878809822039793010745951661489324584094753964622224108655789610823285296929148333609808286096872310160367566387014990497419867364617541839690075538577478640385809219719874546036921792779028988606703507380395760355658407748240937182934889980601252582400725444713880280226556472227266252805130969464685119374321842464953610913224021150148476123283676316914348491260605009363624792684102954108498617310140813006381165868341675496703676204998411966466063461300702852899818486194447622781495956062370713890794126554111649617659085983699841489043787260797656198149328651432545683560384660841012339984829287673187486561362575838499238308654941828725196264400157157756569373350277114455455934342520105735259371853806112693825546711462200392881667947044672852085955660950689955418950972970302072918899099798659610012028677951253051860522046056009287255828844667311658667912430123506808528496601617109896810574685100960528739268258263255870248801651740331330242967708715106475203881887659035637853742974981131983087153842968971215483512146780388562811644267613669400447758808435745740631842637609106285569507875005718501718942386408295226817791772961397912383051966981367705337381073903596780537758500104190928903067570680555802850232277568318868932873240579803663711825313354961840621940838725983225445814771857775586073841764053932208707077036469959112158914041749080867744145650644460663271397714686328546997478415361943421787891669346406453249359394130384522570393102723425825990858989982229270893867193292631130287318610542497797252924736594885546340928772446376127661190665474319082677054686678265096700457930425066501415897404731188858851969979250752739566073408917788655071975308445308989278822153840533139234471739009097246691099913501072072391517561268147717157802278394190370168518042481517087729139632526328681531864760006961976042588678813521571978855940447043304339626100805101262422335421110819719697150206229630857910489988714752037574054861634605310538167752435470846953451863641227689441173434810992661366391797068041281881669531689883098186696913566145539785007603070473504867425299725841185969759005175581042985012216969217569698669164425855716142284262190004257041688149436301051538964298719909642966591425118743172827422617730886543478495345576939883327768345679796854586642206203522285882889669093099450740515622611683731767047818223902073124695045115726440885966361233340936127738944780960584697661617922920843709771055415231508772460912022980269713846041702531552558717054164984032616719970499335976638298033007354679103615851109961635856718171143649424415016065711848123729770955607664635235418948720772360731117072779602774599080508880165251828519889389030917981949739459494234570546876645195179107211464528246695508742216075162415280184489506860002688817325806769489238252581600233179000726547479446277882998703157792587499457301486803391109866610922337879592206252040078300673795172329930000536289230718601674757347605934517524842228750309908630519909603812140250885707267799317518008983141806070713974276282358283440498607580158353148400088373364392745379949483511824125723996169896280544333389451376076400441190653598431768400268605183434819808912982175816656251580531467123847453788147526151935244362013804463842085723290344030293861228047981035057348925488685794831424938838434031844461822146348253485307406692980987627118942631838436974502910923547861013342105770918246182312870021753199071009729330791663007488793488873880331392032127626014859580841112959650662368781875403350301376117744159056994759031109387075015669184521350890210363118308431024354004683554163386107660262647613153310006718877197677264382940481351476076637319357537268962160822576938129558758822059806674009228256616085255375113549588495303283880762108860022099814308649276023049819559668025937592532103550240548527235406188462673287416960374461177050954839625210141750436019613300291054701721290907609050173296667788111469401051343164061896950032320581680038366160401722078277597673280817879730122461669603759090000947837443676148476241332504285234886303205305511152556087976337797188227079253690509715376881123072380940292180027600994951640553461677618111243063929043885098340202704013439292007965859717859386826345841037834485312670876905341894550767014967021578932181326733519008409805135170539590043832763557898517049690828605646168816591213815105030224011355683709023836511264248057515810785921199517329537846354304722322078438827576545041087469728161793531114481406523103161547420145514458167800730753292594907876841812411022472925929643326163977581093256215935289105789818279665229273097967730549524072888435986686430700056226175329998574872241343957495743866407884720886104363331783278609446674167336172329321180489206819663193486122863928864000748713173585707125601072231760211008648117533097823967859083320131000490560118822172327054046064779073011763232855587992602005335460724007631715600040493785436486187748990351143657293504494516956861666946523825374685696882854651250905434515271636426033280056645604119004535571395885286774357744868973198447353805216051743932458877371837874576398973853312331455524882234534880143618838239588324850015531938136685755638361604307975007147362989309406221970587527393499138663676157261878866010520580383222839117247354136191247435641986328456339087388997698220186736123070946228626446418717864419307469677784466785682926787436658133265506027933932938435572148520392312762254763452516482336215095983036655192415083706179412015941260270974822722653695349045814059323829311690784897352822298977866368038090975412915383353985922870063510762016756373161690095481906534961192610539738436312122095755935750154643797493599796665189128163164962304787595124245931500316434008647400648703853064020601689334188593743376731324818704170179729225444978523820136852916831421719694373293824894175476363199420789904715125918773796913220933243173933519351698608815948420670778208157568413485177903188553611696149799916370522330949760279698506726104267673673719348645406520206879415237677577914276480116122682671453873023962763501295185467093802708738791929113951937004990270303411638023883546917151332044595198568812557077304043760998873875107811066934017601429524332852982409964985572716549338771007078639499399829797436412383395853176820387955169443468929178788144774297306315404010323060839835915471193870355786673853013088036219714149134026443403860220942369002997275356161643405060893225959716134183338292892509093893266001331567733870546346321867605698248961979046286888417494893485641960449988997521886791440966168323273485636911476669597838309741597265667492400821962026352291579901302667102551592952054884993124016333059270013003522196618087290937914372423361196353683783747873599306272813762140329113150311841581100309132722542125313547631216118607207273803725982076554772125854244848207315520594033621277737911352448145211344490210142079479526485777168783349964223506150809887185014220831562900096686082402961135602026861738572496812105118933335939454118895704869222100503530618371818010412575851092620668600527510741204732260462270833692442337590808410469853345628761485527316998389752453856208511797836992887753722955108497604738777119937235735654827717901146448313888019471486214454930215463415074295809950769191073217071873217993630836721906590034760586062033299114326215452262311224969315168411608934086086037558358772081514520417529348151718772275748738989350810928360937879416302367913432799670570851929747071267614868373679665647442160948205024702522420196536285239401553772438743024991804023359039146022243580777925321986695313865977713452146912843039132557099820795101533276340907095362844233110047683511698811778811484640975352852223225214939359138919103846590457358644281746294785294496374136000500263116310414041341731890700799856932523663120039654380022407615744737258272736478540581662851278232777470305761135683623401854256946636535848077582999080059435341995967795308529598297614442603422265703858311434216869394893563250384785642522727213377949799684663459569352867871813297131942903482732473667014829471847894621272124565957021099508681419514953948898371690748014849493981926788976176857881588408765841949349554332577153151279110089663324118634831426585199750104249070653655842227859928684707812492671788101503892855143925237615514932672805021634419921606037883570714696038096911012495652586307305188496264674624699570904843017848999119182362786938102930406611311477242313663830085154838018590555590638365291713998092092295436377396119873748247247690000450062012126607234068892387381139035042631436286588035455892862614530559003600623181715482985317017667099032346779777509947468956683033258210082660994614288742449845689169328771575292453179181565121837409428398212308142866556754830602455130456757517146872211308334271308595439693325314158328339762416700129405863079330620824841894505622035384717891807008972628938840389482084109802852494508290590493714577187283914105569265009564742928479774700326276869142312602928238643833443919061110904944575969825649619821730540433417773423095945986832018920192849015490331309204597095050136656015504529419712455289636714941505618454370842683463245121975870212888752009437161636610895230761611162841839495726909982818044121849011750539191506148071406580909338012477764998955772433874243294188844186574977609810330114105450661447722568644641337000589166317872356924309992696704028888533616079246160381330922078350773520894084260042252824454055229178367481731089221748213119550853740609593764338518552908196826470121565419748568170584955855315246868822362917061116574740034809411871703747362409712309901171430136406097625433163972690693033273078832286771116286072108173271780051149184035950106563130577000781623848827139491848517139278008846261657168252221811924427332844468779522108180523208516046354112563291006350075250443535446679212802653691611252590585411428348224924442832409237365010276461921022555226811257986456198907156143488277625845430073270966791763234043023227610027349708891033192447147409316020304885912031017925289515612508401217344785465585284596235269170618674684406267025588577092353336812354834639061719030209580843000349445104090478730774083544332386600761099244014565821955937110588357241985806135502302211308941875233226683790379947107758339559731267171654859779867103265157592062304812269452264047684246097966969177559506952173537644187404501479536039812249808973770017889228836360576425478627229254943383529716790976899038171591804441078069427615449179957408518238385966700365040655880706986269348121933543606570752454126683414195466758088357800986716201553447219476808208375655849452580104887754811973614337032018416288551175845355612202778565694189110017870796850494777894844786737234825410989919297326856286853268240991997225969055408171175158006180053156308701028146671470795541840978072131841398526784155224887496845286426371591351110793598836641803987489305524356859427701512452825059174627174999603609214347822499653333048717629716896017490831221010058329031676988182402433251600451530801740860654279760561101888350037877020798382791106962140454736271028453965871016017592080041979214481577794900364473710697671467430833331761793196386443407612953202010411048017559636911330819467737732661444196169300258480352814219861957284192384232819162769437279564618748707366818014008763955691750050084198809372308914269517025585527201300053223451418794480489443224305011835400099023225661282870741662909755033495661044690891081628213801446199945004440254732416839799570374360685333527019855861930510866689471529250382490989435026754787407914716915332169010572668892602989043128599963956331404990948483681040647325653474656702670629305231548643724064238547579859814438250098531791318965628645534138151764115708646253370431947800125102840853225952179005080271811551765764388121745968162063047328324969856866124403881396632521400444607388446023016251631256844143465711538860402693257851493948838866488488324516971144697997835361080384101537957441345534553054246181465963233464321538873122066192140468631089407576331114076026396930835728937492679634922932571278007637979737958401089573905525842583198790729265246573865987475554844547754182444048077503896490355530114410213189551541328431410181693909658367702885894566629827468909350487891704650453840417006751077805680379115359623129650893147305050655530952909482696702385956963323818148130929468496611925389413673590265191120437301556862654170397118452393653221505577443345907102487093551087760657027219350010120302116149738475049758829277261252837328923105630220043280501629701681026154813937242025453323551428576000907515902147552790622877226943040935605741192059575834305250959783505103096793633173981741767004626211570193744905413524178355582519463839017632128161395225453462819033903535664423958107495288463321015283794580684358116628933510817218163370985480007172616039932322015293111424088349353869301617445879339709994518804267531967466948788533535280454603700411924952408356575634424191186569833164515967914146211437481431643608208504339400552656545483068054699038096579014520185255251147402980981609025588569039535636192696087191019321922008633743377220445155745156282917186257270080201160957444596163423930204641704686529126696483342266246282967694128094251160884267082967817817897652161716460199181378064270056448332711800809040777299683381196955778083099146344062374818217902763553311741258001511798843272728275393937305558851825685494366778512937288552235994795960193323472511698414435845761261502199249033927066686291015960464070897906809197186194343538791000165879511667060115269257290041570005440885598020896463785125267022472954768712432187544194548856700674345229244915729816406528307582465912993994165586055053790268322674104690941730802061150825839150200336006067521843692198391354814703998128952272871815189524754810351638475408035366601271402822505337047799012058669463821249029959333254090014850273834906090575523279237618273651342609939433042904171531308090788205128387625493301086150462921947677715173463602160936818374282671404544282532603434844133732093709191806785873240287014956680610027929509166993660230413404476754338114095618266482555997697817217689891225220638561313118865958138562033985593139500663682254612790297219283364341636745935664019461692395269930231364374082953761332827307331230331239164725008438273508204429815970660574092896089201107408694392584019166862463235638692361966441495708992374901141753203731580010366609205827339081369745482930821208606538293321678359332580577649231196349088730885221640777338707978656008863121983241975033135758527324488936988011674332389962789686073006057330181061638719169338684404972328535059936539705560152611564807113714529498476667115883019091484038715060154549691203934339350645854313240505296684148287529294657613931453051435896255889955719298430494114353656515593252588731294545880349898910313330876141768855516975154819509497638027643768527093771955445446445874141821898507903418555672074551148776303184413309197844688442994104677079860174827224614076503107246266150680060649375370912154720244444859698410818845968509562104634521618642068339190845932244727204004031697545338521140665417885372690733365774332137197839588718069456745928222398347075847235966651710325725479497671599248385476177799130055404094239716786342020486583893763384303225284266880663186553887312746392121570903880509842022747987649030140671636595327458331872740223801815242297903746034838824910277728379413110584462379819386437720228735218895437386244348813722106259182732260570403995913739563281652541791654347015337824752924549904029456072493080066092192002014217450332356818452970793111940882684336783979711058336377042556058507665676937592902010413335467967805430578036573019314320606078037650832994332141858929039126494058207122217991857833402683601905059459102874432322349203034341094042896100995936699586550367427204577100632940306650185127832530618955046609382067150744148579571549420692495054383773966673038272427110496132977552631013202409716752164139523146801034978426074098662621025303713108480654114634263504818551713625258538530013850761872208010207302011911438132544854962310715848907926135247993890738284613754843885219939927968690262821044464631434050107382669338136058147672774374324094609615403729899018549183558697935086794907959570544352416400949242504890410334527515880597823819708840976492216087154021470816388597879907800117171148786831904898907456001512448898562101722521913739272506974057239350008851835038153201784452378635236897066459529325771781713481562224197404476362777270370862672328662184922544093403570908029277580993001741077326992300205628737949672382873000631612523336099031864928271552850838933065274059949067603884744495845554464093798889716499740071645375674031116187705129853263816641049189063981451848686433935526173550624026020867220527719709378131275947142715801807947194740860226388464913059425568889302661622292971391711566328718272984184662795515623512157845533280233085890500385666595401978968180315361600023961808573732882350624109470247117918796369647340676593470440192815150953559219478755125940442786042954264728769208914236749225870924381815018485518462904705336099180358533988496525766016123869632872443539379489944855883179983520626880276071826896286991969713846759541553085980473881821008443246450724441086232499977214023407850138875633365077164274818979308293763710899290970117333875339352127487732190185157743301403747812829421928760446331069975160444782184566627843347076245651339837038947057194078655564066797954480152894909136734136317104071380271432843273360916135284233541305940349480401924008009042849279524429029597865257851589883104699498349198288222852083653654138244603217812864319704487067704073245165194547683832452467331756921053351306666925370123457498174163806369497022508862612783213644913069289904796648320171633865714126944066596756581003673819810687526480379715316247689692711643215822854369856598588687435962088547528853204390894860051757092731615905307750726826582139832513644612195149365484835517290322701012056923805548194644566073797177004567842014496024611931226500799631778838955330488709873806059872379440940367721986673211075345786791036962120274842514646722054405443313609500098342254839472367542740281784472406523194580476634376591943333494304590420219779407450585418431105834165668723951153282121156137961578491759868907583070007827326820548248325812079468318261879155954053287726086724149467413349230151388616108819906412440806897553647448325152992921526157318355017952686055434080885427592654173345690684100272284281946260550177960856943183154973166644726189105594167058498683935691432157573921064074926167465091382777470959689727221394865061890060082073583412661474563556507079839042747112006344679829367947873899078531994684596739850833060543227036132312549233192820081142286818681253963767744628650228976819515410861442279058316509906386802712994160984742214032447333401598992859328237721690693607911283982993217666095652934838291645385553942085468594585580303577841479102315664613383038309792794013436535492435058490093801344606119441515016306651911127712718429750360899233940187865075450069318567745240553587283093416749152892733951085592768408863104537500943757467017073343069198280796152231717563759054533657080919514552782917001767916011294027597874275775104720894164087139071518547975000135374076760218150609968084520287074823988031043808957100039892492882622194647410098860347276612307775565664503121123954090541918737604458302185625031965839540601085111785276197352953486581060822301015262767530118564329668825264670755461432168615889322551985631692194088498089492921785055062328635218870970581552509284630346188742853690816402544537033557567390495433961838337885283256725726901586223441119441940322235413536918281464987675923896862352178042425578633612899782168090015698397826967361091155534076819985204509161915714476643131952169661266018674327639457453372985459509300831469274350420089636586373300582332772008305365172945344105377975904409815048288984919345600119781958345366016856893309209716301300635479344129139598033963598492020928816585012952745161064153814992836953672303431383713824614593437172056020956784517982948880199647238466691939729607771306062108081787027911620562670058921475149800649258870976449152098214747694203734644985792423438209847865120983430955341734766618658216381924841331290717091766534787865943591658562097127194812901174393504035412833302156880668776144270690667915088580096826784537916359131622721246201660031884967939012219494758970351777351131101042736490382398067904340032430419226270829350974002266525002502883099264118304190471361370673909187396282725430805485847013322486590366820702219318082087053320961805904816919619159601673017517405277197318722890469454914538600203772913311924787239037258867321828490956781380227647553957873086301253316010154477988423167887495116908428396179489829259890890871554633399014326218958413536106482783256846177054692230701575766840456580604077496891935931264871248448606084262105661217636771236374957282390446270887867187840909105327058270606643355508012049354924570869774044073484895429120970853044103462838102429016671073522415326269818781362224699568518450411907799385305422578195409471890986454068852207651096935959385162689330330489764614313206300342127771671746930238138261094403995043290577041463590523284270792306677422505924593068820073061123302931766001263811159568739552634494934939441316986901046721646986343491143648766103409548546561160470317348847253402747574369562748896826960905131352538349283015354790455944030723153373897577163208547792222628199158642800517362606898807726537980132936031675166958448242734057033980508852320088999120003665202032985617889102331069139289363678022774807944516314865837936061562857060818424348665176313839243482701042433290123850250926894066031298174755003178465986480857393049654722084811873783898841056945869656722655383691450607830144397507198423475511344360083157847051033030786050778602699370382619271896389854557649614787798872085274379163416384083984706129975490783169679960473361561963506797756786813648857343693850715414510006967047890245347080307076636197852667909364372754325871105658340187954257987581160446013379016417101352824290393305158272050753108664134227845761531697462200091975327299558734116393089647636358289701785790584591919709798860518679804375688491991414724670328408220298035887866527303500059035645891770597177111569271926530677617248890566820088974244157295450560504313320278017820320570465319753400274420432802474518371301015920569623079317174323344618246219412381720537100266506881039944092257230373658560116465541501217466465058319079684270311775727225748732564586188704844149419719737406045343586530527092763346386555466471352066725654112846070348245026915140600360632378656467267589041166629046828603078879721909576613105074318656726504935818284748536079895192113340722083452363130923236363628632257939624525034529445488700608289357437303896520860337625176048416016418633306822769245919857889424047007147243976676181116354906960781668336630298971542128338283639616225264882142562721281878426364090363342946118269512555391457592105391225715570203283345510053513146125405033985398780418840861023341654477108621427051880074907491906326317212302496723193894134253476311977182680207368207346824209555231301878448321844029762089283235573518404886251093816698957747012886138785406564075430968241310683228287465133051675884694874698664454026248162834542472638630160613789859450333561827976647370825856975278682038594474744925253549339564057236371724093548022202382803645025866431714389259703437824455637820334480451187926928151068022494992114265919466649368718019476375690778130296800123309559218347945923084339806282860496281231481851636147456298929472483105412762698020116419777741471921541892451420322740603608262464621715040711230867879099445356566367874109665323432011001634156015487077650509927664455227397011910484066436517621668967833086588619809863511882643283261232365235106044002224133498957662721088781508550398864055906717228958054582350054974275631536987642687823625125291789311298372548733242566882908192195959298006970983436210393343370254981484877209580954131102016968333348126154620221557388325313103330639818661684884268233198257477248111002373920248051765197475870441370793328396753158496528444029437010866274932256031750349306502333657167961157126072007538440041112167941327613091891706181222070818231879455723762637820392085481316477200599273033491721976371640055223713320024186322386540689295273640226504702034003647633807741442121483510490951017315856588129966561911198832253172514554967805332450707096128485505932310753380905333135698230078756751986054685005047164805797706450957957749367289277386383742181719340994413009727058579277821904262164186517188933842614738900873576057683675029961047406586672925093733524991365048279030988584848232393246403463929089541737904247495157618748957370898430521739724770032385564586567905725469214099961118553892092978767576291730670447095566466620974130236084543230583874649617411231379764162987369501510169077645971307811632011416051159528114001129546678241039291531346887007630027908535788401799962048918516467994158135812063683490477006102864877659830574001680357833667406407241250404239129708950242383764614330663231730875331384064681289758574693961403232477369010565383902353342621776430054980712640129734544540619967810454708558002845737730459736501129184715573635128849168670718344094624386357562223450369769175676028604770313509638891726668392577347533029808667537946077655655002633410297715291887759770599770474670100639332105730494033216254111017949651092972468555998814455990900591575669627436591346757847197535102540738225622271692514771380592283990920403053595523723892996059258761499085484994133716907142962416897740153074852546715876930521988098690661429154655761074950994250819396101286421359944697654758853918666043812811960495678070482723303671901918471721834025187832679397453887250851169870954327056092544536624198288976007175428146138974671981535578804595651349372172612781744436798526290009049220094799164657441567502055602587611303184091373652894868255367504021899552205412560984707036387574147293747758770450305722573912164010581559699223022980919949877203437742787050869209459666554683143760163216655680153463296349084486811598241547553231681863425162377947084141301030728567948977717391222540803333678778946804910267613827591927410855050694158067823729390219918065303231973053760885930428931418193573896916393341647446102830396796006719973893474662312818506592093206185494420218901279985516161191384675162505962713637543807052250951606302520626513236719266415921295179756056494356837548133830253313765248827738871673825338252483918141389715689639193938699759588981134485602838992721568262306813673071113206047526061287638106634515538994993144652354715033111055033876783506714653567090103332725562286978511846655092631480977279942798424406965212687765500830530649057684313691604455625300942527221090980374809556838841682620458171984832844366564940585489565459519472037896078514891312090490598845577183040284879030452102544672366848967983173192594501434814988295633402473720813813217907034929915944814921110218468140061162738250043984735637001272639415900973161101355600784072654465899657303244916518112410570885299415130111585955199466471259759064050799083624914387704059607429121429114314011547649881748964120321583479547735974433996312828666874762804730280775885306867550589116126587770610351462887001928917572959923068686292487071399279041046045437941653770359816158476909961429825321710798079074446848634560840580210742819016304963326306153118657091716787757035417806765300306189899609279149423235349865292173654168075802570368122744440127121911987386081609730858720076913795754173601642241472045248040693085867578330491407517367628936039704228739239284154092886599375997081466927428698741043498355566003466335317182649423080644365344547713396960697457927148408177877390358445683190933611910312639612367828902297500480921846524093167230299420607997050220101308550305892123335405441649126877401795514585867306156703305659974656968509687571681781541748192577012978080050294814838908574029400365936413801383238169064360840879851281959964557710230093729055679590909324476677802211408915520921590238945495957369123106938346207462252882975646072416714807304725322872716315488372819307986666330518620958252166067102666822025685432016160731552469282202240199248446902369098428248853120516731007919683870438471899754574524397104446786757651851863375933742476281683647519606216245194952608060297459352204337088456355753380429346323668632368085312679569583883148665319075099876224183475989037933486019555878228931233976873638487244329499240592805154367256580256093926681791080447553727372849665640631694964720698256513138884575986805537097725608495499848742023186981168008190306268604691253297785689179661876421824660989739783449947096128185431055746758694296159291392050438876683353103970292478795963074152697119925087738381001212985506507923290036804192904125296894961612985089878979563052238882197878621514957347290595275456204011488211991787888497175553496186681314822501739549074666934899133454092206609870797165259297769878044616454832375003535502589173487264729076961200946855841269383694127424708483009581204928573696459747443667469422501489573720893751649380342454270658491610305669173473174267283520122568875827664838899814798302033352603330747254847420624180422996002702892261245096626736029768394864704627059035713067291346678616881611742403011554384742365252715890467640321383041259911743477242602371947985910126644633256068050205968475180033674455345784591228393761581812661967624636861425410530842871209142220162601329189703100813221510864997962114061657970154750171640409293461613018514609134188607312385628815891007925545097465256337137098627361357859365288092239546790936851827100577573637327405065969167504070759572156105041721269819487145904164449738555112809988009997171003278158584367307773416116652088396682569779978487713249724697028307262607585995622501817931665852632805919112463576088006862916650174087981164458327038873464588400148730868459867867218425091988499034652476487314814417642433715111633163142299803668531056355250714825898722032546401373668462565504118880010193399964906971579946440033773841514935112302593112840128731380016218198316946582126110814243503098665926883855152485544970798261527612957532394124221365259595344917925952214100290796038642814369488269626355093934752930007957820802368354471465398076129052770306114946590082196060124992989912406962850609926154884183142278692235080059289314126318101985927503401502720535311458909357558272431233360179189577301568487323639515209506655655648536600393136981274988445277463894514596693490934198119583695689528618478896809568749107018975822529056044284773779572258399653930421456412804679493947107263256761738254964701247071435239315233604362955377421852474602557813280409403542988460265528808040724318624086724465533219694461738853579994254565973446185190787828244342578669188165873056363504475595931274819285381096478906754381605224095404499344455095405502026576378633451638452422976293595513738917274240448937405831896307391110288607034707601551003278085358914276604084604166320205146165237165417306257145438552710105501153279826852554267135854578592973621438990029310595071428252533588390344833197538174896369294723211135316978602265078395963993273302206831069059730334954291592349332086908466258593333360384457793560637416742550077965839792760254680336207817307131204857111944044782233534655796556378076063012265053518250614650573663143134300702944334872836818140822481992633927877735011897516507771618649059670496462709087547275567224347914201527424533541811523419921566745945400936457937412643132256440988659209088888651202263835942240078523907659801135516772744857015454942091381295022619536229602562456707171792337327369948206424700891987594329789939106288571900138012178387925060562146346752734346593194205605092861350603788041360879260962064337186900009570439536691168923513869052485553376634886734477302313932777393509533294842356113601463677322761443608046130071591208913040447203620457783228061418843938208974221808602933459635970603104435020534753037369431462010742574394684721992474495273886059094070726668766010785024175905749034642166530013296213625568799732749964287188598133423354390077080440744455629749029798347879755484287730078452441023865606111118446545758751615849274509200990941917435850316250628061134251628647726279447859512872074740837002130366623989855166131911429374225343594066672665436049430701932599183947344440697808782262676591120929134237445216732531540776809882175352444311830634444902168224882434603107117720719714822754338688384947549329073573664493324896721408926725006287449657316418595083052913637845438832172119255980977609021240551071543475492123674967614016445672804624639201681972729598388080695184283539518237022636841488128122413621581807498301201539337362746224416249814292664105159473318168283610945084532106279713384189701023494786041229047692133106976934273015809399112275127876171053889293656329582768575306594706169538904410867738619530038471911757279003470898412947987482914961159811458063571086237152064384424123096308161160326129788362508473477656540564999872112770035637438888370853791113478333164099337276674399265442909612089332007150407490829028172459274603299055383248088932783708451018060885428385964197849652654479060324942642039097521765236397343391896754016625800286331963036895629885081093254715473980754403865457262078001929379013206796654964318399057235864907307213714871270908727345948712244176643704143115473108774569330645257399001469430886473043535883762375063298714896720653545167187127346724181972089160530841884006161752419817335377416484495541380905480279532667285724627136745926674049376382590337912841223803417992328630601367427672388382281997197830955612881509618232152960368256407901308100108353676527704375289932966859720998368171691751545919860357263140997003914412788415578533167816406656944978004845768367566423744155969508800550124119894181840021524457003434900657772792191511339110841206202183110809825563626803155789390400271059926657371357697919244512316264322998926774414166382413351008727096945165505535076875232654141325045766047256405562003406391327316228554962573559800946752274418340561019722780701109907089688548013904190718369565684351164043649467406161418798529051658958017111547627641548105394530372608024619415155198504651782252681950080755729775852840993148203911162027280111760692371374724476915462506082657176232346253428309094193341375852398460657739974042004222379626096956160911841795926804846176975213868179224903573778275609258627108699752161746017524112251968912369483749646482859911907520889706222634361353155120553045602712152249062652100224906754525646832186722250638886220569850934346849059922393446132840142114282856429670380926073144898143812897651657976000282611937394817096726272406984548949209191684828386479710542278090295130262646822530255973840945580968854986405018069152987283445727213878488475863289808977154219354470270969048600322254305790512639614843201259053299423602733945641625129794082319007696231928808846723952513923350618506328724069512169489700737583634263290220175053864767257909155034635751872730018907508369742041372648568962262740031048267679539816140128053084175926190942666149738178869439017085583161688297203023512658760965426253221634789945243006699516311142628164722724123150794516408990218989138779978796094769653331503703933979354031322890938876146572700993863900843182753594048373411492851231142956800717652338052323233872660644950880741938592491590691831307129445896335543039047616383980375506677523467099910593015863278788783064878624902133332889744260553623870383572606538612411809691250762175076038629547140267891346366288787022214785242346791499862762033756306330302485624266525725198346680860517365559289769056104099113580598136435337760279839251551511505856761067834158812182540842939169545643211943602156588317671826584323234357879345765171787251545824624880500211245528142000028174141961193861206956861417930173882045560646604666114923501437965847155981111049192026970654700765047999479207276335427911588131630146687579160554757120126112886098755109495501419132000655237082733949671345588424664459437351554147316554516767541060987938887545539117471804966436898691592799304669172618176315972558189198578728410758041083980782724676741634395349067823344662678858150318436305337605031983695330183827155723309494235734277164992066080302028775719619296126955218823107220504474828428990850293472399371075431192296731635509334143717832920594630264270730055858034908411511860136788467753261387057886359421778560243251654365753983805281523406121374252129397752659045675921725886622697626396225152139363133029979759019330785504557823170211253648254558402516039183121494211675759724869140054316209318808826590335200310960506668796099359008111344780709968613817897889400115216629848852629203645395657279971176702299802217647814792616744337951591582890513040345331980505438904799183705428554916716475837343919553182063362594097406415834342626100335597481758465042359603661200342091714264562023856771814744637245880122655160712158607823580792272831348567874267776605215477236212538178797105123860498231435374039650715418658469191321738193046015730598513091150921417008139099778408193097411660047932081064973468325687654409302599711990642686877377688618078321406012544889936180496618722589037565396108270275786807054003005505905546373616708483709719053797402267588697590874658428196097801142217813350213796315853384706204514708791496009811954770392525537081932806417261787820023545659000845615238060230671429110248366268713168476501214116264396654536397849486950654500337643332587854829073000091308663079517918412048395341297330061526113009657107941216839907626464984743555988717005143487285149444040438871620446954404918461231940958058235316658460572544689045009858446973378131487434362409331183639528102105505448856250388559842914056968904231332871284006934275959113527506362808666010139410721664431099072163989041017740545773769906860016776059946318988835716270814284653473183242074991278299755141609237898144821743868583498553172106670444536389676140238802807726441097775813688674920193487157563943565319741421505605875086731891221442679791313373012228861769602819604051712049438605951493755026474510581905744639105448219805501967090918631595494107206209975068362052067270834448399925427682378461876993478535550548212651559646609066279608104180673067789249454138949880005612232583783045587558617090684921633580582300695547764719052976944906982830574553271040655366893207902215737846673760502562064911012722880462148065052379284226571934261169787878945825242866763836518983758689451078568218897734767927540746393744132068246005669009708443339868378563125801669832986317249038431827456733768493167286675663681152428811092539201039730193622181375750630485326972195807508953164744731587666007120027354506841669863127299485835744037598986951509081215346938092297025447155930110615856312187474827284220588293753683917775076158477580122001592513600095758014653951236744153572583801770129690149891261436981779028882504599453297283601939963523771445175643737705655818389411793652091934566012138422793544503636037383475847631841601873244647665774809392353410950037193139864565391072283103983477051551773282912789981600481646450554547053723537256542875849180537268750797499564153945686711079985633911009764903667262197591209581168521010953650071013987074633923174217703681155255333654587756356439892747949643361611013299432496364982543662283187522065574580102183462457922390973800934176127098829657273546936995158437051631698030461689590701534823848840310544217715242374830651945486267303094287929377996469600379008029331805347401693606829489002239631076567704501798339079971954710192833926396912623052267421185623481819556864751259457885945421975188071895661571966774910939465356820684154589215252799724144737938171185313097297168395573117756154823984773923553937534988260195245248152654796670956793446497134035618936590994891174093255700189294335215889309307902621963656140667666198538275713689999173403213766511385403915256940742260176269193971999149148457579596264056878601508354151768154982629168888727559698405509413444297000669757603672964022138476868678241042945176513672483973169496610526868339254886571552300103802577302573713935929429639140571363395721765154343529598888336483070937018022350722899287182577132522551995772059897485120155912930035630142449408172139748108837307142867701920710745030804705195421992828569262775408325597361965619690725863315887560876659168153293974406681140250209585883527859081272379095645600757456827466285429176826643168838406897741558275846430200766079953799999929557345028619714732922953736645406587407625044254099275033193478780952165029282360855253161224728385221977758708554907559589856585154063447786039562152575344479624497495880410083013419966457715729073193856384580982753217503192198971369489004456271973239534533329699688894990460953753487324209314039746676182471394282293482829905390122667982653295008848567347577653339118555359056530589141539614169738059923574293604339492749295595492235801032562970117502750433024693178154407512716344525562206763678935490175769086152428215152211719797307134056950460330515740728074656265349365216067289676876706640012416176444471520738369057908456794583671109495043262238810786545068654378018572361362358780914705045015075043236036433549396373366625190681010353463613899497245512864545301437132377986896747649433935714863041451081653941155345144048055048645381688684948006517394109013369530723601812817464431875065973248697076477867055502273420403337084974177796224737956559920703459645557344458660893891079659234252488506740584111976212901583527147576838176868157849557719917125834481157302077109350398416658724750558288371704105440314602145447038118198987674375512840448049217985068590911110530912839724811733600859164748264552569573173408768321417156191961637635101470141487013177694490849666810883222878606245414329067073709681018836847871357963266984228644488731381178547698223482663096475682589854161588464363143762116520156132496230493415105799403948283262703024750437166761237330771651092431234360111135235175094502847566840189818383881912260443179157574025006788832228729762224576506333627257342933247605799562198138025437867349103465226042516546617133189508143346888232028147448685818598886288423781499697116797591063940189737511481094274659247004868082531225724587739724702203667307856300977970111644750550971956434457398110489299669610243219919053693618325600751545537223177521253913987639884647389673654043757265417553920582138954360450316046055498230683573440671832289879101091355570440594947835644820086749569292278283659136360914101813742214797595158691492579751766591301830267545687927849567777206909548445924983498900714653307612760963638646825405598748210992087666009991135476608551740514456600992989686622432101518571106380079265241772068446064680148600734457789345836769491537158298621428148937121262878091345090212087260132724278299407184303533861936417268787085238819669616168070808165167506677563123527330111263890534824977445078443064543662594003531641968707236564209683991919302993296061358130466572828063265431982978875461492773534400935012219866711614422522519242180182606562432798662154030185908354330033341026036809507181405777866218431955167191432901849170965005428231335240611245264755512772218219229463182552052896319679294026289263710897971762390413867651769643762280480554818922243044538998006106861370819590335930541400474711872902064348665503404852031663928392623521405323004303477356806684746728001328367670770787993319733637108304197234360407794740879944173060483114665393405773354830406000570384165467105465941526075986126291917209743967103146604517407273134222789521968584779724548342360279362655448064407038694289187770896178998506485592334107365033955783142757243992216118310826774537653760000263920760617180738861278195344948612077130658743919502780048671789643307405283086843814736872360925151986706265520940232975646327847279456708139624440355587896543719695367113141007183798560958006458022320672046299578967249279634929307731675394150401911788917839283853661972602523851164385598077374423169235350919357285961659331774482734108167562151488967392031316162321189709713141553956173613010248856943640597217085624141229682512939421345386342952563070726244141032921976534024209857044840511517558497579636496766062126176788577586177206418005429704112426392710213525687597392607146641692484093819097823638926041075741367371439407285571348101190852241465322928343399942778136615403638785367584527011902510471918078468948220393039261290815391770612304200559228957066080918705765852486925635393502220712900720644427728048940049398578262052126816934472039788275977250121345743091335928734236994949556652688644701866672205964494360756583260992346445347657979384978569636878586296310640186119937109727831010502451472469699703089108282452858732513595531740383471512886344937933475607645184387301367700230827850418617373929885175409501115824407624094592677687872328505053960361539314752749866215047453748546916775249483292545289758746813696901362456579209588792069243789638155849338248803738431817693749792214349783864706030074774665530061328960005312563691087135108135062229811399622038505571665505828922914751988732951327401197269122660432752280715899637868118836858175844903162862522499615742462459688324493539081861861750136458984444661471815356903404860918850377861548770117573245336360641543339399414558175525474086861924378545571485740551943830393363515848460926033176741255090660655294064922804087181306562974086445920672045120155934376013374129691593304452571312727145120440766656111557927827614249508786948436907862761732233312141678925543054743574502141563532599693167861318758448419391751867239633352291354399119154907583924129123390646642894775169573897106031747530403479774437598622456895935891157268499061585106688620693844985883137859978970140832558322255470633800419408092379004060776469953917095869778369077544342524506421045235110876422000615533827145282630351193612076489227870035688275148062038315520499904594160465012552089616755493738786755010653098858201741328684155353041738851979872465105228101086738792070199211917387908015669729554647027704893696005739978100509924123969622030504498558548066380460246928029404265914256785496579912578067339967347629223483555583421588740693040887121937621048694254006942308966975861496682147204888074196069886898032628406107633087290843190161571450587297849295582060841345228184473988868623231267045769640784111783837363977938816737987591835524194307134054866891039613659182028635121090618280547212445135124322903050344606359438072327662128558054826085384282426957178738582134072998755616729067881780852999939453646192757706509602588102106117056170082171188750957086216691729719625383835444874937223408035317255636635082145716959198917377350179837696207019655728890415234658335004402797986060083561658482787260108391161995252737178518315289177931880268528786965556867261072838774388185688196900594595250413644250480372050775888599518648538540847725668989750188875488411002565394188328571610496745054617812103189176709084159071024336501783274230667217120763465615374477974136695623425227972786838912948521189471913660517671223630107606677435082062946611034745362574878528802795526407469532440423306121382773529214844559247502387902106218269942235326556598986674577525106221064147162867264886832912442963496315079907905807256265196724057837152829184833408864720023593056394013414452138569892987151974273863198285572488709412566967746005410199522128673473724252293545633991081101193027869818051072537588025683274493072727395979717158650143827017826355836620618493517854880885319239284902283934822593101890682597566141718046731540216888608880243411108601305725208623532701823757999915904667275777266948029763460837366095779318619595894161934107948476156379472260730217973892815923811847489375902940379642552548641577203494646915892581389406837491454918105825832369859882078070015773852595788878972790247229021386819998865975480396266798088996177920778329518052407106438821195925620504930905048491188255533904535743542474368331281437586775284387708708914374413400162366606638000945808675957296334173850434917397878148847528425636494765765364211548038979109153803066431454252695825544639566904615715450462147383260272945559789232577821303575424806115258352363678174088005293305765239067675234898368373506696369556274109715164525386809709858509531997208844708732869052175694037004997730246558110909473342069883895219929995983209948286254183740103519651440619276141881850233891700557882157314029727957266716371725305645349750116070420409160987660186382921861316323574790594296746189157531211524563081624482948479149280655903804503553566031181811406814256595784261118671214196068215256056676981107093594111832054495397447465831977558763662779270034586309803663815517443844187427828173518156966651658406394485519260374426682575960902580094248564786255231297951353567170345033910200549689556366009460799395011068895023796643077659175551314444789771574317599050794835893697904229616995635112529336486058480212316293643874522787612404419487450223337208117378573491640284478057936745267072374216778946241818365577754431579662752270361082910522781772433759282019326058300886590021421575786554198698305728955148032283582544520976105280600113727207454702779873761965641114051342198164723320207361145784486807808156936663063260613702184237948085027519688071365860477483386732559277288597181320717530627401289067729500403764101751399821810814007934085944367376681490058876566754414408104752887811251040420743845432586086276274960934686677881077219789209243206826996908214999296263198905489121521699164252938256856533680416089185332172720804698959921979565417023692326697021179885586426734927084318945655983108972528297050685302178116915850202726827634145215962318861537099076656075546857760160814890218927999602976399801649714189705958449260584420702922603689234733802091338706314031394501693387413622038374385767255226722815509857689563529298318352306819911620975769711285945967822224625418470550450315301548151906929914859604385511299046414619073783231091397271750642587724108699237725245371643180255360348709985776311052774487482870826625037608088489001463936114922007841556840385638922763244615690961236168729374484145591431769186495442414854353461770549539378849310683420102070660685338811084069128396070136440035134081999557196811134255194226885709436332550864921178637974379837572082194264911368048863614102214858303970509515299397127880724874128389295692660075193955190378022166966039186995723683775880119100110242388103427302886809695036058580833521976162836256592555472726285258488530098757163350354962356346318549506704455653780962936995150380846978653769218539196854300441986488774138091604697700272477114912007019808704578159836330787068253558445626421533116988981406852260719019044718532722939896215423888407592232258156360205558858759482323661207522862309719056418168257389715927016204500646487617239728379262165701455371034215939347815118231324907054151408095038709527282617765697674031950623640995441430621483098161439423936018119125423298014726284044214963813593093803692038891972261274048204100204570044978089951556055319378986185792334302647619195129460760371527688952683147239464122637775366341638158247452907274968945003604546290170122554661147019435585574086404597700544139139649786731189026158312332093632640557694914844378682883518614779257890755344546992182463617063765403225540734730616246772456300696301818364451274097072406866310313334932853300141856533895298776945059671912013974771855749116496675004240441067504244008667802017479441907438518155886421751757462703541982039030416163599971178088284910714232036574659784889722600800451764630323554059096817444091097944169078569459688404782935364264339165568532746339452949883914934163559578951848015523359731757895691102386055166315580790807187432420074849051239424612833911907875685852221078422562457086190356911761540067045488388837246427179233601408012994107885918814172833674187911599044028417655924106993187246291486667171528787521117532264832814084655075579885579946584772767659426850085989511674778985098356900818012698662592908128568772254658685112730337663129166993784782007193343373369877161359912331393517689871582560394039342624426575598201485451151226407908978030700268619433762473002454383353395666602224383414127052937880386164513022155443082912655296817415755466505089592144791808539505087452598412947743519432877139872844742465146893780043895151601451914632980260652283316862800630219617326815829610450081726152614831233666743453924946296203806512803542578964429802668418764619890006738013908479615707718717531696200526863709497048093837846469352961583538264857307211789409569072687693430270176749708454890809704764068591845970777236045895356280746416382091371156229803785180746967239780769315325305888594726880773002398809178439626343210488918991409488369784615929052090835310328698201775841722246601691892204614792158916783977030367880764477832451273183403755966365271605773843109956843704626512078436465796853697093792625203939969182683698151402308727731623157667508795722809856789408386942239659620497528152943389289921668049976775820981050319253610645460602161309318780959132352094800321415968673545280488258431676969833603936732986145819497882577514262061200974958360213255897803711843831160198353669601818553413683975359311107119264885139848488454889057234654540223848926664036295553709317517460273368882467492868822065705241791249436792949788624132659013099461780923911033083010358557309623613682180426406400370586001783879711006300823892261094142886517643528531216314736607756029546385820325162236602635531361918675113424318718790747885016499941523934566765402817670125614521800819256417773488722260323222399483337461374751388870994845370305975086486325117239147313706784125615328362900599507988833685252577012573557823074067576999732316162775029452800862677736541330416204536817920476198575997087810026663852585819618170447829788196406492223236262540556024419211831621604457154857827056240927518289387358220200750008112510834702399340135876061625667682294406702421854634739923560431727124481016070721259369090815961815202900557500499174498408804140766662342269865236369453030645970355316657898403087928215794295658064628553752480542462506463793370809515923311521116519510818582381873254712992739836778707246395402758669101840922583964275365809064756053161708764376122409518923540285268570025466063775267099696509099096902732276414073523886039430297079632412173098198188784696714838320694746386372555685583253259687812529663912563950435988272247787776781769841969811425421463268114446304510737774941701840754213772594429834202994713221678344696458550492874511912782824482426703159851930595334734727137451347174327292927080672157777683584262033822647438138882294247183853298730422919595967904929449636149404257438235333864607599936231889142251570371920028597092106728762372923488293812524271611568061673344079289257979076096938552237559780603947304205143796863406757621372874891246277167286613482103605394094997202100421787087439451916829505664400807084327389861792147220103001142011942355825277663191796162030165091082895100375618239782477943453926385589110280671573945298353885847739340963176117446276199145549731865142883718164707951709146258096564990072184916549392064162384885793419781042991979131372933687452523024073694488591939877351149532073803256075334610414081898956784043511017395339098765700218200314612387741456710683640846930971662363310033421383387778093093625121768449167750166484956576803863405020585518781794656640218336456881598528376227343749958432385700597211507599527945500146730739045150289540829075708733513418884436529147261992270493988977301035642109701987084201818489537713017474852452489792652301923673411950494318633386548169891643522003273185871310173179585706929311519211298686543549054535474466927482881538267588981354639826935364236196733393307526286149580227241111936204931840045524008116439154205440861170313375714739852103063652518377944378303116707215737604077538201989076103136743833803106078022533402158229941450614717402599163626736906086154240593847083951063944788268908820436325438921997555009309528326814550700744402379582195163922932865323563423810941121373857161046723684675533959213196449126771214116875926877905389803845374026119378236192259259950735161821559779503151201069054186448951053475094952885284503614605372181749484317479411450511342825271183508480812261008304916074556735619155389951952987989318588228959970851094761518789756471600471953800436421113466811586060047005921937722217705444280011449262503024793938779863700821211672533330629995028031901472608666105050677552909304412141880221759505839581836744439646320020153711888638758922059469122859238557020916618981419841808807194059047603307759797497798269846634504421138900755178881586406639973887923540091908957198786957444752017827655260405091917577234880201871734262917570389193124110217398082074133833173636172517235221560785839375502084217540672346971874424848739466597813689810916315023980313829374700336828527607223653606904318770488816568411102510900210972090921638679016738046472503706404245192763272677500922468721088687619119516673747992122465290610520072349872522158792794538672061460358543822502475637912059532767856843049270517517918498577433551489441262145163975871788157446438975729123641457701844068506910210327119703961999088187135323738209745640892382957949611538333144333936072698461516042228450619327125621185288686723250260125010340215153274031641259745312875529966133308798928969195994839639984740301467041511829582961004312898304186216555237359499512357191513420400564698547915461728888244282512768307844035167164203800899100039711015980757853378729049462761385700242515868208975154439511388903426485078449056350365227881877015309644697882042965974738847968404522163416185162267832451084547204497149592244815864922723516441618711738810253721415791661375517065429583511564827425995152030646894963931320989522324371208491814810075107000475099928920921187663492544264221579569892761264042956638946684889381367500674760827725661694014135087855598750686345691537924422666991277321856496538386607932513516244900976980167776292640585126159026330233341955910053412749751860753233638213301331415137290517413024988286924793368261349858856713794925237999054365807985535747774365782373737020557789798964442519801325370102292848974968114905845580323655859759476784603675074703158621229736048575158704334859769114469842089767406383486699437068898305863668402061161848887156540180531634347568949034460097032755049055502524390691711020392177197057066134266095008538939586246044300102322405886838403918769140403371469643069979929155361305590415871476312514838105633616376709314879092547897941625817134903375871678020589612706251471482167347920567908725658366540277541120274796709365902118777187291473729309744271737191187298336733791676752470976764797313905759280622112639130816183612636261881745626898087418732595973379441772447058862261054520345811254424477879481121048385168166431175735649373567908518683287818264009159869054706230451157888799711731364759194158288791455980173169445226455137450476926547953070504814210108651619679454576715764289599132404054195975940524693096230222127316183471929682823659375323542914279559926129717453576140078428444362464200556084074946125102019878561460374333541404439387714038509539560997796093083651152502485429653387224930167798593570907043711310768129171112404316978011983489650687669813516953624601984997645831542911260332271880437164295636138337890619935598292206017770200061897777200312848648516950111204930597091857024418187136101121424805302355905658871781710081526405098246383583470987927129610885476583480227294837606715888439650421166981342946979249983001093937440802247496091723053391326826284214165638481926577737715342870041229475404428078308737748133617334099225462175122245414366929950145393623346775848164452930275976049603688206709588358341074514344097527427702566041805287499823652644044552902853619330517259001089303949962326752810994077736636488393106244914469995493158089440905969897504922777666349721135630834170636904902166843184329830280637687908584385956455567070260623041627435907395782670890916765469950942441752959791375127163626575877157909622869380616914986261051718248315553105329536196579604795828891852542833598637284879009176556677163932882768481678390705286999884092436299856524791928470562871786446765458694645534194538460376951303400266246367250772487964478549704895903076052391127995700212016357846044502262700101570217045844460264589748723690812949714421985498036071943089085817366490070030935681731360605172277357461834461479368747300362071227804058893135199423824346735612831125281736792316911153676462353874939470044860848154233634943578522767349791426385219576815342357251726433202932374447745370248993913129664643883362169552628065501498105470110816850203967986062559233125044263750433408813533627615973126759849819123779928376139820911661625557096882073958435191272373119799361304772019386364809909008679629343132666476598326759773415058470428413021468447385139273860213255831998381933792232970314156553969457043304809337728122437407299753768168125296570747559983092189053623659769178537160168990919196261486092482392666986233767723585627374241594549465349337611644924298812013841387955909144620488904574071506014663442160232857006584628883934001718359631449712555477291018317932526288304163501765597295741469549480826071480666221867530075167083445746035830776514426396534632355496179822185491079046746571816287273295950524899222378200961997884598109995912952158141492875759172765040756043984854092457293554854593055012122510982060994300499472374240238984041297717250650737814644717654461962783176396842009166160335278610065925808730483650416968566615493882125320509405967439101129093041203237437367178518730421664347555565646307467449456761780713175781766947457538710823435403875745021813447991164610108240570986027653335934883571977087435927435758359253751632374787509439014504573057203394371235827750884927192378436495681892187417867007832583776798544389243451515855759381304480848044382036438452423853542345217857692783744586930881056074257809843866108838716194214040656112251526612585345639318487376832451207856718859099749183251389063565203107504257254352647318582638066742185937764326326135500743486803259245250382693962278521509472223008673043530553314539950599418397539785251036114888175160592689798725270407666332013054799023975852923542982740970943063396420609560565680985911288190267327946893096708043221280085426782373160325331433910753096174843430029710848710665698978572620647662210246282387434830756870061015045700901915834134766051035839659453083298933895247479464774008377418776137516979754096217434107818241944560960935633626780924310952519223046485114454681539463867104958964725635468735882279370087259425512250630356434064178349951013154876154003620424030366498242155132978089284326439194647428235617596699386422321747233504240075906129211720386109371249238070535643902532387288547679124154902075381882549266846037740895800460250191596587722576064571610068263000758614871866284940193671021826254080621945785253428456159281295116631275201764098042281885711878312684038676888084646389966195483741450226513050593418714979539842278542459385205943511540796440988492781270087461816038138869113754953159251068308889449235885087900376315369885912056346995148075179331612354073834711990396046838468991604202227202814682302168252676808475103036434368385993866453501151127123591055220389913927656171625568494688941428756851446504140809937590811800967480359331681388010499519231868202509003793226964036949330811754416919536840293887574061854007779678960956908658688850154778462597964910079533089487701554826802431822081975026193999269389155941904946602508748712929496704477577411162704591169497166623296917450642621397365915785478657061441432658744023496679569543123502089321597230819093183900219811156474020061357923790043375788043129698336006095953939486358804349224765854051718406446717645691346417259200113971320263657642328362553034523644572176612672252391319492908682043159567730350617852974590113813920790553100020208544220603623737927333070536519036942904526014316218116011826411475253396381639805151891351972204418572480356803497443921181629024172233987355073927981418358720458277613529124285695078245198249933715771263961628538628657918262246944397580868887411640649076609821670110350452977446819084788446268678156369902388968727874628065079656358802317854290423088233601978694846192989079671216860025619155730413644312857033346977906917644450190219904065617124026662924347505116668272440713890215358671934543663959353429469165286574584930651217577465658033075427543834003962773259303033129089701047603557910826907207314278970438963659435867251087333914241742811138750911871699058208300818677451272000235787476522511453879004612688287593997924401873793832513162413026552906388256336826317381344359201210344148807385438799815131137956276800944673153801808508601685436669826947955152392289771543680656570630697967273268197932117416957280897846033516417800893519671366537980202820991090655944231532401412319441239152894957446745391395929620920005711135383682047591118620965237098273237846477213149678823090446843353715775832595886967389709330864360642857770264107856051237711850955521698467668591714276000498631741713222664541651035264405716115005389232587502578046599150736262032067095237867418795602610449765067694945701156677905851140161417813290542456869066920697424630122089703871727504396034393395886459451587331549903194062748620464133317609030538213984353207956311600019756000742485882061356820678337769303954558556129816785671119829487717811406606250372437867863113481422060883354250336741154290964295648617763851584732491737031778875545567810913178732145303034029414228815028350742331908518841965141545024481798950009710045375957561205678006797017509121673749085541616793565929877746658330721932099990161877391548796103748671498519084021581255876849177932048032490124230327460374376180511411674867407035221237109505621775301910485363674816405293749294903245068261560844709514974139161249737754488164297265077719013697285580358564563290542106879399450564665195678100944166153019163587669278621329517359250033261405933757136111158956175431313737790504766086257008624688322220887289111388292358355561785653300160212021950674485261136280764486693238802163858746087473269533009382663287631359551133508974375013231042296692185536737326473653241061402654919052722546283666119264570398736974926402249498292322494801511024602980583996501651754636300510393484174809830953350973286979003421850162342410018096081168205406714393148991849213291795131451546911403407935134180169295055018488229812604099514870163106546447262690527450823398115450106216133161327067460370250868872730118073868643551971394471096279458702369693614968480517481502189041269091672119927841301857255449192440793043127290891070260243140768445215343964827709551635884504404655216859661182761681142831648328567429889045147277703608728222813468083309890486670561225423310199589994770509473319816488682997353539392261471571411052544545264312602525597279982482089999049562350553070526239725635506883744328815563941258986267438584763509280301034694727676080169353688782037358349849778775950557518696344992240447209128076509372558809330647884869941389764460912150191069693790420908504119136470166661247719482036372398490269858323661587494803086927109995928944476728773025897639377377771370789696601376366139149857881711384661613599937258273642255217462819060119979296470911524828264294560223904215208631446571268396635469424798644338945023531526278771789263446415698004147107758329367646276240502376449382931192643992857808895754894860783507400899383788517893085499281022247603291483421427027020729540021052848889565062631176764297717347333659930648674937904048695776562485261567442819477451932709620199855784998007011349845339957509990829548528949870413371311955955736861427808323670758984286981061831693420509152476943304300774115813172018146269723051976287114573064320601122432931658588735706201587488251980957804480088920170666879159979087503259411856930379283267407745894107001171726206376031343686454899406860683262788244668544913391992327941541351302025799727382581597320770671990516876012459578892378877407477453914958388132198626806310892367394966610108488149249904065618966693961580241461634309076787717759474334052065637575089935183419360394705628102522549222875595873338672231467345469466388349639094066747160551675883562092546662049511996384567109182142693522704370011561150413596134512370446477718569792811033258003017575073982416041348804955940388382762107611098201457151728272193247877759624679591868177355988810645769506198770597741563405727213848279219617080045895301432047203373871142209120117574258235203679069639311143576264297878861419061984245666958467376090505627431199497218954116364754657768384478563028779940873565739194773477555493601277462559658397013367917446316318945539353398766602240973404202826720700617604566108885318111402592473049959807226341398135733456871843921245355774128759548696479995135470196081507801712928339376510723502775160716526694414306915611858004813746937346802776973741318044282463469833065930816123304566917966916524943528745520816765429977618360167907639757735215150497979602529577658960931527192671523680394651565398744052720019843067058191122138060370133902074433431415431339383906757526242641111814033881850790903911468803326268352816850334064698047085973047763776758644688109974945809327657205328678220549687596299011909295424606919099202414082572610140009958812914125380447859280974975883304298524513965700155596972908752095731961436220860245049176514801477316054357415838468086422175688817727927103518050799132761687809375353683286735462165261093524099714177594920844362763592578598453155047780760429351980879557694031786244164707098165789833510168427734929236276139049573510782433194872814910294479937399831120003212848053745855173622043435605559935221874104263320792921722966846889224892609847021677193831319240530395222089839420919851332375623274118575864943853711718818383934097274064017018182917707252178038519499937941841068674560546080663328792329982476880506308289905355195703769995900754318970655576441552540394150978145554426801938664706445510442413344330702109208686049972839634559459662191647149567694508811423007650420540795369308389591752537504496057325986089377160023380340228529314324396517488185933011844145231079597048440151066868592943062489397393932461333592611722133858931935562220732670854945473705461688535741441282709138208333079611727941043334985634088556083420345486224959795944886972879101957377545246523528711663414913758897037953075727951273176008527388152416283862005692884810459829950706773803993629946069170748912027997022154899756651008418046051895989660802687959814801965506381283583998922772358365482010209536083060684977224814312934620010697310363145815836660993282389147461884825514625769257483709761054428997482487247860061680273243466733741136525545773407554724251112911102460182145337410891870372487844006615841529291073917018578011195203617983350551740508381478365613343281554471684977358628707989345911793646190353481496050414808462981800533373319161025743937098295151092976583676737917036323290896528006502097967880202528647841953155878543542201472389722652271587713405574731021912838293970325851122196596236270395066973674124576230275650017850851455098767163189404759449905285253708559268915501027274787826694399059377864397819938833357528554267288631079553873713153149206729197843719835263675730350849784547107423056937909468199787675507885808369753353724978061472715712702444855199610135824835723638595254815585827547586960252239178825080414044430943025633005824310363370100208720711811089517084966789848930685382582069201584611630209119082758875007625103618199457783930389731450579887408241979329837856224729327355581385071525667074331060310678608081658445165371121221884361508039465884684369684530857280150828597595152375706058882134742785198785285283058825314674336418427092464951537199954090936534476580556162456278260193963896060068115065859251022192198843196623146271053140033991094454936105926206007233748644882979295854117657531383719639669062055711307773289420323566865532040462342190339497169923940413641851635405113753751851917888772713042125045298267691917352140915911338642520789824958399108639090288522347232550407827830478211520953035519815982847961099087982254297503849137295127480214778203752806109119687135632828269820354779376833763414624406045833692952337072176121153825256145236534182060286848391606849446537493756152695834123687585118212975840737979344097366117329580699850903388315755573036165059004997958783297226489088859511445393271780421976210310609040602929060233043180434602094050665356945266814762920037783368085316090647865192375661350456389441442319932193284879406478406560587908063224400530135382401609905920514841949487170934535322434417790990975538145753324741137343796423366875101895568314348497306056854811115010902013665013463886717012498265451728055103353169048717830935101530250613027652926907723205153231802566979871812812702131207509163322693814449913472261116956898581197712702866772185783216203874015937517486694238917415546326030183630641633612565449505339365865352291536765359645881076258562998636419111032682638297972777541032074004288721270606677789787292469823371937696788842406403737885332093647163717150152385032438355630113686139419862925903212556092504084491217598667779396819759213777696891754409674535942721097497646578969430713788098595808313375919811563754591369886295616735257004299837086733433772407629315704000630923680033658107527593162492353298753063747043901071647525618639798069896408856376519074505327288471566978160774610760063397060500313932652497457471407636558104296427999417766753728788309050925909929434266216316717204892406997218018420582497050878528824679132477282691694899421297877780326517845190366188050026564294002148407561602020442672775482541257314334056940584104247427048075742080456367107290321581956563278805717032514286554721356176189811714686033233826356019345649054522013975066099076705905383614804423632040937248712884948519204365834689756164867573439379275211522864469018538586441078171733612058227757552391155003409422161970686613212820747500031498570671733780418307413155501604182383526830717970064629256957669138910133690968262259974833666368369371420242270773053979385995942068799305259278735415665181906154403026191311682250059930039394157932477770826386767874786997386927083261560698153846660085117839341765834686248706839222605498416136359320365043967511537452908618486211747674805170671035686079531384502715435234466607157629596555661176638079009112402004871244401667693336985347527047188931431641471548014673012373133711144980331728425298402313512409239648596575782945727268080882133360497064120363803182350491914626392514177969941844270661851636545635073597725744843367585594611877340170423134591604144503218895283290524199299557669317022064449828724112351715873569995287328779321232076154965425195802982426616893906650665510373526704554984182777488423543308413830110658268768607111194188329816396608292311004372316195128540649739788868991806977685857029680325488502838815044617142251774146787799933807542495324130511449834960253579001600818485669502663020118485341173437796826226643917176621127763189798047252311508634167568773044018486092428150493927913420409586450402007695986143866525732935862264973090060037048086146689095509403360807347519433732645686389938025074770092290722644526697487376908324997629725086149662031454928821895576637001641486532908631192648940377800041632655340712961980399714503056653704789541577735674750502772685583729901834253455177918208925050842155893907567566011578365141199714105871816169539626449382051360594318904226143527072212307724737432159615428793071190907856619747827874708369441271007192820445910974976199516759197406247149270766695034487270027319586326483826094864657295946712301454462346185214955439435352544692581849119332709032584495602852435467614287333957301530813897932548607327567382836640781464840353946976947063365043981670814833911806520650554503790200082724785444763361520387953619855231600472434033379092034775669379241892333286651097529543214107609981884025204154909720910382066661313896427837287816899491968772287244948023213779496554365986274032801441720117780973106108229468524817097483145698038071426964648694656732414662076163390504787377956987208323909802272221576993034816139341611354886397519021890607489931678508893857535197612139080567125903321650687853149277245536899104903608812668939776321664158752846207715906740940458649489176004810553329325936000109548973265178669246509893451653503860580928963942130903501630767333891246102859094256270314485127932694436193867040761257271253740271060159341775819299691313581360790808165297454563541516534161460207598580388697453330645006072781779626110336919955717558476878822490553107764116679033688893011822831052313069362661636351569281176271260044997580585114616524079384992614712781678350917116301581208003065588221778777648968734288711861309255233572239441547866032564335376440556515784903504505134736872470836819796385856756464765331655683549075646516199021600600133039581267982080712633902068619917859823154326540262162132867689044725747758496443806725439468570173449130077681542085489012555315035071241324156316718007328319925330060664679222698759317863712178007311354687088798780508839794167408403203219062692163353182809552634680733243558912443031211532306920765756348704793540999314032007573344808437608599856530341365808144506579837641220748044052384701017636042604005586374730236324533372845225095702616413990486989702214094193462185548866233059169951332495266890362978230655512032161346314856634642063117457144815566881767761978282288050818972466756239327338278715233769384885044757549123304684850161096583466602424546751060222501776214296657466540041731008295589303910263120622677078015110703182411963087982268245629551992809411053725312363626762736220275970593127319773661934976866360405289797812969007587521336149410840300415178993855867419785882264216259718446464948962220135474536841555487506334217391702917729121507654568494326675200192309817611038457353343463908907273730947077022472959317240143087788591052539217253399739147129530360163094253911513692320620955593327106944732519601633373621227576903246210551365806599896070253828166694689912741066849090903881217740782394541326512869610746683594031375687037118073784858402764703278766266452129242077818816418636496704630361260161938066407416203045261400607386989507583949031576841502739804730150226978065238804690080780945795929253597700675189647550690627443900820172922499657630660964728837133454818773943182917111375682867573062312877182934969100069710532813495786271556003083954728773634940624421614443271796332681340528292673604898773995545291452013267686386590213215769347635563268113454245947464335107305890553261929980064850013824042841867115985202024831727911006361623864080839623075353303367301390581492904524322127943897701182023252893914679380892109185782206609803309565388407229779440170144510329619290890507030983842504045038219468610463643453451296310422700829881744436326347006330568469330738235346670491619584969223894721923360294028155668389661255451791846347571835597553972269880199626380010401748073750070777457297797615912446977290580303827205928815920665187080671811039210352568931377468212845026190824862218544088592894701511155913854980899558261758557765005828101005972388077545089022083560211981359113282713640553389126719331768183997531083888928836812852830823744813228308893531380460649891489082651258189945881270918920153846385066154651106759737924855745155846831709741213479542411895549812314059990475034053888489094976966117925203088502612227502101731654166034982491433517112667081218508293248719035311725248529048594406605629560256286384872424386783653693705696839542596666820669465862609272594351875666714303613716592219056789017882184142929168466539380219834129806647098625047336153277123790013655613560549664426748727839021978475503426336744626633852718712062945591320866164875418863831930459177868017510409411796738438587785887025698712359217878238728611748033089257189976285591775187442787823190049820046207837625943544366013560228820388777708958276033709595789859962810346307341652319838261359740352305653754577952652259983542855869697807697231649671735627020209970383836900776579100564651807958275243771074255596448189251248197734360038066078012351058379295557387702796753836546388318566187138977857114907970955117648940458804669907059486403337681165658629374067761194087493011702990904336631492933772197524134347854728488353175528345990517398070020364323747618100763931108169348446784627196036842317203333694226096227910858884174305829551624776425525143509344808582641738249617809249975062091915498181157797579753983837227128765185125200975596421812580735478477809756384481307866123125684604500277576686792059544984363982177145746825781369918314364450031230748894074612399377945160808733680986845128161888121471396635208728218802152260336838704830742018875427930318216568146677103775706532193947603908734830545873847706297231156953449900034592090708886831221457055626083414181120454790095704904676807839004667075981602978027117148434372254276054253921617268487125800845294518447483288846488067051673114070198959476854728354731272216135708948850406391785039095418956082131285527226400409034625738905288659584911995656628631505538984206965675411952032612738346664010639735318059766337928126195995553609418794194954744894171156649071726703313574929778123818144723703623852322335879463864711885044475625632482351849694313473851881024369111889486526428035259938801610744610467148373141737820326831879191610832314538362084249014144761806366526908673983451046918831710849540197792783366332404883055350222728133898676072243804371629005963777043885697104854969577145610064178689074783942602662189399928251281216106516635742735894724730595297643612304652279263475087045960830533602450688619440016831054892953202208498625670318017397669626267551634643866322772759810906807743989089158343188501962710062359633035968162611605561068316524399017368356162759055893599839100734385374557941990093403804267973964062218211605132834006421207002758037007447924044069750572737469232364820517548428783552989015019331672376834685101653071688481798991053330537544261222451190364193973904783213417801746524134223884386325526978757363762246753041003737635708683885998717399333337897704724865647306459139132798471317271864453723478459327677318828041616070142531355223636881687098766154940404726985449319792784343521766890735116786504808229718121144519006510453001638409090685630844462131327369310712353245178685171920649800253268251984668271090017400607186639288192812862259909976005812372714384206168697891107517936842960457575656952225118050590153536547762944778371884756040636762531446710841472652138532256288808084133450582162975954817490680010116139706608579940863764304860476383767893083062862587533431413036277178756745175838277574090302791406117606864585479585909744716967751490343421785415164835789049805192686740783761234840041671214020552275569924423732956929900832321409145636390255839509915872668953253978392902394379623820217374358918126858845653603005785135014647270366740229743099550905529344629302068876177985189700719751175535159961678361451062976136121860915829587244704795678120948365650237692719097825060094270905770470397288510032405552777740710363271726725387958048314221547304706431211631815306925696415512251999566633150950971841130198238228319624087635162647922215253564843982588786749133280552765211950978100462621622558350318980695717628231378092700911022670745386140700967849522364983567035551699638991857702094963857284076100002563732366375601282225566253223378859358768452227747184432787443745563520546252556508123450197045174207789637268809001943649537983712278090399040674476696865441665206085731767933062688749200924891299149455200183068040173442115087547950562269005025311460469632451431540188500809786956429035738099951533369155180153363605653729013832090409815274969721360526914994704207919192417615212207904504918051828704983298324823883484888373828243684882854550669964025186675458866334186503987094793830107959324927125257917289786167700021964432726658277275451962593457664990786579250370398790075032067661947427212865531902395913270421765463789129055888919497328288407866213701685957524513241607322393958837504415086575993270625234502467867905327320537778213995687664316402488096966747909690339943030828922119255266084769498223647037159757447561134673905125281458090371045087317808711193395723615976620788961687301698035862562461336026644092856997223576197678504350151830899633465852448626516942375801021280130822863202332643998796919919064994511707706045895451077609329862231492507190260725025084058824292584761705929257283611346846357923585714188267098361647185452132875495890014988417483837441506219006685720912303367360062216274222090252787962274793859316819364134304077418741307059089380056815122532713910608946324464251774455896978879063002990375208782342834312362681308299670157599767100093346972425346720805905008478331575272178625021924789102069089171114278273420784345450591815474371273042599844140496266054907466351470707452959619522014976648929010171902803528779162563421393821707054259994692479314524928237396462204096987748886776105536974099051282429440388286839753446197333391701083024881256585700080142580132615560749510950236465682733494842682338762536348385113406811413937394222430887693046101284936578849404522710987035082024056139726088010161131329472953084113999246908695475851054810740888749067769341595213232654686799548230509422638848425110754872902992347765807490837949771705096736221955198657194304106391799093482354586127100233671728929606434756805378665066616301361277186619177106087679621016047680409353541130996321237357075926116908906768024043331337718231675372141834105699454361427070109190257478992897243878663089718878713265064280725135729078655223060453549232264478163677233893884650569994475506611138783428239004705417227828887290216671703934643089760866849911615569151179206108303320467772769804606176119320605104640628337071515315331831075788055481092354261314236733846018068123408647100263732512185208704975643924042175541428531630252764159910464982024545188772607026521266279395987094407927766572500595366566508494119084321963155727695821217604930162534344403243556276278013786052334784276396142250521717070754676949236261420982726702808471934369662356326614605658472936370491398091680732045180487617676740280685640005715427252067065035381851097359484017949278368512613829264393424764058222910259288659739662106009756968054755258121523658283727310954182856122453742476915680656425593102832591473412279223268851699617851290867376457647934750477752764571255054602710228021071801157673814437095326078681607712380941285499049449290521185553980237100624903751119227493267032141326225998277987819432187022636953429274357356921764300688537331226672334673731994525712785388317569257157543669627316633141319737296941803439064715775808206166148553898443204608759925926284544966011295652408584894664580145934025789219442037033590687658584107419096485625821371592959426322281150161649452731556305986323472962098244507751578097564176576049160031775766260663224754135045321781323383265884527392501364599914892244514470949466903388770970799811396195388010236536714780237150632455639447372968751493219240188784563343419176671877560976598495273317676661843494742790063441783693158008278315959063107830379663958657129469446944330308522648183896642829414137865645520939010499769221337580640992671475233058911928441222346741681739660492560217708970587252546935641342838760302695100771723004324261764378250877628944698929873595132314643255661133490027808468427221921194308310683892513091366105797978772313468708770018963251131448218186461274704335297240738292490084306638743268720621973459643878510565679526044785774802788387499362287504281324652396377969149547282920064379107715806713670469008418564611882807750686935532703788334023207264071865771640691784211440472944894725118449682490042137900342262092251931626637076031047170799231998275432434282771778004598189053131048336913650228926260600650270152188030283449422856857023539954730182810578641558180490871024343694887619200169561149835095394126517053503832340845705752360695323674531751115116607484266418421035375001909860384676023062700529367398495818908900306398906333354827197608488991298717587919750422791569612343612273143831811581961321340987160996362440769416259422632845080643685911549019080504293016588809526775856206853115597180494208423424657898910673502279667688985239527421687385950621234766897435680287432842461074532844948743665410706600095765337832544899744977463385542886283057232829862386389532942755554296871640445462066718837962147802012505393922478326169059166504476083852500095068726658708873459531762873076981958898863492217722842095283146435544074961732692742338759624674912302674538951944054562289510822844468322323826096650067189618508178177150768130377679846908455805824236465019174499113885137424563340111268251626630589371619916012762470771936266275589025529371473152995348837487610214729460719014344826816106522939872006390789811967760916674224374552619876132396146471498810168563567935663629993867923831965695532034211434060227581104352263482289516341420338923249112436627151884694030909130918193284201069740231747384448061247571368084409428369912936729284153833362998454136735354138753996287301227333461915255438914137737070490652034924101893920864461698846991703389860614216988121138712759092385953695841100249074146238617827560566349365554401349772367894638182830059944320820878901407757352634326018255526075378281781788802985084727804755327919056619644973499597537090122812503261655442830855118194031312955533643537136421512035279272147167249868700758944489969619528054173379004327319310480765372491219860898380932464042001369200726266482897716978232827405514501920169123251086011939956054613759134971537208698173890654027790565611457238682975041077028011243300337557562013170352304824782900776771051720715314993108436721859409749854650172726026152614394096311293716670910596200946672082409779172261817094051084089430351370481184838852748887833370656795949230151093891981856459460985375473553522869483724124647326303627792742755196141248227293645849604566528154422392947100595282728441473705224583042581114326027832046355577094183056993812610999960913683600792282089857328852509381246055161754576691599049892703477979279502416670658685920145628331708980093571418960373687837779445991164820358676422497699018065493643333959916712651562776012039869870450448627225155626581704730008532155419243208133841170471304693445393809849963447322623624687542048880784646266909282392929658673928525307821962655900040060553769024628016966387601660043336052910972036006469243832036589960922745788831126652633294331214431639215685194172642494096965782285271187104648304442337216938050746149944258145905960441406669765348349213234671360118140172759402626100204132375697852491365415593544033973034681748881371079892625755536467685949214969733887151033679986307604297537325003010082439687079425750152393327762018002280257740347113942014528621335002638456290922605362144078278525511454942562471092500258105297247245720330317002056631211478838663554456001257294553277918938466889777910679685746971100868773475929205190478171920444139318242550365222447384346493464889228791093748628103292035435792975949705981486222422024072274747336802587117424377600512600282967548028679460856094906077892152767285005222540570829051225490632100255218321786228451117112705889573616862967619140473641285584926644856385125207860579050492914940757383320953997972380978198408383836191936856908924279749432459818247066794214030475751306407846735174083595669501646160244608392232128123962681293913092770316637176158997797227618173813147957072591084776827942938525322444010689658790348457915124092066579985552004541121507525637563961902317782095263548823747127785864613846639123413190522884853777735891356491506901156239929547465565206662720384963864822078904065130324450796098719745293092604171523106887753328071149890987540271354828556800188967249797474464508225913743028727218858862039773330964446047142388890786214754838549758782870753073936891621988507511345098607894391608560763806574455637362333345699511774252377954415616954466554688145807598990988875632939491141415885429841677067089933162066618903382746784814252020034819198046012978369238423328470179877446497439464677564580764834332711890715315457442246345470297897422408208350297385583583944109824470370610705504123800189089054813292224873002167111801193549604856966042386530720901622285613312156945730225137337354177171548305226429306094274895561916966355619097477760527555738712799136865924124276075394247093361309090667138650611876743816411106274935288838267512795400276021142462481860846349840176107498857065437881731938684708561542532087924545099920765523022303393100451849572921353994281064014391183621174884908648879369294324231600936291505862310232105089222763693272082272543120363185353542863731087771254326219018773342811567019665523017418195215162879430703986466955697081743178561638704497602672869215208517244287675678454310934574177956895133338911655395569097270525480819254470895285211583846913999150996500566459805384972015770371465408536405118255253364328509784815997056976853530350565027759827821610184620762385545377855351311740844343880113131803166692110056270267589548356454131638275773624336761479206363939471813615086240086346612732053447067428190239258036229221921662731002337701926490270944720307162316623162455693395941640524443146657545890583830946061013338140150353359445295478201711094328731907923248818891741714243206633765163686344916390110414466019299152952116251544805323008048332018219846572630723375720935996204645276484104682113795115439173715399724328530708703222342644518795639232496262552110287985910300023833370276770685681649461135958547865356805246714105930266221962530028480673343499688180587185283591138560841527865381470528299691548554612750055582401369589608036527015561990083858032991115441898259980785146875013664244889897892855127432960755957600067554023632502984158019042346916513846056292173006103955607963306529993399221658197741148610390550074138536225492243616215966302134061467975780051854749258334984385867614356843296904547607330161185918660386111206002838418397260375439584392497057243286161784870960076343871767997332841291835555137989991898335776228068834285196351508102699644835094070639950554281709596497461289440324534994238374817103111123049602912754636512101609510169193292621769490678009144886605670463410326738307819312715138162955620503417801283880032913264077911875418849552213451282739908694305647304739558847820838233132693495568776707973961347655846646320508227652297596689954224165544149627121262450616402174957301035807486886525892392460885472655180525261183936921163380256047751557379869809667577465912928419122899112338715069329377198799495915797303937168253306585669331923580978940371203416611143379012887933913785458929521653921074445659663357057890629903910907944201186762674918695853775794686939186725525949292209148602931782484915322186023977892123141657818129778623962135274841766604417753541638691658671474950507416909804481076011533546694111634074795973180548269269696141070780570009439726743917682593015208891157218121239715067795799065107107136340458655415957039612987963506119982949892622169765537934600770556973323914805546017041392244029362642680834305264266963084399441842790451667797164635326533961983415374371378341591419680228111082426586070528122298217960626215335060152203185405085864118696091976804698996885681702998063958928838391460119137338648075311696251246404558453421571604708218112346140618477358320866765177810252741684890182115864777971470207377481482683920608811245132034501927626409297510645676503566283558963528027422004743730480983966922938882682208297817553764608692928711473127379632941235664357792890523174479159982506654211344970714243159545645389102364235899085279475050368552074330380472192096961190568635070615832746064617406374019025698673178617187885189688657304668424143900062586586728289662018069207873712081575455710455172854094114270359937875936009076908214879348875598872002617984300732660731570225220178143171745261837297802338138079673244416741926430468662646424852003570478306449124584293674833280716801107941596716003252799454523246009862042983868166481204566083434802353898425089879692149949424014967754843591223983867666802158639523137120282225409172224528161148973390675530200610111834362172978973424890621878684724134831422758251136398042142315542409601522169144226753543354192333986938838920945881710779657204661018133566873243650234428355212577051689195748223098415616716908779915415477722186945906916506859951670726744299805501808364132248931779902503476183376867745842918603935658296291556527505878610657334070279968603967083636481996816662183533173547541192209481292814884263868927534034219757028077548273685445643451674061917232498644393643613198673600617457409825299820895397374149232172665428100277416269444543272502539538095221799324431136850706657958452848073111221079967205822746156274831521123198601296585471936350047089269312531356603054263194476333075761997893239326708931813187240103985432890110379492962556407122602073467913621132660712855845795973712461947638658323523243535941767386107809600999516083583347726984827067590638247534764726441976047183341589012178946337563327999525632763985247308944050289956882998339622146080243155083772880510016413559461525843670129997759839608484958189609580127388722913794305085404545313868743629525728267038543893649239398854611707859672821436897181287490072759091452619892476047938138859078149612783051868954377246791614306073826391841013407839002879303420662552704810482212206685267578457551189557904345569122961594787509896242438813539737646999706519155010321529625874236068982041230514888764242938131785351111556982668541045784440626126978246279863958361274313321882491961007242578105157888748278194425872902370566521100130783732805412695178149969564287425948081418044267874296172931169778559102592783775220444467995064780039630688558055380792818310591189038724259282036348108464586080320594982068127700364391506184784336381236259414199721319159309207148956998293963731225620915152210036927344858286949020800623518996352727691969538979331610334424432297115357990768591931546767366048965957794690819176124125474239297272855476344221154594493078119548729995735233994601051262027775057852158237399960272169265048184576686151608180383882326527945190595316564433573544265832198922978691243585257332661324486832837828265158909756871259241997650893314962467089772812587194905815125403313508976846762670203090770209212069824448094850231452411808966366997032965361196870889554836673890164805143861027910439085701498816410853883614513043650818610401631187387231877081934817058414258992610120568056728896444937439816680977693708440658676400661597512223137880108157835067509281266262023227095944285855625410411620358467023167171422931415681014201989554906035851237966630188937026618109901333441236022211711721355971054851682241257474689563150156949069374217732798788071408225346895605237689116858463281270763956142296690159695101208499973088210660620150098424959214160511037621535169529419400911613786114906583114547173681392396312270611111125241827010958062368007071616293451912139839428884434883760067268625540891328661024861550451434418563918465973232705555839689594184244978288615500936369217675603040292800793606632668235120378123134635301436507747349951270994772450945000682217758411810261273831426055032413132128973050048219425106527868700079459863321564017672118158487451393311286724873959128442060029117493187124716906272336914487322815014874920821083294184091695966659633859722733022591233623031786898552845755851764299814926946689302593199669052946581767314199729078462712645368593715142919634625093656226585483804966760389055810013702163644329362633895261086566970825745709621093990118722763979475585429146295047516649037287598038173047179361606254485207587906548169193085867993101490833890836489781244836127167753304854238566851965647670222703704229479224695711754545053127076647571325155015775051074508529684767513287980178178402726333482434754406194568190724437028890167094804006803535842433637657885684583634052437019284680730513501117986330188316094688768440284407140225262539741361655289288054149461827414165047439048115421971813497159611839787203434101356245116396117591919025574757744777913449710125850810582352699688683372624426183664893700418919470361257098918875737308782446604438366729628081792005903496471828327112055705603697214788709485491648246474728526468493349938689614860191127223870548650772006548919959105984854768204682161852178556257350111879488822223065615208175234520237229326207394982082974039840687972341255526531123189116136659406227823130892304496723896660724786146353179742153587195670141501244740436284481295300262512157629294674825569440745902805339045733826650157187056909476412786717002718103233109252331152104661525135440524632757071468457176227938440774665458180182208832490399426386128323302309559454034727797040165198186192669316215922976644304562205943356606373696824813428311861559710362131071200627443472112662290691821801974418236473849238190807479070565670694044049973613495568337753561271250712698902949242981169029690486122715833865842168088871666715996124324250584670152174360903100821677565908581350607552501800701646157843572375728324540948480101247465975276141976926700815071337270869753162278029000922077816906533821790461403515321974895570575404916075843918396267902036580479854660519103988498469110003120218012372886438617719835924150072527676352873601014986178808176451725050160290267686353813885383661146785827019172621692404446622658628845516022678449379590273881285101638821054403154250720108752580239009062821307850556659699087199568100103384346170212945186483698289273042273938978869144619442164912907840107124910419306453451855660673089347308387372173301874226057450907058569148175120698869672901267012104223001302512924553458589378296842140680238390024362229826439994543313986252881874916578081893712161333463108071017664087187864742778828874162098213623329496771988694499431680409950140157254643628440139289443299951061781243798837246570256419263346130621381043325983509904026829499331598456862129590334274137199154808237482321540050224908153952611317043286397318810202796653985750191232208234818156559637486134195001818231421432846736049110136015716177070468268437590957649393567843279426350478645373887705258103517416970255861514877918235677571966162943959330909579746755372158325354001250308864121556281587742351199510962291456108640115340774131011388753333782119854761128227290308112068930007039598708081356769781839948578913947020195742350268551658098982525012575478379719315347589513091153919288106955782859794100782598922210684566103410600752599404680704667181625890342563443275256642008223173605479846694856799447286949431673122637211521615868365415886141966001250714397688811343520634993337382267888507030457396231878808796049082395763672160934375694265630842816068732335935327461642648553644667885718295073660554967517571394040914720483118987247676456355387236553203879418871946245501281265433160437862852698832970587161955062584595879877670616133512321158382949274897349003467538838786072191511808169440967148626287985426406965709036578474611397456613961407209441150535620663592061317167948374950972659165573300326748084537744511493597722034983976734653091673083062111953940111847494641648347379743410624021633975611618591606095142194466023839974240179647634790501002578995668289709201353522523198948356025602589686312639837221990607040278402255282878666439617198120794817405812814775887754824266647305107933501838314138304283705005681575661992819662512432760170916269101703341130210322894445116151112783694900347343402389272960855147644147142178219148564315649962037746097625023079166555512812099888922389712105824614858684034187130635267725148987023128817333224354302973061490266094743237236148227005965671353550831422916258360825591432848137349760383874080428622936484754230356618206445229364138469022816982395941256844386134135860405698841389486353464294335808140905634299011177424734426914427828398148602892922652714480824638951536511723593093820979283313675745996901621792509474209014770081725586851713920008781742124593191788652281421810355964006249012366907105142482621219984413623030091687569431668006617143117670165691774987514867699642991745694526911289101619277262495722717689973239651677598873363819231975386690570682437171340727850625630874818234216631900561535408135397270879655671120842725170381028424745564681850029275515232021967487767386269966219519138122663790828313044115490602435758480701190822518079950922564569545514930544213616416815561328114232349708453518229984272935821226105025015916481612021147843630945245307917010248286747244950516640386332947363992159526041722221384323254092816850887484009309511757590162006894275320594256129290711977674236778680104395472635530450594174054180499137082967722427635310217499258760156582130798767334508366595447738603016875320893707037672425705942278281289538694833284649397406192603297978007033715698538549651751630372349675631911236379450801285148863292582958587354681279904302000757747688038885538031623500302377471638877523888910573831804529454250998829112312143446533068652361544055862088209852433935302626391404563666363844996578354205837628240517014217836329901435949940063105905956120592609405043859562675759091947351910740197159132202113153288634255908860974855836623215825115523457755251363277299375681956878284521644287485383636748167431311564776883070080695924499738826044645161830155269081099145543333488493417773176328174377764874827796206674140604668166459906202641846730763757186172359173150198993735616331333980389986457925349108940232570838650842631550439846217624965155781137702681712811225816791484469352825513668271915556411958306211103317844050084142258607194067598821345460057584969122318289606974144577526802246965701188005119934481002439454670603700655116920525396623224090618787972298997063294566066413880750174261874938282964917630326449433816131357012516342922391027700854511127285306020388853110307878750015526200287880728538142352521521231303430453556988975881469879957461546668874162811394284094942527229087657001953083941359016151153979904933831257404110310521148593407250292827150554390289369615061201390533072693098883510601079074389288388095558240156109914776975268528594911641789046435769121198540955316930628099005120597712585873160674511225891417669155113180443995410088570293534791649853822665665434031463551184352405380384519032160410131046547883039882412195692963775418379028054503062408545355898224751142619645170192644370849043323566016619563844814449833569541539576744573187841138088565639088770840589214770546445631972320534969138659409152667140608004518223617886128457123463231185757180302514017368420432571761451152830100797929282108284552844807591880942914930344005491781653054533396037998418666365382631042626643749777573037884209084908851798669124790648744671952491337172821329871673688791300663844136485820264209394579090390871133076291102644708554513994237510567544472769037746183198376395496405400066470838738405796563257524949734472317764409551132278809825137816798668066295561427582084410460990389077992700076419978831367717413300811062313549932705182718632042109344790835653357344391526770528885552381745114012944515752622702045398630465128066055338444127182459922593997466730144455856904854032455490154797857622003374696089695799331693347037995271326511446765486056339561959990436518320090636457146223483382954873840984266692664922710930707913817828752323417993934745459212291735109729178940101152797778062594884598992460515929620519533485098456669388963476662687627474424520083248878309605447997800685752348686337261859445735699331400276409002222752192079579640900324556381204374803236995592731629405330314191169121648840467705820229778978144166960627266001535774244682269135818344388267873836683846971231235475800021208424545290012856872911752310665063998318613539404229556411791018211594319059402639270863983957353743391808878345351380851566600722623220280028130937803736242483204622748480384805811423432994128131620676003555223724893783729598266651877556027599400095246368149730299248789248072980649243779036012438693288684903022984861179815473838044878073539041092545090614927375280535148899635735958935826688766537134535939070018207309522419169870535014338507430260275523842817572168774806916344928900288541289348655379411572775823847127511508807083916172702332856428018280764914421496383656929854348213390150352830592072855803077354466288290295396084020419821330462465643629148027000901580092392383621355525025929935525797095902878864547183667843517670759031367798226237586446156237126796563898438384684968459808394191059534324734301907729909756287724136720680603650387260383079078060476037758390785577563946857417886292632041322417732078633405507440873161173289681352646569546179043787100508889301476670490142022038249437797882311997614978435355901077065595884420528716056700408374007604792098676760600477050065660511710988276585043320571087754343653116829370815173459084341673936002023521227598038271660102173582503677809228978752507794129299126160517672427811656554521392411393455959132555830811505141412413114999088011450074804409646150206437202924809885403177468930755621416187846177086045866663035621426638936150518672553522429272970030464189784187567569579230718754059381228332248815271206432145201712938621979100956070223003218224061794242095746086323436027803291007141953499712809950561542109334459461708551370217909781150534280097001397631847107792457107467130500719927748006940239154155980915840006269157367667991969230379354497091901497281069810847473668357269380043552037135637634245328031739007180983602001857112191428074335008715434181518849767428109679443598264979351622211115678001914570545849250085749120360944748083952434306224387004622078295302669053666399057422079600226081450889326294491216397870705400460270514435321448371967907275423774252149628737084094781507735509276918557446487006995895199484747610984983461321760226988782441859990689501479673611287888634346035483692664271800044663438536496519983396611437220087242136226211060776036828137747397549030931929042148640208217031001171349823469367906026339600074767420109616405267294945376088695813686343801552655992940681216849842848058825862790562882022507043206375720610096167946428206691684457352367077633692444041197771649453391359123315497319014299107213930384546619323517228326771479966821059092366200264791173301265972966896763347620114655654469459865805995928036761939066177197709322004863825311230313297055821629318532103864177723378571258340413330249488043058194950927678886263025178108075029650653509032971787807371941272073340795521092798089393828114280714067174222044249166587565703188338753913291174922788303217266718307659706147968478413407090828468103569146399679946817664967758431407178568355956849505136186356812294040289742068300309071723055158921131085760873203864912143939960410313342814337614967781082956973971445205309189756647266668685049586854299376456288697406494231411101886431931587699568402792307555890207914049161075141207561176804721478326704754650434136025142712987149169532115640386010224571391304095394568419774065257281097735374145767040519090056965121354833282626165317193394661036743961971471906404554090662296529735115079120061621019500973690853020744082902940405510057191093939913689678792897017336298125992868689721983573844478596853449261638653234348376116091050322593545921819362640594121136635366191031366370014368056164156309683298704589403617764292698229698425756210148163553360687772912033291947271552867309620170452930219938745331558725153692168185830162393115922146311235811926299027733559116804451170006412338258215802898755253950082693739616551474203257372228596616556975236801308314811669009208672900945564796837393750079185588426373374906651235538645900089551382136022238754864751615089119088919986844208882508153227243510649193023928118843754151094489769327263817345128853602938618256536142804987324554995869234938156377336963954207442744316130520525911908933805827631931145955560492693857599374489840202170806642107854500088000397556368617687368753363246139651830585853103176947168586690714166270854694031393979341968990032697928556059767754102797626056240062221513146363726506561848651810145974069256590876552906319104923664168281730157666225289957507526668110877832865236538670757580428762432602115670165311960183492196657257365460441396483086036620831619816086560526400251221177286745529026402423721919694468836722505572384816761242226411501098127854489202312034193929194865721799836809013189346287020407270596137217909207594100966273974109172149027640796872557633257349089045155366145326114771509514156318194206734406581750281615602003342694429773624350879236669586920191520586235395855396432599393986374988816062539409667072815556107227654940301166235745860033065076582841965179927479297804762051238345930022571324782282892195165974014479161095514400043006243965061019445558927736505660253910869739944239810078838953033204908357722625018099576295391531148416696442300468092039735473800194668407220447752164375583713084983788017501271285652116370197517997325336233925385404236827390982495378858349687526706082036850902346416675570686639192014993862314944205800767599252369815186078117900782932341401842278035314510460755387619803706941038415728734630469513487766223826691261354816611192127054028311694693391210255855434428737975863272863431628783556563736135154662478400201948192060890678541526054855655330779433738945966976069629577418052373836208019255540580285420968839271225269903346075813539318366545982157346341304161493473121501484606571020568756896277113455603755336220467318688866626384438422477239920156486875674376182880574144637883421395383015581155722424121889852958906872961914737585803562449621330953449511260157606534239403266118608937880571452754290150370575351757102706247708113763900067544481006337066669255057029934875944617977250532337251575829666140688318148794238486645943712909510735308230560961179918553441259041470085537113640777498080854824553996451809020109866578968891047498770277341869079331778748761926996050868633451578045223290248069627809740744082872621888969493214712079882849053816038791497899302175898036461791011285883456442400211370562674013309635899959080453656513175610487768305907726993178665604566620607476450342752190366498895873066343152967941318749416605077643890880625756203566724954125677805214855836319197695727036175632370962406663837594746165869820665458960439333788833629652571731150120653676102041207895933250284973652979918646817229053091953548586065478473183543375221487101078843723757733761654847314893265690259762591500161147873487238177657035060123821355866068615156736158613418629682026381560229602368870468939221209718872775010971347985853621146707291457339748280685909638434323243043043171806332421979721690540983744344065011944358184187563321994215148857261510703907245049316630044408766251669328870883401134502120742269207293764870496907044998162312146248846153760264624747271515996052623892287149942040962652313293334761411604895149303428115993082089684653990355960640696607021091763212160677062607962793188766557944582991408526636939488695954314088805935500043117622533857416581799711790418556933220129342023125489349909518642940191336946551088577573433938759420724298006294302467457905086624678559876809848556660594546247632936865548082632265065838543508397364836633572598004831612274636856242574867772249299645682908122893351004595575437143892922671871301846282068489867024821493666910853963699838158435283723097822026807103122766431549187352816638680597954597415082398294109038595835235239102087373117165231023835341282865648258721156778100378486074915935118371529109223280434360306050101495994900108452856897236242548720417407948106705299236044286051326484166620317882549837794929118543123096415145196589584112159352738111366677613523695989868859992931028000360291120714458877825410646383282088158363399538245484513501890048260304564103969561738617497529166064343351381193569236826609874773527941852432149760502456288362677811736174152881566001031367020458485664697852724961025646721487101342897654307804067959549285358050758099931515389683179674348538567899520873926491746146607294118676270852802468473825102838584353740835174630868388011433601931047120136758079427886178932100093152811611243636344539752082897804011672113568726024769686368869902916946635919393227012378038165199917702579283121242642351159579781255569796549342586093488562446723389975540628012599350181774653419403591136194260335174628387878717015900104695917731689515557850250657961345930105801813921593106002295983982953054186814290559754077374530161427848879983434965764952672969123001669866139311352365934809634938343082650822120017010699521893017734530924264792153284356864911101643311646868071165007210334269458782225391387396553370406762215200799149180186028330593353672037393662267961817096084039676482876197190241331842665708952257629898163828836498656193084153995500080530770713342474528905830282901003911704045092402392370542830631999340243775803219682648368922295992712621377193279640478870739648360451663730731511851597024383612949583917375639986333240394180830680691267380836399135191984057062023196791692062081967171299325383577906590107905538134251369673174665897332121681664108759651556637631413486887498263456252856973987982986092570984431301543319932263819754574001291547967663355933404955489129987650710509287551372618605007412222491627001859518587829916333114038985642727142900194019062725188716979905913625994372595858532519114068018752905519942768505450802832655409195560841852571755024975637180773765093348857637126135788203758480492005530600563166870737464160787581902796947791265421778992566620908248237852642451239734384078969129761806378516243937857894970138041561152643225226608938131433746175957916758722559157651173251806079519502248738384344667927349419296488872175906487463778892088675816227905545967383556895342522088232469293206066846251354212653529963440727075573067967753104945951402689087251864050589749769261191599687791853896948938407159133145151657454781041713232412019582973225643655614323745832599096663215752564400501648608953657227949783765968962190582461841352746513016926950867090132472837387010520742467062370136655966258433356899273544991834893872392204992613974551047290695103462302116099600262794107914489182398113887962784450641418987825430063639050672818340893601116409756950464941608167697580145235451716312601070907074855771355449954997835890315251970161200853798651604600702596557145129678522519031837425216747157923990671007419695862781233504735926166110506433267341118431453444118389000308314217048636306301977236739178928908087726280733323576977819531533022796996318371157418859721972788714561002373092485030947878812415373372301422665375459566520364215198590271636782028758408340756651522960640278100987999865272527410332024518853227732127019891381354633782351609494008964441820365977095336298822952829720182988100465556728865495947492641401104359958302546761798133889047818821261223352557739284150113895633109793282371674827504450740829132382871715709397127556081224697547740022677159036406262440706815182473928458948371865188637047968784087241113658792815008538549658243792144558122834019075036762831012857503802808522217520335433971507146358176764715507312189920061744881499929369419999327843165529325770814441188951515817200251779472985903132850140273360670938789172737866872493351478023217608397291525995372537438826631196302318823351290224764424853429255366694923455783037088404732250417516482262619177496477226087382735034201661987785336780990347768690039108278302323132012617162236876427524545722443735886646778667490633274918582348889655841906926255036535345264562674962872723624736322108924627202932680655956706946940643108873650006836404043347182319568235179212687146871943488827878818417995268154825629290369768213027941316680071270462151626562366737493246115393590268604536486568027974248201355680599059276253076318440853040752062224274428129051421466248523449263958260574195511789984657488831143380957242594877343944577913389424208415916022459442272256047092074609856021032798777496418251564871982287662036007642231140884780266882975463151439354808691719457615237899828029420101239434234719594264662993199297939339475781770162567882827877060216705999308864984887983938359636268328539160484620298178105862579574829145116531740180722408328225312258489303156073515529675194095472068394860931935747080733919830535086756054214046076068382517821980350015900969736061025735787412311760339831562406379659148714888325158436786294980422430174343015679180666891429994180071833711942928808810029354732658229918161415237499923447070345625433129513940286552812403291764396329364741362598227303128005632762228776768113196871174714068067763307660439423878791819750687146290000933744881275894079354497455763509819744954226060343086044448884720424701328895683091176854211890931657645537030797843914093678657891424247105083458383219290391572111442620414728907010465416303400729546698316124500462965172955695036514172149953664714923498239593524601746409278880468674370154356616627026363802578703406338884641293639189515439087131343027253364156373184426707664062092855999646390630031313521350955568128717132554724416140406738906203829709033728722578220088769898164675359864978380685439323793742982931334913663299809561620061968623434250431321092725841636061758809041143690785681286876692586954751787141080513827237613412753380048662136491069780277392483824572855702243053481686748273540079089820696275776441756626371839710606832101922105728373702115715329017562449898597376716222749280146676542373540566776862107889232709562889825694666593857201588151235775985714843315694180425577885304166019776511403885273444066503042646709095542878440025023153339832146480694323616196838384293008166196147402220107894513462031429035397649958092144650416661941825415934174362653483633138105335003285745798443164112815401468636760745908181411793314879084297770924884218382108043464109458343535492594166622887348017704991447570998427735728541442591437523533087153607928038638302626079098859306951811999602321935423108947856768293993709643155575487604760824928383722600189706090677461461038671612349972277761478303107832405635569502777445466913699270401348749119030946094304501576762383574393997604698050054763572489208079829009845266065138957116086332423763682168839243298173196233815632654694729382221765712467740999799204598914301779147909838315239748352148279770538838779688601517638637229854804468979258084507602641284403298782550815462736355873625406077468158619694621330329097538669922087431539954760280014422533837198851509984255086296268549638081512983339799506909373450449137160540271856819438894425334147297764761994457686761331545633771868903378997511009145837875132913816511023106697097194187029831013296933865177443184057532301059422219573924582508206442894595599934260189299273902206250525270412475875650306197697398714433989176387995811612084953218955823170668191521600368366879551193169613112418208295405664182055018401582298134176514593301995652031213038770851540929030618776755705914456504549795779753759102434565761178435394584715056859320288718160608715640536099200997287122760024865034978414762884780320120982773015189213983344900472308962633126567449710501452166418565369793332728987319664545283162995803376704357107070130307639356007338241441399615121671940958062789715887205365518978678852476079047646357337682136436438602339263490098734344379612466349685301577107152797330284264216505432891575590539859159213218370844370094491751590606220089922689777405314909145799956723802364183908230582768155221737743264294569648102615231699157675120776745114509283311844784182904020507092668172695179025444821086620583068825716773146987050377857608947247250271583816980640267913527856143163207993174687991453115662959143342331695748346223075510067287260134821148670013561105942494468911316657183892179873728536455417298128951619373057480930374434401138018136758171233643121602981634361843477701722112803559397259358218273444684789170695656200431429950073638311065513950091535306806745019609349417982756105714345082472124039484883063288604011506938793239972688214478844323802414913393077829560400860271529737121092916059181743147492898886582190971508648153658669988266984089963406448281045106446739713277513963672321174156190086336904044826955454799233236664107763186739599416239756235107713740964395838895067596346835450419961914221987863292073507022495615904300123231385130943274389900905011898710208280266969977588841105112044795993939303531197206529703187154291955567194509252116758976694585158174487083128157112650401811523941752331863702113742904749809213477086225579736393899011607930304990899996322502524669109058480620657174600414243937932778537127183994150610984592581310302837662959645419134625980490602996146743464639946398522227453312072060918032559394459551644221542588500777092469922431519688387987825881395604148373590018991831253017994855762477870876149124759477426846695599384625162372582632470791340416157535898103142080827904785813209388060998295976817634452958915938354679641507090552652807001694747984003454300072191732308908337142069212462393412120142549418287788426646770830521031448381006718717406746566674144720524870988124092242061574143357817334835859839954633251863186355518832119842297651062889358852553775476329878841019179463126832574588260343663380282390984165832166426225452731309548250417990116795357004140333461442402284940030444548143074845653323194524014037320389830678257503483157403253195621751996328319439239344632776215473747534613979262808103954090408697444364271844053575073493969820328419605433649640125680608600595783067650209232855345585502064710815083193176132343254083315805516143781846357186141305613522882355609780537745224145466823870452601144777282679978546089326361291197821378417441278859613340341629602633659261453773167268812182516538071932342673246411231773560134478697933040100698334734868806468228320168667391108682854656969648565759345190958604609861123683660718557631021999542595806153839368289472504417494098828476616443345941455904860529029952167606100286575445892437294767842997680478563360483726140808490844017248654780346242268825995378241012738107842107648563394530021775149719350013513300950648102801803818944323314592671638289718262915002956051300069978838241795446695586193454361799528127598397049718862559592952690602894678392600723426211663712749740845077128340072535366768646908866681236109800340244907186038262979788352892746894576650393723342758749622652993106812569335611524290850692777012489930202611897286136178284562197116534052229033538132003009696227351994941325947551785217292159567997592910128486001715825923204835584658198948764496111662974872167927968279749617735703845967107851784665048662672462055360603973309326508700047057789455646167362447814840700046635455772959422832168645041801917716560687800420420466997112169809860046065115393583584653271880184281500998267996583619302503319867868639399110203452042672735488895347404116051918829814549309355728999424620977365102837703363653900688135954173847309360094905630856497673045319013055149283623639558470895773157758873650460792462407836406692027375246506318770920969063944896410486801125050545617850572712301173003336131193640385707546505452229981649390542927841157135620457812374689797082525010286562301419483502172092979726457816145982093321908728007838431074097289793682616730338223817588452967619471287847701019043220431028172443849343391363030384747713940902296608153060921180211499664486305199264747210036538482704327011978971020161765994104986405628650689275880019885178535656638402633416815054024039141979034174673072795986165776184365279762183660337875109088281041457793027953898121655651232273904492263618096259253621515583629746424938246187665889266997656485860992689376097530561302468053693553701697551572262240389935081752978975347127432679309720056356001969592109715000337147267526680975261070420400272487451003229112619239331704218300971619242752423824282167127663695550691964807765760758712740538683063209193019264147025396474104323332250973289115399834420952266968282289451941815100326963645145491761644110463405915147889852619876631940797062730248200373492400950308432916295511094353325533434812466772079385513338920343446029884622547853983967847939509154860696085954274529881010348086625816509864427762689358557109291690975328707824124369291019821227732553799288896863042611601463876200812283275333377853001344040693777569443490363694126516142278025289614825651930116737786652485195708957084882171574527613455173997819400531410354097029056872359972211190343138123713545715391277106342328924815182381485477193157001250381989119655583101419589509839424259793154791423216004867479570800293923963568184421987708648161671486433619049567486516243702565223050691464811425049247356956560702528863092877875988278998613310906022357920938887061856248582011310639849344589064899916020447760379578651767978994505782958851271694669771362362611358543473283725717635360985375922383618174444503925109359110775139499498382250548809204216960125820663066275466449194732314240303410191396299013489707342248036539718851459262764897528326255352007086556139719088900716530637799689599351526243101437923279518388063890343795451904863523688436332748203040769440747392407742186941774768336597899655049680261672235788730456996198845151681214183944428415883964446986150581145013477299858395646165148639500149662179413757055827188915909514442334308963705519976423416877300495593585712063485985658951251909931141535513875429821739227995322247473013436314253347557044268499159828641993115597501745364715204762865834734774330560111061467692676736214050719932284931061632116325222884597353138568933268500534536218693518829687508895596196313691365175244080686859782756033632896958722347228708082051054102828109693401119510334537757467154619700115745653881569242019447439828588937476412329529137303222624168035249648078699867213844104561629079111348364410269870052870782918672273120294430475676724704732204364779694716345199654801161672562133001466093127494825480122194420106918341466628165976253151598432117575431384128366037035400970808253720701034751998943979371129172597054046662934730123663370406587217502704543962679844794871815901688534228004292592892405478119944412182630678432432131596665201851985721832634904932618475513502692261194433541246588663789515980888888652193830290673450145870959816377386929891326192177566737416146316566894034674006451432266244494734664472745388950289653300887047057557220949743995575753192287193217652573737596516180677702357537912524484570144456799643825994036338027584588383931651399094668679162084594594971732921277762975395031376882832638528422001304465888313510584274334575235715184517580437979112555492242195388490736643000511463651513476008890084403101343563627270541868882783839081395668064790620943954622267336324107326312272331465133523810722456958285939324113171222847876997297077092194301894277665169640936966841335441233224776064672331458268743674344951308367047840627940879312215580286602874110555016136254744798934601215635521660777745311036964714994893402170675121967971345755445831931654790872981011449776829042331110143519211912638902529592852148547814647984551303098947965585489007814579301488790109370316920342749979761300059262971330418959178373319528060256694997855732246982605739151332513796053626861908543871276056300109634254859707358920044383403929740567872510124219363391715931877847616807251829081407896968936910617463634328580013585102737543515570148821114599059705954080608423724391498972082212042154276792320275685011095157412596279830793550617517065471566305088537493036087920251934360783410909238649672847384991761991278382334093823877915522390003218222693679982979005096551077469608756306377638226995005328695885204192822439317448374198721489652844857209928901853182523240688832170561753994754010355693265353777764484882775909983655391730880433272185325826852362274509827250606732193991236045994497822274809657554337108764055480997406999145968053281016285794413934631948114963797665476970818142112776566748999455390472584232735910330441974835678404372118471605225836993114848957481316332568895303203973047818486743727040657074990485623185535890044492764966859675449240119389606139351371870094117632472949640318762592254887845390109342136568845540225343893347196641755483401448224541387577384354664358741531529571615215359986364886408077820756779726707668965649149740441714164886058819061355793376143496055609776004488915580693569805739712683718364882232176045011864057276237605933311613033234237207574583696303961220192550982239029390534616545535079157527303211566194053383650097105998608779979046893857773728469464351548338728240620209828210841861255815895421489209235182089490027952492966345974598020709843374169249696712847673445736901306383943756811298233344421948312262581216897763285042584556887415538680500538251282425714620738592484498372790092145453719799053639664157708039698662017641157697065320993627423390293905122223221003088492770159195969181902017189532396027088312057012634288992463996992400982191251005680291036286751401080897262351652189257288105122701986626427347445869643087654386492374826970883171494971332015841939115375670048731821679572181573413673968096999042491163291533360052267053913827884893974782524487312863760439586051336212574158521055406388850950596225837202211681163294849443293449082020474810596248406211371697863992207276719809939244509763403328391148290357824651916195710066006930319199132251409111272554488774723029033530771873381144439691741075501896581175686719891144388398107631026808688596862226953255801969392546185115049812334873355108436362440000256228006126136928706301744252231544599878200685610263746058998793704144617698176237024230528603776728776259820009792271012181594209206506913624516882641181535596189800676954575341578131897611945693640202324273753868695954686442255819150463451484058259314838805294273164145707085283715700431237975093553549473390699924553238632134779957267571491183262678648626131160913670797242738095620238804719879916846119374850939102609936530916467096817551750999360941341138021444932589984936203399287865886798010889883529994347209582748381482721344541774812762648775625726150899109267715095576481321189141393638789753670703224880551381503831292483771921784684033431248536009658553378227582138848252163305822741687817406149051328562200441655846128580167021624627347129288269547727002806824730772430328947530972888148759470563118983770787852637425538997339083413663712782321408578864713050387895103046405975344512159604857799200568779128641611043098819044502942490032890958352845856438508132118153896463167879879984599409440602926669577409944525667734940585682451904664465508340202741663365588401570879239791194855606878277574315290497546118242352072671137446905322520403506383397890530164515023408594707660561395144492229282660497687481855649034217751388480575741230236844752341966793614083714047023814018995915229843606401652910981806789377872980461968240262754476195065025803763536544951723671304851961552545856749169577112209578524978052552197487234442584705564525998938013514331852211591012162871319212480913743832238158006822341539082855933617480423434114636563924759477028847745034091121050313337342146643200692299396282699896218403691868177305591557486708104071067417190912481043798433771945318992487137074162436007339134743890506164779004176452899383516162289858298586384567438759946158498538974061373979063700336867850622569741835034401422397445624239632385464200892924127206658654608979170010084573715413235863385243243612165657902998194171661488848755013839289644732980895177873245920582599630893485075647192564862713065551619290791735079576226480525004198190696042127995309294942920518206521300033743285457077098932181024291993615762915518835986444392073340571608556297650988522290814398209792691360729782522681165442132757333236482089599907770509795810851575724123673292727282442533287454932743974386924822851115080625872367640351296434685231530733917879040001695331954913248447063229057438724887233872277289468354699884808193640991933560953893182916539170641399067871984638948884713825916823602016406763143506884553747688883276932900627703739845789750177454827835950234683253731038731276022004523088726169354538797468733031642728750973369683473100129001120426661928703357943739241215872308556123491364545099453923152134303505750217353887115921411189822044714469050173112997995694511051432734707784374969141711020192055136339302402753136552003905970118222164958322581853537021798914845018284780534675360152745798452897331952375388586983499199064403301834830373523088715763059145853235815931894255778284232738055733425303859020563108572514750677523134790168422297907396973459897649412470846728159283916340982104372919645689975078063213509541331343022482121206751636403934709971890719842844380989859783578447453055033220865704025552176079078654088044967753858334861517047001155915130474241486435485741372357107829748349198057238509304200171029212189745476314886619984424410379523687299425148904843404468378857928167711643079567689866609517634570386901602595877948271916517207814543886777664861853631674223423661083835860378156199066897504824633793950918755599084733427780983100618207205559724657421681214510418225994225121316101047829726969916222145033838972094266454052926762043720570248987091109584274596377095021282095791147891953111442656570258693682984507052698824490984879072379926279013216974236654716187265493340683049425599408231946063042271216176017796369473366878325413648689112415096336767641780427467818471506283803472011186425118979428155736990982260759687568075528892351546978216055858152392249504621981494454321582301201150814399357574297512226734562096221653267520114785251042418185483098053617798543236973820653021528276758266445179183408062402354646883176308346369368710528304678741671860913505587628096905987335968898146064303060356514913030716596691342541190664423013718504686216518417532167709850753202737560407640494528373677166471802657357639742019666935890992501044958195103246996702579208728932643838195935119808842402859095419620834669723177090616458011079456228885968701843368342167595208255646049031907793263108953164134491155544780999939468794608888657363553590709580522639680690367239909378997102908662284953877159850589931766421591005706873972173987783459824586190140011348834495622778239702401456506786536634548475381605238902493745497594077595097805699693344981555671924112662092377970762562880871726822390517797798198806294006117164710696201217694998604494819067829341389512739017026125283432513589929780617884206144001845181922560186306504332916880024956443472274091891999763645490787052825776134993541909943847122146336466013285350519373779313150807346363227159486853800163843319079813918041607999242266556743475345722893828514682049513346290865873370708374341858981803876349480918772185915872978749241584092577733055041597006024472059109609723751917340200696787551723489300003649479313390412541049284460808689181276486063549631289358565431868347474581972274184139897502355682855803182062433107218888732104597144322327972564827560434793077334531832648374395360109745341315404528153616461504251228504357074144754429127944316790971159770531406148194094930704705185106056387455940186192741218388710167128180471734533039597618131159942360938456496817248246453445192101583683807899676249946882778434662890200487582967370944271082916266148761327911840604846202809717789428735811428556068652378343367912120090155612429884295302270921280053162212215128945400789772260494545384714612657295653217774570276558365208314128356184402015644082535939819753664702220828563551203607816848994780649756839721491059569060657050010686755125618670317425172856232169609866443243893166469466655651361704827642964024355834921015346818475513159800574631166578981359966208360604429973057650894227547306520838401566823048826269360052095765390991253758155640453600687930736962467590899971225675895180410653904438947167196667547273159951321660333801071467250225754608955259774232498820244704088607192473574716030619563701672428766256597232475140854962713570301052852448722158564244356048791647305177482812326082919263401867307347720212353393530074926262095393769272389572442889234022448999922737664742043128506144735228203754814412385474063690190145313026339855771158058038691435605709546561305675371333319241299030683471740834436073263937709015946276057488418134122142250575530198616440206967437949099616804215040159480474554968038290352795426861158133866819523399376326192161009216929254323013478941709951146580321615519436334916846863946288581733942034717851623415185497885157692524733755701667792198447052225982016206235038585995885251813841011388688419068404829289821028866048019951551853369801869435708042553660699419258190674751840801988674251624755733423704103079904922866491404802567225953688368872775982269188949694234482047602513852932940851465073283052220078102740116004628617497021903023520535209979105238191154176982102418924730799996332954683105329675866515867950257393025727395379329589995129279775616023546993827078808115002086769639181258579731250773074877226604173436340629721317237797278241771709350632306513036132216244370725427316699073350100546778746684139572547788308669647666996584280143649128730563765219071113751428539955900839192965537458749616066902841905871281286280585579209132159204271190032392907431651085528025430744415526222569628468284483973920344786345790330406808594354495584278053467495183142579892407297952017278866197783108820117588026517032589085657062547525450785947085131374742064826089460361602097931005384517642723928581592625429550180418578636265283403108113610965309214869957297382516579022118029414876271291121021214772093184696970623498016849291111366737810837376329777407821323566301649380893010384041137443976085885621127989355245121152243374561893924865539000000735733426512112907537631958393897945644187416262895244206649023037216771536963711741516593073021995881738238924754753222730076538428487233569951092791173557565005373236661331681855354194134855467740943837241959541383834913187882749756584393407509510433332343510066692048337538757817018426556839111196400282453904107116520425739812955249110484352362912811298515617330756464832466168458754376758354516350379570545045777247415748179367732274548224573246821798055840412073379712949559343284473154248195913973277195892455724829274174898783843317716989353514444375512185727126235079128641634730343713182508182157969062109936864577497792780306565475748128491143600710527674711191252688110823019298865656649055813139095869077227375173800889176598767984720950387610285156670256320892274197937132251533921306854246219508508345970397150552709780596617061501481290641792691375090926276998194532604657652577398908868089369498315212276882495393238069747691681940239671709947787384368542615149654802539795625528404921728355977045510355710962344377263570511032343823404257212891521182839880620180174812029549958188112750123534509202721531937727800733317068021095203913387841314605007658550854702538664914537586388897573277851178101411798607942703450364310195396577362920024905771694912735347942213059412832202568038608536402127420785627871257884537887462524139447761458045728910660762089641185559161602252293107257031663905750524012958792848669841914912773270512715298183413455363380124103224558720830183737548410658382112064937884137869015101936350419093084009301969457314309650144647493855845116638943563329050981386801846093717542626223040305451332792818366777263438245267039356451691389947851491778578401708970989556052901227009410639935420598502701531251847412321030950009132952184471238874776395101625657311005192736436620185404489208119450683265758643730965393480763140426745316382927134428434588912353458427147073846301987746004463013104330499558611942331360063854757614202524425718599990526432435860121867272921825492327633591749362241145418505696586638361197865684083860532218048957636878853364055061880808631243674226845108261258242436127543376789335055499208886894134646003680428771631551183781385741811633516546106437728060819622485349422936909431907912302765724301815951305586490192370495117539127014420806976277556849101727934215846008598064764358342860450445307720592335273851947635241259351591010606275285762604201394250093828531393546463487162355733305873422114007836875231393733235859824892672093836819185018280654503581333241431843620104535935374457966310560460542819968160999626860504987456734792208489176356641718046012706530388778444636470307771240809166171269063242638456796055392089044794501481932938737687775927157796384766307064817045214747126635462279683352134958635531701978668201765082646892186067073572783591437214133583795938973060526556630735669874071289974253903179199679617158594831815343785510183254895814097349783763946471167415918189216510056561115331134051826762447223878903113823276822199384544939511950715800852589373766547856743246423507952252128538425297865607260228430172127925944120846876936178750122158366487406718658413046855556904407413310396560508148894740377891141158596804441059025836692835413380841757910169467579338316629189198326898142525419756222207458051796372859929912857462996245875258056501704561759000816985853004381818354900459067206968241013577176519539422835678928157140532408083158831177499317638829228870884602322718139540143000934711946652032207022127641001117245171119291830127090025293304033474172661682857091870936478040953613761081686212234550611399889807573115061501659452131040417617979768545677803969578477199156836905869117117951756263499082063359872616949277464875303819446234108630802562876632218997136040602962195850947153121699706962082506886184773136174061274864702500005744381077000729547227230967905103602536011859127757990497405605851386151059520966886119073511122709024394081930299545277645513488178401080440477417545472485781127005913079700738254055578932429776939212443659407096464177445666396034466767575306645283833835801740982073603757535787776569079097784941668139956926916208647744833033164474616194360990272875067073526685346734569605856454747004306525983767125555365019344128259755669855036154648091850574981755485392070646173453806696318795147659753108032456734275670645088537129868864847735102553503578378131231158468597265111020109851429692256515628419175093314719090220080031841306136794603746347244225209663514182456047608479426346895581333094187942768122881643481842014257564465538050035606588339049604114109730258878120999203345543699044152564324968620690989739206512718382434535125522071030169701950047615613979559763046550938220336244218157222705229996034176513561114742157016335951939600819363864661830510661982035994910871668708052942021781621352899924659044776717790036006144641061426950980517682974794306778558850492213403722751564347495828081880459084588409242319536522677287368713043044758783799415189643774468449873601604547779566316898391332855449400901415004449638687424662457302857418414808822138647565409259660088786988955568886777342819732709443910927462397391749720870027510828053565413626382536157712759995387761639128706481793961569557862649177397267895872433657117971686320305167042939213859263096588461759030772290478941217366069048921684884518899824003485914708051762538490917788031803308366886882688052172656950718653256959603151887593706868886541632094315106713787034818470437751920467496383431984567438168693919200375313690304828442056347536940062445010272381325932838270741277335136216257396617689429988807009503415668449497606529272575566163958637547805818929900418941019435929581269851728584888213784010380218983305358894319727704412580510879237181674050126892189625337106715196835848576326180365080267073139336864864796877190797568333367179847944777167875870331457833858104855924667843042252169012702102368359296200724508422765941292330291952808234147875539375665766234053953088965490254251671760412910141560852188486387504845527533376119435878678496523980325412459401661877532075749172981006687747487110249786029104397589920161712799896811260339777179754787596970424755801789838194707219983920876071983854884307623257487189437638141571075620338770916941385987928622792313055259504774912887224639757364607268413599787182982669038942671257831270300801160120555063054179180676980446915874345074198282221427715848066126386449541540203024541745480537282052076278846052550677424618250641517736778540506005808868099749825465815603070909599124661173543490310500089430220232341893346575451350588563448060094150365185586279407960801159691859335739112026185833220209375762333850177544785255405404569569413766907733858403835590142738714213192427829244338323836569035924437274041411498614540499806098300184249901218824442098062163234811482303162326276326637513430643476918758219870219197651391915594652910257302690199612248901041016758282151606244642385968017532520759191681450579403397882508935561791803952767153994424472048029387050072240383199399508503896804053876019985931923303395471880077410155089083973929804317069113406440126006160836150513288368081550033475860486075970293215209678428973669752398476830916376006165221358201458459496830567235059968116778545713234042751355997250278698868710268721739832279670713367922998215854348245963463982188441556281414234113151512388619181115045601069825489643126957173618866170560721815635130427811764441595191871801853744368266737949985869497013826042674595550766916184938265874687787703102060973662766193613442547003662935071333418256014575530190622660120545847051741676249803922679696853429148659265483647706402147299036413017454513940832014756448382384914755187142846525086631053820975552582582859070674723932497427006969256408471305775282802237594397036497998388682293146869151436231930320405317561067111240511164189099741240627711374111859145852038527321547945801532767885762548972826757399131896076129898352915270790717527966376798803751585803358022398079631805787403536025273182109102176739848793711625096861489843373136136994646100674184841199284098497725593538385076028458374281918344236158831642030414370117039661705098767188607620203748992204018661622633818439542039616360619300455650724502069520989278401861682098054773433804406205958878351592200734303369189598948259075764216401315935584866770974737965466321254614084198184809227447790648760008131390878033513748123403468640230183605176050239755580730953569589619900891361193660243958891562209782198598018152390374734685447506980898273986715315725319460509032616606527226751555979557229754331216096365100353422916809209262130105837779931353101867825739515907795160114889635757712648940295080357724091149357639765658540741401335534655330570830464121220510687679706467972691919523070549609369081750867487163670588252149902405557070657812282329536304610080718529313091843356674059495917577683819097722721352493052063297369043175875628547417185362962369915094889576659454287648342702676535569605599429184400080121714007473684121492654334793389245238469536779450192257718760770997604311072452139474675602700432019862868267106137942840792580003673306518802108193414791387485928895458770169540472488057878711522785800629460900652584528694057306315530825740974188688085259470110831781247546957294122835047196485652568060700883554233276655016007690934019455346980548128893607128338957527412642103565711508875410097102082716535648829098667084313672224682567951512425440449088988664524250201770822574319152204523866731290815258832729607401654732029678593715148957118966042658571527280726547076732529382025657155770153993811976599227410376006989445272145206477127789272816463505178150594529713888895529254782056469016618874192383463485537927143339045954607520802232820876229799139937786376026139042271460150290390284092798034312482525734691578964118651566239332568945324637358626769368131195245397000786321102452825712465366256716404359894947337920183113265438809155674220219931965126462821760171755681184651956654394273400431684567408986789628861887893999777582968978720596486637223603825530021903994819279962406549601146748189701765769354219928816217467023140320858350746872746273797371538836911057951499328221148877635063726058166833185338736220601477047239407522075123631597589681785384819978542198921948666973593797832622507302974610387027012902924596225714149397630962392611268640370590072654220454641660198819164690880701395370429794311491515353430939934980422282940411794447129512874343496315186582524398347824376198733817982624418875115457986621514141358356893443186488559729654938787449817313077716720848809870053469639600040212722337907925033327373677885619600830185613448403079899225951109055820654410301704371227741256458566204634191993029889889398295250200904584082560187524303388209475520117620871422027601392912563218756322605753528164651005993003254052102199120272491852171399980731915341318561518105158043280933614698884692291206305089654725787018234657190621542803492121183312637176580331701785990037616065543703231096275155765723355818898126537914068815479069809421717887973813048193829103897986516488690191016113797807586472012208859978750775080756392569059817552895748233108070672100018537318581350463511768335078883029052590077560087195176668764168140367137908360027275112221739666175647155172439404112301759561573939122733324086447332802354799176740353799303639719938029085997948643715643427950870789232395739410066060069308112348597549482333014204324390964953227820200322080114563724491757714061493990496499090368758381745242248662331496466969095776499331917390388739807560903664928006987463004551105090018510689582899765103663640165657072588031740170362948824138488190369358058231655396044680912495508637463731321549127409850049487480714688204021483566418085047091061706324935489769926567992843545515427428823959392474879486826168977536148344728645032854641829418220479876577631219969594687268633404810785174261515640275802509120847741654696947398623644191259270851795340509034144165558761062023414015971832122849666334060012425140702887825411479712501217620693207165051553430412211265457127520997433076402418559909699766350046360331108856134382309752055365263798672126489244186350878246345629040277059513963579214373429821579817497728915447396131515512535868095850277266243131435492442070378009434336927863045712425204229945768888524832249243710561619355501263204709267295566059299393874053532745118516377575128075790632030038496648137679660960341563526085554478854136788903890169393488255151142667321262294920279257631253495645096591620903698502705212822129061281912268618924798556556874817596496540738639264224865985622632868208699392334620097873705015495960782010678263088233001625703419944133122237938394491279942647174168305585490877949002641861170091641742164674676411885027666182365385342698438283751987477148334596686434102539484817320455448629421170408217021207583863275504601900567159882475154101917723280656871295622560255749152375973137230330015474770085792679875346940485645109238760370035352445059569973015843661144197040058714006400073281470528402860959517003706350049615380840339499223860022727525740845389789514465267678776875518431003383702523388594326889625540489921923303689988775728637930420667587979074803026011241247571199780925362074843327303824406789951139877759236305107321151297138844449592707265894348703461480098260246661697880837272525781140812953030013621619806344050640812762413446098516674968133259047987100069039502738780924390759306970478028239435688705433098279545002445213264130896838349659060713544341073742131669266689167103833515522236557207082561037251782287211826246103321893315495863882738781303044858018979502271463835728593516763205991958879808843680655158854685468891173917278869859394963246135560209845415905713412329466389482256007546635294397677916897630475168855287274531737643832951309097029263077002605446495384863521134395002485315133327737936959388378586950854710876714412922374627478280897958114926711224897240649510461086053554996595180640551342677034867503644444523905579610996183981695649351775688290888700184717434874969151011061975466304659597278741452005799323704707706656171565913877621559082683377521361743277094474699657298247961969671562571897245157065978241052823825570758100291603521788869652059790148212176679295339259324379890643792756107412780717179245097254395174086308179256688496477567818597259640247497699437805975283427780433343619621006184021528290401504734448329929028792104571621697759630935106748438674368146291812101227379779273484016069376801571878069564269567285868129303929445185483761770186017927955528391391441602031942587544690015103828563873719616365508516802663285750247010322868235473486951283529177193963042778725055509932577704905225265016278070534026829573260279056120785216016674227096233459767300514001884836407891750707416083076345408339875361083428098759019331170429221411393089358087621998568108426784130006825468855896707062004841648017141242231117982371357015205527465288080325484383581362437159718058952116670447107968623181078870551456444372441226136935247458426188068572513693682879370668861519752973666899210762226795330062409004896721600006918237070320635334960982161432127421360217605270100183841158826001110779626352448176899773371657503614135034466158842280137414176770095716558682116631604323215372876040911989193338062136969549608358394787065233861814324116755067133649443757253060936224516079876369233576968609393638076454751365406360801629276838372712849308677466082924672306477098924145151309230379328256115865977308838119649473356116635615259609492475596397396992930242850978806924134493298105463205440237642217809057288471115965099363831270105759227875788369699460592389069541245119818143346845735890890150523139075277227014061962672075056248962800446173131859254765025211857895986438706342913925994998751613330288115936100590482763877594935065026105075126301230276620652179772262797274956077387503342406434247322263963963198076523954164373131059919029866811160119041245899997885201820340404277263437777719533006845205061316244627548501709100424455147211345997969073337297869526619713999208769233945467380532730926486515033826854094582372512430040917774366466420732055043729141188159762908787992414456559261848786995758552911194039926045855834767213307367933107280207620638738626038744148779637100470095446682227580531430813898666536235740975339262101292426174099653573353103871088030974720431645808577716662058381090622511907968284233555025704506857859046887386728656417715623719679824216351472994528399691058729831530085437442581653133777389060612867355261810742494746567201653442382311554354641672763153709758438700725700806564766833510624994813982852919936375108123875847560222981104994462815741666148576505086108598855968680868825970743220902470529211020723829011037585603244184605456837128680010316035216090479943038635249811033463432434321962016665844999288771835042623806680185006927414957874215190132484543655937185599267153256812474636652987221222069175734904164816248895266706680381402842363708510770791622291194373866273131133465205404499247575335869168291412133377738594044508384938964740468790792670477039886176073246148009997795443570078630099904791846850210032331016584323886666340158679824382373333086208618005791287103940478323371734280058869953970017589771980004529051481644318158249560237137639857660531467086904298476319766225133127416098938560278369755624865033693927235151396549935881627506837079882135806888885605296066272835517475887893503601390758588333526616986971123665682861911154692485202427086767681605530438913183260548540092333330144637048308939083906597180182035174578202831909524684348739273960338585767895190525679989002298144844775436993199899680873660170767169805267381737968698792758687352433268722404004775546430975378345439209161845363991590008638310691444533686862365384487568516237555582351077632567665449747262283122613694107675913580777305150657631250877171298495672366473250726593728441577101785443964021867518164828623439671060926739025584622707998776502508710456087352572273406130286457049867891795632060395227176363428590646115987292683764196303136532072942186246686243941512275796728815924757094765675094655522734699093160627418439606290698300080588732509290041560444854785914560484603875647226644488948170445400164841977921035500349422860748772754143955563244241329491289955723013197236976454868431463073267628993576188015280728756482065945965658114960910586201869676572244762553487458864535376325904679962132224099862347807809329776320873811130738135956068488871722334688886745339371286057646313141632572046937299619990598700785176380199455305011791310339775122555563730881996762012623205277954094447324633191461868878104313937279228129998945233564178489132232853815778077274745509668832317160176654770102438009619834368492534921996782895999776583726671020235851625481238734621716691310956795717981604715741998620405142319103021003990724432347069232965384294021528352895834408026635886097622671589618629802627867635868328368199311228157846183123082509319277306602318439475659227215913546433405454915089636837108359582591301349878540335293006058750163311699066451887352449131493875536716822254551920910077255844559455390700938283927833129327188491907080288312745591565507763001731905085087485645634626565354860514501106209500387348694721421212723875040695967302572454520639788548143809543699814680901456730198980427913440863922906201314781747635204183000745712192634430604081376606402826331640726631147646058458279442422774191495137993449480822843562304812519126572861960720582087707534484074142940069786529878676836364145668199073133135447747390443522178193796088931002273073153414756476273085957818505273659064028739435825063669826094195633698479609541623497414353880376824123445661356908454118787672197688721709374117386930743584991289484446706457825843221372696160538374420743300997301251284019111517466758899200553508001934731244279603043838496830580445944786019829934676655440342062440294525998056494899469561978929763689071328975947883679786909527432349217841999525631144323265378635273679490669043332971302874421351964925531358206430798392831352934312090903043635372505547566109236261902355073410372299695054483633864999554608618779307826027665434537909406524778233120617613844665886897547335811871779758685635563121209704176145433106526125277159263200969826667253418053852459740816725113171775145215116793116837621783640706867537028746234491223503217939534225121614044459099772276922487195998229547249283238014526766038998995931019383957336011678501812094628053362634888992842648266825545899618933807935455265890718500801790591995153913772350014762372491982666711842176240737849021912777495088088178225907405983626828696790762883444961577814482384526652167369369497950234350422845146365716616416969169354008520754775328633813157910203761853263315896306413150745348118262581304171152189586117041383812808526337852988645989170907918676149560431084530714249210220663517088500811859552382758702229304148262511829696707946325840371838643184331779014858816062458196067005991485724643295874982079718399389192865887853303486169893078855677666614498846127890321735659741499582569446970705771794238385918274337970243860838649767530477890634520735246415581838787594706303436227636949442874337006949431369374998633660158326529511456950401509605041937138223231399366693083479942888620000222301599309948433219778274122915385122905011342517318798696731608187002865306759370941040007253958228358143895020070821017313141872584595248739490751211364883660972813545867236252911976844033146337771373586211739340697452216508168933818084087962945078306962106467023211732919643345367818978986037097343917722719699896287372861998934308338169761207956312375768615984437593200760639224619345531484281197119650179652897991116465801808643473054588914412396570117686238483445684323850382981303186588835401951281287096639171146038179537068571049679960092412812115894784678682526608059767948311721890095203079153362443507401553235216663961995343991360766785824606608857694230465181234052248112962505508246346573508806353413172312510912974855211701793795332719721972359028716994955413565284866689212283621744075443125209429392376739829348750561649314319442096492041438993694666573073631921367127748928255817827496399090964930438495604325832709417068474025927993103627455772775943932556133353475502812646932994258928885809051225906769122208598846997711181604485160217416284999529501704232250724886777751618095287418097022219549196543971561855860259790564980537445445533279527183934403576860420074134292116752794382533225808083824649531436063753731705099677716947361836296601787798455846684270508373079855932152905151119357320165190714660578809216254329203368786954169873027448651182690507793691042035260184851494926801969947004393194323523424245828806163262468957634265848858247674887246049796562368643104154255005125941744264521248266810464512355330126141516641778626125097488237341380682609444392407970256625338617242298103606270872705086430511477743394383475344679572423024562963999188571917179218107907692549644642219678321690227978356740063842127964812730951140371336561069685046844776902572508438585276932116601246583547322709918592993293670952761547345863514491642040851770162199003424562317815000968484442540252236636003692641741929158886439812236941979209379450511858553890564783520404850092899070856165616910945034005860029274123663775923052913063144013286662409362713731956386390067757368629411961235790703837493603788105631954352103739046301893272918994167984598859515637053029751749458629238758878427233438711258949929468133106307775523114865596119251683920256068940877368131961853946696401428229256812182413101184699698436911776921382339401173778709389734835028708472164435217313950666487751274242620236306706075989345880665630697160484098350721210693070362321203370481445766438948902909656185249818386781365078501441370227458309694105563338687547660050755887156404943880918693311253708035281574780049006397590999999485051126583007592412900804740606293082016098355242154849536742216137845434381817220881738413133581789232011275551242500957857597700969974567367540018772002451279201110565520898025147254597081673368092679357389135376224005923605191565878571863996613624038271725074048041387702233125617767763086656944706120044279137929373328099896524957339492138054242685404980317895675284205129133511137590133869772807466287214699561235873978411860251330970715625898972090131977611281810568190939615764454797965370125735909406439709988491352225540559216897833633230331738404200780295996971843655499434483657731488780004127686712015717330120402038927144924464984584745444616379777368448033451503288199041435028033993451906964962199218404643471036747480744922294445192911144773323604852183910145607378397971689132634082870132650164003396662246720987403432825203506948158430746543024161350372671589620120178596081020890201081948547515582004285089237665935049857778852954590371189693705631307955477309627292101173863269053681854887485053220617552825872237906887977940736654502074544649797962659960621151101028534945405982539868575862578898218891991940493618044782256933040611957854613284016781601105101508549475991806918077245849186355307023086109039418842338799261297999617940572870725372644735973309188678648255321526442855061477414851295367211560480403449585254935623230037807136999077116499324209124562397177329992836280496660607122894817585431922490488912890546354254923056119317651356465219838704172376181920501114894718077778688497439548322364030985428141966720303155903175514840106541669757833943676291751241641108359535639643759141484146101472706842838715837886264126050248101680208223507267252041487759530375856414312155332750772532065714592057565797427575908963434541169593741961391063845125804330092914662967113770002458271171442784378268890562619302882446874477495949540805473878124613789432449168142442690510890051323241617262167264593988412614969507463896783038951647374681137892540694084438642768004810605024922180019134416951811793926015952979581766470087191719263894231344546969487264886281843232160977158775483566364352920193672584305898386016136578650162383346282105637307866524426939749123443151538833604703547975684863922647492253034244831294795038503575270303536111411109718803878142931363634492302420050445835467558962376262969834275051322307631524620267814595710271713429567611210013827419230065873506284445796477989847496268014483097548277363393095142720973527738700703860369675485405326307269951849278991878587131634008303142085396407886565288083269490110007062755688642238051480923948946103595322718779306099592967093098629541454951765848916002832032666515216119257082781695333147727320674598941716093931762905007535479184215696629354570738008034931441198217491637272488800740644737492244206517647364125199405452625113291243774377719630778309134632525857258620764954930992964119529664565312828223431040967326852696367012793216469838334988422956769579527710149260324960751806573962268744843716500917428771784258849132305050733274853785966978209168925288619678977009045479158747168991365035588576879292903286479145949382206749320055200916106725355274163529332022195841248948264640250382504469831152095910003977506570569046893420810454945938685333297365108026844321236416442574297984096833293751399878704923978284766125496824477672729359533156069538497064422015219482197278121497032198223217348716613923350885168269926061263435967313899688991208889626686131565057679953322192269650956002507582526196311047173968697615091489836057476505087872582175585604187735584852790349962144010059338879074430965641118326285742160663504781231568397909235842903454405338574515761264414079677464685198250278765341889079541822455102250618886526832372461611064917572394379072895308884871585375753478029621998116857344064355388907989850749135310444580323479431120807769343287720174115930940082639896380929676056105655309939046015910374501498199300428828825906987889306121117459904706507977787791634377436628225131157543601267436860477916342067742932773116863354862217780815276321888357683903682711588673167695644019469404567604964279218270388405197733098706422001015646459567680183343639073375193443664685800780480789463693137330047688131352294195271483249456167662803174974141460637611585349587291514247843300160336831346418085571392595277449799223385772665958947824581637894970391363565697706879373139315259606613963321409265827965656697551236804372571281181442203593694770535128157173219436307418861201822038915225217253692034918211941188346254334623847350699081628845667415864341543406250070484518928691188234306367673184906254124188573984364879944514057816069313906615900473893359378298507215179983228259887946388487940212251401821171694608984162999245579540995481460610797193793209041801927805733539949598920240745287002392976240370174983292441218140734013282158813738358074626223142929493956445152297520140840458107460641014865624440775516450227228582060620721003017592665673018793434474193597234004661969433774355431713086854509349602795956009378998673451343772099958751539859362365790070019313479633598510744420211039780911038202490861204866815045260490699475954636362550312726439964060189885813323182461433369340212682982017806064050417703661260720857617531856613534838828085113822792827504496900206864517213146050227512376819221981423955761063193059196065458737375896070401904025489989782798260143265819578335371081895421573281237793154220053189373795614683409737115783811172043044920044747783110421550340239779601044829186251526132770167131260712874761203863529471628390437100210198801751593364121640440483372034051849302628561947936110071986261193751016921922558888133261914440478030179298690305328922589344022613877157072998440260143612303875280699479199945499585074740643945833950915781580000464425529630524817649853806885621705765162238031012023837686949943963545915140844653362766464143579568333789557586148981571682036529196571142073811438374160485014555033026400476781393444774755109143633020781579130885426673470902417489043970947033284502086480999996166902695854926839855248325549648059267448030399404215909296802038359958390893728968533886259902214344243117307302101228924184170788689513960499886210214186287079888680651631468456400731054793850805613863027663228199597206738505979536460328676616875217269074701662387440868919550521937537583865707307447487195897722177334762810480214149449938307410583604711925684548420814805706291393819568940859781526804174622348128511001416128102004973181792524549483813348278258414383189287010370494732936461875600184973161386255270400499006114818014295592409040849054857256687020130642009165410775167333948725827939239258672171973124281198399789532524247079850205744673897548181782802554424396477505238987202750514253913595440732154635373128530258793836289733223266697489414722727073498548449736793427872487200299677658870881328316555824153537728486086956853130971839347513908084913092827452214837580432760260330969149668346945063590827066665307106798185708944436071220620867090124950835682131536948632189684666344871117400114918434459390444460451519599521277693722367215697366008380838007031981971966298966752594248225847421443176574901243211019610243243761971068496188040627291504148119019396800711805330015123158011105246934694567229120319038174073091892470147657552981597921292289432529305877931024658926922536442465336143263496606333073329217074396671877322054107024455418453226442550185044884107752973918181803579457473840500961893591062372067031758078326825829827726040592769537975793791872984178291099992620009073567708155375271439667241943228855089780727551409986052892884605817460174002385057163661032635609581252217809570724173016889737084030399365537909725573799270660423377650216303261908018039005835321713087447655660598171619326162168745786304064241813397477774005572820132506770069404991129810984070667703035093898094425480261136473728391703862389407467972550153510087716099141159621692750693217109069094921085098172252038650471450413256373321258451626291247465920951687272377407532085070200813825608845462047681469307265352450324916083570885326701855368442956396889784377929751676425602325860221695218479291101328272763939212193956257135522941560532323871678355903468697886745363570764819480828920126063422680782638311054037268869249815631792711837745007932997652890606929506750479072355358113819044465207417848403798516302074139878461828302924691904752264989384238930448216711335761847395385207279213303214603855853462913979488883997299625888551160440872002239297895163558685709311009197035336221301984693138980686962603972376760298795406394053439467422880512466719793302545326061341251814306714018737112977925984227945292413747899330803383690813592936304215126385686191320197483977570967613448700465333609243569822924574982603746916251502216329367567553152912186260982461075665443713246938795455771073844051666291809316053793622551375269853412946557719586111788033379505017591988918880515188342711439475352843952950758118465660505918299208104456251544615746753984835160304147642440096056808316401718592941966305880465257050267625835827931084608632623414907729692216653002089533542809115188230440130220488804497439761433398145924553050587304173153868500497503157480298848673761354507842558088078048378633256098634775182284915814158922666869206404579868985102984727307964458943879370312458403067539645043730568432851052592159068729582911694244394166628705926024396312168022187133397093094019364540615700629941871320554257388490164682573709244454498426057980387029014762332797886596783637336710607324158348626241534304164032687232846410859335025763096160730320325080844618867135465075531328432734661988833034760791125787710373702874227189998206139258565802061107713262887585099911432444447685695660071339145970840874769340162401140097855466294223366696899903929600259281542537868535983470786241816153808387321969439105743788431434011882244394106415526040221326233314297267237645437858322916024828971665850524897964431023405981276244772508543730347743825555267126971024718588604412497421054432622977946548807010418097060471214118753348445122966749422026147803143566280563940584364892234077574771430015417898375049415455648086153139304554809375482479618607129530228733439766158494956524022310127130213144720201956741756215711092716618474195265919666501312247332621260215427746092784082833742953316038072500207261423089298354423602171156953383981006336181616071814609965238252866074651708953302565490489754141551101109686240764165816734945734598926087739800668328967025774094325130869555627978920718752395293352876645025236405775774800033847592803101461390548425845690007972005416558804218444915203063251485079646372668098715913811742486248158685726871880375887716590071636958671687621249260419062461840987604467784150599594905077561487789085816043850234677421060887581382687484871867636620654076939038622840162459840103043024575091627341164727520779652615570531085687258486949793985910291045496250085795615364901540068240204783243178796061438540990158284023778022672795332724339919657519789322665193639010507402318770002420973466010408898599557816353654723489452322097639302819058863004815600133737647253817617375464186455206803909916865143444496014114999321847954173838558623986937739209967404271177592468127791286074686351026175888064352867089347447154831629783861579992554702478928496978428202786743846862448614073642937341025604619284702419282074102984323051012781778562404104151419821971930883373157608007191529382868112066829141743482845667407045546105921068153487025224593052480405880629533276307302110735431565792112627826487466738041531145710839867971327669930048438651647088189150425921641064254626880667422332032487218611054784547577465760757957111820772425872135213440372467223973746081015136263217571227298861134697489771749990536991346932451883411365053910837668148249403709292391765378862787640488056966259596265903213984504092068629891219858431271611454658061897307592339171969007163941648023975016972424476512458948842068630916710991938247644298948105327174654839367451154176093138384239684706574176744501636425946924300689043119827112504132515293339940552972779068248462439415782023109593406516588508307103941766908900059568281227269518543713024163828111239763851896612354326935795611924533074254364279802344015869657489334391296275952974139100127207562172313436587527345396641745906736381743995497012163166327226724525995023833445291862920870379342939533168106348914447345129968831422621480223986367898570314041993310761503331808493096049178616692436238725241472107504107858447739058872678767036728071677024024130837944442522426652827572906164579001890012306401489659780547814979599534269675337191156287013555148998389158206850216944164260204647302707688086376488000146641736558599478670897047470388536522835231153372550959839544820816480209851457139148519702547923812772432705429780818889673629882734858869701578024384486289143080881742511473201328027049845292704277721550937667509289749203964193485274202450154044770376780244700726923622980730594150464741893240188663674569761855183044192647272245558965677593619169586395321577650270571840446301097698667133354250514881676412971827158363684995836658279582550827147071069352625493832995138403235829239218207595588393706661931423534631706581609618091033805092148772533326954345756532933141487745933999397228870247357545949068870626714989444033944662008269545774272069917528183194972803205574830054941738248575523370479056424005356546304454946822794386931271909167174481692659734854161785329003345541490177508072989047819206559879687530615605998043761128937270136266062976864696601627162878187294697980125600349740955160797579221137158265879667051301261919239659462744777922926573381779208230305790322959258143507421099518923879466585469122421223280944945647968396383942029944822569739247087152130292430088918377360854760001346523763791765257513022729244746311559600200392006220207362360271506053740625451793892846678776295653049563050274672083689863031330356992768556178559424051022035819469679066754976332168798567326766835661137583877968795812977541841492365093663541837263735404079890212998336870869418972387249015403739173894582376431559629892613589710985449439629343730565070676907808564766753590278945644910436332288890345271562742657796700912173574142694188894984540498220065525476375348916345577227163145681815888571682951242347807284782047428784194543148933233763636925923174938369707831969524233479598178267936553007120872923762444687850796243400945205219731858459911565518329169830473330562460874058435508671542058656222832742343443936569232397336937087168419799618916595506768620637263372182946292988388101020941309786366480778134438225359632612066754644182239283984862610580863733000484229025548211790032954921084267611729570913041620680343763787634899955633333148845251098104264925581633557791368244292526266505036772406079101015777322309952836968720708053071180342702915668129917005073870997211890251349922069901578762771449256375365783527767787488072877421028687821529757073598142332705346152045048759225219079592466766250046623380429351191627605047863519774298682500974590248087622670978696125896316712334967723868913064917624878960104203446038778939026924318054845243776129332586746925268777564353127069728413632750764210670934569042312405964189019688964044738248908159426361099786855847142287233473538725463371704400736527657960179445851238078014581108177782454459862462139719232667204501015399939992289873803824965521924926894746777121591316313934276520360971828748830670130327126150829040533387933003502043755853162320232595791293653225774350280421674190272827185319234537639484654883546299608109751888238311435119123787940237034972645080860396359309484266848836980323665886385471711206163081668549047386780546766014285391943507102234555163936349360882353144717023488780946466958386505179198960074632150147285369267241466955090303718976878720137325079248730495935303529403535299778005571051793591034782597680465648446038989506557662588840068159869341067245378034454895043968324701762847588571061731235082901367023284663335503923389334478724319533697084107858910998722445288453867841216550845014441181364947657748467464584404084772093372761506453932233110517862921071759675834851417758198124599092816504672609185046842800052749110418770456325611454826726324610006643433092474177018468077004918594136213510513743353646913521052000962089664105333541468094960780906784368397357158300904272040611042646540532963057942525802641437640035641991045888292747203071646451896183147933283428184698162955355505671091360029448456742142952201814602126094852131595758832151458101377695267980195368022937784266853311238555941041121988466182392121994717140151073067622465889642253926643680993106541538611021883893521174702704125534339887441246020273372970559402569246218934615802182882535987131821031238012525687939082931632845605567580140997556946727006998226589537194641434605185249515121309147008475791243296580169393131758019232829757768696729987810642420467684279896773369880060390945017670504723124037643826641919794266618071038799507201283978817117176982753125046022607062425357387939488380811923978895074069471350364533549231623369374004702771147976976256878952430605657258028487758465265164267573163836476007905687652566357081723510545072038205318639222488388904193097323456616725609890754597382157463309721978592154319676244088116933913942249328094280163146809207806653976403238469903818098693888965109746729962034649439806782249403549547133955870452584416828029906881365292526600018113516050059267174226045013513581762449164949796036417535221824395180875413997359571199311990380788801280479766348643251199200811668888606073612939056997185043769314909674037650221183457486124567191343143160437989787328774028599246053819960898566755425661431693305285110818822522985334080763068824842370314910566387925127573127350617619588850104804231982305291813136337185240876635231641414140357240662798032563912905707298530481288329030715638385803817109169173705870389990121872165850426596726128682346044637819881140799530628910408327373131411341620379670596078252792100347178529948124734755359896556710452205444643776686226666361280584596706178580988249153813778964421342480358147321511898759145361681896323949597953323759768943937089401326379267112558173280068323815621485982707885200561294318126396571934187587281021924273938160049151547793357933177291527440261376020631403683952555290736153059276130266235520903496985825119803075012226993416531962981102735059399565722668705570655307097031713011852621208618815032929465765797360418430258092500659583957243077404890130797452601378963851827875750434818848055524473275116253028495800390614221398999984481748627469048809623459707732868561860276560126855385827460394854176390106466541024844433183026722687334272443054468381296938443365812917356176633676350769067083084258369468813619061846851830850920413590006981146992735088013876603180614244816632740670872188476877604583133333954142779142588305663304922243488470770016760445932815838124495357143733161504226774091587639178661203974515574558305415069190668015242778932615340260942951437960098134806125970703279182503219726016426264673410538576907131986264277053807419679411084082162370639581244405688061486518101828218746265045578731180407744519278433161719475743642635708628224706138828109986729365200042278351769958073086142664463177265206321818139068262677897043715119041292256888017655098057402126708575057264858647014839596116965944939183778943374847791801591311100388170799544166021361084253099482677291153514866788166592194301335190960186869018440152893203492724800252853149581754606827683443555700460357154578886898799195666380269284940577723641885238066581616536306486588306709004283000601330711029369865120047473488124924551905594019501013189233926550469669453577847102454886403339294420606034094221647618156609346089453327491304275303755746445203921853899687958276732570952986874223762177217077543412662537819039970812819703298448570185826038692231431348324768416840697173234350001951241042489118936514180709431255734990942543468541980333610441118347149598326909088351972236983036981708633897783669417888101081267502691160231252014419395272134763338391568976734875658746482174858329564316080830188375985552025758980572016389235384246364765088996931407002326904558698922936398604642435648730404438972662507109845171145252605093053260509544754994213448749898255062116693517239168462671678920790288090358920683848004329290525193551876542429784856035826677694775691595436670362238242353027928035151741450853924024728413072739216508694957728359914480527531177397238170940428105182571386380302860729676534293024936154664551049401103913261252502836358485262763972515976120926016622077311099797289474584160529445590144908654176816412191469428163566380349224572047465569156086892101995910009788399967249416356753955427160699053602652625433863648606140675420015469592447080758847442292118954657244707692098318425887574652146438969803407863693779902235451709004974787168417842471812699469812692796290090941833060573275453872393851670831742688911256455117739248028592449691410448399129885165320267779620248275654419430948350643204738743655048103339325149227382690645504275695877432791248464570586418523129130550646063122931832303527582199557265861055657242548707465324892766235472876665788632500468999508154026299023355016340472143806547147186497125059684668022968489206726406718088136134338882230399575713157919767713598323602171317364383314680356390534825153051125753374471265848724906847439028291927552171928507214850384667636809194503678459114323232545448025285074544688316718359439064747746158051656933237283490998144908707825082068197783536438404780998373575315213801036859564367019515257408726430445939357448859871729675253016536094255181350348486400410430713583321630708466182081271725998879503625757573877813180427703450579278601970340017929076033453149351137384804013276225742622242212303695145122377902581351274762856909136646797770300638648979065216445502752894486562009765585507788370812031115962103291862860308892786669293174205828675784108787473423381383871213108022225908904201981547228884797300833435650929626429993854085838234300376375761565764094474709758813706863415914185565479210950906352025514022199080644642733465661787281855366839513811690493866846987611287538124754355050514666499933858458454709196895113203119152361867838609740369582980047189031962495144167431943812213412384603292988694014344395661387658722621640097911183179336656679383766831039001604736861276265587728381851988754173125861052476005909195322371890612100610339540038142720221289926225041104641046911490350440145229248340312317397886759331298779140920811518850989219096456409151780067023235493583440061277572494048298835647928686799406075673056539733156211759927692816735722146230354874470688941883758021889406759778093277976110528281502984139570210212093652136325783751493940584674834186243038762841703383963333973848617997807104602050528519868833357519362337399614132705439057188027824215593920455782008080756871038800523901576186435834960011116304693836686008395775420301288505241786342952121062434827291009698024151989130358240340671394755266934432294651475439911931644454091518450922945352293071597579297276153040105648992611073440891046272544202520811782962589180160866242875820448342110145939267359067826974742114814937842143329775628172317786462591291610469952186861015171157520545990251301548346108113669542181633594059328666760400110311145912729775489666221405249447801619657397680690231647425034257548013943212819041271513975877652379741753419543102519988904685645118997431950128755388545434468923593042266605016401279497571728401141829815314377774925232155127270157067453815256649345922786925679366623205819648843209583474965362499914546300682433010419838374415606151095121540034782620048756660267633647888718740738706175740493935679151565547588504140294071804473423470351837690798115085870113897829173069124370106555266647219435894579183288905366774053302060223053267652515252682683537282268753648964919847995770163264462476232018922761017106774910811925286032161799992065831472405972127340189475750003684859570178945344357908063764401031160375928506317990319662430328320799035303878266478038920733513216189018699272358643770977712133081256771935088912923610482668691072288865207393214865987738155981870989969452099898422109179150684226909962141906402057749347387832586514042938812743291989512879633051856254903257947456238676042135284939407248627823381640003337894520133840788552648377830423416210895008129071463463692201966668670869964470764128700143154614125447568549269755047732220692187301141716659856139511309826546829614456680848211515485361095268214252974740779977741547106819267932271017331093560860408244162667480909655990537014338556295353247215314239017536463554039553416596262845096091397629920163594744685252523637367667917558446545998900434669623471967985152060950181472793061489355411095393898936287491247257078531706412096490122813288680581077452464516552435035687293606097991159568616604446334031032035005399857315556247977090399524780885169239183229578135847344058716924627324664066055795192677630314616495769384916459275121418314976930525643824141593762912184233388293019402922694885220282953770391548940301404410895649240141572475126514518950153918369344721903317526334865233610605098259125549198634254857545994495870263059599935739727159225674620674653086197901604590409078465700695793328909321721879506250148996291769686076343759592626172091717987024614159176012156764398884564690819748912887213980594604205883214601979619815800288065107306734793002694615528785157536641460472050879321131100338132630086860961771728749832131568597655147625326453236791912215105204919433435687531772789972200252875306552328630846382961832112143366920861567713639630152388548106489590546014623125882123153706266720834018928494985925510719556479866240643644386437266640805652403209006794300304033053416246350206051581190045988053821721515815413280624542584157722122601108969207668146610347595244757512737204150367458225013046730052335930245102950894290951931045546171147536275499219693203236936767665178482621396004254135371185290982220868345646923876414984753896656576842893022225014124668814674626129098051049006666958491406499902814289305260705442794616236365553997840714255256528970944783734361852814879244937648168373774117410804458489917336322625831962213941659164423333447722124702495515089101360687856846393957970929172020169597787008618940483942656752588772340928322329511272106547720538047164348010100329892326448364254053286502847621241251447974086032260541693862626432983246200289345076944026848005100624961004392539959871238934501107333683622290350750620724466182370032870422664869666979251673289181112449431530665264364675357135738055956255067123010580301179451640551005781705027484427039300014277791994769605421961018948920838413617139531257024470939883511277634219224785176803173879475942104981532993632551495046087489866453777975368638495051134868221989764314220646355152000944652029919257402940378038206450192530413678969389286058222667480540081498108836088549280361106918475639314547323158154013480382132207579830435266241574780344019067809302098479431182080986038540457945005414397710109210889629805613064324166283581435377943205940289648976534223370445210433856235184618511769491685477512820710220808195565816748279280736908017284174557783878165245635716906061797949648180688579613703201784265057168907612437661711824018915683210162061312899871055419774620831652482764323715163384118700124598986192846019974690713435246134122288030584539775965530430274177215422104435204039894711366488532319321484198676743229478023978979052468260860373279943246951269721403744707903255928497604122558421097083489098162302745118898622768415781253611076579793863773910391111306345991134193506294381794453320752931848117661233986738202493379401707218810030763162216740750160157451762932531597246275747737013865989246032178819117813770845627573530399794343491324061101419061322112397406871300323146351680357678759435556923346989731014925511605743262239876081350818293747116458628684913860702590651321609777895075749163259475634220629117465856514195658853397205506539367140818566750588051577513509221046742223715786160264645310423934193171448425394428698106987363917940365746873683861343049900845050416657138185244346769915788587955262397780400732324414561982864182194392835594108698107971535935046503682420011995356997701013450093582415805819673724125659402231093951311660615205413125294136446516225013152951192548484832947897365308322222091560111389306083656466951226065928488000665024130863944831257099930899721888570055964541094674369952260906360816154069459479003269240839265715809610830139279765749864017229891651090298312025860454875065539072378352925564151536957969438360112852866993052064385811650522822344385568332260539525436201852564705596466846698442329880418180037295194040099669972021935342451704935772454327904709346744601333241682226058139827238336209535649453448251873486743213700138120232835868272862793028892210375919073102411409003542995823467525351257099343243778860919878395366613576245023475682085724345676870068382690061927903789796037575580258376370752432606617851687896487464313900205453082758747711067136451197854501538961746287579897792920176913221660903017021321237394255162782094610138862073024512799374038519722805785712892752694769173313324510160670997466592451768810637427651771687990884603993654141242035962433860940770073264387913941904712711761687643353982040737207978328279240426040670059709640491487064768047403385650550277905356336905637335510387188419238249040465666268231054860152716691376364501294588906610395137338319983227727983760835612786128515105008620501629111731384868804418708903471920984133261937564662296647756649652087539239018815758024999107924290036024495480515155904200581640134565611683873833577887821071906205191253129467194775848675359891913307259342379074813394085141041741938955732097747280601982883908258289297028830121335961462884704339556680712930588215122012709611663722703116477572037878877953760620669516346551501373208954855646203356202993774440328869187770235463900434971557646363955305617055167894138094494349814218715448011073908465628537660902302223157494779142329300381138942482603212871575532907797988344214830830119626018707150723328152489391793341672332262950478923663721284163164978613603391293486800760553918544523314551031629487294599558777751658345694905883545489837850158987544358131856748357461937185369389814347224325115678294895900139283508367720089465669296661126721542443018814230143382355795924122937060611630737302840477564029568715395593320551700785604444823641906761338753244564562979567166518433203166960549714005631173336090322981963104024900951947260645618747277492670900642695051170996895083219562032764663088476787017425038247345872952400477264283760876214638522697232972804053994120093862264595264015369489391348761585426245542813436107073453514186216100711047083496498091020995435319906470261020822440780247471697844404715498841147662034924497668352425582955080738002461179250409239044872572936318585305672583318516996260044265006417533746612845438941491601671247301478803877435369190982250430405390366719005887993058044635674755778856284266142610872383159954499230726385482741593464808272572780068451366393873409234038924997529243123573024310098183675017182130521909798166089559347621515436353566719110831005975194994110912147695425426469133729683842963825945959799193321548133373965517438964639229251547316317967219151227903592770428064162433614977002803571785430176553689246307828222634159201821890087616795312225891318171857832311449355662734722988609052437279089232337946154206871435704015367719729075464360746033072696457428390019288605616076093582594530166726544535970757232289943243088661467680119162928737893443529193948926273644492295724881541588994813232623136486201281590988882987084813598917035288915608368973438047491392458128569925945608022616830295875252576036514195635565008498540442497381797587474897388970002106928606878395571636709515073035699632542434818405816021841555119143063284715967601032577299071643182108533440385629897451445205560580191124074902348601774249416244069642906151689405118550536797955576129778260171146054972712418954886145946736283529428030048206758958244281859123262917961659216113691590434917571425238180040609419794600673711213621110700260565349749136418007581559362210567601749535383196328629558853074748961132681829655265830173760559615167181777101956312821621877389892028199877611155181163770754141159195746074986507721790754903539419055236768055446199448442942473863123122838713652738493002961086203446216714641467020630607794362880295637709748912365990437753131104893837002474729512296453799402865017223787508020875424795862922540465083315725385983589052544582813488726320006698845994230458341447230147165334755291040502641891440540818370032971520102292716257164944271142373393455589576758210511223768046572607214161764079650881502313514770723887201986706931348542700640075957142714291959688931214724659926796948072401009810161251188541081399159040517396312769074325991910103578897753377687237064185098510278213283446187806080628022416960270322063000456193175408403978408289735267834833692892665622130319120799044386547945114005247500389868263529056580344770107660366510028412451286069724298822365908110074778603801597826827689151853588692550794649898329474207160672226845192084552810450306480056575369010651322120427187567345109776296675179539814943838545729393557971657762233525506428374948742482515608873738882261289526380860435400875276460072341208493323794013312778711427216450245949040605315027843276988770148239541032783367202786023005731888552129324108038034556993655522455664655512215820996858964759344186145633971504496140691530479659140731018594581315383198100239154243876242051159877663731548905847751346183066040862800956309532806819044012584367622129423693834326436912680484536448726905033138944840669285511973556593651016604897630875558056371338251157849025524761989018006241612076042919146573378669900737628634398570078277940790635595713097193126026057860801109222673504232838203581058670517314769054537978962995612507434230266926299307004933807276232922836359444376047644135644520551637096071290905381250826593676754768452846339106033104772194768697977323160741990009820471971581125375532195671245488075873493558734700651680309315380153433707717136918800032397167869649495596320759271673662403125945379294895645815093873264172166573606419652514991105014339595421521380346928363536070083541662092797844281231910504256067575267977325985469581626678618286889570961703031751387602950793415070072048138693818981579607626438699116398619470020702642111702111409075808959877486273024198067030449491202409741142162658821899049462246240194647447412491911621771616661875898632738648324613691535904605063034689114374183550465607992136168076862798682644338304490603837992373269025579281306760267242958500608635589177221580477243008704893470172859391500751543459842279609285033898506750008561507850094573011514632411646255108367135209026009671521452618325907758825392426500765166503459404964414281327655266209952852290205847051591053006160834760054854095698022753012567002437259506165724372590232188707420038690420726427197982861865479748983135957358784273447107525497223799655917510008987879365540795232450646317610671178499622656866456393330544252670575538420311143375077260354655493918664732282450733317008383343004698946791549067304048071677951896317039287241795791149301677647581736335786973198284480583366363815603931775259012066246571773298502185009364498972688988353327081795630882737101804627638866801062139395544785557164683346276349602430131265688044672698909479765443867873619251577802764999516388350956275349007809747338116217440162637246999177995878540202084607301265981377260853129574151079495734287076309089379406114273356459381785953043451837560521327830190611445257641582527724446618724119241623281736740860483344095087054068873765292133025135452498385828273369427446036029829869418978098019636275679543422779903307319078121428617718622752157777897422866219298814672885915738617791801357383034326503208135080429788516148485297102266829290922260930925133751105924780463849689781153829483795390680658101860110177857817203485415897649149040414600311547913758803956748155675411437027076369031364288444942353744178572540129097495621915319734486384665925509225022466118984719852257024883527236581819607567676260355047212073556938591713235230777539219715252085512897342967060361417332379574138536285224370141454202288031432394596427261005791002563772427317594396356461147946473568424757840031540396994888104595178259494691936990141964682756445747490100709914093178442621464659254845790592254292805241155857639904070366154926642611596563349154233797502339549289487606764070592789981702993015062787186836860594189102561220656654450794029038880243753339926970517938353277818387142751609680451692215093590723253789185653230271220711704281862381804428099857029495616307119749195082376912721168070872876533473290960098859011106784040308558419255915286723655579449451062554865662194000132204817262616397241449457978424988030750608917870305354360208575519583347406954296215214854962040344165656601930238751144797791163420599023564387277581343065343831011800867611295955270157640236837131994944185636866421049149971281442008530985142386431040318455701044303759350872636121467553230606288015722764443547310303235786870082553115978052134392182817207026872147836824966202729131067546102450295460811653451652200715060454314800384178501216969544187334042328715855765523039853662567979103615611858609412111888003993884313296322126776392284292138115806704933514457693781882483701251090368493160724182198501034515841089031410758320122179212223323992229073578209323094195692884715871941393292269848418349384014211862767173675351356196689277896030316771645460497432618061466755098265076683702771034619706765781639126408113748197186564774775376801045663674331011494352683062850731369589765134710920819128326516296186816494277791684525399217069583409638520706037476643051749938202069229725828344845751139907055862408267979912172893361117455880590480931536782353708659809365736130671976619787493779738063204655747178301848816857507194833691374390493048939114208596989800204452031198669488805404283452816243317515964378529384628695867865374505348839121105718745660861075400156857814980009051441992294075897862905349006846910441750508656753269276952752411857613668697808644586177516206720782847672487157671612048470526835322742837387518529253319632933969392278418311102404306056961896054455384022708703107386428963709907037835941492936356610207030625590296146443950039580515873129178677268777845476241938026390518661820221557331171286217520283928906597260804619120611759606897895665948803203028181504346805796861376183478475712305340689323626726465999442145835134222925206466072467321298273582556045550734462686611178289778713765115183505610420474758871116443903117421768739561996858681248627557924409614737072005276759552730983586093407429233281827017178036000239837781016678281979614652384160928843760840528662558110950329601603628467058342939959259872065643699244504093969280095157095811028941852276795026783179346660333109292179346622564569299043919217996092360992465776970550622586341559299608485228845002450980424718115152065656793854695484030878339850010764846717790467084727573192322476387344623348513960870295400557794976957058036858300912707765299629153468911109873711309756561861002157518779596179916379568712218733763264385677859929129544001351562736307709871091510430384054779180478689683652754801098194849826881253618593649659592807120975101509634618782965541106935527692731620157065061859511147867581920484406621992044582427544526957480246089701566294082253542338716824744341786204078658545226695188134806544604910906605668811216187643249528665969153228993453742501419112530812497405281927710283673490065961153022437421792049834081209702373777968747853455977166872133277593308678706959761679024396849513315004489993924128261464181934379413718471004809641584401803869099826367918932262686121599934683432861105740949060449257192900740896015249423701716183538336979587284916537213918470633025138758934913655871623457512806296937485318177701517705219954711591548484965721031665680515646014901219564460649449277452906151286266034837400223701880656811827745063789743941570077054218809465215848961777876534411607675057119889026912044281956787807915200643725605885450828004068832228692700826779612398520777281478603258812499054764997576148244860277115142263654423258622233330546449634421445136034256703110703305754334604004777662185866350378269573335738589777915666614513975148197237748567617878801649371251306581347209355074046349843201262933123810950435840111414368047467506253282322127995430698747632778782921308428754818706562835334797361673965200813277633723786347387758237939159990750286749149678059716850901253675076688553673979067319089755392934243063082534258386164351429978942639267276943302370270414643541919420187880409833270434082425680604064338292385828046845357808581673141625710991571128536150043296742834151637626084990807292189203913093739012861964934578381608446645378795208671434816722964872381978271311778269613640889753263964430775446802388361838057026481739425427257304709321319453461220279602950178691751881928128010274069303610282866520319249002513011739768788751141900898355367153519516380497251796952026324499984690738732902439973593152992146087006891867740592078088162251733738490735039947243948896039744129760939674363959304241885651035631975988636253577598076414226929038799334528956335816227478698351777231663919755411045551168519136882049630288019860324830856366075111085689844063282179201114236337923975358516808018387754426507562785794209992336422674430371913790707979589633931722593880252520069975554023243240285806480747203286265491997023773992365161614623105892456079331589395766042861260754252094346284503135301195658657996174927752648814559381243250293598342315996694184187445201445278513874253628595323491733968562513754232751942444973633006552348535223271390343732522230481512323726954549072124131031334595180858714275192514077707429797483889733340928418689476571218264939914302467433444262850623553882242798153529300305978761430174827437150337340079760367217183919581264930367638285025139329778750120250865734599341550495222684489876322648033263788867742971797868217630742410541877205857839017472839160235845205504646705397764454684642614592646908721809889734772273005774121073297771590074601847297028848673394264846529941943427529191083926170953412358454575045876361495202667702231239141665459816947700857261505426544170031601599402073014657077095615380539218178006182642672471169226968571034898198397854828761006435996156009971233385682520939585193212068340696665308393585949511164770416535618192600252620703078165830076954894729909665655468135734431783539690419128578335256236538006496057218654226006553523326992956534588076153038437459994299712770939729660009866611305859524649871130910515585434144245004485369431140970077518131617099239353532953263437425876411800531174729330376366693716321242716340557509998622361419926366664968089526590921418790292382233703671016811017204288959124914519376699253967104090595863816095852042998688529185258582505661405088533430865858899632240899295119785397489951096574046838825975590776115730848323731204479287693025418086953997751077918370382252450608544456114637999810418508311107146814189912472609277399802239681093981931281543750705392744701512711995890085902704080919257102597859457110824554663236204851809388836285644235006952174150189309346334109976044215559289283619571108087281156071223749719858611802946791992300510204974122113323638201075006293106216144937570353110948029758617320460413754612469382930565981606432258872623597413369093880442353373997885947517236721514600145605496114070042604077591834323356386360958294784440934006249875290582271325554547786835491439291580587079078300832200535621361115672931200782324783928245266160510449485685952576778349956123062336878866199160795736895941927895262237254388210003730591543663402589762175039741068704131017073216573099183058557500789732860970747784530274949567611790458057667764729249006341991971149351723472274299967922437698811575463455837391257211408001118365214959196216665007007794745341647571202990230257470606099025406446129584953328661676457705484829851935973509037826808732253466504327984258151657198798078411940168012143926054444938607122624065294240088578959809914332910337560805011182349487023643974596203824788327845938204518065226497385119796976667320536676375705168252902839554921113529775570778865598227638513451820451755226196509957097310651540718626914513637224730851485059860878423986845516195062544725519347826846806445771255188547899207843458142768423702569834718092192377349345913071231809983072248456162272952895360573281108288830560365736814622598272451048086634422556845438692485280281754365348269729982058713705381471747334757101116085215892880482201233091011092382721216755771618151137381296146967478377325406604122956348464293172638071040376479413978046263929517919194564826860930582993486340803792281043118039115379411702350365375216040595709483300662330302778608781898454785499383953804095956593737478493044552212186558530321886944477690393407720405722920322930188404149074021867565923132504801664808394671444714516453721363467509284900140477205228375472134135472445073246349769986699094833653777196720098774713543579315727596720918916325024594468517341921409801823698709147382598083686036528501688348524112362708043726573835479858003144755421612420031256874479878182383189911012296554147137156867239784422225591008631053249976263813278526625885917460143741841678617134695318749541574877540501612174600293797211663426283867145604518549358795890428572855820497358843568044886195534576838306362845883912128963943207465305580324556856683577719823070094422848369947124442085811655195708256564903275528853979946661788810664733059722390918707372373126382774243154789211400593613201968333765712978692393030704051487748190859272446964771978131917408850478977513406824891553061235370915239605710729706194925811092509389345509365088399355278861481416549565103974625072296645329530010821770559999514784871169099230537324690376057050535456017199016374308279690184617588909323515106852550031764447773740850549696512503650598245140720224724317510911251934106756972880904580946389358985822296030367083485737976301052910174755661031822672167189767877147428067264251103947945335147230967062541058117039102299024496981874571290794597827924834935304067972058947727045454739334223768291839947760308154823853121583977242977606992878127474280943824734338407362264302523006815117918228025637692714740764915756487361493344919417079870674355219750510744343454501903362345828516892517615513936749229921304351457869895059900038783396082216560368155968080932655730306045794454267738109798929650570635193469261472660769926881157592343967662310367106827895511912436787807250075175888901442496821557384638631886636507549206623822108673826286872498842825623561260898721065782936622946219708892306180240780756279161764996398330612117361510766074343711259757934877281762759471594419841462792730919019000539841000291903120292983316990676950661454968498906538840394268800462880331391300952459058218299028263929108249056243699935147118478897019940363398070103208038984026497324090644548629619170168085438353678546544215305384400275183427486926217695139786364607074393464907139102492953860896498602638523363680102945769916669461800951859948325741275193330139060075392713473276975603799949679146870126333787002175934125294748739879262018267611568168811199577505668821386142656541656316302249775158069514706029821197251758841944620116006989478287333188460605318820593059894178482209801345518388485986260556995523536157483923798705198900656176979733547097332300270284400246630800001434050065592037563413725420191542467739490394914751915191350262782032218307863926585306322688528515529251452799896004417689592829986413632897563625615895627287239890981972644840127679499389972908209732944792700793193512048731621486807091248592917888254882947942736422462262479509473334726244283732278306925387194498265660725822667717847438964352900240142011314909158789118905542605063437623242380430519872763617607392191340874188877315176611576636335801325600714613174493257611995018610562106225562581112195033392990537035950097741085558953741723787547522760232677186003713065235598419084080315467678780888511706535354263297014936534279209412385303121131161561074788478184596111406238751561385080108084758596019498399034171137621463860474069342529970906849080607597756745253817862638353875469771718122154841883943386998692748867836530822789942107614699802527290871922775359470096534194467012833087175712778689216195368428674991299622692148840699508818675494575457787584623645126979382670139364982658864786235775252192897213514994891033736523293854404410199978266988199546222656184312490964187089101225811507511560442950659600325989902506662292690613845135241088447915067406381545643371236157335729622317709466565221446781661886374322677593061800277853700102532350619852645680048139062502569888440506778383448716739931141591057116509787299618439589727409947357185175085855743864086949110262371757348567852740873159491997080705434767864029475425643309897312550411117830657006618653825847480326873670332400320676805482953032459012610685948256295281591497392555268229028734553434451740123457737043655613312860567608050268863881987022734671087555599794281249259483062545023001313406578729313059652486713480444888247243555482193707359477281324067954432923898478228466170521433205155793432562753919462293266190789367884698045893221169609848427375303665932470930086886935351576856417323308174150265409982382285611091293269344154432821835194620032437202290064125482705108429721123191947239288928925231426990004064785327285677725706424462726422876311985192691626652560633316841052320708521348871251081083551156064903293614611804036518126887264184658434334213316951360954297968328013872185540668132827932907885944781686838442618974240801517746194761102106381094206945888332260022967793767000825722316741396457586906904295037844650584030789079088758181055719745546342823880931157715434567690173490114413498403020903783158255262329588005712515120582058316045188753842690867419671316769482006178249816662967567962624875295382486600035784906164076510883209840522246493186760346242145637252316171094508964132236916841228792776788565976748938122961249491690168898838699931000339277318861472780973463134052171393779640080797754883046164344642702176139605842990268996383637050547626920289458372185102094113853474197180281130819007854561899051506166545161853330470891994594729554424185057293969771611733700131625219222364614274727725504701684371162359495560961736143748923426962531964744538827637231790067975195564034388520252376451379300661441715373212852799308064081745538614231845735024306977035138764860014565648629279923484119096731407058211611285470073264032170967332998966286283719112061856442969521082605796465572882260150456486119542956514129750500327379613754021174547705822490154256244736852704362371030737837614428549691116361782202211156445838621403650827619539355561177927547347761643674528778084756664536899805293231730312436364722716734106729846375721007624569947005288445559410767588038000214170431566646224965352338406719655061050486103186551108549646900988809415814413588731850514000008447753058165948502328026685979941645230721342103290190322438489248484570012786638363596781827500457000051035631522746242107711381951664133482581424996211914821103289807523785291490277893083553774840677725211365970870407131352929161478357877954054653421938910533955334819243182423576787141572205350179818347832308123390148661415702576835237180979807661055680778356923331324783646381209622966099608232104220330900450262779231588470810079584271549862103261059839627668538124349702210143790079517817596845534199259772526111954992215658641597016173141887907732041191444445456354816688558757437867283768052771787442604671413928072143233823717645691083422089531201644020813122443038701372130737132298474044677245095287345096636329109567375834995918755033192307397163545026473595662726398483873692713494447668181119073108137839740905270255820631330295848657964309388207493220895821473025304586985333989137197590020359076599149106582598482769390603332354542772523565018577461853836007160755478011311042715525143112094646791640253511604676119940019241658454006009621732610895343373698574900928312658745877347503607038200358194841235665152076809558951856290710795674039720283453800454867920453745299640909600757505637757738298301427645787638584335499157708808656166977883597145342860387771956654397963534538704611700809320042779674751344131559365479277876182450299929909538938579865456040355331458123717970983867976135825166677378090246753534268632030237536187755162046237342838489986756234609491501411560140659217124186499357663168467000869733304877544155162334477838710362782022395863334656954793796993128852389586032816461760465967803898568991502866876516034708386974088564725147581336126059649743156961865668594843709780300772342565021502039949862440258169185688767975459882260634981380266633058373676701816012576513641934198781898854949079091576700535206599262567010244834542076999271168511630988440041251489988539961674361808950897187188337734785467109899065052063641245806297572636571236939635026142625228129109420886701742322556002502843745670094195004171110914112806595607774755039473415811356089462844528913719908233815612328071635107955933814899904801105876559462275141123793698412485224718563185520453390768890046836415904755131037508487743962373266106553518477128145815621744488198598863358635355519013373355029136776744132467984083664770026873018694130626112851024014394278094026050549470204406809472674192390738678846710821264231849398407578713082513188772648782920792468697990159085157565043724683656773280732951361093437061616742828418541799934853698883776293602860659827176924072303677975117280634718146895643015454929856403893683375478769153214835710289038788278372296728750980288691434676871256875050947299898368274285683419408294130505179475483990297480482174226113785207822203751852042439978893100433925280930584946261074195173536745156839179363937053983327040256973756453205205421582306117860680644192342257049730559064582586086768779675580933618975768419046353578496414575500742874257459179407983295168794908755934071273625481393650687408741985533670252149979348975401735556433199503830295893101114378085044030444409066377148572081285257363555882843285044830353951479070226969185196368976567825211088810394612489132622310811400080195235620918160456390780730048203402498570816023720606083173401417922898054612402802789744467921990808409179459285978509864121622546002433739044965103534228848502108351475547024077016493698141688817073887980851678925224139074462878683385120280331274925186095090655841034655172004165761152644896850810196110609052276957339262234622389546693808481037806720119912258476460485254309143674632752096408587699939058120035183334392524631501952447053861675085903962822931610242653413456164322040484830709592512800084372778766764016573192618419103633065904336584868232940855682245179827770565676986581412023095233878831224885343605208538621040973201308067020491675606634506451970787709211616816958017886143063659882374218693380382174325697700409474095366673357183425021338410277431420468166807948437629445642626358415094956698295916810271942792299869234156972552923624285369950239663408743978170860276434967748314973362977539031145547823104012438690694455138653836789267573692525731975201029565801106329738128414176126118191204946600243904435549606700974217719305102847503484862241719644286051863296738794290203926189066498287795330476397455719841282848188796850111253014164960174979382419467856975988657029811157237555470219986272948959985126335801397346689750766841741927111679748549880912511319185641032071107577723469483977835550317593143670655780932008871000433672643260055697889603878685897336645045781915483796164195385218658603276928021796913399248796248412045038914396703770908976646851629435515163949318459649409232092236151375539377412763411633632015580441111420448807296069992774475915197987417210023297542086735331107036039754220237825710976833513423915847482559326074591092352313684839035230265054936776320350376950712254543602329340878610478928224900344335473824787711844477703249565055259565768999620778781602704996675671135566157349399370507722788767018632434164334050812734489719915014709073789176686314073037168214018654811712013206111711183637457285023737134831636915230211678814359578255974408555640087595953982034793918864736109165805651092174310660326625585285284215718728340681084546806839240851197550023589020109371576623282184400442409348089984987142760663561461583734213046749990638421732141069258459922986609948289999795128486785161106284765150837938620861650913271351367293114436564465404830536869566653377482685679295345469472835974095497220444117437675717556658325619935804668846120450591206987300898292217405501310624201515340681090579914861102323755648807689728212896787979326615409426985186791100297120766281370499381108449350593096637214985632349903669087196318390172383637242937754677022367920442730341922557785136018422072599758160187882634308784819081910206706184429143340003196342637278144985583865686063917257621852136970077958647487173254549444270062743534338279951422561086511232449860855269224019089055363894614789385978223430778187667644084542611493155274575092978085392956089448513062426317416954007976105223418637342138555309848848548525375908564131482064936397967290296836614067451121688401223573223744585987533328844015695131116459259717407571116390583893098671832082717856887554696151923151560642821740040426107736277407747363650443989957754642931857542001656097698131750308715567429896607453264906643731944912792691102637471159803125330596031891248576992929738024226964045771753994416260711754544372520222272694541635778544307415624389529092293742236495453233866444318595289718450029341442478122045686802753370017438976723390453236210831199272673924451691026702154693209787230353307970930831085284638136221308641871332787742658398596963035658404742399687653637824140914469122054886384883006985305003257499153244756047779447167736561696855375480132730213921028567815426571031673190570254831909823156080038111891924071585591959703343126859825659929118262188490052482690763816086255268864967948654320963764779808398608260796878529353487592255734793492028336221542305949191382133361248194218476817010039032804631909491862561809542768817211419961831939557510819006521969169612755410221017115752486925974669290935366824878126676718284056635830830792782587987477862705496755324184027577366421850616746641768246874621764994006476453714764819452812743018502071987740461030742120992839115648723677295182071750098685920618484894003373794795758342246126935540422022375687983906606347395071282570929155233794626118168205039080339625732107784460430228652409086348886149354768782929099723263200478588515420152407046224536489658640904498112860026742178492939257683419154619937589334409230426561881097656489486718542601224712419419403251395445673147128227104535632852731859523688373926658549994986728364029125705759850720763106907881959361884935946979168042664388423032554425556721753559228341483720101496205355821037897804555611773744771217406410737304288909799040402225587417827971379207817869914503344603337988501523698852832279698112125878405928212431930146671287695612114755164259160264923686336692078842758002562526761298726370791157885710450129712376156140749746246862407312517456775181717054299417421741469698608342874826580227655333390754910795344575231458548989304885495077365521116260452417987408391438976240658305433872137826462017612911669749048719076706049634308142975522711439388035222884861082053685212581371169491270174675358995577366162830503368893203361458500849293225351123407190697195697552035344163608866793656332059350524053381101449906948560330451877179263457216479823112352384574250560480879030432241961449784339992803030351649020329693635623406379256067701320240557464027652440870923344411598341464248748754612156891891759729821245805181198183016564226616539029535295023207771284447833761184307175026827088290479768644235857725243697587333045037846121885627858926523115310335836714204590074984267174794166116346981356070531947499676832367625384631902509534789131592018229279389225937661513412261355661366159190780701508430320740415602065662875159254780597509420749575204155847091025494389586430892546708584705340034684682020806026104065812136558708498114633054694182537466888516529157243988442134968462934331860962087192019390392010366467043648058719417986604882700102014988308127506297998149558304034066646341120421632125764435951523721406386036767363221456554377898474492649361978322381350011107858790208810686056322727900885981046161172565163365689372170826367636426847979806917565355741638993125192951023904394021201327449352987744795425989526988821542796957763251327161676669313516907654219091704916352410458245394110164308725631468222483099586661845301777737816804804610334874357179585374208608639630124534903041528153289701377255187822258737806492047526746758071848034979988325791186913806168801719896834623959691853516968632179356763501431043594062069002141120624973961048931379035808158977054696458724114309280788072653240341163842270268446699345156218960724936908862760086197602084858961800418921104137722107810395460028128209917925406764250910894012933161257169176341269615503102528920533724794792883480195522989957134659984220256735754679177405529965750121912904240871413545783979990090916915220684974812498707734976196257109803044503211264373885339114984683749417076798058015301071335608202821991178178520746946099519213919037867878211458034606184927604164822848332634399168543143044552347592324156725482406796307436171735351581511393665187370262000197555166558174610392000964149929839302661024402046577142986135023111596202225606659589710647494065595482577807901495100733741182591704943802827862682893838473818037217319430172146965655997509696529223645782518451425854561062253836062833035467414373012945487139916174853811992828225710176600221308538804275413733849366443283722979964219875032045312370761775453573994917186172504606522899473100579171139825791390793058702046578977231159205802360369649973544996827367682311344260044449402812998948979045445272949063069884672330731634325128145677629375271524460427264450980604464291544150286003832714506357430002916268948834123830090561433011684639935203064489589352996951869443938290839698207196722472404132315629271558778055354021711506329468888593577264507985519962838170357916797521501236159705299500515610180678437455369830066973234730461733965778479797293295875434065496219472996297344418744760783240835037221601423314526756225303533466071653203684322004423802851498876820628804397311165020032661151863644359977093090344859793124516075041617979064794885413051578839412431365903219364687897964533289610675934944182948377834579479044594870230572541463019448721270790862777525666127541283812718400820360342027686463896009781277359279292091311963305071773098504146743313974560138111257039773022977786453110659963229358918564536302967362268904327378769389048432063662644166288252605584009160786810870498653311838696293011152405666468982593741253727174859403894023312246134444657023195329896915658566522867657370545781176983653671888541637683917675494534587057514219127363627244894955322935037613671657653628887501717103719678813546127664323256266378609126150571542187427948577150139392815690580990271840015349196734838917172963826867104333408216515251992596158015258618984502258186792273726057439770754192393093270909501459026811844958097160098530472740933065249974801949080034262654958223968915138498734108046026709036467843854449823766114221914101173830345788520083471568618080941694423629478524534666095459953851216780104498369777603157771153440578442776281535755493148699679906653687591921493975909550316376863139003895611273285193458750269236297935335816991365003939376074287317501741324074179077144980211108146788765393192305556776207767893154106680172349648228513884681788092900075634083530657567923811316303106369681967630813232011476483813571632407379365429718577127609232253536506681929144673243063898937148752074012537037905604600020635062541004752854294671934263069922764204166300234275767296215680258984411898581979926487807982109255669069045908167773250904108684296824225126970584789178852999976151186995560620676418199933635255646502391330644577861423624092088702180800080517238057449143167408710741439288382338737996925853084283374541017102065265726642517575910081109219829229750159849810745997531442281938580236127865262365123437636529453594163260196925564325894005884357936356900433706071536854384425175496713540133193750276647923559267902447969234199752474585098822922785885023290812755869821939610522652882204930428968432957251103242575899222558780736517752831093933307088543066848866057618956943919599449588883604599294698028641802251979864628679471175061153777841473236739992883023825840136139206668124916909164487778405587232455305283421265468079268402181150898112242780963567991400429643521727658781429357917314958643551687395889522889875528074340247398156471417544451775571494243779407951666835048488167091421333923842297559893711960288490827752054290840028743500341943245706564756310074605475829208169978385383366126119404930187617979534579907699771773765243694753196499646629737209152872832118241643897882042878545590657546527187932250191864243385147772554613099075124772659765128383643850041903550809906055997880402312711638701460330927817597996568120216813213297535719130159064946713021335871699068217050196593420082134888565912987752986512901329707216917389090267857561737181054475064829095394765369458385821511745362367672269553117857621021992513446915053672693361001260833157911038323102226413931753713413697930579687067793459541075796482922996745494813639833719731734501935448922526308653581685645429578164060638189826785895218857922192905997371314709435534978400333424361273128614087528148043720152080824671280693177630958836676006798405506412401124903278583258123375961823038055387026886282917612768546710006167613080654498785082829679541053410136442415432464624319469621227475397752001678069217878337662282961924423775755471080872628937981620336202806699108452381843454266868687236335116786805458274113968735002741971688555811589062928245688149326164767393871508292368601584497529604906851577556385223490649921302579107241982106553032688793370063467727073928870830358238412969087432469093912816725032130693531018096570522028559300943173783145556393317803381559213982352827462254648797094215550649751317497388324337590294858445584886114551565267419869900953778520767471773471550001208852298596329817660254083013847342433427918204527504051036536025711803804141590724939171604227506935904268553424220084110624578426551382712603903279032574485574084142644652093492612260684398326196888801714078324771998187082535655402160602917998905285750946461024750487033975369920793697806657137887171444321941323571150816129164602836635355449327412781803866376679945788562664036809121308186550898425790631798603162204936066706372922354482261731606689859016370746629599790734207869426814288715447885324102309303706450865602358439947294457036390568597356751843838805168107961396508575439835034784270566951909525033465040026061882429543034682820411379941563303091437991168066708743319524076749732710984560960317571634704826031875809000481066761311721813575202167799534892320128034259412142128287557079103401919903087218424300773009842509363780273865537164692402000607463621877805376002323228311724209814156420468737785378006633494941722543675840830916602709122342735183503345146296137482701728876654967176501635473634734833516648324567975654702041144982126523730828883719773179422389079460463221706993787810043780132459356847821979653995850535968523363795990355904380795788494229579444039661394515975413964545671275099867852335044798268841120904821899112209821770973595081190329181322024101840458626173888690160605814668959838573733345873270637141396602619788586683259765756986792160750592632988925416814494144573884698364642776990880140943572086210954154361114517908797917619835102394413102647483675407950916336633799884899217395948780203277175637062634413815044293963911671036678255964092727343440875947866404541568771206083406398504892890081694127213104996264402275972983240012985445542418108654504644101939758684028515504167647641302045889522122606016878942752110665304854321265816266098579004687441239884027187798647364496064428805284186317169326528006005902793386321785153115282177359329939870675318225991915463770774883857733107839479566938550645255073035665464881265710172154279730880789112580853631407658647076233908435262004217345932025314909822845573682691842311053337513149599668396903855967723546794299072584108351845754584540517488454046302303854141169507030145277588846828078088817573620648300241160424589509657936286481497104180900687447455803010553629599918991175559130520399882213043446753558870928706531109379869563463110896815777202885062144529007727738445960603822903992977803644638404897664385832681964970006833129545767954124701520560005083136128409945657007559879033132799060552709951769202128582926169244574482501656334063843164772375738443065456348412923674665662632914086834653657318760881295487672280150275614238149848675883254275748944883092904173203063560596156343458349941040044763268161544326035516281199675885667753711538723799566799152520036040179067861092753428806294656058233781526099032789139744823258970577300910722128031288783774905884473764701238503709915627686973157956121259693293480527983623502724801440390937030486735398962212022434156390764021592394877255372307080983389110366866714247419410420005450665251158669364732498615172664580509828260697026122203710043073911673679215840868878214479570237099647537987030285442239057621734589545014478071426536807914872175756510517709730961852001493209035528271448214245749907837799385768483789580642542094540076137056933730744657681666025658783155164185946022226723645975061329024093970353431870230806133573517122986864754010994519228380304094567739706099247461236298554622199614605742147269421869728768367299356863523717429349630792655817048766591621811463004202190172567779511270423144386420799686613791794340136408580511466694533096631588285234378249306823549852851667268623631105376631223928961106736144898190647673695032689934514105021292925492717587162327784009675503020961880156963012827734804970526590812378755112749056413400126766160378417379665733476668893916362619822235519871122609076404145323347377809704085915909820530041655688941152464904747055506759598880629835878680849936941020615355363157937573358356144818072726735700019056636156009125596588115018083298893622510522011487917563553611423370009707971934995386484585620507703625451988422687595634367622983698880305035963339966982576559294956655694331959566034818997582159162908007406900826806899336261691867725410757543745477584144585249845778769510431345219681663967844268904278560233878610681927645616722099685480957963729244605515271146969598552010432779841862932978307816545635508136740068861947459397940053830272956995827633352284379610481595540395784687012788641355940562963884859798624755050041341616154224272853997416852200967485603540774032462228899670058388702386246198335221134739048994246429272029060204898600388433660482452274581142353495449852565262594818143241041976355927005509939760807131734922430522005895912454529753735946575276560695192544007829524655408475259987597324254331373515311891083734330562391339344928224330134118665432291876664488096041848770741890394221113899125698364591310155245388847954577765840707896793604268948002374710742727329352245331608341957162925881735805351113984142061677028128983010821465031868728193025961387535327059223904854146109445762228255818269061755470064618089961595823731276922163939859657424287371940346509769078282412851895230218617897514238750187544560883505271645763985301763980694228979195649562416344791711788162580597944986402268389885962610612052127004400962903236995037474527118688997120163309603263924823180952622835410719101657902942257525942299349738570168643140345792773960607204586469833903768600619281963644788805956759957438743547406769945472563055065467064244128124464713320746890190517327314560741196097553456475974005299085494330897979623798495246714188190157663632808123085514912921384675428609608435521576031276698526170584461528778415348247304112522510237429927282518928442695926844108469969170507452140394766151694435914694502799837990191145384888000557712986116579604304427378941471757831302487974405325446697025359162806677917107315793136104936488327215608038448080509441459153375045106935206603850562791327367143008953303879344618542673295770038245882036167045011138845785319151631160807324580824216402043023502150541567076424458413767248490987460608414484235494195208650408315026942757142225131692776161767691987720088621058195325299464343327927080689726993130167949645237946507503084876634255204578311733553025338619741168458711203819357643252343031182275190553412207140425045172590198948668770681344332634642792090792223462849400841010584131243959659961619161016037080254081022334393392601176121123899919627799663517212273640545984752924781605918001482796161549488361488001987950792693901210641800913203114444581741655695931247621246039960081087233137157703510198477954778632013699587000896253405472851664401272441986266242983674465832862951270126075510490002085901310411470541897645814643287118814540327892505794515202816091536426576742041832693574790436892668366756959841116400471513354311015029391010134278012258192671850904054084403337399509110279302845796844331195208165330256100578037106133429823500716215649890979669564321643517170285218221750850115195160800704857692816031946752140671625333727172431380560145245443432659820394034437726538818123244588321385068572315905478204068646774820051711659416618354172454751117499307551752401205151960775345744526799577903553186276627933733419732378345386491258099780455623153432983092127498551591860801855720066515552630639839898052646679261477256032531838081407359261867982269971587503674631075158500419250922431041151093784574285762507723870684587010104421977001566365624028375771782475944913941303090038365648221131859970466722002180048863139089258821526100818887249034938215846519228645209755539557240339473527740289603968795459435124172808350487176669171791975169157261990540715982873544719517912715882621538161214057771978035706816240978893541522074380019507906847532912932373158796991900679688149897008971915409898945752671481738685136476750151624544956987398126718309993327490369774857154864630677783974336131829805361349180113912678379061517074457062644765976162369599816594662378957980455512421739214445609946319483058355433623239988074367836318921186124095451064511036649508788577081684556852798812268087186818162179135728400867013023759273448869144525889129428934094109241020548260146415957167642859192667275920706781468234531464657476128107754271755575254695350742724866644514326835869850798878628219485510974251875886828710685263726100351462538561989899501708853407039269133052523386863704669898358355018158411017467510472112080929823020108535030616517780933835250069978708599352410074764661462527990181932464173153632217871582950473017774901132721331365391209558490371591960631391801689129944914206427573756635298863143973481123257854355517118949997611639059118636469585604855411549992024814614383408810543992033669598001552597823633982344757066924106696150640362924931915860578234229353000489681599957408420450137363138780771056002097622913856281742936978496904088928699758061937821489855393706974552997765483970676536292872376748825608535883966512136833457396726982839769977895735938990818994800429767844945222266414700122869005262208007970957060824700261811024901184469524099333235148083792007661648547970075832761892565046943673755105258802311188021854947282579242924485916785458213004002157682080116002740014766671972576968062267005531379050817279977522118207944774867121694633826094863645070013501549238429214288529291835711329017823169733877303797106945932425933686670421561894104248476148020942863964500331296820205560439940880818893126097949885888049165823978882759911393070005183246754523067615752577066747962119264818138429634823679154743036777754648505656729933088868587024918189003194280345208623996708595745794234558005341074920396758603433684785150588841140653621979716816348078510237451928507990141439844104984417355204392553353169698710723629866679580915459124452241469196015609534119151020167781601838819348287360648194493090514209115986418357754976808508248580346473216551224731592231948297556542119215786625260871958992354188576470081061644007704131961920973057653201709500181936922438579466651646403455021904152733358075254155794737202624855707282279476797470709069214125371015167468732498828885752622280914035648983444143774550826266717807065790274905665830917802653811112746098647153564661685355455659262983929475876812176718991499551626504682114253162978103127196877394562826548924219365121053254106033303198185698896405432376442128972068989527648060391496074073454122334283614618670644217086750329057140242130669776745670448023366449569627916068440975531214356334943406134676055389911069909116981788810331746740322180333405814350427748286105867589348948669051351099582486736874644355251016683914472645362880607716171160619565780611668243014411613865535405676911358867190888202195061320052070735594275574982025617372657164265097955342975281455698812389568445435482866762459181307403523924888684221668177902154457618576276495550590046341706871375099735771302300028713967026492098417722701034182445873193386649750540378832081788663612403149891575428560860193740366128916118704006944459757733005193563378336256070639476667474564613524902787292904988708752274389363739139908429432870470789907877878093844379292476544601685173436935707931919997966145141306502386328957503962098255816339171097670123018480793245108930630928056328075447997617600314241634608707214093426754330549548987954825806074290151411044850607073085996219035099723814376384193074871419885524377381651339991478477521428558376317687580739508986599456383446737269419607800153060762128331314162436353553459631733358591748953930619544286467567636418724925941824437676308309580437309430190828819002418954032071557995184378954011083558164485089833691649980178922480801318076994054193932521229712955751061926574642155522592942897042681395783777582270516813890947785540736627055777725379701467685159797201495981525533378934367325006125967772122946139361539154794560708087746720598591075421241372360481353735130560675003492856602085592770931971453674831599430511559531366807374320714604565040043250485525903310392497685067444802513709622814068726511877643898027630324986708754050472111492812358374373768162935808443315723882517661280030843725954347459617922297139347000207439380926653636903740378286280903236860550089097512317425871446446347774365086407378231946803995634774712013718837518201225443265037207187220603225145698834410531148222127172233231980476553780366561158465014770148681002850751067395051635263195499561678352923458682388162305586529448683716260317451868661839593458273915823077458974776609497700795950162091035172440912141887796569445365561501566810550240830669738750383444058161462110605803650357266141086276925696211442823237884391969193560517347181469100270941608645980089346722519717268005881502244118065116346526629434539791992601185363354525184312244768790327096190685992740744995830221964433972641865790453121551000779227582308724481217846442840194422813788031415926826722294184776930094093352181567903327314702398174833012444716050028224077118154304763799732597774765304661330335269867015308461537468957091077245012823693762101100771451809351239366302333492299563120540547219588129123096870703902542354653632972250257542675645074797667948470365378709789485376248154583415474804638857376429619767564225328381012261316135686612562402761592399610364571435416406311816531484924061388930580665262883446659756198104066349468826102007295264619366725794253414860098325781720227049654199058826427918724166936079761269703586477514254925750576680344258479964641504803747626471517975574905673935260753883469397604277090502356749064411661748602642888368770599617532818704182292602286232542440752935512668593586348814788276420593305256505775239565090743788928610994893645248742035459987363606111750287098375404374399885036764263543311700668687189596055648779957470194993188726710212178500614435183687849407134586801555646623178286896073881850751167529174693086766764301826697657607895017297310514952828064549180697482662997797116035592593906207504390555827970849015442663609657433905131267595727626462035836235358820055557669328731554701527846184913848185092674267077341731952529980980220619789744892841567154948626662843378660683128473243157146226127015934241651010971293628305284371183841343336352114329621767909159876513892464546953626984033019023155481838923517486262382842346768242179742420807191835052386674913312540940074508874997691806368686775636843398157643656108405147873293887909928281029862516411562322950379878875023710005780630978790797379910941812894153513973123258148993500358724664635601026470781577436087274814095608778234100804229191847949366473234932245643702956102539591557642798516157252840580869595539050930609603828982835559450080230475198209929485203388301243339501456852743899284984479235137872871251233690330564679741052907307614746201243141555739702298749637439023641817420239259396262344340403652860090990061319450365346762531016350312327655856270917642174026848208622786284710890543476687303109704703579328196917965118666149728798049635715836336722193018966039220708798672577619950299085089363641988514011470829222302721807241278914267337935561070742992339464975359769030485733194447223076718958012073997120579142999346897163965120887612106513468368757308208388426225977725141159021919758585929097945006180958753604318656377901378185614490026016306027012150985178331668716453228156991550469657516282652464577510719106597164567233428731200215752290658804313904536972043397741045987898918337254693334785802877099430036628724249221013490923037361981144513298098048259936996227371531114137117913170115167775689426787673664372494175925182020104033180703647173504332432614346250017508559046937343521238436514913814157788651843429985596163320822331715342009631130220238118177798155879250945506345841125096596486266940445236817479952973120967224983819790387875860738304331451052200028851461990151566616517537744303244224541476050754078319659570067865284291670332913314242717034593421214510545655336540957474691235926561148894205083316332125140161124599988453801792388141940012165654111549103864891282004440670446838897593976718502394925294747376172886315780328897484831925030173268254095016894260063764305419330661248747578506555300943833144849359092050288015486589255651181599754092449122895781572507793403003389040901197828843110525098085700330632561127788914217735956899854159487920362268432811019746324642196616736066144881802956936023805921156043334178027284490819989830502327114996782156444930189879653232780590039875108329813491160240329290572951379596394888467625187811992007663120424660521814733698329970585072059222127864383033825375336965895360934887210587945886159362488800995282191110507293034587729652662518199568666814895081102847879630244408225238071749343407647856692936447613633670162676448594512728025095017665571022000234519868912754246707384973110074929633256825382046202511359783107151733224333986821699804009124639336119154813299028871789794553438268875849262749099675433555873912694288982781101778813733664817768761999165355488369546272637188023729670645157399183607245703800590807544432710700853549621363432709541552513972133712412045260356735906410051614687227270501671471402722237354412318657174958453776119414149533621556875560702861483975280934354927631011661703192425184922951795803261929103310492055360673087054445458699786709479128663301828207142939601371783386433988749378542367196609975303930641281509551658367068557571845177251224784303813198184871458045118967358722181297814800278845395294233969923274691637480808741362259934213607380007226285297367289685106595671051934835235306032140583770831268565799590955160883439659006905505995222152473208556463105536574697347609259940812173325958395558654079084306737354149851126734181656060252707895244258871089740274551380426770806179409582804143922268301134985095180667378408147445539451527015337149595139232657770528823511739468394539724849017906041579444853886274909335504053681023510550985894556439845018132018326039631001575674860539502484094361521145222912284808502400525906680908691918307289032268390680411469942530170190082446761553546312663964191876076128973725596186140870063776026985790648055811236041864220973063842181788490350004152720725928973908088287453455761843872068483117037810360122040378383294749766395489298890877584565595551055611887747210275081178935578431346969598860515874260817137643522426395850621504125679667011981007728133817049420896833792893278679751787842299857394023354653542455631355988910403158770307851790031039008722203565610410126844502756566979538550355161900811002170343250351053835375386196752133377150885244333531428546672089590081563083695556250785152937961425094877131062554969813186947058049563777644666546935288970321535978084423001903988723866961010014503731410567468677907477037148531369696984786733501308136504109434967543472387451916046216657857324996888011442200577059757475499747522789697638290444510246475758795395095002250361143749382483033314742604168768081568637529225645765714274586866755825279923868211157551354047774287582996899433612238327983297505089192116875128554888938164120135952837551445767159437920627687599887047944852779517711843067047993317206334880064716986887013226629903433500097102005327610636416653236412469509310479917214816876200822811367394282218122457755592597598758300752157234159360749312142029669022281794178124074068330399837967075639733218403859003687835042026845868424133567988353358000471872646928993202554570282547753409451896813722276097074576717904754046387701930928638428729160003735891992564914379300582089009525050251775977269960291395098897161810462535309002772934154717617334952462464702261007607171412979033802109853388695553364901499504359535018796900291992321726457663296890334932510183763631853751961781230477782775640962805536512930057700459016793465486580802881033907366933991745092007724325803803892644221915153191435759084222425282617710462528124738892434419106229919468549357694027892121499243097620774709861683926324394558240039774957297340064827137041737873593811246837594488542684113584429537089809732563041261478933930081237049355056711339290275150553407594525764284363185867162088942272315134518487751982929882316356142689919707725157338631777805017758620327397822188893865061221120583824889108228860602229572739020800833248294878364729238078953728376514353595984861931756733446304711418984219783476378750259609338918468289461790192324335219473955563762334331507715874953955497921713151879483302711265154079880028005812134611110703068125122260852093337500324095981203496129485062048422307770796158489385691825227435043800500542836869266780551505025806624611554378035896380109022834858929609040719050912999170914532243108211097748812617298417756634039537779833031231336338571119402053104172593247294811199104283790067913872298631003957478231533601169946348295518091891663069038894052591543298969368981239326724236379918333537420871552149652067676037439125225443334114458788660005353954637192573429802449972639275679583299497701436160643542169993603134131133455852291224271624108206192952162233820885256459750338495178192178413266308575170148549740361253212329324811977718099163120622906283262687089288946198630299058376212779030229782576267611888838159224171364244872699415865679610896241570077267776470992870859600284379661340407601477628346239816975873514548216948261871010861122496663393304005566616971218026033564947454616024102545640571035957755269766919087085576811286395887064530700144143111582090009084867548459802250891253829391279853828136676270850734110333563993417385201399171566321103376385935994657567645745185516686155322952512417012255635916045338358199203642303455376401315451744359774048882942131988929777435963268614336109977255623007811517815735793740228924941736665943998133989789132732799996602064853277551577554218492918036692493806610892058638014257829968249699299301225978606981612734918456052109206574459141021039069061945320868562094870004927579118319569495289391390290866513306286482273846779158606217542571608908310982000195530000794512155107517551271238258522295025688965778562890751642728703710441133662216804826712156991636416310334734717812804901435151768104551059319146733518489939817851382825432276839077925413869708519043659048691258064096991931411565560806559692753809497205832617510574654107217174040327693057407569866644607662188414490880361705000899296748504884763191607959402168987171234443382361452785604481219460334022970274726508437285304881553738081147360959934012321124602270510574745815047316423108298918583660741658469815957577886981476358015421417940725891295655829225687740530625137375589017400064898927882452315823323820156313915276105675906855595969894679269685755425259301769780691373630551083971973202741881611276255347548092673028352935077586593384471257419393609135193544232417257176761070735521496307929740235490779281864153081559952394140603155833615563930141944549275065873425778209973741808924302734277276327131512557106994353697865699026656544290085637998918069498498705667886072759059729200889043463491069925178316421617676989813558405458799406212822230879066004330060118426758883201861832253572417415000721016610976252699539452729822389132977411071081218477057792158544282842968769065132679632404599069711513597233853679769871307627072665577169904437382168903025378532960770708247350383258926323493964258927469501306878169530440391357826944954137237884326346720567265099508322827334924580441809105277289708923362046608389100519301207552514739154699436915311059975026687684647968983636908221304214403169118477311410623673576157969631827457817204041929501481162188073041271457978844462041001239044208242094954801738777670646788932438189923643806461438247732633622381350323542813975948538451076674111656459199099081708490586858947330236628814775251866019095156560112431070247782239734616736984271514021952468742205367139510434613987065456693542070182145444369325067112119938320490705685182944868651334262157308540912196945058081210649661999828323246232365893897282054356902574998506995929192349246009458505354035579367002229336519584257411979926677795138048171129530328232498387379599996317397280153200326808640292757979274300175160613750001202692358562347641231532032209908149287425247442627434535023829954915661132795645084057517381004975983240471711248277911121485187996908184082761891252691957044360464798418586632610262859377861307697065042294472731533214509829796277146783643110025441883887551158497058931531013490378744887567923243094013126880702522045972065604835444031586148795262254490103878319442172184674168609413466943602583717319897429706503882679080358666099402037687281444755591787139576839928022706135593533699925481629897380926912991561271093402087031549599304388053435721068083231707617961709030393093309204893418115201821964465047348846601375504029314683536553166155728979482873521469385814517178148304999502653435114692439166659830915471172271898480062428780537804763319941481471422455413567579214188305471541372124877252230953415434776168672464198467095457624856739680068418603588670315221831375043409230503694940259376515928762069804985266842633146839279335089862268568714161926470430190779455448391123936374681318988519414289745080242378196107306714756185005579580918990205805877680239670023814735605972036052100600537061677561729782187495721881556713395809836877551250956660170347429184661098790247840802147500414623660201092481058473534679513087507445952618548405530136471948483513371439745744631043937843440671018731938704969905318477746142595155109189275954971991290455454118761336847818485810306536343557459347501266387986441201108668090450098066173186386984384832653751303941469661361484921963414987032963357351506044981693379935114385476544624545168811213972899462455579401066088051546062490808613914734496860650228831725778957460661239662440931930630999178104650366475329741599160069523370920748834275227045380359690931408837566293086231634556314982706491391995169781540211481611415567129418310234667125008099794038926499891481895469631867953179659410243243213054199647057557207378026338552189499940039865964567873607743197324642389455944045243676224226441887081468992133771189032994769428779167724036167074805527813563422310403196843635776875861822719374313969352203153957906892962014322709263050597527237120818962763693617089190965024803320536507250426008598564241706186768916085428003708556606942406604394301900223257059557688711598589259575328104442367083873272114291725987723199778081989565130931042856599254000108473895857794246625783511975666255722495831350731063917141362885040601636204785916627735474976197514480677856403537412792267000954230980754959259768374508473173116110299749853625978582384982847522490456355031198633374681408024499700081158457286287558669372820287780322568292024560603622347578102141160508624206463093462728501224508102056710087051352800800786200714906406844673558035850743128668951415483081837180234330535200748791771640937714785259261301925023464688183239796192937598709637021803156257297107690950022269985601989453467652278278537441621048730601048399334940133945630693044970507068485611125096858722710247264259754263610684515434639883748658156302903690046347148244349608284981813160720747666082810912583385895482749021725803051289029110532631745569658640702299540637532931991626623656030643884533956352930239612873655412088022493183408655225182836003445892396568556111498176891369686669530163290952795802332267258932841077991330630573881695109469022571624346807100063478722739139899438067336476023593717109614388312006531487671560003833628212319067036534467406213505406329253735778629488994128573368489735670052103343313685575435204414622712727752779485379347472349460918593615332078799900412746060700066543873945449353253292330090623566496989645817114560122425379915104036841886298487153503595987467866313529857490952540365202412998825318660177028384273345295513720391562575986315369160561624376507808689273892056182970294089693231432972857462624329463784377666650270974324314489581122162281241360294401677191261465358112132790212762219259862039323350197306292940972114022833291573539556893495630030609417124376051966367928970993935756244913646174684974168590601495695382881114754756882264340853113643144876450435848160723243993440489631486293365990791937199626517563083469794715698301647330600595794304609570272710229752590382146549111452321615383973863729531516008518418983324598875105582111226734762014982739082364049297448245346590523324658720396575691185805070109487571010591784507914001679465937416270006837530477711058063342303346222391629364699498789278941110086780833886883135124717571450564909426580316823195024262840636724021650883862960055966345848455017554900752608852269644585610186269797872515981896316036991322452471921480391889191743874948851296865929949238048501619502767704417571419832717215288247757840127613544708258989982149721648657725694345957638417101532758240733133102091090512488602846703589234089516049374164314355217326387246122374792883500240806352553788997804682756550496891853461169488960158715221469751358786027491174316742045550653411849312522159922288528437767736409797484472079752612225664200705893443434031744832082611959381399504019834098262233109729592874244944388727487147267033256643467479880977940084149331671550520941175479508437239484739322618416765861652237982383961356454453414084591078453101630250741022118219739195971735199026774984098997885810364255484777941220592543978700637482133065694110180407855984991730212205834458102145239350060808700145615074899933071201350838995283879921023003185955677456692597444395953021656849261591937479236868112815502254587228052905318542046972638927217551867496069488708268605262056563839009386435860222809471205588996943946189305788642032597892371124411835073407156779297799112983862271074813504809533415373874091718358760270764818168623155937284530672434627262235606298197170551233047065564268653365555447085387445735917185529980488597509324651456207468801368584323064454758219905722097084397277004154752042528915655715391946626390894067239971848927774365266246352619764664713414270984116555565079179561193272364051151829832499705962180450137887013999867584841282411500330178814325631014716773930855317636879007490337838723846107435880930570813925189017658600211254303855803240605097432615246575808708759532532826919924196874930974409144974906181239221841311000811375815721422417539122970610328562695627717367985280705526638723441206567679691939854261158587886893512600427141230438327334959604208211162335960895945346900647223778282401481361125635370518208284579210133255282312136754407447491374356493591245980974708056262349855793612950916596066940252629458679579811941589758582737344416945158521978990198929439130028410838237563421520765705138815038453413648781765203704408481316349400347025420319412068791678185377456103457584012714228243842512608138545476558774067590959696151922320044531023738233165869073688629818177366131328802832521620139408457090550124820797506686338144619378089558968613711427067995914366148856823720849181237652957181909742758276009525690479040170674281111295227386624899771773028982652314591252057699009118138960845476878377486269223458114974752504241269746666204735009181673437907137418566973903084323426866135697745009459177893578638717888572135615043043231620484388675194470619454758700216200596630750136314125817969276430844328676971853928360268140436857455110022887810811113394212867417652256196898765291042936380305267581608636822102412093512885750338520599698997935259389256968649136308619093867589802812672110567353715085420339247179212544550390673126385747878604569281257749238984948149526832397908398372934403605777069007785560795861100265768054764266110376298346529524659951060024351952649117630571652301141773488735652314742023422413171730632971174940005635260925518373771890541374546798706919635905961759171815078455279045593074235742100140988284886584376742334565510096722446707386796286835635033307842302996477832868206728791290190724129442356382519473542309067660775104159731280608612688196154420495203823444163753925923692238055054563632068561828326966779965724336024150563711298176971775253056694575909528360083612358056227539497442069756676549466188781299042107520531742662249016259987152280073640166251334347203796266120019018102024447097639229501189998411486848251928859525064751117051514809756686271173903010778878768379423710033636664871555458355668306231542244895532562182058661960070571561917376686741420021272468928478446519196378383751084275421244633205250826631339331608891290389676103245584541256868971430903069520355355137518395389767179130166459613857697019820580890271616175281851757473252772121744041663114610600788778857135535842691002766817601200469561402609819446722184833802705440037410159320245439466292230407165249080824191702804055647148442673772874262111894629062331287194383170117974042429253816691576204117116665941691622939183790207136275529216020443179302103704956987831091444602371947867462671206553530615576537881855907279268195372333591645715133255370772955246010737426152675519748825111348166685561949824962923563127811782489932509641194625833161601222030750622910657645189163284969623338025213804598346998775620508687471222499294158704134771654231101098224074882211723247174279567232167804550628280411775333182868647459750707674777384786708776916807926655197762358042747110255510265206426282489025458518577304825741023878876787489449588974032838012675918288464747761978682786256738600976701629563610766876409497773531219456447150914900948552521478622164647696415269803900417715290047051552469569004324774324934273797552906185686524826348690556117776047241835411320434230413986696995754527728216893582737603400050704226641270390277832340677771878305435569692315569589221433462934021389699197298509420631349655177791191624232084038446495461120781200521289217380666677780714696820533748666694791362417975506923600610625686128143205628731587475897746352562533288075863511712328367540410045481483032237039542347466544614150856240136921342102931269584921081513267640121036765283476966128741506457098997157697566107362992142800905404417162949760622053109802909871025565219630173050381590833717018249691535953992191499192718373489560347676961503333970273299058386688331847104481341663784484957114854770779719103084620761165989055675669990686316259424393966610484127847829501962932788640756272181191238680967369869537215533775712992190364333005298145222650060920131514503026943482746081137469380108629211332724661904205932710438290857263386161224409058883237664304389909022853496322586889822360424544249577852980600139346554198076930911367510557227007549393209318570380401438718605027481665160771503560484254157452672596848744519162254064181877435826503425567803694300139874675658303128038828257026922504556748473774435601696830902925766785830684825797132953832365218387202814977377069947177359615466593094914838181498368359417144463578071361746310372008977925110882243160155112131782436008064704818434386238398573104847530635529326987209746173093374535773341819594511431173455654471899462992486219122869675798485703591086951924635037698434847474494531680785560240807030260347629487496124642343210676225026060540055802599115405525071718341024065375996335387829149742614444613101888187569276227421222517800704844397565445860240565862496008559129416600919970296712699817259672388216860988132127901662483388415065587645310401107857604299624108815304851390818327105839556078855543499627307286889867214271288365736358503899771759867314510839771807085875708203502604448997848230076643640860780109208468637764450018196455748594712269907492638804493568618553105851379687747522129960933722384568173449561626965674923760557375734355929116269649036308703853966382604678882547168308965201980526486406162222356033417771158509366423727057618428990055285645374200374741172217568545413150686318820491956082603668449316294501798388064470016391141051707030221135378823399212418240190805146436423065408115459934326882792713851922116553004401731718162913578118346494235291041567066719907068953075485749030596463396894525575751734509094975864708593333793805424015017364635585206167504167024010172807169925325088245810685261601250390303814806502304609795136284217465875304029977848168235170608828965121296548411264718443301026792836815918041503415593121138736392335191179610437780411449748035576576948637455344569347364408665036233450062083801576165512976478744685880104858097300732375102152429043533133548054699368388372010171700763156725809202087291162915959288734182448099034819459130548488469907900191668199435755673654369666546011101882061815105288366501332887446592293533562849395678482029200806070739594820418591820266621692559843135166032181251720090091468214883925724722361302378523215148115316916791445311465411121481319790990084809909049828927308776015732968215517228010522305422270699988868577593948269045835198976273894643074335595710379521189471205465561967216485036877198091408692590127454596247792520244556292404439033418698238283646541080626791087178433346860419005677348309104099555233875856558619636485320173454521063159009579925608775155236030705768526322668337335892190597006149303229772093748458746756753018608938022400491179785667494975952768563341746357623266716831440141851586770574395315743064244976384921112197525015853628749867284462918923762620318950528398518916188557440762019801054719099974913834419356234872520907623709265623266427200115946872047620143304800796877931481278714700829325289945374798808321847011405438404127735120167466680622794770055178482116432026288346186900212409389240853448197691785388805558154251054098558609411050704380504548063082762483108155488155381683653739323905507838471923217102657532943458367889015190980766725490942822702505763405727694497289496173569236161062223669235810980192830378274297038153500452710270175873351084196407627307685476445893501364644622966981332822943669192341386199166464922894033026382044528879083437368500296064016892177013133662596706129669482858707947844819390508521647907265825676401836465667826906023040815183727606165413124182321987742751828991675444808722420961718588775306946648619351823638543411329118102896783930056855129528347690790107712379583685617048667525333481739568407161529901512973850963403511431597554244369040043863339705256443074738794720405185028048597479244969589657555581840634576075592752554429063438299593748912711590809871490039402168361818376831065236537003943521937704776641462709999722026942968527021294173823577070073658685219296753016007125525208382155941673953120668508660157948315393488259254564574970993622210399031965421527442456664923593277513013079227681338467621068739712928241053560248740405966538889728014586393915642400954511923503890355116117212190831783207436901078249021799339571386896212348229921581954878619159717342704178636709957765032264165246457708048251318115801699302846337247425630862565484967643563003970347564474280944377354422836316173426983229888559603468325030740213144771922616270604073619450468922782052906559340527735695839755116767127056827394857337312314717961197386075508900012356430351398160231931076135040561212789348841463046812943783352606714840109135750364566182763865938585501246460702469503826603682482640057548748622203566892124462822140532879355722437000314649664414842881357701392912985800242074555681737200812419197413929333873085808854147250503935590196311475302605225631470249866432351380230982311725851856911340959241295384241740146031612198027631364782303446001398759525365481406533746054183553360426858793795288637639173995037898823566344140356303783760068838935428898257162665859099408154231852761918786223460685920713909966718441293949718028299098008944029146776061846397885182609249071995555227027335315130661327106612554245439063378493363403900333257744699007642752666883410914994995338819915218595796294234441582352645309758128465593708316834576665817469884598340493311794239814750833523786284617340193643376971651202525350485818814871610403677074570632448546430534093401071078103656458208152163393122578142674145030920039091387083491711639249345290249088335906575815768265047779572212861926137076377674055206816177812957709380649258232234871618629532331298140795709056628672260552669138482147223741973089343545959744303279407485806845188759759408401988508634311024143788316646331655981264258019320705702217478775105782614396129545979453347589797024007516979186069750100612228021791623730951897063469550423264659187504824372521213421086347177507990209345430207095242211687215547331880563943512967578059713155454901486533320298094513514428523498649180565747410086736493010056095968199735658255260881870955178390219613419737331692031575123940350572836452730986163456793785203617757472370466695819857282661836197395959608858721951990681382478628782413552438976073634497797363038584668284740297641373041679567896336096329162594008128457599521854177621960826006414183502729665353588042937091916139288793124825336472372486413779589134689170797997631660963298436385155676325051431604616999845002597384174400452461555730623599005867720228832082254843340513209409532077224385195552335013063468761484745198878848875048283522152860804595596781391475782663254365411900793412274397154869366306239249887082965834823112653304134226643029730616856871181661604157951360902402989535588691021564355936074296341926303371515756619716772721454338456567657575744848218564359996822237838734666949429923282157598249003724780709099481200066074505075160098348519283555321367168578266331497942922560805071760634253508310858688680219756152178481824338779219140632662834151570055435150295397242398117324865014732118964471941896356865555941487616875039059137982305513135969899045317155582489160181466430407255844521178742812936879849365701059374612906656937980649976001341787631984995952539586619047356202612745607079068386967045281719783744619121803301804939359302068318757146349157858671102879003588509535027672962414555247280463747600592815453480789150722117013937880704596752046556014870145130171508059270629646958576199999208070125279499155393197331320151389907887121028900674424604644047120236901156987045766504192151837491525082842265050823987233860754739156683787526482124355806897136180019883971960006974490466490058544342774236111828205760628125518429778682080282615951425461425345431779438755852582637202592727594637854261315606120512709527561701392581410984640378771594249775567943318135711483621228317555529345686232219361066146900342230998963888435105582117943358627684211370657428896426689369683219346564312685475855061846229793863133413303918407624648714257392841342776358433309052413499633500282121334033843631402233839506606832975273546093260177823897947967281271803170666237502715600429689296749543793905115010708222022452620403968025318117906126635497851300246610608107226606289879109689617821022776562540487908062158618323733060057260569034470850038535173932281361676830682874917098401102083117963261338576583338880230680262347721077247054919991055217450424309140268805750026401859134235375820320393774269586876708325908964951853971175894528679877381633978187590079549025041014418338674349880972972786711000856009778889286290014210275687687963619587560035032217465666223601140703624701988445718068175155392333028049096386712638685956139096479261453733231719725270017912946875040005490679260274901486368341987547110047859840227503144156819055759802498567821652707003697401832393165664259127244024357320895164866911973828289198055686023514905108285218810878511122776949867508098753068419756856850049813529081051281849937951483319275376467368924485928466269249334804946250421543212648884078789038132019355528678327898732484417509507776735563660102435999426726833087634921112002208265179606908452727864250811706508910196923843500231978233581426676250368709597681010175012033952696283189070528129157395798811724406029692798614799349796774834272374435334864315921055424573975430949574380663006131837523828666445454015685272838064389605152151165716134728322478564680941486657636956097217746757861196611510452377619730368680176066090179228290089206398361900588718401431643082768597586763169599856687407979137463263791197522498321070731764983836083092012868308533856647252108923126242730604985404447578876748850874433438914030669571943529795102903431389675708850483269384128430855535869395174432592500553626851782249171227024246104364341665140258978674257330227860184994016547914057977725527315965976968155629250233459397061739681451000409935139480062249375904922949880575332450266606019493589482855488439879629615659094163212371519134740004298921402692847478567577248392438016563062153883022212716717256714617044953990441239753795483736320042920169343536025796284580309235168320561069462176875710517318604144802996160536064149505688734429363250802898607334054352695868133775025337477869982364233164066835342122758405472976399767825675652724272303987241832874338681340144039467934211680515116998306790311467046867073461674505718574536362699336446058742083078033955408398396297850866852871899742229428015558191648297036941361156163176450081953546918888022824433503405858741122981713979657271189637754444049501884114458042880006349177702005540771944071455101327870773921948563663590613550522072626026127178804208154560968725122174201864901403740105970567702020748946548103880608960179369045071065605899015128108796394562893681815024654247327825830119775656778006355704120271173424347353719001702482202084314534900336654708878215026789426904056675693605297183930640310251281534086528069029965522131659375468711695366173192543920653637392462607407198547940999576795728187701558492742079992036963643593847943691818198455498343275185641850216578457314594009791524847208881881697180593373726297950030283551296137102365484787875830303449152011369788776578150038779966644536117624890054699161845380636239448920026456776041677895544496895573584735985009621978934366297827200547248182917152214453926372025576753377434289334899694737899152919545457196754254463770806909939947357838461897217313219112500111224192417276531647417923550617540620592795510949640904115227279445536953411751398180886264189846149195185896370975612830026344206018715348449471242153987938472306332133427857168329457829135096895709206883074169639869421933854787527721186993341234034313125855047047638829414127109735918119654372548696645634038654390489847089158667493496888639325188959401076040778566029168256049587213715760555732318875549870659471344682382960866822826577450802240366777109685724118267615350887927038756702740094857319835296457297467829785476898408081192569267353357932369874714303788568756220461720190673015302896453741741095200464497747129812399170963015359234395665889070966570158963753835008806987903132279611575718781417408782718580984664177613941374831915668918540019131817936547308746767291573917688568574981090796966003692200757825716229970875476213421851285916754025418069254207016659640931927193904454897669077835754982616453360163469365838504051274699467607163908694500148728053837569261625519196887788080070069106199839556625132221675425015306008611853420324904951154859118742777905195345138479666889705468424133856418053460995009232680477253701951706732299322564396033185896774053706209475633153881588968683744273478715864523658313914896739949820085111342040784587348252860244524836507127534788356852319434302309205511157427747965130575621506204207804603719545680716833773401418436264653780612301698954924141141465534161148855453047450459675458398034421521078000194175459744440402258608428176490303481735954204482350054361614224307102582531105024595685951813371640999955380553199738051824372032238997730843111674403761151981718391210434293755246649660160553792191953010148975128500528612692290050988245762858372663036920361765879402491525919134790437398595440146672667583255155488233310242754828461339560783253248522746188449613755283091223417134207377459142237474011177916289566086518175827555542297939529726919173508377490628053804456451061894665365232002400922607077346718585788780986039533302165495473595548249981056141469151485886148469961788751890782641900163430590298963050966305528801845738358258637608387233707823415305438465809417138734354794039715957373361709932599179376687733951941188768451172915077655796399797008795003528775543316468901375855767111612655471012760980109208166282501088121519911354829889842714571261296659117250092461917121055151636483362566882250155043854823081980019824144187727466240982107084007349695160165658781553958131283713455076780125376214001548581611722511867701464966156241005084295970537841107435970129274428634419029320409384907813761037086624785844035173572393307540233109494618415676564025580240332098770753481659457658788269961053613067642567757813163373016540683813150345020174598088840700518728936942747394487728045547925268957093676518275165085576673187166856296960073761946525875531330427330953633737476180002406656017739005140937408718922724285409222670073332540479946744421914940780044743337276703190969563852693177436675776555078217150113807259867331167786739486791451227189450472602197896104710210670476864767984059736726159480636361678758462496781370000444714038214096395819498971753711558370854804294961100217858940389078694226533405701303375750417581404728920472199472752635135254374820442065783736381753195998840779979635974967533552547253562690917220893743036944435612129485888518860500906243555870053987587688210540276206438083037872793953540693772823957788000441405292010222559181881351414035605346888499290881656314512293660291065616238461651074759507447363091299387505792986331846564963509053331916197071278692061427108485995360561583472486434088419117205311341002779302454358096007039624852029810071035578910191977176708766356096454939139882394200785609676474143243910444141461151845655767511830831189352519010186638711117773170108800663468993143096176418980787538708864673690977272846861814971931659558215288291413146876263681420314401547980192031264599605770733825929204592948855972978207383364636702678360093244738646812476550207183240191937831822721542356429023503038328932007389555904150262000178031089846879638525767809352502241131273544427823590971338333535944974700176098449540804838279910236292635560305819479944478738208061616488203307562590028646148966721001152048571047180495216930663443536832291952422063023728140898838859298874384983395444025080851255338519608232740111745561397128782083856786242202800844150998631997539679387072605659403338964505502395128905792302627964233009581070982452456693290802718229271413526469306468970700680628522636060687032679384521071796313711215025450457182910889040186367658277958115101190007878202769162631403524607659954407439659138375515926270378340552619634524150443521441675499574579420146281860299168903009460058972624293505433524800663271592792591135516955009428109531361151726052118498291154275378516793733015827638211177912643616078079999072450856717682200489846018032073155373894403328070427468239238615125257093202491779894524050602420955477519863718824932201303638507687784167203916228121915114548148046257471663839484556832212123637285704762238239516185486818115442444804686189050411223574564382641509254757260758152341240551614368978310836517481584895963675241836577454448405635980205959621190927949870431522938578763601952800454596093884401955163338128381505077354955103444602924078086384057963219782681356179035918372452729708634804965452086471092561611103613929183095394380610171013295342910638345711389353925213339278154603315655427451645643648924731388951588403063275825795638058261588007155766445670002093824089847507674507505884288365285890826344771191677973599776994484709139052129689308226951234915404396797494888649813215516974163214071609461487982220629195802105410951133192188099032176551785158254932338277992330684009797204801494106448896636890980088327699152399359923639597655286553899347017950315463200888130822283811590068344689405000543471686054410365751984507290471733905661518543660200505586958740704010755275459022152100098053357194966113834942671496296845020058273566000227817100848846855030140623954266182247422620581756637286134584215374474144003033410079678309342552890391570620827450598129148455416583444349048127482734413365401873439818153254928468061757619190874835001672825579611232707018649739555509258985357023955737449297848018263766557090325741436747325532232839513148653393635227781933541520483953989294435276478862723324712814728226362692119289587129458070516337258822515350340839847801362381149536858229404282277447341937858747900433107529383008867557772772702225229586002470833152737115245748565565161982765318133126409210518596531446890209146179956965805434896381657893607082123420470553620800805032671444057705312307118034455609648537029642013299851008083499374100899243279315365766902998363979867934241394913070730535643380467210146884480275150239235292191348204423063795613482717206299897770279834531299138799589286875735874449632955150328416332570190870100921084861939719088593205818054405098905232009095508730952821283040008727246934508387783319906882215750115179990897816525693646602201401510640645567496147398019030097143662878931749533638994545075280667517873558079187614065100541187321497411932028386171196663665409429311429111640824228475337610983724146611116336857445419330245507982630967060248388345370360625598276754515021865261108078447725640403103612433273912757333462132965554049216268228883300118681567610888877426901767596948106273690224148777400507909787109342079608180148223416098516215960246886938882589252410507824669756521324653757001562828431672163312893561212492431973736313235018944768093472642048152416838733376364360182274214162937239896644219615423008344312144253009725252894340036615721498005194374335706751526481569697948177478896811378206086424576393735671651708974222621098789381539798588290521454336546541132243528335213747266893293785887921131121690990350615089355456228217090017301166633247077939839162656821233628444940908800449320738354391373044995271492444950962009523961842289508176968125789995849587785085742542013620449868442225594236279770985753034658579075247992383154210515763205578241254234749100919437131649107176141718859986391162062407116485631404238735764945205604511538152694925331722241453740344785029649511494209794333771150312422229679565054250896192827771932762639989639904381771304304044655177593151915132296516491012596287801755986732094939916464098558118339813421974560476671428901168340203482218755221955012916718280056623643646595504847311079884089361421700504896275328254320676690184069250595518381975094751867863895546561910365563806180123358772558616808214557587175050402041761917703974427508255327433136913831841626180234400773139182439201769628103434440441547442843497749919984304183548026284357142455625720978671493135313644480614677103018406935250842305535729380249229245958761139756625793374282937357318432057547665506248158444556644960204138008223725670662726283318697865175217214297948454860425609663631996169428051886185985886481038943520545490514196395114343527481431597033678958079401611825179581959238679643927917107928000431853271735207628774680665757753751161745524606745017699316093387980178019011890085584894954426271956953316940453432837770851473815906161960024722116621569122197956875387950303133652055166766786433282359160507156024024260189861857536307564820539510215707927150559778500849431824918278204100346641763978619610274549226434924495648231333565796324612308411537133776851479033401882514401254552474728816242087938373913626370262925678752048119022382686145286838548179091054165073326897724472688098933830301164744081728821680649969469791108271163260812530012073507039283818507389126546719308937229327036821742468049519418012269301491889744815609656200746729458433724005041209523655183720223641787945851992675391863003502935087044536313597715270388434363564522369124204247208504211648525258256714901793025830037687024934643971476625355860999683251718037651137603525698383600112271101392635318757687071232997644274384411477974952411229582872960481009907228925065365361021135037365639755969613570388581099272804766027663162727307132490588410511314798122020062927495360332163764974459068766113598132103777778043527571127698092456145930615284522723834413400588271456199375599798161931533381054663241901116378678818333499668800985568940270792593311458422536371615440183082052613307101349624321832294923682185822197053755503792020544751032254265571782547203511245795619643514030586630105260912393580217361885183293924371169171443388900613154081050941052603353120579944675958880828235602783073287495022034005015113715006190378990355649216190519171028187046345006214745915919789848164376217018914821929583606854879889540919754860984104343607496730986204340495381843104749629128775316214358687078953336538432289655772987942232160474748621703471782625124174798707493581258913961975052200556960924463822020326305722450646725097477856535222474401448042692392986175784448766062362614419010605733756759253236659992989525215952249468480936239489500524134279493028999256038677993153540456241206265358720323238336372468184903649446198324342117149355647363918078113270754521264263685379649427452670774099486663524772599319396477256203049169320105597261870394655629969970384966379124526736658760150994262234085753874620057257700475744300875724156572739557443636093082139348899169212067029793461870024344395615225327099519365069994376677146605298315821820829260691139380620413312572164143578993639496861183606726139322720306499188145545933988533953566610762625695915604691465985522775435767653873798887121553177801869885502180144298319983097235965148637981359143573006054983210419680312471612000665320491873777345109668736985202846905856912028265827888491344741045018377319737450055483701806171863136092125361645842119654089814747314656945213087577063251122531654330503969561807769093533069228158186795205553648888647189551358513737953049520584288039746706601769586036416028897754501624240442434380517146472869576849119036517279914286733408280765109540616350297368499946315491089544569590487796521179695078489992458022033860691250496901628047797902091520476090711698973982289707238866292207093557664985946752929682200759127162319300224784248027562707446788213719920155166166911539963646484043293286121335785280207026533462758040627908899884817989094212405787003432680970551102537172162565017158478139097483111380017065692684616618754609038397329674393005386054784125771965665487953859994406731599368376435553082264431676606432514526850739502990464662713543260327005954750549602139356157608561143081259198352069338848418808264208688992084725436831954298458030002533497275264061495261324789914599414544119469134145758449609176857406115511018854859178346706602732993273979316420380967920738671674626791417791196957659864520018908326759932871595067518926221792563173136691616309346942389132736186021201118745454940968225297026713539969861383539702624496154034710993923165774252232763572023264971010362259690079832552567939937032282944074410517119970260055366903977183005839417849181019736577396413990284987055657929160292887026504810994188782577016460856112160652404298284580257057376351204157449466946384037792145550386913961478848058157391489050730097622767468796592373858383686186417648433801338421083454386996505239162051104275922723484609253532429067739183312476311255844257538179142040144944272949683033769978220895468282266181308059573140124996891829850632333790362371534976240329374388837829030734093518785033102361969231317059547252160061421430998775658582794853853281833564847867141778377602827818544295781389041463122574364075320675081831771128010345856764633113691241877430788316763956864179588999072594349238119600886769875397691972939354377398603592065763524973720174033146418620154068369599027770847692567737594893934831650997386148981769291527298916365188546132919746201737010183512901102370551959770456975451797465229542080046451391910893144175044411069411893437642279546692270568569869461690450092257612915891877146906357871507915298176592674222879991842035331192333493884524186021191957912730958695020648541870668110285058748551122430554018366958285968981441614052524072678406110236811343073621764629470366357659929275003164420593063246917903118259364888912018255405242731865405835518541134099636415877828907671782997778735373843122958142009598330143685641188840447658395845037243123679603685282859396128871110956769736369525356747878094137927711837768354319145067492464893380924602256510467720290760826644396199046382001597880405133886591622219354494380194440464388521327293400178509206054188298951423580985777231719537302778753615805411685112336166020962840463544285215773952156154260677262799596219622205221984095654728726399782658625551125420675312271350441781549833324848105660705872760144979837835110096414968314458675465561431376965029268579491899851136481316336196762824767828734482172311567103024688349735898727894554668863249898142300355074771196462242358924453279518248329418730118015578959518033805306542608830447498715639451021500719280121743537557631031217913993069870196198471877643963352047200565398976969156882226280676040385479563496158283357296840121006493140718320020410631959482190746946987143783217358500031747169441712661461692943421380563179893335180040824514008562731205560003357738293378200775329154564820438926919835688832878284012721670336974170365025536921356264996330974615490607266862992812993591472933763281632543577023418988381275109522490818500779214967282902584650955787567370532079362800411886747680282236304982888671625844350179529949073508701139501720388593283419353854817797774999477439678863617344445909633681375964301678558432902156224088519383883680228433779775023797437375872407076840930409904763840594670233596768760255613952210334158531132314482094776075780323847553517980172271171776542846497592287528161312402891571928521738628178976473093084160486098636587739398975689065240110365729569214151384585819169358238752561930795211745520672090915281229257283542014160141753701056871199987806301230010057546093270604233628901254480285919966808826025572949219166287869851047399628798834416061050594959298644689750238337630663865149125912248875697958626405830312642709640619417562238042438863514602973495318949203494128885965022952821619043366542498484270711740142074605695775686425365609499440529520368077275582628926570299936904711835243805946917193098365768953249123206609801623504771277081626835925976407849982416405088949349119650780306048264447846376830830835343150738181873628709553359853317602307595532761019363119134369584263090959562284485213250862227229728462016313004616497000121621982105772198470040720855027623495031697185819754659112909713757456386826048766876235115803490345485556518643877877984769138508069811559922990860252882928663599897549610767905727193887385073389930051808227472948295499043959734811067924472238484978039998861747165738042781994576453859979860198067676166769260330179940537448718606685722407829150333263420747611879291232670637972604465166458080438494241762526307001198449372084295070850670114793791176860023871737414014211687348525134062215753231947955295100416081046320185901140605057618663280609040475702462004718664755078099981841960536864700375542077766834834880197794383713872483199895399507006291701953347810521649249439139738570900484085650567430273612645181154281349112324884987621390421278579966868451779623463110213486336458638416199023970597791064346761504909149211356994889452182042375312545610381713207894020247641294888017191371639953939281036444884707803474870968618493841957358131839408643509894637126245433572751529204035536799705069204393119678638327554119100078129252986220347890152901782205088259573731104789158576855566860266037348841532558978776218178816789784039082092301610856794568978945098978180605986866267347948576470114296461638960268147101158746758582444295613638854270547736871963715091936556303174699388413948366792258133308822900380111353460977600667487900948342180709444452162786176212825584160469287707498974067302865797123139881803061804058635705805046586860526842022498700754830730667249358014876146019732943010479524283464227879840196316064128664335529408752691555482729832928362244158132888365162161538969643064470509855244518073929391849783033684989811481595520086653340513365416642463580719672974712442328318642083594055815155098759310108939607251666826646100625160742747915962756220260789935414905112606264260585768139272674672222691624778793582057596402998011308953908964236524998875664356623016297428623426389021114882241428401702384720114060171514019560824613442478543473909385173403503378947935621781746127395506515038001974029056451286205650774562560429844877016493549054309161902167436114490387624901895927515736098184155520583142574536054539077708355680065822541485856859587839907583971165199619510047385437410783854880005307454355575256470961098514506365629026212255722331673427092747371608522122683088391721417527357015484285731206501398698109593181350072769651063281014348932166288173702554672102528506435050132463900999017347620577134857046102297129195098849110642789587998134350546541923290520927974306005851402639412678642367818405592986903031068558962194261137908581781725542533442973609822378815923329720953560073223168208327976990115413679931500011537397384670398058441969729487945121917179290727506692344714599993251786283892229027740922820841616493679772689211124787260647439379914889758316031181180777227423491658597500577167349633817159006523225379967130420118222460628143614340131583500649209650724264967958783632838679410214895625639221678720226133713259407566436668683983200672578894690054597374699982253403957066047330403770612038726274957902747628878754633101279102892235810644684844081003550173858407502148777459297154369125664301973378140829984384872688021671657855267617933024569608355986705566546769306517873389561805886958228023542209262135920374108113218823529894286769463930091297568292871253713983013789072104014056468512347253870745515926572243621927677356987237799642675482362812711492288168639460118655871104246543251568965936913403223522960799521184133595706752654485842017685433049363733757073461284274219767629253229400115059619754593739385676801110824106762997533324515239247662298497801320979708426302010395889036151398707645702987396275006083535877461379317002954680409766341722742967150465123085702319109708258295945691201271750047890710673574610883589636499629447017688225660047326013369527114952052238837531728977314514497077076602887178385786250488816800147394773422974647221236271582832874658054561242796058906258365924837909869784913998145364133373395359697370381699599598592616633949553032083405168928946999432376998148226100145354151182216127744046716336582793103267123267671431986073421784425196516579602365584123182821455771335357267415089936592625300214771848131239776613463172304021586722429523663249400750705265930304832521905132564631713774688298475248124607991251573425965697611483545993075741265594355283002059673380821204504333983538627418353106128360959920682040238949795613198236325276989374229014251168074122582231874527251142963111476850821413895340193021039511596991983631134081537762734598867329504781911362105370673639553721201265111668089830760247038745136197421016249102642275066786374518562362364168663785796531093782326176469540358791176365617651761409708680760051132898838426429939844903949559394543613592690732096903233502935805426158933073083754357075894112185814374380406006899471502963699717695950285318995988115217827663256542381598517398870173996229133619710264914980187881372291628051673533697707767420551926456834675114437288622061791074987706246424911231278027132020472316277375145710049867254999990473712778834728886491891549069823992688826171141580700579619917368704907212235435519006927262270005571673676727883638678893659977138449198479226898550125337010100027742036820262052425104392907658743197760522685685356063482374640305263028237806089515316606407408649654358527224081241251325252636638903448409300333274365312085127291803292649515439550420944155077451098889765926671503696969073682623013514297540648626674532196110763188463986584428607301752243218627302727443553805896324773072173831215967093258162662255907741427183432748724975058278482309221026508987291740690758676772198057075144297024133395704260116674446744770692724725341267552532330539583408203233667216746469918335773748882432364823992075865964357021810133260256026801291441210185354996476068558755281613417975240161317885135381616567503285411353267926500401034516304122608440320402231699424718787689309383144068590682494743894953795500353330455424741707412237371458703685942894259666827222215133744897595858382635027407809219468826556470248510639935437621950231846100442366600784981984374742975236109551370673920576469466500159794071053321356046038579122528818127108746977498849858235348549066844437879529386721213762020474935372835061736282342711192134160709149225472467491709447600760236088384627351970699287919360500658179314787905214415717208947042884900389264798982003503987386402508498570103141223746604880467508834606619176916934090724984754144998135175401849172798472830694165096723438222863279099902899818566699411648770254377415270261667716362725647259755449786937572996576959791183473467248975695278593619449833616675305390946111618030555154703431768042842234823066849783810738640016896004835143091100476362345955955457342676281815163874738119168903548269229080843760069952578304154322177941111532631404955906517464954842295120054884999993455795500252188089699633295343039225799448231806802092353243244048623003786310608918707059445333151131190411742297218714492592891129504696770076307961747447449401099833434890599002359242737507659847951282875962885367480760655341013351775623464222567362411125121883555876205890326530512988343525304498220802725691549807815245082289134346032841010125235854523791500316538221772121396173931895849878425678791237551665296971120889864745895742411593381792284467998995929932287562878974698552187029704517486172347706758482250857898814324939045326321048245372931641792491336735767057921313916103271564312232947976632882589345332064799973095529621133950200436026371408922063747264850835249424811009998690876057416401203483707654384577075018350354983176235053785950118740792411216287920181449145626391279278859372218994551589792317987514845390681979962249768280800923664027882575639170537942574633847550078476864765917314812599681677856904623745223003196384154351062605832713914054512491221987835431812851726328997403357704767449318276951101658061803527699779056967938124217549323126263105025686826445050601768880545802637942325805100348120423489624184113050159134041020458216301830130962520096218562369450984018533129100525673083417531508453837869922913725099462419038144593741856780751330876089825392501807053943826927097532301952593736613418221769367623936413270312172073450401728458524099183707656384910372700786816971443455621998093217633869108331302831677206086799896120967078364600914446632307301155674730761927618659702548387504484332403870103803909027575956599954939959434011304336577694972414590409180024724425947955755486103861513687355523113990603660245874074699141385141774359583527434602523818478683394964816543403228730771868304843351044600237980546305411052117171908133959250989948264846528030361997785741279819728466133447087288171560185348596816836202721342890653576310723645276949679760279256282230624521002740442594083231845640366479011752524019399434102021235337499464791812765546263745744230870741739667301762421804708047704094163433730804157170203008083923404101307629892651871894090096270910416581387845478784796443728434877674292835100178607252691683441839907081291824885540944087365641369162360332878413533144558653953996834928194395400661824278628033322598205717918620043231026998643456236882368865989521805201136397601285635321741192709317592428045939826116260400948234750857205312763784313055309279722076738975219173219275919116491766154166530796419495442161743801996769751220915121684809303888789677460452194017026548502812523918281712405279117195372928509839786009528013644562090650183586435895632917619569805561166110160658241163168643189849657105961270206599100464941645195300090174670101639640774756618528720980693110611208928556400241636349039862036440340364926822270955618294667861288369432668466469721402125498323499841895230462658773113055619451103172077619637863195971543532896344221972132194755512651922724838324060609760734206486839695459279757356918002010603352363205577458993991393291156668114053461364166203943952869336725751052715564480305677459883184663762765094800728211463160298012247800532328981236324389730096713980787151573557661851811335894168028212039308716847403499506000989932024183884305844904959417853802294770970909407373665179273127947386539044632846037409540430791566335513304015636190664013606525536565079667582650242492556237553161986176121180177121776049696354747877336947576437006973538403934490411784945860367225491791576294294501496361750338385756972956456772324312197468210892199412511114318844054654158784335966608132111035912112756947325114641028347746429001164318520003385515881128674304869769366687945544404405969613954779100617886790039705783561905017592291605241559254426570331265329354338689333639311278232859440829418179632421371710085862555461373646014954680377853397027361473739876519933072153641898718648754388440169818191667424560759037037350745333650928840016440845281522418565730020245706608541618695638153333096882321573128826190241958761727772042365346943625393870025203075887901710776512731053761652795599606746646492051194578052659651401274665949545295494470707152359280037900426927404843409228118142750844499456753974253290411096834404318470940809299681403445393192358975640089213765983665730464107633568024821149767688194046384515119809582062288382443902939390356633611161498976152842635978509194033162861999802925224043884676616955992073721521255911761385509133107733813280587878478055062039625058874108327622592650365145560826217384916848921766195685150512662781803018656982907635392936671802459753853245623036104509696507636462887379039113218093770259830413736270181038306018835088149780026058412466427132273522244060250851415162706913716441412338024325814465591143482125957055087476211475781694525412121422619778694708636125008403446080899491596081264437320962830178357722662864361719982478854337306768983955634858971754394151567908051305385407093059707964338518611683668949376211757051067476548830056032625375903433979444518787552438203859692330886192245052990934516480580694508752292116540185077121265661386139211884240939294675003010147663905037384742768912568551906857546825237623279525185889733564727311225490623783880984682687642611763471386658904055248612055084952835372845991875814365590555301378011576823489329485745647565673371006580150541713890459782379611553857494867411645950829961785283510350128213878397834938118863674261560589998546366614183610131198451317473218831028720324898874072286354152550866740355758027804867039299992129759904749399710524558721317611281749635435229870224128886646295313755901772495859160677931181593762143457548325503433799235070469915295112737871780299802134870651836098598567580631741272026921763122702743586433322336785923343929441384795573219929045285904030384695907568278798518193616437419343716268394016996876624437450062171431818140192875771295945128822761342756923722126096763741467634142734015828730688984921986942009760647990060977750732771353931423706999349843727180805992325891593536817130332286129609061955173793382560785944588505990962875313041755803701076462641035693583337779401676357092999781664217016507816241713424294641458846100347399358212653512450379353414600710604298424117024105808521865204693697340757733326132183233764742956396041110285666217281628395539839229791726226362536086498061603238880194716761937516406621459149632390937762205802823730664486140102925451756062082714880772274558071452632781785098514076508998447153749272510478121813159321309710096864360699592649072564041900896217132725784858148396119326699151752732731958073370318202190505100949039570358141159752644587209096495331434189224420953143587242186921652965197306911905312499426507042388640591089564484432598705603682512309357906669327346389434805216956057463132461656132749992956150223091021885399351882905901541016460286472885235683093359241318920537602573299942062368918599200053318630080358840192856261094163421582316931374017269477277663474049118004506262077759813573115439424429610331556791042963206825452590331465656431139097154539111944231229765689372521655810927952754007501190232602491954946546326483899381293132674164742491573242214016469078488530505779622394796980746810521220760383634973511193148674278389475751692360419819535757777193469075681247114184035113060121439040699085057833920397247465400945098946322632570385701028326122055850587282020311606457362917713317573794741991258336872328710485928210095062376347347046646381419606899321417068969977803987361586610450558651999885826189376549461771953875226923550299417426461750496900059359268311987338105299282952266241565656156546656874055787224769209747659504445547838131093438888460680987860308045957516482485979909956959626067588323053890219168090646781054483441139478050266783261204764723756273921140541404679749886773581344760291122994411454127198456155609299477545384884717087877253197668544082632260995183454241668188823033728610263149810193867741166183162873970817032260859555305532699314735180830040649461799854238041412549656366702793528559879966082254771280753823656963495197049645463744388058862392755944985128056920279942035984623031253779719624670906232886278198972387601483148074217152297196156277454572006420885167075700846271588535918081650677923546755276085848899110614576154041363567473701655365903630940736002249764520415244725281530404175236342149074743173187808011796705557892310348207847113992771177832757162319363213936255898905271120383333292278362538224866725250175164268505390070575832643900088501052681740506523284364190825898388733648697416197614149879214495500737607205017687485793564839008452842284803352880304614294180983636246493340947833856095085125436572034163965612954571181575311799431488050164434361089117224103891368016781499800560507333227444579022225762887198981674362837605741173324238900568064142801643041180589808625672308492268531562430138368048039818658631350496097633695055696904081807364046111447646025004239876396833018586233446122461095867016136871563656182513136086788621556694582108221535672039580387817196283768587827356425769048910900169644491467368361515719943164756466425605512136980530009530846613112939257917097253183644043134264981593254093330368960163432360177552627631790879549059451633572991438768465873119689748313558147945632617523631585026242500885297785450824270984962803189627745160225610542092161920095883420005965137639208169361990857405278111493808897455389805999197103271206877919479147168533822404601309551695500497809165196204670275849861303179891363561190042068966555969182952468205806837627168110546232998889816841078433533491630286925839275784291903405848104895127426545970888831661503465558120361708782221622848366258772012149868069153053385494532749195798361845341421737890329427171295918691856112496365672787212886762452817393546991924149297998505664643102793954285715996373983625652379167525067875010470180541768119943361426697153705304775809102657244056582032566495304119484897431633752260610133321408446005492094702308863015544595889249649871252798833389579114738138955527654168000467107481355890928765232809998185451183910588351385745225096821124746658399316636891843451724469545092861437852020906027455915736136058922563749471856882100922497989474988176322634354202131707099979202917383273441572779038652577841393239769166055005378380084202679643483826869838979667140225268488288383763526952643744579417860916615553649875674608737311224257284217794731641220301962196919608215399532410270926428862077922792060456388790519308984870629990635530221196077302819014522337240656693942616582877951217557471513438679340538574328457205774723050423098738203619506507710978793363998996309222805795594264363455483924300474269637754722847350200713934681189423820823924707626157892039242353487739830826122987628181184491971145584719865398883585824049428725268854287704194390048853205066423307111889360807481625665683277164421814061522592548068043230385873785984546581872554557907856066596643623871073957649611648591962191530244650316381439147980152124701189988752552910349152726386886177055559888183045083444434017742772903091510359078036672595817644680211399216925776097540304237503887985235646145366220631394614728564408337688807385753216744785846400919396931857494063698609682759236602995278206756085346486681479081452002304779337373719248142736860962726784376286126195318423912715950598164777299771251782210966783874422200145272490426322944665892169900786423132052041651247270348916307375722468581062502391922092127550220705214372439997662144187213081770530592794317588264640418619682258905016914144948391905155674581303021465861440332285618256552833817837901962835884358133792030058222958665812467660974513616858890954336426505040379364042443114530776024053051259896358450757334281504252431589415904874127328508004155113379471988942363756207147925646632824850917698481852243181247141283385645020499740850632421417176886576907213815759580331424106661602510906507027916942461918847674550418609814434390642918073923929706908451080608139267963168277077405603906689550502284917097140188042046457793132711118228521340700317150737021399847426109550824882860890142511091572574139362086361028178975923610185261257598758757150252625341402144838905584270098376959830994833391127530453140129176557612284576093761336405142187214888787687324184364421952523450464614887206055304421412255825339395884357002249156289199873107912344088527319963385596837389796171907022372796413954849303185795612983345013533163619182695338256680061794559658081456287717615801035126467301675578117167990514324804794840119327586787940906958776599810655756968006833526713509467811496932805458925533992113887074276512639617316369095309502345480238327569301583636230189831046197658807892387155751095565424973453829361786657589247246932611200270761932356721634196579895235279718312402110676405384243419959722869772895421070937474710404961916711153541836544058545122890506425604753468281300052166082671207255022405384611667805172196729054634614864657075937781718123912994935501562257789595576331246882502280413363161309433948861293874086167501395421723140733682847572165027236242470410434053707866675783301540148615503483132955378276918353509139053254682541011439098083445308338004756066096267419399419794740970484933743508970329879805387428232376649331062843501029872177406051742150242557004950027151369162595928971034961591538067197273272912884190224059437548462416252041269952941861422622279382587108051859875201760826201861170638658596475338973049110203490244202777147118480791422565476277651862554492046417840318138263668954699158394198973623112398584953744286965796099942562582026484789962716301681459371661760315285872654894362485808789716649923155002020641229713562847575144590978269082447259578770156599661410383781106732005427077462265230055412808685392019770974968801627840021590625697781796858530879490586518581508814460520669608452916246300113346275413520407648254171261540829982184033310359762984541374038635992556203418880196047076327545048994140025065155955445883737712959448323298465434390181579964462895901068837790290684977878116064366462137751188770309187694374575716127553086815596843253374168754235931840951881083076853583455780235529981059442201898033960787744428372653114829039367199773913614566694199067508142696135070560652092885992269105143873018274457554597078333300193752201880897302234781727007916632666943196644848664123771652170672530088189965234058024412115722811998616379934333801932294187261951925759967125825385242162027252271339942851367312005312365078498891510712344480128179964495655320927529997498651271203604962722352090602222062849077909440984938877121212887098321048389399272004677052274974070492671897751240028592679338460122879781458406901830410255155761461900970704125914847865933222349757260511921665968835358493559471765723509797648593680316063091247078733260345314893661712134060757922304884303950001557262507392848337101884469167819900409454923266230389363449302536799712802352138982064237098432819243541183257086374170323314635443564073363711859688472030892719164878598610901115497782981832241513095325463593592437820298487755177777384861277445240652589722189681172720737977187065555241851985497658110341105909467630110539530556419555422820603956237524569434853535931039921394148090392967408553522728689052380079341885963923125789686645918600327067029343938786571264652432023132178694742280403259012166324515508435185369073270321211108975710584275110263961318780757460677802510172197141984747746720488737512608959149892129402898995882447340561783230779224290782913089583827865369510613572387457004673997087450239257710276597976159956940529256573526695299260239000594126330712108796486903539265588593277948325364428698196207626395544535619089449412931492249483539776313924489178242800959276848394549337029777209950692776540493221690962793803566913040616356432377913996467877722661928357252323832716183438108155564883777099135008450769345433221360337443605308738145761998050468269279286404481013762939465369584535271709535399685152250624250231351248207610435587757282271108593848102771184567307955015816390096371979750587061483816298587065679699783133870955894299324751680412772837072457876403103712660528893318808459071150545446762227983072299987338018190087928520403674570055509966312734905411326918953780802954954102302129743033207310970076897849134176096214327541024467204456857618698361379836737340384588237340842443512224181721924740560437867562810040157894307469116140586431548315535033726323729935135198103883504370589994241801178872080442621005046019106809619864238345918445554380989414274828491681477100650120583548452488435717078287735975139206778366085050381599010141536387143379217944136032927269622814410208280955391394774851698001005231756802288346912076842803458480176618395432408988129899961624137719841254328725999678898302095283106628498743446867268384395420315697316208534104112502003392169824178444331876457800213740874868779003953037896752887160625333335723625887910140048591737377912838626733478292155508139230948851996399672979498145562271658773371790709004281684236516853740774758407163326853914223746701446676771188837829801735881093884833409435662720501106228836559766914046048210809979041778926400884414639820692060743392383754621014210490973354060090537199786630167799093236347024498742160977409244944272310477877682661089462516450287003292048085938385044550426063611742813082918019544080094519398753002221188496197897956469732402057647385249710682096432631148717395488703532293579174376393373959727528202183808813950222548879036276224554328700673832573705668354526962663556265215118738425908114681529245652392192132418386940247937015443806433084972256632198656698729031498023974859459811886887544285178278606734633508378250886220484193029060869742811553538506671401497325756151807691941391585101727962047128867920811638376305927331027497179186422517766759947336753402015698875646099507419885644972488255042071499281569693776595241880637894691590562179986579079641952080192947534254489055925598014782806372402106191509206999721051191485004314824005125961934061407282748836614165477676154052618942969330786924208323192976269496566177660155636681986922673333987058193577421049430029616660758936605307837658455947024979346725027475932420664766444963128246575480650274598177036868994542763112829367030417054786847839862197897252134582999503734579598870459465316709480401770942588691391801466401956327552897549565426393712667218412583074247657629755896662712661061149617504879102762918574277889966486921618895702201063069144791789286889218731798105184894590806920852549922457321695612417982585455384609029902668392037555069942358761228434837946170686989684675492573824389886251271882401297290293129680143617643740425172087704791270175168463011557670447122972981574819111730462711467485850455457061214470742190962974905026953004833825839900700747857764936623818459827974766746645042432891933290412316682389800546253339997901187198192481994368673443954129077769436668984989162255188799117163037695149010176064249452682613475965542771007436464300781540285363934361561056236724900922767920298621931983030002674088831801195016605369677000293982411153898845735986913359872357314908618514613366377963592783088637298598130360240442897097049363089359880567865317564322760722596562118955067560184308157174552894561864862643467552481425917407626325783580083706369244486048963560344493803019072397661231386393551390330744792435959297417576501672555837061368268449130491672963633764598362859831455970397720210318028752140598106633064849938919908098479481675604512172631667306833847368536246795334800156425762564914129187590240184613214133404604214077088413516541371792137510166469584241284885668142538251955107142808611486835556733986516517707185270547476722552548810497276081236613891622656079170064121648774233012227740948987609081010566256852855186842733308778040680411123888944453148153037616110404209286423707069040940208001408335209555958451536860173711061704221556679366402430567394132905741719966032890847697852049269709173467323198420489255082736970496533367541429929009407866753437745444489974780216427501169553094461003425067780822629918259237370618382049643806997340984294023056377276953212790441603723812884085424285929159311729190569296386594215155822110322497806310737268091664817317352788618416073961882426498646004111110552177695801108269703713017907767602992869180467396227343811665379033165015451508466579598273950749283698660062704409779497858669049479087475725358912671266044566644069091849061194889896923140792869889888739390549474482186714986726344080026465556758323128951604192915921120898955798655366439039895135579004868144168363160899259069342828451521562070994043985931639482978177319479584467248560533570633361373027726355388921504057917375157753674885302072073448196166791018659828558791678033249125608118091444842128280237861024758117230217352548252243731015143829582733927273192192031139870480646432851248227996277477684968035095035707351214369644932725971080201016552343735130269273014189126681942448024462524768200739986463743873375500053448856600902982766923978609255354768091860164196429868672866903212146473517069694428422042286902109338318480600513139273352194215691215920903702047866888374750232597913802269652208782566589821628040629602221118421684334267425647857681018808217588012160753263997293641172950376756635575379901796781816746613289672319725584552404470838960580922313740411731030604363848313037543130005230192272829698138096880310220349329429747004504070054046909896608840762690692855339474701600324367773440522837329372090921258835237439359756341576021111543008235809275999484677599917633580554923386475507521904619687828381647731792861905286407491215606927472918251149015576130708256494223013663204124122494411443472520118117364850531454314752184563841333005459384839482222639164122424368971499466288522389341853524796731065734874410928982265538870633527503842141293611751662564617631613950552629002622158391681394753551304097113934296657105568249223195689536957858067763272503618686692958992593220984018659789598564880272020105465359381105111878454054160876301279897512961026967383283016429657690106517911136470677016569174371434380316129557918031646977396306060843509363378483922705056867305360262422834033302902699322596577001752094548137575701535676762101554769629724354281721236795507058335099319660019425864273987788234609380987713476166675436433067807986204591437132910769287327860890985779021239837269419222579112438721711669315199577450402866672578868940511108511169452457297603747413060322631401797943672680489267947426662298366003533433678343762655563937348692268252914217708618026424209674180730186193199852642900091718812952085353306441048624336674802833696199804560401150421149511840441505134431165572754849622999509614162535978283868126162881291727919441015670348041912341086923347696296656251401767760253877386878914225491865329968956278851827660833840432544202983116201058405088909254803130196464244818151465638663668499287593058830045472784009253367363179142571671711528193673939084716156044772169406373488795201041108697983188086678615478355716918685666715103130467997420313396631415748418471470454424223688951708571796548416491840074431006685093824630193348533324242552598410834043296485952364354316279351903552969035249845048105980416317526827596237994351984466659015798740840621627236064765931004379842877325573158969642401123435490792696168701183596027894141293902431765598782918776789421432229864891996022793593983532864227083083678899850748171076377469593814207848907691747849313476953515379411199895806976970043503943354299958561201640833757522049185562661829218483656682715506692023329426137863219766062973254919777475078140907523988629556599579484336063779048748658208063187681790951616790041936183751787542138746438035537002307858554994783268095603783463208593978613603482198419831756462809342017432379942768760371318319853726060097012793989821091004974462902247534807739656042211828634775028661932815891049628028722498881556739162770037112577242138163564746004344399255699422434953404736113864035382709990271472996840239096638523544219980948266418991971627085944838274987926100764200976042476972974024062410611688113353080609931923908901228184385165970094184032857356053969353841590397547835010570973464362718737905467478934920561401557897271041741739076873234403202852562509441792609728344731385300227030390223807806326296030468933188120275342999438579507485714604204158313466716884109943848367266209569294554847634113334480197589661053806538968799439621694484920623631562637685398017660060224358050525802628367657923996607721424792752723978635626620234993902714693421096022809332876390649526403595652818496488684969671376239568490425130620578359680581048220782599874832470620224249637596366497696948252415186615230647442432426105040499986152701232303369366362051621933017367190851733874618563740476310453335528269367988722793021275023498604370507955319981972050278229345704301658876585019870514580018627409553764577117668368319528684220072682038755685001479848822065742421895567442863153962971884127132772752405428510278853918346683620975423808046332813307517429115245430020879131013332064753774161344654086210601772554896898391311678765972477091052059454663318839451081133544434492664350616101400784637773342460293911422082088278823834521587773633852213860839140486552493523877440275357385060421563737337318791581902841393512975114073493373257720093032922602576461310611133764673675209296541815655139036797839068548487874207310093918497796713757036224795540461681223695086353198014253842024888592414191915739038542399966547448414963010847284659603590781062814799162958825415457441598770681217759341257218105483984963484829183361947354615593441681633128003061628772740492497441842980710988416762121619035690077551025528224037958936539232249364432659355704562463275160791700177066690967918500093337635535410392423116504706838687320220394461753326446075951411764090465301543004148913585043267848462862476866654198786764050314613421941492732003061194618145869783225391811609283649675608198245999689443161544071473008439475579819171923785407555439836158147044440936110572038261006905274374968769263326063177627263330643207258734156639850617399724526681138076584706250769864836509102553695832512778787044902709411129466654870032713588783255958486045453358472989801136197160989825202422460378597011101725360229775269756831989621634833965894776583854450973228521923680354034172742967088903808400652053065736655506068830211339879589071810311666087869006542379409387153418593708000724401911954387339087300291179118871701832565039830812784687340059725607112181707098516944851857437206729599813682487862274823270624321718325998177401189072789171042922295716668907651853371391802442078865103196320949200989885561151487330680787370996887633738397502839726964101107952391938085796290565401813820914579091497396424120084144238558904605878651686561302192121109104055628328610191931120096934776444882834781582486002428507106662148395816423191539631561635590806435818464456839896260490069390767070977977351101129035167772838472631633124248147178411925969480219277429559218276491309475645845973989180895951663103571937904442631560274706307108469981822057979494287698001662245116420781078472034684779107587603069009190231725152912431256550203612228912003226828696344517422166187355650329160387913008666356287619073592331291620056716320710156213588489104436247340332346908565593662140654188007637814517414533086548916881287430609114049566957930005216477906157925292755844074886557275136193778929919344208782030351799117533957996444895247030406262108996020102356392267125221563215532928089668246514722465202332619632850165782772401080947385017539906741163643004525996619516999613592446549323011101675629685356013821968781530293457185953807355473114403183089025798152704109708121736672622826379470668661737520824432652112405164545937704908303191333339549061570610574310394593339570295820819832401898083963629170220776868281781315446148830485259960222131316654137503968111314338660945357038330916215105131545408907143052000403440615375708046564157472338904091447105569670066580491633320302115774690225054907097435755479074531230723779473891437532457852770976059969481036946766496153604947157655133737595922385357336760751671152722250071304598847586265832498730072632289540154881079876309648901840532493621967517314524313511198621591888376297832327660870752027016565678712742338602999970854466456124912720931646766395560324291794433138547456021685322774669613584897571961374433861880000231996497249159489418053841730513440925002283189564972042721090307293690393355430130072477585271342342760625834085573328023476588186161582136202607670167033591717125179865418897789087200411912996208564638412552227117815808591001071614299219389735065136099452012156138665061978977209019043117667069595529068458940721698115019773238695678183045272605849326579572355059396722338668377738990922585543559479795209303923181945246690271041548516839788197669219093311740063574569559240307881326346040554806485775323172929639582360323362466585735339946406849078375840575377465753148483832151268251350191390438543329412179810318172230748114583500100700301877416998709986708879904601172694351940049812414589039861033957824923120038594470377676776522746460181339074079197361631897255417972435599469527102291767622015639588213855244360480270177316950011690487110046613385256668808906252576806285416900939878132080723130852551367046337012279098967372001868066436451698771197411774633652410287853080243486505276915856218592675906674566502203124037806882709832438997046891604718827016143188817580926269342195089887301513355130103832464892852839730975818924000983955200801927944378581778033085583854198598026409988731024198841196652336820336523178851944577601398668634376240773210617065563884104747492208612704955190192897508092393038268146096044942376612361079342356871973509213289619935774682593333419641147589651788363405890688982010106496565236660387513521171551481907413001859648304694716028711385050447984831472491509901426334216389340621387351185994682263437378852830176231403198855374597919857057287027922138850419343196292105839812689404673859962751926119209368264150071503277733072213398330359189584416446433856071681481915665961581404900225844335028438814595868366512763073631928960408786573522248475904349540906601241542535504937598393460287960696109670671368685664391949818796342651573615935953726949692660088933110272767735339902240951792307588517306050111582423042027301651875873759279474604330793817605909792441655290364196467777735651505004195641905292542384470775874023853614995298501352032547592942516937876861290783666263426377435936190080521103465854833212792323148032653744384036496130649773704623254112128952532716404957285766043187815182676351584337480854876744943454129163685728763354651028782246099769404355502073155886938886831829691550261731239074978447409648528676884892826160663671999015637222874611011570959938611509689316968384527087279868891840017532043717894526374372561422565081248038239031580881758259519669181145443273498400385574441576560437238190918746847561063609005798501064009478627911845738330013968525825819136576340233133894242926074953272057607905545830646356632274131392627631687203691336743762919467111759350660542588004299671715835270506217941623043425341365458569253571203990806442147421738340141663381884656799091860689985884479413042052781507350278658687048510207037885859913932372797118747225362537386495920960890147852946507075332156635622254062372663224098715390222616178716271269988775481333910931914206447056481531811927907433285874311115362347747635202319430634094697093423588126573019456121962759594602311704799002418150456271209677751026974424724884578570677408634097744481041774633888638166530994009840339534116324524493921297142236390754453837489107497090979927532712768882129707595296219241806855791068439948294299255239397805254791765519098102453817510828124780588952639503383744127674746148026017866611348556496850964714527115157324548837264555064232736498703023881345969415957331500777865862064347166050077089408405960023913949883948204265420533448679547344616424630989806860990705005373790288616039360768086006437742107266588414747409175675361571923954748348494080386523594493083970773546825405609395761137863549414682496839987596236725900652000610985926831900869997754415337928870394947089934968706018192596202607311072975883867479614736016893469773306233600149798916635133826409922623150449208035140347633046287623779060563668634979143559913697148331594278116128726353973898515517082401716809576358186186495829797832780501137955860768645164202216090220100070750772749951437284390313953499052944832323636185967118504124266540573184820985451315455145631932322405899743196129753093536386431410120285885326504470340947367934979111178357511759834994800811437456006318428313883692820348989705520889236905792471340940434558262814111476602353403303437183525014218228624199339726587138273279105117336467834960208859536902553428951832270449635969424399891272897296267379716745870395647108051328161435498198982269228289378680248927323368624568149138177682459914714804922343931745031678579811525975228462096817571501667907769860252229998005971832766122286562611290536354864628388023634709920068539342206622647301241879141239664104152970949433378973705084476525542782166665430601754561012635078533324672077420227914139675088242285486927190051805220631181671680949902607134563635262022114684642932798545767169590177422217956282102788366662388279132956099927424610001181771912000911517248030362036317062447207603791552674353819401494132123586707447219768552442331936496454142615113227056278080318607876546060590688411128891873511447217924805197810277936482932498063262232066918862973437220213888631181898781856531991355278557543236929986296379207364348809751294716653556009784501514714995339984450869892917502751450493931730068309792421887521845660465012494642520158411011872192944468079822999589761542130202411534833719545936126335085721610372772519199698384295458869544032573529559621554298740198123375396940069162111880911182497564281947259659455845188239583199604718379852783682345164453954682862038160779606626639612049428613926153875157909987796510266085632408135653954105651914345436303578925023117144039836906425699157747294570609060949953645395203312408568948323008885850848310586980818726299052056427529016206864089405625003252277732320395137579470311947580262687161330234912995159893465714541070751014348523794287764174860688856333189537870232904592791414878529418024523737295785914880296502424582975040996646105874486971979136791538023281622405588628169809041005845239760470487136092688536604065833371410667354794313865072234998080676599211214021914883326696541544229424902185007879568306971391851073965620150073137107064901075805206168748800959764884654625621611907764143039136611499454837585033908045807641873961637351122833111661500896204369050023777818710644592228304183850919009892417994136894240346177317039273988083130216068125460347190549905492950677462825219307015149463638601482993307780247254629393562003941880403146000077622222933929561798101549151509004329792021949015101270396200165158540070380323217809948433286846392942997308556777122163781225634407379387483154929069995580613210233195027113263251866041721186135186436794049680610071235303464045038830922127732937873710744169587703077633770127539406305569468481151537438422160917543004122730697211225876524344475479366885165904905793985839088041329300123018693154984899964454115536581113181159992872513653153078286160839866963155493759680712188071302231414395833676056325529895214182747244026017179440005544767627738620947174668640647833790605180337081403858369743700932876693191813311976693703898987846099658602779179900650676938816621267980021450082551745546232907589714073726100829383262965268528819218048717371318321754131337644176702274079100382273087191968200219128101163368493386239276667703836075563347053487561065365841922932307808487893796616886921031426380294573637856763282306856715071868025932368830956105908109424437930900284116035458214346761700416417390311886576326179692350409872275705165203263590003785182424318211639087682351505239730462776022588525562213465022255534127730987641208011211785274055419009292880064788309814045166038385574541860906951646720549805849024644191573425537314927857995046230860338126643224628678251894260972265244523446302887848969883695336357556717752182769806228356198674978184770913329681319958071596920666043246914672650202166843683159088783759700615263994918368838725038817920304294841613572433825813094703186054171744533479162715286608800172782737199256233394662317931457330941750247158778621561272304440346842059215106004526418128067092318391344363814313251053068974831004409279129222627080849559350830333529894796443198560540646879029172477474493848139178694627006246154383471342626484606149066898990580736516281012604525748346099476811388147924776978460708458619451188273133272645756320328484871957439243888875170788179871274652436252120388211830056806659936990866448809875917464653234445644081629756142878713655486036322683181943038908981316887100821378046948592356467371257251497149452790989004214388685457860876830042130971986228745961425501006354618416156165847685150077697014701159672999618173674531820409414349826280575627012747077332602501798949212215002874167532414196049863639320539400707293002913060901455268600196912215700327970781887654028488106539984579695020210115154699108804022815165000314747824085083506349241342683723218544524895766033320944788821992188648782294948008522206279324821283056993491180562406286545948907125947984281470370631613046948707328082977554089925751633840517783658883145529058364814922663982312432997912889056140691493083449490677709082942070848594816046987133373235847365217591966931013045585539932721340135542879172405035261806989744969664600246563868621942024075283611848199875248515558931086011135676471917672451128922078468446651444691307850336147113730391680159546255804214569607437709365650994609089647337603796554418823832158059280932100966147708808229222519943125296076743769586562792144672247564779526062806793590560875344392103561955146409392913341598285361193480104802285441795373872105185350933821176372133457514773199467617676855543169015323706270618463800482270114514891722825087292175924550012720098564086227246264535653969897417978230280499306999559217698574327624547990657509529364091689718959731753982355833009896924368926860596889262703443757069617057289607007757207359029210612981547559978294838345109952574401748312913963272198416671569678110899578358071741775741389107096816405803855731904260603694675795781170199084394317301580028631738355408741685204659705111921040128747832814503509469889225719866769652841884296490462401570612256737205604311202193965205115825207277453289014872333343106148313489197827454254672866285038129778076770328964783088227263876444420247033883856463671064179165771140125787202985532747791478353608651364740165571637138976450792537382780132653158230798625305106984384135883823815377427443551504347060943998283304426945715128258500651342015620931259637752851389587104436279876522665797636291506378523637407093766436396591702697450913162766849446877948246912621702668033440426160412132135671631177500201327912986208978292072147563915261048756313116510341021708516672926327391658177703472560996612444767457646737158031230862698428435157239519159507375933261646736664297809634089314951501190732981422666572052241872591671326912106349334126225346459030037051155357789377897356705006600956045598823475410081465701122322845875246716808170264614390243336797675918274669384084773506763042448823541832797426738765805054676523558822097426356225273461108545996976326295837586996253279597367326183949102970785025696128412715346678740922089107353936829060413475435595020655925135013622780160165464083798133887127397933659991256461271712597306117935105164969742836555074045180260163387028383962399598141887896217541231982072581715336961009834890348058895407747189627365384343797950172533142156879669735117684977504504469963236554622081651389186417174073832476527925386434478091729816479802522852835155019416080392754754621724034030784435369547099235032071639161691191599468039286680890801767615824036438383827038144063595863917545468537631035724208416268030402137367063375153788335393405674981188707699825653865292383190488155610540997294843203376132109097811158584474765910312249988263950389004898538745320142682445415322207690716596774785311127722470568778688887649671523761444542103783868444429440106253539492154550824012653117022112822025807125637586036060039101367045713807567376422706929420603655248380824569565930085090120805203438474772119215535060759400178519186131210096998386024368823076969751871292083556460808969616122313173420163166342944944621743487176603101431078285778355844912066279608717587685999895320204518476153803818255336768320598273788870605165298239656277893968766534247654428913507099378721791875027461884297275428723110820799691748316766092835114431394134923147654587814887097022018525216389237326030501575338628790033675909285862857854301320584364768650074718698669623785666638438769908942968680075348914904996044542552177718927729937650919501462748819085386868049312260656102589448992152394200676447956525194851334700258139683547598531381599697703418334106127505797203294078337496127262652629192112759553044926354311129800108132815012913868702345379690818113016494153819105678231608247357539579879367781590706247961179407394902707163356286254551802155099860300289738435017192040500145414556793325512472755751991683010981492885173650842753587983627386529447004012032691277682554495254743714794575545885428180062123868117880062780971990199474207150570500614819253046404153223462203250072526875222860696954242998983452840678162768659649895406112789477703108860101207864468673925842901130943862484515790253403403090367026160945216665329767899408471674422364871593208821247640804962293463487157050117197130326905443644620823556239652623293033551036606566568938171736442864681123276256940008137294427341274559687196411580736754289649459216635708478076685300405043269239482951191586106543449276507520058793113563046963838161423182599230166031516535624942029690729327924010859748186508051000837508838886145832907973803722445830135562414368722745071766858567417495289287272976788874692919091721821869521568443498652624149124667567884491334734596061627703038751615603955135054797260198924229393202930692023693144782595568243352405162470333003796297985283626098328993034228060368846601360681922549948824440664963598665950995605635830394360601290215603422989285868354590203470370911546155921107729625237616417739353761980477927974071911362673181618330712344018009923613993523097319541075555617999203639799484389254198497695947740367116084501321799733929146999096527794137004062936550724680115581769583485770118037596498313093402351712914756213245815620820996243038008622001142885418001167128656869615926407275435929222283345878476134099325336436035236546735714605650849827167342921148753408268161011063638067780331054528978308816822662480406623192940415162822707150556273736698707865206553334152670019928218926033914627544761861108222635869668116945782270071202326727043414878360715219424640294336612147344445235770597684785166038374179037025000380965839653992095664844737565491393846546779043366208360654519793659368989086083768456664650089659262785688528946420735615706186822387440095242942655476793379710577357172879840421902232394870318771141961464504337188320854720460444668260283674887994789037661706820780409100069869769483319313910920567949248850868755039878756857557119358863541692620013418757750398626322884675179657335259680923228357112572998933664249346199591738280835967134613393214702194947858358045141997386035528278111034218286799850928894423107474546937714722674174942216031463590241249091158421548774864027579991601118435688847314141348788922673015684550891823640158289149721229419275388122511208085948443561226501999480619259106607214459115695281849256290949238961387803747492988739406231594731884852635241859046903610702299606292706802425523831165119689668902618313638998600409690891229098935707063962601962594689133472625645399841408951234984012351860899768074914484472131649462235407891181050897320066716731576182473100907860218448623892847049669215871419957659374246195201912968044442697775443177808770725515188164625008956978543843066450524346525241138127710361168469489614979826013386078936450248008292930555453932718551464473770524752283093761087604070866446758186332886351176694369796628830785221901149632604728968648235335523569024011994931147454124781453713267792367763451437498009454539643904402165302073703417374101183943987966744217899590880702678731135944352861185183352264465688872167775976679572376248863280074674709294421863272213746196331901801237862276630626611983431590298996197056936507591567035980161898117173304715957086993143462745554252423621172160696427478623925370840267698779918139964678747251330946306018176134112665805221022802451066856116616386678846211816906934807585545161533426559033699536887345863098331018304275595942413100569337023609669136445283844566268155347262414056426391704357046937592460797658169845290359522304433443536867917773522277385253140829126527347232581170859773919943695923156337156143759777929896327183514630589798518202605100351682939226275550358985651769774683531061032851248890305340490754275756538293413368212041075578417074627657096615571816833431942654061207924571012567578072642763212710225033457886225431578225090562439776118216375999547166815792557629442805389107064999477243402390565492310598532717385883598127623604463806753311597782978889597478293553805484439263690992628740780798499174293760768754580814383690894065262936171059765625581629386068655635977558894792415106912544417705670637218706517638366634681761195451107907281812793316626208355706594516393735954579155305364401460362067341348591914950469587105672964923937277761120886126446828409297912030718905542469214669924579367662413826136357355850277380618112567661138962836417011950497418655493728817857602698101303707479217848841384357444813058566532417007828010019961995456232260179420312261738992057760737463570658829980618981111236673390384952618360901661318994932258898749009573254183812687998725847199541609380112222471719967170589174909690147957181266439225695185272401774023158109838197772072175440997630053190363776660007347674469740602799547967550320344661476891222100071421356194023463052597601302935513596199224101253054191696688526458900871657917402668880802924647150503027081691237864284573333503129455338207374246752966937305843518065565358377854102445215359528257894511011396198167403569991746702508414701289217424940467717424236683016485962756456699147037419436720857314554842986158072073074984232811353073288767796586638955513720652849047337543051487025661380288242311017199143870629914435532374723850827775551908110725986350481582264407079176927212752993069237242387373970364415745628585731548627300735113903575841282551587328278152442436022846880512895643598995394586514982371785176038459434919659646447838856389675240431995362338376719349979639733734136643145488411821673990395637881609516284117172393486426911954356772042985322162604938859773182073128019693833956476134932044790085963230944195939765355422614850692552504625273472192351316423595132286717588402694114751996081948955285616001510866638110831689176404088376203463565629029001701538118293865812414751108491958744378114874247218646280947709327018246641971807169731956334957932528515879218521328640310578776389406381861692689189748001898862824174910626954919317519470023451881597629241016527336337680646565054687210872966403628103443702242695648333826897239348811350093114615807323665687099304144804249652592332888198702396296114782674032809675675081440461198230977742771858540753633778166850147141909793548687719872953394003236845219544548888226513082683148525827707704817184630600701154257580133957852956372469551159872604905744674549224289511890727882960842466035798003249890961057609850972659886879212760253410313241748988297767786145251056911978999206016534717911725155890926815778835738818692651616658862259290289951328281984196977452142709001486147977446422158950177212181645579575864628186201387005179359276475419989138614158750364047753866055846911603874583597364186457287098860689570801645357055746523453092722104977163570414089006226344470115061376137045846008956684409633598842972149266984392450520227519230961984574725890693919151593318345642221504606328315557823459301029764856910204251653663101749023770832554872329869621966242505568356425675679957754275680085978031313379038912572538093077723123881594683321617169515041521039629178226407685982881823772183030522053931795118985580809155976741181525123510616834916065011522834606406049338559367346172980544051782418945882719484825884462474226391902028759739703068508991589568083802004191198424891060903038513403808069950906421908369864709487491850123903474124477594978772068224779185287390630933756475217492469109145526641752480964735624873742497984188365821203209742123929519598215688978501965046075454368796444020992220715095323427498107284628829970466973366116438943584792962511876516389613781543251345604827026757693801376313881706867371439437543046790998183607795455001065018661600892582771341923307673521912512815211986474213926573894920303867447090879199974500045609720945519543212431349232040129643709418012582409420865187896245763037133481713823554186419202909109328351301574081434899053712089610548055422674509737802813941676298638534184514972088966484787020185995402773101517084987178670086438069270646452328196520231207902200640154516445772203498779928615799355562283797023952530597226145109160859057703045138686405436415938572603932070394162733454009830766179728049051933303290932151782700814466652017764440909216837115038886316445345515553004017079980935631614149208259758600345886738935808956780037225123737602862814113979854218523444784392390901354792340799672907497117916473154787968008911184434843491882990124708417872850307857087970738921872601924857795365354758161689939913283218703043789852695824518088377431275998042851010166919992314990168424335377500885618980002234026074719212991091399066894051891617325027156349869861466633912347985487450139949146429483255196001697384254814402250088980332879367387803151658073909112590909795755256968907503237686211765460767260886814734189733863822911600825548451009936852156261635927996493267489779181526183474817122347453477730423361899645051810589041554084824491457439156055727481755743094598965390377810806941609570279368374084121271746935652847982361897352290429044343356940585242653819958399971806737828764727789103965632090379184578961240575993375454476409462719959974743470988181041814420552027210151124459820085061611150190378472728604598308702089127336892235173016655479050885493045720134225218160026047955087546022025125260973635934531571148653359249089848154810959678211535907333025496607013175633158460096685020008436757333937293401678411894827471555368864614059742524098822609823441053057478266541041237010829537272316445045708806805280234314157664598726102068263215582332505712968344997495147365061229523755734530838590391967391349740154643363963416442788527671347290453172115665112213598602188846841457036777892022289953316862092056302942350392718548871421962185086316322824216483166713910462135489655257109387504306795976735118770922184125723015938415349263261595395173313496264812961955939886423423491853626933443530925765115805459323473206734879909907995849494983631758983707114000766661232667641329298778330462556354715509242804268827186885182475446250433565132849375451647713313545679341192069118213631849108595404877233415759615298787251774845683490246922931490653760027601415610424799430927364754813581491583093698021100379015128103720551950754096187658906575100151369498849008506779458506148809960090504083038776730487608174326497479036239569833971737788346647422578584263962925198487284433913031058369860381632296444863551316347674990125103464709282578862110954448558963472743925184795291469118701751270416194057736436841422455395472995638851254482899578807473299304519239873448290702235648996713158597232046947579055089297157902100221450143864711452898596369087537995619601096673778244921562178568489286995732230037212332422938688737364845811937998237828558713458865302492513573348686288660563353832459560267455154379528050732311860826303007324110445532864986342281487050164551367186122297594947655713164572373182549606277076183050040933815677515151858318445135545379732672818497755059598641932343402608606396914808190010683249166422234517337229374635129464341492977147402824007079528805689493732833475959984816161768313648928792150161315263302245026934551630984515132809719204209487767945473821906217917386324691738983391958317993045690036035046530307609473503368952957090412427595209317191016176032345025168015728773578204680740398338434126804368282822771605141243557811840224954211658778473352608254572329387795646478889221796523369357257844424590830382726580897638704813681209920296124585764683838264787494697594453687354620108844345854486561025794174237691768161215001018097691495495607295790022917684960386422519920995242458292743133312986624138947969967361362982983017596024966007397746846264814760429702076557051623986485732888352498510239879684637039002636553180027546597499414739625019203457979205230951026345704105604724925712574201020727266020462725228667248243173830781747723229716586775921203199953166728925089329760414476490028135780002695509955898054767260136331625170936901304864784313052686844441707669673934654786262834560101817803208879902132705540727480406688409942844556850045091092851941500765307456892650758955618904151527929091218044922448764877714264300290758781822948220849878209961326462440088518832096130829934303215123674834723749409352862968213721787671238336721953912384370877848111587213218907839531212062102322338337470005645093114269244224642477846235106153013654647244097741279311226139519562611844725093804796421827218288823511673737698514443579502221532088091935051909154796580162097043928301998800599473953190729278912239601991547778553636271095837411451173999940837361456542748757135586689665085868430300392513590600616885098737778312416811186148718456925708730230712183964666094339053090627607322401309925549724876150577403410503817966584560191417324795335950574295360422348608675791638677262699859926283825493408097141128904272135812050866382390115916591294235226575578530960381216007533631600365109690795230757768597240754812013157066927707675277498577345795018348476766468046578685333387888181539982301109562246884719603789679844809835808950270041162738803988246003050915237103076051909367262628610226885070074302128025116553804045568946475174773206129249290162120870239409007781072011479259788051130290948925431307066546946645055603524242945041138082195309490739209899914415915223368500337601303707764046782516552263824208080626819784504497773807969182035508376674253336391661828848296213786030028404736031883358590229546522978847349707732467683190764044200692430901750034876162198833919051643125714675189989552023602190662180389864277376622603428343713089122974987036875570971814856972001669624912754876352799406485833364974940883875376745019314406681681278016528167893787165935968798249780882604985969657080306282736856168281046865131825474084854217882143511552753432874132892682774896578441822690256957680779630867297483704218676784874019858130097442214036813170782659880396391986786709124545564861019269938831553222419767854133140912830115479653372376110317525607290473580769531756127345058775886652465899234043194029078608352906012076231937782571763512619781489127139682894480193650259942217200332134500840141866910206289791701263729165186762973442973640785212356999594224835933933345116497593961195491972336520951483307451176981944288805292937461522945698223110050826197911853959663552626416735106867357340264280122144168034704421142148280147533059699801268191719895524466337599861129196970339021668626587886974597629432926326203927373655345768745522579302988103731650526873392733828198074286791178867153589389294343490960566676230823441452802593062038153098559472145480712688725915676748538501735849388463928232299836613404468114317607549881831478372218585748210633604915018759818352955854117210199832885885169284889328762770332620432795170244994877270958003889379483464916090902480483888467377717992779575258440310245957255065739002256773332263091779106340936411676153936263477622855652356923124910135110216054157338933734492188043228718295810400578834662312183739882869455903494940775721689679652633211608994145256296858617674608172836554580126280125582367918508278809031094342749087568171083481930825277536736460275727538492025780144898982010702402753226603054731465926871939092053999866581339724613924511526462363719282468221056796381373980122201981994928768940932504786279799000925714352599539171691329671271665751987362949505143577180676439539251970844720924545902618717733531862974387994379729323821382076828028605385013533959635173993410206735391554887415528237301804190522626415976861463004912952507690617767428034960028841279744075335202572328054819956461856712811126155952655263475072153908658484573494487409234645575414383979640365305465072299011918484128343602373544532542710774170667810070723730896330857193945235379163134497035819294263436725495861942348929321417342280513222517628965873620582441167053726114063415034729472995954690685990550824469328833644148154626545462759322651346414344704115675885819607139100052312721354811431175338116246429179378827424177964151400471849819879615756527176132307204374953357329333679839579162088381121832643140417822459509742412865980952295505427396344018546761183467109570562792344826814457926744701291653563295198824416597800420292073120519137644990536519697551384215094637420384359276909472792381089208227854215737765256068989624875309273074035681536926841651682023668462999393883079106535564666731453705622902865194045943146687998853279777342978877051009809400160220081406839160607791665952680569429893140431982355194447655892726188726157214122396005060158068220996834524190520645729851125858592199734882660232540939312718542126354748525348195591018802295552805132223266305338042796937604525953115634883345346482605815404659647163338364485153619115632345573750713258401412717612181748504733677170422220065628643921901354061324197234823565035362228284275580310046794952039726302708489861110566103405680873897172772754714246805693417897478248411231421484048899000121545273958555770931519677523144192049803244893865699534454272705986706730902504788938251526440097294294078033671952256700925498293781483392049313028544623594242562554479104645119435608265279608048227011646216454637226529614376452432687629903037616399689816033032095035056834680273186039385580215279697622572383273341380372613907715222801982508472797839026758237347618899399182150961801878853647204542731892344346316117414043476783100969346199774419733736123717527024371511116434679343724725405946150394630246898615516466674393532988714630188558837286592230641245705000595601200698019370324637567191618305363122313640815489246191540989036096633254352286979523840164013043511085516732901398298542862073079525073922122417989269262746848198711528193432877201051130951911417787347177100559563520511956495882751771560717914922478660987719223496394080452092382566674586167379977893305306798592182861829454660636468940109704504757866489933043234387754998989568611816368395432285522180174085195172671941017532880593735551807601598261167290009306352037481965419067038175845218135547480867210622223667847682722995805822215545633149800823751428063560723836610514501485103449695064401988423884815269069045556190209831288082434339022069118924723739748298699326850529843482680251107339064069362646672523666389940667670591474688358044537859362730951594111097495930390938992481888662303930082926976894347703439359889960442010711799421996918879035306515781618402814607454898525058828661493935143791569852220830221380448771112848800685049508263308841389078744072856897649102451245561258877676472815485610234573377299547796070350056272394681704532807758998927605870175346189077444044259309052445279664555033851298674976591206331946099153078966330484608544964031282386988623554902779383708996818947923633813942850353119569185451179572373254286167674414039883880103710299124442559637188621902977302546667527258342455138921086100796206385057691264160070595422486225616404678121853450760101838149422687761144010602667434119129659819676291740084550326694234566875950697143389456480387735587139068213402653826837664832493602645227674908268250900261413714425125364641909133963454385605277062450517439373204467631165074836326444205616925717607049801913854203426781617268882278433341589134084654451089977535664464886587991739786600171609413912229046212072984207795693049295412791165954983802391361596337091876401177461646062028649546790964258337539648346511283082013090579142634299002060364196275509746765460895666805438676697270858070867292751732601377080314014633220336303464443397798129285773945658344257905448998506389933465714118596392772322901648411458981688918707880025843891342110386907611687870404868805861156582843530319939302899539877871832980013031482118670774104283960512767467377452044403735852101461046493218433021637089117262412979028224596108908423547072005298926413201289950453860508763923482222983646921454761727482378905751571866695520675307199388358055095204998969242708500044385971721563840234142144245235675310311951174738691026200419009543569268065000632160485236112409853996337199614769915070578905143852836973204579345258826296032054063161462787102303801733639374897954129828675124025060910944558937492965618667867382493314526141121436895225892131444187424329195877668418691219200999951512927603610922856060166065923274014226021680899804759872260775679647302028965303250785944216971431083485478969467117042792977021241931457223605965694609148525048943060665133380693785371581927881099042327488700572336737172029130591875718416441694501339144223069970125817991740283777303247493531368378063261387121651680392694204898538891044898434131985021917958785439658857001813276488785971565732399787441284281374946751676792319349545998312567012358938905996909024398739724343616835113479749312905513015132640583595546472704526300844472710667192242710559525702394341607947446436121642541213728777842752040035594114379948587118017898762673304497111999213062836310571071839640135309764551138889239510725150569148543763679608887499447337878141515814326743732503608969367463545184010577352932329874899322876495387641089702788303528729614566175148474686098590261392166325378186849519518072113535894987036463521752353855008288098746931424907267933035890049823437514013278679623106720543986275535426026240782816724412077329700848780103830855757810616593443098440762719154001283776938239863070092397444465828185671239715304696797995018432502592043438080729343435749265280771549498782918464468093832713673604938251046165688111565975786378600961792090680714135182423324736303217672155458260955579964460486771390011812877671534889669350017999520948724324638645131345407898002064888575588071080427463220497283645852074466535226725848159546263873064087304027485679944572328908386731505474715628220972184622149353347356503484159302336975635819761627536424562145415922558847126217089888044821934833886050711392787444411060713089418238723439872396935704672711545049192317515654988114160762211328901954531774790127382759658284083918111688916264345122270540197185719763041482873814225600596277019818112619545209584426577684192634780811489884570926040535567188292460077862843751526668500526692467287776988280638554700726066977622946628351389529108686984425800846033069279013625477006813297751792602742031547088682855367661534974525155905226073306603368985731587752037843503326268765144424806878586275802176315565783324258766362862273243355509571336578544430997372205605974656514465327355946195363534943230353442477454013949441321230136264696044582581028518830159623571406704396817887914692896683292368865149060011589668672740812577029124933362316885673078531023728703418868662818098089783003173756760878895890712607258044939241178900339894640666576334130563950368379413558717912484931959808717384969181771349538447073594912725030950233298146618867700778911929599391909023982495351598875521368993573901319359317027309284289308585326293935859492746974669107896364990700995045578628402587664316113416118956632402676087566879792979804730173493605645871997347179424523082504544327806027914979395085625662266373627300165369411718618929896461787284974287106911430125984195161458782921413285240294199288206150012411185512429606334084342188223163998803799781244792063222528774174211190710864918924521156878038890655411652036982028233470310602580066044651257915398985061791173073490201879895880365116374463393407285479498979591550517668116565475756517633883516177588935394500476111648847037523387352134001924408001707551740149542277105299653047896800497294385668055769451886957997766038587341665755116097142443707100017448113192631698086945111052570759604524792716038891008464202003403072473107677310671483382071434282741790019868278489549518106197306625264823999446496032180615473997933727529211182561815680119378629873333292145959290445695740953166588674508470528058581097072957032267870069414561888184334055436295551656813842077834246737473857076578391589687557761163437447945945719418380699674978915585520159739273289461974140625547068740501258715755390301388857790518255408186329928804555455946748343027801296246675966872090446254465268019483535017455962897413511429888415888043433476562788905156362861301640665153658079244772130615192380485165306020991012075715058411040945183525174234341204302816571493248991484687411611968690166389700736389191901164470384130855356708638304011662875961388462996458411314483910007123420173322248315103673624098259934934321562056050673906477248079034620213270243826158319266041584180762682509873641561411652145757806938456081438785961488980601553551054920115610938965659215844249513151702804895045281620820954773021514652192621853358525512603186147964582880088827603029557078056063853892157665618509780993054879215855040466024454726202012578692472041313302978513767327312842280882889394397289797526637314759190916665409576154922584159117155397707450882532216812925713377882893785157251578172827585740955651355850770769039933600572089884667591338129195470135122270847447514025484650820686447763324454336782085072934967819748504525921144881136342387994163542614396465507769926821714207698048157340062084696977547764427606139687317678452173546347565031382109077107040364818543421085756326478040815129699247718519861091697605433425647022122376159906574551613354110872336369386498910951232344041359126332041095606097308423272573874239273781952095782486363836899010506895428475569216000701417097230506966815285377587331746579981243782126045839733685019404614999080398562204135322401737694168273875397440981611481185971971463115417736021446462645335435983717245914806537878150135301455758133053457792872916640258708816747142344321001802258785907485602708706386674005935219767969907315632452013174054964922651229992136138342658358304040041904782788966000856342674160318510295679456531840154580437703078161890098134806297024812629836207158276511000699126303135602159701173618581703181690312584830185668137407630744449041735936418855228599254830757382552541589174727579446005033508861813962467031933689828554862612122453193143091281360779555809461799212587339908751204897212500824440253847994852990331701377680324029750407638124930552630245939126836360111258921957399081768366633577819103571291388018753794508814511201430660596760911439012995380898798736351705788392419528547901040461298142709066930724907338763450638965967602746128163767300890666920861428793859786919938475836366124113413855952374027311324271257459585563609454641319984720164737647033183746734931790883838288311838176787007621647100503371119126389543463398710714216384550592449553584053773946053495194585701931814889943136144327828291398608569579654779167626814379969798929719431197062344672063987076495245787141674736835339576030593318759177563344469649139768044229846396169532332607184434148247842516944308435015510309377015933251135453015036994857529708626720511207257470114748455279660168094244285888960201520165663726604464624206927961693600217985638726802250913542885392536567379720244762332117447391347535600558595084123356553107785422307099501894799914616457143673833484376456937207624821633426131445650630507341635216819309358210186537425574866337108779459307429271037577355016962840454670879908547550281367354751424944382530510145288876529317074241713996854952956660747544364662275117328072573926092993192128492263825237458462429111136668757290465827201037161972320164831978021521640236828780869878776323959412266421538246470776928688905876191103236561289051622037390405629998503589280592185351092742726100757217957877194380786576721695176743971870018627145837252662899122770676567275373408144625402905493482021471771654589756107125176933639607006472880196887401651591454675211833222107437499224204652581027830268397148265409941841008162425812966674740979651376307149441576813024648637642689873185859208926303532377920735143291493783514598805343596346220899632340826026265057509707753286749661186929469797320460491321463540029199851128589073152273400075563957629076695992808758997776719687404412713595140044923229162473523497656424707640149394031416698804810917026650022299288455764619265576027008677884616162531482112069136448474064988567808949771147718398588457435565193785415376020957223841716874161150639843485337748712991411357496947445343116809107412798168767624290041111388817057378993362683670068042174655325554728694899154536476999250313213674769499296645979386980027296706349806420220043119151549113090559415427131000998910105133679682956200335958742632716228203923119117269079977320963656097903963342777636908176027513649503779688609250334328775930937539619966768823392029081598906839661237205145487177077934210287132275192940023211838224346241755385549552533427099166228233973431062277166236734481770182811789977683370656139187025202841090232773616790981517445858880777216610719348030162017700990691548092736449624401556035535793727718848842941629295904326666175068051737579241100433567437866941525181012721854130432017716207735688154540145561134217714332156508911630963111394895563378640166494304338954393159504531162323992030805088974258155946120742899663821806703177732084782301761045552512558999073014425967398877180740721093728380350051144345416035589878826127045508923684926490127692989338829031982416236899264145557031400163620378993202330720706086990054953891363959187546695489923746369018953557866842493563245141150580092442063578172247370221217102655959371578109346621946276069273283592746287664123230499025500537827408601707942900986040065821322075527252449331096136232624769171447509378041881266442623099308577759616605647873165656999670546939019493921541168106920121460360871509858236533592790045321886502224513000094336055741483504474769690296001683043586856165299574135721297320428477322997133724800688733080216953184257695738804997018536945314501524400934124901226208152440112361531130699038803092918734710445635038909710743117415726974355726246494896440328168291946272758392194892168026369933052086576528668344194702956079268095461204593751753370842485432294197868528433739990596732259753615758923185716059574782345091020198710397919530814850238177429084087213504674462508438619081704442740639064121544320564797801427126843678271630878673559070919208506228074794779798414608323629636703634000981033159276707081788255384455173394470768116880380486616399402159851300738172559985794753651455120491157704639375172124112797969542088433429472017973495703714471659163738110972892805627297578902559068146670045620677161228334808969683170068770570671456335311436011475965784113143500079934004120416348468357038055023541047156527530284542391017526097913471947281053042778534734582949230549611448044948206794877437004350308759324104246828690821322999377820399935332348310062623591647555742723373761552881960158398647930860954937329967562190524946699547814600998727779722267451885247283958787144762882741366676656092345470272242665029931999252942862140855998577390338595462521429549504671450828196213263373758646485680804195828302408662190810496364791798758442404477799710783345064385399975593592725299792295037213537692762232629184365997415673114928030733905019015211788457721408093752627309814321743168289402059139745770415127906514218322177173788604496324586300829849325993647106704209206723915443443294494658854801158533745825624712394709570126470206295396106826796352845063748411330907296317858482911707170300884864772248179225854770803096448061115868154535890029115499211144519364954818159612881567183712316294699374389629127426759382372285448371368352022174187664165206079530379075256114585676726424143212330697394340342409806936272025229149063131618962893438496519247142026244593417690937897206097975841492791803723161569574318973876059170851564754112827766110872664506767985048569467426839581073123336769149411576085459884893776669011401907421097843823763912837828015520968882995192325551234201454244129773748349350006288519141293837612907031888092272316373132946195685913922143723452815275804864946189327384515817309731944575106597823323222528960325975458795884719959298520458743946250003637541078102370737975947574709252224345880801642145459035574398399279776307896993346935744085895095707051102670297940488489054056075341236355101097227668322485033064875626806866237801027306454547448413057506495085913154932359762633685621790633104721169580189254593639482480922014417996951113470347156525490437657194704852985742279935373318720874334135798143522570187615038589885807112327248162660969394412363019393537341978359507706043019153042270380612618164228803633583654343894756975259345086050144807014568735332757497297917192077730786396247239092092218778672811499537567130061597199517176219840877529148703325050936352150613096800122752365411841073102271014034384373345123350273414021623150947307203444793592625384963314291317255167940176600624187218909108449695696482628062674993971475459716805649332472755491238087354458250220142326116390159056305302028241713284565024976905554117662346132963635216969998010172783686762903862719491997296443543709341812815516295001849693949350465727404251657259334993997200992221545821777162002102404763365188620397390124785010274564311913566667628058520411004075671438241435533858764619700751052646337101261923646629789488858979496486511049370273877190921381862115555732900426068427603707515278755308753227550784375518509012082826009627415511061054674852958321677871286331894264944011510803872724543938703570870262849401202547906695979944228729068497916360319411041792069059615873376316013116655707431305755448396637264241682368051934106020345706239556656809630078736527410861252966276812526495990084437631788294830079175119585481106415078613694395525538239524665894036087832524695413150356439230201824986636986504362635919650614023465627179691461513515723623132584154276962822168326817082623223823869861638735448491862148338953444157756649254143391798514238504008796578143242242801605888361418706945997446350577346094866055253190270042657680382709461648693152296272607315355077940331942277107542676613137826639069694315230118514765362342016108687393104342584943231140671772566903640973634408390504630063199979497087080143583420804194904819794382229376459309815188090038869072814291153170024295112963540503629237005453500391016755597473269592097021669571129091700303757951075366034039470647709744736463118730619238002264848099548032424722437066508252124278432449693157132705213599988953953450158860951120075997989610487550672915415717852322863492585592440034303155496094386126018801949392844509358626131138451672964282443408449134274675754745061197587370322742740012917808931937717164894942008084227170965489236503352369240732333685648014369957760838841820299382451989989692815498193221148759856731961608561137966323033639264102575427293478297356787900895335876004592818588404551253860506084288219799665164663477578093629914407627128494290623969770159263692213036811678880182447344160421900382481418997206351340488396812529851656113308880621842025998726487992989506592300560078748820499989754627073262602710804143405536499050783114652758826277881162990754733900954115950719712862664330871580903939943231509500790864759175537204640384472660643246241311778164194926996064667507704853511709848792025506254021481880883117595918717074325535854416210196572959854904487720999484019738068329935528635650906468559496452224194803135631531464902991956564794451337695903765044896316545396840044457704041964373905526621504248387120166540562972608855122746049756425395211865423522315973034963178633864776080273041186670352804822445594249676652795341523376371082238952512426642265417209086629210506261579247222238125683885494565145294224111422053764101779581442585934158837252633541093720704546132419218425141585149731344555754293337127214690949024164996628545356144836026906496025552730230218187735625238132494411268817971569370667316968216875737861227349265231498983530707215138683811995986192823841020240695666558681650616976930527183707136270844992507685897940158246985191845903618515176118628751108148486414098610387529514705358853625129331660400664921632392895412252368235547807398882274666166336017431842373485443677381950509702599199882513753819352724020071339185416085249221851917958190424277894305774122006362536614115796464994657447458094110578834227075797140776506877297224902996416405621214474284355280640715149364067221763779251598871169981737270551435020247849612143734061099319150655620851493841060401883388686686642904281541528385966923008077826284342406647459033971980018495096056388606641744727270293983475218060233303287690250454087768798975297303510783429841567318418129639173712200525300667777379599296803883746387066633776719092272812535128679908328049397744412386888542819633443368838883071600386491186452838984732040480663908980863202835439691901656828458316592648670852579468016091702476114018323011826276174546101847644307502658970475898777896606040857396659726352593716429924103709290211141129157617425198548110010728996318248242064100126955007073261460082307495623729982051014009134066114450012946996802740341063917702668862153251525381536018036440479918393487709369156655346993711684779445588863290221147364107088075244094875190856383155308429946031660015026576573751684531253608239436673836528307650719811580188967493408539649890449215694625428229785988145802355994401787817460063638363264687718151114168164920832497260224173534084391618486141987944261037711637586758890314766714340628639443170069486513539690324387918439424246020167471675432246601796255334302337106797910727759167215024423831847442135082298391325225586520668894112604770039215292576940954631776863875947693884035754094022220094532983846013281189669106541009227446824543444015330756757961511405683567942202683559268301901389716042154600056047126120324341575894177357649170804338331432473342060478118129780645491244491716866881139785446489200888868313706386783299303296983315448205122883895109130521188415657075860342146454813485977047082936743652367246187536208400420168923813855683782237229560031881574634359483210274421090564379259776353523654188814688341118644762225251657524302174439916795091936390028827866669153024987660393767572286172839489569212471746189894372084229132259543062550372464750459239942997207548237231865183688583977141276313343769626336395922035514181884769929296661713151234728454140255541845251596655021396246824705789612089074321262681361030692941501563924477625294916336661096018832993958108524524321794548616956927548144870761522150502281695091072109436248380141179922407617733059425233536662607497418277038331802693506252268771229147266657899712268173456637580026661254174019427959398221794188527813893796460148160543508863979505637631866609360556574254840822504819279507062374649554594312452344166346378815502949701448548379028553217875025193197268903913681547445666688083574179789125839149543116113539582166801953879091329780739579713820199024101261188753610184148296602371736598187485842345234745216912971284456856368423736686705635365671609539516414721296912000270771110095191793295054356308342861763673135048938671688390637236995437318821058536026375151595348478244859812300400600641875446306485017019122042102569041924431861762423903198545043179301099342273042036918167316222649295041175231374451505049603255878789538649150133357196016664152931239817318019372358129858711670272960329502370557970161005054081585764770024410364455370664971300295041398722195218789925053428587446278691537443882441074013051357025551163979308571469873228441744101362454481778028520324713750369347067649070542641097166229246571109557496912712997207716705673675582669624753544432725595692831067414702432926748982417040749788110058178986352575608241857866647780154252609576013420078886922360570822229150723906442472164817027582885707957527949244795322960500965873548739827361718558552282130138809889728092101566458947628924536423375200424508478008981424151724057702356642416573301394287203348333321197518131413700852569912208171796105333320832021803667863445471757043054687289917962031051764305055827121981526561887762239181146570144342989449385834630790570094632582308315414213454609217244668600102895550940844135779731525743520088789889425309520328733264664534805967980953059177919989671349601696657457949010762731363239282397746131450438547325710567829737771259000293503151967325196647839538884108521201054321201021258173741171058809064047085491024597943799504924372365051135289407452241741315247531235002302313098768215246143468423385750348483025150578302252535646239598414781048620458122266412086406493165969594837298224977932541621647854908169859824950316908004005363548967322207510526765073634041976583690166431340255007670012481757014383972359150602258732664934872278984623441575516935918161934048844029321242800288307468203856289566672943081939158338717726842722540217091398458807037785421926738142347107017882748129720346105731841874461245338082879420539263373150598056434454745591418868147497170643426720611394873634646930877389395091816354908182962498707349555460958117978964565399872709972695741757936495607491782909132096568974887343841359907882899561288715914576266970273569766620642619682104475591718430679811683358637022505687097694758488845537242274132060034995210175828875474782945879446990405238407508580340590508507154192325657726716086232837884447107047973488152001577038540979477340541788566050631189859186896532673150697982259400031888277969723740143044565881167393293430336129763521812073352114143541544018216974483189113926049330041598822746561624355467795249338608334163446524561813666708334525711491414057838053816120801960362093655810214915963163692200142616269426282296180063628013051495773997676413034507437324569714202181545569335693184618445682625041597396611984500067657491253710868834032049384038065036772203358064585548216724474247692942246865318819374931282537447850157016629837493333412085989821130713594404812619875833414260714462225728521513849587896019095566062889831514758297294607470165290842900935760469652670300204912055717692415153196110040254814772866055177299191044473948146233690228470750471527784749465610643652919641510003362053793370887942389588996770233327320486179040137168957565676427169624568076739638991526514907686648432471531251402811646036204421158889591965835826851130000502483809971644767003388512082743529211100152306698375951570866521177077756264655171625734805633831477274339512140695066255618527210345513535044122391125360582685033647549667322710915712369930660512555627315345507194357884875534182409857253282033643700827643171036763326676918306110391847559788407894164069705792644914668111939922071314741221630862650395988968556362497061755012237147719960198489090011074234941794768775644414004863702687036909314079679539858281416950443735720339893747070880299148270316736674499698432211892059383124970209576409139272262958623474737840776940957201667085108983580966609967419008346483061560873486739864157593089956184101750843905239840047296514664228993061065118132974400717347331859377603695889344078708671684781095887667966118623460511232409749436822105892356947788411558620281667578944939655430219831101407119373167168346209383718273014970196996063783750187616359789635562145848903721847150365628741836384078021275967604911827764841186451469265275806025146412991770988385618552864668669449716187898585875882384583216558976746720221545535049656593184925657348920064009538390143331465978041791527256821986629161736538313309685450783293902914147769164159056858172685751216445786154320183372486565751473894403900290657762293145344633195958637401729218086942686617695868034920936034261748282869503400419674851075324557534000766515983586702338014495762260111033735853459719448820852411950035449216092245320613781623976814300034910288097308710774073437968054107506387322962678517680972852818297058988908499993707528765629572288529927207856952787071230393113654221573743412317967667895974735342590439208845637293889793522063389186345375022505391480460946947724136429096048287753896520728151528336867617627946596009829946186548043246265317931136843300661608284735188138478993082051175513373269984250373874994225316573888644525902804953430082755455127068164036172587651461337332780184320651085132061014918895442364052149753056967074361092836674017301569162995164653569634610987407115776647753491318088837712962718802455703661096061923805156488719844913912857164201771637248269598653643549500696209373599727216422213405818347772477073350982936974805351721689547840557190097519579665829971614553474814160704904964673143411928626318570585508462246744597935308568137351105957052254428621820625803468210735692723183999623577748655479042955908361447096322454376315323675797756763580357736159385038974110336308850163831477672011845044332748730474190425545187513446788964955455358602500524661664762484826639859697393242207038907284940793759605621843500893299835695785321613474263888756137712654358571877727443814695907199321357819256411922408032091285131439188939794521648984246010479825612720190161288181256281240457890596415996719081247010108341635793259074707722203593943934797082029102630239780033968985015133478585241056838812368855270844099305137401279480226984414121093984454888998180212651060413291272188888603843425412975041966074189364427039836284693276648142044425103302375420906957300624335270596229244260727900932635970355379607235517729416095885202305440440686531437129509644269485812223674904768539528857356640285843777962458400841402105446343082746972544788784648290151907044291838360617947878036970008469008028506173484090829871706776586708484816435147815541687201211448322774276459928204989577396564269281420750225397484640445206283726685362086039221100733288167098928241327146426699649785854366959960358425261580703536896797996884025380021330661896035638225005604151974322833103861989686444212733366648346060872512991234929056256810742215445654625023835075393768020719585877696444447410233731556663763748815002787053672464857280686041531026107384698664745536367435166525932270320465549213777750314951216325708540926392940061829194003579285715731711094573112857229738063208854687471669056123715512425490652608084040970662528797659126584249663051471934522044492841769894926693387919837083674766691294743714135776369993178565772120987701730893852051791299164511428693959681534809162015202856832585686622946765130567859952291857871816509966192806049491087170217261453916482058156298617470077765590655509959922664372206600251744565611100743173095200547951605777043312751892944358516642260668361389415033409680378151475844984647045640400718698297809682352067705170934242856322084920966241952601443764214900140880713677268975120962285347222759461039961124737405990210116777647322128899285879124543584615851353830268177407243068741069729893744668930036375216015344328740564358514727424589989581182120424297064314018978130465685477561531725937793807270388746071471097526842600206524122594531962804638633720249011660116826440882277790284125475737353164459694902174890386065556849536778123962717929736583751591916748193303616013254938531826895627232544816647651171047584249563309245682152420241547026788224647118409900086007403868522673743615592232945582543251702572762160295817598558796377851571361536473872974733482282183095844020175361168007421344748364202863019240698275372069242704452315270848383953178240831026020572067592622379749867982836381277347038482601128027804518816720055098245797478976013171381684272733678160649333874223033896521353348962071727848076491465876218146678409391097617928628670549865536137482330896189104637188930231195811564712663253585341677690354615446712117470362844022157001936138866966650104771945378689291781009423431609046878331645894929767365440492294402458982935684966724555606773193747951034855049016169393819570962073625234080472776952876880160765291102444933470075404806812338815553666147294947649626284966688153221112663620455188350970917150920759101223833686294255670856021801510270976879898884841805095352703001487848167914151718894261535476687880188773060707483290012797182621266097469266007551891884930885399127373244435470926931649012999068017788640781430445540652491143599910984218110152055102436051929577485208990481146876653600551024459397140458039007600258841539358463237056704908093382545738178166468479788045781977238857217159220712159338131713451331009878879610125963590107009912508419045731114674709973292459011176328351346405181537696817163171615681502130249990491915311886171567523083512297584169414092952045322088243814338354859689316928841410765887530102609239718602769919176138186421848054263043524298882259306105434980483793028855875308427230773318502288054567434317562451736929687746671992369662964640117216506793905985922166661954822798021478898153009839840632013711127576130179771507870934880269100048307778975145571167977598014177609603618131900101037682373369591551316236670482755282894550388278797769889815741981471226452555986239155252263189633062121347594732592504905710935830598096195204973804591965427013228726650803352681749402227598646515622455896933418884930688848927296625036956115769160719662750415172638181978723561307767870655367038767759030662885673795367759843212268173575734347668124118653068714410672125843898053036175323203122341670049604719746980297143968791832582161016881965685516813223754704667167062640765746244030998964476725697031586302108932550397228631992642543947572151315906199250568280210763389156531891177002278597561988544885880920498537305661640663009383719339803744240134532401424790970031287210453414371179954152208602378731915750440354534239763280938059752234767784405638342731287941927223784199843145777752864174842466748020200954344453548604657284031734814313371817465133489726068792101737627184223405783504177892972210231895949805085558636516848736180935908002369141563678540140104190441618794148483969582942710308162519877160795815098801511182393776088238820418858367552983928384737778305470107682840324117229432954611829051028347074129795303113220721803371354290050169668809407333111193633968546612368196056499492926913172260031753606063930977665108028883607320910284692422316973228578822954192439500817070273233703967451935476900410403072097147055485929334244968550646545635694321323768475183108374807840612751233328248593857324958171917847160651618604594737275232811350399268240373072747330646181558795501820883700216174249194865207078025949251937708006514564283863099782997289441371398277047767088459767180969852331390025881993855822301916110831932630950204921206490389655209175745200435725307291123901631279115990819068345917755534205246634712496735982779191051808629394525179717694935187417232544521713553174630113407733726568615654179614686890845211877943239206042011722970420200643998187944193564714038649012175372013965934598754378020113319098573331578442946496814055355439332554951479806805738442336134040148133789266412106270123816882439340841675101082133354726328165856700629750878246933434223146922275238752286829411176528198798707344900817595136599168847096364357571354054237400906226036582604053813205915476480472603236230826636107135936109616135294286030119810726416277360574894307975884308676889812933785117654489840688103268014849177442881505048189135078720904427064899351246004260908266548256126705842810556265468327656412008821848501600051277604881081147298509824049560374858694452153167714605206175325191548385649558552909188431784333340556076704404958859842459878426012045443172823077491160818966958309343819819293754585167122074678070228467094244664959414559543169175048180732241122120732921227058349440269204666207281791349891860582567733254131222289405282635581617960647273730795818693811495795257796427300265648189830173398218150178905098434847190732285316801385371734768322594405085691614326132620826504263652851037336437033594985711700329333172637089416967659701028882030077555910619570922458977634611340689876575465456016899332515299543779580723251702818706989215523047144658546498967243670322440782874398908718259387062402939185484072822714846755861715428631518570804740610365486703337071934819017851442917708808750724896036273450349214030300679073731681396015774441714640020583248902945387534551189650807095342543879439621443537666870205687615829698958353823571093403963724554712387035886861858154005560043216482524891393044710812433026802108073568724864063246629595036384934662644468430370501011161482733204551184918795259647783516615008209201676398887109829441383244355194422881352731788574034281862495871863179823269458989616854687621515673155934534897380312667970042253768501636511694617136301128438234132162510325162825505448625691037314092297175981254245662820673643069169677320096881909990612099556133407306902283754527848862340248234360602869174298863819561026881020054152815203750279931357064936807813402913217472924781607136374076219904552254359645206591430399456006735765234213151275421561651470334130305436204698176659015744072047042021377806765253878311543441084229610284122301169091187090514810111598874837972291508251715478498414758761035217682384046625033504448570303781467928250261546834830141351047843932161768680548469252748871501297705214554866936092395232496033646228191867385479927522762022246079893825350501721797496989268174427500842732926317985562305273467523934377999220077690737080945027265536720628881825147514000766795071949646712642898958270557708968959260563788484384214349303086887651576786338059664077841613134086066400289494742549192955848426332517115687079914906566001377551792787706288061146905933380230991925260782866387850695920391321809774062144392705531328193842510134227668399599951626195127146943268639712376435160782338836421621625882813071963403120926572021540187122837131933506894948466727963876338464060354079364609431039905013693806091550969596214525613224466565623644162561854410527768931733675594144074025626413170090699934875331314038723486247288777505877768861451981967743454244758880622172958322410377936900117417813576828731072485375228524008849738832241323599063040201736142876316465381441348335288050810652519217693391838743386286334548958644831702035114304774458874569766265314921294795956876497296116945580399873814550986246000813364957873004463047075273902175436692342410899274200060522204376327414043217771890527129646153260776431377057187153792017817939889259811177404152308266843329412761745050661706329194879168813482827836197000928716459541610839760047321389435837518300362832410329355344631655586993560863909682897641618825718525367719874090505291632440401788355107930094681319740609358149450501825496217440779633404402943896861431612054254730535235690220945110403467658685691733595886443757360885993158033778484799540920683756327048205782684314125916086713640430590439537330902230553381433874632184296648032192962965770858201129632617416663146951611998872300897324766316361484974629364357143006190615718574255361337542382436244268232671894357471433930347787685027710121238179510622817207673301419632171390971880109356775060997341280704127974384366208931938660694310876123365955149667490442723710565145226589345058248467134325876818898485974587977285113171210600450502391372623577265172580480567581599090902609631249229626558482289010485093684661676399906453319222556563360551810642962097004873622841701023477567596161083779733297261126087121498347375417886157197953402436508245810509958480672680361567056321382821278307218708104168176175959738560058370894262749066982012741516606580785550512197760534116470842123015020741349192644202315804508119429467897320873563336780370258041473280630534853449266391814603732062879104003118542193744945871426048241238093765008591869328554859630006094616105232227193833114948334643423925317090916396845881179177693468440704182494197817626747193578554280883359716032839242260499329217030966584669333681949277275627401076284681994780791243930305168086144118862491431804998629963451171950152014709679748113833909304879952264343165824521617101336097575014984991033362942808757279384234134363888769985105297257634305549790241943469817296437841596641550879659491779828719077991388760142564700816799580744799959172332856179553212056004009791985881256880557239886126808276797077171912231057507185151446493280744584260207158829677562366910677787478283924267767920311558985958397685244370900640550358890882436301275637360475001466914149410674971557417958566533355178008283174289791165149341932050371244003850419668110173855426078847295620248136048021241322559723216398926138436553140157713519677730290840897732912272369739961039081211986289752429980158681586673190055318138714262886216813623045095597785486938373530153650339608730173002910768123947860686238220950804575108115304921946876156620215419223945728933324635896057612859006465485374233760575508492944386650941123244976822023434751777551239441768538158824426022391615965816028381713736619441752620160396766835194313512586500701839574452319405253202781991882746000948163087755209885407997887595151098830886891027610940113316422788975114477875423199528014160759618257203588190142024300428838407304137202058214701682640807794584717918945477693010372029314012745357167987940482148562921446031726091649691884434131640829481896960047466829605154553955637888395641765705814177705293603729557788626056149427513581376504664702563501314264199065341134865371989621923542134291086552297523368850967755821621663156196446810609208810959640863714941777396729612749848093523456525540329503701524708953733688739975299269748772744020469727896003534263250652825352735385536131110752351086794626404455221432588987725824810830676868046026410720346068153648890749138876708561290026360921101534606889598579271861862116791713970412121051028016187406506993040534845968491783011501931321977213935841362191770890323601070585419565681324698086758158606568150603759850161867069006570507449545870171760206919201175321008956002996058995215946423383162020989900703096627167311085883866960799512431119951809016153059536273523114748452445048368320164782927597380810973910604736908014637646070388144077356533505268807129365936326753783517713695036572005339681329932880085697060116858645530259767826025200986885001399784200993654456174681705229119152731644070891958088586769518144609403340026893593467351089420676850837628869471217962505180113493795319672828674796226794818815871746874292391346296891654225525360805628360738901154977676110379094245614224373102530635424550388548622481214854909285301498100522596751415372225001268148331349778712296018961067871472970197659501602535017008701137300002752851932478180500244077436476310541095166195383640313114147859557738379074260059078584094669985260830880437786595096549452292497122562428814461924895179268200434688113867940815602749730638267094117970786238102032549430435516222165738268272502622965944992939049940355299207728371906361588127284595498783963841176640611972463777385841116300710672333912531002627661913012664598950257187082555922417090073655860088039372818276970686757937652155459094040846757058534813901836038054680601414563038436259469832878807220384675493387006545181111095151933410513632681828716506233875087552257474561060461469059329666792837032742662572353364472245827999784390888144314432150643074600606817957156423024407891083541895256994002627654065353909867729189228439729592697243496380007187931397743028216608744483395354012403489933429638246756156689197665703168000311027474277386418961546127679937478034316138356470622158736562729620443166166775102791304228994323790778011582728087087161674877342587310085373695846837415498677524318938161483604920990958404792730626881525033877305477433721158771891968565042991176858266997458911734989818470710340400426470843766015701648334426298221215058991369497453138026226356992713989427998875737171288859879758367788689822983760801426719358280785272727781910937470411690645792381627715928402772553404034149522617781210317828535837138168151891710876073630138936627843453439821724818332422442854288321878847742309640175984577001241392332615808272903852545476056376010847885942765913738153552095695755702215051542371224014546638845710530211454952157463877786201092959726863320314008062312720996227959045395416098918280017506819048493036841349978196992117331278096974558191465771006278305864309786437218993392549447364498089297226994667505513202542678133945067680677279687091852838633491748057561541060180235132526412449744188997971415631344625732577958837149374916628770255669293230727996358754110582093430822922416852876157640832615113468481123535228276509128558986947771415228432554032027293883582711499546643892002823308377362269408030877876958742463218827867630631698761518955949762578551077907340769161846661916171646289615239436043523516852712328854313135042922152275068622806524611610847523977964702826563330242990578695326813401936798940696824991445706283276961985484819527908495105204239382207317437383366534661378129586379232306522412151475416339677516469208257465240899140635614128790302331871912520229984205638737933433024868241525309008805947839587336090930544531592249636494985572692151670592678373273212779657484530270773590939710220233305882024400276274072500430373279916723502321599337731258379664237117563535484897912216116152165385394171584057015639914949790133089212699295629982628819326975463134534659506926998698937182998902900581662174914605997411891689836380119151225384246537272211806486625243628302323168814061276253302456725686599652096112766391870473381934470278937297927198511645762080650060789362441162718590824690881967492315070931012806118568232095931048017376188471571236399902775423887210631848257842188257976286687775627864844619116971895193908025606218712733650613476485497255403153421611078812855786430176957833954622483183528985863227582029496332120929314654076482173476201782002019367194099731187506650882263187431890908296462941414686433655777931668425283679441429834033061924617990797507834194728651446876489806197943244793005552552449121680656560966329356515307741079160883896206955320788460756531734510927369503781884271654917779210884422519306027698082993046448698889869987758426711841640693869386697181532181532470991055546340773628684479083232930579098084396101500267818208051787598416121211662896813299951751504539111111272318668411137156893746913010189330945661010026078077293727995608774208383394812161710964142344777214404348678459213995374574143405366143577745289145470179388473270070347727860685407050694180103582296621342137656177189128948811785338461036882384778325846748022185729092444988837676370359560413151926611175790501489638569572229130057460654852569952967263237801377577018684345658929591214378497981766128110949826619094653216139798437830333717164416735152067276550090747480606447483163966871114983146712672548320815995833206898892462972089055370705094473641938589922053046775571324687636735138844181278242244245369962573304329957676243542697883002024446501216709489064848986559886034799021707161899242909749847709876848837337332635815321970634653202578303939768392383052333957370835297792344821060059192083224057380752755336220300645374742726001627751133442361609243583924283547620953859247596188624020004860828094637270829743231368585397424279262512485432179333050357802227143041991599548772149001113048859041726629654993378143434693529313417501557312234078498221765109978537140665847037819725370819386820989035921403583912822868832370478457356837358413230110689970856647896422211943664749364105668724467744020615797411737719281926853716606122915828791977796814767542258740483305421738546206871661006916843787235794841849969076872999287644910281052258923775569295991447312233496123674897505939593852245761161954663696294516950504192993650125366975043337730889202809156481943448025274968219738113969576903539483361847224292963280676266764874204083668317643908844386259223963960294428509482723462132522261911165686501438167351479655512053466047075508066977537365066480162996274235030591796266348434990968951435066506925844625385669554163450161946550456422234702946698276573838847198170796726673607706006759730783748776402214645840680558760425088985422431940166044007625331509788385478267353040266468801467781833266135596666600458853467383362248226919008461446909186524143404093217065158612170815421893615880653075219256124990256849920629021484848343947647172688335924558520370521087730805229712211150596641872997471628366409796472009368419649451895680955459221682863655217930737393474086728351582037759171026093608867573644861764585980865217942906869122752107330872519121835013418234293821520439079338307863133632508141044271133097248394257624718106691655243141346565947900859565051588606762667571177779189661969026223416420783343519913744646256154826518135395480844550979141063866808018559294101026150910508103798767689264469604782328244456178042523574831634548836756996665349194664622800764373668257392485511770240557797698226817395890150251707766179764728336034339572784067654478056745456819846125137702638667908276192739578121283031362361409061994170798485702221302961791625812999653493908447642371583283864326836687165692610093384444304606982606170678087973838376317935198467710893806991506060657902052413618162712921960485697426551589907143291197230436961356708596721905598545981827475864799661229401658968567877615553363153114005215024052638052507754927410810357676941710514649187632426085444050170282477288607371347695811137036939658289384888575972468757156192690322895831224469725435261665042201440335139426720956393558787494055807461471221593148829758681160844604392146055705523822922505721809468077458301037230299637651326599490256919565774958256494145767671893774970885919586122783655003691070767273806354580613641437202214721685111833663968571181358811848490211615423119703308770790499451428742346498879188948007870510758537832093408562002679457429017936673601721656852155026148211588689329958810384849328756398437343913960327187957402307134066932670735174560585135474828313662064254017294916652669201091834429201638348408294744700514616649649829094310786532242419344862676111439864322979622065581973768298092591964548727807977505205636891029876079707979321783508746762612812605703977972711088096346263321111328407755437028663038015405206738505832622256579894353754755536727016863108191640677989806939161075680549429463597481657554230341019506890234960161782361739570787240660628474637943427709039974348275327476966412091236136748072585737850489844259536099094967802479642464429142613637341785727239162158783219557556739528010455460650873140973685203341043939727178886830332364047713247068269882010984130766436982658887035751657394482849992888652217571705794699984490612391909850675417032428126818847515914190011959632885950058004623165878059044399553144755262804415646371334033096516212231069687276630773988810395482065236402527123150737706078002818356440841588159694275415596559490869883652355171452399620590073882984422903008613411340518876796223396689086560778095992898415322970007036350020651303537182177340717077407629269696979572405310658422045855226961217883337872737028748472596201621286431024067664523968474705846800530765515668055982478559737136401595707400191613930517401707932501503896475449708266778209372087027396525290221044062209690905525190134328752161948658132004049316620694420441506481821347530246172950969199739649376639886193379854840346921409444802843081262576165822940315966692921761097416317739390834315352403123042063476413565625312352137844917287077183423918168288707429562916924119635248553426526327377711597298257253936184825570569092232265336042700672379943377218198545842516165226577700761908197720352468787481867378957924670654834108470378713927929640490152160026058598606757862551557802898982741429766354146839653768991663651861845164723329322474833955526869456974641353302747693296816798516746509901128919606079074979328632183856386916534247982100751412586787243804332030725882699688772472595262851351777461417634135988067624589895700869348393149078103792393608270771894444051878362542274949674715465658056298282377244255660675447324782599833158689226148569094676822843098022497844955264307363794827937020883883331013660825668622388655926679476977027714813567435618650163889935919400977280622851079394546180967730434152693162553235881437505070143085674238374466966643419094317920043287038825663200832723757293959338802836777477000005109433945259715802820253055427994916560127834497216328521419516864846308971311339084021140595570320882793624609001513495235331187191334856760731477358461764605011615047056294451319836822166023969405991945828058707244820670369108060477535231294518609660804480584204150837946059875390384220976571580415200065682298684921928598472913514613235215958524647199726750891183818770858151696432212749691667642442268771965669292133281210224016106394216455246639373736226451956031714424305356748562727330459175730119552458722284205221788112468407166523103039550784437773695088375386175050265139527839788049072691683479513122559894362162930765722324954206605804147875072590887798087047989498078908887373602179785243519827809207383099040193262754877657262938101513603480549967961501665274632078190778472924092485251446258853308892199472428752642400301080006834864156871551620836853094575522575553419797529620114676842689715390981069913415923443038395073435944474488934876984015992453830914503096566380290473635702980986448433244401126945612246006979604283763850901449931406973027701053232651589013660343609660736922944243829915914532647860873805567899808950204039656615427988368545734721016459064732489236940213835796852363936491002044994250522244405599925912668357065197384850979495507057204970882578460088195126817624155510298219281202831613952339835523240562356967379831110115334407367631317111327970965025490019751861216005513226271500625113980308597527236599544255941537838936422156166340468059117714931189998852073045583089634691783379779066367680980845369581249017844596244715486625107835578976677461656505022026909579889087717389586244643476212171455780226326986051273229466730566883426805536786890753536322866679977323107019986461159584354091756948136929819063254312528377226675601553288051871546411402377425591757581514739996621651943988521903729508832225451703894072001943604443584060149091622815152590133165773299909834088754205541786511359855568423865149006357508078175073809309599675391321392066091657047279513302214073034768344737816800639364035801955736826175381781765497365509167557965471170313385751174836436811198226874847383328095052148703977526754910355519442272408124852196039465537741996552006293975338061755114321840081844388587780759757129738185494925407068520301092920182018187535106495213256999496163696225921561259065968745525153724505649158881995666801262395374243571482716129969665342876046209228666614576587417605779654629442031791803617012041645400708707547291482744634582133488234432838931142893556110648605895224017414283866944755828257409708089356164447664953913466718142585217358911895340117627530958170271791201062355177744766221769645584762012825488487023283923696423058605203495935814352098785941419526573572384277800262957367555877818200123707330447305732432146955252056957785656469981489696275534907843300131539758970114782287959242585523494923281543042316612388951095798209095115903905561157627136122993861777823972242888970293746934694902535410849146113435162932999659370323943456914545716938993133909792369113258663223092365842418172934804663080233834085523312076716721834001374865603758571859300804395943349971749659484049274622217275309162194393288178116251210133125388297274095246554831353819899011237997937442249985808730298014026760940015870218946791643717005242051731677460110302821911133884209171333351047855258645228440889832151486382955642101500197918849254054084411854400006157023676996520290428516362067989173545412262914778121332766035449245745126296058415737377379788534123505695324516464195148629313802983760110645785073912039553261979147528142479130570678183726508279546104701914663709191572213488810485332796214503942864336581931457772049959344856668464245958509766120038171381320393760171815636597870077985108049252122946479183349129793929256675978906338156189714914744659410860048107542690388084014907299774305826496679738595835187382205761396798442051402677313836538140612040384889747253062989281090915067423493428340716683034278316910412169597202180526669981062836445927854445329642439040888255318892938785857431602080748925927889049916866914202975448915319784989957658910285659121085441990533725825038404505599744738546878577372929541546722822424011143680796422097938723860246933676535382413849575307550870935063304808995796161804088584995856578414054785050808434851772531952294321764851986463813511606218918405166294042339160790723057640626248469445086881391527053030220190760439136383901568194249266867885058514696228850986325869424858697618766809056553930322046018002442391803067373668104841528072288544782727039301131977867677454716929266833750795007997091144342497511265985109498941268767049817088126263248379419615665312777482845598968614097162567545103970548934370924047933171127138045149169688737731960472515635233969004324328615568080597321149815455289594473925190587605846524103255634773674739343336921163173194823932849171008739915217324768531760758774774641190423264004768130939063825014853497379418524003729072672450637306181242866768567282168448111836990469704747762702919568250158015187640436296238644569878631722215179549825534891176830511891929271739628292337604954206072701573122309117869559949199836088226250716400792836054095786646193424430851823453135106691610927251651214666381754070659640082492275233184501781622949734401322518094417337557714787465797241372214794412092885494195363414664946437748784330158748145539040757453442340713830344315239217516905291469576299406728213063072090199641481413184457731464824672864241574502858450418576789548041226794955083123606664610045028162521562255842988885867535710777323735717093836842934972608228918098412572989929525162461073348977759944240120164517044877309341092932530327826648825020499901359013568513497010966362293883379168818310558736596705493526482386053438708686569743377680619774794192428294468995489258034970396995636770669535308748402409580030225981310989398799372157926247570796807388234993836679314062452743604994651955758522247350667044111901998564461591718009328262243696444552017432568433320781483832036346908469440184545540857194604973960262128859039622859438478469983763125899702219357823148905993372413019714183639018805463792226534541465320590028575291997445976113250966751640834417906266548436506868407832461144713771425098343909054362953364735047618654196432659529671139498601817119635264874700330747645428402594254062818850398303674491207904749835153580102470942861043979629378870686914672857637563838967394946620629240382396874827560107398134903171171434844379010684212570958665982433484558734955741327940823167743506054234376685149767977975879994459498625760385804469904921585082039726327087890479105180668720248294943777436578967650595188036452869843460857280949347081086674361268395420181529114676218687438991942675393124581244066771594186268941493354841751108322151667676588925492255002881422802365358149715044086428192393201853627711910517103429105412761814619946472482016163768439234485457028974144824509143212015924900116354734083181317461428087067810199001661578341129193281425845124683336775932137160878019163853820436507176011245050149637276557472622172612508283253181855580783051737255984608099346430079372989498038545038071144655442829390578772106910026077294119420113084324681943148446861747196313748627695135478626260174348903448677472961515361269498637464360458659985824697178016858721423438952147553967899671191763759068206784107362922630893969862524993615820314531388286565579689478966920394325572088745306785759274099858537823118015910331627274382341425220868432429412434435359830738910346336261582499355800648214260025819483699992032936333789553770841651120005622750312939664982736951765741491166633613661815200811245832473692947531576155265787943602302564680140140259705541499738576519761306552250102359768931879395640205251393674867295310604990212072130937588102536200292791424850350556762643080489940397272769093962252497338330136846276947814609996435664430507703296414909866096041525200760488470182254719433007494280317549700253165635795013529400582021824494479662631739257766970274440130433257555339351601976304431393160798737467164244340467777098329297431404637303494048683495039425184227740693531558599518989122909085970191291927469844264324950044338073366315127649567026849823241598628476994394984605900589148653722830043103942821838278066507943023284041042310336336153903981428505608222057906169972501575680259549383148485771294082025234595262463649282381274866362855179408677260956966548019435773086381821932706471907058589910021207953070531575791959862379400565816374985467532717566705448405754631571802836051908994015725081699769451890556877559754663189659806470251533904400930043937881912159462678064400581503110370808333746813481249235955209937756657491669261919342567606768852580165396316620997842180048538061545004968216458720608102254844231639381142471144306186367954167282919421655764055614637319750202631884441678909895815721538477488447976784736149708525893225589710816097691592361019842732958573734675789273389120064879124303949853544272547070776236035514054831649482623416702792558773292192784360727476353453316526258776229510143349065016559500707791848007051078220152990555216321875006044151242747854576641509713948976696629996191883648731590276842314167345570528620992290433771947893934496106755360204068980195648298800720570014454190522712429435728567220167212816819983329378866773229040239130923212171369307194778134686214879522754107224384186902905950555838987374610938350071309020403092124764757936846336573039203574416835790700327900616738412129853333575315738275956160319582045515492902072369034660303003593975731224632088041976173443699506519298139344555583310599331690350886186686123141797122537132413846407231181961024309295515059274839174186073923957902124651566543031420373174294624042247249831332912534484302957065764646453917889846491691071094743921865429521096066807445740413706352568814208332018123088002478954240089401009170829551936877902406245474443500382662775873159736647814863186829263831239743309442807326325230365029736133037824761782637650606310523416630184261790760732882654295895362630312895672828843678577809895009158961676548037957805544193814562101954199533856797783618888296514981273517848935950052568833295135354676514215722034132329132801286599770724663499935440514268723888873062403038612476215829833070220856428779847069149618196847313016166767320347958917211710081154668893371766238545463306686278034310523223445772108458587553531013324334746163287738861928149823389993947357192873038975865331679961420751683891150431331458939752514732321372790594298010562546642325552157606833347368553496902253935982640719449856024315616749154031034732962421097179625603516362305128312103074895346695690962676753164087638153676912882443768717083746175190868915842255769338987392738798713452991838984009652037478760892375269192875339722125219292874083123623042650564783995298713393045799575553404652772091936840285522761925890058518300931728937513633837646327203009555552038894689891708364611971381252378709171640211019470976293279038416629962874660949598121285646399610354259948707790049615483246994095226324445044291494130277441442823562950333341710127035370144401925634116218281563205674751513374383380723782759053527964947391233889372410798475547631106482295155420632687078428744003079189850762846185021963484034103401390662986520407102113326527610986028677048262852908899179750382500952554785114394214813760136075620188510675216754970691219189576238875070923537405542800754940853519126309448462687986537842545132379680238496401332855942771348613248002652054368129183794991532823175645560790408401744008089986866366600121893471708594291583462138019357654705604924326562476534036343979412628244122179406647960206525052495657579177045209283545188716658608827309500097798485046714554246260725173317910995528113349810111105104699033645325011763677249519644050433201405090400516789258407315545324858310943174056997772548140612620554529808231847222145447427584096868121984042529984473177824444744173852514417910835291609115970213682867296649248328284447967391555498602622292771918965819160522159809260631313805118117329417509680898846468787877374942656187114006536888695726900325961617136714468305643926093140397295593073877106262739853943876161500597612590527994097572641011133772233562319959772671915627229920523183180988772164234017443197416552264869936426873818314678599311579935081518269597871033442312524452416622618947283462866819584308752990145409166396449992272724483663919767940923700305297772638012090349099481927263491289178283388373064042901237591113247784321109484154198951869477317432648721578597868894020486201952384884106862481552548525502501200111015361244362060670207893108636466853294350247092253952105921904416350503028197461765955977237027812341491302024617946039462133906565351890071357115093781144143809160144572214272902024904996997719533587746746971515940653901744216008416061951117043793165744272037317489807033545343882235382184187279768652524310266443706606299028883775338753904753049503930202971887637463706588549691845792501241759248099483111168937561684793964458437891970538189579182866428173965114018152763752888738331785419043460489720506536478206908115288738812278993032183942867533541940669442761912392095890974256200346331508783533318237687381968425968227848435917402681095013814499528172953938136151128235961854034549217008364963094494345021332748561916229243320416226988219416599633776300289172180330698808899324561557123305589693745464511217739168716345256568960020416470480743900935056558393785018619790042294149581893314387922349582475940098560079343699394294821813749519284060747511170685531272669003979145311688173617718421735336545436299431179864844155696458963558994077888824584907126444370926778748134982942551492369088368428897667403875434529545161273633516569357833024077483025368935364555552914252842079427482181294162426020795647282711732922002014029053139653288253141156129467254683016315259005502837875448407067737181214866791995751565696536555941787125151315890239855227398448616561047601419961033676336135833003137601513291063800712391386046542133266776563843240163145848856682769778149281368333927205960401686867228269905171380955624719717821494698846285597673365713061120349440341271186739229882943802460801901396368882441284272802065557955171772966348042676000490803494610124549728163442667922508056785075194257723521926594254478955927814910573074728074883026468472637502420951295318915849477368167543301946401745389693741018944110196174723426069262381310932450352747675421622636032506605675349954577865055112023458067946848116841545135851014227321027161867881386749879510043086473480649029956191015661796291389592732284276742075749796730660578443459332346317566036931523346353178899190980131790591938912707907769368935749249515939671419902626668770953850548051089206465306662343553094157564556715943899711760554604520380689018554999162403033351898852637950476446833928506120798283809591180599857996654360688940115948119650003483859036099467953008795098540928579996947953172053107909349097864811133032408132822346420525638968163980588239920236918014727162016691839574625543720322241240295880747363198593854236818482877742063948638402587437965531204926131736500796904959642537201227815989235582266990418990559523896451056045957127198106824934644268286923132667862903738102540181513950554861524557918662974239128957152236023652215950560108828171200113716021976025338660548332668731450448568758955018413003955839897210848812575887018130606676038175153857963463682736514298184684127349387278319014802581479535309746635311454630644809741298346730082598778519555912299852586280304560700369520648744354043074966462884830199202712586025153006926811410286181617233906147910563668865167036632478636342845824968693015367689827287682061561958447916603830707575138149633844759337714171289129546231988610892413094330986195943811161133873368350994721448850907650298081527097608356811128567895334065205190296016445322615590633260115357625841541892983781196817054790149913768157710875578711410084781723169031122120366463870654712547369303059558724406603194568605969746756669371596856338355049607724765039004981791205428824771879148055403727774345374505125746489591918178448737610503821552932619397122133251119049879716632155353134386634329162045445863242122326747808390258442293569843184664189963523635082471106439481125674917409688815959910553345914887832191267267660976140450234283513641587639997902282818838087474802805018432500674038850087896742565787749173511797411113344948891125183258999508834258164766517245327910943342968843465220628045289826137345949437789512111606981151717785879133568039122141433442301084291407395811713564294803388902379553712447945880567455566285769960344522276428401730137997491272591688376812644116197789279474708173861464441232191858674721438743194418771334703412487274899615631516752070927528220918449644043908215683386509841697617997440871237733248108736766855616347560348250863350822965327092867627933219916271080703782472130142854208383187444263456145887293017319085638597069091269426146593705275116907878600419433910519724336004135526842490311043111048651716857109061338037135846996455301072498637500599109071061619103327205162415902955836950884354022718193617489514874813011260075635203039678727582737206098186095645662244630122346753170619538396025169843689887696938059486050414768603937256760969281049549800828831215251125647177408794573499896813040277485357805516011197844485392622123026031306733341661304335348688830409388867741480466207764692975561949426199668340116458005571836458376480734332733756763276907245308119383744558097247483949664341203909205386117421396618489500191814197464357900591926731384793372003753660592476920607512886713366900114625430782537350522024129792241920654211835009222212730243829328250352646175571697100795257055281946844791858802891710590179891973506193172385309012684809031009079816077499285015782965266295999030417510028595286522930720797374172398826562250550323718986155537473875260750568626044913774901206798180678566148432210526315227713996757739852839315559360689576224389787496705544697585193875262589534146133482424194386434956531041175133062508165021390875965436525761611251405331446701925258256940622490743719046853610887544010341432619862628280600434213002375501334728732558187890408594211471914905641738670114584639957099845988970106498297762925585045907044566734182824135263557091800730017778326715436444596569493349284575086840215086782057936288475398509613853353579537185146940716848234284353678123738234593878529526606052477696023181627826341324530011656748535905525924083695355915207015230475878887640622517019323105159669673247077223323225472649631565539359015660209008300863626902409515497974367602977356723055412347121988884867021762275382491231902728423875035792478058600357802844606269920759301608456802708161683402775558488533875043213873218211716687342524490180758331879906538179554317330994127725347586449041611656529462423073697368856464102369311184832674540545358983937332246119849817996761310792691996446897996578170210657243630024695578529948764235799660159090785769443595850075469514209393541113269828496290770823868040003118149311369796694225767965166878353452186518327433680616060435863110885067752704370179875657042837547475079451197602317760057120831321681311518776997863427266190769276555643326021964267088819221224253465604474933598097682223418075052861003540542655905732193841909901184257042504454642419278103772142115812242805190185915363313180142839483723720002985144770229940706773050063494202922874517142775829777264407673954863878047741536885945741360295066495799131368205154616473951658780256291431384727464251328584160850816594977726701549057782059312724951558097186286992870454157011753403313818652195180926585664369019390686521782538618972829262354292122341806301033920141955786491195817075528558469622091326872655584779323584334952333626343415819711606668365104150438711015038411248170998146962846422289156899183811416824690874880663410565766105441812261984422908325331329863542149980656696544051893834558255205425113259032117830079514297167121757803485920370853780992977324034820181939581908920912945614142583814687091607048590416865006487962337072577624410032348555114556900256468103034375949181396918259658265361935394718132332447724822095769849668261945746900778650861164163708260619734657955760399877141451065270410007160997738940110710747395690543377539992085149207638307095149157164076435683133395501409641450942943289283135382984293927400213501125907319926470765087278011009845776826256990999613367092428039504428511740644828796855288806907799778909450810885220990736432735601906005346676901371965847951605650707502691532381476585952883206203387791064116913770428359704101757958936689645558392692512416560001245833188946781684383005003543568271109900789070168467770704190255302402886159216833496180848856369981517540181756973087154860306318042571344010805082168729298568431012697112584261543932351693227350510224047999299426678020119050446100208175736992328679997848899091637366153580194262406118810234214060859730647018564490426134105594327806572912520815661416459891348346225663325670246970493188635897858519306742573563777402737097888336546151784718089604272802055384925824942957626420057853579238838660337001127862803209212485288426317471984638715722955575853570263801396123230312334382386427395963549528269221530621804124604133240806256658344762636105331585025158403992061380396721539148593940628034021515188707764714002982108158495065016204138170185246716301502663734914799164961550915849624789011693934593204017809612757756598857536847943336574583248243754179202096990231499626627333937914582848614972165150916044264039780013959163987733177954339909114275977988486906264665626929798521734991353006467018266351609668673508439240872643445515872663782468533279760896861025654091407218385860430725771796471816376201692242856627235790979069052987430264423584379921524892423394192643978588924786300438807087619701235132536176024836450564510378991569020747178004595238630334192055053898124813536412897997933439300607420258343948146839843869418556603836165227139250599719434376339469101906696657224257729749447987556147934509818855170352487830424904328715936379462958179127302635764097414563476456575746431686303048462639681730248310640034576007066903941185947776367482290051818016101852761876106860535815072637924879220436770691492791099867935888252886148410074780327788972319595884445225834500298907432993066572068279325788816951334663302691820125116301152851057498013672775895897339610209897001289991075576848871529076435187527550675826733942854005179658456361048098972874151026248887071182924207980856607844055641898866416717029497694125370623350966351620963518794779559356075153507184888803000374688201786527449745572673203042384952154914647374565964548669350063817294988831814721661452331164153045197892233359768984199570657498005274932947014567225752834660555400997810813878281551600994444830080066173495344916002891977119067060995605765740622218323624427986565316826912923824607035938735012913994309440731105150466541833539195908989482184861744575328473043542067009935919122720207990275804854499027506124235223251190137809375094537707855111344887972313369284572581020017477146183707532883713972332703953524879593173818499462653879299154685383982486987708256260284565207682922511692991988060508029679253952131711495162231651151775155939986145596707585521316765679869822273653710695980280567719157482095309049463844659138137381983631112121730889850436167150476126044867547798500026976372568891835499055842423584877360718116536400306708087012841957716128202914704052970451941207964073431262949060052196091257386575740555214872190373602511728800193376130130425622269442828476093220505259147554335734903251648272074768862277368525711920731278333621826892005809113818113229707824549814607080248221284666335243596620823027222377035234489511086763525959041214945286450037912838020841401607701886355497337823165074531477353460559135315225200873020423421041392675679276239072912122501541202542961068307730683833648500508089271771732888717541630110892988544550910515350351045148833096155951534251456420752961153877360789848346103903117076576893448909948074289219855553111475972634961761439042965824640965082490774679654197705981058644517876012747731494164811613219446193855876588314313819906985538128682320899242336003044216519706322962914540735427961763595624170759379204129447490636138317299497867363203761535246842195173148199341634408648328551010893200595898864572026063775393363564028470917717901749448713896937882144700427086391728839045066623281823388342539542210897385156346302241731433768501813022474060141726348548602015690846313648553772564053502932207165472640738795816461889366396050308388854665731646496905118970461986864183067431472169312524346626653343678701195440284835010218458743017645505639290153033012144308959890524957215656275301017227938047103444565314308986304383732862786124438131480661580981718023624824980479770721079063398608090820404987489574953577263878954396050710829192198320548387425786043712244985781760960150194774945838109081553685884072662841805632336676558542288102443349692357435300721126424232793894868004715419618699521190410543126282487904163946591105498467054952666452031315372778751861075831503707128770192348350742631728378888786217373105945188864804584787272438224791799781080907448533803173039651992423571720867472225749698524947632071222546957118379906011079068015348549486302910212940009844920348518031708460135679315048691304381057083722069182248355201544150971906819293288543432647979997117224547110519280298703599803829239287484925099675511508343651871494965016406674675120581314476301233397342023806312882680570050030107529472375546686498728215015726672287343078721971967498225469438465325338205331645537632964231745506535020421542763970685328474698659692621335825583043278670443716817563667138225083939857673256006373025734775156964039291362690260115565155812438957902567297279008741334367816786426143471753679008463002713898383280231174210647075324317336071115311298130546268766346669271317666397358711468562319689817305287138478776941462937799060095872730140003874934459519757040385748343885589425860677984035698800461181020524807490517617692777620406712472538256391873598239896511053230261823819029658621494640786919243644413785791518509547437879298511215801843492896397803420924581459747981626648487341974764935304485176526509970880271679152451053415328058069272042465933367679638894009672044654815954360285629237103294039058933830601073279047626730724868069775575122981114152715557301940032088736479795312908165779528970586237946288523795969240009014138248016815876446369727398874211468272067399920993275130456323962176624915297828094723362098552356960435581349691361067640483118016427109938704880610173420479559015145966803538931373302109715917498851797856932803306673268224099050743275857083000462757940775584115327306339229171573040243522742998453701470420130240345855644576790564340433435902485061666729692161324705054923799452344575633401403313251678269916112379083493882603074736175737289745032377927412713874739490027673921352303010567173222580887797838080890596783127153496859065908283555027171699294909437689216578948811995962313661945519376770699532221386141777125237050655754878873755839939403372991225517898475284956638295151748677381505705567349509448066396420061575104362150520661975117728690741891417590005132851509228321239871037603989971252671671274195522893937191646972944921659676714632088099300524327533146122169859528561803062412182867083179380584535097150158910498718257703751475063537203307959980555920479815854979853260084405802198696921598422545635424977005812154794140173979533401356593319082906172631444623072453274328239035667875162344480828382309595945002636564873643711516374614265677166665364631059516644079621755459475820885243404087279020037647300482193698072522256663880323310286070825196005944076932432942119199484622009818043874618807700558281197784888487487905036178982612580307402773273211377869347168316550334642846288816841243596286787119335221998187360328046193038743223803208368651810265224930351859777708174668643606864902719149803560355132112663375146662771814949119304614334006994050190804495379452357111074321267987918764534975141983415777506967735687973260021810255638575987463840682292575761644398682066663980620729414465527292374840364211994472323901295538969903484859234529635463803604831910848043812844313010258222950389739316079584546264858661169778329106439174572732451324069138790477475243040306108135391623026779790643825446000010634654627804473447366258425630141030610189805704238287881323266565295872728647537618686600145222284549623869668669029626353284421179734865298870048367022882316721684233573690483022758340647480777765491246299736374505072774304401272516478430099045917763307115924038775452675756801303042796592944643414157701461769421816429759194577086645590476069012283525216947197265719653283782954713480193351825643953710308883731040186740979109873925382203097203526782467347926561356861547124410800175398206382179541990393125279255149725483846486865101226133633869779745165381999781468866148485040689628873251504152729727604620847953326531176940344743358027336697390022427791106596604601292047495454410262013163148105355185846442374536893975238189276827474203902925716748739752296021399922251595288392234410583297235302594260528564532651067228424820200792311410298375867851996206166766778827102814086800534695778386920451918280925553518191006332391118877707208056851616593737226156133413308427891826498498314925079105741313771135230008375715541947049061504948580693974714569916529226228703101338116764117868764241150268949209951195759193199169528782443393233959397198735209951513529692882570871145800320516346649132690698584174211567327151524089181965473118952650049278829107715501950487637930490824471592833766459884624728190184498574695551745447295615919475163115332520097430298609308327002208954031247472543285191631486651074386396399994167015750438973656249264864880622748595721204750758566587228670077638309726132248728451188114935694931241053080184337675218812031672400924903108114065797742698930938527158546410881433549880351288943985148368565975559796218512357549389133419379074490530502013346257598378946045876420933596592142841072498850592863059845209887029927989757130490725071509656946804352693629314271044455780005000686025446930473178099042895555307438820876619235554225260887230612327410806870866108123916961761876657285748218532316013420983840755382483013474169868574521180616335400572350005593057272410776878110408422927578415307814230894518863759332336371541087571500986851029596283688178377857694742424720137449555103239332818598365248432798241769893589589359238398757737706612456967264925152974416667153025980560930582065037484359817706072552875614700351330536554159923532668745614378019014697275769939611591937796886961278297010686633753214252428842610292008777678062491416614124106808245735255006925460489155433158119055625997424646259209306981858152518519314461081174828485072247235461581026461796866390288043580141087410398995704088689886677167530728341251677947888963841387206067111075121311800218704813833641170082257799185337206781920723630625231806387580482936580942867987341808432480157344174758390442087561579922030503438335626526612849251195415382958177116114210562447802958637393920453617684858011495346043288144975925004376662772848679526424549568811141704783795891531093930650539254049847432924318637369514554132566287700696431845252694746654572933245912053151464465493496023993938342137938906087479323239959890741045201136458258289048929793547725699087905527638088138603953514251891422516009919750284263166370667932470765028366019667616180097766517551697005408575049662661147477500701332815303151056002072353431861518201427930970069420689501967869866110464805951300688069977587508552993937119149246163459108290987279691732923045693523864790398733567017890623544772899263759964941293066875009251604256524791518476147004222719067706802333979532619476476534756196879971785644852043161117105584532808754740532718982482326136750439634594825542089673162116163439648943101950673209453209733938467852349344329483589434382627801103447452516290529133156349318740971233912808520602010203042634156808476156751491381602752349504837680453134469090354133082280000765648872648592398401544699457596386865245769401961048764720228908046469143610168671830124055316148416765881736699747156246396349629909594631389871654572563992374408207274160533587592955082654200963203326733700359946304648514037987188521869485876097458115184524283467169873541413268140843547946002672759065853426507795773070773563590872348676151879239871367814380477170911093355499846387844085431755503035558748416853703659638362953622786367805019822090366046849789266102705816520172383897668223029744825586476213909047911069254842025393195816050812444675082451905671231614447003131544774859970766218334949500812495064787964255545850696823194714814094501489493797726253289048690246345450330809933060575008804583561734848599562563334036208565552721751300321512564715829750443860746979398569334124067748414729455852283000769362266066988283329203957414353988072205132924645077718188282002109377484708790438881142012208933611670140413589250964694303036230398598467304148677136416148292676420382780575517367656061760980347056014173524518742248229051029235294074392643518600524298763891147413349649539859778129119703725194844465624339221877550509272806046014139853430527546066024968419466171815851738697891323296736450891245715505828841597165582783871635362099822700579738300266142685094271528459792333140189504742057519488503685002328391496999225769276594391097536886578861928580850663439180029093767861426700606712391957938105241431193528415120974262817095274985229056292006089637455422530463318567418119878596175628732320522431898149147435491921276274980495086167804143367367276762604210975475787123668202866719764043109911176514298656720891579160633963423172932507552664898853831047481571302694023249814496773998255854065996506206952384462194653394354287794133698618324233552464592860685815823914272078490571593362754376313260940745821316734810234611019494238068354760986752022776996765766319578230922788033298403124596440627464797945984127873308228293384790722339399957732628409501381087455400047276406454276279936036101425500528566261859678875625055954849874033564743976632887774689347155106784797855195094971285439221629274266419288828921860846933883967797071216794255527877671534396881600874126161740581793530094322808252947589041597423751022514363469680142685914772357212865377498587226877906053507524828312929321086784647718009478146224051972935329799894381999461859914573372357414115829058018745384987426777104849071616185903516809156132133593416656012371240259898315578913906704665235547304278945774532631745456471021698704764780999972369333399698949470942349686899120947571532395394900179955195681457141050218633753395158471076002591575481801761409982415373078744799209398305941443375047889447599028411286806811993163484523747194279547229217051281334505804635723566780835464520996632432420590670087298702304865440431147060146334050561415355667798572263733463212121150639210316065425121360725934610815468346380773268494800654526122855640020553579871343567948095157370754445043127914042204936944125763655691120512522906074208725162692028860956014191533584158913675486913806313166757480737763153375024178858596217959757035694089130579997831417793703994497203126286645543665570841376584403843493052076828380979393456338527642146525001421287674405014713179087813796372064085604169159523853098110160001507376301488987713486078111330822897754361377502087041661485362604170593951796158699885278301657101775393368705942600367497899917105972194696536104202719068940917090465481966120756957601928891390161117273490227053790269463628791406456589924394008449300390907104168715487712208865073022544350334540184843216677499920034389344854322610167712801840274113459929173935327198188027561339533055057319382394685401401157373463102195309448336093773331375710532304172795527290516839858687677777104092941577532905600816928259283552092349060486470452869838334595625339343787686952502635193128980670255244641732523660774243411130146263505168942759320597711156888673554585531785863292528970829830519107690878102553036524448527991006031156738677621886369404576682927251617992604437789875489406183198089476826995003763815255669737243582218577843041121493303655119198683300466988238793201672458973206123001617555858019365858645271409272296434712532499898610625957981204606325907179181477734221891456716333411906716863414360128667278986287829009658956943803876576509132364940996383959347428194822925137881227469630075411152256658966848312753528858139368168727701599208677423888641322404154217549076993733725876931568627301447879979437037892543354832462668320423426039339806613944025257784236424654330968726691887813016315932590169175223304481652236370341439099528451155343496093013053829755810568430166803834424149375047676960782606936399559819030245397055005421122587178272497082112620711147208908855172652989993962413111348330580758867857560901273163164882339545754634003927554658349019042770980193007973875195572697539068690816039995567363471325335678158258924428842777285408045600442792664816966741076972222509670632051788813294895673487948988883715114580811405245390880655966253222278547990082685061330498297654692140901287873256734001656553054591885099476690157224809517693698163506570660406064449486934548656808109225676089952981969720723399080576743201478811774999484563109477885756588431991835700658812873637585076254666454459743064546702938779152775572000407374397885773297951554944297639241451664561518863739916843720976187048694238056057228686560250271517561672922533962491536963946554359757616823764864075902668917639732751810200660822072208112103663599482931757958627390495965919163434991814379447747622206457700025045773639286374154969312492146073157713572516491290128088333069318354179571141371353340002919934940155682227765941556466218393216724859392485964433650276215342291891770846284229286605348678495884973968398812776624944801866474671803739324598909583316297145994564120568619350260721812968368570858620247941070342574394570006858433965022553952962551000319787883421487842808996438856651951371122673246099969658302051998023245838345140497772736396899421289614843858633169266002164998119576139464268853795182738145159302566188828530516265640001046222641439744041917058437976308881294363196614486461306726904346881786154212285226360223081486158335019923700638453215294882760031885042262926703790229679536115231720202134160469852041338129288124867262789676066561823482974883749601060598023677240144985682262813257837253426057918427760916965943930440646712086413536937965944216020690174721427902605165610381016525555776642091553082394079091877296249083752676948648326039094250147153826611021058204045897147599502884445849702118196623806531571719680451746456974185403411569107658175870981004419780870866157810231087433582808096195003915255901986812804627987476707487591875685029027765446152150355476127258158806635700465303234425833800388390762369538361707847222416038143233733514321688498128959390037635999225385382222175941357898899393543677285776470946891277441929861303715426828481018646373711550894868837399013626581124785569544692043857342529345884933241140368755210296643510218436500372669356932200945631161646995100574299891487896248100551341084399538086633568771149893384473355168638080853424248447077279198336915135828697770456120459144176735288245597164598700754201547874702822720400380683534343700693870515017360189933589217060051263883699501188215080327057525015310682387715086774454331794925064106350359416353216643658062717906886859475514654833962456310709654824901380673729389780091357828785273153114740878439959464385827958720678443298198702536794297111807223525368059216721193404941997753790812191752535333527701369618173435936814022284165001779419687091586846405403731739699074070831511919530697051144854427135570054627979989771578582516973742815054565164871583003987785715626651341946832916990632602932162530745663357243886123940645042815667946926008320495213305168456424075546124658853146695187524447205751833452589543080256876725547698713382301836044389149751838278048484061811060839307505408664164852184233036129346484115598090470960800516585294298911547518718197368781597314198299659958501575336456669505478644984097386790094710971055357232919021859117226252073597797215200338368829245236660608031396423169832051866454503547700979540262727282260896853509882062248992102201736757295731821203374445350645391716623511973411463661956184498993800646516283795519950644429352277099560270203021087458691907795552974207809031447135277342850668183436286070671570002354482628821119720923276570689818684571243018345173882702574664570835606014175179425312012347102644829876848469466358582151020249510526490614197825535021688094894153052807604613781826363346634436559577065583504526077541578111400709941847367792087367785896376837596049369088245784571805050392055470272791352657719018444089829694783734643115826665487259612601774169015978774524034662731184370887519966748444283348252520632399144404245576593162572514030056379538582797197162681555620146903559403135752312818330648011735458146751127659602523820667517256456416658757467151265139138834542925386688729198727135092373096463435468562095628478823031502544498637600040004517307552976702322513486913392483291118357974064269136409244210579016028355000096342534255750880391220556196492907868101948755831733418834788161419582093376350801047034208541445633688619709006193426020665906334657240486109469928242510922300139708997490565404684500789600285173334632322326374135496323254179454890609686783675250681485257780902583319323184238909817767828448851237871606361809256696139246939094674158742868250979685807387144797672693284259717936624561283946812645787330576893832313569874463307351189000514992286337411883951794734902745221120432251430097503753058053712734786290649589647479331685358900451404977383328533319803912401809761262151426615517673245968007400711487193153162627041802092158253937314824685391866906240951585830712491712798440499419566867777438915146870778718500137533949638190994326683346320105216158981219923544413606957274217213683650380677417337794596425766191689237250871301454948725980917057555288359145175115297229352894531647587623803519319338755456281937069947680027524570342292892276684350734731982692880354985550811117591391136834922819445982447450751958072980356078151544190831157407723934535746977593161002564891193671498419758042866295992134638442757927059952630476800200953028768837958693876209737082826851012414152771124746243596054358310834865075827011532302088071755789194241556384405248574157552103492634578632163889339174839549046522549645638978529692760109533708512129574921291189162736329359465364792546455991793522174276352540034766532542518693294594723625765193878607984196882620449805024135839439548874922392604002538644149918059246332552550312483628932929356778992170060259644612322830835319379734004914466662637538847239867573870155981395512301022583676550590457893541425598899797543003408116790762810788114890234179083351553448420459344212057514986527577355978144705400212818812437837864247828714026085186611867082240726834004324835556522558739616362837186618667978495496998448653814773757509035538849359982277400393608693379193655518315021294405452215132229940809118655005551844396584120364166490668526386670032641303264314659401637005100605442123284857352964385859820496817370366894307512964362625197144476483542104498580450781990146184258371830295510561913213768753874538375264826827417257148396699954601643598122656992851077373421522875151917583356692297846349645384398609054136438776725865350408987546896171697684554121752108067410530074760417523633622462370821015464432708927724069886791875404933109436712751420489168382109544005764324495393522029212550343345285997255088891696937147752692041306219288757719491238377129604853793949014558083091947471096386572206489184177849206109938833737849047387004503824628171873377775551642900677504689652266372058422923300087371968555891938105953220112668751038043494122251733665658285537276751627610197425598380428240478163859330695102763306973914542384858074700151132190346815351491122682178161527365898570176204093836011593542832036006553959144216021355715647117372264863689364790381218187282053986851717681616743610667423756883092893545492697993785086073592991732405917240268328441325158639994772566888223779235487292690058632990577207477096739224032427827007250188444079022533585195755085071160536766491844084283745432662886466984699301723263847770532324003557712490919182813799253327745110838442151762430978041527947571679995427325187206431425075109354897957614569131357071889683341677633689826734982791008674241224712465477878842116229307867854167003093453903742036047160041964464857574853620232732923628687108502222021484402868775644219780169701044283227507622572327087643133483348888996104065975886952640980323749355687004080332942475206124585367589547287947265631710446504840588033677048826423696128488574367262104018785156411646592492931858833101250279096391681889473692535100909035458838900022448607060545774570096596523446499784811627327029789927656317491079412392741467330955006468418547845449237667658872035299061231487330456629838981985516487500305563674600368452505159732136657486119959693428551903320896878083014561646774924368375130436593833598685892069179177269412864657071765263404525744298233695793457949585700019550079528811019689509744615895941470637675856222253808331502835471952657370873219895671869461635473946572267086589550109494582456352007608594540818521158541723147637090490779448672138412064956218956123855516743890935592299253603832084236415849501939584003512195768974050148319016968201699511509275244437593172270308182288756296724230585664596360454702420559910946214091028438846040992975329242687335327165831251861638472281672635604495878976073879050208165998078872065422656615395799893319144396712973855890655392105840632420140457445921120098589822059551603674634986598261047833213793169206184286599160838247147581953847536832351501685395273254761945475809673196413317515641047250753115124930993336364058449790284464493431360663343409332508483339149560424129669685862666545289435213152500377599569873436942250142870717120751242629518756952808350708168872146108370403126703883776277785559623176853459063774666161713352345688206377841394778460858911594073688476273526691792349488601304646115407675490345499719855586777713019200899791992631681308500730276107787089151919698646647566065968815358696639887969251199330576626432001636301493203841098962197038189066739249343422925147611623740110167511466798861190900866716955580149662321715318395793697277417296579924926433170657057315740172025208060881203520768939308952008667985643466956024326804756664018878539492827023432093423761441130969307286782184403848884402390422760920837541042060552453450317002634733037709845703768705254303922631900864053858848181907027319934226078632385411010518175539302362577629450514025257885080583773595261271298378677310430645366773874293109570301633795401640299799831424837802001850081406404666971295989282526827174560756338437534197990601283812104735653791898119938111400249944265476094426262532218270385487600124734465682636214812850179997246045385119879001949304929003099315435294331732960216909784948212022539758771805670567375773231044729100041740701981443163903814055544570240565891619730298930709201877016329638784545427414363148585165819638889549523789860170503330068243567016037890261686904019129838428072020287629130427587008430574991442292058798421495743042185903321857255952145286063351363401399350613526121451345021700703569668897844436223801218250062554388869498529335007385221599926535051314947569928265824065720904638899419163810857898348393814822786804760654878449771861979015861284335998032749007825453455400585382225576898098845260016078474491065592778136857838594561088043038233541166508101070643683652680460615650894186659446042717186246433427574281711073244170694555014263576936132135114932653930474873795115477839773613677397618452520161535542132462943830646129638712868023559087102049988228578432664876102952671062770003899815230502367312744843073039107258880159254720342780943812399881904087589582057130705756365700416376766358634597611144856250178989737747313820778188430690821375938622621807644439022627004193174183652177893541495094396612112970405185044077860747187514985097624232533376347937316742839234075138745954283459403100437979899950537566966613270638140099298622423818261547436860998950898730788760614423741906847365448627331538737655391221225013351556842134766945697553476759812636249274325570246460130073691603396682632310064136245587560532843205437439844248333267944707694614769489180602956814213157898021595750851312807456963696278850054652869849785861194256531971371792908294626242694391902036852854429488690541055165723304876980868567083765202384138095007194505014531030034581307075416897887209497703987624642548903072305666714312162634352480903510799752900883901383621877499042848384924932706393673989966989727418760320918692282352813585851490188425791069559839355332206888286235283583739014658132859483563590263630691364177419973029281896255657464741537010084232602488923113383024707344001898843158524638035880452655329382577425797029910216016591620865455010376003197206215934800472678370252557821978092427047988023173416319209116121781575860949593537915159645368203112396969486724530503186717718100929616922384952389867076725516473930866212186319280928193186099358358764604271173532948744131022602953513023438612185210006179409006589934163322125002163202869254642702183249960542937334245861108031735127834190154983783630568456419249027837102440143726008158447516071821373461299101494214117975324574020452359491741925200951854389517575810562687842974763572106833208962013835643403815253218848059390017929716000904370611337839775474088880420682449930706131624513762625875426990726926521193840945806808528284793104168911654964944042495082139022099737824376448644821969654411758295977449307546802838594044274605821775423866346045782480319213125041635942946399120845097281479582143420795325489628004677855369591385169625899660709034701062209681167324176141237388224242723066208446839664273775375384272919951956254498199468151221047011695425316181516897431119016149183757182015204940503805205864338541737385047913393948152086910075307240718348139438822211467903007953556398820256494217216537851871633157188075396494778318120165877046663417526269311139881529802048739677129429935302009642294316880681405353304771086728181339935071384717670364671408325048141112218654676266634453536564221412060450707371201530810727457189776466318509301052604347119399017373831454379025401020947959222068897395410624138211305074922011025222180371861257919573700528652204526842719386643560668165240810677697193991592330421061430407830023603511640976782249123768117143827232323559062854865322020496565089752900783913968473812781840380066261509855436276364646190383384060477916734941382406150183607573830947575361605313816812467085772145667459603482760936937132402374120586605559906482201852336943469347296838812358124158983365146226232392759263757603421842170073538051487940645626355323071532749858075882482184457111470298184363386322801614309208186578392555808132665549541921106998832762451044782277526469222714869732906104264775786141051917868969287159511741288238106731113553249545455378144595265702932800311495210106860025763009020832068906015175433780474665513040485170151246774587219188295625648543569138794783509240397359040494640958825112757670581149205472672663958880775987183427934257950955983762152917895689560112954143113542481782908756127862460828699105149082260286696072872698550438970859351852561226097534219778397287726575199528714308555879711720138257118577655479165638619649210139507179993664325533435718126949924926680793749937083984340300977455878548960139066774877164004398246373147932947048868757458438652544312563207498502795122723418200500453168101141697173634811084573984139945621439919393116536586582505695149828964257672088099667857967710905089049541035030599370428071238176765358072481995144494046458041550813688879016362521107117532739613794123276293058066475223246780272484316707243547104488954539142551871017868343386736052325828363583178088823986694172877069123308014574074855339310797308885380805341022141623659306340529204297962576815936250968494355782832431436264496811757228173182936921886154616500328794227770576190916988989741842263071175546749538357289224546945049422102352277659281803029099658095812066389416591537064093719575931980839308408810062822346909557776131188009164431213166055326424605871530453269684199661214452062116351628491536181991470569950899315814753379553197442568947030139992372222694934557952865840132942951825765395305460673204235715996683288302276145622373480116893713060750329355712625715910982929749143265072387379917623652316421842201941251348545751971749740128091813051496015761271748587484550187964553178279181728941541025817130329885349687202735048727211931932707149341265342661600368632522449385153373302878708584962944935105736534254844705725296353116182882551752570541317751309390137690472907739704852446438662193611823932612778451594853904165160659740513752491028777193991588051511090150495028177364093731838161697141041523147752331586409683045359675933172856061676574822857356891956319617323093177950523662706407968304338805433365788415008503281650573618101604180767815566678752968464703989223161516807090494236662344769682403478985395941759551821148089922394632388650371141168506702843695792540548952455444436040700204829340305820763373479055802180244782605102484424904244776252365303642479775229888696602822949021046372213170767222728273041093257994539426213436140521723681631893139295688823030142621367769767904434653411502241414352733461107128329188547797058029675784062010029899841330079686724059857661229234958013760187556000202166521064322805260008993350561836493120750833972550956190870715037854827867855241885053857374906689006374327013386932510504042606460635880188185586559816693340529806323780699014593971719512215624649632027358839850069418279743538184859298509363356061795457616172643656758715453047613195800153941657834991500826867316166585960335934070125537753044693127696161019807975183559469752977236857683608850540516299784561275954348162790669746648974622010069042873955155837659838463935986042176296227288711063607107336842953891119273822845826594135858356596058482992721240835484450275782237335857612979191647146000052601370889477261422793871714512927094956105220887824426532846738696621836372008697544353883804121352311077932290881581561040248143992243360808950619850013966433438242031357328429596282571572057344796179263453571413440255202718875834645631494659955739951987569485412487792175120868598346800404942300629695873248714081323120297593188444433631032827087833960521183272259375443237437533964119534508149440784998966844323580163780189079494210851105368035842167209164896304675382467476266886276728492232015988966668919325769230536541504673376755114222335714556065865358550626610621637575699430716867827086564846439228776920502123722962163379454038270676170205293742528708567523696760899338566760655035403796609814688476003702082692307145017483979174978781696587735308346642337807730821568112800292588265303166619436016185898028417414398128244065097944122856318640409634833000497592369380183237477777326719966710090173145353934180569796576721564888046967958852926438618736537466977124050429339555523080640602339565579455607354921926737420292000273836905690189024880909087106658089403315548952096394333459965414046472529488868486303251439587649942067213023570049779460095267081306068092101798863496148837441813259835022895163111499136751281248544863559365652475931690523543547647368493386930311844990105661999118703546491667864725326107485857656186006697573896368627406344753253930315722267170892275098507511328265622131628132211863969959463149332687369108918910413327404370496872286272765512431771438476470677726247859915962320993268630878250614673729808214589262080742904130535927408826162554584343385896240123257087878304692596361724800337257259689606399701517324195569954099166241620345742833452811654626940118240582977924637872292687722235044568577164053593537791100017302426149137608884145096822790563443394223019729047596317363779976587837538009360100817628247513255190154812920498093825775399087661578488186345194862860683870977779431783625081157755251475416180700350957224101168406705781547763919374269368282199097349263001297134051316216360227618910521788290380771398921634287510016220750202416110533171933861502808001452972410948914115527105384821724609897387673924486838659986153374236068114126513897204052500385361308282372180469978920828554452613538011308335001138107242426509120392374519274218625880616176417022869199656127398691299454913625964775924225244490907380297239363127406943508547172495407221827119216181503938027127741646448736936981666000407031980053728315391572107611397311647419623411575701596692104227063756638000855378294701969588923233251900793956934143623678448548008669699088200557995152374834475940982094604732267629025183616432997599976372538501015464142095269132236894423726805410778944695775657258459779196835381908284021511254703898300823446052600727145894226395118006833030307319577226108369992564684852454658290545851806687148218178339642983733007635806448916735217096345997531350932809193507080110292020174035611443964223590936816269251236952374714486278955775062172752689395348727156362312450533573885401252573539394485218610279469786594771595056574910495724876899537476746433854947623260572779852091886731894273193142895739297296530885970815549257894242663794776529847868327532557259882080027268892226583210422990458303007802500769590508055104117916539329701077053724359888623284523661552279731212785479778388427975418285703777972352397588877437186430749379246861722297938049492643779191585674270924039274091597927083076440529031580631574886343647062395944497390696696157222801452921729308497885504222836232783965060939294288477567499094522764971082384169384423207598821416877432553815636176510051919199993706505358786711726717689074554065973056785111975519198483662902278856695066654537463011162062614869314515254265885240772842988411371609051291044807074319981189800858334827853393263132802587789017771308033271288657444837043390928746447444045849961946984076737465034982708716784984495488369212643181774679956491206689652761229223914413732090552922357980543817268216373294765302182589997963991567892967750422907583833953745717380300221570980034046608796146648376844870452764230630934949571285382791689476147704881014790344239781198872652561874188904800312060391248645093958709463770549942836554973476720166567878277685788879235337416008738503922244031388133923785817316391525004091659386852398072988761953136814905942688650861243201325196311360971853419325634491028733233560453110881213528849038102423134200911485548740212741658066020752236152086574949812162513448866318869105764416709484382811397212223380731072967795495465901417502848096151920134527747974168459339448134492669808356429682071260742081544277201661490409407245817863515765092577534391516999626511091505252096304968393929040778424018143021944863761567205923516556165006176614949470729694533882826640844507340312208254495464143175757381096742125071480519026014373889433033131667761718854378603400197298511630517057440987695426933904496382765705562719576941711031179783828488903166653735019343299004545145934014163562587925179245987837353113768264728657632898564027370951106322846385815890377191383003499947119633946605492405888128990172602391156112273414712821442791060994102763217975849311967374639746393420483726071500673774035077969968077964403123668475087064933288562700290060999691486968474028762188776158995335168472747091837383559599322934196904503294799753159390109280344169350352095522990373674237189232244612035695109786925944056819739180366970062476380958374075245624583552998978241476216367682820741590108050699142221450008646514639721161877403558758406027534217496632982176937898113309946341252384275348091759796637452878692135898480718275905881983207328218120107897203201509354386244806015645971405491322423676742658215454519206416684513322824584870381734865302567660634056592561328067096954304732377847039085322794967061173332698589377781507610389892920327402812150771084232842265818661873671028266793771145434925000700400168281159375319069292130937823134144399762821540555413102310634873847785605463595567648524852413560235599008237776063188818159502329984909325532322619471734921494221344419387663507733633961978540792135669840935450253829932074490546712794284597741122985386000056480362304530285238317177774484539423095114138972536676920549038659072277903330258829756184003879082095346377916192873366988782551105021618286386609524083727628606927965002955384350096070779344379498523059460037623045981567836507231220829892621791537024665570827914155399836774939450231652791612761719707667252811263058557752871844664631383377783273456170339213252120096879765816468282113253156748985142626220102709281917308511425913369536493144732269602155442370830240379003698106166599126100814668032974156482630689838276424266237977911023153619799457635322689505065718092005022917096914888549324050033358652319783909305241713822636565581720728802932579182698159617629504345234435094008327848442456483284909764867365392289534654574879354794577344622736062708944313043972450311314907333222501401994144762786895656865194437420531861932760736701562883060127802213246994033121241847267889618425152493743592992985878890597378456267182457019059810976794956303601447183422643812612649456523931852452323825717732577044865437604370621644569310771157085553194869561386595362463851763484695263626774800469208428180531217979294541386494637548181686876203350043167682542145528023552475885321771415943402375939520937308901834823530375290953488787355572180818642021181509077602400736486213589829080814947391218211855831598706326689440091628841065092249583738982865852346994062143492138463927150167600209543996926565672197369859515132530026702148985149105596479956011481910115810244002115739432692503624876709389016246161918554181816951723061037941542130853004755383135804093056456622836487852775440653659577565504064818627098623430254678202673449132909263972327490574235737367425432044111769116249498458955352659328645940764403182971860335204027009865321895519025941907120584405159330050942966817673378226264844119660006101927884049384719491871158894926485562763671879421916902721922748658319461278600936003892809579441865569835525319617756084359312076978227630585947144725728313916113238217731849841377799481561306233365181141443921140027727237593577617141099972564661303118934225996748942875244221161250988355103960710403698554356654468111196194484644741692452273826129591872118155139845604240233608338427911991340067670756351046483713339633504721489687214706448268929150410067353628741801286743417251977275322539814067958538623035711822477396915304023107636899666507742963480424925397306577505319889398152674977659205311881376338812525329788598530549438443256895612664886985789752451410091405165002283799923561164401035722485879630350916742305762403540448633689851117940773827298678409346634437080780480145232696303873875598239992223685647411396344695738157422229559402039833088913432601597891220080663316608448914504148872137306488786609075699360490080886830512629636030964778325154107904160659617376080133047592904974569360242803861938414708199428294368935724980518152150926825239750831422142255560881987053748108139657256145816060578292663948066606360325579325797684747608635286959922213784921342087772155374589392949742808190794412630134998226158740208197197237157051102535787967089062754630811298291854360819648140031262302259530177592038590582462425962712104080438243182781462568253824058707357979367994999710506375751426113825163147719489852971985837124638698710476206801123821697320571632991622559421969127524447562179869810230997739960278650766838619342011631177735092641845762593641632822321760266918737287553730580744980856770721151026474188093403963995562763644998555560864644952046520158089372893668164894802540698806879896210499624502065347147972700865276139672548043190507865457977914420715426975852003420720173410074502832984939314956946714021933322028767471910966497897129198985595321333569090302959733126907391039379179528642635326873590100186514321178307033623594499679524334006113813421176603177404839755911398398800694630720597193551871751484004680344116902821547558740026196049480051817834831007544816307946418453615930323996006385253572784537850768586093665488366888181036389709009842586670222732567746093393744093153988342229345059492418266366626987715540860982073966507262666992932707573977245024759766356554608407779001651695273843384474219244826214774483556348060855042158613320989213251276340001724862403794889217432931498836686007701784398897633174929860046046161765338644124323227925024981002297052148976607303365090579316547437145560447860166142634491091025605570439999738602059824250693062643309875669896369524068503467245022294444070111515515424363808718107233110559814724823580505282153042332315819577005377851164709476732604691109046269097127387811326085394235014095137770768400406908447634790817877354948807688409451414556321901625203790669662963017588324248015850915255534849405963293266688304139476191369311020433715932514066775452929054424681361796092318358277819050177323595716215176265966323503394129160299599499459922959515913914608043858291057611885295383241418223332826207352440281063727751174679362534238604422836113647085124113503900680326539687236986082770806423013408922218619825057952000439346863148674042930317319532610188191448971629594137874783439365893868532961976072050076123993297729382026360176500114203529722590121598005783554003534646817219660782007867545975077320169858183454460716562793369850575201026858348270165159105717066350115529157720614973001069845642093373067235518174690273240170650251591983506227506036707814302526819661521682622488430503565556974972283251901317128959136987845702085315140769372214863596133591971843527563932214992096763827865156694176116222766783474376358798711042755765878717840848992729606819595952409096011675321723218165465397494490687884512720213980568688231352424298569825420600013715089684771199890472312239623746947822216838032028209962319841908859766911143004240892832678493324880464345952695202794280823401393708925439478127180616738682163419144026884504496101308900089156026475984174270707000594255389189202532158756169566054700692812907160152019199800763741714786198622948658381141838791821604110129899927265496917198695687533708771969130945975734727125551453930450815613186489862464067584188445117128554982240724363659113145610032645609920537264261084749253858387877199225083435677198856190342720476148292940738168172988344301786359406400789044842861914546318840806794780173955263799139792530627606212844083781475894394303774770659889068971783845329106300393997644186573256611940283883051242991942383698477769127021894076360571034851926135136752544641685392581457770585933563036750730788208059583965839589030800501473825677566524037709087554803455929611018006637068025886445626981476600758218673789282566138086917660007803675126231617362755426241799757289447689970408200551022944190752107091037791568412924338258146074418792915980518027923908090126923306995951422670829358885752223998435321193951186880957983073606018161691495193908278807634548389975274358050933878402980912640269893670814161221837090922689763360226039557805510826886602249440101610237772906632282845589513429010947486690124928450705028534654974363079602074989563223106184061397159491122255609851320867344301760575040517605948605561550235744795315397670109439054795220041090410691545334761547573254668810898888248805659061020956193594872212776379807519001161041801597309915486044531081768251048353047580159561632704409515974093323863858917201477885566826220328205093219599364164108498900584576705951011413845082127663382661289938358752279095193809520102876896640260560680169880381718564621626926403498217805826477941873125484561126373460218400073666331905782628650202449214968017758166045203095667135139213465535716353602530539171406089808838161576651964493657005605306699481333328683978541918061332637253480270259077756787163722577728520305466017568318103489504646272824664758208629919999744827723938869868077750917121043860004095633315733526255967067012094098947242809383948211910819817381455859434756956490357891486540308947031451838364781379984572486420557802338126681014810649073073617419526216367347435393305726858974158219172489120308707734364304868733547709656383993865630433558223035730529201466565197939207080071498884657086917153645375029321820269249189623506887237927235114608302665629507764425352071489923384475478154810932342805207473286562201557992016611503844063460081030157755485128780167431101455949231616964100947729989650844442416869984777303802127800953811626184040597133422711799380500252741751609106023816878267270858122565598430949982435162565149251765145099182128352894046506829113763213251354945630662633071596512024651910378927015130191319908027479689778808141323676347325748356472612220450103933440231968561510927895345510360082675491580245474533141565743592978823726249755797869053275063724422396886310726251486439701518820488798903444917712612480864502550139273045653548934616190644180479320902559967830225573092441327200558904222893808009650935641170552065270905245338302882109052905190850197757228844159784293534224333936809582501363842327755176457587006554291319639501271505411734763727343357080834384535338636703631176384007914969574735096876927262055115446452813128252228124340563943390564019451973106107768625854139671745545238925959092545033118758288620106500849689892143216552382273563223895416638203584430316727992264100825690818663779085837071816788088200318266276945626056126192290015069545861467550411869233492002067367245821700425232094920269279785707337429199717233797656255790794067080975627689225088917254055724369593208672903778407536237831138819659948384978292075306139772280542946928845335129457342378768421847032724696634452274824991021892861141891772837166646016522432200820560860861306663860716744438038810347771269921083599027172146682119013734496022689283843921856176143574647535381858024356132382929331542141055426239536609962131840268857784704654506454662632916364458551083576842061904826388432077954207759290522067336636361376188474681472140902666259047183190783351517812114638312618461885866372026200226624207134639642558044774964664308203668179423526122903763174697813384295483432013685858269700862204472958349593223077370714654047587532018454261269951313054734265257023533878815670376039785363999834303751880013911889087554909267591930440779288194305521524133582955653037272601573712943425929968312932405257749828790239728819271460534072949952733645072669789562685500478087514938260752381129786385158696371337510359978914325827874623678699812203115359213223431262411473929830880396588614838228527362729912405274699322601516899809954775413272531247411749353878035644390605657128405119114546768666124783775713383033227195605243958570181926601689107355777584193354461557671414888768302899781277183630717230330256825005045593225393527992763141967270127879066394161358897483020011941592898183149748154728202355571714654898197434264685232926837208019746878072878636405788230058620073879497414905414905518164121930418186208406923925618169718159631417354623258479961977779661969616439410785474015684252715834849226602495096139286009708426850641208589393746046499410667677931437500940512418207498221469225421042877141099201325630023805727276039585377632651692910972282086518971635963498872185295899040716346033507912776853789993739633972997713512443609853184496546337556181058963795792994145466870968724873156614367153336878633386678889033874687903345722589169860731178557362467489051651743572427221299043147018000871282436537321268761956545849600949997566293376295961986640410538189211328752108084936576121213443040047078475615486409063810127346966339952184114989050347586940067814771576910001600990896711323255237397236512249538729522581889688491741639108310253054216529818082132467564580219909414217940513156179281400172914297851452714209713055537127863117602550170415821747298210005133610579815087659825095480729877899337441099213640473961776578785639017383690659957369565451104443785045930688565403161373878792257148353177897383266905875334132727564352810455768489429266151787739472011116091976789387939777763867265468568402776676788530052812676218504691543943193908871844517854375571955805279423169024121649069460883261045854656180244001555872046266721857109099915805330472436038496842899290398859641432952778447233371538278893530381391487559541870581380244898226033034721288667770332677406103843945787612279358666665208052185870279211047753361302212379609896631624609447110763243740362763994729762852816963528700843549591036630497815644785296064901977893174190100863192228029956926903086506664656199453839045377643163704637786319350810301325638457377728141648719003525613890052356055536100428239390069853313955674177940915392149256286693128545295804196207426214186039176719795260545862814717568276548013034688978977227790619697451302101699768651504598631058270401925315174111319302004638643507622396942899031055237322646442759431620659081234032221651954963925987230081383520592494469114526275796457173357997518350703840763239143973359345564059399402275618291029376894015091339786922644815856861112886078553823408854688757360762761078021757510471350021205370196711808845987710181636461071975326425372445312464124315341436123568168449293840382146304256122024735410550247129975697004454765536675149939387408408042987232944109930413895084487836991555937717136761669932450889684154630845157778463672839139739892907929182321942148118463134727622003181315521134954501409180614609366026535490942445379510202880630174281458502171769073871576076680801256932448521792109841307585429893074472279381097330610383912508751600974541660773238507347630987957225442161351286395219475312369075495051812215554906309380236800389864363624357790747593036602056161278654706200278071103206138596089614871535768768293962754558030341614144385833522004469194627665361279878535766838347746196133325418919348485448720925318933671140038538383560239083590779382360804007652251957935452571193722500259669434680921154180571100576528641353460522471959164776308604183879735389295860131681449336142032365373188217390400136887328287546919503491740344483872111310747817798360188922422612113231984041520076903416772568896676627133364171400705580066493386162183001698909484129789837985371754852798479741856532320857970754666900481529089300555392967554004024518362412413485209707805683342690470372273076789741105834405462414045756222865104225164078304111234927728067520379366378587942516270352480969156048363288487421524131187087973700070168180370195059040691348674751804178023661272989232343772632838280405661566237073489844351242428373439693895104663010600203739819627245073253172405537369689795842192285521103215453858121009237113036338696448343024005899315882089019482967515069714006174824682352177737294868598948082421481459377298487359464376286736299244837018105165981082823474277145025193690415062128493281236581715657831278182514927500988940662121716180031038237783048900636830807009857417524049078993062473053093782147375885434435456389150092555876254818836913355125909532160391754557925371203606127738446184522649386609636430177227152370079207866647954188945815121683574085715484742354283711305170743075170209577473784981237556716497872318398565386523306462879017980940871015743972579207071667956727628230502667787878817944849793135208761895066833598620230799275335456930928583951049605151140466719754581902496735475030875998577992249626600141194846962105782619189651214107364781720475995831346828656662608652738317283092096134804090806683745639363156847502655310893916019912823628478085912902675089535797627998187520406080409548788886849503501236437510753604071368037270010557930964861874023241038204539766206743607576575127652178295746661512192125011476952129867493098424740500816182053994856721242111148283729916015113134110886215717691351661217603865166173064750847386166608730686301648374857718074192073456992906578418922725184459837867915017379970687338431457280092181501318058450978010120705811009807070964087554419346356026231760877210905559627720673216997965135153914404761492017386378631282708997133124799153899991231725559123223094488941163216896948401592999102610251425942216780426176975256894698148358890905072177455576269948896966229393362348053623462599711624262785737585293324122390504310099032172984193471035849767408124654357720533244680627131522884906380830442697275939735602946656574259406730478996922219322556494107969356452609875977746633147298856138858961696050954411917428801394149564483564971806810128675029578843173534293694946112781956423833728196817298311281605662302844769117664995542553950587074582731822801768950906140248390991608021517991604102400094169120327150223535631504612425065196879507519814031615119786869455580078783933589597674675344879682623437704990929634853777212155346928891518470645338761732863773894263334982668547380716272441746959574665322781827954250525802567857336885273380705686808148834246669159454277157009478737562742622459215966482116937053013356507831806098533623965452743511689454470541746437564193491414036340023449622193293237249653140880671720543705829252565597149415008953781261370590671792181166807330392708838076910832536348496124368517068994361059678116378422403508695309933050062720147279866380767397154275409241539745486253325242417653888485243012152140485395201660986460919048263402356147354163955632095280605948385390370675477443158432362252910531401289022997290945304394798590564520810326551632950878996126519501707445461097720153038323297326473929270698182604088690708954990518326843646128105530207651979992542772547583621906016716694780535243897497323645081675091815584228626551729138447769472483826789164649919090874753617808787536579348377114313246705063118899303149545416827105446119474919729425254119040216434623996696299833947072203759693936456815653392928954014785925026816971556564858988900283529642562256319546086129908615273248451729216153620508821611158852899345451197276433403871312348285059399285771409494149685498539351663293337810279238165544604818162295617230837233095670313469717987794188697866458111533262864274226306684663925456915538107954727738510584963727524354170521449770228012153583111606867620402460181681236371222498034074871646704379613571842908440773209013934891445263109819941541138159509735632464833260418277849198127871318161972806517493356101357109403509351496855610558637149083450965161993786479543868485904975949771163775166806642020312448423395485979354521744919967858368516980316548563246809566857749907109688467671143834251082639323243478803980627408718813216655164071584039081784774515054477774906507819049779200988113322558474894239476624497430463179272009171827044556460579407383093365505282296454805237070562548247015378440633428197346617250482739024391775076727425796317661469746487450297508645921732705038695925702739666985542934930896289086772486987979247287874458995050636730485978733684933153686671011538158164681885303164583129395526034793924063336702182781783852148256615485505278523203689879922067788639957647145548722462303748598201760587515247273847254213291460928404603900530216838448065829796369413672530686612372425089631659092821547318908553572326004357772880861295652969837178566234269725204916345923864904724825105196784436748624208384671044100102650407301366013578993506790921439139181591184468537502474663303484458282321232606290392742233857719327155189257204539042110953760753138057534832319680375999125756073320618486528307030462900949070595588061769148295031989154310033402871342087062378329365473555596340576815307552146946385693973992304450941311413170455140389953577517205034465028914566263155379369296404338544650735559961941911499988909751555469343778301189348321245706727304318863144336149134047169143565638025560777928729692265537262215180996400820052361990270625534545403876103346789510079435536753802122670905436870541418536456630446329428339193681829515323596527520918474852098992242898438974970518043150475022662915241170714959042437899294699693935975172861768404530252243388844885294428681224121197793999406701693589787878358847772261836270780610021883329701590456198178245320699370649957515534454467143754494398011459521489404513269435301682596202825047689082571555091258997124840929892123783725744736725655613019149811745966704508433247288431532684793180640495431077950519132691694263312211567034953439173382649676211097084673726227445787927880493116093422097939446114432487471339005777768807337163613649250251516493081288657472385831890137606585946297241573075955736094359578086095101736608435433287799241264840767100826442102151431640633542355883740597854907735735212885866940817793088663024849454629623353509249578367223464826028433876652110679417786273375444847648483634694025621768587815223590727850196367810695303727988678621343664648861413200774623969762909063372884835973629205303895631841368884081257046996123093117948368645006905702367285580513466157102357728333270550425795876056619986430875450121797030703912031399262311725320012596205532895755051821053537538248141717726722704608064320117728707421674932754310350108340100989197552719500754350610399505948857824530400944529778549580413958574893389716379445529404159564404809215895497664239083901817533489157393936345842339409494757387310893289959758867558659752491345132973439119461548175043411766488706282341759307493482882860695645554568636834399923392693888313446789265934068551795560237598177791392490985351810732738157882526552134052468486450140424909293036527448060720044831250880156772772383035945414417136690871909654769838652416614586822562351634246402366533007900391249909034346289124645809642380573693347951490226876759933173387513825050127304109165140074114465171456851664232464015614017838152132573112822607141927573231732389910745206792819734033357345855117165936930560924745178160257620555647408205348347914493945544721483509181907479918725489372688822768636841466806727988210080448240356892773950072278889193520006293403839006257067222346865777686909921187677279113196010618598908005000605414976105780577346786734179340355225692015811716015497693015770237935641378501992246500182852145965289675609073364826030754056479711941340767399845023790083404547394102640239353120295037373048213538209083504706149570085451521969563709009415467623704794911303398885893196584825756126732856140542227748459280663948675162617633791652014951772566833274891562907009363437822862590031189678535029203760363247592902790858131472057623446260171170093872054155888573235172799981650266804810871298910030485523981624379385140596018884198789686380180505927149650257398171366765132709271321155236999006109556082829673835418184903366447316178207179232636030737210264485286463034927152623733973988820750591284871839941488222317134669760449682978174329529105187413339547119729822868378707742587985639602571496468460674095714654884156781317854831663462196753003763035603643382907308239202810570956533637711245702209329535143146329098614853760053101526043724603672798683557625198579074653803438752679456133694816119462706006564421684728857410515226672067847436059376138679377623227544048322149846590524647134935506331057558531183864804774259532109359448879262475518283855639683362513546811553458999334966286326017849542215605021836521844364520052017189674881645343277715468068000612697219492521659581886452801032029459901451016646831524345190152780640069073758122031607239028065816122697197485352706602055063329857960198795128138939425048694336723706644398927605728580516727921187759666250421477029291784811587439010949691499596670625241392231028704824529246686032059823182171715313609642457718943524508893233309757340071407852829603105213713589582715016246310665618258473965583639190448187089504635464683905054612023166580013837644275231384703249493700469841082971735871352841064760222969459262976492404707879722784251587482755236674101819329539206323442670347351249754973254701418148011824794650356775459294074445536285123609190144282187818882775631068351141526081537522003965395049093858250766217602242227650787996694206462269111793385717221498707345992733545806721305586177436879721334997565588015627865392140398484942667094622896483250456181191448352634769924441738373065477411262215360869323435371983652347851878406248589306427412374115674294670706298228002432778780993202835567645684429350538143455582065872790653440369659787793477903373484577678509832357570395049612627942320641820808748154174348634034158561095181726318640134405401297551156170535863284306600845992250747730444490463762851503398756178035036513701588182973872045934324357866005019180063418054873851900637065637123812323618649297959419285898042196017866040636661444955884906382511320015648865382868288204471605639164463923157449609219165042207189841854575448916276099048085080503005256963012987456175593496446967323308937183216238731005072900741691491285032958799133470534504596606499267902313033277037448967015749229546961590826802677276940867750461228384274072222453253501867034674030428820815760406513284633188343091616220416678361626978229923475361897091950025921264645419545919696094397102870993053373260352970695775516094949094528131554303848911072883417950203195901113118918595216431094423212056851851306289580740615418808205115074506497390887142580567405286537089695584992735486197518565021820206010148555359083827756357800612788010242293556122200711333131374827870334301195075815185475338661298591466345563251192391495950038870607333506569164664956744408309651438202080835250498949350398347960471036931653513022994316397339186691757567139814712667752330996660278163531773890933473286941446538362136728226477708963056696051504683971998445833751666267099364618989685371548745605629565178635859477761635928337607158351295468057616122809572116453886569310649265367020692047738713980567840653583130289430223386097359966260003237830853014662854204487742822512354126318991106136041178580302702103384938371347743629118560592754143179717715340326865393560201239509744836809052294260811265007363556177739692732708159245754016217888908353332900273539833791586381168244788370312926804868245821794377464715297439699095980994125584145784765469612634835311003093645066539739295568444773403315625730748664946324054574355276408031604276463934724512138059954231443343959628675508556885107068049411853298581285546984412172902663729974019620052819677225843437936242682312224798632758309178813641747714567070289131781608744919682171926732287574841380651754133380243820603948387957482714065903299054128891844166477717482899842593892416954471350716814507692230014734210566769197342015064277919742994893079018108628614924517623311514330174569966675943762754519467583523016929931124168150999258048740070196881047798905288322864361508140757459614391123930940269863788254530148271621330874702052587193242751478384331627830835035572243278597324387087902954390986629597308077293855100313826168899232397507547473706130177916924303508235148338069344489696766157426147569999369971295101714966610625723313094981783115067245907860987515199689458727137615884065798322594227189998567025297248658713006163902920462782220702671608375709985692772611581459635915463293302350027833275491871564053003302080763801647873000660849065649768534870384375125099380921802457419815098910237445333577444937553074313290476174734228053236854984134339853253819491385342739601948804011558251911913037864294358513803896982317577123847033086975680154740292823802011688880170282776060470563509825882708746979329845444550577804729490618309615463835014719535177113985351516256260335046343045921257926016079057904380564664723498257011525310315655394576887595743685702022553986499233018616338671173699351868598538437854153203714978628689079423610920563136695436897409599656445179104508799798555079493631691396786183791066878184071794519532026637369486781857710642053134095854169460954690263569332289962568324491416642403872551852428475562923722883302450753295993613736001681062132132510894165791510743994463041817600351587390724628487842314090046171403538283412962369323175076415965376120127786636220478471935077760939779966681566624462628136612651146013475274517890521088650055637653545782909388190265976676050939959296246148279877790523635429138680817824878949789260977260795683211944928752717683884521622881540532026534055752543683043309923367905963685360108607942557818787650901360307201091765714947400265317420393392134331356528110729940610564338979953822599161796992680780680306010901438662973527618257628586348674870897089079653766459948108598118562118719779993480605724988406434211867040363126733898703797295488725767904741734782284843626305369094685552593688426689810503808521807413841756007027779288901812447015180751399376035484022537940623900314320586020379319540637867044794892848155379894870612143497202398835484091410482863900395459537411090035788678111065504080121994811876853293721461293795071044524854775464111826984244820876450151374281881915998551069489643818245935761023356568418566857523184102750381364336453921806276941402714679466050935582319547189197588264271379210892951446100856759707843313157902785303515780250394096099491748941600053655330154655037392467844550858556741947491929190773726540861232227942574311764532352104334382143673324695408148171930578422021989167482022559932283662553108416552453988270047736729562778457810283943862637899722651344328447351984393370370028701910444697755213127388421182873635584521383461399485741388135129279281263850929141692231064688187327056428072112992003785790260377835584009949859256046163353841562560432664330294912258127723315886305816697438150402719525861707699463837257979784700891361320146505092790471724225865366084340409763452688769869834166980764520459610994567062947627457938533436816924179313867920429902159290837397709872626928814761533135028801674808581951553232335173636414785399854557943337275538271647244531081614587556316248481480227682514173276295384449381636648090028865624113779368338203763719698741362360641378677390199373632154015886190738397360416921724811167799980173608608267820126308748469583707436660714316660387016937302804483546481215151305379281360849991760710764313385424194660048659243795293393676943389546051363276822047555691597917451119701397656571581122576991452754420525426949228808390906845006546607044958115362411425899074372843979630862182776395135021816153218667891374670380855217516034867989136843841333085774631081992665228679260015452744684533711594491174003935807665319889099695139511743245897522648447455113734983572668930488708927938448155952069137236575029956677770783346740790709545874990383224748919147038331570341889249774229725246992546065912808735343015450569097422197689577848621524568652999713122075358002704288888144782151923507601919738064267914367214936794243614293637944201235478912767256656553772350421118980521114262072389764361461020252655072946477936256656568868041853890246820452892635256849839880380081225964051568598116887571272860979647417809275299744203685018002381052803284128016089542720189550747946132760262838532787243191298593156579681347205881462170105182904451961081639016395967856658478950373997566894265181481707011965024126581075602143968096938869049221585195824004681664851366047467577987642087191732381086310221907984352297364943250661859329991660599161559729975746174555957549257256669707048565927993609828937716583687133132938257906096191636214390666824621156051643521936415915892191262804935723873379239577742599040323795572857356171083107093665450194249255318885248205504321568925286517852930241307502549270776710768834735249984883149023169520152456628697545662340229117089408839740107347592010860051635620209265186347841060160352719924092498308847709343460896319420925083746123938461932231311763881706367907827815323501973030866299959199206224151541472204697680199935464596278769408220912284045266177090733821340736079915176410633176163572315309158408124769327270297034504479581471823249558090501051993887371364156418286814346641708376838240740244015140685039094983923186954135902957405637388474491812684105988092190315450699053550558575612922564315518504817211814643496544464909460819836407844336260005587272207803476256668004859332757096954162745279975603888345953360127300134806748988187410927271337892949574337618250903088623479507271123435626204835454648972729294341632077925992139067762334427270582875840226839217870808701243987651323750902221103816620315485833466048385679710089529348637633313369096509921406639586391272318990995981309805926694673295398007590031482286810140473534327129948565152520534603706235768160008716880797238134465840099193419245872020472862695399979482516433696261056405411229834811413737458643863165579466252437486512094966737340622536119382155808358703165813160216096984500204824978859245571355477164886909904564705677164483955142575675112976326602462421743151310781961885088917021612921090858309794058330320848374374825042551268581124618978061296034803061087377258681941217798002052645868998440036698194991708471194905015078852442674191404804847219450630048913698512998094473542305418149062517057969453710395308754385825678562431749566580812534511556171833138521170215684338121466222116726036305585767303366172409692937383980097391140994938225232217895543750514427798791695151645780489888085199691451714991443862373231475940598318376769053660705612604411018112297670142121617625844312190868873024301948750607893759496406516795492075485935649817822991176147804209026418760135184992412822710360730355246807385150752611865015833891678053069793940673932578391627472171713800000944366108767277366713510978678212783705958434029586046653427954725453875434043160574513187058487353642061196253600579967208903883383075290897097931969316056606887311062270081156792946133131632613455633426898143051309821902856274430019313581491245586826524884793304234166034596358291235537819012388394655622375819544230909907927263707013291934742524457615085844153501606777660648886252202661441611575698235002388472080141470357761740352041244708748514383803806770492584541804613050694957067914638113778066250745389346968830427399418225129557322787968549329350338509440383981766747622990878768066665886411980330357188403757791996046140731671614731102000634750252436389920602949976868164589505172831264165479002995673722794714593297824843656462210610637293978237831078832925475790607210923252093457800836418928752806825681409001316181045414618960969483441366415728119867777838339874567636500826635138275796583587258139814256366502829460413915547150661454088502047947482988385993231098958356425911868057630618973830088239496162909519269659488841583128562608889498485752885817859820102153488978931431693886727241718942536376149859335730452076674704852832843488610882087411817828532510052546012694413993874539051359646229564056364905235029679226855535726677191927084382000543623553330568238903827857501558702958724619764810531537691904326637982097080328857677166777232844569806051717075545277657646305213018518251831713454670810023088732137401894273480477720353181562042479907115857316145107519079676834231493819639061042673065539464357129699810725035486961473145932959882154104324286143210168785424922014095218013659383889468734027346981722647951757274989714494233629880889458990857345380994058922543167609108571372037118787348978254568816491605078667658128809011004733818582171755687795469873538730019406001206755709265577621901783474448043490494908030964362462188575205961879509270501695337269480088282521694546901971490466381824992930317927396544608685780938685418092915429468710116250046223103317662694447917484622007061448063320426888179392230613387027417083761911756209737759462786704814153851932747764380992137249433623283065383982509301443593172443093316101094002737233557609801439406010616736932981232842277312496298488487644929006718021854503880813657415660293332978130798958895811336889507266253581839637053236026134449653853742082083924029726359935817356173727098052934386809751110281113698355998935376201935848365604732497234082939572926023821232856825190054157335834767409362137956671535000609601880468279965153566800750454378840786850791301429982599188637323320827143837761297804878243895113040753303677595686336226859025601534511153482418446811211228376049713461871025478493044847339373737451166454005209907393623478513896755963027020832185858203373169760061599271504716469025646434270065500766643506757988489031664700782048382790593756293294229590791177535914382289157149926959975969608272559014097924628736778835327492715617571999190727474769274175298170603237741385191846688544288474077939895046443127492527249440805888065955079825867251498119381629643325454104039366056795700123374071501259338787013935007241066263710821340386361376921556756978711137273091155113383075429504123836295221247529622097156213022617956125549718323088223116456023143210468821027909617035725629728235573844007458214321427353791825305820710577821125484488573599117261306613386348348412740203222343889202640556355472054914452987060102429057292044093031777687843936662864395156056720894588116385539244008773221192434091436169725735895647294805729647349103741103491241461512902477183880943710340208716024667552603004665548685940096911023594763672272609954223565317952287864993028195615960101956780779499104148553329608045873021718242440349389292796771083732746222778741230612757752891971618870531955685567085559121676983705221122553150368433747768864132181551016424398138206868311816976619504665127592538653432484376524515192961949365597258175553282021398901434561521899401305784823431032702276593959084486108143097319018685896046557769862712174353121919044775456172101878139989714771309624401188360991233867337678736398458466284792793708839296681788893980072877760884506109500219713848494902292557535118415566552491711855475629120053933378222109383997478109852155360417702654724816083002915930922229388422139221620459118849326857720471761479682229165067329749627008906269626910856011776181415531514505470874133213134894922603097957608923124359467495836223643066575921352660637855360795212795396761696331307651718879778316926691430468861721041324693240652140807456892454489473092283005938690081404357468081622905379295561969541036123094266757039519564743218873806386767115475472299416275814271722136767718556434845871299871170411506666823067087731547989209412327876010318013402958803484667632415188441560313797425503694351107963097945767874774381546131359434684114096124994481225279372945113143419379709555867413222362920400070519704171691386557016243079861247846961782838122430300143744867897999720706259725218689023242651231688859756934352304474857961194399363631773441839571042683929526691409317221595313808011320927611021126400856777580855622947096210518959619706525854811669770082375939154807693372857712479868506655275423196522911848632564527316257061506470486683370408817871437794488182135896121891137303943764824287846497107186124594801010465069238668801542346344715612779093650794000003334901525480810420321492192727126346042248374024822093070883337588584860665583973016709402910747067656797079082309963105759256067311055617738657813191833020654353791569473542486585979255815800733288186688889339688810144749486611253104220351127600060033088487414624043993629687545021387787011703233767181983064001064699667461042832256984156974350476790484944318783118903731432945645749971891913768437747510218742193162402028282751662553812919810436552746729588756295518124396075869551211498109453759169913267908393511641915449887520285908488052950686453133089558624320586630079542200975189985695932457782015121144833272579598800250280796436131500667260236980427256799934376222090526229945116444654405434996994067710564179379679856936122580965666299027563470874327793747297275481764668501375821485700713517630379980712386821465578425601965553054378552483408968362330238869090815687931153949920401409468576475318013246257365662553363458334381170267671984137258454785962502270678243801263864921196596355194146863349379335007192427186669430895938135382365697269815558542635079551056969677176472042136329697048621458150586354307722322461160702313959743522555647791348485280169441728207099151176728137845745763155294208566818165429419388613410216916920480957983043730456026289819002109820798592902402422406473484997279014264269713415667609684723477769272906817095722098837412606623203554997489219158249877581872961932505341449087598267617046752287436447012468767290791973549155245724791110459040653918767101772448365998710858360425852642050336504998195281003492431227199905767612013041853621348603700890965971545627278520553037834340011541131846001405258614244327612465733493693564603432724075206528144558477588342344338380026485015825459094799723481811102109988771021243429867070806394708608499425549999452605290601952647151858005247609110726771131181008372600122287114817883299503688743103911287653854886068339698964085141246428208292551186807092900984464958147051779338165370550700424613367201726759924204587341553334458568476207644949016751237577412904558271066519809395556411552249948432467890744281941755489364906096868993506531113534181596889356749817383612137959059851906996400217821678293064503067804460723122158450537658244435034772328279559897976423003747958394290277025278602933117971318003701098335651147446762652184179120098365139235667935004880860839292461655009317286324404700601475171633204237120263747024722239817632272631095616900313733346889971283059957137916406621388765422862513307428547585796100140103314689458665997696990501408930034660881534157437409942313879384353265035721235164749606309905179734035657797932769281132031830024773253921045744051292521763988733059355854150968759805638351628726178526003897974538104634518153248903048533870856829415643673334369948983837670263813950023605586641165975362647000347048833504801945217974024183848976531466699503034481894301590522971182797963850187657563586820457110038894603379365645240665565571780919299065409562681670551851913411384742870554064307189155716003116745251480359433089557419672029736323776933783228725136951600778293872160004963688245763777619179863367780191881069341759366767437010460652241937596699938718026406903671576011874020428545038892083312671994961836962660521450700077940544133152998050334112012673196213733841289096059915464008299161993272358824888632109918338058167670486018203206209786692057922214841761223403530842752008488454329883454759737838017931193216272982051723805818947098875762314738883164439904975512132841870825939262120445029245300995178652006811094111627096366004618833939486638225487754317771940723588904530369640215661070683761684864383500687427275106738775754103658529559607825479582363916468016648231537540626415355351394894862881150704926633761008388946663864429050984495811627080250949341054980760992624519159426399894186719068133481715398791940057344280811834283308905064242380060867386934905710577192196021978446665435211322004030350864426654909864536055279948396682914096449152683316914667244917141594866421062874704027318737367757535788065325201875626818850407476374187064376734611509459790895270714778535944175212789957275038033708838992102190949632806644263861513702219437932874872486601509415362760998582551138084298224981713382377208306011289212802400030046885527318634119389105832178076788246241882730066309589017680422590768012715616031772456282920915545026507730195020070517617031441447908390117844247647354637087321945615463960520378490563389732232134322815917465407168011084780865475699502883769174549410132082682810040049872263358373296525494188572612413223509214388695139814535399136921836570967438032681424117915128217293668878141785975558163174770577723437930749018441447908670453598506028053179683206534026287207620198792144790796816715556448016215065924843286331814933423624273169753718851108035690175893660426164582869195920546011299997779399807861716783216898891777481310111011355312012023618089693929928523063210571513346849086454063685795356268302593164827341908321352747161301262656379652670199593530937100593660166545678447643989740235854400377846797230804925291048947513323472641944555010214916861342614075355885911771121120481685098663597336851573758051698195719208419700414637425003034201442435180650497160011295012358703666747413409037239320966610419184421851126089150845570172319956486053419722538132801155446966273060991487093760754819586671229492684673217682958820965431598370300324251414823603825078091148346457846785482042292095884439767706478061675115522146737128570990887197302615771600533904404035215379392945030169014857669341491420529151209601288527632558600719082722338027911075985244534322656573611245420580520509691752793521452320690900415932063824767651720032469072125245186593615747088127200160503876976095623558366123157050422211786316031517521965244564222942390951094377671010759203395845582925722236908376713865156318523567201119193299467093443494228945722538121628530209178428521748546761241992270173684377888816710018355619779844917982365664991516183582418526843773568813076138831729624251712937933677357190080904568396276905600937760880678741121270806711786319373174993125974930729412898064214978348951083861398517427799533651484383815549456155430706118058208783560114165078396577813341148657120296973293798851117057137983480728802521518689852993459538262429866680616929165050705907642954845180676693201584683118699897693613152136870473503522649483105249596514769073136436944085073419693781333055688051877290817354724121138815621299527892678814160272005051927898433689971817330115000229913899294512424157883994579995959103402837151288514294004943985250880321326493694236569916277752222655374017471526792474854639286359953545985211184789243434880263268384362524554394937163483445581945459012443262919983498568082048621998504215050895941303574125269262083314512385516392621434711073422736337853881684033456653179141962872387071857122937771986534727762705264383805093027949077914879265212207878583640650332565335479004746551110594794481296018965312798368001158146573427601735615876373888354218148038480087865763851464016365267904597600216964833544735643492940585995616866227242331384686494594695087247040651815264269281460397624917072812715013972434536087473421364670755063908870241090973407045593210089393178320938012112256976505215115418493183183687337623588756458794219197059839875475499066682304277454381155867718651957814733182486553278448327811515757185137546455792972107426568641672743541778407903639946364304546613090503228663718002784825930602071981983832518564725467375161825624975111120207676696609051540072897175306392494522026270984679778783127372184482821788102292911423672627274512607941067528315565015834417131592502423748125157390426357320898133117529786941276663499458885690454453630832241946742977014296025341150494640102466073106534158299758386848106954914868725029569439353505218768633902456620615736038486503222883740170676202533625433089110667543475173174206081181638239799791523232641343501792664799226883184162815122199935026705855213938978870453941528483453159508499699477412022234208013376833533147664978693081468330623054373890118476191000681838706772320668546554070078600770816684152288066346576875413928066539951601261443512987605102343502817816671095620943056802819018144725356287354154817541550213375155838553858271769647276933139456828047229127346739996653088207469086681942297423232837416662181131091637458774263428999029794676571747533844015885281404836141493581485384442659343213699544860832232236703080639815524255461887549811709973165210772816646223545549064648813143758455803056927294350942811741869675754823803929476149137407137796984904648258247842328230212945271706251807467908172767206508003562414664495306269545916641318508502136296187842291906726400491048189692153141841172402948670676674228698468022975409462866671967555595892093186705324171565787768615852936244641569014120278141357899919998306326054800760548577203816354702944599570529333464139405062903500401636925697656381830787883351645729084964916527260448375389900124196793857147935608923050343852904962407568220956123186148965594359970091757587463763517303229317597804614267901705433166332599551904506332838038172519044368677858146512103788882199699143331855127683003606329014552447847083457380916777387919077206174584520616621523226444984766053180823212543514024406004686665350603755978008323142493795384727565687721797600229471564857000737421102743813968389137599913224701138452161780430093320017112919608403183064673301062638692562136915164829538758070195933379836655765785154769367527526930524957817062929331553068563262266653060288102074567785468803542424056616002360091933517054711073678285524824435455764249351544415126356727693199923266658350837729535294073333386710458103838207536691594526685476936312013007997258661028909561437199803164066330343549789256181855543448763800670162284607974582779997009402172214806818822325939354829516045738910002217981957669134654625964485431449058567363317742531053290587203968128276625230868092409319614897404504143872670207566639534569177140410243212821721669193992115876988045943084169742186699478446037316796511035289487287705654341477785460416638360946039692462037647221652127457503058474533987430747888526257935593071764764043884284057271979730609590535513653992111004023249024570812613861601817333727523439907823861089798040626630290656772285615237419805928810898228150028644181574451119491181651239952160532273108750081725044302295579371067580849222210797736823149311960953876992369935426664559804115817616153593378894229407527174626127896972283482311816288964263009124595353254702443579400832360845287255327488981534995701603847380488142033739423037201064932817458507520694207320693861755433321225903208439668023821528652865405499776254456140046562863257031511619102045187817696830820213730641033367874232145695590807142838703200428550239559737682188416968476080681717385768680581302898810558177006870681070634717986879784499421442827595923963084464787087315958570440474338635595705754128104678845767366971652078238691618593719038453261794887910290416489590981496449000411941608332362605455961600782442792130260336215420263597248730513029664147790266895548707679168082002056067683053615514694949710371616034450066675108122369305236553452254904371027581355281910203721782636912804598609063928091275412715922310660753929445384426351749502619946599634984869129665645642639075719905847118740325927601745118996604233373189761610187591024099201229768267073615535912533051856119781408382785211555365108132165491421136096357784304040056955455593538128012607064449506473557165558341249479188124521483575343359746347439155195303570815015482701649053294267251636967135488999418422533936029705884919937062014897659874948822596331002800688446066270346234728841633073491206355574030498974334817288691253293853800246034638849219150507121537776739503579908494771927725509990479541516953594140597475639695892786170930552385542324943563261256957609657563215959251883142533740963793238760249455514837434802850955587831818695954454643125469522962832182786927507182291077124337626847826152254509272753938602771020769867365165598689934059388755812092991343796437275218981181083113961148586131990973303731878221546383584163765999224503342062880576951209110830022886325042996297908880198178912619999853199711421407697468455921637021811208367243403903861801647184907120304873279861846597863461700861553695480529511907051606531480498123313972740513148570503622090239289647428473682280291259266967834179352405746634354490872665938492949911585152202268650142439524963324280592476074945644944752704351798557641295170269254384708016918360996717168990669829051606203581765183874939841423584961779523723399641625115673673434794270432954988829458596639327828510935225071308078208620187059512512656719753292650726527736582577260396681539081154439459294957405599909168820458781216418065425617877383834926279063114125060731772293142738877561828326849995906470260671799419653580625434575321600124045118801237223926930380390568000369131664587268447241270333214265113693202518662621820839739927335218098499996178565392045804958535558583897411794373891008570328824362213623459142733577637031250372453628698963881792382507862477087115464913249927997160091970789218845101815774171122657334128215196918956758994213977810857164127729397486413969075398413399319607211065392711356894410945292896059650556081677338826688364687204892224552106435899701869882560690495737534022319292373147399334218202014166416160647303257742539162934531606506525909796606723917217430982083696818338847693212656352511469003311978630155045787661620771517727976482790551306909856905160681455868526227103665935818451185965505389500144131705450081158651113932723726937021425270844466934077309292269321772498288526941257454347734031317400966016840129312856453359122201472355089403335825936159955313114601764067616629320715661561958337211222122638473793414909632660121066947375302079025907178168796662551957881936806762986852479000732471223798978463911930587405960351383308435050393877406524002270643811028195549241054458690020348503640074082608378407724688384784660977847356631747630769911862324812176064019100422374678952405257312095966266987438475706615133352733366452957452077921283390614856444535106584044316088938607404485416215107731350789689448636425249698763782028271154497127327432784706999856378718269879920661736156957786754049604223395162811778363697357023529375052414478154735342974595100696003454454994958722021363007772145621725261730894874451665333491893303260681032951852684751104955017798010624636987674623553667686271402152426089179183457974638947882296901250333170632222117351328607953595973842353659770508579254625191377624022319357220126632892541944225862253130326905667051829595603696898239801850490571120817998419649254496923728805439528821999889368976462650278054862676629780264475215686092667852452729888745942835064411351743638329222770630105615585641750274330009111768020739059942481931986348208456720048177868143606271156443904049513967374254015378454336647864591039569104463181065422440105526879474921758160613404215681547392120289763242181299868338339615102245348724613276440613130836450909149679386490127449573317026561783171864251879752975046581280219744406303224271085503014612279210810535956933242294125685092301851313950338672366030068797435509563920196379230717303961055943120716760210961004320285577605687755992268049844699105964740789785706707622408493741585396503444242558308112711480137707672412843750120531459262883952564146951509738573351500663534478973189991637826583220452958685878936600849302859255226787371387784423829265431827425418064664826312062141871403712167590152955964173926204466343218283955254909968737072580010527380756142247125193421920166937348795181374172941253736289078250140039509468051452612438900236918691378196727211168866829342365242589029477103609262572283746272864692045561469059853973558377521120100792676155835571497732231058013488171016681393386844398640247583720506051184728652582951996717972882647869198447657428775604974698315777060192613024880206877058133508836523222423549724740904687075293400646786558977329688184994445810676429539071607618438424851600746065336118440195100652422503048787398777205872364339338977729456592819131067768535588660214019066172402380865969547781376891772499811351785579062705364743902463793342777466479247747713038703544600225348121333006511510076628944155912464280060023780089509954194830998300314256644706890386652213203781116529722961227223985173034793915135687327425199445574233255253075011444487789559782641505417146777421322718074156918385300749083808089006649243863013146804029284517433691952047239763362935015444905890179147613333660743346014403103133088704580757898728374590516898581590718366801610595646524418411726399244813148312315565643209049852043630176353338389114746915028492933238509262174603566221757824174001449652531958384434449087295692873054265322337900045479629654635831410689919553932094730604484645150297054052197101876952499075734009265340197021852283030415029383229112344641438041182512541296420864130659972550372611552879458477923851699318900842169905463058272182142611902732610008808605881065183687300640534603356235273475682752813599357431392216305615145073443113667633824173097434760736076368908872627445358137908863072667694085940726967458497050252609510429489664469843766158562950685885963024869067175146951857607129695833185794890266953810767895557927975187952057366465347848453036871992284344354736587879125160813070441204919310078812088128235268216186618590115178251715041834776060213651431034518228681867479862738330516806047477406702379510436965763762888021816139915413782758615963582006271200758295509890142631473609906294205637384707647099176095355105269447673561655999465580080699414702892930789043937074947916550752453310717148763155488839217279635772471025497923706783954056493402424865391812063275758742000380491918739632452622553648305419268631460287742188062868897301453468419942664676850064400074444942752551588722935428010154055073689565213717386115240293529757962226007112966016918378749279806558617816466809155628682901561710871437764119163867408708963908603474674888569093887763410259017033733347587166852558728693815096672279943906507278554573384065104680986908753042200185553166436846690231111557509408815577920454941449873408155126708259772438965254656020366639297661623961158819605760377959387604676769697045101621641957633601073140519395195862767044721414219355330126617351722507177995513089509997959059078547176421700788127631170613746533212562798923518306413044580212243152727136951798804579430037520484162243257965529934983138702346924843067241752850783970459690935942052867155472570720458671146545829493348130793584587001050045768833476536502806353637695391173941568699553922651738879467350223556168539727991683186588967074163202498897157451202611070635305892766125179899615412505616712005108841678101516682263508738761720355231294511376967833333808414956674541363648595283236621921083503711511195141335991551573378902014069138201699275235863138288606467952794639117259678557209858279449785108863110218649130493223344794540942596047786980166160398598296310459368440459080952415792321540421876020558536086366340762706323308201838993160447705436917893774351764966452565626189761862931262495702474368925844345706676299008670116360984311638224716653023830222566754298882344145986376444764364951177294597028046504245825667138815489758149073827593245675244175012912231073009774170430719327594721497431851353690892259351013870492534294395308270221968610368506818822300974259199962667864616947611612600170929634171819448379530307152494309649031543912737648614055972982500136900666749977508994043700605438441950758549419424608614937742203538500362849948536213708266793957763184966070981391477592211630387938868021529054511410616092572303084452872037883182167721181719023586822332721372880415081685978854355691563961618538857669779640821320025473769788410048703632310398989008146035651449081079671397019634723782569807347903398205558884282168326547202299420037484042816178278906154659417408556601697094781568831974015081755383549838532542172494315694170719813796386549807976905744386374606305535655829139113899729215482366430998148488545454257422327839943825506927569864759379379853196662445049107226621918415777261424939301507066201189169116977890939495608689428891633682853558509292444422860599876681326753625202589818513899750296311152798402674700321245568734471744561780555346343444366895116216450099319140902214354698516541774091163074314406497238889099901739933367328621377191616360055347124278093813900855623207651466400475985285925020881334668999072742236361401548693377718089691677230149288745377089651182847271820203526150238151043492388120113313951357117973505896975387063677279443659257462379855237042717372181782399144050189474506482881490593200101697904342776775136042918075209479804476425465697514436294020051549119575478112151739860178207352565843993109062548450839887096723688514701828012017933045629824875578557258463990322628581716527183813954415049785075717614635526292879253892023078287422429083720946695976610001188215680483403826617000708170802947374290384312148770906244472911654805980687976219619195459894422852649153684855977969076316795569320207513100978932822615805754654881096196572089348743693616000756562557826570388015938347236515309644176362283634277626365836063251426583175454969214882758202115212249130734896097049084743065836718567646540119076078837531453498388823867251138255300254800962973227604476863744623219990894807975633550788134738795188234912088963425740536425479145240537401744705673847371132078128699764447531209012197208260778730008319538520082909940550125669652318517034240608524792727594876929266103138754531864223124487688072364261121126728319463170789437674623759061061316464783020634071019484712682597992242584461638112005015558035650203899771321434395334548099131404968789987787777206007847823775201598986748779042387495353677031422519540186569137157550534717938457058913828504294859030474078347576911797845552162983086487380208858449462969653306109797301142399923777986352820803190104681650240362209182723801218361050210544010962541950444615168469136534060344591166915767437905923915079574265245076163424380307649003716882838415399072312850801774827339800848096369462543114594082070204654039979492686226723996902915009629492197248793122523325704914751479384776700957264966346706733929192553724264217311336132543000619035078005266722372728010832723784807921577843868506300733972214171518264382669214203493523424090508931506941192838184693196526891444161235761134294819760763764202517021815578652838958053072802332010398152564756228986746473113489609646695320915853341712188754407404419012103723554653774010397595755592025974676961915724978662981205144029280973863373385547883687228080150965934505720761575014288936623766044978020290618357297925327157409914892119975494524545909013090206282093011140180477235674563920903341445041966620943984749257184335132856757767652999261203501132091164329719105289940651301129935272531810914287757735254964247485130248683273621335835708832425355956189988593072643663714994174262245780143137910547914280911790270300121006848217146479090316902205708679032690157675305631198087483609775534454750423401557371900947535527424482756909882568294434501231000723528551590723744038274244203758166912843203733186016665673307131336654037620221498312857260794492714422421597383587837464860631115218162287580466070746137983885057048452373673406036512954660791774399642320898652901408309789641163642524448345490905178145757830246224344327378382886899288098818173260761029490291765830813386147167320652769377510506042233519828565661530306003886586510368977631328110645012544566048819947686933035110403661568272636722680528882577448727283651189775088403410989269049114041448464320292438747574693820333048788038514366945383402942946127487042367924536524091679572286339559681773789056562850055060861380704442108228169644897209712234778307897593907083891721802266971764068954046756357512468243124719642693183456129157879166773620206034205969665068530047493760224945699029773265153274650551548971668678074223163202449869009065007724799008122175459062936655767344955028930657778645620336477059542754441226240389538654130749112861914310408837064848882312874711827459012976812729167594757328673148648812974970091300520538029491733984801971348792431362569772808689253901231317724573296737628158641542986204048191818574247589330223989507386750602516335732769278313277698489366588483432200447407015707173454126302147300643402483996811653752424797056412454625904630710889181029849940960995060088260442612958849655851439213441045931893069297020019904497842718751351873134730416221169301719957689290710887839274363417030410642983157822085115590187947533896560534352937892518807024928628728638483597144498422022869749473664989760643830299226096118039700716948240820244555181948197380665295361349520804228049820778709638563219560504924844391084191855278321325185706655772981084668906999141614739661387659243006145763335900006328887372262613505971586895778648757068691351604115448510568792962247766238450895282779124335307305350495743132740947424157586563754312403873009995767424335805304863310029139273957667984853215054085437461377757734650698699916848224080697022611234032744193028538686939899822715530101012469910754913683155305901843407896143599525199492476726762162658700375979327300479410797129500257000159702376934100488763081342185172683371041618870276209810013211102697799335546726873221460782155308954194299647041093338117554406410972146779513933043563132059569068195493408342993641884958128313407397964040826265664045648971169922685862508048814383585220062314973783844053257217022662346940948555396214441995211768007384295230193497723734721346199250842957427887435006522811093131871905078676606684566821333509630002076372527519388731625062201984270130417995341117410156983960339408116447044331796032498298911285617838337232752067556829154968680496208369410841182240292698331216938742118796074630520185514387571197469141951192669027050844743926459145208640018853248446325450409128715890295183610694674856414108492115199014915198689644506844153392011556879162154744761899938157558228637673762179974751772826956950318283466358263306763997354439893791711759040415530007212206513169653562834773563855844408565315411220522164865588050462607754799696227630958743398990800157834468385536487641428387906948777322718679287585856181306163886882404805088498847739263373117668648184040029315204196080287167270450283118498402573467884277742975576389506213099226887986394693592459993201753605383279707295782615568456382949605964355689885050401867377641903342563907465008950168456869608637020723063914084871164489231553259094064411505964090367714286517847662659312006038416610411150673149580963962018729518125440243207900723994951408214780263941786746325347525162418875846676412960771726819817475690882889538407604314391848687117905478649896041932172679893372980949572914681819268641182031401480741921145725744928628389100391808744666311391471720431952758235042954947326583229803917525271212890049473926784390898812022876962068868373324028799593178627150588272136204171747347032771965376600855038135371962548131022757434841072613917425918824406240028825490591341927576700959364268950904601112015434544931517109689523843003515324986096267000044677557318560606587490899676655213492576702140163118946368249870133750255179366650245074105171899380417329387448027809935448460162492166021444176915239495861062755343402749831999385579329901137349095888668965629781077583108254468900890196628133659372132175976599943153059137277855687058002169401624325890012995561884788289446231161582193831716656127268282986178092300453141868296913585055583446146890309101080059707352084413335168015477172585151096360828862265520669423560341532607915754960278751232239738985310499573944764876687695362015672208256883251639487523608821581029879158686240737670379362522958918610975164023885891378896124547879819837771519599860187514500058010095456872667519547127814140202964743108833306139163946326537858925595568564958995887509350281964368586734612815108302393847809858175717752853616964935902496782348172073706417421505140317808360993993658286518849136593814063470691074854518566584300414095237086465331744021484107300235220331435665713075533921319560995869529693348755461747614651177356542607539026416936402675303714443678488534233390504795977394067312862805829455604368969755842448425903716923994069664510716621754023761485446421470353784012174419723692597920065098070042950663760592167549936612507418229725981194075430711542591431821431482821059727374340276329824791761862414058086905668652044554104435537748448231789786256031288249596282771066827229953241893461803965447625442081485322548316294160899962341475788522822954170300041419368202913568052182125846863123444848695926611663996486055289335899883234795073756660743275807351409619014124831337453175591416564103416825284102382752896948633419269282679340788438616158633193332933705413652643283135114477793020055157980174762163040343863638134362374714533551940432774239834628670642258446203902180566128997071977170207566648560791602470450125376396700127694612116128145530192700772052603396899335496989566079697838050642320659294329925097111712850628588883757303596918038019302556169399588615311947110776202616517848389549979540565454563582340539771665476518488142277919150080095386202336742550181643760901967802164680108790462034600908214462559638425251926624612246448716896758181211544503645043904445581933930489342712566150526365342053022044214804071179927361644312922062857721812429629787660078760569971444997781795910245452569292855551234015861729809528042595667058150180784678709253491764651242159806285449748362600689875623232562343938550716076733926845246043133739870795822613758619592467382208628804885608029997431655793340254722055062527217517088995188617530359568449707216584781583948274808394110350273785074292192603964298221735017553214458139698382822777076194869917110460852004014431800690351634898255971538820607159377436892890029501470494376121959425679985802914630296755564902410125523136501729673972333004710364077041905336478975270701473068948819000567336352923358900154258973239602644738517581875421797818099211658764422860440493958759683065354274427715996754121977135662829289932488731118560747661230807230950493726804044967701451188194448481298537509563978242623194615240107983984031173978068075081220826527923522716620880771247741536126641278588336760357547597401619971807751282214821061669152689795462664507955297908041505824386020151915991549251634698599949923533870300026139242491438131348876532493304866132678291649680740931619620101611294831898614763132997036629416016258061861777217470659913035618628982566710108297181813591952216193096523104398955162555248425955808283035811085627469202909887678029119865624424808140878720544403637876376412079167372203849334457748674451700649538320514139725764608458983283073831743698336931009074625660561100749328570249070595868656153286412666659516602234031905903538796683970240165721081972656349831765747111486739116666522134318973525129071593792149610878236992936421570319014992432646444249770550356318365843116414189218003727662076243697030230967085096927274083417684367741561170124600622643186898177704834985643786565286391038394550385633875786972876050554414208305944050596513230574909794417174967108661560630474752705012470745762532539126212897789727305141912132004582685566605092360077450569817598658444980804416600794875352803555561065681989700329825868989485069255949675525917203565210136685849987127639059531517101008477320984365347036627566539399757680619047445990917010661805657481980447296797852796419430943016610856836555455544687699554095001105243693055190493733595980293115104709245707769151184611045302939837236623637468592556662792259583811585657497877960924272384804698826559620239258012385833769043868145672912976908726647564468414381472004793154388563722350719140657892159654216630078336256832298548625875926373716582926225563330359839825510920763991553361165632245265155117177907190242515594797569762019617135951473601034755072818804996713477820867708129567107521030634427256035091690529671809824999230130988886373802153296022636417046839364312866537970520657732246066027183013961514302545932246831184271586653613251991892250561929263883351837056767893008198269594287749993450393908913371711651814476625114498121669660420066535340972330804456649274197943504567392129306017277054623300885256406020827514873725718553347502640048462852944890707501602737977446277871437292386570793654243946433414726504320356265377658917444995988598051800029494204933380459676285331892744462647083619683248989609370333514273560913938335748762149042297174710009585602004362612476628540170936303430087634612779326718693525518275090877004964070527697955437088617184612004827813741534477011589210055375367052454531489882743610902008001316786754642440661459626580287615422310053161017500187337608416587480259624154804640805777051065312886495609728520602279340151612354605104833938152432876826594682861246049506244904098395331796402346402966464354427988018206696330407020726817898611916760248395436290417840714597045725661832393784218610868279693364022543062461390767530020674427468143643751368005466143223542246771462282423316285681293109330683762637252886154990831621219229022967768789205897833250828693213085343506782914991436606049609113651395889091573442942520739781354553639975034964217431410174326027490654431821288188053692218706201798033877526621935917912034406307629370739868370229533325204789092257014906028590610571871836486508304238020730327516948827336512322759018573337792160259576812786622323306033082215464256426538009018562556688596023792541608199578977190236612951679112734617917012528668762805868227675113971539849316984324870514798871245705644599323495132818003257160982520376505500940532376973609937285985772630940897471368718991086671719339607687800719763795911985297897561779706839365920030052251608820151246577757556144064473723454240873650957571983207906842480460924872295142498522033727246434751834111047397753519617204583939668662652865701520016643050063023188677195114448346860421550831357506238790837592208327754986056138210535260223548214167336694797257799259410332690886534298903272024281944953165886794258759818574814909732823322623946603444203499647260418664048976653313212955699449384558623013352712276075808046775486391849453985908787793140659925711103357091564443344464840669506400712806696637023442996866824933110730564248066820302984058398202740644427641941982044769494126534310101990845924002904920626833040704598879173340323806016799064633184565495327199413296288403880607276997755158419426565634271286514115462761261470233326018618233335221445859195456017437720040280605762625391203889500709918352162325147784182573498878740712591768332853465733914962892177509040051452534164054954021302298640313288339994282831294849597835965120299946903641438164178050511162847824109365489932666708081375780223462192612157360815995809489658211621000487660202346778088102348264627312560782560840817077672755361790214201242019128914173406773610857619537862444046127618617623213626069588368554891918916896378061055148172187568262824905309747423554224088418343169098055860870689018061645921127434400138472929516165040399472422354775380856982541812871690852193457931030827217289146391745585480883245812153672558426033012070795268171264781581677363578173824743149756571901494465804220944244822037132208836160757340769222031110213035992758976349408285471562608731099298848895526719859926770652254615547785111275215362898417917111260188778928075407459977833020821566180881778170162572636884025448486074531763565300499451228992906700872044313030949929842395248221836271956216091367661848886913206389172643216894006331928493603105107323596379233512513761449286761014969838303591929143867498255148097010634045972349872484239646906568815567679256062000187768790094419400354585872305672315959813806733896428276829490787109828842445566823245241683990366213389213824216421157043297556382147464524335538981841023336309595459886144775700159498589122264273026923891841796468215343781254743176960207330500505855511442715339463430001761355703735449047520296046793755988256233889163526653390324833503555279801799657961929896776870007331293546000463857349689170480204627535420220270662864619337003234421070770766901635192372791056353726969176103122657434070995532437632802624189033563315974768574963540820829910706740354961430598001534507660988770208485527046444134561098113805690192436755704367459270895460176382426795080593344845548065436619034618877257025992683029892482849532399078816219898077497008824251289949182366833994165536996723930778903879994983080165413641955583916700719471097458068356008128032294059504560363736829561550822781405036562311306484068171009302443493697021668164226069717493178878199520203553632164504674705026369792282371865459790382715138688850206254113073752432470615195635525749358427421129513258349336282336808201529388996269334574402080458192203285749765626295278390341702779035780496485252047922232484796195516993693500121556513704499542412498523545904892518763356983030604759995651665932714634642713880015392215498673638977316947988361520840448733544616060457887450575507456376488893946543579693761718652399515544753621660706430562358790964618794118845710576884783415189718148083037974083255105981406250566559531517741841239006927343786694598036266606786174489509108942463968826027162487581580906351877483491857832482789163061356369574190049539173399022970715731627074138747757577362424470016148759452394153274519485608130641470730466021505761392843893150663663691852710316185221409800336898560695607177592657151605857705933721616050044559567584177270239164417115557712745826984754823490038103923062175812340832524004268385601797969162677702611260681120179819843506066176010251231926898591646021321679452550686049996169122561086208621798770943645042307089885089925520797298465768472404283841734257137172694601184912481500861319371206930783889640921659242786729015429342010390686044260666866871547505864599004014607065076650098755910405180839785705400861598097943155684786354584225784762042910766343839897204538112125560698841755086626571272017783449043880763163711802459877195781496600533569884988933994601052453698319410181939369600433437772319253767236414763949694014652716693368314490756894823668187072525915706238090875445502624408858506630253697087713566563830107375477741465248944036106960365144368584399282336229328052362096191107691394344242856387480785463095432409367291256581917755609803338109156621487158703490320083134339056811728995688692957023347705969229931299115345606725190657112092335767444117585697387868585477640439528203073350670283405033469010790248652140556163143235367009337143709276363380533317619168875425836974010240809400592178366030394789120719221763569553810499959898315910936083142728071185342604131677251594192899537833931032131011687697122257323132257212731366340408402084144604289329081251674369360235939146534436722289107903356502816451174437166692466019452658050845191293233361930281692887970152876024907439918117292165049883747539565702890436404488250595611446068017454386410103765676587918735318844043168239315457933859296689393288059151279710378070228549035819746834534848057866495711952613447252769364311494724771304945497119590649925888148354473182982031115376216652432706470665598531940540669512571461774030651437559420477932284557109647626163131277394506068564348183091567160357301997647690926683787869500131843522790953195416825005670132717696055418999022183215943721009573673618347427839015595090702908865576486424168607794312014211985112623104943348477084540281087238168408957447409434945250707741365252522945667818462718964461311693004183052144693923855109455049174033427559536479239048238974521731997527971179659176937376363867141180157300604890516904416145633599303657536658799365355718664859375627695469885194645754840499483341716777775918720747604136796496434231139857521953072722230604788209258116993528119098054012790007029887206419847639680268132323715701102767303334805103050742439303272606314789573310226193601960939467892393200286945681838240720375800827141355877700490765174914925311955955998419829817300772067381059554396172566213841881278385054631910546652825687828931604963745877445104220102363912742559787496532865437979885387946514176114753169692160490799466835360941875450278161818309758535997648847926180800808916573808772940578271902475185195684331092456151371255768112340154071073039318851505951891500657247798789075931292058744343300487967256167554148576224982134973495626777660505193134072417512616656284066776059361575415166495193544246735153502392646419747539508109472878006527277354792799155919936194248611096876017215075484460214404723079730013342429389253543854179519303450411464339715763719326812441391562729546756597577089032099963351242871486488573998509617488646502094050151924385640494491764752922858169096196893220301270207969844554422147292420329481995734322400647645546219104590355233242274316428412847976918188670741247389729453099329044264225789700954247852630286185714008479309123941716960095536479644905460686605699664050784285785029523384122951402632993701728607441542327457439636968163372816284501485203048071183117356826285685487273338640863875951093283491674970902929684767385271791656539523312818840750959740342089012421827203820725354566376119491511222812963449237518177710648465228280707064480815574062135757414152293910652699243166759403808643906002349986605998929128389505372830170167271279837502784765696674140734458261608817609678518476108562327453296963219195541525052950915954726904227767213275288031877331220066613108537669553684419132077077417071801847655073164690560433219388991866216947137087287122113638615016661819845390500949007666951053264820337183643468599062365949771810509316466195594150660958860244140800911764395638804262083099276062367158646938964932824822719291586811179684092827845090711878341268021041837077690640645308522798799019066635285643039754045814138126733701831388544786994270561634796803723140664719925251515869630659928582563818099274388340520093481283678138599140926757711922164364912061336822756351952613345172782609373384727656808076762039313616645273278922425669054307538361393297427796042014920007145820852243373689891017563124222827939194526957731649822975692631024642691946790107560449489005023359752100998227679592539428941069367564811146753768921704843964934735990636882632668360694555149654865018721546261776937336387883121856841147628763659056517552191669872688309274332780070455074922117079907286340730138522673417206408751668844573087824874242272197715066245885863614241591498165420545096619577274391027017834711951635376029052606977022311454266665232554841763707374779529541770851405842857651023754782170575620781137516656039929416075867001737094819274490239621828519226462468117691494727923835043278809437671883754286279550786830006357366064665053778904735328958517921710075090588505468282643611015794630148766096038849522346683659374395176460839682268202476298861602723405481855917976920971270477945388054145880053047473001097370954683454810780121442212513674646618015155321703934220173076671973192226008847089348452516179155886557001367189221103134343957138061842475991262055971953880698004234409841867330269212846458726097653124242246254474634916846102591183133899467720406515166954562185681644342139217507276955286258582611459046587356022020718468439357397832232294214142080029290449462059327203469110139200833844108240953116156409854071425230188866395102354127005903266355408854872643372801485397720521428142183546769338430400902313226512364766396856799329461812220944942919492432685638719075912966443817909764273930559875545891903878158622521459561912097473987064766890676110320622182267514081852016570904457261708211040466983511943031875716817341949043595996808740940210522181712476904397567325454835924522239724913169910519181220379847779546911191442387129394532037310066260209615204278640329829059454696703581569223252904234224502954447234947638970656423896311202769459054039384531919013468927587567436723078504909154841363506803160531622394520780741002233107242204680666836978896231965706449206237593800958459383260065824285971524751590437040730065957356845033777393066176012708099677916299032390116899021303945143639351967487852251590039367915712709020176341987086627727483546897483642903482502645672579272880810332062919820939885609691555914086353640885954760711260199230311429873075786157727903672818596568095223069194791854747528233825028629896482367027404399726487470253168944988224633547888760299391116609523418376492151081606520163830527604149907883242074401779810538375749796243424694899458498699055822401227997887164868398979849094689975634691525521612976876836411327200116897823413778998620891108712363177409282849270494161824042670553343763207694987794857234885018318370539116574629509976676441804923660817548691454722614237979680343114340023441198131516865622691988226999076895130573131200718634440559805829708952303490581941405792162740564684798076431035535609563455385803958063743213118758373204623032307795884555765706040720799853448168254802572485299882934376444553225610395220612827451676987427173940574370288286286880773358371412593608322087382654847292650716751736562114695504978594460211715572886495159163737186243714377919239372226839025034705457263956542790673989398314185852497486486839166678593275937177959332347517029143832050857220915220157942361078209086006836274414351130614097184490164483129783139496288706965000363810862870282519515393391548470448692610826917632128727546244084875539735185811843355720428547151825468335048883764688723199252801796017534859522300673507566115813692540479278228771806596775220082436824102800023710143630101554308860055612706595448069730896658328738869865401135201719282656391737866186070282946355273915545030517968628887038943286587947214324973804238113605251062183134509021812512604665848564062708105145214879378874405657689187260928891787295984761479976571439414102535133866281758475332241513376548500347868142218431184301595876821531922597627813525171360359306864134359472273470893135253873332899809043325868055430849643455729279455947200136223587584631749529763413026185143250662453048747152822252717316158908577297054289071880979627312228099847793810523569303322140637345935836223119286840630059001406220396170890044463045614858464412797706717077523502307366147297450495178257444617554671947024565202969347182730712398950711896515024938192494915970734530641081816271424054538380043916113708255841879544643733066466380932941835698720648209636941130415144324559006854033343368003321552548586432462054773381036054922331686064708269132552967874170164656855984944630538961614751029954582782640182386365254408930488593185581603414142592693239281207299313049852126611422314176250019851181091262469793824971663301441885820796475289344733402965653473871400807642120740714547517293974940427145096118323052762878462396477734621019840323833854495910250124168393130986884303158332797668548486158833644609393821481307256542029226172886029743001846467585288916266189248495405539425366143223551377071865740689418592759015628240245025978384653946234166166755372842177979630259280803925670028687011667541946111509705933458618030847560347255283056711501795113137726737785975981696068917313699424034776193386020107013307521036377784808893174599494997899819570115760438288351754078136882639394201840099803056397836750107664387426869198353728500677065456752038925082572042243630135844464922814438180204079087442899251844759603066099951908899466372162016960141552395686442137069612588948076366527615744574513704170094007347327208502117174356023199035832801033292385673927466327177335539077574192508721260285404325188312537016677601290968041949246862107916446358246868128253127687602261107716902886672726861177702994883960582425242905209042271836853603851497053057440878859269213906248294888338105143666253424884376225098362878501175803841690146008075512114756014945296630463107950317963063491629737424160613998515197722279522685469343820359602864358938318701134392188392965521555698292709297802004551946747187542435706799303012782540531813862457338835829756982383613091048411469508595955764276176070566636938268027298125338783713020753831663002343170288974383894050135782421525648598998451768389427853503562402600962002835628751811108392248011731895816663966514471003422577491492628956499758468170197106363664480115647558140900884714363681179953318092494213126960785858153313061372951795400804114651969850913767102810531654888477743170888283094524456134017238288560642142417118324771490186000080553832699116648057817293870304454082841206025560956005476184557205568574326054849443698338829130272866680424876044591875981094352578385313815085111209968487428099237451119957576243269600989654194027382079432083070035317349017210036483394561354123662969002070217545813291053659172484470146758527758461891573622357741378414881677962710161101100833706990863648863745128751367979081237710010378503899311391827888607972238544241496375555335196647264306014607734072999545953403326550630259259520373722645532082328066148411691347091736251035827168288139291678433236629830311273774922163338568498206720275806303683199336636722897466168798162211542172454035788253541817284518353602976126875622054330025087884257482810997659607941620375777279729383460838399167863857011203211127879353437705954294196050729102042130316356254773335537757318043876295517759607124986448780502526708483065590016178447786234082766434859360877382958903959684201910477714218708556664474055217311763133507267217558745843278113539864484863160603691794550832234926790539375277465054608664369339008479259665153055692397599386184226731337821167343038032910511196118494635208200955117960110957268251546733783841415644065285671319999048633769615968238701900659448248198587025430925711254093460321014910879758233695704358504196285274551132657510924443057197302398609944812366316482978337826980919241845622004888176292391518797717933897683963654257420723576692741277827234512511154368288101828748519382960918090288692027762714034169695611620053854799133700861266561788326300982387903686174609286229325674448486767496927394790290928768710119837422327659438364128285024350381902747456688173103250376011447836348066983425895107337497835962859375650079344823126661997113177584914141585061570253016645986209976320295797474617438904434217467664595116822446670399593811287321828524619271309812629342467617879193129552925529906676944904883904984715975580856849757308685090056177532506525038377668523440451910324222370207928779080208851708786654590340042058288689776189264176897180973580032196865784876268521907993383577078592782607398856952153752415500530372927210746727791319340844944531194998278329227922975587558350369220851242031315982167779623274600511902848303437244399952600009884106105548984159910855623016377493427612215048060827316486929755973871192285957360585647597872726221890911801084346869394841736075200136888622601830936339362515313484070246036060859627361869029362708459776112466982052398097293291822052244180021674061692623275412607608805018928372595642753333901595494241766370893603923254818973964480282528109803986534991181066854727728194505167847027183089549335840741123834991173408840205489762269912190526449906557362074461509648679845511052029086141049974749990649441662676581355450287692690189894977406292486868766033150160291446287592494180983696940383572116703575422441566448904445161984968391232637881643208680158755263709586059773651525648326481685395991282832831337611080820656393349400032708113123396179920735620374819272475473956684528215733743051202901633602720031724904953247834922443628476788194476974387129854345603206179663267040995797361123598925730318132793054530184752364372125552797928907000163087960555573934467801297479960272940691163204001757530888129471272304294303305004260516689277089381946869783004325348255536940991949926381173128170095972671995857006037337832285285757377726487873181310603263595674695171485225874625823521758875924921944845835415563244349373255040103114781359861918443105772280803221536247589762406307180316193556940237270360770961463067010082552151035214717498118726669369529234628430743765341992234584067768306611781996533988664303606219320345834890944501223408347820323999879517715337212206388726632076832533702847384071360537900816456071857820967018965463997523388990928295406735090270031058099834378658385992461645966966595202352266380203519735026527000672048703197475479680668685848526218297402850264451447829979479642838925618667921176976594025367982356167416239818246649743556935426596885589297150564043057120033450101286138116119149125876162891885402077713888254602629040285522422283476678669636857460487090957857052893817961949025408631829779484443439532387154202525743160324703885847639114433909660993756235690563656657903783519255709211767371209569638482623664678840524857540057797644605170819362465083878532830770911174639620693795806060408330235967844869310660692991040895100615159623303912573732928951485255425071467103533719347578739127834610712450502662253963872358658011383214315618982056870762661521951193401121004982326343768639068681981913858688132615909985595460781398793221392858396841856524670179232142787463908797422993284033800394645220511703883667286573962443194946733309247217699847514303291278389085538782738184539447621423268051661129822961097486788880816974640862265328668965364846550020043040446838753457270541813177963052038343530591487965932975428223675379008141015863569452593001527880495162174942430659230333053553636905165503949072885928285658061088893996323017601579224927184527569919733552633565149817399425267118301698192612628630799180756432010904395053267045571417179826568476565937945258124819954334119335415674673743572784815021843859050004960709162019944924493996294823143612791764467909719505390251702641712940183602549527656625182343706908850612705606429412575161863185674595398865178294278115002156645265555601540279726082772729417885181473260525479457607712082538271677311706762456534173849745420294748846589140808977122180786355306663002029396449951118261221642563289487362748282363611406743569902398579980852107740560669039130431209820304694016740434315538072761715458212029216094248385312578471470747851029213290897866492741572077839048423600707064570549676306761526411460863555349103807035013801301120473477102136749820123828744912825661881916024649189075781287705176971295355775812058981560030772427850631101194923795520422236707306645176135246955319275023343889012984022590898998916846934751896235422826053693907407199802825464409909198206516741037289399611538080653583392815922137443718483509498306794319952475527558277515840041555081765707493538464204904929787209995603554198295440750143843728127725810203959582623801195743444766380343782249212960277293468824148221473807665226149105149257958286473211716701377682778627328518789515212206433841994482591492093525250413204776367530207829004821239567363007164137332003471805965315151547113604243180065466681086957974872846972745665723909120443063193980219169253135446569132878587557507725708049487262811860506154065114336000541865910202908719204475387525385668435610493476894503333131575090477023555710442948974654334558092875972074689338973483665403595313000227929765761160581352978755231472970053623646250016110298278045699629261355291091031699554074672131627220307144922992895987417479289635273798587992048534602943865967323215828637064254091480697560039502950329206622827563077991637218356768183703321341386918231748304235626708174033575521872740994920043064580511977886614331023113975247701430986272430994326321855675002485085464796718444066790432042461407193229728587061175489577175422231284582425444272135164948790968036374690028210754490302508535072199238628383269736335478384818524141568293161983026820013977535831689767700349782312562807741414248420019886575452515094533114799971210741927048218965645277293889797846386550248887764606018708215854979870048890845236714909814705747062556111636740208626279738571987839862021433881325575154368533048963328227887377514239638757132765183592733957160217155784983581139336134096868529146013649687175599678308263919231492193862214018742447489235066996387874330901253933173660853352081334723437804664403241681944926295801282609997584707723205349118507765368776034703783226595011366817847669598009443074901744075898810146461790217674488366056632740884985828622975318670823462971923716318384189185690911035234047871315543256993456331392347318354350555715074022883332728367713199399304617006972364697808330130924319887743862498630273383748964503113973484571579086499970514938288944128645450735656449517392520286158828398551327242370840907768469936424796516791340864624763240401926888873460697562478619797799455951021412883779535558010285027524365122846775976273771928824986852782489416677239130860384537458134394847969375270186396022934503691732969797693059523395255935330755594301891432265574357435535240232692806923085066872087158477513408173849235863545328421797676838309962147391809253530858819000829286665993370116681452234736573821867089465511024241058216277754519790247017385581886396542558310929457273790982043357740472581034422081774150642104567390644261379967550132176879489846912344589832652683652108211781022312763496091630277369270035931314890625197004364269279894513755635039866112326942348369834339470468621267649600435360977221942752765269113178521956035701130409488839771657928444746703880969015506786090705838198087086763965051804158994032272547492688562270751880167344860580043668584560188288942623117784919826367960117271000475139460056992127123176430732641677503722317052638357415356320675841044730588102283131741048975417545964888777883926475080480872682296927398262947586418982546193508192069840206761567281379216702016441167038489782398246411709806627729693214924144612794543973541941134926673734819812966775680736266562930164501526742496786129697325451453808007219098526329044261249149454934933305570162199417305268759235963803373430407117776273981184092938135639796114542108112925950497250015227937053968916369942386178447890064224354147963647708061608041225026403176376986583184916551953333461214226585595012814984454008625167425227858043798561243048408301875705568184568118969322659198346106681921002291473829955161555052221591010431389742363241701934821379301620781669101897361249871984115287911115247022908940723949372107561286850082201740898397858734940415431821941168059632244114674346889903126075032756075736626029277141534401247577062778226722214612970507205065855140310898348581260148674362759411479890308693287621325375905200543689090086224563051626420769043683343076843635810057595506411690892114073199210340872416243198545756395748646117699013490049234618853874319570588371214523821440151954086096143295353724708921230511289771992044673238922943421355113312833158555878117467003120523262565960984149858503727576234679037255331823513654703299273500886174192714259693086944920389049077352794111452934598197704641146372082996828793563982708915538216398764236847647008301684177725010600199290444417798853344166712143747537370378825276928306439102352458192013566172414217192942669358392679987179063416730084617101408849053632318781137763851266161538536305112209321640524585862409964380376245178768538402174893797461666631257876903766807696360433115179621503272384101731570318052041303914592777958490551201466806466668225443329779919230575716282120802687778114727992985491640064143246691841380148332359008312597580697482357840551272654501431328997945886767342436630133814786578408224361719347211269447867184242086478334633640783186921116374834095784143696360945302078938766803993503521561872203407410818570599106084883076498097877329373809670362668467674059379251384939924992008784353986086922245667592585868839451927873087525065533546505908121011910552518991785947506676041042840655544672557464503390542492855740091758661725356962563414822514053552992124124489023582585375715476198174984790249862958756067775051278684299236245432598482613029299050396322439078953540376631933776475781084277776085876234538304993584765803375559916719820652798942684372800971540319686893253352565302655940494639477044545690243998980917602135790346557947165432048598108638241841238113777534205964714064130285335026306716492829243058004654626823706796212955990943566589190427611322586561714794652477554491367589867601442950877951081128249850606645286671616408473687241359275282817055407977380396553130783803667364807838854478977621970476808942143267869246992112232864471150443489026149720452911950837683221213146474449985809356632268254829256591279464049414204013573726450542591328125920031766215266392099330548875477513575060355503349862065320371575222599243033008626603327220536260409689326796955239855705801445990332654970587197992604668792643632770992229168543978355891151574087048800275466297210021232736941087971701265074655758300924630728689501059391420077052486719361231291242656472282804100124999066775249167044561989514983928821243822876561598936781911602960059184643644145796255999594180597868608761560456209487410232915522203268375329181202376565283396496961233847864030267811409685035026662975597502348064614170198252908416006674313792244411400527021782505807664537810126339062857526369582372960416796428868877363107844261072637947232061105751382722763469982172848508941977693521838603111800482387340653402743790897396935719174056569419480875211294065372042027351206490104987029365824712690966565791534160313232752301201010919301672821952866197876067322306282055648625340330021052206567387076060990417794485395376705557767405527436170456559621679869613250493616889771834189096893325986713613120533146708807051170540629091114817370205885883524308756362954613461981592661289316023896256163187889952779745888888585221432035248347747443601873681304740504243413779124980159569093579279185638557854491259524808055612950681054110703215670205929159939625719329364271975352208681349161313030054355218746688949904153197188504243487302077920871620671431622296752783356839331488235681269098524270409886997731409362495843836563926504376057439414762536549634689557783223967677395841107649919513332384752566190011224076190993533484087346155403449092758723662656602787282205686668264953167115075843476226242535232233562726375229174512188033438116892080286822216839925293025944045648712466802804565037163640917052889990505450158626308975257184327626384175036111502208179961207131477372198979032442390132542484069388965157240353478777176690144391544948733233266307830562038863551489022520001405665463324593709055478413621144258026181845150956037337283635315302037291063002670481558509694077157358211220615666442596402467678627420007898708329725741997623912858686343539642072923560653470618314348918539795957650137786047524500799848391343684494947802975828716952499420051513855663020097909205461367061189605918010697175099957875087439079749204229372151823367951013144696607776974720355864235048615711013815195826516953412414990741896193421373897100574502081791811774972394961771951010961818653316580677555637628795137676975652888169613089692076206802325087472062223519594148043909806466976709809232829165493012724585504765787450751388733153279021447148773767391146723773576170648380745866286002179084296577333045327512265902172321767738004973432031444421657637989658563309699677756386626704045890113723871681492069847304342932752570711163430616422708243202791340560072927739387079649259465845686912439911157076747440974195611177247641268474053038357913629120747932029192801569209899362227309180321708715567916187551913731005627015552035458230236629729506470240870994782093139627355734448003610267136102140786090889215602124312216146484845343323980347210119068977545091596566857491024918885344188013672525557413884204157042353811317649393898654069490535997312692038694268514437911038261342416908203939410376451068535834467232410422867300642513086803616335739904012713295758635476026748447154996050730217266349475957441967048367553858405973961473491995868045036143374891870828223826039578186277486326335427196410037012543615875447492278345088098125023624710949028236340273602006621261972582295081679766174545853914987532521936766081357233578561075031334694305931564693487480805491147671242312001476996491889933365695140171947140327567541317578060192137910787653194767108536029261268150597380073271302253322251449324593342574480822615192908333057653530586236649246683028095154576475344632222899708173292155069008563838307097813162441094299690296042222351655747798949897729791788336848994474925216815357451425286337997555975538220687984237555517142736385223725819338264387545328788919506652186494579791396419088140485097662383691265555016804174813185504828062044409810207514337338760649050074279124750271453884228974498405174468196029415201561622115055375369339812612295000354411715650816790660275416054938363968083082598096731178482506198439664718197613529739806783855627583534129670077551430812111513407548366434465391582452607397049215925860254583709684397519468255701695944451381945829117805142753753409749338707674235959790387944651699409524091474675028306237675330768090449998056642495014733478076944376736901509100681382165369220349402011943579822292592683527150381187482120255133672744273259304381988498028017933671579431836440878106174694605532156376771584315831801230071845317202653521004740906301873930206998223970069321376484434328359915104115293194112117824578581584322710645839152503239357796076862845549249830048695074303749411852938342708772597759735816269834445339143749636987713625445295648971339124611948707961759511148166561287871237202957915828709379639140772518034010800264214977407624575317456750750573649477356024965648157702638605948717677466470023098351660933038553958816267788066017245673691886833580818042315645258926098858667651461306296680692184549416123131182178537904402179428788773721008526785508643177784920571377989798580900037613459380538029428843663995657930409143785232927404226978422134272690735111273589065944206505662899926032006613612942517047065355500013888681552959511735586742026365541096578778805776836517205467985976293194931502417851145085997242905101029011433845696436883409329796986792675769492798630553370782506211537675907841225380835959875347570473832987071665945440942023413353624900763864467332949321364347467728912421360372065433981193598459644469376158057534809579491665978601224353133209660498436014260416918296727153742042044771893060579869339685911052216317341889789442193480203202641915181202192162915614716011397833208947192618075941422967530778951520159295113047173171009705491132715084100965701533855442613648776221774008532426803031365743937182359995314667564323262282794465603045956465934133830445006963238845776061231328665552224466243153023995474856984434897199237164781617605065321009483787050971209556782359025006278591846857105058949763427608627830763230686356566532684915547383826717905003943839945363499842703330689978027648671658092601016343528726053021852835923119765268207671268508445216072776469944073971697863805774600096954821164195819788755514910816538642684479602849996755223741928297599848764047026766868405522573588113103414631266135446167702055619316105851266830415139135430532025748875247364832133092457573750183541281275408947063430641404472877122410686493183474463453750990492886785196589949757809678475551698681108953202510073954510373929872699990787012574055909930461682662832735647447788237029314545203314394500283285335217087505379585296129461115479340523704692937205845877462060352157124572586157343226947674103335383881809642618208661861469114973018494960678255161149960154444558036036641578517847725971295212140337932179163143611777614655084349161218939862256710573013148891927477710874311137711088814004140080176371541369157370593234068064940157066496661020148418094367451441156035291005586367113669543900189355777639162574534754540954947219189135335781523579897292792553163150971328489760675135660496952727293230845796540522915068338111248907925173131869962937016532128532225688615820582755831640977259652633063099615068888019044182289385352117400872523056577818211680504179947278663785276350825224968217784363788274308748209998272784705120163384429013540021475315628338762937724843076962048386575594523811495884164313436506852803337887876052773617374799400420418919701570681997998227990990856341734410126517870036288784526513983571751723209252482921174715148687770071893422971940291820986711096963265901454650945495430347974575142900252644150728275605999727158037914156446551074805985872528109481749173121546547970161468230741994164044368025413924546876766421056190577298868392312214522180169740905363669996713605137148160291995584137876932590119669926538151387416609112662112524231953376004743132463607706492877935212589481655030390431665182818919453057771442333016131053333865845757757988577012335511732485205295396289184378841869798292369444391441319710235601858530094808623685180536493828277412994665634092975503236324527971658201256725004837867198300425426619567901699860820050400291925535679259101454889865879279683315858419296775660689392416377786825834561706961669747211263128009453179687489696975371857136392349347618026515828573668352092088517453081734064145733199217192026850218388891177086347366335645576925575447102655943306398396715863132458621189772784531470712630554420251469541348156990716067154739562147881550459419533848388148549459301128703822066069014770932869554309030683635937054214830217421357017562228147537285162699518173878112162741662786365542005415755267879563138612692622291126274177228689221883528901225501632662990997470471124112168386278696400902167612226072274595245426571520480605299675278323661229017419163912714363229071282700930701367923052682594498797314456431389195473584804083587896103746935298771634757459460016486602397751119185388220919707762533112907526199910757741418965015064299866159577998380465106504366164633666885628095827305142727978359812420758735548623877933262087993432819786867671663336371987223308025971150115908620135431698362415911520796188702996311654542854601494324521911243434811883586410694858903004523589068435948225379743367281965848317336012814912218938787917786647215764826083856796806232109516449784407653131132971535119001725507173209530952357082004924860894231744320961997413378636842171041726045741883299921728500666228480866482761276872349855334537710857713990442836700410844239461412400019528399085122685461945972815691181010168050420229350831358908066472735692645576897239989929793862520659160636152608496081032541910280260033880287559633532793088022655277300413626521404349898399513771837180199850156735672292258205419596737798538349502587171658370146990663735056073677573667404324958361947678710003700279426281829099510494734498577874172143636331717969204042143293014875411067836586183523029298807827653357327006998657199101097844954549743049042267736272507595887773194763566632755366928523909877499137030696064533315454098393287281388199254573280222229538266342331587544445698133061933790969239684781370427502810442069956375788943740134184321822745224092369457203072551907395570135544240229099123535431563830961768726055035556164405753008681428941680868503441700004494647860101629671861676140495919566605003105773641179061953031311216066504682351347874211422705571513590315195536051219273205511368230080397952891905731081001390612965854350837851201048778888436514477535028171560371470311701696297282906580053412646964912077836626836624697839112580752839487751517746494433759196918702423906342652034283060786901306447742838381254371894921480723803859494273861449348755233252094239804036670730974318212631862773282786654249777332613930609070594775266882733210658600536187535373404280999403104794760525630005720911139520907369507082826187490596519889366917403086450483579899168449376168436045599438680003403628950845409446414494380186473378413329219180882326873892149969127051696726686312016562294187174082133723420941458479993380708252473587303996109353428458507497878744714009092316040286637414215830304755149415045030167032662553236156078515638637990088648180536287365698289436555610562791392294726656068641180467929546819664015978947484528143981374919866561590270338524241377001550607800166402167749802912642984989545184379312685861832398601743145918203528646617616176315034045574301039401366072848410568765998983766024766091195655848332807398606775267442478165034179268756510101419623801449085151795407393632359865308487335648984517580630526512853665243692337949729849357927621816013351177281266898855255818800949455948192820798614529830211814028850769537873813995583978139158643821601526332332432330380259589091991802055419229767736788745826500170275353610754315158296223385026471554777403380422816019912436931739823530367439830897835224569722231897169168995634200774328243067376581734210729352208433023395622499991841727320743160459500075313039530819093708969191030896557968611717669957110473294716600119992688130909221025549438384939412956625317343041699064875008039662684788389711236350918104549427307569708725729890944066669840639122329892705013853802388877703782519974354232714828194075316982270789801105143345631339967578203540593716391257970920946623015033169118008127259766511322362335885511700912527762534805162539648171646261130092325564074480344964026193027910937623482189735401095210710810205267938786277516959170928542006150774250140658628377399104432376621091349827437173254349138517304657719300761260064387817212964431513364406233533883380904264796374565939694644482110623691721641964494160598570788153661491704792386049888886430281629950829900457332121637970045560773476123244482964375493697874371140695657572926728029105969955328829210455825148736033199779150411685386178991273422170433905239676219650126564128345056091902512351664250801978457875545786290544248007171892150974430993205707583176188590738749529371712507397972871323825181584076577357136389275990293101801640816133725710495708523789312554990240728665736900206271148620584622192833272028892320377240646678605516221459447828649033355743939192140703988924021064153282058756108137517932032742625371535158745541466906623956078338955324573617690976346541312856024019318452511618111897823590095218899124618743061328736972649026664953185197345730569482898502779877162334432857442278276253142149834449102354194452725498325231874101564763159280893178545879006571778705759575575391080568463500133473756977152875169757578542578315210434000656587047169771601505357640165012927644174007295971193986238666784270536432332471594153270559624734856539014276732565902680761013228591127968802315242073255866364726056368667328789650465843840178222998280578556446993883676939449344148084861530385358601691693129458192420235985240812389084570628339424960436795483625191067079300717369602494295183634322072381686234393944804095155650915117454776911937502525110424700311520612022003316329567516425660362688323948971679581889677089502839686365615460096613341512379286570384116342203137302760757774673984380341142746137409211911282477744684334733448852076845866285702242721791490433724267316394185005786260848683393989850224782642878572373030520995432969285049190312262776851206360089170516481913751721706455579601062955585666880143739268941151243447975048957151279747177974182570108188571526857888635385110885696847200085038271661896938678657861632940354154589643264042571865338939761216060168009706020402506454251484490988407367352571953150697057892156287748527116120419904772316391852476068690102682649934908676811887229413399308019742505162264662304204191265206249203611571974185120534091425454428986945943204534473171520976601329296166436823210429775369452417556593670104724930581181046085175734101901017206958003993518533258356410667471646403754447687376893195520830131952920486072926794909901937149967447228326713810189887817635984260605165458407333827560306483874866908430057915745126817539890406776787304581000595474429307106963041022987015205429763345722153089175585744204340599097702797305315519054640665160094854032158214394767022728018960396914218723661680562962677710264128397606068427553048898114910348317258831910902031259762656824527675288926513590465872792796522594338031990311812165538085112768089381009861703469586689917449628006038703344293188315500698481155013819974173584633171335903415000488350143651271904580716216180915832281304585303359418265973754041446024365823925895026149862304887747818048687424883947460999689111665305235073192105963539512467690858215801716199161499834764907464958056916538822890898460880910299926470024245769397897092258593869027752204717647718935646911666850938364131929923519319673473211521525104132687918479483643682060360935779077646308592492439605513463027931972395122417050416211546378984993034970925174855627088883031193278113447365943915480445330848905767832718016550612714684249212857383104199396191536385607804645317517541523621643734028615156709563496119121155027017735836254152372619643866568465664386208110999570338188802999886493055931995317802980097147199395191076093153819128400216035753944676924832197054234183409663131727858330363325744555884648745110672414470749376032556488415784953814727869595298085297527560511444205280237057327997925654552830688613674698786106928027266113522784495346405394494892630752921883834258556598641862118149009347925450383163232752750712013520710173464155124192042809580504960405334793607770860253347973217902013177528139144799455903145119928139848269175241269409521855713057863857700205582884702658490961662485284894194214687669626686555360414377258906688816838379389176722564809603578019709328260304970053923907775953666130572530438730168963482721594327616265714188401440535656551594011722282990659022773889321369994864983339994762469147227341573360472793846674535645065780672234420316013472551558828569388544098782705953331860951101486804768064049131428648851323291015161959112097068266496534857649449264114162147481079301636976940197816045191719313116929171227689531746741709083296068324343942772323904744128984584390363813652446563530419910984562210931621235246562745600641670281452010205575480725013144009779943263606062676093108466670682925731009921384124329192182500546651323979531334216173280588234627605651907808378017004107676484754431696333948743974784270602451449119775274816227354404176149515770077036549679622460731262612808924700388574596798223641035255909179369426636789195030563462541477389727107541232676951037493366402932991874326141111622737457690331961104899642850779478835862439876542191889850799921923474186444284334084373918936926942222572586531842128023194924280577152397598113428938772792063889458271198594902930728457607838215653257624234807875836813583797946400628014643153039379158678376081388255190015998958460725992052395301180159904890230115537642321094714866379428765898859903172709968732953576163530116744803711979168458302180614196046167412027866978088074411460860232373747522125098526330290021195624546910967672502728769095917650414028329627199902311932700247194731008863034372746423003507519503135261892389927528895983044090326331773089213476341831250430724631300146943109662299449414124225160657326566722282365238504180961630670978597265099307488762654645902841479283605097487717530170599710660562750500741295879896472119332101524589917108371413701076118561006724152135402827551527246379717691916241447478991171327149597737062472154143230529275669234089892958150116796285219599787576502879092500000945249521299284262845314996103457702993151116381220680565900393731024315819989975875715796632511979090320865955845908293135541161152121829897154488360436390691810028653525173036426191512774816275437338288049818046784295048638336538624209547166108697349118323073953919969117127232582038607839853506932640884242344353356549809894368720306490631972048290457769525153293268651787135441897992496442422508956830539647402020230791922625788772176143397280067795236445488921747198287759641722988813006599403801061522210859061887784928972352241022215580586832354300950833034710500795910154071078024122391233135895127532627715607134869894225251161098131227721597720261884597593229518567479353657246588883924587125871570715213331497234510499829067211659692770784679382763053004815673673377719326583704865601739883454331415140401752657337863680772610435938351084693209241674660395561791190217697807460157751189456342299534398878725030949963049008283685115470343020615283888265009348983083264151395591510016853001698809234605206250263778140729607577201233003982091502921687511434723709885503980486737775232955003401063311410662474608217506190266177883365979237294432006348428552615125208580482749382594250272922375780298044519236143074348704694174213593187550004871050914135391289869932756962350615744776141652296349706791221634860778152276268077925387081410373062963279172926399151312366511213532382526087357879889165454068639573537709697285834619052494810137456139856656397014386250603045204614626988956167144507236472507503450323688993255178138672914522872097549249901334090062727673624498113110302627303779346640687452140011549758941631976491846502765346598380248449699271446069208330945318228066331573920668854351152992253706050787112718864692397710076146552624279060392505778745906944579248184180132243264187913969087712740784463841432698094892679430241743687221463366035952026310813672968862833258048705019157869307867138399758853875938597115108997200896116891419699363134822645818619999418622635095582472201080167550162829232709448329669105719236923671536808431382550891319471586495213475621582805947112990123742381892704068069299439893821370032957634808885508607503042455802422266894711904248112335844645016684146462778573186028029014827608550017308027096763940419776417355936560337595232449697416598482285231945905505417238721423752692581008919794206602499595476159368434037057470560045629765754548135870474591515923007027537840741053343222112676290610120066397666508334489130298668756662854090617553450340192143139281938469883599015381107665708249390261372739057432560189885109504647879349652444629178563891349712373138421931814870590749120907952343251642104861089449942248688879080048644661487028798491160488147562053432130780350097900055690128382320028934250170206035078545765500232713718206843036493812031736617113569512045442282389842223886912528698416067777100175499111240932777932608278841600232816857287602072865925771973424538404517215027781406154691599398782640196621112037082056970633105041679416011526668828109393647270052570118622588420266915119392365793613957184605158041652244986982005097399904199975802156361401483802865462175223141720439879404352115656759316154870631821773737992962753629151438005061734892836397009939726280817045026720021574005358384609818332175641588131461414576345422182020607285651329079360876113471425979371340675942898689994385514981806461149445838973976213101039150301588189818777568955112734139940128674272988723690855328755295248868543504200668574338944853316881049573714562247336779533014776640167458452176731282736958395673374444699523892718119334189493908770062999027508332977365311514590649569206845915250119620417223696153667648543067335403192735139301720286614755620982094221779915743670319101521903027910730247156708972666087263530129303098257411297376806025298219842762573967822169502070467805435065875819868309265436391469970847566137731594904926944493412199931914648969815822409122823053894518830116682542912579633603730048738543148973170754042686072091620266883874841145121813694395576031037913095732979585912171818699746066088761690785418434589165050793531008639027432850096113733283693167800366471139095356273188615470695325231193139897798325006051747301804615229545939290767040514589271303274628807931431315002256609914512201970788978204673071102527436332397483806578729649087027487769713692043865139696443039045925681489551716913133618433468907123874618620647034670097402524636546785089742500959271858748722531395315189190827094788962177173934307190838711386038577477895594637440107454071418530126181148002217203354228580285353649496107604030305221527175308018913151050038530572550861501514878288826272779225393220121433231070975147214412108042385080089606758159504598312254154819711342659078237973531692126521471874799465299021492770078057845324625788413016552163130763710431700370025269540490392776386371698139885626562092658282627938748647123357376272061764956180210759262107295577111651706900438166998467994342560189231037784993982446966972496747439334407392452887919432676967690257257498961732808044960746288949426364742029681815909438977275138661152847885557797336451529173057478998075076472146653315340041089057471584803684134018451885415831899514454329410934548954350764989458943444030436915374962199416216408804717720826903585509032471326337007123027860341228215022788781466183768338495032879896589265461816844000192371076578081337134067417034995180009206831552115252324047941759853650142120672830217919163723418672582383992258795847666350096893547038304704305252504739496650930578201273546584379894779629133489560002515536349181918657213457105655950641222202341774526576293328318990735303028381290565252620253102776713839890138776381748125701234262928475705278355291067081759863709961594422998995125143158935525010155804722046617202631290470513802899994585949444832210078252693441515401106839025867756464406011241472976499239112188866895268035280916864185365963714140421092038457469541157815451106629607946695182263409560783103973159132353598069330321179233224254789330924420335825048629866631723070207044493818974764422586495726165050172886373124007731906309331542536124023311506702154075627633478762808406597992370596644224986571525768052763138122380968806175484364296432974811893845716470923873263642978146121499645201592858070405326291429480327533632545891145070541809973748618979033215533250757145913467480487796781777581054174231069378260585978915800166099682427406197065515471673637499381763092702676747334998590492561210889749835558249546317929104969266691070339223469980530694304309178312437368165289718655325378007433589062089839278826425715182415484988017135776597820116130513408036904145714697452908302824727918162220046881924849459962729494448040784300772838298594423741726720147475190955524790401958347945870759820036581311194259447604225515325274739880758384289727683407759632644683896070638403695692071108090242574011629993966491019186378595689572896034740007232424568302437923283804658051229927165564088918510184084605404681572961462457527755624462352672632664027979031788835344149569378031077085888724672881862074009105144872939318711125885454412059258117261195932387176175955348947933181980395812378722967843011756623492806113681341894442985646845879120473162650239392688758174566886053247873907768186190427761866222282065872887893816346973569248171623351951199971384440752569212063790561327173630369904332487479348198832405105907868492597814581587277197921156420160589313150005626574288394990793996377584438823886344026067413788201143836794926799314178645689458913064321246156570988535607859175397025877962003507241045962565050340285596289199606696298880901229350752704389739020111084048565845860728119247431599251879947981975321415219488625192626046657099438763392280586131207400061142874435778166826065911134736337346467978278172352121528650452260055615001300353511607672846380526699953405908299061450336626318730688879855274887718759345736393235131815598307873200196749217783219708654218326077925562887958525083904588297814033819320099552432114944865011258503392408839881640299757303521597816311465636184112372248954673492080510288276011954207524877103650788071860752415328989021308265083479375064109399725326192829809515673080032326989436649824714105014888574085733592949982842102208722975351219375678136081465727552434474072984414866757732076657738867903721747496661948647312305357522462116713925126329879839503293515797358216969451052966241952449438626393867281182498346505840590996283541094637764178026503190435746199030862404688453006767504404829337011509065398422912885860196676563146326290459380116636947107570925158131379115048006273953772038116433171194508174688276742857012427974648649105406380523268866505235346311374097372415796144011428579930294187252045679579915143185377670530243813198644037174929013603527902994581555476483170052893604598158305714301045242733294262609140455972249942824385921853231723766684648903095586542123860256257663902949741885802424802017212762809608499220176680508033622047234743023103909046071527911675646594475615569323069577757242794310512529646423390804194993131828414196900583290180704356891267389879031236348817068929373381789582793256278917229608859172300692397579740432767620896688836906792331544476278910997543537299549849828932372760492461060414076257701215134658816473924461698434360892537719688420998267172429808126088386313452126353318959985973179666691161974623662304722431181284575626399918525842823001058593876851512513622580313389734000747456114011809782681281724096296370202346121364470288007663572208405301099099685695858345478482313077363627717605414810796974599526063417445672077301228567937723459545566401117028451218536591478839751453659446881434688736000013941805145583485985923323413456414764304764840774892025523128412127436826776724602847329103189991132096734333689110779519453729487254679523273597756016119663891214005145977152193192814585949531585016583888170409426817684616008973708511430279594582475494916661590483813260466688265648798579312841122684101146680739816192715102006648512957847415078891953261483054481797938177948596892008719371161470490282969430344314664730746063721269578778716381047650848049558256352511185744287321213481498732066821597173891722909845225690181292213996608455518630041408224002103508027210787476886350636936228599942515058425241137774186260241240104224517942057038829647695749153508114790877736246575415478574526542116614846272878372176762013088184690150021925366265947082933972321978785034567345217562631091812347872008272455341805632882131204740726185513932408027874150622429037651959916771928327955705288973005672935314274418785031673910634124512335745123226256137077910611240807086358398762893112725783036808221238808704090205113573629195850113551270187482945888929414139155768522958312435673059489993707156100338758364004945040339729407917848237109314441703293912475112169901816949312768213170298064119148264618954103516510063869631480431255534626571346383830824741534878222016948068460665803869938849214131112000347953535321939218994870123287354806725145615517725511420743077319988782970683321169977319374298816589766505472893640048088670762438203337005157539222939709911605235176587803022694098829750864326395355569273186040193240444454209900009387119795318954040710997577952170247417956953949088768490574470761628096722659112190314517322835776574284560383267046434398189551933757532401287760415798645006793588505904558448479664789999611341178730987683595966649168283169889114474342845368045012760343947420585813196922049025005382221465061942874421408958660124761783227399022367418440108825373995054065164647325651845858240257115458778949281630317864686685463529893628939735681660731641875270576332728007031008018989889365007616638501964408369394945810074901972906035342257923688248389596888169722080181830993388222353662104614867007124048056989202315110918948683041321780528126674183222141535714219102406194733575443817191053887274958348347019298745798276748222435100368256436481851060102415227708268267519869182006949041176911278401714462243583436639319434492790043194976327459922575978708742899268686026617152756831670503554522136265939615460512723196918829658874605944150012310336529450700256828865997382067379594180166049113801367418237067195875502554609352315446359512837175742060177495985797728238669544242248354525437147925111449088604317170043177861546975284599080526256212392829995881199871632974710271471342110856130347724278146568817464471820995676071069900836566598885656761900848401189690727864511707256378745403892127568383575800274127327870430998006097621222056678053341136923772973418437986880494507473401234288258783991452882356390547275804173198729045561142397358409587653044784284118963635810775752277943671865921681124110295633350208001268565537697108365592444400162297275492251494479136679923350145639349829348308409198001384498125622327671724580104739072622546297220551871075364836475320566504876087010701196983285350389721890837662107704804253032966486620434544094792146007240608167122571866433529110301839617762629282524170298808663084891865957355839334134747890006296617134650001797676097552943032495748517545719911748639131749926677982936507769180571883137048122569106150882343856181219546665445559038626161801432189318700839490020250210734240352235539419927931273315690892191310490164880080311262684059286507824459566060751254561664000000129870027870475703291798660565106289555547002021020393959028699615829393238860112301330385179499630564235059991306433769877431918132044656679055111037932001088999739345618754886360263935348370189386198046232095717194690121901779393240481266553656595778187020871419068172879428860619504904090398496453494745063761777640516940946976054636132293469507379009510195075183170836395304915230962451985190225988163832163182982406805037189903862266500838169794712583322136464672024660089891442841807301140759880080508008470811585297198058767931357128773320560238678392917050282761223761099192715969641261856516055562115581771701890130176649652771293754754684409884392064792269015642054592020955392931645926751792670689167451761061013963476557120349870432252632313546811452005966101638090425456048959856545514482215727088505988715465365567982940201060141166142878806188361868654418085317333542451673166916189079963516568390824677150426104929521316836264951225473337109229889080410717164728701186772985778172136374838276842114888293498438326185913136108087695087562798855455211177476189197949078883589911672848135904397359622167032213953070508745188943207711495295321992676166933209773916041411160919623556309586478677061049452422004270085218174014456954100075220399505792453166487071212171449358732836157722188089202306718893250258117258758558266463677313992820757665064090346231031793866608185473335968446422959564853164396269411952174466305153634159652789292186762411912633498680932326144720430046224353669870622386362448230352746717398065704338231804863707141038831029354085072805240922671315325433376832106978477780491927245315454365470839050374577732381469322708477581622414365100076339828688949296514784259094956137594971563365183812460400440854196519639457872526724589474736545719522348583643586155167907512359492204774327574469075294844598263907217170459964174838060811120782296044503433318358619763357653228755063515701327280772616180780567474188097738539596913376503123488566811458581140851434072154175782102933074630535558472081277735041561051880622271855019844198939830343004314987036496572584997708940182955231954246735213057651283734479518518759215833767926082853525244338546650631157836666884356893166930693936436846924982954107859712619025585094761326049732777372363289910313692948337802632665331740899833903373307881294793823691284482256479800001349325807252042569793965006881394791259854044647659691503934235227253530159607509491565370312316880245708209979084836461061618662834516892252838903538597760232174051321145768174993416497593469334534067485018774214802609880231559235422660129607589798885923740468371606981481813914265859084277261387305907079596157193439220915373765802546434252423083870268211139287307457406572109033668369594903049913469339694787761271064027373137130836327910472194491756748445635473286295960178892361457691706191161721478022216083174935619859108809009199127492714379618493026892099431922458890108733347561723937105365693676811637615010118750836365224463406314001365391669723607587670796952548418139619106305485649793909601540586195644445722654029936863776104357076126763871430007902540313801309683786020802176187433620172986374742849461582953960604243680351256226052186594964554392818930404911621869118871915077687270559317930227826420977967370940314264545067123222681633346584308572242001851058361169975057211694185274094853501419876656935598530584725834639267907678999281023895562783132685361789747607486929563852129730962637779319040532397770068667857364593278584164061932053932378383975126223741117476838643267478995901861104573779274949982370100133818687567058378249616692155923851106460645255809011489429023719033710075909092252662683758793268140656408149533104275329769117663860783647610154952412117601493237444785897046968913158050662733587796575502182235937184224359171256822038350783379489590077103231777913673113100674860902356986249911325951301323395102791432995466182828472795927661244858779452763371635405868225952099194887316867242220712151731819720398339535415249684786488035472046698426396143733801365579777839282721645678398494362849643229316040594257769335097694405389328790672688808595392947234404239533659509574020144117554489542771053865521262333233426163670864763729146550665873418854500039215173474789930175788179193177798201183708395881451986585942625731681437594072662394205673979396308700407196881401279760111698444958167523167373429866619685041721002820214068500185176926616510828362994552058711424401850563244401163589602637375033807355352084813733233456481921260602980061808857355136951184603563659181864723211358568662962120245939293179557973261077585995296112956984337668065139345023676922050102728758425643674009900954399246379966422800589387417703582492923108564539121968450846663549617173944255735897276689866428409636008501781236997386832884048563378884015985298472275532921626959321317224444567114456930868718172563215440387755632698830886112541687840868937819902061971435453988174958561237973118807389572043384220647680445647053488909607092595962224202298205348861188895885180359114814861015604363221704573428566859726472018953893231484085292559394843797440356114722930408294855384682010013825584078900302525933031186659886000406017150626958805860871855109227577338485584229787585854489675203622266560687734694222811091020876886560499953497042003300346421759505695805616515724347354315283743904906569555265958579904603115175446978159991352959294194861486767871520482604545587982982018468047371347156327162244168088862750198741417561022199948109347015460695692579795002630151030088879677105114811030593648784037193563889622781224992495457716439922234800250287268262758711797876853590590389607424005958419897157759234975963051409407875588220957667361844401997974885156273644708338567552366618007317120584324746724473775289549111840295256366289240921950334054995239207609456608217497965378242371743289165812439708318195905015099538285144529621523915302676371286987312669906337630103008092206894226118324751646986193927382723404427732748319995132905657092774571248103735831849914735494835246632168018232200078295767795356384825945678931734005965441960287072652634598002746555634627075163933421122009154609095296061162090006276884818080745719033021108380089817473640946337033011608336477023318118997253412952979589939891776909903629128553169253381086616803402483950766669648760697962905858346214087502410107549420410601264437864461144917391702559936986730029795393450427229824025233173249595325949552626449107032751812591177575537856885705162929961218221126033089585658191628075048064664673217115327030721470280562754201210890356407715584428824776442662998543469207404094038826176106114066025089313994203409364493078265454755249820234141590184743841669068125518801404775535162029905122127966063153956280292048774959056840098457799404788989047222149265143554901732787128630251309792344885006296950272461404939569867575974311591267966200684226013968285494302025441928947144117818973219796276631304921921949211446763641114840920805782447130219592215017729763324682640927012432542441392981950301422974834638782552944611096315595554057116210334795225750491705853248892919481804255809416964361422803051344654870283227254170542596488855091765747237083562721885884031272417450808958627095928396742007387434614350113789576605081948287091956536480343539930816438366192901214519325722050703244501112560259914660319268014358752250208459370016699410362714442904202852135706928678109663277493245357341970591690084668025695245051005883779789850834657234839423748099588460078154474135583545052719231362230512537917886255292906466971747656272468326952518683993552514650328223324271037538073045770613265149088715152913997250676712173073243387228584901335085929679885532939973968487387799342427002583973169168882459732574731836050470934708091738717250745454532737296198354247815330460454675164148236476371610804532411582425143874217577705124090238193706864452066573219539493149930649079698375245472988893388245060424303516773642325767212196437780154379737656019002260553942134111690669795628230623534113519304839930269801784992421007477624166046041422069396219650654661659036455253184307124811765408773106221400448933812626315230850162307063014568688292794855033293655371377189934320963748499309580037777172367795517873852957786100382143670630749447966380860318466953444885844187937624193795739503307806132132820345643028837506668089958444121395879238189652053999906007440422866565270459394353315852164602091574010240488621399537962157323493990153199907260355478059180674909886067144538575034045840124575074704010229539132920763675366860177790706733133810728625066652053333232628911253178351416112332261511078760612446272136168595989571128631849094935809641295222481281244041017575487881561587434902391321678350637385658383290861514721854745911197515239365912757281943964235518682331435722804201227000840418890403898730785537118436214873199708866537414522462041240333059757745704740020069181970931587893366001552863046149696809199391018080315178221519613139551218880178977524154282862305683254840532575300704591930315959618161394904660775672200750367247026501674252774649590758359502819764811906914252904404884980965146824243470693164384103380020300679204353658277300605887945500458493730890868063736967665174052092960936765401270991088135393805007518075283717804817857422947724727706174901222167255032234434523840047005204497923596424567875116116334338528381810780552756560819175811939694738430455850679662642565470371689840709478162033459258132483667845814798742608567074574829895017252295662878116884746039692069153673398495446036734912431441290516218553871116406998659260141443134615963104616877349271185269834923973031905974958301460656892917156878821860097954798227443051602187978181794002391045539974129516099889227890384770990476149436899220582034315885350200361391271740329824856264085352050405484181478647843053816219996086871518903083369769214258442319630773297326651457550607723535827196103602567156477974335461847224424861403169575260022399487894949323560598215140023158968559635211549270208621414162834369020691363761838136483695927496031999610865926689777857736747775551921422861670416086292999309722410583273755712783785787255574801023825089135439505982150829136304639816106743430285457115198651925812656924142368384179556292791059480681910566793792035262368710943836963081898674197256091782350434613984851227238081710109985738562481333450680169952872804679131546107652706019353802180958441191481119314444194092399571095585118509825576606348525021401338241983522675887815988969208091941373331942927437336091573018429238804157223555853506721771614044396531806733775248426978789131560766767707201275130953363322330470195158325739373279638965603368378511947347214284258109562381020061470970394048860011940526715620031816419571242980498697446641269672697502517681595416909056457710365702284504809429014323544122331925861543719788970862899189858171865653302697616609715809277184391072923585803234760279753356329206462605991165824360432356885624806947174588451377264990875376015171956598591462110097408904825917364328857398129540741505391133069672284874682222590409682969465702080390688685370465788267110844839663745091725714957083841367740512029268926248762843727012371290484387040483910281566359037263106957717043652149254851269283624135556469882061408224947918571468288744354151966213088140556478707586535261683132765850656958297786066703263901462960671405761636608672535058356850844465113000732300158330308443711437576291946205937789449345933310107024085338917313921343081598304825145772922963866298026158763056350936561475218804260609033043394087211240209926541016076977766386011439531837858915020506353851934812075426958457496385813653760723501842374726375192754230285119765457394120452027197985412200944084546661645276803741869752570264190051854891027099423546734669704165409682272124114914938718488191689245885051390802036851500186550148166787593287607395294470469513579437968715091715150962033932492213856341542178673488536049078579011545754975979255717709198180428894414037361767413358190792010791182867349863305597682605508571105307577024819977375279420024153192851788063176001955935883352183964936686887809587106700694600817805066536995523711257663015436640826080834952162979762245959810007469546041316275459356246949927414962228679904832575587833820437051309977831929428689949026534656633586412849365462061877501385848749900970539349026161574883045635110054898414384210059244121626732175818125479357475691101298103596405055033329420626794662812050032092140645060817774096389603619731953859798552518422937084421625855690326523632644162010412194787169237850504493063932400502046805718189271968388965906223280107132732600234932447089087340024949647639483565190417374921783607455680170982564197804527497362285452545169159264667380437764081554958653638689336626654358650815587147296110775813771137861615794841768481776494945931007319068102493870763166304354941576007839340706985383811002166260913850501351896407042541200679235574795015686159726442114957344861442437985648774066316396200284365695917497971936923288113909628375216064048671035949733593803694276335820193876594840929080013298652441028959416813951580227326045618710622385064135864498922999817122191295191523779442575883333834587451293687501912947032075251545674090061182086543228303290497600878167111503978391220236384524119582538910270609731434684818941068205765698639865318340895269092574832683788016809175787206103835743410697039270541706404663289698431450713698337692305615389945128548365194472558867468335525440023437476456727783774603351367427414437058132693774975953274280638191259603988032008272194220882679096725941880144655076995142014263195229030500516984134509051199562187136163771846932216717857970365410507506129139967551454311438830377109770894878282863592563601912461583284130754998890836699736842500636888334256413954438125584599775737520135286894151139348350212504418648776702919277940954690673176863409693954274232740461630971482712314924208867788365279471822316084718248155491554211476380852484061346854045690841126520026181267772474236480076009020526426346401547476526152167538429068757081920353510191892424664294315986743472378171758419021068549604600494306140913594285176988025515797661097109216259574110832520748657345352232536932486683282153928852130861003348368611718039543291297278623106517754637331603237618578334354214126179257051145450688788007655698384806380407661198266519348599482802855161276679729656795356760708992133681708647655639803719834981322484840042455275115668767727694183641443936354015705484048624630912151143173376699983750824773928689987103756887838196599708623588089343438943420143122940481430388762601656251159416123234039883544327006817375313432805517598657520111278264030442641230245356352866021988575849094022995909368971589074469945771294762061368830352043868765003758476227465619694678023590294668962559962679970647013415114926290446973185243837839707502135345091327337231396555627325803633112516134214564652223117342624286010693926527229953873137290688314756997126419440477364982488996775495966899343962929077467113358953078637734717752234525262295296506265614520781235658371084301974719722890141071897505518553557637602401494836645529784575379690414237937208172956015154451927232672602676648324285052673759485817964746800031510373374892468471348714527018015759088586578642521840391711186744463412545198828681428561290301730414256657900621697181853501592843754527254914050602703773434795043073712961970775909953548433085804037999858089930630537959233657000839618485889303864305739546241829442627350644678586259311471394681003914221568990812804524980772298324519076017285301231907440375470342474959057688248635670213305967851249629261533623658453687807076242334406477796467723134206538590789627831514850360700904650567465080051754079123101128338581467141811978954249611370902181117694382451644883921598664516176186623361174127641204607743806346290970216641712578432797907566258211297447188442538469508615692975593972433437341637201792143420080890744525061450742307592269820662980667540365778988967131082317020170872166890211324318898157149096967705305321640937801351182359466300832247728494762561144629835014215642220263047564947491011911540596337546729071389542345325043268107676709664413390345044176680700194792981607051436638819877098303443995703887622706712296061082159085334620859113981731426968592654879243099252220555870185351418318778307564781533210957433091869709391908626434691196970677509252104591568901023805734928721929210632805174026526138891060830934276246352029408650677555581331786979906752312037709860379894036297033629823799237036773749322945140910175777223445646170890206449825061629252493045098672882478718766893115061625765585266001157335618868591721156192940216854181652118599665021688470273160236565846020160459502530165792843330283333837173455667793678812503687307380237808784032015395018484827457403722830896891900123247516932489817667766669608510650234258867619402546458655474760640840405798808913473351315828450150890895828621780538202988996531788032549328154538245425134371307349849359117032129435096146967556366876173293431706062864716006375484500346368194448614022961221909934655131275745376954467565987928111441457662568664758090470591970504348176631348530652928635393176790085703530569543749878089326243665635375879263423345087883224716905931315101325366560958969824205423598861644379827336286402482266514858320946899966844709143266322393595003179774069702483712653052271227811435240843866440639230691182842930048900697403512345057064184421572220043446796892410074364068227337724173123111194976844278093879466600382746313014940410508447372499142756670413096092585663880407759974830923522503519685817970514882469975904939388446551088464214521785176493572195034416440158140120525355402866640311886324331156668076827129855062036834378893305501246184346878800568489435111717982374914244023318658398439267552580015384395907241735238597755952078297080212324684702248808970515248761093918109689201327225464059766945786664202123460714486532574269465216910985104496025509458115856183230132955078885332270264890469865970917999185166819504695608001498508076733626932288932207007565607609486015026168174358329275551087841403445382178846531779326591176951559405635152894965561809363544747166690408583221423756121728519263764046784925845176662355600464554554936280698512843904863545131225154921390502996630027400010552617913868982889830030525847739480741861726155361951424774377068477035275608585889703331500211147688464240987659759302513823409766842076618100699713147912102325164371073306204586831146020985019475957289641650263081923835192871682539710231140501348995205354731366604712078280909831101966849766514616373289309059546353564961963840188686344491007422648866965267782965906055694314895276165690282223213141667115360751128916171695881135784268635753817393148626198422458855988436499424890961538022590757129487905179594338458402277897042589811726370366649595576179176422325348741806666806322497260089846886091948467348334454314695446465554529177984000583393044218040528504184998532946594099842909797191322893616244673403835362692086334632826394398145173523371434628334169901452334578922148572339768448378230345245212398056965662011438091876560699308636868861018207270645417313118466423917683656007999482696705552185767800476587650803162935975163060792938102558409432722210324305086590150080077751576240181965295850082085789014351057502166449149327766129249904377396022986201581678437970292775603976988143143367038633399829962929002165516642093976748607142362728156519368644540004701502826328212578398702259604014012842930703074357817765036420328067311821977220040941844813189667297511300888198672888231964704217136961759467443704239200027340640232831917479813716381198002999558292507904521214923237260455231389031412736134796578586239794627858366539990726660642294995405179515754913742319590245115509180026513728174141619098257290483544637342825928396289948645534792538211677866783021035358336852000658640157137408624194365776059234766760402358985289009943407343352483215201207766155085728800992310821698538660035733924884642255777690850011585845391279994540847967173512856537311779106784068969519459802404442239971048585095306454841327530762224246207895304167651912647676865894048056815317800350800104767500968764442623298271727521716339618487260250722840523955693041515304274686824464311675866046808134582997597610221648246799457492199106260656044688979345844455523676491988212056563355489715173800108002875964219183829232393452340960100058972938960508903233351652289177741878865745771413527803527232320234138788974703784635182315434749755092078966871921819664119181435909062436049972998328409140392964752199897847588796636868512119191150010983552878827540002999243677872796523534333891396178177043860461297965021833796098617117718898329621269540541685293938528171731577898283513186915891425125618702061293209261279084709614983284310412766413442830174105940264236161658475314585323069632849671510259696412649185335258043288812185699017601552774544056282841039487229871391186652844825695222275525366028947762265063593266065264484822947873091832409966533154875637350493174272448985970604714375487012121617232108563429291058021116893216737832003987703467036611841599682711085576981009227800580532300613409924412972506917528229322202770690100688669729488427275992608715347802194858322942964984402053783125465475158859222643609574597292572647814539309054252594850794161874687896927994037710355445892313850728561997430700749015318545186081648743361003885935360216815427351752022737148339404135658743442146534416729137000798161375843398779475787189672292326034141023719590730109251541157696326918468708462768830365874412862238213810170218667849264180394834390863650562062492542228909001033287739498214094652302336543274536117749112129736416319242043724563171704098808489761515696615174708685032474750261486570968787531776537380023866327009490429484209871171108377509651534871880494832909009994764637901897978788028790915884050886689038278268161588338886121262629044022885154867397306381983385379564300701700021675945365111714469150181906363486777348600258451299277087628160703126097709487463033120723678078813078321544278224802936683501670842605363314375284208391845954299206924250471630684832035155581244414025435755010630279732649994351306789075808732606025102304775144566409573055221465525634067463263881335226800047279748602198429590663763834055145349947612753239649252228692514095823653938253525802550355031308832167134410395324608345246012662308058198560909507253004110286542101204980528431102251271988301182310078642679158269377890953929697807589834770892001517930706355514206804037752185315659336077880884597731021945840618636432317541652202794700934473319060405812085795831203489929624137725826725375864571110854017553263312996688542787066840858946483074589023559980266450158663582233496993966100644883220165175791354050092743047725200703091231277771872527301228953693992843029567902931928297357689819482559423395193733733852598769950117681900097844593741784723176306805012818161484844720209311882266419856054239948798397718303936991962212833056392555602398026924132736581478145726842552001421451115813061310501887733951389568741079738633486950967964965308050239846917933021874991557542140478074586389635673601806566156270379277820571211573938257233162818602843683031850367303009614998383417447813482375759232857626127637064989527825479783287193995221490702022426817357436625852902479587190792357175322961466907002539332883924939616964178493210490183363557749696994954698127803002930490755585253936164438625566435769273134398990399939137366430467629861997090854655046815169559122378230379329426477747969970951463478971489898313292282824592720131634612460553457074957899367079522816953079792058482567087256659530041506668398623145197574984043592520900408726169143016791022742926542949035751967236080289591217816218463236246062729970912309605582871967850529675968900639114396202489426976539862872112608589589153835244376450506549748093608108298726949202246959954862087043251043303031350248426986813788016516468717335950098270478043864933269048706788793195829089634249239071415629127294024643005929258505843768328870458673466673050270476104605470255558846694687904678859989259496463948405566721170432965631251289656700301542795993075770201485662991940922407509329362010173503259336964406028967106402861358937974246762897819021321690040098897236897857731053554349208621106344445123682664904110563993126615198162265085958675758864487298767005053542959022720997838510290938567958640681089029518794244379575131076443630433023270435345838241142598093251403513189000933698492384025347675469724026330716615089909068911836784573132285458774708234596184232347795089168917438256821414920363636310778145940330741407900484019499799530491042423581872060194973314510848006125286179604777663285384198911721586959134075773451328228576860192276239814802839178198687820491443766835674701499287441041015967506948082858946480002885179894761308103424293018699382852373543363019136209826705542745227174539218225620999779218894991007983800859733730070477587284627594912580091064457253960087116420428608139383238638798835746955775199139856338493246285206075320214285224127606095010951769041157367607355826633898988127909184245141672811803722285416524771489809502159647323817912650822472938382384693643609392378780022427154992777501190201964212326370657116656151770524147350053553289428251127791171238801109330345462867155621257069729202984461584385931973123790012179254111284183640254730574364299789948505227083418716946370035502706338592517748009820200502767687345410415006091182611740484887053769719247581035927011895268719177585639099046003123486897624964405257312435383856004541786545773955448886871260164064933435491482893353715822319018057146919613719107451145869622171400968573520743898878944317395412070586660217852645495181124487374220086574791550511392437417002212222737331595387899389581160923814638373721602173532051209614414963683423522173533976317256376869640672505415616460178917488308915049349564716974391264057248021211932145399593420893898094021694069250407242341923888342060965590201615323965245138225691107116248522700606549744068899298040891125919440851983013257112703215458645855144162656601900936931245660049273405035601737540719716390234701517035548523060793238322333165983659680836292048930357151048031220259737433865838311035489662560834202831343111292879540557757123211520505094354828336281796514769900814188632508842985687325491163345685605494151113887361055336238301067362047651079994808178768684790158861428973911722014109705278364576644057500207122310652775860283520506275362017082954428396422964208927923516152132367687637121257463612216774577880242486148573080668400925487400173534078129786595409632223322303623675304837654046357978625189077051244843687750336082685526086484878623199279405389363173901945737509392125135358748790467767194918077007041044210460946691232195800031966885531467371119920013250909869537408592568330478095361478557449757548293125381787591789416499034207544857484055010515082444122756660770040055979155982161399207694988243297451132964784877195918297582987816075994178381797106439443566618736674650794367769118316644633582845052847290147768884347569941312668117990345308572550516256786291295011530983521823122159565020305722304623892379298228875140559699211381211181202750832377863912887989083240050782950961341775991782740957670052197355333440870193959499817583561244705777232098118174730487960250269369084015455979157411632000348532164186070960857480289418716574482530516904035793221842152932154991569031210483472507225275679348324085205463991607081167636931189965436579676226509667514381714704956854258953197631966499479239684760953415170735156974225880976298493789986573427850595899252369487911749264291775633927439469558682204252097061511491485740384033058206329956454758107626178283296146260127480849379255599114389299023961513928732056075882651156677302951780867105196128354557157552089211063673319937200711921154511164334523787148566556456613461638695576137741655586124248453553787024775627263358328664226008179700440502754960353008558079409658141940681767065102165017618192773764054377380034714467869498384735348318226086982046585739239250677203399620390558528216518463180870249769543917642287186134586595548436417996151713446269586657643402397371997834356234382322642651134840761512184821224249665890713909534921782350749822986350683334249321566347587847413236582218751353202090148512369796666137016493151711059350774865601632885070507610130974515939837536987585156987758809702822701633238510204316043140345218557568388334048029194807588297995079797399307128565012556807526096573306124947106618270134577734196801174681730107210771980795833652615834489360992700253680690804919537101911313214328218360527477587950565984793612974634071573393651419149601723661538772674063601363691180623910935896688206668406473959112442793941411602201541933906529870648363916190065228862388789837861871212148220861758752484918301189662914142221667585196988229157059524519082914791561547907584638358439012468247521153717684040212763952361619460539439397040226571011193426879937168457287789751432125213007010822624985066208826728339086268858769825361024519612761596196892112825508835554356160623530368579958940931962225657741950633987683882019079373629695899577273212790811528015845378559576115554055619923002184800593317101924945112075383725374267888025608678945039604044415632851429584999850898659870431348088766746548626635111314212116055883401390793439471174885612402242703375638277403090356143926418078482546398401116184907329341591664709376061550450135824970897397227627972343444412630790786387544159896381202379377018967378085293542665576771047566960332322768770422754549403719299180034458006316984212371182468687364747001377435716653620114142298048734867112648616106023267286869131470504428575631006631994661214166363766202771680208586798725118084202622261832064543997803781689369330184367935846047042610643949390254956062041353933953343476132206509029821442209524823298028067338861634664901705630835217333774468365795676633164135828586570569207634405561839689262086956515251707653624562066449485586145423520249422127276406850673741027663859389457793354172968595889857634514726761065424324956604258122653658704675120519277651509592646919379557155141791682910232622806265374041286363714683039766591385776489598859137687282164288441432225007989033789872352358042400805027798108316523640315927207159517210628075882247354897186582299998776164306503944695054966187865910811310055563426530570192172105878734020449383500911812231747931631063902818433685502944865887547787216560218928617089629411168245740154474245513591193992526307710282051668608263897445994339357345501274661866980264756837581223882599719344966926080072817712085385414345610439620540233983068541570882610925153720241841894341255238019720368849576411078537843605720300529799150246894992194746511692664032543454830545086781341368069164089310133151910281685685757022682661653288121600446241199661084389701115002075822163541222924570545561559666495662325382514663352782726375049323957249165804286223984889446079914386217423452672585889623757528123753471808074872479800995427232299060862951639634455268458870708047167190704709578954892454509894794365221491311273427481070154158854342438057452347609151962790667166724654821370023684176980103686208706603553257987196299770461708750265789121939487274786370197447806535858914129114295521800379020346999173883908657233639344709297464372211443487737311165926203577776821015406123499310466254514552765761953400983727778612640560125958771441563826203969511450444817105662655051174193168889850135179817566045222455458039415838302371884596713346045462246658305853876527614708558646522265780697872103010925313204107740001848757699549338347664373640594474358305237795075761262606667841858467904257339371445799295194419493005351960230550893030171072402095292686340956802380905276331454168702537958531850834475321399022268012759861198458991729245614070083585778624446528308028033976369805556665724396274004637441129524341403563280089066882323828175294021010946308605854688977547695672990352585684415706782504373476248126077896925597138378992950384121497997199523364178601502982532498579951955529001169327895079899445518938298269881412719144582676725315318180259720481913038738486526620900058701141849873859028848291517376842892334059521096477645068058575448890811571128923155647845571729071053570688674721153195886537330950013371174366016240251339981902121719834946151728062157576477500450204425606040349582461813638239844317090334038499763011366971703200577580421007787501810032553085890340221776506082906668249413641549728042788774985928818004226808011679090047908719960726786980609864652475423430351148623081164959805834020222046457097814109544921922523593417156290021271623023910719744597080381118455600304597683243922016623413403144245907370078804235124908408422084002101901479826806021310696020241585747079234002782355937343492971578726978571752477959997385231519589415425603640103382422100578858835292163384669829412937117571232332760761880660395463296626239434474664155895023301164627338955686040596808377959357284989377011069665292368992439085158928699154631131173461080099320434041112095662457372849214182205813856471749487246068607910795634607797642714184265705627939091994868972824826694006085039202658902670311248710780260577209093141757111606122386145803414473759494784499364654061778389196097432043776009988898874222009943932652713192011443000755456248918821909494587048397916859711643548947526587128282303812260213904240000454843608969667036840885410275409208142725471904051988798634893596112423088825924440320844056978037992799883578484226737709584293106459997584163846335289793225590338111405652982836267440817818709245334332404868876015125014304262409518604359578188626570180011526230437213189205015737947766965609747140256826337395805434098945944904142455049872674144219078520579432451933878934767238510792644690285008545456898027730464620049943601087130469572654654547238783361017874248272145193563901036775297450180583130175613676087930722983771558818268387555387211136675449882356799674571605903748515806717510591310388666261866513911533075003149674138096441829204768384275293987958482604623242929610454914771834744928324090364794387040140156396252008258144618930072804600249201256070863027782785169213738924158373289512430254796503405307078097708330415858868817187220643692410504659300865603690236525898955978080979921658930184421718705979902265705693509371581779507695125145164739643880558382644400316110200299315587244827170019906347765175924569009703360361517120077459971599384222176806343023944493038411947448904319859540889934671629629178331019302791953889828007711441827633877056560594507153229909710436196176491987649427265894740639109526216336645373698576748838175231902210445060593871720980500088312976432039885589234769143944938331003909819739027161430846236965832760248520532461169277310059085862725115033190318319672487633958615238945103534317188104075007755337753964772902754096570050324524705669145202909125800966070747467927413981119104030717430039584265083169959077772716669889412510480127236290243482314630866837382071040531634619336239732801912668097257849742782898573058704524108759166156544531916786552462190894414381101005870035890173761923633989137440153474227364088949511977849015924449051130696626517486781371967924231227476320974129268155875257937145873593281566379713611426176912039383388110399223759025723945138519049556822575534105297127382310000552944325629422258140829282276289702698941484951913713010736112890551232206081351047772189025823626653390264271639284987157330227162042240897234620560326985249468570400555943461107602495364543945644837858156032460893209630081160990673733130018608163909895972527011550515194807010716075745139742971173659993275699500074605784651835835980049143786160803532576686192568765860046480724203749701921137062353803446795915231265912844396745221413820945192790385087144027203655278966514054357114507830613236912987590413212347017090275463294996798467758472149888596028036876842065947969225249719232672787207643260457028011337838136770559986683319889372878793642362236440019226239715570220367756593378834629362478464343462455731704251153750985800670809883300637854410837701042568885443234694810780934281860028045581776378356487716960547761338311157854882813280995031340931835257821298611560949491991350467157653275712534947568554475444198695049295413661593146202059013180870459780342548285500140415391701395377609901598756043788179364339666298376144883352511914725900439454933128179079588305428153143348363108462452825620441789686508490474474717643079669443212658854498838440802988018420479907310048212129137975140725185739945663573827246274595553867880051262502933544652230189650398834957497357967637125022338561327458255690973388539951891737696165935294884314018833067287108551690848257703165754703689890426423650257668861619634938378972455775571455066305636390309394301485114567875230639208438788182081485483119070213739136033531870981168230744178320841996314884569208487359726040764148628851477736706592714177369633457353344003364474203207904757396828694576915254234996370800648234579709940469184220817908181450676772125948439097809577228254663343184702501533356924312605687181756651997387046264257286118161712235273484926670391279359886780030283220428353826720417702615458940827391479104919695187125871728080378974193706590156256077178018404125063238592544703273859656643445474960015500410131033153439563698396132594552905842579298379233913864859663626027296222940983495722176908397739884793659292562680396549692583953325017932922307549301291866344548255188174202265815994100305954573339667269814972584205325811739128371012484783395700300960497447879735926908226165128800604863268699252005580405445829494030954352587964730920292109707366387561200068249733095723114710288008429340136814758172460224046368362324590967642586508052651996316100900423401628789039580016248796889945008010763144978749102295117968649013475960865173667273595703570109145405538202599751093724788611852371832191557062676375946374702241710323366387502640340905624616490496291439841599849011802175520982391754893705059006657518741656376579984574002982954399458540156628097331226072237978009547481241145472318826019375906684727408259214258348382369646120413378407181575606730635182302223474553406126792661736817049979667999619682522140014018424740354767186288258593246809865625000865031338062173882888693516923664810307493469021908677133080591802854342325320678716156265620375260749647556573525801033321224349056822165920558949292619911520912973038714188240288039901638915714370835744759938442832262084176566317272697910389253983979248491389521271782162236847429188593900067154878236918910969759382247003296153052287189323285071243284273353121727156050389799075897145861283701253044971882901749060478637103698759594542361509805428344801251876597198020658458796094147029204832510094008864787013243522502864241599513911342656018660515019399898816964182887280178179396140836015893876485644936305961841436061020940625860292496646500636507342525837816862601420608850766979185045929063567919828337798528352888777666835233109767576568606165941021980890546332874230890312748069522463121919039021623298107200398152799020187985060065797884485715359673881089998464188875607608168825524180344846056020569989419754839312905080898705946710092011201915056943005057851157801212241458304076103452150673537461935638975490280259605821682974973803615137635025082271921417765472771317127970885129496071977804395112253910599033690211079552832647135848067669427963259207770797819131772770318183660173292227700235183184625412914986267141404553167560783352287917305458047525407826523666096712490983765446133385561668981121293196082052448517890882486115092445194158007729331758988291199490796934119995301140086815281537396810797014066965431883653487453787353999245680724566139820388776856603210726507467826830701797379470903088472647476113670720572178064141128326565928937045383396221003128121699789770360727402032277862212333238988183122482658146846836455833981962373967767111045623000723682944251498878039772212259471235741150020862078429931548157185180713852303295589053655825030544848353471405989434350267768348854536135199495701180511109451673950074653105824333106968236970045969288210086775535313296881776412638924595869934864256329661949263096351249271918996373026834622317382196684816467868870877677685193649106034810940880234251465489059687778361820500436139587864339016643746924198594580207256268026945670912652835658920088296445281352511357338728591641283243655017346380855853394857994628709005636853013036016377998055994148977096029116192967790596109032856709597503632701538422524611011777036322941834733881370606211477077012260491795031927132274293306560798381373427489850310073755796105594210176200494633395381431112755574224633023324439057508147939179794735724760234927690051462377430468331947123156901737758562970286184602203397563157259291826135553592700597413150328258220110853193559161799484491270621599603637319363638669978297304300490650134497844055843060756737633662642565825946727503836251900165199007936096985364941446931636589313742643262427406015181950117151931383866030517436215282294543976309100291218634353315074896072560487107579658025838249395872588827340734107966257300325911801111654042808114170590173551571576770385908746016707858132797765480429238184367288153617567199611689136357160528460507713757978157183777026917827849063047425001029842895790219177769813265084265618388689108787361079553188323656731133147243388969647502367450407433124127511337330927573449970554547422642978202266138773574765573674329767434109209243984752942542221857670548626007476958123162321266525998361698039041480666416459896914202115167673653436894410640893023623195958720111473968098202051041601988124955315445867638747354391931856532879163477761312448580054788718068840841522015695010816723015765646566104926436409450299401638568563399538227611594508601019067607642726085484245837388098701160877136921853913733701676618658197379580098966640651666261926811738390934563981141988516569490916412389847176361059768639560475810829101150028381208317857240170944531883523382854020805115622342888469503969719872759327714471120967722738936246136854739028485663253194056060428804914587557441094574447666370492784198591620488869747385490730842470476964749993494867399407805979466629748038564577547600863657938751664372611697457665915042055678510498022707204076358722820989476505905935565372601035163593304582496709115746306058708369805188048064458555375174837892004115980833716682650464603415408189603596170627769599948811734248308623644237566034216370260296825145013056138042188414777784937687784455398999562553988501154614252753883074095799778773683300050880466450331369473716732608606932351016910747769900643189541773918859703745774878554012731524478750340452668432853079527996279865090826086695056021133853731215265050295395620135615467690683638906430397348864004917243029192472595317399146295879574863521402002451253089645210324675556022106271015108574313219949951954504537039418487599291803081964058272489966140142133356846608268053194574996325079842772587938326370809162218970389284964763641966897885516428136864085002526485570798021616910006785648491804276741656900532526104403574877897422340348421346606572022389841627263723093858025371160532931681496328798248288591889661497256000521262857701168281139597313451857616751266432332457001324155032730905413081566916769082398273189443397506241718471200312877522947497188157084236959437156624477435022720571022147426748925141793067814485069498371337882063245581208455328671844857352621635096684756907849142218810230897806728834551544363547308499722764766617076405168664929067987779478772609461981644137125026582562962969463892935472991070708435530751317958631986844451872056494371095996757451705220509804539561808597718206626150623588494620661797858040859208119077777990471152349276556216357330228620816744455273075862682972670323714855901205247327945792550816166576415808056599974953003773242743953494789459900028508978542077500781373280392483118807350279938490058349493200549635755841668067133701318522032942194645813986706497616565834366883505009336965012080357560677181199791609774355768088267862722505544935809864984776105653182104921630286611573148797655659352836399364251955144345382597558514042918550980471169609968064920170505286642002410700467343013524185159842923130331856296247240379009963333182975254733546093033798411710173932160216550548465917657038581177725671465549625299717530371404579192019591460377400671062216038043737697282344548053098610696407980207313223195521576729784312461313785367705489268212084200251835168786010757236630587488714091155989096649589531657030790546324158632063788243060418030254213671529851260496699290375798966359298812686373057370654177553801790379990637365628977118025648371299385537413517116667622549795555619973976311635748357626505960955868526162922183026929726166156427352727332282746008382276322430889615664065090599829659888477319154556463660736482361837826539121049822578692428764137735230956567940185551960252176412368581435375488628563225480228456979051293194238276589267858379762714788031631484908713249787005921722531363083820746752839637267315786430525504150765839870438400303568566403175086536917360353948058249380139127731302643744251731596147725652067904797851332028025693614282407000369870693749293230183296827740117892041386290268106067645677752540025678973749951929361405893470459843403567910125651981663646475003971829983890572350506122169077207710032232785121669643133908673102187727753784200238429977330560099102468744464326622352044877582294856405729075571460390921332242972893283502756707309627538961472662962003409496766959918364166503806198527287255629219123644582457369875991508188687636477758603426406081755990054734953248336504154600199390521966922419428791717388723091796677882649379189484609126733880500297600523218968268371462973361618530228874713687004453934766288435756123495137947868874564485458721597064255438015291939963796449801064787716856339923839039527125332150779628381085125963929058226480633852478290896655629506727250531390296613455066810623057170393418908437901877673324143338448005729792972625828001249145471039829986108708525120645596417960629769093773438850937062066489345846700157041675559499602086572815385584437681118309859537981073764700595543416136189612439215143104913493642661268548215485887263208955906923069745326025922793333699813109321433251164739106627309020729277020312258892358952656348923108561301085310367779489558824215725508499810127067877060310041899840729755486567892670718951526863662043294312899640649247117508425159910258892209223942451662372039384095614310279198396381306854962824958994121095025193352342597638252507205218869952864733454611909001969695837881943291010352432687718691816306867042209426089903747186124738351870652453128173969996659455733541373642874798129717669294104176158730154391591813508314975784452970308416131980037425158673377278967611771324094896778689443450303685568148269132589615832893825793258446996141279290760345374608169707289313590218017854784580156666386933151746702505687793216377447104372730219695705109132206222439918424590439440048407771777686158539304669093399155792323797886546613154794799444137750783017643742092820750302218895521961212542336922244623364850229015574303127964835355269820139590873418303147000672311845269541974261718686670769776432203550734432605063527245856701262604579342618761016277520390124967530020122201108705734687085102168570196670289795168211396627690170892926961735023030573628506754549293062018515510218605062206312099870238554858344783065228987982702289280396357345500758001738113118334596637456976620790323568181091970968799574278128140561517263179237290165481836653100188385566706103754780927283212240728059430710964823886165659892670270817584951971517988523718399681449163866765969730867547874867003583770087510055462512539555425828653376452435021843201538807474694250406385033049046299510582466842793163623694716636260817278192422055841680879234551658637584498882005084729456160434486840437885131717955499391902215622684633580223351070712184450980496845322227379473900823413578835272908659061063336229504960198338010332456764424015800330630820140794538740966298912039594616048200678676078339720034861845306813154055180174020021096009760528990884779658795461752852685739449844551784160949631217365894029173743759938643596998488566934371173468265550848214034861232413468673246157082206362633008299294241629039923369050995393520077697486995934003162372701545014326001633172438333965291743320941225821345578647331340460790180324994151196088026658355198718130930677540060605318779140745075158443328847128110500493478072688633793761127781238005935301626015828906304805997767655483080255951511067448944019613068518015324612278454774801442308760646142353586630650488184211745263234262794534894129999115313852674847003306503554906719351255474616637450174980000737913144984682515046978208903868111453136801218322860682453709974755320147871537759402190811624458390500317419467940766938521090526699977488162576165077143190406661582891700242052482088467004285884571203162850581693332934615625989493204983160508558173457060849142655693235228806221230524038317739244615578954382131393742001884813032842913275854113879703987430669243902784309367082863048470372145217246930111789764075397229001969132803163438067243342336071359360469191079384216180906456348186481011853677562566256318063304570916413344902146941438902883433163496956333508482212427376484521282052317581140445943716443121978732503116871423561132747262539490356843838012708550447880503913001493702004162066598101550793661301734585970414353642045495547138611535686661357281877601538276390193383655102563643133563442438682060145744106096600150857169568842218430190787875578194395378090500284082973572021262698963160581663571158839161971568676938878731321232096168914364314685053893585828925338936299534916468699599514506180918571870497404670957200930597721755079553900947298333718903978886963319223595725208391550983568816665819861389607449988018157529372938051720620158473568447623302461946150492731586293181940328117186127494635384428285517593553643085305392380353396933708402819608859485828345080955457288477297706112982232611272654105878860723838305109761667583770679981709812067183677010469326711628376027565980579064883091555088136879771578089154480496460920614926828002815373872029642425987557667053457051664806472549539756440845397735832348343055530838003973859051748059327765340366655456838578788836258556966402162508556015440600586728235389595150263798388807339786788913592744110130301969666000938259077966986968357044698168093098824041784663178531815951827356764371826263418615389163916925406798231167118809436783121170559276768208313995541793452375108081425445383942458043491535543719984466996247424085806103787706292779824955367876943237998693141517417169962988486797118537731917421693464821245877179526893832480777595715937771258635979916589436676525702147396511657700992877547470679338750817948796579718795698784460434921864049617281048903857350799074318974013541948904504909104167924551673890174220070422816445839389110014731411881323346971220771033264724857910746319699907130294329018037385207051592195712306955084380843517326790043493612505923954724926500493691102379548362607731755794537627769334845705410102708483735636892566589191500029812394863998359215832233890260053992537414313270583597164998966104604250597038873085315643695818142386407120838093304288530428856104622071603373310490236823347266323051521799905825013416246402526956671237364105804677503806614326956440343432404817755705390732217717962166765309227001719461035583512145593980287933373814776380681553643556651029147884441853584309248287709744614761414283649150470404806766828231352304789409306038731858288245781767983312361236986715515880773228548738668780344268127313816693734380293814057943529271528315408721315093862495589667227683389486410719333868180175656478726545623332293090924144769255771091852860732281661199750896470666232380407745427203998937009254050774756826889576289662175724685214709807056171240703577490296637830901878750047765246601116351975509436555531656520513757347729538932869406756871404666635381569826009698128500428850887742780830717926520512875308723203698897233196331973874852170117467509578570043527160419500414479020189389325154179231263967378751450749741321150402494724184968815355550223467634437998782938528778129476820167581767374776721460358082854788992079132723316118021150695061580706380573257532992733681348135023462671540292322684651885216101737352104704562151823581702947688877187897653933594237547869119565706894520502689844412188120576974434717958008391567555606059393556584669625212405544679827234165907935820809365134221490902611344205257022398559230468073736429593356463743977550481110838944474170429456718416761261073109500212973940661728283888526238918780951850215509365135721510288481685113238316162412350253020202692650339520307267158402985898818565458029469462793482328888203756370645300811535786157048160732453748730832006050079839014581929096151760889822030420787229273542957070535059960901903886939045515894710186374040532892279866186098317186795324039783353972702141113937692300751572911872983738750638307460449414090349923771073570368910253750409094006532450866939284659014788513925962014723294710114889586553861966085108213149198556667319933415544392302651682363270069031112636954003748793998366210312049089199428833674262283479690062872472277959285818522017894757711974914529685618890658285582578614280817579499035461575951160742112798961662468276272116673277090247017946878679198044782655035952397701184124998929720684898158572312575721819631026225509180442717297258715420101308556465755162274878700246939460336951673063054799222841327600230693410402612549163335476814856119213079778313648110701122487054525701347789723595657279151347511517464703975318943278307471860587192889697226238292581817206016748052393751059300929009071246368452682324938677009116359541423613119675999086153393233261725716188878091680867585524631763140520181465204961858441790607055854238025370716094452065202738606318499541452878562512903882585410457925146745880657812483195989953496209790250037209352141198547801557556084236139677991026036108839949906125037783965015724677703266450169489161304472922947454547216986435729067056954942760758921434635610699869606792608398876546025182560399147327909346650459519888586049459347480492982230732306692574241590600015430332406696275178373140824056683514762718193753946722538236276653013207350203274242148163232362434886338453097427232309744319579472310011972205481409549286237199984990146788199153535082691842576410922796930189197652096716151984087304637787331429974095375058754412547131107684231178862036063356637600783229680879834622883971428929251756393596078334024939305575594308125979764115562530462706016324918986387633905721007436191623086470197844322432173196095395132346034849475133993552548964619682855929440151485936728715024016188162133750458401511621810619669040251886103334942575692398198478810531179909727433598610112138197103230688842545598692935060619661482554744087036926762816761049302644586665871305431424655935952743223201347365784358942774182625272418589890805854038111429981455635044274704942270693192719937941787927302764094300128925207696793957110732516607314832809412755104444688474301086667362464166164068344433269966933473079256032743274681249956596255380540335187062908221919405549837486956152633224349404765862871729726151471088250086448735580798417132519002830854264555565584092666550515111216467842687724368165560048326326341447899767686410543331826945064997661583260982181803812883357430472806298167241676773142562786412220289500895905051018905486266310874620807581485998686394499702441649486682267346032391129241465780443727257057919459671541858660542717310868468933144893071419765239186374633177273010492201710709783570574122143634186884890131926175985331461245147155136159154445953036069169035348373178100857737277683171318388452963947621197922354866435599631299671639037150083248987458507860373515579573607131218921554359293149817637533473654965347172392749317983876692327217037447666016082044779373982857629380536660069763130710671871447231546676148185798439627811418681970191547933346582525815488204690826318002408791496823644277684723301159627660933095730466813002741298878095417350587158849707648517950884983848376321417534434340971750380220324639056999929322116161543976042614635531558467419627718312851616861766954232572786086602021510887179318762439748330230355921196730220047059191348229044678869796708102354673988690265171880682231607219102395151844771536498406549605000512794730399335228064719390816197811385412936153875764731392766686185008936488319995639682957000625422303900382052005636475788519937312249774790078242560213292096224147749204043620364054116330360815832034107645702960244019164745544970720491288047113987346323540667605354473985540651188414585924715095246791699686293271709094552198112744677418019378539491352530191977965970861954707984202877332109110035662119843124813017030273938597487018235555401879854749895104061818127848829008805680323180281051913038035984990524167764145601807400749043675156470998400650884000328061138986419495702467018522149640839346226487536067978501442005140957706587780429965295223744125342543263577430206276914326569176626966105934642752883243937799359169615252333107453285518277899787069454528459807937861748953120110766831032084791201859697630334072336751068574174475825227502997803275145962808071905229740105940941706417089965711811133469133210600587623920723410183848596348566437649131037961818868226500157459343528497411001573486611822111688789828418096630976018674345734688742143478719397256115850610818278487950871084647472167543100798960901382551360777986894117949536291643156383411472889740723566277903482676855142349964942403524176480837799276541312733346735619593073073741175860596958937376849467195016903858855928189308600631514286550365987319846424908577791243646357666906377865176489896167802848447119735975567640371810996164895553869547643661617609890393239045929071923561402600987690880395182610204187298584790206900371813164256525860977359517126673972887376004214688116759396029119774788160519966570550164754643910789549182538457847023483092561105254862937981898900594792557512937966845345948226391503122623887874127747773901951412023141374692659654838552095825319254782495880286527511910524821944157364372648680122973012831668162471533751348257874143551409153033760210067187258317390032063167695456164742294246912192598120370476892355980719933245315473289028267980875500371814366500416515488587421931016153351823819837378580144037385086814982834793579936250484308820952710858231503404222260666867806685685867122463275148176571831160665988977298926611882338856830276536124316971135168915019513211982174881634249956268963376431022388332330680355511077231697681475710221301606963973322587928862660105048040960838411037702800095188916641805154816852677517264051202324594517582823807744033770928249766016627497358790317848878722117846244270019770354893022221041958277625216973671669988956720048288558145166533228575596135674025049669839506302348484406573184677668782712229730156323451643679552819022677958312980681699668844626675268366935126989311722114272869406251680500556813453247314958514622219814014656595442641987588323649796908406380063733044642372872915746005083057861337635576147882524632407317439950163395869815457780845699052837942973315691335763143316526110352077163116662721645586658545781221079802084727503078320320207485298200525116639857215644231619843115496878845270273789437788557819267212141480869504686822437787358075955374166075077128309229395728878295479831928690485969990362425146411843139000164082340027441492805327159225512098257869805760363214164981048246786211278103370497589402451887971642300329373855154481932625844295626803189461422201935863357465086846009284735357937711720999942246771470365088361213527656482839646307635152648766306421536244742141328393911525396402426632218353534361157390512957671382192193277613408095989707355290702146946412193768654115264759796254135215791003844663041693160235873725049953471493513764109626835442550217642872978799394563162801410705024609691521632416202020541202222820405781459239405855337779410213114656598670423337166000075533294585764836700426108460015606697579900833362723137036269983374062856325596377980527549468943099600337721966543793424178837218088731481700710225774152797612299952276653199360465643788158806218520108264628665129938988590610758352667221934956890247989350723443002179330689181814226380240517662815244471570543612687563744882522232056325058016505573258057882635992874978515176332935305567007318563594254359451802575352696157109105257734567318239286348730312234416266062059059462303005812820440791855472040173027416564224477016064980596275485837490316759840427375575140492968569439508651699092576657065764263665436927056029374431511023147078567413164018454210926056188020886411173366079528189516474686293054191670069458617407863701398154116504353753587608243266094596802077370190450644772255167492070480345121250176100248148385185689655028542614638512614584199654216696346240808936667033206537985171582720548499755236377296851400252028027240948319603768494278177251175625291524094044351696590270684960019919142262876328009896704577390631440444097547930121009352211376132207159803928596039799354701014853493534786068015328644248435656566176526435018866005522592749075591556403319022591320461538532377480751903039030440911593106208681227782567501875586177893822325597744496897636858848737135464218252400792421837891092366565741795107406826221081665634705155680811359538989349651942623292996754078850267936294190833346567583110160117491972866395315921527753768633547479490994452456138299791485071328901797856598206951100585617757238201552997177290524977033347235738386381815796938164737394804107789932989698973013084816503838304104591590060732470237802648211592992852084826789962116058100153360666940681197693768009952213931254415614679006624070783513115103928616446038187731194024824660774075661330103196666916598941927283429958472071814127971657166329962894644744733127688110045863141379953219283984868603925479790400763932762167406291442570914272551060341962659141541696779039249060773833094362123007130689907742297173198702530493528458112278678708368119918464362761778320643686654450398460622414593594789350042931615116807937342779997864345314890624827523161096093012807238668949871104503311173214930649651676781502576900768746690835674022786884711394585604503754583290883860989833739838660116613779319368296555263416072902520642793790176775088555397796283513669282797958971315842562833082371962949842881070596486389929389159595897821749437741404421998115019495302447126620496704920208598571973928798768901731529548471402414538418412017193525491545928090725775843867822672006364491185296175466955416519452436294569625713868285542408749300671827642496651651968569976531610220965856148223151901007234455788704023376043963845977989771184940323272880667099204756879221125862624378989835196785381752491326514175211614376699253847735761049873169010259069106908115343253550238381924287292890826987530236815096409346067139197488779513771853650080559145171779865161312534494063658304052438019192374903180939562114630983438157453077417792779598840721487651139114592131501169829813762753716196192961512994803275789405468107176075346094712222284663700633371053009283640831708041131499521514592555044266724717282426535292984903526134041478757663157368266276914358110994699076308813270787111971463146703714506403722244070932447684862091965877677643869961276520139367525226736724995889886935473664170450770666193377413785414380036759773270013827656761090106119638855923509885261296952056633605214538689105597409059393070766547927589559209608092404709720975788263731990831515701504340978720069092935394659060512985683278071534609736550853854467956142111179638299064699844085471819714243062540209928069372280283383091167334466751102522147609458075507576018059635597537657596720269879029291713601145714877384247476257113714855169172391261946285699507405482994323717818016202001570418525735477076134687158022825036917355478221079720485280050838933304984443497619317699445458664903173558899033273467331494326170006287624951968168262994433441108575230587677529569984618408030885502273105463465052649989516347366972148351791023013275589417204591513160588457005747706910252410169222181101051399745835104151079794339909206299949381553516719684877537842818457005016510935912439276608457364703254147289566105691026294857793722568037623649478536770792282510217365793115711217263706318012925987652075936378253608620152677139797091769176463697854365027490554494161674022702297911443482018412697828629815737078180966329850362826644351855963894273626313309691372217190170782636369225287713453901608194133325665153215749872526422841475672268471434740002029951931835289178923864885254061631707797104030328530868662551727278954712939902099975606033033392686127256647046082193275901383288828359446798311285127069762535400853143348517644426458624449203196985712985960172207150940450385761596016032158360615103567256553022134967773177320374310020583255502251449189001565611715339579022236649939827570255444134264962315019142684175675252828036610049400507579509002475078100430006745117919899076900609357688635712544691865153265860488904624798205857006028545310808320281727944950693906572840422269651813558007021604779145506795756926529676426135811426891823759403952153115859245763399638373143175380733592608761784098966612238798790914664638576748459733722439682294977440707069686089507333670581655660893578049390186140616469018586074427542724658274132402154908129027598289559412673597464932826183338985059848627335321654233666987193736382432055943646057593829814409027903415573072700833058778627414641377461293585694015837712258868568042970276151816305480304941033618458466674163312236399158441798721225191907334691611726382125960180665962610750938371770488715560666347083342112202404324885711729595858056721742612943385968705711537787399018590469749206005887065928074094460097292051803362174264636503254042434887616161976173021437668325325327844265216507379641356289995909754811361384069943641795275201495905884168800663633312045829228700228004916074868473790236660938401482163093711741179227056326279254151572948415449994275897203911712322730268135997148855682684191701917356569876606508739108024956143440222222483755000520496662457958986711755169281033266933335049058462954254992285533475583680340961334297314496750145097830170403440935641229603234796995405702903564146950703516084897733121209835398888634251436675481907500007286904943585974692797614962807163767729430292323262616163246408082307002264538401878129287671234962592000936750637121080172412600368909665751411845879744898166332567432900711369578241524960004283667109470089248562677685784115635496386457038433372594643018436447512917313098376813665103869090155311923084479817939296719606706566616668354994412478769837818574317314815268860549585976243987895491153991622808565315780320105861979323639270531389201912311455546298018766840260170011704490470998693802540069021410685356145646036276121871324794182172532558634885351630038521914636133887904358905928906950300160787993754405570152076635429234406710665155505491468701671176342228617740155905310814474185874992013489558395898733067296957879632645129398285869122114433045924625166853256340904869382171604685677801999819624990870324177757299761875330191798364212617663391971667635145537537809387520154402299733651962622007941476599925571035840497471563903322910279393511794866471954387598248051327434394155892261260855912015315696175128291193538321582293799119104061027171102856687909438807071312184687099717035739579419765064906383293861151627758070469698682343488413674729411923986349539286889696838925525799608394407982777133429341084233348396168591350737345407568471901833090644565195829338611605629921673509008386222290863823507764857763800665892831436207963968540628014391196940684563536707519756818629276279970249200602950892714149371143466174692045047184157709021559850601732914825298377024772482121989871289637614007014841215377170248757625825551559214543005981412722598609474034185210062585930505979303753032938421557118625981149404662361756146190690973642643752087992005044991848903150678901613543090538434845892085423465633799307528493009540100867472079864750290361275206397292267990103528467059255471588020277249357755615179116217892321878403668182626043660625695683299115182013819029742808058476200322908453325313150732444648152142672236026602164628110359317080768175973296683264557307492473858437310752732833437120570402334382649809604172532394409052688399014224026277119464134608563238796056948409488371733285294183836784933167656445540610324976207830715722905215756931141811560827611436644311598337738388344030473436494887675952335982869765675606059679940092802033795145815765965840186910161404034652953317185666410496487448511681437210780536858013651618464444827532399827883519107247360298184013571814178686101351420228062661446078395266744958129274337569509753175380741209061159671241844825623314909786415234838176429232750883471731427143898943095606946784989497701198051088003641605542371232906823866711863845110984676796464392469109958807625668054285025190402924679975597752290578117142337929502061187013034231866721153230432750421663563830608521268368342724659102796098122517616424641770180902969129068894702422439364063302300681883326734772372728398437144744365784103264903518052976603150546594108224001339881905951914285947369215232291986484816600892032408423223908334448151906778453836276779422873502327617107011871294743641482478521842918848402958818032380319996997647464316870863175940258033678460463124090915251855896501375184933878893707802738909689792886194625139485792806793223119705624923794759354050965537739182028674606817101181816567169663922173037250414855951765910016588503348083662472597011244912824682665009554773992715738205567375268612116090226732606384489086596580411748332396988759860427947403278523515516953559547376709883805651829738587164905539243867804085632683570892239691370628265008494269097828183080513289554063489021959859168986192783883956256547106557420676190974279041355639778044358776298687734067634999626772486508033149809401850735235986535793152138608348094090589243685493866372465588277883350199532500931739172948988432010416037001417120646725428687689342777714351313698885850511986924194051062503227239499602661365149361920687850788551267049924618964470065382819439840235340516854029343494176758894602643238064574363319826657721808263459135567048260257674588469191612566050324916135195445295643628807778370311020655641913175079479905029694495519304488037281620163222843309037584509796238655039077894839143351322113786584070737169822276348101456872954781748602675851340028318264820613978662474598464038802302937803990801555740070375112967931780237628435007347816994798748360617719024098244952726255680649238474058229260156744045073482600400237139176212911489828482363079496008853563422377221779435766914649685961657397775189671133830738467443787437393504781962034895075768990152683646706958579373032727245479583033129718806158513908220039317439834571670568549744115529032632147364733703551632268330632587523847794095571645326737241356679484171802623472164678840430501579613686715500072366295857715600080262958604530834058086385602680635388312019074415917044155464761006854371520223407953606998980161901231647761019348311708054872612174885814268969767404633914513581103607616841417116051438130589764309895744981251786343260170394183711417383249730659073832604423929841305529578418404392108654891448008021748211773785858446911580590237538333827215054650480661829458960077747597968864003454044200597148470057600739513544222165346180491687284985293884812649859213442560982763460122280073552193118648791888092957064838031029939986983349181502070254927569951456355402821706002199286751758986727922538819544707115219883653736430170834030276223782343086970859958416117198613842650062671330773435226963808562799028986005003836460502938112266635192246565304125957798715986030976754097708716477716418641073699972415417937089926811938399516682853250251081959996071739140059692439625046723706207601554904911211084348923037459836983157825529251489988460117882748681269850387473579000685655495658660245312690573713773576506611579844060853988086117466588370460715332532849911384158161035583130352071278840010650000836315972749343629580432238571952845451204605748200352664515004342533102239860220999836102143688235963574161720422275787088326460847232534146181871029838566074793656339720556963801979572990752239747738817492871823248660533666604334329893598714861967403723543615438756461734695358786924407824085244265009566063969136043364082137022073974128680200956117372920587521606218967095042591303488473599622190087295657332897520826335895851834534576503486272988898458149712476963284992715092363171299063992919989225536360822166950194310609221072251791439529988067753552706464349656780849268334427191559608412298301684713102068052786733765870588456426503802403072031105533164412500043958595730073484344497099888487764051085635698649024510378821089008690790346674185481451843519185375967848908701502282280002195298573918771617645293292346973241355421382437470443105807571918903215510216303068047957990010373144222416696103861441072948790660472273865522087756091650697129530660080352671271242550623415469577432618243966239748177106246728415899673565697225335801114925860914909524662563923267282387430460379984762174777955812641837451304770111896568235697613650554956177504915957887964549596589651991408630955761313570075115555507266395634873134590687828804830719101123817700220812904810635940842145164227624028342944966633099557202923308561294576441990745420076147977764704238510527442040278698190157890485781763164889638709965105255128814548985642350824559546998849916221641787994301298394703992973086718151442071613827950687509432905792052102323031829294713426007265203168690029476846847797188870913128042608355076229050635334824625609390889330381544336550341575708495578320597098040757515327121046473095958461701517124926813090062230856112595303325213899556725392375788321356231364725184945855550806841597921913403223203147490175021378871170804023685915663125725071711978150599604791840509386589531753749746635033198497128686015349170384241580208412286998060650884074898696312213784376031888271223895888191460310879145873363104353069006547224156462868263275306041400916680515455114919621361157394248960502982835696660085981958397255146698268602561686067300449526846260163169363708127754858258306472114410067123682315019420719369290235116940161563032978302954387632879889991844622898594938018203656448387212975736554526843590201296236985717206233657712044380557060754756729997057064633739179686291804995855138415938175724057930274133140701083616122382373585484311980797197882110294791443790747235190989631758768289204597527954347626402971100374744782138847044740945349185118914392933933477937687483291253882363966993154663324097422863348233583950087516402045628840187962912775253780149495559362945924613416767649144095980349981985876254086756281796455190445601202833313286140275984683134288425973265752833335835889376516778438696179239161688789402125063616805764997994996486049368648544928337714911724897658823648881325350062362000670188312350359611267230904789104686616908242101483458736980551249803310335457885671802889998819734501539572269270058394785331483213522242387992520173848582634594556276328083229321765481003364078619511822410536387975457491127213597794153942643668678251687359661708318825481767068126884510701367920761168399282609284910221764518005681104243759011697002338175780377011733237945629877760360332062237826989571919179684321547859931272817788081963156726150423161587776684623144659801486153087143311365922647029674411176470793305559668563098027506678935571359014810213706386635838070713569083950244345016700273654806072104649921162468100999493811462717733530652428040315732972238257312616234319778143346766285227949503582742264700678322084735050051374406090059976765629686492585852716381534587854428920641636161441349100204621303297934718416742053163712499382541738877823928380248874894292453754189552799265580794778728345348617844147796943672006065695955886366082741194799854825986724975599688020324877009733286066887162119191767792554049729125905994802364960007212739322252649061351617380206272817354774232135767406474138286928402613489217693275298274032213716378596671019528879523838396351405399206991016446822178484032286390294758662492061498584224316633874286047200850848999492192070315578979446233829829462938842332433669240334216526987241907889017428869284438719907800815160673483985478396718746648682085396389233568978185544983827703836190873633850348808667132384871177776358113106438475628436432932560264200680128818227064840621465053114871559506705880100870295470070958664633618243141933371318541433299588052997149281422828102675933327549549871401291320739439049408224078111493515018404456693795247540280465206287337962983459831461858204595916213345084731424421582967235984305341622011679413161442238008152901013813335579859026411402316055581200083501854017261558074240583310990651361339625734533379210718877320064246404760955504264299893038805844081030328942572114156743255931200919985897608937442105105903522254701508162999169446655301504456460632866817452358884775286978196739840254884747296187801866488508524663922707300993227812149496532128701651450938608933069676887462940360193120672171547177892837810530358006328032690776709629550779385549726323549908704708615628987139276820093709359710174400299806518065768014646834455060181374139101837665391837853543489286189406888712138877495257742853972273066349473864499656041352709406282134704364293973052073647494268443793766083136783130860502664353173472856945399181068189846049705110692789778005978755997064537977507644803843102169465663023566447640039623628562589588644576534451923467720424311265849945194589249133309438425768746525055519576424032141103498008950693120137373500299990709793682280212277620101429193397933847756135177040077294887000755669056767333021258246510625272112423895918131175499312506213329621559118507498869468991045406954962807868604683015569667832514282591850563440729366920886992821016866077845521500791382717925699048444275658041477512987274527336443240875193024805260623849300521707111301124236541549342239899072370687180843533030412511491858197225958059900759171195492680954132270888171052105623517555974060428412553436030171301787276842960818178308183207551125427825161420023619234295966239987004503829813120731881313677154687897979647588790820672453591339306010018558831966110396746322041982322381987247757873303176898217048080588075337262744165748988448604347362136195486019613225523345055294085819890488054551004444604815663649473474651331737402962667870854173657218150741869424126375046690768368843102829143215455280657494220600798297922989597223550661720683079878508614324534764541536529900659693020731599623373181468413819486744998961913180561975535627502886431909778808497386961443327483760764494350988204753285197855891957094650735799103981509600845803812154607664454435694921355975803664384759490350264344880057150979930503766911116853201067670476963726865790880717060539012669402668822633052899184595183062403646274387624458699775861358429646484288261459115407846964633633224668376047253378103303991616336533365468913149500304654224572769305629019681068384440669581079977523766311378812420100520190016104768478379772755357990048081112714008687428788485697332909706905554791379156652683874582797579597406936604991503536671120041813413306937063822024027426958135862945550811922962357568520015990898526892791449863940385612044029794981037310699267128560094425305042899158164261186406865839070788713195250072746371197967919671348014976639596104036518272101109488547320998293902920353631841451199507174621752625683613407761784786543866985308102348915035707299670897553631308718207235247828443449113175040347039331315530391514151066937020277789015878774546191252668212331234980726726918192930086163431044200349072893169061825279612299579035956484498545636360766574976062406295556049418327082614792930134767866942523257533425650053929579757680035672641102890298726688374993511220953627928709477193115600093331558624512166003046317832855706729560998396713731728058178037769820058979022710616757503585853231822480997273148761660080068473866278068336509199730648382448032616706434130454073548939873398318567856573210757652386656652695648986129458195046828184446892151654480583272044840568527793477471090025604096395767448653686886704554653343262747640320200358858225231487555302618403713840502916182484056731153140770772671983185095322125584523660809308722921613590914397764658439163373971143069452114602454015900962707726898976162669191322133302074541751824832507622707448294773217971451724465100127326716980385923419384976874284323331591272103662028887251654150692330369930794818813026956365423663944369685105738404633927352683528437140199040624595332412671793321765954158003291546076966567303752220843367699342561524675117527945877338081215823292216990589349655903479568374727758558132546106006553829764387328046362879335160023234569953157629013767813759166364416741596131969565540175707313645091075439965786381244895229316112223391611672667450649383435178900727107721290615838452726253322436211941451087887304164460320937359171032186754093727621824170379739475047367785104018415495780125113871793784542551770902368767368135018527968542961570284809906608623341394170876090232436379640069501097070570296461671678461989861519315788536618324613979462952420900622537120363078642584521713788930925675253107710786604584221290291860568038742891911600750190299957875141904844175130080939361430823278777711554237967158845524169349154565822433318059985113247736947727765936342877486742375539936758133882259743825406916320036248050962544624421141310844928549871956057152825848593233893218892399837918189837959644074412039708111966668235832861965785439728990678374103519891516899813128972459841281761929979148560253343035769819641088196439694904950573664196391469857330707450606097743295801287596152692614135317007675383897397575854763913179542749736667874421849349263263760796922300920387463523577174372701928470845206700521926766548011193376647104665364400558553706847691422270074167113633932065422714766810525587132766113604502825872577682468944465249973845985967485866272114805781089101973757324051815185220628398359665667507212553915889498865850705361532772581217113177450516841001650415750282699971834684332620836763075051986728700944533531738713164403069669532483244606158686153752481811082494176910109007390590154007100236375959046705452317833936652277846579310292466984093547024008119542610675694103535703954312460142846187630480079264371265577745865524293973940214022166974444435444730356697973390233525547469768106694843503122393190348886972887043642544024975107585318620183046984240265112258785390697107890302556051483690120670521547532450336804108601183126610364910039491811724239354699271787640778947360371804418801208042067623601094709218753738696725594159187719266080999418356483330631176803796282964107389412411069294407533307553458930998459822537982968278802653266844746627465046579739165874812753301622853816041299064906907599060585467017280960919019214935444726540413016639675469608085435203786600024226028460651458978600308900626927530664869510032687384218312997740916821393084991785932197125721157885014888610780135652602465385883